commit 6a13feb9c82803e2b815eca72fa7a9f5561d7861 Author: Linus Torvalds Date: Sun Nov 1 16:05:25 2015 -0800 Linux 4.3 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95fc00a4e15e804356d01c1c53c7da3d99a94f20 Merge: ca04d39 182475b Author: Linus Torvalds Date: Sun Nov 1 14:13:54 2015 -0800 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull memremap fix from Dan Williams: "The new memremap() api introduced in the 4.3 cycle to unify/replace ioremap_cache() and ioremap_wt() is mishandling the highmem case. This patch has received a build success notification from a 0day-kbuild-robot run and has received an ack from Ard" From the commit message: "The impact of this bug is low for now since the pmem driver is the only user of memremap(), but this is important to fix before more conversions to memremap arrive in 4.4" * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: memremap: fix highmem support commit ca04d396a3229d37d8151311ad70d1255a5807bd Merge: f5eab26 2459ee8 Author: Linus Torvalds Date: Sun Nov 1 11:45:26 2015 -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 set of updates contains: - Another bugfix for the pathologic vm86 machinery. Clear thread.vm86 on fork to prevent corrupting the parent state. This comes along with an update to the vm86 selftest case - Fix another corner case in the ioapic setup code which causes a boot crash on some oddball systems - Fix the fallout from the dma allocation consolidation work, which leads to a NULL pointer dereference when the allocation code is called with a NULL device" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/vm86: Set thread.vm86 to NULL on fork/clone selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs x86/ioapic: Prevent NULL pointer dereference in setup_ioapic_dest() x86/dma-mapping: Fix arch_dma_alloc_attrs() oops with NULL dev commit f5eab26701999b1aa26d06772e013b11c4a16f6a Merge: 4bf690d fe326c5 Author: Linus Torvalds Date: Sun Nov 1 11:39:03 2015 -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 last round of minimalistic fixes for clocksource drivers: - Prevent multiple shutdown of the sh_mtu2 clocksource - Annotate a bunch of clocksource/schedclock functions with notrace to prevent an annoying ftrace recursion issue" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue clocksource/drivers/digicolor: Prevent ftrace recursion clocksource/drivers/fsl_ftm_timer: Prevent ftrace recursion clocksource/drivers/vf_pit_timer: Prevent ftrace recursion clocksource/drivers/prima2: Prevent ftrace recursion clocksource/drivers/samsung_pwm_timer: Prevent ftrace recursion clocksource/drivers/pistachio: Prevent ftrace recursion clocksource/drivers/arm_global_timer: Prevent ftrace recursion commit 4bf690d7e09bbac43dfac9af01ba263e08f37e3e Merge: 56ef9db 209da39 Author: Linus Torvalds Date: Sun Nov 1 11:33:04 2015 -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: "The last two one-liners for 4.3 from the irqchip space: - Regression fix for armada SoC which addresses the fallout from the set_irq_flags() cleanup - Add the missing propagation of the irq_set_type() callback to the parent interrupt controller of the tegra interrupt chip" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/tegra: Propagate IRQ type setting to parent irqchip/armada-370-xp: Fix regression by clearing IRQ_NOAUTOEN commit 56ef9db24633cf6528d2ce736de0985eb125a3c1 Merge: 060b85b 53dd186 Author: Linus Torvalds Date: Sat Oct 31 21:36:07 2015 -0700 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "This should be our final batch of fixes for 4.3: - A patch from Sudeep Holla that fixes annotation of wakeup sources properly, old unused format seems to have spread through copying. - Two patches from Tony for OMAP. One dealing with MUSB setup problems due to runtime PM being enabled too early on the parent device. The other fixes IRQ numbering for OMAP1" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: usb: musb: omap2430: Fix regression caused by driver core change ARM: OMAP1: fix incorrect INT_DMA_LCD ARM: dts: fix gpio-keys wakeup-source property commit 060b85b0d3064032b6810928973f8c7a15ab9c11 Merge: af7eba0 d6a32b9 Author: Linus Torvalds Date: Sat Oct 31 21:26:04 2015 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "This is three essential bug fixes for various SCSI parts. The only affected users are SCSI multi-path via device handler (basically all the enterprise) and mvsas users. The dh bugs are an async entanglement in boot resulting in a serious WARN_ON trip and a use after free on remove leading to a crash with strict memory accounting. The mvsas bug manifests as a null deref oops but only on abort sequences; however, these can commonly occur with SATA attached devices, hence the fix" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi_dh: don't try to load a device handler during async probing scsi_dh: fix use-after-free when removing scsi device mvsas: Fix NULL pointer dereference in mvs_slot_task_free commit af7eba0158e9b4632dcd94c1cd4100689666e14f Merge: d59ebbf d01552a Author: Linus Torvalds Date: Sat Oct 31 21:20:49 2015 -0700 Merge tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md Pull md bug fixes from Neil Brown: "Two more bug fixes for md. One bugfix for a list corruption in raid5 because of incorrect locking. Other for possible data corruption when a recovering device is failed, removed, and re-added. Both tagged for -stable" * tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md: Revert "md: allow a partially recovered device to be hot-added to an array." md/raid5: fix locking in handle_stripe_clean_event() commit d59ebbf19b29f4964b24f38c3ad876c33cdd7368 Merge: 523e134 8731b26 Author: Linus Torvalds Date: Sat Oct 31 16:16:51 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Two drm atomic core fixes. And two radeon patches needed to fix a backlight regression on some older hardware" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm: Correct arguments to list_tail_add in create blob ioctl drm: crtc: integer overflow in drm_property_create_blob() drm/radeon: fix dpms when driver backlight control is disabled drm/radeon: move bl encoder assignment into bl init commit 523e13455ec9ec4457a5a1d24ff7132949742b70 Merge: 4bb0fb5 bae818e Author: Linus Torvalds Date: Sat Oct 31 15:19:36 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph fix from Sage Weil: "This sets the stable pages flag on the RBD block device when we have CRCs enabled. (This is necessary since the default assumption for block devices changed in 3.9)" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: rbd: require stable pages if message data CRCs are enabled commit 4bb0fb57f3bbe2ed7d4aad75a3c60a051afbd1db Merge: c94eee8 5ffdbe8 Author: Linus Torvalds Date: Sat Oct 31 14:49:19 2015 -0700 Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs bug fixes from Miklos Szeredi: "This contains fixes for bugs that appeared in earlier kernels (all are marked for -stable)" * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: free lower_mnt array in ovl_put_super ovl: free stack of paths in ovl_fill_super ovl: fix open in stacked overlay ovl: fix dentry reference leak ovl: use O_LARGEFILE in ovl_copy_up() commit c94eee8a3befe480a1193f2633f16988108393bc Merge: 38dab9a 89bc784 Author: Linus Torvalds Date: Sat Oct 31 11:52:20 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix two regressions in ipv6 route lookups, particularly wrt output interface specifications in the lookup key. From David Ahern. 2) Fix checks in ipv6 IPSEC tunnel pre-encap fragmentation, from Herbert Xu. 3) Fix mis-advertisement of 1000BASE-T on bcm63xx_enet, from Simon Arlott. 4) Some smsc phys misbehave with energy detect mode enabled, so add a DT property and disable it on such switches. From Heiko Schocher. 5) Fix TSO corruption on TX in mv643xx_eth, from Philipp Kirchhofer. 6) Fix regression added by removal of openvswitch vport stats, from James Morse. 7) Vendor Kconfig options should be bool, not tristate, from Andreas Schwab. 8) Use non-_BH() net stats bump in tcp_xmit_probe_skb(), otherwise we barf during TCP REPAIR operations. 9) Fix various bugs in openvswitch conntrack support, from Joe Stringer. 10) Fix NETLINK_LIST_MEMBERSHIPS locking, from David Herrmann. 11) Don't have VSOCK do sock_put() in interrupt context, from Jorgen Hansen. 12) Fix skb_realloc_headroom() failures properly in ISDN, from Karsten Keil. 13) Add some device IDs to qmi_wwan, from Bjorn Mork. 14) Fix ovs egress tunnel information when using lwtunnel devices, from Pravin B Shelar. 15) Add missing NETIF_F_FRAGLIST to macvtab feature list, from Jason Wang. 16) Fix incorrect handling of throw routes when the result of the throw cannot find a match, from Xin Long. 17) Protect ipv6 MTU calculations from wrap-around, from Hannes Frederic Sowa. 18) Fix failed autonegotiation on KSZ9031 micrel PHYs, from Nathan Sullivan. 19) Add missing memory barries in descriptor accesses or xgbe driver, from Thomas Lendacky. 20) Fix release conditon test in pppoe_release(), from Guillaume Nault. 21) Fix gianfar bugs wrt filter configuration, from Claudiu Manoil. 22) Fix violations of RX buffer alignment in sh_eth driver, from Sergei Shtylyov. 23) Fixing missing of_node_put() calls in various places around the networking, from Julia Lawall. 24) Fix incorrect leaf now walking in ipv4 routing tree, from Alexander Duyck. 25) RDS doesn't check pskb_pull()/pskb_trim() return values, from Sowmini Varadhan. 26) Fix VLAN configuration in mlx4 driver, from Jack Morgenstein. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits) ipv6: protect mtu calculation of wrap-around and infinite loop by rounding issues Revert "Merge branch 'ipv6-overflow-arith'" net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes net/mlx4_en: Explicitly set no vlan tags in WQE ctrl segment when no vlan is present vhost: fix performance on LE hosts bpf: sample: define aarch64 specific registers amd-xgbe: Fix race between access of desc and desc index RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv forcedeth: fix unilateral interrupt disabling in netpoll path openvswitch: Fix skb leak using IPv6 defrag ipv6: Export nf_ct_frag6_consume_orig() openvswitch: Fix double-free on ip_defrag() errors fib_trie: leaf_walk_rcu should not compute key if key is less than pn->key net: mv643xx_eth: add missing of_node_put ath6kl: add missing of_node_put net: phy: mdio: add missing of_node_put netdev/phy: add missing of_node_put net: netcp: add missing of_node_put net: thunderx: add missing of_node_put ipv6: gre: support SIT encapsulation ... commit 2459ee8651dc5ab72790c2ffa99af288c7641b64 Author: Andy Lutomirski Date: Fri Oct 30 22:42:46 2015 -0700 x86/vm86: Set thread.vm86 to NULL on fork/clone thread.vm86 points to per-task information -- the pointer should not be copied on clone. Fixes: d4ce0f26c790 ("x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'") Signed-off-by: Andy Lutomirski Cc: Brian Gerst Cc: Linus Torvalds Cc: Borislav Petkov Cc: Stas Sergeev Link: http://lkml.kernel.org/r/71c5d6985d70ec8197c8d72f003823c81b7dcf99.1446270067.git.luto@kernel.org Signed-off-by: Thomas Gleixner arch/x86/kernel/process.c | 3 +++ 1 file changed, 3 insertions(+) commit 226f1f729ce277720fab60c91dd1b12574cfe66c Author: Andy Lutomirski Date: Fri Oct 30 22:42:45 2015 -0700 selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs Mere possession of vm86 state is strange. Make sure that nothing gets corrupted if we fork after calling vm86(). Signed-off-by: Andy Lutomirski Cc: Brian Gerst Cc: Linus Torvalds Cc: Borislav Petkov Cc: Stas Sergeev Link: http://lkml.kernel.org/r/08f83295460a80e41dc5e3e81ec40d6844d316f5.1446270067.git.luto@kernel.org Signed-off-by: Thomas Gleixner tools/testing/selftests/x86/entry_from_vm86.c | 4 ++++ 1 file changed, 4 insertions(+) commit 38dab9ac1c017e96dc98e978111e365134d41d13 Merge: f9793e3 1955621 Author: Linus Torvalds Date: Fri Oct 30 18:49:44 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input layer fixes from Dmitry Torokhov: - a change to the ALPS driver where we had limit the quirk for trackstick handling from being active on all Dells to just a few models - a fix for a build dependency issue in the sur40 driver - a small clock handling fixup in the LPC32xx touchscreen driver * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: alps - only the Dell Latitude D420/430/620/630 have separate stick button bits Input: sur40 - add dependency on VIDEO_V4L2 Input: lpc32xx_ts - fix warnings caused by enabling unprepared clock commit f9793e379bbb1188c72d8a367083290a14f98c97 Merge: 9b971e7 1266963 Author: Linus Torvalds Date: Fri Oct 30 18:47:18 2015 -0700 Merge tag 'pci-v4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fix from Bjorn Helgaas: "Sorry for this last-minute update; it's been in -next for quite a while, but I forgot about it until I started getting ready for the merge window. It's small and fixes a way a user could cause a panic via sysfs, so I think it's worth getting it in v4.3. NUMA: - Prevent out of bounds access in sysfs numa_node override (Sasha Levin)" * tag 'pci-v4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: Prevent out of bounds access in numa_node override commit 53dd186b3fb7254ae0cb4d6648abb5589aaa8c2d Merge: 4db7062 8f2279d Author: Olof Johansson Date: Sat Oct 31 01:41:45 2015 +0000 Merge tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Two omap regression fixes: - Fix omap3 MUSB with DMA caused by driver core changes - Fix LCD DMA interrupt number for omap1 that did not get changed for sparse IRQ changes * tag 'omap-for-v4.3/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: usb: musb: omap2430: Fix regression caused by driver core change ARM: OMAP1: fix incorrect INT_DMA_LCD Signed-off-by: Olof Johansson commit 8731b269f01e16193390c7276e70530366b8d626 Author: Maneet Singh Date: Thu Oct 8 10:10:24 2015 -0400 drm: Correct arguments to list_tail_add in create blob ioctl Arguments passed to list_add_tail were reversed resulting in deletion of old blob property everytime the new one is added. Fixes commit e2f5d2ea479b9b2619965d43db70939589afe43a Author: Daniel Stone Date: Fri May 22 13:34:51 2015 +0100 drm/mode: Add user blob-creation ioctl Signed-off-by: Maneet Singh [seanpaul tweaked commit subject a little] Signed-off-by: Sean Paul Cc: stable@kernel.org # v4.2 Reviewed-by: Daniel Stone Reviewed-by: Jani Nikula Signed-off-by: Dave Airlie drivers/gpu/drm/drm_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d01552a76d71f9879af448e9142389ee9be6e95b Author: NeilBrown Date: Sat Oct 31 11:00:56 2015 +1100 Revert "md: allow a partially recovered device to be hot-added to an array." This reverts commit 7eb418851f3278de67126ea0c427641ab4792c57. This commit is poorly justified, I can find not discusison in email, and it clearly causes a problem. If a device which is being recovered fails and is subsequently re-added to an array, there could easily have been changes to the array *before* the point where the recovery was up to. So the recovery must start again from the beginning. If a spare is being recovered and fails, then when it is re-added we really should do a bitmap-based recovery up to the recovery-offset, and then a full recovery from there. Before this reversion, we only did the "full recovery from there" which is not corect. After this reversion with will do a full recovery from the start, which is safer but not ideal. It will be left to a future patch to arrange the two different styles of recovery. Reported-and-tested-by: Nate Dailey Signed-off-by: NeilBrown Cc: stable@vger.kernel.org (3.14+) Fixes: 7eb418851f32 ("md: allow a partially recovered device to be hot-added to an array.") drivers/md/md.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9ac0934bbe52290e4e4c2a58ec41cab9b6ca8c96 Author: Dan Carpenter Date: Thu Oct 29 16:37:54 2015 +0300 drm: crtc: integer overflow in drm_property_create_blob() The size here comes from the user via the ioctl, it is a number between 1-u32max so the addition here could overflow on 32 bit systems. Fixes: f453ba046074 ('DRM: add mode setting support') Signed-off-by: Dan Carpenter Reviewed-by: Daniel Stone Cc: stable@kernel.org # v4.2 Signed-off-by: Dave Airlie drivers/gpu/drm/drm_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b971e771ece3f3fa9c6074e5a12d9304e5fa9ef Merge: 7c0f488 73effcc Author: Linus Torvalds Date: Fri Oct 30 16:57:55 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Apologies for this being so late, but we've uncovered a few nasty issues on arm64 which didn't settle down until yesterday and the fixes all look suitable for 4.3. Of the four patches, three of them are Cc'd to stable, with the remaining patch fixing an issue that only took effect during the merge window. Summary: - Fix corruption in SWP emulation when STXR fails due to contention - Fix MMU re-initialisation when resuming from a low-power state - Fix stack unwinding code to match what ftrace expects - Fix relocation code in the EFI stub when DRAM base is not 2MB aligned" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64/efi: do not assume DRAM base is aligned to 2 MB Revert "ARM64: unwind: Fix PC calculation" arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap arm64: compat: fix stxr failure case in SWP emulation commit 7c0f488fbed7e498043f26de42c89c00855028c1 Merge: 8a28d67 d305c47 Author: Linus Torvalds Date: Fri Oct 30 16:56:44 2015 -0700 Merge tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux Pull ia64 kcmp syscall from Tony Luck: "Missed adding the kcmp() syscall a long time ago. Now it seems that it is essential to build systemd" * tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: [IA64] Wire up kcmp syscall commit b8a9d66d043ffac116100775a469f05f5158c16f Author: Roman Gushchin Date: Sat Oct 31 10:53:50 2015 +1100 md/raid5: fix locking in handle_stripe_clean_event() After commit 566c09c53455 ("raid5: relieve lock contention in get_active_stripe()") __find_stripe() is called under conf->hash_locks + hash. But handle_stripe_clean_event() calls remove_hash() under conf->device_lock. Under some cirscumstances the hash chain can be circuited, and we get an infinite loop with disabled interrupts and locked hash lock in __find_stripe(). This leads to hard lockup on multiple CPUs and following system crash. I was able to reproduce this behavior on raid6 over 6 ssd disks. The devices_handle_discard_safely option should be set to enable trim support. The following script was used: for i in `seq 1 32`; do dd if=/dev/zero of=large$i bs=10M count=100 & done neilb: original was against a 3.x kernel. I forward-ported to 4.3-rc. This verison is suitable for any kernel since Commit: 59fc630b8b5f ("RAID5: batch adjacent full stripe write") (v4.1+). I'll post a version for earlier kernels to stable. Signed-off-by: Roman Gushchin Fixes: 566c09c53455 ("raid5: relieve lock contention in get_active_stripe()") Signed-off-by: NeilBrown Cc: Shaohua Li Cc: # 3.13 - 4.2 drivers/md/raid5.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit bae818ee1577c27356093901a0ea48f672eda514 Author: Ronny Hegewald Date: Thu Oct 15 18:50:46 2015 +0000 rbd: require stable pages if message data CRCs are enabled rbd requires stable pages, as it performs a crc of the page data before they are send to the OSDs. But since kernel 3.9 (patch 1d1d1a767206fbe5d4c69493b7e6d2a8d08cc0a0 "mm: only enforce stable page writes if the backing device requires it") it is not assumed anymore that block devices require stable pages. This patch sets the necessary flag to get stable pages back for rbd. In a ceph installation that provides multiple ext4 formatted rbd devices "bad crc" messages appeared regularly (ca 1 message every 1-2 minutes on every OSD that provided the data for the rbd) in the OSD-logs before this patch. After this patch this messages are pretty much gone (only ca 1-2 / month / OSD). Cc: stable@vger.kernel.org # 3.9+, needs backporting Signed-off-by: Ronny Hegewald [idryomov@gmail.com: require stable pages only in crc case, changelog] Signed-off-by: Ilya Dryomov drivers/block/rbd.c | 3 +++ 1 file changed, 3 insertions(+) commit 04ccb89073e7cfc31d9b9208d32b2cdf84a4d97d Merge: 8a28d67 ae93580 Author: Dave Airlie Date: Fri Oct 30 09:32:59 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes regression fix for backlight on old laptops. * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: fix dpms when driver backlight control is disabled drm/radeon: move bl encoder assignment into bl init commit 73effccb9196ccc0241c3fb51dfd8de1d14ae8ed Author: Ard Biesheuvel Date: Thu Oct 29 15:07:25 2015 +0100 arm64/efi: do not assume DRAM base is aligned to 2 MB The current arm64 Image relocation code in the UEFI stub assumes that the dram_base argument it receives is always a multiple of 2 MB. In reality, it is simply the lowest start address of all RAM entries in the UEFI memory map, which means it could be any multiple of 4 KB. Since the arm64 kernel Image needs to reside TEXT_OFFSET bytes beyond a 2 MB aligned base, or it will fail to boot, make sure we round dram_base to 2 MB before using it to calculate the relocation address. Fixes: e38457c361b30c5a ("arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux") Reported-by: Timur Tabi Tested-by: Timur Tabi Acked-by: Mark Rutland Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/efi-stub.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit ae93580ee59c02395c1711d3e6b90546b8137b86 Author: Alex Deucher Date: Tue Oct 27 10:56:44 2015 -0400 drm/radeon: fix dpms when driver backlight control is disabled If driver backlight control is disabled, either by driver parameter or default per-asic setting, revert to the old behavior. Fixes a regression in commit: 4281f46ef839050d2ef60348f661eb463c21cc2e Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/atombios_encoders.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 4cee6a9057d5e13911f0cb6e143d11dc1a3245dd Author: Alex Deucher Date: Wed Oct 28 14:26:32 2015 -0400 drm/radeon: move bl encoder assignment into bl init So that the bl encoder will be null if the GPU does not control the backlight. Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/atombios_encoders.c | 1 + drivers/gpu/drm/radeon/radeon_encoders.c | 1 - drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) commit 89bc7848a91bc99532f5c21b2885472ba710f249 Author: Hannes Frederic Sowa Date: Wed Oct 28 13:21:04 2015 +0100 ipv6: protect mtu calculation of wrap-around and infinite loop by rounding issues Raw sockets with hdrincl enabled can insert ipv6 extension headers right into the data stream. In case we need to fragment those packets, we reparse the options header to find the place where we can insert the fragment header. If the extension headers exceed the link's MTU we actually cannot make progress in such a case. Instead of ending up in broken arithmetic or rounding towards 0 and entering an endless loop in ip6_fragment, just prevent those cases by aborting early and signal -EMSGSIZE to user space. This is the second version of the patch which doesn't use the overflow_usub function, which got reverted for now. Suggested-by: Linus Torvalds Cc: Linus Torvalds Reported-by: Dmitry Vyukov Cc: Dmitry Vyukov Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 2 ++ 1 file changed, 2 insertions(+) commit 1e0d69a9cc9172d7896c2113f983a74f6e8ff303 Author: Hannes Frederic Sowa Date: Wed Oct 28 13:21:03 2015 +0100 Revert "Merge branch 'ipv6-overflow-arith'" Linus dislikes these changes. To not hold up the net-merge let's revert it for now and fix the bug like Linus suggested. This reverts commit ec3661b42257d9a06cf0d318175623ac7a660113, reversing changes made to c80dbe04612986fd6104b4a1be21681b113b5ac9. Cc: Linus Torvalds Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/linux/compiler-gcc.h | 4 ---- include/linux/overflow-arith.h | 18 ------------------ net/ipv6/ip6_output.c | 6 +----- 3 files changed, 1 insertion(+), 27 deletions(-) commit d305c4773458fdd6ff9c52bfdea8c67fbd3b2072 Author: Émeric MASCHINO Date: Tue Sep 22 23:58:48 2015 +0200 [IA64] Wire up kcmp syscall systemd > 218 fails to compile on ia64 with: error: ‘__NR_kcmp’ undeclared [1]. I've been told that this is because the kcmp syscall hasn't been wired up for the ia64 arch [2]. The proposed patch thus wire up the kcmp syscall for the ia64 arch. [1] https://bugs.gentoo.org/show_bug.cgi?id=560492 [2] https://bugs.gentoo.org/show_bug.cgi?id=560492#c17 Signed-off-by: Émeric MASCHINO 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 8f2279d5d908119a08e906be1c6b69c744d0c379 Author: Tony Lindgren Date: Wed Oct 28 10:16:04 2015 -0700 usb: musb: omap2430: Fix regression caused by driver core change Commit ddef08dd00f5 ("Driver core: wakeup the parent device before trying probe") started automatically ensuring the parent device is enabled when the child gets probed. This however caused a regression for MUSB omap2430 interface as the runtime PM for the parent device needs the child initialized to access the MUSB hardware registers. Let's delay the enabling of PM runtime for the parent until the child has been properly initialized as suggested in an earlier patch by Grygorii Strashko . In addition to delaying pm_runtime_enable, we now also need to make sure the parent is enabled during omap2430_musb_init. We also want to propagate an error from omap2430_runtime_resume if struct musb is not initialized. Note that we use pm_runtime_put_noidle here for both the child and parent to prevent an extra runtime_suspend/resume cycle. Let's also add some comments to avoid confusion between the two different devices. Fixes: ddef08dd00f5 ("Driver core: wakeup the parent device before trying probe") Suggested-by: Grygorii Strashko Reviewed-by: Grygorii Strashko Acked-by: Felipe Balbi Signed-off-by: Tony Lindgren drivers/usb/musb/omap2430.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) commit 9702970c7bd3e2d6fecb642a190269131d4ac16c Author: Will Deacon Date: Wed Oct 28 16:56:13 2015 +0000 Revert "ARM64: unwind: Fix PC calculation" This reverts commit e306dfd06fcb44d21c80acb8e5a88d55f3d1cf63. With this patch applied, we were the only architecture making this sort of adjustment to the PC calculation in the unwinder. This causes problems for ftrace, where the PC values are matched against the contents of the stack frames in the callchain and fail to match any records after the address adjustment. Whilst there has been some effort to change ftrace to workaround this, those patches are not yet ready for mainline and, since we're the odd architecture in this regard, let's just step in line with other architectures (like arch/arm/) for now. Cc: Signed-off-by: Will Deacon arch/arm64/kernel/stacktrace.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit e13d918a19a7b6cba62b32884f5e336e764c2cc6 Author: Lorenzo Pieralisi Date: Tue Oct 27 17:29:10 2015 +0000 arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap Commit dd006da21646 ("arm64: mm: increase VA range of identity map") introduced a mechanism to extend the virtual memory map range to support arm64 systems with system RAM located at very high offset, where the identity mapping used to enable/disable the MMU requires additional translation levels to map the physical memory at an equal virtual offset. The kernel detects at boot time the tcr_el1.t0sz value required by the identity mapping and sets-up the tcr_el1.t0sz register field accordingly, any time the identity map is required in the kernel (ie when enabling the MMU). After enabling the MMU, in the cold boot path the kernel resets the tcr_el1.t0sz to its default value (ie the actual configuration value for the system virtual address space) so that after enabling the MMU the memory space translated by ttbr0_el1 is restored as expected. Commit dd006da21646 ("arm64: mm: increase VA range of identity map") also added code to set-up the tcr_el1.t0sz value when the kernel resumes from low-power states with the MMU off through cpu_resume() in order to effectively use the identity mapping to enable the MMU but failed to add the code required to restore the tcr_el1.t0sz to its default value, when the core returns to the kernel with the MMU enabled, so that the kernel might end up running with tcr_el1.t0sz value set-up for the identity mapping which can be lower than the value required by the actual virtual address space, resulting in an erroneous set-up. This patchs adds code in the resume path that restores the tcr_el1.t0sz default value upon core resume, mirroring this way the cold boot path behaviour therefore fixing the issue. Cc: Cc: Catalin Marinas Fixes: dd006da21646 ("arm64: mm: increase VA range of identity map") Acked-by: Ard Biesheuvel Signed-off-by: Lorenzo Pieralisi Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/kernel/suspend.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 589cb22bbedacf325951014c07a35a2b01ca57f6 Author: Will Deacon Date: Thu Oct 15 13:55:53 2015 +0100 arm64: compat: fix stxr failure case in SWP emulation If the STXR instruction fails in the SWP emulation code, we leave *data overwritten with the loaded value, therefore corrupting the data written by a subsequent, successful attempt. This patch re-jigs the code so that we only write back to *data once we know that the update has happened. Cc: Fixes: bd35a4adc413 ("arm64: Port SWP/SWPB emulation support from arm") Reported-by: Shengjiu Wang Reported-by: Vladimir Murzin Signed-off-by: Will Deacon arch/arm64/kernel/armv8_deprecated.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 1bd5dfe41b994a6e793363894befef76626965a9 Author: Aaro Koskinen Date: Mon Oct 26 20:23:53 2015 +0200 ARM: OMAP1: fix incorrect INT_DMA_LCD Commit 685e2d08c54b ("ARM: OMAP1: Change interrupt numbering for sparse IRQ") turned on SPARSE_IRQ on OMAP1, but forgot to change the number of INT_DMA_LCD. This broke the boot at least on Nokia 770, where the device hangs during framebuffer initialization. Fix by defining INT_DMA_LCD like the other interrupts. Cc: stable@vger.kernel.org # v4.2+ Fixes: 685e2d08c54b ("ARM: OMAP1: Change interrupt numbering for sparse IRQ") Signed-off-by: Aaro Koskinen Signed-off-by: Tony Lindgren include/linux/omap-dma.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe326c5cc07cd265abad29c35c142cfae09889e4 Author: Magnus Damm Date: Wed Oct 28 10:43:23 2015 +0900 clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue On the r7s72100 Genmai board the MTU2 driver currently triggers a common clock framework WARN_ON(enable_count) when disabling the clock due to the MTU2 driver after recent callback rework may call ->set_state_shutdown() multiple times. A similar issue was spotted for the TMU driver and fixed in: 452b132 clocksource/drivers/sh_tmu: Fix traceback spotted in -next On r7s72100 Genmai v4.3-rc7 built with shmobile_defconfig spits out the following during boot: sh_mtu2 fcff0000.timer: ch0: used for clock events ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:675 clk_core_disable+0x2c/0x6c() CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-rc7 #1 Hardware name: Generic R7S72100 (Flattened Device Tree) Backtrace: [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [] (show_stack) from [] (dump_stack+0x74/0x90) [] (dump_stack) from [] (warn_slowpath_common+0x88/0xb4) [] (warn_slowpath_common) from [] (warn_slowpath_null+0x24/0x2c) [] (warn_slowpath_null) from [] (clk_core_disable+0x2c/0x6c) [] (clk_core_disable) from [] (clk_disable+0x40/0x4c) [] (clk_disable) from [] (sh_mtu2_disable+0x24/0x50) [] (sh_mtu2_disable) from [] (sh_mtu2_clock_event_shutdown+0x14/0x1c) [] (sh_mtu2_clock_event_shutdown) from [] (clockevents_switch_state+0xc8/0x114) [] (clockevents_switch_state) from [] (clockevents_shutdown+0x18/0x28) [] (clockevents_shutdown) from [] (clockevents_exchange_device+0x70/0x78) [] (clockevents_exchange_device) from [] (tick_check_new_device+0x88/0xe0) [] (tick_check_new_device) from [] (clockevents_register_device+0xac/0x120) [] (clockevents_register_device) from [] (sh_mtu2_probe+0x230/0x350) [] (sh_mtu2_probe) from [] (platform_drv_probe+0x50/0x98) Reported-by: Chris Brandt Fixes: 19a9ffb ("clockevents/drivers/sh_mtu2: Migrate to new 'set-state' interface") Cc: Viresh Kumar Cc: Laurent Pinchart Signed-off-by: Magnus Damm Signed-off-by: Daniel Lezcano Reviewed-by: Viresh Kumar drivers/clocksource/sh_mtu2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8a28d67457b613258aa0578ccece206d166f2b9f Merge: a22c4d7 977bf06 Author: Linus Torvalds Date: Wed Oct 28 18:59:53 2015 +0900 Merge tag 'powerpc-4.3-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fix from Michael Ellerman: - powerpc/dma: dma_set_coherent_mask() should not be GPL only from Ben * tag 'powerpc-4.3-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/dma: dma_set_coherent_mask() should not be GPL only commit 977bf062bba3eb8d03f66d5b4e227e5d7ebc1e08 Author: Benjamin Herrenschmidt Date: Tue Oct 27 17:20:05 2015 +0900 powerpc/dma: dma_set_coherent_mask() should not be GPL only When turning this from inline to an exported function I was a bit over-eager and made it GPL only. This prevents the use of pretty much all non-GPL PCI driver which is a bit over the top. Let's bring it back in line with other architecture. Fixes: 817820b0226a ("powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask") Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/kernel/dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e18f6ac30d31433d8cd9ccf693d3cdd5d2e66ef9 Merge: e407f39 c02b050 Author: David S. Miller Date: Tue Oct 27 20:27:45 2015 -0700 Merge branch 'mlx4-fixes' Or Gerlitz says: ==================== Mellanox mlx4 driver fixes for 4.3-rc7 Jack's fix is for a regression introduced in 4.3-rc1 Carol's fix addresses an issue which exists for while and turns to beat us hard on PPC, please queue for -stable. ==================== Signed-off-by: David S. Miller commit c02b05011fadf8e409e41910217ca689f2fc9d91 Author: Carol L Soto Date: Tue Oct 27 17:36:20 2015 +0200 net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes When doing memcpy/memset of EQEs, we should use sizeof struct mlx4_eqe as the base size and not caps.eqe_size which could be bigger. If caps.eqe_size is bigger than the struct mlx4_eqe then we corrupt data in the master context. When using a 64 byte stride, the memcpy copied over 63 bytes to the slave_eq structure. This resulted in copying over the entire eqe of interest, including its ownership bit -- and also 31 bytes of garbage into the next WQE in the slave EQ -- which did NOT include the ownership bit (and therefore had no impact). However, once the stride is increased to 128, we are overwriting the ownership bits of *three* eqes in the slave_eq struct. This results in an incorrect ownership bit for those eqes, which causes the eq to seem to be full. The issue therefore surfaced only once 128-byte EQEs started being used in SRIOV and (overarchitectures that have 128/256 byte cache-lines such as PPC) - e.g after commit 77507aa249ae "net/mlx4_core: Enable CQE/EQE stride support". Fixes: 08ff32352d6f ('mlx4: 64-byte CQE/EQE support') Signed-off-by: Carol L Soto Signed-off-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/cmd.c | 2 +- drivers/net/ethernet/mellanox/mlx4/eq.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 092bf0fc80f5fb7928244ad63d8a2a8df8a72a3e Author: Jack Morgenstein Date: Tue Oct 27 17:36:19 2015 +0200 net/mlx4_en: Explicitly set no vlan tags in WQE ctrl segment when no vlan is present We do not set the ins_vlan field to zero when no vlan id is present in the packet. Since WQEs in the TX ring are not zeroed out between uses, this oversight could result in having vlan flags present in the WQE ctrl segment when no vlan is preset. Fixes: e38af4faf01d ('net/mlx4_en: Add support for hardware accelerated 802.1ad vlan') Reported-by: Gideon Naim Signed-off-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_tx.c | 2 ++ 1 file changed, 2 insertions(+) commit e407f39afdc0741dcf20aed100b8e738ccab7cb1 Author: Michael S. Tsirkin Date: Tue Oct 27 11:37:39 2015 +0200 vhost: fix performance on LE hosts commit 2751c9882b947292fcfb084c4f604e01724af804 ("vhost: cross-endian support for legacy devices") introduced a minor regression: even with cross-endian disabled, and even on LE host, vhost_is_little_endian is checking is_le flag so there's always a branch. To fix, simply check virtio_legacy_is_little_endian first. Cc: Greg Kurz Signed-off-by: Michael S. Tsirkin Reviewed-by: Greg Kurz Signed-off-by: David S. Miller drivers/vhost/vhost.h | 7 +++++++ 1 file changed, 7 insertions(+) commit 85ff8a43f39fa6d2f970b5e1e5c03df87abde242 Author: Yang Shi Date: Mon Oct 26 17:02:19 2015 -0700 bpf: sample: define aarch64 specific registers Define aarch64 specific registers for building bpf samples correctly. Signed-off-by: Yang Shi Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller samples/bpf/bpf_helpers.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 20986ed826cbb36bb8f2d77f872e3c52d8d30647 Author: Lendacky, Thomas Date: Mon Oct 26 17:13:54 2015 -0500 amd-xgbe: Fix race between access of desc and desc index During Tx cleanup it's still possible for the descriptor data to be read ahead of the descriptor index. A memory barrier is required between the read of the descriptor index and the start of the Tx cleanup loop. This allows a change to a lighter-weight barrier in the Tx transmit routine just before updating the current descriptor index. Since the memory barrier does result in extra overhead on arm64, keep the previous change to not chase the current descriptor value. This prevents the execution of the barrier for each loop performed. Suggested-by: Alexander Duyck Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 2 +- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 8ce675ff39b9958d1c10f86cf58e357efaafc856 Author: Sowmini Varadhan Date: Mon Oct 26 12:46:37 2015 -0400 RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv Either of pskb_pull() or pskb_trim() may fail under low memory conditions. If rds_tcp_data_recv() ignores such failures, the application will receive corrupted data because the skb has not been correctly carved to the RDS datagram size. Avoid this by handling pskb_pull/pskb_trim failure in the same manner as the skb_clone failure: bail out of rds_tcp_data_recv(), and retry via the deferred call to rds_send_worker() that gets set up on ENOMEM from rds_tcp_read_sock() Signed-off-by: Sowmini Varadhan Acked-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/tcp_recv.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 0b7c874348ea14ec3c358fe95e56d6f830540248 Author: Neil Horman Date: Mon Oct 26 12:24:22 2015 -0400 forcedeth: fix unilateral interrupt disabling in netpoll path Forcedeth currently uses disable_irq_lockdep and enable_irq_lockdep, which in some configurations simply calls local_irq_disable. This causes errant warnings in the netpoll path as in netpoll_send_skb_on_dev, where we disable irqs using local_irq_save, leading to the following warning: WARNING: at net/core/netpoll.c:352 netpoll_send_skb_on_dev+0x243/0x250() (Not tainted) Hardware name: netpoll_send_skb_on_dev(): eth0 enabled interrupts in poll (nv_start_xmit_optimized+0x0/0x860 [forcedeth]) Modules linked in: netconsole(+) configfs ipv6 iptable_filter ip_tables ppdev parport_pc parport sg microcode serio_raw edac_core edac_mce_amd k8temp snd_hda_codec_realtek snd_hda_codec_generic forcedeth snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc i2c_nforce2 i2c_core shpchp ext4 jbd2 mbcache sr_mod cdrom sd_mod crc_t10dif pata_amd ata_generic pata_acpi sata_nv dm_mirror dm_region_hash dm_log dm_mod [last unloaded: scsi_wait_scan] Pid: 1940, comm: modprobe Not tainted 2.6.32-573.7.1.el6.x86_64.debug #1 Call Trace: [] ? warn_slowpath_common+0x91/0xe0 [] ? warn_slowpath_fmt+0x46/0x60 [] ? nv_start_xmit_optimized+0x0/0x860 [forcedeth] [] ? netpoll_send_skb_on_dev+0x243/0x250 [] ? netpoll_send_udp+0x229/0x270 [] ? write_msg+0x39/0x110 [netconsole] [] ? write_msg+0xbb/0x110 [netconsole] [] ? __call_console_drivers+0x75/0x90 [] ? _call_console_drivers+0x4a/0x80 [] ? release_console_sem+0xe5/0x250 [] ? register_console+0x190/0x3e0 [] ? init_netconsole+0x1a6/0x216 [netconsole] [] ? init_netconsole+0x0/0x216 [netconsole] [] ? do_one_initcall+0xc0/0x280 [] ? sys_init_module+0xe3/0x260 [] ? system_call_fastpath+0x16/0x1b ---[ end trace f349c7af88e6a6d5 ]--- console [netcon0] enabled netconsole: network logging started Fix it by modifying the forcedeth code to use disable_irq_nosync_lockdep_irqsavedisable_irq_nosync_lockdep_irqsave instead, which saves and restores irq state properly. This also saves us a little code in the process Tested by the reporter, with successful restuls Patch applies to the head of the net tree Signed-off-by: Neil Horman CC: "David S. Miller" Reported-by: Vasily Averin Signed-off-by: David S. Miller drivers/net/ethernet/nvidia/forcedeth.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit 6f5cadee44d83395dcd78d557b577e1021e192e4 Author: Joe Stringer Date: Sun Oct 25 20:21:50 2015 -0700 openvswitch: Fix skb leak using IPv6 defrag nf_ct_frag6_gather() makes a clone of each skb passed to it, and if the reassembly is successful, expects the caller to free all of the original skbs using nf_ct_frag6_consume_orig(). This call was previously missing, meaning that the original fragments were never freed (with the exception of the last fragment to arrive). Fix this by ensuring that all original fragments except for the last fragment are freed via nf_ct_frag6_consume_orig(). The last fragment will be morphed into the head, so it must not be freed yet. Furthermore, retain the ->next pointer for the head after skb_morph(). Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action") Reported-by: Florian Westphal Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/conntrack.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 190b8ffbb700a9aa47acc559779bc79c0cb14766 Author: Joe Stringer Date: Sun Oct 25 20:21:49 2015 -0700 ipv6: Export nf_ct_frag6_consume_orig() This is needed in openvswitch to fix an skb leak in the next patch. Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/ipv6/netfilter/nf_conntrack_reasm.c | 1 + 1 file changed, 1 insertion(+) commit 74c16618137f1505b0a32dea3ec73a2ef6f8f842 Author: Joe Stringer Date: Sun Oct 25 20:21:48 2015 -0700 openvswitch: Fix double-free on ip_defrag() errors If ip_defrag() returns an error other than -EINPROGRESS, then the skb is freed. When handle_fragments() passes this back up to do_execute_actions(), it will be freed again. Prevent this double free by never freeing the skb in do_execute_actions() for errors returned by ovs_ct_execute. Always free it in ovs_ct_execute() error paths instead. Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action") Reported-by: Florian Westphal Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 4 ++-- net/openvswitch/conntrack.c | 17 +++++++++++++---- net/openvswitch/conntrack.h | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) commit c2229fe1430d4e1c70e36520229dd64a87802b20 Author: Alexander Duyck Date: Tue Oct 27 15:06:45 2015 -0700 fib_trie: leaf_walk_rcu should not compute key if key is less than pn->key We were computing the child index in cases where the key value we were looking for was actually less than the base key of the tnode. As a result we were getting incorrect index values that would cause us to skip over some children. To fix this I have added a test that will force us to use child index 0 if the key we are looking for is less than the key of the current tnode. Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf") Reported-by: Brian Rak Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/ipv4/fib_trie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a22c4d7e34402ccdf3414f64c50365436eba7b93 Author: Ming Lin Date: Thu Oct 22 09:59:42 2015 -0700 block: re-add discard_granularity and alignment checks In commit b49a087("block: remove split code in blkdev_issue_{discard,write_same}"), discard_granularity and alignment checks were removed. Ideally, with bio late splitting, the upper layers shouldn't need to depend on device's limits. Christoph reported a discard regression on the HGST Ultrastar SN100 NVMe device when mkfs.xfs. We have not found the root cause yet. This patch re-adds discard_granularity and alignment checks by reverting the related changes in commit b49a087. The good thing is now we can remove the 2G discard size cap and just use UINT_MAX to avoid bi_size overflow. Reviewed-by: Christoph Hellwig Tested-by: Christoph Hellwig Signed-off-by: Ming Lin Reviewed-by: Mike Snitzer Signed-off-by: Jens Axboe block/blk-lib.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) commit 23d88271b4f97f66de521ac9b2c1471e6311cf26 Merge: 3d0aa36 625faa6 Author: Linus Torvalds Date: Wed Oct 28 07:24:53 2015 +0900 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Two fixes for ARM and one for clkdev: - Fix another build issue with vdsomunge on non-glibc systems - Fix a randconfig build error caused by an invalid configuration - Fix a clkdev problem causing the Nokia n700 to no longer boot" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: clkdev: fix clk_add_alias() with a NULL alias device name ARM: 8445/1: fix vdsomunge not to depend on glibc specific byteswap.h ARM: make RiscPC depend on MMU commit 3d0aa366072a194c6a339d37b85d5b99e936097e Merge: dc5bc3f 174fd8d Author: Linus Torvalds Date: Wed Oct 28 07:22:15 2015 +0900 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull blkcg fix from Jens Axboe: "One final fix that should go into 4.3. It's a simple 2x1 liner, fixing a blkcg accounting issue. It was using the wrong bio member to look at the sync and write bits..." * 'for-linus' of git://git.kernel.dk/linux-block: blkcg: fix incorrect read/write sync/async stat accounting commit dc5bc3f1e3d886ce1193281bb2bfb2b44f4aeae4 Merge: 9e17f90 3fc89ad Author: Linus Torvalds Date: Wed Oct 28 07:20:10 2015 +0900 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fix from Herbert Xu: "This fixes a problem in the Crypto API that may cause spurious errors when signals are received by the process that made the orignal system call into the kernel" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: api - Only abort operations on fatal signal commit 9e17f9070280bd58af9aead415544387a7a61427 Merge: 858e904 275d7d4 Author: Linus Torvalds Date: Wed Oct 28 07:17:50 2015 +0900 Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux Pull module preemption fix from Rusty Russell: "Turns out we should have always been disabling preemption here; someone finally caught it thanks to Peter Z's additional checks" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: module: Fix locking in symbol_put_addr() commit 174fd8d369613c4e06660f3704caaba48dac8554 Author: Tejun Heo Date: Thu Oct 22 09:27:12 2015 +0900 blkcg: fix incorrect read/write sync/async stat accounting While unifying how blkcg stats are collected, 77ea733884eb ("blkcg: move io_service_bytes and io_serviced stats into blkcg_gq") incorrectly used bio->flags instead of bio->rw to tell the IO type. This made IOs to be accounted as the wrong type. Fix it. Signed-off-by: Tejun Heo Fixes: 77ea733884eb ("blkcg: move io_service_bytes and io_serviced stats into blkcg_gq") Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe include/linux/blk-cgroup.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d6a32b98099fb6b257e9b4f7b3febb5aae6f7408 Author: Christoph Hellwig Date: Thu Oct 8 09:25:32 2015 +0100 scsi_dh: don't try to load a device handler during async probing Request_module gets really unhappy when called from async probing, so revert to not auto load device handler modules during the SCSI bus scan. While autoloading would be really useful we never did this until 4.3-rc and it turns out that functionality doesn't actually work. Fixes: 566079 ("dm-mpath, scsi_dh: request scsi_dh modules in scsi_dh, not dm-mpath") Signed-off-by: Christoph Hellwig Reported-by: Paul Mackerras Tested-by: Paul Mackerras Signed-off-by: James Bottomley drivers/scsi/scsi_dh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8fe012964a39ead19405ba8d65f50d4fd598f5b8 Merge: 7e3b6e7 26b7974 Author: David S. Miller Date: Mon Oct 26 22:08:22 2015 -0700 Merge branch 'net_of_node_put' Julia Lawall says: ==================== add missing of_node_put The various for_each device_node iterators performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. The complete semantic patch that fixes this problem is (http://coccinelle.lip6.fr): // @r@ local idexpression n; expression e1,e2; iterator name for_each_node_by_name, for_each_node_by_type, for_each_compatible_node, for_each_matching_node, for_each_matching_node_and_match, for_each_child_of_node, for_each_available_child_of_node, for_each_node_with_property; iterator i; statement S; expression list [n1] es; @@ ( ( for_each_node_by_name(n,e1) S | for_each_node_by_type(n,e1) S | for_each_compatible_node(n,e1,e2) S | for_each_matching_node(n,e1) S | for_each_matching_node_and_match(n,e1,e2) S | for_each_child_of_node(e1,n) S | for_each_available_child_of_node(e1,n) S | for_each_node_with_property(n,e1) S ) & i(es,n,...) S ) @@ local idexpression r.n; iterator r.i; expression e; expression list [r.n1] es; @@ i(es,n,...) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? return ...; ) ... } @@ local idexpression r.n; iterator r.i; expression e; expression list [r.n1] es; @@ i(es,n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n @@ local idexpression r.n; iterator r.i; expression e; identifier l; expression list [r.n1] es; @@ i(es,n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? goto l; ) ... } ... l: ... when != n// ==================== Signed-off-by: David S. Miller commit 26b7974d9ad7f93891ee8c39ee63bd2515da7744 Author: Julia Lawall Date: Sun Oct 25 14:57:07 2015 +0100 net: mv643xx_eth: add missing of_node_put 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 ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 81a577034b000964ca791281a975f0ba9a9d7eed Author: Julia Lawall Date: Sun Oct 25 14:57:06 2015 +0100 ath6kl: add missing of_node_put for_each_compatible_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; local idexpression n; @@ for_each_compatible_node(n,...) { ... when != of_node_put(n) when != e = n ( return n; | + of_node_put(n); ? return ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/wireless/ath/ath6kl/init.c | 1 + 1 file changed, 1 insertion(+) commit 028623418766ea64f4256035b06ac6cbc0a67892 Author: Julia Lawall Date: Sun Oct 25 14:57:03 2015 +0100 net: phy: mdio: add missing of_node_put 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 ...; ) ... } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/phy/mdio-mux-mmioreg.c | 2 ++ 1 file changed, 2 insertions(+) commit 447ed7360037b6e38c0206ddcbd04a256ec94099 Author: Julia Lawall Date: Sun Oct 25 14:57:02 2015 +0100 netdev/phy: add missing of_node_put 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): // @@ local idexpression r.n; expression r,e; @@ for_each_available_child_of_node(r,n) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/phy/mdio-mux.c | 1 + 1 file changed, 1 insertion(+) commit bd252796852193277a07da505601a2f407c70e0b Author: Julia Lawall Date: Sun Oct 25 14:57:01 2015 +0100 net: netcp: 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): // @@ local idexpression r.n; expression r,e; @@ for_each_child_of_node(r,n) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8c387ebbaff8652943a1cbcab496aecadc6a8875 Author: Julia Lawall Date: Sun Oct 25 14:57:00 2015 +0100 net: thunderx: 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): // @@ local idexpression r.n; expression r,e; @@ for_each_child_of_node(r,n) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7e3b6e7423d5f994257c1de88e06b509673fdbcf Author: Eric Dumazet Date: Sat Oct 24 05:47:44 2015 -0700 ipv6: gre: support SIT encapsulation gre_gso_segment() chokes if SIT frames were aggregated by GRO engine. Fixes: 61c1db7fae21e ("ipv6: sit: add GSO/TSO support") Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/gre_offload.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 23695e41a1cac017edad2b38607f33678a31b877 Author: Junichi Nomura Date: Tue Oct 6 04:32:57 2015 +0000 scsi_dh: fix use-after-free when removing scsi device The commit 1bab0de0274f ("dm-mpath, scsi_dh: don't let dm detach device handlers") removed reference counting of attached scsi device handler. As a result, handler data is freed immediately via scsi_dh->detach() in the context of scsi_remove_device() where activation request can be still in flight. This patch moves scsi_dh_handler_detach() to sdev releasing function, scsi_device_dev_release_usercontext(), at that point the device is already in quiesced state. Fixes: 1bab0de0274f ("dm-mpath, scsi_dh: don't let dm detach device handlers") Signed-off-by: Jun'ichi Nomura Acked-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/scsi_dh.c | 6 +++++- drivers/scsi/scsi_priv.h | 2 ++ drivers/scsi/scsi_sysfs.c | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) commit 2280521719e81919283b82902ac24058f87dfc1b Author: Dāvis Mosāns Date: Fri Aug 21 07:29:22 2015 +0300 mvsas: Fix NULL pointer dereference in mvs_slot_task_free When pci_pool_alloc fails in mvs_task_prep then task->lldd_task stays NULL but it's later used in mvs_abort_task as slot which is passed to mvs_slot_task_free causing NULL pointer dereference. Just return from mvs_slot_task_free when passed with NULL slot. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101891 Signed-off-by: Dāvis Mosāns Reviewed-by: Tomas Henzl Reviewed-by: Johannes Thumshirn Cc: stable@vger.kernel.org Signed-off-by: James Bottomley drivers/scsi/mvsas/mv_sas.c | 2 ++ 1 file changed, 2 insertions(+) commit 3242c9ee0b6104c901336a9498bb7ec64923eb1f Merge: f7e1b37 cb36859 Author: David S. Miller Date: Mon Oct 26 18:32:22 2015 -0700 Merge branch 'sh_eth-fixes' Sergei Shtylyov says: ==================== sh_eth: RX buffer alignment fixes Here's a set of 2 patches against DaveM's 'net.git' repo which are the fixes to the RX buffer size calculation. [1/2] sh_eth: fix RX buffer size alignment [2/2] sh_eth: fix RX buffer size calculation ==================== Signed-off-by: David S. Miller commit cb3685958dd4c46d7646d244063ea3ec8adf3618 Author: Sergei Shtylyov Date: Sat Oct 24 00:46:40 2015 +0300 sh_eth: fix RX buffer size calculation The RX buffer size calulation failed to account for the length granularity (which is now 32 bytes)... Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ab8579169b79c062935dade949287113c7c1ba73 Author: Sergei Shtylyov Date: Sat Oct 24 00:46:03 2015 +0300 sh_eth: fix RX buffer size alignment Both Renesas R-Car and RZ/A1 manuals state that RX buffer length must be a multiple of 32 bytes, while the driver only uses 16 byte granularity... Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 76b1ba7feda533a74c5874a1d15bb4039083efc8 Author: Jisheng Zhang Date: Tue Oct 20 16:02:39 2015 +0800 clocksource/drivers/digicolor: Prevent ftrace recursion Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. We should not trace digicolor_timer_sched_read() function. Fix this by adding the notrace attribute to this function. Signed-off-by: Jisheng Zhang Acked-by: Baruch Siach Signed-off-by: Daniel Lezcano drivers/clocksource/timer-digicolor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd859a44b2f6749fd82e89dabbaa37f2c8aa33fe Author: Jisheng Zhang Date: Tue Oct 20 16:02:40 2015 +0800 clocksource/drivers/fsl_ftm_timer: Prevent ftrace recursion Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. We should not trace the ftm_read_sched_clock() function. Fix this by adding the notrace attribute to this function. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/fsl_ftm_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36361abc8bc14e80f6b4db561665e5e15249c181 Author: Jisheng Zhang Date: Tue Oct 20 16:02:38 2015 +0800 clocksource/drivers/vf_pit_timer: Prevent ftrace recursion Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. We should not trace the pit_read_sched_clock() function. Fix this by adding a notrace attribute to this function. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/vf_pit_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdc68ec01853baf3558c6d25f19c869add4a6888 Author: Jisheng Zhang Date: Tue Oct 20 16:02:37 2015 +0800 clocksource/drivers/prima2: Prevent ftrace recursion Currently prima2 timer can be used as a scheduler clock. We properly marked sirfsoc_read_sched_clock() as notrace but we then call another function sirfsoc_timer_read() that _wasn't_ notrace. Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. Fix this by adding notrace attribute to the sirfsoc_timer_read() function. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/timer-prima2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b8725dab66f0b2d57affb33a7f6ca094d9f1f8dd Author: Jisheng Zhang Date: Tue Oct 20 16:02:35 2015 +0800 clocksource/drivers/samsung_pwm_timer: Prevent ftrace recursion Currently samsung_pwm_timer can be used as a scheduler clock. We properly marked samsung_read_sched_clock() as notrace but we then call another function samsung_clocksource_read() that _wasn't_ notrace. Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. Fix this by adding notrace attribute to the samsung_clocksource_read() function. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/samsung_pwm_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8af0e9c644caf64d0f42dce816c18346c744a9f Author: Jisheng Zhang Date: Tue Oct 20 16:02:36 2015 +0800 clocksource/drivers/pistachio: Prevent ftrace recursion Currently pistachio can be used as a scheduler clock. We properly marked pistachio_read_sched_clock() as notrace but we then call another function pistachio_clocksource_read_cycles() that _wasn't_ notrace. Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. Fix this by adding notrace attribute to the pistachio_clocksource_read_cycles() function. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/time-pistachio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d6df3576e6b4bcf765f5ace69915b4fa4a7ee1c3 Author: Jisheng Zhang Date: Tue Oct 20 16:02:34 2015 +0800 clocksource/drivers/arm_global_timer: Prevent ftrace recursion Currently arm_global_timer can be used as a scheduler clock. We properly marked gt_sched_clock_read() as notrace but we then call another function gt_counter_read() that _wasn't_ notrace. Having a traceable function in the sched_clock() path leads to a recursion within ftrace and a kernel crash. Fix this by adding an extra notrace function to keep other users of gt_counter_read() traceable. Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/arm_global_timer.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 195562194aad3a0a3915941077f283bcc6347b9b Author: Hans de Goede Date: Mon Oct 26 01:50:28 2015 -0700 Input: alps - only the Dell Latitude D420/430/620/630 have separate stick button bits commit 92bac83dd79e ("Input: alps - non interleaved V2 dualpoint has separate stick button bits") assumes that all alps v2 non-interleaved dual point setups have the separate stick button bits. Later we limited this to Dell laptops only because of reports that this broke things on non Dell laptops. Now it turns out that this breaks things on the Dell Latitude D600 too. So it seems that only the Dell Latitude D420/430/620/630, which all share the same touchpad / stick combo, have these separate bits. This patch limits the checking of the separate bits to only these models fixing regressions with other models. Reported-and-tested-by: Larry Finger Cc: stable@vger.kernel.org Tested-by: Hans de Goede Signed-off-by: Hans de Goede Acked-By: Pali Rohár Signed-off-by: Dmitry Torokhov drivers/input/mouse/alps.c | 48 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) commit ababae44108b0e94b58eef6cb5bd830bd040a47f Author: Werner Pawlitschko Date: Tue Oct 27 09:08:04 2015 +0900 x86/ioapic: Prevent NULL pointer dereference in setup_ioapic_dest() Commit 4857c91f0d19 changed the way how irq affinity is setup in setup_ioapic_dest() from using the core helper function to unconditionally calling the irq_set_affinity() callback of the underlying irq chip. That results in a NULL pointer dereference for the rare case where the underlying irq chip is lapic_chip which has no irq_set_affinity() callback. lapic_chip is occasionally used for the timer interrupt (irq 0). The fix is simple: Check the availability of the callback instead of calling it unconditionally. Fixes: 4857c91f0d19 "x86/ioapic: Force affinity setting in setup_ioapic_dest()" Signed-off-by: Thomas Gleixner Cc: stable@vger.kernel.org arch/x86/kernel/apic/io_apic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 858e904bd71dd0057a548d6785d94ce5ec4aeabd Merge: ce6f988 cbf3ccd Author: Linus Torvalds Date: Tue Oct 27 07:44:13 2015 +0900 Merge tag 'iommu-fixes-v4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull iommu fixes from Joerg Roedel: "Two late fixes for the AMD IOMMU driver: - add an additional check to the io page-fault handler to avoid a BUG_ON being hit in handle_mm_fault() - fix a problem with devices writing to the system management area and were blocked by the IOMMU because the driver wrongly cleared out the DTE flags allowing that access" * tag 'iommu-fixes-v4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/amd: Don't clear DTE flags when modifying it iommu/amd: Fix BUG when faulting a PROT_NONE VMA commit ce6f9886037f5566cb8e440b9caa5e7d7334e53b Merge: 896066e 8bce6d3 Author: Linus Torvalds Date: Tue Oct 27 07:41:48 2015 +0900 Merge tag 'md/4.3-rc6-fixes' of git://neil.brown.name/md Pull md fixes from Neil Brown: "Some raid1/raid10 fixes. I meant to get this to you before -rc7, but what with all the travel plans.. Two fixes for bugs that are in both raid1 and raid10. Both related to bad-block-lists and at least one needs to be back ported to 3.1. Also a revision for the "new" layout in raid10. This "new" code (which aims to improve robustness) actually reduces robustness in some cases. It probably isn't in use at all as not public user-space code makes use of these new layouts. However just in case someone has their own code, it would be good to get the WARNing out for them sooner" * tag 'md/4.3-rc6-fixes' of git://neil.brown.name/md: md/raid10: fix the 'new' raid10 layout to work correctly. md/raid10: don't clear bitmap bit when bad-block-list write fails. md/raid1: don't clear bitmap bit when bad-block-list write fails. md/raid10: submit_bio_wait() returns 0 on success md/raid1: submit_bio_wait() returns 0 on success commit 896066ee1cf4d653057dac4e952f49c96ad16fa7 Merge: 85051e2 22ca7ca Author: Linus Torvalds Date: Tue Oct 27 07:40:01 2015 +0900 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Last fixes from me: one amdgpu/radeon suspend resume and one leak fix, along with one vmware fix for some issues when command submission fails" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/amdgpu: don't try to recreate sysfs entries on resume drm/radeon: don't try to recreate sysfs entries on resume drm/amdgpu: stop leaking page flip fence drm/vmwgfx: Stabilize the command buffer submission code commit 182475b7a2831abf7e6ca83b2aced0bef5dcdfd3 Author: Dan Williams Date: Mon Oct 26 16:55:56 2015 -0400 memremap: fix highmem support Currently memremap checks if the range is "System RAM" and returns the kernel linear address. This is broken for highmem platforms where a range may be "System RAM", but is not part of the kernel linear mapping. Fallback to ioremap_cache() in these cases, to let the arch code attempt to handle it. Note that ARM ioremap will WARN when attempting to remap ram, and in that case the caller needs to be fixed. For this reason, existing ioremap_cache() usages for ARM are already trained to avoid attempts to remap ram. The impact of this bug is low for now since the pmem driver is the only user of memremap(), but this is important to fix before more conversions to memremap arrive in 4.4. Cc: Rafael J. Wysocki Reported-by: Ard Biesheuvel Acked-by: Ard Biesheuvel Signed-off-by: Dan Williams kernel/memremap.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 298a96c12b2d8fd845ae0c2c21c0a1c0b470f99e Author: Ville Syrjälä Date: Sun Oct 25 23:11:43 2015 +0200 x86/dma-mapping: Fix arch_dma_alloc_attrs() oops with NULL dev Commit 6894258eda2f broke drivers that pass NULL as the device pointer to dma_alloc. The reason is that arch_dma_alloc_attrs() now calls dma_alloc_coherent_gfp_flags() which in turn calls dma_alloc_coherent_mask(), where the device pointer is dereferenced unconditionally. Fix things by moving the ISA DMA fallback device assignment before the call to dma_alloc_coherent_gfp_flags(). Fixes: 6894258eda2f ("dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent}") Reported-and-tested-by: Meelis Roos Signed-off-by: Ville Syrjälä Cc: Christoph Hellwig Link: http://lkml.kernel.org/r/1445807503-8920-1-git-send-email-ville.syrjala@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/pci-dma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 85051e295fb7487fd22546f86058e99d5266dd88 Merge: 32b8819 5dd32ea Author: Linus Torvalds Date: Mon Oct 26 12:29:16 2015 +0900 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "Two driver bugfixes for the I2C subsystem" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: pnx: fix runtime warnings caused by enabling unprepared clock i2c: mv64xxx: really allow I2C offloading commit f7e1b37ec84730c759eee54289f61f30e59d79de Merge: 30aa7b1 abb1ed7 Author: David S. Miller Date: Sun Oct 25 18:28:23 2015 -0700 Merge branch 'gianfar-fixes' Claudiu Manoil says: ==================== gianfar: Misc. fixes and updates Various fixes for some older issues, including having a MAINTAINERS entry for this driver. I'd recommend applying them on top of net, thanks. ==================== Signed-off-by: David S. Miller commit abb1ed7b793fcb10cadb378fe0eeee589b61a9e1 Author: Claudiu Manoil Date: Fri Oct 23 11:42:01 2015 +0300 MAINTAINERS: Add entry for gianfar ethernet driver Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1de65a5ea32de7b335ab505366d45cefadbbdf71 Author: Claudiu Manoil Date: Fri Oct 23 11:42:00 2015 +0300 gianfar: Fix Rx BSY error handling The Rx BSY error interrupt indicates that a frame was received and discarded due to lack of buffers, so it's a rx ring overflow condition and has nothing to do with with bad rx packets. Use the right counter. BSY conditions happen when the SoC is under performance stress. Doing *more* work in stress situations by trying to schedule NAPI is not a good idea as the stressed system becomes still more stressed. The Rx interrupt is already at work making sure the NAPI is scheduled. So calling gfar_receive() here does not help. This issue was present since day 1. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 15bf176db1fb00333af7050c0c699fc7b4e4a960 Author: Claudiu Manoil Date: Fri Oct 23 11:41:59 2015 +0300 gianfar: Don't enable the Filer w/o the Parser Under one unusual circumstance it's possible to wrongly set FILREN without enabling PRSDEP as well in the RCTRL register, against the hardware specifications. With the default config this does not happen because the default Rx offloads (Rx csum and Rx VLAN) properly enable PRSDEP. But if anyone disables all these offloads (via ethtool), we get a wrong configuration were the Rx flow classification and hashing, and other Filer based features (e.g. wake-on-filer interrupt) won't work. This patch fixes the issue. Also, account for Rx FCB insertion which happens every time PRSDEP is set. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5188f7e5a7175975f8b943a4b25e499c98a7b9d6 Author: Claudiu Manoil Date: Fri Oct 23 11:41:58 2015 +0300 gianfar: Remove duplicated argument to bitwise OR RQFCR_AND is duplicated. Add missing space as well. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar_ethtool.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 30aa7b18e8f997a6c35e8d866642396a787afbb8 Merge: ce9d9b8 34411b6 Author: David S. Miller Date: Sun Oct 25 18:13:37 2015 -0700 Merge branch 'thunderx-fixes' David Daney says: ==================== net: thunderx: Support pass-2 revision hardware. With the availability of a new revision of the ThunderX NIC hardware a few changes to the driver are required. With these, the driver works on all currently available hardware revisions. ==================== Signed-off-by: David S. Miller commit 34411b68b132e403ddf395419e986475a9993d9b Author: Thanneeru Srinivasulu Date: Fri Oct 23 17:14:10 2015 -0700 net: thunderx: Incorporate pass2 silicon CPI index configuration changes Add support for ThunderX pass2 CPI and MPI configuration changes. MPI_ALG is not enabled i.e MCAM parsing is disabled. Signed-off-by: Thanneeru Srinivasulu Signed-off-by: Sunil Goutham Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic_main.c | 29 ++++++++++++++++++++------ drivers/net/ethernet/cavium/thunder/nic_reg.h | 4 ++++ 2 files changed, 27 insertions(+), 6 deletions(-) commit 88ed237720bd618240439714a57fb69ea96428e7 Author: David Daney Date: Fri Oct 23 17:14:09 2015 -0700 net: thunderx: Rewrite silicon revision tests. The test for pass-1 silicon was incorrect, it should be for all revisions less than 8. Also the revision is already present in the pci_dev, so there is no need to read and keep a private copy. Remove rev_id and code to read it from struct nicpf. Create new static inline function pass1_silicon() to be used to testing the silicon version. Use pass1_silicon() for revision checks, this will be more widely used in follow on patches. Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic_main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 4e85777ff071b51f500b130b6d036922af32be25 Author: Sunil Goutham Date: Fri Oct 23 17:14:08 2015 -0700 net: thunderx: Fix incorrect subsystem devid of VF on pass2 silicon Signed-off-by: Sunil Goutham Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nicvf_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9bf45e08ef36b6726a5744f0029325e81b3248a Author: Sunil Goutham Date: Fri Oct 23 17:14:07 2015 -0700 net: thunderx: Remove PF soft reset. In some silicon revisions, the soft reset clobbers PCI config space, so quit doing the reset. Signed-off-by: Sunil Goutham Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic_main.c | 3 --- 1 file changed, 3 deletions(-) commit 209da39154837ec1b69fb34f438041939911e4b4 Author: Lucas Stach Date: Sun Oct 25 16:39:12 2015 +0100 irqchip/tegra: Propagate IRQ type setting to parent The LIC doesn't deal with the different types of interrupts itself but needs to forward calls to set the appropriate type to its parent IRQ controller. Without this fix all IRQs routed through the LIC will stay at the initial EDGE type, while most of them should actually be level triggered. Fixes: 1eec582158e2 "irqchip: tegra: Add Tegra210 support" Signed-off-by: Lucas Stach Cc: Stephen Warren Cc: Thierry Reding Cc: Alexandre Courbot Cc: Jason Cooper Cc: Marc Zyngier Cc: # 4.1 Link: http://lkml.kernel.org/r/1445787552-13062-1-git-send-email-dev@lynxeye.de Signed-off-by: Thomas Gleixner drivers/irqchip/irq-tegra.c | 1 + 1 file changed, 1 insertion(+) commit 353d6d6c82e5d2533ba22e7f9fb081582bf50dc2 Author: Thomas Petazzoni Date: Wed Oct 21 15:48:15 2015 +0200 irqchip/armada-370-xp: Fix regression by clearing IRQ_NOAUTOEN Commit d17cab4451df1 ("irqchip: Kill off set_irq_flags usage") changed the code of armada_370_xp_mpic_irq_map() from using set_irq_flags() to irq_set_probe(). While the commit log seems to imply that there are no functional changes, there are indeed functional changes introduced by this commit: the IRQ_NOAUTOEN flag is no longer cleared. This functional change causes a regression on Armada XP, which no longer works properly after suspend/resume because per-CPU interrupts remain disabled. Due to how the hardware registers work, the irq-armada-370-xp cannot simply save/restore a bunch of registers at suspend/resume to make sure that the interrupts remain in the same state after resuming. Therefore, it relies on the kernel to say whether the interrupt is disabled or not, using the irqd_irq_disabled() function. This was all working fine while the IRQ_NOAUTOEN flag was cleared. With the change introduced by Rob Herring in d17cab4451df1, the IRQ_NOAUTOEN flag is now set for all interrupts. irqd_irq_disabled() returns false for per-CPU interrupts, and therefore our per-CPU interrupts are no longer re-enabled after resume. This commit works around this problem by clearing again the IRQ_NOAUTOEN flags, so that we are back to the situation we had before commit d17cab4451df1. This work around is proposed as a minimal fix for the problem, while a better long-term solution is being worked on. Fixes: d17cab4451df1 "irqchip: Kill off set_irq_flags usage" Signed-off-by: Thomas Petazzoni Link: https://lkml.kernel.org/r/1445435295-19956-1-git-send-email-thomas.petazzoni@free-electrons.com Signed-off-by: Jason Cooper Signed-off-by: Thomas Gleixner drivers/irqchip/irq-armada-370-xp.c | 1 + 1 file changed, 1 insertion(+) commit 32b88194f71d6ae7768a29f87fbba454728273ee Author: Linus Torvalds Date: Sun Oct 25 10:39:47 2015 +0900 Linux 4.3-rc7 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 22ca7ca52e80524360b43944a0556b2a6dc1aa21 Merge: aef8cc9 09dc138 Author: Dave Airlie Date: Sun Oct 25 05:02:33 2015 +1000 Merge branch 'vmwgfx-fixes-4.3' of git://people.freedesktop.org/~thomash/linux I'm not sure whether this patch comes in too late, but it would be good to have it in. It stabilizes command submission in case of command buffer errors. * 'vmwgfx-fixes-4.3' of git://people.freedesktop.org/~thomash/linux: drm/vmwgfx: Stabilize the command buffer submission code commit aef8cc903583c5a205b696fb0a51e1eca9117321 Merge: 01815536 c86f5ebf Author: Dave Airlie Date: Sun Oct 25 05:01:57 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux Two regression fixes and a memory leak fix for amdgpu and radeon. * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: don't try to recreate sysfs entries on resume drm/radeon: don't try to recreate sysfs entries on resume drm/amdgpu: stop leaking page flip fence commit 8bce6d35b308d73cdb2ee273c95d711a55be688c Author: NeilBrown Date: Thu Oct 22 13:20:15 2015 +1100 md/raid10: fix the 'new' raid10 layout to work correctly. In Linux 3.9 we introduce a new 'far' layout for RAID10 which was supposed to rotate the replicas differently and so provide better resilience. In particular it could survive more combinations of 2 drive failures. Unfortunately. due to a coding error, this some did what was wanted, sometimes improved less than we hoped, and sometimes - in very unlikely circumstances - put multiple replicas on the same device so the redundancy was harmed. No public user-space tool has created arrays using this layout so it is very unlikely that zero-redundancy arrays actually exist. Probably no arrays using any form of the new layout exist. But we cannot be certain. So use another bit in the 'layout' number and introduce a bug-fixed version of the layout. Also when assembling an array, if it has a zero-redundancy layout, give a warning. Reported-by: Heinz Mauelshagen Signed-off-by: NeilBrown drivers/md/raid10.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit c340702ca26a628832fade4f133d8160a55c29cc Author: NeilBrown Date: Sat Oct 24 16:23:48 2015 +1100 md/raid10: don't clear bitmap bit when bad-block-list write fails. When a write fails and a bad-block-list is present, we can update the bad-block-list instead of writing the data. If this succeeds then it is OK clear the relevant bitmap-bit as no further 'sync' of the block is needed. However if writing the bad-block-list fails then we need to treat the write as failed and particularly must not clear the bitmap bit. Otherwise the device can be re-added (after any hardware connection issues are resolved) and because the relevant bit in the bitmap is clear, that block will not be resynced. This leads to data corruption. We already delay the final bio_endio() on the write until the bad-block-list is written so that when the write returns: either that data is safe, the bad-block record is safe, or the fact that the device is faulty is safe. However we *don't* delay the clearing of the bitmap, so the bitmap bit can be recorded as cleared before we know if the bad-block-list was written safely. So: delay that until the write really is safe. i.e. move the call to close_write() until just before calling bio_endio(), and recheck the 'is array degraded' status before making that call. This bug goes back to v3.1 when bad-block-lists were introduced, though it only affects arrays created with mdadm-3.3 or later as only those have bad-block lists. Backports will require at least Commit: 95af587e95aa ("md/raid10: ensure device failure recorded before write request returns.") as well. I'll send that to 'stable' separately. Note that of the two tests of R10BIO_WriteError that this patch adds, the first is certain to fail and the second is certain to succeed. However doing it this way makes the patch more obviously correct. I will tidy the code up in a future merge window. Reported-by: Nate Dailey Fixes: bd870a16c594 ("md/raid10: Handle write errors by updating badblock log.") Signed-off-by: NeilBrown drivers/md/raid10.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit bd8688a199b864944bf62eebed0ca13b46249453 Author: NeilBrown Date: Sat Oct 24 16:02:16 2015 +1100 md/raid1: don't clear bitmap bit when bad-block-list write fails. When a write fails and a bad-block-list is present, we can update the bad-block-list instead of writing the data. If this succeeds then it is OK clear the relevant bitmap-bit as no further 'sync' of the block is needed. However if writing the bad-block-list fails then we need to treat the write as failed and particularly must not clear the bitmap bit. Otherwise the device can be re-added (after any hardware connection issues are resolved) and because the relevant bit in the bitmap is clear, that block will not be resynced. This leads to data corruption. We already delay the final bio_endio() on the write until the bad-block-list is written so that when the write returns: either that data is safe, the bad-block record is safe, or the fact that the device is faulty is safe. However we *don't* delay the clearing of the bitmap, so the bitmap bit can be recorded as cleared before we know if the bad-block-list was written safely. So: delay that until the write really is safe. i.e. move the call to close_write() until just before calling bio_endio(), and recheck the 'is array degraded' status before making that call. This bug goes back to v3.1 when bad-block-lists were introduced, though it only affects arrays created with mdadm-3.3 or later as only those have bad-block lists. Backports will require at least Commit: 55ce74d4bfe1 ("md/raid1: ensure device failure recorded before write request returns.") as well. I'll send that to 'stable' separately. Note that of the two tests of R1BIO_WriteError that this patch adds, the first is certain to fail and the second is certain to succeed. However doing it this way makes the patch more obviously correct. I will tidy the code up in a future merge window. Reported-and-tested-by: Nate Dailey Cc: Jes Sorensen Fixes: cd5ff9a16f08 ("md/raid1: Handle write errors by updating badblock log.") Signed-off-by: NeilBrown drivers/md/raid1.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 018155365dccecd9ea9f26e1b26fb0f960c1ee32 Merge: dd5ae68 fd7cd06 Author: Linus Torvalds Date: Sat Oct 24 07:52:59 2015 +0900 Merge tag 'usb-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are three xhci driver fixes for reported issues for 4.3-rc7 All have been in linux-next for a while with no problems" * tag 'usb-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: xhci: Add spurious wakeup quirk for LynxPoint-LP controllers xhci: handle no ping response error properly xhci: don't finish a TD if we get a short transfer event mid TD commit dd5ae6818ccd4ab0aa6f7d84e88f60a48af0fb52 Merge: 4ee8019 f235f66 Author: Linus Torvalds Date: Sat Oct 24 07:52:09 2015 +0900 Merge tag 'tty-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial fixes from Greg KH: "Here are two fixes that resolve reported issues, one with the 8250 driver, and the other with the generic fbcon driver. Both have been in linux-next for a while" * tag 'tty-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: fbcon: initialize blink interval before calling fb_set_par Revert "serial: 8250_dma: don't bother DMA with small transfers" commit 4ee8019d3fdc6cce14129a954632c0f81d456884 Merge: 410694e 4301de3 Author: Linus Torvalds Date: Sat Oct 24 07:51:13 2015 +0900 Merge tag 'staging-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver fixes from Greg KH: "Here are four iio driver fixes for 4.3-rc7, fixing some reported issues. All of these have been in linux-next for a while" * tag 'staging-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: iio: mxs-lradc: Fix temperature offset iio: accel: sca3000: memory corruption in sca3000_read_first_n_hw_rb() iio: st_accel: fix interrupt handling on LIS3LV02 iio: adc: twl4030: Fix ADC[3:6] readings commit 410694e214d5b479bc8b035ded0bb832f1c469b4 Merge: 35df017 0ca81a2 Author: Linus Torvalds Date: Sat Oct 24 07:28:05 2015 +0900 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull infiniband fixes from Doug Ledford: "It's late in the game, I know, but these fixes seemed important enough to warrant a late pull request. They all involve oopses or use after frees or corruptions. Six serious fixes: - Hold the mutex around the find and corresponding update of our gid - The ifa list is rcu protected, copy its contents under rcu to avoid using a freed structure - On error, netdev might be null, so check it before trying to release it - On init, if workqueue alloc fails, fail init - The new demux patches exposed a bug in mlx5 and ipath drivers, we need to use the payload P_Key to determine the P_Key the packet arrived on because the hardware doesn't tell us the truth - Due to a couple convoluted error flows, it is possible for the CM to trigger a use_after_free and a double_free of rb nodes. Add two checks to prevent that. This code has worked for 10+ years. It is likely that some of the recent changes have caused this issue to surface. The current patch will protect us from nasty events for now while we track down why this is just now showing up" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/cm: Fix rb-tree duplicate free and use-after-free IB/cma: Use inner P_Key to determine netdev IB/ucma: check workqueue allocation before usage IB/cma: Potential NULL dereference in cma_id_from_event IB/core: Fix use after free of ifa IB/core: Fix memory corruption in ib_cache_gid_set_default_gid commit 35df017c4d5571ee6f3061964d1445aae250219c Merge: ea1ee5f 3201ac4 Author: Linus Torvalds Date: Sat Oct 24 07:23:52 2015 +0900 Merge tag 'dm-4.3-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: "Three stable fixes (two in btree code used by DM thinp and one to properly store flags in DM cache metadata's superblock)" * tag 'dm-4.3-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache: the CLEAN_SHUTDOWN flag was not being set dm btree: fix leak of bufio-backed block in btree_split_beneath error path dm btree remove: fix a bug when rebalancing nodes after removal commit ea1ee5ff1b500ccdc64782ecef13d276afb08f14 Merge: ef594c4 e27c5b9 Author: Linus Torvalds Date: Sat Oct 24 07:20:57 2015 +0900 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block layer fixes from Jens Axboe: "A final set of fixes for 4.3. It is (again) bigger than I would have liked, but it's all been through the testing mill and has been carefully reviewed by multiple parties. Each fix is either a regression fix for this cycle, or is marked stable. You can scold me at KS. The pull request contains: - Three simple fixes for NVMe, fixing regressions since 4.3. From Arnd, Christoph, and Keith. - A single xen-blkfront fix from Cathy, fixing a NULL dereference if an error is returned through the staste change callback. - Fixup for some bad/sloppy code in nbd that got introduced earlier in this cycle. From Markus Pargmann. - A blk-mq tagset use-after-free fix from Junichi. - A backing device lifetime fix from Tejun, fixing a crash. - And finally, a set of regression/stable fixes for cgroup writeback from Tejun" * 'for-linus' of git://git.kernel.dk/linux-block: writeback: remove broken rbtree_postorder_for_each_entry_safe() usage in cgwb_bdi_destroy() NVMe: Fix memory leak on retried commands block: don't release bdi while request_queue has live references nvme: use an integer value to Linux errno values blk-mq: fix use-after-free in blk_mq_free_tag_set() nvme: fix 32-bit build warning writeback: fix incorrect calculation of available memory for memcg domains writeback: memcg dirty_throttle_control should be initialized with wb->memcg_completions writeback: bdi_writeback iteration must not skip dying ones writeback: fix bdi_writeback iteration in wakeup_dirtytime_writeback() writeback: laptop_mode_timer_fn() needs rcu_read_lock() around bdi_writeback iteration nbd: Add locking for tasks xen-blkfront: check for null drvdata in blkback_changed (XenbusStateClosing) commit ef594c421a0f96197f28d205e2ee58a83c1e0e37 Merge: 37902bc 6d69bb53 Author: Linus Torvalds Date: Sat Oct 24 07:19:33 2015 +0900 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph fixes from Sage Weil: "Two fixes. One is a stopgap to prevent a stack blowout when users have a deep chain of image clones. (We'll rewrite this code to be non-recursive for the next window, but in the meantime this is a simple fix that avoids a crash.) The second fixes a refcount underflow" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: rbd: prevent kernel stack blow up on rbd map rbd: don't leak parent_spec in rbd_dev_probe_parent() commit 37902bc190f1396a8c232783b29ddfcaa4026028 Merge: 0386729 0f89abf Author: Linus Torvalds Date: Sat Oct 24 07:17:58 2015 +0900 Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "I have two more small fixes this week: Qu's fix avoids unneeded COW during fallocate, and Christian found a memory leak in the error handling of an earlier fix" * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: btrfs: fix possible leak in btrfs_ioctl_balance() btrfs: Avoid truncate tailing page if fallocate range doesn't exceed inode size commit 5dd32eae604ee503e5a84a4f18d1381e4cc356cb Author: Vladimir Zapolskiy Date: Sat Oct 17 21:52:27 2015 +0300 i2c: pnx: fix runtime warnings caused by enabling unprepared clock 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. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pnx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3201ac452e84a8a368197d648c9b7011e061804a Author: Joe Thornber Date: Thu Oct 22 18:10:55 2015 +0100 dm cache: the CLEAN_SHUTDOWN flag was not being set If the CLEAN_SHUTDOWN flag is not set when a cache is loaded then all cache blocks are marked as dirty and a full writeback occurs. __commit_transaction() is responsible for setting/clearing CLEAN_SHUTDOWN (based the flags_mutator that is passed in). Fix this issue, of the cache's on-disk flags being wrong, by making sure __commit_transaction() does not reset the flags after the mutator has altered the flags in preparation for them being serialized to disk. before: sb_flags = mutator(le32_to_cpu(disk_super->flags)); disk_super->flags = cpu_to_le32(sb_flags); disk_super->flags = cpu_to_le32(cmd->flags); after: disk_super->flags = cpu_to_le32(cmd->flags); sb_flags = mutator(le32_to_cpu(disk_super->flags)); disk_super->flags = cpu_to_le32(sb_flags); Reported-by: Bogdan Vasiliev Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-cache-metadata.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4dcb8b57df3593dcb20481d9d6cf79d1dc1534be Author: Mike Snitzer Date: Thu Oct 22 10:56:40 2015 -0400 dm btree: fix leak of bufio-backed block in btree_split_beneath error path btree_split_beneath()'s error path had an outstanding FIXME that speaks directly to the potential for _not_ cleaning up a previously allocated bufio-backed block. Fix this by releasing the previously allocated bufio block using unlock_block(). Reported-by: Mikulas Patocka Signed-off-by: Mike Snitzer Acked-by: Joe Thornber Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-btree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2871c69e025e8bc507651d5a9cf81a8a7da9d24b Author: Joe Thornber Date: Wed Oct 21 18:36:49 2015 +0100 dm btree remove: fix a bug when rebalancing nodes after removal Commit 4c7e309340ff ("dm btree remove: fix bug in redistribute3") wasn't a complete fix for redistribute3(). The redistribute3 function takes 3 btree nodes and shares out the entries evenly between them. If the three nodes in total contained (MAX_ENTRIES * 3) - 1 entries between them then this was erroneously getting rebalanced as (MAX_ENTRIES - 1) on the left and right, and (MAX_ENTRIES + 1) in the center. Fix this issue by being more careful about calculating the target number of entries for the left and right nodes. Unit tested in userspace using this program: https://github.com/jthornber/redistribute3-test/blob/master/redistribute3_t.c Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/persistent-data/dm-btree-remove.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 6d69bb536bac0d403d83db1ca841444981b280cd Author: Ilya Dryomov Date: Sun Oct 11 19:38:00 2015 +0200 rbd: prevent kernel stack blow up on rbd map Mapping an image with a long parent chain (e.g. image foo, whose parent is bar, whose parent is baz, etc) currently leads to a kernel stack overflow, due to the following recursion in the reply path: rbd_osd_req_callback() rbd_obj_request_complete() rbd_img_obj_callback() rbd_img_parent_read_callback() rbd_obj_request_complete() ... Limit the parent chain to 16 images, which is ~5K worth of stack. When the above recursion is eliminated, this limit can be lifted. Fixes: http://tracker.ceph.com/issues/12538 Cc: stable@vger.kernel.org # 3.10+, needs backporting for < 4.2 Signed-off-by: Ilya Dryomov Reviewed-by: Josh Durgin drivers/block/rbd.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit 1f2c6651f69c14d0d3a9cfbda44ea101b02160ba Author: Ilya Dryomov Date: Sun Oct 11 19:38:00 2015 +0200 rbd: don't leak parent_spec in rbd_dev_probe_parent() Currently we leak parent_spec and trigger a "parent reference underflow" warning if rbd_dev_create() in rbd_dev_probe_parent() fails. The problem is we take the !parent out_err branch and that only drops refcounts; parent_spec that would've been freed had we called rbd_dev_unparent() remains and triggers rbd_warn() in rbd_dev_parent_put() - at that point we have parent_spec != NULL and parent_ref == 0, so counter ends up being -1 after the decrement. Redo rbd_dev_probe_parent() to fix this. Cc: stable@vger.kernel.org # 3.10+, needs backporting for < 4.2 Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) commit c86f5ebfbd147d1a228ab89ee1658e18939bd7ad Author: Alex Deucher Date: Fri Oct 23 10:45:14 2015 -0400 drm/amdgpu: don't try to recreate sysfs entries on resume Fixes an error on resume caused by: fa022a9b65d2886486a022fd66b20c823cd76ad9 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 5 +++++ 2 files changed, 6 insertions(+) commit 49abb26651167c892393cd9f2ad23df429645ed9 Author: Alex Deucher Date: Fri Oct 23 10:38:52 2015 -0400 drm/radeon: don't try to recreate sysfs entries on resume Fixes a harmless error message caused by: 51a4726b04e880fdd9b4e0e58b13f70b0a68a7f5 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon.h | 1 + drivers/gpu/drm/radeon/radeon_pm.c | 35 +++++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 14 deletions(-) commit 5c92d87d30b23844e6998d8318e4c19ee3a907ac Author: Christian König Date: Wed Oct 21 21:58:28 2015 +0200 drm/amdgpu: stop leaking page flip fence reservation_object_get_fences_rcu already takes the references. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 4 ---- 1 file changed, 4 deletions(-) commit 03867292476e6fa7679395838d768dda0a0816c7 Merge: df55793 f7d27c3 Author: Linus Torvalds Date: Fri Oct 23 22:34:32 2015 +0900 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "Misc fixes: two KASAN fixes, two EFI boot fixes, two boot-delay optimization fixes, and a fix for a IRQ handling hang observed on virtual platforms" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm, kasan: Silence KASAN warnings in get_wchan() compiler, atomics, kasan: Provide READ_ONCE_NOCHECK() x86, kasan: Fix build failure on KASAN=y && KMEMCHECK=y kernels x86/smpboot: Fix CPU #1 boot timeout x86/smpboot: Fix cpu_init_udelay=10000 corner case boot parameter misbehavior x86/ioapic: Disable interrupts when re-routing legacy IRQs x86/setup: Extend low identity map to cover whole kernel range x86/efi: Fix multiple GOP device support commit df55793680d36e37e6fc384fbd90c39ed83cbe75 Merge: 9f30931 0aaafaa Author: Linus Torvalds Date: Fri Oct 23 22:31:39 2015 +0900 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fixes from Ingo Molnar: "Misc fixes all around the map: an instrumentation fix, a nohz usability fix, a lockdep annotation fix and two task group scheduling fixes" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/core: Add missing lockdep_unpin() annotations sched/deadline: Fix migration of SCHED_DEADLINE tasks nohz: Revert "nohz: Set isolcpus when nohz_full is set" sched/fair: Update task group's load_avg after task migration sched/fair: Fix overly small weight for interactive group entities sched, tracing: Stop/start critical timings around the idle=poll idle loop commit ce9d9b8e5c2b7486edf76958bcdb5e6534a915b0 Author: Li RongQing Date: Fri Oct 23 20:59:49 2015 +0800 net: sysctl: fix a kmemleak warning the returned buffer of register_sysctl() is stored into net_header variable, but net_header is not used after, and compiler maybe optimise the variable out, and lead kmemleak reported the below warning comm "swapper/0", pid 1, jiffies 4294937448 (age 267.270s) hex dump (first 32 bytes): 90 38 8b 01 c0 ff ff ff 00 00 00 00 01 00 00 00 .8.............. 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] create_object+0x10c/0x2a0 [] kmemleak_alloc+0x54/0xa0 [] __kmalloc+0x1f8/0x4f8 [] __register_sysctl_table+0x64/0x5a0 [] register_sysctl+0x30/0x40 [] net_sysctl_init+0x20/0x58 [] sock_init+0x10/0xb0 [] do_one_initcall+0x90/0x1b8 [] kernel_init_freeable+0x218/0x2f0 [] kernel_init+0x1c/0xe8 [] ret_from_fork+0xc/0x50 [] 0xffffffffffffffff <> Before fix, the objdump result on ARM64: 0000000000000000 : 0: a9be7bfd stp x29, x30, [sp,#-32]! 4: 90000001 adrp x1, 0 8: 90000000 adrp x0, 0 c: 910003fd mov x29, sp 10: 91000021 add x1, x1, #0x0 14: 91000000 add x0, x0, #0x0 18: a90153f3 stp x19, x20, [sp,#16] 1c: 12800174 mov w20, #0xfffffff4 // #-12 20: 94000000 bl 0 24: b4000120 cbz x0, 48 28: 90000013 adrp x19, 0 2c: 91000273 add x19, x19, #0x0 30: 9101a260 add x0, x19, #0x68 34: 94000000 bl 0 38: 2a0003f4 mov w20, w0 3c: 35000060 cbnz w0, 48 40: aa1303e0 mov x0, x19 44: 94000000 bl 0 48: 2a1403e0 mov w0, w20 4c: a94153f3 ldp x19, x20, [sp,#16] 50: a8c27bfd ldp x29, x30, [sp],#32 54: d65f03c0 ret After: 0000000000000000 : 0: a9bd7bfd stp x29, x30, [sp,#-48]! 4: 90000000 adrp x0, 0 8: 910003fd mov x29, sp c: a90153f3 stp x19, x20, [sp,#16] 10: 90000013 adrp x19, 0 14: 91000000 add x0, x0, #0x0 18: 91000273 add x19, x19, #0x0 1c: f90013f5 str x21, [sp,#32] 20: aa1303e1 mov x1, x19 24: 12800175 mov w21, #0xfffffff4 // #-12 28: 94000000 bl 0 2c: f9002260 str x0, [x19,#64] 30: b40001a0 cbz x0, 64 34: 90000014 adrp x20, 0 38: 91000294 add x20, x20, #0x0 3c: 9101a280 add x0, x20, #0x68 40: 94000000 bl 0 44: 2a0003f5 mov w21, w0 48: 35000080 cbnz w0, 58 4c: aa1403e0 mov x0, x20 50: 94000000 bl 0 54: 14000004 b 64 58: f9402260 ldr x0, [x19,#64] 5c: 94000000 bl 0 60: f900227f str xzr, [x19,#64] 64: 2a1503e0 mov w0, w21 68: f94013f5 ldr x21, [sp,#32] 6c: a94153f3 ldp x19, x20, [sp,#16] 70: a8c37bfd ldp x29, x30, [sp],#48 74: d65f03c0 ret Add the possible error handle to free the net_header to remove the kmemleak warning Signed-off-by: Li RongQing Signed-off-by: David S. Miller net/sysctl_net.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 9f30931a5482d66710210dafe9b4f2cc92320540 Merge: a2c01ed b67de01 Author: Linus Torvalds Date: Fri Oct 23 22:10:51 2015 +0900 Merge branch 'akpm' (patches from Andrew) Merge fixes from Andrew Morton: "9 fixes" * emailed patches from Andrew Morton : ocfs2/dlm: unlock lockres spinlock before dlm_lockres_put fault-inject: fix inverted interval/probability values in printk lib/Kconfig.debug: disable -Wframe-larger-than warnings with KASAN=y mm: make sendfile(2) killable thp: use is_zero_pfn() only after pte_present() check mailmap: update Javier Martinez Canillas' email MAINTAINERS: add Sergey as zsmalloc reviewer mm: cma: fix incorrect type conversion for size during dma allocation kmod: don't run async usermode helper as a child of kworker thread commit 1acea4f6ce1b1c0941438aca75dd2e5c6b09db60 Author: Guillaume Nault Date: Thu Oct 22 16:57:10 2015 +0200 ppp: fix pppoe_dev deletion condition in pppoe_release() We can't rely on PPPOX_ZOMBIE to decide whether to clear po->pppoe_dev. PPPOX_ZOMBIE can be set by pppoe_disc_rcv() even when po->pppoe_dev is NULL. So we have no guarantee that (sk->sk_state & PPPOX_ZOMBIE) implies (po->pppoe_dev != NULL). Since we're releasing a PPPoE socket, we want to release the pppoe_dev if it exists and reset sk_state to PPPOX_DEAD, no matter the previous value of sk_state. So we can just check for po->pppoe_dev and avoid any assumption on sk->sk_state. Fixes: 2b018d57ff18 ("pppoe: drop PPPOX_ZOMBIEs in pppoe_release") Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/pppoe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f6b8dec99865ea906150e963eacbfd037b579ee9 Author: Li RongQing Date: Thu Oct 22 11:35:05 2015 +0800 af_key: fix two typos Signed-off-by: Li RongQing Signed-off-by: David S. Miller net/key/af_key.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0aaafaabfcba8aa991913cd3280a5dbf7f111a2a Author: Peter Zijlstra Date: Fri Oct 23 11:50:08 2015 +0200 sched/core: Add missing lockdep_unpin() annotations Luca and Wanpeng reported two missing annotations that led to false lockdep complaints. Add the missing annotations. Reported-by: Luca Abeni Reported-by: Wanpeng Li Signed-off-by: Peter Zijlstra (Intel) Cc: Juri Lelli Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: cbce1a686700 ("sched,lockdep: Employ lock pinning") Link: http://lkml.kernel.org/r/20151023095008.GY17308@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar kernel/sched/core.c | 9 ++++++++- kernel/sched/deadline.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) commit 20a41fba679d665cdae2808e2b9cae97c073351f Author: Lendacky, Thomas Date: Wed Oct 21 15:37:05 2015 -0500 amd-xgbe: Use wmb before updating current descriptor count The code currently uses the lightweight dma_wmb barrier before updating the current descriptor count. Under heavy load, the Tx cleanup routine was seeing the updated current descriptor count before the updated descriptor information. As a result, the Tx descriptor was being cleaned up before it was used because it was not "owned" by the hardware yet, resulting in a Tx queue hang. Using the wmb barrier insures that the descriptor is updated before the descriptor counter preventing the Tx queue hang. For extra insurance, the Tx cleanup routine is changed to grab the current decriptor count on entry and uses that initial value in the processing loop rather than trying to chase the current value. Signed-off-by: Tom Lendacky Tested-by: Christoffer Dall Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 2 +- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit d2fd719bcb0e83cb39cfee22ee800f98a56eceb3 Author: Nathan Sullivan Date: Wed Oct 21 14:17:04 2015 -0500 net/phy: micrel: Add workaround for bad autoneg Very rarely, the KSZ9031 will appear to complete autonegotiation, but will drop all traffic afterwards. When this happens, the idle error count will read 0xFF after autonegotiation completes. Reset the PHY when in that state. Signed-off-by: Nathan Sullivan Signed-off-by: David S. Miller drivers/net/phy/micrel.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit a2c01ed5d46f0686c52272e09f7d2f5be9f573fd Merge: d0ddf98 8832317 Author: Linus Torvalds Date: Fri Oct 23 18:49:51 2015 +0900 Merge tag 'powerpc-4.3-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8" from Paul - Handle irq_happened flag correctly in off-line loop from Paul - Validate rtas.entry before calling enter_rtas() from Vasant * tag 'powerpc-4.3-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/rtas: Validate rtas.entry before calling enter_rtas() powerpc/powernv: Handle irq_happened flag correctly in off-line loop powerpc: Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8" commit ec3661b42257d9a06cf0d318175623ac7a660113 Merge: c80dbe0 b72a2b0 Author: David S. Miller Date: Fri Oct 23 02:49:41 2015 -0700 Merge branch 'ipv6-overflow-arith' Hannes Frederic Sowa says: ==================== overflow-arith: begin to add support for overflow builtins functions I add a new header, linux/overflow-arith.h, as the central place to add overflow and wrap-around checking functions. The reason I am doing so is that it can make use of compiler supported builtin functions which can leverage hardware. As I need this for a fix in the ipv6 stack, which is also included in this series, I propose to add it sooner than later over Davem's net tree. This is also the reason why I start slowly with only the one function I need at this time. ==================== Signed-off-by: David S. Miller commit b72a2b01b686f242028038f630555513c9e4de38 Author: Hannes Frederic Sowa Date: Fri Oct 16 11:32:43 2015 +0200 ipv6: protect mtu calculation of wrap-around and infinite loop by rounding issues Raw sockets with hdrincl enabled can insert ipv6 extension headers right into the data stream. In case we need to fragment those packets, we reparse the options header to find the place where we can insert the fragment header. If the extension headers exceed the link's MTU we actually cannot make progress in such a case. Instead of ending up in broken arithmetic or rounding towards 0 and entering an endless loop in ip6_fragment, just prevent those cases by aborting early and signal -EMSGSIZE to user space. Reported-by: Dmitry Vyukov Cc: Dmitry Vyukov Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 79907146fb5b1778035870db895fb2bf64061284 Author: Hannes Frederic Sowa Date: Fri Oct 16 11:32:42 2015 +0200 overflow-arith: begin to add support for overflow builtin functions The idea of the overflow-arith.h header is to collect overflow checking functions in one central place. If gcc compiler supports the __builtin_overflow_* builtins we use them because they might give better performance, otherwise the code falls back to normal overflow checking functions. The builtin_overflow functions are supported by gcc-5 and clang. The matter of supporting clang is to just provide a corresponding CC_HAVE_BUILTIN_OVERFLOW, because the specific overflow checking builtins don't differ between gcc and clang. I just provide overflow_usub function here as I intend this to get merged into net, more functions will definitely follow as they are needed. Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller include/linux/compiler-gcc.h | 4 ++++ include/linux/overflow-arith.h | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) commit c80dbe04612986fd6104b4a1be21681b113b5ac9 Author: Andrew Shewmaker Date: Sun Oct 18 21:59:08 2015 -0700 tcp: allow dctcp alpha to drop to zero If alpha is strictly reduced by alpha >> dctcp_shift_g and if alpha is less than 1 << dctcp_shift_g, then alpha may never reach zero. For example, given shift_g=4 and alpha=15, alpha >> dctcp_shift_g yields 0 and alpha remains 15. The effect isn't noticeable in this case below cwnd=137, but could gradually drive uncongested flows with leftover alpha down to cwnd=137. A larger dctcp_shift_g would have a greater effect. This change causes alpha=15 to drop to 0 instead of being decrementing by 1 as it would when alpha=16. However, it requires one less conditional to implement since it doesn't have to guard against subtracting 1 from 0U. A decay of 15 is not unreasonable since an equal or greater amount occurs at alpha >= 240. Signed-off-by: Andrew G. Shewmaker Acked-by: Florian Westphal Signed-off-by: David S. Miller net/ipv4/tcp_dctcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab997ad408394bcaf7f3015d4c4e38047eaf2ad6 Author: lucien Date: Fri Oct 23 15:36:53 2015 +0800 ipv6: fix the incorrect return value of throw route The error condition -EAGAIN, which is signaled by throw routes, tells the rules framework to walk on searching for next matches. If the walk ends and we stop walking the rules with the result of a throw route we have to translate the error conditions to -ENETUNREACH. Signed-off-by: Xin Long Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/fib6_rules.c | 19 +++++++++++++++---- net/ipv6/ip6_fib.c | 12 +++++++++++- 2 files changed, 26 insertions(+), 5 deletions(-) commit d0ddf980d6efdcee6c7a85eb0f27baa6b60eeff6 Merge: 2c44f4f 55f4129 Author: Linus Torvalds Date: Fri Oct 23 18:38:00 2015 +0900 Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Arnd Bergmann: "Most of the changes this time are for incorrect device nodes in various ways, on on imx, berlin, exynos, ux500, uniphier, omap and meson. Chen-Yu Tsai now co-maintains mach-sunxi (Allwinner). Other bug fixes include - a partial revert of a broken tegra gpio patch - irq affinity for arm ccn - suspend on one Armada 385 machine - enable ZONE_DMA to avoid an OMAP crash for over 2GB RAM - turning on a regulator on beagleboard-x15 for HDMI - making the omap gpmc debug code visible - setup of orion network switch - a rare build regression for pxa" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits) ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init thermal: exynos: Fix register read in TMU ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory ARM: tegra: Comment out gpio-ranges properties ARM: dts: uniphier: fix IRQ number for devices on PH1-LD6b ref board drivers/perf: arm_pmu: avoid CPU device_node reference leak bus: arm-ccn: Fix irq affinity setting on CPU migration bus: arm-ccn: Handle correctly no-more-cpus case ARM: mvebu: correct a385-db-ap compatible string ARM: meson6: DTS: Fix wrong reg mapping and IRQ numbers MAINTAINERS: Update Allwinner entry and add new maintainer ARM: ux500: modify initial levelshifter status ARM: pxa: fix pxa3xx DFI lockup hack Documentation: ARM: List new omap MMC requirements memory: omap-gpmc: dump "before" state before first modification memory: omap-gpmc: Fix unselectable debug option for GPMC ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on ARM: dts: Fix audio card detection on Peach boards ARM: EXYNOS: Fix double of_node_put() when parsing child power domains ARM: orion: Fix DSA platform device after mvmdio conversion ... commit f23d538bc24a83c16127c2eb82c9cf1adc2b5149 Author: Jason Wang Date: Fri Oct 23 00:57:05 2015 -0400 macvtap: unbreak receiving of gro skb with frag list We don't have fraglist support in TAP_FEATURES. This will lead software segmentation of gro skb with frag list. Fixes by having frag list support in TAP_FEATURES. With this patch single session of netperf receiving were restored from about 5Gb/s to about 12Gb/s on mlx4. Fixes a567dd6252 ("macvtap: simplify usage of tap_features") Cc: Vlad Yasevich Cc: Michael S. Tsirkin Signed-off-by: Jason Wang Signed-off-by: David S. Miller drivers/net/macvtap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c44f4f03574a3754306b5a8a80b9ed38a795104 Merge: 8a990fb ad355e3 Author: Linus Torvalds Date: Fri Oct 23 18:32:29 2015 +0900 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM bugfixes from Paolo Bonzini: "Bug fixes for ARM, mostly 4.3 regressions related to virtual interrupt controller changes" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: arm/arm64: KVM: Fix disabled distributor operation arm/arm64: KVM: Clear map->active on pend/active clear arm/arm64: KVM: Fix arch timer behavior for disabled interrupts KVM: arm: use GIC support unconditionally KVM: arm/arm64: Fix memory leak if timer initialization fails KVM: arm/arm64: Do not inject spurious interrupts commit 8a990fb47b4c93653745512eca7d2d210678e6c1 Merge: 0122835 1904be1 Author: Linus Torvalds Date: Fri Oct 23 18:24:33 2015 +0900 Merge tag 'trace-fixes-v4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "Running tests on other changes, the system locked up due to lots of warnings. It was caused by the stack tracer triggering a warning about using rcu_dereference() when RCU was not watching. This can happen due to the fact that the stack tracer uses the function tracer to check each function, and there are functions that may be called and traced when RCU stopped watching. Namely when a function is called just before going idle or to userspace and after RCU stopped watching that current CPU. The first patch makes sure that RCU is watching when the stack tracer uses RCU. The second patch is to make sure that the stack tracer does not get called by functions in NMI, as it's not NMI safe" * tag 'trace-fixes-v4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Do not allow stack_tracer to record stack in NMI tracing: Have stack tracer force RCU to be watching commit 0122835a020a9f5c007b3a49ea9b5f1ac68fc7c7 Merge: 45d80f1 b9b6e4a Author: Linus Torvalds Date: Fri Oct 23 18:21:55 2015 +0900 Merge tag 'sound-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "There is nothing to worry you much, only a few small & stable patches are found for usual stuff, HD-audio (a Lenovo laptop quirk, a fix for minor error handling) and ASoC (trivial fixes for RT298 and WM codecs). The only remaining major change is the fix for ASoC SX_TLV control that was overseen during refactoring, but the fix itself is trivial and safe" * tag 'sound-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: wm8962: mark cache_dirty flag after software reset in pm_resume ASoC: rt298: fix wrong setting of gpio2_en ASoC: wm8904: Correct number of EQ registers ALSA: hda - Fix deadlock at error in building PCM ASoC: Add info callback for SX_TLV controls ASoC: rt298: correct index default value ALSA: hda - Fix inverted internal mic on Lenovo G50-80 ALSA: hdac: Explicitly add io.h commit 45d80f168d2727f60bf1de64536f4ba62f303130 Merge: a67b20d 56ea37d Author: Linus Torvalds Date: Fri Oct 23 18:15:20 2015 +0900 Merge tag 'media/v4.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: "Some regression fixes and potential security issues: - netup_unidvb: fix potential crash when spi is NULL - rtl28xxu: fix control message flaws - m88ds3103: fix a regression on Kernel 4.2 - c8sectpfe: fix some issues on this new driver - v4l2-flash-led-class: fix a Kbuild dependency - si2157 and si2158: check for array boundary when uploading firmware files - horus3a and lnbh25: fix some building troubles when some options aren't selected - ir-hix5hd2: drop the use of IRQF_NO_SUSPEND" * tag 'media/v4.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] m88ds3103: use own reg update_bits() implementation [media] rtl28xxu: fix control message flaws [media] v4l2-flash-led-class: Add missing VIDEO_V4L2 Kconfig dependency [media] netup_unidvb: fix potential crash when spi is NULL [media] si2168: Bounds check firmware [media] si2157: Bounds check firmware [media] ir-hix5hd2: drop the use of IRQF_NO_SUSPEND [media] c8sectpfe: fix return of garbage [media] c8sectpfe: fix ininitialized error return on firmware load failure [media] lnbh25: Fix lnbh25_attach() function return type [media] horus3a: Fix horus3a_attach() function parameters commit a67b20d24c9ed3719146c9a5e95937c38c89e16a Merge: 8a70dd2 c50f13f Author: Linus Torvalds Date: Fri Oct 23 18:08:22 2015 +0900 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "I've been a bit slow gathering these: - drm/mst: one mutex leak in a fail path - radeon: two oops fixes, one dpm fix - i915: one messy set of fixes, where we revert the original fix, and pull back the proper set of fixes from -next on top. - nouveau: one fix for an illegal buffer placement. Doesn't look too bad, hopefully shouldn't be too much more" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/nouveau/gem: return only valid domain when there's only one drm: fix mutex leak in drm_dp_get_mst_branch_device drm/amdgpu: add missing dpm check for KV dpm late init drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled drm/radeon/dpm: don't add pwm attributes if DPM is disabled drm/i915: Add primary plane to mask if it's visible drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc() drm/i915: Assign hwmode after encoder state readout Revert "drm/i915: Add primary plane to mask if it's visible" drm/i915: Deny wrapping an userptr into a framebuffer drm/i915: Enable DPLL VGA mode before P1/P2 divider write drm/i915: Restore lost DPLL register write on gen2-4 drm/i915: Flush pipecontrol post-sync writes drm/i915: Fix kerneldoc for i915_gem_shrink_all commit b67de018b37a97548645a879c627d4188518e907 Author: Joseph Qi Date: Thu Oct 22 13:32:29 2015 -0700 ocfs2/dlm: unlock lockres spinlock before dlm_lockres_put dlm_lockres_put will call dlm_lockres_release if it is the last reference, and then it may call dlm_print_one_lock_resource and take lockres spinlock. So unlock lockres spinlock before dlm_lockres_put to avoid deadlock. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 3 ++- fs/ocfs2/dlm/dlmrecovery.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit bb387002693ed28b2bb0408c5dec65521b71e5f1 Author: Florian Westphal Date: Thu Oct 22 13:32:27 2015 -0700 fault-inject: fix inverted interval/probability values in printk interval displays the probability and vice versa. Fixes: 6adc4a22f20bb ("fault-inject: add ratelimit option") Acked-by: Akinobu Mita Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/fault-inject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f181b4d8652f7bcd7e9932c7307b8ecd4d87cf6 Author: Andrey Ryabinin Date: Thu Oct 22 13:32:24 2015 -0700 lib/Kconfig.debug: disable -Wframe-larger-than warnings with KASAN=y When the kernel compiled with KASAN=y, GCC adds redzones for each variable on stack. This enlarges function's stack frame and causes: 'warning: the frame size of X bytes is larger than Y bytes' The worst case I've seen for now is following: ../net/wireless/nl80211.c: In function `nl80211_send_wiphy': ../net/wireless/nl80211.c:1731:1: warning: the frame size of 5448 bytes is larger than 2048 bytes [-Wframe-larger-than=] That kind of warning becomes useless with KASAN=y. It doesn't necessarily indicate that there is some problem in the code, thus we should turn it off. (The KASAN=y stack size in increased from 16k to 32k for this reason) Signed-off-by: Andrey Ryabinin Reported-by: Fengguang Wu Acked-by: Abylay Ospan Cc: Andi Kleen Cc: Ingo Molnar Cc: Mauro Carvalho Chehab Cc: Kozlov Sergey Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/Kconfig.debug | 1 + 1 file changed, 1 insertion(+) commit 296291cdd1629c308114504b850dc343eabc2782 Author: Jan Kara Date: Thu Oct 22 13:32:21 2015 -0700 mm: make sendfile(2) killable Currently a simple program below issues a sendfile(2) system call which takes about 62 days to complete in my test KVM instance. int fd; off_t off = 0; fd = open("file", O_RDWR | O_TRUNC | O_SYNC | O_CREAT, 0644); ftruncate(fd, 2); lseek(fd, 0, SEEK_END); sendfile(fd, fd, &off, 0xfffffff); Now you should not ask kernel to do a stupid stuff like copying 256MB in 2-byte chunks and call fsync(2) after each chunk but if you do, sysadmin should have a way to stop you. We actually do have a check for fatal_signal_pending() in generic_perform_write() which triggers in this path however because we always succeed in writing something before the check is done, we return value > 0 from generic_perform_write() and thus the information about signal gets lost. Fix the problem by doing the signal check before writing anything. That way generic_perform_write() returns -EINTR, the error gets propagated up and the sendfile loop terminates early. Signed-off-by: Jan Kara Reported-by: Dmitry Vyukov Cc: Al Viro Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/filemap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 47aee4d8e314384807e98b67ade07f6da476aa75 Author: Minchan Kim Date: Thu Oct 22 13:32:19 2015 -0700 thp: use is_zero_pfn() only after pte_present() check Use is_zero_pfn() on pteval only after pte_present() check on pteval (It might be better idea to introduce is_zero_pte() which checks pte_present() first). Otherwise when working on a swap or migration entry and if pte_pfn's result is equal to zero_pfn by chance, we lose user's data in __collapse_huge_page_copy(). So if you're unlucky, the application segfaults and finally you could see below message on exit: BUG: Bad rss-counter state mm:ffff88007f099300 idx:2 val:3 Fixes: ca0984caa823 ("mm: incorporate zero pages into transparent huge pages") Signed-off-by: Minchan Kim Reviewed-by: Andrea Arcangeli Acked-by: Kirill A. Shutemov Cc: Mel Gorman Acked-by: Vlastimil Babka Cc: Hugh Dickins Cc: Rik van Riel Cc: [4.1+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b8fa0efa01109e294e9be610465c324f771cb5ba Author: Javier Martinez Canillas Date: Thu Oct 22 13:32:16 2015 -0700 mailmap: update Javier Martinez Canillas' email The get_maintainer script still reports my old Collabora email based on old commits but that address no longer exist so update mailmap to report my current email and avoid people sending to the old address. Signed-off-by: Javier Martinez Canillas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .mailmap | 1 + 1 file changed, 1 insertion(+) commit 41192a2d6a7f4cd6af9fc2f8edbbf24b2694f2f6 Author: Sergey Senozhatsky Date: Thu Oct 22 13:32:13 2015 -0700 MAINTAINERS: add Sergey as zsmalloc reviewer Nominate myself as a zsmalloc reviewer. Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 67a2e213e7e937c41c52ab5bc46bf3f4de469f6e Author: Rohit Vaswani Date: Thu Oct 22 13:32:11 2015 -0700 mm: cma: fix incorrect type conversion for size during dma allocation This was found during userspace fuzzing test when a large size dma cma allocation is made by driver(like ion) through userspace. show_stack+0x10/0x1c dump_stack+0x74/0xc8 kasan_report_error+0x2b0/0x408 kasan_report+0x34/0x40 __asan_storeN+0x15c/0x168 memset+0x20/0x44 __dma_alloc_coherent+0x114/0x18c Signed-off-by: Rohit Vaswani Acked-by: Greg Kroah-Hartman Cc: Marek Szyprowski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/dma-contiguous.c | 2 +- include/linux/cma.h | 2 +- include/linux/dma-contiguous.h | 4 ++-- mm/cma.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit 5211613978cb7353a3237e4372958c0e7514683f Author: Oleg Nesterov Date: Thu Oct 22 13:32:08 2015 -0700 kmod: don't run async usermode helper as a child of kworker thread call_usermodehelper_exec_sync() does fork() + wait() with "unignored" SIGCHLD. What we have missed is that this worker thread can have other children previously forked by call_usermodehelper_exec_work() without UMH_WAIT_PROC. If such a child exits in between it becomes a zombie because auto-reaping only works if SIGCHLD is ignored, and nobody can reap it (unless/until this worker thread exits too). Change the !UMH_WAIT_PROC case to use CLONE_PARENT. Note: this is only first step. All PF_KTHREAD tasks, even created by kernel_thread() should have ->parent == kthreadd by default. Fixes: bb304a5c6fc63d8506c ("kmod: handle UMH_WAIT_PROC from system unbound workqueue") Signed-off-by: Oleg Nesterov Acked-by: Frederic Weisbecker Cc: Rik van Riel Cc: Christoph Lameter Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kmod.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit b9b6e4ac2da74995cb7ac9394854a5fd563014c2 Merge: d289619 f69eccc Author: Takashi Iwai Date: Fri Oct 23 06:56:56 2015 +0200 Merge tag 'asoc-fix-v4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.3 A bunch of driver fixes plus one core fix which fixes problems with misreporting values from _SX controls following a recent refactoring. This had gone unnoticed as such controls are quite rare. commit fc4099f17240767554ff3a73977acb78ef615404 Author: Pravin B Shelar Date: Thu Oct 22 18:17:16 2015 -0700 openvswitch: Fix egress tunnel info. While transitioning to netdev based vport we broke OVS feature which allows user to retrieve tunnel packet egress information for lwtunnel devices. Following patch fixes it by introducing ndo operation to get the tunnel egress info. Same ndo operation can be used for lwtunnel devices and compat ovs-tnl-vport devices. So after adding such device operation we can remove similar operation from ovs-vport. Fixes: 614732eaa12d ("openvswitch: Use regular VXLAN net_device device"). Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller drivers/net/geneve.c | 40 ++++++++++++++++++++++++----- drivers/net/vxlan.c | 41 +++++++++++++++++++++++++++++ include/linux/netdevice.h | 7 +++++ include/net/dst_metadata.h | 32 +++++++++++++++++++++++ net/core/dev.c | 27 ++++++++++++++++++++ net/ipv4/ip_gre.c | 46 ++++++++++++++++++++++++++------- net/openvswitch/actions.c | 9 +++---- net/openvswitch/datapath.c | 5 ++-- net/openvswitch/datapath.h | 1 - net/openvswitch/flow_netlink.c | 18 +++++-------- net/openvswitch/flow_netlink.h | 6 ++--- net/openvswitch/vport-geneve.c | 13 ---------- net/openvswitch/vport-gre.c | 8 ------ net/openvswitch/vport-vxlan.c | 19 -------------- net/openvswitch/vport.c | 58 ------------------------------------------ net/openvswitch/vport.h | 35 ------------------------- 16 files changed, 192 insertions(+), 173 deletions(-) commit 0c472b9b391ecf9011d383956b322e72593d87b2 Merge: 8566b86 e9e5366 Author: David S. Miller Date: Thu Oct 22 19:02:08 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-10-22 This series contains fixes to i40e only. Jesse provides two small fixes for i40e, first fixes counters that were being displayed incorrectly due to indexing beyond the array of strings when printing stats. Then fixed the fact that the driver was printing a message about not being able to assign VMDq because a lack of MSI-X vectors, when it was not true. It was due to a line missing that initialized a variable. ==================== Signed-off-by: David S. Miller commit 8566b86ab9f0f45bc6f7dd422b21de9d0cf5415a Author: Jorgen Hansen Date: Thu Oct 22 08:25:25 2015 -0700 VSOCK: Fix lockdep issue. The recent fix for the vsock sock_put issue used the wrong initializer for the transport spin_lock causing an issue when running with lockdep checking. Testing: Verified fix on kernel with lockdep enabled. Reviewed-by: Thomas Hellstrom Signed-off-by: Jorgen Hansen Signed-off-by: David S. Miller net/vmw_vsock/vmci_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e9e53662d8130dd950885e37dc1d97008e1283f9 Author: Jesse Brandeburg Date: Fri Oct 2 17:57:21 2015 -0700 i40e: fix annoying message The driver was printing a message about not being able to assign VMDq because of a lack of MSI-X vectors. This was because a line was missing that initialized a variable, simply a merge error. Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 1 + 1 file changed, 1 insertion(+) commit 74a6c66565f5f4eda4aaae53e2e325deeedeaca2 Author: Jesse Brandeburg Date: Fri Oct 2 19:09:34 2015 -0700 i40e: fix stats offsets The code was setting up stats that were not being initialized. This caused several counters to be displayed incorrectly, due to indexing beyond the array of strings when printing stats. Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f69eccc4b248ce53b1b830034babd0a795d5763c Merge: ab5cf7d f8f2dc4 3419871 97aff2c 4eb0f7a Author: Mark Brown Date: Fri Oct 23 08:44:14 2015 +0900 Merge remote-tracking branches 'asoc/fix/rt298', 'asoc/fix/sx', 'asoc/fix/wm8904' and 'asoc/fix/wm8962' into asoc-linus commit ab5cf7df4578e46f6587c589f0c4d58c7c9a8753 Merge: 7379047 79828b4 Author: Mark Brown Date: Fri Oct 23 08:44:13 2015 +0900 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 56ea37da3b93dfe46cb5c3ee0ee4cc44229ece47 Author: Antti Palosaari Date: Sat Oct 3 18:35:14 2015 -0300 [media] m88ds3103: use own reg update_bits() implementation Device stopped to tuning some channels after regmap conversion. Reason is that regmap_update_bits() works a bit differently for partially volatile registers than old homemade routine. Return back to old routine in order to fix issue. Fixes: 478932b16052f5ded74685d096ae920cd17d6424 Cc: # 4.2+ Reported-by: Mark Clarkstone Tested-by: Mark Clarkstone Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/m88ds3103.c | 73 +++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 26 deletions(-) commit d18ca5b7ceca0e9674cb4bb2ed476b0fcbb23ba2 Author: Antti Palosaari Date: Tue Oct 6 00:22:23 2015 -0300 [media] rtl28xxu: fix control message flaws Add lock to prevent concurrent access for control message as control message function uses shared buffer. Without the lock there may be remote control polling which messes the buffer causing IO errors. Increase buffer size and add check for maximum supported message length. Link: https://bugzilla.kernel.org/show_bug.cgi?id=103391 Fixes: c56222a6b25c ("[media] rtl28xxu: move usb buffers to state") Cc: # 4.0+ Signed-off-by: Antti Palosaari drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 15 +++++++++++++-- drivers/media/usb/dvb-usb-v2/rtl28xxu.h | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) commit 17f38822038ba5d4dba79b72fd111bbf64173063 Author: Jacek Anaszewski Date: Fri Oct 2 06:19:15 2015 -0300 [media] v4l2-flash-led-class: Add missing VIDEO_V4L2 Kconfig dependency Fixes the following randconfig problem: drivers/built-in.o: In function `v4l2_flash_release': (.text+0x12204f): undefined reference to `v4l2_async_unregister_subdev' drivers/built-in.o: In function `v4l2_flash_release': (.text+0x122057): undefined reference to `v4l2_ctrl_handler_free' drivers/built-in.o: In function `v4l2_flash_close': v4l2-flash-led-class.c:(.text+0x12208f): undefined reference to `v4l2_fh_is_singular' v4l2-flash-led-class.c:(.text+0x1220c8): undefined reference to `__v4l2_ctrl_s_ctrl' drivers/built-in.o: In function `v4l2_flash_open': v4l2-flash-led-class.c:(.text+0x12227f): undefined reference to `v4l2_fh_is_singular' drivers/built-in.o: In function `v4l2_flash_init_controls': v4l2-flash-led-class.c:(.text+0x12274e): undefined reference to `v4l2_ctrl_handler_init_class' v4l2-flash-led-class.c:(.text+0x122797): undefined reference to `v4l2_ctrl_new_std_menu' v4l2-flash-led-class.c:(.text+0x1227e0): undefined reference to `v4l2_ctrl_new_std' v4l2-flash-led-class.c:(.text+0x122826): undefined reference to `v4l2_ctrl_handler_setup' v4l2-flash-led-class.c:(.text+0x122839): undefined reference to `v4l2_ctrl_handler_free' drivers/built-in.o: In function `v4l2_flash_init': (.text+0x1228e2): undefined reference to `v4l2_subdev_init' drivers/built-in.o: In function `v4l2_flash_init': (.text+0x12293b): undefined reference to `v4l2_async_register_subdev' drivers/built-in.o: In function `v4l2_flash_init': (.text+0x122949): undefined reference to `v4l2_ctrl_handler_free' drivers/built-in.o:(.rodata+0x20ef8): undefined reference to `v4l2_subdev_queryctrl' drivers/built-in.o:(.rodata+0x20f10): undefined reference to `v4l2_subdev_querymenu' Signed-off-by: Jacek Anaszewski Reported-by: kbuild test robot Cc: Sakari Ailus Cc: Hans Verkuil drivers/media/v4l2-core/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9d2b064c0ae42ad93b2a0c7da05daef312c96bcc Author: Abylay Ospan Date: Fri Sep 25 04:56:21 2015 -0300 [media] netup_unidvb: fix potential crash when spi is NULL Signed-off-by: Abylay Ospan Reported-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/netup_unidvb/netup_unidvb_spi.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 47810b4341ac9d2f558894bc5995e6fa2a1298f9 Author: Laura Abbott Date: Tue Sep 29 21:10:09 2015 -0300 [media] si2168: Bounds check firmware When reading the firmware and sending commands, the length must be bounds checked to avoid overrunning the size of the command buffer and smashing the stack if the firmware is not in the expected format: si2168 11-0064: found a 'Silicon Labs Si2168-B40' si2168 11-0064: downloading firmware from file 'dvb-demod-si2168-b40-01.fw' si2168 11-0064: firmware download failed -95 Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: ffffffffa085708f Add the proper check. Cc: stable@kernel.org Reported-by: Stuart Auchterlonie Reviewed-by: Antti Palosaari Signed-off-by: Laura Abbott Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/si2168.c | 4 ++++ 1 file changed, 4 insertions(+) commit a828d72df216c36e9c40b6c24dc4b17b6f7b5a76 Author: Laura Abbott Date: Tue Sep 29 21:10:10 2015 -0300 [media] si2157: Bounds check firmware When reading the firmware and sending commands, the length must be bounds checked to avoid overrunning the size of the command buffer and smashing the stack if the firmware is not in the expected format. Add the proper check. Cc: stable@kernel.org Signed-off-by: Laura Abbott Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/si2157.c | 4 ++++ 1 file changed, 4 insertions(+) commit 54bec3970cb5351d08866af1ea8b0787edd7ede3 Author: Sudeep Holla Date: Mon Sep 21 12:47:11 2015 -0300 [media] ir-hix5hd2: drop the use of IRQF_NO_SUSPEND This driver doesn't claim the IR transmitter to be wakeup source. It even disables the clock and the IR during suspend-resume cycle. This patch removes yet another misuse of IRQF_NO_SUSPEND. Cc: Patrice Chotard Cc: Fabio Estevam Cc: Guoxiong Yan Signed-off-by: Sudeep Holla Acked-by: Zhangfei Gao Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-hix5hd2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51a3ac5f4dc45120c78fad51096d989914801457 Author: Sudip Mukherjee Date: Thu Sep 17 07:12:54 2015 -0300 [media] c8sectpfe: fix return of garbage The variable err was never initialized, that means we had been checking a garbage value in the for loop. Moreover if the segment is not outside the firmware file then also we have been returning the garbage. Initialize it to 0 so that on success we return the value and no need to check in the for loop also as it is initially 0 and whenever that value changes we have done a break from the loop. Signed-off-by: Sudip Mukherjee Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf447221a8791d0f5dd28b19336e31e48f05f04a Author: Colin Ian King Date: Tue Sep 15 08:42:27 2015 -0300 [media] c8sectpfe: fix ininitialized error return on firmware load failure static analysis with cppcheck detected the following error: [drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c:1210]: (error) Uninitialized variable: ret ret is never initialised, so garbage is being returned. Instead return the error return from the call of request_firmware_nowait Signed-off-by: Colin Ian King drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a9c4e5cfebc44e6caa6b9299af5603f5c2da0c33 Author: Javier Martinez Canillas Date: Sun Sep 13 19:45:21 2015 -0300 [media] lnbh25: Fix lnbh25_attach() function return type If CONFIG_DVB_LNBH25 is disabled, a stub static inline function is defined that just prints a warning about the driver being disabled but the function return type was wrong which caused a build error. Fixes: e025273b86fb ("[media] lnbh25: LNBH25 SEC controller driver") Reported-by: Fengguang Wu Signed-off-by: Javier Martinez Canillas drivers/media/dvb-frontends/lnbh25.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebdd4b7e6a0dd86736eeb6b9e60b361ef64ccc30 Author: Javier Martinez Canillas Date: Sun Sep 13 19:39:22 2015 -0300 [media] horus3a: Fix horus3a_attach() function parameters If CONFIG_DVB_HORUS3A is disabled a stub static inline function is defined that just prints a warning about the driver being disabled but the function parameters were wrong which caused a build error. Fixes: a5d32b358254f ("[media] horus3a: Sony Horus3A DVB-S/S2 tuner driver") Reported-by: Fengguang Wu Signed-off-by: Javier Martinez Canillas drivers/media/dvb-frontends/horus3a.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4db7062c9a8bff92137bb2f381d81dd1bb5b7872 Author: Sudeep Holla Date: Fri Oct 16 17:01:36 2015 +0100 ARM: dts: fix gpio-keys wakeup-source property The keyboard driver for GPIO buttons(gpio-keys) checks for one of the two boolean properties to enable gpio buttons as wakeup source: 1. "wakeup-source" or 2. the legacy "gpio-key,wakeup" However juno, ste-snowball and emev2-kzm9d dts file have a undetected "wakeup" property to indictate the wakeup source. This patch fixes it by making use of "wakeup-source" property. Cc: Magnus Damm Acked-by: Simon Horman Reviewed-by: Linus Walleij Signed-off-by: Sudeep Holla Signed-off-by: Olof Johansson arch/arm/boot/dts/emev2-kzm9d.dts | 8 ++++---- arch/arm/boot/dts/ste-snowball.dts | 10 +++++----- arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 12 ++++++------ 3 files changed, 15 insertions(+), 15 deletions(-) commit 0db65fcfcded76fe4f74e3ca9f4e2baf67b683ef Author: Bjørn Mork Date: Thu Oct 22 14:15:58 2015 +0200 qmi_wwan: add Sierra Wireless MC74xx/EM74xx New device IDs shamelessly lifted from the vendor driver. Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 4 ++++ 1 file changed, 4 insertions(+) commit 199c6550694dcdf5f568ea9db6fe2b46d14e4fa5 Merge: d46a9d6 ca064bd Author: David S. Miller Date: Thu Oct 22 07:46:05 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec Steffen Klassert says: ==================== pull request (net): ipsec 2015-10-22 1) Fix IPsec pre-encap fragmentation for GSO packets. From Herbert Xu. 2) Fix some header checks in _decode_session6. We skip the header informations if the data pointer points already behind the header in question for some protocols. This is because we call pskb_may_pull with a negative value converted to unsigened int from pskb_may_pull in this case. Skipping the header informations can lead to incorrect policy lookups. From Mathias Krause. 3) Allow to change the replay threshold and expiry timer of a state without having to set other attributes like replay counter and byte lifetime. Changing these other attributes may break the SA. From Michael Rossberg. 4) Fix pmtu discovery for local generated packets. We may fail dispatch to the inner address family. As a reault, the local error handler is not called and the mtu value is not reported back to userspace. Please pull or let me know if there are problems. ==================== Signed-off-by: David S. Miller commit d46a9d678e4c9fac1e968d0593e4dba683389324 Author: David Ahern Date: Wed Oct 21 08:42:22 2015 -0700 net: ipv6: Dont add RT6_LOOKUP_F_IFACE flag if saddr set 741a11d9e410 ("net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set") adds the RT6_LOOKUP_F_IFACE flag to make device index mismatch fatal if oif is given. Hajime reported that this change breaks the Mobile IPv6 use case that wants to force the message through one interface yet use the source address from another interface. Handle this case by only adding the flag if oif is set and saddr is not set. Fixes: 741a11d9e410 ("net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set") Cc: Hajime Tazaki Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv6/route.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 92a93fd5bbe7dbe0ee7322c92e44a820f62bef90 Merge: 4ef7ea9 c96356a Author: David S. Miller Date: Thu Oct 22 07:23:25 2015 -0700 Merge branch 'isdn-null-deref' Karsten Keil says: ==================== Fix potential NULL pointer access and memory leak in ISDN layer2 functions Insu Yun did brinup the issue with not checking the skb_clone() return value in the layer2 I-frame ull functions. This series fix the issue in a way which avoid protocol violations/data loss on a temporary memory shortage. ==================== Signed-off-by: David S. Miller commit c96356a9baa2e3d628caf52f3b83df1968628b5f Author: Karsten Keil Date: Wed Oct 21 14:18:39 2015 +0200 mISDN: fix OOM condition for sending queued I-Frames The old code did not check the return value of skb_clone(). The extra skb_clone() is not needed at all, if using skb_realloc_headroom() instead, which gives us a private copy with enough headroom as well. We need to requeue the original skb if the call failed, because we cannot inform upper layers about the data loss. Restructure the code to minimise rollback effort if it happens. This fix kernel bug #86091 Thanks to Insu Yun to remind me on this issue. Signed-off-by: Karsten Keil Signed-off-by: David S. Miller drivers/isdn/mISDN/layer2.c | 54 +++++++++++++++++---------------------------- 1 file changed, 20 insertions(+), 34 deletions(-) commit c7a7c95e8e18a3598c4d0f99c35e69dce591daf1 Author: Karsten Keil Date: Wed Oct 21 14:18:38 2015 +0200 ISDN: fix OOM condition for sending queued I-Frames The skb_clone() return value was not checked and the skb_realloc_headroom() usage was wrong, the old skb was not freed. It turned out, that the skb_clone is not needed at all, the skb_realloc_headroom() will create a private copy with enough headroom and the original SKB can be used for the ACK queue. We need to requeue the original skb if the call failed, since the upper layer cannot be informed about memory shortage. Thanks to Insu Yun to remind me on this issue. Signed-off-by: Karsten Keil Signed-off-by: David S. Miller drivers/isdn/hisax/isdnl2.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 4ef7ea9195ea73262cd9730fb54e1eb726da157b Author: Jorgen Hansen Date: Wed Oct 21 04:53:56 2015 -0700 VSOCK: sock_put wasn't safe to call in interrupt context In the vsock vmci_transport driver, sock_put wasn't safe to call in interrupt context, since that may call the vsock destructor which in turn calls several functions that should only be called from process context. This change defers the callling of these functions to a worker thread. All these functions were deallocation of resources related to the transport itself. Furthermore, an unused callback was removed to simplify the cleanup. Multiple customers have been hitting this issue when using VMware tools on vSphere 2015. Also added a version to the vmci transport module (starting from 1.0.2.0-k since up until now it appears that this module was sharing version with vsock that is currently at 1.0.1.0-k). Reviewed-by: Aditya Asarwade Reviewed-by: Thomas Hellstrom Signed-off-by: Jorgen Hansen Signed-off-by: David S. Miller net/vmw_vsock/vmci_transport.c | 173 ++++++++++++++++++++--------------------- net/vmw_vsock/vmci_transport.h | 4 +- 2 files changed, 86 insertions(+), 91 deletions(-) commit 47191d65b647af5eb5c82ede70ed4c24b1e93ef4 Author: David Herrmann Date: Wed Oct 21 11:47:43 2015 +0200 netlink: fix locking around NETLINK_LIST_MEMBERSHIPS Currently, NETLINK_LIST_MEMBERSHIPS grabs the netlink table while copying the membership state to user-space. However, grabing the netlink table is effectively a write_lock_irq(), and as such we should not be triggering page-faults in the critical section. This can be easily reproduced by the following snippet: int s = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); void *p = mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0); int r = getsockopt(s, 0x10e, 9, p, (void*)((char*)p + 4092)); This should work just fine, but currently triggers EFAULT and a possible WARN_ON below handle_mm_fault(). Fix this by reducing locking of NETLINK_LIST_MEMBERSHIPS to a read-side lock. The write-lock was overkill in the first place, and the read-lock allows page-faults just fine. Reported-by: Dmitry Vyukov Signed-off-by: David Herrmann Signed-off-by: David S. Miller net/netlink/af_netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 34e45ad9378c31ef2b59e8bd63d62f0ca8e719a3 Author: Andrew F. Davis Date: Tue Oct 20 16:28:57 2015 -0500 net: phy: dp83848: Add TI DP83848 Ethernet PHY Add support for the TI DP83848 Ethernet PHY device. The DP83848 is a highly reliable, feature rich, IEEE 802.3 compliant single port 10/100 Mb/s Ethernet Physical Layer Transceiver supporting the MII and RMII interfaces. Signed-off-by: Andrew F. Davis Signed-off-by: Dan Murphy Reviewed-by: Florian Fainelli Acked-by: Dan Murphy Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 5 +++ drivers/net/phy/Makefile | 1 + drivers/net/phy/dp83848.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) commit 0729a04977d497cf66234fd7f900ddcec3ef1c52 Author: Hezi Shahmoon Date: Tue Oct 20 16:32:24 2015 +0200 i2c: mv64xxx: really allow I2C offloading Commit 00d8689b85a7 ("i2c: mv64xxx: rework offload support to fix several problems") completely reworked the offload support, but left a debugging-related "return false" at the beginning of the mv64xxx_i2c_can_offload() function. This has the unfortunate consequence that offloading is in fact never used, which wasn't really the intention. This commit fixes that problem by removing the bogus "return false". Fixes: 00d8689b85a7 ("i2c: mv64xxx: rework offload support to fix several problems") Signed-off-by: Hezi Shahmoon [Thomas: reworked commit log and title.] Signed-off-by: Thomas Petazzoni Signed-off-by: Wolfram Sang Cc: drivers/i2c/busses/i2c-mv64xxx.c | 2 -- 1 file changed, 2 deletions(-) commit 4eb0f7abcefad2d4c127aa7502d3122635eddab0 Author: Jiada Wang Date: Tue Oct 20 11:47:11 2015 +0900 ASoC: wm8962: mark cache_dirty flag after software reset in pm_resume By doing software reset of wm8962 in pm_resume, all registers which have already been set will be reset to default value without regmap interface be involved, thus driver need to mark cache_dirty flag, to let regcache can be updated by regcache_sync(). Signed-off-by: Jiada Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8962.c | 2 ++ 1 file changed, 2 insertions(+) commit 104eb270e665f4fcd8cb8c8ab4c4d4538c604e92 Author: Hans de Goede Date: Tue Oct 20 10:42:24 2015 +0200 net: sun4i-emac: Properly free resources on probe failure and remove Fix sun4i-emac not releasing the following resources: -iomapped memory not released on probe-failure nor on remove -clock not getting disabled on probe-failure nor on remove -sram not being released on remove And while at it also add error checking to the clk_prepare_enable call done on probe. Signed-off-by: Hans de Goede Acked-by: Maxime Ripard Signed-off-by: David S. Miller drivers/net/ethernet/allwinner/sun4i-emac.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit e754ec69ab69601420eb2ed58ece803d77c93f61 Author: Joe Stringer Date: Mon Oct 19 19:19:00 2015 -0700 openvswitch: Serialize nested ct actions if provided If userspace provides a ct action with no nested mark or label, then the storage for these fields is zeroed. Later when actions are requested, such zeroed fields are serialized even though userspace didn't originally specify them. Fix the behaviour by ensuring that no action is serialized in this case, and reject actions where userspace attempts to set these fields with mask=0. This should make netlink marshalling consistent across deserialization/reserialization. Reported-by: Jarno Rajahalme Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/conntrack.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 4f0909ee3d8e3514a274121f3bf217a4920fa12d Author: Joe Stringer Date: Mon Oct 19 19:18:59 2015 -0700 openvswitch: Mark connections new when not confirmed. New, related connections are marked as such as part of ovs_ct_lookup(), but they are not marked as "new" if the commit flag is used. Make this consistent by setting the "new" flag whenever !nf_ct_is_confirmed(ct). Reported-by: Jarno Rajahalme Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/conntrack.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1d008a1df927846788b9dc02e770f65951f98ddc Author: Joe Stringer Date: Mon Oct 19 19:18:58 2015 -0700 openvswitch: Clarify conntrack COMMIT behaviour The presence of this attribute does not modify the ct_state for the current packet, only future packets. Make this more clear in the header definition. Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9e384715e9e702704c6941c575f0e6b322132a3a Author: Joe Stringer Date: Mon Oct 19 19:18:57 2015 -0700 openvswitch: Reject ct_state masks for unknown bits Currently, 0-bits are generated in ct_state where the bit position is undefined, and matches are accepted on these bit-positions. If userspace requests to match the 0-value for this bit then it may expect only a subset of traffic to match this value, whereas currently all packets will have this bit set to 0. Fix this by rejecting such masks. Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/conntrack.h | 16 +++++----------- net/openvswitch/flow_netlink.c | 5 ++++- 2 files changed, 9 insertions(+), 12 deletions(-) commit e2e8009ff72ad2a795b67785f3238af152146368 Author: Renato Westphal Date: Mon Oct 19 18:51:34 2015 -0200 tcp: remove improper preemption check in tcp_xmit_probe_skb() Commit e520af48c7e5a introduced the following bug when setting the TCP_REPAIR sockoption: [ 2860.657036] BUG: using __this_cpu_add() in preemptible [00000000] code: daemon/12164 [ 2860.657045] caller is __this_cpu_preempt_check+0x13/0x20 [ 2860.657049] CPU: 1 PID: 12164 Comm: daemon Not tainted 4.2.3 #1 [ 2860.657051] Hardware name: Dell Inc. PowerEdge R210 II/0JP7TR, BIOS 2.0.5 03/13/2012 [ 2860.657054] ffffffff81c7f071 ffff880231e9fdf8 ffffffff8185d765 0000000000000002 [ 2860.657058] 0000000000000001 ffff880231e9fe28 ffffffff8146ed91 ffff880231e9fe18 [ 2860.657062] ffffffff81cd1a5d ffff88023534f200 ffff8800b9811000 ffff880231e9fe38 [ 2860.657065] Call Trace: [ 2860.657072] [] dump_stack+0x4f/0x7b [ 2860.657075] [] check_preemption_disabled+0xe1/0xf0 [ 2860.657078] [] __this_cpu_preempt_check+0x13/0x20 [ 2860.657082] [] tcp_xmit_probe_skb+0xc7/0x100 [ 2860.657085] [] tcp_send_window_probe+0x2d/0x30 [ 2860.657089] [] do_tcp_setsockopt.isra.29+0x74c/0x830 [ 2860.657093] [] tcp_setsockopt+0x2c/0x30 [ 2860.657097] [] sock_common_setsockopt+0x14/0x20 [ 2860.657100] [] SyS_setsockopt+0x71/0xc0 [ 2860.657104] [] entry_SYSCALL_64_fastpath+0x16/0x75 Since tcp_xmit_probe_skb() can be called from process context, use NET_INC_STATS() instead of NET_INC_STATS_BH(). Fixes: e520af48c7e5 ("tcp: add TCPWinProbe and TCPKeepAlive SNMP counters") Signed-off-by: Renato Westphal Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36a28b21169d28db2a3409a4e2d4b9a7563c1a00 Merge: e535679 00db674 Author: David S. Miller Date: Wed Oct 21 19:26:17 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf Pablo Neira Ayuso says: ==================== Netfilter fixes for net The following patchset contains four Netfilter fixes for net, they are: 1) Fix Kconfig dependencies of new nf_dup_ipv4 and nf_dup_ipv6. 2) Remove bogus test nh_scope in IPv4 rpfilter match that is breaking --accept-local, from Xin Long. 3) Wait for RCU grace period after dropping the pending packets in the nfqueue, from Florian Westphal. 4) Fix sleeping allocation while holding spin_lock_bh, from Nikolay Borisov. ==================== Signed-off-by: David S. Miller commit e53567948f82368247b4b1a63fcab4c76ef7d51c Author: Jon Paul Maloy Date: Mon Oct 19 11:43:11 2015 -0400 tipc: conditionally expand buffer headroom over udp tunnel In commit d999297c3dbbe ("tipc: reduce locking scope during packet reception") we altered the packet retransmission function. Since then, when restransmitting packets, we create a clone of the original buffer using __pskb_copy(skb, MIN_H_SIZE), where MIN_H_SIZE is the size of the area we want to have copied, but also the smallest possible TIPC packet size. The value of MIN_H_SIZE is 24. Unfortunately, __pskb_copy() also has the effect that the headroom of the cloned buffer takes the size MIN_H_SIZE. This is too small for carrying the packet over the UDP tunnel bearer, which requires a minimum headroom of 28 bytes. A change to just use pskb_copy() lets the clone inherit the original headroom of 80 bytes, but also assumes that the copied data area is of at least that size, something that is not always the case. So that is not a viable solution. We now fix this by adding a check for sufficient headroom in the transmit function of udp_media.c, and expanding it when necessary. Fixes: commit d999297c3dbbe ("tipc: reduce locking scope during packet reception") Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/udp_media.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7a4264a9250fc6d555ff305aa5e5168723805bb9 Author: Andreas Schwab Date: Mon Oct 19 17:37:13 2015 +0200 net: cavium: change NET_VENDOR_CAVIUM to bool CONFIG_NET_VENDOR_CAVIUM is only used to hide/show config options and to include subdirectories in the build, so it doesn't make sense to make it tristate. Signed-off-by: Andreas Schwab Signed-off-by: David S. Miller drivers/net/ethernet/cavium/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45c8b7b175ceb2d542e0fe15247377bf3bce29ec Author: Jon Paul Maloy Date: Mon Oct 19 11:33:00 2015 -0400 tipc: allow non-linear first fragment buffer The current code for message reassembly is erroneously assuming that the the first arriving fragment buffer always is linear, and then goes ahead resetting the fragment list of that buffer in anticipation of more arriving fragments. However, if the buffer already happens to be non-linear, we will inadvertently drop the already attached fragment list, and later on trig a BUG() in __pskb_pull_tail(). We see this happen when running fragmented TIPC multicast across UDP, something made possible since commit d0f91938bede ("tipc: add ip/udp media type") We fix this by not resetting the fragment list when the buffer is non- linear, and by initiatlizing our private fragment list tail pointer to the tail of the existing fragment list. Fixes: commit d0f91938bede ("tipc: add ip/udp media type") Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/msg.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 1241365f1aeb24ef0ffe82970f7c558022ddc85f Author: James Morse Date: Mon Oct 19 16:31:55 2015 +0100 openvswitch: Allocate memory for ovs internal device stats. "openvswitch: Remove vport stats" removed the per-vport statistics, in order to use the netdev's statistics fields. "openvswitch: Fix ovs_vport_get_stats()" fixed the export of these stats to user-space, by using the provided netdev_ops to collate them - but ovs internal devices still use an unallocated dev->tstats field to count packets, which are no longer exported by this api. Allocate the dev->tstats field for ovs internal devices, and wire up ndo_get_stats64 with the original implementation of ovs_vport_get_stats(). On its own, "openvswitch: Fix ovs_vport_get_stats()" fixes the OOPs, unmasking a full-on panic on arm64: =============%<============== [] internal_dev_recv+0xa8/0x170 [openvswitch] [] do_output.isra.31+0x60/0x19c [openvswitch] [] do_execute_actions+0x208/0x11c0 [openvswitch] [] ovs_execute_actions+0xc8/0x238 [openvswitch] [] ovs_packet_cmd_execute+0x21c/0x288 [openvswitch] [] genl_family_rcv_msg+0x1b0/0x310 [] genl_rcv_msg+0xa4/0xe4 [] netlink_rcv_skb+0xb0/0xdc [] genl_rcv+0x38/0x50 [] netlink_unicast+0x164/0x210 [] netlink_sendmsg+0x304/0x368 [] sock_sendmsg+0x30/0x4c [SNIP] Kernel panic - not syncing: Fatal exception in interrupt =============%<============== Fixes: 8c876639c985 ("openvswitch: Remove vport stats.") Signed-off-by: James Morse Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/vport-internal_dev.c | 46 +++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) commit f1900fb5eca2cf9b96837e4931165003918d7d29 Author: David Ahern Date: Mon Oct 19 08:26:05 2015 -0700 net: Really fix vti6 with oif in dst lookups 6e28b000825d ("net: Fix vti use case with oif in dst lookups for IPv6") is missing the checks on FLOWI_FLAG_SKIP_NH_OIF. Add them. Fixes: 42a7b32b73d6 ("xfrm: Add oif to dst lookups") Cc: Steffen Klassert Signed-off-by: David Ahern Acked-by: Steffen Klassert Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 3 ++- net/ipv6/route.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 53387c4e22ac33d27a552b3d56bad932bd32531b Author: Jon Paul Maloy Date: Mon Oct 19 09:21:37 2015 -0400 tipc: extend broadcast link window size The default fix broadcast window size is currently set to 20 packets. This is a very low value, set at a time when we were still testing on 10 Mb/s hubs, and a change to it is long overdue. Commit 7845989cb4b3da1db ("net: tipc: fix stall during bclink wakeup procedure") revealed a problem with this low value. For messages of importance LOW, the backlog queue limit will be calculated to 30 packets, while a single, maximum sized message of 66000 bytes, carried across a 1500 MTU network consists of 46 packets. This leads to the following scenario (among others leading to the same situation): 1: Msg 1 of 46 packets is sent. 20 packets go to the transmit queue, 26 packets to the backlog queue. 2: Msg 2 of 46 packets is attempted sent, but rejected because there is no more space in the backlog queue at this level. The sender is added to the wakeup queue with a "pending packets chain size" number of 46. 3: Some packets in the transmit queue are acked and released. We try to wake up the sender, but the pending size of 46 is bigger than the LOW wakeup limit of 30, so this doesn't happen. 5: Subsequent acks releases all the remaining buffers. Each time we test for the wakeup criteria and find that 46 still is larger than 30, even after both the transmit and the backlog queues are empty. 6: The sender is never woken up and given a chance to send its message. He is stuck. We could now loosen the wakeup criteria (used by link_prepare_wakeup()) to become equal to the send criteria (used by tipc_link_xmit()), i.e., by ignoring the "pending packets chain size" value altogether, or we can just increase the queue limits so that the criteria can be satisfied anyway. There are good reasons (potentially multiple waiting senders) to not opt for the former solution, so we choose the latter one. This commit fixes the problem by giving the broadcast link window a default value of 50 packets. We also introduce a new minimum link window size BCLINK_MIN_WIN of 32, which is enough to always avoid the described situation. Finally, in order to not break any existing users which may set the window explicitly, we enforce that the window is set to the new minimum value in case the user is trying to set it to anything lower. Fixes: 7845989cb4b3da1db ("net: tipc: fix stall during bclink wakeup procedure") Signed-off-by: Jon Maloy Reviewed-by: Ying Xue Signed-off-by: David S. Miller net/tipc/bcast.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 0f89abf56abbd0e1c6e3cef9813e6d9f05383c1e Author: Christian Engelmayer Date: Wed Oct 21 00:50:06 2015 +0200 btrfs: fix possible leak in btrfs_ioctl_balance() Commit 8eb934591f8b ("btrfs: check unsupported filters in balance arguments") adds a jump to exit label out_bargs in case the argument check fails. At this point in addition to the bargs memory, the memory for struct btrfs_balance_control has already been allocated. Ownership of bctl is passed to btrfs_balance() in the good case, thus the memory is not freed due to the introduced jump. Make sure that the memory gets freed in any case as necessary. Detected by Coverity CID 1328378. Signed-off-by: Christian Engelmayer Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c50f13f911b90a722308bffbf26187ff3890aa1e Merge: c2a7558 677c884 Author: Dave Airlie Date: Thu Oct 22 10:24:55 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Just a crash fix for radeon and amdgpu if the user has forcibly disabled dpm and tries to access the pwm sysfs controls. * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: add missing dpm check for KV dpm late init drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled drm/radeon/dpm: don't add pwm attributes if DPM is disabled commit c2a75586ff27ee7636bb2bf33ee66992a6603e49 Merge: 37363bc 18e9345 Author: Dave Airlie Date: Thu Oct 22 10:24:21 2015 +1000 Merge tag 'drm-intel-fixes-2015-10-16' of git://anongit.freedesktop.org/drm-intel into drm-fixes The revert dance could use some explanation: we had stuff fixed in -next, and initially backported one commit to v4.3. Now, turns out we need more fixes, and we could cherry-pick them all without conflicts if we reverted the backported one first. So did that to not have to edit and backport them all. * tag 'drm-intel-fixes-2015-10-16' of git://anongit.freedesktop.org/drm-intel: drm/i915: Add primary plane to mask if it's visible drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc() drm/i915: Assign hwmode after encoder state readout Revert "drm/i915: Add primary plane to mask if it's visible" drm/i915: Deny wrapping an userptr into a framebuffer drm/i915: Enable DPLL VGA mode before P1/P2 divider write drm/i915: Restore lost DPLL register write on gen2-4 drm/i915: Flush pipecontrol post-sync writes drm/i915: Fix kerneldoc for i915_gem_shrink_all commit 8832317f662c06f5c06e638f57bfe89a71c9b266 Author: Vasant Hegde Date: Fri Oct 16 15:53:29 2015 +0530 powerpc/rtas: Validate rtas.entry before calling enter_rtas() Currently we do not validate rtas.entry before calling enter_rtas(). This leads to a kernel oops when user space calls rtas system call on a powernv platform (see below). This patch adds code to validate rtas.entry before making enter_rtas() call. Oops: Exception in kernel mode, sig: 4 [#1] SMP NR_CPUS=1024 NUMA PowerNV task: c000000004294b80 ti: c0000007e1a78000 task.ti: c0000007e1a78000 NIP: 0000000000000000 LR: 0000000000009c14 CTR: c000000000423140 REGS: c0000007e1a7b920 TRAP: 0e40 Not tainted (3.18.17-340.el7_1.pkvm3_1_0.2400.1.ppc64le) MSR: 1000000000081000 CR: 00000000 XER: 00000000 CFAR: c000000000009c0c SOFTE: 0 NIP [0000000000000000] (null) LR [0000000000009c14] 0x9c14 Call Trace: [c0000007e1a7bba0] [c00000000041a7f4] avc_has_perm_noaudit+0x54/0x110 (unreliable) [c0000007e1a7bd80] [c00000000002ddc0] ppc_rtas+0x150/0x2d0 [c0000007e1a7be30] [c000000000009358] syscall_exit+0x0/0x98 Cc: stable@vger.kernel.org # v3.2+ Fixes: 55190f88789a ("powerpc: Add skeleton PowerNV platform") Reported-by: NAGESWARA R. SASTRY Signed-off-by: Vasant Hegde [mpe: Reword change log, trim oops, and add stable + fixes] Signed-off-by: Michael Ellerman arch/powerpc/kernel/rtas.c | 3 +++ 1 file changed, 3 insertions(+) commit 37363bc03e0b53c45e98f34e35c75b55611417e0 Merge: 30730c7 2a6c521 Author: Dave Airlie Date: Thu Oct 22 09:15:10 2015 +1000 Merge branch 'linux-4.3' of git://anongit.freedesktop.org/nouveau/linux-2.6 into drm-fixes Just one fix from Ilia to resolve various issues that have resulted from buffer eviction. * 'linux-4.3' of git://anongit.freedesktop.org/nouveau/linux-2.6: drm/nouveau/gem: return only valid domain when there's only one commit 2a6c521bb41ce862e43db46f52e7681d33e8d771 Author: Ilia Mirkin Date: Tue Oct 20 01:15:39 2015 -0400 drm/nouveau/gem: return only valid domain when there's only one On nv50+, we restrict the valid domains to just the one where the buffer was originally created. However after the buffer is evicted to system memory, we might move it back to a different domain that was not originally valid. When sharing the buffer and retrieving its GEM_INFO data, we still want the domain that will be valid for this buffer in a pushbuf, not the one where it currently happens to be. This resolves fdo#92504 and several others. These are due to suspend evicting all buffers, making it more likely that they temporarily end up in the wrong place. Cc: stable@vger.kernel.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92504 Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_gem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 30730c7f5943b3beace1e29f7f1476e05de3da14 Author: Adam Richter Date: Fri Oct 16 03:33:02 2015 -0700 drm: fix mutex leak in drm_dp_get_mst_branch_device In Linux 4.3-rc5, there is an error case in drm_dp_get_branch_device that returns without releasing mgr->lock, resulting a spew of kernel messages about a kernel work function possibly having leaked a mutex and presumably more serious adverse consequences later. This patch changes the error to "goto out" to unlock the mutex before returning. [airlied: grabbed from drm-next as it fixes something we've seen] Signed-off-by: Adam J. Richter Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8a70dd2669200ce83255ed8c5ebef7e59f9e8707 Merge: 7f67786 ba2374f Author: Linus Torvalds Date: Thu Oct 22 06:32:48 2015 +0900 Merge tag 'for-linus-20151021' of git://git.infradead.org/intel-iommu Pull intel-iommu bugfix from David Woodhouse: "This contains a single fix, for when the IOMMU API is used to overlay an existing mapping comprised of 4KiB pages, with a mapping that can use superpages. For the *first* superpage in the new mapping, we were correctly¹ freeing the old bottom-level page table page and clearing the link to it, before installing the superpage. For subsequent superpages, however, we weren't. This causes a memory leak, and a warning about setting a PTE which is already set. ¹ Well, not *entirely* correctly. We just free the page table pages right there and then, which is wrong. In fact they should only be freed *after* the IOTLB is flushed so we know the hardware will no longer be looking at them.... and in fact I note that the IOTLB flush is completely missing from the intel_iommu_map() code path, although it needs to be there if it's permitted to overwrite existing mappings. Fixing those is somewhat more intrusive though, and will probably need to wait for 4.4 at this point" * tag 'for-linus-20151021' of git://git.infradead.org/intel-iommu: iommu/vt-d: fix range computation when making room for large pages commit 7f67786330ba500ebd7c62ff52b5f7cc6336358f Merge: be0e198 08b137d Author: Linus Torvalds Date: Thu Oct 22 06:31:27 2015 +0900 Merge tag 'mmc-v4.3-rc5' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC bugfix from Ulf Hansson: "Here's yet another MMC fix intended for v4.3 rc7. I don't expect to send any further pull requests for 4.3 rc[n]. MMC core: - Don't re-tune in the reset sequence to allow re-init of the card" * tag 'mmc-v4.3-rc5' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: core: Fix init_card in 52Mhz commit 0ca81a2840f77855bbad1b9f172c545c4dc9e6a4 Author: Doron Tsur Date: Sun Oct 11 15:58:17 2015 +0300 IB/cm: Fix rb-tree duplicate free and use-after-free ib_send_cm_sidr_rep could sometimes erase the node from the sidr (depending on errors in the process). Since ib_send_cm_sidr_rep is called both from cm_sidr_req_handler and cm_destroy_id, cm_id_priv could be either erased from the rb_tree twice or not erased at all. Fixing that by making sure it's erased only once before freeing cm_id_priv. Fixes: a977049dacde ('[PATCH] IB: Add the kernel CM implementation') Signed-off-by: Doron Tsur Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 09dc1387c9c06cdaf55bc99b35238bd2ec0aed4b Author: Thomas Hellstrom Date: Wed Oct 21 21:31:49 2015 +0200 drm/vmwgfx: Stabilize the command buffer submission code This commit addresses some stability problems with the command buffer submission code recently introduced: 1) Make the vmw_cmdbuf_man_process() function handle reruns internally to avoid losing interrupts if the caller forgets to rerun on -EAGAIN. 2) Handle default command buffer allocations using inline command buffers. This avoids rare allocation deadlocks. 3) In case of command buffer errors we might lose fence submissions. Therefore send a new fence after each command buffer error. This will help avoid lengthy fence waits. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit ad355e383d826e3506c3caaa0fe991fd112de47b Merge: b10d92a 0d99749 Author: Paolo Bonzini Date: Wed Oct 21 17:46:56 2015 +0200 Merge tag 'kvm-arm-for-v4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master A late round of KVM/ARM fixes for v4.3-rc7, fixing: - A bug where level-triggered interrupts lowered from userspace are still routed to the guest - A memory leak an a failed initialization path - A build error under certain configurations - Several timer bugs introduced with moving the timer to the active state handling instead of the masking trick. commit 55f41297576ddb7868af2f13f3a8107178dee2d0 Merge: 0690f4f db347f1 Author: Arnd Bergmann Date: Wed Oct 21 17:03:37 2015 +0200 Merge tag 'mvebu-fixes-4.3-2' of git://git.infradead.org/linux-mvebu into fixes Merge "mvebu fixes for 4.3 (part 2)" from Gregory CLEMENT: Fix wrong compatible for A385 DB AP preventing using suspend * tag 'mvebu-fixes-4.3-2' of git://git.infradead.org/linux-mvebu: ARM: mvebu: correct a385-db-ap compatible string commit 0690f4f2ef487259e9ce39f575c48c89745058f2 Merge: 6701ef0 b28fec1 Author: Arnd Bergmann Date: Wed Oct 21 17:02:13 2015 +0200 Merge tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes Merge "Samsung 2nd fixes for v4.3" from Kukjin Kim: - fix SOC detection of exynos thermal on exynos5260 - fix audio card detection on Peach boards - fix double of_node_put() when parsing child power domains * tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: thermal: exynos: Fix register read in TMU ARM: dts: Fix audio card detection on Peach boards ARM: EXYNOS: Fix double of_node_put() when parsing child power domains commit 6701ef0318f76a9765a3fc762cbac405e024a8c2 Merge: 4f1d841 57df538 Author: Arnd Bergmann Date: Wed Oct 21 17:01:14 2015 +0200 Merge tag 'omap-for-v4.3/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Merge "Fixes for omaps for v4.3-rc cycle" from Tony Lindgren: - Fix oops with LPAE and moew than 2GB of memory by enabling ZONE_DMA for LPAE. Probably no need for stable on this one as we only recently ran into this with the mainline kernel - Fix imprecise external abort caused by bogus SRAM init. This affects dm814x recently merged, so no need for stable on this one AFAIK * tag 'omap-for-v4.3/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory commit 50010c20597d14667eff0fdb628309986f195230 Author: Dan Carpenter Date: Mon Oct 19 13:16:49 2015 +0300 irda: precedence bug in irlmp_seq_hb_idx() This is decrementing the pointer, instead of the value stored in the pointer. KASan detects it as an out of bounds reference. Reported-by: "Berry Cheng 程君(成淼)" Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller net/irda/irlmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca88ea1247dfee094e2467a3578eaec9bdf0833a Author: Joe Jin Date: Mon Oct 19 13:37:17 2015 +0800 xen-netfront: update num_queues to real created Sometimes xennet_create_queues() may failed to created all requested queues, we need to update num_queues to real created to avoid NULL pointer dereference. Signed-off-by: Joe Jin Cc: Boris Ostrovsky Cc: Konrad Rzeszutek Wilk Cc: Wei Liu Cc: Ian Campbell Cc: David S. Miller Reviewed-by: Boris Ostrovsky Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit f6a835bb04ca34b6fd337eea0544a871ba2349b8 Author: Gao feng Date: Sun Oct 18 23:35:56 2015 +0800 vsock: fix missing cleanup when misc_register failed reset transport and unlock if misc_register failed. Signed-off-by: Gao feng Signed-off-by: David S. Miller net/vmw_vsock/af_vsock.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 10be15ff6c33f1dc0a96cae6089dc2268834e568 Merge: f3c9f95 968200f Author: David S. Miller Date: Wed Oct 21 07:36:51 2015 -0700 Merge branch 'mv643xx-fixes' Philipp Kirchhofer says: ==================== net: mv643xx_eth: TSO TX data corruption fixes as previously discussed [1] the mv643xx_eth driver has some issues with data corruption when using TCP segmentation offload (TSO). The following patch set improves this situation by fixing two data corruption bugs in the TSO TX path. Before applying the patches repeatedly accessing large files located on a SMB share on my NSA325 NAS with TSO enabled resulted in different hash sums, which confirmed that data corruption is happening during file transfer. After applying the patches the hash sums were the same. As this is my first patch submission please feel free to point out any issues with the patch set. [1] http://thread.gmane.org/gmane.linux.network/336530 ==================== Signed-off-by: David S. Miller commit 968200f322daccc6f08fee26fe1bb4232e460408 Author: Philipp Kirchhofer Date: Sun Oct 18 16:02:44 2015 +0200 net: mv643xx_eth: Defer writing the first TX descriptor when using TSO To prevent a race between the TX DMA engine and the CPU the writing of the first transmit descriptor must be deferred until all following descriptors have been updated. The network card may otherwise start transmitting before all packet descriptors are set up correctly, which leads to data corruption or an aborted transmit operation. This deferral is already done in the non-TSO TX path, implement it also in the TSO TX path. Signed-off-by: Philipp Kirchhofer Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit 91986fd3d335a2ea651bc85cf5a03f2f61a2aa34 Author: Philipp Kirchhofer Date: Sun Oct 18 16:02:43 2015 +0200 net: mv643xx_eth: Ensure proper data alignment in TSO TX path The TX DMA engine requires that buffers with a size of 8 bytes or smaller must be 64 bit aligned. This requirement may be violated when doing TSO, as in this case larger skb frags can be broken up and transmitted in small parts with then inappropriate alignment. Fix this by checking for proper alignment before handing a buffer to the DMA engine. If the data is misaligned realign it by copying it into the TSO header data area. Signed-off-by: Philipp Kirchhofer Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit e27c5b9d23168cc2cb8fec147ae7ed1f7a2005c3 Author: Tejun Heo Date: Tue Oct 13 18:14:19 2015 -0400 writeback: remove broken rbtree_postorder_for_each_entry_safe() usage in cgwb_bdi_destroy() a20135ffbc44 ("writeback: don't drain bdi_writeback_congested on bdi destruction") added rbtree_postorder_for_each_entry_safe() which is used to remove all entries; however, according to Cody, the iterator isn't safe against operations which may rebalance the tree. Fix it by switching to repeatedly removing rb_first() until empty. Signed-off-by: Tejun Heo Reported-by: Cody P Schafer Fixes: a20135ffbc44 ("writeback: don't drain bdi_writeback_congested on bdi destruction") Link: http://lkml.kernel.org/g/1443997973-1700-1-git-send-email-dev@codyps.com Signed-off-by: Jens Axboe mm/backing-dev.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f3c9f95056acab715328ee63a80ddf5fd32c0a28 Merge: aebd994 d88ecb3 Author: David S. Miller Date: Wed Oct 21 06:41:51 2015 -0700 Merge branch 'smsc-energy-detect' Heiko Schocher says: ==================== net, phy, smsc: add posibility to disable energy detect mode On some boards the energy enable detect mode leads in trouble with some switches, so make the enabling of this mode configurable through DT. Therefore the property "smsc,disable-energy-detect" is introduced. Patch 1 introduces phy-handle support for the ti,cpsw driver. This is needed now for the smsc phy. Patch 2 adds the disable energy mode functionality to the smsc phy Changes in v2: - add comments from Florian Fainelli - I did not change disable property name into enable because I fear to break existing behaviour - add smsc vendor prefix - remove CONFIG_OF and use __maybe_unused - introduce "phy-handle" ability into ti,cpsw driver, so I can remove bogus: if (!of_node && dev->parent->of_node) of_node = dev->parent->of_node; construct. Therefore new patch for the ti,cpsw driver is necessary. ==================== Signed-off-by: David S. Miller commit d88ecb373bd1877acc43e13311a8e0e6daffc3d2 Author: Heiko Schocher Date: Sat Oct 17 06:04:36 2015 +0200 net: phy: smsc: disable energy detect mode On some boards the energy enable detect mode leads in trouble with some switches, so make the enabling of this mode configurable through DT. Signed-off-by: Heiko Schocher Signed-off-by: David S. Miller .../devicetree/bindings/net/smsc-lan87xx.txt | 24 ++++++++++++++++++++++ drivers/net/phy/smsc.c | 19 ++++++++++++----- 2 files changed, 38 insertions(+), 5 deletions(-) commit 9e42f715264ff158478fa30eaed847f6e131366b Author: Heiko Schocher Date: Sat Oct 17 06:04:35 2015 +0200 drivers: net: cpsw: add phy-handle parsing add the ability to parse "phy-handle". This is needed for phys, which have a DT node, and need to parse DT properties. Signed-off-by: Heiko Schocher Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/cpsw.txt | 1 + drivers/net/ethernet/ti/cpsw.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) commit aebd99477f03950fb05b29c7248656167198bf2d Author: Simon Arlott Date: Thu Oct 15 21:00:22 2015 +0100 bcm63xx_enet: check 1000BASE-T advertisement configuration If a gigabit ethernet PHY is connected to a fast ethernet MAC, then it can detect 1000 support from the partner but not use it. This results in a forced speed of 1000 and RX/TX failure. Check for 1000BASE-T support and then check the advertisement configuration before setting the MAC speed to 1000mbit. Signed-off-by: Simon Arlott Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcm63xx_enet.c | 33 ++++++++++++++++------------ 1 file changed, 19 insertions(+), 14 deletions(-) commit f8f2dc4a7127725383c93b501fcc4e47871b0a9d Author: Bard Liao Date: Wed Oct 21 16:18:18 2015 +0800 ASoC: rt298: fix wrong setting of gpio2_en The register value to enable gpio2 was incorrect. So fix it. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt298.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53c656c4138511c2ba54df413dc29976cfa9f084 Author: Paul Mackerras Date: Wed Oct 21 16:06:24 2015 +1100 powerpc/powernv: Handle irq_happened flag correctly in off-line loop This fixes a bug where it is possible for an off-line CPU to fail to go into a low-power state (nap/sleep/winkle), and to become unresponsive to requests from the KVM subsystem to wake up and run a VCPU. What can happen is that a maskable interrupt of some kind (external, decrementer, hypervisor doorbell, or HMI) after we have called local_irq_disable() at the beginning of pnv_smp_cpu_kill_self() and before interrupts are hard-disabled inside power7_nap/sleep/winkle(). In this situation, the pending event is marked in the irq_happened flag in the PACA. This pending event prevents power7_nap/sleep/winkle from going to the requested low-power state; instead they return immediately. We don't deal with any of these pending event flags in the off-line loop in pnv_smp_cpu_kill_self() because power7_nap et al. return 0 in this case, so we will have srr1 == 0, and none of the processing to clear interrupts or doorbells will be done. Usually, the most obvious symptom of this is that a KVM guest will fail with a console message saying "KVM: couldn't grab cpu N". This fixes the problem by making sure we handle the irq_happened flags properly. First, we hard-disable before the off-line loop. Once we have hard-disabled, the irq_happened flags can't change underneath us. We unconditionally clear the DEC and HMI flags: there is no processing of timer interrupts while off-line, and the necessary HMI processing is all done in lower-level code. We leave the EE and DBELL flags alone for the first iteration of the loop, so that we won't fail to respond to a split-core request that came in just before hard-disabling. Within the loop, we handle external interrupts if the EE bit is set in irq_happened as well as if the low-power state was interrupted by an external interrupt. (We don't need to do the msgclr for a pending doorbell in irq_happened, because doorbells are edge-triggered and don't remain pending in hardware.) Then we clear both the EE and DBELL flags, and once clear, they cannot be set again (until this CPU comes online again, that is). This also fixes the debug check to not be done when we just ran a KVM guest or when the sleep didn't happen because of a pending event in irq_happened. Signed-off-by: Paul Mackerras Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/smp.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) commit 23316316c1af0677a041c81f3ad6efb9dc470b33 Author: Paul Mackerras Date: Wed Oct 21 16:03:14 2015 +1100 powerpc: Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8" This reverts commit 9678cdaae939 ("Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8") because the original commit had multiple, partly self-cancelling bugs, that could cause occasional memory corruption. In fact the logmpp instruction was incorrectly using register r0 as the source of the buffer address and operation code, and depending on what was in r0, it would either do nothing or corrupt the 64k page pointed to by r0. The logmpp instruction encoding and the operation code definitions could be corrected, but then there is the problem that there is no clearly defined way to know when the hardware has finished writing to the buffer. The original commit attempted to work around this by aborting the write-out before starting the prefetch, but this is ineffective in the case where the virtual core is now executing on a different physical core from the one where the write-out was initiated. These problems plus advice from the hardware designers not to use the function (since the measured performance improvement from using the feature was actually mostly negative), mean that reverting the code is the best option. Fixes: 9678cdaae939 ("Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8") Signed-off-by: Paul Mackerras Signed-off-by: Michael Ellerman arch/powerpc/include/asm/cache.h | 7 ----- arch/powerpc/include/asm/kvm_host.h | 2 -- arch/powerpc/include/asm/ppc-opcode.h | 17 ----------- arch/powerpc/include/asm/reg.h | 1 - arch/powerpc/kvm/book3s_hv.c | 55 +---------------------------------- 5 files changed, 1 insertion(+), 81 deletions(-) commit cbf3ccd09d683abf1cacd36e3640872ee912d99b Author: Joerg Roedel Date: Tue Oct 20 14:59:36 2015 +0200 iommu/amd: Don't clear DTE flags when modifying it During device assignment/deassignment the flags in the DTE get lost, which might cause spurious faults, for example when the device tries to access the system management range. Fix this by not clearing the flags with the rest of the DTE. Reported-by: G. Richard Bellamy Tested-by: G. Richard Bellamy Cc: stable@vger.kernel.org Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 4 ++-- drivers/iommu/amd_iommu_types.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) commit 08b137d90eec51b0e90c42e123ca8ceb118d233f Author: Chaotian Jing Date: Mon Oct 12 17:22:23 2015 +0800 mmc: core: Fix init_card in 52Mhz Suppose that we got a data crc error, and it triggers the mmc_reset. mmc_reset will call mmc_send_status to see if HW reset was supported. before issue CMD13, it will do retune, and if EMMC was in HS400 mode, it will reduce frequency to 52Mhz firstly, then results in card init was doing at 52Mhz. The mmc_send_status was originally only done for mmc_test, should drop it. And, rename the "eMMC hardware reset" to "Reset test", as we would also be able to use the test for SD-cards. Signed-off-by: Chaotian Jing Suggested-by: Adrian Hunter Fixes: bd11e8bd03ca ("mmc: core: Flag re-tuning is needed on CRC errors") Signed-off-by: Ulf Hansson drivers/mmc/card/mmc_test.c | 9 +++------ drivers/mmc/core/mmc.c | 7 ------- 2 files changed, 3 insertions(+), 13 deletions(-) commit 0f6925fa2907df58496cabc33fa4677c635e2223 Author: Qu Wenruo Date: Wed Oct 14 15:26:13 2015 +0800 btrfs: Avoid truncate tailing page if fallocate range doesn't exceed inode size Current code will always truncate tailing page if its alloc_start is smaller than inode size. For example, the file extent layout is like: 0 4K 8K 16K 32K |<-----Extent A---------------->| |<--Inode size: 18K---------->| But if calling fallocate even for range [0,4K), it will cause btrfs to re-truncate the range [16,32K), causing COW and a new extent. 0 4K 8K 16K 32K |///////| <- Fallocate call range |<-----Extent A-------->|<--B-->| The cause is quite easy, just a careless btrfs_truncate_inode() in a else branch without extra judgment. Fix it by add judgment on whether the fallocate range is beyond isize. Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1904be1b6bb92058c8e00063dd59df2df294e258 Author: Steven Rostedt (Red Hat) Date: Tue Oct 20 21:48:02 2015 -0400 tracing: Do not allow stack_tracer to record stack in NMI The code in stack tracer should not be executed within an NMI as it grabs spinlocks and stack tracing an NMI gives the possibility of causing a deadlock. Although this is safe on x86_64, because it does not perform stack traces when the task struct stack is not in use (interrupts and NMIs), it may be an issue for NMIs on i386 and other archs that use the same stack as the NMI. Signed-off-by: Steven Rostedt kernel/trace/trace_stack.c | 4 ++++ 1 file changed, 4 insertions(+) commit 681ab4696062f5aa939c9e04d058732306a97176 Author: Jes Sorensen Date: Tue Oct 20 12:09:13 2015 -0400 md/raid10: submit_bio_wait() returns 0 on success This was introduced with 9e882242c6193ae6f416f2d8d8db0d9126bd996b which changed the return value of submit_bio_wait() to return != 0 on error, but didn't update the caller accordingly. Fixes: 9e882242c6 ("block: Add submit_bio_wait(), remove from md") Cc: stable@vger.kernel.org (v3.10) Reported-by: Bill Kuzeja Signed-off-by: Jes Sorensen Signed-off-by: NeilBrown drivers/md/raid10.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 203d27b0226a05202438ddb39ef0ef1acb14a759 Author: Jes Sorensen Date: Tue Oct 20 12:09:12 2015 -0400 md/raid1: submit_bio_wait() returns 0 on success This was introduced with 9e882242c6193ae6f416f2d8d8db0d9126bd996b which changed the return value of submit_bio_wait() to return != 0 on error, but didn't update the caller accordingly. Fixes: 9e882242c6 ("block: Add submit_bio_wait(), remove from md") Cc: stable@vger.kernel.org (v3.10) Reported-by: Bill Kuzeja Signed-off-by: Jes Sorensen Signed-off-by: NeilBrown drivers/md/raid1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab3964ad2acfbb0dc5414d4c86fa6d8d690f27a1 Author: Haggai Eran Date: Tue Oct 20 09:53:01 2015 +0300 IB/cma: Use inner P_Key to determine netdev When discussing the patches to demux ids in rdma_cm instead of ib_cm, it was decided that it is best to use the P_Key value in the packet headers. However, the mlx5 and ipath drivers are currently unable to send correct P_Key values in GMP headers. They always send using a single P_Key that is set during the GSI QP initialization. Change the rdma_cm code to look at the P_Key value that is part of the packet payload as a workaround. Once the drivers are fixed this patch can be reverted. Fixes: 4c21b5bcef73 ("IB/cma: Add net_dev and private data checks to RDMA CM") Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0174b381caf89443d92c6fe75f725f2bfeba96b6 Author: Sasha Levin Date: Thu Sep 17 16:04:19 2015 -0400 IB/ucma: check workqueue allocation before usage Allocating a workqueue might fail, which wasn't checked so far and would lead to NULL ptr derefs when an attempt to use it was made. Signed-off-by: Sasha Levin Signed-off-by: Doug Ledford drivers/infiniband/core/ucma.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit b3b51f9f6f5d91cd16afaed0c22df2c56ed5f92e Author: Haggai Eran Date: Mon Sep 21 16:02:02 2015 +0300 IB/cma: Potential NULL dereference in cma_id_from_event If the lookup of a listening ID failed for an AF_IB request, the code would try to call dev_put() on a NULL net_dev. Fixes: be688195bd08 ("IB/cma: Fix net_dev reference leak with failed requests") Reported-by: Dan Carpenter Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3909642034ffd7a8906ff3f2b2a71455bf39e7f6 Author: Matan Barak Date: Thu Oct 15 15:01:03 2015 +0300 IB/core: Fix use after free of ifa When using ifup/ifdown while executing enum_netdev_ipv4_ips, ifa could become invalid and cause use after free error. Fixing it by protecting with RCU lock. Fixes: 03db3a2d81e6 ('IB/core: Add RoCE GID table management') Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/roce_gid_mgmt.c | 35 +++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) commit 625faa6a720d26fc0db9e20b48dc0dfe4c8d8ddf Author: Russell King Date: Tue Oct 20 11:49:44 2015 +0100 clkdev: fix clk_add_alias() with a NULL alias device name clk_add_alias() was not correctly handling the case where alias_dev_name was NULL: rather than producing an entry with a NULL dev_id pointer, it would produce a device name of (null). Fix this. Cc: Fixes: 2568999835d7 ("clkdev: add clkdev_create() helper") Reported-by: Aaro Koskinen Tested-by: Aaro Koskinen Signed-off-by: Russell King drivers/clk/clkdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0d997491f814c87310a6ad7be30a9049c7150489 Author: Christoffer Dall Date: Sat Oct 17 19:05:27 2015 +0200 arm/arm64: KVM: Fix disabled distributor operation We currently do a single update of the vgic state when the distributor enable/disable control register is accessed and then bypass updating the state for as long as the distributor remains disabled. This is incorrect, because updating the state does not consider the distributor enable bit, and this you can end up in a situation where an interrupt is marked as pending on the CPU interface, but not pending on the distributor, which is an impossible state to be in, and triggers a warning. Consider for example the following sequence of events: 1. An interrupt is marked as pending on the distributor - the interrupt is also forwarded to the CPU interface 2. The guest turns off the distributor (it's about to do a reboot) - we stop updating the CPU interface state from now on 3. The guest disables the pending interrupt - we remove the pending state from the distributor, but don't touch the CPU interface, see point 2. Since the distributor disable bit really means that no interrupts should be forwarded to the CPU interface, we modify the code to keep updating the internal VGIC state, but always set the CPU interface pending bits to zero when the distributor is disabled. Signed-off-by: Christoffer Dall virt/kvm/arm/vgic.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 544c572e03174438b6656ed24a4516b9a9d5f14a Author: Christoffer Dall Date: Sat Oct 17 17:55:12 2015 +0200 arm/arm64: KVM: Clear map->active on pend/active clear When a guest reboots or offlines/onlines CPUs, it is not uncommon for it to clear the pending and active states of an interrupt through the emulated VGIC distributor. However, since the architected timers are defined by the architecture to be level triggered and the guest rightfully expects them to be that, but we emulate them as edge-triggered, we have to mimic level-triggered behavior for an edge-triggered virtual implementation. We currently do not signal the VGIC when the map->active field is true, because it indicates that the guest has already been signalled of the interrupt as required. Normally this field is set to false when the guest deactivates the virtual interrupt through the sync path. We also need to catch the case where the guest deactivates the interrupt through the emulated distributor, again allowing guests to boot even if the original virtual timer signal hit before the guest's GIC initialization sequence is run. Reviewed-by: Eric Auger Signed-off-by: Christoffer Dall virt/kvm/arm/vgic.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) commit cff9211eb1a1f58ce7f5a2d596b617928fd4be0e Author: Christoffer Dall Date: Fri Oct 16 12:41:21 2015 +0200 arm/arm64: KVM: Fix arch timer behavior for disabled interrupts We have an interesting issue when the guest disables the timer interrupt on the VGIC, which happens when turning VCPUs off using PSCI, for example. The problem is that because the guest disables the virtual interrupt at the VGIC level, we never inject interrupts to the guest and therefore never mark the interrupt as active on the physical distributor. The host also never takes the timer interrupt (we only use the timer device to trigger a guest exit and everything else is done in software), so the interrupt does not become active through normal means. The result is that we keep entering the guest with a programmed timer that will always fire as soon as we context switch the hardware timer state and run the guest, preventing forward progress for the VCPU. Since the active state on the physical distributor is really part of the timer logic, it is the job of our virtual arch timer driver to manage this state. The timer->map->active boolean field indicates whether we have signalled this interrupt to the vgic and if that interrupt is still pending or active. As long as that is the case, the hardware doesn't have to generate physical interrupts and therefore we mark the interrupt as active on the physical distributor. We also have to restore the pending state of an interrupt that was queued to an LR but was retired from the LR for some reason, while remaining pending in the LR. Cc: Marc Zyngier Reported-by: Lorenzo Pieralisi Signed-off-by: Christoffer Dall virt/kvm/arm/arch_timer.c | 19 +++++++++++++++++++ virt/kvm/arm/vgic.c | 43 +++++++++++-------------------------------- 2 files changed, 30 insertions(+), 32 deletions(-) commit 4a5d69b73948d0e03cd38d77dc11edb2e707165f Author: Arnd Bergmann Date: Mon Oct 12 15:22:31 2015 +0200 KVM: arm: use GIC support unconditionally The vgic code on ARM is built for all configurations that enable KVM, but the parent_data field that it references is only present when CONFIG_IRQ_DOMAIN_HIERARCHY is set: virt/kvm/arm/vgic.c: In function 'kvm_vgic_map_phys_irq': virt/kvm/arm/vgic.c:1781:13: error: 'struct irq_data' has no member named 'parent_data' This flag is implied by the GIC driver, and indeed the VGIC code only makes sense if a GIC is present. This changes the CONFIG_KVM symbol to always select GIC, which avoids the issue. Fixes: 662d9715840 ("arm/arm64: KVM: Kill CONFIG_KVM_ARM_{VGIC,TIMER}") Signed-off-by: Arnd Bergmann Acked-by: Marc Zyngier Signed-off-by: Christoffer Dall arch/arm/kvm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 399ea0f6bcd318af94ec8e4ffe96703ed674f22e Author: Pavel Fedin Date: Tue Oct 6 11:14:35 2015 +0300 KVM: arm/arm64: Fix memory leak if timer initialization fails Jump to correct label and free kvm_host_cpu_state Reviewed-by: Wei Huang Signed-off-by: Pavel Fedin Signed-off-by: Christoffer Dall arch/arm/kvm/arm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 437f9963bc4fd75889c1fe9289a92dea9124a439 Author: Pavel Fedin Date: Fri Sep 25 17:00:29 2015 +0300 KVM: arm/arm64: Do not inject spurious interrupts When lowering a level-triggered line from userspace, we forgot to lower the pending bit on the emulated CPU interface and we also did not re-compute the pending_on_cpu bitmap for the CPU affected by the change. Update vgic_update_irq_pending() to fix the two issues above and also raise a warning in vgic_quue_irq_to_lr if we encounter an interrupt pending on a CPU which is neither marked active nor pending. [ Commit text reworked completely - Christoffer ] Signed-off-by: Pavel Fedin Signed-off-by: Christoffer Dall virt/kvm/arm/vgic.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit a2d7629048322ae62bff57f34f5f995e25ed234c Author: Steven Rostedt (Red Hat) Date: Tue Oct 20 11:38:08 2015 -0400 tracing: Have stack tracer force RCU to be watching The stack tracer was triggering the WARN_ON() in module.c: static void module_assert_mutex_or_preempt(void) { #ifdef CONFIG_LOCKDEP if (unlikely(!debug_locks)) return; WARN_ON(!rcu_read_lock_sched_held() && !lockdep_is_held(&module_mutex)); #endif } The reason is that the stack tracer traces all function calls, and some of those calls happen while exiting or entering user space and idle. Some of these functions are called after RCU had already stopped watching, as RCU does not watch userspace or idle CPUs. If a max stack is hit, then the save_stack_trace() is called, which will check module addresses and call module_assert_mutex_or_preempt(), and then trigger the warning. Sad part is, the warning itself will also do a stack trace and tigger the same warning. That probably should be fixed. The warning was added by 0be964be0d45 "module: Sanitize RCU usage and locking" but this bug has probably been around longer. But it's unlikely to cause much harm, but the new warning causes the system to lock up. Cc: stable@vger.kernel.org # 4.2+ Cc: Peter Zijlstra Cc:"Paul E. McKenney" Signed-off-by: Steven Rostedt kernel/trace/trace_stack.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 97aff2c03a1e4d343266adadb52313613efb027f Author: Charles Keepax Date: Tue Oct 20 10:25:58 2015 +0100 ASoC: wm8904: Correct number of EQ registers There are 24 EQ registers not 25, I suspect this bug came about because the registers start at EQ1 not zero. The bug is relatively harmless as the extra register written is an unused one. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org include/sound/wm8904.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d289619a219dd01e255d7b5e30f9171b25efea48 Author: Takashi Iwai Date: Tue Oct 20 16:23:55 2015 +0200 ALSA: hda - Fix deadlock at error in building PCM The HDA codec driver issues snd_hda_codec_reset() at the error path of PCM build. This was needed in the earlier code base, but the recent rewrite to use the standard bus binding made this a deadlock: modprobe D 0000000000000005 0 720 716 0x00000080 Call Trace: [] schedule+0x3e/0x90 [] schedule_preempt_disabled+0x15/0x20 [] __mutex_lock_slowpath+0xb5/0x120 [] mutex_lock+0x1b/0x30 [] device_release_driver+0x1b/0x30 [] bus_remove_device+0x105/0x180 [] device_del+0x139/0x260 [] snd_hdac_device_unregister+0x25/0x30 [snd_hda_core] [] snd_hda_codec_reset+0x2a/0x70 [snd_hda_codec] [] snd_hda_codec_build_pcms+0x18b/0x1b0 [snd_hda_codec] [] hda_codec_driver_probe+0xbe/0x140 [snd_hda_codec] [] driver_probe_device+0x1f4/0x460 [] __driver_attach+0x90/0xa0 [] bus_for_each_dev+0x64/0xa0 [] driver_attach+0x1e/0x20 [] bus_add_driver+0x1eb/0x280 [] driver_register+0x60/0xe0 [] __hda_codec_driver_register+0x5a/0x60 [snd_hda_codec] [] realtek_driver_init+0x1e/0x1000 [snd_hda_codec_realtek] [] do_one_initcall+0xb3/0x200 [] do_init_module+0x60/0x1f8 [] load_module+0x1653/0x1bd0 [] SYSC_finit_module+0x98/0xc0 [] SyS_finit_module+0xe/0x10 [] entry_SYSCALL_64_fastpath+0x16/0x75 The simple fix is just to remove this call, since we don't need to think about unbinding at there any longer. Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=948758 Cc: # v4.1+ Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3fc89adb9fa4beff31374a4bf50b3d099d88ae83 Author: Herbert Xu Date: Mon Oct 19 18:23:57 2015 +0800 crypto: api - Only abort operations on fatal signal Currently a number of Crypto API operations may fail when a signal occurs. This causes nasty problems as the caller of those operations are often not in a good position to restart the operation. In fact there is currently no need for those operations to be interrupted by user signals at all. All we need is for them to be killable. This patch replaces the relevant calls of signal_pending with fatal_signal_pending, and wait_for_completion_interruptible with wait_for_completion_killable, respectively. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu crypto/ablkcipher.c | 2 +- crypto/algapi.c | 2 +- crypto/api.c | 6 +++--- crypto/crypto_user.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) commit f7d27c35ddff7c100d7a98db499ac0040149ac05 Author: Andrey Ryabinin Date: Mon Oct 19 11:37:18 2015 +0300 x86/mm, kasan: Silence KASAN warnings in get_wchan() get_wchan() is racy by design, it may access volatile stack of running task, thus it may access redzone in a stack frame and cause KASAN to warn about this. Use READ_ONCE_NOCHECK() to silence these warnings. Reported-by: Sasha Levin Signed-off-by: Andrey Ryabinin Cc: Alexander Potapenko Cc: Andrew Morton Cc: Andrey Konovalov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: Dmitry Vyukov Cc: Kostya Serebryany Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Wolfram Gloger Cc: kasan-dev Link: http://lkml.kernel.org/r/1445243838-17763-3-git-send-email-aryabinin@virtuozzo.com Signed-off-by: Ingo Molnar arch/x86/kernel/process.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d976441f44bc5d48635d081d277aa76556ffbf8b Author: Andrey Ryabinin Date: Mon Oct 19 11:37:17 2015 +0300 compiler, atomics, kasan: Provide READ_ONCE_NOCHECK() Some code may perform racy by design memory reads. This could be harmless, yet such code may produce KASAN warnings. To hide such accesses from KASAN this patch introduces READ_ONCE_NOCHECK() macro. KASAN will not check the memory accessed by READ_ONCE_NOCHECK(). The KernelThreadSanitizer (KTSAN) is going to ignore it as well. This patch creates __read_once_size_nocheck() a clone of __read_once_size(). The only difference between them is 'no_sanitized_address' attribute appended to '*_nocheck' function. This attribute tells the compiler that instrumentation of memory accesses should not be applied to that function. We declare it as static '__maybe_unsed' because GCC is not capable to inline such function: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368 With KASAN=n READ_ONCE_NOCHECK() is just a clone of READ_ONCE(). Signed-off-by: Andrey Ryabinin Cc: Alexander Potapenko Cc: Andrew Morton Cc: Andrey Konovalov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: Dmitry Vyukov Cc: Kostya Serebryany Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Sasha Levin Cc: Thomas Gleixner Cc: Wolfram Gloger Cc: kasan-dev Link: http://lkml.kernel.org/r/1445243838-17763-2-git-send-email-aryabinin@virtuozzo.com Signed-off-by: Ingo Molnar include/linux/compiler-gcc.h | 13 +++++++++ include/linux/compiler.h | 66 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 66 insertions(+), 13 deletions(-) commit 5aa5050787f449e7eaef2c5ec93c7b357aa7dcdc Author: Luca Abeni Date: Fri Oct 16 10:06:21 2015 +0200 sched/deadline: Fix migration of SCHED_DEADLINE tasks Commit: 9d5142624256 ("sched/deadline: Reduce rq lock contention by eliminating locking of non-feasible target") broke select_task_rq_dl() and find_lock_later_rq(), because it introduced a comparison between the local task's deadline and dl.earliest_dl.curr of the remote queue. However, if the remote runqueue does not contain any SCHED_DEADLINE task its earliest_dl.curr is 0 (always smaller than the deadline of the local task) and the remote runqueue is not selected for pushing. As a result, if an application creates multiple SCHED_DEADLINE threads, they will never be pushed to runqueues that do not already contain SCHED_DEADLINE tasks. This patch fixes the issue by checking if dl.dl_nr_running == 0. Signed-off-by: Luca Abeni Signed-off-by: Peter Zijlstra (Intel) Cc: Juri Lelli Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Wanpeng Li Fixes: 9d5142624256 ("sched/deadline: Reduce rq lock contention by eliminating locking of non-feasible target") Link: http://lkml.kernel.org/r/1444982781-15608-1-git-send-email-luca.abeni@unitn.it Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 0baabb385eb4bce699ddab0db015112be6cf1e6a Author: Frederic Weisbecker Date: Mon Oct 12 17:21:23 2015 +0200 nohz: Revert "nohz: Set isolcpus when nohz_full is set" This reverts: 8cb9764fc88b ("nohz: Set isolcpus when nohz_full is set") We assumed that full-nohz users always want scheduler isolation on full dynticks CPUs, therefore we included full-nohz CPUs on cpu_isolated_map. This means that tasks run by default on CPUs outside the nohz_full range unless their affinity is explicity overwritten. This suits pure isolation workloads but when the machine is needed to run common workloads, the available sets of CPUs to run common tasks becomes reduced. We reach an extreme case when CONFIG_NO_HZ_FULL_ALL is enabled as it leaves only CPU 0 for non-isolation tasks, which makes people think that their supercomputer regressed to 90's UP - which is true in a sense. Some full-nohz users appear to be interested in running normal workloads either before or after an isolation workload. Full-nohz isn't optimized toward normal workloads but it's still better than UP performance. We are reaching a limitation in kernel presets here. Lets revert this cpu_isolated_map inclusion and let userspace do its own scheduler isolation using cpusets or explicit affinity settings. Reported-by: Ingo Molnar Reported-by: Mike Galbraith Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Chris Metcalf Cc: Christoph Lameter Cc: Dave Jones Cc: Linus Torvalds Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Paul E . McKenney Cc: Peter Zijlstra Cc: Rik van Riel Link: http://lkml.kernel.org/r/1444663283-30068-1-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 3 --- 1 file changed, 3 deletions(-) commit 3e386d56bafbb6d2540b49367444997fc671ea69 Author: Yuyang Du Date: Tue Oct 13 09:18:23 2015 +0800 sched/fair: Update task group's load_avg after task migration When cfs_rq has cfs_rq->removed_load_avg set (when a task migrates from this cfs_rq), we need to update its contribution to the group's load_avg. This should not increase tg's update too much, because in most cases, the cfs_rq has already decayed its load_avg. Tested-by: Dietmar Eggemann Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Acked-by: Dietmar Eggemann Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1444699103-20272-2-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit fde7d22e01aa0d252fc5c95fa11f0dac35a4dd59 Author: Yuyang Du Date: Tue Oct 13 09:18:22 2015 +0800 sched/fair: Fix overly small weight for interactive group entities Commit: 9d89c257dfb9 ("sched/fair: Rewrite runnable load and utilization average tracking") led to an overly small weight for interactive group entities. The bad case can be easily reproduced when a number of CPU hogs compete for the CPUs at the same time (thanks to Mike). This is largly because the task group's load average tracking cross CPUs lags behind the real changes. To fix this we accelerate the group share distribution process by using the load.weight of the cfs_rq. This may increase the entire group's share, but we have to do so to protect the (fragile) interactive tasks, especially from CPU hogs. Reported-by: Mike Galbraith Tested-by: Dietmar Eggemann Tested-by: Mike Galbraith Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Acked-by: Dietmar Eggemann Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1444699103-20272-1-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit be0e1987bcb476be4fdd3dce89b6b6bf73a308a7 Merge: ce1fad2 56b88a3 Author: Linus Torvalds Date: Tue Oct 20 16:20:53 2015 +0900 Merge branch 'for-linus-4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml Pull UML fixes from Richard Weinberger: "This contains four overdue UML regression fixes" * 'for-linus-4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: um: Fix kernel mode fault condition um: Fix waitpid() usage in helper code um: Do not rely on libc to provide modify_ldt() um: Fix out-of-tree build commit ce1fad2740c648a4340f6f6c391a8a83769d2e8c Merge: 1099f86 911b79c Author: Linus Torvalds Date: Tue Oct 20 16:09:36 2015 +0900 Merge branch 'keys-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs Pull key handling fixes from David Howells: "Here are two patches, the first of which at least should go upstream immediately: (1) Prevent a user-triggerable crash in the keyrings destructor when a negatively instantiated keyring is garbage collected. I have also seen this triggered for user type keys. (2) Prevent the user from using requesting that a keyring be created and instantiated through an upcall. Doing so is probably safe since the keyring type ignores the arguments to its instantiation function - but we probably shouldn't let keyrings be created in this manner" * 'keys-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: KEYS: Don't permit request_key() to construct a new keyring KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring commit 56b88a3bf97a39d3f4f010509917b76a865a6dc8 Author: Richard Weinberger Date: Sun Aug 9 22:26:33 2015 +0200 um: Fix kernel mode fault condition We have to exclude memory locations <= PAGE_SIZE from the condition and let the kernel mode fault path catch it. Otherwise a kernel NULL pointer exception will be reported as a kernel user space access. Fixes: d2313084e2c (um: Catch unprotected user memory access) Signed-off-by: Richard Weinberger arch/um/kernel/trap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b1873371cea13036171d03a7c1e3e59158b4505 Author: Richard Weinberger Date: Sun Aug 9 21:49:07 2015 +0200 um: Fix waitpid() usage in helper code If UML is executing a helper program it is using waitpid() with the __WCLONE flag to wait for the program as the helper is executed from a clone()'ed thread. While using __WCLONE is perfectly fine for clone()'ed childs it won't detect terminated childs if the helper has issued an execve(). We have to use __WALL to wait for both clone()'ed and regular childs to detect the termination before and after an execve(). Reported-and-tested-by: Thomas Meyer Signed-off-by: Richard Weinberger arch/um/os-Linux/helper.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 37e81a016cc847c03ea71570fea29f12ca390bee Author: Hans-Werner Hilse Date: Mon Jun 29 11:50:32 2015 +0200 um: Do not rely on libc to provide modify_ldt() modify_ldt() was declared as an external symbol. Despite the man page for this syscall telling that there is no wrapper in glibc, since version 2.1 there actually is, so linking to the glibc works. Since modify_ldt() is not a POSIX interface, other libc implementations do not always provide a wrapper function. Even glibc headers do not provide a corresponding declaration. So go the recommended way to call this using syscall(). Signed-off-by: Hans-Werner Hilse Signed-off-by: Richard Weinberger arch/x86/um/ldt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0b5aedfe0e6654ec54f35109e1929a1cf7fc4cdd Author: Richard Weinberger Date: Sun Jun 28 22:55:26 2015 +0200 um: Fix out-of-tree build Commit 30b11ee9a (um: Remove copy&paste code from init.h) uncovered an issue wrt. out-of-tree builds. For out-of-tree builds, we must not rely on relative paths. Before 30b11ee9a it worked by chance as no host code included generated header files. Acked-by: Randy Dunlap Signed-off-by: Richard Weinberger arch/um/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 677c884ff6370add1360e2b9558285355ebe2b36 Author: Alex Deucher Date: Mon Oct 19 15:54:21 2015 -0400 drm/amdgpu: add missing dpm check for KV dpm late init Skip dpm late init if dpm is disabled. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 3 +++ 1 file changed, 3 insertions(+) commit 27100735adbcb872854674bed1d000825f9954ac Author: Alex Deucher Date: Mon Oct 19 15:49:11 2015 -0400 drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled PWM fan control is only available with DPM. There is no non-DPM support on amdgpu, so we should never get a crash here because the sysfs nodes would never be created in the first place. Add the check just in case to be on the safe side. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 2a7d44f47f53fa1be677f44c73d78b1bcf9c05d9 Author: Alex Deucher Date: Mon Oct 19 09:30:42 2015 -0400 drm/radeon/dpm: don't add pwm attributes if DPM is disabled PWM fan control is only available with DPM. If DPM disabled, don't expose the PWM fan controls to avoid a crash. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92524 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 1099f86044111e9a7807f09523e42d4c9d0fb781 Merge: 7379047 37850e3 Author: Linus Torvalds Date: Mon Oct 19 09:55:40 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Account for extra headroom in ath9k driver, from Felix Fietkau. 2) Fix OOPS in pppoe driver due to incorrect socket state transition, from Guillaume Nault. 3) Kill memory leak in amd-xgbe debugfx, from Geliang Tang. 4) Power management fixes for iwlwifi, from Johannes Berg. 5) Fix races in reqsk_queue_unlink(), from Eric Dumazet. 6) Fix dst_entry usage in ARP replies, from Jiri Benc. 7) Cure OOPSes with SO_GET_FILTER, from Daniel Borkmann. 8) Missing allocation failure check in amd-xgbe, from Tom Lendacky. 9) Various resource allocation/freeing cures in DSA< from Neil Armstrong. 10) A series of bug fixes in the openvswitch conntrack support, from Joe Stringer. 11) Fix two cases (BPF and act_mirred) where we have to clean the sender cpu stored in the SKB before transmitting. From WANG Cong and Alexei Starovoitov. 12) Disable VLAN filtering in promiscuous mode in mlx5 driver, from Achiad Shochat. 13) Older bnx2x chips cannot do 4-tuple UDP hashing, so prevent this configuration via ethtool. From Yuval Mintz. 14) Don't call rt6_uncached_list_flush_dev() from rt6_ifdown() when 'dev' is NULL, from Eric Biederman. 15) Prevent stalled link synchronization in tipc, from Jon Paul Maloy. 16) kcalloc() gstrings ethtool buffer before having driver fill it in, in order to prevent kernel memory leaking. From Joe Perches. 17) Fix mixxing rt6_info initialization for blackhole routes, from Martin KaFai Lau. 18) Kill VLAN regression in via-rhine, from Andrej Ota. 19) Missing pfmemalloc check in sk_add_backlog(), from Eric Dumazet. 20) Fix spurious MSG_TRUNC signalling in netlink dumps, from Ronen Arad. 21) Scrube SKBs when pushing them between namespaces in openvswitch, from Joe Stringer. 22) bcmgenet enables link interrupts too early, fix from Florian Fainelli. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (92 commits) net: bcmgenet: Fix early link interrupt enabling tunnels: Don't require remote endpoint or ID during creation. openvswitch: Scrub skb between namespaces xen-netback: correctly check failed allocation net: asix: add support for the Billionton GUSB2AM-1G-B USB adapter netlink: Trim skb to alloc size to avoid MSG_TRUNC net: add pfmemalloc check in sk_add_backlog() via-rhine: fix VLAN receive handling regression. ipv6: Initialize rt6_info properly in ip6_blackhole_route() ipv6: Move common init code for rt6_info to a new function rt6_info_init() Bluetooth: Fix initializing conn_params in scan phase Bluetooth: Fix conn_params list update in hci_connect_le_scan_cleanup Bluetooth: Fix remove_device behavior for explicit connects Bluetooth: Fix LE reconnection logic Bluetooth: Fix reference counting for LE-scan based connections Bluetooth: Fix double scan updates mlxsw: core: Fix race condition in __mlxsw_emad_transmit tipc: move fragment importance field to new header position ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings tipc: eliminate risk of stalled link synchronization ... commit 8a603f91cc4848ab1a0458bc065aa9f64322e123 Author: H. Nikolaus Schaller Date: Fri Oct 16 22:19:06 2015 +0100 ARM: 8445/1: fix vdsomunge not to depend on glibc specific byteswap.h If the host toolchain is not glibc based then the arm kernel build fails with HOSTCC arch/arm/vdso/vdsomunge arch/arm/vdso/vdsomunge.c:48:22: fatal error: byteswap.h: No such file or directory Observed: with omap2plus_defconfig and compile on Mac OS X with arm ELF cross-compiler. Reason: byteswap.h is a glibc only header. Solution: replace by private byte-swapping macros (taken from arch/mips/boot/elf2ecoff.c and kindly improved by Russell King) Tested to compile on Mac OS X 10.9.5 host. Signed-off-by: H. Nikolaus Schaller Signed-off-by: Nathan Lynch Signed-off-by: Russell King arch/arm/vdso/vdsomunge.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 57df5380853460bc66b59a46273ce113c923d39c Author: Tony Lindgren Date: Fri Oct 16 12:23:33 2015 -0700 ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init Some omaps are producing imprecise external aborts because we are wrongly trying to init SRAM for device tree based booting. Only omap3 is still using the legacy SRAM code, so we need to make it omap3 specific. Otherwise we can get errors like this on at least dm814x: Unhandled fault: imprecise external abort (0xc06) at 0xc08b156c ... (omap_rev) from [] (omap_sram_init+0xf8/0x3e0) (omap_sram_init) from [] (omap_sdrc_init+0x10/0xb0) (omap_sdrc_init) from [] (pdata_quirks_init+0x18/0x44) (pdata_quirks_init) from [] (omap_generic_init+0x10/0x1c) (omap_generic_init) from [] (customize_machine+0x1c/0x40) (customize_machine) from [] (do_one_initcall+0x80/0x1dc) (do_one_initcall) from [] (kernel_init_freeable+0x218/0x2e8) (kernel_init_freeable) from [] (kernel_init+0x8/0xec) (kernel_init) from [] (ret_from_fork+0x14/0x24) Let's fix the issue by making sure omap_sdrc_init only gets called for omap3. To do that, we need to have compatible "ti,omap3" in the dts files. And let's also use "ti,omap3630" instead of "ti,omap36xx" like we're supposed to. Signed-off-by: Tony Lindgren arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 2 +- arch/arm/boot/dts/omap3-evm-37xx.dts | 2 +- arch/arm/mach-omap2/board-generic.c | 1 + arch/arm/mach-omap2/pdata-quirks.c | 9 ++++++++- 4 files changed, 11 insertions(+), 3 deletions(-) commit 911b79cde95c7da0ec02f48105358a36636b7a71 Author: David Howells Date: Mon Oct 19 11:20:28 2015 +0100 KEYS: Don't permit request_key() to construct a new keyring If request_key() is used to find a keyring, only do the search part - don't do the construction part if the keyring was not found by the search. We don't really want keyrings in the negative instantiated state since the rejected/negative instantiation error value in the payload is unioned with keyring metadata. Now the kernel gives an error: request_key("keyring", "#selinux,bdekeyring", "keyring", KEY_SPEC_USER_SESSION_KEYRING) = -1 EPERM (Operation not permitted) Signed-off-by: David Howells security/keys/request_key.c | 3 +++ 1 file changed, 3 insertions(+) commit ca064bd89363a6e7e71b1c5226ff1b718957a9d4 Author: Steffen Klassert Date: Mon Oct 19 10:30:05 2015 +0200 xfrm: Fix pmtu discovery for local generated packets. Commit 044a832a777 ("xfrm: Fix local error reporting crash with interfamily tunnels") moved the setting of skb->protocol behind the last access of the inner mode family to fix an interfamily crash. Unfortunately now skb->protocol might not be set at all, so we fail dispatch to the inner address family. As a reault, the local error handler is not called and the mtu value is not reported back to userspace. We fix this by setting skb->protocol on message size errors before we call xfrm_local_error. Fixes: 044a832a7779c ("xfrm: Fix local error reporting crash with interfamily tunnels") Signed-off-by: Steffen Klassert net/ipv4/xfrm4_output.c | 2 ++ net/ipv6/xfrm6_output.c | 1 + 2 files changed, 3 insertions(+) commit a75ca545e8d57473da47ece828ad98a10727ec6f Author: Andrey Ryabinin Date: Fri Oct 16 14:28:53 2015 +0300 x86, kasan: Fix build failure on KASAN=y && KMEMCHECK=y kernels Declaration of memcpy() is hidden under #ifndef CONFIG_KMEMCHECK. In asm/efi.h under #ifdef CONFIG_KASAN we #undef memcpy(), due to which the following happens: In file included from arch/x86/kernel/setup.c:96:0: ./arch/x86/include/asm/desc.h: In function ‘native_write_idt_entry’: ./arch/x86/include/asm/desc.h:122:2: error: implicit declaration of function ‘memcpy’ [-Werror=implicit-function-declaration] memcpy(&idt[entry], gate, sizeof(*gate)); ^ cc1: some warnings being treated as errors make[2]: *** [arch/x86/kernel/setup.o] Error 1 We will get rid of that #undef in asm/efi.h eventually. But in the meanwhile move memcpy() declaration out of #ifdefs to fix the build. Reported-by: Borislav Petkov Signed-off-by: Andrey Ryabinin Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1444994933-28328-1-git-send-email-aryabinin@virtuozzo.com Signed-off-by: Ingo Molnar arch/x86/include/asm/string_64.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit fcafddec4e78a7776db4b6685db6b2902d4300fc Author: Len Brown Date: Fri Oct 16 00:14:29 2015 -0400 x86/smpboot: Fix CPU #1 boot timeout The following commit: a9bcaa02a5104ac ("x86/smpboot: Remove SIPI delays from cpu_up()") Caused some Intel Core2 processors to time-out when bringing up CPU #1, resulting in the missing of that CPU after bootup. That patch reduced the SIPI delays from udelay() 300, 200 to udelay() 0, 0 on modern processors. Several Intel(R) Core(TM)2 systems failed to bring up CPU #1 10/10 times after that change. Increasing either of the SIPI delays to udelay(1) results in success. So here we increase both to udelay(10). While this may be 20x slower than the absolute minimum, it is still 20x to 30x faster than the original code. Tested-by: Donald Parsons Tested-by: Shane Signed-off-by: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dparsons@brightdsl.net Cc: shrybman@teksavvy.com Link: http://lkml.kernel.org/r/6dd554ee8945984d85aafb2ad35793174d068af0.1444968087.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit f1ccd249319efca4ee4faf1d904f5a362cac7c81 Author: Len Brown Date: Fri Oct 16 00:14:28 2015 -0400 x86/smpboot: Fix cpu_init_udelay=10000 corner case boot parameter misbehavior For legacy machines cpu_init_udelay defaults to 10,000. For modern machines it is set to 0. The user should be able to set cpu_init_udelay to any value on the cmdline, including 10,000. Before this patch, that was seen as "unchanged from default" and thus on a modern machine, the user request was ignored and the delay was set to 0. Signed-off-by: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dparsons@brightdsl.net Cc: shrybman@teksavvy.com Link: http://lkml.kernel.org/r/de363cdbbcfcca1d22569683f7eb9873e0177251.1444968087.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 37850e37fcfb4dd831bc9e33221e8c49a732956f Author: Florian Fainelli Date: Sat Oct 17 14:22:46 2015 -0700 net: bcmgenet: Fix early link interrupt enabling Link interrupts are enabled in init_umac(), which is too early for us to process them since we do not yet have a valid PHY device pointer. On BCM7425 chips for instance, we will crash calling phy_mac_interrupt() because phydev is NULL. Fix this by moving the link interrupts enabling in bcmgenet_netif_start(), under a specific function: bcmgenet_link_intr_enable() and while at it, update the comments surrounding the code. Fixes: 6cc8e6d4dcb36 ("net: bcmgenet: Delay PHY initialization to bcmgenet_open()") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 32 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) commit afc050dd8e3387f71def1d6114ecd589f16874df Merge: e277de5 de28a05 Author: David S. Miller Date: Sun Oct 18 23:05:56 2015 -0700 Merge tag 'wireless-drivers-for-davem-2015-10-17' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== iwlwifi: * mvm: flush fw_dump_wk when mvm fails to start * mvm: init card correctly on ctkill exit check * pci: add a few more PCI subvendor IDs for the 7265 series * fix firmware filename for 3160 * mvm: clear csa countdown when AP is stopped * mvm: fix D3 firmware PN programming * dvm: fix D3 firmware PN programming * mvm: fix D3 CCMP TX PN assignment rtlwifi: * rtl8821ae: Fix system lockups on boot ==================== Signed-off-by: David S. Miller commit e277de5f3f7d6eed2a41920983c44c4df386b871 Author: Jesse Gross Date: Fri Oct 16 16:36:00 2015 -0700 tunnels: Don't require remote endpoint or ID during creation. Before lightweight tunnels existed, it really didn't make sense to create a tunnel that was not fully specified, such as without a destination IP address - the resulting packets would go nowhere. However, with lightweight tunnels, the opposite is true - it doesn't make sense to require this information when it will be provided later on by the route. This loosens the requirements for this information. An alternative would be to allow the relaxed version only when COLLECT_METADATA is enabled. However, since there are several variations on this theme (such as NBMA tunnels in GRE), just dropping the restrictions seems the most consistent across tunnels and with the existing configuration. CC: John Linville Signed-off-by: Jesse Gross Signed-off-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/geneve.c | 12 ++++++------ drivers/net/vxlan.c | 7 +++---- 2 files changed, 9 insertions(+), 10 deletions(-) commit 740dbc289155fdeed32438396370e70b684cd45e Author: Joe Stringer Date: Fri Oct 16 11:08:18 2015 -0700 openvswitch: Scrub skb between namespaces If OVS receives a packet from another namespace, then the packet should be scrubbed. However, people have already begun to rely on the behaviour that skb->mark is preserved across namespaces, so retain this one field. This is mainly to address information leakage between namespaces when using OVS internal ports, but by placing it in ovs_vport_receive() it is more generally applicable, meaning it should not be overlooked if other port types are allowed to be moved into namespaces in future. Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/vport.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit a5d6f7dd300e7a3237410cc9d6d00427c18281c3 Merge: 833b8f1 5157b8a Author: David S. Miller Date: Sun Oct 18 22:23:33 2015 -0700 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth Johan Hedberg says: ==================== pull request: bluetooth 2015-10-16 First of all, sorry for the late set of patches for the 4.3 cycle. We just finished an intensive week of testing at the Bluetooth UnPlugFest and discovered (and fixed) issues there. Unfortunately a few issues affect 4.3-rc5 in a way that they break existing Bluetooth LE mouse and keyboard support. The regressions result from supporting LE privacy in conjunction with scanning for Resolvable Private Addresses before connecting. A feature that has been tested heavily (including automated unit tests), but sadly some regressions slipped in. The UnPlugFest with its multitude of test platforms is a good battle testing ground for uncovering every corner case. The patches in this pull request focus only on fixing the regressions in 4.3-rc5. The patches look a bit larger since we also added comments in the critical sections of the fixes to improve clarity. I would appreciate if we can get these regression fixes to Linus quickly. Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 833b8f18adfcca04070a8a42d545a4553379d36f Author: Insu Yun Date: Thu Oct 15 18:02:28 2015 +0000 xen-netback: correctly check failed allocation Since vzalloc can be failed in memory pressure, writes -ENOMEM to xenstore to indicate error. Signed-off-by: Insu Yun Acked-by: Wei Liu Signed-off-by: David S. Miller drivers/net/xen-netback/xenbus.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 80083a3c02ef4451edeef31a6f9afe130078f2bf Author: Chia-Sheng Chang Date: Fri Oct 16 02:00:21 2015 +0800 net: asix: add support for the Billionton GUSB2AM-1G-B USB adapter Just another AX88178-based 10/100/1000 USB-to-Ethernet dongle. This one shows up in lsusb as: "ID 08dd:0114 Billionton Systems, Inc". Signed-off-by: Chia-Sheng Chang Cc: "David S. Miller" Cc: Luca Ceresoli Cc: Christoph Jaeger Cc: "Woojung.Huh@microchip.com" Cc: Matthew Garrett Cc: Markus Elfring Cc: Charles Keepax Cc: netdev@vger.kernel.org Cc: linux-usb@vger.kernel.org Signed-off-by: David S. Miller drivers/net/usb/Kconfig | 1 + drivers/net/usb/asix_devices.c | 4 ++++ 2 files changed, 5 insertions(+) commit db65a3aaf29ecce2e34271d52e8d2336b97bd9fe Author: Arad, Ronen Date: Thu Oct 15 01:55:17 2015 -0700 netlink: Trim skb to alloc size to avoid MSG_TRUNC netlink_dump() allocates skb based on the calculated min_dump_alloc or a per socket max_recvmsg_len. min_alloc_size is maximum space required for any single netdev attributes as calculated by rtnl_calcit(). max_recvmsg_len tracks the user provided buffer to netlink_recvmsg. It is capped at 16KiB. The intention is to avoid small allocations and to minimize the number of calls required to obtain dump information for all net devices. netlink_dump packs as many small messages as could fit within an skb that was sized for the largest single netdev information. The actual space available within an skb is larger than what is requested. It could be much larger and up to near 2x with align to next power of 2 approach. Allowing netlink_dump to use all the space available within the allocated skb increases the buffer size a user has to provide to avoid truncaion (i.e. MSG_TRUNG flag set). It was observed that with many VLANs configured on at least one netdev, a larger buffer of near 64KiB was necessary to avoid "Message truncated" error in "ip link" or "bridge [-c[ompressvlans]] vlan show" when min_alloc_size was only little over 32KiB. This patch trims skb to allocated size in order to allow the user to avoid truncation with more reasonable buffer size. Signed-off-by: Ronen Arad Signed-off-by: David S. Miller net/netlink/af_netlink.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) commit c8a1978e07c412f8d79b8612f45aaafe7238ca62 Author: Randy Dunlap Date: Sun Oct 18 16:25:53 2015 -0700 Input: sur40 - add dependency on VIDEO_V4L2 Fix build errors due to missing Kconfig dependency. drivers/built-in.o: In function `sur40_disconnect': sur40.c:(.text+0x22be6e): undefined reference to `video_unregister_device' sur40.c:(.text+0x22be77): undefined reference to `v4l2_device_unregister' drivers/built-in.o: In function `sur40_process_video': sur40.c:(.text+0x22c1d4): undefined reference to `v4l2_get_timestamp' drivers/built-in.o: In function `sur40_probe': sur40.c:(.text+0x22ca82): undefined reference to `v4l2_device_register' sur40.c:(.text+0x22cb1a): undefined reference to `v4l2_device_unregister' sur40.c:(.text+0x22cbf7): undefined reference to `video_device_release_empty' sur40.c:(.text+0x22cc53): undefined reference to `__video_register_device' sur40.c:(.text+0x22cc90): undefined reference to `video_unregister_device' drivers/built-in.o: In function `sur40_vidioc_querycap': sur40.c:(.text+0x22ccb0): undefined reference to `video_devdata' Signed-off-by: Randy Dunlap Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 7379047d5585187d1288486d4627873170d0005a Author: Linus Torvalds Date: Sun Oct 18 16:08:42 2015 -0700 Linux 4.3-rc6 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c44b325568ae58bcb10d2f5c198ec471d9ab1bce Merge: 81429a6 56d4b8a Author: Linus Torvalds Date: Sun Oct 18 12:07:48 2015 -0700 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 some bugfixes for the I2C subsystem. Kieran found a flaw in the recently renewed wake irq handling. Mika handled a user bug report where the ACPI info turned out to be unusable. I updated MAINTAINERS so that such bug reports will sooner get to the right people. Geert pointed me to a problem of some i2c drivers regarding PM which I fixed" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 MAINTAINERS: add maintainers for Synopsis Designware I2C drivers i2c: designware-platdrv: enable RuntimePM before registering to the core i2c: s3c2410: enable RuntimePM before registering to the core i2c: rcar: enable RuntimePM before registering to the core i2c: return probe deferred status on dev_pm_domain_attach commit 56d4b8a24cef5d66f0d10ac778a520d3c2c68a48 Author: Mika Westerberg Date: Thu Sep 24 12:06:54 2015 +0300 i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348 ACPI SSCN/FMCN methods were originally added because then the platform can provide the most accurate HCNT/LCNT values to the driver. However, this seems not to be true for Dell Inspiron 7348 where using these causes the touchpad to fail in boot: i2c_hid i2c-DLL0675:00: failed to retrieve report from device. i2c_designware INT3433:00: i2c_dw_handle_tx_abort: lost arbitration i2c_hid i2c-DLL0675:00: failed to retrieve report from device. i2c_designware INT3433:00: controller timed out The values received from ACPI are (in fast mode): HCNT: 72 LCNT: 160 this translates to following timings (input clock is 100MHz on Broadwell): tHIGH: 720 ns (spec min 600 ns) tLOW: 1600 ns (spec min 1300 ns) Bus period: 2920 ns (assuming 300 ns tf and tr) Bus speed: 342.5 kHz Both tHIGH and tLOW are within the I2C specification. The calculated values when ACPI parameters are not used are (in fast mode): HCNT: 87 LCNT: 159 which translates to: tHIGH: 870 ns (spec min 600 ns) tLOW: 1590 ns (spec min 1300 ns) Bus period 3060 ns (assuming 300 ns tf and tr) Bus speed 326.8 kHz These values are also within the I2C specification. Since both ACPI and calculated values meet the I2C specification timing requirements it is hard to say why the touchpad does not function properly with the ACPI values except that the bus speed is higher in this case (but still well below the max 400kHz). Solve this by adding DMI quirk to the driver that disables using ACPI parameters on this particulare machine. Reported-by: Pavel Roskin Signed-off-by: Mika Westerberg Tested-by: Pavel Roskin Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-designware-platdrv.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit f235f664a8afabccf863a5dee4777d2d7b676fda Author: Scot Doyle Date: Fri Oct 9 15:08:10 2015 +0000 fbcon: initialize blink interval before calling fb_set_par Since commit 27a4c827c34ac4256a190cc9d24607f953c1c459 fbcon: use the cursor blink interval provided by vt a PPC64LE kernel fails to boot when fbcon_add_cursor_timer uses an uninitialized ops->cur_blink_jiffies. Prevent by initializing in fbcon_init before the call to info->fbops->fb_set_par. Reported-and-tested-by: Alistair Popple Signed-off-by: Scot Doyle Cc: [v4.2] Signed-off-by: Greg Kroah-Hartman drivers/video/console/fbcon.c | 1 + 1 file changed, 1 insertion(+) commit f967fc8f165fadb72166f2bd4785094b3ca21307 Author: Frederic Danis Date: Fri Oct 9 17:14:56 2015 +0200 Revert "serial: 8250_dma: don't bother DMA with small transfers" This reverts commit 9119fba0cfeda6d415c9f068df66838a104b87cb. This commit prevents from sending "big" file using Bluetooth. When sending a lot of data quickly through the Bluetooth interface, and after a variable amount of data sent, transfer fails with error: kernel: [ 415.247453] Bluetooth: hci0 hardware error 0x00 Found on T100TA. After reverting this commit, send works fine for any file size. Signed-off-by: Frederic Danis Fixes: 9119fba0cfed (serial: 8250_dma: don't bother DMA with small transfers) Cc: stable@vger.kernel.org Reviewed-by: Heikki Krogerus Acked-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_dma.c | 4 ---- 1 file changed, 4 deletions(-) commit 324700604b04954510ddd4c6841a88a06938a28c Author: Vladimir Zapolskiy Date: Sat Oct 17 11:30:15 2015 -0700 Input: lpc32xx_ts - fix warnings caused by enabling unprepared clock If common clock framework is configured, the driver generates a warning, which is fixed by this change: root@devkit3250:~# cat /dev/input/touchscreen0 ------------[ cut here ]------------ WARNING: CPU: 0 PID: 720 at drivers/clk/clk.c:727 clk_core_enable+0x2c/0xa4() Modules linked in: sc16is7xx snd_soc_uda1380 CPU: 0 PID: 720 Comm: cat Not tainted 4.3.0-rc2+ #199 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_setup_tsc+0x18/0xa0) [<>] (lpc32xx_setup_tsc) from [<>] (lpc32xx_ts_open+0x14/0x1c) [<>] (lpc32xx_ts_open) from [<>] (input_open_device+0x74/0xb0) [<>] (input_open_device) from [<>] (evdev_open+0x110/0x16c) [<>] (evdev_open) from [<>] (chrdev_open+0x1b4/0x1dc) [<>] (chrdev_open) from [<>] (do_dentry_open+0x1dc/0x2f4) [<>] (do_dentry_open) from [<>] (vfs_open+0x6c/0x70) [<>] (vfs_open) from [<>] (path_openat+0xb4c/0xddc) [<>] (path_openat) from [<>] (do_filp_open+0x40/0x8c) [<>] (do_filp_open) from [<>] (do_sys_open+0x124/0x1c4) [<>] (do_sys_open) from [<>] (SyS_open+0x2c/0x30) [<>] (SyS_open) from [<>] (ret_fast_syscall+0x0/0x38) Signed-off-by: Vladimir Zapolskiy Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/lpc32xx_ts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 81429a6dbcbf3a01830de42dbdf0d9acbe68e1c1 Merge: 16c8b9c 0701c53 56fd16c Author: Linus Torvalds Date: Sat Oct 17 08:47:27 2015 -0700 Merge branches 'irq-urgent-for-linus' and 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq/timer fixes from Thomas Gleixner: "irq: a fix for the new hierarchical MSI interrupt handling which unbreaks PCI=n configurations. timers: a fix for the new hrtimer clock offset update mechanism to ensure that the boot time offset is respected" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: genirq/msi: Do not use pci_msi_[un]mask_irq as default methods * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: timekeeping: Increment clock_was_set_seq in timekeeping_init() commit c7c49b8fde26b74277188bdc6c9dca38db6fa35b Author: Eric Dumazet Date: Tue Sep 29 18:52:25 2015 -0700 net: add pfmemalloc check in sk_add_backlog() Greg reported crashes hitting the following check in __sk_backlog_rcv() BUG_ON(!sock_flag(sk, SOCK_MEMALLOC)); The pfmemalloc bit is currently checked in sk_filter(). This works correctly for TCP, because sk_filter() is ran in tcp_v[46]_rcv() before hitting the prequeue or backlog checks. For UDP or other protocols, this does not work, because the sk_filter() is ran from sock_queue_rcv_skb(), which might be called _after_ backlog queuing if socket is owned by user by the time packet is processed by softirq handler. Fixes: b4b9e35585089 ("netvm: set PF_MEMALLOC as appropriate during SKB processing") Signed-off-by: Eric Dumazet Reported-by: Greg Thelen Signed-off-by: David S. Miller include/net/sock.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 00db674bedd68ff8b5afae9030ff5e04d45d1b4a Author: Nikolay Borisov Date: Fri Oct 16 09:40:28 2015 +0300 netfilter: ipset: Fix sleeping memory allocation in atomic context Commit 00590fdd5be0 introduced RCU locking in list type and in doing so introduced a memory allocation in list_set_add, which is done in an atomic context, due to the fact that ipset rcu list modifications are serialised with a spin lock. The reason why we can't use a mutex is that in addition to modifying the list with ipset commands, it's also being modified when a particular ipset rule timeout expires aka garbage collection. This gc is triggered from set_cleanup_entries, which in turn is invoked from a timer thus requiring the lock to be bh-safe. Concretely the following call chain can lead to "sleeping function called in atomic context" splat: call_ad -> list_set_uadt -> list_set_uadd -> kzalloc(, GFP_KERNEL). And since GFP_KERNEL allows initiating direct reclaim thus potentially sleeping in the allocation path. To fix the issue change the allocation type to GFP_ATOMIC, to correctly reflect that it is occuring in an atomic context. Fixes: 00590fdd5be0 ("netfilter: ipset: Introduce RCU locking in list type") Signed-off-by: Nikolay Borisov Acked-by: Jozsef Kadlecsik Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_list_set.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd7cd061adcf5f7503515ba52b6a724642a839c8 Author: Laura Abbott Date: Mon Oct 12 11:30:13 2015 +0300 xhci: Add spurious wakeup quirk for LynxPoint-LP controllers We received several reports of systems rebooting and powering on after an attempted shutdown. Testing showed that setting XHCI_SPURIOUS_WAKEUP quirk in addition to the XHCI_SPURIOUS_REBOOT quirk allowed the system to shutdown as expected for LynxPoint-LP xHCI controllers. Set the quirk back. Note that the quirk was originally introduced for LynxPoint and LynxPoint-LP just for this same reason. See: commit 638298dc66ea ("xhci: Fix spurious wakeups after S5 on Haswell") It was later limited to only concern HP machines as it caused regression on some machines, see both bug and commit: Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66171 commit 6962d914f317 ("xhci: Limit the spurious wakeup fix only to HP machines") Later it was discovered that the powering on after shutdown was limited to LynxPoint-LP (Haswell-ULT) and that some non-LP HP machine suffered from spontaneous resume from S3 (which should not be related to the SPURIOUS_WAKEUP quirk at all). An attempt to fix this then removed the SPURIOUS_WAKEUP flag usage completely. commit b45abacde3d5 ("xhci: no switching back on non-ULT Haswell") Current understanding is that LynxPoint-LP (Haswell ULT) machines need the SPURIOUS_WAKEUP quirk, otherwise they will restart, and plain Lynxpoint (Haswell) machines may _not_ have the quirk set otherwise they again will restart. Signed-off-by: Laura Abbott Cc: Takashi Iwai Cc: Oliver Neukum [Added more history to commit message -Mathias] Cc: stable Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 1 + 1 file changed, 1 insertion(+) commit 3b4739b8951d650becbcd855d7d6f18ac98a9a85 Author: Mathias Nyman Date: Mon Oct 12 11:30:12 2015 +0300 xhci: handle no ping response error properly If a host fails to wake up a isochronous SuperSpeed device from U1/U2 in time for a isoch transfer it will generate a "No ping response error" Host will then move to the next transfer descriptor. Handle this case in the same way as missed service errors, tag the current TD as skipped and handle it on the next transfer event. Cc: stable Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit e210c422b6fdd2dc123bedc588f399aefd8bf9de Author: Mathias Nyman Date: Mon Oct 12 11:30:11 2015 +0300 xhci: don't finish a TD if we get a short transfer event mid TD If the difference is big enough between the bytes asked and received in a bulk transfer we can get a short transfer event pointing to a TRB in the middle of the TD. We don't want to handle the TD yet as we will anyway receive a new event for the last TRB in the TD. Hold off from finishing the TD and removing it from the list until we receive an event for the last TRB in the TD Cc: stable Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 4301de3b0ac4614fdf629fa414fb94f598e7ad6f Merge: 25cb62b b94e228 Author: Greg Kroah-Hartman Date: Fri Oct 16 21:15:52 2015 -0700 Merge tag 'iio-fixes-for-4.3a' 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.3 cycle. * twl4030 - incorrect readings for some channels due to a failure to initialize a bias regulator or configure the lines for input rather than USB use. * lis3lv02 - a missunderstanding of the way the interrupts worked on this chip lead to activation of the wrong interrupt. * sca3000 - an old bug meant that memory corruption could occur in the hardware ring buffer readout function. * mxs-lradc - wrong temp offset. commit 16c8b9cb246474ba4522182fc0d24caddcbba0dd Merge: 4f3f957 a487c03 Author: Linus Torvalds Date: Fri Oct 16 17:39:27 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input fixes from Dmitry Torokhov: "Just two small fixups to ads7846 touchscreen controller driver and Cypress touchpad driver" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: cyapa - fix the copy paste error on electrodes_rx value Input: ads7846 - correct the value got from SPI commit 4f3f9573b62be8953ac3d9888c253e0744af7195 Merge: 045ce74 e79b202 Author: Linus Torvalds Date: Fri Oct 16 17:11:14 2015 -0700 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk fix from Stephen Boyd: "Just one revert for Armada XP devices: the conversion to of_clk_get_parent_name() wasn't a direct translation, so we revert back to of_clk_get() + __clk_get_name(). We could make of_clk_get_parent_name() more robust, but that may have unintended side-effects, so we'll do that in the next version" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: Partially revert "clk: mvebu: Convert to clk_hw based provider APIs" commit b28fec1324bf8f5010d2c3c5d57db4115bda66d4 Author: Sudip Mukherjee Date: Sat Oct 17 08:08:56 2015 +0900 thermal: exynos: Fix register read in TMU The value of emul_con was getting overwritten if the selected soc is SOC_ARCH_EXYNOS5260. And so as a result we were reading from the wrong register in the case of SOC_ARCH_EXYNOS5260. Fixes: 488c7455d74c ("thermal: exynos: Add the support for Exynos5433 TMU") Signed-off-by: Sudip Mukherjee Reviewed-by: Krzysztof Kozlowski Reviewed-by: Chanwoo Choi Acked-by: Lukasz Majewski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim drivers/thermal/samsung/exynos_tmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 045ce743498881b39e672da948c210c769209515 Merge: 6aa8ca4 ba30670 Author: Linus Torvalds Date: Fri Oct 16 13:03:05 2015 -0700 Merge tag 'dm-4.3-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: "Two DM target error path cleanup fixes (one for stable in DM thinp and one for a v4.3-rc5 thinko in DM snapshot)" * tag 'dm-4.3-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm thin: fix missing pool reference count decrement in pool_ctr error path dm snapshot persistent: fix missing cleanup in persistent_ctr error path commit 6aa8ca4df0c1e2095c3f9f6fc28d85a991787879 Merge: 59bcce1 dc6c5fb Author: Linus Torvalds Date: Fri Oct 16 12:55:34 2015 -0700 Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "I have two more bug fixes for btrfs. My commit fixes a bug we hit last week at FB, a combination of lots of hard links and an admin command to resolve inode numbers. Dave is adding checks to make sure balance on current kernels ignores filters it doesn't understand. The penalty for being wrong is just doing more work (not crashing etc), but it's a good fix" * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: btrfs: fix use after free iterating extrefs btrfs: check unsupported filters in balance arguments commit 59bcce121691da06c6b027088d38b76ba893e0cb Merge: a4c4c49 e30b757 Author: Linus Torvalds Date: Fri Oct 16 12:47:02 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph fixes from Sage Weil: "Just two small items from Ilya: The first patch fixes the RBD readahead to grab full objects. The second fixes the write ops to prevent undue promotion when a cache tier is configured on the server side" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: rbd: use writefull op for object size writes rbd: set max_sectors explicitly commit a4c4c49a611321d1b10379f72f1267802437fc07 Merge: 8b7b56f fa54823 Author: Linus Torvalds Date: Fri Oct 16 12:25:54 2015 -0700 Merge tag 'pm+acpi-4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These fix two recent regressions (ACPICA, the generic power domains framework) and one crash that may happen on specific hardware supported since 4.1 (intel_pstate). Specifics: - Fix a regression introduced by a recent ACPICA cleanup that uncovered a latent bug (Lv Zheng). - Fix a recent regression in the generic power domains framework that may cause it to violate PM QoS latency constraints in some cases (Ulf Hansson). - Fix an intel_pstate driver crash on the Knights Landing chips that do not update the MPERF counter as often as expected by the driver which may result in a divide by 0 (Srinivas Pandruvada)" * tag 'pm+acpi-4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: intel_pstate: Fix divide by zero on Knights Landing (KNL) ACPICA: Tables: Fix FADT dependency regression PM / Domains: Fix validation of latency constraints in genpd governor commit 8b7b56f37b13323d459aeec5c5290c2141366c84 Merge: ebb65c8 d549f54 Author: Linus Torvalds Date: Fri Oct 16 12:19:11 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Nothing too crazy or exciting: - two MAINTAINERS entries that I didn't see the point in delaying. - one drm mst fix to stop sending uninitialised data to monitors - two amdgpu fixes - one radeon mst tiling fix - one vmwgfx regression fix - one virtio warning fix. I have found one locking problem that needs a bit of reorg to fix, but I'm not sure it's worth putting in -fixes as I don't think we've seen it hit in the real world ever, I just found it using the virtio-gpu driver when working on it. I'll possibly send it next week once I've time to discuss with Daniel" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/virtio: use %llu format string form atomic64_t MAINTAINERS: Add myself as maintainer for the gma500 driver MAINTAINERS: add a maintainer for the atmel-hlcdc DRM driver drm/amdgpu: Keep the pflip interrupts always enabled v7 drm/amdgpu: adjust default dispclk (v2) drm/dp/mst: make mst i2c transfer code more robust. drm/radeon: attach tile property to mst connector drm/vmwgfx: Fix kernel NULL pointer dereference on older hardware commit 6a3b764b8dc781c36f0f94287df5b2ec23b8fdd7 Author: Tony Lindgren Date: Fri Oct 16 12:16:21 2015 -0700 ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory On boards with more than 2GB of RAM booting goes wrong with things not working and we're getting lots of l3 warnings: WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x260/0x384() 44000000.ocp:L3 Custom Error: MASTER MMC6 TARGET DMM1 (Idle): Data Access in User mode during Functional access ... [] (scsi_add_host_with_dma) from [] (ata_scsi_add_hosts+0x5c/0x18c) [] (ata_scsi_add_hosts) from [] (ata_host_register+0x150/0x2cc) [] (ata_host_register) from [] (ata_host_activate+0xd4/0x124) [] (ata_host_activate) from [] (ahci_host_activate+0x5c/0x194) [] (ahci_host_activate) from [] (ahci_platform_init_host+0x1f0/0x3f0) [] (ahci_platform_init_host) from [] (ahci_probe+0x70/0x98) [] (ahci_probe) from [] (platform_drv_probe+0x54/0xb4) Let's fix the issue by enabling ZONE_DMA for LPAE. Note that we need to limit dma_zone_size to 2GB as the rest of the RAM is beyond the 4GB limit. Let's also fix things for dra7 as done in similar patches in the TI tree by Lokesh Vutla . Reviewed-by: Lokesh Vutla Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 2 ++ arch/arm/mach-omap2/board-generic.c | 9 +++++++++ 2 files changed, 11 insertions(+) commit ebb65c81e1042c0d73cb73738c607da54add739a Merge: 3d87518 abb39bc Author: Linus Torvalds Date: Fri Oct 16 12:07:43 2015 -0700 Merge tag 'powerpc-4.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Re-enable CONFIG_SCSI_DH in our defconfigs - Remove unused os_area_db_id_video_mode - cxl: fix leak of IRQ names in cxl_free_afu_irqs() from Andrew - cxl: fix leak of ctx->irq_bitmap when releasing context via kernel API from Andrew - cxl: fix leak of ctx->mapping when releasing kernel API contexts from Andrew - cxl: Workaround malformed pcie packets on some cards from Philippe - cxl: Fix number of allocated pages in SPA from Christophe Lombard - Fix checkstop in native_hpte_clear() with lockdep from Cyril - Panic on unhandled Machine Check on powernv from Daniel - selftests/powerpc: Fix build failure of load_unaligned_zeropad test * tag 'powerpc-4.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: selftests/powerpc: Fix build failure of load_unaligned_zeropad test powerpc/powernv: Panic on unhandled Machine Check powerpc: Fix checkstop in native_hpte_clear() with lockdep cxl: Fix number of allocated pages in SPA cxl: Workaround malformed pcie packets on some cards cxl: fix leak of ctx->mapping when releasing kernel API contexts cxl: fix leak of ctx->irq_bitmap when releasing context via kernel API cxl: fix leak of IRQ names in cxl_free_afu_irqs() powerpc/ps3: Remove unused os_area_db_id_video_mode powerpc/configs: Re-enable CONFIG_SCSI_DH commit 3d875182d7f4b27b7778c3ab6a39800d383968cb Merge: 69984b6 934ed25 Author: Linus Torvalds Date: Fri Oct 16 11:42:37 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "6 fixes" * emailed patches from Andrew Morton : sh: add copy_user_page() alias for __copy_user() lib/Kconfig: ZLIB_DEFLATE must select BITREVERSE mm, dax: fix DAX deadlocks memcg: convert threshold to bytes builddeb: remove debian/files before build mm, fs: obey gfp_mapping for add_to_page_cache() commit 934ed25ea505859cec5236dcb1769be5f998dd25 Author: Ross Zwisler Date: Thu Oct 15 15:28:38 2015 -0700 sh: add copy_user_page() alias for __copy_user() copy_user_page() is needed by DAX. Without this we get a compile error for DAX on SH: fs/dax.c:280:2: error: implicit declaration of function `copy_user_page' [-Werror=implicit-function-declaration] copy_user_page(vto, (void __force *)vfrom, vaddr, to); ^ This was done with a random config that happened to include DAX support. This patch has only been compile tested. Signed-off-by: Ross Zwisler Reported-by: Geert Uytterhoeven Cc: Andy Shevchenko Cc: Matthew Wilcox Cc: Matt Fleming Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sh/include/asm/page.h | 1 + 1 file changed, 1 insertion(+) commit 1fd4e5c347bfcef6ae2c31f6a2abce00f6ecaa3f Author: Andrew Morton Date: Thu Oct 15 15:28:35 2015 -0700 lib/Kconfig: ZLIB_DEFLATE must select BITREVERSE lib/built-in.o: In function `__bitrev32': deftree.c:(.text+0x1e799): undefined reference to `byte_rev_table' deftree.c:(.text+0x1e7a0): undefined reference to `byte_rev_table' deftree.c:(.text+0x1e7b4): undefined reference to `byte_rev_table' deftree.c:(.text+0x1e7c1): undefined reference to `byte_rev_table' Anything which uses bitrevX() has to select BITREVERSE, to grab lib/bitrev.o. Reported-by: Jim Davis Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 0f90cc6609c72b0bdf2aad0cb0456194dd896e19 Author: Ross Zwisler Date: Thu Oct 15 15:28:32 2015 -0700 mm, dax: fix DAX deadlocks The following two locking commits in the DAX code: commit 843172978bb9 ("dax: fix race between simultaneous faults") commit 46c043ede471 ("mm: take i_mmap_lock in unmap_mapping_range() for DAX") introduced a number of deadlocks and other issues which need to be fixed for the v4.3 kernel. The list of issues in DAX after these commits (some newly introduced by the commits, some preexisting) can be found here: https://lkml.org/lkml/2015/9/25/602 (Subject: "Re: [PATCH] dax: fix deadlock in __dax_fault"). This undoes most of the changes introduced by those two commits, essentially returning us to the DAX locking scheme that was used in v4.2. Signed-off-by: Ross Zwisler Cc: Alexander Viro Cc: Dan Williams Tested-by: Dave Chinner Cc: Jan Kara Cc: "Kirill A. Shutemov" Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 70 +++++++++++++++++++++++++------------------------------------ mm/memory.c | 2 ++ 2 files changed, 31 insertions(+), 41 deletions(-) commit 424cdc14138088ada1b0e407a2195b2783c6e5ef Author: Shaohua Li Date: Thu Oct 15 15:28:29 2015 -0700 memcg: convert threshold to bytes page_counter_memparse() returns pages for the threshold, while mem_cgroup_usage() returns bytes for memory usage. Convert the threshold to bytes. Fixes: 3e32cb2e0a12b6915 ("memcg: rename cgroup_event to mem_cgroup_event"). Signed-off-by: Shaohua Li Cc: Johannes Weiner Acked-by: Michal Hocko Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 1 + 1 file changed, 1 insertion(+) commit 8d740a37b92f3d4a0435fe263b32efc7f61c5efb Author: Riku Voipio Date: Thu Oct 15 15:28:26 2015 -0700 builddeb: remove debian/files before build Commit 3716001bcb7f ("deb-pkg: add source package") added the ability to create a debian changelog file. This exposed that previously the builddeb script hasn't cleared debian/files between builds. As debian/files keeps accumulating entries, the changes file will end up growing indefinelty. With outdated entries in debian/files, builddeb script will exit with failure. This regression impacts those who use "make deb-pkg" target to build kernel into a .deb package and never use "make mrproper" or other means to clean kernel tree from generated directories. To fix the regression, remove debian/files before starting build and in the generated clean rule. Fixes: 3716001bcb7f ("deb-pkg: add source package") Signed-off-by: Riku Voipio Reported-by: Doug Smythies Tested-by: Doug Smythies Tested-by: Kalle Valo Acked-by: Ben Hutchings Cc: Michal Marek Cc: maximilian attems Cc: Chris J Arges Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/package/builddeb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 063d99b4fa762cbae9324dbbf9b6bff4b3a8cfdc Author: Michal Hocko Date: Thu Oct 15 15:28:24 2015 -0700 mm, fs: obey gfp_mapping for add_to_page_cache() Commit 6afdb859b710 ("mm: do not ignore mapping_gfp_mask in page cache allocation paths") has caught some users of hardcoded GFP_KERNEL used in the page cache allocation paths. This, however, wasn't complete and there were others which went unnoticed. Dave Chinner has reported the following deadlock for xfs on loop device: : With the recent merge of the loop device changes, I'm now seeing : XFS deadlock on my single CPU, 1GB RAM VM running xfs/073. : : The deadlocked is as follows: : : kloopd1: loop_queue_read_work : xfs_file_iter_read : lock XFS inode XFS_IOLOCK_SHARED (on image file) : page cache read (GFP_KERNEL) : radix tree alloc : memory reclaim : reclaim XFS inodes : log force to unpin inodes : : : xfs-cil/loop1: : xlog_cil_push : xlog_write : : xlog_state_get_iclog_space() : : : : kloopd1: loop_queue_write_work : xfs_file_write_iter : lock XFS inode XFS_IOLOCK_EXCL (on image file) : : : i.e. the kloopd, with it's split read and write work queues, has : introduced a dependency through memory reclaim. i.e. that writes : need to be able to progress for reads make progress. : : The problem, fundamentally, is that mpage_readpages() does a : GFP_KERNEL allocation, rather than paying attention to the inode's : mapping gfp mask, which is set to GFP_NOFS. : : The didn't used to happen, because the loop device used to issue : reads through the splice path and that does: : : error = add_to_page_cache_lru(page, mapping, index, : GFP_KERNEL & mapping_gfp_mask(mapping)); This has changed by commit aa4d86163e4 ("block: loop: switch to VFS ITER_BVEC"). This patch changes mpage_readpage{s} to follow gfp mask set for the mapping. There are, however, other places which are doing basically the same. lustre:ll_dir_filler is doing GFP_KERNEL from the function which apparently uses GFP_NOFS for other allocations so let's make this consistent. cifs:readpages_get_pages is called from cifs_readpages and __cifs_readpages_from_fscache called from the same path obeys mapping gfp. ramfs_nommu_expand_for_mapping is hardcoding GFP_KERNEL as well regardless it uses mapping_gfp_mask for the page allocation. ext4_mpage_readpages is the called from the page cache allocation path same as read_pages and read_cache_pages As I've noticed in my previous post I cannot say I would be happy about sprinkling mapping_gfp_mask all over the place and it sounds like we should drop gfp_mask argument altogether and use it internally in __add_to_page_cache_locked that would require all the filesystems to use mapping gfp consistently which I am not sure is the case here. From a quick glance it seems that some file system use it all the time while others are selective. Signed-off-by: Michal Hocko Reported-by: Dave Chinner Cc: "Theodore Ts'o" Cc: Ming Lei Cc: Andreas Dilger Cc: Oleg Drokin Cc: Al Viro Cc: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/staging/lustre/lustre/llite/dir.c | 2 +- fs/cifs/file.c | 6 +++--- fs/ext4/readpage.c | 4 ++-- fs/mpage.c | 15 +++++++++------ fs/ramfs/file-nommu.c | 5 +++-- mm/readahead.c | 8 ++++---- 6 files changed, 22 insertions(+), 18 deletions(-) commit 34198710f55b5f359f43e67d9a08fe5aadfbca1b Author: Charles Keepax Date: Wed Oct 14 13:31:24 2015 +0100 ASoC: Add info callback for SX_TLV controls SX_TLV controls are intended for situations where the register behind the control has some non-zero value indicating the minimum gain and then gains increasing from there and eventually overflowing through zero. Currently every CODEC implementing these controls specifies the minimum as the non-zero value for the minimum and the maximum as the number of gain settings available. This means when the info callback subtracts the minimum value from the maximum value to calculate the number of gain levels available it is actually under reporting the available levels. This patch fixes this issue by adding a new snd_soc_info_volsw_sx callback that does not subtract the minimum value. Fixes: 1d99f2436d0d ("ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV") Signed-off-by: Charles Keepax Acked-by: Brian Austin Tested-by: Brian Austin Signed-off-by: Mark Brown Cc: stable@vger.kernel.org include/sound/soc.h | 6 ++++-- sound/soc/soc-ops.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) commit e30b7577bf1d338ca8a273bd2f881de5a41572b7 Author: Ilya Dryomov Date: Wed Oct 7 17:27:17 2015 +0200 rbd: use writefull op for object size writes This covers only the simplest case - an object size sized write, but it's still useful in tiering setups when EC is used for the base tier as writefull op can be proxied, saving an object promotion. Even though updating ceph_osdc_new_request() to allow writefull should just be a matter of fixing an assert, I didn't do it because its only user is cephfs. All other sites were updated. Reflects ceph.git commit 7bfb7f9025a8ee0d2305f49bf0336d2424da5b5b. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 9 +++++++-- net/ceph/osd_client.c | 13 +++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) commit 0d9fde4fc8f59a6bd316559d267a936b0737d05a Author: Ilya Dryomov Date: Wed Oct 7 16:09:35 2015 +0200 rbd: set max_sectors explicitly Commit 30e2bc08b2bb ("Revert "block: remove artifical max_hw_sectors cap"") restored a clamp on max_sectors. It's now 2560 sectors instead of 1024, but it's not good enough: we set max_hw_sectors to rbd object size because we don't want object sized I/Os to be split, and the default object size is 4M. So, set max_sectors to max_hw_sectors in rbd at queue init time. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 1 + 1 file changed, 1 insertion(+) commit c0ff971ef9acacd4d2caa508e444edad958dead9 Author: Vitaly Kuznetsov Date: Thu Oct 15 19:42:23 2015 +0200 x86/ioapic: Disable interrupts when re-routing legacy IRQs A sporadic hang with consequent crash is observed when booting Hyper-V Gen1 guests: Call Trace: [] ? trace_hardirqs_off+0xd/0x10 [] queue_work_on+0x46/0x90 [] ? add_interrupt_randomness+0x176/0x1d0 ... [] ? _raw_spin_unlock_irqrestore+0x3b/0x60 [] __irq_put_desc_unlock+0x1e/0x40 [] irq_modify_status+0xb5/0xd0 [] mp_register_handler+0x4b/0x70 [] mp_irqdomain_alloc+0x1ea/0x2a0 [] irq_domain_alloc_irqs_recursive+0x40/0xa0 [] __irq_domain_alloc_irqs+0x13c/0x2b0 [] alloc_isa_irq_from_domain.isra.1+0xc0/0xe0 [] mp_map_pin_to_irq+0x165/0x2d0 [] pin_2_irq+0x47/0x80 [] setup_IO_APIC+0xfe/0x802 ... [] ? rest_init+0x140/0x140 The issue is easily reproducible with a simple instrumentation: if mdelay(10) is put between mp_setup_entry() and mp_register_handler() calls in mp_irqdomain_alloc() Hyper-V guest always fails to boot when re-routing IRQ0. The issue seems to be caused by the fact that we don't disable interrupts while doing IOPIC programming for legacy IRQs and IRQ0 actually happens. Protect the setup sequence against concurrent interrupts. [ tglx: Make the protection unconditional and not only for legacy interrupts ] Signed-off-by: Vitaly Kuznetsov Cc: Jiang Liu Cc: Yinghai Lu Cc: K. Y. Srinivasan Link: http://lkml.kernel.org/r/1444930943-19336-1-git-send-email-vkuznets@redhat.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 4 ++++ 1 file changed, 4 insertions(+) commit 7ba6e4ef76c7e43101bd5e0f8987c11a8ed0d325 Author: Bard Liao Date: Fri Oct 16 15:21:32 2015 +0800 ASoC: rt298: correct index default value Some of the default value on rt298_index_def are incorrect. Change them to the correct value. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rt298.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 56fd16cabac9cd8f15e2902898a9d0cc96e2fa70 Author: Thomas Gleixner Date: Fri Oct 16 15:50:22 2015 +0200 timekeeping: Increment clock_was_set_seq in timekeeping_init() timekeeping_init() can set the wall time offset, so we need to increment the clock_was_set_seq counter. That way hrtimers will pick up the early offset immediately. Otherwise on a machine which does not set wall time later in the boot process the hrtimer offset is stale at 0 and wall time timers are going to expire with a delay of 45 years. Fixes: 868a3e915f7f "hrtimer: Make offset update smarter" Reported-and-tested-by: Heiko Carstens Signed-off-by: Thomas Gleixner Cc: Stefan Liebler Cc: Peter Zijlstra Cc: John Stultz kernel/time/timekeeping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa548237321c4469e80741f773c4f5935a68a998 Merge: 25cb62b 62fcce9 a98f1b7 8e601a9 Author: Rafael J. Wysocki Date: Fri Oct 16 14:32:27 2015 +0200 Merge branches 'acpica', 'pm-domains' and 'pm-cpufreq' * acpica: ACPICA: Tables: Fix FADT dependency regression * pm-domains: PM / Domains: Fix validation of latency constraints in genpd governor * pm-cpufreq: cpufreq: intel_pstate: Fix divide by zero on Knights Landing (KNL) commit 0701c53e460ea64daf0ee789d0b08fef57800016 Author: Marc Zyngier Date: Tue Oct 13 19:14:45 2015 +0100 genirq/msi: Do not use pci_msi_[un]mask_irq as default methods When we create a generic MSI domain, that MSI_FLAG_USE_DEF_CHIP_OPS is set, and that any of .mask or .unmask are NULL in the irq_chip structure, we set them to pci_msi_[un]mask_irq. This is a bad idea for at least two reasons: - PCI_MSI might not be selected, kernel fails to build (yes, this is legitimate, at least on arm64!) - This may not be a PCI/MSI domain at all (platform MSI, for example) Either way, this looks wrong. Move the overriding of mask/unmask to the PCI counterpart, and panic is any of these two methods is not set in the core code (they really should be present). Signed-off-by: Marc Zyngier Cc: Jiang Liu Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/1444760085-27857-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 4 ++++ kernel/irq/msi.c | 6 +----- 2 files changed, 5 insertions(+), 5 deletions(-) commit 1a800589052f03ce09008f82ad2c69f0af5d315a Merge: 8a53554 f5f3497 Author: Ingo Molnar Date: Fri Oct 16 12:03:22 2015 +0200 Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent Pull EFI fix from Matt Fleming: - Ensure that the identity mapping in initial_page_table is updated to cover the entire kernel range. This fixes a triple fault on non-PAE kernels when booting on 32-bit EFI due to accessing an unmapped GDT in efi_call_phys_prolog(). (Paolo Bonzini) Signed-off-by: Ingo Molnar commit f5f3497cad8c8416a74b9aaceb127908755d020a Author: Paolo Bonzini Date: Wed Oct 14 13:30:45 2015 +0200 x86/setup: Extend low identity map to cover whole kernel range On 32-bit systems, the initial_page_table is reused by efi_call_phys_prolog as an identity map to call SetVirtualAddressMap. efi_call_phys_prolog takes care of converting the current CPU's GDT to a physical address too. For PAE kernels the identity mapping is achieved by aliasing the first PDPE for the kernel memory mapping into the first PDPE of initial_page_table. This makes the EFI stub's trick "just work". However, for non-PAE kernels there is no guarantee that the identity mapping in the initial_page_table extends as far as the GDT; in this case, accesses to the GDT will cause a page fault (which quickly becomes a triple fault). Fix this by copying the kernel mappings from swapper_pg_dir to initial_page_table twice, both at PAGE_OFFSET and at identity mapping. For some reason, this is only reproducible with QEMU's dynamic translation mode, and not for example with KVM. However, even under KVM one can clearly see that the page table is bogus: $ qemu-system-i386 -pflash OVMF.fd -M q35 vmlinuz0 -s -S -daemonize $ gdb (gdb) target remote localhost:1234 (gdb) hb *0x02858f6f Hardware assisted breakpoint 1 at 0x2858f6f (gdb) c Continuing. Breakpoint 1, 0x02858f6f in ?? () (gdb) monitor info registers ... GDT= 0724e000 000000ff IDT= fffbb000 000007ff CR0=0005003b CR2=ff896000 CR3=032b7000 CR4=00000690 ... The page directory is sane: (gdb) x/4wx 0x32b7000 0x32b7000: 0x03398063 0x03399063 0x0339a063 0x0339b063 (gdb) x/4wx 0x3398000 0x3398000: 0x00000163 0x00001163 0x00002163 0x00003163 (gdb) x/4wx 0x3399000 0x3399000: 0x00400003 0x00401003 0x00402003 0x00403003 but our particular page directory entry is empty: (gdb) x/1wx 0x32b7000 + (0x724e000 >> 22) * 4 0x32b7070: 0x00000000 [ It appears that you can skate past this issue if you don't receive any interrupts while the bogus GDT pointer is loaded, or if you avoid reloading the segment registers in general. Andy Lutomirski provides some additional insight: "AFAICT it's entirely permissible for the GDTR and/or LDT descriptor to point to unmapped memory. Any attempt to use them (segment loads, interrupts, IRET, etc) will try to access that memory as if the access came from CPL 0 and, if the access fails, will generate a valid page fault with CR2 pointing into the GDT or LDT." Up until commit 23a0d4e8fa6d ("efi: Disable interrupts around EFI calls, not in the epilog/prolog calls") interrupts were disabled around the prolog and epilog calls, and the functional GDT was re-installed before interrupts were re-enabled. Which explains why no one has hit this issue until now. ] Signed-off-by: Paolo Bonzini Reported-by: Laszlo Ersek Cc: Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Andy Lutomirski Signed-off-by: Matt Fleming [ Updated changelog. ] arch/x86/kernel/setup.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5f715c097965c0ad037f64393d0b95c50287775b Author: Andrej Ota Date: Thu Oct 15 00:14:37 2015 +0200 via-rhine: fix VLAN receive handling regression. Because eth_type_trans() consumes ethernet header worth of bytes, a call to read TCI from end of packet using rhine_rx_vlan_tag() no longer works as it's reading from an invalid offset. Tested to be working on PCEngines Alix board. Fixes: 810f19bcb862 ("via-rhine: add consistent memory barrier in vlan receive code.") Signed-off-by: Andrej Ota Acked-by: Francois Romieu Signed-off-by: David S. Miller drivers/net/ethernet/via/via-rhine.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7de88271da98c0c6f918e4cf4aa214ac034bab00 Merge: 53ca376 0a1f596 Author: David S. Miller Date: Fri Oct 16 00:39:25 2015 -0700 Merge branch 'ipv6-blackhole-route-fix' Martin KaFai Lau says: ==================== ipv6: Initialize rt6_info properly in ip6_blackhole_route() This patchset ensures the rt6_info's fields are initialized properly in ip6_blackhole_route() where xfrm_policy is the primarily user. The first patch is a prep work. The second patch is the fix. It fixes d52d3997f843 ("ipv6: Create percpu rt6_info"). Here is the oops reported by Phil Sutter : BUG: unable to handle kernel NULL pointer dereference at 00000000000000a0 IP: [] __ip6_datagram_connect+0x71e/0xa20 PGD c2cb1067 PUD c2d7a067 PMD 0 Oops: 0000 [#1] PREEMPT SMP Modules linked in: cmac nfs lockd grace sunrpc bridge stp llc nvidia(PO) snd_usb_audio snd_usbmidi_lib iTCO_wdt CPU: 1 PID: 2964 Comm: ping6 Tainted: P O 4.2.1-aufs #10 Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./4Core1333-Viiv, BIOS P1.60 07/01/2008 task: ffff8800ca62bc00 ti: ffff880129a14000 task.ti: ffff880129a14000 RIP: 0010:[] [] __ip6_datagram_connect+0x71e/0xa20 RSP: 0018:ffff880129a17da8 EFLAGS: 00010296 RAX: 000000000000000b RBX: 0000000000000000 RCX: 0000000000000006 RDX: 0000000000000007 RSI: 0000000000000246 RDI: ffff88012fc8d5a0 RBP: ffff8800cb9a9048 R08: 756e207369207472 R09: 216c6c756e207369 R10: 0000000000000665 R11: 0000000000000006 R12: ffff8800cb9a8cf8 R13: ffff8800cb9a8cf8 R14: 0000000000000000 R15: ffff8800cb9a8cc0 FS: 00007fb76ad74700(0000) GS:ffff88012fc80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000a0 CR3: 00000000c2dba000 CR4: 00000000000406e0 Stack: ffff8800cb9a9048 ffff8800cb9a8de0 ffff8800cb9feb70 ffffffff816b2c41 00007fb70000000b ffffea0000df7200 ffff8800cb9f5cfc ffff8800cb9a8cc0 03fffffffe068a20 ffff8800cb9a8cc0 ffffffff817097c0 0000000100000000 Call Trace: [] ? udp_lib_get_port+0x1a1/0x380 [] ? udpv6_rcv+0x20/0x20 [] ? ip6_datagram_connect+0x22/0x40 [] ? SyS_connect+0x6b/0xb0 [] ? __do_page_fault+0x15c/0x380 [] ? SyS_socket+0x63/0xa0 [] ? entry_SYSCALL_64_fastpath+0x12/0x6a Code: ba ae 00 00 00 48 c7 c6 7b 71 94 81 48 c7 c7 63 71 94 81 e8 6c 0f 02 00 48 85 db 75 0e 48 c7 c7 9f 71 94 81 31 c0 e8 59 0f 02 00 <48> 83 bb a0 00 00 00 00 75 0e 48 c7 c7 ae 71 94 81 31 c0 e8 41 RIP [] __ip6_datagram_connect+0x71e/0xa20 RSP CR2: 00000000000000a0 ==================== Signed-off-by: David S. Miller commit 0a1f59620068fb82a2e2aded202e62f4bb856d52 Author: Martin KaFai Lau Date: Thu Oct 15 16:39:58 2015 -0700 ipv6: Initialize rt6_info properly in ip6_blackhole_route() ip6_blackhole_route() does not initialize the newly allocated rt6_info properly. This patch: 1. Call rt6_info_init() to initialize rt6i_siblings and rt6i_uncached 2. The current rt->dst._metrics init code is incorrect: - 'rt->dst._metrics = ort->dst._metris' is not always safe - Not sure what dst_copy_metrics() is trying to do here considering ip6_rt_blackhole_cow_metrics() always returns NULL Fix: - Always do dst_copy_metrics() - Replace ip6_rt_blackhole_cow_metrics() with dst_cow_metrics_generic() 3. Mask out the RTF_PCPU bit from the newly allocated blackhole route. This bug triggers an oops (reported by Phil Sutter) in rt6_get_cookie(). It is because RTF_PCPU is set while rt->dst.from is NULL. Fixes: d52d3997f843 ("ipv6: Create percpu rt6_info") Signed-off-by: Martin KaFai Lau Reported-by: Phil Sutter Tested-by: Phil Sutter Cc: Hannes Frederic Sowa Cc: Julian Anastasov Cc: Phil Sutter Cc: Steffen Klassert Signed-off-by: David S. Miller net/ipv6/route.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit ebfa45f0d952e5e7bb30a7f9daaad681de138728 Author: Martin KaFai Lau Date: Thu Oct 15 16:39:57 2015 -0700 ipv6: Move common init code for rt6_info to a new function rt6_info_init() Introduce rt6_info_init() to do the common init work for 'struct rt6_info' (after calling dst_alloc). It is a prep work to fix the rt6_info init logic in the ip6_blackhole_route(). Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Julian Anastasov Cc: Phil Sutter Cc: Steffen Klassert Signed-off-by: David S. Miller net/ipv6/route.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 5157b8a503fa834e8569c7fed06981e3d3d53db0 Author: Jakub Pawlowski Date: Fri Oct 16 10:07:54 2015 +0300 Bluetooth: Fix initializing conn_params in scan phase This patch makes sure that conn_params that were created just for explicit_connect, will get properly deleted during cleanup. Signed-off-by: Jakub Pawlowski Acked-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 22 +++++++++++++++------- net/bluetooth/mgmt.c | 6 +++++- 2 files changed, 20 insertions(+), 8 deletions(-) commit 9ad3e6ffe189a988389d88ce33101668cb2d54c6 Author: Johan Hedberg Date: Fri Oct 16 10:07:53 2015 +0300 Bluetooth: Fix conn_params list update in hci_connect_le_scan_cleanup After clearing the params->explicit_connect variable the parameters may need to be either added back to the right list or potentially left absent from both the le_reports and the le_conns lists. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 679d2b6f9d742b3f091868bd9a0634647ce7e782 Author: Johan Hedberg Date: Fri Oct 16 10:07:52 2015 +0300 Bluetooth: Fix remove_device behavior for explicit connects Devices undergoing an explicit connect should not have their conn_params struct removed by the mgmt Remove Device command. This patch fixes the necessary checks in the command handler to correct the behavior. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/mgmt.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 49c509220db990ad003060db2267b9bbb597cd94 Author: Johan Hedberg Date: Fri Oct 16 10:07:51 2015 +0300 Bluetooth: Fix LE reconnection logic We can't use hci_explicit_connect_lookup() since that would only cover explicit connections, leaving normal reconnections completely untouched. Not using it in turn means leaving out entries in pend_le_reports. To fix this and simplify the logic move conn params from the reports list to the pend_le_conns list for the duration of an explicit connect. Once the connect is complete move the params back to the pend_le_reports list. This also means that the explicit connect lookup function only needs to look into the pend_le_conns list. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 4 ++-- net/bluetooth/hci_core.c | 7 ------- net/bluetooth/hci_event.c | 4 ++-- net/bluetooth/mgmt.c | 5 ++++- 4 files changed, 8 insertions(+), 12 deletions(-) commit b958f9a3e87766a88036616389eaaf3ad3bd5fc8 Author: Johan Hedberg Date: Fri Oct 16 10:07:50 2015 +0300 Bluetooth: Fix reference counting for LE-scan based connections The code should never directly call hci_conn_hash_del since many cleanup & reference counting updates would be lost. Normally hci_conn_del is the right thing to do, but in the case of a connection doing LE scanning this could cause a deadlock due to doing a cancel_delayed_work_sync() on the same work callback that we were called from. Connections in the LE scanning state actually need very little cleanup - just a small subset of hci_conn_del. To solve the issue, refactor out these essential pieces into a new hci_conn_cleanup() function and call that from the two necessary places. Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 53 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 17 deletions(-) commit 168b8a25c0ac30f427bfe6ad547779c4c363d042 Author: Jakub Pawlowski Date: Fri Oct 16 10:07:49 2015 +0300 Bluetooth: Fix double scan updates When disable/enable scan command is issued twice, some controllers will return an error for the second request, i.e. requests with this command will fail on some controllers, and succeed on others. This patch makes sure that unnecessary scan disable/enable commands are not issued. When adding device to the auto connect whitelist when there is pending connect attempt, there is no need to update scan. hci_connect_le_scan_cleanup is conditionally executing hci_conn_params_del, that is calling hci_update_background_scan. Make the other case also update scan, and remove reduntand call from hci_connect_le_scan_remove. When stopping interleaved discovery the state should be set to stopped only when both LE scanning and discovery has stopped. Signed-off-by: Jakub Pawlowski Acked-by: Johan Hedberg Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 7 ++++--- net/bluetooth/hci_event.c | 7 ++++++- net/bluetooth/mgmt.c | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) commit d549f545e690c3cbdeb33df3579eae3230eb8904 Author: Arnd Bergmann Date: Wed Oct 7 12:41:21 2015 +0200 drm/virtio: use %llu format string form atomic64_t The virtgpu driver prints the last_seq variable using the %ld or %lu format string, which does not work correctly on all architectures and causes this compiler warning on ARM: drivers/gpu/drm/virtio/virtgpu_fence.c: In function 'virtio_timeline_value_str': drivers/gpu/drm/virtio/virtgpu_fence.c:64:22: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'long long int' [-Wformat=] snprintf(str, size, "%lu", atomic64_read(&fence->drv->last_seq)); ^ drivers/gpu/drm/virtio/virtgpu_debugfs.c: In function 'virtio_gpu_debugfs_irq_info': drivers/gpu/drm/virtio/virtgpu_debugfs.c:37:16: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'long long int' [-Wformat=] seq_printf(m, "fence %ld %lld\n", ^ In order to avoid the warnings, this changes the format strings to %llu and adds a cast to u64, which makes it work the same way everywhere. Signed-off-by: Arnd Bergmann Signed-off-by: Dave Airlie drivers/gpu/drm/virtio/virtgpu_debugfs.c | 4 ++-- drivers/gpu/drm/virtio/virtgpu_fence.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit ba2199a63df6a25ac6aa93cc197f7005ecb6781b Author: Patrik Jakobsson Date: Mon Oct 12 23:14:44 2015 +0200 MAINTAINERS: Add myself as maintainer for the gma500 driver Signed-off-by: Patrik Jakobsson Signed-off-by: Dave Airlie MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 99763bb85a9f99b6f58e81ee097059e2dce942bc Author: Boris BREZILLON Date: Tue Oct 13 11:55:42 2015 +0200 MAINTAINERS: add a maintainer for the atmel-hlcdc DRM driver Add myself as the maintainer of the atmel-hlcdc DRM driver. Signed-off-by: Boris Brezillon Acked-by: Nicolas Ferre Signed-off-by: Dave Airlie MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit 57606c73dca35f5ea0f2948e64c3ec6014e19cd0 Merge: b2293cb f6c7aba Author: Dave Airlie Date: Fri Oct 16 10:01:24 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Just two fixes for amdgpu: - fix pageflip interrupt issue - fix display clock handling on certain fiji boards * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: Keep the pflip interrupts always enabled v7 drm/amdgpu: adjust default dispclk (v2) commit b2293cb5c6356e31a1c3275b0f84919d592902c9 Merge: ae49154 ed7d78b Author: Dave Airlie Date: Fri Oct 16 08:10:21 2015 +1000 Merge tag 'vmwgfx-fixes-4.3-151014' of git://people.freedesktop.org/~thomash/linux into drm-fixes Pull request of 2015-10-14 * tag 'vmwgfx-fixes-4.3-151014' of git://people.freedesktop.org/~thomash/linux: drm/vmwgfx: Fix kernel NULL pointer dereference on older hardware commit 69984b64440729bf6b08d1ddc1b3ee8282a2c846 Merge: 3155823 eb93ce2 Author: Linus Torvalds Date: Thu Oct 15 14:03:38 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Here are a few more arm64 fixes for 4.3. Again, nothing too significant, but worth having nonetheless. The MINSIGSTKSZ update is a bit grotty, but the value we currently have is wrong (too small), so anybody using that will have issues already. It has Arnd's ack for the asm-generic change. Summary: - Fix module CFLAGS setting in workaround for erratum #843419 - Update MINSIGSTKSZ and SIGSTKSZ to match glibc - Wire up some new compat syscalls" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: compat: wire up new syscalls arm64: Fix MINSIGSTKSZ and SIGSTKSZ arm64: errata: use KBUILD_CFLAGS_MODULE for erratum #843419 commit 31558237f86f6fc90eb5acf98d284a9f99aa6c10 Merge: 58bd6e0 de7f8e3 Author: Linus Torvalds Date: Thu Oct 15 13:58:22 2015 -0700 Merge tag 'pinctrl-v4.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pinctrl fixes from Linus Walleij: "Here are some overdue (what can I say, I was on a short vacation) driver fixes for the pin control subsystem: - Allwinner sun5i A10s had a faulty mapping - Freescale i.MX25 had some bad arithmetics - Uniphier PH1-sLD8 missed some input enable settings" * tag 'pinctrl-v4.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: uniphier: fix input enable settings for PH1-sLD8 pinctrl: imx25: ensure that a pin with id i is at position i in the info array pinctrl: sun5i: Fix a10s pwm1 pinctrl mapping commit 8e601a9f97a00bab031980de34f9a81891c1f82f Author: Srinivas Pandruvada Date: Thu Oct 15 12:34:21 2015 -0700 cpufreq: intel_pstate: Fix divide by zero on Knights Landing (KNL) This is a workaround for KNL platform, where in some cases MPERF counter will not have updated value before next read of MSR_IA32_MPERF. In this case divide by zero will occur. This change ignores current sample for busy calculation in this case. Fixes: b34ef932d79a (intel_pstate: Knights Landing support) Signed-off-by: Srinivas Pandruvada Acked-by: Kristen Carlson Accardi Cc: 4.1+ # 4.1+ Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 5 +++++ 1 file changed, 5 insertions(+) commit 58bd6e060260d938650687cdd8f02dfafcb51f91 Merge: c7823b6 0b5c927 Author: Linus Torvalds Date: Thu Oct 15 13:44:35 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma updates from Doug Ledford: "We have four batched up patches for the current rc kernel. Two of them are small fixes that are obvious. One of them is larger than I would like for a late stage rc pull, but we found an issue in the namespace lookup code related to RoCE and this works around the issue for now (we allow a lookup with a namespace to succeed on RoCE since RoCE namespaces aren't implemented yet). This will go away in 4.4 when we put in support for namespaces in RoCE devices. The last one is large in terms of lines, but is all legal and no functional changes. Cisco needed to update their files to be more specific about their license. They had intended the files to be dual licensed as GPL/BSD all along, and specified that in their module license tag, but their file headers were not up to par. They contacted all of the contributors to get agreement and then submitted a patch to update the license headers in the files. Summary: - Work around connection namespace lookup bug related to RoCE - Change usnic license to Dual GPL/BSD (was intended to be that way all along, but wasn't clear, permission from contributors was chased down) - Fix an issue between NFSoRDMA and mlx5 that could cause an oops - Fix leak of sendonly multicast groups" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/ipoib: For sendonly join free the multicast group on leave IB/cma: Accept connection without a valid netdev on RoCE xprtrdma: Don't require LOCAL_DMA_LKEY support for fastreg usnic: add missing clauses to BSD license commit c7823b6b97ddc3d9f627611557d2b5842c36b67e Merge: 176bed1 d4eb6de Author: Linus Torvalds Date: Thu Oct 15 13:31:00 2015 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull ext4 Kconfig description fixup from Jan Kara: "A small fixup in description of EXT4_USE_FOR_EXT2 config option" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: ext4: Update EXT4_USE_FOR_EXT2 description commit 176bed1de5bf977938cad26551969eca8f0883b1 Author: Linus Torvalds Date: Thu Oct 15 13:01:50 2015 -0700 vmstat: explicitly schedule per-cpu work on the CPU we need it to run on The vmstat code uses "schedule_delayed_work_on()" to do the initial startup of the delayed work on the right CPU, but then once it was started it would use the non-cpu-specific "schedule_delayed_work()" to re-schedule it on that CPU. That just happened to schedule it on the same CPU historically (well, in almost all situations), but the code _requires_ this work to be per-cpu, and should say so explicitly rather than depend on the non-cpu-specific scheduling to schedule on the current CPU. The timer code is being changed to not be as single-minded in always running things on the calling CPU. See also commit 874bbfe600a6 ("workqueue: make sure delayed work run in local cpu") that for now maintains the local CPU guarantees just in case there are other broken users that depended on the accidental behavior. Cc: Christoph Lameter Cc: Tejun Heo Signed-off-by: Linus Torvalds mm/vmstat.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 995e2fe9a4904c0b83c4eead7db42f5d52b09a85 Merge: cfed1e3 874bbfe Author: Linus Torvalds Date: Thu Oct 15 12:58:37 2015 -0700 Merge branch 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue fixlet from Tejun Heo: "Single patch to make delayed work always be queued on the local CPU" This is not actually something we should guarantee, but it's something we by accident have historically done, and at least one call site has grown to depend on it. I'm going to fix that known broken callsite, but in the meantime this makes the accidental behavior be explicit, just in case there are other cases that might depend on it. * 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: make sure delayed work run in local cpu commit 0dfc70c33409afc232ef0b9ec210535dfbf9bc61 Author: Keith Busch Date: Thu Oct 15 13:38:48 2015 -0600 NVMe: Fix memory leak on retried commands Resources are reallocated for requeued commands, so unmap and release the iod for the failed command. It's a pretty bad memory leak and causes a kernel hang if you remove a drive because of a busy dma pool. You'll get messages spewing like this: nvme 0000:xx:xx.x: dma_pool_destroy prp list 256, ffff880420dec000 busy and lock up pci and the driver since removal never completes while holding a lock. Cc: stable@vger.kernel.org Cc: # 4.0.x- Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit fc531d9848a06e96280e60e4a5b5168de3ad5c3d Author: Wolfram Sang Date: Thu Oct 15 15:50:15 2015 +0200 MAINTAINERS: add maintainers for Synopsis Designware I2C drivers Those guys already have been helpful in the past and are actively working on this driver, unlike me. Signed-off-by: Wolfram Sang Acked-by: Jarkko Nikula Acked-by: Andy Shevchenko Acked-by: Mika Westerberg MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 17b38fb89055bf5df402980c9546a8b046552f2b Author: Doron Tsur Date: Thu Oct 15 15:01:02 2015 +0300 IB/core: Fix memory corruption in ib_cache_gid_set_default_gid When ib_cache_gid_set_default_gid is called from several threads, updating the table could make find_gid fail, therefore a negative index will be retruned and an invalid table entry will be used. Locking find_gid as well fixes this problem. Fixes: 03db3a2d81e6 ('IB/core: Add RoCE GID table management') Signed-off-by: Doron Tsur Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f05819df10d7b09f6d1eb6f8534a8f68e5a4fe61 Author: David Howells Date: Thu Oct 15 17:21:37 2015 +0100 KEYS: Fix crash when attempt to garbage collect an uninstantiated keyring The following sequence of commands: i=`keyctl add user a a @s` keyctl request2 keyring foo bar @t keyctl unlink $i @s tries to invoke an upcall to instantiate a keyring if one doesn't already exist by that name within the user's keyring set. However, if the upcall fails, the code sets keyring->type_data.reject_error to -ENOKEY or some other error code. When the key is garbage collected, the key destroy function is called unconditionally and keyring_destroy() uses list_empty() on keyring->type_data.link - which is in a union with reject_error. Subsequently, the kernel tries to unlink the keyring from the keyring names list - which oopses like this: BUG: unable to handle kernel paging request at 00000000ffffff8a IP: [] keyring_destroy+0x3d/0x88 ... Workqueue: events key_garbage_collector ... RIP: 0010:[] keyring_destroy+0x3d/0x88 RSP: 0018:ffff88003e2f3d30 EFLAGS: 00010203 RAX: 00000000ffffff82 RBX: ffff88003bf1a900 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 000000003bfc6901 RDI: ffffffff81a73a40 RBP: ffff88003e2f3d38 R08: 0000000000000152 R09: 0000000000000000 R10: ffff88003e2f3c18 R11: 000000000000865b R12: ffff88003bf1a900 R13: 0000000000000000 R14: ffff88003bf1a908 R15: ffff88003e2f4000 ... CR2: 00000000ffffff8a CR3: 000000003e3ec000 CR4: 00000000000006f0 ... Call Trace: [] key_gc_unused_keys.constprop.1+0x5d/0x10f [] key_garbage_collector+0x1fa/0x351 [] process_one_work+0x28e/0x547 [] worker_thread+0x26e/0x361 [] ? rescuer_thread+0x2a8/0x2a8 [] kthread+0xf3/0xfb [] ? kthread_create_on_node+0x1c2/0x1c2 [] ret_from_fork+0x3f/0x70 [] ? kthread_create_on_node+0x1c2/0x1c2 Note the value in RAX. This is a 32-bit representation of -ENOKEY. The solution is to only call ->destroy() if the key was successfully instantiated. Reported-by: Dmitry Vyukov Signed-off-by: David Howells Tested-by: Dmitry Vyukov security/keys/gc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 4f1d841475e1f6e9e32496dda11215db56f4ea73 Author: Thierry Reding Date: Fri Oct 9 17:51:47 2015 +0200 ARM: tegra: Comment out gpio-ranges properties While the addition of these properties is technically correct it unveils a bug with deferred probe. The problem is that the presence of the gpio- range property causes the gpio-tegra driver to defer probe (it needs the pinctrl driver to be ready). That's technically correct, but it causes a couple of issues: - The keyboard on Chromebooks stops working. The reason for that is that the gpio-tegra device has not registered an IRQ domain by the time the EC SPI device is registered, hence the interrupt number resolves to 0. This is technically a bug in the SPI core, since it should really resolve the interrupt at probe time and defer if the IRQ domain isn't available yet. This is similar to what's done for I2C and platform device already. - The gpio-tegra device deferring probe means that it is moved to the end of the dpm_list. This list defines the suspend/resume order for devices. However the core lacks a way to move all users of the gpio-tegra device to the end of the dpm_list at the same time. This in turn results in a subtle bug on Jetson TK1, where the gpio-keys device is used to expose the power key as input. The power key is a convenient way to wake the system from suspend. Interestingly, the gpio-keys device ends up getting probed at a point after gpio-tegra has been probed successfully from having been deferred earlier. As such the driver doesn't need to defer the probe itself, and hence the device isn't moved to the end of the dpm_list. This causes the gpio-tegra device to be suspended before gpio-keys, which in turn leaves gpio-keys unable to wake the system from suspend. There are patches in the works to fix both of the above issues, but they are too involved to make it into v4.3, so in the meantime let's fix the regressions by commenting out the gpio-ranges properties until the fixes have landed. Signed-off-by: Thierry Reding Signed-off-by: Arnd Bergmann arch/arm/boot/dts/tegra114.dtsi | 2 ++ arch/arm/boot/dts/tegra124.dtsi | 2 ++ arch/arm/boot/dts/tegra20.dtsi | 2 ++ arch/arm/boot/dts/tegra30.dtsi | 2 ++ 4 files changed, 8 insertions(+) commit b02176f30cd30acccd3b633ab7d9aed8b5da52ff Author: Tejun Heo Date: Tue Sep 8 12:20:22 2015 -0400 block: don't release bdi while request_queue has live references bdi's are initialized in two steps, bdi_init() and bdi_register(), but destroyed in a single step by bdi_destroy() which, for a bdi embedded in a request_queue, is called during blk_cleanup_queue() which makes the queue invisible and starts the draining of remaining usages. A request_queue's user can access the congestion state of the embedded bdi as long as it holds a reference to the queue. As such, it may access the congested state of a queue which finished blk_cleanup_queue() but hasn't reached blk_release_queue() yet. Because the congested state was embedded in backing_dev_info which in turn is embedded in request_queue, accessing the congested state after bdi_destroy() was called was fine. The bdi was destroyed but the memory region for the congested state remained accessible till the queue got released. a13f35e87140 ("writeback: don't embed root bdi_writeback_congested in bdi_writeback") changed the situation. Now, the root congested state which is expected to be pinned while request_queue remains accessible is separately reference counted and the base ref is put during bdi_destroy(). This means that the root congested state may go away prematurely while the queue is between bdi_dstroy() and blk_cleanup_queue(), which was detected by Andrey's KASAN tests. The root cause of this problem is that bdi doesn't distinguish the two steps of destruction, unregistration and release, and now the root congested state actually requires a separate release step. To fix the issue, this patch separates out bdi_unregister() and bdi_exit() from bdi_destroy(). bdi_unregister() is called from blk_cleanup_queue() and bdi_exit() from blk_release_queue(). bdi_destroy() is now just a simple wrapper calling the two steps back-to-back. While at it, the prototype of bdi_destroy() is moved right below bdi_setup_and_register() so that the counterpart operations are located together. Signed-off-by: Tejun Heo Fixes: a13f35e87140 ("writeback: don't embed root bdi_writeback_congested in bdi_writeback") Cc: stable@vger.kernel.org # v4.2+ Reported-and-tested-by: Andrey Konovalov Link: http://lkml.kernel.org/g/CAAeHK+zUJ74Zn17=rOyxacHU18SgCfC6bsYW=6kCY5GXJBwGfQ@mail.gmail.com Reviewed-by: Jan Kara Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe block/blk-core.c | 2 +- block/blk-sysfs.c | 1 + include/linux/backing-dev.h | 6 +++++- mm/backing-dev.c | 12 +++++++++++- 4 files changed, 18 insertions(+), 3 deletions(-) commit 81c04b943872e0332872df18cec1dec89b178b4d Author: Christoph Hellwig Date: Mon Oct 12 21:23:39 2015 +0200 nvme: use an integer value to Linux errno values Use a separate integer variable to hold the signed Linux errno values we pass back to the block layer. Note that for pass through commands those might still be NVMe values, but those fit into the int as well. Fixes: f4829a9b7a61: ("blk-mq: fix racy updates of rq->errors") Reported-by: Dan Carpenter Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit a787f40a9a29674d1b9146b7a35e491e7a571152 Merge: 2e4e5da d8e1f5e Author: Arnd Bergmann Date: Thu Oct 15 17:13:26 2015 +0200 Merge tag 'omap-for-v4.3/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Merge "Fixes for omap against v4.3-rc5" from Tony Lindgren: - Regulator fix for beagle-x15 to fix HDMI without a SD card being inserted - GPMC fix for showing proper timings and to allow enabling debug options that somehow was unselectable earlier - Add minimal documentation for new MMC1 dependency on REGULATOR_PBIAS as it may not be obvious for people with targeted .config files * tag 'omap-for-v4.3/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: Documentation: ARM: List new omap MMC requirements memory: omap-gpmc: dump "before" state before first modification memory: omap-gpmc: Fix unselectable debug option for GPMC ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on commit 2e4e5da55afaf9315f2398e85424fd3824459220 Author: Masahiro Yamada Date: Thu Oct 15 20:32:05 2015 +0900 ARM: dts: uniphier: fix IRQ number for devices on PH1-LD6b ref board The IRQ signal from external devices on this board is connected to the XIRQ4 pin of the SoC. The IRQ number should be 52, not 50. Fixes: a5e921b4771f ("ARM: dts: uniphier: add ProXstream2 and PH1-LD6b SoC/board support") Signed-off-by: Masahiro Yamada Signed-off-by: Arnd Bergmann arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb659882cc6482bd2e32ec0ab8ab7afeda649413 Author: Will Deacon Date: Mon Oct 12 14:48:39 2015 +0100 drivers/perf: arm_pmu: avoid CPU device_node reference leak of_cpu_device_node_get increments the reference count on the CPU device_node, so we must take care to of_node_put once we've finished with it. This patch fixes the perf IRQ probing code to avoid the leak. Cc: Sudeep Holla Cc: Mark Rutland Signed-off-by: Will Deacon Signed-off-by: Arnd Bergmann drivers/perf/arm_pmu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit a0bcbe969f564d1ec08658170dda72a1b7e9053a Author: Pawel Moll Date: Thu Oct 15 14:32:46 2015 +0100 bus: arm-ccn: Fix irq affinity setting on CPU migration When PMU context is migrating between CPUs, interrupt affinity is set as well. Only this should not happen when the CCN interrupt is not being used at all (the driver is using a hrtimer tick instead). Fixed now. Cc: # 4.2+ Signed-off-by: Pawel Moll Signed-off-by: Arnd Bergmann drivers/bus/arm-ccn.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b20519fd5007908c6a816cab1b9db911915e9fbd Author: Pawel Moll Date: Thu Oct 15 14:32:45 2015 +0100 bus: arm-ccn: Handle correctly no-more-cpus case When migrating events the driver picks another cpu using cpumask_any_but() function, which returns value >= nr_cpu_ids when there is none available, not a negative value as the code assumed. Fixed now. Reported-by: Dan Carpenter Signed-off-by: Pawel Moll Signed-off-by: Arnd Bergmann drivers/bus/arm-ccn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f42d79ab67322e51b92dd7aa965e310c71352a64 Author: Junichi Nomura Date: Wed Oct 14 05:02:15 2015 +0000 blk-mq: fix use-after-free in blk_mq_free_tag_set() tags is freed in blk_mq_free_rq_map() and should not be used after that. The problem doesn't manifest if CONFIG_CPUMASK_OFFSTACK is false because free_cpumask_var() is nop. tags->cpumask is allocated in blk_mq_init_tags() so it's natural to free cpumask in its counter part, blk_mq_free_tags(). Fixes: f26cdc8536ad ("blk-mq: Shared tag enhancements") Signed-off-by: Jun'ichi Nomura Cc: Keith Busch Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe block/blk-mq-tag.c | 1 + block/blk-mq.c | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) commit d14f6fced5f9360edca5a1325ddb7077aab1203b Author: Jay Cornwall Date: Wed Sep 16 14:10:03 2015 -0500 iommu/amd: Fix BUG when faulting a PROT_NONE VMA handle_mm_fault indirectly triggers a BUG in do_numa_page when given a VMA without read/write/execute access. Check this condition in do_fault. do_fault -> handle_mm_fault -> handle_pte_fault -> do_numa_page mm/memory.c 3147 static int do_numa_page(struct mm_struct *mm, struct vm_area_struct *vma, .... 3159 /* A PROT_NONE fault should not end up here */ 3160 BUG_ON(!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))); Signed-off-by: Jay Cornwall Cc: # v4.1+ Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_v2.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f6c7aba47bcc0b1cc2085c8d8af80f8c02f28269 Author: Michel Dänzer Date: Thu Oct 8 17:48:04 2015 +0900 drm/amdgpu: Keep the pflip interrupts always enabled v7 This fixes flickering issues caused by prematurely firing pflip interrupts. v2 (chk): add commit message, fix DCE V10/V11 and DM as well v3: Re-enable pflip interrupt wherever we re-enable a CRTC v4: Enable pflip interrupt in DAL as well v5: drop DAL changes for upstream v6: (agd): only enable interrupts on crtcs that exist v7: (agd): integrate suggestions from Michel Signed-off-by: Michel Dänzer Signed-off-by: Christian König Reviewed-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 -- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 30 +++++++++++++++++++++++++++-- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 30 +++++++++++++++++++++++++++-- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 30 +++++++++++++++++++++++++++-- 4 files changed, 84 insertions(+), 8 deletions(-) commit 80c083c5e4dc35fa37c01f000b1393c51294b9de Author: Alex Deucher Date: Mon Oct 12 10:38:02 2015 -0400 drm/amdgpu: adjust default dispclk (v2) Set the default to 600Mhz if it's not set in the bios, and bump the default to 600Mhz if it's lower than that. Port of radeon commit: 9368931db826d57b6b88b3145a00276626b48df0 v2: clean up the code a bit bug: https://bugs.freedesktop.org/show_bug.cgi?id=91896 Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 53ca376eec4eb635e2249c8e89093f499e180731 Author: Ido Schimmel Date: Thu Oct 15 08:21:55 2015 +0200 mlxsw: core: Fix race condition in __mlxsw_emad_transmit Under certain conditions EMAD responses can be returned from the device even before setting trans_active. This will cause the EMAD Rx listener to drop the EMAD response - as there are no active transactions - and timeouts will be generated. Fix this by setting trans_active before transmitting the EMAD skb. 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/core.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 36d48fb5766aee9717e429f772046696b215282d Author: Wolfram Sang Date: Fri Oct 9 10:39:24 2015 +0100 i2c: designware-platdrv: enable RuntimePM before registering to the core The core may register clients attached to this master which may use funtionality from the master. So, RuntimePM must be enabled before, otherwise this will fail. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang Acked-by: Mika Westerberg Cc: stable@kernel.org drivers/i2c/busses/i2c-designware-platdrv.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit eadd709f5d2e8aebb1b7bf49460e97a68d81a9b0 Author: Wolfram Sang Date: Sat Oct 10 08:24:23 2015 +0100 i2c: s3c2410: enable RuntimePM before registering to the core The core may register clients attached to this master which may use funtionality from the master. So, RuntimePM must be enabled before, otherwise this will fail. While here, move drvdata, too. Signed-off-by: Wolfram Sang Tested-by: Krzysztof Kozlowski Acked-by: Kukjin Kim Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-s3c2410.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 4f7effddf4549d57114289f273710f077c4c330a Author: Wolfram Sang Date: Fri Oct 9 10:39:25 2015 +0100 i2c: rcar: enable RuntimePM before registering to the core The core may register clients attached to this master which may use funtionality from the master. So, RuntimePM must be enabled before, otherwise this will fail. While here, move drvdata, too. Reported-by: Geert Uytterhoeven Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-rcar.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 74cedd30522819d87131715ca0e7d041748b2721 Author: Kieran Bingham Date: Mon Oct 12 21:54:43 2015 +0100 i2c: return probe deferred status on dev_pm_domain_attach A change of return status was introduced in commit 3fffd1283927 ("i2c: allow specifying separate wakeup interrupt in device tree") The commit prevents the defer status being passed up the call stack appropriately when dev_pm_domain_attach returns -EPROBE_DEFER. Catch the PROBE_DEFER and clear up the IRQ wakeup status Signed-off-by: Kieran Bingham Fixes: 3fffd1283927 ("i2c: allow specifying separate wakeup interrupt in device tree") Reviewed-by: Dmitry Torokhov Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit db347f1a5304d68c68c52f19971924b1e5842f3c Author: Marcin Wojtas Date: Thu Oct 15 03:17:08 2015 +0200 ARM: mvebu: correct a385-db-ap compatible string This commit enables standby support on Armada 385 DB-AP board, because the PM initalization routine requires "marvell,armada380" compatible string for all Armada 38x-based platforms. Beside the compatible "marvell,armada38x" was wrong and should be fixed in the stable kernels too. [gregory.clement@free-electrons.com: add information, about the fixes] Fixes: e5ee12817e9ea ("ARM: mvebu: Add Armada 385 Access Point Development Board support") Signed-off-by: Marcin Wojtas Signed-off-by: Gregory CLEMENT Cc: arch/arm/boot/dts/armada-385-db-ap.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dde4b5ae65de659b9ec64bafdde0430459fcb495 Author: Jon Paul Maloy Date: Wed Oct 14 09:23:18 2015 -0400 tipc: move fragment importance field to new header position In commit e3eea1eb47a ("tipc: clean up handling of message priorities") we introduced a field in the packet header for keeping track of the priority of fragments, since this value is not present in the specified protocol header. Since the value so far only is used at the transmitting end of the link, we have not yet officially defined it as part of the protocol. Unfortunately, the field we use for keeping this value, bits 13-15 in in word 5, has turned out to be a poor choice; it is already used by the broadcast protocol for carrying the 'network id' field of the sending node. Since packet fragments also need to be transported across the broadcast protocol, the risk of conflict is obvious, and we see this happen when we use network identities larger than 2^13-1. This has escaped our testing because we have so far only been using small network id values. We now move this field to bits 0-2 in word 9, a field that is guaranteed to be unused by all involved protocols. Fixes: e3eea1eb47a ("tipc: clean up handling of message priorities") Signed-off-by: Jon Maloy Acked-by: Ying Xue Signed-off-by: David S. Miller net/tipc/msg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 077cb37fcf6f00a45f375161200b5ee0cd4e937b Author: Joe Perches Date: Wed Oct 14 01:09:40 2015 -0700 ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings It seems that kernel memory can leak into userspace by a kmalloc, ethtool_get_strings, then copy_to_user sequence. Avoid this by using kcalloc to zero fill the copied buffer. Signed-off-by: Joe Perches Acked-by: Ben Hutchings Signed-off-by: David S. Miller net/core/ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ef41a2cedb14871203ee28d7a5cb5aafe4e97439 Merge: 0f8b8e2 4633dfc Author: David S. Miller Date: Wed Oct 14 18:34:25 2015 -0700 Merge tag 'mac80211-for-davem-2015-10-13' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Like last time, we have two small fixes: * fast-xmit was not doing powersave filter clearing correctly, disable fast-xmit while any such operations are still pending * a debugfs file was broken due to some infrastructure changes ==================== Signed-off-by: David S. Miller commit ae491542cbbbcca0ec8938c37d4079a985e58440 Author: Dave Airlie Date: Wed Oct 14 18:51:17 2015 +1000 drm/dp/mst: make mst i2c transfer code more robust. This zeroes the msg so no random stack data ends up getting sent, it also limits the function to not accepting > 4 i2c msgs. Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 3 ++- include/drm/drm_dp_mst_helper.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit bc8c131ccdd62d4ed4f33c6b50f92907e7c32dee Author: Dave Airlie Date: Thu Oct 15 09:04:21 2015 +1000 drm/radeon: attach tile property to mst connector This allows tiled monitors to work with radeon once mst is enabled. Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/radeon/radeon_dp_mst.c | 1 + 1 file changed, 1 insertion(+) commit 62fcce91049a9681fc31d068ffcfaec8d168a857 Author: Lv Zheng Date: Wed Oct 14 13:53:57 2015 +0800 ACPICA: Tables: Fix FADT dependency regression Some logics actually relying on the existence of FADT, currently relies on the number of loaded tables. This false dependency can easily trigger regressions. One of them has been introduced by commit 8ec3f459073e (ACPICA: Tables: Fix global table list issues by removing fixed table). The commit changing the fixed table indexes results in the change of FADT table index, originally, it was 3 (thus the installed table count should be greater than 4), while currently it is 0 (and the installed table count may be 3). This patch fixes this regression by cleaning up the code. Lv Zheng. Link: https://bugzilla.kernel.org/show_bug.cgi?id=105351 Fixes: 8ec3f459073e (ACPICA: Tables: Fix global table list issues by removing fixed table) Reported-and-tested-by: Meelis Roos Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 1 + drivers/acpi/acpica/actables.h | 4 +--- drivers/acpi/acpica/evxfevnt.c | 2 +- drivers/acpi/acpica/tbfadt.c | 10 +++++----- drivers/acpi/acpica/tbutils.c | 26 ++------------------------ 5 files changed, 10 insertions(+), 33 deletions(-) commit f9e5ca86eeaae430e70b05ec312372dca1055d8d Author: Carlo Caione Date: Thu Oct 1 12:52:40 2015 +0200 ARM: meson6: DTS: Fix wrong reg mapping and IRQ numbers The DTS erronously uses the wrong reg mapping and IRQ numbers for some UART, WDT and timer nodes. Fix this. Reported-by: John Wehle Signed-off-by: Carlo Caione Signed-off-by: Arnd Bergmann arch/arm/boot/dts/meson.dtsi | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit e79b202c632f24f49f2eb9459b88b5fd9e332263 Author: Stephen Boyd Date: Wed Oct 14 11:23:09 2015 -0700 Partially revert "clk: mvebu: Convert to clk_hw based provider APIs" This partially reverts commit eca61c9ff2588e1df373e61078e1874976315839. Thomas reports that it causes regressions on Armada XP devices. This is because of_clk_get_parent_name() relies on the property 'clock-output-names' to resolve the name of a clock's parent, without trying to get the clock from the framework and call __clk_get_name(). Given that Armada XP devices don't have the 'clock-output-names' property, of_clk_get_parent_name() returns the name of the node which doesn't match the actual parent clock's name at all, causing CPU clocks to never link up with their parents. Reported-by: Thomas Petazzoni Signed-off-by: Stephen Boyd drivers/clk/mvebu/clk-cpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cfed1e3de4764fb5b6a02c93ec246424b3bffd21 Merge: 9e07f98 b10d92a Author: Linus Torvalds Date: Wed Oct 14 10:01:32 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "Bug fixes for system management mode emulation. The first two patches fix SMM emulation on Nehalem processors. The others fix some cases that became apparent as work progressed on the firmware side" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: x86: fix RSM into 64-bit protected mode KVM: x86: fix previous commit for 32-bit KVM: x86: fix SMI to halted VCPU KVM: x86: clean up kvm_arch_vcpu_runnable KVM: x86: map/unmap private slots in __x86_set_memory_region KVM: x86: build kvm_userspace_memory_region in x86_set_memory_region commit 9e07f98ab76fdeab5629f2f6c977f870a414f1f9 Merge: 5b5f145 1b52e50 Author: Linus Torvalds Date: Wed Oct 14 09:47:38 2015 -0700 Merge tag 'mfd-fixes-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD fixes from Lee Jones: "Bug Fixes: - Return correct error code i.e. not zero - Fix build error when !CONFIG_PM_SLEEP" * tag 'mfd-fixes-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: max77843: Fix max77843_chg_init() return on error mfd: intel-lpss: Fix build error when !CONFIG_PM_SLEEP commit 5c6dcd7f3b26736a88593586fbeec28b6a1ea78d Author: Maxime Ripard Date: Wed Oct 7 18:39:40 2015 +0100 MAINTAINERS: Update Allwinner entry and add new maintainer Add Chen-Yu Tsai as a co-maintainer to the ARM sunxi support. While we are doing so, also update the entry for new SoCs. Signed-off-by: Maxime Ripard Signed-off-by: Arnd Bergmann MAINTAINERS | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 83bf6b13834d9c926905e45cdfda23fe218fc598 Author: Linus Walleij Date: Tue Oct 13 19:46:54 2015 +0200 ARM: ux500: modify initial levelshifter status commit 1d8aca9df612f5751892fb2642d72536f2f48fd0 "ARM: ux500: fix MMC/SD card regression" fixed broken the level shifter: it should be default ON but became default OFF. Fixes: 1d8aca9df612 "ARM: ux500: fix MMC/SD card regression" Reported-and-tested-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Arnd Bergmann arch/arm/boot/dts/ste-hrefv60plus.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6391074598442b8a8d33e2cfdf277d5568b57f2d Author: Arnd Bergmann Date: Mon Oct 12 15:44:49 2015 +0200 ARM: pxa: fix pxa3xx DFI lockup hack Some recently added code to avoid a bug introduced a build error when CONFIG_PM is disabled and a macro is hidden: arch/arm/mach-pxa/pxa3xx.c: In function 'pxa3xx_init': arch/arm/mach-pxa/pxa3xx.c:439:3: error: 'NDCR' undeclared (first use in this function) NDCR = (NDCR & ~NDCR_ND_ARB_EN) | NDCR_ND_ARB_CNTL; ^ This moves the macro outside of the #ifdef so it can be referenced correctly. Signed-off-by: Arnd Bergmann Fixes: adf3442cc890 ("ARM: pxa: fix DFI bus lockups on startup") Acked-by: Robert Jarzmik arch/arm/mach-pxa/pxa3xx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit e639932e01c096eb280086401d8e3a597e41a3b1 Merge: 8c80385 178b2d0 Author: Arnd Bergmann Date: Wed Oct 14 17:13:20 2015 +0200 Merge tag 'imx-fixes-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes Pull "The i.MX fixes for 4.3, 2nd round:" from Shawn Guo: It includes a single fix for i.MX7D, which corrects the base address of UART2 in device tree. * tag 'imx-fixes-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: imx7d: Fix UART2 base address commit 8c803854ba06bcd86755c8754943041b110dd537 Merge: d51664a 1f744fd Author: Arnd Bergmann Date: Wed Oct 14 17:12:10 2015 +0200 Merge tag 'berlin-fixes-for-4.3-1' of git://git.infradead.org/users/hesselba/linux-berlin into fixes Merge "Marvell Berlin fixes for v4.3 take 1" from Sebastian Hesselbarth: - BG2Q USB PHY compatible fix (also tagged for stable v4.2) * tag 'berlin-fixes-for-4.3-1' of git://git.infradead.org/users/hesselba/linux-berlin: ARM: dts: berlin: change BG2Q's USB PHY compatible commit d51664ab9e06225a039487990a3b051fed795137 Merge: 25cb62b d836ace6 Author: Arnd Bergmann Date: Wed Oct 14 17:10:55 2015 +0200 Merge tag 'mvebu-fixes-4.3-1' of git://git.infradead.org/linux-mvebu into fixes Merge "mvebu fixes for 4.3 (part 1)" from Gregory CLEMENT: DSA fixes for orion platform * tag 'mvebu-fixes-4.3-1' of git://git.infradead.org/linux-mvebu: ARM: orion: Fix DSA platform device after mvmdio conversion commit b10d92a54dac25a6152f1aa1ffc95c12908035ce Author: Paolo Bonzini Date: Wed Oct 14 15:25:52 2015 +0200 KVM: x86: fix RSM into 64-bit protected mode In order to get into 64-bit protected mode, you need to enable paging while EFER.LMA=1. For this to work, CS.L must be 0. Currently, we load the segments before CR0 and CR4, which means that if RSM returns into 64-bit protected mode CS.L is already 1 and everything breaks. Luckily, CS.L=0 is always the case when executing RSM, because it is forbidden to execute RSM from 64-bit protected mode. Hence it is enough to load CR0 and CR4 first, and only then the segments. Fixes: 660a5d517aaab9187f93854425c4c63f4a09195c Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 25188b9986cf6b0cadcf1bc1d1693a2e9c50ed47 Author: Paolo Bonzini Date: Wed Oct 14 15:51:08 2015 +0200 KVM: x86: fix previous commit for 32-bit Unfortunately I only noticed this after pushing. Fixes: f0d648bdf0a5bbc91da6099d5282f77996558ea4 Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a53554e12e98d1759205afd7b8e9e2ea0936f48 Author: Kővágó, Zoltán Date: Mon Oct 12 15:13:56 2015 +0100 x86/efi: Fix multiple GOP device support When multiple GOP devices exists, but none of them implements ConOut, the code should just choose the first GOP (according to the comments). But currently 'fb_base' will refer to the last GOP, while other parameters to the first GOP, which will likely result in a garbled display. I can reliably reproduce this bug using my ASRock Z87M Extreme4 motherboard with CSM and integrated GPU disabled, and two PCIe video cards (NVidia GT640 and GTX980), booting from efi-stub (booting from grub works fine). On the primary display the ASRock logo remains and on the secondary screen it is garbled up completely. Signed-off-by: Kővágó, Zoltán Signed-off-by: Matt Fleming Cc: Cc: Linus Torvalds Cc: Matthew Garrett Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1444659236-24837-2-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar arch/x86/boot/compressed/eboot.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 0f8b8e28fb3241f9fd82ce13bac2b40c35e987e0 Author: Jon Paul Maloy Date: Tue Oct 13 12:41:51 2015 -0400 tipc: eliminate risk of stalled link synchronization In commit 6e498158a827 ("tipc: move link synch and failover to link aggregation level") we introduced a new mechanism for performing link failover and synchronization. We have now detected a bug in this mechanism. During link synchronization we use the arrival of any packet on the tunnel link to trig a check for whether it has reached the synchronization point or not. This has turned out to be too permissive, since it may cause an arriving non-last SYNCH packet to end the synch state, just to see the next SYNCH packet initiate a new synch state with a new, higher synch point. This is not fatal, but should be avoided, because it may significantly extend the synchronization period, while at the same time we are not allowed to send NACKs if packets are lost. In the worst case, a low-traffic user may see its traffic stall until a LINK_PROTOCOL state message trigs the link to leave synchronization state. At the same time, LINK_PROTOCOL packets which happen to have a (non- valid) sequence number lower than the tunnel link's rcv_nxt value will be consistently dropped, and will never be able to resolve the situation described above. We fix this by exempting LINK_PROTOCOL packets from the sequence number check, as they should be. We also reduce (but don't completely eliminate) the risk of entering multiple synchronization states by only allowing the (logically) first SYNCH packet to initiate a synchronization state. This works independently of actual packet arrival order. Fixes: commit 6e498158a827 ("tipc: move link synch and failover to link aggregation level") Signed-off-by: Jon Maloy Acked-by: Ying Xue Signed-off-by: David S. Miller net/tipc/node.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit eb93ce2cb7a85368c1f1733df35aab87152db56f Author: Will Deacon Date: Wed Oct 14 13:20:36 2015 +0100 arm64: compat: wire up new syscalls Commit 208473c1f3ac ("ARM: wire up new syscalls") hooked up the new userfaultfd and membarrier syscalls for ARM, so do the same for our compat syscall table in arm64. Signed-off-by: Will Deacon arch/arm64/include/asm/unistd.h | 2 +- arch/arm64/include/asm/unistd32.h | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit 18e9345b0db9fe7bd18c3c43967789fe0a2fdb52 Author: Maarten Lankhorst Date: Wed Sep 23 16:11:41 2015 +0200 drm/i915: Add primary plane to mask if it's visible This fixes the warnings like "plane A assertion failure, should be disabled but not" that on the initial modeset during boot. This can happen if the primary plane is enabled by the firmware, but inheriting it fails because the DMAR is active or for other reasons. Most likely caused by commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d Author: Maarten Lankhorst Date: Mon Jun 1 12:49:54 2015 +0200 drm/i915: update plane state during init This is a new version of commit 721a09f7393de6c28a07516dccd654c6e995944a Author: Maarten Lankhorst Date: Tue Sep 15 14:28:54 2015 +0200 drm/i915: Add primary plane to mask if it's visible That was reverted in order to facilitate easier backporting of some commits from -next to v4.3. Reported-by: Andreas Reis Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429 Reported-and-tested-by: Emil Renner Berthing Tested-by: Andreas Reis Signed-off-by: Daniel Vetter [Jani: cherry-picked from -next to v4.3] Acked-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 0836e6d8c47416d6eb60bb68a5d7213c0c2d0d29 Author: Ville Syrjälä Date: Thu Sep 10 18:59:08 2015 +0300 drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc() Move the sprite/cursor plane disabling to occur in intel_sanitize_crtc() where it belongs instead of doing it in intel_modeset_readout_hw_state(). The plane disabling was first added in 4cf0ebbd4fafbdf8e6431dbb315e5511c3efdc3b drm/i915: Rework plane readout. I got the idea from some patches from Partik and/or Maarten but those moved also the plane state readout to intel_sanitize_crtc() which isn't quite right in my opinion. Cc: Maarten Lankhorst Cc: Patrik Jakobsson Signed-off-by: Ville Syrjälä References: https://bugs.freedesktop.org/show_bug.cgi?id=91910 Reviewed-by: Patrik Jakobsson Signed-off-by: Daniel Vetter [Jani: cherry-picked from -next to v4.3] Acked-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 44 ++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 24 deletions(-) commit c4816c7389d8dbcad036be7e5a34584289d9f590 Author: Ville Syrjälä Date: Thu Sep 10 18:59:07 2015 +0300 drm/i915: Assign hwmode after encoder state readout The dotclock is often calculated in encoder .get_config(), so we shouldn't copy the adjusted_mode to hwmode until we have read out the dotclock. Gets rid of some warnings like these: [drm:drm_calc_timestamping_constants [drm]] *ERROR* crtc 21: Can't calculate constants, dotclock = 0! [drm:i915_get_vblank_timestamp] crtc 0 is disabled v2: Steal Maarten's idea to move crtc->mode etc. assignment too Cc: Maarten Lankhorst Cc: Patrik Jakobsson Signed-off-by: Ville Syrjälä Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91428 Reviewed-by: Patrik Jakobsson Signed-off-by: Daniel Vetter [Jani: cherry-picked from -next to v4.3] Acked-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 57 +++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 27 deletions(-) commit 2e2edebefceef201624dcc323a1f7761e0040cf5 Author: Jani Nikula Date: Wed Oct 14 11:29:01 2015 +0300 Revert "drm/i915: Add primary plane to mask if it's visible" This reverts commit 721a09f7393de6c28a07516dccd654c6e995944a. There is nothing wrong with the commit per se. We had two versions of the commit, one in -next headed for v4.4 and this one for v4.3. Turns out we'll need to backport more fixes from -next, and they conflict with the v4.3 version. It gets messy. It will be easiest to revert this one, and backport all the relevant commits from -next without modifications; they apply cleanly after this revert. Requested-by: Joseph Yasi References: https://bugs.freedesktop.org/show_bug.cgi?id=91910#c4 Cc: Maarten Lankhorst Acked-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit a487c03fa28286d0de42558da1aa57d82d54fc4d Author: Dudley Du Date: Mon Oct 12 10:16:16 2015 -0700 Input: cyapa - fix the copy paste error on electrodes_rx value Fix the copy paste error on the electrodes_rx value set code which will cause the electrodes_rx value be always set to the value of electrodes_y. Reported-by: Sudip Mukherjee Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa_gen6.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit dc6c5fb3b514221f2e9d21ee626a9d95d3418dff Author: Chris Mason Date: Tue Oct 13 14:06:48 2015 -0400 btrfs: fix use after free iterating extrefs The code for btrfs inode-resolve has never worked properly for files with enough hard links to trigger extrefs. It was trying to get the leaf out of a path after freeing the path: btrfs_release_path(path); leaf = path->nodes[0]; item_size = btrfs_item_size_nr(leaf, slot); The fix here is to use the extent buffer we cloned just a little higher up to avoid deadlocks caused by using the leaf in the path. Signed-off-by: Chris Mason cc: stable@vger.kernel.org # v3.7+ cc: Mark Fasheh Reviewed-by: Filipe Manana Reviewed-by: Mark Fasheh fs/btrfs/backref.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 8eb934591f8bf584969454a658f629cd06e59f3a Author: David Sterba Date: Mon Oct 12 16:55:54 2015 +0200 btrfs: check unsupported filters in balance arguments We don't verify that all the balance filter arguments supplemented by the flags are actually known to the kernel. Thus we let it silently pass and do nothing. At the moment this means only the 'limit' filter, but we're going to add a few more soon so it's better to have that fixed. Also in older stable kernels so that it works with newer userspace tools. Cc: stable@vger.kernel.org # 3.16+ Signed-off-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 5 +++++ fs/btrfs/volumes.h | 8 ++++++++ 2 files changed, 13 insertions(+) commit a98f1b78ecf325bf29c9d3d1eb38cbc9340000af Author: Ulf Hansson Date: Tue Oct 13 16:10:28 2015 +0200 PM / Domains: Fix validation of latency constraints in genpd governor Commit ba2bbfbf6307 (PM / Domains: Remove intermediate states from the power off sequence) changed the power off sequence in genpd. That also required some updates regarding the validation of latency constraints in the genpd governor. Unfortunate that wasn't covered, so let's fix this. From a runtime PM and latency point of view, we need to consider the worst case scenario while validating latency constraints. That's typically when a call to pm_runtime_get_sync() needs to wait for a ongoing runtime suspend operation to be carried out, as it then also needs to wait for the device to be runtime resumed again. The above mentioned commit made the genpd governor's ->stop_ok() callback responsible of validating genpd's device's runtime suspend/resume latency. In other words, the constraint needs to be validated towards the relevant latencies present in genpd's ->runtime_suspend|resume() callbacks. Earlier, that included latencies from the ->stop|start() callbacks, but as ->save|restore_state() are now also being invoked from genpd's ->runtime_suspend|resume() and to comply with the worst case scenario, let's take also those latencies into account. Fixes: ba2bbfbf6307 (PM / Domains: Remove intermediate states from the power off sequence) Signed-off-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki drivers/base/power/domain_governor.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit 0b5c9279e568d90903acedc2b9b832d8d78e8288 Author: Christoph Lameter Date: Sun Oct 11 18:49:42 2015 -0500 IB/ipoib: For sendonly join free the multicast group on leave When we leave the multicast group on expiration of a neighbor we do not free the mcast structure. This results in a memory leak that causes ib_dealloc_pd to fail and print a WARN_ON message and backtrace. Fixes: bd99b2e05c4d (IB/ipoib: Expire sendonly multicast joins) Signed-off-by: Christoph Lameter Tested-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 1 + drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +++- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) commit ba2374fd2bf379f933773811fdb06cb6a5445f41 Author: Christian Zander Date: Wed Jun 10 09:41:45 2015 -0700 iommu/vt-d: fix range computation when making room for large pages In preparation for the installation of a large page, any small page tables that may still exist in the target IOV address range are removed. However, if a scatter/gather list entry is large enough to fit more than one large page, the address space for any subsequent large pages is not cleared of conflicting small page tables. This can cause legitimate mapping requests to fail with errors of the form below, potentially followed by a series of IOMMU faults: ERROR: DMA PTE for vPFN 0xfde00 already set (to 7f83a4003 not 7e9e00083) In this example, a 4MiB scatter/gather list entry resulted in the successful installation of a large page @ vPFN 0xfdc00, followed by a failed attempt to install another large page @ vPFN 0xfde00, due to the presence of a pointer to a small page table @ 0x7f83a4000. To address this problem, compute the number of large pages that fit into a given scatter/gather list entry, and use it to derive the last vPFN covered by the large page(s). Cc: stable@vger.kernel.org Signed-off-by: Christian Zander Signed-off-by: David Woodhouse drivers/iommu/intel-iommu.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 5b5f1455272e23f4e7889cec37228802d8d01adf Merge: 6006d452 3be7f32 Author: Linus Torvalds Date: Tue Oct 13 11:31:03 2015 -0700 Merge tag 'nfsd-4.3-2' of git://linux-nfs.org/~bfields/linux Pull nfsd fixes from Bruce Fields: "Two nfsd fixes, one for an RDMA crash, one for a pnfs/block protocol bug" * tag 'nfsd-4.3-2' of git://linux-nfs.org/~bfields/linux: svcrdma: Fix NFS server crash triggered by 1MB NFS WRITE nfsd/blocklayout: accept any minlength commit 6006d4521b158e5ef48620e8c9028bba91bf985d Merge: 7554225 8996eaf Author: Linus Torvalds Date: Tue Oct 13 10:18:54 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes the following issues: - Fix AVX detection to prevent use of non-existent AESNI. - Some SPARC ciphers did not set their IV size which may lead to memory corruption" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: ahash - ensure statesize is non-zero crypto: camellia_aesni_avx - Fix CPU feature checks crypto: sparc - initialize blkcipher.ivsize commit 75542253127d4e4003a5542189c53ff85e4b27b2 Merge: 06d1ee3 5adad99 Author: Linus Torvalds Date: Tue Oct 13 10:09:59 2015 -0700 Merge tag 'iommu-fixes-v4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU fixes from Joerg Roedel: "A few fixes piled up: - Fix for a suspend/resume issue where PCI probing code overwrote dev->irq for the MSI irq of the AMD IOMMU. - Fix for a kernel crash when a 32 bit PCI device was assigned to a KVM guest. - Fix for a possible memory leak in the VT-d driver - A couple of fixes for the ARM-SMMU driver" * tag 'iommu-fixes-v4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/amd: Fix NULL pointer deref on device detach iommu/amd: Prevent binding other PCI drivers to IOMMU PCI devices iommu/vt-d: Fix memory leak in dmar_insert_one_dev_info() iommu/arm-smmu: Use correct address mask for CMD_TLBI_S2_IPA iommu/arm-smmu: Ensure IAS is set correctly for AArch32-capable SMMUs iommu/io-pgtable-arm: Don't use dma_to_phys() commit 06d1ee32a4d25356a710b49d5e95dbdd68bdf505 Merge: 25cb62b 7b98040 Author: Linus Torvalds Date: Tue Oct 13 09:45:21 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "I got a bit behind last week, so here is a delayed fixes pull: - a bunch of radeon/amd gpu fixes - some nouveau regression fixes (ppc bios reading and runtime pm fix) - one drm core oops fix - two qxl locking fixes - one qxl regression fix" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/nouveau/bios: fix OF loading drm/nouveau/fbcon: take runpm reference when userspace has an open fd drm/nouveau/nouveau: Disable AGP for SiS 761 drm/nouveau/display: allow up to 16k width/height for fermi+ drm/nouveau/bios: translate devinit pri/sec i2c bus to internal identifiers drm: Fix locking for sysfs dpms file drm/amdgpu: fix memory leak in amdgpu_vm_update_page_directory drm/amdgpu: fix 32-bit compiler warning drm/qxl: avoid dependency lock drm/qxl: avoid buffer reservation in qxl_crtc_page_flip drm/qxl: fix framebuffer dirty rectangle tracking. drm/amdgpu: flag iceland as experimental drm/amdgpu: check before checking pci bridge registers drm/amdgpu: fix num_crtc on CZ drm/amdgpu: restore the fbdev mode in lastclose drm/radeon: restore the fbdev mode in lastclose drm/radeon: add quirk for ASUS R7 370 drm/amdgpu: add pm sysfs files late drm/radeon: add pm sysfs files late commit 73917739334c6509833b0403b81d4a04a8784bdf Author: Paolo Bonzini Date: Tue Oct 13 10:19:35 2015 +0200 KVM: x86: fix SMI to halted VCPU An SMI to a halted VCPU must wake it up, hence a VCPU with a pending SMI must be considered runnable. Fixes: 64d6067057d9658acb8675afcfba549abdb7fc16 Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 3 +++ 1 file changed, 3 insertions(+) commit 5d9bc648b94dd719022343b8675e6c4381f0c45f Author: Paolo Bonzini Date: Tue Oct 13 10:18:53 2015 +0200 KVM: x86: clean up kvm_arch_vcpu_runnable Split the huge conditional in two functions. Fixes: 64d6067057d9658acb8675afcfba549abdb7fc16 Cc: stable@vger.kernel.org Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) commit f0d648bdf0a5bbc91da6099d5282f77996558ea4 Author: Paolo Bonzini Date: Mon Oct 12 13:56:27 2015 +0200 KVM: x86: map/unmap private slots in __x86_set_memory_region Otherwise, two copies (one of them never populated and thus bogus) are allocated for the regular and SMM address spaces. This breaks SMM with EPT but without unrestricted guest support, because the SMM copy of the identity page map is all zeros. By moving the allocation to the caller we also remove the last vestiges of kernel-allocated memory regions (not accessible anymore in userspace since commit b74a07beed0e, "KVM: Remove kernel-allocated memory regions", 2010-06-21); that is a nice bonus. Reported-by: Alexandre DERUMIER Cc: stable@vger.kernel.org Fixes: 9da0e4d5ac969909f6b435ce28ea28135a9cbd69 Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 62 ++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) commit 1d8007bdee074fdffcf3539492d8a151a1fb3436 Author: Paolo Bonzini Date: Mon Oct 12 13:38:32 2015 +0200 KVM: x86: build kvm_userspace_memory_region in x86_set_memory_region The next patch will make x86_set_memory_region fill the userspace_addr. Since the struct is not used untouched anymore, it makes sense to build it in x86_set_memory_region directly; it also simplifies the callers. Reported-by: Alexandre DERUMIER Cc: stable@vger.kernel.org Fixes: 9da0e4d5ac969909f6b435ce28ea28135a9cbd69 Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 6 ++---- arch/x86/kvm/vmx.c | 26 ++++++-------------------- arch/x86/kvm/x86.c | 31 +++++++++++++------------------ 3 files changed, 21 insertions(+), 42 deletions(-) commit ba30670f4d5292c4e7f7980bbd5071f7c4794cdd Author: Mike Snitzer Date: Tue Oct 13 12:04:28 2015 -0400 dm thin: fix missing pool reference count decrement in pool_ctr error path Fixes: ac8c3f3df ("dm thin: generate event when metadata threshold passed") Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 3.10+ drivers/md/dm-thin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2a678ed4d0d6cb5f36dbabc411d60d9a4f9c435 Author: Sudip Mukherjee Date: Tue Oct 13 13:33:08 2015 +0530 dm snapshot persistent: fix missing cleanup in persistent_ctr error path If an unsupported option is given then the early return from persistent_ctr() leaked memory allocated for the 'pstore' and never destroyed the 'metadata_wq'. Fixes: b0d3cc011e53 ("dm snapshot: add new persistent store option to support overflow") Signed-off-by: Sudip Mukherjee Signed-off-by: Mike Snitzer drivers/md/dm-snap-persistent.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 8996eafdcbad149ac0f772fb1649fbb75c482a6a Author: Russell King Date: Fri Oct 9 20:43:33 2015 +0100 crypto: ahash - ensure statesize is non-zero Unlike shash algorithms, ahash drivers must implement export and import as their descriptors may contain hardware state and cannot be exported as is. Unfortunately some ahash drivers did not provide them and end up causing crashes with algif_hash. This patch adds a check to prevent these drivers from registering ahash algorithms until they are fixed. Cc: stable@vger.kernel.org Signed-off-by: Russell King Signed-off-by: Herbert Xu crypto/ahash.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cc917ab43541db3ff66d0136042686d40a1b4c9a Author: Chris Wilson Date: Tue Oct 13 14:22:26 2015 +0100 drm/i915: Deny wrapping an userptr into a framebuffer Pinning a userptr onto the hardware raises interesting questions about the lifetime of such a surface as the framebuffer extends that life beyond the client's address space. That is the hardware will need to keep scanning out from the backing storage even after the client wants to remap its address space. As the hardware pins the backing storage, the userptr becomes invalid and this raises a WARN when the clients tries to unmap its address space. The situation can be even more complicated when the buffer is passed between processes, between a client and display server, where the lifetime and hardware access is even more confusing. Deny it. Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Tvrtko Ursulin Cc: Michał Winiarski Cc: stable@vger.kernel.org Reviewed-by: Tvrtko Ursulin Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_userptr.c | 5 ++++- drivers/gpu/drm/i915/intel_display.c | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit c2b63374461c0986147902f719c26412d1f26fbc Author: Ville Syrjälä Date: Wed Oct 7 22:08:25 2015 +0300 drm/i915: Enable DPLL VGA mode before P1/P2 divider write Apparently writing the DPLL register P1/P2 divider fields won't trigger an actual change in the DPLL output unless VGA mode is enabled for prior to the register write that changes the P1/P2 dividers. The write with the new P1/P2 divider can itself disable VGA mode again without problems. I tested the behaviour on my 946GZ, and when manually frobbing the register with the display on, the behaviour is very clear. However I can't explain why this machine actually works. The P1/P2 divider changes caused by normal modesets do seem to make it through to the hardware somehow since I get a stable picture on the monitor with any resolution. Maybe it's the "three times for luck" stuff that somehow masks the problem, or something. But apparently there are machines (eg. Nick Bowler's G45) where that isn't the case and we fail to get the correct clock from the DPLL. Things used to work because we enabled VGA mode for disabled DPLLs, so when re-enabling the DPLL VGA mode was enabled just prior to the first register write, and hence the P1/P2 change went through without a hitch. That got changed in b8afb9113c51 drm/i915: Keep GMCH DPLL VGA mode always disabled in the name of consistency. In order to keep the consistency part, leave VGA mode disabled for disabled DPLLs, but turn it on just prior to updating the P1/P2 dividers to make sure the hardware picks up on the new values. Cc: Nick Bowler Reported-by: Nick Bowler Tested-by: Nick Bowler Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 8e7a65aa70bcc1235a44e40ae0da5056525fe081 Author: Ville Syrjälä Date: Wed Oct 7 22:08:24 2015 +0300 drm/i915: Restore lost DPLL register write on gen2-4 We accidentally lost the initial DPLL register write in 1c4e02746147 drm/i915: Fix DVO 2x clock enable on 830M The "three times for luck" hack probably saved us from a total disaster. But anyway, bring the initial write back so that the code actually makes some sense. Reported-and-tested-by: Nick Bowler References: http://mid.gmane.org/CAN_QmVyMaArxYgEcVVsGvsMo7-6ohZr8HmF5VhkkL4i9KOmrhw@mail.gmail.com Cc: stable@vger.kernel.org Cc: Nick Bowler Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 2 ++ 1 file changed, 2 insertions(+) commit 40a24488f5250d63341e74b9994159afc4589606 Author: Chris Wilson Date: Fri Aug 21 16:08:41 2015 +0100 drm/i915: Flush pipecontrol post-sync writes In order to flush the results from in-batch pipecontrol writes (used for example in glQuery) before declaring the batch complete (and so declaring the query results coherent), we need to set the FlushEnable bit in our flushing pipecontrol. The FlushEnable bit "waits until all previous writes of immediate data from post-sync circles are complete before executing the next command". I get GPU hangs on byt without flushing these writes (running ue4). piglit has examples where the flush is required for correct rendering. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Acked-by: Daniel Vetter Cc: stable@vger.kernel.org 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 e797e4b71777877b19b50e3d736331c947ccffe7 Author: Daniel Vetter Date: Tue Oct 6 14:53:01 2015 +0200 drm/i915: Fix kerneldoc for i915_gem_shrink_all I've botched this in commit eb0b44adc08c0be01a027eb009e9cdadc31e65a2 Author: Daniel Vetter Date: Wed Mar 18 14:47:59 2015 +0100 drm/i915: kerneldoc for i915_gem_shrinker.c so let's fix it. Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_shrinker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 514ed62ed3f6846325d9bfb15cb5c3540547f13b Author: Florian Westphal Date: Thu Oct 8 23:38:07 2015 +0200 netfilter: sync with packet rx also after removing queue entries We need to sync packet rx again after flushing the queue entries. Otherwise, the following race could happen: cpu1: nf_unregister_hook(H) called, H unliked from lists, calls synchronize_net() to wait for packet rx completion. Problem is that while no new nf_queue_entry structs that use H can be allocated, another CPU might receive a verdict from userspace just before cpu1 calls nf_queue_nf_hook_drop to remove this entry: cpu2: receive verdict from userspace, lock queue cpu2: unlink nf_queue_entry struct E, which references H, from queue list cpu1: calls nf_queue_nf_hook_drop, blocks on queue spinlock cpu2: unlock queue cpu1: nf_queue_nf_hook_drop drops affected queue entries cpu2: call nf_reinject for E cpu1: kfree(H) cpu2: potential use-after-free for H Cc: Eric W. Biederman Fixes: 085db2c04557 ("netfilter: Per network namespace netfilter hooks.") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/core.c | 2 ++ 1 file changed, 2 insertions(+) commit e332bc67cf5e5e5b71a1aec9750d0791aac65183 Author: Eric W. Biederman Date: Mon Oct 12 11:02:08 2015 -0500 ipv6: Don't call with rt6_uncached_list_flush_dev As originally written rt6_uncached_list_flush_dev makes no sense when called with dev == NULL as it attempts to flush all uncached routes regardless of network namespace when dev == NULL. Which is simply incorrect behavior. Furthermore at the point rt6_ifdown is called with dev == NULL no more network devices exist in the network namespace so even if the code in rt6_uncached_list_flush_dev were to attempt something sensible it would be meaningless. Therefore remove support in rt6_uncached_list_flush_dev for handling network devices where dev == NULL, and only call rt6_uncached_list_flush_dev when rt6_ifdown is called with a network device. Fixes: 8d0b94afdca8 ("ipv6: Keep track of DST_NOCACHE routes in case of iface down/unregister") Signed-off-by: "Eric W. Biederman" Reviewed-by: Martin KaFai Lau Tested-by: Martin KaFai Lau Signed-off-by: David S. Miller net/ipv6/route.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 87aaf2caed8496404d3809edc30d38d4a4a5d273 Author: Nikolay Aleksandrov Date: Mon Oct 12 14:31:01 2015 +0200 switchdev: check if the vlan id is in the proper vlan range VLANs 0 and 4095 are reserved and shouldn't be used, add checks to switchdev similar to the bridge. Also make sure ids above 4095 cannot be passed either. Fixes: 47f8328bb1a4 ("switchdev: add new switchdev bridge setlink") Signed-off-by: Nikolay Aleksandrov Acked-by: Scott Feldman Signed-off-by: David S. Miller net/switchdev/switchdev.c | 3 +++ 1 file changed, 3 insertions(+) commit 1f225031fee6c39cbbf2a6c79cb150ff63f0556c Merge: 3bb35ac 196e373 Author: David S. Miller Date: Tue Oct 13 04:32:50 2015 -0700 Merge branch 'be2net-fixes' Sathya Perla says: ==================== be2net: patch set Patch 1 fixes a FW image compatibility check in the driver that prevents certain FW images from being flashed on BE3 (not BE3-R) adapters. Patch 2 fixes a spin_lock not being released in a failure case in be_cmd_notify_wait(). Patch 3 includes a workaround to pad packets that are only 32b long or less to be applicabe to BE3 too. This workaround was currently applied only to Skyhawk and Lancer chips. Such packets are causing BE3's TX path to stall on a SR-IOV config. Patch 4 fixes the be_cmd_get_profile_config() routine to set the pf_num field in the cmd request. The FW requires this field to be set for it to return the specific function's descriptors. If not set, the FW returns the descriptors of all the functions on the device. If the first descriptor is not what is being queried for, the driver will read wrong data. This patch fixes this issue by using the GET_CNTL_ATTRIB cmd to query the real pci_func_num of a function and then uses it in the GET_PROFILE_CONFIG cmd. Patch 5 completes an earlier fix that removed the vlan promisc capability for VFs. The earlier fix did not update the removal of this capability from the profile descriptor of the VF. This causes the VF driver to request this capability when it tries to create it's interface at probe time. This could potentailly cause the VF probe to fail if the FW enforces strict checking of the flags based on what was provisoned by the PF. This strict checking is not being done by FW currently but will be fixed in a future version. This patch fixes this issue by updating the VF's profile descriptor so that they match the interface capability flags provisioned by the PF. Pls consider adding these patches to the net tree. Thanks! ==================== Signed-off-by: David S. Miller commit 196e3735fa66c8340d6fff9ec81f6201ffc60b7d Author: Kalesh AP Date: Mon Oct 12 03:47:21 2015 -0400 be2net: remove vlan promisc capability from VF's profile descriptors The commit 435452aa8847 ("Prevent VFs from enabling VLAN promiscuous mode") fixed the PF driver to not include the VLAN promisc capability while provisioning the interface for a VF. But the fix did not remove this capability from the profile descriptor of the VF. This causes the VF driver to request this capability when it tries to create it's interface at probe time. This could potentailly cause the VF probe to fail if the FW enforces strict checking of the flags based on what was provisoned by the PF. This strict checking is not being done by FW currently but will be fixed in a future version. This patch fixes this issue by updating the VF's profile descriptor so that they match the interface capability flags provisioned by the PF. Fixes: 435452aa8847 ("Prevent VFs from enabling VLAN promiscuous mode") Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 72ef3a88fa8e225301aaea296ffc95407de21986 Author: Somnath Kotur Date: Mon Oct 12 03:47:20 2015 -0400 be2net: set pci_func_num while issuing GET_PROFILE_CONFIG cmd The FW requires the pf_num field in the cmd hdr to be set for it to return the specific function's descriptors in the GET_PROFILE_CONFIG cmd. If not set, the FW returns the descriptors of all the functions on the device. If the first descriptor is not what is being queried for, the driver will read wrong data. This patch fixes this issue by using the GET_CNTL_ATTRIB cmd to query the real pci_func_num of a function and then uses it in the GET_PROFILE_CONFIG cmd. Signed-off-by: Somnath Kotur 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 | 14 +++++++++++--- drivers/net/ethernet/emulex/benet/be_cmds.h | 10 ++++++++-- drivers/net/ethernet/emulex/benet/be_main.c | 9 +++++---- 4 files changed, 25 insertions(+), 9 deletions(-) commit 8227e9901ded28d071f20313238e91e71d6bfdce Author: Suresh Reddy Date: Mon Oct 12 03:47:19 2015 -0400 be2net: pad skb to meet minimum TX pkt size in BE3 On BE3 chips in SRIOV configs, the TX path stalls when a packet less than 32B is received from the host. A workaround to pad such packets already exists for the Skyhawk and Lancer chips. Use the same workaround for BE3 chips too. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 0c8845679f3b8f030f3bafcdf226ed92545fa2a9 Author: Suresh Reddy Date: Mon Oct 12 03:47:18 2015 -0400 be2net: release mcc-lock in a failure case in be_cmd_notify_wait() The mcc/mbox lock is not being released when be_cmd_copy() returns an error. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit ae4a9d6a6362df4e4e492c297157498d299bdb68 Author: Kalesh AP Date: Mon Oct 12 03:47:17 2015 -0400 be2net: fix BE3-R FW download compatibility check In the BE3 FW image, unlike Skyhawk's, the "asic_type_rev" field doesn't track the asic_rev of chip it is compatible with. When asic_type_rev is 0 the image is compatible only with pre-BE3-R chips (asic_rev < 0x10). Fix the current compatibility check to take care of this. We hit this issue when we try to flash old BE3 images (used prior to the release of BE3-R) on pre-BE3-R adapters. Fixes: a6e6ff6eee12f3e ("be2net: simplify UFI compatibility checking") Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 3bb35ac4978977cf414893ee721f442039c4b8a4 Author: Gerlando Falauto Date: Mon Oct 12 09:18:41 2015 +0200 net/fsl_pq_mdio: fix computed address for the TBI register commit afae5ad78b342f401c28b0bb1adb3cd494cb125a "net/fsl_pq_mdio: streamline probing of MDIO nodes" added support for different types of MDIO devices: 1) Gianfar MDIO nodes that only map the MII registers 2) Gianfar MDIO nodes that map the full MDIO register set 3) eTSEC2 MDIO nodes (which map the full MDIO register set) 4) QE MDIO nodes (which map only the MII registers) However, the implementation for types 1 and 4 would mistakenly assume a mapping of the full MDIO register set, thereby computing the address for the TBI register starting from the containing structure. The TBI register would therefore be accessed at a wrong (much bigger) address, not giving the expected result at all. This patch restores the correct behavior we had prior to the above one. The consequences of this bug are apparent when trying to access a PHY with the same address as the value contained in the initial value of the TBI register (normally 0); in that case you'll get answers from the internal TBI device (even though MDIO/MDC pins are actually *also* toggling on the physical bus!). Beware that you also need to add a fake tbi node to your device tree with an unused address. Notice how this fix is related to commit 220669495bf8b68130a8218607147c7b74c28d2b "powerpc: Add TBI PHY node to first MDIO bus" which fixed the behavior in kernel 3.3, which was later broken by the above commit on kernel 3.7. Signed-off-by: Gerlando Falauto Cc: Timur Tabi Cc: David S. Miller Cc: Kumar Gala Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fsl_pq_mdio.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 3dd03e52a410818c0818924c2ba27a43725f5e94 Author: Gerlando Falauto Date: Mon Oct 12 09:18:40 2015 +0200 net/fsl_pq_mdio: check TBI address for consistency with mapped range When configuring the MDIO subsystem it is also necessary to configure the TBI register. Make sure the TBI is contained within the mapped register range in order to: a) make sure the address is computed correctly b) make users aware that we're actually accessing that register In case of error, print a message but continue anyway. Signed-off-by: Gerlando Falauto Cc: Timur Tabi Cc: David S. Miller Cc: Kumar Gala Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fsl_pq_mdio.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e8d65a8d985271a102f07c7456da5b86c19ffe16 Author: David Henningsson Date: Tue Oct 13 10:10:18 2015 +0200 ALSA: hda - Fix inverted internal mic on Lenovo G50-80 Add the appropriate quirk to indicate the Lenovo G50-80 has a stereo mic input where one channel has reverse polarity. Alsa-info available at: https://launchpadlibrarian.net/220846272/AlsaInfo.txt Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1504778 Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_conexant.c | 1 + 1 file changed, 1 insertion(+) commit 42f2bb1c494543084b764e1ca253c73db910daf2 Author: Vinod Koul Date: Tue Oct 13 14:57:49 2015 +0530 ALSA: hdac: Explicitly add io.h Compiling the hdac extended core on arm fails with below error: sound/hda/ext/hdac_ext_bus.c: In function 'hdac_ext_writel': >> sound/hda/ext/hdac_ext_bus.c:29:2: error: implicit declaration of >> function +'writel' [-Werror=implicit-function-declaration] writel(value, addr); ^ sound/hda/ext/hdac_ext_bus.c: In function 'hdac_ext_readl': >> sound/hda/ext/hdac_ext_bus.c:34:2: error: implicit declaration of >> function +'readl' [-Werror=implicit-function-declaration] return readl(addr); This is fixed by explicitly including io.h Fixes: 99463b3a3994 - ('ALSA: hda: provide default bus io ops extended hdac') Reported-by: kbuild test robot Suggested-by: Mark Brown Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_bus.c | 1 + 1 file changed, 1 insertion(+) commit 4633dfc32c0019bed2996de9bbdbe7f3b518a44e Author: Mohammed Shafi Shajakhan Date: Thu Oct 8 19:20:14 2015 +0530 mac80211: Fix hwflags debugfs file format Commit 30686bf7f5b3 ("mac80211: convert HW flags to unsigned long bitmap") accidentally removed the newline delimiter from the hwflags debugfs file. Fix this by adding back the newline between the HW flags. Cc: stable@vger.kernel.org [4.2] Signed-off-by: Mohammed Shafi Shajakhan [fix commit log] Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg net/mac80211/debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed7d78b2da32198ca4c70172e3b63c6b3e2c570b Author: Thomas Hellstrom Date: Mon Oct 12 01:49:39 2015 -0700 drm/vmwgfx: Fix kernel NULL pointer dereference on older hardware The commit "drm/vmwgfx: Fix up user_dmabuf refcounting", while fixing a kernel crash introduced a NULL pointer dereference on older hardware. Fix this. Cc: Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh Reviewed-by: Brian Paul drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit abb39bc792aa8e9143e78a39ec13d7de1391f4b4 Author: Michael Ellerman Date: Mon Oct 12 15:28:57 2015 +1100 selftests/powerpc: Fix build failure of load_unaligned_zeropad test Commit 7a5692e6e533 ("arch/powerpc: provide zero_bytemask() for big-endian") added a call to __fls() in our word-at-a-time.h. That was fine for the kernel build but missed the fact that we also use word-at-a-time.h in a userspace test. Pulling in the kernel version of __fls() gets messy, so just define our own, it's unlikely to change often. Fixes: 7a5692e6e533 ("arch/powerpc: provide zero_bytemask() for big-endian") Signed-off-by: Michael Ellerman .../selftests/powerpc/primitives/load_unaligned_zeropad.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit e844463743095bc8b230f507de066d047c87476b Author: Arad, Ronen Date: Fri Oct 9 10:35:47 2015 -0700 rtnetlink: fix gcc -Wconversion warning RTA_ALIGNTO is currently define as 4. It has to be 4U to prevent warning for RTA_ALIGN and RTA_DATA expansions when -Wconversion gcc option is enabled. This follows NLMSG_ALIGNTO definition in . Signed-off-by: Ronen Arad Signed-off-by: David S. Miller include/uapi/linux/rtnetlink.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8e1f5ed11a39a68da00f05000466c4f6db4456e Author: Tony Lindgren Date: Mon Oct 12 16:19:54 2015 -0700 Documentation: ARM: List new omap MMC requirements Earlier the PBIAS regulator was optional, not so with recent omap_hsmmc changes. To make things easier for people with custom .config files, let's add minimal documentation for it as suggested by Russell King . Signed-off-by: Tony Lindgren Documentation/arm/OMAP/README | 7 +++++++ 1 file changed, 7 insertions(+) commit fd820a1ec758bc25b0eb10ab5e88e6c61fbcc8aa Author: Uwe Kleine-König Date: Tue Oct 6 22:07:49 2015 +0200 memory: omap-gpmc: dump "before" state before first modification When gpmc_cs_show_timings is called in gpmc_cs_set_timings() gpmc_cs_program_settings() was already run which modifies the CONFIG1 register. So to be more useful do the "before" dump earlier. Signed-off-by: Uwe Kleine-König Acked-by: Roger Quadros Signed-off-by: Tony Lindgren drivers/memory/omap-gpmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be59b6192f43a9792f5f636b51358196ba11bbf6 Author: Tony Lindgren Date: Mon Oct 12 16:19:54 2015 -0700 memory: omap-gpmc: Fix unselectable debug option for GPMC Commit 63aa945b1013 ("memory: omap-gpmc: Add Kconfig option for debug") added a debug option for GPMC, but somehow managed to keep it unselectable. This probably happened because I had some uncommitted changes and the GPMC option is selected in the platform specific Kconfig. Let's also update the description a bit, it does not mention that enabling the debug option also disables the reset of GPMC controller during the init as pointed out by Uwe Kleine-König and Roger Quadros . Fixes: 63aa945b1013 ("memory: omap-gpmc: Add Kconfig option for debug") Reported-by: Uwe Kleine-König Acked-by: Roger Quadros Signed-off-by: Tony Lindgren drivers/memory/Kconfig | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 7e381ec6a36aa44f15fc1a76e6efb9e2cd942e61 Author: Tomi Valkeinen Date: Fri Sep 25 16:02:03 2015 +0300 ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on LDO1 regulator (VDD_SD) is connected to SoC's vddshv8. vddshv8 needs to be kept always powered (see commit 5a0f93c6576a ("ARM: dts: Add am57xx-beagle-x15"), but at the moment VDD_SD is enabled/disabled depending on whether an SD card is inserted or not. This patch sets LDO1 regulator to always-on. This patch has a side effect of fixing another issue, HDMI DDC not working when SD card is not inserted: Why this happens is that the tpd12s015 (HDMI level shifter/ESD protection chip) has LS_OE GPIO input, which needs to be enabled for the HDMI DDC to work. LS_OE comes from gpio6_28. The pin that provides gpio6_28 is powered by vddshv8, and vddshv8 comes from VDD_SD. So when SD card is not inserted, VDD_SD is disabled, and LS_OE stays off. The proper fix for the HDMI DDC issue would be to maybe have the pinctrl framework manage the pin specific power. Apparently this fixes also a third issue (copy paste from Kishon's patch): ldo1_reg in addition to being connected to the io lines is also connected to the card detect line. On card removal, omap_hsmmc driver does a regulator_disable causing card detect line to be pulled down. This raises a card insertion interrupt and once the MMC core detects there is no card inserted, it does a regulator disable which again raises a card insertion interrupt. This happens in a loop causing infinite MMC interrupts. Fixes: 5a0f93c6576a ("ARM: dts: Add am57xx-beagle-x15") Cc: Kishon Vijay Abraham I Signed-off-by: Tomi Valkeinen Reported-by: Louis McCarthy Acked-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b8bb9baad27e455c467e8fac47eebadbe765c18f Author: Alim Akhtar Date: Tue Oct 13 04:32:53 2015 +0900 ARM: dts: Fix audio card detection on Peach boards Since commit 2fad972d45c4 ("ARM: dts: Add mclk entry for Peach boards"), sound card detection is broken on peach boards and gives below errors: [ 3.630457] max98090 7-0010: MAX98091 REVID=0x51 [ 3.634233] max98090 7-0010: use default 2.8v micbias [ 3.640985] snow-audio sound: HiFi <-> 3830000.i2s mapping ok [ 3.645307] max98090 7-0010: Invalid master clock frequency [ 3.650824] snow-audio sound: ASoC: Peach-Pi-I2S-MAX98091 late_probe() failed: -22 [ 3.658914] snow-audio sound: snd_soc_register_card failed (-22) [ 3.664366] snow-audio: probe of sound failed with error -22 This patch adds missing assigned-clocks and assigned-clock-parents for pmu_system_controller node which is used as "mclk" for audio codec. Fixes: 2fad972d45c4 ("ARM: dts: Add mclk entry for Peach boards") Signed-off-by: Alim Akhtar Reviewed-by: Krzysztof Kozlowski Cc: Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420-peach-pit.dts | 5 +++++ arch/arm/boot/dts/exynos5800-peach-pi.dts | 5 +++++ 2 files changed, 10 insertions(+) commit 51a6256b00008a3c520f6f31bcd62cd15cb05960 Author: Krzysztof Kozlowski Date: Tue Oct 13 04:32:49 2015 +0900 ARM: EXYNOS: Fix double of_node_put() when parsing child power domains On each next iteration of for_each_compatible_node() the reference counter for current device node is already decreased by the loop iterator. The manual call to of_node_get() is required only on loop break which is not happening here. The double of_node_get() (with enabled CONFIG_OF_DYNAMIC) lead to decreasing the counter below expected, initial value. Fixes: fe4034a3fad7 ("ARM: EXYNOS: Add missing of_node_put() when parsing power domains") Signed-off-by: Krzysztof Kozlowski Cc: Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pm_domains.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 835da3f99d329b1160a1f7fc82c7ac81163d63d0 Author: Arnd Bergmann Date: Tue Oct 6 22:29:48 2015 +0200 nvme: fix 32-bit build warning Compiling the nvme driver on 32-bit warns about a cast from a __u64 variable to a pointer: drivers/block/nvme-core.c: In function 'nvme_submit_io': drivers/block/nvme-core.c:1847:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (void __user *)io.addr, length, NULL, 0); The cast here is intentional and safe, so we can shut up the gcc warning by adding an intermediate cast to 'uintptr_t'. I had previously submitted a patch to fix this problem in the nvme driver, but it was accepted on the same day that two new warnings got added. For clarification, I also change the third instance of this cast to use uintptr_t instead of unsigned long now. Signed-off-by: Arnd Bergmann Fixes: d29ec8241c10e ("nvme: submit internal commands through the block layer") Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 79828b4fa835f73cdaf4bffa48696abdcbea9d02 Merge: 721b51f 8c1a9d6 Author: Mark Brown Date: Mon Oct 12 18:09:27 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645 commit c9692657c0321fec7bcb3ca8c6db56c08c640ace Author: Manjeet Pawar Date: Fri Oct 9 15:59:40 2015 +0530 arm64: Fix MINSIGSTKSZ and SIGSTKSZ MINSIGSTKSZ and SIGSTKSZ for ARM64 are not correctly set in latest kernel. This patch fixes this issue. This issue is reported in LTP (testcase: sigaltstack02.c). Testcase failed when sigaltstack() called with stack size "MINSIGSTKSZ - 1" Since in Glibc-2.22, MINSIGSTKSZ is set to 5120 but in kernel it is set to 2048 so testcase gets failed. Testcase Output: sigaltstack02 1 TPASS : stgaltstack() fails, Invalid Flag value,errno:22 sigaltstack02 2 TFAIL : sigaltstack() returned 0, expected -1,errno:12 Reported Issue in Glibc Bugzilla: Bugfix in Glibc-2.22: [Bug 16850] https://sourceware.org/bugzilla/show_bug.cgi?id=16850 Acked-by: Arnd Bergmann Signed-off-by: Akhilesh Kumar Signed-off-by: Manjeet Pawar Signed-off-by: Rohit Thapliyal Signed-off-by: Will Deacon arch/arm64/include/uapi/asm/signal.h | 3 +++ include/uapi/asm-generic/signal.h | 2 ++ 2 files changed, 5 insertions(+) commit b6dd8e0719c0d2d01429639a11b7bc2677de240c Author: Will Deacon Date: Thu Oct 8 11:11:17 2015 +0100 arm64: errata: use KBUILD_CFLAGS_MODULE for erratum #843419 Commit df057cc7b4fa ("arm64: errata: add module build workaround for erratum #843419") sets CFLAGS_MODULE to ensure that the large memory model is used by the compiler when building kernel modules. However, CFLAGS_MODULE is an environment variable and intended to be overridden on the command line, which appears to be the case with the Ubuntu kernel packaging system, so use KBUILD_CFLAGS_MODULE instead. Cc: Cc: Ard Biesheuvel Fixes: df057cc7b4fa ("arm64: errata: add module build workaround for erratum #843419") Reported-by: Dann Frazier Tested-by: Dann Frazier Signed-off-by: Will Deacon arch/arm64/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5edf9cdc4c483b9a94c03fc0b9f769bd090bf3e Author: Tejun Heo Date: Tue Sep 29 13:04:26 2015 -0400 writeback: fix incorrect calculation of available memory for memcg domains For memcg domains, the amount of available memory was calculated as min(the amount currently in use + headroom according to memcg, total clean memory) This isn't quite correct as what should be capped by the amount of clean memory is the headroom, not the sum of memory in use and headroom. For example, if a memcg domain has a significant amount of dirty memory, the above can lead to a value which is lower than the current amount in use which doesn't make much sense. In most circumstances, the above leads to a number which is somewhat but not drastically lower. As the amount of memory which can be readily allocated to the memcg domain is capped by the amount of system-wide clean memory which is not already assigned to the memcg itself, the number we want is the amount currently in use + min(headroom according to memcg, clean memory elsewhere in the system) This patch updates mem_cgroup_wb_stats() to return the number of filepages and headroom instead of the calculated available pages. mdtc_cap_avail() is renamed to mdtc_calc_avail() and performs the above calculation from file, headroom, dirty and globally clean pages. v2: Dummy mem_cgroup_wb_stats() implementation wasn't updated leading to build failure when !CGROUP_WRITEBACK. Fixed. Signed-off-by: Tejun Heo Fixes: c2aa723a6093 ("writeback: implement memcg writeback domain based throttling") Signed-off-by: Jens Axboe include/linux/memcontrol.h | 8 +++++--- mm/memcontrol.c | 35 +++++++++++++++++------------------ mm/page-writeback.c | 29 ++++++++++++++++++----------- 3 files changed, 40 insertions(+), 32 deletions(-) commit d60d1bddd5b642711a237511845853755b25bf1f Author: Tejun Heo Date: Tue Sep 29 12:47:53 2015 -0400 writeback: memcg dirty_throttle_control should be initialized with wb->memcg_completions MDTC_INIT() is used to initialize dirty_throttle_control for memcg domains. It used DTC_INIT_COMMON() to initialized mdtc->wb and ->wb_completions which is incorrect as DTC_INIT_COMMON() sets the latter to wb->completions instead of wb->memcg_completions. This can lead to wildly incorrect results when calculating the proportion of dirty memory the memcg domain should get. Remove DTC_INIT_COMMON() and update MDTC_INIT() to initialize mdtc->wb_completions to wb->memcg_completions. Signed-off-by: Tejun Heo Fixes: c2aa723a6093 ("writeback: implement memcg writeback domain based throttling") Signed-off-by: Jens Axboe mm/page-writeback.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit b817525a4a80c04e4ca44192d97a1ffa9f2be572 Author: Tejun Heo Date: Fri Oct 2 14:47:05 2015 -0400 writeback: bdi_writeback iteration must not skip dying ones bdi_for_each_wb() is used in several places to wake up or issue writeback work items to all wb's (bdi_writeback's) on a given bdi. The iteration is performed by walking bdi->cgwb_tree; however, the tree only indexes wb's which are currently active. For example, when a memcg gets associated with a different blkcg, the old wb is removed from the tree so that the new one can be indexed. The old wb starts dying from then on but will linger till all its inodes are drained. As these dying wb's may still host dirty inodes, writeback operations which affect all wb's must include them. bdi_for_each_wb() skipping dying wb's led to sync(2) missing and failing to sync the inodes belonging to those wb's. This patch adds a RCU protected @bdi->wb_list which lists all wb's beloinging to that bdi. wb's are added on creation and removed on release rather than on the start of destruction. bdi_for_each_wb() usages are replaced with list_for_each[_continue]_rcu() iterations over @bdi->wb_list and bdi_for_each_wb() and its helpers are removed. v2: Updated as per Jan. last_wb ref leak in bdi_split_work_to_wbs() fixed and unnecessary list head severing in cgwb_bdi_destroy() removed. Signed-off-by: Tejun Heo Reported-and-tested-by: Artem Bityutskiy Fixes: ebe41ab0c79d ("writeback: implement bdi_for_each_wb()") Link: http://lkml.kernel.org/g/1443012552.19983.209.camel@gmail.com Cc: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 31 ++++++++++++++------ include/linux/backing-dev-defs.h | 3 ++ include/linux/backing-dev.h | 63 ---------------------------------------- mm/backing-dev.c | 14 ++++++++- mm/page-writeback.c | 3 +- 5 files changed, 39 insertions(+), 75 deletions(-) commit 6fdf860f15d4a6be8f0947bad608d687fe0c7af7 Author: Tejun Heo Date: Tue Sep 29 12:47:51 2015 -0400 writeback: fix bdi_writeback iteration in wakeup_dirtytime_writeback() wakeup_dirtytime_writeback() walks and wakes up all wb's of all bdi's; unfortunately, it was always waking up bdi->wb instead of the wb being walked. Fix it. Signed-off-by: Tejun Heo Fixes: 001fe6f617b1 ("writeback: make wakeup_dirtytime_writeback() handle multiple bdi_writeback's") Reviewed-by: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9ad18ab938375502c03cf467abecbb77264c9475 Author: Tejun Heo Date: Tue Sep 29 12:47:50 2015 -0400 writeback: laptop_mode_timer_fn() needs rcu_read_lock() around bdi_writeback iteration laptop_mode_timer_fn() was using bdi_for_each_wb() without the required RCU locking leading to the following warning. WARNING: CPU: 0 PID: 0 at include/linux/backing-dev.h:415 laptop_mode_timer_fn+0x106/0x170() ... Call Trace: [] dump_stack+0x4e/0x82 [] warn_slowpath_common+0x82/0xc0 [] warn_slowpath_null+0x1a/0x20 [] laptop_mode_timer_fn+0x106/0x170 [] call_timer_fn+0xb3/0x2f0 [] run_timer_softirq+0x205/0x370 [] __do_softirq+0xd4/0x460 [] irq_exit+0x89/0xa0 [] smp_apic_timer_interrupt+0x42/0x50 [] apic_timer_interrupt+0x84/0x90 ... Fix it by adding rcu_read_lock() around the iteration. Signed-off-by: Tejun Heo Fixes: a06fd6b10228 ("writeback: make laptop_mode_timer_fn() handle multiple bdi_writeback's") Reviewed-by: Jan Kara Signed-off-by: Jens Axboe mm/page-writeback.c | 2 ++ 1 file changed, 2 insertions(+) commit 3be7f32878e742cf3c17b435c90e198862457706 Author: Chuck Lever Date: Mon Oct 12 10:53:39 2015 -0400 svcrdma: Fix NFS server crash triggered by 1MB NFS WRITE Now that the NFS server advertises a maximum payload size of 1MB for RPC/RDMA again, it crashes in svc_process_common() when NFS client sends a 1MB NFS WRITE on an NFS/RDMA mount. The server has set up a 259 element array of struct page pointers in rq_pages[] for each incoming request. The last element of the array is NULL. When an incoming request has been completely received, rdma_read_complete() attempts to set the starting page of the incoming page vector: rqstp->rq_arg.pages = &rqstp->rq_pages[head->hdr_count]; and the page to use for the reply: rqstp->rq_respages = &rqstp->rq_arg.pages[page_no]; But the value of page_no has already accounted for head->hdr_count. Thus rq_respages now points past the end of the incoming pages. For NFS WRITE operations smaller than the maximum, this is harmless. But when the NFS WRITE operation is as large as the server's max payload size, rq_respages now points at the last entry in rq_pages, which is NULL. Fixes: cc9a903d915c ('svcrdma: Change maximum server payload . . .') BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=270 Signed-off-by: Chuck Lever Reviewed-by: Sagi Grimberg Reviewed-by: Steve Wise Reviewed-by: Shirley Ma Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc4998febd567d1c671684abce5595344bd4e8b2 Author: lucien Date: Tue Oct 6 21:03:07 2015 +0800 netfilter: ipt_rpfilter: remove the nh_scope test in rpfilter_lookup_reverse --accept-local option works for res.type == RTN_LOCAL, which should be from the local table, but there, the fib_info's nh->nh_scope = RT_SCOPE_NOWHERE ( > RT_SCOPE_HOST). in fib_create_info(). if (cfg->fc_scope == RT_SCOPE_HOST) { struct fib_nh *nh = fi->fib_nh; /* Local address is added. */ if (nhs != 1 || nh->nh_gw) goto err_inval; nh->nh_scope = RT_SCOPE_NOWHERE; <=== nh->nh_dev = dev_get_by_index(net, fi->fib_nh->nh_oif); err = -ENODEV; if (!nh->nh_dev) goto failure; but in our rpfilter_lookup_reverse(): if (dev_match || flags & XT_RPFILTER_LOOSE) return FIB_RES_NH(res).nh_scope <= RT_SCOPE_HOST; if nh->nh_scope > RT_SCOPE_HOST, it will fail. --accept-local option will never be passed. it seems the test is bogus and can be removed to fix this issue. if (dev_match || flags & XT_RPFILTER_LOOSE) return FIB_RES_NH(res).nh_scope <= RT_SCOPE_HOST; ipv6 does not have this issue. Signed-off-by: Xin Long Acked-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/ipt_rpfilter.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5ffdbe8bf1e485026e1c7e4714d2841553cf0b40 Author: Konstantin Khlebnikov Date: Mon Aug 24 15:57:19 2015 +0300 ovl: free lower_mnt array in ovl_put_super This fixes memory leak after umount. Kmemleak report: unreferenced object 0xffff8800ba791010 (size 8): comm "mount", pid 2394, jiffies 4294996294 (age 53.920s) hex dump (first 8 bytes): 20 1c 13 02 00 88 ff ff ....... backtrace: [] create_object+0x124/0x2c0 [] kmemleak_alloc+0x7b/0xc0 [] __kmalloc+0x106/0x340 [] ovl_fill_super+0x55c/0x9b0 [overlay] [] mount_nodev+0x54/0xa0 [] ovl_mount+0x18/0x20 [overlay] [] mount_fs+0x43/0x170 [] vfs_kern_mount+0x74/0x170 [] do_mount+0x22d/0xdf0 [] SyS_mount+0x7b/0xc0 [] entry_SYSCALL_64_fastpath+0x12/0x76 [] 0xffffffffffffffff Signed-off-by: Konstantin Khlebnikov Signed-off-by: Miklos Szeredi Fixes: dd662667e6d3 ("ovl: add mutli-layer infrastructure") Cc: # v4.0+ fs/overlayfs/super.c | 1 + 1 file changed, 1 insertion(+) commit 0f95502ad84874b3c05fc7cdd9d4d9d5cddf7859 Author: Konstantin Khlebnikov Date: Mon Aug 24 15:57:18 2015 +0300 ovl: free stack of paths in ovl_fill_super This fixes small memory leak after mount. Kmemleak report: unreferenced object 0xffff88003683fe00 (size 16): comm "mount", pid 2029, jiffies 4294909563 (age 33.380s) hex dump (first 16 bytes): 20 27 1f bb 00 88 ff ff 40 4b 0f 36 02 88 ff ff '......@K.6.... backtrace: [] create_object+0x124/0x2c0 [] kmemleak_alloc+0x7b/0xc0 [] __kmalloc+0x106/0x340 [] ovl_fill_super+0x389/0x9a0 [overlay] [] mount_nodev+0x54/0xa0 [] ovl_mount+0x18/0x20 [overlay] [] mount_fs+0x43/0x170 [] vfs_kern_mount+0x74/0x170 [] do_mount+0x22d/0xdf0 [] SyS_mount+0x7b/0xc0 [] entry_SYSCALL_64_fastpath+0x12/0x76 [] 0xffffffffffffffff Signed-off-by: Konstantin Khlebnikov Signed-off-by: Miklos Szeredi Fixes: a78d9f0d5d5c ("ovl: support multiple lower layers") Cc: # v4.0+ fs/overlayfs/super.c | 1 + 1 file changed, 1 insertion(+) commit 1c8a47df36d72ace8cf78eb6c228aa0f8027d3c2 Author: Miklos Szeredi Date: Mon Oct 12 15:56:20 2015 +0200 ovl: fix open in stacked overlay If two overlayfs filesystems are stacked on top of each other, then we need recursion in ovl_d_select_inode(). I guess d_backing_inode() is supposed to do that. But currently it doesn't and that functionality is open coded in vfs_open(). This is now copied into ovl_d_select_inode() to fix this regression. Reported-by: Alban Crequy Signed-off-by: Miklos Szeredi Fixes: 4bacc9c9234c ("overlayfs: Make f_path always point to the overlay...") Cc: David Howells Cc: # v4.2+ fs/overlayfs/inode.c | 3 +++ 1 file changed, 3 insertions(+) commit ab79efab0a0ba01a74df782eb7fa44b044dae8b5 Author: David Howells Date: Fri Sep 18 11:45:22 2015 +0100 ovl: fix dentry reference leak In ovl_copy_up_locked(), newdentry is leaked if the function exits through out_cleanup as this just to out after calling ovl_cleanup() - which doesn't actually release the ref on newdentry. The out_cleanup segment should instead exit through out2 as certainly newdentry leaks - and possibly upper does also, though this isn't caught given the catch of newdentry. Without this fix, something like the following is seen: BUG: Dentry ffff880023e9eb20{i=f861,n=#ffff880023e82d90} still in use (1) [unmount of tmpfs tmpfs] BUG: Dentry ffff880023ece640{i=0,n=bigfile} still in use (1) [unmount of tmpfs tmpfs] when unmounting the upper layer after an error occurred in copyup. An error can be induced by creating a big file in a lower layer with something like: dd if=/dev/zero of=/lower/a/bigfile bs=65536 count=1 seek=$((0xf000)) to create a large file (4.1G). Overlay an upper layer that is too small (on tmpfs might do) and then induce a copy up by opening it writably. Reported-by: Ulrich Obergfell Signed-off-by: David Howells Signed-off-by: Miklos Szeredi Cc: # v3.18+ fs/overlayfs/copy_up.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0480334fa60488d12ae101a02d7d9e1a3d03d7dd Author: David Howells Date: Fri Sep 18 11:45:12 2015 +0100 ovl: use O_LARGEFILE in ovl_copy_up() Open the lower file with O_LARGEFILE in ovl_copy_up(). Pass O_LARGEFILE unconditionally in ovl_copy_up_data() as it's purely for catching 32-bit userspace dealing with a file large enough that it'll be mishandled if the application isn't aware that there might be an integer overflow. Inside the kernel, there shouldn't be any problems. Reported-by: Ulrich Obergfell Signed-off-by: David Howells Signed-off-by: Miklos Szeredi Cc: # v3.18+ fs/overlayfs/copy_up.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9babcd7929bc8967ae3bb6093f603b93c2f9958f Author: Daniel Bristot de Oliveira Date: Thu Oct 8 15:36:06 2015 -0300 sched, tracing: Stop/start critical timings around the idle=poll idle loop When using idle=poll, the preemptoff tracer is always showing the idle task as the culprit for long latencies. That happens because critical timings are not stopped before idle loop. This patch stops critical timings before entering the idle loop, starting it again after the idle loop. This problem does not affect the irqsoff tracer because interruptions are enabled before entering the idle loop. Signed-off-by: Daniel Bristot de Oliveira Reviewed-by: Luis Claudio R. Goncalves Acked-by: Steven Rostedt Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/10fc3705874aef11dbe152a068b591a7be1899b4.1444314899.git.bristot@redhat.com Signed-off-by: Ingo Molnar kernel/sched/idle.c | 2 ++ 1 file changed, 2 insertions(+) commit 7b98040a7718663903bb25c06c7aed9801abbd9d Merge: 621bd0f 25d2958 Author: Dave Airlie Date: Mon Oct 12 13:59:04 2015 +1000 Merge branch 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes Nothing too crazy here, a couple of regression fixes + runpm/fbcon race fix. * 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/bios: fix OF loading drm/nouveau/fbcon: take runpm reference when userspace has an open fd drm/nouveau/nouveau: Disable AGP for SiS 761 drm/nouveau/display: allow up to 16k width/height for fermi+ drm/nouveau/bios: translate devinit pri/sec i2c bus to internal identifiers commit 25d295882a1adfcdaaad85369289677b87c7c8f0 Author: Ilia Mirkin Date: Thu Oct 1 23:41:21 2015 -0400 drm/nouveau/bios: fix OF loading Currently OF bios load fails for a few reasons: - checksum failure - bios size too small - no PCIR header - bios length not a multiple of 4 In this change, we resolve all of the above by ignoring any checksum failures (since OF VBIOS tends not to have a checksum), and faking the PCIR data when loading from OF. Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 27 ++++++++++++++-------- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c | 17 ++++++++++++-- 3 files changed, 36 insertions(+), 11 deletions(-) commit f231976c2e8964ceaa9250e57d27c35ff03825c2 Author: Ben Skeggs Date: Fri Oct 2 14:03:19 2015 +1000 drm/nouveau/fbcon: take runpm reference when userspace has an open fd We need to do this in order to prevent accesses to the device while it's powered down. Userspace may have an mmap of the fb, and there's no good way (that I know of) to prevent it from touching the device otherwise. This fixes some nasty races between runpm and plymouth on some systems, which result in the GPU getting very upset and hanging the boot. Signed-off-by: Ben Skeggs Cc: stable@vger.kernel.org drivers/gpu/drm/nouveau/nouveau_fbcon.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 953132b56a43c707979df8da7bfd00931bdfe695 Author: Ondrej Zary Date: Mon Sep 14 21:19:57 2015 +0200 drm/nouveau/nouveau: Disable AGP for SiS 761 SiS 761 chipset does not support AGP cards but has AGP capability (for the onboard video). At least PC Chips A31G board using this chipset has an AGP-like AGPro slot that's wired to the PCI bus. Enabling AGP will fail (GPU lockup and software fbcon, X11 hangs). Add support for matching just the host bridge in nvkm_device_agp_quirks and add entry for SiS 761 with mode 0 (AGP disabled). Signed-off-by: Ondrej Zary Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 5102ec3e99e271b3934a1e00bb52a2545eb7dbc5 Author: Ilia Mirkin Date: Thu Sep 17 22:31:20 2015 -0400 drm/nouveau/display: allow up to 16k width/height for fermi+ Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_display.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2239b76b0b1782160d5ca91ea1653dd67aa37e8a Author: Ben Skeggs Date: Tue Sep 29 12:08:35 2015 +1000 drm/nouveau/bios: translate devinit pri/sec i2c bus to internal identifiers fdo#92013. Regression from "i2c: transition pad/ports away from being based on nvkm_object" Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 25cb62b76430a91cc6195f902e61c2cb84ade622 Author: Linus Torvalds Date: Sun Oct 11 11:09:45 2015 -0700 Linux 4.3-rc5 Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9a78f9c3c68c4d57f602b4100e766945d3362f4d Merge: 7cbbab0 95913d9 Author: Linus Torvalds Date: Sun Oct 11 10:24:32 2015 -0700 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fix from Thomas Gleixner: "Fix a long standing state race in finish_task_switch()" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/core: Fix TASK_DEAD race in finish_task_switch() commit 7cbbab00cbbd3d36288f4d3634eb45d66d78d218 Merge: a145164 00e6fa5 Author: Linus Torvalds Date: Sun Oct 11 10:23:52 2015 -0700 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fix from Thomas Glexiner: "Fix build breakage on powerpc in perf tools" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tools: Fix build break on powerpc due to sample_reg_masks commit a145164ba86543604c54d5c1079a18d5eaabbc1b Merge: e3d6e0e 825fcfc Author: Linus Torvalds Date: Sun Oct 11 10:23:00 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull maintainer email update from Thomas Gleixner: "Change Matt Fleming's email address in the maintainers file" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: MAINTAINERS: Change Matt Fleming's email address commit e3d6e0e70139297977546f7af719396ebc4fe181 Merge: 5a433f7 10abc7d Author: Linus Torvalds Date: Sun Oct 11 10:16:59 2015 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixes from Thomas Gleixner: "Three trivial commits: - Fix a kerneldoc regression - Export handle_bad_irq to unbreak a driver in next - Add an accessor for the of_node field so refactoring in next does not depend on merge ordering" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqdomain: Add an accessor for the of_node field genirq: Fix handle_bad_irq kerneldoc comment genirq: Export handle_bad_irq commit 5a433f7a6bc49b5745d5ccd4f1c84f57ab7013a9 Merge: f24fe98 15e3d5a Author: Linus Torvalds Date: Sun Oct 11 10:02:30 2015 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "This is a set of three bug fixes, two of which are regressions from recent updates (the 3ware one from 4.1 and the device handler fixes from 4.2)" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: 3w-9xxx: don't unmap bounce buffered commands scsi_dh: Use the correct module name when loading device handler libiscsi: Fix iscsi_check_transport_timeouts possible infinite loop commit f24fe98df8448d60867d2b81a1a67722a6568b19 Merge: 4a06c8a a452744 Author: Linus Torvalds Date: Sun Oct 11 09:35:51 2015 -0700 Merge tag 'md/4.3-rc4-fix' of git://neil.brown.name/md Pull md bugfix from Neil Brown: "One bug fix for raid1/raid10. Very careless bug earler in 4.3-rc, now fixed :-)" * tag 'md/4.3-rc4-fix' of git://neil.brown.name/md: crash in md-raid1 and md-raid10 due to incorrect list manipulation commit b94e22805a2224061bb263a82b72e09544a5fbb3 Author: Alexandre Belloni Date: Wed Oct 7 13:10:54 2015 +0200 iio: mxs-lradc: Fix temperature offset 0° Kelvin is actually −273.15°C, not -272.15°C. Fix the temperature offset. Also improve the comment explaining the calculation. Reported-by: Janusz Użycki Signed-off-by: Alexandre Belloni Acked-by: Stefan Wahren Acked-by: Marek Vasut Cc: Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 9ef2e965e55481a52d6d91ce61977a27836268d3 Author: Hannes Frederic Sowa Date: Thu Oct 8 18:19:53 2015 +0200 ipv6: drop frames with attached skb->sk in forwarding This is a clone of commit 2ab957492d13b ("ip_forward: Drop frames with attached skb->sk") for ipv6. This commit has exactly the same reasons as the above mentioned commit, namely to prevent panics during netfilter reload or a misconfigured stack. Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 3 +++ 1 file changed, 3 insertions(+) commit d9e4ce65b27694b0b70ff4d1cbbb740195fd916b Author: Hannes Frederic Sowa Date: Thu Oct 8 18:19:39 2015 +0200 ipv6: gre: setup default multicast routes over PtP links GRE point-to-point interfaces should also support ipv6 multicast. Setting up default multicast routes on interface creation was forgotten. Add it. Bugzilla: Cc: Julien Muchembled Cc: Eric Dumazet Cc: Nicolas Dumazet Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller net/ipv6/addrconf.c | 2 ++ 1 file changed, 2 insertions(+) commit f9468e8dc87e31f807fae04aae70380a461b95c6 Author: Yuval Mintz Date: Thu Oct 8 16:19:01 2015 +0300 bnx2x: Prevent UDP 4-tuple configurations on older adapters Configuring 4-tuple RSS hsahing for UDP [E.g., by using `ethtool -N rx-flow-hash udp4 sdfn'] on a 57710/57711 adapter would cause it to assert as HW does not support such a configuration. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 5edc11ab878a78eae45fb22a59a9a5554e305067 Merge: 6ac644a bee1f75 Author: David S. Miller Date: Sun Oct 11 05:08:14 2015 -0700 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw: couple of fixes Just a couple of small fixes. ==================== Signed-off-by: David S. Miller commit bee1f753bfcb19660d8ad713b9dd3939630854b6 Author: Ido Schimmel Date: Thu Oct 8 15:17:38 2015 +0200 mlxsw: Fix bug in __mlxsw_item_bit_array_offset When calculating the shift needed in order to access a bit array element in a byte, we should multiply the index by the element size and not assume it is fixed at 2-bits. 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/item.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4b0c2541cbf223abd38b235146e30a3d207d3bfe Author: Elad Raz Date: Thu Oct 8 15:17:37 2015 +0200 mlxsw: switchx2: changing order of exit fallbacks Fixes: 31557f0f9755 ("mlxsw: Introduce Mellanox SwitchX-2 ASIC support") Signed-off-by: Elad Raz Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ac644a8ae2dabf884a1b01e82e32d96ffe6eee5 Author: WANG Cong Date: Wed Oct 7 16:47:32 2015 -0700 sch_hhf: fix return value of hhf_drop() Similar to commit c0afd9ce4d6a ("fq_codel: fix return value of fq_codel_drop()") ->drop() is supposed to return the number of bytes it dropped, but hhf_drop () returns the id of the bucket where it drops a packet from. Cc: Jamal Hadi Salim Cc: Terry Lam Signed-off-by: Cong Wang Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/sched/sch_hhf.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 825fcfce81921c9cc4ef801d844793815721e458 Author: Matt Fleming Date: Sat Oct 10 17:22:16 2015 +0100 MAINTAINERS: Change Matt Fleming's email address My Intel email address will soon expire. Replace it with my personal address so people still know where to send patches. Signed-off-by: Matt Fleming Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1444494136-10333-1-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4a06c8ac2fb3ef484579ce44f9b809bd310fad48 Merge: 97d0c93 7219473 Author: Linus Torvalds Date: Sat Oct 10 11:17:45 2015 -0700 Merge tag 'usb-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some small USB and PHY fixes and quirk updates for 4.3-rc5. Nothing major here, full details in the shortlog, and all of these have been in linux-next for a while" * tag 'usb-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: usb: Add device quirk for Logitech PTZ cameras USB: chaoskey read offset bug USB: Add reset-resume quirk for two Plantronics usb headphones. usb: renesas_usbhs: Add support for R-Car H3 usb: renesas_usbhs: fix build warning if 64-bit architecture usb: gadget: bdc: fix memory leak phy: berlin-sata: Fix module autoload for OF platform driver phy: rockchip-usb: power down phy when rockchip phy probe phy: qcom-ufs: fix build error when the component is built as a module commit 97d0c931c043646abd1f4c5446a8dfcaba162004 Merge: 91dbc04 0c556271 Author: Linus Torvalds Date: Sat Oct 10 11:09:55 2015 -0700 Merge tag 'tty-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial driver fixes from Greg KH: "Here are a few bug fixes for the tty core that resolve reported issues, and some serial driver fixes as well (including the much-reported imx driver problem) All of these have been in linux-next with no reported problems" * tag 'tty-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: drivers/tty: require read access for controlling terminal serial: 8250: add uart_config entry for PORT_RT2880 tty: fix data race on tty_buffer.commit tty: fix data race in tty_buffer_flush tty: fix data race in flush_to_ldisc tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c serial: atmel: fix error path of probe function tty: don't leak cdev in tty_cdev_add() Revert "serial: imx: remove unbalanced clk_prepare" commit 91dbc047e9c1284634ae3570c0382c2288c5548b Merge: ef19df6 b1d562a Author: Linus Torvalds Date: Sat Oct 10 11:03:31 2015 -0700 Merge tag 'staging-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging fixes from Greg KH: "Here are two tiny staging tree fixes for 4.3-rc5. One fixes the broken speakup subsystem as reported by a user, and the other removes an entry in the MAINTAINERS file for a developer that doesn't want to be listed anymore" * tag 'staging-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: speakup: fix speakup-r regression MAINTAINERS: Remove myself as nvec co-maintainer commit ef19df60c9506e7ffe78d6a60048936c4e76a0a2 Merge: bbecce8 41ada9d Author: Linus Torvalds Date: Sat Oct 10 10:58:27 2015 -0700 Merge tag 'char-misc-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver fixes from Greg KH: "Here are some small fixes for some misc drivers that resolve some reported issues. All of these have been linux-next for a while" * tag 'char-misc-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: mcb: Fix error handling in mcb_pci_probe() mei: hbm: fix error in state check logic nvmem: sunxi: Check for memory allocation failure nvmem: core: Fix memory leak in nvmem_cell_write nvmem: core: Handle shift bits in-place if cell->nbits is non-zero nvmem: core: fix the out-of-range leak in read/write() commit bbecce8d764807701f2ff56b440cd5f787b0c844 Merge: 1d8a12d da11f98 Author: Linus Torvalds Date: Sat Oct 10 10:51:55 2015 -0700 Merge git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: - MIPS didn't define the new ioremap_uc. Defined it as an alias for ioremap_uncached. - Replace workaround for MIPS16 build issue with a correct one. * git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Define ioremap_uc MIPS: UAPI: Ignore __arch_swab{16,32,64} when using MIPS16 Revert "MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16." commit 1d8a12d1de9d9d025d66c1b2a580a293cc5050e5 Merge: daf3761 9d99c71 Author: Linus Torvalds Date: Sat Oct 10 10:31:13 2015 -0700 Merge branch 'stable/for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb Pull swiotlb fixlet from Konrad Rzeszutek Wilk: "Enable the SWIOTLB under 32-bit PAE kernels. Nowadays most distros enable this due to CONFIG_HYPERVISOR|XEN=y which select SWIOTLB. But for those that are not interested in virtualization and wanting to use 32-bit PAE kernels and wanting to have working DMA operations - this configures it for them" * 'stable/for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb: swiotlb: Enable it under x86 PAE commit daf3761c9fcde0f4ca64321cbed6c1c86d304193 Author: Trond Myklebust Date: Fri Oct 9 13:44:34 2015 -0400 namei: results of d_is_negative() should be checked after dentry revalidation Leandro Awa writes: "After switching to version 4.1.6, our parallelized and distributed workflows now fail consistently with errors of the form: T34: ./regex.c:39:22: error: config.h: No such file or directory From our 'git bisect' testing, the following commit appears to be the possible cause of the behavior we've been seeing: commit 766c4cbfacd8" Al Viro says: "What happens is that 766c4cbfacd8 got the things subtly wrong. We used to treat d_is_negative() after lookup_fast() as "fall with ENOENT". That was wrong - checking ->d_flags outside of ->d_seq protection is unreliable and failing with hard error on what should've fallen back to non-RCU pathname resolution is a bug. Unfortunately, we'd pulled the test too far up and ran afoul of another kind of staleness. The dentry might have been absolutely stable from the RCU point of view (and we might be on UP, etc), but stale from the remote fs point of view. If ->d_revalidate() returns "it's actually stale", dentry gets thrown away and the original code wouldn't even have looked at its ->d_flags. What we need is to check ->d_flags where 766c4cbfacd8 does (prior to ->d_seq validation) but only use the result in cases where we do not discard this dentry outright" Reported-by: Leandro Awa Link: https://bugzilla.kernel.org/show_bug.cgi?id=104911 Fixes: 766c4cbfacd8 ("namei: d_is_negative() should be checked...") Tested-by: Leandro Awa Cc: stable@vger.kernel.org # v4.1+ Signed-off-by: Trond Myklebust Acked-by: Al Viro Signed-off-by: Linus Torvalds fs/namei.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 149fadf2ce82e0f8632fc1fb10a7ba6e0c977ee2 Merge: 71419b7 670aee3 Author: Linus Torvalds Date: Fri Oct 9 18:39:04 2015 -0700 Merge tag 'pm+acpi-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These are four fixes for bugs in the devfreq and cpufreq subsystems, including two regression fixes (one for a recent regression and one for a problem introduced in 4.2). Specifics: - Two fixes for cpufreq regressions, an acpi-cpufreq driver one introduced during the 4.2 cycle when we started to preserve cpufreq directories for offline CPUs and a general one introduced recently (Srinivas Pandruvada). - Two devfreq fixes, one for a double kfree() in an error code path and one for a confusing sysfs-related failure (Geliang Tang, Tobias Jakobi)" * tag 'pm+acpi-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: prevent lockup on reading scaling_available_frequencies cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus PM / devfreq: fix double kfree PM / devfreq: Fix governor_store() commit 71419b7b8484531626251d56aa6d48d90e646df1 Merge: f4ba1cf 7a5692e Author: Linus Torvalds Date: Fri Oct 9 18:01:26 2015 -0700 Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull strscpy powerpc fix from Chris Metcalf. Fix powerpc big-endian build. * 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: arch/powerpc: provide zero_bytemask() for big-endian commit f4ba1cf8a40bc9f136f8e050e79a81112bf02ccd Merge: fe621fd 601d629 Author: Linus Torvalds Date: Fri Oct 9 17:56:00 2015 -0700 Merge tag 'sound-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "We see various small fixes, but nothing looks too scary, all are small gentle bug fixes: - Most of changes are for ASoC codecs: Realtek, SGTL5000, TAS2552, TLV320, WM8962 - A couple of dwc and imx-ssi fixes - Usual oneliner HD-audio quirks - An old emux synth code fix" * tag 'sound-4.3-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: MAINTAINERS: Remove wm97xx entry ASoC: tas2552: fix dBscale-min declaration ALSA: synth: Fix conflicting OSS device registration on AWE32 ALSA: hda - Disable power_save_node for IDT 92HD73xx chips ALSA: hda - Apply SPDIF pin ctl to MacBookPro 12,1 ALSA: hda: Add dock support for ThinkPad T550 ASoC: dwc: fix dma stop transferring issue ASoC: dwc: correct irq clear method ASoC: tlv320aic3x: Prevent writing reserved registers on tlv320aic3104 CODECs ASoC: rt5645: Correct the naming and setting of ADC Boost Volume Control ASoC: sgtl5000: fix wrong register MIC_BIAS_VOLTAGE setup on probe ASoC: wm8962: balance pm_runtime_enable ASoC: imx-ssi: Fix DAI hardware signal inversions ASoC: sgtl5000: fix error message output for MicBias voltage ASoC: db1200: Fix DAI link format for db1300 and db1550 commit fe621fdead1165599a7422821a2923953fa1f8de Merge: 8140e73 9f30a04 Author: Linus Torvalds Date: Fri Oct 9 17:33:15 2015 -0700 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk fixes from Stephen Boyd: "A Samsung driver fix and a handful of TI driver fixes" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: ti: dflt: fix enable_reg validity check clk: ti: fix dual-registration of uart4_ick clk: ti: clk-7xx: Remove hardwired ABE clock configuration clk: samsung: fix cpu clock's flags checking commit 8140e73614c9f4685dbede6fd55605ee00fdb01c Merge: 0444555 88c6eb0 Author: Linus Torvalds Date: Fri Oct 9 17:25:26 2015 -0700 Merge tag 'mmc-v4.3-rc4' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC fixes from Ulf Hansson: "MMC host: - omap_hsmmc: Fix boot regressions for omap4430 - omap_hsmmc: Fix legacy boot regression for omap3 - sdhci-pxav3: Fix some clock issues for Armada 38x - sdhci-pxav3: Fix error handling at probe - sdhci-of-at91: Fix clock stabilization problem" * tag 'mmc-v4.3-rc4' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: sdhci-of-at91: use SDHCI_QUIRK2_NEED_DELAY_AFTER_INT_CLK_RST quirk mmc: sdhci: add quirk SDHCI_QUIRK2_NEED_DELAY_AFTER_INT_CLK_RST mmc: sdhci-pxav3: fix error handling of armada_38x_quirks mmc: sdhci-pxav3: disable clock inversion for HS MMC cards mmc: sdhci-pxav3: remove broken clock base quirk for Armada 38x sdhci driver mmc: host: omap_hsmmc: Fix MMC for omap3 legacy booting Revert "mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status" commit 0444555670350b419496686f4012b9cef808c105 Merge: 175d58c b0d3cc0 Author: Linus Torvalds Date: Fri Oct 9 16:58:11 2015 -0700 Merge tag 'dm-4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull dm fixes from Mike Snitzer: "Three stable fixes: - DM core AB-BA deadlock fix in the device destruction path (vs device creation's DM table swap). - DM raid fix to properly round up the region_size to the next power-of-2. - DM cache fix for a NULL pointer seen while switching from the "cleaner" cache policy. Two fixes for regressions introduced during the 4.3 merge: - request-based DM error propagation regressed due to incorrect changes introduced when adding the bi_error field to bio. - DM snapshot fix to only support snapshots that overflow if the client (e.g. lvm2) is prepared to deal with the associated snapshot status interface change" * tag 'dm-4.3-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm snapshot: add new persistent store option to support overflow dm cache: fix NULL pointer when switching from cleaner policy dm: fix request-based dm error reporting dm raid: fix round up of default region size dm: fix AB-BA deadlock in __dm_destroy() commit 175d58cfed70f132b8d4df39e19267ad6094bd16 Merge: 38aa0a5 7d35199 Author: Linus Torvalds Date: Fri Oct 9 16:39:35 2015 -0700 Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "These are small and assorted. Neil's is the oldest, I dropped the ball thinking he was going to send it in" * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: support NFSv2 export Btrfs: open_ctree: Fix possible memory leak Btrfs: fix deadlock when finalizing block group creation Btrfs: update fix for read corruption of compressed and shared extents Btrfs: send, fix corner case for reference overwrite detection commit 38aa0a59a6669af702c523e1d525b24ff5fd471b Merge: 5163ac7 c91aed9 Author: Linus Torvalds Date: Fri Oct 9 16:34:45 2015 -0700 Merge tag 'nfsd-4.3-1' of git://linux-nfs.org/~bfields/linux Pull nfsd bugfix from Bruce Fields: "Just one RDMA bugfix" * tag 'nfsd-4.3-1' of git://linux-nfs.org/~bfields/linux: svcrdma: handle rdma read with a non-zero initial page offset commit 5163ac76370dc5298219c92a4befeb9e23de6f66 Merge: c6fa8e6 5a37b15 Author: Linus Torvalds Date: Fri Oct 9 15:54:14 2015 -0700 Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Arnd Bergmann: "The fixes for this week include one small patch that was years in the making and that finally fixes using all eight CPUs on exynos542x. The rest are lots of minor changes for sunxi, imx, exynos and shmobile - fixing the minimum voltage for Allwinner A20 - thermal boot issue on SMDK5250. - invalid clock used for FIMD IOMMU. - audio on Renesas r8a7790/r8a7791 - invalid clock used for FIMD IOMMU - LEDs on exynos5422-odroidxu3-common - usb pin control for imx-rex - imx53: fix PMIC interrupt level - a Makefile typo" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: dts: Fix wrong clock binding for sysmmu_fimd1_1 on exynos5420 ARM: dts: Fix bootup thermal issue on smdk5250 ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain for sound ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain for sound arm-cci500: Don't enable PMU driver by default ARM: dts: fix usb pin control for imx-rex dts ARM: imx53: qsrb: fix PMIC interrupt level ARM: imx53: include IRQ dt-bindings header ARM: dts: add suspend opp to exynos4412 ARM: dts: Fix LEDs on exynos5422-odroidxu3 ARM: EXYNOS: reset Little cores when cpu is up ARM: dts: Fix Makefile target for sun4i-a10-itead-iteaduino-plus ARM: dts: sunxi: Raise minimum CPU voltage for sun7i-a20 to meet SoC specifications commit b0d3cc011e532d8c9db76cf717bcafa53c135595 Author: Mike Snitzer Date: Thu Oct 8 18:05:41 2015 -0400 dm snapshot: add new persistent store option to support overflow Commit 76c44f6d80 introduced the possibly for "Overflow" to be reported by the snapshot device's status. Older userspace (e.g. lvm2) does not handle the "Overflow" status response. Fix this incompatibility by requiring newer userspace code, that can cope with "Overflow", request the persistent store with overflow support by using "PO" (Persistent with Overflow) for the snapshot store type. Reported-by: Zdenek Kabelac Fixes: 76c44f6d80 ("dm snapshot: don't invalidate on-disk image on snapshot write overflow") Reviewed-by: Mikulas Patocka Signed-off-by: Mike Snitzer Documentation/device-mapper/snapshot.txt | 10 +++++++--- drivers/md/dm-exception-store.c | 6 +++--- drivers/md/dm-exception-store.h | 5 +++-- drivers/md/dm-snap-persistent.c | 17 ++++++++++++++--- drivers/md/dm-snap-transient.c | 3 +-- drivers/md/dm-snap.c | 14 +++++++++----- 6 files changed, 37 insertions(+), 18 deletions(-) commit 670aee3fc7ac37ae947f8b582d87b51d5fa36524 Merge: d61e87a 55582bc Author: Rafael J. Wysocki Date: Fri Oct 9 22:13:30 2015 +0200 Merge branches 'pm-devfreq' and 'pm-cpufreq' * pm-devfreq: PM / devfreq: fix double kfree PM / devfreq: Fix governor_store() * pm-cpufreq: cpufreq: prevent lockup on reading scaling_available_frequencies cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus commit 8c3ad9cb7343dc5f61b8cf3cdbe1016c5e7c2c8b Author: Christoph Hellwig Date: Fri Oct 9 15:03:26 2015 +0200 nfsd/blocklayout: accept any minlength Recent Linux clients have started to send GETLAYOUT requests with minlength less than blocksize. Servers aren't really allowed to impose this kind of restriction on layouts; see RFC 5661 section 18.43.3 for details. This has been observed to cause indefinite hangs on fsx runs on some clients. Cc: stable@vger.kernel.org Signed-off-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/blocklayout.c | 8 -------- 1 file changed, 8 deletions(-) commit 5adad9915472e180712030d730cdc476c6f8a60b Author: Joerg Roedel Date: Fri Oct 9 16:23:33 2015 +0200 iommu/amd: Fix NULL pointer deref on device detach When a device group is detached from its domain, the iommu core code calls into the iommu driver to detach each device individually. Before this functionality went into the iommu core code, it was implemented in the drivers, also in the AMD IOMMU driver as the device alias handling code. This code is still present, as there might be aliases that don't exist as real PCI devices (and are therefore invisible to the iommu core code). Unfortunatly it might happen now, that a device is unbound multiple times from its domain, first by the alias handling code and then by the iommu core code (or vice verca). This ends up in the do_detach function which dereferences the dev_data->domain pointer. When the device is already detached, this pointer is NULL and we get a kernel oops. Removing the alias code completly is not an option, as that would also remove the code which handles invisible aliases. The code could be simplified, but this is too big of a change outside the merge window. For now, just check the dev_data->domain pointer in do_detach and bail out if it is NULL. Reported-by: Andreas Hartmann Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit cbbc00be2ce3af5d708226a9563fa27cb4e6b6b8 Author: Jiang Liu Date: Fri Oct 9 22:07:31 2015 +0800 iommu/amd: Prevent binding other PCI drivers to IOMMU PCI devices AMD IOMMU driver makes use of IOMMU PCI devices, so prevent binding other PCI drivers to IOMMU PCI devices. This fixes a bug reported by Boris that system suspend/resume gets broken on AMD platforms. For more information, please refer to: https://lkml.org/lkml/2015/9/26/89 Fixes: 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()") Signed-off-by: Jiang Liu Cc: Borislav Petkov Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_init.c | 3 +++ 1 file changed, 3 insertions(+) commit 10abc7df9277a81971924a6c03f74e86d799daf1 Author: Marc Zyngier Date: Fri Oct 9 15:50:11 2015 +0100 irqdomain: Add an accessor for the of_node field As we're about to remove the of_node field from the irqdomain structure, introduce an accessor for it. Subsequent patches will take care of the actual repainting. Signed-off-by: Marc Zyngier Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1444402211-1141-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner include/linux/irqdomain.h | 5 +++++ 1 file changed, 5 insertions(+) commit e3096c9c7c645279808a6bf7ac2031b1895ddffb Author: Arnd Bergmann Date: Tue Oct 6 22:59:40 2015 +0200 genirq: Fix handle_bad_irq kerneldoc comment A recent cleanup removed the 'irq' parameter from many functions, but left the documentation for this in place for at least one function. This removes it. Fixes: bd0b9ac405e1 ("genirq: Remove irq argument from irq flow handlers") Reported-by: kbuild test robot Signed-off-by: Arnd Bergmann Cc: Grygorii Strashko Cc: Tony Lindgren Cc: Linus Walleij Cc: kbuild-all@01.org Cc: Austin Schuh Cc: Santosh Shilimkar Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/5400000.cD19rmgWjV@wuerfel Signed-off-by: Thomas Gleixner kernel/irq/handle.c | 1 - 1 file changed, 1 deletion(-) commit 9d67dc5da59d63f746aad8f6ec4fbb86d6486f76 Author: Arnd Bergmann Date: Tue Oct 6 22:24:50 2015 +0200 genirq: Export handle_bad_irq A cleanup of the omap gpio driver introduced a use of the handle_bad_irq() function in a device driver that can be a loadable module. This broke the ARM allmodconfig build: ERROR: "handle_bad_irq" [drivers/gpio/gpio-omap.ko] undefined! This patch exports the handle_bad_irq symbol in order to allow the use in modules. Signed-off-by: Arnd Bergmann Cc: Grygorii Strashko Cc: Santosh Shilimkar Cc: Linus Walleij Cc: Austin Schuh Cc: Tony Lindgren Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/5847725.4IBopItaOr@wuerfel Signed-off-by: Thomas Gleixner kernel/irq/handle.c | 1 + 1 file changed, 1 insertion(+) commit ca7beb1fa776412ff80708ae98a8467fe4c52737 Merge: 85121d6 d5a5209 Author: David S. Miller Date: Fri Oct 9 07:44:04 2015 -0700 Merge branch 'mlx' Or Gerlitz says: ==================== Mellanox driver update to 4.3-rc4 Small set of fixes for net, which includes Carol's patches, a fix from Achiad to have the right behaviour for mlx5 Eth devices w.r.t VLANs in promiscuous mode, a good-bye patch from Ido who left Mellanox and the 1st patch from Jiri to our NIC drivers (I love one-liners)... ==================== Signed-off-by: David S. Miller commit d5a52095afddee121b97c4aac250f18d06803b58 Author: Ido Shamay Date: Thu Oct 8 15:26:19 2015 +0300 MAINTAINERS: Update mlx4_en driver entry Remove Ido Shamay as co-maintainer for the mlx4 Ethernet driver, as he no longer works for Mellanox. Signed-off-by: Ido Shamay Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit c07543431e9f3d126d083808efa0e76461d8833b Author: Achiad Shochat Date: Thu Oct 8 15:26:18 2015 +0300 net/mlx5e: Disable VLAN filter in promiscuous mode When the device was set to promiscuous mode, we didn't disable VLAN filtering, which is wrong behaviour, fix that. Now when the device is set to promiscuous mode RX packets sent over any VLAN (or no VLAN tag at all) will be accepted. Signed-off-by: Achiad Shochat Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_flow_table.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 13b7938883ea6e70e7e23f30dece6f79d7a2961d Author: Jiri Pirko Date: Thu Oct 8 15:26:17 2015 +0300 net/mlx5: Fix typo in mlx5_query_port_pvlc We used the wrong register name for querying the PVLC register Fixes: a124d13ef59e ('net/mlx5_core: Add more query port helpers') Signed-off-by: Jiri Pirko Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/port.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 820d39f3c497df6c8e040b8dcc7c19eeaa312701 Author: Carol L Soto Date: Thu Oct 8 15:26:15 2015 +0300 net/mlx4_core: Avoid failing the interrupts test Test interrupts fails if not all completion vectors called request_irq. This case happens if only mlx4_en is loaded and we have more completion vectors than rx rings. Fixes: c66fa19c405a ('net/mlx4: Add EQ pool') Signed-off-by: Carol L Soto Acked-by: Matan Barak Signed-off-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/eq.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2bffa1503c5c06192eb1459180fac4416575a966 Author: Joe Thornber Date: Fri Oct 9 14:03:38 2015 +0100 dm cache: fix NULL pointer when switching from cleaner policy The cleaner policy doesn't make use of the per cache block hint space in the metadata (unlike the other policies). When switching from the cleaner policy to mq or smq a NULL pointer crash (in dm_tm_new_block) was observed. The crash was caused by bugs in dm-cache-metadata.c when trying to skip creation of the hint btree. The minimal fix is to change hint size for the cleaner policy to 4 bytes (only hint size supported). Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm-cache-policy-cleaner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 621bd0f6982badd6483acb191eb7b6226a578328 Author: Daniel Vetter Date: Tue Sep 29 09:56:53 2015 +0200 drm: Fix locking for sysfs dpms file With atomic drivers we need to make sure that (at least in general) property reads hold the right locks. But the legacy dpms property is special and can be read locklessly. Since userspace loves to just randomly look at that all the time (like with "status") do that. To make it clear that we play tricks use the READ_ONCE compiler barrier (and also for paranoia). Note that there's not really anything bad going on since even with the new atomic paths we eventually end up not chasing any pointers (and hence possibly freed memory and other fun stuff). The locking WARNING has been added in commit 88a48e297b3a3bac6022c03babfb038f1a886cea Author: Rob Clark Date: Thu Dec 18 16:01:50 2014 -0500 drm: add atomic properties but since drivers are converting not everyone will have seen this from the start. Jens reported this and submitted a patch to just grab the mode_config.connection_mutex, but we can do a bit better. v2: Remove unused variables I failed to git add for real. Reference: http://mid.gmane.org/20150928194822.GA3930@kernel.dk Reported-by: Jens Axboe Tested-by: Jens Axboe Cc: Rob Clark Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_sysfs.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit e87d68dd61035b52f5a4b9d91051c98893dad61e Merge: 266424b 7a57455 Author: Dave Airlie Date: Fri Oct 9 10:06:18 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes radeon and amdgpu fixes for 4.3. Highlights: - Move pm sysfs setup later in the driver init process to avoid problems with laptop scripts attempting to change pm settings before the driver has finished setting up the pm hardware. - Fix console restore if a drm app (e.g. X) is forcibly killed - Flag iceland support as experimental for now - Misc bug fixes * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: fix memory leak in amdgpu_vm_update_page_directory drm/amdgpu: fix 32-bit compiler warning drm/amdgpu: flag iceland as experimental drm/amdgpu: check before checking pci bridge registers drm/amdgpu: fix num_crtc on CZ drm/amdgpu: restore the fbdev mode in lastclose drm/radeon: restore the fbdev mode in lastclose drm/radeon: add quirk for ASUS R7 370 drm/amdgpu: add pm sysfs files late drm/radeon: add pm sysfs files late commit a452744bcbf706eac65abb4c98496a366820c60a Author: Mikulas Patocka Date: Thu Oct 1 15:17:43 2015 -0400 crash in md-raid1 and md-raid10 due to incorrect list manipulation The commit 55ce74d4bfe1b9444436264c637f39a152d1e5ac (md/raid1: ensure device failure recorded before write request returns) is causing crash in the LVM2 testsuite test shell/lvchange-raid.sh. For me the crash is 100% reproducible. The reason for the crash is that the newly added code in raid1d moves the list from conf->bio_end_io_list to tmp, then tests if tmp is non-empty and then incorrectly pops the bio from conf->bio_end_io_list (which is empty because the list was alrady moved). Raid-10 has a similar bug. Kernel Fault: Code=15 regs=000000006ccb8640 (Addr=0000000100000000) CPU: 3 PID: 1930 Comm: mdX_raid1 Not tainted 4.2.0-rc5-bisect+ #35 task: 000000006cc1f258 ti: 000000006ccb8000 task.ti: 000000006ccb8000 YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI PSW: 00001000000001001111111000001111 Not tainted r00-03 000000ff0804fe0f 000000001059d000 000000001059f818 000000007f16be38 r04-07 000000001059d000 000000007f16be08 0000000000200200 0000000000000001 r08-11 000000006ccb8260 000000007b7934d0 0000000000000001 0000000000000000 r12-15 000000004056f320 0000000000000000 0000000000013dd0 0000000000000000 r16-19 00000000f0d00ae0 0000000000000000 0000000000000000 0000000000000001 r20-23 000000000800000f 0000000042200390 0000000000000000 0000000000000000 r24-27 0000000000000001 000000000800000f 000000007f16be08 000000001059d000 r28-31 0000000100000000 000000006ccb8560 000000006ccb8640 0000000000000000 sr00-03 0000000000249800 0000000000000000 0000000000000000 0000000000249800 sr04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 IASQ: 0000000000000000 0000000000000000 IAOQ: 000000001059f61c 000000001059f620 IIR: 0f8010c6 ISR: 0000000000000000 IOR: 0000000100000000 CPU: 3 CR30: 000000006ccb8000 CR31: 0000000000000000 ORIG_R28: 000000001059d000 IAOQ[0]: call_bio_endio+0x34/0x1a8 [raid1] IAOQ[1]: call_bio_endio+0x38/0x1a8 [raid1] RP(r2): raid_end_bio_io+0x88/0x168 [raid1] Backtrace: [<000000001059f818>] raid_end_bio_io+0x88/0x168 [raid1] [<00000000105a4f64>] raid1d+0x144/0x1640 [raid1] [<000000004017fd5c>] kthread+0x144/0x160 Signed-off-by: Mikulas Patocka Fixes: 55ce74d4bfe1 ("md/raid1: ensure device failure recorded before write request returns.") Fixes: 95af587e95aa ("md/raid10: ensure device failure recorded before write request returns.") Signed-off-by: NeilBrown drivers/md/raid1.c | 4 ++-- drivers/md/raid10.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit f2dd80ecca5f06b46134f2bd811f046c503c756c Author: Daniel Axtens Date: Wed Sep 23 16:41:48 2015 +1000 powerpc/powernv: Panic on unhandled Machine Check All unrecovered machine check errors on PowerNV should cause an immediate panic. There are 2 reasons that this is the right policy: it's not safe to continue, and we're already trying to reboot. Firstly, if we go through the recovery process and do not successfully recover, we can't be sure about the state of the machine, and it is not safe to recover and proceed. Linux knows about the following sources of Machine Check Errors: - Uncorrectable Errors (UE) - Effective - Real Address Translation (ERAT) - Segment Lookaside Buffer (SLB) - Translation Lookaside Buffer (TLB) - Unknown/Unrecognised In the SLB, TLB and ERAT cases, we can further categorise these as parity errors, multihit errors or unknown/unrecognised. We can handle SLB errors by flushing and reloading the SLB. We can handle TLB and ERAT multihit errors by flushing the TLB. (It appears we may not handle TLB and ERAT parity errors: I will investigate further and send a followup patch if appropriate.) This leaves us with uncorrectable errors. Uncorrectable errors are usually the result of ECC memory detecting an error that it cannot correct, but they also crop up in the context of PCI cards failing during DMA writes, and during CAPI error events. There are several types of UE, and there are 3 places a UE can occur: Skiboot, the kernel, and userspace. For Skiboot errors, we have the facility to make some recoverable. For userspace, we can simply kill (SIGBUS) the affected process. We have no meaningful way to deal with UEs in kernel space or in unrecoverable sections of Skiboot. Currently, these unrecovered UEs fall through to machine_check_expection() in traps.c, which calls die(), which OOPSes and sends SIGBUS to the process. This sometimes allows us to stumble onwards. For example we've seen UEs kill the kernel eehd and khugepaged. However, the process killed could have held a lock, or it could have been a more important process, etc: we can no longer make any assertions about the state of the machine. Similarly if we see a UE in skiboot (and again we've seen this happen), we're not in a position where we can make any assertions about the state of the machine. Likewise, for unknown or unrecognised errors, we're not able to say anything about the state of the machine. Therefore, if we have an unrecovered MCE, the most appropriate thing to do is to panic. The second reason is that since e784b6499d9c ("powerpc/powernv: Invoke opal_cec_reboot2() on unrecoverable machine check errors."), we attempt a special OPAL reboot on an unhandled MCE. This is so the hardware can record error data for later debugging. The comments in that commit assert that we are heading down the panic path anyway. At the moment this is not always true. With UEs in kernel space, for instance, they are marked as recoverable by the hardware, so if the attempt to reboot failed (e.g. old Skiboot), we wouldn't panic() but would simply die() and OOPS. It doesn't make sense to be staggering on if we've just tried to reboot: we should panic(). Explicitly panic() on unrecovered MCEs on PowerNV. Update the comments appropriately. This fixes some hangs following EEH events on cxlflash setups. Signed-off-by: Daniel Axtens Reviewed-by: Andrew Donnellan Reviewed-by: Ian Munsie Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit fdf880a60835cd1dec2563463ac63ae3084e0ddc Author: Cyril Bur Date: Thu Oct 8 11:04:26 2015 +1100 powerpc: Fix checkstop in native_hpte_clear() with lockdep native_hpte_clear() is called in real mode from two places: - Early in boot during htab initialisation if firmware assisted dump is active. - Late in the kexec path. In both contexts there is no need to disable interrupts are they are already disabled. Furthermore, locking around the tlbie() is only required for pre POWER5 hardware. On POWER5 or newer hardware concurrent tlbie()s work as expected and on pre POWER5 hardware concurrent tlbie()s could result in deadlock. This code would only be executed at crashdump time, during which all bets are off, concurrent tlbie()s are unlikely and taking locks is unsafe therefore the best course of action is to simply do nothing. Concurrent tlbie()s are not possible in the first case as secondary CPUs have not come up yet. Signed-off-by: Cyril Bur Signed-off-by: Michael Ellerman arch/powerpc/include/asm/machdep.h | 9 +++++++-- arch/powerpc/mm/hash_native_64.c | 23 +++++++++++------------ 2 files changed, 18 insertions(+), 14 deletions(-) commit dcc909d90ccdbb73226397ff6d298f7af35b0e11 Author: Markus Pargmann Date: Tue Oct 6 20:03:54 2015 +0200 nbd: Add locking for tasks The timeout handling introduced in 7e2893a16d3e (nbd: Fix timeout detection) introduces a race condition which may lead to killing of tasks that are not in nbd context anymore. This was not observed or reproducable yet. This patch adds locking to critical use of task_recv and task_send to avoid killing tasks that already left the NBD thread functions. This lock is only acquired if a timeout occures or the nbd device starts/stops. Reported-by: Ben Hutchings Signed-off-by: Markus Pargmann Reviewed-by: Ben Hutchings Fixes: 7e2893a16d3e ("nbd: Fix timeout detection") Signed-off-by: Jens Axboe drivers/block/nbd.c | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) commit 55582bccdc1e89ecc973c260d46e247df675d4df Author: Srinivas Pandruvada Date: Wed Oct 7 13:50:44 2015 -0700 cpufreq: prevent lockup on reading scaling_available_frequencies When scaling_available_frequencies is read on an offlined cpu, then either lockup or junk values are displayed. This is caused by freed freq_table, which policy is using. Signed-off-by: Srinivas Pandruvada Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e25303676e18a7947185a34e26dd08cf0c0ea573 Author: Srinivas Pandruvada Date: Wed Oct 7 13:50:43 2015 -0700 cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus When freqdomain_cpus attribute is read from an offlined cpu, it will cause crash. This change prevents calling cpufreq_show_cpus when policy driver_data is NULL. Crash info: [ 170.814949] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 [ 170.814990] IP: [] _find_next_bit.part.0+0x10/0x70 [ 170.815021] PGD 227d30067 PUD 229e56067 PMD 0 [ 170.815043] Oops: 0000 [#2] SMP [ 170.816022] CPU: 3 PID: 3121 Comm: cat Tainted: G D OE 4.3.0-rc3+ #33 ... ... [ 170.816657] Call Trace: [ 170.816672] [] ? find_next_bit+0x15/0x20 [ 170.816696] [] cpufreq_show_cpus+0x5c/0xd0 [ 170.816722] [] show_freqdomain_cpus+0x19/0x20 [acpi_cpufreq] [ 170.816749] [] show+0x3b/0x60 [ 170.816769] [] sysfs_kf_seq_show+0xbc/0x130 [ 170.816793] [] kernfs_seq_show+0x23/0x30 [ 170.816816] [] seq_read+0xec/0x390 [ 170.816837] [] kernfs_fop_read+0x10a/0x160 [ 170.816861] [] __vfs_read+0x37/0x100 [ 170.816883] [] ? security_file_permission+0xa0/0xc0 [ 170.816909] [] vfs_read+0x83/0x130 [ 170.816930] [] SyS_read+0x55/0xc0 ... ... [ 170.817185] ---[ end trace bc6eadf82b2b965a ]--- Signed-off-by: Srinivas Pandruvada Acked-by: Viresh Kumar Cc: 4.2+ # 4.2+ Signed-off-by: Rafael J. Wysocki drivers/cpufreq/acpi-cpufreq.c | 3 +++ 1 file changed, 3 insertions(+) commit 88c6eb0e3b81a30514d21679735fa25d028c2299 Author: ludovic.desroches@atmel.com Date: Thu Sep 17 10:16:20 2015 +0200 mmc: sdhci-of-at91: use SDHCI_QUIRK2_NEED_DELAY_AFTER_INT_CLK_RST quirk The Atmel sdhci device needs the SDHCI_QUIRK2_NEED_DELAY_AFTER_INT_CLK_RST quirk. Without it, the internal clock could never stabilised when changing the sd clock frequency. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-at91.c | 1 + 1 file changed, 1 insertion(+) commit af951761d01c89eea8f1dcccf8010218e4b55817 Author: ludovic.desroches@atmel.com Date: Thu Sep 17 10:16:19 2015 +0200 mmc: sdhci: add quirk SDHCI_QUIRK2_NEED_DELAY_AFTER_INT_CLK_RST The Atmel sdhci device needs a new quirk. sdhci_set_clock set the Clock Control Register to 0 before computing the new value and writing it. It disables the internal clock which causes a reset mecanism. If we write the new value before this reset mecanism is done, it will prevent the stabilisation of the internal clock, so a delay is needed. This delay is about 2-3 cycles of the base clock. To be safe, a 1 ms delay is used. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 2 ++ drivers/mmc/host/sdhci.h | 5 +++++ 2 files changed, 7 insertions(+) commit 2162d9f41e7c4778b96b8e3b97adcedbadc861f1 Author: Marcin Wojtas Date: Tue Oct 6 03:22:37 2015 +0200 mmc: sdhci-pxav3: fix error handling of armada_38x_quirks In case of armada_38x_quirks error, all clocks should be cleaned-up, same as after mv_conf_mbus_windows failure. Signed-off-by: Marcin Wojtas Cc: # v4.2 Reviewed-by: Gregory CLEMENT Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pxav3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa7964147da57b2d40c2db2b6ed98fb7dc934bff Author: Nadav Haklai Date: Tue Oct 6 03:22:36 2015 +0200 mmc: sdhci-pxav3: disable clock inversion for HS MMC cards According to 'FE-2946959' erratum the clock inversion option is needed to support slow frequencies when the card input hold time requirement is high. This setting is not required for high speed MMC and might cause timing violation. Signed-off-by: Nadav Haklai Cc: # v4.2 Reviewed-by: Gregory CLEMENT Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pxav3.c | 3 +++ 1 file changed, 3 insertions(+) commit 5de76bfcb1e5ac66c57b99e8e193dacac7416f0e Author: Nadav Haklai Date: Tue Oct 6 03:22:35 2015 +0200 mmc: sdhci-pxav3: remove broken clock base quirk for Armada 38x sdhci driver shci-pxav3 driver is enabling by default the SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN quirk. However this quirk is not required for Armada 38x and leads to wrong clock setting in the divider. Signed-off-by: Nadav Haklai Signed-off-by: Marcin Wojtas Cc: # v4.2 Reviewed-by: Gregory CLEMENT Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pxav3.c | 1 + 1 file changed, 1 insertion(+) commit 7a574557e62dc3d2d7ed55fa0b99e7d5bb403878 Author: Sudip Mukherjee Date: Thu Oct 8 19:28:01 2015 +0530 drm/amdgpu: fix memory leak in amdgpu_vm_update_page_directory If amdgpu_ib_get() fails we returned the error code but we missed freeing ib. Cc: "Christian König" Cc: Jammy Zhou Cc: Chunming Zhou Cc: Alex Deucher Cc: "monk.liu" Signed-off-by: Sudip Mukherjee Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7a5692e6e533fd379081ab06fb58f3f5ee4d80bc Author: Chris Metcalf Date: Wed Oct 7 09:29:11 2015 -0400 arch/powerpc: provide zero_bytemask() for big-endian For some reason, only the little-endian flavor of powerpc provided the zero_bytemask() implementation. Reported-by: Michal Sojka Acked-by: Michael Ellerman Signed-off-by: Chris Metcalf arch/powerpc/include/asm/word-at-a-time.h | 5 +++++ 1 file changed, 5 insertions(+) commit 92b279070dd6c94265db32748bbeb5b583588de9 Author: Ben Hutchings Date: Tue Oct 6 12:31:33 2015 +0100 crypto: camellia_aesni_avx - Fix CPU feature checks We need to explicitly check the AVX and AES CPU features, as we can't infer them from the related XSAVE feature flags. For example, the Core i3 2310M passes the XSAVE feature test but does not implement AES-NI. Reported-and-tested-by: Stéphane Glondu References: https://bugs.debian.org/800934 Fixes: ce4f5f9b65ae ("x86/fpu, crypto x86/camellia_aesni_avx: Simplify...") Signed-off-by: Ben Hutchings Cc: stable # 4.2 Signed-off-by: Herbert Xu arch/x86/crypto/camellia_aesni_avx_glue.c | 5 +++++ 1 file changed, 5 insertions(+) commit a66d7f724a96d6fd279bfbd2ee488def6b081bea Author: Dave Kleikamp Date: Mon Oct 5 10:08:51 2015 -0500 crypto: sparc - initialize blkcipher.ivsize Some of the crypto algorithms write to the initialization vector, but no space has been allocated for it. This clobbers adjacent memory. Cc: stable@vger.kernel.org Signed-off-by: Dave Kleikamp Signed-off-by: Herbert Xu arch/sparc/crypto/aes_glue.c | 2 ++ arch/sparc/crypto/camellia_glue.c | 1 + arch/sparc/crypto/des_glue.c | 2 ++ 3 files changed, 5 insertions(+) commit 85121d6ee6973f98789bf7343f7f636c01e2de19 Author: Carol L Soto Date: Wed Oct 7 12:31:46 2015 -0400 net/mlx4: Remove shared_ports variable at mlx4_enable_msi_x If we get MAX_MSIX interrupts would like to have each receive ring with his own msix interrupt line. Do not need the shared_ports variable at mlx4_enable_msix Fixes: 9293267a3e2a ('net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX') Signed-off-by: Carol L Soto Acked-by: Matan Barak Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 9d3a6386c8238bfacf57ee9dac68ec4b40b302fe Author: Jean Delvare Date: Wed Oct 7 10:26:38 2015 +0200 net: mdio-octeon: Drop obsolete Kconfig advice "Y" was the right answer for MDIO_OCTEON when this option was only available on CAVIUM_OCTEON_SOC. But now that the option is visible on all (64-bit) systems, this piece of advice no longer makes sense. This helper module is selected automatically by drivers which need it anyway. Signed-off-by: Jean Delvare Fixes: a6d6786452 ("net: mdio-octeon: Modify driver to work on both ThunderX and Octeon") Cc: Florian Fainelli Cc: Sunil Goutham Cc: Radha Mohan Chintakuntla Cc: David Daney Cc: David S. Miller Acked-by: David Daney Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 2 -- 1 file changed, 2 deletions(-) commit bcb9db49bb9da895ee809bfb2718d664dfb3ee2f Author: Arnd Bergmann Date: Wed Oct 7 08:58:34 2015 +0200 mlxsw: fix warnings for big-endian 32-bit dma_addr_t The recently added mlxsw driver produces warnings in ARM allmodconfig: drivers/net/ethernet/mellanox/mlxsw/pci.c: In function 'mlxsw_pci_cmd_exec': drivers/net/ethernet/mellanox/mlxsw/pci.c:1585:59: warning: right shift count >= width of type [-Wshift-count-overflow] linux/byteorder/big_endian.h:38:51: note: in definition of macro '__cpu_to_be32' drivers/net/ethernet/mellanox/mlxsw/pci.c:76:2: note: in expansion of macro 'iowrite32be' This uses upper_32_bits() to extract the bits while avoiding that warning. Signed-off-by: Arnd Bergmann Acked-by: Jiri Pirko Fixes: eda6500a987a "mlxsw: Add PCI bus implementation" Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6bf0577374cfb6c2301dbf4934a4f23ad3d72763 Author: Alexei Starovoitov Date: Tue Oct 6 20:46:07 2015 -0700 bpf: clear sender_cpu before xmit Similar to commit c29390c6dfee ("xps: must clear sender_cpu before forwarding") the skb->sender_cpu needs to be cleared before xmit. Fixes: 3896d655f4d4 ("bpf: introduce bpf_clone_redirect() helper") Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/core/filter.c | 1 + 1 file changed, 1 insertion(+) commit d40496a56430eac0d330378816954619899fe303 Author: WANG Cong Date: Tue Oct 6 17:23:47 2015 -0700 act_mirred: clear sender cpu before sending to tx Similar to commit c29390c6dfee ("xps: must clear sender_cpu before forwarding") the skb->sender_cpu needs to be cleared when moving from Rx Tx, otherwise kernel could crash. Fixes: 2bd82484bb4c ("xps: fix xps for stacked devices") Cc: Eric Dumazet Cc: Jamal Hadi Salim Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/sched/act_mirred.c | 1 + 1 file changed, 1 insertion(+) commit c72eda0608a30ca6aa8722d4afdbd2557b3c9345 Author: Paul Moore Date: Tue Oct 6 15:03:53 2015 -0400 af_unix: constify the sock parameter in unix_sk() Make unix_sk() just like inet[6]_sk() by constify'ing the sock parameter. Signed-off-by: Paul Moore Signed-off-by: David S. Miller include/net/af_unix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 123e20b14530b57bd75e295961d2c1f8c48455bf Author: Tony Lindgren Date: Wed Oct 7 06:22:25 2015 -0700 mmc: host: omap_hsmmc: Fix MMC for omap3 legacy booting Starting with commit 7d607f917008 ("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") MMC on omap3 stopped working for legacy booting. This is because legacy booting sets up some of the resource in the platform init code, and for optional regulators always seem to return -EPROBE_DEFER for the legacy booting. Let's fix the issue by checking for device tree based booting for now. Then when omap3 boots in device tree only mode, this patch can be just reverted. Fixes: 7d607f917008 ("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") Cc: Felipe Balbi Cc: Kishon Vijay Abraham I Cc: Nishanth Menon Cc: Russell King Signed-off-by: Tony Lindgren Tested-by: Russell King Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bb2726b52f2abdf46339a2d1293f76b5d5752705 Author: Tony Lindgren Date: Wed Oct 7 06:22:24 2015 -0700 Revert "mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status" This reverts commit c55d7a0553643a7e8f120688b82b594471084d3c. Without reverting this commit we get "unbalanced disables for pbias_mmc_omap4" errors on omap4430. It seems that 4430 and 4460 behave in a different way for the PBIAS regulator registers and until that has been debugged further we cannot rely on the regulator status registers in hardare on 4430. Fixes: 7d607f917008 ("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") Cc: Felipe Balbi Cc: Kishon Vijay Abraham I Cc: Nishanth Menon Cc: Russell King Signed-off-by: Tony Lindgren Tested-by: Russell King Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit c3984cc994377671f18d3d719ddd86b5107457ee Merge: 8ace60f a54c8f0 Author: Jens Axboe Date: Wed Oct 7 13:50:17 2015 -0600 Merge branch 'stable/for-jens-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus Konrad writes: Please git pull an update branch to your 'for-4.3/drivers' branch (which oddly I don't see does not have the previous pull?) git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git stable/for-jens-4.3 which has two fixes - one where we use the Xen blockfront EFI driver and don't release all the requests, the other if the allocation of resources for a particular state failed - we would go back 'Closing' and assume that an structure would be allocated while in fact it may not be - and crash. commit 9d99c7123c9af5f47a2037933a3ffaec3e37efad Author: Christian Melki Date: Mon Oct 5 17:31:33 2015 +0200 swiotlb: Enable it under x86 PAE Most distributions end up enabling SWIOTLB already with 32-bit kernels due to the combination of CONFIG_HYPERVISOR_GUEST|CONFIG_XEN=y as those end up requiring the SWIOTLB. However for those that are not interested in virtualization and run in 32-bit they will discover that: "32-bit PAE 4.2.0 kernel (no IOMMU code) would hang when writing to my USB disk. The kernel spews million(-ish messages per sec) to syslog, effectively "hanging" userspace with my kernel. Oct 2 14:33:06 voodoochild kernel: [ 223.287447] nommu_map_sg: overflow 25dcac000+1024 of device mask ffffffff Oct 2 14:33:06 voodoochild kernel: [ 223.287448] nommu_map_sg: overflow 25dcac000+1024 of device mask ffffffff Oct 2 14:33:06 voodoochild kernel: [ 223.287449] nommu_map_sg: overflow 25dcac000+1024 of device mask ffffffff ... etc ..." Enabling it makes the problem go away. N.B. With a6dfa128ce5c414ab46b1d690f7a1b8decb8526d "config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected" we also have the important part of the SG macros enabled to make this work properly - in case anybody wants to backport this patch. Reported-and-Tested-by: Christian Melki Signed-off-by: Christian Melki Signed-off-by: Konrad Rzeszutek Wilk arch/x86/Kconfig | 1 + 1 file changed, 1 insertion(+) commit a54c8f0f2d7df525ff997e2afe71866a1a013064 Author: Cathy Avery Date: Fri Oct 2 09:35:01 2015 -0400 xen-blkfront: check for null drvdata in blkback_changed (XenbusStateClosing) xen-blkfront will crash if the check to talk_to_blkback() in blkback_changed()(XenbusStateInitWait) returns an error. The driver data is freed and info is set to NULL. Later during the close process via talk_to_blkback's call to xenbus_dev_fatal() the null pointer is passed to and dereference in blkfront_closing. CC: stable@vger.kernel.org Signed-off-by: Cathy Avery Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkfront.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 601d62959d08a450d4666c728ddd2f47c5ba1cfe Merge: 225db57 e4fc141 Author: Takashi Iwai Date: Wed Oct 7 20:11:21 2015 +0200 Merge tag 'asoc-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.3 Quite a few fixes here but they're all very small and driver specific, none of them really stand out if you aren't using the relevant hardware but they're all useful if you do happen to have an affected device. commit 15e3d5a285ab9283136dba34bbf72886d9146706 Author: Christoph Hellwig Date: Sat Oct 3 19:16:07 2015 +0200 3w-9xxx: don't unmap bounce buffered commands 3w controller don't dma map small single SGL entry commands but instead bounce buffer them. Add a helper to identify these commands and don't call scsi_dma_unmap for them. Based on an earlier patch from James Bottomley. Fixes: 118c85 ("3w-9xxx: fix command completion race") Reported-by: Tóth Attila Tested-by: Tóth Attila Signed-off-by: Christoph Hellwig Acked-by: Adam Radford Signed-off-by: James Bottomley drivers/scsi/3w-9xxx.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) commit c6fa8e6de3dc420cba092bf155b2ed25bcd537f7 Merge: e82fa92 62c6c61 Author: Linus Torvalds Date: Wed Oct 7 18:17:46 2015 +0100 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "This addresses a couple of issues found with RT, a broken initrd message in the console log and a simple performance fix for some MMC workloads. Summary: - A couple of locking fixes for RT kernels - Avoid printing bogus initrd warnings when initrd isn't present - Performance fix for random mmap file readahead - Typo fix" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: replace read_lock to rcu lock in call_break_hook arm64: Don't relocate non-existent initrd arm64: convert patch_lock to raw lock arm64: readahead: fault retry breaks mmap file read random detection arm64: debug: Fix typo in debug-monitors.c commit e82fa92e6208fa3d82c28bf006aea98c2cd6df1b Merge: 8ace60f d663bab Author: Linus Torvalds Date: Wed Oct 7 18:05:09 2015 +0100 Merge tag 'fbdev-fixes-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev fixes from Tomi Valkeinen: - fbdev: Minor fixes to broadsheetfb, fsl-diu-fb, mb862xxfb, tridentfb, omapfb - display-timing: Fix memory leak in error path * tag 'fbdev-fixes-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: video: of: fix memory leak fbdev: broadsheetfb: fix memory leak OMAPDSS: panel-sony-acx565akm: Export OF module alias information fbdev: omap2: connector-dvi: use of_get_i2c_adapter_by_node interface tridentfb: Fix set_lwidth on TGUI9440 and CYBER9320 tridentfb: fix hang on Blade3D with CONFIG_CC_OPTIMIZE_FOR_SIZE video: fbdev: mb862xx: Fix module autoload for OF platform driver video: fbdev: fsl: Fix the sleep function for FSL DIU module commit 00e6fa5fe15c0eccc95a9d1afc4615e467ee8dc9 Merge: a0eeb8d 9fb4765 Author: Ingo Molnar Date: Wed Oct 7 18:33:10 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fix from Arnaldo Carvalho de Melo: - Fix build break on (at least) powerpc due to sample_reg_masks, not being available for linking. (Sukadev Bhattiprolu) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 1266963170f576d4d08e6310b6963e26d3ff9d1e Author: Sasha Levin Date: Wed Oct 7 11:03:28 2015 -0500 PCI: Prevent out of bounds access in numa_node override 63692df103e9 ("PCI: Allow numa_node override via sysfs") didn't check that the numa node provided by userspace is valid. Passing a node number too high would attempt to access invalid memory and trigger a kernel panic. Fixes: 63692df103e9 ("PCI: Allow numa_node override via sysfs") Signed-off-by: Sasha Levin Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.19+ drivers/pci/pci-sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4fc141d2a022a63c87a4851b3c688eca6a1647b Merge: 1e2fa4c 2d1180e 57622ae Author: Mark Brown Date: Wed Oct 7 16:07:50 2015 +0100 Merge remote-tracking branches 'asoc/fix/tlv320aic3x' and 'asoc/fix/wm8962' into asoc-linus commit 1e2fa4cfdbf21b3c071e0d9739dce5aac9edcb85 Merge: 049e6dd e74679b 924eb47 b7b01d3 ff6afc8 8c1a9d6 e256da8 e260046 Author: Mark Brown Date: Wed Oct 7 16:07:16 2015 +0100 Merge remote-tracking branches 'asoc/fix/db1200', 'asoc/fix/dwc', 'asoc/fix/imx-ssi', 'asoc/fix/maintainers', 'asoc/fix/rt5645', 'asoc/fix/sgtl5000' and 'asoc/fix/tas2552' into asoc-linus commit 028423b0d8fa27c30a46da4af2a5cab230369de6 Author: Arnd Bergmann Date: Wed Oct 7 09:41:27 2015 +0200 drm/amdgpu: fix 32-bit compiler warning The new amdgpu driver passes a user space pointer in a 64-bit structure member, which is the correct way to do it, but it attempts to directly cast it to a __user pointer in the kernel, which causes a warning in three places: drm/amd/amdgpu/amdgpu_cs.c: In function 'amdgpu_cs_parser_init': drm/amd/amdgpu/amdgpu_cs.c:180:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] chunk_array_user = (uint64_t __user *)(cs->in.chunks); This changes all three to add an intermediate cast to 'unsigned long' as other drivers do. This avoids the warning and works correctly on both 32-bit and 64-bit architectures. Fixes: e60b344f6c0eff ("drm/amdgpu: optimize amdgpu_parser_init") Reviewed-by: Christian König Signed-off-by: Arnd Bergmann Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9fb4765451f22c5e782c1590747717550bff34b2 Author: Sukadev Bhattiprolu Date: Thu Sep 24 17:53:49 2015 -0400 perf tools: Fix build break on powerpc due to sample_reg_masks perf_regs.c does not get built on Powerpc as CONFIG_PERF_REGS is false. So the weak definition for 'sample_regs_masks' doesn't get picked up. Adding perf_regs.o to util/Build unconditionally, exposes a redefinition error for 'perf_reg_value()' function (due to the static inline version in util/perf_regs.h). So use #ifdef HAVE_PERF_REGS_SUPPORT' around that function. Signed-off-by: Sukadev Bhattiprolu Acked-by: Jiri Olsa Cc: Naveen N. Rao Cc: Stephane Eranian Cc: linuxppc-dev@ozlabs.org Link: http://lkml.kernel.org/r/20150930182836.GA27858@us.ibm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 2 +- tools/perf/util/perf_regs.c | 2 ++ tools/perf/util/perf_regs.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) commit 8ace60f8b760ff79aa2734e5e96223deae69f5f2 Merge: 07443ce 176fc2d Author: Linus Torvalds Date: Wed Oct 7 14:15:49 2015 +0100 Merge tag 'regmap-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap fixes from Mark Brown: "A couple of fixes for the debugfs information on the register map, fixing issues with very small reads potentially causing underflows and wraparounds" * tag 'regmap-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: debugfs: Don't bother actually printing when calculating max length regmap: debugfs: Ensure we don't underflow when printing access masks commit 07443cecdf68b4cf4c7d8ee0dbe0b2aa94c3e661 Merge: 21f3c96 c2c80bd Author: Linus Torvalds Date: Wed Oct 7 14:13:10 2015 +0100 Merge tag 'spi-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A couple of very minor fixes, one for error handling in the Davinci driver probe function and another making the Renesas sh-msiof DT binding documentation correspond to what's actually implemented" * tag 'spi-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: sh-msiof: Match renesas,rx-fifo-size in DT bindings doc with driver spi: davinci: fix handling platform_get_irq result commit 21f3c96188f1a1e592174bef3180d147e06f7b89 Merge: 79c7c7a 22ca03a Author: Linus Torvalds Date: Wed Oct 7 14:11:47 2015 +0100 Merge tag 'regulator-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fixes from Mark Brown: "Two fixes here, one device specific fix for axp20x and a core fix for cases where one regulator is supplying another which broke probe deferral, substituting in a dummy regulator too aggressively" * tag 'regulator-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: core: Handle probe deferral from DT when resolving supplies regulator: axp20x: Fix enable bit indexes for DCDC4 and DCDC5 commit 41747509b437dcca880b52a035453f5e4ba14aa4 Merge: 6087286 ab38a7b Author: David S. Miller Date: Wed Oct 7 05:03:16 2015 -0700 Merge branch 'ovs-ct-fixes' Joe Stringer says: ==================== OVS conntrack fixes for net The userspace side of the Open vSwitch conntrack changes is currently undergoing review, which has highlighted some minor bugs in the existing conntrack implementation in the kernel, as well as pointing out some future-proofing that can be done on the interface to reduce the need for additional compatibility code in future. The biggest changes here are to the userspace API for the ct_state match field and the CT action. This series proposes to firstly extend the ct_state match field to 32 bits, ensuring to reject any currently unsupported bits. Secondly, rather than representing CT action flags within a 32-bit field, simply use a netlink attribute as presence of the single flag that is defined today. This also serves to reject unsupported ct action flag bits. v4: Use 12-character abbreviated hashes in commit messages. v3: Fully acked. v2: Address minor style feedback, add acks. v1: Initial post. ==================== Signed-off-by: David S. Miller commit ab38a7b5a4493a3658d891a8e91f9ffcb3d2defb Author: Joe Stringer Date: Tue Oct 6 11:00:01 2015 -0700 openvswitch: Change CT_ATTR_FLAGS to CT_ATTR_COMMIT Previously, the CT_ATTR_FLAGS attribute, when nested under the OVS_ACTION_ATTR_CT, encoded a 32-bit bitmask of flags that modify the semantics of the ct action. It's more extensible to just represent each flag as a nested attribute, and this requires no additional error checking to reject flags that aren't currently supported. Suggested-by: Ben Pfaff Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 14 ++++---------- net/openvswitch/conntrack.c | 13 ++++++------- 2 files changed, 10 insertions(+), 17 deletions(-) commit fbccce5965a58d56aaed9e9acd1bec75d8a66e87 Author: Joe Stringer Date: Tue Oct 6 11:00:00 2015 -0700 openvswitch: Extend ct_state match field to 32 bits The ct_state field was initially added as an 8-bit field, however six of the bits are already being used and use cases are already starting to appear that may push the limits of this field. This patch extends the field to 32 bits while retaining the internal representation of 8 bits. This should cover forward compatibility of the ABI for the foreseeable future. This patch also reorders the OVS_CS_F_* bits to be sequential. Suggested-by: Jarno Rajahalme Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 8 ++++---- net/openvswitch/conntrack.c | 2 +- net/openvswitch/conntrack.h | 4 ++-- net/openvswitch/flow_netlink.c | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) commit 6f225952461b5e9b5520d0dc6e2ff0af57874fbb Author: Joe Stringer Date: Tue Oct 6 10:59:59 2015 -0700 openvswitch: Reject ct_state unsupported bits Previously, if userspace specified ct_state bits in the flow key which are currently undefined (and therefore unsupported), then they would be ignored. This could cause unexpected behaviour in future if userspace is extended to support additional bits but attempts to communicate with the current version of the kernel. This patch rectifies the situation by rejecting such ct_state bits. Fixes: 7f8a436eaa2c "openvswitch: Add conntrack action" Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/conntrack.h | 12 ++++++++++++ net/openvswitch/flow_netlink.c | 6 ++++++ 2 files changed, 18 insertions(+) commit ec0d043d05e6e3c0c2fac5de922c800c027c6386 Author: Joe Stringer Date: Tue Oct 6 10:59:58 2015 -0700 openvswitch: Ensure flow is valid before executing ct The ct action uses parts of the flow key, so we need to ensure that it is valid before executing that action. Fixes: 7f8a436eaa2c "openvswitch: Add conntrack action" Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 6 ++++++ 1 file changed, 6 insertions(+) commit b8f2257069f179c7bdedc9501c1623070c4c37bb Author: Joe Stringer Date: Tue Oct 6 10:59:57 2015 -0700 openvswitch: Fix skb leak in ovs_fragment() If ovs_fragment() was unable to fragment the skb due to an L2 header that exceeds the supported length, skbs would be leaked. Fix the bug. Fixes: 7f8a436eaa2c "openvswitch: Add conntrack action" Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 0a7cc172a01e4a203667fb601cd80131db8d0c9a Author: Joe Stringer Date: Tue Oct 6 10:59:56 2015 -0700 openvswitch: Fix typos in CT headers These comments hadn't caught up to their implementations, fix them. Fixes: 7f8a436eaa2c "openvswitch: Add conntrack action" Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 60872867d83581635d7b2948a027449ef5c9be32 Merge: 6e28b00 4d7f3e7 Author: David S. Miller Date: Wed Oct 7 04:56:12 2015 -0700 Merge branch 'dsa-unbind' Neil Armstrong says: ==================== net: dsa: complete and fix the dsa unbinding In order to cleanly unbind the dsa core, either as a module removal, or a platform device unbind, switch the allocation the their devm_ counterparts and complete the destroy functions. First, the missing kfree were added, the remove function were completed then kfree were removed in favor to devm_ calls. The last patch is an way to cleanly exit the probe when no switch is found in the discover process. The patches are based on the current net. v3: - make checkpatch happy with 1/5 & 5/5 - fix 5/5 exit path with a goto ==================== Signed-off-by: David S. Miller commit 4d7f3e757c15051b4521a59791de87ce748c0eb2 Author: Neil Armstrong Date: Tue Oct 6 15:40:43 2015 +0100 net: dsa: exit probe if no switch were found If no switch were found in dsa_setup_dst, return -ENODEV and exit the dsa_probe cleanly. Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit d4ac35d6ed82e6c96ed5c016ea46fad31294fa7a Author: Neil Armstrong Date: Tue Oct 6 15:40:37 2015 +0100 net: dsa: switch to devm_ calls and remove kfree calls Now the kfree calls exists in the the remove functions, remove them in all places except the of_probe functions and replace allocation calls with their devm_ counterparts. Reviewed-by: Florian Fainelli Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) commit cbc5d90b378cd255ffedeb12f5affe243230d47e Author: Neil Armstrong Date: Tue Oct 6 15:40:32 2015 +0100 net: dsa: complete dsa_switch_destroy When unbinding dsa, complete the dsa_switch_destroy to unregister the fixed link phy then cleanly unregister and destroy the net devices. Reviewed-by: Florian Fainelli Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit e410ddb89ee8e68103ea58938b4972da594e3d2d Author: Neil Armstrong Date: Tue Oct 6 15:40:25 2015 +0100 net: dsa: add missing dsa_switch mdiobus remove To prevent memory leakage on unbinding, add missing mdiobus unregister and unallocation calls. Reviewed-by: Florian Fainelli Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 2 ++ 1 file changed, 2 insertions(+) commit 1023d2ec1e8bd63ede9ed1d93ebb797f650859b7 Author: Neil Armstrong Date: Tue Oct 6 15:39:53 2015 +0100 net: dsa: add missing kfree on remove To prevent memory leakage on unbinding, add missing kfree calls. Includes minor cosmetic change to make patch clean. Signed-off-by: Neil Armstrong Signed-off-by: David S. Miller net/dsa/dsa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 6e28b000825d959cb0c0b8fea8c2f132ddc516dc Author: David Ahern Date: Mon Oct 5 08:32:51 2015 -0600 net: Fix vti use case with oif in dst lookups for IPv6 It occurred to me yesterday that 741a11d9e4103 ("net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set") means that xfrm6_dst_lookup needs the FLOWI_FLAG_SKIP_NH_OIF flag set. This latest commit causes the oif to be considered in lookups which is known to break vti. This explains why 58189ca7b274 did not the IPv6 change at the time it was submitted. Fixes: 42a7b32b73d6 ("xfrm: Add oif to dst lookups") Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv6/xfrm6_policy.c | 1 + 1 file changed, 1 insertion(+) commit d663baba8b16f3097ac3fb5baf97c54970d2f1ff Author: Sudip Mukherjee Date: Wed Sep 30 15:24:08 2015 +0530 video: of: fix memory leak If of_parse_display_timing() fails we are printing an error message and jumping to the error path but we missed freeing "dt". Signed-off-by: Sudip Mukherjee Signed-off-by: Tomi Valkeinen drivers/video/of_display_timing.c | 1 + 1 file changed, 1 insertion(+) commit 90d2c056bd85bbb47104c52e08eecf8408163a54 Author: Mitch Williams Date: Sat Oct 3 17:13:05 2015 -0700 i40e/i40evf: set AQ count after memory allocation The standard way to check if the AQ is enabled is to look at the count field. So we should only set this field after we have successfully allocated memory. To do otherwise is to incite panic among the populace. Signed-off-by: Mitch Williams Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_adminq.c | 4 ++-- drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit c2c80bdb9e91b412ea68f6dcc49c5d7b91e0b930 Merge: 049e6dd 8494cde eb8d0ac Author: Mark Brown Date: Wed Oct 7 11:43:39 2015 +0100 Merge remote-tracking branches 'spi/fix/davinci' and 'spi/fix/sh-msiof' into spi-linus commit 02685b1df0461ce4c23d263b66ea0aac66450d13 Merge: 499f3aa 1c27df1 Author: Joerg Roedel Date: Wed Oct 7 12:23:24 2015 +0200 Merge branch 'for-joerg/arm-smmu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into iommu/fixes commit 79c7c7acd25689b1d7669bdb33fb3cb7c64541fe Merge: 3f5e4a3 990486c Author: Linus Torvalds Date: Wed Oct 7 09:52:42 2015 +0100 Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull strscpy fixes from Chris Metcalf : "This patch series fixes up a couple of architecture issues where strscpy wasn't configured correctly (missing on h8300, duplicating local and asm-generic copies on powerpc and tile). It also adds a use of zero_bytemask() to the final store for strscpy to avoid writing uninitialized data to the destination. However, to make this work we had to add support for zero_bytemask() to the two architectures that didn't have it (alpha and tile), because they were providing their own local copies, but didn't provide the zero_bytemask() that was previously only required when building with CONFIG_DCACHE_WORD_ACCESS" [ Side note: there is still no actual users of strscpy except for the one preexisting use in arch/tile that predates the generic version. So this is all about fixing the infrastructure so that we eventually can start using it. - Linus ] * 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: strscpy: zero any trailing garbage bytes in the destination word-at-a-time.h: support zero_bytemask() on alpha and tile word-at-a-time.h: fix some Kbuild files commit 3f5e4a311619533bfc742f2d8e04510334dd0dd5 Merge: a0eeb8d e5a5d92 Author: Linus Torvalds Date: Wed Oct 7 09:35:15 2015 +0100 Merge tag 'for-linus-20151006' of git://git.infradead.org/linux-mtd Pull MTD fixes from Brian Norris: "A few MTD fixes: - mxc_nand: a "refactoring only" change in 4.3-rc1 had some bad pointer (array) arithmetic. Fix that - sunxi_nand: - Fix an old list manipulation / memory management bug in the device release() code path - Correct a few mistakes in OOB write support" * tag 'for-linus-20151006' of git://git.infradead.org/linux-mtd: mxc_nand: fix copy_spare mtd: nand: sunxi: fix sunxi_nand_chips_cleanup() mtd: nand: sunxi: fix OOB handling in ->write_xxx() functions commit de28a05ee28e36fa1fc68fcfc7c6cc1c6f7c270c Merge: 54328e6 dbf73d4 Author: Kalle Valo Date: Wed Oct 7 11:12:01 2015 +0300 Merge tag 'iwlwifi-for-kalle-2015-10-05' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes * some fixes for PN key programming when entering D3; * fix for CSA when the AP is stopped during a channel switch; * fix firmware name for 3160 devices; * add some new PCI IDs for 7265 devices; * fix CT-kill entry; * fix kernel panic when a sysassert occurs in the init ucode flow; commit a0eeb8dd34f21fddfe85b37832b5f3d02ee6e34b Merge: 00a3d66 39d0d3b Author: Linus Torvalds Date: Wed Oct 7 08:54:22 2015 +0100 Merge tag 'nfs-for-4.3-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfixes from Trond Myklebust: "Highlights include: Bugfixes: - Fix a use-after-free bug in the RPC/RDMA client - Fix a write performance regression - Fix up page writeback accounting - Don't try to reclaim unused state owners - Fix a NFSv4 nograce recovery hang - reset states to use open_stateid when returning delegation voluntarily - Fix a tracepoint NULL-pointer dereference" * tag 'nfs-for-4.3-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS: Fix a tracepoint NULL-pointer dereference nfs4: reset states to use open_stateid when returning delegation voluntarily NFSv4: Fix a nograce recovery hang NFSv4.1: nfs4_opendata_check_deleg needs to handle NFS4_OPEN_CLAIM_DELEG_CUR_FH NFSv4: Don't try to reclaim unused state owners NFS: Fix a write performance regression NFS: Fix up page writeback accounting xprtrdma: disconnect and flush cqs before freeing buffers commit 00a3d660cbac05af34cca149cb80fb611e916935 Author: Linus Torvalds Date: Wed Oct 7 08:32:38 2015 +0100 Revert "fs: do not prefault sys_write() user buffer pages" This reverts commit 998ef75ddb5709bbea0bf1506cd2717348a3c647. The commit itself does not appear to be buggy per se, but it is exposing a bug in ext4 (and Ted thinks ext3 too, but we solved that by getting rid of it). It's too late in the release cycle to really worry about this, even if Dave Hansen has a patch that may actually fix the underlying ext4 problem. We can (and should) revisit this for the next release. The problem is that moving the prefaulting later now exposes a special case with partially successful writes that isn't handled correctly. And the prefaulting likely isn't normally even that much of a performance issue - it looks like at least one reason Dave saw this in his performance tests is that he also ran them on Skylake that now supports the new SMAP code, which makes the normally very cheap user space prefaulting noticeably more expensive. Bisected-and-acked-by: Ted Ts'o Analyzed-and-acked-by: Dave Hansen Cc: Andrew Morton Signed-off-by: Linus Torvalds mm/filemap.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) commit 4108efb02daa09cbb5db048ada55a5b021b5183d Author: Christophe Lombard Date: Wed Oct 7 16:07:40 2015 +1100 cxl: Fix number of allocated pages in SPA The scheduled process area is currently allocated before assigning the correct maximum processes to the AFU, which will mean we only ever allocate a fixed number of pages for the scheduled process area. This will limit us to 958 processes with 2 x 64K pages. If we try to use more processes than that we'd probably overrun the buffer and corrupt memory or crash. AFUs that require three or more interrupts per process will not be affected as they are already limited to less processes than that, but we could hit it on an AFU that requires 0, 1 or 2 interrupts per process, or when using 4K pages. This patch moves the initialisation of the num_procs to before the SPA allocation so that enough pages will be allocated for the number of processes that the AFU supports. Signed-off-by: Christophe Lombard Signed-off-by: Ian Munsie Cc: # 3.18+ Signed-off-by: Michael Ellerman drivers/misc/cxl/native.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 266424b5377ed1c3033d97ed5bc4fca7d89921a1 Author: Frediano Ziglio Date: Thu Sep 24 14:18:22 2015 +0100 drm/qxl: avoid dependency lock qxl_bo_unref calls drm_gem_object_unreference_unlocked which locks dev->struct_mutex. However this lock could be already locked if the call came from qxl_gem_object_free. As we don't need to call qxl_bo_ref/qxl_bo_unref cause qxl_release_list_add will hold a reference by itself avoid to call them and the possible deadlock. Signed-off-by: Frediano Ziglio Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_release.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 7eb9974f3685f36f419bf9e66cfaee92849856fe Author: Frediano Ziglio Date: Thu Sep 24 14:25:14 2015 +0100 drm/qxl: avoid buffer reservation in qxl_crtc_page_flip This avoid a dependency lock error. According to https://lwn.net/Articles/548909/ users of WW mutex API should avoid using different context. When a buffer is reserved with qxl_bo_reserve a ww_mutex_lock without context is used. However during qxl_draw_dirty_fb different locks with specific context are used. This is detected during a machine booting with a debug kernel with lock dependency checking enabled. Like many other function in this file to avoid this problem object pinning is used. Once the object is pinned is not necessary to keep the lock so it can be released avoiding the locking problem. Signed-off-by: Frediano Ziglio Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_display.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 60906529bec506a4bde93f04eb5e7a9dd9c42a3b Author: Gerd Hoffmann Date: Mon Oct 5 12:20:26 2015 +0200 drm/qxl: fix framebuffer dirty rectangle tracking. Commit "c0fe07a drm/qxl: rewrite framebuffer support" has a bug in the dirty rectangle tracking: Instead of ignoring an empty dirty rectangle when adding a new dirty region the dirty region gets extended to the upper left corner. Fix it. Cc: linux-stable@vger.kernel.org Signed-off-by: Gerd Hoffmann Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_fb.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 879f2fea8a5a748bcbf98d2cdce9139c045505d3 Author: Andrey Gelman Date: Tue Oct 6 15:43:43 2015 -0700 Input: ads7846 - correct the value got from SPI According to the touch controller spec, SPI return a 16 bit value, only 12 bits are valid, they are bit[14-3]. The value of MISO and MOSI can be configured when SPI is in idle mode. Currently this touch driver assumes the SPI bus sets the MOSI and MISO in low level when SPI bus is in idle mode. So the bit[15] of the value got from SPI bus is always 0. But when SPI bus congfigures the MOSI and MISO in high level during the SPI idle mode, the bit[15] of the value get from SPI is always 1. If bit[15] is not masked, we may get the wrong value. Mask the invalid bit to make sure the correct value gets returned. Regardless of the SPI bus idle configuration. Signed-off-by: Andrey Gelman Signed-off-by: Haibo Chen Signed-off-by: Igor Grinberg Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/ads7846.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 39d0d3bdf7bab3021a31e501172ac0f18947f9b3 Author: Anna Schumaker Date: Mon Oct 5 16:43:26 2015 -0400 NFS: Fix a tracepoint NULL-pointer dereference Running xfstest generic/013 with the tracepoint nfs:nfs4_open_file enabled produces a NULL-pointer dereference when calculating fileid and filehandle of the opened file. Fix this by checking if state is NULL before trying to use the inode pointer. Reported-by: Olga Kornievskaia Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/nfs4trace.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 990486c8af044f89bddfbde1d1cf9fde449bedbf Author: Chris Metcalf Date: Tue Oct 6 12:37:41 2015 -0400 strscpy: zero any trailing garbage bytes in the destination It's possible that the destination can be shadowed in userspace (as, for example, the perf buffers are now). So we should take care not to leak data that could be inspected by userspace. Signed-off-by: Chris Metcalf lib/string.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c753bf34c94e5ac901e625e52f47320eeec4de2d Author: Chris Metcalf Date: Tue Oct 6 14:20:45 2015 -0400 word-at-a-time.h: support zero_bytemask() on alpha and tile Both alpha and tile needed implementations of zero_bytemask. The alpha version is untested. Signed-off-by: Chris Metcalf arch/alpha/include/asm/word-at-a-time.h | 2 ++ arch/tile/include/asm/word-at-a-time.h | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit 19c22f3a29fa8669c477f20a65f6c7c27108972a Author: Chris Metcalf Date: Tue Oct 6 13:35:10 2015 -0400 word-at-a-time.h: fix some Kbuild files arch/tile added word-at-a-time.h after the patch that added generic-y entries; the generic-y entry is now stale. arch/h8300 is newer than the generic-y patch for word-at-a-time.h, and needs a generic-y entry. arch/powerpc seems to have gotten a generic-y entry by mistake in the first patch; this change removes it. Signed-off-by: Chris Metcalf arch/h8300/include/asm/Kbuild | 1 + arch/powerpc/include/asm/Kbuild | 1 - arch/tile/include/asm/Kbuild | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) commit b8cab5dab15ff5c2acc3faefdde28919b0341c11 Author: Haggai Eran Date: Tue Oct 6 17:56:00 2015 +0300 IB/cma: Accept connection without a valid netdev on RoCE The netdev checks recently added to RDMA CM expect a valid netdev to be found for both InfiniBand and RoCE, but the code that find a netdev is only implemented for InfiniBand. Currently RoCE doesn't provide an API to find the netdev matching a given set of parameters, so this patch just disables the netdev enforcement for each incoming connections when the link layer is RoCE. Fixes: 4c21b5bcef73 ("IB/cma: Add net_dev and private data checks to RDMA CM") Reported-by: Kamal Heib Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 54 ++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) commit f022fa88ce6abc83c6e678a890df5c1e4b0eaf89 Author: Sagi Grimberg Date: Tue Oct 6 19:52:37 2015 +0300 xprtrdma: Don't require LOCAL_DMA_LKEY support for fastreg There is no need to require LOCAL_DMA_LKEY support as the PD allocation makes sure that there is a local_dma_lkey. Also correctly set a return value in error path. This caused a NULL pointer dereference in mlx5 which removed the support for LOCAL_DMA_LKEY. Fixes: bb6c96d72879 ("xprtrdma: Replace global lkey with lkey local to PD") Signed-off-by: Sagi Grimberg Reviewed-by: Chuck Lever Acked-by: Anna Schumaker Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/verbs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 62c6c61adbc623cdacf74b8f29c278e539060c48 Author: Yang Shi Date: Mon Oct 5 14:32:51 2015 -0700 arm64: replace read_lock to rcu lock in call_break_hook BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917 in_atomic(): 0, irqs_disabled(): 128, pid: 342, name: perf 1 lock held by perf/342: #0: (break_hook_lock){+.+...}, at: [] call_break_hook+0x34/0xd0 irq event stamp: 62224 hardirqs last enabled at (62223): [] __call_rcu.constprop.59+0x104/0x270 hardirqs last disabled at (62224): [] vprintk_emit+0x68/0x640 softirqs last enabled at (0): [] copy_process.part.8+0x428/0x17f8 softirqs last disabled at (0): [< (null)>] (null) CPU: 0 PID: 342 Comm: perf Not tainted 4.1.6-rt5 #4 Hardware name: linux,dummy-virt (DT) Call trace: [] dump_backtrace+0x0/0x128 [] show_stack+0x20/0x30 [] dump_stack+0x7c/0xa0 [] ___might_sleep+0x174/0x260 [] __rt_spin_lock+0x28/0x40 [] rt_read_lock+0x60/0x80 [] call_break_hook+0x30/0xd0 [] brk_handler+0x30/0x98 [] do_debug_exception+0x50/0xb8 Exception stack(0xffffffc00514fe30 to 0xffffffc00514ff50) fe20: 00000000 00000000 c1594680 0000007f fe40: ffffffff ffffffff 92063940 0000007f 0550dcd8 ffffffc0 00000000 00000000 fe60: 0514fe70 ffffffc0 000be1f8 ffffffc0 0514feb0 ffffffc0 0008948c ffffffc0 fe80: 00000004 00000000 0514fed0 ffffffc0 ffffffff ffffffff 9282a948 0000007f fea0: 00000000 00000000 9282b708 0000007f c1592820 0000007f 00083914 ffffffc0 fec0: 00000000 00000000 00000010 00000000 00000064 00000000 00000001 00000000 fee0: 005101e0 00000000 c1594680 0000007f c1594740 0000007f ffffffd8 ffffff80 ff00: 00000000 00000000 00000000 00000000 c1594770 0000007f c1594770 0000007f ff20: 00665e10 00000000 7f7f7f7f 7f7f7f7f 01010101 01010101 00000000 00000000 ff40: 928e4cc0 0000007f 91ff11e8 0000007f call_break_hook is called in atomic context (hard irq disabled), so replace the sleepable lock to rcu lock, replace relevant list operations to rcu version and call synchronize_rcu() in unregister_break_hook(). And, replace write lock to spinlock in {un}register_break_hook. Signed-off-by: Yang Shi Signed-off-by: Will Deacon arch/arm64/kernel/debug-monitors.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 3805eade3b7c4a5ad593525703c2c82a84fd9b13 Author: Jeff Squyres Date: Wed Sep 30 13:34:00 2015 -0700 usnic: add missing clauses to BSD license The usnic_verbs kernel module was clearly marked with the following in its code: MODULE_LICENSE("Dual BSD/GPL"); However, we accidentally left a few clauses of the BSD text out of the license header in all the source files. This commit fixes that: all the files are properly dual BSD/GPL-licensed. Contributors that might have been confused by this have been contacted to get their permission and are Cc:ed here. Cc: Benoit Taine Cc: Ira Weiny Cc: Joerg Roedel Cc: Masanari Iida Cc: Matan Barak Cc: Michael Wang Cc: Roland Dreier Cc: Wei Yongjun Cc: Dan Carpenter Cc: Fabio Estevam Cc: Or Gerlitz Signed-off-by: Jeff Squyres Signed-off-by: Doug Ledford drivers/infiniband/hw/usnic/usnic.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_abi.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_common_util.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_debugfs.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_debugfs.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_fwd.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_fwd.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_main.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_sysfs.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_sysfs.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_log.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_transport.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_transport.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_uiom.c | 2 +- drivers/infiniband/hw/usnic/usnic_uiom.h | 21 ++++++++++++++++++--- .../infiniband/hw/usnic/usnic_uiom_interval_tree.c | 21 ++++++++++++++++++--- .../infiniband/hw/usnic/usnic_uiom_interval_tree.h | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_vnic.c | 21 ++++++++++++++++++--- drivers/infiniband/hw/usnic/usnic_vnic.h | 21 ++++++++++++++++++--- 25 files changed, 433 insertions(+), 73 deletions(-) commit 4ca3bc86bea23f38596ce7508f75e072839bde44 Author: Mark Rutland Date: Tue Oct 6 18:24:37 2015 +0100 arm64: Don't relocate non-existent initrd When booting a kernel without an initrd, the kernel reports that it moves -1 bytes worth, having gone through the motions with initrd_start equal to initrd_end: Moving initrd from [4080000000-407fffffff] to [9fff49000-9fff48fff] Prevent this by bailing out early when the initrd size is zero (i.e. we have no initrd), avoiding the confusing message and other associated work. Fixes: 1570f0d7ab425c1e ("arm64: support initrd outside kernel linear map") Cc: Mark Salter Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/kernel/setup.c | 2 ++ 1 file changed, 2 insertions(+) commit 9a65e6866f039ff029acffc05195d54bc6ca6aeb Author: Alex Deucher Date: Tue Oct 6 10:52:31 2015 -0400 drm/amdgpu: flag iceland as experimental These have not been tested very extensively and generally seem to be problematic. Mark them as experimental for now. bug: https://bugs.freedesktop.org/show_bug.cgi?id=92270 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 95913d97914f44db2b81271c2e2ebd4d2ac2df83 Author: Peter Zijlstra Date: Tue Sep 29 14:45:09 2015 +0200 sched/core: Fix TASK_DEAD race in finish_task_switch() So the problem this patch is trying to address is as follows: CPU0 CPU1 context_switch(A, B) ttwu(A) LOCK A->pi_lock A->on_cpu == 0 finish_task_switch(A) prev_state = A->state <-. WMB | A->on_cpu = 0; | UNLOCK rq0->lock | | context_switch(C, A) `-- A->state = TASK_DEAD prev_state == TASK_DEAD put_task_struct(A) context_switch(A, C) finish_task_switch(A) A->state == TASK_DEAD put_task_struct(A) The argument being that the WMB will allow the load of A->state on CPU0 to cross over and observe CPU1's store of A->state, which will then result in a double-drop and use-after-free. Now the comment states (and this was true once upon a long time ago) that we need to observe A->state while holding rq->lock because that will order us against the wakeup; however the wakeup will not in fact acquire (that) rq->lock; it takes A->pi_lock these days. We can obviously fix this by upgrading the WMB to an MB, but that is expensive, so we'd rather avoid that. The alternative this patch takes is: smp_store_release(&A->on_cpu, 0), which avoids the MB on some archs, but not important ones like ARM. Reported-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Linus Torvalds Cc: # v3.1+ Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: manfred@colorfullife.com Cc: will.deacon@arm.com Fixes: e4a52bcb9a18 ("sched: Remove rq->lock from the first half of ttwu()") Link: http://lkml.kernel.org/r/20150929124509.GG3816@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar kernel/sched/core.c | 10 +++++----- kernel/sched/sched.h | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) commit e79d5c0870eedce94e5f5a2ffab30511e48fa144 Author: Alex Deucher Date: Tue Oct 6 09:38:45 2015 -0400 drm/amdgpu: check before checking pci bridge registers Make sure we are not the root device before attempting to read the pcie bridge registers to check the pcie gen speeed. Fixes a crash when the device is passed through to a VM. Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/cik.c | 3 +++ drivers/gpu/drm/amd/amdgpu/vi.c | 3 +++ 2 files changed, 6 insertions(+) commit d836ace65ee98d7079bc3c5afdbcc0e27dca20a3 Author: Florian Fainelli Date: Sat Oct 3 13:03:47 2015 -0700 ARM: orion: Fix DSA platform device after mvmdio conversion DSA expects the host_dev pointer to be the device structure associated with the MDIO bus controller driver. First commit breaking that was c3a07134e6aa ("mv643xx_eth: convert to use the Marvell Orion MDIO driver"), and then, it got completely under the radar for a while. Reported-by: Frans van de Wiel Fixes: c3a07134e6aa ("mv643xx_eth: convert to use the Marvell Orion MDIO driver") CC: stable@vger.kernel.org Signed-off-by: Florian Fainelli Signed-off-by: Gregory CLEMENT arch/arm/plat-orion/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 50887bd139b83ce4489ed865a04bf1be5559c4ad Author: Junichi Nomura Date: Tue Oct 6 04:19:54 2015 +0000 dm: fix request-based dm error reporting end_clone_bio() is a endio callback for clone bio and should check and save the clone's bi_error for error reporting. However, 4246a0b63bd8 ("block: add a bi_error field to struct bio") changed the function to check the original bio's bi_error, which is 0. Without this fix, clone's error is ignored and reported to the original request as success. Thus data corruption will be observed. Fixes: 4246a0b63bd8 ("block: add a bi_error field to struct bio") Signed-off-by: Jun'ichi Nomura Cc: Christoph Hellwig Signed-off-by: Mike Snitzer drivers/md/dm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f6702681a0af186db8518793fbe46f45cce967dd Merge: 3ec20e2 98dd166 Author: Linus Torvalds Date: Tue Oct 6 15:05:02 2015 +0100 Merge tag 'for-linus-4.3b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen bug fixes from David Vrabel: - Fix VM save performance regression with x86 PV guests - Make kexec work in x86 PVHVM guests (if Xen has the soft-reset ABI) - Other minor fixes. * tag 'for-linus-4.3b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: x86/xen/p2m: hint at the last populated P2M entry x86/xen: Do not clip xen_e820_map to xen_e820_map_entries when sanitizing map x86/xen: Support kexec/kdump in HVM guests by doing a soft reset xen/x86: Don't try to write syscall-related MSRs for PV guests xen: use correct type for HYPERVISOR_memory_op() commit 3ec20e2e618314a798c81a974455b0a47e2af435 Merge: 3c68319 daad0bf Author: Linus Torvalds Date: Tue Oct 6 14:59:36 2015 +0100 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 and an update to the default configuration" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/defconfig: set SCSI_DH=y s390/vtime: correct scaled cputime of partially idle CPUs s390/boot/decompression: disable floating point in decompressor s390/numa: use correct type for node_to_cpumask_map commit 7d35199e15b82a4d1a20049153b03e6258ce79f7 Author: NeilBrown Date: Fri May 8 10:16:23 2015 +1000 BTRFS: support NFSv2 export The "fh_len" passed to ->fh_to_* is not guaranteed to be that same as that returned by encode_fh - it may be larger. With NFSv2, the filehandle is fixed length, so it may appear longer than expected and be zero-padded. So we must test that fh_len is at least some value, not exactly equal to it. Signed-off-by: NeilBrown Acked-by: David Sterba fs/btrfs/export.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e5fffbac4a49270e4976d71a0e054c0cf3ef4f8e Author: chandan Date: Mon Oct 5 22:14:25 2015 +0530 Btrfs: open_ctree: Fix possible memory leak After reading one of chunk or tree root tree's root node from disk, if the root node does not have EXTENT_BUFFER_UPTODATE flag set, we fail to release the memory used by the root node. Fix this. Signed-off-by: Chandan Rajendra fs/btrfs/disk-io.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3c68319b28474055481824032e6730c28404116f Merge: 049e6dd 616a539 Author: Linus Torvalds Date: Tue Oct 6 14:30:21 2015 +0100 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull CIFS fixes from Steve French: "Two fixes for problems pointed out by automated tools. Thanks PaX/grsecurity team and Dan Carpenter (and the Smatch tool)" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: [CIFS] Update cifs version number [SMB3] Do not fall back to SMBWriteX in set_file_size error cases [SMB3] Missing null tcon check commit 98dd166ea3a3c3b57919e20d9b0d1237fcd0349d Author: David Vrabel Date: Mon Sep 7 17:14:08 2015 +0100 x86/xen/p2m: hint at the last populated P2M entry With commit 633d6f17cd91ad5bf2370265946f716e42d388c6 (x86/xen: prepare p2m list for memory hotplug) the P2M may be sized to accomdate a much larger amount of memory than the domain currently has. When saving a domain, the toolstack must scan all the P2M looking for populated pages. This results in a performance regression due to the unnecessary scanning. Instead of reporting (via shared_info) the maximum possible size of the P2M, hint at the last PFN which might be populated. This hint is increased as new leaves are added to the P2M (in the expectation that they will be used for populated entries). Signed-off-by: David Vrabel Cc: # 4.0+ arch/x86/xen/p2m.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 5a37b15378659168e1874463ab012f26dcbaf309 Merge: b0d5811 56e86dd Author: Arnd Bergmann Date: Tue Oct 6 14:31:53 2015 +0200 Merge tag 'renesas-fixes-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes Merge "Renesas ARM Based SoC Fixes for v4.3" from Simon Horman * Add Add CPG/MSTP Clock Domain for sound on r8a779[01] SoCs. This allows sound to work once again. * tag 'renesas-fixes-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain for sound ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain for sound commit b0d58113e55dca8b95161be30e1a15703ecf9a2a Merge: c6722dd f594297 Author: Arnd Bergmann Date: Tue Oct 6 14:30:14 2015 +0200 Merge tag 'sunxi-fixes-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into fixes Merge "Allwinner fixes for 4.3" from Maxime Ripard: Two patches, one that fixes one of the DT build, and the other raising the voltage of the lowest OPP of the A20 to remain within the SoC operating boundaries * tag 'sunxi-fixes-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: dts: Fix Makefile target for sun4i-a10-itead-iteaduino-plus ARM: dts: sunxi: Raise minimum CPU voltage for sun7i-a20 to meet SoC specifications commit c6722ddce0bdf16bfdd7e80dd5fef78e75eca535 Merge: a73b4db 4776dbb Author: Arnd Bergmann Date: Tue Oct 6 14:26:32 2015 +0200 Merge tag 'samsung-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes Merge "Samsung fixes for v4.3" from Kukjin Kim: - fix invalid clock used for FIMD IOMMU - fix thermal boot issue smdk5250-smdk5250 - fix S2R on exynos4412 trats2 boards - fix LEDs on exynos5422-odroidxu3-common - fix booting of all 8 cores on exynos542x * tag 'samsung-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: dts: Fix wrong clock binding for sysmmu_fimd1_1 on exynos5420 ARM: dts: Fix bootup thermal issue on smdk5250 ARM: dts: add suspend opp to exynos4412 ARM: dts: Fix LEDs on exynos5422-odroidxu3 ARM: EXYNOS: reset Little cores when cpu is up commit ff6afc8d0df0347901e862e622b1efaeb6f1fe5d Author: Mark Brown Date: Fri Oct 2 18:07:09 2015 +0100 MAINTAINERS: Remove wm97xx entry Neither myself or Liam is especially interested in this driver any more and the devices are already covered by the general ex-Wolfson entry so just remove this. Signed-off-by: Mark Brown Acked-by: Liam Girdwood MAINTAINERS | 9 --------- 1 file changed, 9 deletions(-) commit da11f98fd018319f65af9c10174ccc829207d937 Author: Ben Hutchings Date: Tue Oct 6 00:56:56 2015 +0100 MIPS: Define ioremap_uc All architectures must now define ioremap_uc(), but MIPS currently only has ioremap_nocache(). Fixes: 4c73e8926623 ("arch/*/io.h: Add ioremap_uc() to all architectures") Signed-off-by: Ben Hutchings Cc: Luis R. Rodriguez Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11263/ Signed-off-by: Ralf Baechle arch/mips/include/asm/io.h | 1 + 1 file changed, 1 insertion(+) commit 22ca03a3ad63bb08d543af462b741b6bf2c329ed Merge: 6710f22 6b3600b Author: Mark Brown Date: Tue Oct 6 12:00:42 2015 +0100 Merge remote-tracking branch 'regulator/fix/axp20x' into regulator-linus commit 6710f223433588af582c0e4dbecbca72a36c4594 Merge: 049e6dd 0642312 Author: Mark Brown Date: Tue Oct 6 12:00:38 2015 +0100 Merge remote-tracking branch 'regulator/fix/core' into regulator-linus commit e2600460bc3aa14ca1df86318a327cbbabedf9a8 Author: Andreas Dannenberg Date: Mon Oct 5 15:00:14 2015 -0500 ASoC: tas2552: fix dBscale-min declaration The minimum volume level for the TAS2552 (control register value 0x00) is -7dB however the driver declares it as -0.07dB. Running amixer before the patch reports: dBscale-min=-0.07dB,step=1.00dB,mute=0 Running amixer with the patch applied reports: dBscale-min=-7.00dB,step=1.00dB,mute=0 Signed-off-by: Andreas Dannenberg Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/tas2552.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d79e6801b1868ff65f4c956d782946c6221a4c1d Author: Philippe Bergheaud Date: Fri Oct 2 15:23:33 2015 +1000 cxl: Workaround malformed pcie packets on some cards This works around a pcie host bridge defect on some cards, that can cause malformed Transaction Layer Packet (TLP) errors to be erroneously reported. The upper nibble of the vendor section PSL revision is used to distinguish between different cards. The affected ones have it set to 0. Signed-off-by: Philippe Bergheaud Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 855591d2f7d1ff7eb18b60ce2be494e3bfe27fb8 Author: Tom Lendacky Date: Mon Oct 5 10:51:03 2015 -0500 amd-xgbe: Check for successful buffer allocation before use The kasprintf function can return NULL if the allocation fails. Check for successful allocation before attempting to use the returned buffer. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c | 3 +++ 1 file changed, 3 insertions(+) commit d9a0540a79f87456907f2ce031f058cf745c5bff Author: Filipe Manana Date: Sat Oct 3 13:13:13 2015 +0100 Btrfs: fix deadlock when finalizing block group creation Josef ran into a deadlock while a transaction handle was finalizing the creation of its block groups, which produced the following trace: [260445.593112] fio D ffff88022a9df468 0 8924 4518 0x00000084 [260445.593119] ffff88022a9df468 ffffffff81c134c0 ffff880429693c00 ffff88022a9df488 [260445.593126] ffff88022a9e0000 ffff8803490d7b00 ffff8803490d7b18 ffff88022a9df4b0 [260445.593132] ffff8803490d7af8 ffff88022a9df488 ffffffff8175a437 ffff8803490d7b00 [260445.593137] Call Trace: [260445.593145] [] schedule+0x37/0x80 [260445.593189] [] btrfs_tree_lock+0xa7/0x1f0 [btrfs] [260445.593197] [] ? prepare_to_wait_event+0xf0/0xf0 [260445.593225] [] btrfs_lock_root_node+0x34/0x50 [btrfs] [260445.593253] [] btrfs_search_slot+0x88b/0xa00 [btrfs] [260445.593295] [] ? free_extent_buffer+0x4f/0x90 [btrfs] [260445.593324] [] btrfs_insert_empty_items+0x66/0xc0 [btrfs] [260445.593351] [] ? btrfs_alloc_path+0x1a/0x20 [btrfs] [260445.593394] [] btrfs_finish_chunk_alloc+0x1c9/0x570 [btrfs] [260445.593427] [] btrfs_create_pending_block_groups+0x11b/0x200 [btrfs] [260445.593459] [] do_chunk_alloc+0x2a4/0x2e0 [btrfs] [260445.593491] [] find_free_extent+0xa55/0xd90 [btrfs] [260445.593524] [] btrfs_reserve_extent+0xd2/0x220 [btrfs] [260445.593532] [] ? account_page_dirtied+0xdd/0x170 [260445.593564] [] btrfs_alloc_tree_block+0x108/0x4a0 [btrfs] [260445.593597] [] ? btree_set_page_dirty+0xe/0x10 [btrfs] [260445.593626] [] __btrfs_cow_block+0x12d/0x5b0 [btrfs] [260445.593654] [] btrfs_cow_block+0x11f/0x1c0 [btrfs] [260445.593682] [] btrfs_search_slot+0x1e7/0xa00 [btrfs] [260445.593724] [] ? free_extent_buffer+0x4f/0x90 [btrfs] [260445.593752] [] btrfs_insert_empty_items+0x66/0xc0 [btrfs] [260445.593830] [] ? btrfs_alloc_path+0x1a/0x20 [btrfs] [260445.593905] [] btrfs_finish_chunk_alloc+0x1c9/0x570 [btrfs] [260445.593946] [] btrfs_create_pending_block_groups+0x11b/0x200 [btrfs] [260445.593990] [] btrfs_commit_transaction+0xa8/0xb40 [btrfs] [260445.594042] [] ? btrfs_log_dentry_safe+0x6d/0x80 [btrfs] [260445.594089] [] btrfs_sync_file+0x294/0x350 [btrfs] [260445.594115] [] vfs_fsync_range+0x3b/0xa0 [260445.594133] [] ? syscall_trace_enter_phase1+0x131/0x180 [260445.594149] [] do_fsync+0x3d/0x70 [260445.594169] [] ? syscall_trace_leave+0xb8/0x110 [260445.594187] [] SyS_fsync+0x10/0x20 [260445.594204] [] entry_SYSCALL_64_fastpath+0x12/0x71 This happened because the same transaction handle created a large number of block groups and while finalizing their creation (inserting new items and updating existing items in the chunk and device trees) a new metadata extent had to be allocated and no free space was found in the current metadata block groups, which made find_free_extent() attempt to allocate a new block group via do_chunk_alloc(). However at do_chunk_alloc() we ended up allocating a new system chunk too and exceeded the threshold of 2Mb of reserved chunk bytes, which makes do_chunk_alloc() enter the final part of block group creation again (at btrfs_create_pending_block_groups()) and attempt to lock again the root of the chunk tree when it's already write locked by the same task. Similarly we can deadlock on extent tree nodes/leafs if while we are running delayed references we end up creating a new metadata block group in order to allocate a new node/leaf for the extent tree (as part of a CoW operation or growing the tree), as btrfs_create_pending_block_groups inserts items into the extent tree as well. In this case we get the following trace: [14242.773581] fio D ffff880428ca3418 0 3615 3100 0x00000084 [14242.773588] ffff880428ca3418 ffff88042d66b000 ffff88042a03c800 ffff880428ca3438 [14242.773594] ffff880428ca4000 ffff8803e4b20190 ffff8803e4b201a8 ffff880428ca3460 [14242.773600] ffff8803e4b20188 ffff880428ca3438 ffffffff8175a437 ffff8803e4b20190 [14242.773606] Call Trace: [14242.773613] [] schedule+0x37/0x80 [14242.773656] [] btrfs_tree_lock+0xa7/0x1f0 [btrfs] [14242.773664] [] ? prepare_to_wait_event+0xf0/0xf0 [14242.773692] [] btrfs_lock_root_node+0x34/0x50 [btrfs] [14242.773720] [] btrfs_search_slot+0x88b/0xa00 [btrfs] [14242.773750] [] btrfs_insert_empty_items+0x66/0xc0 [btrfs] [14242.773758] [] ? kmem_cache_alloc+0x1d2/0x200 [14242.773786] [] btrfs_insert_item+0x71/0xf0 [btrfs] [14242.773818] [] btrfs_create_pending_block_groups+0x102/0x200 [btrfs] [14242.773850] [] do_chunk_alloc+0x2ae/0x2f0 [btrfs] [14242.773934] [] find_free_extent+0xa55/0xd90 [btrfs] [14242.773998] [] btrfs_reserve_extent+0xc2/0x1d0 [btrfs] [14242.774041] [] btrfs_alloc_tree_block+0x108/0x4a0 [btrfs] [14242.774078] [] __btrfs_cow_block+0x12d/0x5b0 [btrfs] [14242.774118] [] btrfs_cow_block+0x11f/0x1c0 [btrfs] [14242.774155] [] btrfs_search_slot+0x1e7/0xa00 [btrfs] [14242.774194] [] ? __btrfs_free_extent.isra.70+0x2e1/0xcb0 [btrfs] [14242.774235] [] btrfs_insert_empty_items+0x66/0xc0 [btrfs] [14242.774274] [] ? btrfs_alloc_path+0x1a/0x20 [btrfs] [14242.774318] [] __btrfs_run_delayed_refs+0xbb3/0x1020 [btrfs] [14242.774358] [] btrfs_run_delayed_refs.part.78+0x74/0x280 [btrfs] [14242.774391] [] btrfs_run_delayed_refs+0x17/0x20 [btrfs] [14242.774432] [] commit_cowonly_roots+0x8d/0x2bd [btrfs] [14242.774474] [] ? __btrfs_run_delayed_items+0x1cf/0x210 [btrfs] [14242.774516] [] ? btrfs_qgroup_account_extents+0x83/0x130 [btrfs] [14242.774558] [] btrfs_commit_transaction+0x590/0xb40 [btrfs] [14242.774599] [] ? btrfs_log_dentry_safe+0x6d/0x80 [btrfs] [14242.774642] [] btrfs_sync_file+0x294/0x350 [btrfs] [14242.774650] [] vfs_fsync_range+0x3b/0xa0 [14242.774657] [] ? syscall_trace_enter_phase1+0x131/0x180 [14242.774663] [] do_fsync+0x3d/0x70 [14242.774669] [] ? syscall_trace_leave+0xb8/0x110 [14242.774675] [] SyS_fsync+0x10/0x20 [14242.774681] [] entry_SYSCALL_64_fastpath+0x12/0x71 Fix this by never recursing into the finalization phase of block group creation and making sure we never trigger the finalization of block group creation while running delayed references. Reported-by: Josef Bacik Fixes: 00d80e342c0f ("Btrfs: fix quick exhaustion of the system array in the superblock") Signed-off-by: Filipe Manana fs/btrfs/extent-tree.c | 9 ++++++++- fs/btrfs/transaction.c | 1 + fs/btrfs/transaction.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) commit 808f80b46790f27e145c72112189d6a3be2bc884 Author: Filipe Manana Date: Mon Sep 28 09:56:26 2015 +0100 Btrfs: update fix for read corruption of compressed and shared extents My previous fix in commit 005efedf2c7d ("Btrfs: fix read corruption of compressed and shared extents") was effective only if the compressed extents cover a file range with a length that is not a multiple of 16 pages. That's because the detection of when we reached a different range of the file that shares the same compressed extent as the previously processed range was done at extent_io.c:__do_contiguous_readpages(), which covers subranges with a length up to 16 pages, because extent_readpages() groups the pages in clusters no larger than 16 pages. So fix this by tracking the start of the previously processed file range's extent map at extent_readpages(). The following test case for fstests reproduces the issue: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _need_to_be_root _supported_fs btrfs _supported_os Linux _require_scratch _require_cloner rm -f $seqres.full test_clone_and_read_compressed_extent() { local mount_opts=$1 _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount $mount_opts # Create our test file with a single extent of 64Kb that is going to # be compressed no matter which compression algo is used (zlib/lzo). $XFS_IO_PROG -f -c "pwrite -S 0xaa 0K 64K" \ $SCRATCH_MNT/foo | _filter_xfs_io # Now clone the compressed extent into an adjacent file offset. $CLONER_PROG -s 0 -d $((64 * 1024)) -l $((64 * 1024)) \ $SCRATCH_MNT/foo $SCRATCH_MNT/foo echo "File digest before unmount:" md5sum $SCRATCH_MNT/foo | _filter_scratch # Remount the fs or clear the page cache to trigger the bug in # btrfs. Because the extent has an uncompressed length that is a # multiple of 16 pages, all the pages belonging to the second range # of the file (64K to 128K), which points to the same extent as the # first range (0K to 64K), had their contents full of zeroes instead # of the byte 0xaa. This was a bug exclusively in the read path of # compressed extents, the correct data was stored on disk, btrfs # just failed to fill in the pages correctly. _scratch_remount echo "File digest after remount:" # Must match the digest we got before. md5sum $SCRATCH_MNT/foo | _filter_scratch } echo -e "\nTesting with zlib compression..." test_clone_and_read_compressed_extent "-o compress=zlib" _scratch_unmount echo -e "\nTesting with lzo compression..." test_clone_and_read_compressed_extent "-o compress=lzo" status=0 exit Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Tested-by: Timofey Titovets fs/btrfs/extent_io.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit b786f16ac3c5d4f7a5fd136656b6a1301b29b73b Author: Filipe Manana Date: Sat Sep 26 15:30:23 2015 +0100 Btrfs: send, fix corner case for reference overwrite detection When the inode given to did_overwrite_ref() matches the current progress and has a reference that collides with the reference of other inode that has the same number as the current progress, we were always telling our caller that the inode's reference was overwritten, which is incorrect because the other inode might be a new inode (different generation number) in which case we must return false from did_overwrite_ref() so that its callers don't use an orphanized path for the inode (as it will never be orphanized, instead it will be unlinked and the new inode created later). The following test case for fstests reproduces the issue: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { rm -fr $send_files_dir rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _supported_fs btrfs _supported_os Linux _require_scratch _need_to_be_root send_files_dir=$TEST_DIR/btrfs-test-$seq rm -f $seqres.full rm -fr $send_files_dir mkdir $send_files_dir _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount # Create our test file with a single extent of 64K. mkdir -p $SCRATCH_MNT/foo $XFS_IO_PROG -f -c "pwrite -S 0xaa 0 64K" $SCRATCH_MNT/foo/bar \ | _filter_xfs_io _run_btrfs_util_prog subvolume snapshot -r $SCRATCH_MNT \ $SCRATCH_MNT/mysnap1 _run_btrfs_util_prog subvolume snapshot $SCRATCH_MNT \ $SCRATCH_MNT/mysnap2 echo "File digest before being replaced:" md5sum $SCRATCH_MNT/mysnap1/foo/bar | _filter_scratch # Remove the file and then create a new one in the same location with # the same name but with different content. This new file ends up # getting the same inode number as the previous one, because that inode # number was the highest inode number used by the snapshot's root and # therefore when attempting to find the a new inode number for the new # file, we end up reusing the same inode number. This happens because # currently btrfs uses the highest inode number summed by 1 for the # first inode created once a snapshot's root is loaded (done at # fs/btrfs/inode-map.c:btrfs_find_free_objectid in the linux kernel # tree). # Having these two different files in the snapshots with the same inode # number (but different generation numbers) caused the btrfs send code # to emit an incorrect path for the file when issuing an unlink # operation because it failed to realize they were different files. rm -f $SCRATCH_MNT/mysnap2/foo/bar $XFS_IO_PROG -f -c "pwrite -S 0xbb 0 96K" \ $SCRATCH_MNT/mysnap2/foo/bar | _filter_xfs_io _run_btrfs_util_prog subvolume snapshot -r $SCRATCH_MNT/mysnap2 \ $SCRATCH_MNT/mysnap2_ro _run_btrfs_util_prog send $SCRATCH_MNT/mysnap1 -f $send_files_dir/1.snap _run_btrfs_util_prog send -p $SCRATCH_MNT/mysnap1 \ $SCRATCH_MNT/mysnap2_ro -f $send_files_dir/2.snap echo "File digest in the original filesystem after being replaced:" md5sum $SCRATCH_MNT/mysnap2_ro/foo/bar | _filter_scratch # Now recreate the filesystem by receiving both send streams and verify # we get the same file contents that the original filesystem had. _scratch_unmount _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount _run_btrfs_util_prog receive -vv $SCRATCH_MNT -f $send_files_dir/1.snap _run_btrfs_util_prog receive -vv $SCRATCH_MNT -f $send_files_dir/2.snap echo "File digest in the new filesystem:" # Must match the digest from the new file. md5sum $SCRATCH_MNT/mysnap2_ro/foo/bar | _filter_scratch status=0 exit Reported-by: Martin Raiber Fixes: 8b191a684968 ("Btrfs: incremental send, check if orphanized dir inode needs delayed rename") Signed-off-by: Filipe Manana fs/btrfs/send.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit abffa6f3b1578d5991545f6998ca7ee70b830e94 Author: Yang Shi Date: Wed Sep 30 19:23:12 2015 +0100 arm64: convert patch_lock to raw lock When running kprobe test on arm64 rt kernel, it reports the below warning: root@qemu7:~# modprobe kprobe_example BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917 in_atomic(): 0, irqs_disabled(): 128, pid: 484, name: modprobe CPU: 0 PID: 484 Comm: modprobe Not tainted 4.1.6-rt5 #2 Hardware name: linux,dummy-virt (DT) Call trace: [] dump_backtrace+0x0/0x128 [] show_stack+0x20/0x30 [] dump_stack+0x1c/0x28 [] ___might_sleep+0x120/0x198 [] rt_spin_lock+0x28/0x40 [] __aarch64_insn_write+0x28/0x78 [] aarch64_insn_patch_text_nosync+0x18/0x48 [] aarch64_insn_patch_text_cb+0x70/0xa0 [] aarch64_insn_patch_text_sync+0x28/0x48 [] arch_arm_kprobe+0x38/0x48 [] arm_kprobe+0x34/0x50 [] register_kprobe+0x4cc/0x5b8 [] kprobe_init+0x38/0x7c [kprobe_example] [] do_one_initcall+0x90/0x1b0 [] do_init_module+0x6c/0x1cc [] load_module+0x17f8/0x1db0 [] SyS_finit_module+0xb4/0xc8 Convert patch_lock to raw loc kto avoid this issue. Although the problem is found on rt kernel, the fix should be applicable to mainline kernel too. Acked-by: Steven Rostedt Signed-off-by: Yang Shi Signed-off-by: Will Deacon arch/arm64/kernel/insn.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 569ba74a7ba69f46ce2950bf085b37fea2408385 Author: Mark Salyzyn Date: Mon Sep 21 21:39:50 2015 +0100 arm64: readahead: fault retry breaks mmap file read random detection This is the arm64 portion of commit 45cac65b0fcd ("readahead: fault retry breaks mmap file read random detection"), which was absent from the initial port and has since gone unnoticed. The original commit says: > .fault now can retry. The retry can break state machine of .fault. In > filemap_fault, if page is miss, ra->mmap_miss is increased. In the second > try, since the page is in page cache now, ra->mmap_miss is decreased. And > these are done in one fault, so we can't detect random mmap file access. > > Add a new flag to indicate .fault is tried once. In the second try, skip > ra->mmap_miss decreasing. The filemap_fault state machine is ok with it. With this change, Mark reports that: > Random read improves by 250%, sequential read improves by 40%, and > random write by 400% to an eMMC device with dm crypto wrapped around it. Cc: Shaohua Li Cc: Rik van Riel Cc: Wu Fengguang Cc: Signed-off-by: Mark Salyzyn Signed-off-by: Riley Andrews Signed-off-by: Will Deacon arch/arm64/mm/fault.c | 1 + 1 file changed, 1 insertion(+) commit 95485fdc64b1067e0e88d8c7980eb57994ad450e Author: Yang Shi Date: Fri Sep 18 22:09:00 2015 +0100 arm64: debug: Fix typo in debug-monitors.c Fix comment typo: s/handers/handlers/ Signed-off-by: Yang Shi Signed-off-by: Will Deacon arch/arm64/kernel/debug-monitors.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 225db5762dc1a35b26850477ffa06e5cd0097243 Author: Takashi Iwai Date: Mon Oct 5 16:55:09 2015 +0200 ALSA: synth: Fix conflicting OSS device registration on AWE32 When OSS emulation is loaded on ISA SB AWE32 chip, we get now kernel warnings like: WARNING: CPU: 0 PID: 2791 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x51/0x80() sysfs: cannot create duplicate filename '/devices/isa/sbawe.0/sound/card0/seq-oss-0-0' It's because both emux synth and opl3 drivers try to register their OSS device object with the same static index number 0. This hasn't been a big problem until the recent rewrite of device management code (that exposes sysfs at the same time), but it's been an obvious bug. This patch works around it just by using a different index number of emux synth object. There can be a more elegant way to fix, but it's enough for now, as this code won't be touched so often, in anyway. Reported-and-tested-by: Michael Shell Cc: Signed-off-by: Takashi Iwai sound/synth/emux/emux_oss.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 26d0c21db1fd1679fcf07863741c13ba5ce37a65 Author: Alex Deucher Date: Mon Oct 5 10:15:14 2015 -0400 drm/amdgpu: fix num_crtc on CZ Hw only has 3 crtcs. copy paste typo. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83ffe99f52b8f269b31b21524adcd13b165f7703 Author: Pravin B Shelar Date: Fri Oct 2 14:56:34 2015 -0700 openvswitch: Fix ovs_vport_get_stats() Not every device has dev->tstats set. So when OVS tries to calculate vport stats it causes kernel panic. Following patch fixes it by using standard API to get net-device stats. ---8<--- Unable to handle kernel paging request at virtual address 766b4008 Internal error: Oops: 96000005 [#1] PREEMPT SMP Modules linked in: vport_vxlan vxlan ip6_udp_tunnel udp_tunnel tun bridge stp llc openvswitch ipv6 CPU: 7 PID: 1108 Comm: ovs-vswitchd Not tainted 4.3.0-rc3+ #82 PC is at ovs_vport_get_stats+0x150/0x1f8 [openvswitch] Call trace: [] ovs_vport_get_stats+0x150/0x1f8 [openvswitch] [] ovs_vport_cmd_fill_info+0x140/0x1e0 [openvswitch] [] ovs_vport_cmd_dump+0xbc/0x138 [openvswitch] [] netlink_dump+0xb8/0x258 [] __netlink_dump_start+0x120/0x178 [] genl_family_rcv_msg+0x2d4/0x308 [] genl_rcv_msg+0x88/0xc4 [] netlink_rcv_skb+0xd4/0x100 [] genl_rcv+0x30/0x48 [] netlink_unicast+0x154/0x200 [] netlink_sendmsg+0x308/0x364 [] sock_sendmsg+0x14/0x2c [] SyS_sendto+0xbc/0xf0 Code: aa1603e1 f94037a4 aa1303e2 aa1703e0 (f9400465) Reported-by: Tomasz Sawicki Fixes: 8c876639c98 ("openvswitch: Remove vport stats.") Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/vport.c | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) commit 8690f47d6e76d4300eeb316ba4773f7de3da63f7 Author: Nicolas Schichan Date: Fri Oct 2 15:39:12 2015 +0200 ARM: net: make BPF_LD | BPF_IND instruction trigger r_X initialisation to 0. Without this patch, if the only instructions using r_X are of the BPF_LD | BPF_IND type, r_X would not be reset to 0, using whatever value was there when entering the jited code. With this patch, r_X will be correctly marked as used so it will be reset to 0 in the prologue code. This fix also makes the test "LD_IND byte default X" pass in the test_bpf module when the ARM JIT is enabled. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 1 + 1 file changed, 1 insertion(+) commit 8b7530b15c3332220a081035ab467c9359aff409 Author: Alex Deucher Date: Fri Oct 2 16:59:34 2015 -0400 drm/amdgpu: restore the fbdev mode in lastclose restore the fbdev state if a drm app like X is killed. Reviewed-by: Michel Dänzer Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 16 ++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 5 ++++- drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) commit 8c70e1cda04b966b50ddfefafbd0ea376ed8edd5 Author: Alex Deucher Date: Fri Oct 2 16:52:58 2015 -0400 drm/radeon: restore the fbdev mode in lastclose restore the fbdev state if a drm app like X is killed. Tested-by: Michel Dänzer Reviewed-by: Michel Dänzer Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_fb.c | 16 ++++++++++++++++ drivers/gpu/drm/radeon/radeon_kms.c | 5 ++++- drivers/gpu/drm/radeon/radeon_mode.h | 1 + 3 files changed, 21 insertions(+), 1 deletion(-) commit 598c12d0ba6de9060f04999746eb1e015774044b Author: Konstantin Khlebnikov Date: Fri Oct 2 13:18:22 2015 +0300 ovs: do not allocate memory from offline numa node When openvswitch tries allocate memory from offline numa node 0: stats = kmem_cache_alloc_node(flow_stats_cache, GFP_KERNEL | __GFP_ZERO, 0) It catches VM_BUG_ON(nid < 0 || nid >= MAX_NUMNODES || !node_online(nid)) [ replaced with VM_WARN_ON(!node_online(nid)) recently ] in linux/gfp.h This patch disables numa affinity in this case. Signed-off-by: Konstantin Khlebnikov Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/flow_table.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 93d08b6966cf730ea669d4d98f43627597077153 Author: Daniel Borkmann Date: Fri Oct 2 12:06:03 2015 +0200 bpf: fix panic in SO_GET_FILTER with native ebpf programs When sockets have a native eBPF program attached through setsockopt(sk, SOL_SOCKET, SO_ATTACH_BPF, ...), and then try to dump these over getsockopt(sk, SOL_SOCKET, SO_GET_FILTER, ...), the following panic appears: [49904.178642] BUG: unable to handle kernel NULL pointer dereference at (null) [49904.178762] IP: [] sk_get_filter+0x39/0x90 [49904.182000] PGD 86fc9067 PUD 531a1067 PMD 0 [49904.185196] Oops: 0000 [#1] SMP [...] [49904.224677] Call Trace: [49904.226090] [] sock_getsockopt+0x319/0x740 [49904.227535] [] ? sock_has_perm+0x63/0x70 [49904.228953] [] ? release_sock+0x108/0x150 [49904.230380] [] ? selinux_socket_getsockopt+0x23/0x30 [49904.231788] [] SyS_getsockopt+0xa6/0xc0 [49904.233267] [] entry_SYSCALL_64_fastpath+0x12/0x71 The underlying issue is the very same as in commit b382c0865600 ("sock, diag: fix panic in sock_diag_put_filterinfo"), that is, native eBPF programs don't store an original program since this is only needed in cBPF ones. However, sk_get_filter() wasn't updated to test for this at the time when eBPF could be attached. Just throw an error to the user to indicate that eBPF cannot be dumped over this interface. That way, it can also be known that a program _is_ attached (as opposed to just return 0), and a different (future) method needs to be consulted for a dump. Fixes: 89aa075832b0 ("net: sock: allow eBPF programs to be attached to sockets") Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/filter.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 33db4125ec745426c3483d6817d8f7ea5324cd05 Author: Joe Stringer Date: Thu Oct 1 15:00:37 2015 -0700 openvswitch: Rename LABEL->LABELS Conntrack LABELS (plural) are exposed by conntrack; rename the OVS name for these to be consistent with conntrack. Fixes: c2ac667 "openvswitch: Allow matching on conntrack label" Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 12 +++---- net/openvswitch/actions.c | 2 +- net/openvswitch/conntrack.c | 74 ++++++++++++++++++++-------------------- net/openvswitch/conntrack.h | 2 +- net/openvswitch/flow.h | 2 +- net/openvswitch/flow_netlink.c | 18 +++++----- 6 files changed, 55 insertions(+), 55 deletions(-) commit e9193d60d363e4dff75ff6d43a48f22be26d59c7 Author: Andrey Vagin Date: Fri Oct 2 00:05:36 2015 +0300 net/unix: fix logic about sk_peek_offset Now send with MSG_PEEK can return data from multiple SKBs. Unfortunately we take into account the peek offset for each skb, that is wrong. We need to apply the peek offset only once. In addition, the peek offset should be used only if MSG_PEEK is set. Cc: "David S. Miller" (maintainer:NETWORKING Cc: Eric Dumazet (commit_signer:1/14=7%) Cc: Aaron Conole Fixes: 9f389e35674f ("af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag") Signed-off-by: Andrey Vagin Tested-by: Aaron Conole Signed-off-by: David S. Miller net/unix/af_unix.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 215c90afb9ea633026273d81ac9c9ece2b1acd58 Author: WANG Cong Date: Thu Oct 1 11:37:43 2015 -0700 act_mirred: always release tcf hash Align with other tc actions. Cc: Jamal Hadi Salim Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/sched/act_mirred.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6bd00b850635abb0044e06101761533c8beba79c Author: WANG Cong Date: Thu Oct 1 11:37:42 2015 -0700 act_mirred: fix a race condition on mirred_list After commit 1ce87720d456 ("net: sched: make cls_u32 lockless") we began to release tc actions in a RCU callback. However, mirred action relies on RTNL lock to protect the global mirred_list, therefore we could have a race condition between RCU callback and netdevice event, which caused a list corruption as reported by Vinson. Instead of relying on RTNL lock, introduce a spinlock to protect this list. Note, in non-bind case, it is still called with RTNL lock, therefore should disable BH too. Reported-by: Vinson Lee Cc: John Fastabend Cc: Jamal Hadi Salim Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/sched/act_mirred.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit fec31ffffa6e05845ab13908d0ac0d5a10816836 Author: Jesse Brandeburg Date: Thu Oct 1 18:25:42 2015 -0700 i40e: fix offload of GRE tunnels The driver still was not offloading TSO on GRE tunnels because it forgot to set the GSO_GRE flag, causing lots of retransmits. This fixes generic GRE traffic (like a tunnel added like below) whereas before it would get 1Gb/s or less, now on a 10G adapter it gets 8.7Gb/s. ip ad ad 11.1.0.2/24 dev ens2f0 ip l set ens2f0 up ip link add gre2 type gretap remote 11.1.0.1 local 11.1.0.2 dev ens2f0 ip l set gre2 up ip ad ad 192.168.124.2/24 dev gre2 ping 192.168.124.1 netperf -H 192.168.124.1 Signed-off-by: Jesse Brandeburg Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_main.c | 2 ++ 1 file changed, 2 insertions(+) commit d2dd52bf3f6dc5fa2587e79f0a46ade3d5951ddd Merge: 181a422 76d164f Author: David S. Miller Date: Mon Oct 5 04:29:06 2015 -0700 Merge tag 'wireless-drivers-for-davem-2015-10-01' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== pull-request: wireless-drivers 2015-10-01 ath9k: * declare required extra tx headroom ath10k: * fix DMA related firmware crashes on multiple devices rt2800usb: * add usb ID 1b75:3070 for Airlive WT-2000USB b43: * probe bcma core (device) rev 0x15 ==================== Signed-off-by: David S. Miller commit 181a4224acdfb993a21f987f8617b5c8d7bc654e Author: Jiri Benc Date: Thu Oct 1 16:25:43 2015 +0200 ipv4: fix reply_dst leakage on arp reply There are cases when the created metadata reply is not used. Ensure the allocated memory is freed also in such cases. Fixes: 63d008a4e9ee ("ipv4: send arp replies to the correct tunnel") Reported-by: Hannes Frederic Sowa Signed-off-by: Jiri Benc Signed-off-by: David S. Miller net/ipv4/arp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit dbf73d4a8bb8f4e1d1f3edd3be825692279e2ef3 Author: Andrei Otcheretianski Date: Wed Sep 30 12:26:23 2015 +0200 iwlwifi: mvm: flush fw_dump_wk when mvm fails to start FW dump may be triggered when running init ucode, for example due to a sysassert. In this case fw_dump_wk may run after mvm is freed, resulting in a kernel panic. Fix it by flushing the work. Fixes: 01b988a708af ("iwlwifi: mvm: allow to collect debug data when restart is disabled") Cc: [3.18+] Signed-off-by: Andrei Otcheretianski Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/mvm/ops.c | 1 + 1 file changed, 1 insertion(+) commit 2306c704ce280c97a60d1f45333b822b40281dea Author: Eric Dumazet Date: Thu Oct 1 05:39:26 2015 -0700 inet: fix race in reqsk_queue_unlink() reqsk_timer_handler() tests if icsk_accept_queue.listen_opt is NULL at its beginning. By the time it calls inet_csk_reqsk_queue_drop() and reqsk_queue_unlink(), listener might have been closed and inet_csk_listen_stop() had called reqsk_queue_yank_acceptq() which sets icsk_accept_queue.listen_opt to NULL We therefore need to correctly check listen_opt being NULL after holding syn_wait_lock for proper synchronization. Fixes: fa76ce7328b2 ("inet: get rid of central tcp/dccp listener timer") Fixes: b357a364c57c ("inet: fix possible panic in reqsk_queue_unlink()") Signed-off-by: Eric Dumazet Cc: Yuchung Cheng Signed-off-by: David S. Miller net/ipv4/inet_connection_sock.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 8695a144da9e500a5a60fa34c06694346ec1048f Author: Raanan Avargil Date: Thu Oct 1 04:48:53 2015 -0700 tcp/dccp: fix old style declarations I’m using the compilation flag -Werror=old-style-declaration, which requires that the “inline” word would come at the beginning of the code line. $ make drivers/net/ethernet/intel/e1000e/e1000e.ko ... include/net/inet_timewait_sock.h:116:1: error: ‘inline’ is not at beginning of declaration [-Werror=old-style-declaration] static void inline inet_twsk_schedule(struct inet_timewait_sock *tw, int timeo) include/net/inet_timewait_sock.h:121:1: error: ‘inline’ is not at beginning of declaration [-Werror=old-style-declaration] static void inline inet_twsk_reschedule(struct inet_timewait_sock *tw, int timeo) Fixes: ed2e92394589 ("tcp/dccp: fix timewait races in timer handling") Signed-off-by: Raanan Avargil Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/inet_timewait_sock.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1a3fe0b2b6778b7866e2b3f5c9a299d5e9bbd89c Author: Arik Nemtsov Date: Wed Sep 30 11:19:55 2015 +0300 iwlwifi: mvm: init card correctly on ctkill exit check During the CT-kill exit flow, the card is powered up and partially initialized to check if the temperature is already low enough. Unfortunately the init bails early because the CT-kill flag is set. Make the code bail early only for HW RF-kill, as was intended by the author. CT-kill is self-imposed and is not really RF-kill. Fixes: 31b8b343e019 ("iwlwifi: fix RFkill while calibrating") Cc: [3.18+] Signed-off-by: Arik Nemtsov Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/mvm/fw.c | 4 ++-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) commit f08f625876476b6c4a87834dc86e3b927f4697d2 Author: Luca Coelho Date: Tue Sep 22 09:44:39 2015 +0300 iwlwifi: pci: add a few more PCI subvendor IDs for the 7265 series Add 3 new subdevice IDs for the 0x095A device ID and 2 for the 0x095B device ID. Cc: [3.13+] Reported-by: Jeremy Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/pcie/drv.c | 5 +++++ 1 file changed, 5 insertions(+) commit b5a48134f8af08f5243328f8a0b05fc5ae7cf343 Author: Johannes Berg Date: Tue Sep 22 10:47:27 2015 +0200 iwlwifi: fix firmware filename for 3160 The MODULE_FIRMWARE() for 3160 should be using the 7260 version as it's done in the device configuration struct instead of referencing IWL3160_UCODE_API_OK which doesn't even exist. Cc: [3.8+] Reported-by: Hauke Mehrtens Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/iwl-7000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e9cb0327b26dd7ba43a3b7a05b4b62219decf42d Author: Avraham Stern Date: Mon Aug 31 11:08:27 2015 +0300 iwlwifi: mvm: clear csa countdown when AP is stopped The csa_countdown flag was not cleared when the AP is stopped. As a result, if the AP was stopped after csa_countdown had started, all the folowing channel switch commands would fail. Fix that by clearing the csa_countdown flag when the AP is stopped. Cc: [3.17+] Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 + 1 file changed, 1 insertion(+) commit 2cf5eb3ab7bb7f2e3a70edcef236cd62c87db030 Author: Johannes Berg Date: Tue Sep 15 14:36:09 2015 +0200 iwlwifi: mvm: fix D3 firmware PN programming The code to send the RX PN data (for each TID) to the firmware has a devastating bug: it overwrites the data for TID 0 with all the TID data, leaving the remaining TIDs zeroed. This will allow replays to actually be accepted by the firmware, which could allow waking up the system. Cc: [3.1+] Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/mvm/d3.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 5bd166872d8f99f156fac191299d24f828bb2348 Author: Johannes Berg Date: Tue Sep 15 14:36:09 2015 +0200 iwlwifi: dvm: fix D3 firmware PN programming The code to send the RX PN data (for each TID) to the firmware has a devastating bug: it overwrites the data for TID 0 with all the TID data, leaving the remaining TIDs zeroed. This will allow replays to actually be accepted by the firmware, which could allow waking up the system. Cc: [3.1+] Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/dvm/lib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6645d5e441db9121793421d477255f4242b3dbf3 Author: Johannes Berg Date: Tue Sep 15 09:58:53 2015 +0200 iwlwifi: mvm: fix D3 CCMP TX PN assignment When going into/coming out of D3, the TX PN must be programmed into and restored from the firmware respectively. The restore was broken due to my previous commit to move PN assignment into the driver. Sending the PN to the firmware still worked since we now use the counter that's shared with mac80211, but accessing it through the mac80211 API makes no sense now. Fix this by reading/writing the counter directly. This actually simplifies the code since we don't need to round-trip through the key_seq structure. Fixes: ca8c0f4bede6 ("iwlwifi: mvm: move TX PN assignment for CCMP to the driver") Cc: [4.1+] Reported-by: Luca Coelho Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho drivers/net/wireless/iwlwifi/mvm/d3.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 33a8316d9cda4368e7cb477fff36c9ee35d4164e Author: Vladimir Zapolskiy Date: Thu Oct 1 00:37:43 2015 +0300 net: lpc_eth: fix warnings caused by enabling unprepared clock If common clock framework is configured, the driver generates warnings, which are fixed by this change: WARNING: CPU: 0 PID: 1 at linux/drivers/clk/clk.c:727 clk_core_enable+0x2c/0xa4() Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 4.3.0-rc2+ #141 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 [<>] (lpc_eth_drv_probe+0xfc/0x99c) [<>] (lpc_eth_drv_probe) from [<>] (platform_drv_probe+0x50/0xa0) [<>] (platform_drv_probe) from [<>] (driver_probe_device+0x18c/0x408) [<>] (driver_probe_device) from [<>] (__driver_attach+0x70/0x94) [<>] (__driver_attach) from [<>] (bus_for_each_dev+0x74/0x98) [<>] (bus_for_each_dev) from [<>] (driver_attach+0x20/0x28) [<>] (driver_attach) from [<>] (bus_add_driver+0x11c/0x248) [<>] (bus_add_driver) from [<>] (driver_register+0xa4/0xe8) [<>] (driver_register) from [<>] (__platform_driver_register+0x50/0x64) [<>] (__platform_driver_register) from [<>] (lpc_eth_driver_init+0x18/0x20) [<>] (lpc_eth_driver_init) from [<>] (do_one_initcall+0x11c/0x1dc) [<>] (do_one_initcall) from [<>] (kernel_init_freeable+0x10c/0x1d4) [<>] (kernel_init_freeable) from [<>] (kernel_init+0x10/0xec) [<>] (kernel_init) from [<>] (ret_from_fork+0x14/0x24) Signed-off-by: Vladimir Zapolskiy Signed-off-by: David S. Miller drivers/net/ethernet/nxp/lpc_eth.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit f6194bcf03e40bc6b6094f11289d87b605fb326d Author: David B. Robins Date: Wed Sep 30 16:20:04 2015 -0400 net: usb: asix: Fix crash on skb alloc failure If asix_rx_fixup_internal() fails to allocate rx->ax_skb, it will return but not clear rx->size. rx points to driver private data. A later call assumes that nonzero size means ax_skb was allocated and passes a null ax_skb to skb_put. Changed allocation failure return to clear size first. Found testing board with AX88772B devices. Signed-off-by: David B. Robins Signed-off-by: David S. Miller drivers/net/usb/asix_common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 74910ea49dd7878ff8b1847ef3a370ba64110bcc Merge: 9dc80a7 7253054 Author: David S. Miller Date: Mon Oct 5 03:07:02 2015 -0700 Merge tag 'linux-can-fixes-for-4.3-20150930' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2015-09-30 this is a pull request of a single patch for 4.3. The patch is by Stephane Grosjean and add support for the peak OEM PCI card to the peak_pci driver by adding its device ID. ==================== Signed-off-by: David S. Miller commit 9dc80a74313d2741e053a650942818a86f234fc9 Author: Geliang Tang Date: Wed Sep 30 03:48:50 2015 -0700 amd-xgbe: fix potential memory leak in xgbe-debugfs Added kfree() to avoid the memory leak when debugfs_create_dir() fails. Signed-off-by: Geliang Tang Acked-by: Tom Lendacky Signed-off-by: David S. Miller drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c | 1 + 1 file changed, 1 insertion(+) commit e6740165b8f7f06d8caee0fceab3fb9d790a6fed Author: Guillaume Nault Date: Wed Sep 30 11:45:33 2015 +0200 ppp: don't override sk->sk_state in pppoe_flush_dev() Since commit 2b018d57ff18 ("pppoe: drop PPPOX_ZOMBIEs in pppoe_release"), pppoe_release() calls dev_put(po->pppoe_dev) if sk is in the PPPOX_ZOMBIE state. But pppoe_flush_dev() can set sk->sk_state to PPPOX_ZOMBIE _and_ reset po->pppoe_dev to NULL. This leads to the following oops: [ 570.140800] BUG: unable to handle kernel NULL pointer dereference at 00000000000004e0 [ 570.142931] IP: [] pppoe_release+0x50/0x101 [pppoe] [ 570.144601] PGD 3d119067 PUD 3dbc1067 PMD 0 [ 570.144601] Oops: 0000 [#1] SMP [ 570.144601] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core ip6_udp_tunnel udp_tunnel pppoe pppox ppp_generic slhc loop crc32c_intel ghash_clmulni_intel jitterentropy_rng sha256_generic hmac drbg ansi_cprng aesni_intel aes_x86_64 ablk_helper cryptd lrw gf128mul glue_helper acpi_cpufreq evdev serio_raw processor button ext4 crc16 mbcache jbd2 virtio_net virtio_blk virtio_pci virtio_ring virtio [ 570.144601] CPU: 1 PID: 15738 Comm: ppp-apitest Not tainted 4.2.0 #1 [ 570.144601] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Debian-1.8.2-1 04/01/2014 [ 570.144601] task: ffff88003d30d600 ti: ffff880036b60000 task.ti: ffff880036b60000 [ 570.144601] RIP: 0010:[] [] pppoe_release+0x50/0x101 [pppoe] [ 570.144601] RSP: 0018:ffff880036b63e08 EFLAGS: 00010202 [ 570.144601] RAX: 0000000000000000 RBX: ffff880034340000 RCX: 0000000000000206 [ 570.144601] RDX: 0000000000000006 RSI: ffff88003d30dd20 RDI: ffff88003d30dd20 [ 570.144601] RBP: ffff880036b63e28 R08: 0000000000000001 R09: 0000000000000000 [ 570.144601] R10: 00007ffee9b50420 R11: ffff880034340078 R12: ffff8800387ec780 [ 570.144601] R13: ffff8800387ec7b0 R14: ffff88003e222aa0 R15: ffff8800387ec7b0 [ 570.144601] FS: 00007f5672f48700(0000) GS:ffff88003fc80000(0000) knlGS:0000000000000000 [ 570.144601] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 570.144601] CR2: 00000000000004e0 CR3: 0000000037f7e000 CR4: 00000000000406a0 [ 570.144601] Stack: [ 570.144601] ffffffffa018f240 ffff8800387ec780 ffffffffa018f240 ffff8800387ec7b0 [ 570.144601] ffff880036b63e48 ffffffff812caabe ffff880039e4e000 0000000000000008 [ 570.144601] ffff880036b63e58 ffffffff812cabad ffff880036b63ea8 ffffffff811347f5 [ 570.144601] Call Trace: [ 570.144601] [] sock_release+0x1a/0x75 [ 570.144601] [] sock_close+0xd/0x11 [ 570.144601] [] __fput+0xff/0x1a5 [ 570.144601] [] ____fput+0x9/0xb [ 570.144601] [] task_work_run+0x66/0x90 [ 570.144601] [] prepare_exit_to_usermode+0x8c/0xa7 [ 570.144601] [] syscall_return_slowpath+0x16d/0x19b [ 570.144601] [] int_ret_from_sys_call+0x25/0x9f [ 570.144601] Code: 48 8b 83 c8 01 00 00 a8 01 74 12 48 89 df e8 8b 27 14 e1 b8 f7 ff ff ff e9 b7 00 00 00 8a 43 12 a8 0b 74 1c 48 8b 83 a8 04 00 00 <48> 8b 80 e0 04 00 00 65 ff 08 48 c7 83 a8 04 00 00 00 00 00 00 [ 570.144601] RIP [] pppoe_release+0x50/0x101 [pppoe] [ 570.144601] RSP [ 570.144601] CR2: 00000000000004e0 [ 570.200518] ---[ end trace 46956baf17349563 ]--- pppoe_flush_dev() has no reason to override sk->sk_state with PPPOX_ZOMBIE. pppox_unbind_sock() already sets sk->sk_state to PPPOX_DEAD, which is the correct state given that sk is unbound and po->pppoe_dev is NULL. Fixes: 2b018d57ff18 ("pppoe: drop PPPOX_ZOMBIEs in pppoe_release") Tested-by: Oleksii Berezhniak Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/pppoe.c | 1 - 1 file changed, 1 deletion(-) commit 71a0a72456b48de972d7ed613b06a22a3aa9057f Author: Yousong Zhou Date: Sat Sep 26 13:41:43 2015 +0800 MIPS: UAPI: Ignore __arch_swab{16,32,64} when using MIPS16 Some GCC versions (e.g. 4.8.3) can incorrectly inline a function with MIPS32 instructions into another function with MIPS16 code [1], causing the assembler to genereate incorrect binary code or fail right away complaining about unrecognized opcode. In the case of __arch_swab{16,32}, when inlined by the compiler with flags `-mips32r2 -mips16 -Os', the assembler can fail with the following error. {standard input}:79: Error: unrecognized opcode `wsbh $2,$2' For performance concerns and to workaround the issue already existing in older compilers, just ignore these 2 functions when compiling with mips16 enabled. [1] Inlining nomips16 function into mips16 function can result in undefined builtins, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55777 Signed-off-by: Yousong Zhou Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11241/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/swab.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1bb3bf6226eedee453902e5cf8899ee548f43840 Author: Yousong Zhou Date: Sat Sep 26 13:41:42 2015 +0800 Revert "MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16." This reverts commit e0d8b2ec532852d4b5aabcec3e7611848c32237d. For at least GCC 4.8.3, adding nomips16 function attribute still cannot prevent it from being inlined in mips16 context. So revert it first in preparation for a better workaround. [1] Inlining nomips16 function into mips16 function can result in undefined builtins, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55777 Signed-off-by: Yousong Zhou Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11240/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/swab.h | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 41ada9df7f340998e810dcda21a00da5f75c4147 Author: Alexey Khoroshilov Date: Mon Aug 24 10:18:38 2015 +0200 mcb: Fix error handling in mcb_pci_probe() If a MCB PCI Carrier device is IO mapped insted of memory-mapped, the memory of the PCI device is still not unmapped. Also the patch adds deallocation of the bus if chameleon_parse_cells() fails. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Johannes Thumshirn Signed-off-by: Greg Kroah-Hartman drivers/mcb/mcb-pci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c7e1008048a97148d3aecae742f66fb2f944644c Author: Takashi Iwai Date: Sun Oct 4 22:44:12 2015 +0200 ALSA: hda - Disable power_save_node for IDT 92HD73xx chips The recent widget power saving introduced some unavoidable click noises on old IDT 92HD73xx chips while it still seems working on the compatible new chips. In the bugzilla, we tried lots of tests and workarounds, but they didn't help much. So, let's disable the feature for these specific chips as the least (but safest) fix. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104981 Cc: # v4.1+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_sigmatel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b1d562acc78f0af46de0dfe447410bc40bdb7ece Author: covici@ccs.covici.com Date: Wed May 20 05:44:11 2015 -0400 staging: speakup: fix speakup-r regression Here is a patch to make speakup-r work again. It broke in 3.6 due to commit 4369c64c79a22b98d3b7eff9d089196cd878a10a "Input: Send events one packet at a time) The problem was that the fakekey.c routine to fake a down arrow no longer functioned properly and putting the input_sync fixed it. Fixes: 4369c64c79a22b98d3b7eff9d089196cd878a10a Cc: stable Acked-by: Samuel Thibault Signed-off-by: John Covici Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/fakekey.c | 1 + 1 file changed, 1 insertion(+) commit 8b581e4995288e8948f770f3e9fc568492cfd2dd Author: Julian Andres Klode Date: Sun Sep 13 17:23:27 2015 +0200 MAINTAINERS: Remove myself as nvec co-maintainer My device broke a long time ago, so I do not have any chance of testing things or any reason to continue maintaining it. Signed-off-by: Julian Andres Klode Signed-off-by: Marc Dietrich Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 0c55627167870255158db1cde0d28366f91c8872 Author: Jann Horn Date: Sun Oct 4 19:29:12 2015 +0200 drivers/tty: require read access for controlling terminal This is mostly a hardening fix, given that write-only access to other users' ttys is usually only given through setgid tty executables. Signed-off-by: Jann Horn Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) commit 3c5a0357fdb3a9116a48dbdb0abb91fd23fbff80 Author: Mans Rullgard Date: Fri Oct 2 17:50:31 2015 +0100 serial: 8250: add uart_config entry for PORT_RT2880 This adds an entry to the uart_config table for PORT_RT2880 enabling rx/tx FIFOs. The UART is actually a Palmchip BK-3103 which is found in several devices from Alchemy/RMI, Ralink, and Sigma Designs. Signed-off-by: Mans Rullgard Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_port.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit facd885c75067c2a88b72622dfb0fa4b9510da5e Author: Dmitry Vyukov Date: Thu Sep 17 17:17:10 2015 +0200 tty: fix data race on tty_buffer.commit Race on buffer data happens when newly committed data is picked up by an old flush work in the following scenario: __tty_buffer_request_room does a plain write of tail->commit, no barriers were executed before that. At this point flush_to_ldisc reads this new value of commit, and reads buffer data, no barriers in between. The committed buffer data is not necessary visible to flush_to_ldisc. Similar bug happens when tty_schedule_flip commits data. Update commit with smp_store_release and read commit with smp_load_acquire, as it is commit that signals data readiness. This is orthogonal to the existing synchronization on tty_buffer.next, which is required to not dismiss a buffer with unconsumed data. The data race was found with KernelThreadSanitizer (KTSAN). Signed-off-by: Dmitry Vyukov Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_buffer.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 9e6b7cd7e77d4ca43b57c726d9bfa86d06e0567f Author: Dmitry Vyukov Date: Thu Sep 17 17:17:09 2015 +0200 tty: fix data race in tty_buffer_flush tty_buffer_flush frees not acquired buffers. As the result, for example, read of b->size in tty_buffer_free can return garbage value which will lead to a huge buffer hanging in the freelist. This is just the benignest manifestation of freeing of a not acquired object. If the object is passed to kfree, heap can be corrupted. Acquire visibility over the buffer before freeing it. The data race was found with KernelThreadSanitizer (KTSAN). Signed-off-by: Dmitry Vyukov Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7098296a362a96051fa120abf48f0095818b99cd Author: Dmitry Vyukov Date: Thu Sep 17 17:17:08 2015 +0200 tty: fix data race in flush_to_ldisc flush_to_ldisc reads port->itty and checks that it is not NULL, concurrently release_tty sets port->itty to NULL. It is possible that flush_to_ldisc loads port->itty once, ensures that it is not NULL, but then reloads it again and uses. The second load can already return NULL, which will cause a crash. Use READ_ONCE to read port->itty. The data race was found with KernelThreadSanitizer (KTSAN). Signed-off-by: Dmitry Vyukov Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e81107d4c6bd098878af9796b24edc8d4a9524fd Author: Kosuke Tatsukawa Date: Fri Oct 2 08:27:05 2015 +0000 tty: fix stall caused by missing memory barrier in drivers/tty/n_tty.c My colleague ran into a program stall on a x86_64 server, where n_tty_read() was waiting for data even if there was data in the buffer in the pty. kernel stack for the stuck process looks like below. #0 [ffff88303d107b58] __schedule at ffffffff815c4b20 #1 [ffff88303d107bd0] schedule at ffffffff815c513e #2 [ffff88303d107bf0] schedule_timeout at ffffffff815c7818 #3 [ffff88303d107ca0] wait_woken at ffffffff81096bd2 #4 [ffff88303d107ce0] n_tty_read at ffffffff8136fa23 #5 [ffff88303d107dd0] tty_read at ffffffff81368013 #6 [ffff88303d107e20] __vfs_read at ffffffff811a3704 #7 [ffff88303d107ec0] vfs_read at ffffffff811a3a57 #8 [ffff88303d107f00] sys_read at ffffffff811a4306 #9 [ffff88303d107f50] entry_SYSCALL_64_fastpath at ffffffff815c86d7 There seems to be two problems causing this issue. First, in drivers/tty/n_tty.c, __receive_buf() stores the data and updates ldata->commit_head using smp_store_release() and then checks the wait queue using waitqueue_active(). However, since there is no memory barrier, __receive_buf() could return without calling wake_up_interactive_poll(), and at the same time, n_tty_read() could start to wait in wait_woken() as in the following chart. __receive_buf() n_tty_read() ------------------------------------------------------------------------ if (waitqueue_active(&tty->read_wait)) /* Memory operations issued after the RELEASE may be completed before the RELEASE operation has completed */ add_wait_queue(&tty->read_wait, &wait); ... if (!input_available_p(tty, 0)) { smp_store_release(&ldata->commit_head, ldata->read_head); ... timeout = wait_woken(&wait, TASK_INTERRUPTIBLE, timeout); ------------------------------------------------------------------------ The second problem is that n_tty_read() also lacks a memory barrier call and could also cause __receive_buf() to return without calling wake_up_interactive_poll(), and n_tty_read() to wait in wait_woken() as in the chart below. __receive_buf() n_tty_read() ------------------------------------------------------------------------ spin_lock_irqsave(&q->lock, flags); /* from add_wait_queue() */ ... if (!input_available_p(tty, 0)) { /* Memory operations issued after the RELEASE may be completed before the RELEASE operation has completed */ smp_store_release(&ldata->commit_head, ldata->read_head); if (waitqueue_active(&tty->read_wait)) __add_wait_queue(q, wait); spin_unlock_irqrestore(&q->lock,flags); /* from add_wait_queue() */ ... timeout = wait_woken(&wait, TASK_INTERRUPTIBLE, timeout); ------------------------------------------------------------------------ There are also other places in drivers/tty/n_tty.c which have similar calls to waitqueue_active(), so instead of adding many memory barrier calls, this patch simply removes the call to waitqueue_active(), leaving just wake_up*() behind. This fixes both problems because, even though the memory access before or after the spinlocks in both wake_up*() and add_wait_queue() can sneak into the critical section, it cannot go past it and the critical section assures that they will be serialized (please see "INTER-CPU ACQUIRING BARRIER EFFECTS" in Documentation/memory-barriers.txt for a better explanation). Moreover, the resulting code is much simpler. Latency measurement using a ping-pong test over a pty doesn't show any visible performance drop. Signed-off-by: Kosuke Tatsukawa Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 8f1bd8f2ad2358d6a88c115481ff3e69817d1bde Author: Uwe Kleine-König Date: Wed Sep 23 08:57:40 2015 +0200 serial: atmel: fix error path of probe function If atmel_init_gpios fails the port has already been marked as busy (in line 2629), so this must be undone in the error path. This bug was introduced because I created the patch that finally became 722ccf416ac2 ("serial: atmel: fix error handling when mctrl_gpio_init fails") on top of 3.19 which didn't have commit 6fbb9bdf0f3f ("tty/serial: at91: fix error handling in atmel_serial_probe()") yet. Signed-off-by: Uwe Kleine-König Fixes: 722ccf416ac2 ("serial: atmel: fix error handling when mctrl_gpio_init fails") Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c1a752ba2d6b8a52879c7ab637cff38359ea9827 Author: Leon Yu Date: Mon Sep 7 13:08:37 2015 +0000 tty: don't leak cdev in tty_cdev_add() Commit a3a10ce3429e ("Avoid usb reset crashes by making tty_io cdevs truly dynamic") which mixes using cdev_alloc() and cdev_init() is problematic. Subsequent call to cdev_init() after cdev_alloc() sets kobj release method from cdev_dynamic_release() to cdev_default_release() and thus makes it impossible to free allocated cdev. This patch also consolidates error path of cdev_add() as cdev can also leak here if things went wrong. Signed-off-by: Leon Yu Fixes: a3a10ce3429e ("Avoid usb reset crashes by making tty_io cdevs truly dynamic") Acked-by: Richard Watts Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 0c727a42043f79db210cdde0366f9137b9c6bf5a Author: Fabio Estevam Date: Tue Aug 18 12:43:12 2015 -0300 Revert "serial: imx: remove unbalanced clk_prepare" This reverts commit 9e7b399d6528eac33a6fbfceb2b92af209c3454d. Commit ("9e7b399d6528ea") causes the following warning and sometimes also hangs the system: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at kernel/locking/mutex.c:868 mutex_trylock+0x20c/0x22c() DEBUG_LOCKS_WARN_ON(in_interrupt()) Modules linked in: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc7-next-20150818-00001-g14418a6 #4 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Backtrace: [<80012f08>] (dump_backtrace) from [<800130a4>] (show_stack+0x18/0x1c) r6:00000364 r5:00000000 r4:00000000 r3:00000000 [<8001308c>] (show_stack) from [<807902b8>] (dump_stack+0x88/0xa4) [<80790230>] (dump_stack) from [<8002a604>] (warn_slowpath_common+0x80/0xbc) r5:807945c4 r4:80ab3b50 [<8002a584>] (warn_slowpath_common) from [<8002a6e4>] (warn_slowpath_fmt+0x38/0x40) r8:00000000 r7:8131100c r6:8054c3cc r5:8131300c r4:80b0a570 [<8002a6b0>] (warn_slowpath_fmt) from [<807945c4>] (mutex_trylock+0x20c/0x22c) r3:8095d0d8 r2:8095ab28 [<807943b8>] (mutex_trylock) from [<8054c3cc>] (clk_prepare_lock+0x14/0xf4) r7:8131100c r6:be3f0c80 r5:00000037 r4:be3f0c80 [<8054c3b8>] (clk_prepare_lock) from [<8054dbfc>] (clk_prepare+0x18/0x30) r5:00000037 r4:be3f0c80 [<8054dbe4>] (clk_prepare) from [<8036a600>] (imx_console_write+0x30/0x244) r4:812d0bc8 r3:8132b9a4 To reproduce the problem we only need to let the board idle for something like 30 seconds. Tested on a imx6q-sabresd. Signed-off-by: Fabio Estevam Reviewed-by: Eduardo Valentin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit 049e6dde7e57f0054fdc49102e7ef4830c698b46 Author: Linus Torvalds Date: Sun Oct 4 16:57:17 2015 +0100 Linux 4.3-rc4 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30c44659f4a3e7e1f9f47e895591b4b40bf62671 Merge: 15ecf9a 30059d4 Author: Linus Torvalds Date: Sun Oct 4 16:31:13 2015 +0100 Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull strscpy string copy function implementation from Chris Metcalf. Chris sent this during the merge window, but I waffled back and forth on the pull request, which is why it's going in only now. The new "strscpy()" function is definitely easier to use and more secure than either strncpy() or strlcpy(), both of which are horrible nasty interfaces that have serious and irredeemable problems. strncpy() has a useless return value, and doesn't NUL-terminate an overlong result. To make matters worse, it pads a short result with zeroes, which is a performance disaster if you have big buffers. strlcpy(), by contrast, is a mis-designed "fix" for strlcpy(), lacking the insane NUL padding, but having a differently broken return value which returns the original length of the source string. Which means that it will read characters past the count from the source buffer, and you have to trust the source to be properly terminated. It also makes error handling fragile, since the test for overflow is unnecessarily subtle. strscpy() avoids both these problems, guaranteeing the NUL termination (but not excessive padding) if the destination size wasn't zero, and making the overflow condition very obvious by returning -E2BIG. It also doesn't read past the size of the source, and can thus be used for untrusted source data too. So why did I waffle about this for so long? Every time we introduce a new-and-improved interface, people start doing these interminable series of trivial conversion patches. And every time that happens, somebody does some silly mistake, and the conversion patch to the improved interface actually makes things worse. Because the patch is mindnumbing and trivial, nobody has the attention span to look at it carefully, and it's usually done over large swatches of source code which means that not every conversion gets tested. So I'm pulling the strscpy() support because it *is* a better interface. But I will refuse to pull mindless conversion patches. Use this in places where it makes sense, but don't do trivial patches to fix things that aren't actually known to be broken. * 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: use global strscpy() rather than private copy string: provide strscpy() Make asm/word-at-a-time.h available on all architectures commit 84dfe03ae2112b817d5221575d59ba616dc0c3e2 Author: Alexander Usyskin Date: Mon Sep 21 11:45:32 2015 +0300 mei: hbm: fix error in state check logic Use || instead && in state check. The latter is bogus and leads to following warning: drivers/misc/mei/hbm.c:1212:46: warning: logical ‘and’ of mutually exclusive tests is always false [-Wlogical-op] Fixes: 70ef835c84b3 ("mei: support for dynamic clients") Reported-by: David Binderman Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hbm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb727077b04f768d0c79d9aa29e958262a9e3d9e Author: Maxime Ripard Date: Wed Sep 30 13:36:31 2015 +0100 nvmem: sunxi: Check for memory allocation failure The sunxi_sid driver doesn't check for kmalloc return status before derefencing the returned pointer, which could lead to a NULL pointer dereference if kmalloc failed. Check for its return code to make sure it deosn't happen. Reported-by: Dan Carpenter Signed-off-by: Maxime Ripard Signed-off-by: Greg Kroah-Hartman drivers/nvmem/sunxi_sid.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit ace22170655f61d82fff95e57d673bf847a32a03 Author: Axel Lin Date: Wed Sep 30 13:36:10 2015 +0100 nvmem: core: Fix memory leak in nvmem_cell_write A tmp buffer is allocated if cell->bit_offset || cell->nbits. So the tmp buffer needs to be freed at the same condition to avoid leak. Signed-off-by: Axel Lin Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cbf854ab36870b931aeba4edd954015b7c3005a2 Author: Axel Lin Date: Wed Sep 30 13:35:15 2015 +0100 nvmem: core: Handle shift bits in-place if cell->nbits is non-zero It's pointless to test (cell->bit_offset || cell->bit_offset). nvmem_shift_read_buffer_in_place() should be called when (cell->bit_offset || cell->nbits). Signed-off-by: Axel Lin Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c806883e143dc60439e6bdb3589700ebed1efaa Author: ZhengShunQian Date: Wed Sep 30 13:33:56 2015 +0100 nvmem: core: fix the out-of-range leak in read/write() The position to read/write must be less than max register size. Signed-off-by: ZhengShunQian Acked-by: Srinivas Kandagatla Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman drivers/nvmem/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 15ecf9a986e2678f5de36ead23b89235612fc03f Merge: 0d87708 da6fb7a Author: Linus Torvalds Date: Sun Oct 4 11:47:28 2015 +0100 Merge tag 'md/4.3-fixes' of git://neil.brown.name/md Pull md fixes from Neil Brown: "Assorted fixes for md in 4.3-rc. Two tagged for -stable, and one is really a cleanup to match and improve kmemcache interface. * tag 'md/4.3-fixes' of git://neil.brown.name/md: md/bitmap: don't pass -1 to bitmap_storage_alloc. md/raid1: Avoid raid1 resync getting stuck md: drop null test before destroy functions md: clear CHANGE_PENDING in readonly array md/raid0: apply base queue limits *before* disk_stack_limits md/raid5: don't index beyond end of array in need_this_block(). raid5: update analysis state for failed stripe md: wait for pending superblock updates before switching to read-only commit 0d8770815f70cf41b69a82ede272b026dbb2df7d Merge: 3e519dd d218af7 Author: Linus Torvalds Date: Sun Oct 4 11:41:58 2015 +0100 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS updates from Ralf Baechle: "This week's round of MIPS fixes: - Fix JZ4740 build - Fix fallback to GFP_DMA - FP seccomp in case of ENOSYS - Fix bootmem panic - A number of FP and CPS fixes - Wire up new syscalls - Make sure BPF assembler objects can properly be disassembled - Fix BPF assembler code for MIPS I" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: scall: Always run the seccomp syscall filters MIPS: Octeon: Fix kernel panic on startup from memory corruption MIPS: Fix R2300 FP context switch handling MIPS: Fix octeon FP context switch handling MIPS: BPF: Fix load delay slots. MIPS: BPF: Do all exports of symbols with FEXPORT(). MIPS: Fix the build on jz4740 after removing the custom gpio.h MIPS: CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT MIPS: CPS: Don't include MT code in non-MT kernels. MIPS: CPS: Stop dangling delay slot from has_mt. MIPS: dma-default: Fix 32-bit fall back to GFP_DMA MIPS: Wire up userfaultfd and membarrier syscalls. commit 3e519dde1e8a73e59b0eab52575a14a2986283b6 Merge: 2cf3082 791c76d Author: Linus Torvalds Date: Sun Oct 4 11:40:09 2015 +0100 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixes from Thomas Gleixner: "This update contains: - Fix for a long standing race affecting /proc/irq/NNN - One line fix for ARM GICV3-ITS counting the wrong data - Warning silencing in ARM GICV3-ITS. Another GCC trying to be overly clever issue" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gic-v3-its: Count additional LPIs for the aliased devices irqchip/gic-v3-its: Silence warning when its_lpi_alloc_chunks gets inlined genirq: Fix race in register_irq_proc() commit d218af78492a36a4ae607c08fedfb59258440314 Author: Markos Chandras Date: Fri Sep 25 08:17:42 2015 +0100 MIPS: scall: Always run the seccomp syscall filters The MIPS syscall handler code used to return -ENOSYS on invalid syscalls. Whilst this is expected, it caused problems for seccomp filters because the said filters never had the change to run since the code returned -ENOSYS before triggering them. This caused problems on the chromium testsuite for filters looking for invalid syscalls. This has now changed and the seccomp filters are always run even if the syscall is invalid. We return -ENOSYS once we return from the seccomp filters. Moreover, similar codepaths have been merged in the process which simplifies somewhat the overall syscall code. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11236/ Signed-off-by: Ralf Baechle arch/mips/kernel/scall32-o32.S | 39 ++++++++++++++++----------------------- arch/mips/kernel/scall64-64.S | 38 ++++++++++++++++---------------------- arch/mips/kernel/scall64-n32.S | 19 +++++-------------- arch/mips/kernel/scall64-o32.S | 19 +++++-------------- 4 files changed, 42 insertions(+), 73 deletions(-) commit 72194739f54607bbf8cfded159627a2015381557 Author: Vincent Palatin Date: Thu Oct 1 14:10:22 2015 -0700 usb: Add device quirk for Logitech PTZ cameras Add a device quirk for the Logitech PTZ Pro Camera and its sibling the ConferenceCam CC3000e Camera. This fixes the failed camera enumeration on some boot, particularly on machines with fast CPU. Tested by connecting a Logitech PTZ Pro Camera to a machine with a Haswell Core i7-4600U CPU @ 2.10GHz, and doing thousands of reboot cycles while recording the kernel logs and taking camera picture after each boot. Before the patch, more than 7% of the boots show some enumeration transfer failures and in a few of them, the kernel is giving up before actually enumerating the webcam. After the patch, the enumeration has been correct on every reboot. Signed-off-by: Vincent Palatin Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/usb/core/quirks.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1d5c47f555c5ae050fad22e4a99f88856cae5d05 Author: Alexander Inyukhin Date: Sat Sep 26 15:24:21 2015 +0300 USB: chaoskey read offset bug Rng reads in chaoskey driver could return the same data under the certain conditions. Signed-off-by: Alexander Inyukhin Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/usb/misc/chaoskey.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8484bf2981b3d006426ac052a3642c9ce1d8d980 Author: Yao-Wen Mao Date: Mon Aug 31 14:24:09 2015 +0800 USB: Add reset-resume quirk for two Plantronics usb headphones. These two headphones need a reset-resume quirk to properly resume to original volume level. Signed-off-by: Yao-Wen Mao Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/usb/core/quirks.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 616a5399b8f11a526cedcbaeb68bc0a1b08a3f43 Author: Steve French Date: Sat Oct 3 16:54:17 2015 -0500 [CIFS] Update cifs version number Update modinfo cifs.ko version number to 2.08 Signed-off-by: Steve French fs/cifs/cifsfs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2cf30826bbc6c940568be07e8fab0aee02165cf8 Merge: 37cc7ab f4b4aae Author: Linus Torvalds Date: Sat Oct 3 10:53:05 2015 -0400 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "Fixes all around the map: W+X kernel mapping fix, WCHAN fixes, two build failure fixes for corner case configs, x32 header fix and a speling fix" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds x86/mm: Set NX on gap between __ex_table and rodata x86/kexec: Fix kexec crash in syscall kexec_file_load() x86/process: Unify 32bit and 64bit implementations of get_wchan() x86/process: Add proper bound checks in 64bit get_wchan() x86, efi, kasan: Fix build failure on !KASAN && KMEMCHECK=y kernels x86/hyperv: Fix the build in the !CONFIG_KEXEC_CORE case x86/cpufeatures: Correct spelling of the HWP_NOTIFY flag commit 37cc7ab1d2c317cc989b8aa0224cfc5f0478ccbd Merge: a758379 67dfae0 Author: Linus Torvalds Date: Sat Oct 3 10:51:41 2015 -0400 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Ingo Molnar: "An abs64() fix in the watchdog driver, and two clocksource driver NO_IRQ assumption fixes" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clocksource: Fix abs() usage w/ 64bit values clocksource/drivers/keystone: Fix bad NO_IRQ usage clocksource/drivers/rockchip: Fix bad NO_IRQ usage commit a758379b031f50b9def094aad071ef547a5cb335 Merge: 14f97d9 0ce3cc0 Author: Linus Torvalds Date: Sat Oct 3 10:46:41 2015 -0400 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull EFI fixes from Ingo Molnar: "Two EFI fixes: one for x86, one for ARM, fixing a boot crash bug that can trigger under newer EFI firmware" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: arm64/efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME regions x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at runtime, instead of top-down commit 14f97d9713283adfadf2193e287e21d079f72ee7 Merge: 978ab6a ccf03d6 Author: Linus Torvalds Date: Sat Oct 3 10:39:31 2015 -0400 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Bunch of fixes all over the place, all pretty small: amdgpu, i915, exynos, one qxl and one vmwgfx. There is also a bunch of mst fixes, I left some cleanups in the series as I didn't think it was worth splitting up the tested series" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (37 commits) drm/dp/mst: add some defines for logical/physical ports drm/dp/mst: drop cancel work sync in the mstb destroy path (v2) drm/dp/mst: split connector registration into two parts (v2) drm/dp/mst: update the link_address_sent before sending the link address (v3) drm/dp/mst: fixup handling hotplug on port removal. drm/dp/mst: don't pass port into the path builder function drm/radeon: drop radeon_fb_helper_set_par drm: handle cursor_set2 in restore_fbdev_mode drm/exynos: Staticize local function in exynos_drm_gem.c drm/exynos: fimd: actually disable dp clock drm/exynos: dp: remove suspend/resume functions drm/qxl: recreate the primary surface when the bo is not primary drm/amdgpu: only print meaningful VM faults drm/amdgpu/cgs: remove import_gpu_mem drm/i915: Call non-locking version of drm_kms_helper_poll_enable(), v2 drm: Add a non-locking version of drm_kms_helper_poll_enable(), v2 drm/vmwgfx: Fix a command submission hang regression drm/exynos: remove unused mode_fixup() code drm/exynos: remove decon_mode_fixup() drm/exynos: remove fimd_mode_fixup() ... commit dd2bdd7072de328bfb88e45d372371a1fa189e87 Merge: 02899e7 f9fef61 Author: Greg Kroah-Hartman Date: Sat Oct 3 13:39:40 2015 +0200 Merge tag 'phy-for-4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus Kishon writes: phy: for 4.3-rc *) Fix compiler error in qcom-ufs when it is built as module *) Power down rockchip-usb PHY during probe to save power consumption *) Fix module autoload for berlin-sata PHY driver Signed-off-by: Kishon Vijay Abraham I commit 02899e7a95844ff1f12d2b4795906c7bf5aab276 Merge: 9ffecb1 f5f6afa Author: Greg Kroah-Hartman Date: Sat Oct 3 13:22:56 2015 +0200 Merge tag 'fixes-for-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.3-rc4 A memory leak fix for the BCD UDC driver, a build warning fix on Renesas and a new device ID for R-Car H3. Nothing major. Signed-off-by: Felipe Balbi commit eda7d0f38aaf50dbb2a2de15e8db386c4f6f65fc Author: Dan Carpenter Date: Sat Aug 8 22:16:42 2015 +0300 iio: accel: sca3000: memory corruption in sca3000_read_first_n_hw_rb() "num_read" is in byte units but we are write u16s so we end up write twice as much as intended. Signed-off-by: Dan Carpenter Cc: Signed-off-by: Jonathan Cameron drivers/staging/iio/accel/sca3000_ring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61fd56309165d4790f99462d893b099f0b07312a Author: Linus Walleij Date: Wed Sep 2 21:02:58 2015 +0200 iio: st_accel: fix interrupt handling on LIS3LV02 This accelerometer accidentally either emits a DRDY signal or an IRQ signal. Accidentally I activated the IRQ signal as I thought it was analogous to the interrupt generator on other ST accelerometers. This was wrong. After this patch generic_buffer gives a nice stream of accelerometer readings. Fixes: 3acddf74f807778f "iio: st-sensors: add support for lis3lv02d accelerometer" Cc: Denis CIOCCA Signed-off-by: Linus Walleij Cc: Signed-off-by: Jonathan Cameron drivers/iio/accel/st_accel_core.c | 6 ------ 1 file changed, 6 deletions(-) commit 7cc97d77ee8a90a6389b96a62472cddc02475ffc Author: Adam YH Lee Date: Tue Aug 4 11:15:48 2015 -0700 iio: adc: twl4030: Fix ADC[3:6] readings MADC[3:6] reads incorrect values without these two following changes: - enable the 3v1 bias regulator for ADC[3:6] - configure ADC[3:6] lines as input, not as USB Signed-off-by: Adam YH Lee Signed-off-by: Jonathan Cameron drivers/iio/adc/twl4030-madc.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit e8ff581f7ac2bc3b8886094b7ca635dcc4d1b0e9 Author: John Flatness Date: Fri Oct 2 17:07:49 2015 -0400 ALSA: hda - Apply SPDIF pin ctl to MacBookPro 12,1 The MacBookPro 12,1 has the same setup as the 11 for controlling the status of the optical audio light. Simply apply the existing workaround to the subsystem ID for the 12,1. [sorted the fixup entry by tiwai] Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=105401 Signed-off-by: John Flatness Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_cirrus.c | 1 + 1 file changed, 1 insertion(+) commit d05ea7da0e8f6df3c62cfee75538f347cb3d89ef Author: Laura Abbott Date: Fri Oct 2 11:09:54 2015 -0700 ALSA: hda: Add dock support for ThinkPad T550 Much like all the other Lenovo laptops, add a quirk to make sound work with docking. Reported-and-tested-by: lacknerflo@gmail.com Signed-off-by: Laura Abbott Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit 54328e64047a54b8fc2362c2e1f0fa16c90f739f Author: Larry Finger Date: Fri Oct 2 11:44:30 2015 -0500 rtlwifi: rtl8821ae: Fix system lockups on boot In commit 1277fa2ab2f9 ("rtlwifi: Remove the clear interrupt routine from all drivers"), the code that cleared all interrupt enable bits before setting them was removed for all PCI drivers. This fixed an issue that caused TX to be blocked for 3-5 seconds. On some RTL8821AE units, this change causes soft lockups to occur on boot. For that reason, the portion of the earlier commit that applied to rtl8821ae is reverted. Kernels 4.1 and newer are affected. See http://marc.info/?l=linux-wireless&m=144373370103285&w=2 and https://bugzilla.opensuse.org/show_bug.cgi?id=944978 for two cases where this regression affected user systems. Note that this bug does not appear on any of the developer's setups. For those users whose systems are affected by the TX blockage, but do not lock up on boot, a module parameter is added to disable the interrupt clear Fixes: 1277fa2ab2f9 ("rtlwifi: Remove the clear interrupt routine from all drivers") Signed-off-by: Larry Finger Cc: Stable [V4.1+] Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/pci.h | 2 ++ drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 17 +++++++++++++++++ drivers/net/wireless/rtlwifi/rtl8821ae/sw.c | 5 +++++ drivers/net/wireless/rtlwifi/wifi.h | 3 +++ 4 files changed, 27 insertions(+) commit 978ab6a009e6691375a0b6f8a44ebbb471a64b6d Merge: 5634347 62d7846 Author: Linus Torvalds Date: Fri Oct 2 17:53:25 2015 -0400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input layer fixes from Dmitry Torokhov: "Fixes for two recent regressions (in Synaptics PS/2 and uinput drivers) and some more driver fixups" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Revert "Input: synaptics - fix handling of disabling gesture mode" Input: psmouse - fix data race in __ps2_command Input: elan_i2c - add all valid ic type for i2c/smbus Input: zhenhua - ensure we have BITREVERSE Input: omap4-keypad - fix memory leak Input: serio - fix blocking of parport Input: uinput - fix crash when using ABS events Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF Input: elan_i2c - add ic type 0x03 Input: elan_i2c - don't require known iap version Input: imx6ul_tsc - fix controller name Input: imx6ul_tsc - use the preferred method for kzalloc() Input: imx6ul_tsc - check for negative return value Input: imx6ul_tsc - propagate the errors Input: walkera0701 - fix abs() calculations on 64 bit values Input: mms114 - remove unneded semicolons Input: pm8941-pwrkey - remove unneded semicolon Input: fix typo in MT documentation Input: cyapa - fix address of Gen3 devices in device tree documentation commit 67dfae0cd72fec5cd158b6e5fb1647b7dbe0834c Author: John Stultz Date: Mon Sep 14 18:05:20 2015 -0700 clocksource: Fix abs() usage w/ 64bit values This patch fixes one cases where abs() was being used with 64-bit nanosecond values, where the result may be capped at 32-bits. This potentially could cause watchdog false negatives on 32-bit systems, so this patch addresses the issue by using abs64(). Signed-off-by: John Stultz Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1442279124-7309-2-git-send-email-john.stultz@linaro.org Signed-off-by: Thomas Gleixner kernel/time/clocksource.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b02ec79004388a8c65e227bc289ed891b5ac8c6 Author: Alex Deucher Date: Fri Oct 2 16:12:07 2015 -0400 drm/radeon: add quirk for ASUS R7 370 Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92260 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/si_dpm.c | 1 + 1 file changed, 1 insertion(+) commit fa022a9b65d2886486a022fd66b20c823cd76ad9 Author: Alex Deucher Date: Wed Sep 30 17:05:40 2015 -0400 drm/amdgpu: add pm sysfs files late They were added relatively early in the driver init process which meant that in some cases the driver was not finished initializing before external tools tried to use them which could result in a crash depending on the timing. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 8 +++++--- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 10 ++++++---- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 9 ++++++--- 3 files changed, 17 insertions(+), 10 deletions(-) commit 51a4726b04e880fdd9b4e0e58b13f70b0a68a7f5 Author: Alex Deucher Date: Wed Sep 30 16:45:52 2015 -0400 drm/radeon: add pm sysfs files late They were added relatively early in the driver init process which meant that in some cases the driver was not finished initializing before external tools tried to use them which could result in a crash depending on the timing. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_display.c | 14 ++------ drivers/gpu/drm/radeon/radeon_pm.c | 63 ++++++++++++++++++++------------- 2 files changed, 40 insertions(+), 37 deletions(-) commit 8dbb09570d16929fefd492410d60a918bc18ad5b Merge: 5e99b53 72c0217 Author: Trond Myklebust Date: Fri Oct 2 15:49:33 2015 -0400 Merge tag 'nfs-rdma-for-4.3-2' of git://git.linux-nfs.org/projects/anna/nfs-rdma NFS: NFSoRDMA bugfix Fixes a use-after-free bug. Signed-off-by: Anna Schumaker commit 5e99b532bb95f8e6bf39f4500f0caef070bac16d Author: Jeff Layton Date: Fri Oct 2 13:14:37 2015 -0400 nfs4: reset states to use open_stateid when returning delegation voluntarily When the client goes to return a delegation, it should always update any nfs4_state currently set up to use that delegation stateid to instead use the open stateid. It already does do this in some cases, particularly in the state recovery code, but not currently when the delegation is voluntarily returned (e.g. in advance of a RENAME). This causes the client to try to continue using the delegation stateid after the DELEGRETURN, e.g. in LAYOUTGET. Set the nfs4_state back to using the open stateid in nfs4_open_delegation_recall, just before clearing the NFS_DELEGATED_STATE bit. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 3 +++ 1 file changed, 3 insertions(+) commit e92c1e0d40c50472f80820bd829645ce9fefd6c1 Author: Benjamin Coddington Date: Thu Oct 1 09:17:33 2015 -0400 NFSv4: Fix a nograce recovery hang Since commit 5cae02f42793130e1387f4ec09c4d07056ce9fa5 an OPEN_CONFIRM should have a privileged sequence in the recovery case to allow nograce recovery to proceed for NFSv4.0. Signed-off-by: Benjamin Coddington Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 ++ 1 file changed, 2 insertions(+) commit 72d79ff83c34d430a9f7f72c45717905762ef4d9 Author: Trond Myklebust Date: Fri Oct 2 11:44:54 2015 -0400 NFSv4.1: nfs4_opendata_check_deleg needs to handle NFS4_OPEN_CLAIM_DELEG_CUR_FH We need to warn against broken NFSv4.1 servers that try to hand out delegations in response to NFS4_OPEN_CLAIM_DELEG_CUR_FH. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 4a0954ef347de7409ddf8f8153d893827d3feba8 Author: Trond Myklebust Date: Fri Oct 2 11:11:16 2015 -0400 NFSv4: Don't try to reclaim unused state owners Currently, we don't test if the state owner is in use before we try to recover it. The problem is that if the refcount is zero, then the state owner will be waiting on the lru list for garbage collection. The expectation in that case is that if you bump the refcount, then you must also remove the state owner from the lru list. Otherwise the call to nfs4_put_state_owner will corrupt that list by trying to add our state owner a second time. Avoid the whole problem by just skipping state owners that hold no state. Reported-by: Andrew W Elble Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c Author: Trond Myklebust Date: Thu Oct 1 18:38:27 2015 -0400 NFS: Fix a write performance regression If all other conditions in nfs_can_extend_write() are met, and there are no locks, then we should be able to assume close-to-open semantics and the ability to extend our write to cover the whole page. With this patch, the xfstests generic/074 test completes in 242s instead of >1400s on my test rig. Fixes: bd61e0a9c852 ("locks: convert posix locks to file_lock_context") Cc: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40f90271a835478e5910dc84f32b8e25885419a4 Author: Trond Myklebust Date: Thu Oct 1 11:36:38 2015 -0400 NFS: Fix up page writeback accounting Currently, we are crediting all the calls to nfs_writepages_callback() (i.e. the nfs_writepages() callback) to nfs_writepage(). Aside from being inconsistent with the behaviour of the equivalent readpage/readpages accounting, this also means that we cannot distinguish between bulk writes and single page writebacks (which confuses the 'nfsiostat -p' tool). Signed-off-by: Trond Myklebust fs/nfs/write.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 5634347dee31373a8faf084f4cdbf6d5ea0b03a4 Merge: b55a97e ee556d0 Author: Linus Torvalds Date: Fri Oct 2 14:54:16 2015 -0400 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Catalin Marinas: - Fix for transparent huge page change_protection() logic which was inadvertently changing a huge pmd page into a pmd table entry. - Function graph tracer panic fix caused by the return_to_handler code corrupting the multi-regs function return value (composite types). * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: ftrace: fix function_graph tracer panic arm64: Fix THP protection change logic commit b55a97e759c9e9efdce0470f520026383c514a13 Merge: 83dc311 95bc06e Author: Linus Torvalds Date: Fri Oct 2 14:51:46 2015 -0400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k Pull m68k updates from Geert Uytterhoeven: "Summary: - Fix for accidental modification of arguments of syscall functions - Wire up new syscalls - Update defconfigs" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k/defconfig: Update defconfigs for v4.3-rc1 m68k: Define asmlinkage_protect m68k: Wire up membarrier m68k: Wire up userfaultfd m68k: Wire up direct socket calls commit 791c76d58465a248cbd1ee422c8075cb90fa615f Author: Marc Zyngier Date: Fri Oct 2 16:44:06 2015 +0100 irqchip/gic-v3-its: Count additional LPIs for the aliased devices When configuring the interrupt mapping for a new device, we iterate over all the possible aliases to account for their maximum MSI allocation. This was introduced by e8137f4f5088 ("irqchip: gicv3-its: Iterate over PCI aliases to generate ITS configuration"). Turns out that the code doing that is a bit braindead, and repeatedly accounts for the same device over and over. Fix this by counting the actual alias that is passed to us by the core code. Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Alex Shi Cc: Ard Biesheuvel Cc: David Daney Cc: Jason Cooper Link: http://lkml.kernel.org/r/1443800646-8074-3-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its-pci-msi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8415b9470727f70afce8607d4fe521789aa6c1c Author: Marc Zyngier Date: Fri Oct 2 16:44:05 2015 +0100 irqchip/gic-v3-its: Silence warning when its_lpi_alloc_chunks gets inlined More agressive inlining in recent versions of GCC have uncovered a new set of warnings: drivers/irqchip/irq-gic-v3-its.c: In function its_msi_prepare: drivers/irqchip/irq-gic-v3-its.c:1148:26: warning: lpi_base may be used uninitialized in this function [-Wmaybe-uninitialized] dev->event_map.lpi_base = lpi_base; ^ drivers/irqchip/irq-gic-v3-its.c:1116:6: note: lpi_base was declared here int lpi_base; ^ drivers/irqchip/irq-gic-v3-its.c:1149:25: warning: nr_lpis may be used uninitialized in this function [-Wmaybe-uninitialized] dev->event_map.nr_lpis = nr_lpis; ^ drivers/irqchip/irq-gic-v3-its.c:1117:6: note: nr_lpis was declared here int nr_lpis; ^ The warning is fairly benign (there is no code path that could actually use uninitialized variables), but let's silence it anyway by zeroing the variables on the error path. Reported-by: Alex Shi Tested-by: Ard Biesheuvel Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: David Daney Cc: Jason Cooper Link: http://lkml.kernel.org/r/1443800646-8074-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 3 +++ 1 file changed, 3 insertions(+) commit 83dc311ce0b430ee8e37e62976e6753bfd022004 Merge: 27728bf 7b09a1b Author: Linus Torvalds Date: Fri Oct 2 14:46:15 2015 -0400 Merge tag 'dmaengine-fix-4.3-rc4' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: "This contains fixes spread throughout the drivers, and also fixes one more instance of privatecnt in dmaengine. Driver fixes summary: - bunch of pxa_dma fixes for reuse of descriptor issue, residue and no-requestor - odd fixes in xgene, idma, sun4i and zxdma - at_xdmac fixes for cleaning descriptor and block addr mode" * tag 'dmaengine-fix-4.3-rc4' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: pxa_dma: fix residue corner case dmaengine: pxa_dma: fix the no-requestor case dmaengine: zxdma: Fix off-by-one for testing valid pchan request dmaengine: at_xdmac: clean used descriptor dmaengine: at_xdmac: change block increment addressing mode dmaengine: dw: properly read DWC_PARAMS register dmaengine: xgene-dma: Fix overwritting DMA tx ring dmaengine: fix balance of privatecnt dmaengine: sun4i: fix unsafe list iteration dmaengine: idma64: improve residue estimation dmaengine: xgene-dma: fix handling xgene_dma_get_ring_size result dmaengine: pxa_dma: fix initial list move commit 27728bf04b99a0abc5c27343c06e18379f57c726 Merge: 36f8daf 0bf6cd5 Author: Linus Torvalds Date: Fri Oct 2 14:40:57 2015 -0400 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Another week, another round of fixes. These have been brewing for a bit and in various iterations, but I feel pretty comfortable about the quality of them. They fix real issues. The pull request is mostly blk-mq related, and the only one not fixing a real bug, is the tag iterator abstraction from Christoph. But it's pretty trivial, and we'll need it for another fix soon. Apart from the blk-mq fixes, there's an NVMe affinity fix from Keith, and a single fix for xen-blkback from Roger fixing failure to free requests on disconnect" * 'for-linus' of git://git.kernel.dk/linux-block: blk-mq: factor out a helper to iterate all tags for a request_queue blk-mq: fix racy updates of rq->errors blk-mq: fix deadlock when reading cpu_list blk-mq: avoid inserting requests before establishing new mapping blk-mq: fix q->mq_usage_counter access race blk-mq: Fix use after of free q->mq_map blk-mq: fix sysfs registration/unregistration race blk-mq: avoid setting hctx->tags->cpumask before allocation NVMe: Set affinity after allocating request queues xen/blkback: free requests on disconnection commit 9f30a04d768f64280dc0c40b730746e82f298d88 Merge: 9e294bf 7aba4f5 Author: Stephen Boyd Date: Fri Oct 2 11:15:13 2015 -0700 Merge branch 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm into clk-fixes Pull fixes from Tero Kristo: "A few TI clock driver fixes to pull against 4.3-rc" * 'for-4.3-rc/ti-clk-fixes' of https://github.com/t-kristo/linux-pm: (3 commits) clk: ti: dflt: fix enable_reg validity check clk: ti: fix dual-registration of uart4_ick clk: ti: clk-7xx: Remove hardwired ABE clock configuration commit 62d78461447198b49383f20301aaa15fe97dfa4f Author: Dmitry Torokhov Date: Fri Oct 2 10:31:32 2015 -0700 Revert "Input: synaptics - fix handling of disabling gesture mode" This reverts commit e51e38494a8ecc18650efb0c840600637891de2c: we actually do want the device to work in extended W mode, as this is the mode that allows us receiving multiple contact information. Cc: stable@vger.kernel.org drivers/input/mouse/synaptics.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 66803dd9198cb57a4b7ed4a6846a63ab1d59a2e0 Author: Matt Bennett Date: Wed Sep 30 17:40:42 2015 +1300 MIPS: Octeon: Fix kernel panic on startup from memory corruption During development it was found that a number of builds would panic during the kernel init process, more specifically in 'delayed_fput()'. The panic showed the kernel trying to access a memory address of '0xb7fdc00' while traversing the 'delayed_fput_list' structure. Comparing this memory address to the value of the pointer used on builds that did not panic confirmed that the pointer on crashing builds must have been corrupted at some stage earlier in the init process. By traversing the list earlier and earlier in the code it was found that 'plat_mem_setup()' was responsible for corrupting the list. Specifically the line: memory = cvmx_bootmem_phy_alloc(mem_alloc_size, __pa_symbol(&__init_end), -1, 0x100000, CVMX_BOOTMEM_FLAG_NO_LOCKING); Which would eventually call: cvmx_bootmem_phy_set_size(new_ent_addr, cvmx_bootmem_phy_get_size (ent_addr) - (desired_min_addr - ent_addr)); Where 'new_ent_addr'=0x4800000 (the address of 'delayed_fput_list') and the second argument (size)=0xb7fdc00 (the address causing the kernel panic). The job of this part of 'plat_mem_setup()' is to allocate chunks of memory for the kernel to use. At the start of each chunk of memory the size of the chunk is written, hence the value 0xb7fdc00 is written onto memory at 0x4800000, therefore the kernel panics when it goes back to access 'delayed_fput_list' later on in the initialisation process. On builds that were not crashing it was found that the compiler had placed 'delayed_fput_list' at 0x4800008, meaning it wasn't corrupted (but something else in memory was overwritten). As can be seen in the first function call above the code begins to allocate chunks of memory beginning from the symbol '__init_end'. The MIPS linker script (vmlinux.lds.S) however defines the .bss section to begin after '__init_end'. Therefore memory within the .bss section is allocated to the kernel to use (System.map shows 'delayed_fput_list' and other kernel structures to be in .bss). To stop the kernel panic (and the .bss section being corrupted) memory should begin being allocated from the symbol '_end'. Signed-off-by: Matt Bennett Acked-by: David Daney Cc: linux-mips@linux-mips.org Cc: aleksey.makarov@auriga.com Patchwork: https://patchwork.linux-mips.org/patch/11251/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 085c2f25d36ef4a69bb1dab933daee0692426f15 Author: Paul Burton Date: Mon Sep 21 10:07:42 2015 -0700 MIPS: Fix R2300 FP context switch handling Commit 1a3d59579b9f ("MIPS: Tidy up FPU context switching") removed FP context saving from the asm-written resume function in favour of reusing existing code to perform the same task. However it only removed the FP context saving code from the r4k_switch.S implementation of resume. Remove it from the r2300_switch.S implementation too in order to prevent attempting to save the FP context twice, which would likely lead to an exception from the second save because the FPU had already been disabled by the first save. This patch has only been build tested, using rbtx49xx_defconfig. Fixes: 1a3d59579b9f ("MIPS: Tidy up FPU context switching") Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Maciej W. Rozycki Cc: linux-kernel@vger.kernel.org Cc: Manuel Lauss Patchwork: https://patchwork.linux-mips.org/patch/11167/ Signed-off-by: Ralf Baechle arch/mips/kernel/r2300_switch.S | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) commit 0fa24340f7c88d2814547d8d24d5e3a1803009cc Author: Paul Burton Date: Mon Sep 21 10:07:41 2015 -0700 MIPS: Fix octeon FP context switch handling Commit 1a3d59579b9f ("MIPS: Tidy up FPU context switching") removed FP context saving from the asm-written resume function in favour of reusing existing code to perform the same task. However it only removed the FP context saving code from the r4k_switch.S implementation of resume. Octeon uses its own implementation in octeon_switch.S, so remove FP context saving there too in order to prevent attempting to save context twice. That formerly led to an exception from the second save as follows because the FPU had already been disabled by the first save: do_cpu invoked from kernel context![#1]: CPU: 0 PID: 2 Comm: kthreadd Not tainted 4.3.0-rc2-dirty #2 task: 800000041f84a008 ti: 800000041f864000 task.ti: 800000041f864000 $ 0 : 0000000000000000 0000000010008ce1 0000000000100000 ffffffffbfffffff $ 4 : 800000041f84a008 800000041f84ac08 800000041f84c000 0000000000000004 $ 8 : 0000000000000001 0000000000000000 0000000000000000 0000000000000001 $12 : 0000000010008ce3 0000000000119c60 0000000000000036 800000041f864000 $16 : 800000041f84ac08 800000000792ce80 800000041f84a008 ffffffff81758b00 $20 : 0000000000000000 ffffffff8175ae50 0000000000000000 ffffffff8176c740 $24 : 0000000000000006 ffffffff81170300 $28 : 800000041f864000 800000041f867d90 0000000000000000 ffffffff815f3fa0 Hi : 0000000000fa8257 Lo : ffffffffe15cfc00 epc : ffffffff8112821c resume+0x9c/0x200 ra : ffffffff815f3fa0 __schedule+0x3f0/0x7d8 Status: 10008ce2 KX SX UX KERNEL EXL Cause : 1080002c (ExcCode 0b) PrId : 000d0601 (Cavium Octeon+) Modules linked in: Process kthreadd (pid: 2, threadinfo=800000041f864000, task=800000041f84a008, tls=0000000000000000) Stack : ffffffff81604218 ffffffff815f7e08 800000041f84a008 ffffffff811681b0 800000041f84a008 ffffffff817e9878 0000000000000000 ffffffff81770000 ffffffff81768340 ffffffff81161398 0000000000000001 0000000000000000 0000000000000000 ffffffff815f4424 0000000000000000 ffffffff81161d68 ffffffff81161be8 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ffffffff8111e16c 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 ... Call Trace: [] resume+0x9c/0x200 [] __schedule+0x3f0/0x7d8 [] schedule+0x34/0x98 [] kthreadd+0x180/0x198 [] ret_from_kernel_thread+0x14/0x1c Tested using cavium_octeon_defconfig on an EdgeRouter Lite. Fixes: 1a3d59579b9f ("MIPS: Tidy up FPU context switching") Reported-by: Aaro Koskinen Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Aleksey Makarov Cc: linux-kernel@vger.kernel.org Cc: Chandrakala Chavva Cc: David Daney Cc: Leonid Rosenboim Patchwork: https://patchwork.linux-mips.org/patch/11166/ Signed-off-by: Ralf Baechle arch/mips/kernel/octeon_switch.S | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) commit 924eb475126fd6bc23c475ac742a69fc466c0b75 Author: yitian Date: Tue Sep 29 22:43:17 2015 +0800 ASoC: dwc: fix dma stop transferring issue Designware I2S uses tx empty and rx available signals as the DMA handshaking signals. during music playing, if XRUN occurs, i2s_stop() function will be executed and both tx and rx irq are masked, when music continues to be played, i2s_start() is executed but both tx and rx irq are not unmasked which cause I2S stop sending DMA handshaking signal to DMA controller, and it finally causes music playing will be stopped once XRUN occurs for the first time. [On list discussion suggests this may be partly a race condition on slow systems -- broonie] Signed-off-by: Yitian Bu Signed-off-by: Mark Brown sound/soc/dwc/designware_i2s.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 042745ee53a0a7c1f5aff191a4a24213c6dcfb52 Author: Mikulas Patocka Date: Fri Oct 2 11:17:37 2015 -0400 dm raid: fix round up of default region size Commit 3a0f9aaee028 ("dm raid: round region_size to power of two") intended to make sure that the default region size is a power of two. However, the logic in that commit is incorrect and sets the variable region_size to 0 or 1, depending on whether min_region_size is a power of two. Fix this logic, using roundup_pow_of_two(), so that region_size is properly rounded up to the next power of two. Signed-off-by: Mikulas Patocka Fixes: 3a0f9aaee028 ("dm raid: round region_size to power of two") Cc: stable@vger.kernel.org # v3.8+ Signed-off-by: Mike Snitzer drivers/md/dm-raid.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d61e87ac53292a3138b4354b687558973686b6ca Merge: 9ffecb1 6d3cbfa Author: Rafael J. Wysocki Date: Fri Oct 2 15:23:42 2015 +0200 Merge tag 'pull_req_4.3_rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq Pull devfreq fixes for v4.3-rc5 from MyungJoo Ham. * tag 'pull_req_4.3_rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq: PM / devfreq: fix double kfree PM / devfreq: Fix governor_store() commit 36f8dafe52b0d0726edd5102900e37192f1d3c65 Merge: 8c25ab8 031277d Author: Linus Torvalds Date: Fri Oct 2 08:03:04 2015 -0400 Merge tag 'mmc-v4.3-rc3' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC fixes from Ulf Hansson: "Here are some mmc fixes intended for v4.3 rc4: MMC core: - Allow users of mmc_of_parse() to succeed when CONFIG_GPIOLIB is unset - Prevent infinite loop of re-tuning for CRC-errors for CMD19 and CMD21 MMC host: - pxamci: Fix issues with card detect - sunxi: Fix clk-delay settings" * tag 'mmc-v4.3-rc3' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: core: fix dead loop of mmc_retune mmc: pxamci: fix card detect with slot-gpio API mmc: sunxi: Fix clk-delay settings mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset commit 8c25ab8b5a04a7c559aa8fd4cabe5fc4463b8ada Merge: bde17b9 15bbdec Author: Linus Torvalds Date: Fri Oct 2 07:59:29 2015 -0400 Merge git://git.infradead.org/intel-iommu Pull IOVA fixes from David Woodhouse: "The main fix here is the first one, fixing the over-allocation of size-aligned requests. The other patches simply make the existing IOVA code available to users other than the Intel VT-d driver, with no functional change. I concede the latter really *should* have been submitted during the merge window, but since it's basically risk-free and people are waiting to build on top of it and it's my fault I didn't get it in, I (and they) would be grateful if you'd take it" * git://git.infradead.org/intel-iommu: iommu: Make the iova library a module iommu: iova: Export symbols iommu: iova: Move iova cache management to the iova library iommu/iova: Avoid over-allocating when size-aligned commit de7f8e3e6b1bb6e3e400bf675e4052fa3d927987 Author: Masahiro Yamada Date: Thu Sep 24 21:26:46 2015 +0900 pinctrl: uniphier: fix input enable settings for PH1-sLD8 Currently, input enable settings are missing from the PH1-sLD8 pinctrl driver. (All the entries in the pin table are set to UNIPHIER_PIN_IECTRL_NONE). Fill the table with correct values. Fixes: 95372f9dc892 ("pinctrl: UniPhier: add UniPhier PH1-sLD8 pinctrl driver") Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/pinctrl-ph1-sld8.c | 226 ++++++++++++++-------------- 1 file changed, 113 insertions(+), 113 deletions(-) commit 9911a2d5e9d14e39692b751929a92cb5a1d9d0e0 Author: Uwe Kleine-König Date: Wed Sep 23 16:35:09 2015 +0200 pinctrl: imx25: ensure that a pin with id i is at position i in the info array The code in pinctrl-imx.c only works correctly if in the imx_pinctrl_soc_info passed to imx_pinctrl_probe we have: info->pins[i].number = i conf_reg(info->pins[i]) = 4 * i (which conf_reg(pin) being the offset of the pin's configuration register). When the imx25 specific part was introduced in b4a87c9b966f ("pinctrl: pinctrl-imx: add imx25 pinctrl driver") we had: info->pins[i].number = i + 1 conf_reg(info->pins[i]) = 4 * i . Commit 34027ca2bbc6 ("pinctrl: imx25: fix numbering for pins") tried to fix that but made the situation: info->pins[i-1].number = i conf_reg(info->pins[i-1]) = 4 * i which is hardly better but fixed the error seen back then. So insert another reserved entry in the array to finally yield: info->pins[i].number = i conf_reg(info->pins[i]) = 4 * i Fixes: 34027ca2bbc6 ("pinctrl: imx25: fix numbering for pins") Signed-off-by: Uwe Kleine-König Signed-off-by: Linus Walleij drivers/pinctrl/freescale/pinctrl-imx25.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d50a9e1b6de45db883f594cea0ecd1379fd3f669 Author: Hans de Goede Date: Sat Sep 19 17:56:44 2015 -0400 pinctrl: sun5i: Fix a10s pwm1 pinctrl mapping The comment for PG14 mux setting 3 already correctly states that this muxes PG13 to pwm1, but the text ascociated with it said uart3, fix this. Note that we use "pwm" rather then "pwm1" to be consistent with pwm0 where the mux setting is also simply called "pwm" and to be consistent with sun4i/sun7i which do the same. Signed-off-by: Hans de Goede Acked-by: Maxime Ripard Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sun5i-a10s.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4873867e5f2bd90faad861dd94865099fc3140f3 Author: Yitian Bu Date: Fri Oct 2 15:18:41 2015 +0800 ASoC: dwc: correct irq clear method from Designware I2S datasheet, tx/rx XRUN irq is cleared by reading register TOR/ROR, rather than by writing into them. Signed-off-by: Yitian Bu Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/dwc/designware_i2s.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ee556d00cf20012e889344a0adbbf809ab5015a3 Author: Li Bin Date: Wed Sep 30 10:49:55 2015 +0800 arm64: ftrace: fix function_graph tracer panic When function graph tracer is enabled, the following operation will trigger panic: mount -t debugfs nodev /sys/kernel echo next_tgid > /sys/kernel/tracing/set_ftrace_filter echo function_graph > /sys/kernel/tracing/current_tracer ls /proc/ ------------[ cut here ]------------ [ 198.501417] Unable to handle kernel paging request at virtual address cb88537fdc8ba316 [ 198.506126] pgd = ffffffc008f79000 [ 198.509363] [cb88537fdc8ba316] *pgd=00000000488c6003, *pud=00000000488c6003, *pmd=0000000000000000 [ 198.517726] Internal error: Oops: 94000005 [#1] SMP [ 198.518798] Modules linked in: [ 198.520582] CPU: 1 PID: 1388 Comm: ls Tainted: G [ 198.521800] Hardware name: linux,dummy-virt (DT) [ 198.522852] task: ffffffc0fa9e8000 ti: ffffffc0f9ab0000 task.ti: ffffffc0f9ab0000 [ 198.524306] PC is at next_tgid+0x30/0x100 [ 198.525205] LR is at return_to_handler+0x0/0x20 [ 198.526090] pc : [] lr : [] pstate: 60000145 [ 198.527392] sp : ffffffc0f9ab3d40 [ 198.528084] x29: ffffffc0f9ab3d40 x28: ffffffc0f9ab0000 [ 198.529406] x27: ffffffc000d6a000 x26: ffffffc000b786e8 [ 198.530659] x25: ffffffc0002a1900 x24: ffffffc0faf16c00 [ 198.531942] x23: ffffffc0f9ab3ea0 x22: 0000000000000002 [ 198.533202] x21: ffffffc000d85050 x20: 0000000000000002 [ 198.534446] x19: 0000000000000002 x18: 0000000000000000 [ 198.535719] x17: 000000000049fa08 x16: ffffffc000242efc [ 198.537030] x15: 0000007fa472b54c x14: ffffffffff000000 [ 198.538347] x13: ffffffc0fada84a0 x12: 0000000000000001 [ 198.539634] x11: ffffffc0f9ab3d70 x10: ffffffc0f9ab3d70 [ 198.540915] x9 : ffffffc0000907c0 x8 : ffffffc0f9ab3d40 [ 198.542215] x7 : 0000002e330f08f0 x6 : 0000000000000015 [ 198.543508] x5 : 0000000000000f08 x4 : ffffffc0f9835ec0 [ 198.544792] x3 : cb88537fdc8ba316 x2 : cb88537fdc8ba306 [ 198.546108] x1 : 0000000000000002 x0 : ffffffc000d85050 [ 198.547432] [ 198.547920] Process ls (pid: 1388, stack limit = 0xffffffc0f9ab0020) [ 198.549170] Stack: (0xffffffc0f9ab3d40 to 0xffffffc0f9ab4000) [ 198.582568] Call trace: [ 198.583313] [] next_tgid+0x30/0x100 [ 198.584359] [] ftrace_graph_caller+0x6c/0x70 [ 198.585503] [] ftrace_graph_caller+0x6c/0x70 [ 198.586574] [] ftrace_graph_caller+0x6c/0x70 [ 198.587660] [] ftrace_graph_caller+0x6c/0x70 [ 198.588896] Code: aa0003f5 2a0103f4 b4000102 91004043 (885f7c60) [ 198.591092] ---[ end trace 6a346f8f20949ac8 ]--- This is because when using function graph tracer, if the traced function return value is in multi regs ([x0-x7]), return_to_handler may corrupt them. So in return_to_handler, the parameter regs should be protected properly. Cc: # 3.18+ Signed-off-by: Li Bin Acked-by: AKASHI Takahiro Signed-off-by: Catalin Marinas arch/arm64/kernel/entry-ftrace.S | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit 0c5d187828588dd1b36cb93b4481a8db467ef3e8 Author: Ralf Baechle Date: Fri Oct 2 09:48:57 2015 +0200 MIPS: BPF: Fix load delay slots. The entire bpf_jit_asm.S is written in noreorder mode because "we know better" according to a comment. This also prevented the assembler from throwing in the required NOPs for MIPS I processors which have no load-use interlock, thus the load's consumer might end up using the old value of the register from prior to the load. Fixed by putting the assembler in reorder mode for just the affected load instructions. This is not enough for gas to actually try to be clever by looking at the next instruction and inserting a nop only when needed but as the comment said "we know better", so getting gas to unconditionally emit a NOP is just right in this case and prevents adding further ifdefery. Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit_asm.S | 4 ++++ 1 file changed, 4 insertions(+) commit f4b4aae1828855db761bf998ce37d3062b1d6446 Author: Ben Hutchings Date: Thu Oct 1 01:40:43 2015 +0100 x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds On x32, gcc predefines __x86_64__ but long is only 32-bit. Use __ILP32__ to distinguish x32. Fixes this compiler error in perf: tools/include/asm-generic/bitops/__ffs.h: In function '__ffs': tools/include/asm-generic/bitops/__ffs.h:19:8: error: right shift count >= width of type [-Werror=shift-count-overflow] word >>= 32; ^ This isn't sufficient to build perf for x32, though. Signed-off-by: Ben Hutchings Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1443660043.2730.15.camel@decadent.org.uk Signed-off-by: Ingo Molnar arch/x86/include/uapi/asm/bitsperlong.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da6fb7a9e5bd6f04f7e15070f630bdf1ea502841 Author: NeilBrown Date: Thu Oct 1 16:03:38 2015 +1000 md/bitmap: don't pass -1 to bitmap_storage_alloc. Passing -1 to bitmap_storage_alloc() causes page->index to be set to -1, which is quite problematic. So only pass ->cluster_slot if mddev_is_clustered(). Fixes: b97e92574c0b ("Use separate bitmaps for each nodes in the cluster") Cc: stable@vger.kernel.org (v4.1+) Signed-off-by: NeilBrown drivers/md/bitmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e8ff8bf09ff49733534ff3cee91bde030186055f Author: Jes Sorensen Date: Wed Sep 16 10:20:05 2015 -0400 md/raid1: Avoid raid1 resync getting stuck close_sync() needs to set conf->next_resync to a large, but safe value below MaxSector and use it to determine whether or not to set start_next_window in wait_barrier() Solution suggested by Neil Brown. Reported-by: Nate Dailey Tested-by: Xiao Ni Signed-off-by: Jes Sorensen Signed-off-by: NeilBrown drivers/md/raid1.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 644df1a85fc4b0c7a16800f55717261546f4e651 Author: Julia Lawall Date: Sun Sep 13 14:15:10 2015 +0200 md: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); // Signed-off-by: Julia Lawall Signed-off-by: NeilBrown drivers/md/multipath.c | 3 +-- drivers/md/raid1.c | 6 ++---- drivers/md/raid10.c | 9 +++------ drivers/md/raid5.c | 3 +-- 4 files changed, 7 insertions(+), 14 deletions(-) commit d4929add83ad4660b1824a9282ab5dd4d60140fa Author: Shaohua Li Date: Fri Sep 18 10:20:12 2015 -0700 md: clear CHANGE_PENDING in readonly array If faulty disks of an array are more than allowed degraded number, the array enters error handling. It will be marked as read-only with MD_CHANGE_PENDING/RECOVERY_NEEDED set. But currently recovery doesn't clear CHANGE_PENDING bit for read-only array. If MD_CHANGE_PENDING is set for a raid5 array, all returned IO will be hold on a list till the bit is clear. But recovery nevery clears this bit, the IO is always in pending state and nevery finish. This has bad effects like upper layer can't get an IO error and the array can't be stopped. Fixes: c3cce6cda162 ("md/raid5: ensure device failure recorded before write request returns.") Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/md.c | 1 + 1 file changed, 1 insertion(+) commit 66eefe5de11db1e0d8f2edc3880d50e7c36a9d43 Author: NeilBrown Date: Thu Sep 24 15:47:47 2015 +1000 md/raid0: apply base queue limits *before* disk_stack_limits Calling e.g. blk_queue_max_hw_sectors() after calls to disk_stack_limits() discards the settings determined by disk_stack_limits(). So we need to make those calls first. Fixes: 199dc6ed5179 ("md/raid0: update queue parameter in a safer location.") Cc: stable@vger.kernel.org (v2.6.35+ - please apply with 199dc6ed5179). Reported-by: Jes Sorensen Signed-off-by: NeilBrown drivers/md/raid0.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 36707bb2e7c6730d79d6cdc6d1475d3d7e94c518 Author: NeilBrown Date: Thu Sep 24 15:25:36 2015 +1000 md/raid5: don't index beyond end of array in need_this_block(). When need_this_block probably shouldn't be called when there are more than 2 failed devices, we really don't want it to try indexing beyond the end of the failed_num[] of fdev[] arrays. So limit the loops to at most 2 iterations. Reported-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/raid5.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ebda780bce8d58ec0abab157397c9e099c41a05f Author: Shaohua Li Date: Fri Sep 18 10:20:13 2015 -0700 raid5: update analysis state for failed stripe handle_failed_stripe() makes the stripe fail, eg, all IO will return with a failure, but it doesn't update stripe_head_state. Later handle_stripe() has special handling for raid6 for handle_stripe_fill(). That check before handle_stripe_fill() doesn't skip the failed stripe and we get a kernel crash in need_this_block. This patch clear the analysis state to make sure no functions wrongly called after handle_failed_stripe() Signed-off-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/raid5.c | 4 ++++ 1 file changed, 4 insertions(+) commit 88724bfa68be792c1487d759e87568c36ac1a1cc Author: NeilBrown Date: Thu Sep 24 14:00:51 2015 +1000 md: wait for pending superblock updates before switching to read-only If a superblock update is pending, wait for it to complete before letting md_set_readonly() switch to readonly. Otherwise we might lose important information about a device having failed. For external arrays, waiting for superblock updates can wait on user-space, so in that case, just return an error. Reported-and-tested-by: Shaohua Li Signed-off-by: NeilBrown drivers/md/md.c | 4 ++++ 1 file changed, 4 insertions(+) commit ab76f7b4ab2397ffdd2f1eb07c55697d19991d10 Author: Stephen Smalley Date: Thu Oct 1 09:04:22 2015 -0400 x86/mm: Set NX on gap between __ex_table and rodata Unused space between the end of __ex_table and the start of rodata can be left W+x in the kernel page tables. Extend the setting of the NX bit to cover this gap by starting from text_end rather than rodata_start. Before: ---[ High Kernel Mapping ]--- 0xffffffff80000000-0xffffffff81000000 16M pmd 0xffffffff81000000-0xffffffff81600000 6M ro PSE GLB x pmd 0xffffffff81600000-0xffffffff81754000 1360K ro GLB x pte 0xffffffff81754000-0xffffffff81800000 688K RW GLB x pte 0xffffffff81800000-0xffffffff81a00000 2M ro PSE GLB NX pmd 0xffffffff81a00000-0xffffffff81b3b000 1260K ro GLB NX pte 0xffffffff81b3b000-0xffffffff82000000 4884K RW GLB NX pte 0xffffffff82000000-0xffffffff82200000 2M RW PSE GLB NX pmd 0xffffffff82200000-0xffffffffa0000000 478M pmd After: ---[ High Kernel Mapping ]--- 0xffffffff80000000-0xffffffff81000000 16M pmd 0xffffffff81000000-0xffffffff81600000 6M ro PSE GLB x pmd 0xffffffff81600000-0xffffffff81754000 1360K ro GLB x pte 0xffffffff81754000-0xffffffff81800000 688K RW GLB NX pte 0xffffffff81800000-0xffffffff81a00000 2M ro PSE GLB NX pmd 0xffffffff81a00000-0xffffffff81b3b000 1260K ro GLB NX pte 0xffffffff81b3b000-0xffffffff82000000 4884K RW GLB NX pte 0xffffffff82000000-0xffffffff82200000 2M RW PSE GLB NX pmd 0xffffffff82200000-0xffffffffa0000000 478M pmd Signed-off-by: Stephen Smalley Acked-by: Kees Cook Cc: Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1443704662-3138-1-git-send-email-sds@tycho.nsa.gov Signed-off-by: Ingo Molnar arch/x86/mm/init_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3c41e37b0f4b18cbd4dac76cbeece5a7558b909 Author: Lee, Chun-Yi Date: Tue Sep 29 20:58:57 2015 +0800 x86/kexec: Fix kexec crash in syscall kexec_file_load() The original bug is a page fault crash that sometimes happens on big machines when preparing ELF headers: BUG: unable to handle kernel paging request at ffffc90613fc9000 IP: [] prepare_elf64_ram_headers_callback+0x165/0x260 The bug is caused by us under-counting the number of memory ranges and subsequently not allocating enough ELF header space for them. The bug is typically masked on smaller systems, because the ELF header allocation is rounded up to the next page. This patch modifies the code in fill_up_crash_elf_data() by using walk_system_ram_res() instead of walk_system_ram_range() to correctly count the max number of crash memory ranges. That's because the walk_system_ram_range() filters out small memory regions that reside in the same page, but walk_system_ram_res() does not. Here's how I found the bug: After tracing prepare_elf64_headers() and prepare_elf64_ram_headers_callback(), the code uses walk_system_ram_res() to fill-in crash memory regions information to the program header, so it counts those small memory regions that reside in a page area. But, when the kernel was using walk_system_ram_range() in fill_up_crash_elf_data() to count the number of crash memory regions, it filters out small regions. I printed those small memory regions, for example: kexec: Get nr_ram ranges. vaddr=0xffff880077592258 paddr=0x77592258, sz=0xdc0 Based on the code in walk_system_ram_range(), this memory region will be filtered out: pfn = (0x77592258 + 0x1000 - 1) >> 12 = 0x77593 end_pfn = (0x77592258 + 0xfc0 -1 + 1) >> 12 = 0x77593 end_pfn - pfn = 0x77593 - 0x77593 = 0 <=== if (end_pfn > pfn) is FALSE So, the max_nr_ranges that's counted by the kernel doesn't include small memory regions - causing us to under-allocate the required space. That causes the page fault crash that happens in a later code path when preparing ELF headers. This bug is not easy to reproduce on small machines that have few CPUs, because the allocated page aligned ELF buffer has more free space to cover those small memory regions' PT_LOAD headers. Signed-off-by: Lee, Chun-Yi Cc: Andy Lutomirski Cc: Baoquan He Cc: Jiang Liu Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephen Rothwell Cc: Takashi Iwai Cc: Thomas Gleixner Cc: Viresh Kumar Cc: Vivek Goyal Cc: kexec@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: Link: http://lkml.kernel.org/r/1443531537-29436-1-git-send-email-jlee@suse.com Signed-off-by: Ingo Molnar arch/x86/kernel/crash.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 7aba4f5201d1b7b3ddb0b03883d9edf69851ddad Author: Suman Anna Date: Tue Sep 29 17:37:47 2015 -0500 clk: ti: dflt: fix enable_reg validity check The default clock enabling functions for TI clocks - omap2_dflt_clk_enable() and omap2_dflt_clk_disable() perform a NULL check for the enable_reg field of the clk_hw_omap structure. This enable_reg field however is merely a combination of the index of the master IP module, and the offset from the master IP module's base address. A value of 0 is perfectly valid, and the current error checking will fail in these cases. The issue was found when trying to enable the iva2_ck clock on OMAP3 platforms. So, switch the check to use IS_ERR. This correction is similar to the logic used in commit c807dbedb5e5 ("clk: ti: fix ti_clk_get_reg_addr error handling"). Fixes: 9f37e90efaf0 ("clk: ti: dflt: move support for default gate clock..") Signed-off-by: Suman Anna Signed-off-by: Tero Kristo drivers/clk/ti/clkt_dflt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 19e79687de22f23bcfb5e79cce3daba20af228d1 Author: Ben Dooks Date: Tue Sep 29 15:01:08 2015 +0100 clk: ti: fix dual-registration of uart4_ick On the OMAP AM3517 platform the uart4_ick gets registered twice, causing any power management to /dev/ttyO3 to fail when trying to wake the device up. This solves the following oops: [] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa09e008 [] PC is at serial_omap_pm+0x48/0x15c [] LR is at _raw_spin_unlock_irqrestore+0x30/0x5c Fixes: aafd900cab87 ("CLK: TI: add omap3 clock init file") Cc: stable@vger.kernel.org Cc: mturquette@baylibre.com Cc: sboyd@codeaurora.org Cc: linux-clk@vger.kernel.org Cc: linux-omap@vger.kernel.org Cc: linux-kernel@lists.codethink.co.uk Signed-off-by: Ben Dooks Signed-off-by: Tero Kristo drivers/clk/ti/clk-3xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b3061b39132cba0c31b0eb767a9faeedf9437fc Author: Peter Ujfalusi Date: Mon Aug 24 10:35:02 2015 +0300 clk: ti: clk-7xx: Remove hardwired ABE clock configuration The ABE related clocks should be configured via DT and not have it wired inside of the kernel. Fixes: a74c52def9ab ("clk: ti: clk-7xx: Correct ABE DPLL configuration") Signed-off-by: Peter Ujfalusi Signed-off-by: Tero Kristo drivers/clk/ti/clk-7xx.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) commit ccf03d6995fa4b784f5b987726ba98f4859bf326 Author: Dave Airlie Date: Thu Oct 1 16:28:25 2015 +1000 drm/dp/mst: add some defines for logical/physical ports This just removes the magic number. Acked-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 2 +- include/drm/drm_dp_helper.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 274d83524895fe41ca8debae4eec60ede7252bb5 Author: Dave Airlie Date: Wed Sep 30 10:39:42 2015 +1000 drm/dp/mst: drop cancel work sync in the mstb destroy path (v2) Since 9eb1e57f564d4e6e10991402726cc83fe0b9172f drm/dp/mst: make sure mst_primary mstb is valid in work function we validate the mstb structs in the work function, and doing that takes a reference. So we should never get here with the work function running using the mstb device, only if the work function hasn't run yet or is running for another mstb. So we don't need to sync the work here, this was causing lockdep spew as below. [ +0.000160] ============================================= [ +0.000001] [ INFO: possible recursive locking detected ] [ +0.000002] 3.10.0-320.el7.rhel72.stable.backport.3.x86_64.debug #1 Tainted: G W ------------ [ +0.000001] --------------------------------------------- [ +0.000001] kworker/4:2/1262 is trying to acquire lock: [ +0.000001] ((&mgr->work)){+.+.+.}, at: [] flush_work+0x5/0x2e0 [ +0.000007] but task is already holding lock: [ +0.000001] ((&mgr->work)){+.+.+.}, at: [] process_one_work+0x1b4/0x710 [ +0.000004] other info that might help us debug this: [ +0.000001] Possible unsafe locking scenario: [ +0.000002] CPU0 [ +0.000000] ---- [ +0.000001] lock((&mgr->work)); [ +0.000002] lock((&mgr->work)); [ +0.000001] *** DEADLOCK *** [ +0.000001] May be due to missing lock nesting notation [ +0.000002] 2 locks held by kworker/4:2/1262: [ +0.000001] #0: (events_long){.+.+.+}, at: [] process_one_work+0x1b4/0x710 [ +0.000004] #1: ((&mgr->work)){+.+.+.}, at: [] process_one_work+0x1b4/0x710 [ +0.000003] stack backtrace: [ +0.000003] CPU: 4 PID: 1262 Comm: kworker/4:2 Tainted: G W ------------ 3.10.0-320.el7.rhel72.stable.backport.3.x86_64.debug #1 [ +0.000001] Hardware name: LENOVO 20EGS0R600/20EGS0R600, BIOS GNET71WW (2.19 ) 02/05/2015 [ +0.000008] Workqueue: events_long drm_dp_mst_link_probe_work [drm_kms_helper] [ +0.000001] ffffffff82c26c90 00000000a527b914 ffff88046399bae8 ffffffff816fe04d [ +0.000004] ffff88046399bb58 ffffffff8110f47f ffff880461438000 0001009b840fc003 [ +0.000002] ffff880461438a98 0000000000000000 0000000804dc26e1 ffffffff824a2c00 [ +0.000003] Call Trace: [ +0.000004] [] dump_stack+0x19/0x1b [ +0.000004] [] __lock_acquire+0x115f/0x1250 [ +0.000002] [] lock_acquire+0x99/0x1e0 [ +0.000002] [] ? flush_work+0x5/0x2e0 [ +0.000002] [] flush_work+0x4e/0x2e0 [ +0.000002] [] ? flush_work+0x5/0x2e0 [ +0.000004] [] ? native_sched_clock+0x35/0x80 [ +0.000002] [] ? sched_clock+0x9/0x10 [ +0.000002] [] ? local_clock+0x25/0x30 [ +0.000002] [] ? mark_held_locks+0xb9/0x140 [ +0.000003] [] ? __cancel_work_timer+0x95/0x160 [ +0.000002] [] __cancel_work_timer+0xa8/0x160 [ +0.000002] [] cancel_work_sync+0x10/0x20 [ +0.000007] [] drm_dp_destroy_mst_branch_device+0x27/0x120 [drm_kms_helper] [ +0.000006] [] drm_dp_mst_link_probe_work+0x78/0xa0 [drm_kms_helper] [ +0.000002] [] process_one_work+0x220/0x710 [ +0.000002] [] ? process_one_work+0x1b4/0x710 [ +0.000005] [] worker_thread+0x11b/0x3a0 [ +0.000003] [] ? process_one_work+0x710/0x710 [ +0.000002] [] kthread+0xed/0x100 [ +0.000003] [] ? insert_kthread_work+0x80/0x80 [ +0.000003] [] ret_from_fork+0x58/0x90 v2: add flush_work. Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d9515c5ec1a20c77d83471e634ad9bb12deb0eac Author: Dave Airlie Date: Wed Sep 16 17:55:23 2015 +1000 drm/dp/mst: split connector registration into two parts (v2) In order to cache the EDID properly for tiled displays, we need to retrieve it before we register the connector with userspace, otherwise userspace can call get resources and try and get the edid before we've even cached it. This fixes some problems when hotplugging mst monitors, with X/mutter running. As mutter seems to get 0 modes for one of the monitors in the tile. v2: fix warning in radeon handle tile setting in cached path rather than get edid path. Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++++--- drivers/gpu/drm/i915/intel_dp_mst.c | 9 ++++++++- drivers/gpu/drm/radeon/radeon_dp_mst.c | 11 +++++++++-- include/drm/drm_dp_mst_helper.h | 1 + 4 files changed, 23 insertions(+), 6 deletions(-) commit 68d8c9fc91a0f63a2a10ccf7adf56f69125c11c1 Author: Dave Airlie Date: Sun Sep 6 18:53:00 2015 +1000 drm/dp/mst: update the link_address_sent before sending the link address (v3) Update the state before sending the msg to close it. v2: reset value if return indicates we haven't send the msg. v3: just clean the code up. Pointed out by Adam J Richter on Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91481 Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit df4839fdc9b3c922586b945f062f38cbbda022bb Author: Dave Airlie Date: Wed Sep 16 10:37:28 2015 +1000 drm/dp/mst: fixup handling hotplug on port removal. output ports should always have a connector, unless in the rare case connector allocation fails in the driver. In this case we only need to teardown the pdt, and free the struct, and there is no need to send a hotplug msg. In the case were we add the port to the destroy list we need to send a hotplug if we destroy any connectors, so userspace knows to reprobe stuff. this patch also handles port->connector allocation failing which should be a rare event, but makes the code consistent. Reviewed-by: Daniel Vetter Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 36 +++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) commit 1c960876be7cffd2798a9e2be090e0a5afaee895 Author: Dave Airlie Date: Wed Sep 16 11:04:49 2015 +1000 drm/dp/mst: don't pass port into the path builder function This is unnecessary and it makes it easier to see what is needed from port. also add blank line to make things nicer. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 0c6dadbe79c54818ed4c268297b663f0c4d1ef98 Author: Alex Deucher Date: Wed Sep 30 14:47:38 2015 -0400 drm/radeon: drop radeon_fb_helper_set_par It was just a wrapper around drm_fb_helper_set_par that called cursor_set2 in addition. Now that the core handles this, drop this radeon specific version. Signed-off-by: Alex Deucher Reviewed-by: Christian König Reviewed-by: Michel Dänzer Signed-off-by: Dave Airlie drivers/gpu/drm/radeon/radeon_fb.c | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) commit 03f9abb28c3e10a1d0e08df8bca69e0606b23ea6 Author: Alex Deucher Date: Wed Sep 30 14:47:37 2015 -0400 drm: handle cursor_set2 in restore_fbdev_mode If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2. Signed-off-by: Alex Deucher Reviewed-by: Christian König Reviewed-by: Michel Dänzer Signed-off-by: Dave Airlie drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 646200a041203f440fb6fcf9cacd9efeda9de74c Author: Steve French Date: Mon Sep 28 17:21:07 2015 -0500 [SMB3] Do not fall back to SMBWriteX in set_file_size error cases The error paths in set_file_size for cifs and smb3 are incorrect. In the unlikely event that a server did not support set file info of the file size, the code incorrectly falls back to trying SMBWriteX (note that only the original core SMB Write, used for example by DOS, can set the file size this way - this actually does not work for the more recent SMBWriteX). The idea was since the old DOS SMB Write could set the file size if you write zero bytes at that offset then use that if server rejects the normal set file info call. Fortunately the SMBWriteX will never be sent on the wire (except when file size is zero) since the length and offset fields were reversed in the two places in this function that call SMBWriteX causing the fall back path to return an error. It is also important to never call an SMB request from an SMB2/sMB3 session (which theoretically would be possible, and can cause a brief session drop, although the client recovers) so this should be fixed. In practice this path does not happen with modern servers but the error fall back to SMBWriteX is clearly wrong. Removing the calls to SMBWriteX in the error paths in cifs_set_file_size Pointed out by PaX/grsecurity team Signed-off-by: Steve French Reported-by: PaX Team CC: Emese Revfy CC: Brad Spengler CC: Stable fs/cifs/inode.c | 34 ---------------------------------- 1 file changed, 34 deletions(-) commit bde17b90dd9712cb61a7ab0c1ccd0f7f6aa57957 Merge: 1bca100 676bd99 Author: Linus Torvalds Date: Thu Oct 1 22:20:11 2015 -0400 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "12 fixes" * emailed patches from Andrew Morton : dmapool: fix overflow condition in pool_find_page() thermal: avoid division by zero in power allocator memcg: remove pcp_counter_lock kprobes: use _do_fork() in samples to make them work again drivers/input/joystick/Kconfig: zhenhua.c needs BITREVERSE memcg: make mem_cgroup_read_stat() unsigned memcg: fix dirty page migration dax: fix NULL pointer in __dax_pmd_fault() mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a fault mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1) userfaultfd: remove kernel header include from uapi header arch/x86/include/asm/efi.h: fix build failure commit 1bca1000fa71a1092947b4a51928abe80a3316d2 Merge: 3deaa4f eb6d1c2 Author: Linus Torvalds Date: Thu Oct 1 22:06:40 2015 -0400 Merge tag 'pm+acpi-4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI fixes from Rafael Wysocki: "These are fixes mostly, for a few changes made in this cycle (the intel_idle driver, the OPP library, the ACPI EC driver, turbostat) and for some issues that have just been discovered (ACPI PCI IRQ management, PCI power management documentation, turbostat), with a couple of cleanups on top of them. Specifics: - intel_idle driver fixup for the recently added Skylake chips support (Len Brown). - Operating Performance Points (OPP) library fix related to the recently added support for new DT bindings and a fix for a typo in a comment (Viresh Kumar, Stephen Boyd). - ACPI EC driver fix for a recently introduced memory leak in an error code path (Lv Zheng). - ACPI PCI IRQ management fix for the issue where an ISA IRQ is shared with a PCI device which requires it to be configured in a different way and may cause an interrupt storm to happen as a result with an extra ACPI SCI IRQ handling simplification on top of it (Jiang Liu). - Update of the PCI power management documentation that became outdated and started to actively confuse the readers to make it actually reflect the code (Rafael J Wysocki). - turbostat fixes including an IVB Xeon regression fix (related to the --debug command line option), Skylake adjustment for the TSC running at a frequency that doesn't match the base one exactly, and a Knights Landing quirk to account for the fact that it only updates APERF and MPERF every 1024 clock cycles plus bumping up the turbostat version number (Len Brown, Hubert Chrzaniuk)" * tag 'pm+acpi-4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: tools/power turbosat: update version number tools/power turbostat: SKL: Adjust for TSC difference from base frequency tools/power turbostat: KNL workaround for %Busy and Avg_MHz tools/power turbostat: IVB Xeon: fix --debug regression ACPI / PCI: Remove duplicated penalty on SCI IRQ ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ ACPI / EC: Fix a memory leak issue in acpi_ec_query() PM / OPP: Fix typo modifcation -> modification PCI / PM: Update runtime PM documentation for PCI devices PM / OPP: of_property_count_u32_elems() can return errors intel_idle: Skylake Client Support - updated commit 6d3cbfa718eeedd70efb9eb04ce9b261b6fa5b7b Author: Geliang Tang Date: Thu Oct 1 22:18:19 2015 +0800 PM / devfreq: fix double kfree When device_register() fails, kfree(devfreq) is called already in devfreq_dev_release(), hence there is no need to call kfree(devfreq) in err_dev again. Signed-off-by: Geliang Tang Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3deaa4f531506a12ac4860ccd83cb6cbcb15a7eb Merge: ccf70dd b84f787 Author: Linus Torvalds Date: Thu Oct 1 21:55:35 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix regression in SKB partial checksum handling, from Pravin B Shalar. 2) Fix VLAN inside of VXLAN handling in i40e driver, from Jesse Brandeburg. 3) Cure softlockups during accept() in SCTP, from Karl Heiss. 4) MSG_PEEK should return multiple SKBs worth of data in AF_UNIX, from Aaron Conole. 5) IPV6 erroneously ignores output interface specifier in lookup key for route lookups, fix from David Ahern. 6) In Marvell DSA driver, forward unknown frames to CPU port, from Andrew Lunn. 7) Mission flow flag initializations in some code paths, from David Ahern. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: net: Initialize flow flags in input path net: dsa: fix preparation of a port STP update testptp: Silence compiler warnings on ppc64 net/mlx4: Handle return codes in mlx4_qp_attach_common dsa: mv88e6xxx: Enable forwarding for unknown to the CPU port skbuff: Fix skb checksum partial check. net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set net sysfs: Print link speed as signed integer bna: fix error handling af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag af_unix: Convert the unix_sk macro to an inline function for type safety net: sctp: Don't use 64 kilobyte lookup table for four elements l2tp: protect tunnel->del_work by ref_count net/ibm/emac: bump version numbers for correct work with ethtool sctp: Prevent soft lockup when sctp_accept() is called during a timeout event sctp: Whitespace fix i40e/i40evf: check for stopped admin queue i40e: fix VLAN inside VXLAN r8169: fix handling rtl_readphy result net: hisilicon: fix handling platform_get_irq result commit 676bd99178cd962ed24ffdad222b7069d330a969 Author: Robin Murphy Date: Thu Oct 1 15:37:19 2015 -0700 dmapool: fix overflow condition in pool_find_page() If a DMA pool lies at the very top of the dma_addr_t range (as may happen with an IOMMU involved), the calculated end address of the pool wraps around to zero, and page lookup always fails. Tweak the relevant calculation to be overflow-proof. Signed-off-by: Robin Murphy Cc: Arnd Bergmann Cc: Marek Szyprowski Cc: Sumit Semwal Cc: Sakari Ailus Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/dmapool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44241628bb207ec211bebd156aaf69470d90c209 Author: Andrea Arcangeli Date: Thu Oct 1 15:37:16 2015 -0700 thermal: avoid division by zero in power allocator During boot I get a div by zero Oops regression starting in v4.3-rc3. Signed-off-by: Andrea Arcangeli Reviewed-by: Javi Merino Cc: Zhang Rui Cc: Eduardo Valentin Cc: Daniel Kurtz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/thermal/power_allocator.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ef510194cefe0cd369ef73419cd65b0a5bb4fb5b Author: Greg Thelen Date: Thu Oct 1 15:37:13 2015 -0700 memcg: remove pcp_counter_lock Commit 733a572e66d2 ("memcg: make mem_cgroup_read_{stat|event}() iterate possible cpus instead of online") removed the last use of the per memcg pcp_counter_lock but forgot to remove the variable. Kill the vestigial variable. Signed-off-by: Greg Thelen Acked-by: Michal Hocko Acked-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 1 - mm/memcontrol.c | 1 - 2 files changed, 2 deletions(-) commit 54aea4542980a3ed580426a81c5af799df4d610d Author: Petr Mladek Date: Thu Oct 1 15:37:11 2015 -0700 kprobes: use _do_fork() in samples to make them work again Commit 3033f14ab78c ("clone: support passing tls argument via C rather than pt_regs magic") introduced _do_fork() that allowed to pass @tls parameter. The old do_fork() is defined only for architectures that are not ready to use this way and do not define HAVE_COPY_THREAD_TLS. Let's use _do_fork() in the kprobe examples to make them work again on all architectures. Signed-off-by: Petr Mladek Cc: Ingo Molnar Cc: Masami Hiramatsu Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Thiago Macieira Cc: Jiri Kosina Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds samples/kprobes/jprobe_example.c | 14 +++++++------- samples/kprobes/kprobe_example.c | 6 +++--- samples/kprobes/kretprobe_example.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) commit 09a59a9d57a9d6f49510c93304d6e105deb83b93 Author: Andrew Morton Date: Thu Oct 1 15:37:08 2015 -0700 drivers/input/joystick/Kconfig: zhenhua.c needs BITREVERSE It uses bitrev8(), so it must ensure that lib/bitrev.o gets included in vmlinux. Cc: Fengguang Wu Cc: yalin wang Cc: Dmitry Torokhov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/input/joystick/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 484ebb3b8c8b27dd2171696462a3116edb9ff801 Author: Greg Thelen Date: Thu Oct 1 15:37:05 2015 -0700 memcg: make mem_cgroup_read_stat() unsigned mem_cgroup_read_stat() returns a page count by summing per cpu page counters. The summing is racy wrt. updates, so a transient negative sum is possible. Callers don't want negative values: - mem_cgroup_wb_stats() doesn't want negative nr_dirty or nr_writeback. This could confuse dirty throttling. - oom reports and memory.stat shouldn't show confusing negative usage. - tree_usage() already avoids negatives. Avoid returning negative page counts from mem_cgroup_read_stat() and convert it to unsigned. [akpm@linux-foundation.org: fix old typo while we're in there] Signed-off-by: Greg Thelen Cc: Johannes Weiner Acked-by: Michal Hocko Cc: [4.2+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit 0610c25daa3e76e38ad5a8fae683a89ff9f71798 Author: Greg Thelen Date: Thu Oct 1 15:37:02 2015 -0700 memcg: fix dirty page migration The problem starts with a file backed dirty page which is charged to a memcg. Then page migration is used to move oldpage to newpage. Migration: - copies the oldpage's data to newpage - clears oldpage.PG_dirty - sets newpage.PG_dirty - uncharges oldpage from memcg - charges newpage to memcg Clearing oldpage.PG_dirty decrements the charged memcg's dirty page count. However, because newpage is not yet charged, setting newpage.PG_dirty does not increment the memcg's dirty page count. After migration completes newpage.PG_dirty is eventually cleared, often in account_page_cleaned(). At this time newpage is charged to a memcg so the memcg's dirty page count is decremented which causes underflow because the count was not previously incremented by migration. This underflow causes balance_dirty_pages() to see a very large unsigned number of dirty memcg pages which leads to aggressive throttling of buffered writes by processes in non root memcg. This issue: - can harm performance of non root memcg buffered writes. - can report too small (even negative) values in memory.stat[(total_)dirty] counters of all memcg, including the root. To avoid polluting migrate.c with #ifdef CONFIG_MEMCG checks, introduce page_memcg() and set_page_memcg() helpers. Test: 0) setup and enter limited memcg mkdir /sys/fs/cgroup/test echo 1G > /sys/fs/cgroup/test/memory.limit_in_bytes echo $$ > /sys/fs/cgroup/test/cgroup.procs 1) buffered writes baseline dd if=/dev/zero of=/data/tmp/foo bs=1M count=1k sync grep ^dirty /sys/fs/cgroup/test/memory.stat 2) buffered writes with compaction antagonist to induce migration yes 1 > /proc/sys/vm/compact_memory & rm -rf /data/tmp/foo dd if=/dev/zero of=/data/tmp/foo bs=1M count=1k kill % sync grep ^dirty /sys/fs/cgroup/test/memory.stat 3) buffered writes without antagonist, should match baseline rm -rf /data/tmp/foo dd if=/dev/zero of=/data/tmp/foo bs=1M count=1k sync grep ^dirty /sys/fs/cgroup/test/memory.stat (speed, dirty residue) unpatched patched 1) 841 MB/s 0 dirty pages 886 MB/s 0 dirty pages 2) 611 MB/s -33427456 dirty pages 793 MB/s 0 dirty pages 3) 114 MB/s -33427456 dirty pages 891 MB/s 0 dirty pages Notice that unpatched baseline performance (1) fell after migration (3): 841 -> 114 MB/s. In the patched kernel, post migration performance matches baseline. Fixes: c4843a7593a9 ("memcg: add per cgroup dirty page accounting") Signed-off-by: Greg Thelen Reported-by: Dave Hansen Acked-by: Michal Hocko Acked-by: Johannes Weiner Cc: [4.2+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 21 +++++++++++++++++++++ mm/migrate.c | 12 +++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) commit 8346c416d17bf5b4ea1508662959bb62e73fd6a5 Author: Ross Zwisler Date: Thu Oct 1 15:36:59 2015 -0700 dax: fix NULL pointer in __dax_pmd_fault() Commit 46c043ede471 ("mm: take i_mmap_lock in unmap_mapping_range() for DAX") moved some code in __dax_pmd_fault() that was responsible for zeroing newly allocated PMD pages. The new location didn't properly set up 'kaddr', so when run this code resulted in a NULL pointer BUG. Fix this by getting the correct 'kaddr' via bdev_direct_access(). Signed-off-by: Ross Zwisler Reported-by: Dan Williams Reviewed-by: Dan Williams Cc: Alexander Viro Cc: Matthew Wilcox Cc: "Kirill A. Shutemov" Cc: Dave Chinner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 2f84a8990ebbe235c59716896e017c6b2ca1200f Author: Mel Gorman Date: Thu Oct 1 15:36:57 2015 -0700 mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a fault SunDong reported the following on https://bugzilla.kernel.org/show_bug.cgi?id=103841 I think I find a linux bug, I have the test cases is constructed. I can stable recurring problems in fedora22(4.0.4) kernel version, arch for x86_64. I construct transparent huge page, when the parent and child process with MAP_SHARE, MAP_PRIVATE way to access the same huge page area, it has the opportunity to lead to huge page copy on write failure, and then it will munmap the child corresponding mmap area, but then the child mmap area with VM_MAYSHARE attributes, child process munmap this area can trigger VM_BUG_ON in set_vma_resv_flags functions (vma - > vm_flags & VM_MAYSHARE). There were a number of problems with the report (e.g. it's hugetlbfs that triggers this, not transparent huge pages) but it was fundamentally correct in that a VM_BUG_ON in set_vma_resv_flags() can be triggered that looks like this vma ffff8804651fd0d0 start 00007fc474e00000 end 00007fc475e00000 next ffff8804651fd018 prev ffff8804651fd188 mm ffff88046b1b1800 prot 8000000000000027 anon_vma (null) vm_ops ffffffff8182a7a0 pgoff 0 file ffff88106bdb9800 private_data (null) flags: 0x84400fb(read|write|shared|mayread|maywrite|mayexec|mayshare|dontexpand|hugetlb) ------------ kernel BUG at mm/hugetlb.c:462! SMP Modules linked in: xt_pkttype xt_LOG xt_limit [..] CPU: 38 PID: 26839 Comm: map Not tainted 4.0.4-default #1 Hardware name: Dell Inc. PowerEdge R810/0TT6JF, BIOS 2.7.4 04/26/2012 set_vma_resv_flags+0x2d/0x30 The VM_BUG_ON is correct because private and shared mappings have different reservation accounting but the warning clearly shows that the VMA is shared. When a private COW fails to allocate a new page then only the process that created the VMA gets the page -- all the children unmap the page. If the children access that data in the future then they get killed. The problem is that the same file is mapped shared and private. During the COW, the allocation fails, the VMAs are traversed to unmap the other private pages but a shared VMA is found and the bug is triggered. This patch identifies such VMAs and skips them. Signed-off-by: Mel Gorman Reported-by: SunDong Reviewed-by: Michal Hocko Cc: Andrea Arcangeli Cc: Hugh Dickins Cc: Naoya Horiguchi Cc: David Rientjes Reviewed-by: Naoya Horiguchi Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 03a2d2a3eafe4015412cf4e9675ca0e2d9204074 Author: Joonsoo Kim Date: Thu Oct 1 15:36:54 2015 -0700 mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1) Commit description is copied from the original post of this bug: http://comments.gmane.org/gmane.linux.kernel.mm/135349 Kernels after v3.9 use kmalloc_size(INDEX_NODE + 1) to get the next larger cache size than the size index INDEX_NODE mapping. In kernels 3.9 and earlier we used malloc_sizes[INDEX_L3 + 1].cs_size. However, sometimes we can't get the right output we expected via kmalloc_size(INDEX_NODE + 1), causing a BUG(). The mapping table in the latest kernel is like: index = {0, 1, 2 , 3, 4, 5, 6, n} size = {0, 96, 192, 8, 16, 32, 64, 2^n} The mapping table before 3.10 is like this: index = {0 , 1 , 2, 3, 4 , 5 , 6, n} size = {32, 64, 96, 128, 192, 256, 512, 2^(n+3)} The problem on my mips64 machine is as follows: (1) When configured DEBUG_SLAB && DEBUG_PAGEALLOC && DEBUG_LOCK_ALLOC && DEBUG_SPINLOCK, the sizeof(struct kmem_cache_node) will be "150", and the macro INDEX_NODE turns out to be "2": #define INDEX_NODE kmalloc_index(sizeof(struct kmem_cache_node)) (2) Then the result of kmalloc_size(INDEX_NODE + 1) is 8. (3) Then "if(size >= kmalloc_size(INDEX_NODE + 1)" will lead to "size = PAGE_SIZE". (4) Then "if ((size >= (PAGE_SIZE >> 3))" test will be satisfied and "flags |= CFLGS_OFF_SLAB" will be covered. (5) if (flags & CFLGS_OFF_SLAB)" test will be satisfied and will go to "cachep->slabp_cache = kmalloc_slab(slab_size, 0u)", and the result here may be NULL while kernel bootup. (6) Finally,"BUG_ON(ZERO_OR_NULL_PTR(cachep->slabp_cache));" causes the BUG info as the following shows (may be only mips64 has this problem): This patch fixes the problem of kmalloc_size(INDEX_NODE + 1) and removes the BUG by adding 'size >= 256' check to guarantee that all necessary small sized slabs are initialized regardless sequence of slab size in mapping table. Fixes: e33660165c90 ("slab: Use common kmalloc_index/kmalloc_size...") Signed-off-by: Joonsoo Kim Reported-by: Liuhailong Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 9ff42d10c3b3e26d9555878f31b9a2e5c24efa57 Author: Andre Przywara Date: Thu Oct 1 15:36:51 2015 -0700 userfaultfd: remove kernel header include from uapi header As include/uapi/linux/userfaultfd.h is a user visible header file, it should not include kernel-exclusive header files. So trying to build the userfaultfd test program from the selftests directory fails, since it contains a reference to linux/compiler.h. As it turns out, that header is not really needed there, so we can simply remove it to fix that issue. Signed-off-by: Andre Przywara Cc: Andrea Arcangeli Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/uapi/linux/userfaultfd.h | 2 -- 1 file changed, 2 deletions(-) commit a523841ee4e506fa1f05ff3a85b1e6d8176a3d4d Author: Andrey Ryabinin Date: Thu Oct 1 15:36:48 2015 -0700 arch/x86/include/asm/efi.h: fix build failure With KMEMCHECK=y, KASAN=n: arch/x86/platform/efi/efi.c:673:3: error: implicit declaration of function `memcpy' [-Werror=implicit-function-declaration] arch/x86/platform/efi/efi_64.c:139:2: error: implicit declaration of function `memcpy' [-Werror=implicit-function-declaration] arch/x86/include/asm/desc.h:121:2: error: implicit declaration of function `memcpy' [-Werror=implicit-function-declaration] Don't #undef memcpy if KASAN=n. Fixes: 769a8089c1fd ("x86, efi, kasan: #undef memset/memcpy/memmove per arch") Signed-off-by: Andrey Ryabinin Reported-by: Ingo Molnar Reported-by: Sedat Dilek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/efi.h | 2 ++ 1 file changed, 2 insertions(+) commit ec403b89e3152f93199b7b1813148bcdf6829311 Merge: 62886a3 b94be97 Author: Dave Airlie Date: Fri Oct 2 10:47:29 2015 +1000 Merge tag 'drm-intel-fixes-2015-10-01' of git://anongit.freedesktop.org/drm-intel into drm-fixes a few i915 fixes for v4.3. * tag 'drm-intel-fixes-2015-10-01' of git://anongit.freedesktop.org/drm-intel: drm/i915: Call non-locking version of drm_kms_helper_poll_enable(), v2 drm: Add a non-locking version of drm_kms_helper_poll_enable(), v2 drm/i915: Consider HW CSB write pointer before resetting the sw read pointer drm/i915/skl: Don't call intel_prepare_ddi when encoder list isn't yet initialized. commit 62886a367b59d7740f9db89fd418ab3e450ab7c7 Merge: 8e592ea 575f9c8 Author: Dave Airlie Date: Fri Oct 2 10:46:51 2015 +1000 Merge tag 'vmwgfx-fixes-4.3-151001' of git://people.freedesktop.org/~thomash/linux into drm-fixes A single commit to fix a command submission hang regression. Pull request of 2015-10-01 * tag 'vmwgfx-fixes-4.3-151001' of git://people.freedesktop.org/~thomash/linux: drm/vmwgfx: Fix a command submission hang regression commit 8e592eab0401bd70a8ba8534b903145855a7b703 Merge: 5b63864 cda3742 Author: Dave Airlie Date: Fri Oct 2 10:46:18 2015 +1000 Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes This pull request includes regression fixups, build warnings, and trivial cleanups which mostly remove some codes not used anymore. * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: Staticize local function in exynos_drm_gem.c drm/exynos: fimd: actually disable dp clock drm/exynos: dp: remove suspend/resume functions drm/exynos: remove unused mode_fixup() code drm/exynos: remove decon_mode_fixup() drm/exynos: remove fimd_mode_fixup() drm/exynos: rotator: Clock control is unused if !PM drm/exynos: fimc: Clock control is unused if !PM drm/exynos: Suspend/resume is unused if !PM drm/exynos: create a fake mmap offset with gem creation drm/exynos: remove call to drm_gem_free_mmap_offset() drm/exynos: Remove useless EXPORT_SYMBOL_GPLs drm/exynos: cleanup line feed in exynos_drm_gem_get_ioctl drm/exynos: cleanup function calling written twice drm/exynos: staticize exynos_drm_gem_init() drm/exynos: remove unnecessary NULL assignment drm/exynos: fix missed calling of drm_prime_gem_destroy() drm/exynos: fix layering violation of address commit 5b6386419c4f78526afe1615668b6444d7b66fd7 Merge: 8d0d940 3e4e380 Author: Dave Airlie Date: Fri Oct 2 10:35:22 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes radeon and amdgpu fixes for 4.3. - backlight s/r fixes - typo fix from Dan - vm debugging fix - remove import_gpu_mem after discussion with Daniel * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: only print meaningful VM faults drm/amdgpu/cgs: remove import_gpu_mem drm/amdgpu: Restore LCD backlight level on resume drm/radeon: Restore LCD backlight level on resume (>= R5xx) drm/amdgpu: signedness bug in amdgpu_cs_parser_init() commit ccf70ddcbe9984cee406be2bacfedd5e4776919d Merge: 46c8217 d292242 Author: Linus Torvalds Date: Thu Oct 1 16:43:25 2015 -0400 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "(Relatively) a lot of reverts, mostly. Bugs have trickled in for a new feature in 4.2 (MTRR support in guests) so I'm reverting it all; let's not make this -rc period busier for KVM than it's been so far. This covers the four reverts from me. The fifth patch is being reverted because Radim found a bug in the implementation of stable scheduler clock, *but* also managed to implement the feature entirely without hypervisor support. So instead of fixing the hypervisor side we can remove it completely; 4.4 will get the new implementation" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS Update KVM homepage Url Revert "KVM: SVM: use NPT page attributes" Revert "KVM: svm: handle KVM_X86_QUIRK_CD_NW_CLEARED in svm_get_mt_mask" Revert "KVM: SVM: Sync g_pat with guest-written PAT value" Revert "KVM: x86: apply guest MTRR virtualization on host reserved pages" Revert "KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR" commit 46c8217c4a54c17dd4c000ad804fa1e223a10578 Merge: f97b870 2866196 Author: Linus Torvalds Date: Thu Oct 1 16:38:52 2015 -0400 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: - Fixes for mlx5 related issues - Fixes for ipoib multicast handling * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/ipoib: increase the max mcast backlog queue IB/ipoib: Make sendonly multicast joins create the mcast group IB/ipoib: Expire sendonly multicast joins IB/mlx5: Remove pa_lkey usages IB/mlx5: Remove support for IB_DEVICE_LOCAL_DMA_LKEY IB/iser: Add module parameter for always register memory xprtrdma: Replace global lkey with lkey local to PD commit eb6d1c287ae1f7221248d5be26a5b1560073c09e Merge: 01351eb e9a7bed e1a2d49 a9062dc Author: Rafael J. Wysocki Date: Thu Oct 1 22:30:47 2015 +0200 Merge branches 'pm-cpuidle', 'pm-opp' and 'pm-tools' * pm-cpuidle: intel_idle: Skylake Client Support - updated * pm-opp: PM / OPP: Fix typo modifcation -> modification PM / OPP: of_property_count_u32_elems() can return errors * pm-tools: tools/power turbosat: update version number tools/power turbostat: SKL: Adjust for TSC difference from base frequency tools/power turbostat: KNL workaround for %Busy and Avg_MHz tools/power turbostat: IVB Xeon: fix --debug regression commit 01351eb23c5047895c14c91a898546c289a3c35c Merge: dd953d3 15b94fa Author: Rafael J. Wysocki Date: Thu Oct 1 22:30:35 2015 +0200 Merge branch 'acpi-ec' * acpi-ec: ACPI / EC: Fix a memory leak issue in acpi_ec_query() commit dd953d318daad9a3c1f9a6bf31430bf40163051e Merge: 9ffecb1 a836006 d323efc Author: Rafael J. Wysocki Date: Thu Oct 1 22:30:12 2015 +0200 Merge branches 'pm-pci' and 'acpi-pci' * pm-pci: PCI / PM: Update runtime PM documentation for PCI devices * acpi-pci: ACPI / PCI: Remove duplicated penalty on SCI IRQ ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ commit 1f744fd317dc55cadd7132c57c499e3117aea01d Author: Thomas Hebb Date: Thu Oct 1 21:00:00 2015 +0200 ARM: dts: berlin: change BG2Q's USB PHY compatible Currently, BG2Q shares a compatible with BG2. This is incorrect, since BG2 and BG2Q use different USB PLL dividers. In reality, BG2Q shares a divider with BG2CD. Change BG2Q's USB PHY compatible string to reflect that. Cc: # v4.2.0- Signed-off-by: Thomas Hebb Signed-off-by: Sebastian Hesselbarth arch/arm/boot/dts/berlin2q.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1378889c563a2938d231203ed36c041af183b798 Author: Paul Mackerras Date: Sat Sep 26 10:19:15 2015 +1000 scsi_dh: Use the correct module name when loading device handler This fixes a bug in recent kernels which results in failure to boot on systems that have multipath SCSI disks. I observed this failure on a POWER8 server where all the disks are multipath SCSI disks. The symptoms are several messages like this on the console: [ 3.018700] device-mapper: table: 253:0: multipath: error attaching hardware handler [ 3.018828] device-mapper: ioctl: error adding target to table and the system does not find its disks, and therefore fails to boot. Bisection revealed that the bug was introduced in commit 566079c849cf, "dm-mpath, scsi_dh: request scsi_dh modules in scsi_dh, not dm-mpath". The specific reason for the failure is that where we previously loaded the "scsi_dh_alua" module, we are now trying to load the "alua" module, which doesn't exist. To fix this, we change the request_module call in scsi_dh_lookup() to prepend "scsi_dh_" to the name, just like the old code in drivers/md/dm-mpath.c:parse_hw_handler() used to do. [jejb: also fixes issue spotted by Sasha Levin that formatting characters could be passed in via sysfs and cause issues with request_module()] Fixes: 566079c849cf Signed-off-by: Paul Mackerras Cc: Sasha Levin Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/scsi_dh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a541b4e3cd6f5795022514114854b3e1345f24e Author: Steve Capper Date: Thu Oct 1 13:06:07 2015 +0100 arm64: Fix THP protection change logic 6910fa1 ("arm64: enable PTE type bit in the mask for pte_modify") fixes a problem whereby a large block of PROT_NONE mapped memory is incorrectly mapped as block descriptors when mprotect is called. Unfortunately, a subtle bug was introduced by this fix to the THP logic. If one mmaps a large block of memory, then faults it such that it is collapsed into THPs; resulting calls to mprotect on this area of memory will lead to incorrect table descriptors being written instead of block descriptors. This is because pmd_modify calls pte_modify which is now allowed to modify the type of the page table entry. This patch reverts commit 6910fa16dbe142f6a0fd0fd7c249f9883ff7fc8a, and fixes the problem it was trying to address by adjusting PAGE_NONE to represent a table entry. Thus no change in pte type is required when moving from PROT_NONE to a different protection. Fixes: 6910fa16dbe1 ("arm64: enable PTE type bit in the mask for pte_modify") Cc: # 4.0+ Cc: Feng Kan Reported-by: Ganapatrao Kulkarni Tested-by: Ganapatrao Kulkarni Reviewed-by: Catalin Marinas Signed-off-by: Steve Capper Signed-off-by: Catalin Marinas arch/arm64/include/asm/pgtable.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1b52e50f2a402a266f1ba2281f0a57e87637a047 Author: Javier Martinez Canillas Date: Mon Sep 21 14:26:54 2015 +0200 mfd: max77843: Fix max77843_chg_init() return on error If i2c_new_dummy() fails in max77843_chg_init(), an PTR_ERR(NULL) is returned which is 0. So the function was wrongly returning a success value instead of an error code. Cc: stable@vger.kernel.org # 4.1 Fixes: c7f585fe46d8 ("mfd: max77843: Add max77843 MFD driver core driver") Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones drivers/mfd/max77843.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47b91923ea41288751e83a5b080576085a831333 Author: Andy Shevchenko Date: Mon Sep 14 11:32:47 2015 +0300 mfd: intel-lpss: Fix build error when !CONFIG_PM_SLEEP Jim Davis reported the compilation error with a random configuration which apparently has CONFIG_PM=y and CONFIG_PM_SLEEP=n. With that conditions we have missed definition of INTEL_LPSS_SLEEP_PM_OPS macro. Add it here. Reported-by: Jim Davis Signed-off-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/mfd/intel-lpss.h | 2 ++ 1 file changed, 2 insertions(+) commit 2a708cff93f1845b9239bc7d6310aef54e716c6a Author: Junichi Nomura Date: Thu Oct 1 08:31:51 2015 +0000 dm: fix AB-BA deadlock in __dm_destroy() __dm_destroy() takes io_barrier SRCU lock (dm_get_live_table) and suspend_lock in reverse order. Doing so can cause AB-BA deadlock: __dm_destroy dm_swap_table --------------------------------------------------- mutex_lock(suspend_lock) dm_get_live_table() srcu_read_lock(io_barrier) dm_sync_table() synchronize_srcu(io_barrier) .. waiting for dm_put_live_table() mutex_lock(suspend_lock) .. waiting for suspend_lock Fix this by taking the locks in proper order. Signed-off-by: Jun'ichi Nomura Fixes: ab7c7bb6f4ab ("dm: hold suspend_lock while suspending device during device deletion") Acked-by: Mikulas Patocka Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org drivers/md/dm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1e16a8f11669c98a0adf5fb5f8522aebc1f69f71 Author: Ralf Baechle Date: Thu Oct 1 15:45:44 2015 +0200 MIPS: BPF: Do all exports of symbols with FEXPORT(). FEXPORT also marks the symbol as code using .type symbol, @function. Without objdump -d will output only a hexdump for code following the affected symbols. Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit_asm.S | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit d2922422c48df93f3edff7d872ee4f3191fefb08 Author: Dirk Müller Date: Thu Oct 1 13:43:42 2015 +0200 Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS The cpu feature flags are not ever going to change, so warning everytime can cause a lot of kernel log spam (in our case more than 10GB/hour). The warning seems to only occur when nested virtualization is enabled, so it's probably triggered by a KVM bug. This is a sensible and safe change anyway, and the KVM bug fix might not be suitable for stable releases anyway. Cc: stable@vger.kernel.org Signed-off-by: Dirk Mueller Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 038161dea1eaeee80341134e2675b24656a71b59 Author: Dirk Müller Date: Thu Oct 1 13:46:01 2015 +0200 Update KVM homepage Url The old one appears to be a generic catch all page, which is unhelpful. Signed-off-by: Dirk Mueller Signed-off-by: Paolo Bonzini MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f97b870eced0ec562f953d32eda03906c7dacad6 Merge: 9522f47 7c7feb2 Author: Linus Torvalds Date: Thu Oct 1 07:57:27 2015 -0400 Merge tag 'upstream-4.3-rc4' of git://git.infradead.org/linux-ubifs Pull UBI/UBIFS fixes from Richard Weinberger: "This contains three bug fixes for both UBI and UBIFS" * tag 'upstream-4.3-rc4' of git://git.infradead.org/linux-ubifs: UBI: return ENOSPC if no enough space available UBI: Validate data_size UBIFS: Kill unneeded locking in ubifs_init_security commit 9522f476d932eb23ebf8dbbc6b4e2f966f3fe911 Merge: dd36d73 0266715 Author: Linus Torvalds Date: Thu Oct 1 07:50:08 2015 -0400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull key signing fixes from James Morris: "Keyrings and modsign fixes from David Howells" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: MODSIGN: Change from CMS to PKCS#7 signing if the openssl is too old X.509: Don't strip leading 00's from key ID when constructing key description KEYS: Remove unnecessary header #inclusions from extract-cert.c KEYS: Fix race between key destruction and finding a keyring by name commit fc07e76ac7ffa3afd621a1c3858a503386a14281 Author: Paolo Bonzini Date: Thu Oct 1 13:20:22 2015 +0200 Revert "KVM: SVM: use NPT page attributes" This reverts commit 3c2e7f7de3240216042b61073803b61b9b3cfb22. Initializing the mapping from MTRR to PAT values was reported to fail nondeterministically, and it also caused extremely slow boot (due to caching getting disabled---bug 103321) with assigned devices. Reported-by: Markus Trippelsdorf Reported-by: Sebastian Schuette Cc: stable@vger.kernel.org # 4.2+ Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 101 +++-------------------------------------------------- 1 file changed, 5 insertions(+), 96 deletions(-) commit bcf166a9942c3aabd8b752a7c38a49f57c54cfb8 Author: Paolo Bonzini Date: Thu Oct 1 13:19:55 2015 +0200 Revert "KVM: svm: handle KVM_X86_QUIRK_CD_NW_CLEARED in svm_get_mt_mask" This reverts commit 5492830370171b6a4ede8a3bfba687a8d0f25fa5. It builds on the commit that is being reverted next. Cc: stable@vger.kernel.org # 4.2+ Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit 625422f60c55bbc368b8568ff925770b36bfc189 Author: Paolo Bonzini Date: Thu Oct 1 13:28:15 2015 +0200 Revert "KVM: SVM: Sync g_pat with guest-written PAT value" This reverts commit e098223b789b4a618dacd79e5e0dad4a9d5018d1, which has a dependency on other commits being reverted. Cc: stable@vger.kernel.org # 4.2+ Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 10 ---------- 1 file changed, 10 deletions(-) commit 606decd67049217684e3cb5a54104d51ddd4ef35 Author: Paolo Bonzini Date: Thu Oct 1 13:12:47 2015 +0200 Revert "KVM: x86: apply guest MTRR virtualization on host reserved pages" This reverts commit fd717f11015f673487ffc826e59b2bad69d20fe5. It was reported to cause Machine Check Exceptions (bug 104091). Reported-by: harn-solo@gmx.de Cc: stable@vger.kernel.org # 4.2+ Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 7 +++++-- arch/x86/kvm/vmx.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) commit 0ce3cc008ec04258b6a6314b09f1a6012810881a Author: Ard Biesheuvel Date: Fri Sep 25 23:02:19 2015 +0100 arm64/efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME regions The new Properties Table feature introduced in UEFIv2.5 may split memory regions that cover PE/COFF memory images into separate code and data regions. Since these regions only differ in the type (runtime code vs runtime data) and the permission bits, but not in the memory type attributes (UC/WC/WT/WB), the spec does not require them to be aligned to 64 KB. Since the relative offset of PE/COFF .text and .data segments cannot be changed on the fly, this means that we can no longer pad out those regions to be mappable using 64 KB pages. Unfortunately, there is no annotation in the UEFI memory map that identifies data regions that were split off from a code region, so we must apply this logic to all adjacent runtime regions whose attributes only differ in the permission bits. So instead of rounding each memory region to 64 KB alignment at both ends, only round down regions that are not directly preceded by another runtime region with the same type attributes. Since the UEFI spec does not mandate that the memory map be sorted, this means we also need to sort it first. Note that this change will result in all EFI_MEMORY_RUNTIME regions whose start addresses are not aligned to the OS page size to be mapped with executable permissions (i.e., on kernels compiled with 64 KB pages). However, since these mappings are only active during the time that UEFI Runtime Services are being invoked, the window for abuse is rather small. Tested-by: Mark Salter Tested-by: Mark Rutland [UEFI 2.4 only] Signed-off-by: Ard Biesheuvel Signed-off-by: Matt Fleming Reviewed-by: Mark Salter Reviewed-by: Mark Rutland Cc: # v4.0+ Cc: Catalin Marinas Cc: Leif Lindholm Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1443218539-7610-3-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar arch/arm64/kernel/efi.c | 3 +- drivers/firmware/efi/libstub/arm-stub.c | 88 +++++++++++++++++++++++++++------ 2 files changed, 75 insertions(+), 16 deletions(-) commit a5caa209ba9c29c6421292e7879d2387a2ef39c9 Author: Matt Fleming Date: Fri Sep 25 23:02:18 2015 +0100 x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at runtime, instead of top-down Beginning with UEFI v2.5 EFI_PROPERTIES_TABLE was introduced that signals that the firmware PE/COFF loader supports splitting code and data sections of PE/COFF images into separate EFI memory map entries. This allows the kernel to map those regions with strict memory protections, e.g. EFI_MEMORY_RO for code, EFI_MEMORY_XP for data, etc. Unfortunately, an unwritten requirement of this new feature is that the regions need to be mapped with the same offsets relative to each other as observed in the EFI memory map. If this is not done crashes like this may occur, BUG: unable to handle kernel paging request at fffffffefe6086dd IP: [] 0xfffffffefe6086dd Call Trace: [] efi_call+0x7e/0x100 [] ? virt_efi_set_variable+0x61/0x90 [] efi_delete_dummy_variable+0x63/0x70 [] efi_enter_virtual_mode+0x383/0x392 [] start_kernel+0x38a/0x417 [] x86_64_start_reservations+0x2a/0x2c [] x86_64_start_kernel+0xeb/0xef Here 0xfffffffefe6086dd refers to an address the firmware expects to be mapped but which the OS never claimed was mapped. The issue is that included in these regions are relative addresses to other regions which were emitted by the firmware toolchain before the "splitting" of sections occurred at runtime. Needless to say, we don't satisfy this unwritten requirement on x86_64 and instead map the EFI memory map entries in reverse order. The above crash is almost certainly triggerable with any kernel newer than v3.13 because that's when we rewrote the EFI runtime region mapping code, in commit d2f7cbe7b26a ("x86/efi: Runtime services virtual mapping"). For kernel versions before v3.13 things may work by pure luck depending on the fragmentation of the kernel virtual address space at the time we map the EFI regions. Instead of mapping the EFI memory map entries in reverse order, where entry N has a higher virtual address than entry N+1, map them in the same order as they appear in the EFI memory map to preserve this relative offset between regions. This patch has been kept as small as possible with the intention that it should be applied aggressively to stable and distribution kernels. It is very much a bugfix rather than support for a new feature, since when EFI_PROPERTIES_TABLE is enabled we must map things as outlined above to even boot - we have no way of asking the firmware not to split the code/data regions. In fact, this patch doesn't even make use of the more strict memory protections available in UEFI v2.5. That will come later. Suggested-by: Ard Biesheuvel Reported-by: Ard Biesheuvel Signed-off-by: Matt Fleming Cc: Cc: Borislav Petkov Cc: Chun-Yi Cc: Dave Young Cc: H. Peter Anvin Cc: James Bottomley Cc: Lee, Chun-Yi Cc: Leif Lindholm Cc: Linus Torvalds Cc: Matthew Garrett Cc: Mike Galbraith Cc: Peter Jones Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1443218539-7610-2-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar arch/x86/platform/efi/efi.c | 67 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) commit 95c2b17534654829db428f11bcf4297c059a2a7e Author: Ben Hutchings Date: Sat Sep 26 12:23:56 2015 +0100 genirq: Fix race in register_irq_proc() Per-IRQ directories in procfs are created only when a handler is first added to the irqdesc, not when the irqdesc is created. In the case of a shared IRQ, multiple tasks can race to create a directory. This race condition seems to have been present forever, but is easier to hit with async probing. Signed-off-by: Ben Hutchings Link: http://lkml.kernel.org/r/1443266636.2004.2.camel@decadent.org.uk Signed-off-by: Thomas Gleixner Cc: stable@vger.kernel.org kernel/irq/proc.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 2d1180e36905bf92892e265c662e5e597be01505 Author: Rick Mann Date: Wed Sep 30 16:24:53 2015 -0700 ASoC: tlv320aic3x: Prevent writing reserved registers on tlv320aic3104 CODECs The current code writes a set of registers that are reserved on the tlc320aic3104. The change skips those registers for that IC. Signed-off-by: Rick Mann Signed-off-by: Mark Brown sound/soc/codecs/tlv320aic3x.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a Author: Oder Chiou Date: Thu Oct 1 14:47:09 2015 +0800 ASoC: rt5645: Correct the naming and setting of ADC Boost Volume Control Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 6 +++--- sound/soc/codecs/rt5645.h | 16 +++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) commit 06423121d9eba0a56b9341cf82b88479017bce14 Author: Mark Brown Date: Thu Oct 1 10:59:48 2015 +0100 regulator: core: Handle probe deferral from DT when resolving supplies When resolving regulator-regulator supplies we ignore probe deferral returns from regulator_dev_lookup() (such as are generated for DT when we can see a supply is registered) and just fall back to the dummy regulator if there are full constraints (as is the case for DT). This means that probe deferral is broken for DT systems, fix that by paying attention to -EPROBE_DEFER return codes like we do -ENODEV. A further patch will simplify this further, this is a minimal fix for the specific issue. Fixes: 9f7e25edb1575a6d2 (regulator: core: Handle full constraints systems when resolving supplies) Reported-by: Sascha Hauer Tested-by: Sascha Hauer Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/regulator/core.c | 4 ++++ 1 file changed, 4 insertions(+) commit daad0bf1491e5321c76a6ba4ccf50a4991494aa8 Author: Sebastian Ott Date: Wed Sep 30 18:30:06 2015 +0200 s390/defconfig: set SCSI_DH=y Fix this warning: arch/s390/configs/performance_defconfig:380:warning: symbol value 'm' invalid for SCSI_DH Introduced via 086b91d052ebe4ead5d28021afe3bdfd70af15bf (scsi_dh: integrate into the core SCSI code) Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/configs/default_defconfig | 2 +- arch/s390/configs/gcov_defconfig | 2 +- arch/s390/configs/performance_defconfig | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 0bf6cd5b9531bcc29c0a5e504b6ce2984c6fd8d8 Author: Christoph Hellwig Date: Sun Sep 27 21:01:51 2015 +0200 blk-mq: factor out a helper to iterate all tags for a request_queue And replace the blk_mq_tag_busy_iter with it - the driver use has been replaced with a new helper a while ago, and internal to the block we only need the new version. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq-tag.c | 27 ++++++++++++++++++++------- block/blk-mq-tag.h | 2 ++ block/blk-mq.c | 14 +++----------- include/linux/blk-mq.h | 2 -- 4 files changed, 25 insertions(+), 20 deletions(-) commit f4829a9b7a61e159367350008a608b062c4f6840 Author: Christoph Hellwig Date: Sun Sep 27 21:01:50 2015 +0200 blk-mq: fix racy updates of rq->errors blk_mq_complete_request may be a no-op if the request has already been completed by others means (e.g. a timeout or cancellation), but currently drivers have to set rq->errors before calling blk_mq_complete_request, which might leave us with the wrong error value. Add an error parameter to blk_mq_complete_request so that we can defer setting rq->errors until we known we won the race to complete the request. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Signed-off-by: Jens Axboe block/blk-mq.c | 12 ++++++------ drivers/block/loop.c | 11 +++++------ drivers/block/null_blk.c | 2 +- drivers/block/nvme-core.c | 16 +++++++--------- drivers/block/virtio_blk.c | 2 +- drivers/block/xen-blkfront.c | 19 ++++++++++--------- drivers/scsi/scsi_lib.c | 2 +- include/linux/blk-mq.h | 2 +- 8 files changed, 32 insertions(+), 34 deletions(-) commit 5b235dc2647e4977b17b5c41d959d0f455831c3f Author: Alban Bedel Date: Fri Sep 4 14:29:16 2015 +0200 MIPS: Fix the build on jz4740 after removing the custom gpio.h Somehow the wrong version of the patch to remove the use of custom gpio.h on mips has been merged. This patch add the missing fixes for a build error on jz4740 because linux/gpio.h doesn't provide any machine specfics definitions anymore. Signed-off-by: Alban Bedel Cc: Paul Burton Cc: Lars-Peter Clausen Cc: Brian Norris Cc: Thomas Gleixner Cc: Linus Walleij Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11089/ Signed-off-by: Ralf Baechle arch/mips/jz4740/board-qi_lb60.c | 1 + arch/mips/jz4740/gpio.c | 1 + 2 files changed, 2 insertions(+) commit 95c632f4e4e6365a20397f4fd04dcf27aab02958 Merge: 4ac86a6 7ba7805 Author: Ingo Molnar Date: Thu Oct 1 09:02:11 2015 +0200 Merge remote-tracking branch 'tglx/x86/urgent' into x86/urgent Pick up the WCHAN fixes from Thomas. Signed-off-by: Ingo Molnar commit cda374253f862bd0f43edda6935a48294fe8ed3e Author: Krzysztof Kozlowski Date: Thu Oct 1 14:21:40 2015 +0900 drm/exynos: Staticize local function in exynos_drm_gem.c The exynos_drm_gem_mmap_buffer() is not used outside so make it static. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c79fb8c9424a24bf812b9a8cb4f19b781052b0b Author: Gustavo Padovan Date: Wed Sep 30 18:40:54 2015 -0300 drm/exynos: fimd: actually disable dp clock fimd_dp_clock_enable() was setting the always to enabled, this patch fix this to actually use the value that is set to 'val'. Reported-by: Emilio López Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 148ba09c465cc54d8e68f041bf9a30332b315c39 Author: Inki Dae Date: Wed Sep 30 20:12:29 2015 +0900 drm/exynos: dp: remove suspend/resume functions This patch removes unnecessary pm suspend/resume functions. All kms sub drivers will be controlled by top of Exynos drm driver and connector dpms so these sub drivers shouldn't have their own pm interfaces. Signed-off-by: Inki Dae Reviewed-by: Gustavo Padovan drivers/gpu/drm/exynos/exynos_dp_core.c | 23 ----------------------- 1 file changed, 23 deletions(-) commit 8d0d94015e96b8853c4f7f06eac3f269e1b3d866 Author: Fabiano Fidêncio Date: Thu Sep 24 15:18:34 2015 +0200 drm/qxl: recreate the primary surface when the bo is not primary When disabling/enabling a crtc the primary area must be updated independently of which crtc has been disabled/enabled. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1264735 Signed-off-by: Fabiano Fidêncio Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b09a1bba4091a9d208481d7831682a1f3061ab9 Author: Robert Jarzmik Date: Wed Sep 30 19:42:15 2015 +0200 dmaengine: pxa_dma: fix residue corner case A very tiny temporal window exists in the residue calculation where : - upon entering residue calculation, the transfer is ongoing - when reading the current transfer pointer, it just changed to the "finisher/linker" descriptor In this case, the residue returned is the whole transfer length instead of 0. Fix it. This appears almost in one extreme case, where the driver is used by older clients which inquire for residue in interrupt context, such as the smsc91x ethernet driver, in a tight loop : interrupt_handler() dmaengine_submit() do { dmaengine_tx_status() } while (residue > 0 || status != DMA_ERROR) Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e87ffbdf06971a80ad2a11217200bdd936195af1 Author: Robert Jarzmik Date: Wed Sep 30 19:42:14 2015 +0200 dmaengine: pxa_dma: fix the no-requestor case A very small number of devices don't use the flow control offered by requestor lines. In these specific cases, the pxa dma driver should be aware of that and not try to use a requestor line. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit aa3ee5f569fda51e54c224c0df60e187e9c5e582 Author: Axel Lin Date: Sat Sep 26 17:15:47 2015 +0800 dmaengine: zxdma: Fix off-by-one for testing valid pchan request The valid pchan range is 0 ~ d->dma_requests - 1. Signed-off-by: Axel Lin Reviewed-by: Jun Nie Signed-off-by: Vinod Koul drivers/dma/zx296702_dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0be2136b67067617b36c70e525d7534108361e36 Author: Ludovic Desroches Date: Tue Sep 15 15:39:11 2015 +0200 dmaengine: at_xdmac: clean used descriptor When putting back a descriptor to the free descs list, some fields are not set to 0, it can cause bugs if someone uses it without having this in mind. Descriptor are not put back one by one so it is easier to clean descriptors when we request them. Signed-off-by: Ludovic Desroches Cc: stable@vger.kernel.org #4.2 Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit a1cf09031e641d3cceaca4a4dd20ef6a785bc9b3 Author: Maxime Ripard Date: Tue Sep 15 15:36:00 2015 +0200 dmaengine: at_xdmac: change block increment addressing mode The addressing mode we were using was not only incrementing the address at each microblock, but also at each data boundary, which was severely slowing the transfer, without any benefit since we were not using the data stride. Switch to the micro block increment only in order to get back to an acceptable performance level. Signed-off-by: Maxime Ripard Signed-off-by: Ludovic Desroches Fixes: 6007ccb57744 ("dmaengine: xdmac: Add interleaved transfer support") Cc: stable@vger.kernel.org #4.2 Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5f81b95fe2a2de4ec51d46ffd04fa40dfc0cb26a Author: Andrew Donnellan Date: Wed Sep 30 11:58:07 2015 +1000 cxl: fix leak of ctx->mapping when releasing kernel API contexts When a context is created via the kernel API, ctx->mapping is allocated within the kernel and thus needs to be freed when the context is freed. reclaim_ctx() attempts to do this for contexts with the ctx->kernelapi flag set, but afu_release() (which can be called from the kernel API through cxl_fd_release()) sets ctx->mapping to NULL before calling cxl_context_free() to free the context. Add a check to afu_release() so that the mappings in contexts created via the kernel API are left alone so reclaim_ctx() can free them. Reported-by: Matthew R. Ochs Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") Signed-off-by: Andrew Donnellan Acked-by: Ian Munsie Reviewed-by: Matthew R. Ochs Signed-off-by: Michael Ellerman drivers/misc/cxl/file.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 52adee580d3c71a0dfabc3168597421981d68b86 Author: Andrew Donnellan Date: Wed Sep 30 11:58:06 2015 +1000 cxl: fix leak of ctx->irq_bitmap when releasing context via kernel API At present, ctx->irq_bitmap is freed in afu_release_irqs(), which is called from afu_release() via cxl_context_detach(). Move the freeing of ctx->irq_bitmap from afu_release_irqs() to reclaim_ctx() (called through cxl_context_free()) so it's freed when releasing a context via the kernel API (cxl_release_context()) or the userspace API (afu_release()). Reported-by: Matthew R. Ochs Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") Signed-off-by: Andrew Donnellan Acked-by: Ian Munsie Reviewed-by: Matthew R. Ochs Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 3 +++ drivers/misc/cxl/irq.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) commit 8dde152ea34860403c839598bdef3f07239eb25a Author: Andrew Donnellan Date: Wed Sep 30 11:58:05 2015 +1000 cxl: fix leak of IRQ names in cxl_free_afu_irqs() cxl_free_afu_irqs() doesn't free IRQ names when it releases an AFU's IRQ ranges. The userspace API equivalent in afu_release_irqs() calls afu_irq_name_free() to release the IRQ names. Call afu_irq_name_free() in cxl_free_afu_irqs() to release the IRQ names. Make afu_irq_name_free() non-static to allow this. Reported-by: Matthew R. Ochs Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") Signed-off-by: Andrew Donnellan Signed-off-by: Ian Munsie Reviewed-by: Matthew R. Ochs Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 1 + drivers/misc/cxl/cxl.h | 1 + drivers/misc/cxl/irq.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) commit 6ece90f9a13e2592cbd6634f74bcb306169b5ab6 Author: Pablo Neira Ayuso Date: Tue Sep 29 21:10:05 2015 +0200 netfilter: fix Kconfig dependencies for nf_dup_ipv{4,6} net/built-in.o: In function `nf_dup_ipv4': (.text+0xed24d): undefined reference to `nf_conntrack_untracked' net/built-in.o: In function `nf_dup_ipv4': (.text+0xed267): undefined reference to `nf_conntrack_untracked' net/built-in.o: In function `nf_dup_ipv6': (.text+0x158aef): undefined reference to `nf_conntrack_untracked' net/built-in.o: In function `nf_dup_ipv6': (.text+0x158b09): undefined reference to `nf_conntrack_untracked' Reported-by: Randy Dunlap Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/Kconfig | 1 + net/ipv6/netfilter/Kconfig | 1 + 2 files changed, 2 insertions(+) commit 7ba78053aacb89998a052843e3c56983c31d57f0 Author: Thomas Gleixner Date: Wed Sep 30 08:38:23 2015 +0000 x86/process: Unify 32bit and 64bit implementations of get_wchan() The stack layout and the functionality is identical. Use the 64bit version for all of x86. Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Dmitry Vyukov Cc: Andrey Ryabinin Cc: Andy Lutomirski Cc: Andrey Konovalov Cc: Kostya Serebryany Cc: Alexander Potapenko Cc: kasan-dev Cc: Denys Vlasenko Cc: Andi Kleen Cc: Sasha Levin Cc: Wolfram Gloger Link: http://lkml.kernel.org/r/20150930083302.779694618@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/process.c | 55 +++++++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/process_32.c | 28 ---------------------- arch/x86/kernel/process_64.c | 56 -------------------------------------------- 3 files changed, 55 insertions(+), 84 deletions(-) commit eddd3826a1a0190e5235703d1e666affa4d13b96 Author: Thomas Gleixner Date: Wed Sep 30 08:38:22 2015 +0000 x86/process: Add proper bound checks in 64bit get_wchan() Dmitry Vyukov reported the following using trinity and the memory error detector AddressSanitizer (https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerForKernel). [ 124.575597] ERROR: AddressSanitizer: heap-buffer-overflow on address ffff88002e280000 [ 124.576801] ffff88002e280000 is located 131938492886538 bytes to the left of 28857600-byte region [ffffffff81282e0a, ffffffff82e0830a) [ 124.578633] Accessed by thread T10915: [ 124.579295] inlined in describe_heap_address ./arch/x86/mm/asan/report.c:164 [ 124.579295] #0 ffffffff810dd277 in asan_report_error ./arch/x86/mm/asan/report.c:278 [ 124.580137] #1 ffffffff810dc6a0 in asan_check_region ./arch/x86/mm/asan/asan.c:37 [ 124.581050] #2 ffffffff810dd423 in __tsan_read8 ??:0 [ 124.581893] #3 ffffffff8107c093 in get_wchan ./arch/x86/kernel/process_64.c:444 The address checks in the 64bit implementation of get_wchan() are wrong in several ways: - The lower bound of the stack is not the start of the stack page. It's the start of the stack page plus sizeof (struct thread_info) - The upper bound must be: top_of_stack - TOP_OF_KERNEL_STACK_PADDING - 2 * sizeof(unsigned long). The 2 * sizeof(unsigned long) is required because the stack pointer points at the frame pointer. The layout on the stack is: ... IP FP ... IP FP. So we need to make sure that both IP and FP are in the bounds. Fix the bound checks and get rid of the mix of numeric constants, u64 and unsigned long. Making all unsigned long allows us to use the same function for 32bit as well. Use READ_ONCE() when accessing the stack. This does not prevent a concurrent wakeup of the task and the stack changing, but at least it avoids TOCTOU. Also check task state at the end of the loop. Again that does not prevent concurrent changes, but it avoids walking for nothing. Add proper comments while at it. Reported-by: Dmitry Vyukov Reported-by: Sasha Levin Based-on-patch-from: Wolfram Gloger Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Dmitry Vyukov Cc: Andrey Ryabinin Cc: Andy Lutomirski Cc: Andrey Konovalov Cc: Kostya Serebryany Cc: Alexander Potapenko Cc: kasan-dev Cc: Denys Vlasenko Cc: Andi Kleen Cc: Wolfram Gloger Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/20150930083302.694788319@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/process_64.c | 52 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 10 deletions(-) commit e256da84a04ea31c3c215997c847609af224e8f4 Author: Gianluca Renzi Date: Fri Sep 25 21:33:41 2015 +0200 ASoC: sgtl5000: fix wrong register MIC_BIAS_VOLTAGE setup on probe Signed-off-by: Gianluca Renzi Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/sgtl5000.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 57622aef86d21d459e937c72f578050ff4a91af5 Author: Jiada Wang Date: Wed Sep 30 13:54:13 2015 +0900 ASoC: wm8962: balance pm_runtime_enable pm_runtime_enable is called in probe to enable runtime PM for wm8962 codec, but pm_runtime_disable isn't called in remove callback, nor is called in error path if probe fails after runtime PM is enabled, this causes unbalanced pm_runtime_enable. This patch Adds pm_runtime_disable in remove callback and error path, to balance pm_runtime_enable. Signed-off-by: Jiada Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8962.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit dd36d7393d6310b0c1adefb22fba79c3cf8a577c Merge: d4e842b 3cef072 Author: Linus Torvalds Date: Wed Sep 30 13:13:55 2015 -0400 Merge git://www.linux-watchdog.org/linux-watchdog Pull watchdog fixes from Wim Van Sebroeck: "This fixes: - module autoload for 3 OF platform drivers - poweroff behaviour on bcm2835 watchdog device - I2C dependencies for iTCO_wdt.c" * git://www.linux-watchdog.org/linux-watchdog: watchdog: iTCO: Fix dependencies on I2C watchdog: bcm2835: Fix poweroff behaviour watchdog: Fix module autoload for OF platform driver commit d4e842be2b697eb61c8863fe4b080bf0688198a2 Merge: 70c8a00 f491e70 Author: Linus Torvalds Date: Wed Sep 30 13:11:42 2015 -0400 Merge tag 'hwmon-for-linus-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmin fixes from Guenter Roeck: "Fix module autoload for various drivers" * tag 'hwmon-for-linus-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (pwm-fan) Fix module autoload for OF platform driver hwmon: (gpio-fan) Fix module autoload for OF platform driver hwmon: (abx500) Fix module autoload for OF platform driver commit 874bbfe600a660cba9c776b3957b1ce393151b76 Author: Shaohua Li Date: Wed Sep 30 09:05:30 2015 -0700 workqueue: make sure delayed work run in local cpu My system keeps crashing with below message. vmstat_update() schedules a delayed work in current cpu and expects the work runs in the cpu. schedule_delayed_work() is expected to make delayed work run in local cpu. The problem is timer can be migrated with NO_HZ. __queue_work() queues work in timer handler, which could run in a different cpu other than where the delayed work is scheduled. The end result is the delayed work runs in different cpu. The patch makes __queue_delayed_work records local cpu earlier. Where the timer runs doesn't change where the work runs with the change. [ 28.010131] ------------[ cut here ]------------ [ 28.010609] kernel BUG at ../mm/vmstat.c:1392! [ 28.011099] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN [ 28.011860] Modules linked in: [ 28.012245] CPU: 0 PID: 289 Comm: kworker/0:3 Tainted: G W4.3.0-rc3+ #634 [ 28.013065] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140709_153802- 04/01/2014 [ 28.014160] Workqueue: events vmstat_update [ 28.014571] task: ffff880117682580 ti: ffff8800ba428000 task.ti: ffff8800ba428000 [ 28.015445] RIP: 0010:[] []vmstat_update+0x31/0x80 [ 28.016282] RSP: 0018:ffff8800ba42fd80 EFLAGS: 00010297 [ 28.016812] RAX: 0000000000000000 RBX: ffff88011a858dc0 RCX:0000000000000000 [ 28.017585] RDX: ffff880117682580 RSI: ffffffff81f14d8c RDI:ffffffff81f4df8d [ 28.018366] RBP: ffff8800ba42fd90 R08: 0000000000000001 R09:0000000000000000 [ 28.019169] R10: 0000000000000000 R11: 0000000000000121 R12:ffff8800baa9f640 [ 28.019947] R13: ffff88011a81e340 R14: ffff88011a823700 R15:0000000000000000 [ 28.020071] FS: 0000000000000000(0000) GS:ffff88011a800000(0000)knlGS:0000000000000000 [ 28.020071] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 28.020071] CR2: 00007ff6144b01d0 CR3: 00000000b8e93000 CR4:00000000000006f0 [ 28.020071] Stack: [ 28.020071] ffff88011a858dc0 ffff8800baa9f640 ffff8800ba42fe00ffffffff8106bd88 [ 28.020071] ffffffff8106bd0b 0000000000000096 0000000000000000ffffffff82f9b1e8 [ 28.020071] ffffffff829f0b10 0000000000000000 ffffffff81f18460ffff88011a81e340 [ 28.020071] Call Trace: [ 28.020071] [] process_one_work+0x1c8/0x540 [ 28.020071] [] ? process_one_work+0x14b/0x540 [ 28.020071] [] worker_thread+0x114/0x460 [ 28.020071] [] ? process_one_work+0x540/0x540 [ 28.020071] [] kthread+0xf8/0x110 [ 28.020071] [] ?kthread_create_on_node+0x200/0x200 [ 28.020071] [] ret_from_fork+0x3f/0x70 [ 28.020071] [] ?kthread_create_on_node+0x200/0x200 Signed-off-by: Shaohua Li Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org # v2.6.31+ kernel/workqueue.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 70c8a00a09076ca2683ef24356fad2e55f93a427 Merge: b9a5322 7c4f1c6 Author: Linus Torvalds Date: Wed Sep 30 13:01:35 2015 -0400 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RCU fixes from Ingo Molnar: "Two RCU fixes: - work around bug with recent GCC versions. - fix false positive lockdep splat" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rcu: Suppress lockdep false positive for rcp->exp_funnel_mutex rcu: Change _wait_rcu_gp() to work around GCC bug 67055 commit b9a532277938798b53178d5a66af6e2915cb27cf Author: Linus Torvalds Date: Wed Sep 30 12:48:40 2015 -0400 Initialize msg/shm IPC objects before doing ipc_addid() As reported by Dmitry Vyukov, we really shouldn't do ipc_addid() before having initialized the IPC object state. Yes, we initialize the IPC object in a locked state, but with all the lockless RCU lookup work, that IPC object lock no longer means that the state cannot be seen. We already did this for the IPC semaphore code (see commit e8577d1f0329: "ipc/sem.c: fully initialize sem_array before making it visible") but we clearly forgot about msg and shm. Reported-by: Dmitry Vyukov Cc: Manfred Spraul Cc: Davidlohr Bueso Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds ipc/msg.c | 14 +++++++------- ipc/shm.c | 13 +++++++------ ipc/util.c | 8 ++++---- 3 files changed, 18 insertions(+), 17 deletions(-) commit 3e4e3805643445b71b7ee1b84892e43d004e24e2 Author: Christian König Date: Thu Sep 10 15:00:39 2015 +0200 drm/amdgpu: only print meaningful VM faults Port of radeon commit 9b7d786b900baf7c0d1a7e211570aef1cb27590f. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 8 ++++++-- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) commit 2392eec65c493c3f49a1f23f4af713e3c68cf6f5 Author: Alex Deucher Date: Tue Sep 29 10:35:45 2015 -0400 drm/amdgpu/cgs: remove import_gpu_mem It was added for completeness, but we don't have any users for it yet. Daniel noted that it may be racy. Remove it. Change-Id: I5f5546f8911a4f294008a62dc86a73f3face38d1 Reviewed-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 39 --------------------------------- drivers/gpu/drm/amd/include/cgs_linux.h | 17 -------------- 2 files changed, 56 deletions(-) commit f5f6afa85aa82a8ee59072f2d09f2b381f24c871 Author: Yoshihiro Shimoda Date: Tue Sep 29 18:21:19 2015 +0900 usb: renesas_usbhs: Add support for R-Car H3 This patch adds a compatible string to support for R-Car H3. Since the HS-USB controller of R-Car H3 is almost the same specification with R-Car Gen2 (these have 16 pipes and usb-dmac), this patch sets the "type" of renesas_usbhs_driver_param to USBHS_TYPE_RCAR_GEN2. Acked-by: Geert Uytterhoeven Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/renesas_usbhs.txt | 1 + drivers/usb/renesas_usbhs/common.c | 5 +++++ 2 files changed, 6 insertions(+) commit 9ae7ce00cc1353155b1914bfc40e8362efef7d1c Author: Yoshihiro Shimoda Date: Tue Sep 29 18:21:18 2015 +0900 usb: renesas_usbhs: fix build warning if 64-bit architecture This patch fixes the following warning if 64-bit architecture environment: ./drivers/usb/renesas_usbhs/common.c:496:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] dparam->type = of_id ? (u32)of_id->data : 0; Acked-by: Geert Uytterhoeven Signed-off-by: Yoshihiro Shimoda Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/common.c | 2 +- include/linux/usb/renesas_usbhs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7022cfdfe07dcfccc294f04de5f75e0a37b16174 Author: Sudip Mukherjee Date: Sat Sep 26 15:01:06 2015 +0530 usb: gadget: bdc: fix memory leak If dma_pool_alloc() fails we are jumping to fail and releasing all the bd_tables which have been added to the chain but we missed freeing this bd_table which was just allocated and still not added to the chain of bd_table. Signed-off-by: Sudip Mukherjee Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/bdc/bdc_ep.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7a63076d9a31a6c2073da45021eeb4f89d2a8b56 Author: Paul Burton Date: Wed Aug 5 15:42:38 2015 -0700 MIPS: CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT The CONFIG_MIPS_MT symbol can be selected by CONFIG_MIPS_VPE_LOADER in addition to CONFIG_MIPS_MT_SMP. We only want MT code in the CPS SMP boot vector if we're using MT for SMP. Thus switch the config symbol we ifdef against to CONFIG_MIPS_MT_SMP. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: James Hogan Cc: # 3.16+ Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10867/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a5b0f6db0e6cf6224e50f6585e9c8f0c2d38a8f8 Author: Paul Burton Date: Wed Aug 5 15:42:37 2015 -0700 MIPS: CPS: Don't include MT code in non-MT kernels. The MT-specific code in mips_cps_boot_vpes can safely be omitted from kernels which don't support MT, with the default VPE==0 case being used as it would be after the has_mt (Config3.MT) check failed at runtime. Discarding the code entirely will save us a few bytes & allow cleaner handling of MT ASE instructions by later patches. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: James Hogan Cc: # 3.16+ Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10866/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 2 ++ 1 file changed, 2 insertions(+) commit 1e5fb282f8eda889776ee83f9214d5df9edaa26d Author: Paul Burton Date: Wed Aug 5 15:42:36 2015 -0700 MIPS: CPS: Stop dangling delay slot from has_mt. The has_mt macro ended with a branch, leaving its callers with a delay slot that would be executed if Config3.MT is not set. However it would not be executed if Config3 (or earlier Config registers) don't exist which makes it somewhat inconsistent at best. Fill the delay slot in the macro & fix the mips_cps_boot_vpes caller appropriately. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: James Hogan Cc: # 3.16+ Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10865/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 53960059d56ecef67d4ddd546731623641a3d2d1 Author: James Hogan Date: Fri Mar 27 08:33:43 2015 +0000 MIPS: dma-default: Fix 32-bit fall back to GFP_DMA If there is a DMA zone (usually 24bit = 16MB I believe), but no DMA32 zone, as is the case for some 32-bit kernels, then massage_gfp_flags() will cause DMA memory allocated for devices with a 32..63-bit coherent_dma_mask to fall back to using __GFP_DMA, even though there may only be 32-bits of physical address available anyway. Correct that case to compare against a mask the size of phys_addr_t instead of always using a 64-bit mask. Signed-off-by: James Hogan Fixes: a2e715a86c6d ("MIPS: DMA: Fix computation of DMA flags from device's coherent_dma_mask.") Cc: Ralf Baechle Cc: linux-mips@linux-mips.org Cc: # 2.6.36+ Patchwork: https://patchwork.linux-mips.org/patch/9610/ Signed-off-by: Ralf Baechle arch/mips/mm/dma-default.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72d38b19781de457def0a62dfaa50134fc6e15f0 Author: Martin Schwidefsky Date: Fri Sep 18 16:41:36 2015 +0200 s390/vtime: correct scaled cputime of partially idle CPUs The calculation for the SMT scaling factor for a hardware thread which has been partially idle needs to disregard the cycles spent by the other threads of the core while the thread is idle. Signed-off-by: Martin Schwidefsky arch/s390/kernel/asm-offsets.c | 1 + arch/s390/kernel/entry.S | 30 ++++++++++++++++++- arch/s390/kernel/vtime.c | 66 +++++++++++++++++++++++------------------- 3 files changed, 67 insertions(+), 30 deletions(-) commit b94be972538f4523f09243af7c726158f0bfae33 Author: Egbert Eich Date: Wed Sep 23 16:13:01 2015 +0200 drm/i915: Call non-locking version of drm_kms_helper_poll_enable(), v2 drm_kms_helper_poll_enable() is called from a context in intel_hpd_irq_storm_disable() where the the mode_config mutex is already locked. When this function was converted to lock this mutex in commit 8c4ccc4ab6f6 ("drm/probe-helper: Grab mode_config.mutex in poll_init/enable") a deadlock occurred. Call the newly implemented non-locking version of this function. Changes since v1: - use function name suffix '_locked' for the function that is to be called from a locked context. Signed-off-by: Egbert Eich Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_hotplug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ad640e99e5e5514d623210bc937e665ffd8f43f Author: Egbert Eich Date: Wed Sep 23 16:13:00 2015 +0200 drm: Add a non-locking version of drm_kms_helper_poll_enable(), v2 drm_kms_helper_poll_enable() was converted to lock the mode_config mutex in commit 8c4ccc4ab6f64e859d4ff8d7c02c2ed2e956e07f ("drm/probe-helper: Grab mode_config.mutex in poll_init/enable"). This disregarded the cases where this function is called from a context where this mutex is already locked. Add a non-locking version as well. Changes since v1: - use function name suffix '_locked' for the function that is to be called from a locked context. Signed-off-by: Egbert Eich Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/drm_probe_helper.c | 19 ++++++++++++++++--- include/drm/drm_crtc_helper.h | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) commit 031277d4d33d33f0174fbb569ca8f68238175617 Author: Chaotian Jing Date: Wed Sep 30 17:37:18 2015 +0800 mmc: core: fix dead loop of mmc_retune When get a CRC error, start the mmc_retune, it will issue CMD19/CMD21 to do tune, assume there were 10 clock phase need to try, phase 0 to phase 6 is ok, phase 7 to phase 9 is NG, we try it from 0 to 9, so the last CMD19/CMD21 will get CRC error, host->need_retune was set and cause mmc_retune was called, then dead loop of mmc_retune Signed-off-by: Chaotian Jing Acked-by: Adrian Hunter Fixes: bd11e8bd03ca ("mmc: core: Flag re-tuning is needed on CRC errors") Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 575f9c8604e0b4c7b36fb41fc5fd280a3c336906 Author: Thomas Hellstrom Date: Tue Sep 29 07:49:56 2015 -0700 drm/vmwgfx: Fix a command submission hang regression When we're out of command buffer space, we turn on the command buffer processed irq without re-checking for finished command buffers afterwards. This might lead to a missed irq and the command submission process waiting forever for space. Fix this by rerunning the command buffer submission handler whenever we're out of command space. This ensures both that we don't needlessly turn on the irq, and that if we decide to turn on the irq, we recheck for finished command buffers before going to sleep. Reported-and-tested-by: Bryan Li Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 96fc7a9cee671f10e14aaca44833696a71f1ebdb Author: Ralf Baechle Date: Wed Sep 30 14:24:31 2015 +0200 MIPS: Wire up userfaultfd and membarrier syscalls. Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/unistd.h | 18 ++++++++++++------ arch/mips/kernel/scall32-o32.S | 2 ++ arch/mips/kernel/scall64-64.S | 2 ++ arch/mips/kernel/scall64-n32.S | 2 ++ arch/mips/kernel/scall64-o32.S | 2 ++ 5 files changed, 20 insertions(+), 6 deletions(-) commit 7253054e5d05233063c48f57ac02283bd35753d8 Author: Stephane Grosjean Date: Wed Sep 30 12:42:35 2015 +0200 can: peak_pci: add unused device id. in devices table While new PEAK_PCIE_OEM_ID has been defined since 3.17, no corresponding entry has been added in the peak_pci_tbl[] of the peak_pci CAN driver. This patch enables now users of the PCAN-PCI Express OEM card to run the peak_pci driver too. Signed-off-by: Stephane Grosjean Signed-off-by: Marc Kleine-Budde drivers/net/can/sja1000/peak_pci.c | 1 + 1 file changed, 1 insertion(+) commit 6bea0f6d1c47b07be88dfd93f013ae05fcb3d8bf Author: Andy Shevchenko Date: Mon Sep 28 18:57:03 2015 +0300 dmaengine: dw: properly read DWC_PARAMS register In case we have less than maximum allowed channels (8) and autoconfiguration is enabled the DWC_PARAMS read is wrong because it uses different arithmetic to what is needed for channel priority setup. Re-do the caclulations properly. This now works on AVR32 board well. Fixes: fed2574b3c9f (dw_dmac: introduce software emulation of LLP transfers) Cc: yitian.bu@tangramtek.com Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/dw/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 10d97d5869f9a50eb3142c7ee562ecc5b5b33f5b Author: Gustavo Padovan Date: Tue Sep 29 17:59:19 2015 -0300 drm/exynos: remove unused mode_fixup() code CRTC's mode_fixup() isn't used anymore in exynos, remove it. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 15 --------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 ---- 2 files changed, 19 deletions(-) commit 208d7ee3c89e5e94627aa33331b15dd4df814707 Author: Gustavo Padovan Date: Tue Sep 29 17:59:18 2015 -0300 drm/exynos: remove decon_mode_fixup() The only thing mode_fixup was doing was set the adjusted_mode->vrefresh to 60, but it already has the value of 60 when the decon_mode_fixup() is called. That means this call is actually pointless and can be removed. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 12 ------------ 1 file changed, 12 deletions(-) commit 50bbfbffa5c894def440ce8157dfe53e60960d35 Author: Gustavo Padovan Date: Tue Sep 29 17:59:17 2015 -0300 drm/exynos: remove fimd_mode_fixup() The only thing mode_fixup was doing was set the adjusted_mode->vrefresh to 60, but it already has the value of 60 when the fimd_mode_fixup() is called. That means this call is actually pointless and can be removed. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 12 ------------ 1 file changed, 12 deletions(-) commit ee08b59d47d859ed0a11ab331a3fbc5ab3b56100 Author: Rameshwar Prasad Sahu Date: Wed Sep 16 13:33:23 2015 +0530 dmaengine: xgene-dma: Fix overwritting DMA tx ring This patch fixes an over flow issue with the TX ring descriptor. Each descriptor is 32B in size and an operation requires 2 of these descriptors. Signed-off-by: Rameshwar Prasad Sahu Signed-off-by: Vinod Koul drivers/dma/xgene-dma.c | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) commit 214fc4e423ff38b41b60db2209cf49b4e9a7209b Author: Peter Ujfalusi Date: Thu Sep 24 12:03:35 2015 +0300 dmaengine: fix balance of privatecnt dma_release_channel() decrements privatecnt counter and almost all dma_get* function increments it with the exception of dma_get_slave_channel(). In most cases this does not cause issue since normally the channel is not requested and released, but if a driver requests DMA channel via dma_get_slave_channel() and releases the channel the privatecnt will be unbalanced and this will prevent for example getting channel for memcpy. Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/dmaengine.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 85a82038b2744f87cb297f93ddecd04a8c2979bd Author: Thierry Reding Date: Thu Sep 24 12:14:15 2015 +0200 drm/exynos: rotator: Clock control is unused if !PM Protect the rotator_clk_crtl() function with an #ifdef CONFIG_PM guard to avoid "defined but not used" warnings. Signed-off-by: Thierry Reding Reviewed-by: Andrzej Hajda Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_rotator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 641a2fef39369c27df887e82cd63aee3de93f511 Author: Thierry Reding Date: Thu Sep 24 12:14:14 2015 +0200 drm/exynos: fimc: Clock control is unused if !PM Protect the fimc_clk_ctrl() function with an #ifdef CONFIG_PM guard to avoid "defined but not used" warnings. Signed-off-by: Thierry Reding Reviewed-by: Andrzej Hajda Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimc.c | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) commit 7082947eff3b1ddbb5d320331c846a5a2fc88261 Author: Thierry Reding Date: Thu Sep 24 12:14:13 2015 +0200 drm/exynos: Suspend/resume is unused if !PM Protect the suspend and resume callbacks with an #ifdef CONFIG_PM_SLEEP guard to avoid "defined but not used" warnings. Signed-off-by: Thierry Reding Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 2 ++ 1 file changed, 2 insertions(+) commit 48cf53f4343ae12ddc1c60dbe116161ecf7a2885 Author: Joonyoung Shim Date: Tue Jul 28 17:53:23 2015 +0900 drm/exynos: create a fake mmap offset with gem creation Don't create a fake mmap offset in exynos_drm_gem_dumb_map_offset. If not, it will call drm_gem_create_mmap_offset whenever user requests DRM_IOCTL_MODE_MAP_DUMB ioctl. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 8755556fbbdd1a6af21a3c4d9ce8f451e999e457 Author: Joonyoung Shim Date: Fri Sep 25 18:10:32 2015 +0900 drm/exynos: remove call to drm_gem_free_mmap_offset() The drm_gem_object_release() function already performs this cleanup, so there is no reason to do it explicitly. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 --- 1 file changed, 3 deletions(-) commit b9e71911f34616276399da3dc1abc47797be2396 Author: Daniel Kurtz Date: Wed Sep 9 12:55:25 2015 -0300 drm/exynos: Remove useless EXPORT_SYMBOL_GPLs All the user of these functions are inside exynos-drm driver and you don't need to export the symbols for that case. Signed-off-by: Daniel Kurtz Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_core.c | 6 ------ drivers/gpu/drm/exynos/exynos_drm_g2d.c | 3 --- 2 files changed, 9 deletions(-) commit b4cfd4ddfb555c8cda7b0aa55c0e37522f8e01e4 Author: Joonyoung Shim Date: Wed Sep 16 14:29:35 2015 +0900 drm/exynos: cleanup line feed in exynos_drm_gem_get_ioctl The beginning of statement in function is next line of a brace. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 333e8e58b0bed137e940ac92c2af3f3aa4603504 Author: Joonyoung Shim Date: Wed Sep 16 14:29:34 2015 +0900 drm/exynos: cleanup function calling written twice By if statment, some function callings are written twice. It needs several line feed by indentation in if statment. Make to one function calling from outside if statment. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 56 ++++++++++++++------------------- 1 file changed, 23 insertions(+), 33 deletions(-) commit b319dc6a61518cc02ae21afb383901236009aab1 Author: Joonyoung Shim Date: Wed Sep 16 14:29:33 2015 +0900 drm/exynos: staticize exynos_drm_gem_init() The exynos_drm_gem_init() is used only in exynos_drm_gem.c file. Make it static and don't export it. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 +-- drivers/gpu/drm/exynos/exynos_drm_gem.h | 4 ---- 2 files changed, 1 insertion(+), 6 deletions(-) commit 0269b1a17f8f887c02ae37affef884e1ffda3df6 Author: Joonyoung Shim Date: Wed Sep 16 14:29:32 2015 +0900 drm/exynos: remove unnecessary NULL assignment They will be freed right or was freed already, so NULL assignment is unnecessary. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 --- 1 file changed, 3 deletions(-) commit 7c93537a47e15e04064158ccdbe28f88ee61170c Author: Joonyoung Shim Date: Wed Sep 16 14:14:54 2015 +0900 drm/exynos: fix missed calling of drm_prime_gem_destroy() When obj->import_attach is existed, code calling drm_prime_gem_destroy() was removed from commit 67e93c808b48 ("drm/exynos: stop copying sg table"), and it's a fault. The drm_prime_gem_destroy() is cleanup function which GEM drivers need to call when they use drm_gem_prime_import() to import dma-bufs, so exynos-drm driver using drm_gem_prime_import() needs calling drm_prime_gem_destroy(). Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 9 +++++---- drivers/gpu/drm/exynos/exynos_drm_gem.h | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) commit 5e0fb1f9eb754eed8432392bfdc100ef295676cd Author: Joonyoung Shim Date: Wed Sep 16 14:16:45 2015 +0900 drm/exynos: fix layering violation of address There is no guarantee that DMA addresses are the same as physical addresses, but dma_to_pfn() knows how to convert a dma_addr_t to a PFN which can then be converted to a struct page. Suggested-by: Russell King Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4d370b74e7ce175f26654fe2db49db342566cdc8 Author: Sudip Mukherjee Date: Sat Sep 26 14:22:10 2015 +0530 fbdev: broadsheetfb: fix memory leak We have requested the firmware and it was loaded but we missed releasing it both on success and error. Signed-off-by: Sudip Mukherjee Signed-off-by: Tomi Valkeinen drivers/video/fbdev/broadsheetfb.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 4ac86a6dcec1c3878de9747bf5a2aa4455be69e3 Author: Andrey Ryabinin Date: Tue Sep 29 19:40:14 2015 +0300 x86, efi, kasan: Fix build failure on !KASAN && KMEMCHECK=y kernels With KMEMCHECK=y, KASAN=n we get this build failure: arch/x86/platform/efi/efi.c:673:3: error: implicit declaration of function ‘memcpy’ [-Werror=implicit-function-declaration] arch/x86/platform/efi/efi_64.c:139:2: error: implicit declaration of function ‘memcpy’ [-Werror=implicit-function-declaration] arch/x86/include/asm/desc.h:121:2: error: implicit declaration of function ‘memcpy’ [-Werror=implicit-function-declaration] Don't #undef memcpy if KASAN=n. Reported-by: Ingo Molnar Reported-by: Sedat Dilek Signed-off-by: Andrey Ryabinin Cc: Linus Torvalds Cc: Matt Fleming Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: 769a8089c1fd ("x86, efi, kasan: #undef memset/memcpy/memmove per arch") Link: http://lkml.kernel.org/r/1443544814-20122-1-git-send-email-ryabinin.a.a@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/efi.h | 2 ++ 1 file changed, 2 insertions(+) commit ccf79c238f1a06a801b4c4449b9bc8a42be2c7bc Merge: 1e03474 9ffecb1 Author: Ingo Molnar Date: Wed Sep 30 09:29:27 2015 +0200 Merge tag 'v4.3-rc3' into x86/urgent, before applying dependent fix Signed-off-by: Ingo Molnar commit 40482e64b0b84388561b00b880eeca7000f72d38 Author: Emilio López Date: Sun Sep 13 17:15:53 2015 -0300 dmaengine: sun4i: fix unsafe list iteration Currently, sun4i_dma_free_contract iterates over lists and frees memory as it goes through them, causing reads to recently freed memory to be performed. Fix this by using the safe version of the iterator, so freed memory is not referenced at all. Reported-by: Dan Carpenter Signed-off-by: Emilio López Acked-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/sun4i-dma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4776dbb3583d10969f991cc89da781884c15979d Merge: 1605b60 c7d2ecd Author: Kukjin Kim Date: Wed Sep 30 15:42:39 2015 +0900 Merge tag 'samsung-fixes-4.3' of http://github.com/krzk/linux into v4.3-samsung-fixes Fixes for Exynos (DT and mach code): 1. Finally fix booting of all 8 cores on Exynos Octa (Exynos542x): all 8 cores are booting and can be used. The fix, based on vendor code and bootloader behavior, is as for time being only for MCPM enabled path. 2. Fix thermal boot issue on SMDK5250. 3. Fix invalid clock used for FIMD IOMMU. commit 1e034743e918d195d339af340ae933727c072bce Author: Vitaly Kuznetsov Date: Wed Sep 23 12:02:57 2015 +0200 x86/hyperv: Fix the build in the !CONFIG_KEXEC_CORE case Recent changes in the Hyper-V driver: b4370df2b1f5 ("Drivers: hv: vmbus: add special crash handler") broke the build when CONFIG_KEXEC_CORE is not set: arch/x86/built-in.o: In function `hv_machine_crash_shutdown': arch/x86/kernel/cpu/mshyperv.c:112: undefined reference to `native_machine_crash_shutdown' Decorate all kexec related code with #ifdef CONFIG_KEXEC_CORE. Reported-by: Jim Davis Reported-by: Stephen Hemminger Signed-off-by: Vitaly Kuznetsov Signed-off-by: Thomas Gleixner Cc: devel@linuxdriverproject.org Cc: K. Y. Srinivasan Cc: Haiyang Zhang Cc: Greg Kroah-Hartman Cc: Peter Zijlstra Cc: Linus Torvalds Link: http://lkml.kernel.org/r/1443002577-25370-1-git-send-email-vkuznets@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mshyperv.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 14a21e7ba8cf6eab968310c92ca19a00f13ce3d9 Author: Tobias Jakobi Date: Mon Sep 21 20:23:52 2015 +0200 PM / devfreq: Fix governor_store() Writing the currently set governor into sysfs currently seems to fail. Fix this by setting the return code to zero before leaving governor_store(). Signed-off-by: Tobias Jakobi Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b84f78782052ee4516903e5d0566a5eee365b771 Author: David Ahern Date: Tue Sep 29 19:07:07 2015 -0700 net: Initialize flow flags in input path The fib_table_lookup tracepoint found 2 places where the flowi4_flags is not initialized. Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_frontend.c | 1 + net/ipv4/route.c | 1 + 2 files changed, 2 insertions(+) commit 57a47532c4312159935c98b7f1cf0e62296b9171 Author: Vivien Didelot Date: Tue Sep 29 14:17:54 2015 -0400 net: dsa: fix preparation of a port STP update Because of the default 0 value of ret in dsa_slave_port_attr_set, a driver may return -EOPNOTSUPP from the commit phase of a STP state, which triggers a WARN() from switchdev. This happened on a 6185 switch which does not support hardware bridging. Fixes: 3563606258cf ("switchdev: convert STP update to switchdev attr set") Reported-by: Andrew Lunn Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller net/dsa/slave.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 9ae6d4935e3df35a23bbbe531c6b9ff314e7fd0f Author: Thomas Huth Date: Tue Sep 29 17:45:28 2015 +0200 testptp: Silence compiler warnings on ppc64 When compiling Documentation/ptp/testptp.c the following compiler warnings are printed out: Documentation/ptp/testptp.c: In function ‘main’: Documentation/ptp/testptp.c:367:11: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘__s64’ [-Wformat=] event.t.sec, event.t.nsec); ^ Documentation/ptp/testptp.c:505:5: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘__s64’ [-Wformat=] (pct+2*i)->sec, (pct+2*i)->nsec); ^ Documentation/ptp/testptp.c:507:5: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘__s64’ [-Wformat=] (pct+2*i+1)->sec, (pct+2*i+1)->nsec); ^ Documentation/ptp/testptp.c:509:5: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘__s64’ [-Wformat=] (pct+2*i+2)->sec, (pct+2*i+2)->nsec); This happens because __s64 is by default defined as "long" on ppc64, not as "long long". However, to fix these warnings, it's possible to define the __SANE_USERSPACE_TYPES__ so that __s64 gets defined to "long long" on ppc64, too. Signed-off-by: Thomas Huth Acked-by: Richard Cochran Signed-off-by: David S. Miller Documentation/ptp/testptp.c | 1 + 1 file changed, 1 insertion(+) commit 23860f103b53e764a3cbbf615d08f88362a28295 Author: Robb Manes Date: Tue Sep 29 11:03:37 2015 -0400 net/mlx4: Handle return codes in mlx4_qp_attach_common Both new_steering_entry() and existing_steering_entry() return values based on their success or failure, but currently they fall through silently. This can make troubleshooting difficult, as we were unable to tell which one of these two functions returned errors or specifically what code was returned. This patch remedies that situation by passing the return codes to err, which is returned by mlx4_qp_attach_common() itself. This also addresses a leak in the call to mlx4_bitmap_free() as well. Signed-off-by: Robb Manes Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/mcg.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit c047a1f918af75e572a19ba0581c3e3e202ed698 Author: Andrew Lunn Date: Tue Sep 29 01:50:56 2015 +0200 dsa: mv88e6xxx: Enable forwarding for unknown to the CPU port Frames destined to an unknown address must be forwarded to the CPU port. Otherwise incoming ARP, dhcp leases, etc, do not work. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 2 ++ 1 file changed, 2 insertions(+) commit 178b2d09afc05a46f68b190c6594f3a429bc2385 Author: Fabio Estevam Date: Thu Sep 24 16:18:12 2015 -0300 ARM: dts: imx7d: Fix UART2 base address The UART2 memory space starts at address 0x30890000 (UART2_URXD). Fix it so that UART2 can be used. Signed-off-by: Fabio Estevam Fixes: 949673450291 ("ARM: dts: add imx7d soc dtsi file") Cc: Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4fa9a3f6b616fd9f2555d9d0c04513a942750986 Author: Michael Ellerman Date: Fri Sep 25 12:14:48 2015 +1000 powerpc/ps3: Remove unused os_area_db_id_video_mode This struct is unused, which is now a build error with gcc 6: error: 'os_area_db_id_video_mode' defined but not used There doesn't seem to be any good reason to keep it around so remove it, it's in the history if anyone needs it. Signed-off-by: Michael Ellerman arch/powerpc/platforms/ps3/os-area.c | 5 ----- 1 file changed, 5 deletions(-) commit 31b33dfb0a144469dd805514c9e63f4993729a48 Author: Pravin B Shelar Date: Mon Sep 28 17:24:25 2015 -0700 skbuff: Fix skb checksum partial check. Earlier patch 6ae459bda tried to detect void ckecksum partial skb by comparing pull length to checksum offset. But it does not work for all cases since checksum-offset depends on updates to skb->data. Following patch fixes it by validating checksum start offset after skb-data pointer is updated. Negative value of checksum offset start means there is no need to checksum. Fixes: 6ae459bda ("skbuff: Fix skb checksum flag on skb pull") Reported-by: Andrew Vagin Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller include/linux/skbuff.h | 2 +- net/core/skbuff.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) commit 218c1f76b8b25d6dc9d01443f071cb618e206b0c Author: Dmitry Vyukov Date: Tue Sep 29 15:54:58 2015 -0700 Input: psmouse - fix data race in __ps2_command The data race happens on ps2dev->cmdcnt and ps2dev->cmdbuf contents. __ps2_command reads that data concurrently with the interrupt handler. As the result, for example, if a response arrives just after the timeout, __ps2_command can copy out garbage from ps2dev->cmdbuf but then see that ps2dev->cmdcnt is 0 and return success. Stop the interrupt handler with serio_pause_rx() before reading the results. The data race was found with KernelThreadSanitizer (KTSAN). Signed-off-by: Dmitry Vyukov Signed-off-by: Dmitry Torokhov drivers/input/serio/libps2.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 741a11d9e4103a8e1c590ef1280143fe654e4e33 Author: David Ahern Date: Mon Sep 28 10:12:13 2015 -0700 net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set Wolfgang reported that IPv6 stack is ignoring oif in output route lookups: With ipv6, ip -6 route get always returns the specific route. $ ip -6 r 2001:db8:e2::1 dev enp2s0 proto kernel metric 256 2001:db8:e2::/64 dev enp2s0 metric 1024 2001:db8:e3::1 dev enp3s0 proto kernel metric 256 2001:db8:e3::/64 dev enp3s0 metric 1024 fe80::/64 dev enp3s0 proto kernel metric 256 default via 2001:db8:e3::255 dev enp3s0 metric 1024 $ ip -6 r get 2001:db8:e2::100 2001:db8:e2::100 from :: dev enp2s0 src 2001:db8:e3::1 metric 0 cache $ ip -6 r get 2001:db8:e2::100 oif enp3s0 2001:db8:e2::100 from :: dev enp2s0 src 2001:db8:e3::1 metric 0 cache The stack does consider the oif but a mismatch in rt6_device_match is not considered fatal because RT6_LOOKUP_F_IFACE is not set in the flags. Cc: Wolfgang Nothdurft Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv6/route.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 75c261b51ba19f0791de608f0acfb94956f78c76 Author: Alexander Stein Date: Mon Sep 28 15:05:33 2015 +0200 net sysfs: Print link speed as signed integer Otherwise 4294967295 (MBit/s) (-1) will be printed when there is no link. Documentation/ABI/testing/sysfs-class-net does not state if this shall be signed or unsigned. Also remove the now unused variable fmt_udec. Signed-off-by: Alexander Stein Signed-off-by: David S. Miller net/core/net-sysfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4c52b1da538800a30f030eeb697366c23daf2ef3 Author: Andrzej Hajda Date: Mon Sep 28 10:49:48 2015 +0200 bna: fix error handling Several functions can return negative value in case of error, so their return type should be fixed as well as type of variables to which this value is assigned. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2046107 Signed-off-by: Andrzej Hajda Signed-off-by: David S. Miller drivers/net/ethernet/brocade/bna/bfa_ioc.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 3504bb639ec793c181de6e33a205fc8ca6cf32bf Merge: 2103d6b 9f389e3 Author: David S. Miller Date: Tue Sep 29 13:47:08 2015 -0700 Merge branch 'af_unix_MSG_PEEK' Aaron Conole says: ==================== af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag This patch set implements a bugfix for kernel.org bugzilla #12323, allowing MSG_PEEK to return all queued data on the unix domain socket, not just the data contained in a single SKB. This is the v3 version of this patch, which includes a suggested modification by Eric Dumazet to convert the unix_sk() conversion macro to a static inline function. These patches are independent and can be applied separately. This set was tested over a 24-hour period, utilizing a loop continually executing the bugzilla issue attached python code. It was instrumented with a pr_err_once() ([ 13.798683] unix: went there at least one time). v2->v3: - Added Eric Dumazet's suggestion for #define to static inline - Fixed an issue calling unix_state_lock() with an invalid argument v3->v4: - Eliminated an XXX comment - Changed from goto unlock to explicit unix_state_unlock() and break ==================== Signed-off-by: David S. Miller commit 9f389e35674f5b086edd70ed524ca0f287259725 Author: Aaron Conole Date: Sat Sep 26 18:50:43 2015 -0400 af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag AF_UNIX sockets now return multiple skbs from recv() when MSG_PEEK flag is set. This is referenced in kernel bugzilla #12323 @ https://bugzilla.kernel.org/show_bug.cgi?id=12323 As described both in the BZ and lkml thread @ http://lkml.org/lkml/2008/1/8/444 calling recv() with MSG_PEEK on an AF_UNIX socket only reads a single skb, where the desired effect is to return as much skb data has been queued, until hitting the recv buffer size (whichever comes first). The modified MSG_PEEK path will now move to the next skb in the tree and jump to the again: label, rather than following the natural loop structure. This requires duplicating some of the loop head actions. This was tested using the python socketpair python code attached to the bugzilla issue. Signed-off-by: Aaron Conole Signed-off-by: David S. Miller net/unix/af_unix.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 4613012db1d911f80897f9446a49de817b2c4c47 Author: Aaron Conole Date: Sat Sep 26 18:50:42 2015 -0400 af_unix: Convert the unix_sk macro to an inline function for type safety As suggested by Eric Dumazet this change replaces the #define with a static inline function to enjoy complaints by the compiler when misusing the API. Signed-off-by: Aaron Conole Signed-off-by: David S. Miller include/net/af_unix.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 74b3112e95073b351e3b0b9799795bc76f8415fa Author: Alex Deucher Date: Tue Sep 29 13:53:30 2015 -0400 drm/amdgpu: Restore LCD backlight level on resume Instead of only enabling the backlight (which seems to set it to max brightness), just re-set the current backlight level, which also takes care of enabling the backlight if necessary. Port of radeon commit: drm/radeon: Restore LCD backlight level on resume (>= R5xx) Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4281f46ef839050d2ef60348f661eb463c21cc2e Author: Michel Dänzer Date: Mon Sep 28 18:16:31 2015 +0900 drm/radeon: Restore LCD backlight level on resume (>= R5xx) Instead of only enabling the backlight (which seems to set it to max brightness), just re-set the current backlight level, which also takes care of enabling the backlight if necessary. Only the radeon_atom_encoder_dpms_dig part tested on a Kaveri laptop, the radeon_atom_encoder_dpms_avivo part is only compile tested. Cc: stable@vger.kernel.org Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/atombios_encoders.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 54313503f9a3c34a9e45aad7654976b7f50b9ae7 Author: Dan Carpenter Date: Fri Sep 25 14:36:55 2015 +0300 drm/amdgpu: signedness bug in amdgpu_cs_parser_init() The "i" variable should be signed or it leads to a crash in the error handling code. Fixes: 1d263474c441 ('drm/amdgpu: unwind properly in amdgpu_cs_parser_init()') Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 60de074ba1e8f327db19bc33d8530131ac01695d Author: Akinobu Mita Date: Sun Sep 27 02:09:25 2015 +0900 blk-mq: fix deadlock when reading cpu_list CPU hotplug handling for blk-mq (blk_mq_queue_reinit) acquires all_q_mutex in blk_mq_queue_reinit_notify() and then removes sysfs entries by blk_mq_sysfs_unregister(). Removing sysfs entry needs to be blocked until the active reference of the kernfs_node to be zero. On the other hand, reading blk_mq_hw_sysfs_cpu sysfs entry (e.g. /sys/block/nullb0/mq/0/cpu_list) acquires all_q_mutex in blk_mq_hw_sysfs_cpus_show(). If these happen at the same time, a deadlock can happen. Because one can wait for the active reference to be zero with holding all_q_mutex, and the other tries to acquire all_q_mutex with holding the active reference. The reason that all_q_mutex is acquired in blk_mq_hw_sysfs_cpus_show() is to avoid reading an imcomplete hctx->cpumask. Since reading sysfs entry for blk-mq needs to acquire q->sysfs_lock, we can avoid deadlock and reading an imcomplete hctx->cpumask by protecting q->sysfs_lock while hctx->cpumask is being updated. Signed-off-by: Akinobu Mita Reviewed-by: Ming Lei Cc: Ming Lei Cc: Wanpeng Li Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq-sysfs.c | 4 ---- block/blk-mq.c | 7 +++++++ 2 files changed, 7 insertions(+), 4 deletions(-) commit 5778322e67ed34dc9f391a4a5cbcbb856071ceba Author: Akinobu Mita Date: Sun Sep 27 02:09:23 2015 +0900 blk-mq: avoid inserting requests before establishing new mapping Notifier callbacks for CPU_ONLINE action can be run on the other CPU than the CPU which was just onlined. So it is possible for the process running on the just onlined CPU to insert request and run hw queue before establishing new mapping which is done by blk_mq_queue_reinit_notify(). This can cause a problem when the CPU has just been onlined first time since the request queue was initialized. At this time ctx->index_hw for the CPU, which is the index in hctx->ctxs[] for this ctx, is still zero before blk_mq_queue_reinit_notify() is called by notifier callbacks for CPU_ONLINE action. For example, there is a single hw queue (hctx) and two CPU queues (ctx0 for CPU0, and ctx1 for CPU1). Now CPU1 is just onlined and a request is inserted into ctx1->rq_list and set bit0 in pending bitmap as ctx1->index_hw is still zero. And then while running hw queue, flush_busy_ctxs() finds bit0 is set in pending bitmap and tries to retrieve requests in hctx->ctxs[0]->rq_list. But htx->ctxs[0] is a pointer to ctx0, so the request in ctx1->rq_list is ignored. Fix it by ensuring that new mapping is established before onlined cpu starts running. Signed-off-by: Akinobu Mita Reviewed-by: Ming Lei Cc: Jens Axboe Cc: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq-cpumap.c | 9 ++++---- block/blk-mq.c | 59 +++++++++++++++++++++++++++++++++++++++------------ block/blk-mq.h | 3 ++- 3 files changed, 52 insertions(+), 19 deletions(-) commit 0e6263682014d480b8d7b8c10287f4536066b54f Author: Akinobu Mita Date: Sun Sep 27 02:09:22 2015 +0900 blk-mq: fix q->mq_usage_counter access race CPU hotplug handling for blk-mq (blk_mq_queue_reinit) accesses q->mq_usage_counter while freezing all request queues in all_q_list. On the other hand, q->mq_usage_counter is deinitialized in blk_mq_free_queue() before deleting the queue from all_q_list. So if CPU hotplug event occurs in the window, percpu_ref_kill() is called with q->mq_usage_counter which has already been marked dead, and it triggers warning. Fix it by deleting the queue from all_q_list earlier than destroying q->mq_usage_counter. Signed-off-by: Akinobu Mita Reviewed-by: Ming Lei Cc: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit a723bab3d7529133f71fc8a5e96f86e3639a0d13 Author: Akinobu Mita Date: Sun Sep 27 02:09:21 2015 +0900 blk-mq: Fix use after of free q->mq_map CPU hotplug handling for blk-mq (blk_mq_queue_reinit) updates q->mq_map by blk_mq_update_queue_map() for all request queues in all_q_list. On the other hand, q->mq_map is released before deleting the queue from all_q_list. So if CPU hotplug event occurs in the window, invalid memory access can happen. Fix it by releasing q->mq_map in blk_mq_release() to make it happen latter than removal from all_q_list. Signed-off-by: Akinobu Mita Suggested-by: Ming Lei Reviewed-by: Ming Lei Cc: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 4593fdbe7a2f44d5e64c627c715dd0bcec9bdf14 Author: Akinobu Mita Date: Sun Sep 27 02:09:20 2015 +0900 blk-mq: fix sysfs registration/unregistration race There is a race between cpu hotplug handling and adding/deleting gendisk for blk-mq, where both are trying to register and unregister the same sysfs entries. null_add_dev --> blk_mq_init_queue --> blk_mq_init_allocated_queue --> add to 'all_q_list' (*) --> add_disk --> blk_register_queue --> blk_mq_register_disk (++) null_del_dev --> del_gendisk --> blk_unregister_queue --> blk_mq_unregister_disk (--) --> blk_cleanup_queue --> blk_mq_free_queue --> del from 'all_q_list' (*) blk_mq_queue_reinit --> blk_mq_sysfs_unregister (-) --> blk_mq_sysfs_register (+) While the request queue is added to 'all_q_list' (*), blk_mq_queue_reinit() can be called for the queue anytime by CPU hotplug callback. But blk_mq_sysfs_unregister (-) and blk_mq_sysfs_register (+) in blk_mq_queue_reinit must not be called before blk_mq_register_disk (++) and after blk_mq_unregister_disk (--) is finished. Because '/sys/block/*/mq/' is not exists. There has already been BLK_MQ_F_SYSFS_UP flag in hctx->flags which can be used to track these sysfs stuff, but it is only fixing this issue partially. In order to fix it completely, we just need per-queue flag instead of per-hctx flag with appropriate locking. So this introduces q->mq_sysfs_init_done which is properly protected with all_q_mutex. Also, we need to ensure that blk_mq_map_swqueue() is called with all_q_mutex is held. Since hctx->nr_ctx is reset temporarily and updated in blk_mq_map_swqueue(), so we should avoid blk_mq_register_hctx() seeing the temporary hctx->nr_ctx value in CPU hotplug handling or adding/deleting gendisk . Signed-off-by: Akinobu Mita Reviewed-by: Ming Lei Cc: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq-sysfs.c | 30 ++++++++++++++++++++++-------- block/blk-mq.c | 6 +++--- include/linux/blk-mq.h | 1 - include/linux/blkdev.h | 2 ++ 4 files changed, 27 insertions(+), 12 deletions(-) commit 1356aae08338f1c19ce1c67bf8c543a267688fc3 Author: Akinobu Mita Date: Sun Sep 27 02:09:19 2015 +0900 blk-mq: avoid setting hctx->tags->cpumask before allocation When unmapped hw queue is remapped after CPU topology is changed, hctx->tags->cpumask has to be set after hctx->tags is setup in blk_mq_map_swqueue(), otherwise it causes null pointer dereference. Fixes: f26cdc8536 ("blk-mq: Shared tag enhancements") Signed-off-by: Akinobu Mita Cc: Keith Busch Cc: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-mq.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c91aed9896946721bb30705ea2904edb3725dd61 Author: Steve Wise Date: Mon Sep 28 16:46:06 2015 -0500 svcrdma: handle rdma read with a non-zero initial page offset The server rdma_read_chunk_lcl() and rdma_read_chunk_frmr() functions were not taking into account the initial page_offset when determining the rdma read length. This resulted in a read who's starting address and length exceeded the base/bounds of the frmr. The server gets an async error from the rdma device and kills the connection, and the client then reconnects and resends. This repeats indefinitely, and the application hangs. Most work loads don't tickle this bug apparently, but one test hit it every time: building the linux kernel on a 16 core node with 'make -j 16 O=/mnt/0' where /mnt/0 is a ramdisk mounted via NFSRDMA. This bug seems to only be tripped with devices having small fastreg page list depths. I didn't see it with mlx4, for instance. Fixes: 0bf4828983df ('svcrdma: refactor marshalling logic') Signed-off-by: Steve Wise Tested-by: Chuck Lever Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b7b01d345b83602a42b6ff02cacb9d9ada5ecd0a Author: Benoît Thébaudeau Date: Tue Sep 29 17:59:14 2015 +0200 ASoC: imx-ssi: Fix DAI hardware signal inversions SND_SOC_DAIFMT_{IB|NB}_{IF|NF} are defined as inverting or not BCLK or FRM relatively to what is standard for the specified DAI hardware audio format. Consequently, the absolute polarities of these signals cannot be derived only from these settings as this driver did. The format has to be taken into account too. This fixes inverted left/right channels in I²S mode. Signed-off-by: Benoît Thébaudeau Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/imx-ssi.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit eb8d0ac4afd8b15ac88f8a50342b32774ff881ed Author: Geert Uytterhoeven Date: Mon Sep 28 15:28:03 2015 +0200 spi: sh-msiof: Match renesas,rx-fifo-size in DT bindings doc with driver Commit fe78d0b7691c0274 ("spi: sh-msiof: Fix FIFO size to 64 word from 256 word") changed the default RX FIFO size on R-Car Gen2 SoCs in the driver code, but forgot to update the DT bindings documentation. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/sh-msiof.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b3600b4ba0810c84437cf76556d9afbd55c1bfc Author: Chen-Yu Tsai Date: Sat Sep 26 21:21:12 2015 +0800 regulator: axp20x: Fix enable bit indexes for DCDC4 and DCDC5 The enable bit indexes for DCDC4 and DCDC5 regulators are off by 1. We haven't run into any problems with this since either the regulators aren't defined in the DT and aren't used, or all the DCDC regulators have the "always-on" property set, as they are almost always used for system critical loads. 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 fb97d75b038659998257f7dd767d8229dce50b74 Author: Gianluca Renzi Date: Fri Sep 25 21:33:42 2015 +0200 ASoC: sgtl5000: fix error message output for MicBias voltage Cc: Liam Girdwood Cc: Takashi Iwai Cc: Fabio Estevam Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Gianluca Renzi Signed-off-by: Mark Brown sound/soc/codecs/sgtl5000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 499f3aa4323775d5320bdf7ccc26576c54a54169 Author: Sudip Mukherjee Date: Fri Sep 18 16:27:07 2015 +0530 iommu/vt-d: Fix memory leak in dmar_insert_one_dev_info() We are returning NULL if we are not able to attach the iommu to the domain but while returning we missed freeing info. Signed-off-by: Sudip Mukherjee Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 1 + 1 file changed, 1 insertion(+) commit adc0b7fbf6fe9967505c0254d9535ec7288186ae Author: Christian Borntraeger Date: Mon Sep 28 22:47:42 2015 +0200 s390/boot/decompression: disable floating point in decompressor my gcc 5.1 used an ldgr instruction with a register != 0,2,4,6 for spilling/filling into a floating point register in our decompressor. This will cause an AFP-register data exception as the decompressor did not setup the additional floating point registers via cr0. That causes a program check loop that looked like a hang with one "Uncompressing Linux... " message (directly booted via kvm) or a loop of "Uncompressing Linux... " messages (when booted via zipl boot loader). The offending code in my build was 48e400: e3 c0 af ff ff 71 lay %r12,-1(%r10) -->48e406: b3 c1 00 1c ldgr %f1,%r12 48e40a: ec 6c 01 22 02 7f clij %r6,2,12,0x48e64e but gcc could do spilling into an fpr at any function. We can simply disable floating point support at that early stage. Signed-off-by: Christian Borntraeger Acked-by: Heiko Carstens Cc: stable@vger.kernel.org arch/s390/boot/compressed/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdf7344e14d826d0df438a55fc51146d179e198d Author: Daniel Lezcano Date: Sun Sep 20 07:00:35 2015 -0700 clocksource/drivers/keystone: Fix bad NO_IRQ usage The current code assumes the 'irq_of_parse_and_map' will return NO_IRQ in case of failure. Unfortunately, the NO_IRQ is not consistent across the different architectures and we must not rely on it. NO_IRQ is equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in case of an error. Hence, the latter won't be detected and will lead to a crash. Fix this by just checking 'irq' is different from zero. Signed-off-by: Daniel Lezcano drivers/clocksource/timer-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccc42592d436d021d17f86729d24806f30dbad25 Author: Daniel Lezcano Date: Sun Sep 20 07:00:10 2015 -0700 clocksource/drivers/rockchip: Fix bad NO_IRQ usage The current code assumes the 'irq_of_parse_and_map' will return NO_IRQ in case of failure. Unfortunately, the NO_IRQ is not consistent across the different architectures and we must not rely on it. NO_IRQ is equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in case of an error. Hence, the latter won't be detected and will lead to a crash. Fix this by just checking 'irq' is different from zero. Signed-off-by: Daniel Lezcano drivers/clocksource/rockchip_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c7feb2ebfc9c0552c51f0c050db1d1a004faac5 Author: shengyong Date: Mon Sep 28 17:57:19 2015 +0000 UBI: return ENOSPC if no enough space available UBI: attaching mtd1 to ubi0 UBI: scanning is finished UBI error: init_volumes: not enough PEBs, required 706, available 686 UBI error: ubi_wl_init: no enough physical eraseblocks (-20, need 1) UBI error: ubi_attach_mtd_dev: failed to attach mtd1, error -12 <= NOT ENOMEM UBI error: ubi_init: cannot attach mtd1 If available PEBs are not enough when initializing volumes, return -ENOSPC directly. If available PEBs are not enough when initializing WL, return -ENOSPC instead of -ENOMEM. Cc: stable@vger.kernel.org Signed-off-by: Sheng Yong Signed-off-by: Richard Weinberger Reviewed-by: David Gstir drivers/mtd/ubi/vtbl.c | 1 + drivers/mtd/ubi/wl.c | 1 + 2 files changed, 2 insertions(+) commit 281fda27673f833a01d516658a64d22a32c8e072 Author: Richard Weinberger Date: Tue Sep 22 23:58:07 2015 +0200 UBI: Validate data_size Make sure that data_size is less than LEB size. Otherwise a handcrafted UBI image is able to trigger an out of bounds memory access in ubi_compare_lebs(). Cc: stable@vger.kernel.org Signed-off-by: Richard Weinberger Reviewed-by: David Gstir drivers/mtd/ubi/io.c | 5 +++++ 1 file changed, 5 insertions(+) commit cf6f54e3f133229f02a90c04fe0ff9dd9d3264b4 Author: Richard Weinberger Date: Wed Jul 8 11:46:36 2015 +0200 UBIFS: Kill unneeded locking in ubifs_init_security Fixes the following lockdep splat: [ 1.244527] ============================================= [ 1.245193] [ INFO: possible recursive locking detected ] [ 1.245193] 4.2.0-rc1+ #37 Not tainted [ 1.245193] --------------------------------------------- [ 1.245193] cp/742 is trying to acquire lock: [ 1.245193] (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [] ubifs_init_security+0x29/0xb0 [ 1.245193] [ 1.245193] but task is already holding lock: [ 1.245193] (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [] path_openat+0x3af/0x1280 [ 1.245193] [ 1.245193] other info that might help us debug this: [ 1.245193] Possible unsafe locking scenario: [ 1.245193] [ 1.245193] CPU0 [ 1.245193] ---- [ 1.245193] lock(&sb->s_type->i_mutex_key#9); [ 1.245193] lock(&sb->s_type->i_mutex_key#9); [ 1.245193] [ 1.245193] *** DEADLOCK *** [ 1.245193] [ 1.245193] May be due to missing lock nesting notation [ 1.245193] [ 1.245193] 2 locks held by cp/742: [ 1.245193] #0: (sb_writers#5){.+.+.+}, at: [] mnt_want_write+0x1f/0x50 [ 1.245193] #1: (&sb->s_type->i_mutex_key#9){+.+.+.}, at: [] path_openat+0x3af/0x1280 [ 1.245193] [ 1.245193] stack backtrace: [ 1.245193] CPU: 2 PID: 742 Comm: cp Not tainted 4.2.0-rc1+ #37 [ 1.245193] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140816_022509-build35 04/01/2014 [ 1.245193] ffffffff8252d530 ffff88007b023a38 ffffffff814f6f49 ffffffff810b56c5 [ 1.245193] ffff88007c30cc80 ffff88007b023af8 ffffffff810a150d ffff88007b023a68 [ 1.245193] 000000008101302a ffff880000000000 00000008f447e23f ffffffff8252d500 [ 1.245193] Call Trace: [ 1.245193] [] dump_stack+0x4c/0x65 [ 1.245193] [] ? console_unlock+0x1c5/0x510 [ 1.245193] [] __lock_acquire+0x1a6d/0x1ea0 [ 1.245193] [] ? __lock_is_held+0x58/0x80 [ 1.245193] [] lock_acquire+0xd3/0x270 [ 1.245193] [] ? ubifs_init_security+0x29/0xb0 [ 1.245193] [] mutex_lock_nested+0x6b/0x3a0 [ 1.245193] [] ? ubifs_init_security+0x29/0xb0 [ 1.245193] [] ? ubifs_init_security+0x29/0xb0 [ 1.245193] [] ubifs_init_security+0x29/0xb0 [ 1.245193] [] ubifs_create+0xa6/0x1f0 [ 1.245193] [] ? path_openat+0x3af/0x1280 [ 1.245193] [] vfs_create+0x95/0xc0 [ 1.245193] [] path_openat+0x7cc/0x1280 [ 1.245193] [] ? __lock_acquire+0x543/0x1ea0 [ 1.245193] [] ? sched_clock_cpu+0x90/0xc0 [ 1.245193] [] ? calc_global_load_tick+0x60/0x90 [ 1.245193] [] ? sched_clock_cpu+0x90/0xc0 [ 1.245193] [] ? __alloc_fd+0xaf/0x180 [ 1.245193] [] do_filp_open+0x75/0xd0 [ 1.245193] [] ? _raw_spin_unlock+0x26/0x40 [ 1.245193] [] ? __alloc_fd+0xaf/0x180 [ 1.245193] [] do_sys_open+0x129/0x200 [ 1.245193] [] SyS_open+0x19/0x20 [ 1.245193] [] entry_SYSCALL_64_fastpath+0x12/0x6f While the lockdep splat is a false positive, becuase path_openat holds i_mutex of the parent directory and ubifs_init_security() tries to acquire i_mutex of a new inode, it reveals that taking i_mutex in ubifs_init_security() is in vain because it is only being called in the inode allocation path and therefore nobody else can see the inode yet. Cc: stable@vger.kernel.org # 3.20- Reported-and-tested-by: Boris Brezillon Reviewed-and-tested-by: Dongsheng Yang Signed-off-by: Richard Weinberger Signed-off-by: dedekind1@gmail.com fs/ubifs/xattr.c | 3 --- 1 file changed, 3 deletions(-) commit 6b98f2bec580c0d8329c547d692ad6c9b927da3e Author: Michael Ellerman Date: Tue Sep 29 20:14:41 2015 +1000 powerpc/configs: Re-enable CONFIG_SCSI_DH Commit 086b91d052eb ("scsi_dh: integrate into the core SCSI code") changed CONFIG_SCSI_DH from tristate to bool. Our defconfigs have CONFIG_SCSI_DH=m, which the kconfig machinery warns us is invalid, but instead of converting it to =y it leaves it unset. This means we loose the CONFIG_SCSI_DH code and everything that depends on it. So convert the values in the defconfigs to =y. Fixes: 086b91d052eb ("scsi_dh: integrate into the core SCSI code") Signed-off-by: Michael Ellerman arch/powerpc/configs/ppc64_defconfig | 2 +- arch/powerpc/configs/pseries_defconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit fd546ee6a7dc4b71ebc6d1205bf72ea3c1c7030a Author: Robert Jarzmik Date: Sat Sep 26 21:41:01 2015 +0200 mmc: pxamci: fix card detect with slot-gpio API Move pxamci to mmc slot-gpio API to fix interrupt request. It fixes the case where the card detection is on a gpio expander, on I2C for example on zylonite board. In this case, the card detect netsted interrupt is called from a threaded interrupt. The request_irq() fails, because a hard irq cannot be a nested interrupt from a threaded interrupt (set __setup_irq()). This was tested on zylonite and mioa701 boards. Signed-off-by: Robert Jarzmik Cc: Petr Cvek Signed-off-by: Ulf Hansson drivers/mmc/host/pxamci.c | 66 ++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 44 deletions(-) commit 51424b2860670ec20e1dd5177fe70ab4b6fd7a5b Author: Hans de Goede Date: Wed Sep 23 22:06:48 2015 +0200 mmc: sunxi: Fix clk-delay settings In recent allwinner kernel sources the mmc clk-delay settings have been slightly tweaked, and for sun9i they are completely different then what we are using. This commit brings us in sync with what allwinner does, fixing problems accessing sdcards on some A33 devices (and likely others). For pre sun9i hardware this makes the following changes: -At 400Khz change the sample delay from 7 to 0 (introduced in A31 sdk) -At 50 Mhz change the sample delay from 5 to 4 (introduced in A23 sdk) This also drops the clk-delay calculation for clocks > 50 MHz, we do not need this as we've: mmc->f_max = 50000000, and the delays in the old code were not correct (at 100 MHz the delay must be a multiple of 60, at 200 MHz a multiple of 120). Signed-off-by: Hans de Goede Signed-off-by: Ulf Hansson drivers/mmc/host/sunxi-mmc.c | 53 ++++++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 14 deletions(-) commit 43934ece2ea72c1dd279c0b0478c1a036d5d77ee Author: Ulf Hansson Date: Mon Sep 14 12:18:55 2015 +0200 mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset When CONFIG_GPIOLIB is unset, its stubs will return -ENOSYS. That means when the mmc core parses DT for CD/WP GPIOs via mmc_of_parse(), -ENOSYS becomes propagated to the caller. Typically this means that the mmc host driver fails to probe. As the CD/WP GPIOs are already treated as optional, let's extend that to cover the case when CONFIG_GPIOLIB is unset. Reported-by: Michal Simek Fixes: 16b23787fc70 ("mmc: sdhci-of-arasan: Call OF parsing for MMC") Signed-off-by: Ulf Hansson Tested-by: Michal Simek Acked-by: Venu Byravarasu drivers/mmc/core/host.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4e077237cfb6ab13701d504060d3ae248b191e6e Author: Michael Rossberg Date: Tue Sep 29 11:25:08 2015 +0200 xfrm: Fix state threshold configuration from userspace Allow to change the replay threshold (XFRMA_REPLAY_THRESH) and expiry timer (XFRMA_ETIMER_THRESH) of a state without having to set other attributes like replay counter and byte lifetime. Changing these other values while traffic flows will break the state. Signed-off-by: Michael Rossberg Signed-off-by: Steffen Klassert net/xfrm/xfrm_user.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0266715155379820c5c626e2cd4b8c91751036bc Merge: 3225031 283e8ba Author: James Morris Date: Tue Sep 29 19:19:09 2015 +1000 Merge tag 'keys-fixes-20150925' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into for-linus Keyrings fixes from David Howells, for current Linus. commit c7d2ecd9f64c351cb4d551f1f472d0fc09c3cae8 Author: Joonyoung Shim Date: Wed Sep 23 16:41:55 2015 +0900 ARM: dts: Fix wrong clock binding for sysmmu_fimd1_1 on exynos5420 The sysmmu_fimd1_1 should bind the clock CLK_SMMU_FIMD1M1, not the clock CLK_SMMU_FIMD1M0. CLK_SMMU_FIMD1M0 is a clock for the sysmmu_fimd1_0. This wrong clock binding causes the problem that is blocked in iommu_map function when IOMMU is enabled and exynos-drm driver tries to allocate buffer via DMA mapping API on Odroid-XU3 board. Fixes: b70045167815 ("ARM: dts: add sysmmu nodes for exynos5420") Signed-off-by: Joonyoung Shim Cc: # v4.2 Reviewed-by: Javier Martinez Canillas Acked-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5420.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f404e7a730c59f58bc1e9a3142cfdf7ec2d29f3d Author: Yadwinder Singh Brar Date: Sun Aug 23 13:59:48 2015 +0900 ARM: dts: Fix bootup thermal issue on smdk5250 With default config on smdk5250 latest tree throws below message: [ 2.226049] thermal thermal_zone0: critical temperature reached(224 C),shutting down [ 2.227840] reboot: Failed to start orderly shutdown: forcing the issue and hangs randomly because it reads wrong temperature value. I can't figure out any direct relation between LDO10 and TMU from board schematics which I have. So making LDO10 always-on to fix issue for now. Signed-off-by: Yadwinder Singh Brar [pankaj.dubey: resubmitted after rebasing to latest kgene tree] Signed-off-by: Pankaj Dubey Tested-by: Pankaj Dubey Signed-off-by: Krzysztof Kozlowski arch/arm/boot/dts/exynos5250-smdk5250.dts | 1 + 1 file changed, 1 insertion(+) commit 2103d6b818fcdae15ffa04cf385f770e6c3892c3 Author: Denys Vlasenko Date: Mon Sep 28 14:34:04 2015 +0200 net: sctp: Don't use 64 kilobyte lookup table for four elements Seemingly innocuous sctp_trans_state_to_prio_map[] array is way bigger than it looks, since "[SCTP_UNKNOWN] = 2" expands into "[0xffff] = 2" ! This patch replaces it with switch() statement. Signed-off-by: Denys Vlasenko CC: Vlad Yasevich CC: Neil Horman CC: Marcelo Ricardo Leitner CC: linux-sctp@vger.kernel.org CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Acked-by: Marcelo Ricardo Leitner Acked-by: Neil Horman Signed-off-by: David S. Miller net/sctp/associola.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 06a15f51cf3618e32a73871ee6a547ef7fd902b5 Author: Alexander Couzens Date: Mon Sep 28 11:32:42 2015 +0200 l2tp: protect tunnel->del_work by ref_count There is a small chance that tunnel_free() is called before tunnel->del_work scheduled resulting in a zero pointer dereference. Signed-off-by: Alexander Couzens Acked-by: James Chapman Signed-off-by: David S. Miller net/l2tp/l2tp_core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 661dfc65f7981481ba2e31aaa702371e82336e56 Author: Ivan Mikhaylov Date: Fri Sep 25 11:52:27 2015 +0400 net/ibm/emac: bump version numbers for correct work with ethtool The size of the MAC register dump used to be the size specified by the reg property in the device tree. Userland has no good way of finding out that size, and it was not specified consistently for each MAC type, so ethtool would end up printing junk at the end of the register dump if the device tree didn't match the size it assumed. Using the new version numbers indicates unambiguously that the size of the MAC register dump is dependent only on the MAC type. Fixes: 5369c71f7ca2 ("net/ibm/emac: fix size of emac dump memory areas") Signed-off-by: Ivan Mikhaylov Signed-off-by: David S. Miller drivers/net/ethernet/ibm/emac/core.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 51359bfc5b7111cada4d10e71b4dcdd1085e1a8f Merge: 43ae93a 635682a Author: David S. Miller Date: Mon Sep 28 21:03:40 2015 -0700 Merge branch 'sctp-accept-deadlock' Karl Heiss says: ==================== sctp: Fix SCTP deadlock These patches fix a deadlock during accept() of an SCTP connection. The first patch fixes whitespace issues. The second patch actually fixes the deadlock race. ==================== Signed-off-by: David S. Miller commit 635682a14427d241bab7bbdeebb48a7d7b91638e Author: Karl Heiss Date: Thu Sep 24 12:15:07 2015 -0400 sctp: Prevent soft lockup when sctp_accept() is called during a timeout event A case can occur when sctp_accept() is called by the user during a heartbeat timeout event after the 4-way handshake. Since sctp_assoc_migrate() changes both assoc->base.sk and assoc->ep, the bh_sock_lock in sctp_generate_heartbeat_event() will be taken with the listening socket but released with the new association socket. The result is a deadlock on any future attempts to take the listening socket lock. Note that this race can occur with other SCTP timeouts that take the bh_lock_sock() in the event sctp_accept() is called. BUG: soft lockup - CPU#9 stuck for 67s! [swapper:0] ... RIP: 0010:[] [] _spin_lock+0x1e/0x30 RSP: 0018:ffff880028323b20 EFLAGS: 00000206 RAX: 0000000000000002 RBX: ffff880028323b20 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff880028323be0 RDI: ffff8804632c4b48 RBP: ffffffff8100bb93 R08: 0000000000000000 R09: 0000000000000000 R10: ffff880610662280 R11: 0000000000000100 R12: ffff880028323aa0 R13: ffff8804383c3880 R14: ffff880028323a90 R15: ffffffff81534225 FS: 0000000000000000(0000) GS:ffff880028320000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 00000000006df528 CR3: 0000000001a85000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process swapper (pid: 0, threadinfo ffff880616b70000, task ffff880616b6cab0) Stack: ffff880028323c40 ffffffffa01c2582 ffff880614cfb020 0000000000000000 0100000000000000 00000014383a6c44 ffff8804383c3880 ffff880614e93c00 ffff880614e93c00 0000000000000000 ffff8804632c4b00 ffff8804383c38b8 Call Trace: [] ? sctp_rcv+0x492/0xa10 [sctp] [] ? nf_iterate+0x69/0xb0 [] ? ip_local_deliver_finish+0x0/0x2d0 [] ? nf_hook_slow+0x76/0x120 [] ? ip_local_deliver_finish+0x0/0x2d0 [] ? ip_local_deliver_finish+0xdd/0x2d0 [] ? ip_local_deliver+0x98/0xa0 [] ? ip_rcv_finish+0x12d/0x440 [] ? ip_rcv+0x275/0x350 [] ? __netif_receive_skb+0x4ab/0x750 ... With lockdep debugging: ===================================== [ BUG: bad unlock balance detected! ] ------------------------------------- CslRx/12087 is trying to release lock (slock-AF_INET) at: [] sctp_generate_timeout_event+0x40/0xe0 [sctp] but there are no more locks to release! other info that might help us debug this: 2 locks held by CslRx/12087: #0: (&asoc->timers[i]){+.-...}, at: [] run_timer_softirq+0x16f/0x3e0 #1: (slock-AF_INET){+.-...}, at: [] sctp_generate_timeout_event+0x23/0xe0 [sctp] Ensure the socket taken is also the same one that is released by saving a copy of the socket before entering the timeout event critical section. Signed-off-by: Karl Heiss Signed-off-by: David S. Miller net/sctp/sm_sideeffect.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) commit f05940e61845951517eda02a28ccc091888aaab9 Author: Karl Heiss Date: Thu Sep 24 12:15:06 2015 -0400 sctp: Whitespace fix Fix indentation in sctp_generate_heartbeat_event. Signed-off-by: Karl Heiss Signed-off-by: David S. Miller net/sctp/sm_sideeffect.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43ae93a93e8c95c5e6389dc8e11704712b1ab2e9 Author: Mitch Williams Date: Mon Sep 28 17:31:26 2015 -0700 i40e/i40evf: check for stopped admin queue It's possible that while we are waiting for the spinlock, another entity (that owns the spinlock) has shut down the admin queue. If we then attempt to use the queue, we will panic. Add a check for this condition on the receive side. This matches an existing check on the send queue side. Signed-off-by: Mitch Williams Acked-by: Jesse Brandeburg Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_adminq.c | 9 +++++++++ drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 9 +++++++++ 2 files changed, 18 insertions(+) commit c4bbac3913c0d649898a0d767728a585869a7d7d Author: Jesse Brandeburg Date: Mon Sep 28 11:21:48 2015 -0700 i40e: fix VLAN inside VXLAN Previously to this patch, the hardware was removing VLAN tags from the inner header of VXLAN packets. The hardware configuration can be changed to leave the packet alone since that is what the linux stack expects for this type of VLAN in VXLAN packet. Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher Signed-off-by: David S. Miller drivers/net/ethernet/intel/i40e/i40e_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 56e86dd4bbeb66a7ad67e20fa045c6f51b4da571 Author: Geert Uytterhoeven Date: Thu Aug 20 01:25:20 2015 +0000 ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain for sound 797a0626e08c ("ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain") added CPG/MSTP clock-cells domain support, but it was missing sound support. This patch adds it. Signed-off-by: Geert Uytterhoeven Tested-by: Kuninori Morimoto [horms: updated commit id referred to in changelog] Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 1 + 1 file changed, 1 insertion(+) commit 6507c4efd2ca4a3dccedbc5b4724f9faabf97fca Author: Geert Uytterhoeven Date: Thu Aug 20 01:24:44 2015 +0000 ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain for sound 484adb005886 ("ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain") added CPG/MSTP clock-cells domain support, but it was missing sound support. This patch adds it. Signed-off-by: Geert Uytterhoeven Tested-by: Kuninori Morimoto [horms: Updated commit id referred to in changelog] Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 1 + 1 file changed, 1 insertion(+) commit 22ef28b43f2c70edf5618918a49cbda84795c0a5 Author: duson Date: Mon Sep 28 17:17:01 2015 -0700 Input: elan_i2c - add all valid ic type for i2c/smbus Signed-off-by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit d3b367bc26ea2e07a83fe73f0ccbddd729cb1f9a Author: Andrew Morton Date: Mon Sep 28 16:38:07 2015 -0700 Input: zhenhua - ensure we have BITREVERSE It uses bitrev8(), so it must ensure that lib/bitrev.o gets included in vmlinux. Signed-off-by: Andrew Morton Signed-off-by: Dmitry Torokhov drivers/input/joystick/Kconfig | 1 + 1 file changed, 1 insertion(+) commit a73b4db2a23f0bf9f98b0cb59fb1b8da26959be3 Author: Suzuki K. Poulose Date: Mon Sep 28 15:57:24 2015 +0100 arm-cci500: Don't enable PMU driver by default Disable building CCI-500 PMU driver by default. Reported-by: Russell King Cc: Punit Agrawal Cc: Mark Rutland Cc: arm@kernel.org Signed-off-by: Suzuki K. Poulose Signed-off-by: Olof Johansson drivers/bus/Kconfig | 1 - 1 file changed, 1 deletion(-) commit cb311494bbf08c531c4d019513f0999ea2a251f2 Merge: 9ffecb1 0af8221 Author: Olof Johansson Date: Mon Sep 28 16:30:19 2015 -0700 Merge tag 'imx-fixes-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes The i.MX fixes for 4.3: - One fix for i.MX6 Rex Pro board to remove a duplicated pinctrl entry which causes error for USB pinctrl setup. - Fix MC34708 PMIC interrupt level for imx53-qsrb board. * tag 'imx-fixes-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: fix usb pin control for imx-rex dts ARM: imx53: qsrb: fix PMIC interrupt level ARM: imx53: include IRQ dt-bindings header Signed-off-by: Olof Johansson commit d79bdc7f004404204a6ac07785f8d6717070ecdb Author: Sudip Mukherjee Date: Mon Sep 28 15:59:22 2015 -0700 Input: omap4-keypad - fix memory leak If omap4_keypad_parse_dt() fails we returned the error code but we missed releasing keypad_data. Signed-off-by: Sudip Mukherjee Signed-off-by: Dmitry Torokhov drivers/input/keyboard/omap4-keypad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 64c98e7f49100b637cd20a6c63508caed6bbba7a Author: Malcolm Crossley Date: Mon Sep 28 11:36:52 2015 +0100 x86/xen: Do not clip xen_e820_map to xen_e820_map_entries when sanitizing map Sanitizing the e820 map may produce extra E820 entries which would result in the topmost E820 entries being removed. The removed entries would typically include the top E820 usable RAM region and thus result in the domain having signicantly less RAM available to it. Fix by allowing sanitize_e820_map to use the full size of the allocated E820 array. Signed-off-by: Malcolm Crossley Reviewed-by: Boris Ostrovsky Cc: Signed-off-by: David Vrabel arch/x86/xen/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3225031fbeb1e32b269a82eccd815128267a4bfe Merge: 097f70b 3a48d13 Author: Linus Torvalds Date: Mon Sep 28 12:27:18 2015 -0400 Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull arch/tile bugfix from Chris Metcalf: "This fixes a bug in 'make allmodconfig'" * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: fix build failure commit 3a48d13d76c0088a988a2e4f5b4d94872bdf58f3 Author: Sudip Mukherjee Date: Mon Sep 7 20:06:57 2015 +0530 tile: fix build failure When building with allmodconfig the build was failing with the error: arch/tile/kernel/usb.c:70:1: warning: data definition has no type or storage class [enabled by default] arch/tile/kernel/usb.c:70:1: error: type defaults to 'int' in declaration of 'arch_initcall' [-Werror=implicit-int] arch/tile/kernel/usb.c:70:1: warning: parameter names (without types) in function declaration [enabled by default] arch/tile/kernel/usb.c:63:19: warning: 'tilegx_usb_init' defined but not used [-Wunused-function] Include linux/module.h to resolve the build failure. Signed-off-by: Sudip Mukherjee Signed-off-by: Chris Metcalf arch/tile/kernel/usb.c | 1 + 1 file changed, 1 insertion(+) commit 72c021738252dde5849d575a650239d6404930ee Author: Steve Wise Date: Mon Sep 21 12:24:23 2015 -0500 xprtrdma: disconnect and flush cqs before freeing buffers Otherwise a FRMR completion can cause a touch-after-free crash. In xprt_rdma_destroy(), call rpcrdma_buffer_destroy() only after calling rpcrdma_ep_destroy(). In rpcrdma_ep_destroy(), disconnect the cm_id first which should flush the qp, then drain the cqs, then destroy the qp, and finally destroy the cqs. Signed-off-by: Steve Wise Tested-by: Chuck Lever Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/transport.c | 2 +- net/sunrpc/xprtrdma/verbs.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) commit dfc53c5e73f8b73abf920241e45eab87335ae742 Author: Michel Thierry Date: Mon Sep 28 13:25:12 2015 +0100 drm/i915: Consider HW CSB write pointer before resetting the sw read pointer A previous commit resets the Context Status Buffer (CSB) read pointer in ring init commit c0a03a2e4c4e ("drm/i915: Reset CSB read pointer in ring init") This is generally correct, but this pointer is not reset after suspend/resume in some platforms (cht). In this case, the driver should read the register value instead of resetting the sw read counter to 0. Otherwise we process old events, leading to unwanted pre-emptions or something worse. But in other platforms (bdw) and also during GPU reset or power up, the CSBWP is reset to 0x7 (an invalid number), and in this case the read pointer should be set to 5 (the interrupt code will increment this counter one more time, and will start reading from CSB[0]). v2: When the CSB registers are reset, the read pointer needs to be set to 5, otherwise the first write (CSB[0]) won't be read (Mika). Replace magic numbers with GEN8_CSB_ENTRIES (6) and GEN8_CSB_PTR_MASK (0x07). Cc: Mika Kuoppala Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Lei Shen Signed-off-by: Deepak S Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_lrc.c | 39 ++++++++++++++++++++++++++++++++------- drivers/gpu/drm/i915/intel_lrc.h | 2 ++ 2 files changed, 34 insertions(+), 7 deletions(-) commit 0b34a166f291d255755be46e43ed5497cdd194f2 Author: Vitaly Kuznetsov Date: Fri Sep 25 11:59:52 2015 +0200 x86/xen: Support kexec/kdump in HVM guests by doing a soft reset Currently there is a number of issues preventing PVHVM Xen guests from doing successful kexec/kdump: - Bound event channels. - Registered vcpu_info. - PIRQ/emuirq mappings. - shared_info frame after XENMAPSPACE_shared_info operation. - Active grant mappings. Basically, newly booted kernel stumbles upon already set up Xen interfaces and there is no way to reestablish them. In Xen-4.7 a new feature called 'soft reset' is coming. A guest performing kexec/kdump operation is supposed to call SCHEDOP_shutdown hypercall with SHUTDOWN_soft_reset reason before jumping to new kernel. Hypervisor (with some help from toolstack) will do full domain cleanup (but keeping its memory and vCPU contexts intact) returning the guest to the state it had when it was first booted and thus allowing it to start over. Doing SHUTDOWN_soft_reset on Xen hypervisors which don't support it is probably OK as by default all unknown shutdown reasons cause domain destroy with a message in toolstack log: 'Unknown shutdown reason code 5. Destroying domain.' which gives a clue to what the problem is and eliminates false expectations. Signed-off-by: Vitaly Kuznetsov Cc: Signed-off-by: David Vrabel arch/x86/xen/enlighten.c | 23 +++++++++++++++++++++++ include/xen/interface/sched.h | 8 ++++++++ 2 files changed, 31 insertions(+) commit 2ecf91b6d8b0ee8ef38aa7ea2a0fe0cd57b6ca50 Author: Boris Ostrovsky Date: Mon Sep 21 09:09:28 2015 -0400 xen/x86: Don't try to write syscall-related MSRs for PV guests For PV guests these registers are set up by hypervisor and thus should not be written by the guest. The comment in xen_write_msr_safe() says so but we still write the MSRs, causing the hypervisor to print a warning. Signed-off-by: Boris Ostrovsky Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/enlighten.c | 1 + 1 file changed, 1 insertion(+) commit 24f775a6605a8ffc697c0767fc7ea85656ddb958 Author: Juergen Gross Date: Fri Sep 4 14:50:33 2015 +0200 xen: use correct type for HYPERVISOR_memory_op() HYPERVISOR_memory_op() is defined to return an "int" value. This is wrong, as the Xen hypervisor will return "long". The sub-function XENMEM_maximum_reservation returns the maximum number of pages for the current domain. An int will overflow for a domain configured with 8TB of memory or more. Correct this by using the correct type. Signed-off-by: Juergen Gross Signed-off-by: David Vrabel arch/x86/include/asm/xen/hypercall.h | 4 ++-- arch/x86/xen/setup.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 868e87ccda2461cafd4a0d39f1486eb8f4a9a6f9 Author: Russell King Date: Mon Sep 28 10:31:50 2015 +0100 ARM: make RiscPC depend on MMU RiscPC fails to build if MMU is disabled: arch/arm/mach-rpc/ecard.c: In function 'ecard_init_pgtables': arch/arm/mach-rpc/ecard.c:229:2: error: implicit declaration of function 'pgd_offset' [-Werror=implicit-function-declaration] arrange for RiscPC to depend on MMU. Signed-off-by: Russell King arch/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 9bac175d8ed0b1dd3d3611c0713666b724eeace3 Author: Radim Krčmář Date: Fri Sep 18 17:54:30 2015 +0200 Revert "KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR" Shifting pvclock_vcpu_time_info.system_time on write to KVM system time MSR is a change of ABI. Probably only 2.6.16 based SLES 10 breaks due to its custom enhancements to kvmclock, but KVM never declared the MSR only for one-shot initialization. (Doc says that only one write is needed.) This reverts commit b7e60c5aedd2b63f16ef06fde4f81ca032211bc5. And adds a note to the definition of PVCLOCK_COUNTS_FROM_ZERO. Signed-off-by: Radim Krčmář Acked-by: Marcelo Tosatti Signed-off-by: Paolo Bonzini arch/x86/include/asm/pvclock-abi.h | 1 + arch/x86/kvm/x86.c | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) commit 3cef072d3bbd4344823545e50d8cb240a6d4635d Author: Guenter Roeck Date: Fri Sep 11 06:28:08 2015 -0700 watchdog: iTCO: Fix dependencies on I2C If I2C is built as module, the iTCO watchdog driver must be built as module as well. I2C_I801 must only be selected if I2C is configured. This fixes the following build errors, seen if I2C=m and ITCO_WDT=y. i2c-i801.c:(.text+0x2bf055): undefined reference to `i2c_del_adapter' i2c-i801.c:(.text+0x2c13e0): undefined reference to `i2c_add_adapter' i2c-i801.c:(.text+0x2c17bd): undefined reference to `i2c_new_device' Fixes: 2a7a0e9bf7b3 ("watchdog: iTCO_wdt: Add support for TCO on Intel Sunrisepoint") Reviewed-by: Matt Fleming Cc: Lee Jones Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 898e6861ff7cfc9f539b57859a27fbd1fe4298ae Author: Noralf Trønnes Date: Wed Jun 17 16:04:04 2015 +0200 watchdog: bcm2835: Fix poweroff behaviour Currently poweroff/halt results in a reboot on the Raspberry Pi. The firmware uses the RSTS register to know which partiton to boot from. The partiton value is spread into bits 0, 2, 4, 6, 8, 10. Partiton 63 is a special partition used by the firmware to indicate halt. The firmware made this change in 19 Aug 2013 and was matched by the downstream commit: Changes for new NOOBS multi partition booting from gsh Signed-off-by: Noralf Trønnes Tested-by: Stephen Warren Acked-by: Stephen Warren Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/bcm2835_wdt.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit c73318f43d3967e3ce810665d9c74a7d238d24d1 Author: Luis de Bethencourt Date: Thu Sep 3 13:06:09 2015 +0200 watchdog: Fix module autoload for OF platform driver These platform drivers have a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/gef_wdt.c | 1 + drivers/watchdog/mena21_wdt.c | 1 + drivers/watchdog/moxart_wdt.c | 1 + 3 files changed, 3 insertions(+) commit bc5f2ab11ca6dda4a4826e7e78d5365d7c3e1569 Author: Rodrigo Vivi Date: Wed Sep 23 11:32:36 2015 -0700 drm/i915/skl: Don't call intel_prepare_ddi when encoder list isn't yet initialized. In case something goes wrong with power well initialization we were calling intel_prepare_ddi during boot while encoder list isnt't initilized. [ 9.618747] i915 0000:00:02.0: Invalid ROM contents [ 9.631446] [drm] failed to find VBIOS tables [ 9.720036] BUG: unable to handle kernel NULL pointer dereference at 00000000 00000058 [ 9.721986] IP: [] ddi_get_encoder_port+0x82/0x190 [i915] [ 9.723736] PGD 0 [ 9.724286] Oops: 0000 [#1] PREEMPT SMP [ 9.725386] Modules linked in: intel_powerclamp snd_hda_intel(+) coretemp crc 32c_intel snd_hda_codec snd_hda_core serio_raw snd_pcm snd_timer i915(+) parport _pc parport pinctrl_sunrisepoint pinctrl_intel nfsd nfs_acl [ 9.730635] CPU: 0 PID: 497 Comm: systemd-udevd Not tainted 4.3.0-rc2-eywa-10 967-g72de2cfd-dirty #2 [ 9.732785] Hardware name: Intel Corporation Cannonlake Client platform/Skyla ke DT DDR4 RVP8, BIOS CNLSE2R1.R00.X021.B00.1508040310 08/04/2015 [ 9.735785] task: ffff88008a704700 ti: ffff88016a1ac000 task.ti: ffff88016a1a c000 [ 9.737584] RIP: 0010:[] [] ddi_get_enco der_port+0x82/0x190 [i915] [ 9.739934] RSP: 0000:ffff88016a1af710 EFLAGS: 00010296 [ 9.741184] RAX: 000000000000004e RBX: ffff88008a9edc98 RCX: 0000000000000001 [ 9.742934] RDX: 000000000000004e RSI: ffffffff81fc1e82 RDI: 00000000ffffffff [ 9.744634] RBP: ffff88016a1af730 R08: 0000000000000000 R09: 0000000000000578 [ 9.746333] R10: 0000000000001065 R11: 0000000000000578 R12: fffffffffffffff8 [ 9.748033] R13: ffff88016a1af7a8 R14: ffff88016a1af794 R15: 0000000000000000 [ 9.749733] FS: 00007eff2e1e07c0(0000) GS:ffff88016fc00000(0000) knlGS:00000 00000000000 [ 9.751683] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 9.753083] CR2: 0000000000000058 CR3: 000000016922b000 CR4: 00000000003406f0 [ 9.754782] Stack: [ 9.755332] ffff88008a9edc98 ffff88008a9ed800 ffffffffa01d07b0 00000000fffb9 09e [ 9.757232] ffff88016a1af7d8 ffffffffa0154ea7 0000000000000246 ffff88016a370 080 [ 9.759182] ffff88016a370080 ffff88008a9ed800 0000000000000246 ffff88008a9ed c98 [ 9.761132] Call Trace: [ 9.761782] [] intel_prepare_ddi+0x67/0x860 [i915] [ 9.763332] [] ? _raw_spin_unlock_irqrestore+0x26/0x40 [ 9.765031] [] ? gen9_read32+0x141/0x360 [i915] [ 9.766531] [] skl_set_power_well+0x431/0xa80 [i915] [ 9.768181] [] skl_power_well_enable+0x13/0x20 [i915] [ 9.769781] [] intel_power_well_enable+0x28/0x50 [i915] [ 9.771481] [] intel_display_power_get+0x92/0xc0 [i915] [ 9.773180] [] intel_display_set_init_power+0x3b/0x40 [i91 5] [ 9.774980] [] intel_power_domains_init_hw+0x120/0x520 [i9 15] [ 9.776780] [] i915_driver_load+0xb21/0xf40 [i915] So let's protect this case. My first attempt was to remove the intel_prepare_ddi, but Daniel had pointed out this is really needed to restore those registers values. And Imre pointed out that this case was without the flag protection and this was actually where things were going bad. So I've just checked and this indeed solves my issue. The regressing intel_prepare_ddi call was added in commit 1d2b9526a790d55b7ae870934a74937081f62de2 Author: Damien Lespiau Date: Fri Mar 6 18:50:53 2015 +0000 drm/i915/skl: Restore the DDI translation tables when enabling PW1 Cc: Imre Deak Cc: Daniel Vetter Signed-off-by: Rodrigo Vivi Reviewed-by: Imre Deak [Jani: regression reference] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_runtime_pm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 95bc06ef049b808a067327bd8490b608b47e3870 Author: Geert Uytterhoeven Date: Sun Sep 13 11:24:02 2015 +0200 m68k/defconfig: Update defconfigs for v4.3-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, 96 insertions(+), 12 deletions(-) commit 8474ba74193d302e8340dddd1e16c85cc4b98caf Author: Andreas Schwab Date: Wed Sep 23 23:12:09 2015 +0200 m68k: Define asmlinkage_protect Make sure the compiler does not modify arguments of syscall functions. This can happen if the compiler generates a tailcall to another function. For example, without asmlinkage_protect sys_openat is compiled into this function: sys_openat: clr.l %d0 move.w 18(%sp),%d0 move.l %d0,16(%sp) jbra do_sys_open Note how the fourth argument is modified in place, modifying the register %d4 that gets restored from this stack slot when the function returns to user-space. The caller may expect the register to be unmodified across system calls. Signed-off-by: Andreas Schwab Signed-off-by: Geert Uytterhoeven Cc: stable@vger.kernel.org arch/m68k/include/asm/linkage.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 7f843dab134b7ce8804b67cca2271267d3a0213d Author: Geert Uytterhoeven Date: Sun Sep 13 11:49:13 2015 +0200 m68k: Wire up membarrier $ ./membarrier_test membarrier MEMBARRIER_CMD_QUERY syscall available. membarrier: MEMBARRIER_CMD_SHARED success. membarrier: tests done! $ Signed-off-by: Geert Uytterhoeven 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 b92858f2be96f49c483436e851a4667543ab5768 Author: Geert Uytterhoeven Date: Sun Sep 6 12:01:40 2015 +0200 m68k: Wire up userfaultfd $ ./userfaultfd 10 99 nr_pages: 2560, nr_pages_per_cpu: 2560 bounces: 98, mode: racing, userfaults: 1121 bounces: 97, mode: rnd, userfaults: 977 bounces: 96, mode:, userfaults: 1119 bounces: 95, mode: rnd racing ver poll, userfaults: 1040 bounces: 94, mode: racing ver poll, userfaults: 1022 bounces: 93, mode: rnd ver poll, userfaults: 946 bounces: 92, mode: ver poll, userfaults: 1115 bounces: 91, mode: rnd racing poll, userfaults: 977 bounces: 90, mode: racing poll, userfaults: 899 bounces: 89, mode: rnd poll, userfaults: 881 bounces: 88, mode: poll, userfaults: 1069 bounces: 87, mode: rnd racing ver, userfaults: 1114 bounces: 86, mode: racing ver, userfaults: 1109 bounces: 85, mode: rnd ver, userfaults: 1165 bounces: 84, mode: ver, userfaults: 1107 bounces: 83, mode: rnd racing, userfaults: 1134 bounces: 82, mode: racing, userfaults: 1105 bounces: 81, mode: rnd, userfaults: 1323 bounces: 80, mode:, userfaults: 1103 bounces: 79, mode: rnd racing ver poll, userfaults: 909 bounces: 78, mode: racing ver poll, userfaults: 1095 bounces: 77, mode: rnd ver poll, userfaults: 951 bounces: 76, mode: ver poll, userfaults: 1099 bounces: 75, mode: rnd racing poll, userfaults: 1035 bounces: 74, mode: racing poll, userfaults: 1097 bounces: 73, mode: rnd poll, userfaults: 1159 bounces: 72, mode: poll, userfaults: 1042 bounces: 71, mode: rnd racing ver, userfaults: 848 bounces: 70, mode: racing ver, userfaults: 1093 bounces: 69, mode: rnd ver, userfaults: 892 bounces: 68, mode: ver, userfaults: 1091 bounces: 67, mode: rnd racing, userfaults: 1219 bounces: 66, mode: racing, userfaults: 1089 bounces: 65, mode: rnd, userfaults: 988 bounces: 64, mode:, userfaults: 1087 bounces: 63, mode: rnd racing ver poll, userfaults: 882 bounces: 62, mode: racing ver poll, userfaults: 984 bounces: 61, mode: rnd ver poll, userfaults: 701 bounces: 60, mode: ver poll, userfaults: 1071 bounces: 59, mode: rnd racing poll, userfaults: 1137 bounces: 58, mode: racing poll, userfaults: 1032 bounces: 57, mode: rnd poll, userfaults: 911 bounces: 56, mode: poll, userfaults: 1079 bounces: 55, mode: rnd racing ver, userfaults: 1106 bounces: 54, mode: racing ver, userfaults: 1077 bounces: 53, mode: rnd ver, userfaults: 886 bounces: 52, mode: ver, userfaults: 1075 bounces: 51, mode: rnd racing, userfaults: 1101 bounces: 50, mode: racing, userfaults: 1073 bounces: 49, mode: rnd, userfaults: 1070 bounces: 48, mode:, userfaults: 1071 bounces: 47, mode: rnd racing ver poll, userfaults: 1077 bounces: 46, mode: racing ver poll, userfaults: 910 bounces: 45, mode: rnd ver poll, userfaults: 1063 bounces: 44, mode: ver poll, userfaults: 1028 bounces: 43, mode: rnd racing poll, userfaults: 1043 bounces: 42, mode: racing poll, userfaults: 1065 bounces: 41, mode: rnd poll, userfaults: 912 bounces: 40, mode: poll, userfaults: 1063 bounces: 39, mode: rnd racing ver, userfaults: 880 bounces: 38, mode: racing ver, userfaults: 1061 bounces: 37, mode: rnd ver, userfaults: 1144 bounces: 36, mode: ver, userfaults: 1059 bounces: 35, mode: rnd racing, userfaults: 967 bounces: 34, mode: racing, userfaults: 1057 bounces: 33, mode: rnd, userfaults: 1076 bounces: 32, mode:, userfaults: 1055 bounces: 31, mode: rnd racing ver poll, userfaults: 997 bounces: 30, mode: racing ver poll, userfaults: 1053 bounces: 29, mode: rnd ver poll, userfaults: 968 bounces: 28, mode: ver poll, userfaults: 978 bounces: 27, mode: rnd racing poll, userfaults: 1008 bounces: 26, mode: racing poll, userfaults: 1049 bounces: 25, mode: rnd poll, userfaults: 900 bounces: 24, mode: poll, userfaults: 1047 bounces: 23, mode: rnd racing ver, userfaults: 988 bounces: 22, mode: racing ver, userfaults: 1045 bounces: 21, mode: rnd ver, userfaults: 1027 bounces: 20, mode: ver, userfaults: 1043 bounces: 19, mode: rnd racing, userfaults: 1017 bounces: 18, mode: racing, userfaults: 1041 bounces: 17, mode: rnd, userfaults: 979 bounces: 16, mode:, userfaults: 1039 bounces: 15, mode: rnd racing ver poll, userfaults: 1134 bounces: 14, mode: racing ver poll, userfaults: 1037 bounces: 13, mode: rnd ver poll, userfaults: 1046 bounces: 12, mode: ver poll, userfaults: 1035 bounces: 11, mode: rnd racing poll, userfaults: 1060 bounces: 10, mode: racing poll, userfaults: 1033 bounces: 9, mode: rnd poll, userfaults: 1003 bounces: 8, mode: poll, userfaults: 929 bounces: 7, mode: rnd racing ver, userfaults: 964 bounces: 6, mode: racing ver, userfaults: 1029 bounces: 5, mode: rnd ver, userfaults: 1053 bounces: 4, mode: ver, userfaults: 1027 bounces: 3, mode: rnd racing, userfaults: 863 bounces: 2, mode: racing, userfaults: 1025 bounces: 1, mode: rnd, userfaults: 1043 bounces: 0, mode:, userfaults: 950 Signed-off-by: Geert Uytterhoeven 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 5b3f33eb408ad06acf59b09fe0550bf3756e320a Author: Geert Uytterhoeven Date: Sun Sep 6 11:59:27 2015 +0200 m68k: Wire up direct socket calls Signed-off-by: Geert Uytterhoeven Acked-by: Greg Ungerer arch/m68k/include/asm/unistd.h | 2 +- arch/m68k/include/uapi/asm/unistd.h | 17 +++++++++++++++++ arch/m68k/kernel/syscalltable.S | 18 +++++++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) commit 7c4f1c694bf84eac538bee3e411aed10ae617d46 Merge: 9ffecb1 19a5ecd Author: Ingo Molnar Date: Mon Sep 28 08:03:52 2015 +0200 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/urgent Pull RCU fixes from Paul E. McKenney, for two regressions introduced in this merge window: - Fix bug with recent GCCs. - Fix false positive lockdep splat. Signed-off-by: Ingo Molnar commit 1a5e251996e1b602f2ddc9261ee9de0ca1875bfa Author: Sudip Mukherjee Date: Sun Sep 27 17:13:55 2015 -0700 Input: serio - fix blocking of parport If parkbd_allocate_serio() fails to allocate memory we are releasing the parport but we missed unregistering the device. As a result this device with exclusive access to that parport remains registered. And no other device will be able to use that parport even though this driver has failed to load. Signed-off-by: Sudip Mukherjee Signed-off-by: Dmitry Torokhov drivers/input/serio/parkbd.c | 1 + 1 file changed, 1 insertion(+) commit e5a5d92d9dc36055b971d79e408e345f5ce88701 Author: Eric Benard Date: Wed Sep 23 17:07:28 2015 +0200 mxc_nand: fix copy_spare it was broken by 35d5d20efad8a04c8c002c7f31241dff973977a6 "mtd: mxc_nand: cleanup copy_spare function" else we get the following error : [ 22.709507] ubi0: attaching mtd3 [ 23.613470] ubi0: scanning is finished [ 23.617278] ubi0: empty MTD device detected [ 23.623219] Unhandled fault: imprecise external abort (0x1c06) at 0x9e62f0ec [ 23.630291] pgd = 9df80000 [ 23.633005] [9e62f0ec] *pgd=8e60041e(bad) [ 23.637064] Internal error: : 1c06 [#1] SMP ARM [ 23.641605] Modules linked in: [ 23.644687] CPU: 0 PID: 99 Comm: ubiattach Not tainted 4.2.0-dirty #22 [ 23.651222] Hardware name: Freescale i.MX53 (Device Tree Support) [ 23.657322] task: 9e687300 ti: 9dcfc000 task.ti: 9dcfc000 [ 23.662744] PC is at memcpy16_toio+0x4c/0x74 [ 23.667026] LR is at mxc_nand_command+0x484/0x640 [ 23.671739] pc : [<803f9c08>] lr : [<803faeb0>] psr: 60000013 [ 23.671739] sp : 9dcfdb10 ip : 9e62f0ea fp : 9dcfdb1c [ 23.683222] r10: a09c1000 r9 : 0000001a r8 : ffffffff [ 23.688453] r7 : ffffffff r6 : 9e674810 r5 : 9e674810 r4 : 000000b6 [ 23.694985] r3 : a09c16a4 r2 : a09c16a4 r1 : a09c16a4 r0 : 0000ffff [ 23.701521] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 23.708662] Control: 10c5387d Table: 8df80019 DAC: 00000015 [ 23.714413] Process ubiattach (pid: 99, stack limit = 0x9dcfc210) [ 23.720514] Stack: (0x9dcfdb10 to 0x9dcfe000) [ 23.724881] db00: 9dcfdb6c 9dcfdb20 803faeb0 803f9bc8 [ 23.733069] db20: 803f227c 803f9b74 ffffffff 9e674810 9e674810 9e674810 00000040 9e62f010 [ 23.741255] db40: 803faa2c 9e674b40 9e674810 803faa2c 00000400 803faa2c 00000000 9df42800 [ 23.749441] db60: 9dcfdb9c 9dcfdb70 803f2024 803faa38 9e4201cc 00000000 803f0a78 9e674b40 [ 23.757627] db80: 803f1f80 9e674810 00000400 00000400 9dcfdc14 9dcfdba0 803f3bd8 803f1f8c [ 23.765814] dba0: 9e4201cc 00000000 00000580 00000000 00000000 800718c0 0000007f 00001000 [ 23.774000] dbc0: 9df42800 000000e0 00000000 00000000 9e4201cc 00000000 00000000 00000000 [ 23.782186] dbe0: 00000580 00000580 00000000 9e674810 9dcfdc20 9dcfdce8 9df42800 00580000 [ 23.790372] dc00: 00000000 00000400 9dcfdc6c 9dcfdc18 803f3f94 803f39a4 9dcfdc20 00000000 [ 23.798558] dc20: 00000000 00000400 00000000 00000000 00000000 00000000 9df42800 00000000 [ 23.806744] dc40: 9dcfdd0c 00580000 00000000 00000400 00000000 9df42800 9dee1000 9d802000 [ 23.814930] dc60: 9dcfdc94 9dcfdc70 803eb63c 803f3f38 00000400 9dcfdce8 9df42800 dead4ead [ 23.823116] dc80: 803eb5f4 00000000 9dcfdcc4 9dcfdc98 803e82ac 803eb600 00000400 9dcfdce8 [ 23.831301] dca0: 9df42800 00000400 9dee0000 00000000 00000400 00000000 9dcfdd1c 9dcfdcc8 [ 23.839488] dcc0: 80406048 803e8230 00000400 9dcfdce8 9df42800 9dcfdc78 00000008 00000000 [ 23.847673] dce0: 00000000 00000000 00000000 00000004 00000000 9df42800 9dee0000 00000000 [ 23.855859] dd00: 9d802030 00000000 9dc8b214 9d802000 9dcfdd44 9dcfdd20 804066cc 80405f50 [ 23.864047] dd20: 00000400 9dc8b200 9d802030 9df42800 9dee0000 9dc8b200 9dcfdd84 9dcfdd48 [ 23.872233] dd40: 8040a544 804065ac 9e401c80 000080d0 9dcfdd84 00000001 800fc828 9df42400 [ 23.880418] dd60: 00000000 00000080 9dc8b200 9dc8b200 9dc8b200 9dee0000 9dcfdddc 9dcfdd88 [ 23.888605] dd80: 803fb560 8040a440 9dcfddc4 9dcfdd98 800f1428 9dee1000 a0acf000 00000000 [ 23.896792] dda0: 00000000 ffffffff 00000006 00000000 9dee0000 9dee0000 00005600 00000080 [ 23.904979] ddc0: 9dc8b200 a0acf000 9dc8b200 8112514c 9dcfde24 9dcfdde0 803fc08c 803fb4f0 [ 23.913165] dde0: 9e401c80 00000013 9dcfde04 9dcfddf8 8006bbf8 8006ba00 9dcfde24 00000000 [ 23.921351] de00: 9dee0000 00000065 9dee0000 00000001 9dc8b200 8112514c 9dcfde84 9dcfde28 [ 23.929538] de20: 8040afa0 803fb948 ffffffff 00000000 9dc8b214 9dcfde40 800f1428 800f11dc [ 23.937724] de40: 9dc8b21c 9dc8b20c 9dc8b204 9dee1000 9dc8b214 8069bb60 fffff000 fffff000 [ 23.945911] de60: 9e7b5400 00000000 9dee0000 9dee1000 00001000 9e7b5400 9dcfdecc 9dcfde88 [ 23.954097] de80: 803ff1bc 8040a630 9dcfdea4 9dcfde98 00000800 00000800 9dcfdecc 9dcfdea8 [ 23.962284] dea0: 803e8f6c 00000000 7e87ab70 9e7b5400 80113e30 00000003 9dcfc000 00000000 [ 23.970470] dec0: 9dcfdf04 9dcfded0 804008cc 803feb98 ffffffff 00000003 00000000 00000000 [ 23.978656] dee0: 00000000 00000000 9e7cb000 9dc193e0 7e87ab70 9dd92140 9dcfdf7c 9dcfdf08 [ 23.986842] df00: 80113b5c 8040080c 800fbed8 8006bbf0 9e7cb000 00000003 9e7cb000 9dd92140 [ 23.995029] df20: 9dc193e0 9dd92148 9dcfdf4c 9dcfdf38 8011022c 800fbe78 8000f9cc 9e687300 [ 24.003216] df40: 9dcfdf6c 9dcfdf50 8011f798 8007ffe8 7e87ab70 9dd92140 00000003 9dd92140 [ 24.011402] df60: 40186f40 7e87ab70 9dcfc000 00000000 9dcfdfa4 9dcfdf80 80113e30 8011373c [ 24.019588] df80: 7e87ab70 7e87ab70 7e87aea9 00000036 8000fb84 9dcfc000 00000000 9dcfdfa8 [ 24.027775] dfa0: 8000f9a0 80113e00 7e87ab70 7e87ab70 00000003 40186f40 7e87ab70 00000000 [ 24.035962] dfc0: 7e87ab70 7e87ab70 7e87aea9 00000036 00000000 00000000 76fd1f70 00000000 [ 24.044148] dfe0: 76f80f8c 7e87ab28 00009810 76f80fc4 60000010 00000003 00000000 00000000 [ 24.052328] Backtrace: [ 24.054806] [<803f9bbc>] (memcpy16_toio) from [<803faeb0>] (mxc_nand_command+0x484/0x640) [ 24.062996] [<803faa2c>] (mxc_nand_command) from [<803f2024>] (nand_write_page+0xa4/0x154) [ 24.071264] r10:9df42800 r9:00000000 r8:803faa2c r7:00000400 r6:803faa2c r5:9e674810 [ 24.079180] r4:9e674b40 [ 24.081738] [<803f1f80>] (nand_write_page) from [<803f3bd8>] (nand_do_write_ops+0x240/0x444) [ 24.090180] r8:00000400 r7:00000400 r6:9e674810 r5:803f1f80 r4:9e674b40 [ 24.096970] [<803f3998>] (nand_do_write_ops) from [<803f3f94>] (nand_write+0x68/0x88) [ 24.104804] r10:00000400 r9:00000000 r8:00580000 r7:9df42800 r6:9dcfdce8 r5:9dcfdc20 [ 24.112719] r4:9e674810 [ 24.115287] [<803f3f2c>] (nand_write) from [<803eb63c>] (part_write+0x48/0x50) [ 24.122514] r10:9d802000 r9:9dee1000 r8:9df42800 r7:00000000 r6:00000400 r5:00000000 [ 24.130429] r4:00580000 [ 24.132989] [<803eb5f4>] (part_write) from [<803e82ac>] (mtd_write+0x88/0xa0) [ 24.140129] r5:00000000 r4:803eb5f4 [ 24.143748] [<803e8224>] (mtd_write) from [<80406048>] (ubi_io_write+0x104/0x65c) [ 24.151235] r7:00000000 r6:00000400 r5:00000000 r4:9dee0000 [ 24.156968] [<80405f44>] (ubi_io_write) from [<804066cc>] (ubi_io_write_ec_hdr+0x12c/0x190) [ 24.165323] r10:9d802000 r9:9dc8b214 r8:00000000 r7:9d802030 r6:00000000 r5:9dee0000 [ 24.173239] r4:9df42800 [ 24.175798] [<804065a0>] (ubi_io_write_ec_hdr) from [<8040a544>] (ubi_early_get_peb+0x110/0x1f0) [ 24.184587] r6:9dc8b200 r5:9dee0000 r4:9df42800 [ 24.189262] [<8040a434>] (ubi_early_get_peb) from [<803fb560>] (create_vtbl+0x7c/0x238) [ 24.197271] r10:9dee0000 r9:9dc8b200 r8:9dc8b200 r7:9dc8b200 r6:00000080 r5:00000000 [ 24.205187] r4:9df42400 [ 24.207746] [<803fb4e4>] (create_vtbl) from [<803fc08c>] (ubi_read_volume_table+0x750/0xa64) [ 24.216187] r10:8112514c r9:9dc8b200 r8:a0acf000 r7:9dc8b200 r6:00000080 r5:00005600 [ 24.224103] r4:9dee0000 [ 24.226662] [<803fb93c>] (ubi_read_volume_table) from [<8040afa0>] (ubi_attach+0x97c/0x152c) [ 24.235103] r10:8112514c r9:9dc8b200 r8:00000001 r7:9dee0000 r6:00000065 r5:9dee0000 [ 24.243018] r4:00000000 [ 24.245579] [<8040a624>] (ubi_attach) from [<803ff1bc>] (ubi_attach_mtd_dev+0x630/0xbac) [ 24.253673] r10:9e7b5400 r9:00001000 r8:9dee1000 r7:9dee0000 r6:00000000 r5:9e7b5400 [ 24.261588] r4:fffff000 [ 24.264148] [<803feb8c>] (ubi_attach_mtd_dev) from [<804008cc>] (ctrl_cdev_ioctl+0xcc/0x1cc) [ 24.272589] r10:00000000 r9:9dcfc000 r8:00000003 r7:80113e30 r6:9e7b5400 r5:7e87ab70 [ 24.280505] r4:00000000 [ 24.283070] [<80400800>] (ctrl_cdev_ioctl) from [<80113b5c>] (do_vfs_ioctl+0x42c/0x6c4) [ 24.291077] r6:9dd92140 r5:7e87ab70 r4:9dc193e0 [ 24.295753] [<80113730>] (do_vfs_ioctl) from [<80113e30>] (SyS_ioctl+0x3c/0x64) [ 24.303066] r10:00000000 r9:9dcfc000 r8:7e87ab70 r7:40186f40 r6:9dd92140 r5:00000003 [ 24.310981] r4:9dd92140 [ 24.313549] [<80113df4>] (SyS_ioctl) from [<8000f9a0>] (ret_fast_syscall+0x0/0x54) [ 24.321123] r9:9dcfc000 r8:8000fb84 r7:00000036 r6:7e87aea9 r5:7e87ab70 r4:7e87ab70 [ 24.328957] Code: e1c300b0 e1510002 e1a03001 1afffff9 (e89da800) [ 24.335066] ---[ end trace ab1cb17887f21bbb ]--- [ 24.340249] Unhandled fault: imprecise external abort (0x1c06) at 0x7ee8bcf0 [ 24.347310] pgd = 9df3c000 [ 24.350023] [7ee8bcf0] *pgd=8dcbf831, *pte=8eb3334f, *ppte=8eb3383f Segmentation fault Fixes: 35d5d20efad8 ("mtd: mxc_nand: cleanup copy_spare function") Signed-off-by: Eric Bénard Reviewed-by: Uwe Kleine-König Reviewed-by: Baruch Siach Cc: Signed-off-by: Brian Norris drivers/mtd/nand/mxc_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 097f70b3c4d84ffccca15195bdfde3a37c0a7c0f Merge: e3be426 e060f6e Author: Linus Torvalds Date: Sun Sep 27 18:22:34 2015 -0400 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS fixes from Ralf Baechle: - Properly setup irq handling for ATH79 platforms - Fix bootmem mapstart calculation for contiguous maps - Handle little endian and older CPUs correct in BPF - Fix console for Fulong 2E systems - Handle FTLB correctly on R6 CPUs - Fixes for CM, GIC and MAAR support code * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Initialise MAARs on secondary CPUs MIPS: print MAAR configuration during boot MIPS: mm: compile maar_init unconditionally irqchip: mips-gic: Fix pending & mask reads for MIPS64 with 32b GIC. irqchip: mips-gic: Convert CPU numbers to VP IDs. MIPS: CM: Provide a function to map from CPU to VP ID. MIPS: Fix FTLB detection for R6 MIPS: cpu-features: Add cpu_has_ftlb MIPS: ATH79: Add irq chip ar7240-misc-intc MIPS: ATH79: Set missing irq ack handler for ar7100-misc-intc irq chip MIPS: BPF: Fix build on pre-R2 little endian CPUs MIPS: BPF: Avoid unreachable code on little endian MIPS: bootmem: Fix mapstart calculation for contiguous maps MIPS: Fix console output for Fulong2e system commit e3be4266d3488cbbaddf7fcc661f4473db341e46 Merge: 73f479b 2530e39 Author: Linus Torvalds Date: Sun Sep 27 12:51:39 2015 -0400 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Thomas Gleixner: "Another pile of fixes for perf: - Plug overflows and races in the core code - Sanitize the flow of the perf syscall so we error out before handling the more complex and hard to undo setups - Improve and fix Broadwell and Skylake hardware support - Revert a fix which broke what it tried to fix in perf tools - A couple of smaller fixes in various places of perf tools" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tools: Fix copying of /proc/kcore perf intel-pt: Remove no_force_psb from documentation perf probe: Use existing routine to look for a kernel module by dso->short_name perf/x86: Change test_aperfmperf() and test_intel() to static tools lib traceevent: Fix string handling in heterogeneous arch environments perf record: Avoid infinite loop at buildid processing with no samples perf: Fix races in computing the header sizes perf: Fix u16 overflows perf: Restructure perf syscall point of no return perf/x86/intel: Fix Skylake FRONTEND MSR extrareg mask perf/x86/intel/pebs: Add PEBS frontend profiling for Skylake perf/x86/intel: Make the CYCLE_ACTIVITY.* constraint on Broadwell more specific perf tools: Bool functions shouldn't return -1 tools build: Add test for presence of __get_cpuid() gcc builtin tools build: Add test for presence of numa_num_possible_cpus() in libnuma Revert "perf symbols: Fix mismatched declarations for elf_getphdrnum" perf stat: Fix per-pkg event reporting bug commit 73f479b243fe71a0fa82d21a21ac25d8932b88d5 Merge: fc11a9c de9b8f5 Author: Linus Torvalds Date: Sun Sep 27 12:50:27 2015 -0400 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fix from Thomas Gleixner: "A single bug fix for the scheduler to prevent dequeueing of the idle task when setting the cpus allowed mask" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched: Fix crash trying to dequeue/enqueue the idle thread commit fc11a9c5dad78d2c9e8a4b7d4b386bff724d9ec3 Merge: 9ffecb1 21199f2 Author: Linus Torvalds Date: Sun Sep 27 12:47:20 2015 -0400 Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking fix from Thomas Gleixner: "A single bugfix for lockdep to preserve the pinning counter when rebuilding the lock stack" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/lockdep: Fix hlock->pin_count reset on lock stack rebuilds commit a9062dcec3697db5bdf064311ad097c469fd87ec Merge: 9ffecb1 af71b98 Author: Rafael J. Wysocki Date: Sun Sep 27 15:25:22 2015 +0200 Merge branch 'turbostat' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-tools Pull turbostat updates for v4.3 from Len Brown. * 'turbostat' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: tools/power turbosat: update version number tools/power turbostat: SKL: Adjust for TSC difference from base frequency tools/power turbostat: KNL workaround for %Busy and Avg_MHz tools/power turbostat: IVB Xeon: fix --debug regression commit e9a7bed40cbc09eee4b7a15509726a44565805be Merge: 9ffecb1 135919a Author: Rafael J. Wysocki Date: Sun Sep 27 15:24:27 2015 +0200 Merge branch 'cpuidle' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-cpuidle Pull an intel_idle update for v4.3 from Len Brown. * 'cpuidle' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: intel_idle: Skylake Client Support - updated commit e060f6ed281669b6d2f22d8dafd664b532386918 Author: Paul Burton Date: Fri Sep 25 08:59:38 2015 -0700 MIPS: Initialise MAARs on secondary CPUs MAARs should be initialised on each CPU (or rather, core) in the system in order to achieve consistent behaviour & performance. Previously they have only been initialised on the boot CPU which leads to performance problems if tasks are later scheduled on a secondary CPU, particularly if those tasks make use of unaligned vector accesses where some CPUs don't handle any cases in hardware for non-speculative memory regions. Fix this by recording the MAAR configuration from the boot CPU and applying it to secondary CPUs as part of their bringup. Reported-by: Doug Gilmore Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Rusty Russell Cc: Steven J. Hill Cc: Andrew Bresticker Cc: Bjorn Helgaas Cc: David Hildenbrand Cc: linux-kernel@vger.kernel.org Cc: Aaro Koskinen Cc: James Hogan Cc: Ingo Molnar Cc: Markos Chandras Cc: Hemmo Nieminen Cc: Alex Smith Cc: Peter Zijlstra (Intel) Patchwork: https://patchwork.linux-mips.org/patch/11239/ Signed-off-by: Ralf Baechle arch/mips/include/asm/maar.h | 9 +++++++++ arch/mips/kernel/smp.c | 2 ++ arch/mips/mm/init.c | 28 +++++++++++++++++++++++++--- 3 files changed, 36 insertions(+), 3 deletions(-) commit 651ca7f4dab77f07fdac9cfb68bcab6bd2b7f827 Author: Paul Burton Date: Fri Sep 25 08:59:37 2015 -0700 MIPS: print MAAR configuration during boot Verifying that the MAAR configuration is as expected is useful when debugging the performance of a system. Print out the memory regions configured via MAAR along with their attributes. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Steven J. Hill Cc: David Hildenbrand Cc: linux-kernel@vger.kernel.org Cc: Peter Zijlstra (Intel) Patchwork: https://patchwork.linux-mips.org/patch/11238/ Signed-off-by: Ralf Baechle arch/mips/mm/init.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit def3ab5d0a0fe53026c2495b054dcc46cf923dac Author: Paul Burton Date: Fri Sep 25 08:59:36 2015 -0700 MIPS: mm: compile maar_init unconditionally maar_init was previously only compiled when CONFIG_NEED_MULTIPLE_NODES was not set, which has been fine since it is only called from the standard implementation of mem_init which has the same condition. In preparation for calling it from the SMP startup code on secondary CPUs, move maar_init outside of the #ifndef such that it is always compiled. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: linux-mips@linux-mips.org Cc: Steven J. Hill Cc: David Hildenbrand Cc: linux-kernel@vger.kernel.org Cc: Ingo Molnar Patchwork: https://patchwork.linux-mips.org/patch/11237/ Signed-off-by: Ralf Baechle arch/mips/mm/init.c | 126 ++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 63 deletions(-) commit d77d5ac9c9b5abf45aeb6e12930fab832e5c81d1 Author: Paul Burton Date: Tue Sep 22 11:29:11 2015 -0700 irqchip: mips-gic: Fix pending & mask reads for MIPS64 with 32b GIC. gic_handle_shared_int reads the GIC interrupt pending & mask registers directly into a bitmap, which is defined as an array of unsigned longs. The GIC pending registers may be 32 bits wide if the CM is older than CM3, regardless of the bit width of the CPU, but for MIPS64 kernels the unsigned longs in the bitmap will be 64 bits wide. In this case we need to perform 2 x 32 bit reads per 64 bit unsigned long in order to avoid missing interrupts. Signed-off-by: Paul Burton Acked-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: Marc Zyngier Cc: Jason Cooper Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11213/ Signed-off-by: Ralf Baechle drivers/irqchip/irq-mips-gic.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit ab41f6c8620a6e65df4ee19d284c97efdd3d9b63 Author: Paul Burton Date: Tue Sep 22 11:29:10 2015 -0700 irqchip: mips-gic: Convert CPU numbers to VP IDs. Make use of the mips_cm_vp_id function to convert from Linux CPU numbers to the VP IDs used by hardware, which are not identical in all systems. Without doing so we map interrupts to incorrect VP(E)s. Signed-off-by: Paul Burton Acked-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: Paul Burton Cc: Marc Zyngier Cc: Jason Cooper Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11212/ Signed-off-by: Ralf Baechle drivers/irqchip/irq-mips-gic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7573b94e08aeb5b814e2f277210bdcdf21a83869 Author: Paul Burton Date: Tue Sep 22 11:29:09 2015 -0700 MIPS: CM: Provide a function to map from CPU to VP ID. The VP ID of a given CPU may not match up with the CPU number used by Linux. For example, if the width of the VP part of the VP ID is wider than log2(number of VPs per core) and the system has multiple cores then this will be the case. Alternatively, if a pre-r6 system implements the MT ASE with multiple VPEs per core and Linux is built without support for the MT ASE then the numbers won't match up either. Provide a function to convert from CPU number to VP ID. Signed-off-by: Paul Burton Acked-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: James Hogan Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/11211/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 9ffecb10283508260936b96022d4ee43a7798b4c Author: Linus Torvalds Date: Sun Sep 27 07:50:08 2015 -0400 Linux 4.3-rc3 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 162e6df47c4f80c87cb617ec473eca015df454ca Merge: 5a6bdf0 83c133c Author: Linus Torvalds Date: Sun Sep 27 06:51:42 2015 -0400 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: "Two bugfixes from Andy addressing at least some of the subtle NMI related wreckage which has been reported by Sasha Levin" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code x86/paravirt: Replace the paravirt nop with a bona fide empty function commit 5a6bdf06bbd022db25d9935273b409c337c48a6b Merge: c905929 d32dc9a Author: Linus Torvalds Date: Sun Sep 27 06:50:23 2015 -0400 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fix from Thomass Gleixner: "A bugfix for the atmel aic5 irq chip driver which caches the wrong data and thereby breaking resume" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/atmel-aic5: Use per chip mask caches in mask/unmask() commit c905929ac9b94061b2c8226c5e47a26d30ed7ea1 Merge: 685b5f1 274e91b Author: Linus Torvalds Date: Sun Sep 27 06:48:48 2015 -0400 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Just two fixes: wire up the new system calls added during the last merge window, and fix another user access site" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: alignment: fix alignment handling for uaccess changes ARM: wire up new syscalls commit 685b5f1de6405bf87e38fed7c893a1de0a8d3218 Merge: 69ea8b8 e46fc90 Author: Linus Torvalds Date: Sun Sep 27 06:45:18 2015 -0400 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC fixes from Olof Johansson: "Our first real batch of fixes this release cycle. Nothing really concerning, and diffstat is a bit inflated due to some DT contents moving around on STi platforms. There's a collection of them here: - A fixup for a build breakage that hits on arm64 allmodconfig in QCOM SCM firmware drivers - MMC fixes for OMAP that had quite a bit of breakage this merge window. - Misc build/warning fixes on PXA and OMAP - A couple of minor fixes for Beagleboard X15 which is now starting to see a few more users in the wild" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits) ARM: sti: dt: adapt DT to fix probe/bind issues in DRM driver ARM: dts: fix omap2+ address translation for pbias firmware: qcom: scm: Add function stubs for ARM64 ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2 ARM: omap2plus_defconfig: enable GPIO_PCA953X ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late ARM: dts: am57xx-beagle-x15: Update Phy supplies ARM: pxa: balloon3: Fix build error ARM: dts: Fixup model name for HP t410 dts ARM: dts: DRA7: fix a typo in ethernet ARM: omap2plus_defconfig: make PCF857x built-in ARM: dts: Use ti,pbias compatible string for pbias ARM: OMAP5: Cleanup options for SoC only build ARM: DRA7: Select missing options for SoC only build ARM: OMAP2+: board-generic: Remove stale of_irq macros ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410 ARM: dts: am335x-phycore-som: Fix mpu voltage ... commit 69ea8b857782ea56d9db01e2f57f9067abd3f013 Merge: d8cc397 8862714 Author: Linus Torvalds Date: Sun Sep 27 06:42:54 2015 -0400 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull CIFS fixes from Steve French: "Four fixes from testing at the recent SMB3 Plugfest including two important authentication ones (one fixes authentication problems to some popular servers when clock times differ more than two hours between systems, the other fixes Kerberos authentication for SMB3)" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: fix encryption error checks on mount [SMB3] Fix sec=krb5 on smb3 mounts cifs: use server timestamp for ntlmv2 authentication disabling oplocks/leases via module parm enable_oplocks broken for SMB3 commit 72521ea07c0af37b8cb21228368128191c3f1a58 Author: Andrzej Hajda Date: Thu Sep 24 16:00:24 2015 +0200 r8169: fix handling rtl_readphy result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2046107 Signed-off-by: Andrzej Hajda Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f26bf06beae70175eda91e893190784bd1bcc7c0 Author: Andrzej Hajda Date: Thu Sep 24 16:00:15 2015 +0200 net: hisilicon: fix handling platform_get_irq result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2046107 Signed-off-by: Andrzej Hajda Signed-off-by: David S. Miller drivers/net/ethernet/hisilicon/hip04_eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e46fc90ec2612ef7578c6e3e28ad477a116e24da Merge: b8ba826 385877c Author: Olof Johansson Date: Sat Sep 26 22:23:26 2015 -0700 Merge tag 'pxa-fixes-v4.3' of https://github.com/rjarzmik/linux into fixes ARM: pxa: fixes for v4.3 These fixes are mainly regression fixes triggered by irq changes, common clock framework introduction and sound side-effect of other platforms. * tag 'pxa-fixes-v4.3' of https://github.com/rjarzmik/linux: ARM: pxa: balloon3: Fix build error ARM: pxa: ssp: Fix build error by removing originally incorrect DT binding ARM: pxa: fix DFI bus lockups on startup Signed-off-by: Olof Johansson commit b8ba826f8d9587fe830d29a0d03abb5b1e0a76e5 Merge: fe5b275 9a5e3f2 Author: Olof Johansson Date: Sat Sep 26 22:22:31 2015 -0700 Merge tag 'omap-for-v4.3/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fixes for omaps for v4.3-rc cycle: - Two more patches to fix most of the MMC regressions with the PBIAS regulator changes. At least two MMC driver related issues still seems to remain for omap3 legacy booting and omap4 duovero. Note that the dts changes depend on a recent regulator fix, and are based on the regulator commit now in mainline kernel - Enable autoidle for am43xx clocks to prevent clocks from staying always on - Fix i2c5 pinctrl offsets for omap5-uevm - Enable PCA953X as that's needed for HDMI to work on omap5 - Update phy supplies for beagle x15 beta board - Use palmas-usb for on beagle x15 to start using the related driver that recently got merged * tag 'omap-for-v4.3/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: fix omap2+ address translation for pbias ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2 ARM: omap2plus_defconfig: enable GPIO_PCA953X ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late ARM: dts: am57xx-beagle-x15: Update Phy supplies regulator: pbias: program pbias register offset in pbias driver ARM: omap2plus_defconfig: Enable MUSB DMA support ARM: DRA752: Add ID detect for ES2.0 ARM: OMAP3: vc: fix 'or' always true warning ARM: OMAP2+: Fix booting if no timer parent clock is available ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init Signed-off-by: Olof Johansson commit d8cc3972b2178f9fe532306330f76bf51cb0d8bd Merge: c91d707 09185e2 Author: Linus Torvalds Date: Sat Sep 26 21:05:23 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes the following issues: - check the return value of platform_get_irq as signed int in xgene. - skip adf_dev_restore on virtual functions in qat. - fix double-free with backlogged requests in marvell_cesa" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: hwrng: xgene - fix handling platform_get_irq crypto: qat - VF should never trigger SBR on PH crypto: marvell - properly handle CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests commit c91d7072952993f96896c2fc9868f55924e7ba6c Merge: bcba282 673681ca Author: Linus Torvalds Date: Sat Sep 26 21:02:42 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target fixes from Nicholas Bellinger: "This includes a iser-target series from Jenny + Sagi @ Mellanox that addresses the few remaining active I/O shutdown bugs, along with a patch to support zero-copy for immediate data payloads that gives a nice performance improvement for small block WRITEs. Also included are some recent >= v4.2 regression bug-fixes. The most notable is a RCU conversion regression for SPC-3 PR registrations, and recent removal of obsolete RFC-3720 markers that introduced a login regression bug with MSFT iSCSI initiators. Thanks to everyone who has been testing + reporting bugs for v4.x" * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: iscsi-target: Avoid OFMarker + IFMarker negotiation target: Make TCM_WRITE_PROTECT failure honor D_SENSE bit target: Fix target_sense_desc_format NULL pointer dereference target: Propigate backend read-only to core_tpg_add_lun target: Fix PR registration + APTPL RCU conversion regression iser-target: Skip data copy if all the command data comes as immediate iser-target: Change the recv buffers posting logic iser-target: Fix pending connections handling in target stack shutdown sequnce iser-target: Remove np_ prefix from isert_np members iser-target: Remove unused variables iser-target: Put the reference on commands waiting for unsol data iser-target: remove command with state ISTATE_REMOVE commit bcba282ab399eec1c8b8dcb49c43a33813971913 Merge: fb740f9 b473197 Author: Linus Torvalds Date: Sat Sep 26 21:00:28 2015 -0400 Merge tag 'usb-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some USB driver fixes for 4.3-rc3. There's the usual assortment of new device ids, combined with xhci and gadget driver fixes. Full details in the shortlog. All of these have been in linux-next with no reported problems" * tag 'usb-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (34 commits) MAINTAINERS: remove amd5536udc USB gadget driver maintainer USB: whiteheat: fix potential null-deref at probe xhci: init command timeout timer earlier to avoid deleting it uninitialized xhci: change xhci 1.0 only restrictions to support xhci 1.1 usb: xhci: exit early in xhci_setup_device() if we're halted or dying usb: xhci: stop everything on the first call to xhci_stop usb: xhci: Clear XHCI_STATE_DYING on start usb: xhci: lock mutex on xhci_stop xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM xhci: give command abortion one more chance before killing xhci usb: Use the USB_SS_MULT() macro to get the burst multiplier. usb: dwc3: gadget: Fix BUG in RT config usb: musb: fix cppi channel teardown for isoch transfer usb: phy: isp1301: Export I2C module alias information usb: gadget: drop null test before destroy functions usb: gadget: dummy_hcd: in transfer(), return data sent, not limit usb: gadget: dummy_hcd: fix rescan logic for transfer usb: gadget: dummy_hcd: fix unneeded else-if condition usb: gadget: dummy_hcd: emulate sending zlp in packet logic usb: musb: dsps: fix polling in device-only mode ... commit fb740f9bab3b3c049d6207b148e45de05163b6e5 Merge: b11e7b8 f7a7651 Author: Linus Torvalds Date: Sat Sep 26 20:58:38 2015 -0400 Merge tag 'tty-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull serial driver fix from Greg KH: "Here is one serial driver fix for 4.3-rc3 that resolves a module loading issue due to splitting up of the 8250 driver into smaller pieces. It's been in linux-next with no reported problems" * tag 'tty-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: tty: serial: Add missing module license for 8250_base.ko commit b11e7b81bf94f633ae44f12a3d2e198277781952 Merge: 7c1efea 74c600e Author: Linus Torvalds Date: Sat Sep 26 20:56:50 2015 -0400 Merge tag 'staging-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver fixes from Greg KH: "Here are some tiny staging driver and documentation fixes for 4.3-rc3. All of these resolve reported issues that people have found and have been in the linux-next tree for a while with no problems" * tag 'staging-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: MAINTAINERS: Update email address for Martyn Welch staging: ion: fix corruption of ion_import_dma_buf staging: dgap: Remove myself from the MAINTAINERS file staging: most: Add dependency to HAS_IOMEM staging: unisys: remove reference of visorutil staging: unisys: visornic: handle error return from device registration staging: unisys: stop device registration before visorbus registration staging: unisys: visorbus: Unregister driver on error staging: unisys: visornic: Fix receive bytes statistics staging: unisys: unregister netdev when create debugfs fails staging: fbtft: replace master->setup() with spi_setup() staging: fbtft: fix 9-bit SPI support detection staging/lustre: change Lustre URLs and mailing list staging/android: Update ION TODO per LPC discussion Staging: most: MOST and MOSTCORE should depend on HAS_DMA staging: most: fix HDM_USB dependencies and build errors commit 7c1efeae6d7d7b1ba10453e35ee4c2de1d814c2b Merge: 64b796e 2110d70 Author: Linus Torvalds Date: Sat Sep 26 20:54:53 2015 -0400 Merge tag 'driver-core-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core fix from Greg KH: "Here is one driver core fix for 4.3-rc3 that resolves a reported oops" * tag 'driver-core-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: cpu/cacheinfo: Fix teardown path commit 64b796e23172850cab313e2e411b58fd391eec95 Merge: 518a7cb 5031403 Author: Linus Torvalds Date: Sat Sep 26 20:53:15 2015 -0400 Merge tag 'char-misc-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver fixes from Greg KH: "Here's some tiny char and misc driver fixes that resolve some reported errors for 4.3-rc3. All of these have been in linux-next with no problems for a while" * tag 'char-misc-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: extcon: Fix attached value returned by is_extcon_changed Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc mei: fix debugfs files leak on error path thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller commit 76d164f582150fd0259ec0fcbc485470bcd8033e Author: Felix Fietkau Date: Thu Sep 17 14:29:07 2015 +0300 ath10k: fix DMA related firmware crashes on multiple devices Some platforms really don't like DMA bursts of 256 bytes, and this causes the firmware to crash when sending beacons. Also, changing this based on the firmware version does not seem to make much sense, so use 128 bytes for all versions. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c6ea46c6d3df06599daddbf3311744f3130e186c Author: Rafał Miłecki Date: Wed Sep 9 07:16:42 2015 +0200 b43: probe bcma core (device) rev 0x15 OpenWrt user reported b43 doesn't probe wireless core on SoC BCM5356A1: [ 0.000000] bcma: bus0: Found chip with id 0x5356, rev 0x01 and package 0x04 it is because this chip uses different 802.11 core revison than others: [ 0.000000] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x15, class 0x0) Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/b43/main.c | 1 + 1 file changed, 1 insertion(+) commit 910367e374b97fad6ae31f74198ca537e2f3cfe5 Author: Stanislaw Gruszka Date: Mon Aug 31 10:55:05 2015 +0200 rt2800usb: add usb ID 1b75:3070 for Airlive WT-2000USB Brand: Airlive (Ovislink Corp.) Name: Turbo-G USB Adaptor Model: WT-2000USB USB ID: 1b75:3070 Reported-and-tested-by: Michael Coates Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/rt2x00/rt2800usb.c | 1 + 1 file changed, 1 insertion(+) commit 029cd0370241641eb70235d205aa0b90c84dce44 Author: Felix Fietkau Date: Thu Sep 24 16:59:46 2015 +0200 ath9k: declare required extra tx headroom ath9k inserts padding between the 802.11 header and the data area (to align it). Since it didn't declare this extra required headroom, this led to some nasty issues like randomly dropped packets in some setups. Cc: stable@vger.kernel.org Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/init.c | 1 + 1 file changed, 1 insertion(+) commit ff9f84b7d79ddccab4c293c9d3e289f95ae594f7 Author: Steve French Date: Sat Sep 26 09:48:58 2015 -0500 [SMB3] Missing null tcon check Pointed out by Dan Carpenter via smatch code analysis tool CC: Dan Carpenter Signed-off-by: Steve French fs/cifs/smb2pdu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af71b980c0d20586cc331b617c47094a8ec7e1db Author: Len Brown Date: Sat Sep 26 09:49:55 2015 -0400 tools/power turbosat: update version number Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 518a7cb6980cd640c7f979d29021ad870f60d7d7 Merge: d4a748a bdb06cb Author: Linus Torvalds Date: Sat Sep 26 06:01:33 2015 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) When we run a tap on netlink sockets, we have to copy mmap'd SKBs instead of cloning them. From Daniel Borkmann. 2) When converting classical BPF into eBPF, fix the setting of the source reg to BPF_REG_X. From Tycho Andersen. 3) Fix igmpv3/mldv2 report parsing in the bridge multicast code, from Linus Lussing. 4) Fix dst refcounting for ipv6 tunnels, from Martin KaFai Lau. 5) Set NLM_F_REPLACE flag properly when replacing ipv6 routes, from Roopa Prabhu. 6) Add some new cxgb4 PCI device IDs, from Hariprasad Shenai. 7) Fix headroom tests and SKB leaks in ipv6 fragmentation code, from Florian Westphal. 8) Check DMA mapping errors in bna driver, from Ivan Vecera. 9) Several 8139cp bug fixes (dev_kfree_skb_any in interrupt context, misclearing of interrupt status in TX timeout handler, etc.) from David Woodhouse. 10) In tipc, reset SKB header pointer after skb_linearize(), from Erik Hugne. 11) Fix autobind races et al. in netlink code, from Herbert Xu with help from Tejun Heo and others. 12) Missing SET_NETDEV_DEV in sunvnet driver, from Sowmini Varadhan. 13) Fix various races in timewait timer and reqsk_queue_hadh_req, from Eric Dumazet. 14) Fix array overruns in mac80211, from Johannes Berg and Dan Carpenter. 15) Fix data race in rhashtable_rehash_one(), from Dmitriy Vyukov. 16) Fix race between poll_one_napi and napi_disable, from Neil Horman. 17) Fix byte order in geneve tunnel port config, from John W Linville. 18) Fix handling of ARP replies over lightweight tunnels, from Jiri Benc. 19) We can loop when fib rule dumps cross multiple SKBs, fix from Wilson Kok and Roopa Prabhu. 20) Several reference count handling bug fixes in the PHY/MDIO layer from Russel King. 21) Fix lockdep splat in ppp_dev_uninit(), from Guillaume Nault. 22) Fix crash in icmp_route_lookup(), from David Ahern. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (116 commits) net: Fix panic in icmp_route_lookup net: update docbook comment for __mdiobus_register() ppp: fix lockdep splat in ppp_dev_uninit() net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected phy: marvell: add link partner advertised modes net: fix net_device refcounting phy: add phy_device_remove() phy: fixed-phy: properly validate phy in fixed_phy_update_state() net: fix phy refcounting in a bunch of drivers of_mdio: fix MDIO phy device refcounting phy: add proper phy struct device refcounting phy: fix mdiobus module safety net: dsa: fix of_mdio_find_bus() device refcount leak phy: fix of_mdio_find_bus() device refcount leak ip6_tunnel: Reduce log level in ip6_tnl_err() to debug ip6_gre: Reduce log level in ip6gre_err() to debug fib_rules: fix fib rule dumps across multiple skbs bnx2x: byte swap rss_key to comply to Toeplitz specs net: revert "net_sched: move tp->root allocation into fw_init()" lwtunnel: remove source and destination UDP port config option ... commit 2530e39947d80901e8c56f1c1950437eb9f48354 Merge: 7e5560a b5cabbc Author: Ingo Molnar Date: Sat Sep 26 08:15:52 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: - Fix copying of /proc/kcore made to the ~/.debug/ DSO cache to allow using objdump with kcore files. (Adrian Hunter) - Fix adding perf probes in kernel module functions. (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit a2b7b74945dbfe5d734eafe8aa52f9f1f8bc6931 Author: Len Brown Date: Sat Sep 26 00:12:38 2015 -0400 tools/power turbostat: SKL: Adjust for TSC difference from base frequency On a Skylake with 1500MHz base frequency, the TSC runs at 1512MHz. This is because the TSC is no longer in the n*100 MHz BCLK domain, but is now in the m*24MHz crystal clock domain. (24 MHz * 63 = 1512 MHz) This adds error to several calculations in turbostat, unless the TSC sample sizes are adjusted for this difference. Note that calculations in the time domain are immune from this issue, as the timing sub-system has already calibrated the TSC against a known wall clock. AVG_MHz = APERF_delta/measurement_interval need no adjustment. APERF_delta is in the BCLK domain, and measurement_interval is in the time domain. TSC_MHz = TSC_delta/measurement_interval needs no adjustment -- as we really do want to report the actual measured TSC delta here, and measurement_interval is in the accurate time domain. %Busy = MPERF_delta/TSC_delta needs adjustment to use TSC_BCLK_DOMAIN_delta. TSC_BCLK_DOMAIN_delta = TSC_delta * base_hz / tsc_hz Bzy_MHz = TSC_delta/APERF_delta/MPERF_delta/measurement_interval need adjustment as above. No other metrics in turbostat need to be adjusted. Before: CPU Avg_MHz %Busy Bzy_MHz TSC_MHz - 550 24.84 2216 1512 0 2191 98.73 2219 1514 2 0 0.01 2130 1512 1 9 0.43 2016 1512 3 2 0.08 2016 1512 After: CPU Avg_MHz %Busy Bzy_MHz TSC_MHz - 550 25.05 2198 1512 0 2190 99.62 2199 1512 2 0 0.01 2152 1512 1 9 0.46 2000 1512 3 2 0.10 2000 1512 Note that in this example, the "Before" Bzy_MHz was reported as exceeding the 2200 max turbo rate. Also, even a pinned spin loop would not be reported as over 99% busy. Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit b2b34dfe4d9aa4c468fc363b3b666974783ed1f9 Author: Hubert Chrzaniuk Date: Mon Sep 14 13:31:00 2015 +0200 tools/power turbostat: KNL workaround for %Busy and Avg_MHz KNL increments APERF and MPERF every 1024 clocks. This is compliant with the architecture specification, which requires that only the ratio of APERF/MPERF need be valid. However, turbostat takes advantage of the fact that these two MSRs increment every un-halted clock at the actual and base frequency: AVG_MHz = APERF_delta/measurement_interval %Busy = MPERF_delta/TSC_delta This quirk is needed for these calculations to also work on KNL, which would otherwise show a value 1024x smaller than expected. Signed-off-by: Hubert Chrzaniuk Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 756357b8e4b072fd5ee86421f794e071a348802b Author: Len Brown Date: Fri Sep 25 21:12:39 2015 -0400 tools/power turbostat: IVB Xeon: fix --debug regression Staring in Linux-4.3-rc1, commit 6fb3143b561c ("tools/power turbostat: dump CONFIG_TDP") touches MSR 0x648, which is not supported on IVB-Xeon. This results in "turbostat --debug" exiting on those systems: turbostat: /dev/cpu/2/msr offset 0x648 read failed: Input/output error Remove IVB-Xeon from the list of machines supporting with that MSR. Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 2 -- 1 file changed, 2 deletions(-) commit bdb06cbf77cb01911694cc9076ffa8196b7b9b61 Author: David Ahern Date: Thu Sep 24 15:31:29 2015 -0600 net: Fix panic in icmp_route_lookup Andrey reported a panic: [ 7249.865507] BUG: unable to handle kernel pointer dereference at 000000b4 [ 7249.865559] IP: [] icmp_route_lookup+0xaa/0x320 [ 7249.865598] *pdpt = 0000000030f7f001 *pde = 0000000000000000 [ 7249.865637] Oops: 0000 [#1] ... [ 7249.866811] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.3.0-999-generic #201509220155 [ 7249.866876] Hardware name: MSI MS-7250/MS-7250, BIOS 080014 08/02/2006 [ 7249.866916] task: c1a5ab00 ti: c1a52000 task.ti: c1a52000 [ 7249.866949] EIP: 0060:[] EFLAGS: 00210246 CPU: 0 [ 7249.866981] EIP is at icmp_route_lookup+0xaa/0x320 [ 7249.867012] EAX: 00000000 EBX: f483ba48 ECX: 00000000 EDX: f2e18a00 [ 7249.867045] ESI: 000000c0 EDI: f483ba70 EBP: f483b9ec ESP: f483b974 [ 7249.867077] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 [ 7249.867108] CR0: 8005003b CR2: 000000b4 CR3: 36ee07c0 CR4: 000006f0 [ 7249.867141] Stack: [ 7249.867165] 320310ee 00000000 00000042 320310ee 00000000 c1aeca00 f3920240 f0c69180 [ 7249.867268] f483ba04 f855058b a89b66cd f483ba44 f8962f4b 00000000 e659266c f483ba54 [ 7249.867361] 8004753c f483ba5c f8962f4b f2031140 000003c1 ffbd8fa0 c16b0e00 00000064 [ 7249.867448] Call Trace: [ 7249.867494] [] ? e1000_xmit_frame+0x87b/0xdc0 [e1000e] [ 7249.867534] [] ? tcp_in_window+0xeb/0xb10 [nf_conntrack] [ 7249.867576] [] ? tcp_in_window+0xeb/0xb10 [nf_conntrack] [ 7249.867615] [] ? icmp_send+0xa0/0x380 [ 7249.867648] [] icmp_send+0x2cf/0x380 [ 7249.867681] [] nf_send_unreach+0xa6/0xc0 [nf_reject_ipv4] [ 7249.867714] [] reject_tg+0x7a/0x9f [ipt_REJECT] [ 7249.867746] [] ipt_do_table+0x317/0x70c [ip_tables] [ 7249.867780] [] ? __nf_conntrack_find_get+0x166/0x3b0 [nf_conntrack] [ 7249.867838] [] ? nf_conntrack_in+0x398/0x600 [nf_conntrack] [ 7249.867889] [] iptable_filter_hook+0x35/0x80 [iptable_filter] [ 7249.867933] [] nf_iterate+0x71/0x80 [ 7249.867970] [] nf_hook_slow+0x65/0xc0 [ 7249.868002] [] __ip_local_out_sk+0xc1/0xd0 [ 7249.868034] [] ? ip_forward_options+0x1a0/0x1a0 [ 7249.868066] [] ip_local_out_sk+0x16/0x30 [ 7249.868097] [] ip_send_skb+0x14/0x80 [ 7249.868129] [] ip_push_pending_frames+0x34/0x40 [ 7249.868163] [] ip_send_unicast_reply+0x282/0x310 [ 7249.868196] [] tcp_v4_send_reset+0x1b3/0x380 [ 7249.868227] [] tcp_v4_rcv+0x323/0x990 [ 7249.868257] [] ? nf_iterate+0x71/0x80 [ 7249.868289] [] ip_local_deliver_finish+0x8b/0x230 [ 7249.868322] [] ip_local_deliver+0x4c/0xa0 [ 7249.868353] [] ? ip_rcv_finish+0x390/0x390 [ 7249.868384] [] ip_rcv_finish+0x7c/0x390 [ 7249.868415] [] ip_rcv+0x2e0/0x420 ... Prior to the VRF change the oif was not set in the flow struct, so the VRF support should really have only added the vrf_master_ifindex lookup. Fixes: 613d09b30f8b ("net: Use VRF device index for lookups on TX") Cc: Andrey Melnikov Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/icmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 59f069789c98678710ed30a4be0daa3546ec82c7 Author: Russell King Date: Fri Sep 25 11:56:56 2015 +0100 net: update docbook comment for __mdiobus_register() Update the docbook comment for __mdiobus_register() to include the new module owner argument. This resolves a warning found by the 0-day builder. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b4731977243c1ae9cfd8b3971ffc15425b7d7545 Author: Greg Kroah-Hartman Date: Fri Sep 25 20:45:27 2015 -0700 MAINTAINERS: remove amd5536udc USB gadget driver maintainer Thomas can no longer work on the driver, so he asked me to mark the MAINTAINER entry as "Orphan" with the hope that someone else would someday pick it up. Cc: Thomas Dahlmann Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2866196f294954ce9fa226825c8c1eaa64c7da8a Author: Doug Ledford Date: Fri Sep 25 22:30:24 2015 -0400 IB/ipoib: increase the max mcast backlog queue When performing sendonly joins, we queue the packets that trigger the join until the join completes. This may take on the order of hundreds of milliseconds. It is easy to have many more than three packets come in during that time. Expand the maximum queue depth in order to try and prevent dropped packets during the time it takes to join the multicast group. Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d323efc786910bcc0c8f8b9f97780c70544ac4df Author: Jiang Liu Date: Thu Sep 17 14:02:46 2015 +0800 ACPI / PCI: Remove duplicated penalty on SCI IRQ Now we have dedicated interface acpi_penalize_sci_irq() to penalize ISA IRQ used by ACPI SCI, so remove duplicated code to penalize ACPI SCI in acpi_irq_penalty_init(). Signed-off-by: Jiang Liu Acked-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_link.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5ebc76035303016ec41bb752bec156ea9fde7c34 Author: Jiang Liu Date: Thu Sep 17 14:02:45 2015 +0800 ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ Avoid IRQs occupied by ISA IRQs when allocating IRQs for PCI link devices, otherwise it may cause interrupt storm due to incompatible pin attributes. This issue was triggered on a KVM virtual machine, which 1) uses IRQ9 for SCI in high level mode. 2) defines an PCI interrupt link device (LNKS) with IRQ9 as the only possible irq. 3) has an PCI device referring to link device LNKS. So it causes interrupt storm when enabling the PCI device because PCI IRQ works in low level mode. Signed-off-by: Jiang Liu Acked-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki drivers/acpi/pci_irq.c | 1 + drivers/acpi/pci_link.c | 13 +++++++++++++ include/linux/acpi.h | 1 + 3 files changed, 15 insertions(+) commit 15b94fa32a422f4b97dc34e4b7060ec83d10bee5 Author: Lv Zheng Date: Thu Sep 24 14:54:40 2015 +0800 ACPI / EC: Fix a memory leak issue in acpi_ec_query() When query handler is not found, "result" is actually stil 0, and "struct acpi_ec_query" is not NULL, so the deletion code of "struct acpi_ec_query" at the end of the function cannot be invoked. As a consequence, memory leak can be observed. The issue is introduced by this commit: Commit: 02b771b64b73226052d6e731a0987db3b47281e9 Subject: ACPI / EC: Fix an issue caused by the serialized _Qxx This patch fixes such memory leakage. Fixes: 02b771b64b73 (ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations) Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 2 ++ 1 file changed, 2 insertions(+) commit d4a748a10e50d95992ae67677f1a1a13e2d6ed47 Merge: 03e8f64 9badce0 Author: Linus Torvalds Date: Fri Sep 25 16:20:55 2015 -0700 Merge branch 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull another cgroup fix from Tejun Heo: "The cgroup writeback support got inadvertently enabled for traditional hierarchies revealing two regressions which are currently being worked on. It shouldn't have been enabled on traditional hierarchies, so disable it on them. This is enough to make the regressions go away for people who aren't experimenting with cgroup" * 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup, writeback: don't enable cgroup writeback on traditional hierarchies commit e1a2d49cd5ef551c51be95cc037033e9e582b0cd Author: Stephen Boyd Date: Thu Sep 24 12:28:44 2015 -0700 PM / OPP: Fix typo modifcation -> modification Reported-by: Viresh Kumar Signed-off-by: Stephen Boyd Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 58a89ecaca53736aa465170530acea4f8be34ab4 Author: Guillaume Nault Date: Thu Sep 24 12:54:01 2015 +0200 ppp: fix lockdep splat in ppp_dev_uninit() ppp_dev_uninit() locks all_ppp_mutex while under rtnl mutex protection. ppp_create_interface() must then lock these mutexes in that same order to avoid possible deadlock. [ 120.880011] ====================================================== [ 120.880011] [ INFO: possible circular locking dependency detected ] [ 120.880011] 4.2.0 #1 Not tainted [ 120.880011] ------------------------------------------------------- [ 120.880011] ppp-apitest/15827 is trying to acquire lock: [ 120.880011] (&pn->all_ppp_mutex){+.+.+.}, at: [] ppp_dev_uninit+0x64/0xb0 [ppp_generic] [ 120.880011] [ 120.880011] but task is already holding lock: [ 120.880011] (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x12/0x14 [ 120.880011] [ 120.880011] which lock already depends on the new lock. [ 120.880011] [ 120.880011] [ 120.880011] the existing dependency chain (in reverse order) is: [ 120.880011] [ 120.880011] -> #1 (rtnl_mutex){+.+.+.}: [ 120.880011] [] lock_acquire+0xcf/0x10e [ 120.880011] [] mutex_lock_nested+0x56/0x341 [ 120.880011] [] rtnl_lock+0x12/0x14 [ 120.880011] [] register_netdev+0x11/0x27 [ 120.880011] [] ppp_ioctl+0x289/0xc98 [ppp_generic] [ 120.880011] [] do_vfs_ioctl+0x4ea/0x532 [ 120.880011] [] SyS_ioctl+0x4e/0x7d [ 120.880011] [] entry_SYSCALL_64_fastpath+0x12/0x6f [ 120.880011] [ 120.880011] -> #0 (&pn->all_ppp_mutex){+.+.+.}: [ 120.880011] [] __lock_acquire+0xb07/0xe76 [ 120.880011] [] lock_acquire+0xcf/0x10e [ 120.880011] [] mutex_lock_nested+0x56/0x341 [ 120.880011] [] ppp_dev_uninit+0x64/0xb0 [ppp_generic] [ 120.880011] [] rollback_registered_many+0x19e/0x252 [ 120.880011] [] rollback_registered+0x29/0x38 [ 120.880011] [] unregister_netdevice_queue+0x6a/0x77 [ 120.880011] [] ppp_release+0x42/0x79 [ppp_generic] [ 120.880011] [] __fput+0xec/0x192 [ 120.880011] [] ____fput+0x9/0xb [ 120.880011] [] task_work_run+0x66/0x80 [ 120.880011] [] prepare_exit_to_usermode+0x8c/0xa7 [ 120.880011] [] syscall_return_slowpath+0xe4/0x104 [ 120.880011] [] int_ret_from_sys_call+0x25/0x9f [ 120.880011] [ 120.880011] other info that might help us debug this: [ 120.880011] [ 120.880011] Possible unsafe locking scenario: [ 120.880011] [ 120.880011] CPU0 CPU1 [ 120.880011] ---- ---- [ 120.880011] lock(rtnl_mutex); [ 120.880011] lock(&pn->all_ppp_mutex); [ 120.880011] lock(rtnl_mutex); [ 120.880011] lock(&pn->all_ppp_mutex); [ 120.880011] [ 120.880011] *** DEADLOCK *** Fixes: 8cb775bc0a34 ("ppp: fix device unregistration upon netns deletion") Reported-by: Sedat Dilek Tested-by: Sedat Dilek Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 21343ac21ec7d871e94e98e288f3398a4207d9c0 Author: Sudip Mukherjee Date: Thu Sep 24 15:46:53 2015 +0530 net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected The builds of allmodconfig of avr32 is failing with: drivers/net/ethernet/via/via-rhine.c:1098:2: error: implicit declaration of function 'pci_iomap' [-Werror=implicit-function-declaration] drivers/net/ethernet/via/via-rhine.c:1119:2: error: implicit declaration of function 'pci_iounmap' [-Werror=implicit-function-declaration] The generic empty pci_iomap and pci_iounmap is used only if CONFIG_PCI is not defined and CONFIG_GENERIC_PCI_IOMAP is defined. Add GENERIC_PCI_IOMAP in the dependency list for VIA_RHINE as we are getting build failure when CONFIG_PCI and CONFIG_GENERIC_PCI_IOMAP both are not defined. Signed-off-by: Sudip Mukherjee Signed-off-by: David S. Miller drivers/net/ethernet/via/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 357cd64c18404309aabefb82019b12773de31a12 Author: Russell King Date: Thu Sep 24 00:07:17 2015 +0100 phy: marvell: add link partner advertised modes Read the standard link partner advertisment registers and store it in phydev->lp_advertising, so ethtool can report this information to userspace via ethtool. Zero it as per genphy if autonegotiation is disabled. Tested with a Marvell 88E1512 PHY. Signed-off-by: Russell King Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/marvell.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 03e8f644868f147e021e8660346890e731c2e435 Merge: 101688f 2b9dbef Author: Linus Torvalds Date: Fri Sep 25 12:08:41 2015 -0700 Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fixes from Chris Mason: "This is an assorted set I've been queuing up: Jeff Mahoney tracked down a tricky one where we ended up starting IO on the wrong mapping for special files in btrfs_evict_inode. A few people reported this one on the list. Filipe found (and provided a test for) a difficult bug in reading compressed extents, and Josef fixed up some quota record keeping with snapshot deletion. Chandan killed off an accounting bug during DIO that lead to WARN_ONs as we freed inodes" * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: keep dropped roots in cache until transaction commit Btrfs: Direct I/O: Fix space accounting btrfs: skip waiting on ordered range for special files Btrfs: fix read corruption of compressed and shared extents Btrfs: remove unnecessary locking of cleaner_mutex to avoid deadlock Btrfs: don't initialize a space info as full to prevent ENOSPC commit c3852ab0e606212de523c1fb1e15adbf9f431619 Author: Doug Ledford Date: Fri Sep 25 14:35:01 2015 -0400 IB/ipoib: Make sendonly multicast joins create the mcast group Since IPoIB should, as much as possible, emulate how multicast sends work on Ethernet for regular TCP/IP apps, there should be no requirement to subscribe to a multicast group before your sends are properly sent. However, due to the difference in how multicast is handled on InfiniBand, we must join the appropriate multicast group before we can send to it. Previously we tried not to trigger the auto-create feature of the subnet manager when doing this because we didn't have tracking of these sendonly groups and the auto-creation might never get undone. The previous patch added timing to these sendonly joins and allows us to leave them after a reasonable idle expiration time. So supply all of the information needed to auto-create group. Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit bd99b2e05c4df2a428e5c9dd338289089d0e26df Author: Christoph Lameter Date: Thu Sep 24 12:00:05 2015 -0500 IB/ipoib: Expire sendonly multicast joins On neighbor expiration, check to see if the neighbor was actually a sendonly multicast join, and if so, leave the multicast group as we expire the neighbor. Signed-off-by: Christoph Lameter Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 2 ++ drivers/infiniband/ulp/ipoib/ipoib_main.c | 18 ++++++++++++++++++ drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 ++-- 3 files changed, 22 insertions(+), 2 deletions(-) commit 101688f534fd322520678a184fdfedc7a21741fc Merge: ddff42e 500d701 Author: Linus Torvalds Date: Fri Sep 25 11:33:52 2015 -0700 Merge tag 'nfs-for-4.3-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfixes from Trond Myklebust: "Highlights include: Stable patches: - fix v4.2 SEEK on files over 2 gigs - Fix a layout segment reference leak when pNFS I/O falls back to inband I/O. - Fix recovery of recalled read delegations Bugfixes: - Fix a case where NFSv4 fails to send CLOSE after a server reboot - Fix sunrpc to wait for connections to complete before retrying - Fix sunrpc races between transport connect/disconnect and shutdown - Fix an infinite loop when layoutget fail with BAD_STATEID - nfs/filelayout: Fix NULL reference caused by double freeing of fh_array - Fix a bogus WARN_ON_ONCE() in O_DIRECT when layout commit_through_mds is set - Fix layoutreturn/close ordering issues" * tag 'nfs-for-4.3-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS41: make close wait for layoutreturn NFS: Skip checking ds_cinfo.buckets when lseg's commit_through_mds is set NFSv4.x/pnfs: Don't try to recover stateids twice in layoutget NFSv4: Recovery of recalled read delegations is broken NFS: Fix an infinite loop when layoutget fail with BAD_STATEID NFS: Do cleanup before resetting pageio read/write to mds SUNRPC: xs_sock_mark_closed() does not need to trigger socket autoclose SUNRPC: Lock the transport layer on shutdown nfs/filelayout: Fix NULL reference caused by double freeing of fh_array SUNRPC: Ensure that we wait for connections to complete before retrying SUNRPC: drop null test before destroy functions nfs: fix v4.2 SEEK on files over 2 gigs SUNRPC: Fix races between socket connection and destroy code nfs: fix pg_test page count calculation Failing to send a CLOSE if file is opened WRONLY and server reboots on a 4.x mount commit ddff42e5926bc0fcfcbc7d035cdbc325c36351bc Merge: 966966a 7f57d80 Author: Linus Torvalds Date: Fri Sep 25 11:25:30 2015 -0700 Merge tag 'sound-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "This ended up with a larger set of fixes than wished, unfortunately. As diffstat shows, the majority of changes are for various ASoC drivers (Realtek, Wolfson codec drivers, etc), in addition to a couple of HD-audio regression fixes. All these are reasonably small and nothing to scare much" * tag 'sound-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (29 commits) ALSA: hda - Disable power_save_node for Thinkpads ALSA: hda/tegra - async probe for avoiding module loading deadlock ASoC: rt5645: Prevent the pop sound in case of playback and the jack is plugging ASoC: rt5645: Increase the delay time to remove the pop sound ASoC: rt5645: Use the type SOC_DAPM_SINGLE_AUTODISABLE to prevent the weird sound in runtime of power up ASoC: pxa: pxa2xx-ac97: fix dma requestor lines MAINTAINERS: Update website and git repo for Wolfson Microelectronics ASoC: fsl_ssi: Fix checking of dai format for AC97 mode ASoC: wm0010: fix error path ASoC: wm0010: fix memory leak ASoC: wm8960: correct the max register value of mic boost pga ASoC: wm8962: remove 64k sample rate support ASoC: davinci-mcasp: Fix devm_kasprintf format string ASoC: fix broken pxa SoC support ASoC: davinci-mcasp: Set .symmetric_rates = 1 in snd_soc_dai_driver ASoC: au1x: psc-i2s: Fix unused variable 'ret' warning ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM ASoC: mediatek: Increase periods_min in capture ASoC: davinci-mcasp: Revise the FIFO threshold calculation ASoC: wm8960: correct gain value for input PGA and add microphone PGA ... commit 966966a630d936310ebb0f9bfe9e23a662d00454 Merge: b6d980f de24c18 Author: Linus Torvalds Date: Fri Sep 25 11:16:53 2015 -0700 Merge tag 'pci-v4.3-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fixes from Bjorn Helgaas: "These are fixes for things we merged for v4.3 (VPD, MSI, and bridge window management), and a new Renesas R8A7794 SoC device ID. Details: Resource management: - Revert pci_read_bridge_bases() unification (Bjorn Helgaas) - Clear IORESOURCE_UNSET when clipping a bridge window (Bjorn Helgaas) MSI: - Fix MSI IRQ domains for VFs on virtual buses (Alex Williamson) Renesas R-Car host bridge driver: - Add R8A7794 support (Sergei Shtylyov) Miscellaneous: - Fix devfn for VPD access through function 0 (Alex Williamson) - Use function 0 VPD only for identical functions (Alex Williamson)" * tag 'pci-v4.3-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI: rcar: Add R8A7794 support PCI: Use function 0 VPD for identical functions, regular VPD for others PCI: Fix devfn for VPD access through function 0 PCI/MSI: Fix MSI IRQ domains for VFs on virtual buses PCI: Clear IORESOURCE_UNSET when clipping a bridge window PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" commit 8494cdea2223b66491df1264619e2205b4487913 Author: Andrzej Hajda Date: Thu Sep 24 16:00:10 2015 +0200 spi: davinci: fix handling platform_get_irq result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2046107 Signed-off-by: Andrzej Hajda Signed-off-by: Mark Brown drivers/spi/spi-davinci.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b6d980f49342cbf823ef72fee8a572e43d43bcf8 Merge: 57cb635 920552b Author: Linus Torvalds Date: Fri Sep 25 10:51:40 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "AMD fixes for bugs introduced in the 4.2 merge window, and a few PPC bug fixes too" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: disable halt_poll_ns as default for s390x KVM: x86: fix off-by-one in reserved bits check KVM: x86: use correct page table format to check nested page table reserved bits KVM: svm: do not call kvm_set_cr0 from init_vmcb KVM: x86: trap AMD MSRs for the TSeg base and mask KVM: PPC: Book3S: Take the kvm->srcu lock in kvmppc_h_logical_ci_load/store() KVM: PPC: Book3S HV: Pass the correct trap argument to kvmhv_commence_exit KVM: PPC: Book3S HV: Fix handling of interrupted VCPUs kvm: svm: reset mmu on VCPU reset commit 57cb635c5cb6eea54af02aea5edd003b6b2715a7 Merge: ced255c d6eb71a Author: Linus Torvalds Date: Fri Sep 25 10:11:26 2015 -0700 Merge tag 'powerpc-4.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Wire up sys_membarrier() - cxl: Fix lockdep warning while creating afu_err_buff from Vaibhav * tag 'powerpc-4.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: cxl: Fix lockdep warning while creating afu_err_buff attribute powerpc: Wire up sys_membarrier() commit e74679b38c9417c1c524081121cdcdb36f82264d Author: Lars-Peter Clausen Date: Fri Sep 25 11:07:04 2015 +0200 ASoC: db1200: Fix DAI link format for db1300 and db1550 Commit b4508d0f95fa ("ASoC: db1200: Use static DAI format setup") switched the db1200 driver over to using static DAI format setup instead of a callback function. But the commit only added the dai_fmt field to one of the three DAI links in the driver. This breaks audio on db1300 and db1550. Add the two missing dai_fmt settings to fix the issue. Fixes: b4508d0f95fa ("ASoC: db1200: Use static DAI format setup") Reported-by: Manuel Lauss Tested-by: Manuel Lauss Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/au1x/db1200.c | 4 ++++ 1 file changed, 4 insertions(+) commit 283e8ba2dfde54f8f27d7d0f459a07de79a39d55 Author: David Howells Date: Fri Sep 25 16:31:46 2015 +0100 MODSIGN: Change from CMS to PKCS#7 signing if the openssl is too old The sign-file.c program actually uses CMS rather than PKCS#7 to sign a file since that allows the target X.509 certificate to be specified by subjectKeyId rather than by issuer + serialNumber. However, older versions of the OpenSSL crypto library (such as may be found in CentOS 5.11) don't support CMS. Assume everything prior to OpenSSL-1.0.0 doesn't support CMS and switch to using PKCS#7 in that case. Further, the pre-1.0.0 OpenSSL only supports PKCS#7 signing with SHA1, so give an error from the sign-file script if the caller requests anything other than SHA1. The compiler gives the following error with an OpenSSL crypto library that's too old: HOSTCC scripts/sign-file scripts/sign-file.c:23:25: fatal error: openssl/cms.h: No such file or directory #include Reported-by: Vinson Lee Signed-off-by: David Howells Acked-by: David Woodhouse Documentation/Changes | 2 +- scripts/sign-file.c | 94 +++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 78 insertions(+), 18 deletions(-) commit e7c87bef7de2417b219d4dbfe8d33a0098a8df54 Author: David Howells Date: Fri Sep 25 16:31:46 2015 +0100 X.509: Don't strip leading 00's from key ID when constructing key description Don't strip leading zeros from the crypto key ID when using it to construct the struct key description as the signature in kernels up to and including 4.2 matched this aspect of the key. This means that 1 in 256 keys won't actually match if their key ID begins with 00. The key ID is stored in the module signature as binary and so must be converted to text in order to invoke request_key() - but it isn't stripped at this point. Something like this is likely to be observed in dmesg when the key is loaded: [ 1.572423] Loaded X.509 cert 'Build time autogenerated kernel key: 62a7c3d2da278be024da4af8652c071f3fea33' followed by this when we try and use it: [ 1.646153] Request for unknown module key 'Build time autogenerated kernel key: 0062a7c3d2da278be024da4af8652c071f3fea33' err -11 The 'Loaded' line should show an extra '00' on the front of the hex string. This problem should not affect 4.3-rc1 and onwards because there the key should be matched on one of its auxiliary identities rather than the key struct's description string. Reported-by: Arjan van de Ven Reported-by: Andy Whitcroft Signed-off-by: David Howells crypto/asymmetric_keys/x509_public_key.c | 4 ---- 1 file changed, 4 deletions(-) commit 292c6091353475d94e2cfb49c29906e88ee967ba Author: David Howells Date: Fri Sep 25 16:31:45 2015 +0100 KEYS: Remove unnecessary header #inclusions from extract-cert.c Remove headers #included unnecessarily from extract-cert.c lest they cause compilation of the tool to fail against an older OpenSSL library. Signed-off-by: David Howells Acked-by: David Woodhouse scripts/extract-cert.c | 4 ---- 1 file changed, 4 deletions(-) commit 94c4554ba07adbdde396748ee7ae01e86cf2d8d7 Author: David Howells Date: Fri Sep 25 16:30:08 2015 +0100 KEYS: Fix race between key destruction and finding a keyring by name There appears to be a race between: (1) key_gc_unused_keys() which frees key->security and then calls keyring_destroy() to unlink the name from the name list (2) find_keyring_by_name() which calls key_permission(), thus accessing key->security, on a key before checking to see whether the key usage is 0 (ie. the key is dead and might be cleaned up). Fix this by calling ->destroy() before cleaning up the core key data - including key->security. Reported-by: Petr Matousek Signed-off-by: David Howells security/keys/gc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 81fb5e26a9d05674c048803a20cb8f08a1b1c9b8 Author: Sagi Grimberg Date: Thu Sep 24 10:34:24 2015 +0300 IB/mlx5: Remove pa_lkey usages Since mlx5 driver cannot rely on registration using the reserved lkey (global_dma_lkey) it used to allocate a private physical address lkey for each allocated pd. Commit 96249d70dd70 ("IB/core: Guarantee that a local_dma_lkey is available") just does it in the core layer so we can go ahead and use that. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 57 ------------------------------------ drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 -- drivers/infiniband/hw/mlx5/qp.c | 4 +-- 3 files changed, 1 insertion(+), 62 deletions(-) commit c6790aa9f4fdc26b1246ba36da2fd749663beb65 Author: Sagi Grimberg Date: Thu Sep 24 10:34:23 2015 +0300 IB/mlx5: Remove support for IB_DEVICE_LOCAL_DMA_LKEY Commit 96249d70dd70 ("IB/core: Guarantee that a local_dma_lkey is available") allows ULPs that make use of the local dma key to keep working as before by allocating a DMA MR with local permissions and converted these consumers to use the MR associated with the PD rather then device->local_dma_lkey. ConnectIB has some known issues with memory registration using the local_dma_lkey (SEND, RDMA, RECV seems to work ok). Thus don't expose support for it (remove device->local_dma_lkey setting), and take advantage of the above commit such that no regression is introduced to working systems. The local_dma_lkey support will be restored in CX4 depending on FW capability query. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 10 +--------- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 22 ---------------------- include/linux/mlx5/device.h | 11 ----------- include/linux/mlx5/driver.h | 1 - 4 files changed, 1 insertion(+), 43 deletions(-) commit 3cffd930171518821595839c5ce7036894ef0d74 Author: Sagi Grimberg Date: Thu Sep 24 10:34:22 2015 +0300 IB/iser: Add module parameter for always register memory This module parameter forces memory registration even for a continuous memory region. It is true by default as sending an all-physical rkey with remote permissions might be insecure. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 5 +++++ drivers/infiniband/ulp/iser/iscsi_iser.h | 1 + drivers/infiniband/ulp/iser/iser_memory.c | 18 ++++++++++++------ drivers/infiniband/ulp/iser/iser_verbs.c | 21 +++++++++++++-------- 4 files changed, 31 insertions(+), 14 deletions(-) commit bb6c96d72879fe1f674a804eb95b891def4ace61 Author: Chuck Lever Date: Thu Sep 24 10:34:21 2015 +0300 xprtrdma: Replace global lkey with lkey local to PD The core API has changed so that devices that do not have a global DMA lkey automatically create an mr, per-PD, and make that lkey available. The global DMA lkey interface is going away in favor of the per-PD DMA lkey. The per-PD DMA lkey is always available. Convert xprtrdma to use the device's per-PD DMA lkey for regbufs, no matter which memory registration scheme is in use. Signed-off-by: Chuck Lever Signed-off-by: Sagi Grimberg Cc: linux-nfs Acked-by: Anna Schumaker Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/fmr_ops.c | 19 ------------------- net/sunrpc/xprtrdma/frwr_ops.c | 5 ----- net/sunrpc/xprtrdma/physical_ops.c | 10 +--------- net/sunrpc/xprtrdma/verbs.c | 2 +- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 5 files changed, 2 insertions(+), 35 deletions(-) commit 310b7cec8ea32dcd4e9978423717ce78dd89d45d Merge: e116a64 1f93e4a Author: Doug Ledford Date: Fri Sep 25 10:46:07 2015 -0400 Merge tag 'v4.3-rc2' into k.o/for-4.3-v1 Linux 4.3-rc2 commit b5cabbcbd157a4bf5a92dfc85134999a3b55342d Author: Adrian Hunter Date: Thu Sep 24 13:05:22 2015 +0300 perf tools: Fix copying of /proc/kcore A copy of /proc/kcore containing the kernel text can be made to the buildid cache. e.g. perf buildid-cache -v -k /proc/kcore To workaround objdump limitations, a copy is also made when annotating against /proc/kcore. The copying process stops working from libelf about v1.62 onwards (the problem was found with v1.63). The cause is that a call to gelf_getphdr() in kcore__add_phdr() fails because additional validation has been added to gelf_getphdr(). The use of gelf_getphdr() is a misguided attempt to get default initialization of the Gelf_Phdr structure. That should not be necessary because every member of the Gelf_Phdr structure is subsequently assigned. So just remove the call to gelf_getphdr(). Similarly, a call to gelf_getehdr() in gelf_kcore__init() can be removed also. Committer notes: Note to stable@kernel.org, from Adrian in the cover letter for this patchkit: The "Fix copying of /proc/kcore" problem goes back to v3.13 if you think it is important enough for stable. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: stable@kernel.org Link: http://lkml.kernel.org/r/1443089122-19082-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) commit 597ee40722bf05195f91a41e88e15b79bdab152c Author: Adrian Hunter Date: Thu Sep 24 13:05:21 2015 +0300 perf intel-pt: Remove no_force_psb from documentation no_force_psb was dropped as a late change to the kernel driver. Consequently, remove it from the documentation. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1443089122-19082-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/intel-pt.txt | 15 --------------- 1 file changed, 15 deletions(-) commit 266fa2b22294909ddf6e7d2f8acfe07adf9fd978 Author: Arnaldo Carvalho de Melo Date: Thu Sep 24 11:24:18 2015 -0300 perf probe: Use existing routine to look for a kernel module by dso->short_name We have map_groups__find_by_name() to look at the list of modules that are in place for a given machine, so use it instead of traversing the machine dso list, which also includes DSOs for userspace. When merging the user and kernel DSO lists a bug was introduced where 'perf probe' stopped being able to add probes to modules using its short name: # perf probe -m usbnet --add usbnet_start_xmit usbnet_start_xmit is out of .text, skip it. Error: Failed to add events. # With this fix it works again: # perf probe -m usbnet --add usbnet_start_xmit Added new event: probe:usbnet_start_xmit (on usbnet_start_xmit in usbnet) You can now use it in all perf tools, such as: perf record -e probe:usbnet_start_xmit -aR sleep 1 # Reported-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Fixes: 3d39ac538629 ("perf machine: No need to have two DSOs lists") Link: http://lkml.kernel.org/r/20150924015008.GE1897@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit f9fef6181a9590261c296be9e2a19b6aa3c13ba7 Author: Luis de Bethencourt Date: Fri Sep 18 18:21:49 2015 +0200 phy: berlin-sata: 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: Kishon Vijay Abraham I drivers/phy/phy-berlin-sata.c | 1 + 1 file changed, 1 insertion(+) commit 08db7e5cbfc0ec3fa4f6ed483dc663afeae7ce16 Author: huang lin Date: Fri Jul 17 15:29:25 2015 +0800 phy: rockchip-usb: power down phy when rockchip phy probe rockchip phy are enable when soc reset, to save power consumption, we disable it when probe, and enable each phy when it use Signed-off-by: huang lin Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-rockchip-usb.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 65d49b3d7068525117f8e1458f0496732d02fe15 Author: Yaniv Gardi Date: Wed Sep 2 11:32:17 2015 +0300 phy: qcom-ufs: fix build error when the component is built as a module Export the following functions in order to avoid build errors when the component PHY_QCOM_UFS is compiled as a module: ERROR: "ufs_qcom_phy_disable_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_enable_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_is_pcs_ready" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_disable_iface_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_start_serdes" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_calibrate_phy" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_enable_dev_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_set_tx_lane_enable" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_disable_dev_ref_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_save_controller_version" [drivers/scsi/ufs/ufs-qcom.ko] undefined! ERROR: "ufs_qcom_phy_enable_iface_clk" [drivers/scsi/ufs/ufs-qcom.ko] undefined! make[1]: *** [__modpost] Error 1 Signed-off-by: Yaniv Gardi Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-qcom-ufs.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 920552b213e3dc832a874b4e7ba29ecddbab31bc Author: David Hildenbrand Date: Fri Sep 18 12:34:53 2015 +0200 KVM: disable halt_poll_ns as default for s390x We observed some performance degradation on s390x with dynamic halt polling. Until we can provide a proper fix, let's enable halt_poll_ns as default only for supported architectures. Architectures are now free to set their own halt_poll_ns default value. Signed-off-by: David Hildenbrand Signed-off-by: Paolo Bonzini arch/arm/include/asm/kvm_host.h | 1 + arch/arm64/include/asm/kvm_host.h | 1 + arch/mips/include/asm/kvm_host.h | 1 + arch/powerpc/include/asm/kvm_host.h | 1 + arch/s390/include/asm/kvm_host.h | 1 + arch/x86/include/asm/kvm_host.h | 1 + virt/kvm/kvm_main.c | 4 ++-- 7 files changed, 8 insertions(+), 2 deletions(-) commit 58c95070da3a504fbeca7939435bbb062cb96ea3 Author: Paolo Bonzini Date: Tue Sep 22 10:15:59 2015 +0200 KVM: x86: fix off-by-one in reserved bits check 29ecd6601904 ("KVM: x86: avoid uninitialized variable warning", 2015-09-06) introduced a not-so-subtle problem, which probably escaped review because it was not part of the patch context. Before the patch, leaf was always equal to iterator.level. After, it is equal to iterator.level - 1 in the call to is_shadow_zero_bits_set, and when is_shadow_zero_bits_set does another "-1" the check on reserved bits becomes incorrect. Using "iterator.level" in the call fixes this call trace: WARNING: CPU: 2 PID: 17000 at arch/x86/kvm/mmu.c:3385 handle_mmio_page_fault.part.93+0x1a/0x20 [kvm]() Modules linked in: tun sha256_ssse3 sha256_generic drbg binfmt_misc ipv6 vfat fat fuse dm_crypt dm_mod kvm_amd kvm crc32_pclmul aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd fam15h_power amd64_edac_mod k10temp edac_core amdkfd amd_iommu_v2 radeon acpi_cpufreq [...] Call Trace: dump_stack+0x4e/0x84 warn_slowpath_common+0x95/0xe0 warn_slowpath_null+0x1a/0x20 handle_mmio_page_fault.part.93+0x1a/0x20 [kvm] tdp_page_fault+0x231/0x290 [kvm] ? emulator_pio_in_out+0x6e/0xf0 [kvm] kvm_mmu_page_fault+0x36/0x240 [kvm] ? svm_set_cr0+0x95/0xc0 [kvm_amd] pf_interception+0xde/0x1d0 [kvm_amd] handle_exit+0x181/0xa70 [kvm_amd] ? kvm_arch_vcpu_ioctl_run+0x68b/0x1730 [kvm] kvm_arch_vcpu_ioctl_run+0x6f6/0x1730 [kvm] ? kvm_arch_vcpu_ioctl_run+0x68b/0x1730 [kvm] ? preempt_count_sub+0x9b/0xf0 ? mutex_lock_killable_nested+0x26f/0x490 ? preempt_count_sub+0x9b/0xf0 kvm_vcpu_ioctl+0x358/0x710 [kvm] ? __fget+0x5/0x210 ? __fget+0x101/0x210 do_vfs_ioctl+0x2f4/0x560 ? __fget_light+0x29/0x90 SyS_ioctl+0x4c/0x90 entry_SYSCALL_64_fastpath+0x16/0x73 ---[ end trace 37901c8686d84de6 ]--- Reported-by: Borislav Petkov Tested-by: Borislav Petkov Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fec21449a62702a582cecbb0b351363e039c95e Author: Paolo Bonzini Date: Tue Sep 22 23:02:14 2015 +0200 KVM: x86: use correct page table format to check nested page table reserved bits Intel CPUID on AMD host or vice versa is a weird case, but it can happen. Handle it by checking the host CPU vendor instead of the guest's in reset_tdp_shadow_zero_bits_mask. For speed, the check uses the fact that Intel EPT has an X (executable) bit while AMD NPT has NX. Reported-by: Borislav Petkov Tested-by: Borislav Petkov Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 79a8059d244e99454e474902e4325ee9b50e9178 Author: Paolo Bonzini Date: Mon Sep 21 07:46:55 2015 +0200 KVM: svm: do not call kvm_set_cr0 from init_vmcb kvm_set_cr0 may want to call kvm_zap_gfn_range and thus access the memslots array (SRCU protected). Using a mini SRCU critical section is ugly, and adding it to kvm_arch_vcpu_create doesn't work because the VMX vcpu_create callback calls synchronize_srcu. Fixes this lockdep splat: =============================== [ INFO: suspicious RCU usage. ] 4.3.0-rc1+ #1 Not tainted ------------------------------- include/linux/kvm_host.h:488 suspicious rcu_dereference_check() usage! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 0 1 lock held by qemu-system-i38/17000: #0: (&(&kvm->mmu_lock)->rlock){+.+...}, at: kvm_zap_gfn_range+0x24/0x1a0 [kvm] [...] Call Trace: dump_stack+0x4e/0x84 lockdep_rcu_suspicious+0xfd/0x130 kvm_zap_gfn_range+0x188/0x1a0 [kvm] kvm_set_cr0+0xde/0x1e0 [kvm] init_vmcb+0x760/0xad0 [kvm_amd] svm_create_vcpu+0x197/0x250 [kvm_amd] kvm_arch_vcpu_create+0x47/0x70 [kvm] kvm_vm_ioctl+0x302/0x7e0 [kvm] ? __lock_is_held+0x51/0x70 ? __fget+0x101/0x210 do_vfs_ioctl+0x2f4/0x560 ? __fget_light+0x29/0x90 SyS_ioctl+0x4c/0x90 entry_SYSCALL_64_fastpath+0x16/0x73 Reported-by: Borislav Petkov Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7e5560a5648ab2bce7199c73b9c2a51b846f5541 Author: Geliang Tang Date: Thu Sep 24 04:48:53 2015 -0700 perf/x86: Change test_aperfmperf() and test_intel() to static Fixes the following sparse warnings: arch/x86/kernel/cpu/perf_event_msr.c:13:6: warning: symbol 'test_aperfmperf' was not declared. Should it be static? arch/x86/kernel/cpu/perf_event_msr.c:18:6: warning: symbol 'test_intel' was not declared. Should it be static? Signed-off-by: Geliang Tang Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/4588e8ab09638458f2451af572827108be3b4a36.1443123796.git.geliangtang@163.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_msr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 673681cafa99776e334c3e61cafa2cf115950c32 Author: Nicholas Bellinger Date: Tue Sep 22 22:32:14 2015 -0700 iscsi-target: Avoid OFMarker + IFMarker negotiation This patch fixes a v4.2+ regression introduced by commit c04a6091 that removed support for obsolete sync-and-steering markers usage as originally defined in RFC-3720. The regression would involve attempting to send OFMarker=No + IFMarker=No keys during opertional negotiation login phase, including when initiators did not actually propose these keys. The result for MSFT iSCSI initiators would be random junk in TCP stream after the last successful login request was been sent signaling the move to full feature phase (FFP) operation. To address this bug, go ahead and avoid negotiating these keys by default unless the initiator explicitly proposes them, but still respond to them with 'No' if they are proposed. Reported-by: Dragan Milivojević Bisected-by: Christophe Vu-Brugier Tested-by: Christophe Vu-Brugier Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_parameters.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8fa3a867486f85df66eba8c4df85804d3309c6ad Author: Nicholas Bellinger Date: Wed Sep 16 20:23:53 2015 -0700 target: Make TCM_WRITE_PROTECT failure honor D_SENSE bit This patch changes transport_lookup_cmd_lun() to obtain se_lun->lun_ref + se_cmd->se_device rcu_dereference during TCM_WRITE_PROTECT -> CHECK_CONDITION failure status. Do this to ensure the active control D_SENSE mode page bit is being honored. Reported-by: Sagi Grimberg Reviewed-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 40 +++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 17 deletions(-) commit f3bb467ff64b2598d023b3a07592748fa7768b6a Author: Nicholas Bellinger Date: Tue Sep 15 23:07:45 2015 -0700 target: Fix target_sense_desc_format NULL pointer dereference This patch allows target_sense_desc_format() to be called without a valid se_device pointer, which can occur during an early exception ahead of transport_lookup_cmd_lun() setting up se_cmd->se_device. This addresses a v4.3-rc1 specific NULL pointer dereference regression introduced by commit 4e4937e8. Cc: Sagi Grimberg Cc: Christoph Hellwig Cc: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/target_core_hba.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eeeb9522231118138be418ff527dc8c9050f4707 Author: Nicholas Bellinger Date: Tue Sep 15 17:27:35 2015 -0700 target: Propigate backend read-only to core_tpg_add_lun This patch adds a DF_READ_ONLY flag that is used by IBLOCK to signal when a backend has been set to read-only mode, in order to propigate read-only status up to core_tpg_add_lun() for all future LUN fabric exports. With this is place, existing emulation for reporting read-only in spc_emulate_modesense() and normal transport_lookup_cmd_lun() TCM_WRITE_PROTECTED status checking just works as expected. Reported-by: Joeue Deng Reported-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_iblock.c | 2 ++ drivers/target/target_core_tpg.c | 5 ++++- include/target/target_core_base.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) commit 3ccd6e83df8a0d4a664edeecc453c4fa046395fb Author: Nicholas Bellinger Date: Sun Sep 13 02:30:46 2015 -0700 target: Fix PR registration + APTPL RCU conversion regression This patch fixes a v4.2+ regression introduced by commit 79dc9c9e86 where lookup of t10_pr_registration->pr_reg_deve and associated ->pr_kref get was missing from __core_scsi3_do_alloc_registration(), which is responsible for setting DEF_PR_REG_ACTIVE. This would result in REGISTER operations completing successfully, but subsequent core_scsi3_pr_seq_non_holder() checking would fail with !DEF_PR_REG_ACTIVE -> RESERVATION CONFLICT status. Update __core_scsi3_add_registration() to drop ->pr_kref reference after registration and any optional ALL_TG_PT=1 processing has completed. Update core_scsi3_decode_spec_i_port() to release the new parent local_pr_reg->pr_kref as well. Also, update __core_scsi3_check_aptpl_registration() to perform the same target_nacl_find_deve() lookup + ->pr_kref get, now that __core_scsi3_add_registration() expects to drop the reference. Finally, since there are cases when se_dev_entry->se_lun_acl can still be dereferenced in core_scsi3_lunacl_undepend_item() while holding ->pr_kref, go ahead and move explicit rcu_assign_pointer() NULL assignments within core_disable_device_list_for_node() until after orig->pr_comp finishes. Reported-by: Scott L. Lykens Tested-by: Scott L. Lykens Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Lee Duncan Cc: # v4.2+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 5 +- drivers/target/target_core_pr.c | 91 +++++++++++++++++++++++++++---------- 2 files changed, 70 insertions(+), 26 deletions(-) commit b626ef0128d254d33ee43c51d68f577bbec370ac Merge: 17a10c9 9861f72 Author: David S. Miller Date: Thu Sep 24 23:04:53 2015 -0700 Merge branch 'phy-mdio-refcnt' Russell King says: ==================== Phy, mdiobus, and netdev struct device fixes The third version of this series fixes the build error which David identified, and drops the broken changes for the Cavium Thunger BGX ethernet driver as this driver requires some complex changes to resolve the leakage - and this is best done by people who can test the driver. Compared to v2, the only patch which has changed is patch 6 "net: fix phy refcounting in a bunch of drivers" I _think_ I've been able to build-test all the drivers touched by that patch to some degree now, though several of them needed the Kconfig hacked to allow it (not all had || COMPILE_TEST clause on their dependencies.) Previous cover letters below: This is the second version of the series, with the comments David had on the first patch fixed up. Original series description with updated diffstat below. While looking at the DSA code, I noticed we have a of_find_net_device_by_node(), and it looks like users of that are similarly buggy - it looks like net/dsa/dsa.c is the only user. Fix that too. Hi, While looking at the phy code, I identified a number of weaknesses where refcounting on device structures was being leaked, where modules could be removed while in-use, and where the fixed-phy could end up having unintended consequences caused by incorrect calls to fixed_phy_update_state(). This patch series resolves those issues, some of which were discovered with testing on an Armada 388 board. Not all patches are fully tested, particularly the one which touches several network drivers. When resolving the struct device refcounting problems, several different solutions were considered before settling on the implementation here - one of the considerations was to avoid touching many network drivers. The solution here is: phy_attach*() - takes a refcount phy_detach*() - drops the phy_attach refcount Provided drivers always attach and detach their phys, which they should already be doing, this should change nothing, even if they leak a refcount. of_phy_find_device() and of_* functions which use that take a refcount. Arrange for this refcount to be dropped once the phy is attached. This is the reason why the previous change is important - we can't drop this refcount taken by of_phy_find_device() until something else holds a reference on the device. This resolves the leaked refcount caused by using of_phy_connect() or of_phy_attach(). Even without the above changes, these drivers are leaking by calling of_phy_find_device(). These drivers are addressed by adding the appropriate release of that refcount. The mdiobus code also suffered from the same kind of leak, but thankfully this only happened in one place - the mdio-mux code. I also found that the try_module_get() in the phy layer code was utterly useless: phydev->dev.driver was guaranteed to always be NULL, so try_module_get() was always being called with a NULL argument. I proved this with my SFP code, which declares its own MDIO bus - the module use count was never incremented irrespective of how I set the MDIO bus up. This allowed the MDIO bus code to be removed from the kernel while there were still PHYs attached to it. One other bug was discovered: while using in-band-status with mvneta, it was found that if a real phy is attached with in-band-status enabled, and another ethernet interface is using the fixed-phy infrastructure, the interface using the fixed-phy infrastructure is configured according to the other interface using the in-band-status - which is caused by the fixed-phy code not verifying that the phy_device passed in is actually a fixed-phy device, rather than a real MDIO phy. Lastly, having mdio_bus reversing phy_device_register() internals seems like a layering violation - it's trivial to move that code to the phy device layer. ==================== Tested-by: Florian Fainelli Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 9861f72074c77a8a065622c1be7e9c4277e600eb Author: Russell King Date: Thu Sep 24 20:36:33 2015 +0100 net: fix net_device refcounting of_find_net_device_by_node() uses class_find_device() internally to lookup the corresponding network device. class_find_device() returns a reference to the embedded struct device, with its refcount incremented. Add a comment to the definition in net/core/net-sysfs.c indicating the need to drop this refcount, and fix the DSA code to drop this refcount when the OF-generated platform data is cleaned up and freed. Also arrange for the ref to be dropped when handling errors. Signed-off-by: Russell King Signed-off-by: David S. Miller net/core/net-sysfs.c | 9 +++++++++ net/dsa/dsa.c | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) commit 38737e490d4ea91660d3cec83ef88c4e6d360ae4 Author: Russell King Date: Thu Sep 24 20:36:28 2015 +0100 phy: add phy_device_remove() Add a phy_device_remove() function to complement phy_device_register(), which undoes the effects of phy_device_register() by removing the phy device from visibility, but not freeing it. This allows these details to be moved out of the mdio bus code into the phy code where this action belongs. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 5 +++-- drivers/net/phy/mdio_bus.c | 15 ++++++++++----- drivers/net/phy/phy_device.c | 18 ++++++++++++++++++ include/linux/phy.h | 1 + 4 files changed, 32 insertions(+), 7 deletions(-) commit d618bf2bfd2a095644c852ebea16f5a981f9d875 Author: Russell King Date: Thu Sep 24 20:36:23 2015 +0100 phy: fixed-phy: properly validate phy in fixed_phy_update_state() Validate that the phy_device passed into fixed_phy_update_state() is a fixed-phy device before walking the list of phys for a fixed phy at the same address. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04d53b20fe44afe635b3d4438b437f7a12927e9a Author: Russell King Date: Thu Sep 24 20:36:18 2015 +0100 net: fix phy refcounting in a bunch of drivers of_phy_find_device() increments the phy struct device refcount, which we need to properly balance. Add code to network drivers using this function to ensure that the struct device refcount is correctly balanced. For xgene, looking back in the history, we should be able to use of_phy_connect() with a zero flags argument for the DT case as this is how the driver used to operate prior to de7b5b3d790a ("net: eth: xgene: change APM X-Gene SoC platform ethernet to support ACPI"). This leaves the Cavium Thunder BGX unfixed; fixing this driver is a complicated task, one which the maintainers need to be involved with. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 24 ++++++++++++++++-------- drivers/net/ethernet/freescale/gianfar.c | 3 +++ drivers/net/ethernet/freescale/ucc_geth.c | 8 +++++++- drivers/net/ethernet/marvell/mvneta.c | 2 ++ drivers/net/ethernet/xilinx/xilinx_emaclite.c | 2 ++ 5 files changed, 30 insertions(+), 9 deletions(-) commit f018ae7a8c576345d56a0cd40d86c0574a2eb360 Author: Russell King Date: Thu Sep 24 20:36:13 2015 +0100 of_mdio: fix MDIO phy device refcounting bus_find_device() is defined as: * This is similar to the bus_for_each_dev() function above, but it * returns a reference to a device that is 'found' for later use, as * determined by the @match callback. and it does indeed return a reference-counted pointer to the device: while ((dev = next_device(&i))) if (match(dev, data) && get_device(dev)) ^^^^^^^^^^^^^^^ break; klist_iter_exit(&i); return dev; What that means is that when we're done with the struct device, we must drop that reference. Neither of_phy_connect() nor of_phy_attach() did this when phy_connect_direct() or phy_attach_direct() failed. With our previous patch, phy_connect_direct() and phy_attach_direct() take a new refcount on the phy device when successful, so we can drop our local reference immediatley after these functions, whether or not they succeeded. Signed-off-by: Russell King Acked-by: Rob Herring Signed-off-by: David S. Miller drivers/of/of_mdio.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) commit 7322967bc1bd97ac9c49ecea19e5a1f681ca27ee Author: Russell King Date: Thu Sep 24 20:36:08 2015 +0100 phy: add proper phy struct device refcounting Take a refcount on the phy struct device when the phy device is attached to a network device, and drop it after it's detached. This ensures that a refcount is held on the phy device while the device is being used by a network device, thereby preventing the phy_device from being unexpectedly kfree()'d by phy_device_release(). Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 3e3aaf649416988ca8be4ad2c52dc24d8be7b46e Author: Russell King Date: Thu Sep 24 20:36:02 2015 +0100 phy: fix mdiobus module safety Re-implement the mdiobus module refcounting to ensure that we actually ensure that the mdiobus module code does not go away while we might call into it. The old scheme using bus->dev.driver was buggy, because bus->dev is a class device which never has a struct device_driver associated with it, and hence the associated code trying to obtain a refcount did nothing useful. Instead, take the approach that other subsystems do: pass the module when calling mdiobus_register(), and record that in the mii_bus struct. When we need to increment the module use count in the phy code, use this stored pointer. When the phy is deteched, drop the module refcount, remembering that the phy device might go away at that point. This doesn't stop the mii_bus going away while there are in-use phys - it merely stops the underlying code vanishing. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 5 +++-- drivers/net/phy/phy_device.c | 32 ++++++++++++++++++-------------- include/linux/phy.h | 5 ++++- 3 files changed, 25 insertions(+), 17 deletions(-) commit e496ae690b2faff751e1849fb97b060615e21f28 Author: Russell King Date: Thu Sep 24 20:35:57 2015 +0100 net: dsa: fix of_mdio_find_bus() device refcount leak Current users of of_mdio_find_bus() leak a struct device refcount, as they fail to clean up the reference obtained inside class_find_device(). Fix the DSA code to properly refcount the returned MDIO bus by: 1. taking a reference on the struct device whenever we assign it to pd->chip[x].host_dev. 2. dropping the reference when we overwrite the existing reference. 3. dropping the reference when we free the data structure. 4. dropping the initial reference we obtained after setting up the platform data structure, or on failure. In step 2 above, where we obtain a new MDIO bus, there is no need to take a reference on it as we would only have to drop it immediately after assignment again, iow: put_device(cd->host_dev); /* drop original assignment ref */ cd->host_dev = get_device(&mdio_bus_switch->dev); /* get our ref */ put_device(&mdio_bus_switch->dev); /* drop of_mdio_find_bus ref */ Signed-off-by: Russell King Signed-off-by: David S. Miller net/dsa/dsa.c | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) commit a136442131443d929d2d8d243157824de4dfbae8 Author: Russell King Date: Thu Sep 24 20:35:52 2015 +0100 phy: fix of_mdio_find_bus() device refcount leak of_mdio_find_bus() leaks a struct device refcount, caused by using class_find_device() and not realising that the device reference has its refcount incremented: * Note, you will need to drop the reference with put_device() after use. ... while ((dev = class_dev_iter_next(&iter))) { if (match(dev, data)) { get_device(dev); break; } Update the comment, and arrange for the phy code to drop this refcount when disposing of a reference to it. Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/phy/mdio-mux.c | 19 +++++++++++++------ drivers/net/phy/mdio_bus.c | 4 +++- 2 files changed, 16 insertions(+), 7 deletions(-) commit ced255c0c5fb9ab52c9465982f23b1c14005ef8b Merge: 4401555 97584d1 Author: Linus Torvalds Date: Thu Sep 24 20:14:26 2015 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux Pull thermal management fixes from Zhang Rui: - Power allocator governor changes to allow binding on thermal zones with missing power estimates information. From Javi Merino. - Add compile test flags on thermal drivers that allow it without producing compilation errors. From Eduardo Valentin. - Fixes around memory allocation on cpu_cooling. From Javi Merino. - Fix on db8500 cpufreq code to allow autoload. From Luis de Bethencourt. - Maintainer entries for cpu cooling device * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: thermal: power_allocator: exit early if there are no cooling devices thermal: power_allocator: don't require tzp to be present for the thermal zone thermal: power_allocator: relax the requirement of two passive trip points thermal: power_allocator: relax the requirement of a sustainable_power in tzp thermal: Add a function to get the minimum power thermal: cpu_cooling: free power table on error or when unregistering thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock thermal: db8500_cpufreq_cooling: Fix module autoload for OF platform driver thermal: cpu_cooling: Add MAINTAINERS entry thermal: ti-soc: Kconfig fix to avoid menu showing wrongly thermal: ti-soc: allow compile test thermal: qcom_spmi: allow compile test thermal: exynos: allow compile test thermal: armada: allow compile test thermal: dove: allow compile test thermal: kirkwood: allow compile test thermal: rockchip: allow compile test thermal: spear: allow compile test thermal: hisi: allow compile test thermal: Fix thermal_zone_of_sensor_register to match documentation commit 0b23a1ece9be2c3e04c3b8d3594a1ada1fa1ae50 Author: Andy Shevchenko Date: Mon Sep 14 11:55:36 2015 +0300 dmaengine: idma64: improve residue estimation The residue calculation may provide a wrong estimation when the transfer is started. There are possible scenarios we have to separate: 1) the transfer is not started yet; residue is equal to the total length; 2) the transfer is just started (first chunk is ongoing); residue is equal to the total length without already transfered bytes; 3) the transfer is ongoing and we already sent few chunks of data; residue is equal to the total length without fully transfered chunks and already sent bytes. Mistakenly the calculation in cases 2) and 3) was done in the similar way and the result is equal to -bytes that have been transfered, i.e. quite big since size_t type can't keep negative values. Rewrite the calculation algorithm to be one pass and have a correct result. Besides above in case user asks for a status of the active DMA descriptor without pausing an ongoing transfer the residue will be estimated based on the register value, though it's still racy. Since the transfer is active the value is continuously being changed. Here we have to read two registers at a time. To minimize an error make those reads close to each other. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/idma64.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit c1492b4c541e3a382b60f1b5879cd3c4d246ad31 Author: Andrzej Hajda Date: Thu Sep 24 16:00:17 2015 +0200 dmaengine: xgene-dma: fix handling xgene_dma_get_ring_size result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2046107 Signed-off-by: Andrzej Hajda Signed-off-by: Vinod Koul drivers/dma/xgene-dma.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit aebf5a67db8dbacbc624b9c652b81f5460b15eff Author: Robert Jarzmik Date: Mon Sep 21 11:06:32 2015 +0200 dmaengine: pxa_dma: fix initial list move Since the commit to have an allocated list of virtual descriptors was reverted, the pxa_dma driver is broken, as it assumes the descriptor is placed on the allocated list upon allocation. Fix the issue in pxa_dma by making an allocated virtual descriptor a singleton. Fixes: 8c8fe97b2b8a ("Revert "dmaengine: virt-dma: don't always free descriptor upon completion"") Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 1 + 1 file changed, 1 insertion(+) commit a8360062ccfb4b891d3013d0e55826c8bcb02bfb Author: Rafael J. Wysocki Date: Fri Sep 18 03:08:40 2015 +0200 PCI / PM: Update runtime PM documentation for PCI devices Section 3.2 "Device Runtime Power Management" of pci.txt has become outdated, so update it to correctly reflect the current code flow. Also update the comment in local_pci_probe() to document the fact that pm_runtime_put_noidle() is not the only runtime PM helper function that can be used to decrement the device's runtime PM usage counter in .probe(). Signed-off-by: Rafael J. Wysocki Acked-by: Alan Stern Documentation/power/pci.txt | 51 +++++++++++++++++++++++++++++++++------------ drivers/pci/pci-driver.c | 7 ++++--- 2 files changed, 42 insertions(+), 16 deletions(-) commit 4401555a98601a3de7cc876ceeac1d5d09f617e6 Merge: cc8b8fa a13f18f Author: Linus Torvalds Date: Thu Sep 24 17:46:38 2015 -0700 Merge tag 'devicetree-fixes-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull DeviceTree fixes from Rob Herring: - Silence bogus warning for of_irq_parse_pci - Fix typo in ARM idle-states binding doc and dts files - Various minor binding documentation updates * tag 'devicetree-fixes-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: Documentation: arm: Fix typo in the idle-states bindings examples gpio: mention in DT binding doc that -gpio is deprecated of_pci_irq: Silence bogus "of_irq_parse_pci() failed ..." messages. devicetree: bindings: Extend the bma180 bindings with bma250 info of: thermal: Mark cooling-*-level properties optional of: thermal: Fix inconsitency between cooling-*-state and cooling-*-level Docs: dt: add #msi-cells to GICv3 ITS binding of: add vendor prefix for Socionext Inc. commit 680168a58a9315e1301f4ebb062244470d4919b0 Author: Viresh Kumar Date: Tue Sep 22 09:35:31 2015 -0700 PM / OPP: of_property_count_u32_elems() can return errors of_property_count_u32_elems() will never return 0, but a -ve error value of a positive count. And so the current !count check is wrong. Also, a missing "opp-microvolt" property isn't a problem and so we need to do of_find_property() separately to confirm that. Fixes: 274659029c9d (PM / OPP: Add support to parse "operating-points-v2" bindings) Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit fe5b2756c1acbfc2d9df380523ef6320e69bb166 Merge: 79a313f a797451 Author: Olof Johansson Date: Thu Sep 24 16:51:43 2015 -0700 Merge tag 'v4.3-rockchip32-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into fixes Add the ddc-i2c-bus reference to the veyron hdmi nodes, so that they can read the edid of connected displays. * tag 'v4.3-rockchip32-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: Add ddc i2c reference to veyron Signed-off-by: Olof Johansson commit 79a313f5a587eae14a0f96df5d819c2fe266e3e9 Author: Benjamin Gaignard Date: Wed Sep 23 21:48:03 2015 +0200 ARM: sti: dt: adapt DT to fix probe/bind issues in DRM driver STI drm drivers probe and bind using component framework was incorrect. In addition to drivers fix DT update is needed to make all sub-components become childs of sti-display-subsystem. Signed-off-by: Benjamin Gaignard Signed-off-by: Maxime Coquelin Signed-off-by: Olof Johansson arch/arm/boot/dts/stih407.dtsi | 82 +++++++++++++++++++++--------------------- arch/arm/boot/dts/stih410.dtsi | 82 +++++++++++++++++++++--------------------- 2 files changed, 80 insertions(+), 84 deletions(-) commit bc13b23323b6a6c710ba2c7125866554e8bee84b Merge: 54c3cf6 50b956f Author: Olof Johansson Date: Thu Sep 24 16:48:43 2015 -0700 Merge tag 'qcom-fixes-for-4.3-rc1' of git://codeaurora.org/quic/kernel/agross-msm into fixes Qualcomm fixes for v4.3-rc1 * Add SCM function call stubs on ARM64 * tag 'qcom-fixes-for-4.3-rc1' of git://codeaurora.org/quic/kernel/agross-msm: firmware: qcom: scm: Add function stubs for ARM64 Signed-off-by: Olof Johansson commit 9a5e3f27d1b8ca349b79e8b5fe1874eeeedb6f45 Author: Kishon Vijay Abraham I Date: Fri Sep 4 17:38:24 2015 +0530 ARM: dts: fix omap2+ address translation for pbias "ARM: dts: : add minimal l4 bus layout with control module support" moved pbias_regulator dt node from being a child node of ocp to be the child node of 'syscon'. Since 'syscon' doesn't have the 'ranges' property, address translation fails while trying to convert the address to resource. Fix it here by populating 'ranges' property in syscon dt node. Fixes: 72b10ac00eb1 ("ARM: dts: omap24xx: add minimal l4 bus layout with control module support") Fixes: 7415b0b4c645 ("ARM: dts: omap4: add minimal l4 bus layout with control module support") Fixes: ed8509edddeb ("ARM: dts: omap5: add minimal l4 bus layout with control module support") Fixes: d919501feffa ("ARM: dts: dra7: add minimal l4 bus layout with control module support") Signed-off-by: Kishon Vijay Abraham I [tony@atomide.com: fixed omap3 pbias to work] Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 1 + arch/arm/boot/dts/omap2430.dtsi | 1 + arch/arm/boot/dts/omap3.dtsi | 25 +++++++++++++------------ arch/arm/boot/dts/omap4.dtsi | 1 + arch/arm/boot/dts/omap5.dtsi | 1 + 5 files changed, 17 insertions(+), 12 deletions(-) commit 4bbc2bc1a4e81c1a3522b3bd9d43fffd2eca8c9e Merge: 84ad1ba b9c9364 Author: Tony Lindgren Date: Thu Sep 24 16:23:20 2015 -0700 Merge commit 'b8c93646fd5c' into omap-for-v4.3/fixes commit 17a10c9215b39a5ea8faeb241759c1aee6553919 Author: Matt Bennett Date: Fri Sep 25 11:01:47 2015 +1200 ip6_tunnel: Reduce log level in ip6_tnl_err() to debug Currently error log messages in ip6_tnl_err are printed at 'warn' level. This is different to other tunnel types which don't print any messages. These log messages don't provide any information that couldn't be deduced with networking tools. Also it can be annoying to have one end of the tunnel go down and have the logs fill with pointless messages such as "Path to destination invalid or inactive!". This patch reduces the log level of these messages to 'dbg' level to bring the visible behaviour into line with other tunnel types. Signed-off-by: Matt Bennett Signed-off-by: David S. Miller net/ipv6/ip6_tunnel.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit a13f18f59d2646754cda3662a9e215ff43e7a7d5 Author: Lorenzo Pieralisi Date: Thu Sep 24 15:53:56 2015 +0100 Documentation: arm: Fix typo in the idle-states bindings examples The idle-states bindings mandate that the entry-method string in the idle-states node must be "psci" for ARM v8 64-bit systems, but the examples in the bindings report a wrong entry-method string. Owing to this typo, some dts in the kernel wrongly defined the entry-method property, since they likely cut and pasted the example definition without paying attention to the bindings definitions. This patch fixes the typo in the DT idle states bindings examples and respective dts in the kernel so that the bindings and related dts files are made compliant. Signed-off-by: Lorenzo Pieralisi Cc: Howard Chen Cc: Rob Herring Cc: Mark Rutland Cc: Heiko Stuebner Signed-off-by: Rob Herring Documentation/devicetree/bindings/arm/idle-states.txt | 2 +- arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 +- arch/arm64/boot/dts/rockchip/rk3368.dtsi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e7ae65ced7dd71aa3dc29bda7a94ac82d9ea7751 Author: Javier Martinez Canillas Date: Mon Sep 21 14:57:25 2015 +0200 gpio: mention in DT binding doc that -gpio is deprecated The gpiolib supports parsing DT properties of the form -gpio but it was only added for compatibility with older DT bindings that got it wrong and should not be used in newer bindings. The commit that added support for this was: dd34c37aa3e8 ("gpio: of: Allow -gpio suffix for property names") but didn't update the documentation to explain this so it's been a source of confusion. So let's make this clear in the GPIO DT binding doc. Signed-off-by: Javier Martinez Canillas Signed-off-by: Rob Herring Documentation/devicetree/bindings/gpio/gpio.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cc8b8faea417bd264d23fa5d017da52b75bbdf94 Merge: bfbaa60 fd03420 Author: Linus Torvalds Date: Thu Sep 24 15:37:06 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Most of the GPU drivers people were at XDC last week, so I didn't get much to send, so I let it rollover until this week. Also Alex was away for 3 weeks so amdgpu/radeon got a bit more stuff than usual in one go. I've been trying to figure out some 4.2 issues with i915 still (that are fixed in 4.3, but bisecting ends up in a merge commit). Hopefully next week I or i915 people can work that out" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (46 commits) drm: Allow also control clients to check the drm version drm/vmwgfx: Fix uninitialized return in vmw_kms_helper_dirty() drm/vmwgfx: Fix uninitialized return in vmw_cotable_unbind() drm/layerscape: fix handling fsl_dcu_drm_plane_index result drm/mgag200: Fix driver_load error handling drm/mgag200: Fix error handling paths in fbdev driver drm/qxl: only report first monitor as connected if we have no state drm/radeon: add quirk for MSI R7 370 drm/amdgpu: Sprinkle drm_modeset_lock_all to appease locking checks drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks drm/amdgpu: sync ce and me with SWITCH_BUFFER(2) drm/amdgpu: integer overflow in amdgpu_mode_dumb_create() drm/amdgpu: info leak in amdgpu_gem_metadata_ioctl() drm/amdgpu: integer overflow in amdgpu_info_ioctl() drm/amdgpu: unwind properly in amdgpu_cs_parser_init() drm/amdgpu: Fix max_vblank_count value for current display engines drm/amdgpu: use kmemdup rather than duplicating its implementation drm/amdgpu: fix UVD suspend and resume for VI APU drm/amdgpu: fix the UVD suspend sequence order drm/amdgpu: make UVD handle checking more strict ... commit deccbe80be947fa89bca18510699893c38856f38 Merge: a46496c babc305e2 Author: David S. Miller Date: Thu Sep 24 15:36:20 2015 -0700 Merge tag 'mac80211-for-davem-2015-09-22' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Just two small fixes: * VHT MCS mask array overrun, reported by Dan Carpenter * reset CQM history to always get a notification, from Sara Sharon ==================== Signed-off-by: David S. Miller commit a46496ce38eeb401344d5623c1960dbf2f1769be Author: Matt Bennett Date: Wed Sep 23 16:58:31 2015 +1200 ip6_gre: Reduce log level in ip6gre_err() to debug Currently error log messages in ip6gre_err are printed at 'warn' level. This is different to most other tunnel types which don't print any messages. These log messages don't provide any information that couldn't be deduced with networking tools. Also it can be annoying to have one end of the tunnel go down and have the logs fill with pointless messages such as "Path to destination invalid or inactive!". This patch reduces the log level of these messages to 'dbg' level to bring the visible behaviour into line with other tunnel types. Signed-off-by: Matt Bennett Signed-off-by: David S. Miller net/ipv6/ip6_gre.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 41fc014332d91ee90c32840bf161f9685b7fbf2b Author: Wilson Kok Date: Tue Sep 22 21:40:22 2015 -0700 fib_rules: fix fib rule dumps across multiple skbs dump_rules returns skb length and not error. But when family == AF_UNSPEC, the caller of dump_rules assumes that it returns an error. Hence, when family == AF_UNSPEC, we continue trying to dump on -EMSGSIZE errors resulting in incorrect dump idx carried between skbs belonging to the same dump. This results in fib rule dump always only dumping rules that fit into the first skb. This patch fixes dump_rules to return error so that we exit correctly and idx is correctly maintained between skbs that are part of the same dump. Signed-off-by: Wilson Kok Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/core/fib_rules.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit de24c18c0faca5ebd618e1cb87f5489745e40475 Author: Sergei Shtylyov Date: Sat Sep 12 02:06:09 2015 +0300 PCI: rcar: Add R8A7794 support Add Renesas R8A7794 SoC support to the Renesas R-Car gen2 PCI driver. Signed-off-by: Sergei Shtylyov Signed-off-by: Bjorn Helgaas Acked-by: Simon Horman Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt | 3 ++- drivers/pci/host/pci-rcar-gen2.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit da2d03ea27f6ed9d2005a67b20dd021ddacf1e4d Author: Alex Williamson Date: Tue Sep 15 22:24:46 2015 -0600 PCI: Use function 0 VPD for identical functions, regular VPD for others 932c435caba8 ("PCI: Add dev_flags bit to access VPD through function 0") added PCI_DEV_FLAGS_VPD_REF_F0. Previously, we set the flag on every non-zero function of quirked devices. If a function turned out to be different from function 0, i.e., it had a different class, vendor ID, or device ID, the flag remained set but we didn't make VPD accessible at all. Flip this around so we only set PCI_DEV_FLAGS_VPD_REF_F0 for functions that are identical to function 0, and allow regular VPD access for any other functions. [bhelgaas: changelog, stable tag] Fixes: 932c435caba8 ("PCI: Add dev_flags bit to access VPD through function 0") Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Acked-by: Myron Stowe Acked-by: Mark Rustad CC: stable@vger.kernel.org drivers/pci/access.c | 22 ---------------------- drivers/pci/quirks.c | 20 ++++++++++++++++++-- 2 files changed, 18 insertions(+), 24 deletions(-) commit 9d9240756e63dd87d6cbf5da8b98ceb8f8192b55 Author: Alex Williamson Date: Tue Sep 15 11:17:21 2015 -0600 PCI: Fix devfn for VPD access through function 0 Commit 932c435caba8 ("PCI: Add dev_flags bit to access VPD through function 0") passes PCI_SLOT(devfn) for the devfn parameter of pci_get_slot(). Generally this works because we're fairly well guaranteed that a PCIe device is at slot address 0, but for the general case, including conventional PCI, it's incorrect. We need to get the slot and then convert it back into a devfn. Fixes: 932c435caba8 ("PCI: Add dev_flags bit to access VPD through function 0") Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Acked-by: Myron Stowe Acked-by: Mark Rustad CC: stable@vger.kernel.org drivers/pci/access.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 38ea72bdb65df2f40ec77b2c9d1413e7f5e34465 Author: Alex Williamson Date: Fri Sep 18 15:08:54 2015 -0600 PCI/MSI: Fix MSI IRQ domains for VFs on virtual buses SR-IOV creates a virtual bus where bus->self is NULL. When we add VFs and scan for an MSI domain, pci_set_bus_msi_domain() dereferences bus->self, which causes a kernel NULL pointer dereference oops. Scan up to the parent bus until we find a real bridge where we can get the MSI domain. [bhelgaas: changelog] Fixes: 44aa0c657e3e ("PCI/MSI: Add hooks to populate the msi_domain field") Tested-by: Joerg Roedel Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Acked-by: Marc Zyngier drivers/pci/probe.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit d682d2bdc30650a5c7ce9908ab83ab674b658744 Author: Eric Dumazet Date: Tue Sep 22 17:04:58 2015 -0700 bnx2x: byte swap rss_key to comply to Toeplitz specs After a good amount of debugging, I found bnx2x was byte swaping the 40 bytes of rss_key. If we byte swap the key, then bnx2x generates hashes matching MSDN specs as documented in (Verifying the RSS Hash Calculation) https://msdn.microsoft.com/en-us/library/windows/hardware/ff571021% 28v=vs.85%29.aspx It is mostly a non issue, unless we want to mix different NIC in a host, and want consistent hashing among all of them, ie if they all use the boot time generated rss key, or if some application is choosing specific tuple(s) so that incoming traffic lands into known rx queue(s). Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit d8aecb10115497f6cdf841df8c88ebb3ba25fa28 Author: WANG Cong Date: Tue Sep 22 17:01:11 2015 -0700 net: revert "net_sched: move tp->root allocation into fw_init()" fw filter uses tp->root==NULL to check if it is the old method, so it doesn't need allocation at all in this case. This patch reverts the offending commit and adds some comments for old method to make it obvious. Fixes: 33f8b9ecdb15 ("net_sched: move tp->root allocation into fw_init()") Reported-by: Akshat Kakkar Cc: Jamal Hadi Salim Signed-off-by: Cong Wang Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller net/sched/cls_fw.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit bfbaa60d186d81207e61e7f4337fa442860aef72 Merge: d5fc4f5 012572d Author: Linus Torvalds Date: Thu Sep 24 14:31:40 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "15 fixes" * emailed patches from Andrew Morton : ocfs2/dlm: fix deadlock when dispatch assert master membarrier: clean up selftest vmscan: fix sane_reclaim helper for legacy memcg lib/iommu-common.c: do not try to deref a null iommu->lazy_flush() pointer when n < pool->hint x86, efi, kasan: #undef memset/memcpy/memmove per arch mm: migrate: hugetlb: putback destination hugepage to active list mm, dax: VMA with vm_ops->pfn_mkwrite wants to be write-notified userfaultfd: register uapi generic syscall (aarch64) userfaultfd: selftest: don't error out if pthread_mutex_t isn't identical userfaultfd: selftest: return an error if BOUNCE_VERIFY fails userfaultfd: selftest: avoid my_bcmp false positives with powerpc userfaultfd: selftest: only warn if __NR_userfaultfd is undefined userfaultfd: selftest: headers fixup userfaultfd: selftests: vm: pick up sanitized kernel headers userfaultfd: revert "userfaultfd: waitqueue: add nr wake parameter to __wake_up_locked_key" commit 8fe79c60a2932b8c8e1a55ac6847467dcd41af0e Merge: d5b8d64 b194f30c Author: David S. Miller Date: Thu Sep 24 14:31:37 2015 -0700 Merge branch 'lwt_arp' Jiri Benc says: ==================== lwtunnel: make it really work, for IPv4 One of the selling points of lwtunnel was the ability to specify the tunnel destination using routes. However, this doesn't really work currently, as ARP and ndisc replies are not handled correctly. ARP and ndisc replies won't have tunnel metadata attached, thus they will be sent out with the default parameters or not sent at all, either way never reaching the requester. Most of the egress tunnel parameters can be inferred from the ingress metada. The only and important exception is UDP ports. This patchset infers the egress data from the ingress data and disallow settings of UDP ports in tunnel routes. If there's a need for different UDP ports, a new interface needs to be created for each port combination. Note that it's still possible to specify the UDP ports to use, it just needs to be done while creating the vxlan/geneve interface. This covers only ARPs. IPv6 ndisc has the same problem but is harder to solve, as there's already dst attached to outgoing skbs. Ideas to solve this are welcome. ==================== Signed-off-by: David S. Miller commit b194f30c61efb0767a98f47a64530baa8b731670 Author: Jiri Benc Date: Tue Sep 22 18:12:12 2015 +0200 lwtunnel: remove source and destination UDP port config option The UDP tunnel config is asymmetric wrt. to the ports used. The source and destination ports from one direction of the tunnel are not related to the ports of the other direction. We need to be able to respond to ARP requests using the correct ports without involving routing. As the consequence, UDP ports need to be fixed property of the tunnel interface and cannot be set per route. Remove the ability to set ports per route. This is still okay to do, as no kernel has been released with these attributes yet. Note that the ability to specify source and destination ports is preserved for other users of the lwtunnel API which don't use routes for tunnel key specification (like openvswitch). If in the future we rework ARP handling to allow port specification, the attributes can be added back. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/uapi/linux/lwtunnel.h | 4 ---- net/ipv4/ip_tunnel_core.c | 24 ------------------------ 2 files changed, 28 deletions(-) commit 63d008a4e9ee86614ca5671b7f3ba447df007190 Author: Jiri Benc Date: Tue Sep 22 18:12:11 2015 +0200 ipv4: send arp replies to the correct tunnel When using ip lwtunnels, the additional data for xmit (basically, the actual tunnel to use) are carried in ip_tunnel_info either in dst->lwtstate or in metadata dst. When replying to ARP requests, we need to send the reply to the same tunnel the request came from. This means we need to construct proper metadata dst for ARP replies. We could perform another route lookup to get a dst entry with the correct lwtstate. However, this won't always ensure that the outgoing tunnel is the same as the incoming one, and it won't work anyway for IPv4 duplicate address detection. The only thing to do is to "reverse" the ip_tunnel_info. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 2 ++ net/ipv4/arp.c | 39 +++++++++++++++++++++++++-------------- net/ipv4/ip_tunnel_core.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 14 deletions(-) commit d5b8d6404395641987db76e28334cae4cef771ae Author: Sudeep Holla Date: Mon Sep 21 16:47:09 2015 +0100 net: gianfar: remove misuse of IRQF_NO_SUSPEND flag The device is set as wakeup capable using proper wakeup API but the driver misuses IRQF_NO_SUSPEND to set the interrupt as wakeup source which is incorrect. This patch removes the use of IRQF_NO_SUSPEND flags replacing it with enable_irq_wake instead. Cc: "David S. Miller" Cc: Claudiu Manoil Cc: Kevin Hao Cc: netdev@vger.kernel.org Signed-off-by: Sudeep Holla Acked-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 6ae459bdaaeebc632b16e54dcbabb490c6931d61 Author: Pravin B Shelar Date: Tue Sep 22 12:57:53 2015 -0700 skbuff: Fix skb checksum flag on skb pull VXLAN device can receive skb with checksum partial. But the checksum offset could be in outer header which is pulled on receive. This results in negative checksum offset for the skb. Such skb can cause the assert failure in skb_checksum_help(). Following patch fixes the bug by setting checksum-none while pulling outer header. Following is the kernel panic msg from old kernel hitting the bug. ------------[ cut here ]------------ kernel BUG at net/core/dev.c:1906! RIP: 0010:[] skb_checksum_help+0x144/0x150 Call Trace: [] queue_userspace_packet+0x408/0x470 [openvswitch] [] ovs_dp_upcall+0x5d/0x60 [openvswitch] [] ovs_dp_process_packet_with_key+0xe6/0x100 [openvswitch] [] ovs_dp_process_received_packet+0x4b/0x80 [openvswitch] [] ovs_vport_receive+0x2a/0x30 [openvswitch] [] vxlan_rcv+0x53/0x60 [openvswitch] [] vxlan_udp_encap_recv+0x8b/0xf0 [openvswitch] [] udp_queue_rcv_skb+0x2dc/0x3b0 [] __udp4_lib_rcv+0x1cf/0x6c0 [] udp_rcv+0x1a/0x20 [] ip_local_deliver_finish+0xdd/0x280 [] ip_local_deliver+0x88/0x90 [] ip_rcv_finish+0x10d/0x370 [] ip_rcv+0x235/0x300 [] __netif_receive_skb+0x55d/0x620 [] netif_receive_skb+0x80/0x90 [] virtnet_poll+0x555/0x6f0 [] net_rx_action+0x134/0x290 [] __do_softirq+0xa8/0x210 [] call_softirq+0x1c/0x30 [] do_softirq+0x65/0xa0 [] irq_exit+0x8e/0xb0 [] do_IRQ+0x63/0xe0 [] common_interrupt+0x6e/0x6e Reported-by: Anupam Chanda Signed-off-by: Pravin B Shelar Acked-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 3 +++ 1 file changed, 3 insertions(+) commit fd03420b5624617a708fb9b13634b41b37c22cfa Merge: 0a3579e cd67d22 Author: Dave Airlie Date: Fri Sep 25 06:52:37 2015 +1000 Merge tag 'drm-intel-fixes-2015-09-24' of git://anongit.freedesktop.org/drm-intel into drm-fixes a few drm/i915 fixes, including a fix to the recent regression reported by Sedat Dilek * tag 'drm-intel-fixes-2015-09-24' of git://anongit.freedesktop.org/drm-intel: drm/i915/bios: handle MIPI Sequence Block v3+ gracefully drm/i915: Add primary plane to mask if it's visible drm/i915: workaround bad DSL readout v3 drm/i915: fix kernel-doc warnings in intel_audio.c commit 9badce000e2ce68ba74838a3cd356dde58221c2f Author: Tejun Heo Date: Wed Sep 23 17:07:29 2015 -0400 cgroup, writeback: don't enable cgroup writeback on traditional hierarchies inode_cgwb_enabled() gates cgroup writeback support. If it returns true, each inode is attached to the corresponding memory domain which gets mapped to io domain. It currently only tests whether the filesystem and bdi support cgroup writeback; however, cgroup writeback support doesn't work on traditional hierarchies and thus it should also test whether memcg and iocg are on the default hierarchy. This caused traditional hierarchy setups to hit the cgroup writeback path inadvertently and ended up creating separate writeback domains for each memcg and mapping them all to the root iocg uncovering a couple issues in the cgroup writeback path. cgroup writeback was never meant to be enabled on traditional hierarchies. Make inode_cgwb_enabled() test whether both memcg and iocg are on the default hierarchy. Signed-off-by: Tejun Heo Reported-by: Artem Bityutskiy Reported-by: Dexuan Cui Link: http://lkml.kernel.org/g/1443012552.19983.209.camel@gmail.com Link: http://lkml.kernel.org/g/f30d4a6aa8a546ff88f73021d026a453@SIXPR30MB031.064d.mgd.msft.net include/linux/backing-dev.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit da314c9923fed553a007785a901fd395b7eb6c19 Author: Herbert Xu Date: Tue Sep 22 11:38:56 2015 +0800 netlink: Replace rhash_portid with bound On Mon, Sep 21, 2015 at 02:20:22PM -0400, Tejun Heo wrote: > > store_release and load_acquire are different from the usual memory > barriers and can't be paired this way. You have to pair store_release > and load_acquire. Besides, it isn't a particularly good idea to OK I've decided to drop the acquire/release helpers as they don't help us at all and simply pessimises the code by using full memory barriers (on some architectures) where only a write or read barrier is needed. > depend on memory barriers embedded in other data structures like the > above. Here, especially, rhashtable_insert() would have write barrier > *before* the entry is hashed not necessarily *after*, which means that > in the above case, a socket which appears to have set bound to a > reader might not visible when the reader tries to look up the socket > on the hashtable. But you are right we do need an explicit write barrier here to ensure that the hashing is visible. > There's no reason to be overly smart here. This isn't a crazy hot > path, write barriers tend to be very cheap, store_release more so. > Please just do smp_store_release() and note what it's paired with. It's not about being overly smart. It's about actually understanding what's going on with the code. I've seen too many instances of people simply sprinkling synchronisation primitives around without any knowledge of what is happening underneath, which is just a recipe for creating hard-to-debug races. > > @@ -1539,7 +1546,7 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr, > > } > > } > > > > - if (!nlk->portid) { > > + if (!nlk->bound) { > > I don't think you can skip load_acquire here just because this is the > second deref of the variable. That doesn't change anything. Race > condition could still happen between the first and second tests and > skipping the second would lead to the same kind of bug. The reason this one is OK is because we do not use nlk->portid or try to get nlk from the hash table before we return to user-space. However, there is a real bug here that none of these acquire/release helpers discovered. The two bound tests here used to be a single one. Now that they are separate it is entirely possible for another thread to come in the middle and bind the socket. So we need to repeat the portid check in order to maintain consistency. > > @@ -1587,7 +1594,7 @@ static int netlink_connect(struct socket *sock, struct sockaddr *addr, > > !netlink_allowed(sock, NL_CFG_F_NONROOT_SEND)) > > return -EPERM; > > > > - if (!nlk->portid) > > + if (!nlk->bound) > > Don't we need load_acquire here too? Is this path holding a lock > which makes that unnecessary? Ditto. ---8<--- The commit 1f770c0a09da855a2b51af6d19de97fb955eca85 ("netlink: Fix autobind race condition that leads to zero port ID") created some new races that can occur due to inconcsistencies between the two port IDs. Tejun is right that a barrier is unavoidable. Therefore I am reverting to the original patch that used a boolean to indicate that a user netlink socket has been bound. Barriers have been added where necessary to ensure that a valid portid and the hashed socket is visible. I have also changed netlink_insert to only return EBUSY if the socket is bound to a portid different to the requested one. This combined with only reading nlk->bound once in netlink_bind fixes a race where two threads that bind the socket at the same time with different port IDs may both succeed. Fixes: 1f770c0a09da ("netlink: Fix autobind race condition that leads to zero port ID") Reported-by: Tejun Heo Reported-by: Linus Torvalds Signed-off-by: Herbert Xu Nacked-by: Tejun Heo Signed-off-by: David S. Miller net/netlink/af_netlink.c | 39 ++++++++++++++++++++++++++++----------- net/netlink/af_netlink.h | 2 +- 2 files changed, 29 insertions(+), 12 deletions(-) commit 7f57d803ee03730d570dc59a9e3e4842b58dd5cc Author: Takashi Iwai Date: Thu Sep 24 17:36:51 2015 +0200 ALSA: hda - Disable power_save_node for Thinkpads Lenovo Thinkpads with recent Realtek codecs seem suffering from click noises at power transition since the introduction of widget power saving in 4.1 kernel. Although this might be solved by some delays in appropriate points, as a quick workaround, just disable the power_save_node feature for now. The gain it gives is relatively small, and this makes the situation back to pre 4.1 time. This patch ended up with a bit more code changes than usual because the existing fixup for Thinkpads is highly chained. Instead of adding yet another chain, combine a few of them into a single fixup entry, as a gratis cleanup. Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982 Cc: # v4.1+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) commit 1ce3cbe2ab4074ca5196e74a45665a2cd87bbdb1 Merge: 8351044 ed14ee0 Author: Takashi Iwai Date: Thu Sep 24 20:48:01 2015 +0200 Merge tag 'asoc-fix-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.3 A disappointingly large set of fixes, though none of them very big and very widely spread over many different drivers. Nothing especially stands out, it's mostly all device specific and relatively minor. commit d5fc4f555d7d29f9c868e7505e08bcd7676bc943 Merge: bbad822 711e020 Author: Linus Torvalds Date: Thu Sep 24 11:40:58 2015 -0700 Merge tag 'spi-fix-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A disappointingly large collection of fixes for SPI issues, though almost all in drivers (and there mainly the newly added Mediatek driver) and the core fixes are documentation and error handling. The driver fixes are all of the usual 'important if you see them' variety" * tag 'spi-fix-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: xtensa-xtfpga: fix register endianness spi: meson: Fix module autoload for OF platform driver spi: mediatek: fix wrong error return value on probe spi: fix kernel-doc warnings in spi.h spi: spidev: fix possible NULL dereference spi: atmel: remove warning when !CONFIG_PM_SLEEP spi: bcm2835: BUG: fix wrong use of PAGE_MASK spi: mediatek: fix spi cs polarity error spi: Fix documentation of spi_alloc_master() spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled spi: Mediatek: Document devicetree bindings update for spi bus spi: mediatek: fix spi clock usage error spi: mediatek: remove clk_disable_unprepare() commit bbad8220c6ce21edf2144f997e5ba476f5117b33 Merge: 5146c8e 16651fc Author: Linus Torvalds Date: Thu Sep 24 11:10:03 2015 -0700 Merge tag 'regulator-fix-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fixes from Mark Brown: "A collection of fixes that came in since I tagged the merge window pull request for v4.3: - Error handling fixes in the core - Fixes to a couple of TI drivers for device specific issues - Several fixes for module autoloading" * tag 'regulator-fix-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: vexpress: Fix module autoload for OF platform driver regulator: gpio: Fix module autoload for OF platform driver regulator: anatop: Fix module autoload for OF platform driver regulator: core: Correct return value check in regulator_resolve_supply regulator: tps65218: Fix missing zero typo regulator: pbias: program pbias register offset in pbias driver regulator: core: fix possible NULL dereference commit 5146c8e4dfce5e6c671791b39d5f3c04bbd08715 Merge: bcee19f 586b286 Author: Linus Torvalds Date: Thu Sep 24 11:04:22 2015 -0700 Merge tag 'dm-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: "Two stable@ fixes: - DM thinp fix to properly advertise discard support as disabled for thin devices backed by a thin-pool with discard support disabled. - DM crypt fix to prevent the creation of bios that violate the underlying block device's max_segments limits. This fixes a relatively long-standing NCQ SSD corruption issue reported against dm-crypt ever since the dm-crypt cpu parallelization patches were merged back in 4.0" * tag 'dm-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE dm thin: disable discard support for thin devices if pool's is disabled commit f7418bc10d8402798ee3add5ef0ed5f33266a2bb Author: Felix Fietkau Date: Thu Sep 24 14:59:49 2015 +0200 mac80211: fix handling of PS filtering with fast-xmit Fixes dropped packets in the tx path in case a non-PS station triggers the tx filter. Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg net/mac80211/status.c | 1 + net/mac80211/tx.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) commit 0af822110871400908d5b6f83a8908c45f881d8f Author: Felipe F. Tonello Date: Wed Sep 16 18:40:32 2015 +0100 ARM: dts: fix usb pin control for imx-rex dts This fixes a duplicated pin control causing this error: imx6q-pinctrl 20e0000.iomuxc: pin MX6Q_PAD_GPIO_1 already requested by regulators:regulator@2; cannot claim for 2184000.usb imx6q-pinctrl 20e0000.iomuxc: pin-137 (2184000.usb) status -22 imx6q-pinctrl 20e0000.iomuxc: could not request pin 137 (MX6Q_PAD_GPIO_1) from group usbotggrp on device 20e0000.iomuxc imx_usb 2184000.usb: Error applying setting, reverse things back imx6q-pinctrl 20e0000.iomuxc: pin MX6Q_PAD_EIM_D31 already requested by regulators:regulator@1; cannot claim for 2184200.usb imx6q-pinctrl 20e0000.iomuxc: pin-52 (2184200.usb) status -22 imx6q-pinctrl 20e0000.iomuxc: could not request pin 52 (MX6Q_PAD_EIM_D31) from group usbh1grp on device 20e0000.iomuxc imx_usb 2184200.usb: Error applying setting, reverse things back Signed-off-by: Felipe F. Tonello Fixes: e2047e33f2bd ("ARM: dts: add initial Rex Pro board support") Cc: Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-rex.dtsi | 2 -- 1 file changed, 2 deletions(-) commit 83510441bc08bee201c0ded9d81da6dfd008d69a Author: Takashi Iwai Date: Thu Sep 24 11:00:18 2015 +0200 ALSA: hda/tegra - async probe for avoiding module loading deadlock The Tegra HD-audio controller driver causes deadlocks when loaded as a module since the driver invokes request_module() at binding with the codec driver. This patch works around it by deferring the probe in a work like Intel HD-audio controller driver does. Although hovering the codec probe stuff into udev would be a better solution, it may cause other regressions, so let's try this band-aid fix until the more proper solution gets landed. Reported-by: Thierry Reding Tested-by: Thierry Reding Cc: Signed-off-by: Takashi Iwai sound/pci/hda/hda_tegra.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit 4bdb4629867babb7a3d93548aa69a4ef07fc36c0 Author: Javier Martinez Canillas Date: Wed Sep 16 11:12:34 2015 +0200 OMAPDSS: panel-sony-acx565akm: Export OF module alias information Drivers needs to export the OF id table and this be built into the module or udev won't have the necessary information to autoload the driver module when the device is registered via OF. Signed-off-by: Javier Martinez Canillas Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/displays-new/panel-sony-acx565akm.c | 1 + 1 file changed, 1 insertion(+) commit ad38cc5f6d4f2c74ed69e2c017691e428549b2bd Author: Vladimir Zapolskiy Date: Tue Sep 15 16:12:33 2015 +0300 fbdev: omap2: connector-dvi: use of_get_i2c_adapter_by_node interface This change is needed to properly lock I2C bus driver, which serves DDC. Prior to this change i2c_put_adapter() is misused, which may lead to an overflow over zero of I2C bus driver user counter. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/displays-new/connector-dvi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23aa4db78aa7da994ae12d85acf7413ba2517946 Author: Ondrej Zary Date: Mon Aug 24 21:37:26 2015 +0200 tridentfb: Fix set_lwidth on TGUI9440 and CYBER9320 According to X.Org driver, chips older than TGUI9660 have only 1 width bit in AddColReg. Touching the 2nd one causes I2C/DDC to fail on TGUI9440. Set only 1 bit of width in AddColReg on TGUI9440 and CYBER9320. Signed-off-by: Ondrej Zary Signed-off-by: Tomi Valkeinen drivers/video/fbdev/tridentfb.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 7f2ea957c1152a7b57c22af2ae603bf66965c06e Author: Ondrej Zary Date: Mon Aug 24 21:37:25 2015 +0200 tridentfb: fix hang on Blade3D with CONFIG_CC_OPTIMIZE_FOR_SIZE When the kernel is compiled with -Os (CONFIG_CC_OPTIMIZE_FOR_SIZE), tridentfb hangs the machine upon load with Blade3D cards unless acceleration is disabled. This is caused by memcpy() which copies data byte-by-byte (rep movsb) when compiled with -Os. The card does not like that - it requires 32-bit access. Use iowrite_32() instead. Signed-off-by: Ondrej Zary Acked-by: Krzysztof Helt Signed-off-by: Tomi Valkeinen drivers/video/fbdev/tridentfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e9191ac7b29a250b2baab7069ea9cc614c5133c Author: Luis de Bethencourt Date: Fri Sep 18 20:46:09 2015 +0200 video: fbdev: mb862xx: 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: Tomi Valkeinen drivers/video/fbdev/mb862xx/mb862xxfbdrv.c | 1 + 1 file changed, 1 insertion(+) commit d4eb6dee471250661a5183a7336b18c85990e26d Author: Jean Delvare Date: Thu Sep 24 12:38:22 2015 +0200 ext4: Update EXT4_USE_FOR_EXT2 description Configuration option EXT4_USE_FOR_EXT2 has no effect on ext3 support. Support for ext3 is always included now. Signed-off-by: Jean Delvare Fixes: c290ea01ab ("fs: Remove ext3 filesystem driver") Cc: Jan Kara Cc: Theodore Ts'o Cc: Andreas Dilger Signed-off-by: Jan Kara fs/ext4/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 274e91b81ed22957b510ad2988359584eea95dae Author: Russell King Date: Wed Sep 23 11:06:30 2015 +0100 ARM: alignment: fix alignment handling for uaccess changes Jonathan Liu reports that the recent addition of CPU_SW_DOMAIN_PAN causes wpa_supplicant to die due to the following kernel oops: Unhandled fault: page domain fault (0x81b) at 0x001017a2 pgd = ee1b8000 [001017a2] *pgd=6ebee831, *pte=6c35475f, *ppte=6c354c7f Internal error: : 81b [#1] SMP ARM Modules linked in: rt2800usb rt2x00usb rt2800librt2x00lib crc_ccitt mac80211 CPU: 1 PID: 202 Comm: wpa_supplicant Not tainted 4.3.0-rc2 #1 Hardware name: Allwinner sun7i (A20) Family task: ec872f80 ti: ee364000 task.ti: ee364000 PC is at do_alignment_ldmstm+0x1d4/0x238 LR is at 0x0 pc : [] lr : [<00000000>] psr: 600c0113 sp : ee365e18 ip : 00000000 fp : 00000002 r10: 001017a2 r9 : 00000002 r8 : 001017aa r7 : ee365fb0 r6 : e8820018 r5 : 001017a2 r4 : 00000003 r3 : d49e30e0 r2 : 00000000 r1 : ee365fbc r0 : 00000000 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none[ 34.393106] Control: 10c5387d Table: 6e1b806a DAC: 00000051 Process wpa_supplicant (pid: 202, stack limit = 0xee364210) Stack: (0xee365e18 to 0xee366000) ... [] (do_alignment_ldmstm) from [] (do_alignment+0x1f0/0x904) [] (do_alignment) from [] (do_DataAbort+0x38/0xb4) [] (do_DataAbort) from [] (__dabt_usr+0x3c/0x40) Exception stack(0xee365fb0 to 0xee365ff8) 5fa0: 00000000 56c728c0 001017a2 d49e30e0 5fc0: 775448d2 597d4e74 00200800 7a9e1625 00802001 00000021 b6deec84 00000100 5fe0: 08020200 be9f4f20 0c0b0d0a b6d9b3e0 600c0010 ffffffff Code: e1a0a005 e1a0000c 1affffe8 e5913000 (e4ea3001) ---[ end trace 0acd3882fcfdf9dd ]--- This is caused by the alignment handler not being fixed up for the uaccess changes, and userspace issuing an unaligned LDM instruction. So, fix the problem by adding the necessary fixups. Reported-by: Jonathan Liu Tested-by: Jonathan Liu Signed-off-by: Russell King arch/arm/mm/alignment.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit e03dc19ba9c7ebc48cedc9cb797fa42dff302565 Author: Jason Jin Date: Fri Aug 14 13:54:09 2015 +0800 video: fbdev: fsl: Fix the sleep function for FSL DIU module For deep sleep, the diu module will power off, when wake up from the deep sleep, the registers need to be reinitialized. Signed-off-by: Jason Jin Signed-off-by: Wang Dongsheng Acked-by: Timur Tabi Signed-off-by: Tomi Valkeinen drivers/video/fbdev/fsl-diu-fb.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 0a3579e39dd0412b3ff932e32ae7a22a604200f0 Merge: e4b35f9 30c6466 Author: Dave Airlie Date: Thu Sep 24 18:36:04 2015 +1000 Merge tag 'vmwgfx-fixes-4.3-150924' of git://people.freedesktop.org/~thomash/linux into drm-fixes Pull request of 2015-09-24 Vmwgfx fixes for 4.3: - A couple of uninitialized variable fixes by Christian Engelmayer - A TTM fix for a bug that causes problems with the new vmwgfx device init - A vmwgfx refcounting fix - A vmwgfx iomem caching fix - A DRM change to allow also control clients to read the drm driver version. * tag 'vmwgfx-fixes-4.3-150924' of git://people.freedesktop.org/~thomash/linux: drm: Allow also control clients to check the drm version drm/vmwgfx: Fix uninitialized return in vmw_kms_helper_dirty() drm/vmwgfx: Fix uninitialized return in vmw_cotable_unbind() drm/vmwgfx: Only build on X86 drm/ttm: Fix memory space allocation v2 drm/vmwgfx: Map the fifo as cached drm/vmwgfx: Fix up user_dmabuf refcounting commit 30c64664f110f76064e364cb5dd385edc3751ba5 Author: Thomas Hellstrom Date: Tue Sep 15 01:11:42 2015 -0700 drm: Allow also control clients to check the drm version This should be harmless. Vmware will, due to old infrastructure reasons, be using a privileged control client to supply GUI layout information rather than obtaining it from the device. That control client will be needing access to DRM version information. Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul Reviewed-by: Sinclair Yeh Acked-by: David Herrmann drivers/gpu/drm/drm_ioctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f3b8c0caca02001565cb14b845bf90f59dea8213 Author: Christian Engelmayer Date: Sat Sep 19 00:32:24 2015 +0200 drm/vmwgfx: Fix uninitialized return in vmw_kms_helper_dirty() Function vmw_kms_helper_dirty() uses the uninitialized variable ret as return value. Make the result deterministic and directly return as the variable is unused anyway. Detected by Coverity CID 1324255. Signed-off-by: Christian Engelmayer Reviewed-by: Sinclair Yeh Reviewed-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 49558b471369e790650df8706b5608fee27af42c Author: Christian Engelmayer Date: Sat Sep 19 00:31:10 2015 +0200 drm/vmwgfx: Fix uninitialized return in vmw_cotable_unbind() Function vmw_cotable_unbind() uses the uninitialized variable ret as return value. Make the result deterministic and directly return as the variable is unused anyway. Detected by Coverity CID 1324256. Signed-off-by: Christian Engelmayer Reviewed-by: Sinclair Yeh Reviewed-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 88627148400e37b4bff197285d348fc05c9de013 Author: Steve French Date: Tue Sep 22 03:16:27 2015 -0500 fix encryption error checks on mount Signed-off-by: Steve French fs/cifs/smb2pdu.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit ceb1b0b9b4d1089e9f2731a314689ae17784c861 Author: Steve French Date: Thu Sep 24 00:52:37 2015 -0500 [SMB3] Fix sec=krb5 on smb3 mounts Kerberos, which is very important for security, was only enabled for CIFS not SMB2/SMB3 mounts (e.g. vers=3.0) Patch based on the information detailed in http://thread.gmane.org/gmane.linux.kernel.cifs/10081/focus=10307 to enable Kerberized SMB2/SMB3 a) SMB2_negotiate: enable/use decode_negTokenInit in SMB2_negotiate b) SMB2_sess_setup: handle Kerberos sectype and replicate Kerberos SMB1 processing done in sess_auth_kerberos Signed-off-by: Noel Power Signed-off-by: Jim McDonough CC: Stable Signed-off-by: Steve French fs/cifs/smb2pdu.c | 76 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 15 deletions(-) commit 7bbe33ff1896d225588b37c574c0d80dbc63c657 Author: John W. Linville Date: Tue Sep 22 13:09:32 2015 -0400 geneve: use network byte order for destination port config parameter This is primarily for consistancy with vxlan and other tunnels which use network byte order for similar parameters. Signed-off-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit e4b35f952be9f5706b22e38c1925b7ac49080d72 Merge: 14d11b8 e786547 Author: Dave Airlie Date: Thu Sep 24 08:13:34 2015 +1000 Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-fixes radeon and amdgpu fixes for 4.3. It's a bit bigger than usual since it's 3 weeks worth of fixes since I was on vacation, then at XDC. - lots of stability fixes - suspend and resume fixes - GPU scheduler fixes - Misc other fixes * 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: (31 commits) drm/radeon: add quirk for MSI R7 370 drm/amdgpu: Sprinkle drm_modeset_lock_all to appease locking checks drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks drm/amdgpu: sync ce and me with SWITCH_BUFFER(2) drm/amdgpu: integer overflow in amdgpu_mode_dumb_create() drm/amdgpu: info leak in amdgpu_gem_metadata_ioctl() drm/amdgpu: integer overflow in amdgpu_info_ioctl() drm/amdgpu: unwind properly in amdgpu_cs_parser_init() drm/amdgpu: Fix max_vblank_count value for current display engines drm/amdgpu: use kmemdup rather than duplicating its implementation drm/amdgpu: fix UVD suspend and resume for VI APU drm/amdgpu: fix the UVD suspend sequence order drm/amdgpu: make UVD handle checking more strict drm/amdgpu: Disable UVD PG drm/amdgpu: more scheduler cleanups v2 drm/amdgpu: cleanup fence queue init v2 drm/amdgpu: rename fence->scheduler to sched v2 drm/amdgpu: cleanup entity init drm/amdgpu: refine the scheduler job type conversion drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job ... commit 14d11b8dca17f6dedf4b62d7391b9b294e3414ff Author: Andrzej Hajda Date: Mon Sep 21 15:33:47 2015 +0200 drm/layerscape: fix handling fsl_dcu_drm_plane_index result The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Signed-off-by: Dave Airlie drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 728f86607d47f7d2d24d61fd30852faa66ca5aa9 Author: Archit Taneja Date: Thu Sep 17 16:30:55 2015 +0530 drm/mgag200: Fix driver_load error handling mgag200_driver_load's error path just calls the drm driver's driver_unload op. It isn't safe to call this because it doesn't handle things well if driver_load fails somewhere mid way. Replace the call to mgag200_driver_unload with a more finegrained error handling path. Link: http://lkml.kernel.org/r/55F6E68D.8070800@codeaurora.org Reported-by: Ingo Molnar Cc: Daniel Vetter Cc: Dave Airlie Cc: David Airlie Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sudip Mukherjee Cc: Thomas Gleixner Cc: dri-devel Signed-off-by: Archit Taneja Signed-off-by: Dave Airlie drivers/gpu/drm/mgag200/mgag200_main.c | 36 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) commit aec9e12953e777f62acdab069656ebd9bcb6c9ba Author: Archit Taneja Date: Thu Sep 17 16:30:54 2015 +0530 drm/mgag200: Fix error handling paths in fbdev driver Set up error handling in mgag200_fbdev_init and mgag200fb_create such that they release the things they allocate, rather than relying on someone calling mga_fbdev_destroy. Based on a patch by Sudip Mukherjee Link: http://lkml.kernel.org/r/55F6E68D.8070800@codeaurora.org Reported-by: Ingo Molnar Cc: Daniel Vetter Cc: Dave Airlie Cc: David Airlie Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sudip Mukherjee Cc: Thomas Gleixner Cc: dri-devel Signed-off-by: Archit Taneja Signed-off-by: Dave Airlie drivers/gpu/drm/mgag200/mgag200_fb.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) commit 69e5d3f893e19613486f300fd6e631810338aa4b Author: Dave Airlie Date: Mon Sep 14 10:28:34 2015 +1000 drm/qxl: only report first monitor as connected if we have no state If the server isn't new enough to give us state, report the first monitor as always connected, otherwise believe the server side. Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_display.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 41b976414c88016e2c9d9b2f6667ee67a998d388 Author: David Woodhouse Date: Wed Sep 23 09:45:31 2015 +0100 8139cp: Dump contents of descriptor ring on TX timeout We are seeing unexplained TX timeouts under heavy load. Let's try to get a better idea of what's going on. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 7f4c685633e2df9ba10d49a31dda13715745db37 Author: David Woodhouse Date: Wed Sep 23 09:45:16 2015 +0100 8139cp: Fix DMA unmapping of transmitted buffers The low 16 bits of the 'opts1' field in the TX descriptor are supposed to still contain the buffer length when the descriptor is handed back to us. In practice, at least on my hardware, they don't. So stash the original value of the opts1 field and get the length to unmap from there. There are other ways we could have worked out the length, but I actually want a stash of the opts1 field anyway so that I can dump it alongside the contents of the descriptor ring when we suffer a TX timeout. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 0a5aeee0b79fa99d8e04c98dd4e87d4f52aa497b Author: David Woodhouse Date: Wed Sep 23 09:44:57 2015 +0100 8139cp: Reduce duplicate csum/tso code in cp_start_xmit() We calculate the value of the opts1 descriptor field in three different places. With two different behaviours when given an invalid packet to be checksummed — none of them correct. Sort that out. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 61 ++++++++++++----------------------- 1 file changed, 20 insertions(+), 41 deletions(-) commit a3b804043f490aeec57d8ca5baccdd35e6250857 Author: David Woodhouse Date: Wed Sep 23 09:44:38 2015 +0100 8139cp: Fix TSO/scatter-gather descriptor setup When sending a TSO frame in multiple buffers, we were neglecting to set the first descriptor up in TSO mode. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 26b0bad6ac3a0167792dc4ffb276c29bc597d239 Author: David Woodhouse Date: Wed Sep 23 09:44:06 2015 +0100 8139cp: Fix tx_queued debug message to print correct slot numbers After a certain amount of staring at the debug output of this driver, I realised it was lying to me. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit aaa0062ecf4877a26dea66bee1039c6eaf906c94 Author: David Woodhouse Date: Wed Sep 23 09:43:41 2015 +0100 8139cp: Do not re-enable RX interrupts in cp_tx_timeout() If an RX interrupt was already received but NAPI has not yet run when the RX timeout happens, we end up in cp_tx_timeout() with RX interrupts already disabled. Blindly re-enabling them will cause an IRQ storm. (This is made particularly horrid by the fact that cp_interrupt() always returns that it's handled the interrupt, even when it hasn't actually done anything. If it didn't do that, the core IRQ code would have detected the storm and handled it, I'd have had a clear smoking gun backtrace instead of just a spontaneously resetting router, and I'd have at *least* two days of my life back. Changing the return value of cp_interrupt() will be argued about under separate cover.) Unconditionally leave RX interrupts disabled after the reset, and schedule NAPI to check the receive ring and re-enable them. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3c6cb3acee6a2350c79df29e1cfb56ad1c9a3e9e Merge: d3869ef 8ceaf36 Author: David S. Miller Date: Wed Sep 23 14:37:38 2015 -0700 Merge branch 'netcp-fixes' Murali Karicheri says: ==================== net: netcp: a set of bug fixes This patch series fixes a set of issues in netcp driver seen during internal testing of the driver. While at it, do some clean up as well. The fixes are tested on K2HK, K2L and K2E EVMs and the boot up logs can be seen at http://pastebin.ubuntu.com/12533100/ ==================== Signed-off-by: David S. Miller commit 8ceaf361ffd131e835aef1e6cdb1d5ba70702617 Author: Karicheri, Muralidharan Date: Wed Sep 23 13:37:11 2015 -0400 net: netcp: fix deadlock reported by lockup detector A deadlock trace is seen in netcp driver with lockup detector enabled. The trace log is provided below for reference. This patch fixes the bug by removing the usage of netcp_modules_lock within ndo_ops functions. ndo_{open/close/ioctl)() is already called with rtnl_lock held. So there is no need to hold another mutex for serialization across processes on multiple cores. So remove use of netcp_modules_lock mutex from these ndo ops functions. ndo_set_rx_mode() shouldn't be using a mutex as it is called from atomic context. In the case of ndo_set_rx_mode(), there can be call to this API without rtnl_lock held from an atomic context. As the underlying modules are expected to add address to a hardware table, it is to be protected across concurrent updates and hence a spin lock is used to synchronize the access. Same with ndo_vlan_rx_add_vid() & ndo_vlan_rx_kill_vid(). Probably the netcp_modules_lock is used to protect the module not being removed as part of rmmod. Currently this is not fully implemented and assumes the interface is brought down before doing rmmod of modules. The support for rmmmod while interface is up is expected in a future patch set when additional modules such as pa, qos are added. For now all of the tests such as if up/down, reboot, iperf works fine with this patch applied. Deadlock trace seen with lockup detector enabled is shown below for reference. [ 16.863014] ====================================================== [ 16.869183] [ INFO: possible circular locking dependency detected ] [ 16.875441] 4.1.6-01265-gfb1e101 #1 Tainted: G W [ 16.881176] ------------------------------------------------------- [ 16.887432] ifconfig/1662 is trying to acquire lock: [ 16.892386] (netcp_modules_lock){+.+.+.}, at: [] netcp_ndo_open+0x168/0x518 [ 16.900321] [ 16.900321] but task is already holding lock: [ 16.906144] (rtnl_mutex){+.+.+.}, at: [] devinet_ioctl+0xf8/0x7e4 [ 16.913206] [ 16.913206] which lock already depends on the new lock. [ 16.913206] [ 16.921372] [ 16.921372] the existing dependency chain (in reverse order) is: [ 16.928844] -> #1 (rtnl_mutex){+.+.+.}: [ 16.932865] [] mutex_lock_nested+0x68/0x4a8 [ 16.938521] [] register_netdev+0xc/0x24 [ 16.943831] [] netcp_module_probe+0x214/0x2ec [ 16.949660] [] netcp_register_module+0xd4/0x140 [ 16.955663] [] keystone_gbe_init+0x10/0x28 [ 16.961233] [] do_one_initcall+0xb8/0x1f8 [ 16.966714] [] kernel_init_freeable+0x148/0x1e8 [ 16.972720] [] kernel_init+0xc/0xe8 [ 16.977682] [] ret_from_fork+0x14/0x3c [ 16.982905] -> #0 (netcp_modules_lock){+.+.+.}: [ 16.987619] [] lock_acquire+0x118/0x320 [ 16.992928] [] mutex_lock_nested+0x68/0x4a8 [ 16.998582] [] netcp_ndo_open+0x168/0x518 [ 17.004064] [] __dev_open+0xa8/0x10c [ 17.009112] [] __dev_change_flags+0x94/0x144 [ 17.014853] [] dev_change_flags+0x18/0x48 [ 17.020334] [] devinet_ioctl+0x6dc/0x7e4 [ 17.025729] [] sock_ioctl+0x1d0/0x2a8 [ 17.030865] [] do_vfs_ioctl+0x41c/0x688 [ 17.036173] [] SyS_ioctl+0x34/0x5c [ 17.041046] [] ret_fast_syscall+0x0/0x54 [ 17.046441] [ 17.046441] other info that might help us debug this: [ 17.046441] [ 17.054434] Possible unsafe locking scenario: [ 17.054434] [ 17.060343] CPU0 CPU1 [ 17.064862] ---- ---- [ 17.069381] lock(rtnl_mutex); [ 17.072522] lock(netcp_modules_lock); [ 17.078875] lock(rtnl_mutex); [ 17.084532] lock(netcp_modules_lock); [ 17.088366] [ 17.088366] *** DEADLOCK *** [ 17.088366] [ 17.094279] 1 lock held by ifconfig/1662: [ 17.098278] #0: (rtnl_mutex){+.+.+.}, at: [] devinet_ioctl+0xf8/0x7e4 [ 17.105774] [ 17.105774] stack backtrace: [ 17.110124] CPU: 1 PID: 1662 Comm: ifconfig Tainted: G W 4.1.6-01265-gfb1e101 #1 [ 17.118637] Hardware name: Keystone [ 17.122123] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 17.129862] [] (show_stack) from [] (dump_stack+0x84/0xc4) [ 17.137079] [] (dump_stack) from [] (print_circular_bug+0x210/0x330) [ 17.145161] [] (print_circular_bug) from [] (validate_chain.isra.35+0xf98/0x13ac) [ 17.154372] [] (validate_chain.isra.35) from [] (__lock_acquire+0x52c/0xcc0) [ 17.163149] [] (__lock_acquire) from [] (lock_acquire+0x118/0x320) [ 17.171058] [] (lock_acquire) from [] (mutex_lock_nested+0x68/0x4a8) [ 17.179140] [] (mutex_lock_nested) from [] (netcp_ndo_open+0x168/0x518) [ 17.187484] [] (netcp_ndo_open) from [] (__dev_open+0xa8/0x10c) [ 17.195133] [] (__dev_open) from [] (__dev_change_flags+0x94/0x144) [ 17.203129] [] (__dev_change_flags) from [] (dev_change_flags+0x18/0x48) [ 17.211560] [] (dev_change_flags) from [] (devinet_ioctl+0x6dc/0x7e4) [ 17.219729] [] (devinet_ioctl) from [] (sock_ioctl+0x1d0/0x2a8) [ 17.227378] [] (sock_ioctl) from [] (do_vfs_ioctl+0x41c/0x688) [ 17.234939] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x34/0x5c) [ 17.242242] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x54) [ 17.258855] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow control off [ 17.271282] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616 [ 17.279712] in_atomic(): 1, irqs_disabled(): 0, pid: 1662, name: ifconfig [ 17.286500] INFO: lockdep is turned off. [ 17.290413] Preemption disabled at:[< (null)>] (null) [ 17.295728] [ 17.297214] CPU: 1 PID: 1662 Comm: ifconfig Tainted: G W 4.1.6-01265-gfb1e101 #1 [ 17.305735] Hardware name: Keystone [ 17.309223] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 17.316970] [] (show_stack) from [] (dump_stack+0x84/0xc4) [ 17.324194] [] (dump_stack) from [] (mutex_lock_nested+0x28/0x4a8) [ 17.332112] [] (mutex_lock_nested) from [] (netcp_set_rx_mode+0x160/0x210) [ 17.340724] [] (netcp_set_rx_mode) from [] (dev_set_rx_mode+0x1c/0x28) [ 17.348982] [] (dev_set_rx_mode) from [] (__dev_open+0xc4/0x10c) [ 17.356724] [] (__dev_open) from [] (__dev_change_flags+0x94/0x144) [ 17.364729] [] (__dev_change_flags) from [] (dev_change_flags+0x18/0x48) [ 17.373166] [] (dev_change_flags) from [] (devinet_ioctl+0x6dc/0x7e4) [ 17.381344] [] (devinet_ioctl) from [] (sock_ioctl+0x1d0/0x2a8) [ 17.388994] [] (sock_ioctl) from [] (do_vfs_ioctl+0x41c/0x688) [ 17.396563] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x34/0x5c) [ 17.403873] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x54) [ 17.413772] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready udhcpc (v1.20.2) started Sending discover... [ 18.690666] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow control off Sending discover... [ 22.250972] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full - flow control off [ 22.258721] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 22.265458] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616 [ 22.273896] in_atomic(): 1, irqs_disabled(): 0, pid: 342, name: kworker/1:1 [ 22.280854] INFO: lockdep is turned off. [ 22.284767] Preemption disabled at:[< (null)>] (null) [ 22.290074] [ 22.291568] CPU: 1 PID: 342 Comm: kworker/1:1 Tainted: G W 4.1.6-01265-gfb1e101 #1 [ 22.300255] Hardware name: Keystone [ 22.303750] Workqueue: ipv6_addrconf addrconf_dad_work [ 22.308895] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 22.316643] [] (show_stack) from [] (dump_stack+0x84/0xc4) [ 22.323867] [] (dump_stack) from [] (mutex_lock_nested+0x28/0x4a8) [ 22.331786] [] (mutex_lock_nested) from [] (netcp_set_rx_mode+0x160/0x210) [ 22.340394] [] (netcp_set_rx_mode) from [] (__dev_mc_add+0x54/0x68) [ 22.348401] [] (__dev_mc_add) from [] (igmp6_group_added+0x168/0x1b4) [ 22.356580] [] (igmp6_group_added) from [] (ipv6_dev_mc_inc+0x4f0/0x5a8) [ 22.365019] [] (ipv6_dev_mc_inc) from [] (addrconf_dad_work+0x21c/0x33c) [ 22.373460] [] (addrconf_dad_work) from [] (process_one_work+0x214/0x8d0) [ 22.381986] [] (process_one_work) from [] (worker_thread+0x48/0x4bc) [ 22.390071] [] (worker_thread) from [] (kthread+0xf0/0x108) [ 22.397381] [] (kthread) from [] Trace related to incorrect usage of mutex inside ndo_set_rx_mode [ 24.086066] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616 [ 24.094506] in_atomic(): 1, irqs_disabled(): 0, pid: 1682, name: ifconfig [ 24.101291] INFO: lockdep is turned off. [ 24.105203] Preemption disabled at:[< (null)>] (null) [ 24.110511] [ 24.112005] CPU: 2 PID: 1682 Comm: ifconfig Tainted: G W 4.1.6-01265-gfb1e101 #1 [ 24.120518] Hardware name: Keystone [ 24.124018] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 24.131772] [] (show_stack) from [] (dump_stack+0x84/0xc4) [ 24.138989] [] (dump_stack) from [] (mutex_lock_nested+0x28/0x4a8) [ 24.146908] [] (mutex_lock_nested) from [] (netcp_set_rx_mode+0x160/0x210) [ 24.155523] [] (netcp_set_rx_mode) from [] (dev_set_rx_mode+0x1c/0x28) [ 24.163787] [] (dev_set_rx_mode) from [] (__dev_open+0xc4/0x10c) [ 24.171531] [] (__dev_open) from [] (__dev_change_flags+0x94/0x144) [ 24.179528] [] (__dev_change_flags) from [] (dev_change_flags+0x18/0x48) [ 24.187966] [] (dev_change_flags) from [] (devinet_ioctl+0x6dc/0x7e4) [ 24.196145] [] (devinet_ioctl) from [] (sock_ioctl+0x1d0/0x2a8) [ 24.203803] [] (sock_ioctl) from [] (do_vfs_ioctl+0x41c/0x688) [ 24.211373] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x34/0x5c) [ 24.218676] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x54) [ 24.227156] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 99f8ef5dc6546ac28cc7a03ff8301bc72fe5527e Author: Karicheri, Muralidharan Date: Wed Sep 23 13:37:10 2015 -0400 net: netcp: allocate buffers to desc before re-enable interrupt Currently netcp_rxpool_refill() that refill descriptors and attached buffers to fdq while interrupt is enabled as part of NAPI poll. Doing it while interrupt is disabled could be beneficial as hardware will not be starved when CPU is busy with processing interrupt. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 915c5857874fc211874de1363e88f902e581e6eb Author: Karicheri, Muralidharan Date: Wed Sep 23 13:37:09 2015 -0400 net: netcp: check for interface handle in netcp_module_probe() Currently netcp_module_probe() doesn't check the return value of of_parse_phandle() that points to the interface data for the module and then pass the node ptr to the module which is incorrect. Check for return value and free the intf_modpriv if there is error. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 5 +++++ 1 file changed, 5 insertions(+) commit e558b1fbf5f43da83f91a31e595a6d65e663b100 Author: Karicheri, Muralidharan Date: Wed Sep 23 13:37:08 2015 -0400 net: netcp: add error check to netcp_allocate_rx_buf() Currently, if netcp_allocate_rx_buf() fails due no descriptors in the rx free descriptor queue, inside the netcp_rxpool_refill() function the iterative loop to fill buffers doesn't terminate right away. So modify the netcp_allocate_rx_buf() to return an error code and use it break the loop when there is error. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 736532a0705ffc27c14f712fa2758a7f8b15e8b4 Author: Karicheri, Muralidharan Date: Wed Sep 23 13:37:07 2015 -0400 net: netcp: move netcp_register_interface() to after attach module The netcp interface is not fully initialized before attach the module to the interface. For example, the tx pipe/rx pipe is initialized in ethss module as part of attach(). So until this is complete, the interface can't be registered. So move registration of interface to net device outside the current loop that attaches the modules to the interface. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 156e3c21f89655f099228577005a6c656b3ceb3d Author: Karicheri, Muralidharan Date: Wed Sep 23 13:37:06 2015 -0400 net: netcp: remove dead code from the driver netcp_core is the first driver that will get initialized and the modules (ethss, pa etc) will then get initialized. So the code at the end of netcp_probe() that iterate over the modules is a dead code as the module list will be always be empty. So remove this code. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_core.c | 9 --------- 1 file changed, 9 deletions(-) commit 8c85151ddec66f78fbf997e35be005a322fbb9c9 Author: WingMan Kwok Date: Wed Sep 23 13:37:05 2015 -0400 net: netcp: ethss: fix error in calling sgmii api with incorrect offset On K2HK, sgmii module registers of slave 0 and 1 are mem mapped to one contiguous block, while those of slave 2 and 3 are mapped to another contiguous block. However, on K2E and K2L, sgmii module registers of all slaves are mem mapped to one contiguous block. SGMII APIs expect slave 0 sgmii base when API is invoked for slave 0 and 1, and slave 2 sgmii base when invoked for other slaves. Before this patch, slave 0 sgmii base is always passed to sgmii API for K2E regardless which slave is the API invoked for. This patch fixes the problem. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 47 +++++++++++++++-------------------- 1 file changed, 20 insertions(+), 27 deletions(-) commit d3869efe7a8a2298516d9af4f91487cf486ca945 Author: David Woodhouse Date: Wed Sep 23 19:45:08 2015 +0100 Fix AF_PACKET ABI breakage in 4.2 Commit 7d82410950aa ("virtio: add explicit big-endian support to memory accessors") accidentally changed the virtio_net header used by AF_PACKET with PACKET_VNET_HDR from host-endian to big-endian. Since virtio_legacy_is_little_endian() is a very long identifier, define a vio_le macro and use that throughout the code instead of the hard-coded 'false' for little-endian. This restores the ABI to match 4.1 and earlier kernels, and makes my test program work again. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller net/packet/af_packet.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit 2d8bff12699abc3a9bf886bb0b79f44d94d81496 Author: Neil Horman Date: Wed Sep 23 14:57:58 2015 -0400 netpoll: Close race condition between poll_one_napi and napi_disable Drivers might call napi_disable while not holding the napi instance poll_lock. In those instances, its possible for a race condition to exist between poll_one_napi and napi_disable. That is to say, poll_one_napi only tests the NAPI_STATE_SCHED bit to see if there is work to do during a poll, and as such the following may happen: CPU0 CPU1 ndo_tx_timeout napi_poll_dev napi_disable poll_one_napi test_and_set_bit (ret 0) test_bit (ret 1) reset adapter napi_poll_routine If the adapter gets a tx timeout without a napi instance scheduled, its possible for the adapter to think it has exclusive access to the hardware (as the napi instance is now scheduled via the napi_disable call), while the netpoll code thinks there is simply work to do. The result is parallel hardware access leading to corrupt data structures in the driver, and a crash. Additionaly, there is another, more critical race between netpoll and napi_disable. The disabled napi state is actually identical to the scheduled state for a given napi instance. The implication being that, if a napi instance is disabled, a netconsole instance would see the napi state of the device as having been scheduled, and poll it, likely while the driver was dong something requiring exclusive access. In the case above, its fairly clear that not having the rings in a state ready to be polled will cause any number of crashes. The fix should be pretty easy. netpoll uses its own bit to indicate that that the napi instance is in a state of being serviced by netpoll (NAPI_STATE_NPSVC). We can just gate disabling on that bit as well as the sched bit. That should prevent netpoll from conducting a napi poll if we convert its set bit to a test_and_set_bit operation to provide mutual exclusion Change notes: V2) Remove a trailing whtiespace Resubmit with proper subject prefix V3) Clean up spacing nits Signed-off-by: Neil Horman CC: "David S. Miller" CC: jmaxwell@redhat.com Tested-by: jmaxwell@redhat.com Signed-off-by: David S. Miller include/linux/netdevice.h | 1 + net/core/dev.c | 2 ++ net/core/netpoll.c | 10 ++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) commit 675ee231d960af2af3606b4480324e26797eb010 Author: Eric Dumazet Date: Wed Sep 23 14:00:21 2015 -0700 tcp: add proper TS val into RST packets RST packets sent on behalf of TCP connections with TS option (RFC 7323 TCP timestamps) have incorrect TS val (set to 0), but correct TS ecr. A > B: Flags [S], seq 0, win 65535, options [mss 1000,nop,nop,TS val 100 ecr 0], length 0 B > A: Flags [S.], seq 2444755794, ack 1, win 28960, options [mss 1460,nop,nop,TS val 7264344 ecr 100], length 0 A > B: Flags [.], ack 1, win 65535, options [nop,nop,TS val 110 ecr 7264344], length 0 B > A: Flags [R.], seq 1, ack 1, win 28960, options [nop,nop,TS val 0 ecr 110], length 0 We need to call skb_mstamp_get() to get proper TS val, derived from skb->skb_mstamp Note that RFC 1323 was advocating to not send TS option in RST segment, but RFC 7323 recommends the opposite : Once TSopt has been successfully negotiated, that is both and contain TSopt, the TSopt MUST be sent in every non- segment for the duration of the connection, and SHOULD be sent in an segment (see Section 5.2 for details) Note this RFC recommends to send TS val = 0, but we believe it is premature : We do not know if all TCP stacks are properly handling the receive side : When an segment is received, it MUST NOT be subjected to the PAWS check by verifying an acceptable value in SEG.TSval, and information from the Timestamps option MUST NOT be used to update connection state information. SEG.TSecr MAY be used to provide stricter acceptance checks. In 5 years, if/when all TCP stack are RFC 7323 ready, we might consider to decide to send TS val = 0, if it buys something. Fixes: 7faee5c0d514 ("tcp: remove TCP_SKB_CB(skb)->when") Signed-off-by: Eric Dumazet Acked-by: Yuchung Cheng Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 1 + 1 file changed, 1 insertion(+) commit e78654799135a788a941bacad3452fbd7083e518 Author: Maxim Sheviakov Date: Wed Sep 23 17:10:51 2015 -0400 drm/radeon: add quirk for MSI R7 370 Just adds the quirk for MSI R7 370 Armor 2X Bug: https://bugs.freedesktop.org/show_bug.cgi?id=91294 Signed-off-by: Maxim Sheviakov Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/si_dpm.c | 1 + 1 file changed, 1 insertion(+) commit 4c7fbc39b1d58d9f4113ef962743a67bcdfe6be2 Author: Alex Deucher Date: Wed Sep 23 14:32:06 2015 -0400 drm/amdgpu: Sprinkle drm_modeset_lock_all to appease locking checks In commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c Author: Daniel Vetter Date: Thu Jul 9 23:44:28 2015 +0200 drm: Check locking in drm_for_each_connector I added locking checks to drm_for_each_connector but failed that through drm_helper_connector_dpms -> drm_helper_choose_encoder_dpms it's used in a few more places in the amdgpu resume/suspend code. Fix them up. Note that we could use the connector iterator macros in there too, but that's for the future. Port of radeon commit: drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++++ 1 file changed, 4 insertions(+) commit 6adaed5bfe4f6f0a0e027e87d5dd80bd9834d5f0 Author: Daniel Vetter Date: Wed Sep 23 20:26:45 2015 +0200 drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks In commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c Author: Daniel Vetter Date: Thu Jul 9 23:44:28 2015 +0200 drm: Check locking in drm_for_each_connector I added locking checks to drm_for_each_connector but failed that through drm_helper_connector_dpms -> drm_helper_choose_encoder_dpms it's used in a few more places in the radeon resume/suspend code. Fix them up. Note that we could use the connector iterator macros in there too, but that's for the future. Reported-and-tested-by: Borislav Petkov Cc: Borislav Petkov Cc: Alex Deucher Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_device.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5c3422b0b135b46c8dca9c1d909c1ae84f3561bd Author: monk.liu Date: Wed Sep 23 13:49:58 2015 +0800 drm/amdgpu: sync ce and me with SWITCH_BUFFER(2) we used to adopt wait_reg_mem to let CE wait before DE finish page updating, but from Tonga+, CE doesn't support wait_reg_mem package so this logic no longer works. so here is another approach to do same thing: Insert two of SWITCH_BUFFER at both front and end of vm_flush can guarantee that CE not go further to process IB_const before vm_flush done. Insert two of SWITCH_BUFFER also works on CI, so remove legency method to sync CE and ME v2: Insert double SWITCH_BUFFER at front of vm flush as well. Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 55 +++++++-------------------------- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 58 ++++++++--------------------------- 3 files changed, 23 insertions(+), 92 deletions(-) commit 54ef0b5461c071050c61e501af5544842d61f40a Author: Dan Carpenter Date: Wed Sep 23 14:00:59 2015 +0300 drm/amdgpu: integer overflow in amdgpu_mode_dumb_create() args->size is a u64. arg->pitch and args->height are u32. The multiplication will overflow instead of using the high 32 bits as intended. Reviewed-by: Christian König Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0913eab648e4fb30ddca8882e707d0fcf5b237c6 Author: Dan Carpenter Date: Wed Sep 23 14:00:35 2015 +0300 drm/amdgpu: info leak in amdgpu_gem_metadata_ioctl() There is no limit on args->data.data_size_bytes so we could read beyond the end of the args->data.data[] array. Reviewed-by: Christian König Reported-by: Ilja Van Sprundel Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 5 +++++ 1 file changed, 5 insertions(+) commit 0d2edd3791bb172a59d708d5c94330bbd6050f97 Author: Dan Carpenter Date: Wed Sep 23 14:00:12 2015 +0300 drm/amdgpu: integer overflow in amdgpu_info_ioctl() The "alloc_size" calculation can overflow leading to memory corruption. Reviewed-by: Christian König Reported-by: Ilja Van Sprundel Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 1d263474c4416efb6d0feca98fe6d462b0d28f56 Author: Dan Carpenter Date: Wed Sep 23 13:59:28 2015 +0300 drm/amdgpu: unwind properly in amdgpu_cs_parser_init() The amdgpu_cs_parser_init() function doesn't clean up after itself but instead the caller uses a free everything function amdgpu_cs_parser_fini() on failure. This style of error handling is often buggy. In this example, we call "drm_free_large(parser->chunks[i].kdata);" when it is an unintialized pointer or when "parser->chunks" is NULL. I fixed this bug by adding unwind code so that it frees everything that it allocates. I also mode some other very minor changes: 1) Renamed "r" to "ret". 2) Moved the chunk_array allocation to the start of the function. 3) Removed some initializers which are no longer needed. Reviewed-by: Christian König Reported-by: Ilja Van Sprundel Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 85 ++++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 34 deletions(-) commit 5a6adfa20b622a273205e33b20c12332aa7eb724 Author: Alex Deucher Date: Tue Sep 22 10:06:45 2015 -0400 drm/amdgpu: Fix max_vblank_count value for current display engines The value was much too low, which could cause the userspace visible vblank counter to move backwards when the hardware counter wrapped around. Ported from radeon commit: b0b9bb4dd51f396dcf843831905f729e74b0c8c0 Reviewed-by: Christian König Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71affda522bb0f43e205cf4f000e2c50261c01a6 Author: Andrzej Hajda Date: Mon Sep 21 17:34:39 2015 -0400 drm/amdgpu: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 1f4452105ce39786be13b4636251377a30d1286a Author: Leo Liu Date: Fri Sep 11 17:09:57 2015 -0400 drm/amdgpu: fix UVD suspend and resume for VI APU User space passed the same handle before suspend and after resume, so we have remove the session and handle destroy, and keep the firmware untouched. Signed-off-by: Leo Liu Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 2bd188d0167227932be3cf5b033c0e600b01291f Author: Leo Liu Date: Fri Sep 11 14:22:18 2015 -0400 drm/amdgpu: fix the UVD suspend sequence order Fixes suspend issues with UVD. Signed-off-by: Leo Liu Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit 5146419e6feb99cfbc8dbf005dd2f62603e15efb Author: Leo Liu Date: Tue Sep 15 10:38:38 2015 -0400 drm/amdgpu: make UVD handle checking more strict Invalid messages can crash the hw otherwise Ported from radeon commit a1b403da70e038ca6c6c6fe434d1d873546873a3 Signed-off-by: Leo Liu Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 68 ++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 27 deletions(-) commit 1ee4478a26cf55c8f8a6219d7e99f2b48959394d Author: Leo Liu Date: Thu Sep 10 13:41:38 2015 -0400 drm/amdgpu: Disable UVD PG This causes problems with multiple suspend/resume cycles. Signed-off-by: Leo Liu Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/vi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4f839a243d3b0d8b1a14f4778a87ec4d8ddbf15f Author: Christian König Date: Tue Sep 8 20:22:31 2015 +0200 drm/amdgpu: more scheduler cleanups v2 Embed the scheduler into the ring structure instead of allocating it. Use the ring name directly instead of the id. v2: rebased, whitespace cleanup Signed-off-by: Christian König Reviewed-by: Junwei Zhang Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 10 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 23 ++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 4 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 43 +++++++++++++++++-------- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 10 ++++-- drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h | 8 ++--- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 37 ++++++++------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 20 ++++++------ 11 files changed, 87 insertions(+), 76 deletions(-) commit 5ec92a7692872d656cffe010920fb49c4f51d75f Author: Christian König Date: Mon Sep 7 18:43:02 2015 +0200 drm/amdgpu: cleanup fence queue init v2 Move the fence related stuff into amdgpu_fence.c v2: rework commit message, cause this is actually not a bug Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Junwei Zhang drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) commit 9b398fa5c24eb05fc60fafd8543cc03e9170f054 Author: Christian König Date: Mon Sep 7 18:16:49 2015 +0200 drm/amdgpu: rename fence->scheduler to sched v2 Just to be consistent with the other members. v2: rename the ring member as well. Signed-off-by: Christian König Reviewed-by: Junwei Zhang (v1) Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 10 +++++----- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 14 +++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- drivers/gpu/drm/amd/scheduler/sched_fence.c | 4 ++-- 10 files changed, 22 insertions(+), 22 deletions(-) commit 0f75aee75112934bcaf42410df5c51d7194b5896 Author: Christian König Date: Mon Sep 7 18:07:14 2015 +0200 drm/amdgpu: cleanup entity init Reorder the fields and properly return the kfifo_alloc error code. Signed-off-by: Christian König Reviewed-by: Junwei Zhang Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 30 +++++++++++++++------------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 12 ++++++----- drivers/gpu/drm/amd/scheduler/sched_fence.c | 2 +- 3 files changed, 25 insertions(+), 19 deletions(-) commit a6db8a33e164ae72fb5429ab637e8cfee057a722 Author: Junwei Zhang Date: Wed Sep 9 09:21:19 2015 +0800 drm/amdgpu: refine the scheduler job type conversion Use container_of rather than casting. Reviewed-by: Christian König Reviewed-by: David Zhou Signed-off-by: Junwei Zhang drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) commit 4c7eb91cae88fd2aa101750d6825b4176f85ffb2 Author: Junwei Zhang Date: Wed Sep 9 09:05:55 2015 +0800 drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job Use consistent naming across functions. Reviewed-by: Christian König Reviewed-by: David Zhou Signed-off-by: Junwei Zhang drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 14 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 36 +++++++-------- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 6 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 6 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 ++-- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 64 ++++++++++++++------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 4 +- 8 files changed, 71 insertions(+), 69 deletions(-) commit bf60efd353f68e5dec1a177b5cbe4da07c819569 Author: Christian König Date: Fri Sep 4 10:47:56 2015 +0200 drm/amdgpu: use only one reservation object for each VM v2 Reduces the locking and fencing overhead. v2: add comment why we need the duplicates list in the GEM op. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 33 +++++---------------------------- 2 files changed, 9 insertions(+), 30 deletions(-) commit a5b750583eb4af69da1e659c7684b6d370b2ae97 Author: Christian König Date: Thu Sep 3 16:40:39 2015 +0200 drm/amdgpu: validate duplicates in the CS as well This allows for multiple BOs to have the same reservation object. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) commit 72d7668b5ba5180b651e8a07dd6ed62e4e26f207 Author: Christian König Date: Thu Sep 3 17:34:59 2015 +0200 drm/amdgpu: export reservation_object from dmabuf to ttm (v2) Adds an extra argument to amdgpu_bo_create, which is only used in amdgpu_prime.c. Port of radeon commit 831b6966a60fe72d85ae3576056b4e4e0775b112. v2: fix up kfd. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 15 ++++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 5 ++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 8 +++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/cz_smc.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/fiji_smc.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 19 +++++++++++-------- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 10 +++++----- drivers/gpu/drm/amd/amdgpu/iceland_smc.c | 2 +- drivers/gpu/drm/amd/amdgpu/tonga_smc.c | 4 ++-- 24 files changed, 70 insertions(+), 52 deletions(-) commit b7d698d7fd7d132c6ebe56d230584f2cae6c94ee Author: Christian König Date: Mon Sep 7 12:32:09 2015 +0200 drm/amdgpu: fix overflow on 32bit systems mem->start is a long, so this can overflow on 32bit systems. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1886d1a9caed20f457dd69a926c7f8b54c2d5f48 Author: Christian König Date: Mon Aug 31 17:28:28 2015 +0200 drm/amdgpu: remove process_job callback from the scheduler Just free the resources immediately after submitting the job. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Junwei Zhang Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 29 +++++++-------------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 1 - drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 1 - 3 files changed, 7 insertions(+), 24 deletions(-) commit 258f3f99d514172aa5a9df15e6d6ebe33aad2f55 Author: Christian König Date: Mon Aug 31 17:02:52 2015 +0200 drm/amdgpu: move scheduler fence callback into fence v2 And call the processed callback directly after submitting the job. v2: split adding error handling into separate patch. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Junwei Zhang Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 21 +++++++++++---------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) commit 27439fcac03632f2b1fd85268dc61af828c77e7b Author: Christian König Date: Wed Sep 2 12:03:06 2015 +0200 drm/amdgpu: signal scheduler fence when hw submission fails v3 Otherwise the resource blocked by it will never be reclaimed. v2: add DRM_ERROR. v3: fix typo in commit message Signed-off-by: Christian König Reviewed-by: Junwei Zhang Reviewed-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 3 +++ 1 file changed, 3 insertions(+) commit 353da3c520b47272b9e3ddbc70b81be285c0b933 Author: Chunming Zhou Date: Mon Sep 7 16:06:53 2015 +0800 drm/amdgpu: add tracepoint for scheduler (v2) track sched job status like the length of job queue and hw job queue. v2: fix build after rebase Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h | 41 +++++++++++++++++++++++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 5 ++- 2 files changed, 45 insertions(+), 1 deletion(-) commit 20a85ff846ffed84fba8637abbb6b1c96436c0ac Author: Christian König Date: Sat Sep 5 11:59:50 2015 +0200 drm/amdgpu: use write confirm for vm_flush() Make sure the CP waits for the write to be confirmed before invalidating. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 22c01cc48301f6974868bd4a7b03e29883da1103 Author: Anatoli Antonovitch Date: Thu Sep 3 11:13:31 2015 -0400 drm/amdgpu: execution barrier after fence v2 Insert wait for reg mem after EOP to fix potential issue with vm context switch v2: move wait to vm_flush() use equal instead of greater than. Signed-off-by: Anatoli Antonovitch Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 3daea9e3d3ecd217a63f35e63f18ea7138f2ae17 Author: Christian König Date: Sat Sep 5 11:12:27 2015 +0200 drm/amdgpu: add option to disable semaphores Provide module parameter to enable/disable them. Still enabled by default. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 17 ++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) commit bda4e0fb3126aca15586d165b5a15a37edc0a984 Author: Keith Busch Date: Thu Sep 3 08:18:17 2015 -0600 NVMe: Set affinity after allocating request queues The asynchronous namespace scanning caused affinity hints to be set before its tagset initialized, so there was no cpu mask to set the hint. This patch moves the affinity hint setting to after namespaces are scanned. Reported-by: 김경산 Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) commit cbb4be652d374f64661137756b8f357a1827d6a4 Author: Johan Hovold Date: Wed Sep 23 11:41:42 2015 -0700 USB: whiteheat: fix potential null-deref at probe Fix potential null-pointer dereference at probe by making sure that the required endpoints are present. The whiteheat driver assumes there are at least five pairs of bulk endpoints, of which the final pair is used for the "command port". An attempt to bind to an interface with fewer bulk endpoints would currently lead to an oops. Fixes CVE-2015-5257. Reported-by: Moein Ghasemzadeh Cc: stable Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/whiteheat.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit ed14ee0eea8b6808025356cecc87a8007885263f Merge: d86a2fe 8524bb0 ee92cfb Author: Mark Brown Date: Wed Sep 23 11:01:12 2015 -0700 Merge remote-tracking branches 'asoc/fix/wm8960' and 'asoc/fix/wm8962' into asoc-linus commit d86a2fe4dc97cbbad04f5db941d9a1bb82e22b5f Merge: 312e0bc e4fba9b 921e546 8811191 4261786 3a0e27d f072f91 Author: Mark Brown Date: Wed Sep 23 11:01:08 2015 -0700 Merge remote-tracking branches 'asoc/fix/mtk', 'asoc/fix/psc', 'asoc/fix/pxa', 'asoc/fix/spear', 'asoc/fix/sti' and 'asoc/fix/wm0010' into asoc-linus commit 312e0bce7f2d7fcf57f38f6e229a82eb4e0c2af4 Merge: fcffa0d ab1fffe d76f419 6bd3c6f 5b64c17 f1ec5ec f0e03db Author: Mark Brown Date: Wed Sep 23 11:01:03 2015 -0700 Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/doc', 'asoc/fix/fsl-card', 'asoc/fix/fsl-ssi', 'asoc/fix/intel' and 'asoc/fix/maintainers' into asoc-linus commit fcffa0dbb6c9144d07011531860da2f1e8a8b7cd Merge: 5ee84ba fce97b4 Author: Mark Brown Date: Wed Sep 23 11:01:02 2015 -0700 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 5ee84ba8c7f5a5dd1934459acfec6108b5285940 Merge: 1f93e4a 75881df Author: Mark Brown Date: Wed Sep 23 11:01:00 2015 -0700 Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus commit fce97b4d70ad632dd9c6058622492501377bbaaa Author: Oder Chiou Date: Wed Sep 23 14:35:30 2015 +0800 ASoC: rt5645: Prevent the pop sound in case of playback and the jack is plugging Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 3 +++ 1 file changed, 3 insertions(+) commit 4f4794124e0421b080a0f1f5f1207636ba55eb85 Author: Oder Chiou Date: Wed Sep 23 14:35:29 2015 +0800 ASoC: rt5645: Increase the delay time to remove the pop sound Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21cb13e72b02dbbb5a02477d4dd46bc2bc1cfd08 Author: Oder Chiou Date: Wed Sep 23 14:35:28 2015 +0800 ASoC: rt5645: Use the type SOC_DAPM_SINGLE_AUTODISABLE to prevent the weird sound in runtime of power up Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 50b956f3d85cdea130866f33613416431d60f396 Author: Andy Gross Date: Fri Sep 11 16:01:16 2015 -0500 firmware: qcom: scm: Add function stubs for ARM64 This patch adds stubs for the SCM functions exposed in the QCOM SCM API. Signed-off-by: Andy Gross Acked-by: Russell King Acked-by: Bjorn Andersson drivers/firmware/Kconfig | 8 ++++++ drivers/firmware/Makefile | 3 +- drivers/firmware/qcom_scm-64.c | 63 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) commit adbe734b2ae5517b8659997909677687b963d73c Merge: bcee19f f929d42 Author: Jens Axboe Date: Wed Sep 23 10:59:44 2015 -0600 Merge branch 'stable/for-jens-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus Konrad writes: It has one fix that should go in and also be put in stable tree (I've added the CC already). It is a fix for a memory leak that can exposed via using UEFI xen-blkfront driver. commit f929d42ceb18a8acfd47e0e7b7d90b5d49bd9258 Author: Roger Pau Monne Date: Fri Sep 4 12:08:07 2015 +0200 xen/blkback: free requests on disconnection This is due to commit 86839c56dee28c315a4c19b7bfee450ccd84cd25 "xen/block: add multi-page ring support" When using an guest under UEFI - after the domain is destroyed the following warning comes from blkback. ------------[ cut here ]------------ WARNING: CPU: 2 PID: 95 at /home/julien/works/linux/drivers/block/xen-blkback/xenbus.c:274 xen_blkif_deferred_free+0x1f4/0x1f8() Modules linked in: CPU: 2 PID: 95 Comm: kworker/2:1 Tainted: G W 4.2.0 #85 Hardware name: APM X-Gene Mustang board (DT) Workqueue: events xen_blkif_deferred_free Call trace: [] dump_backtrace+0x0/0x124 [] show_stack+0x10/0x1c [] dump_stack+0x78/0x98 [] warn_slowpath_common+0x9c/0xd4 [] warn_slowpath_null+0x14/0x20 [] xen_blkif_deferred_free+0x1f0/0x1f8 [] process_one_work+0x160/0x3b4 [] worker_thread+0x140/0x494 [] kthread+0xd8/0xf0 ---[ end trace 6f859b7883c88cdd ]--- Request allocation has been moved to connect_ring, which is called every time blkback connects to the frontend (this can happen multiple times during a blkback instance life cycle). On the other hand, request freeing has not been moved, so it's only called when destroying the backend instance. Due to this mismatch, blkback can allocate the request pool multiple times, without freeing it. In order to fix it, move the freeing of requests to xen_blkif_disconnect to restore the symmetry between request allocation and freeing. Reported-by: Julien Grall Signed-off-by: Roger Pau Monné Tested-by: Julien Grall Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: David Vrabel Cc: xen-devel@lists.xenproject.org CC: stable@vger.kernel.org # 4.2 Signed-off-by: Konrad Rzeszutek Wilk drivers/block/xen-blkback/xenbus.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) commit cd67d226ebd909d239d2c6e5a6abd6e2a338d1cd Author: Jani Nikula Date: Thu Sep 17 16:42:07 2015 +0300 drm/i915/bios: handle MIPI Sequence Block v3+ gracefully The VBT MIPI Sequence Block version 3 has forward incompatible changes: First, the block size in the header has been specified reserved, and the actual size is a separate 32-bit value within the block. The current find_section() function to will only look at the size in the block header, and, depending on what's in that now reserved size field, continue looking for other sections in the wrong place. Fix this by taking the new block size field into account. This will ensure that the lookups for other sections will work properly, as long as the new 32-bit size does not go beyond the opregion VBT mailbox size. Second, the contents of the block have been completely changed. Gracefully refuse parsing the yet unknown data version. Cc: Deepak M Cc: stable@vger.kernel.org Reviewed-by: Deepak M Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_bios.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 500d701f336b2771d34e46da7875a4782515a652 Author: Peng Tao Date: Tue Sep 22 11:35:22 2015 +0800 NFS41: make close wait for layoutreturn If we send a layoutreturn asynchronously before close, the close might reach server first and layoutreturn would fail with BADSTATEID because there is nothing keeping the layout stateid alive. Also do not pretend sending layoutreturn if we are not. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 17 +++++++++++++++++ fs/nfs/pnfs.c | 35 +++++++++++++++++++++++++---------- fs/nfs/pnfs.h | 7 +++++++ 3 files changed, 49 insertions(+), 10 deletions(-) commit d6eb71a6d2eda21c8cd7a4dcd6207a0d94eb6ae7 Author: Vaibhav Jain Date: Wed Sep 23 08:37:59 2015 +0530 cxl: Fix lockdep warning while creating afu_err_buff attribute Presently a lockdep warning is reported during creation of afu_err_buff bin_attribute for the afu. This is caused due to the variable attr.key not pointing to a static class key, hence the function lockdep_init_map reports this warning: BUG: key not in .data! The patch fixes this issue by calling sysfs_attr_init on the attr_eb.attr structure before populating it with the afu_err_buff file details. This will populate the attr.key variable with a static class key so that lockdep_init_map stops complaining about the lockdep key not being static. Reported-by: Daniel Axtens Signed-off-by: Vaibhav Jain Acked-by: Ian Munsie Reviewed-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/sysfs.c | 2 ++ 1 file changed, 2 insertions(+) commit 721a09f7393de6c28a07516dccd654c6e995944a Author: Maarten Lankhorst Date: Tue Sep 15 14:28:54 2015 +0200 drm/i915: Add primary plane to mask if it's visible This fixes the warnings like "plane A assertion failure, should be disabled but not" that on the initial modeset during boot. This can happen if the primary plane is enabled by the firmware, but inheriting it fails because the DMAR is active or for other reasons. Most likely caused by commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d Author: Maarten Lankhorst Date: Mon Jun 1 12:49:54 2015 +0200 drm/i915: update plane state during init Reported-by: Andreas Reis Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429 Reported-and-tested-by: Emil Renner Berthing Tested-by: Andreas Reis Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit a7adb91b13c104e5ad950fbe1795aa2722f2ea0a Author: Kristen Carlson Accardi Date: Tue Sep 22 10:51:36 2015 -0700 x86/cpufeatures: Correct spelling of the HWP_NOTIFY flag Because noitification just isn't right. Signed-off-by: Kristen Carlson Accardi Acked-by: Rafael J. Wysocki Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: rjw@rjwysocki.net Link: http://lkml.kernel.org/r/1442944296-11737-1-git-send-email-kristen@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/cpufeature.h | 2 +- arch/x86/kernel/cpu/scattered.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 21199f27b430576552b26210b3194a363d7f05cd Author: Peter Zijlstra Date: Wed Sep 16 16:10:40 2015 +0200 locking/lockdep: Fix hlock->pin_count reset on lock stack rebuilds Various people reported hitting the "unpinning an unpinned lock" warning. As it turns out there are 2 places where we take a lock out of the middle of a stack, and in those cases it would fail to preserve the pin_count when rebuilding the lock stack. Reported-by: Sasha Levin Reported-by: Tim Spriggs Tested-by: Sasha Levin Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: davej@codemonkey.org.uk Link: http://lkml.kernel.org/r/20150916141040.GA11639@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar kernel/locking/lockdep.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d0d0313c2ae4bc220c4ed96ce340860a4e74a2e9 Merge: f73e22a c2e4b24 Author: Ingo Molnar Date: Wed Sep 23 09:41:09 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: - Fix libtraceevent string handling in heterogeneous arch environments. (Kapileshwar Singh) - Avoid infinite loop at buildid processing with no samples in 'perf record'. (Mark Rutland) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 22be9cd9f22a4b2acc5fe6666ca23206ebe4d495 Author: Martin Schwidefsky Date: Tue Sep 22 14:21:16 2015 +0200 s390/numa: use correct type for node_to_cpumask_map With CONFIG_CPUMASK_OFFSTACK=y cpumask_var_t is a pointer to a CPU mask. Replace the incorrect type for node_to_cpumask_map with cpumask_t. Signed-off-by: Martin Schwidefsky arch/s390/include/asm/numa.h | 2 +- arch/s390/include/asm/topology.h | 2 +- arch/s390/numa/mode_emu.c | 4 ++-- arch/s390/numa/numa.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit 41b578fb0e8b930f2470d3f673b0fa279e77a7b8 Author: Jesse Barnes Date: Tue Sep 22 12:15:54 2015 -0700 drm/i915: workaround bad DSL readout v3 On HSW at least (still testing other platforms, but should be harmless elsewhere), the DSL reg reads back as 0 when read around vblank start time. This ends up confusing the atomic start/end checking code, since it causes the update to appear as if it crossed a frame count boundary. Avoid the problem by making sure we don't return scanline_offset from the get_crtc_scanline function. In moving the code there, I add to add an additional delay since it could be called and have a legitimate 0 result for some time (depending on the pixel clock). v2: move hsw dsl read hack to get_crtc_scanline (Ville) v3: use break instead of goto (Ville) update comment with workaround details (Ville) References: https://bugs.freedesktop.org/show_bug.cgi?id=91579 Signed-off-by: Jesse Barnes Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_irq.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit fbd03513bf36c4e5c2942f436f05c8eb99a3cc9e Author: Neil Armstrong Date: Tue Sep 22 11:28:14 2015 +0200 net: dsa: Fix Marvell Egress Trailer check The Marvell Egress rx trailer check must be fixed to correctly detect bad bits in the third byte of the Eggress trailer as described in the Table 28 of the 88E6060 datasheet. The current code incorrectly omits to check the third byte and checks the fourth byte twice. Signed-off-by: Neil Armstrong Acked-by: Guenter Roeck Signed-off-by: David S. Miller net/dsa/tag_trailer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7def0f952eccdd0edb3c504f4dab35ee0d3aba1f Author: Dmitriy Vyukov Date: Tue Sep 22 10:51:52 2015 +0200 lib: fix data race in rhashtable_rehash_one rhashtable_rehash_one() uses complex logic to update entry->next field, after INIT_RHT_NULLS_HEAD and NULLS_MARKER expansion: entry->next = 1 | ((base + off) << 1) This can be compiled along the lines of: entry->next = base + off entry->next <<= 1 entry->next |= 1 Which will break concurrent readers. NULLS value recomputation is not needed here, so just remove the complex logic. The data race was found with KernelThreadSanitizer (KTSAN). Signed-off-by: Dmitry Vyukov Acked-by: Eric Dumazet Acked-by: Thomas Graf Acked-by: Herbert Xu Signed-off-by: David S. Miller lib/rhashtable.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 23eedbc2435ddd226717603c4f3c8efec7bdbb4d Author: Tobias Klauser Date: Tue Sep 22 09:29:49 2015 +0200 ch9200: Convert to use module_usb_driver Converts the ch9200 driver to use the module_usb_driver() macro which makes the code smaller and a bit simpler. Signed-off-by: Tobias Klauser Acked-by: Matthew Garrett Signed-off-by: David S. Miller drivers/net/usb/ch9200.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit ae5f2fb1d51fa128a460bcfbe3c56d7ab8bf6a43 Author: Jesse Gross Date: Mon Sep 21 20:21:20 2015 -0700 openvswitch: Zero flows on allocation. When support for megaflows was introduced, OVS needed to start installing flows with a mask applied to them. Since masking is an expensive operation, OVS also had an optimization that would only take the parts of the flow keys that were covered by a non-zero mask. The values stored in the remaining pieces should not matter because they are masked out. While this works fine for the purposes of matching (which must always look at the mask), serialization to netlink can be problematic. Since the flow and the mask are serialized separately, the uninitialized portions of the flow can be encoded with whatever values happen to be present. In terms of functionality, this has little effect since these fields will be masked out by definition. However, it leaks kernel memory to userspace, which is a potential security vulnerability. It is also possible that other code paths could look at the masked key and get uninitialized data, although this does not currently appear to be an issue in practice. This removes the mask optimization for flows that are being installed. This was always intended to be the case as the mask optimizations were really targetting per-packet flow operations. Fixes: 03f0d916 ("openvswitch: Mega flow implementation") Signed-off-by: Jesse Gross Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/datapath.c | 4 ++-- net/openvswitch/flow_table.c | 23 ++++++++++++----------- net/openvswitch/flow_table.h | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) commit 53adc9e83028d9e35b6408231ebaf62a94a16e4d Author: Russell King Date: Mon Sep 21 21:42:59 2015 +0100 net: dsa: actually force the speed on the CPU port Commit 54d792f257c6 ("net: dsa: Centralise global and port setup code into mv88e6xxx.") merged in the 4.2 merge window broke the link speed forcing for the CPU port of Marvell DSA switches. The original code was: /* MAC Forcing register: don't force link, speed, duplex * or flow control state to any particular values on physical * ports, but force the CPU port and all DSA ports to 1000 Mb/s * full duplex. */ if (dsa_is_cpu_port(ds, p) || ds->dsa_port_mask & (1 << p)) REG_WRITE(addr, 0x01, 0x003e); else REG_WRITE(addr, 0x01, 0x0003); but the new code does a read-modify-write: reg = _mv88e6xxx_reg_read(ds, REG_PORT(port), PORT_PCS_CTRL); if (dsa_is_cpu_port(ds, port) || ds->dsa_port_mask & (1 << port)) { reg |= PORT_PCS_CTRL_FORCE_LINK | PORT_PCS_CTRL_LINK_UP | PORT_PCS_CTRL_DUPLEX_FULL | PORT_PCS_CTRL_FORCE_DUPLEX; if (mv88e6xxx_6065_family(ds)) reg |= PORT_PCS_CTRL_100; else reg |= PORT_PCS_CTRL_1000; The link speed in the PCS control register is a two bit field. Forcing the link speed in this way doesn't ensure that the bit field is set to the correct value - on the hardware I have here, the speed bitfield remains set to 0x03, resulting in the speed not being forced to gigabit. We must clear both bits before forcing the link speed. Fixes: 54d792f257c6 ("net: dsa: Centralise global and port setup code into mv88e6xxx.") Signed-off-by: Russell King Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 1 + 1 file changed, 1 insertion(+) commit 08399efc631960c827cebcfe83ad7ed54ebc012b Author: John W. Linville Date: Mon Sep 21 10:29:09 2015 -0400 geneve: ensure ECN info is handled properly in all tx/rx paths Partially due to a pre-exising "thinko", the new metadata-based tx/rx paths were handling ECN propagation differently than the traditional tx/rx paths. This patch removes the "thinko" (involving multiple ip_hdr assignments) on the rx path and corrects the ECN handling on both the rx and tx paths. Signed-off-by: John W. Linville Reviewed-by: Jesse Gross Signed-off-by: David S. Miller drivers/net/geneve.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 012572d4fc2e4ddd5c8ec8614d51414ec6cae02a Author: Joseph Qi Date: Tue Sep 22 14:59:20 2015 -0700 ocfs2/dlm: fix deadlock when dispatch assert master The order of the following three spinlocks should be: dlm_domain_lock < dlm_ctxt->spinlock < dlm_lock_resource->spinlock But dlm_dispatch_assert_master() is called while holding dlm_ctxt->spinlock and dlm_lock_resource->spinlock, and then it calls dlm_grab() which will take dlm_domain_lock. Once another thread (for example, dlm_query_join_handler) has already taken dlm_domain_lock, and tries to take dlm_ctxt->spinlock deadlock happens. Signed-off-by: Joseph Qi Cc: Joel Becker Cc: Mark Fasheh Cc: "Junxiao Bi" Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 9 ++++++--- fs/ocfs2/dlm/dlmrecovery.c | 8 ++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) commit 7a07b503bf249986a1eeef0351d66cac0d8bf721 Author: Mathieu Desnoyers Date: Tue Sep 22 14:59:20 2015 -0700 membarrier: clean up selftest We don't need to specify an explicit rule in the Makefile, the implicit one will do the same. The "__EXPORTED_HEADERS__" define is not needed, because we build the test against the installed kernel headers, not the in-tree kernel headers. Re-use "$(TEST_PROGS)" in the clean target rather than spelling the executable name twice. Include rather than the rather specific . Include rather than . In both cases, the former header is located in a standard location and includes the latter. Signed-off-by: Mathieu Desnoyers Acked-by: Michael Ellerman Cc: Pranith Kumar Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/membarrier/Makefile | 7 +++---- tools/testing/selftests/membarrier/membarrier_test.c | 5 +---- 2 files changed, 4 insertions(+), 8 deletions(-) commit d5028f9f7d8de5c375c52b98976b6f310e73398f Author: Vladimir Davydov Date: Tue Sep 22 14:59:20 2015 -0700 vmscan: fix sane_reclaim helper for legacy memcg The sane_reclaim() helper is supposed to return false for memcg reclaim if the legacy hierarchy is used, because the latter lacks dirty throttling mechanism, and so it did before it was accidentally broken by commit 33398cf2f360c ("memcg: export struct mem_cgroup"). Fix it. Fixes: 33398cf2f360c ("memcg: export struct mem_cgroup") Signed-off-by: Vladimir Davydov Acked-by: Tejun Heo Acked-by: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d046b770c9fc36ccb19c27afdb8322220108cbc7 Author: Sowmini Varadhan Date: Tue Sep 22 14:59:20 2015 -0700 lib/iommu-common.c: do not try to deref a null iommu->lazy_flush() pointer when n < pool->hint The check for invoking iommu->lazy_flush() from iommu_tbl_range_alloc() has to be refactored so that we only call ->lazy_flush() if it is non-null. I had a sparc kernel that was crashing when I was trying to process some very large perf.data files- the crash happens when the scsi driver calls into dma_4v_map_sg and thus the iommu_tbl_range_alloc(). Signed-off-by: Sowmini Varadhan Cc: Benjamin Herrenschmidt Cc: Guenter Roeck Cc: David S. Miller Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/iommu-common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 769a8089c1fd2fe94c13e66fe6e03d7820953ee3 Author: Andrey Ryabinin Date: Tue Sep 22 14:59:17 2015 -0700 x86, efi, kasan: #undef memset/memcpy/memmove per arch In not-instrumented code KASAN replaces instrumented memset/memcpy/memmove with not-instrumented analogues __memset/__memcpy/__memove. However, on x86 the EFI stub is not linked with the kernel. It uses not-instrumented mem*() functions from arch/x86/boot/compressed/string.c So we don't replace them with __mem*() variants in EFI stub. On ARM64 the EFI stub is linked with the kernel, so we should replace mem*() functions with __mem*(), because the EFI stub runs before KASAN sets up early shadow. So let's move these #undef mem* into arch's asm/efi.h which is also included by the EFI stub. Also, this will fix the warning in 32-bit build reported by kbuild test robot: efi-stub-helper.c:599:2: warning: implicit declaration of function 'memcpy' [akpm@linux-foundation.org: use 80 cols in comment] Signed-off-by: Andrey Ryabinin Reported-by: Fengguang Wu Cc: Will Deacon Cc: Catalin Marinas Cc: Matt Fleming Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/include/asm/efi.h | 10 ++++++++++ drivers/firmware/efi/libstub/efistub.h | 4 ---- 2 files changed, 10 insertions(+), 4 deletions(-) commit 3aaa76e125c1dd58c9b599baa8c6021896874c12 Author: Naoya Horiguchi Date: Tue Sep 22 14:59:14 2015 -0700 mm: migrate: hugetlb: putback destination hugepage to active list Since commit bcc54222309c ("mm: hugetlb: introduce page_huge_active") each hugetlb page maintains its active flag to avoid a race condition betwe= en multiple calls of isolate_huge_page(), but current kernel doesn't set the f= lag on a hugepage allocated by migration because the proper putback routine isn= 't called. This means that users could still encounter the race referred to by bcc54222309c in this special case, so this patch fixes it. Fixes: bcc54222309c ("mm: hugetlb: introduce page_huge_active") Signed-off-by: Naoya Horiguchi Cc: Michal Hocko Cc: Andi Kleen Cc: Hugh Dickins Cc: [4.1.x] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/migrate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a04446ab0cf4f35d9f583cd6adcbf7c534e4995 Author: Kirill A. Shutemov Date: Tue Sep 22 14:59:12 2015 -0700 mm, dax: VMA with vm_ops->pfn_mkwrite wants to be write-notified For VM_PFNMAP and VM_MIXEDMAP we use vm_ops->pfn_mkwrite instead of vm_ops->page_mkwrite to notify abort write access. This means we want vma->vm_page_prot to be write-protected if the VMA provides this vm_ops. A theoretical scenario that will cause these missed events is: On writable mapping with vm_ops->pfn_mkwrite, but without vm_ops->page_mkwrite: read fault followed by write access to the pfn. Writable pte will be set up on read fault and write fault will not be generated. I found it examining Dave's complaint on generic/080: http://lkml.kernel.org/g/20150831233803.GO3902@dastard Although I don't think it's the reason. It shouldn't be a problem for ext2/ext4 as they provide both pfn_mkwrite and page_mkwrite. [akpm@linux-foundation.org: add local vm_ops to avoid 80-cols mess] Signed-off-by: Kirill A. Shutemov Cc: Yigal Korman Acked-by: Boaz Harrosh Cc: Matthew Wilcox Cc: Jan Kara Cc: Dave Chinner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 09f7298100ea9767324298ab0c7979f6d7463183 Author: Dr. David Alan Gilbert Date: Tue Sep 22 14:59:09 2015 -0700 userfaultfd: register uapi generic syscall (aarch64) Add the userfaultfd syscalls to uapi asm-generic, it was tested with postcopy live migration on aarch64 with both 4k and 64k pagesize kernels. Signed-off-by: Dr. David Alan Gilbert Signed-off-by: Andrea Arcangeli Cc: Michael Ellerman Cc: Shuah Khan Cc: Thierry Reding Cc: Mathieu Desnoyers Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/uapi/asm-generic/unistd.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 5dd01be14565df814408327971775f36e55bf5e3 Author: Andrea Arcangeli Date: Tue Sep 22 14:59:06 2015 -0700 userfaultfd: selftest: don't error out if pthread_mutex_t isn't identical On ppc big endian this check fails, the mutex doesn't necessarily need to be identical for all pages after pthread_mutex_lock/unlock cycles. The count verification (outside of the pthread_mutex_t structure) suffices and that is retained. Signed-off-by: Andrea Arcangeli Cc: Dr. David Alan Gilbert Cc: Michael Ellerman Cc: Shuah Khan Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/userfaultfd.c | 9 --------- 1 file changed, 9 deletions(-) commit a5932bf5737f0b5caf6deaa92b062e4fe66cf5b2 Author: Andrea Arcangeli Date: Tue Sep 22 14:59:03 2015 -0700 userfaultfd: selftest: return an error if BOUNCE_VERIFY fails This will report the error in the exit code, in addition of the fprintf. Signed-off-by: Andrea Arcangeli Cc: Dr. David Alan Gilbert Cc: Michael Ellerman Cc: Shuah Khan Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/userfaultfd.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 1f5fee2cf232f9fac05b65f21107d2cf3c32092c Author: Andrea Arcangeli Date: Tue Sep 22 14:59:00 2015 -0700 userfaultfd: selftest: avoid my_bcmp false positives with powerpc Keep a non-zero placeholder after the count, for the my_bcmp comparison of the page against the zeropage. The lockless increment between 255 to 256 against a lockless my_bcmp could otherwise return false positives on ppc32le. Signed-off-by: Andrea Arcangeli Tested-by: Michael Ellerman Cc: Dr. David Alan Gilbert Cc: Shuah Khan Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/userfaultfd.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 56ed8f169e225dce1f9e40f6eee2e2dabe7d06fc Author: Michael Ellerman Date: Tue Sep 22 14:58:58 2015 -0700 userfaultfd: selftest: only warn if __NR_userfaultfd is undefined If __NR_userfaultfd is not yet defined by the arch, warn but still build and run the userfaultfd selftest successfully. Signed-off-by: Michael Ellerman Signed-off-by: Andrea Arcangeli Cc: Dr. David Alan Gilbert Cc: Shuah Khan Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/userfaultfd.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 67f6a029b2ccf3399783a0ff2f812666f290d94f Author: Andrea Arcangeli Date: Tue Sep 22 14:58:55 2015 -0700 userfaultfd: selftest: headers fixup Depend on "make headers_install" to create proper headers to include and provide syscall numbers. Signed-off-by: Andrea Arcangeli Cc: Dr. David Alan Gilbert Cc: Michael Ellerman Cc: Shuah Khan Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/Makefile | 7 +++++-- tools/testing/selftests/vm/userfaultfd.c | 10 ---------- 2 files changed, 5 insertions(+), 12 deletions(-) commit d0a871141d07929b559f5eae9c3fc4b63d16866b Author: Thierry Reding Date: Tue Sep 22 14:58:52 2015 -0700 userfaultfd: selftests: vm: pick up sanitized kernel headers Add the usr/include subdirectory of the top-level tree to the include path, and make sure to include headers without relative paths to make sure the sanitized headers get picked up. Otherwise the compiler will not be able to find the linux/compiler.h header included by the non- sanitized include/uapi/linux/userfaultfd.h. While at it, make sure to only hardcode the syscall numbers on x86 and PowerPC if they haven't been properly picked up from the headers. Signed-off-by: Thierry Reding Acked-by: Michael Ellerman Cc: Shuah Khan Signed-off-by: Andrea Arcangeli Cc: Dr. David Alan Gilbert Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/Makefile | 2 +- tools/testing/selftests/vm/userfaultfd.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) commit ac5be6b47e8bd25b62bed2c82cda7398999f59e9 Author: Andrea Arcangeli Date: Tue Sep 22 14:58:49 2015 -0700 userfaultfd: revert "userfaultfd: waitqueue: add nr wake parameter to __wake_up_locked_key" This reverts commit 51360155eccb907ff8635bd10fc7de876408c2e0 and adapts fs/userfaultfd.c to use the old version of that function. It didn't look robust to call __wake_up_common with "nr == 1" when we absolutely require wakeall semantics, but we've full control of what we insert in the two waitqueue heads of the blocked userfaults. No exclusive waitqueue risks to be inserted into those two waitqueue heads so we can as well stick to "nr == 1" of the old code and we can rely purely on the fact no waitqueue inserted in one of the two waitqueue heads we must enforce as wakeall, has wait->flags WQ_FLAG_EXCLUSIVE set. Signed-off-by: Andrea Arcangeli Cc: Dr. David Alan Gilbert Cc: Michael Ellerman Cc: Shuah Khan Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 8 ++++---- include/linux/wait.h | 5 ++--- kernel/sched/wait.c | 7 +++---- net/sunrpc/sched.c | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) commit 834e465bba38f2768747bccb5f00e951e72d2bf5 Author: Kinglong Mee Date: Tue Sep 22 06:54:47 2015 +0800 NFS: Skip checking ds_cinfo.buckets when lseg's commit_through_mds is set When lseg's commit_through_mds is set, pnfs client always WARN once in nfs_direct_select_verf after checking ds_cinfo.nbuckets. nfs should use the DS verf except commit_through_mds is set for layout segment where nbuckets is zero. [17844.666094] ------------[ cut here ]------------ [17844.667071] WARNING: CPU: 0 PID: 21758 at /root/source/linux-pnfs/fs/nfs/direct.c:174 nfs_direct_select_verf+0x5a/0x70 [nfs]() [17844.668650] Modules linked in: nfs_layout_nfsv41_files(OE) nfsv4(OE) nfs(OE) fscache(E) nfsd(OE) xfs libcrc32c btrfs ppdev coretemp crct10dif_pclmul auth_rpcgss crc32_pclmul crc32c_intel nfs_acl ghash_clmulni_intel lockd vmw_balloon xor vmw_vmci grace raid6_pq shpchp sunrpc parport_pc i2c_piix4 parport vmwgfx drm_kms_helper ttm drm serio_raw mptspi e1000 scsi_transport_spi mptscsih mptbase ata_generic pata_acpi [last unloaded: fscache] [17844.686676] CPU: 0 PID: 21758 Comm: kworker/0:1 Tainted: G W OE 4.3.0-rc1-pnfs+ #245 [17844.687352] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 [17844.698502] Workqueue: nfsiod rpc_async_release [sunrpc] [17844.699212] 0000000000000009 0000000043e58010 ffff8800454fbc10 ffffffff813680c4 [17844.699990] ffff8800454fbc48 ffffffff8108b49d ffff88004eb20000 ffff88004eb20000 [17844.700844] ffff880062e26000 0000000000000000 0000000000000001 ffff8800454fbc58 [17844.701637] Call Trace: [17844.725252] [] dump_stack+0x19/0x25 [17844.732693] [] warn_slowpath_common+0x7d/0xb0 [17844.733855] [] warn_slowpath_null+0x1a/0x20 [17844.735015] [] nfs_direct_select_verf+0x5a/0x70 [nfs] [17844.735999] [] nfs_direct_set_hdr_verf+0x23/0x90 [nfs] [17844.736846] [] nfs_direct_write_completion+0x227/0x260 [nfs] [17844.737782] [] nfs_pgio_release+0x1c/0x20 [nfs] [17844.738597] [] pnfs_generic_rw_release+0x23/0x30 [nfsv4] [17844.739486] [] rpc_free_task+0x2a/0x70 [sunrpc] [17844.740326] [] rpc_async_release+0x15/0x20 [sunrpc] [17844.741173] [] process_one_work+0x21c/0x4c0 [17844.741984] [] ? process_one_work+0x16d/0x4c0 [17844.742837] [] worker_thread+0x4a/0x440 [17844.743639] [] ? process_one_work+0x4c0/0x4c0 [17844.744399] [] ? process_one_work+0x4c0/0x4c0 [17844.745176] [] kthread+0xf5/0x110 [17844.745927] [] ? kthread_create_on_node+0x240/0x240 [17844.747105] [] ret_from_fork+0x3f/0x70 [17844.747856] [] ? kthread_create_on_node+0x240/0x240 [17844.748642] ---[ end trace 336a2845d42b83f0 ]--- Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/direct.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b838b39e930aa1cfd099ea82ac40ed6d6413af26 Author: Bjorn Helgaas Date: Tue Sep 22 17:03:54 2015 -0500 PCI: Clear IORESOURCE_UNSET when clipping a bridge window c770cb4cb505 ("PCI: Mark invalid BARs as unassigned") sets IORESOURCE_UNSET if we fail to claim a resource. If we tried to claim a bridge window, failed, clipped the window, and tried to claim the clipped window, we failed again because of IORESOURCE_UNSET: pci_bus 0000:00: root bus resource [mem 0xc0000000-0xffffffff window] pci 0000:00:01.0: can't claim BAR 15 [mem 0xbdf00000-0xddefffff 64bit pref]: no compatible bridge window pci 0000:00:01.0: [mem size 0x20000000 64bit pref] clipped to [mem size 0x1df00000 64bit pref] pci 0000:00:01.0: bridge window [mem size 0x1df00000 64bit pref] pci 0000:00:01.0: can't claim BAR 15 [mem size 0x1df00000 64bit pref]: no address assigned The 00:01.0 window started as [mem 0xbdf00000-0xddefffff 64bit pref]. That starts before the host bridge window [mem 0xc0000000-0xffffffff window], so we clipped the 00:01.0 window to [mem 0xc0000000-0xddefffff 64bit pref]. But we left it marked IORESOURCE_UNSET, so the second claim failed when it should have succeeded. This means downstream devices will also fail for lack of resources, e.g., in the bugzilla below, radeon 0000:01:00.0: Fatal error during GPU init Clear IORESOURCE_UNSET when we clip a bridge window. Also clear IORESOURCE_UNSET in our copy of the unclipped window so we can see exactly what the original window was and how it now fits inside the upstream window. Fixes: c770cb4cb505 ("PCI: Mark invalid BARs as unassigned") Link: https://bugzilla.kernel.org/show_bug.cgi?id=85491#c47 Based-on-patch-by: Lorenzo Pieralisi Based-on-patch-by: Yinghai Lu Tested-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Lorenzo Pieralisi Acked-by: Yinghai Lu CC: stable@vger.kernel.org # v4.1+ drivers/pci/bus.c | 2 ++ 1 file changed, 2 insertions(+) commit 8811191fdf7ed02ee07cb8469428158572d355a2 Author: Robert Jarzmik Date: Tue Sep 22 21:20:22 2015 +0200 ASoC: pxa: pxa2xx-ac97: fix dma requestor lines PCM receive and transmit DMA requestor lines were reverted, breaking the PCM playback interface for PXA platforms using the sound/soc/ variant instead of the sound/arm variant. The commit below shows the inversion in the requestor lines. Fixes: d65a14587a9b ("ASoC: pxa: use snd_dmaengine_dai_dma_data") Signed-off-by: Robert Jarzmik Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/pxa/pxa2xx-ac97.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 83c133cf11fb0e68a51681447e372489f052d40e Author: Andy Lutomirski Date: Sun Sep 20 16:32:05 2015 -0700 x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code The NMI entry code that switches to the normal kernel stack needs to be very careful not to clobber any extra stack slots on the NMI stack. The code is fine under the assumption that SWAPGS is just a normal instruction, but that assumption isn't really true. Use SWAPGS_UNSAFE_STACK instead. This is part of a fix for some random crashes that Sasha saw. Fixes: 9b6e6a8334d5 ("x86/nmi/64: Switch stacks on userspace NMI entry") Reported-and-tested-by: Sasha Levin Signed-off-by: Andy Lutomirski Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/974bc40edffdb5c2950a5c4977f821a446b76178.1442791737.git.luto@kernel.org Signed-off-by: Thomas Gleixner arch/x86/entry/entry_64.S | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fc57a7c68020dcf954428869eafd934c0ab1536f Author: Andy Lutomirski Date: Sun Sep 20 16:32:04 2015 -0700 x86/paravirt: Replace the paravirt nop with a bona fide empty function PARAVIRT_ADJUST_EXCEPTION_FRAME generates this code (using nmi as an example, trimmed for readability): ff 15 00 00 00 00 callq *0x0(%rip) # 2796 2792: R_X86_64_PC32 pv_irq_ops+0x2c That's a call through a function pointer to regular C function that does nothing on native boots, but that function isn't protected against kprobes, isn't marked notrace, and is certainly not guaranteed to preserve any registers if the compiler is feeling perverse. This is bad news for a CLBR_NONE operation. Of course, if everything works correctly, once paravirt ops are patched, it gets nopped out, but what if we hit this code before paravirt ops are patched in? This can potentially cause breakage that is very difficult to debug. A more subtle failure is possible here, too: if _paravirt_nop uses the stack at all (even just to push RBP), it will overwrite the "NMI executing" variable if it's called in the NMI prologue. The Xen case, perhaps surprisingly, is fine, because it's already written in asm. Fix all of the cases that default to paravirt_nop (including adjust_exception_frame) with a big hammer: replace paravirt_nop with an asm function that is just a ret instruction. The Xen case may have other problems, so document them. This is part of a fix for some random crashes that Sasha saw. Reported-and-tested-by: Sasha Levin Signed-off-by: Andy Lutomirski Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/8f5d2ba295f9d73751c33d97fda03e0495d9ade0.1442791737.git.luto@kernel.org Signed-off-by: Thomas Gleixner arch/x86/entry/entry_64.S | 11 +++++++++++ arch/x86/kernel/paravirt.c | 16 ++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) commit 98ce94c8df762d413b3ecb849e2b966b21606d04 Author: Peter Seiderer Date: Thu Sep 17 21:40:12 2015 +0200 cifs: use server timestamp for ntlmv2 authentication Linux cifs mount with ntlmssp against an Mac OS X (Yosemite 10.10.5) share fails in case the clocks differ more than +/-2h: digest-service: digest-request: od failed with 2 proto=ntlmv2 digest-service: digest-request: kdc failed with -1561745592 proto=ntlmv2 Fix this by (re-)using the given server timestamp for the ntlmv2 authentication (as Windows 7 does). A related problem was also reported earlier by Namjae Jaen (see below): Windows machine has extended security feature which refuse to allow authentication when there is time difference between server time and client time when ntlmv2 negotiation is used. This problem is prevalent in embedded enviornment where system time is set to default 1970. Modern servers send the server timestamp in the TargetInfo Av_Pair structure in the challenge message [see MS-NLMP 2.2.2.1] In [MS-NLMP 3.1.5.1.2] it is explicitly mentioned that the client must use the server provided timestamp if present OR current time if it is not Reported-by: Namjae Jeon Signed-off-by: Peter Seiderer Signed-off-by: Steve French CC: Stable fs/cifs/cifsencrypt.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) commit e0ddde9d44e37fbc21ce893553094ecf1a633ab5 Author: Steve French Date: Tue Sep 22 09:29:38 2015 -0500 disabling oplocks/leases via module parm enable_oplocks broken for SMB3 leases (oplocks) were always requested for SMB2/SMB3 even when oplocks disabled in the cifs.ko module. Signed-off-by: Steve French Reviewed-by: Chandrika Srinivasan CC: Stable fs/cifs/smb2ops.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 5b6a7175bfe570857a85b5570857e7555eff2c3a Merge: 3afb112 3eb4ee6 Author: Paolo Bonzini Date: Tue Sep 22 22:01:46 2015 +0200 Merge branch 'kvm-ppc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master commit 43d104db596977a8fddc1e71245859a7fe85a658 Author: James Hogan Date: Thu Sep 17 17:49:21 2015 +0100 MIPS: Fix FTLB detection for R6 R6 removed the Config4.MMUExtDef field, with the low 16 bits only allowed to contain FTLB fields, and commit e87569cd6c57 ("MIPS: cpu-probe: Fix VTLB/FTLB configuration for R6") updated the probing of this field to assume an FTLB is always present for R6. However the FTLB may still be absent. The presence of those fields is actually specified by the MMU type in the Config.MT field, so use that (the new cpu_has_ftlb) to determine whether the FTLB is actually present. Fixes: e87569cd6c57 ("MIPS: cpu-probe: Fix VTLB/FTLB configuration for R6") Signed-off-by: James Hogan Cc: Ralf Baechle Cc: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11160/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 2f6f31363cb7890784458d7805140687b4de5b59 Author: James Hogan Date: Thu Sep 17 17:49:20 2015 +0100 MIPS: cpu-features: Add cpu_has_ftlb Add cpu_has_ftlb, which specifies that an FTLB is present in addition to the VTLB, probed based on whether Config.MT == 4 (rather than 1 for standard JTLB). This is necessary since MIPS release 6 removes Config4.MMUExtDef, so the presence of the FTLB fields in Config4 must be determined from Config.MT instead. Signed-off-by: James Hogan Cc: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11159/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cpu-features.h | 3 +++ arch/mips/include/asm/cpu.h | 1 + arch/mips/include/asm/mipsregs.h | 2 ++ arch/mips/kernel/cpu-probe.c | 8 +++++--- 4 files changed, 11 insertions(+), 3 deletions(-) commit 2b9dbef272b63c561aab0a5be34fd428f7b710f5 Author: Josef Bacik Date: Tue Sep 15 10:07:04 2015 -0400 Btrfs: keep dropped roots in cache until transaction commit When dropping a snapshot we need to account for the qgroup changes. If we drop the snapshot in all one go then the backref code will fail to find blocks from the snapshot we dropped since it won't be able to find the root in the fs root cache. This can lead to us failing to find refs from other roots that pointed at blocks in the now deleted root. To handle this we need to not remove the fs roots from the cache until after we process the qgroup operations. Do this by adding dropped roots to a list on the transaction, and letting the transaction remove the roots at the same time it drops the commit roots. This will keep all of the backref searching code in sync properly, and fixes a problem Mark was seeing with snapshot delete and qgroups. Thanks, Signed-off-by: Josef Bacik Tested-by: Holger Hoffstätte Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 2 +- fs/btrfs/transaction.c | 32 ++++++++++++++++++++++++++++++++ fs/btrfs/transaction.h | 5 ++++- 3 files changed, 37 insertions(+), 2 deletions(-) commit 19446da415e0f01d56364b700fe984cda78bca50 Author: Alexander Couzens Date: Sat Sep 19 06:26:20 2015 +0200 MIPS: ATH79: Add irq chip ar7240-misc-intc The ar7240 misc irq chip use ack handler instead of ack_mask handler. All new ath79 chips use the ar7240 misc irq chip Signed-off-by: Alexander Couzens Acked-by: Alban Bedel Acked-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11164/ Signed-off-by: Ralf Baechle .../interrupt-controller/qca,ath79-misc-intc.txt | 20 ++++++++++++++++++-- arch/mips/ath79/irq.c | 10 ++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) commit 84dedd71cf3bc61cc65ca43a48f7252344a1bb68 Author: Alexander Couzens Date: Sat Sep 19 06:26:19 2015 +0200 MIPS: ATH79: Set missing irq ack handler for ar7100-misc-intc irq chip The irq ack handler was forgotten while introducing OF support. Only ar71xx and ar933x based devices require it. Signed-off-by: Alexander Couzens Acked-by: Alban Bedel Acked-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Cc: Jason Cooper Cc: Marc Zyngier Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11163/ Signed-off-by: Ralf Baechle arch/mips/ath79/irq.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit b259e51f2e29390518021f9b8df55a3de42f371b Author: Aurelien Jarno Date: Sat Sep 5 18:46:57 2015 +0200 MIPS: BPF: Fix build on pre-R2 little endian CPUs The rotr, seh and wsbh instructions have been introduced with the R2 ISA. Thus the current BPF code fails to build on pre-R2 little endian CPUs: CC arch/mips/net/bpf_jit.o AS arch/mips/net/bpf_jit_asm.o /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S: Assembler messages: /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:67: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $8,$19' /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:68: Error: opcode not supported on this processor: mips32 (mips32) `rotr $19,$8,16' /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:83: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $8,$19' /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:84: Error: opcode not supported on this processor: mips32 (mips32) `seh $19,$8' /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:151: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $8,$12' /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:153: Error: opcode not supported on this processor: mips32 (mips32) `rotr $19,$8,16' /home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:164: Error: opcode not supported on this processor: mips32 (mips32) `wsbh $19,$12' /home/aurel32/linux-4.2/scripts/Makefile.build:294: recipe for target 'arch/mips/net/bpf_jit_asm.o' failed Fix that by providing equivalent code for these CPUs. Signed-off-by: Aurelien Jarno Reviewed-by: Markos Chandras Cc: stable@vger.kernel.org # v4.2+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11098/ Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit_asm.S | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit faa9724a674e5e52316bb0d173aed16bd17d536c Author: Aurelien Jarno Date: Sat Sep 5 18:46:56 2015 +0200 MIPS: BPF: Avoid unreachable code on little endian On little endian, avoid generating the big endian version of the code by using #else in addition to #ifdef #endif. Also fix one alignment issue wrt delay slot. Signed-off-by: Aurelien Jarno Reviewed-by: Markos Chandras Cc: stable@vger.kernel.org # v4.2+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11097/ Signed-off-by: Ralf Baechle arch/mips/net/bpf_jit_asm.S | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9e294bf88a583825a413df408b9fe9e658fb93ac Author: Bartlomiej Zolnierkiewicz Date: Fri Aug 28 13:49:35 2015 +0200 clk: samsung: fix cpu clock's flags checking CLK_CPU_HAS_DIV1 and CLK_CPU_NEEDS_DEBUG_ALT_DIV masks were incorrectly used as a bit numbers. Fix it. Tested on Exynos4210 based Origen board and on Exynos5250 based Arndale board. Cc: Tomasz Figa Cc: Michael Turquette Cc: Thomas Abraham Fixes: ddeac8d96 ("clk: samsung: add infrastructure to register cpu clocks") Reported-by: Dan Carpenter Reviewed-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Acked-by: Sylwester Nawrocki Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 711e020cae9cd105d81a783686cb8c8059c08b2c Merge: 5132361 dd85ebf b0b4855 Author: Mark Brown Date: Tue Sep 22 09:48:41 2015 -0700 Merge remote-tracking branches 'spi/fix/spidev' and 'spi/fix/xtfpga' into spi-linus commit 5132361cd97ed21863fb48bb8e4a0e6203a4269a Merge: 1f93e4a d630526 2a3fffd 0243ed4 e26d15f c9e97b3 6583d20 02bc933 Author: Mark Brown Date: Tue Sep 22 09:48:34 2015 -0700 Merge remote-tracking branches 'spi/fix/atmel', 'spi/fix/bcm2835', 'spi/fix/doc', 'spi/fix/mediatek', 'spi/fix/meson', 'spi/fix/mtk' and 'spi/fix/pxa2xx' into spi-linus commit 1c27df1c0a82b938d8073a60243ff62eff8056b5 Author: Will Deacon Date: Fri Sep 18 16:12:56 2015 +0100 iommu/arm-smmu: Use correct address mask for CMD_TLBI_S2_IPA Stage-2 TLBI by IPA takes a 48-bit address field, as opposed to the 64-bit field used by the VA-based invalidation commands. This patch re-jigs the SMMUv3 command construction code so that the address field is correctly masked. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f0c453dbcce7767cd868deb809ba68083c93954e Author: Will Deacon Date: Thu Aug 20 12:12:32 2015 +0100 iommu/arm-smmu: Ensure IAS is set correctly for AArch32-capable SMMUs AArch32-capable SMMU implementations have a minimum IAS of 40 bits, so ensure that is reflected in the stage-2 page table configuration. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit ffcb6d1686ceb4a6b50776fb2597ab0e4dd79040 Author: Robin Murphy Date: Thu Sep 17 17:42:16 2015 +0100 iommu/io-pgtable-arm: Don't use dma_to_phys() In checking whether DMA addresses differ from physical addresses, using dma_to_phys() is actually the wrong thing to do, since it may hide any DMA offset, which is precisely one of the things we are checking for. Simply casting between the two address types, whilst ugly, is in fact the appropriate course of action. Further care (and ugliness) is also necessary in the comparison to avoid truncation if phys_addr_t and dma_addr_t differ in size. We can also reject any device with a fixed DMA offset up-front at page table creation, leaving the allocation-time check for the more subtle cases like bounce buffering due to an incorrect DMA mask. Furthermore, we can then fix the hackish KConfig dependency so that architectures without a dma_to_phys() implementation may still COMPILE_TEST (or even use!) the code. The true dependency is on the DMA API, so use the appropriate symbol for that. Signed-off-by: Robin Murphy [will: folded in selftest fix from Yong Wu] Signed-off-by: Will Deacon drivers/iommu/Kconfig | 3 +-- drivers/iommu/io-pgtable-arm.c | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) commit f0e03dbd2d61d991bdd2d76b4e84681fe3077176 Author: Richard Fitzgerald Date: Tue Sep 22 15:30:33 2015 +0100 MAINTAINERS: Update website and git repo for Wolfson Microelectronics Support for Wolfson Microelectronics devices is now part of Cirrus Logic and the relevant parts of the old opensource.wolfsonmicro.com site have moved to the Cirrus Logic GitHub area. This patch updates the website and git repo links, and also removes an obsolete website link for the voltage and current drivers. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown MAINTAINERS | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit b0b4855099e301c8603ea37da9a0103a96c2e0b1 Author: Max Filippov Date: Tue Sep 22 14:32:03 2015 +0300 spi: xtensa-xtfpga: fix register endianness XTFPGA SPI controller has native endian registers. Fix register acessors so that they work in big-endian configurations. Signed-off-by: Max Filippov Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-xtensa-xtfpga.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f7a7651fcd40a2bf29357ffeaee176fb159bcddb Author: Jonathan McDowell Date: Mon Sep 21 21:23:47 2015 +0100 tty: serial: Add missing module license for 8250_base.ko The split of the 8250 driver into a 8250_base/8250.ko resulted in a lack of a license for the 8250_base.ko module. This caused the module to fail to load and the kernel to be tainted. Add the appropriate MODULE_LICENSE to 8250_port.c, which is always compiled into 8250_base.ko Signed-off-by: Jonathan McDowell Reported-by: Mikael Pettersson Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_port.c | 2 ++ 1 file changed, 2 insertions(+) commit 50314035d6b1e9e07753162dd3be8df81b998086 Merge: ca1c4b7 f4513b0 Author: Greg Kroah-Hartman Date: Tue Sep 22 08:56:13 2015 -0700 Merge tag 'extcon-fixes-for-4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-linus Chanwoo writes: Update extcon for v4.3-rc3 This patches fix the following one issue: - Fix bug of the is_extcon_changed() which check whether specific cable is attached or detached. commit 88d3426942d748b90b051b7ef2d5d765f5f3054c Author: Alexander Sverdlin Date: Thu Sep 3 08:36:35 2015 +0200 MIPS: bootmem: Fix mapstart calculation for contiguous maps Commit a6335fa1 fixed the case with gap between initrd and next usable PFN zone, but broken the case when initrd is combined with usable memory into one region (in add_memory_region()). Restore the fixup initially brought in by f9a7febd. ---- error message ---- Unpacking initramfs... Initramfs unpacking failed: junk in compressed archive BUG: Bad page state in process swapper pfn:00261 page:81004c20 count:0 mapcount:-127 mapping: (null) index:0x2 flags: 0x0() page dumped because: nonzero mapcount CPU: 0 PID: 1 Comm: swapper Not tainted 4.2.0+ #1782 ----------------------- Signed-off-by: Alexander Sverdlin Reported-by: Tony Wu Tested-by: Tony Wu Cc: David Daney Cc: Zubair Lutfullah Kakakhel Cc: Huacai Chen Cc: Joe Perches Cc: Steven J. Hill Cc: Aaro Koskinen Cc: stable@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11086/ Signed-off-by: Ralf Baechle arch/mips/kernel/setup.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit fc2ca674470bbfe11d72a20a3f19fd3dc43bfca0 Author: Guenter Roeck Date: Sun Aug 30 21:19:58 2015 -0700 MIPS: Fix console output for Fulong2e system Commit 3adeb2566b9b ("MIPS: Loongson: Improve LEFI firmware interface") made the number of UARTs dynamic if LEFI_FIRMWARE_INTERFACE is configured. Unfortunately, it did not initialize the number of UARTs if LEFI_FIRMWARE_INTERFACE is not configured. As a result, the Fulong2e system has no console. Fixes: 3adeb2566b9b ("MIPS: Loongson: Improve LEFI firmware interface") Acked-by: Huacai Chen Signed-off-by: Guenter Roeck Tested-by: Markos Chandras Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11076/ Signed-off-by: Ralf Baechle arch/mips/loongson64/common/env.c | 3 +++ 1 file changed, 3 insertions(+) commit c2e4b24ff848bb180f9b9cd873a38327cd219ad2 Author: Kapileshwar Singh Date: Tue Sep 22 14:22:03 2015 +0100 tools lib traceevent: Fix string handling in heterogeneous arch environments When a trace recorded on a 32-bit device is processed with a 64-bit binary, the higher 32-bits of the address need to ignored. The lack of this results in the output of the 64-bit pointer value to the trace as the 32-bit address lookup fails in find_printk(). Before: burn-1778 [003] 548.600305: bputs: 0xc0046db2s: 2cec5c058d98c After: burn-1778 [003] 548.600305: bputs: 0xc0046db2s: RT throttling activated The problem occurs in PRINT_FIELD when the field is recognized as a pointer to a string (of the type const char *) Heterogeneous architectures cases below can arise and should be handled: * Traces recorded using 32-bit addresses processed on a 64-bit machine * Traces recorded using 64-bit addresses processed on a 32-bit machine Reported-by: Juri Lelli Signed-off-by: Kapileshwar Singh Reviewed-by: Steven Rostedt Cc: David Ahern Cc: Javi Merino Cc: Jiri Olsa Cc: Namhyung Kim Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1442928123-13824-1-git-send-email-kapileshwar.singh@arm.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit d32dc9aa10c739363c775baf4499416b2e0dc11f Author: Ludovic Desroches Date: Mon Sep 21 15:46:04 2015 +0200 irqchip/atmel-aic5: Use per chip mask caches in mask/unmask() When masking/unmasking interrupts, mask_cache is updated and used later for suspend/resume. Unfortunately, it always was the mask_cache associated with the first irq chip which was updated. So when performing resume, only irqs 0-31 could be enabled. Fixes: b1479ebb7720 ("irqchip: atmel-aic: Add atmel AIC/AIC5 drivers") Signed-off-by: Ludovic Desroches Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: stable@vger.kernel.org #3.18 Link: http://lkml.kernel.org/r/1442843173-2390-1-git-send-email-ludovic.desroches@atmel.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-atmel-aic5.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit babc305e21ea3811d98b67437299360904ac1b6a Author: Sara Sharon Date: Mon Sep 21 15:47:40 2015 +0300 mac80211: reset CQM history upon reconfiguration The current behavior of notifying CQM events is inconsistent: Upon first configuration there is a cqm event with the current status according to threshold configured, regardless of signal stability. When there is reconfiguration no event is sent unless there is a significant change to the signal level according to the new configuration. Since the current reconfiguration behavior might cause missing CQM events in case the current signal did not change but is on the other side of the new threshold, fix that by resetting the stored signal level upon reconfiguration. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg net/mac80211/cfg.c | 1 + 1 file changed, 1 insertion(+) commit 2df1b131b54f431877a6665139dac805ba5ce1a5 Author: Johannes Berg Date: Fri Aug 21 14:07:13 2015 +0200 mac80211: fix VHT MCS mask array overrun The HT MCS mask has 9 bytes, the VHT one only has 8 streams. Split the loops to handle this correctly. Reported-by: Dan Carpenter Signed-off-by: Johannes Berg net/mac80211/cfg.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 208473c1f3ac3eccec097021eec3890f5e20fcc7 Author: Russell King Date: Thu Sep 17 14:13:44 2015 +0100 ARM: wire up new syscalls Wire up the new userfaultfd and membarrier syscalls for ARM. Signed-off-by: Russell King arch/arm/include/asm/unistd.h | 2 +- arch/arm/include/uapi/asm/unistd.h | 2 ++ arch/arm/kernel/calls.S | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) commit cc8e4fc0c3b5e8340bc8358990515d116a3c274c Author: Mathias Nyman Date: Mon Sep 21 17:46:17 2015 +0300 xhci: init command timeout timer earlier to avoid deleting it uninitialized Don't check if timer is running with a timer_pending() before deleting it with del_timer_sync(), this defies the whole point of the sync part and can cause a possible race. Instead we just want to make sure the timer is initialized early enough before we have a chance to delete it. Cc: Reported-by: Oliver Neukum Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mem.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit dca7794539eff04b786fb6907186989e5eaaa9c2 Author: Mathias Nyman Date: Mon Sep 21 17:46:16 2015 +0300 xhci: change xhci 1.0 only restrictions to support xhci 1.1 Some changes between xhci 0.96 and xhci 1.0 specifications forced us to check the hci version in code, some of these checks were implemented as hci_version == 1.0, which will not work with new xhci 1.1 controllers. xhci 1.1 behaves similar to xhci 1.0 in these cases, so change these checks to hci_version >= 1.0 Cc: Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-mem.c | 6 +++--- drivers/usb/host/xhci-ring.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 448116bfa856d3c076fa7178ed96661a008a5d45 Author: Roger Quadros Date: Mon Sep 21 17:46:15 2015 +0300 usb: xhci: exit early in xhci_setup_device() if we're halted or dying During quick plug/removal of OTG adapter during dual-role testing it can happen that xhci_alloc_device() is called for the newly detected device after the DRD library has called xhci_stop to remove the HCD. If that is the case, just fail early to prevent the following warning. [ 154.732649] hub 4-0:1.0: USB hub found [ 154.742204] hub 4-0:1.0: 1 port detected [ 154.824458] hub 3-0:1.0: state 7 ports 1 chg 0002 evt 0000 [ 154.854609] hub 4-0:1.0: state 7 ports 1 chg 0000 evt 0000 [ 154.944430] usb 3-1: new high-speed USB device number 2 using xhci-hcd [ 154.951009] xhci-hcd xhci-hcd.0.auto: xhci_setup_device [ 155.038191] xhci-hcd xhci-hcd.0.auto: remove, state 4 [ 155.043315] usb usb4: USB disconnect, device number 1 [ 155.055270] xhci-hcd xhci-hcd.0.auto: xhci_stop [ 155.060094] xhci-hcd xhci-hcd.0.auto: USB bus 4 deregistered [ 155.066576] xhci-hcd xhci-hcd.0.auto: remove, state 1 [ 155.071710] usb usb3: USB disconnect, device number 1 [ 155.077124] xhci-hcd xhci-hcd.0.auto: xhci_setup_device [ 155.082389] ------------[ cut here ]------------ [ 155.087690] WARNING: CPU: 0 PID: 72 at drivers/usb/host/xhci.c:3800 xhci_setup_device+0x410/0x484 [xhci_hcd]() [ 155.097861] Modules linked in: sd_mod usb_storage scsi_mod usb_f_ss_lb g_zero libcomposite ipv6 xhci_plat_hcd xhci_hcd usbcore dwc3 udc_core evdev ti_am335x_adc joydev kfifo_buf industrialio snd_soc_simple_cc [ 155.146734] CPU: 0 PID: 72 Comm: kworker/0:3 Tainted: G W 4.1.4-00834-gcd9380b-dirty #50 [ 155.156073] Hardware name: Generic AM43 (Flattened Device Tree) [ 155.162117] Workqueue: usb_hub_wq hub_event [usbcore] [ 155.167249] Backtrace: [ 155.169751] [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [ 155.177390] r6:c089d4a4 r5:ffffffff r4:00000000 r3:ee46c000 [ 155.183137] [] (show_stack) from [] (dump_stack+0x84/0xd0) [ 155.190446] [] (dump_stack) from [] (warn_slowpath_common+0x80/0xbc) [ 155.198605] r7:00000009 r6:00000ed8 r5:bf27eb70 r4:00000000 [ 155.204348] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x24/0x2c) [ 155.213202] r8:ee49f000 r7:ee7c0004 r6:00000000 r5:ee7c0158 r4:ee7c0000 [ 155.220051] [] (warn_slowpath_null) from [] (xhci_setup_device+0x410/0x484 [xhci_hcd]) [ 155.229816] [] (xhci_setup_device [xhci_hcd]) from [] (xhci_address_device+0x14/0x18 [xhci_hcd]) [ 155.240415] r10:ee598200 r9:00000001 r8:00000002 r7:00000001 r6:00000003 r5:00000002 [ 155.248363] r4:ee49f000 [ 155.250978] [] (xhci_address_device [xhci_hcd]) from [] (hub_port_init+0x1b8/0xa9c [usbcore]) [ 155.261403] [] (hub_port_init [usbcore]) from [] (hub_event+0x738/0x1020 [usbcore]) [ 155.270874] r10:ee598200 r9:ee7c0000 r8:ee7c0038 r7:ee518800 r6:ee49f000 r5:00000001 [ 155.278822] r4:00000000 [ 155.281426] [] (hub_event [usbcore]) from [] (process_one_work+0x128/0x340) [ 155.290196] r10:00000000 r9:00000003 r8:00000000 r7:fedfa000 r6:eeec5400 r5:ee598314 [ 155.298151] r4:ee434380 [ 155.300718] [] (process_one_work) from [] (worker_thread+0x158/0x49c) [ 155.308963] r10:ee434380 r9:00000003 r8:eeec5400 r7:00000008 r6:ee434398 r5:eeec5400 [ 155.316913] r4:eeec5414 [ 155.319482] [] (worker_thread) from [] (kthread+0xdc/0xf8) [ 155.326765] r10:00000000 r9:00000000 r8:00000000 r7:c00577a0 r6:ee434380 r5:ee4441c0 [ 155.334713] r4:00000000 r3:00000000 [ 155.338341] [] (kthread) from [] (ret_from_fork+0x14/0x2c) [ 155.345626] r7:00000000 r6:00000000 r5:c005cb64 r4:ee4441c0 [ 155.356108] ---[ end trace a58d34c223b190e6 ]--- [ 155.360783] xhci-hcd xhci-hcd.0.auto: Virt dev invalid for slot_id 0x1! [ 155.574404] xhci-hcd xhci-hcd.0.auto: xhci_setup_device [ 155.579667] ------------[ cut here ]------------ Cc: Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 3 +++ 1 file changed, 3 insertions(+) commit 8c24d6d7b09deee3036ddc4f2b81b53b28c8f877 Author: Roger Quadros Date: Mon Sep 21 17:46:14 2015 +0300 usb: xhci: stop everything on the first call to xhci_stop xhci_stop will be called twice, once for the shared hcd and again for the primary hcd. We stop the XHCI controller in any case so clean up everything on the first call else we can timeout waiting for pending requests to complete. Cc: Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit e5bfeab0ad515b4f6df39fe716603e9dc6d3dfd0 Author: Roger Quadros Date: Mon Sep 21 17:46:13 2015 +0300 usb: xhci: Clear XHCI_STATE_DYING on start For whatever reason if XHCI died in the previous instant then it will never recover on the next xhci_start unless we clear the DYING flag. Cc: Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 85ac90f8953a58f6a057b727bc9db97721e3fb8e Author: Roger Quadros Date: Mon Sep 21 17:46:12 2015 +0300 usb: xhci: lock mutex on xhci_stop Else it races with xhci_setup_device Cc: Signed-off-by: Roger Quadros Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2b7627b73e81e5d23d5ae1490fe8e690af86e053 Author: Tomer Barletz Date: Mon Sep 21 17:46:11 2015 +0300 xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM xhci_pme_quirk() is only used when CONFIG_PM is defined. Compiling a kernel without PM complains about this function [reworded commit message -Mathias] Cc: Signed-off-by: Tomer Barletz Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-pci.c | 90 ++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 45 deletions(-) commit a6809ffd1687b3a8c192960e69add559b9d32649 Author: Mathias Nyman Date: Mon Sep 21 17:46:10 2015 +0300 xhci: give command abortion one more chance before killing xhci We want to give the command abortion an additional try to stop the command ring before we completely hose xhci. Cc: Tested-by: Vincent Pelletier Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit ff30cbc8da425754e8ab96904db1d295bd034f27 Author: Mathias Nyman Date: Mon Sep 21 17:46:09 2015 +0300 usb: Use the USB_SS_MULT() macro to get the burst multiplier. Bits 1:0 of the bmAttributes are used for the burst multiplier. The rest of the bits used to be reserved (zero), but USB3.1 takes bit 7 into use. Use the existing USB_SS_MULT() macro instead to make sure the mult value and hence max packet calculations are correct for USB3.1 devices. Note that burst multiplier in bmAttributes is zero based and that the USB_SS_MULT() macro adds one. Cc: Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/core/config.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 01f4fd2a4f741057aaa5ba5ac3b09a42c9ada028 Merge: ea93465 a66c275b Author: Greg Kroah-Hartman Date: Mon Sep 21 22:21:31 2015 -0700 Merge tag 'fixes-for-v4.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.3-rc3 Here's the second pull request for current -rc cycle. A few fixes on dummy_hcd which have been around for longer than they should be. MUSB got a couple fixes, the most important of which is a fix to DMA channel teardown on AM335x devices. And DWC3 got a minor fix for when using RT-enabled kernels. commit bcee19f424a0d8c26ecf2607b73c690802658b29 Merge: ac2fc4b 0c98625 Author: Linus Torvalds Date: Mon Sep 21 18:26:54 2015 -0700 Merge branch 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fixes from Tejun Heo: "The threadgroup locking changes which went in during 4.2 devel cycle added write locking of a percpu_rwsem in cgroup task migration path; unfortunately, that involved expedited rcu syncing which turned out to be too slow and heavy for certain workloads. The patchset which is dependent on this one didn't get committed during that devel cycle, so these two patches can be reverted safely. Oleg reworked percpu_rwsem for 4.4 so that the writer path is a lot lighter. The reported issue goes away with Oleg's reworked percpu_rwsem and I'll reapply these patches on the for-4.4 branch so that they can land together with Oleg's changes" * 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: Revert "sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem" Revert "cgroup: simplify threadgroup locking" commit 8e375ccda31ccc73b087134e263c48d2114534f4 Author: Boris BREZILLON Date: Sun Sep 13 18:14:43 2015 +0200 mtd: nand: sunxi: fix sunxi_nand_chips_cleanup() The sunxi_nand_chips_cleanup() function is missing a call to list_del() which generates a double free error. Reported-by: Priit Laes Signed-off-by: Boris Brezillon Cc: # 3.19+ Fixes: 1fef62c1423b ("mtd: nand: add sunxi NAND flash controller support") Tested-by: Priit Laes Signed-off-by: Brian Norris drivers/mtd/nand/sunxi_nand.c | 1 + 1 file changed, 1 insertion(+) commit 29c6852602e259d2c1882f320b29d5c3fec0de04 Author: Eric Dumazet Date: Sat Sep 19 09:48:04 2015 -0700 inet: fix races in reqsk_queue_hash_req() Before allowing lockless LISTEN processing, we need to make sure to arm the SYN_RECV timer before the req socket is visible in hash tables. Also, req->rsk_hash should be written before we set rsk_refcnt to a non zero value. Fixes: fa76ce7328b2 ("inet: get rid of central tcp/dccp listener timer") Signed-off-by: Eric Dumazet Cc: Ying Cai Signed-off-by: David S. Miller net/ipv4/inet_connection_sock.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ed2e923945892a8372ab70d2f61d364b0b6d9054 Author: Eric Dumazet Date: Sat Sep 19 09:08:34 2015 -0700 tcp/dccp: fix timewait races in timer handling When creating a timewait socket, we need to arm the timer before allowing other cpus to find it. The signal allowing cpus to find the socket is setting tw_refcnt to non zero value. As we set tw_refcnt in __inet_twsk_hashdance(), we therefore need to call inet_twsk_schedule() first. This also means we need to remove tw_refcnt changes from inet_twsk_schedule() and let the caller handle it. Note that because we use mod_timer_pinned(), we have the guarantee the timer wont expire before we set tw_refcnt as we run in BH context. To make things more readable I introduced inet_twsk_reschedule() helper. When rearming the timer, we can use mod_timer_pending() to make sure we do not rearm a canceled timer. Note: This bug can possibly trigger if packets of a flow can hit multiple cpus. This does not normally happen, unless flow steering is broken somehow. This explains this bug was spotted ~5 months after its introduction. A similar fix is needed for SYN_RECV sockets in reqsk_queue_hash_req(), but will be provided in a separate patch for proper tracking. Fixes: 789f558cfb36 ("tcp/dccp: get rid of central timewait timer") Signed-off-by: Eric Dumazet Reported-by: Ying Cai Signed-off-by: David S. Miller include/net/inet_timewait_sock.h | 14 +++++++++++++- net/dccp/minisocks.c | 4 ++-- net/ipv4/inet_timewait_sock.c | 16 ++++++++++------ net/ipv4/tcp_minisocks.c | 13 ++++++------- 4 files changed, 31 insertions(+), 16 deletions(-) commit 4c5d283acc997a1bd7bc37cddcf7d284521cffff Author: Sowmini Varadhan Date: Fri Sep 18 17:47:55 2015 -0400 sunvnet: Invoke SET_NETDEV_DEV() to set up the vdev in vnet_new() `ls /sys/devices/channel-devices/vnet-port-0-0/net' is missing without this change, and applications like NetworkManager are looking in sysfs for the information. Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller drivers/net/ethernet/sun/sunvnet.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 5eb8f289ac3020a9abad1c3c532ceca83284b6ed Author: John W. Linville Date: Fri Sep 18 16:20:32 2015 -0400 geneve: remove vlan-related feature assignment The code handling vlan tag insertion was dropped in commit 371bd1061d29 ("geneve: Consolidate Geneve functionality in single module."). Now we need to drop the related vlan feature bits in the netdev structure. Signed-off-by: John W. Linville Reviewed-by: Jesse Gross Signed-off-by: David S. Miller drivers/net/geneve.c | 4 ---- 1 file changed, 4 deletions(-) commit 4a476bd6d1d923922ec950ddc4c27b279f6901eb Author: Matthew Garrett Date: Sun Sep 20 02:25:38 2015 -0700 usbnet: New driver for QinHeng CH9200 devices There's a bunch of cheap USB 10/100 devices based on QinHeng chipsets. The vendor driver supports the CH9100 and CH9200 devices, but the majority of the code is of the if (ch9100) {} else {} form, with the most significant difference being that CH9200 provides a real MII interface but CH9100 fakes one with a bunch of global variables and magic commands. I don't have a CH9100, so it's probably better if someone who does provides an independent driver for it. In any case, this is a lightly cleaned up version of the vendor driver with all the CH9100 code dropped. Signed-off-by: Matthew Garrett Signed-off-by: David S. Miller drivers/net/usb/Kconfig | 11 ++ drivers/net/usb/Makefile | 2 +- drivers/net/usb/ch9200.c | 443 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 455 insertions(+), 1 deletion(-) commit 4f8d0bbb00f120ae0de79de6952132ea5c5028bb Merge: a11d558 1ccb141 Author: David S. Miller Date: Mon Sep 21 16:11:21 2015 -0700 Merge branch 'phy-of-autoload' Luis de Bethencourt says: ==================== net: phy: Fix module autoload for OF platform drivers These patches add the missing MODULE_DEVICE_TABLE() for OF to export the information so modules have the correct aliases built-in and autoloading works correctly. A longer explanation by Javier Canillas can be found here: https://lkml.org/lkml/2015/7/30/519 ==================== Signed-off-by: David S. Miller commit 1ccb141e31d0dc4c1234b0886cdc8b4399112c59 Author: Luis de Bethencourt Date: Fri Sep 18 18:16:29 2015 +0200 net: phy: mdio-gpio: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: David S. Miller drivers/net/phy/mdio-gpio.c | 1 + 1 file changed, 1 insertion(+) commit 2f90a3070690ad80c38d650e91b96b5dcbdfe2fd Author: Luis de Bethencourt Date: Fri Sep 18 18:16:12 2015 +0200 net: phy: mdio-bcm-unimac: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/mdio-bcm-unimac.c | 1 + 1 file changed, 1 insertion(+) commit a11d5585edc626106d060dde447467677d220485 Merge: 1f770c0 ebd8ebf Author: David S. Miller Date: Mon Sep 21 16:09:11 2015 -0700 Merge branch 'net-of-autoload' Luis de Bethencourt says: ==================== net: Fix module autoload for OF platform drivers These patches add the missing MODULE_DEVICE_TABLE() for OF to export the information so modules have the correct aliases built-in and autoloading works correctly. A longer explanation by Javier Canillas can be found here: https://lkml.org/lkml/2015/7/30/519 ==================== Signed-off-by: David S. Miller commit ebd8ebf078879973d0e8d2642253c091c23bd7d2 Author: Luis de Bethencourt Date: Fri Sep 18 17:56:21 2015 +0200 net: moxa: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: David S. Miller drivers/net/ethernet/moxa/moxart_ether.c | 1 + 1 file changed, 1 insertion(+) commit 23860063706f2037008fb423820cdbd0dcd558bb Author: Luis de Bethencourt Date: Fri Sep 18 17:55:27 2015 +0200 net: gianfar_ptp: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Acked-by: Richard Cochran Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar_ptp.c | 1 + 1 file changed, 1 insertion(+) commit e8048e5595bedb1f4b20597d059d6877a710f12d Author: Luis de Bethencourt Date: Fri Sep 18 17:55:02 2015 +0200 net: bcmgenet: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 1 + 1 file changed, 1 insertion(+) commit 46d5a3431f2dbb2392b501be9b9f9c2ca17737d8 Author: Luis de Bethencourt Date: Fri Sep 18 17:54:30 2015 +0200 net: systemport: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 1 + 1 file changed, 1 insertion(+) commit c7d778fa74a88e7b5a09ba498d66bd67a7dc7df0 Author: Luis de Bethencourt Date: Fri Sep 18 17:54:00 2015 +0200 net: arc: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: David S. Miller drivers/net/ethernet/arc/emac_arc.c | 1 + 1 file changed, 1 insertion(+) commit 16651fc2f30dfe14dcdd59cf0ccb4e1ccdba4dc7 Merge: 4e2e986 d702ffd 2f9481e b9c9364 0f1d08d 7209fee Author: Mark Brown Date: Mon Sep 21 14:16:09 2015 -0700 Merge remote-tracking branches 'regulator/fix/anatop', 'regulator/fix/gpio', 'regulator/fix/pbias', 'regulator/fix/tpx65218' and 'regulator/fix/vexpress' into regulator-linus commit 4e2e986473f708be46bd00007621f97178bd7047 Merge: 1f93e4a 23c3f31 Author: Mark Brown Date: Mon Sep 21 14:15:58 2015 -0700 Merge remote-tracking branch 'regulator/fix/core' into regulator-linus commit 50745b0a7f46f68574cd2b9ae24566bf026e7ebd Author: chandan Date: Fri Aug 28 21:10:13 2015 +0530 Btrfs: Direct I/O: Fix space accounting The following call trace is seen when generic/095 test is executed, WARNING: CPU: 3 PID: 2769 at /home/chandan/code/repos/linux/fs/btrfs/inode.c:8967 btrfs_destroy_inode+0x284/0x2a0() Modules linked in: CPU: 3 PID: 2769 Comm: umount Not tainted 4.2.0-rc5+ #31 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20150306_163512-brownie 04/01/2014 ffffffff81c08150 ffff8802ec9cbce8 ffffffff81984058 ffff8802ffd8feb0 0000000000000000 ffff8802ec9cbd28 ffffffff81050385 ffff8802ec9cbd38 ffff8802d12f8588 ffff8802d12f8588 ffff8802f15ab000 ffff8800bb96c0b0 Call Trace: [] dump_stack+0x45/0x57 [] warn_slowpath_common+0x85/0xc0 [] warn_slowpath_null+0x15/0x20 [] btrfs_destroy_inode+0x284/0x2a0 [] destroy_inode+0x37/0x60 [] evict+0x109/0x170 [] dispose_list+0x35/0x50 [] evict_inodes+0xaa/0x100 [] generic_shutdown_super+0x47/0xf0 [] kill_anon_super+0x11/0x20 [] btrfs_kill_super+0x13/0x110 [] deactivate_locked_super+0x39/0x70 [] deactivate_super+0x5f/0x70 [] cleanup_mnt+0x3e/0x90 [] __cleanup_mnt+0xd/0x10 [] task_work_run+0x96/0xb0 [] do_notify_resume+0x3d/0x50 [] int_signal+0x12/0x17 This means that the inode had non-zero "outstanding extents" during eviction. This occurs because, during direct I/O a task which successfully used up its reserved data space would set BTRFS_INODE_DIO_READY bit and does not clear the bit after finishing the DIO write. A future DIO write could actually fail and the unused reserve space won't be freed because of the previously set BTRFS_INODE_DIO_READY bit. Clearing the BTRFS_INODE_DIO_READY bit in btrfs_direct_IO() caused the following issue, |-----------------------------------+-------------------------------------| | Task A | Task B | |-----------------------------------+-------------------------------------| | Start direct i/o write on inode X.| | | reserve space | | | Allocate ordered extent | | | release reserved space | | | Set BTRFS_INODE_DIO_READY bit. | | | | splice() | | | Transfer data from pipe buffer to | | | destination file. | | | - kmap(pipe buffer page) | | | - Start direct i/o write on | | | inode X. | | | - reserve space | | | - dio_refill_pages() | | | - sdio->blocks_available == 0 | | | - Since a kernel address is | | | being passed instead of a | | | user space address, | | | iov_iter_get_pages() returns | | | -EFAULT. | | | - Since BTRFS_INODE_DIO_READY is | | | set, we don't release reserved | | | space. | | | - Clear BTRFS_INODE_DIO_READY bit.| | -EIOCBQUEUED is returned. | | |-----------------------------------+-------------------------------------| Hence this commit introduces "struct btrfs_dio_data" to track the usage of reserved data space. The remaining unused "reserve space" can now be freed reliably. Signed-off-by: Chandan Rajendra Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/btrfs_inode.h | 2 -- fs/btrfs/inode.c | 42 +++++++++++++++++++++--------------------- 2 files changed, 21 insertions(+), 23 deletions(-) commit 03a0e8a7c5ea29b5c4e72dfd64900b47a8fb6f2d Author: Boris BREZILLON Date: Mon Sep 14 10:41:03 2015 +0200 mtd: nand: sunxi: fix OOB handling in ->write_xxx() functions The USER_DATA register cannot be accessed using byte accessors on A13 SoCs, thus triggering a bug when using memcpy_toio on this register. Declare an helper macros to convert an OOB buffer into a suitable USER_DATA value and vice-versa. This patch also fixes an error in the oob_required logic (some OOB data are not written even if the user required it) by removing the oob_required condition, which is perfectly valid since the core already fill ->oob_poi with FFs when oob_required is false. Signed-off-by: Boris Brezillon Cc: # 3.19+ Fixes: 1fef62c1423b ("mtd: nand: add sunxi NAND flash controller support") Signed-off-by: Brian Norris drivers/mtd/nand/sunxi_nand.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) commit a66c275b3d5d8467d770dabd30927f5d5e857294 Author: Roger Quadros Date: Mon Sep 21 11:08:36 2015 +0300 usb: dwc3: gadget: Fix BUG in RT config Using spin_lock() in hard irq handler is pointless and causes a BUG() in RT (real-time) configuration so get rid of it. The reason it's pointless is because the driver is basically accessing register which is, anyways, atomic. Signed-off-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 4 ---- 1 file changed, 4 deletions(-) commit b431ba8803666e56c1d178a421b3cbc36e8d3d33 Author: Bin Liu Date: Mon Aug 24 15:28:37 2015 -0500 usb: musb: fix cppi channel teardown for isoch transfer After a few iterations of start/stop UVC camera streaming, the streaming stops. This patch adds 250us delay in the cppi channel abort path to let cppi drain properly. Using 50us delay seems to be too aggressive, some webcams are still broken. 250us is the original value used in TI 3.2 kernel. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/musb/musb_cppi41.c | 3 +++ 1 file changed, 3 insertions(+) commit 8fb7ab504381b8ce4f443129e102a713bd76dfe2 Author: Javier Martinez Canillas Date: Sat Sep 12 10:54:26 2015 +0200 usb: phy: isp1301: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Felipe Balbi drivers/usb/phy/phy-isp1301.c | 1 + 1 file changed, 1 insertion(+) commit 51b91b7e6c1516c7d3ea70acc91aac9b32ae3e72 Author: Julia Lawall Date: Sun Sep 13 14:15:09 2015 +0200 usb: gadget: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); // Signed-off-by: Julia Lawall Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/bdc/bdc_core.c | 3 +-- drivers/usb/gadget/udc/gr_udc.c | 3 +-- drivers/usb/gadget/udc/mv_u3d_core.c | 3 +-- drivers/usb/gadget/udc/mv_udc_core.c | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) commit 9a9ce1dfaef9aa15980cec22b806b39a65a9467e Author: Igor Kotrasinski Date: Tue Sep 15 16:55:32 2015 +0200 usb: gadget: dummy_hcd: in transfer(), return data sent, not limit dummy_timer uses transfer() to update transfer limit. However, limit passed to dummy_timer changes depending on transfer type, so the actual limit is overwritten. This can cause unpredictably slow / fast bulk transfers when coupled with control / interrupt transfers. Fix by returning actual amount of data sent in transfer() and substracting from total. Signed-off-by: Igor Kotrasinski Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/dummy_hcd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e42bd6a54b97e2a39b5004deac66a0fcd6ebbe75 Author: Igor Kotrasinski Date: Tue Sep 15 16:55:31 2015 +0200 usb: gadget: dummy_hcd: fix rescan logic for transfer transfer() schedules a rescan for transfers larger than maxpacket, which is wrong for transfers that are multiples of maxpacket. Rewrite to fix and clarify packet multiple / remainder transfer logic. Signed-off-by: Igor Kotrasinski Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/dummy_hcd.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 5dda5be9d501084e8a6242e6dbeb8eea1daf01c8 Author: Igor Kotrasinski Date: Tue Sep 15 16:55:30 2015 +0200 usb: gadget: dummy_hcd: fix unneeded else-if condition We already know at this point that to_host is false. Signed-off-by: Igor Kotrasinski Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/dummy_hcd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21c3ee93867694e8c7382ff77b4645b50d3233e9 Author: Igor Kotrasinski Date: Tue Sep 15 16:55:29 2015 +0200 usb: gadget: dummy_hcd: emulate sending zlp in packet logic currently, when a zlp flag is set and an urb/usb_request buffer is filled without a short packet, transfer() leaves its status at -EINPROGRESS and does not rescan for short packet. In a scenario where ep.maxpacket bytes are copied, URB_ZERO_PACKET is set, urb buffer is filled and usb_request buffer is not, transfer() returns with an urb with -EINPROGRESS status, which dummy_hcd treats as incomplete transfer. Check for zlp and rescan appropriately. Signed-off-by: Igor Kotrasinski Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/dummy_hcd.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb Author: Bin Liu Date: Wed Sep 16 14:49:28 2015 -0500 usb: musb: dsps: fix polling in device-only mode Fix the regression caused by commit ad78c918602 ("usb: musb: dsps: just start polling already") which causes polling the ID pin status even in device-only mode. Fixes: ad78c918602c ("usb: musb: dsps: just start polling already") Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/musb/musb_dsps.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit cf261fd1a444e87894c2ed8f481606ead7916fab Author: Sylvain Rochet Date: Fri Sep 18 16:58:28 2015 +0200 usb: gadget: atmel_usba_udc: add ep capabilities support on device tree binding The recently added endpoint capabilities flags verification breaks Atmel USBA because the endpoint configuration was only added when the driver is bound using the legacy pdata interface. Convert endpoint configuration to new capabilities model when driver is bound to a device tree as well. Signed-off-by: Sylvain Rochet Fixes: 47bef3865115 ("usb: gadget: atmel_usba_udc: add ep capabilities support") Signed-off-by: Nicolas Ferre Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/atmel_usba_udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ac2fc4b9d5b7d8e4878c6f04f947d42707f782ef Merge: 90a835f cbc41d0 Author: Linus Torvalds Date: Mon Sep 21 12:02:27 2015 -0700 Merge tag 'renesas-sh-drivers-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas Pull SH drivers updates from Simon Horman: "I am sending this change after v4.3-rc1 has been released as it depends on SoC changes which are present in that rc release. Summary: - disable PM runtime for multi-platform ARM with genpd - disable legacy default PM Domain on emev2" * tag 'renesas-sh-drivers-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: drivers: sh: Disable PM runtime for multi-platform ARM with genpd drivers: sh: Disable legacy default PM Domain on emev2 commit 90a835f5d19217ad1e174e40ef35d0acf3357828 Merge: b7f76ea 977108f Author: Linus Torvalds Date: Mon Sep 21 09:53:30 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Martin Schwidefsky: "A couple of system call updates. The two new system calls userfaultfd and membarrier have been added, as well as the 17 direct calls for the multiplexed socket system calls. In addition the system call compat wrappers have been flagged as notrace functions and a few wrappers could be removed. And bug fixes for the vector register handling, cpu_mf, suspend/resume, compat signals, SMT cputime accounting and the zfcp dumper" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390: wire up separate socketcalls system calls s390/compat: remove superfluous compat wrappers s390/compat: do not trace compat wrapper functions s390/s390x: allocate sys_membarrier system call number s390/configs//zfcpdump_defconfig: Remove CONFIG_MEMSTICK s390: wire up userfaultfd system call s390/vtime: correct scaled cputime for SMT s390/cpum_cf: Corrected return code for unauthorized counter sets s390/compat: correct uc_sigmask of the compat signal frame s390: fix floating point register corruption s390/hibernate: fix save and restore of vector registers commit 72d4736253af74147b1fa68145b2f4c61d1f37e1 Author: Dmitry Torokhov Date: Sat Sep 19 11:22:57 2015 -0700 Input: uinput - fix crash when using ABS events Commit b6d30968d86c45a7bb599eaca13ff048d3fa576c (Input: uinput - switch to using for_each_set_bit()) switched driver to use for_each_set_bit(). However during initial write of the uinput structure that contains min/max data for all possible axes none of them are reflected in dev->absbit yet and so we were skipping over all of them and were not allocating absinfo memory which caused crash later when driver tried to sens EV_ABS events: <1>[ 15.064330] BUG: unable to handle kernel NULL pointer dereference at 0000000000000024 <1>[ 15.064336] IP: [] input_handle_event+0x232/0x4e0 <4>[ 15.064343] PGD 0 <4>[ 15.064345] Oops: 0000 [#1] SMP Fixes: b6d30968d86c45a7bb599eaca13ff048d3fa576c Cc: stable@vger.kernel.org Reported-by: Stephen Chandler Paul Tested-by: Stephen Chandler Paul Signed-off-by: Dmitry Torokhov drivers/input/misc/uinput.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed75a14eb554995c522a3b861d4c86a7eddb2ad7 Author: Duson Lin Date: Mon Sep 21 09:26:46 2015 -0700 Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF In order to support more projects in the future, we expand the maximum product_id value form 0xFF to 0xFFFF. Signed-off by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c.h | 2 +- drivers/input/mouse/elan_i2c_core.c | 4 ++-- drivers/input/mouse/elan_i2c_i2c.c | 4 ++-- drivers/input/mouse/elan_i2c_smbus.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) commit c84333a1c55a2d3329e8b472f59e9d1ccf5ddc1b Author: Duson Lin Date: Mon Sep 21 09:24:46 2015 -0700 Input: elan_i2c - add ic type 0x03 The 0x03 is valid 3000 serial ic type too. Signed-off-by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 1 + 1 file changed, 1 insertion(+) commit 9d7b03f863f2fc8bd80e83d3a2d7e521094d290e Author: Daniel Drake Date: Sat Sep 19 09:49:45 2015 -0700 Input: elan_i2c - don't require known iap version The Asus X456UA has an ELAN1000 touchpad with IAP version 0xe. This is unknown to elan_get_fwinfo() so driver probe fails and I am left with an unusable touchpad. However, the fwinfo is not required for general driver usage, it is only needed if the user decides to upload new firmware. Adjust the driver so that we do not abort probe when we encounter unexpected IAP version, but rather warn user that firmware update feature of the driver will not work. Signed-off-by: Daniel Drake Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 09185e2756a83763bcbfe51b308b85979f0de027 Author: Andrzej Hajda Date: Mon Sep 21 15:33:42 2015 +0200 hwrng: xgene - fix handling platform_get_irq The function can return negative value. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda Signed-off-by: Herbert Xu drivers/char/hw_random/xgene-rng.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 17762c5acee2f1f065291d2a74ebea4d0168063b Author: Conor McLoughlin Date: Fri Sep 18 08:59:47 2015 -0700 crypto: qat - VF should never trigger SBR on PH Don't allow to trigger SBR from a VF running in VMM context. Cc: stable@vger.kernel.org Signed-off-by: Conor McLoughlin Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_aer.c | 3 +++ 1 file changed, 3 insertions(+) commit cfcd2271a9076a9891014bc8e18d4fd48acccffe Author: Thomas Petazzoni Date: Fri Sep 18 17:25:36 2015 +0200 crypto: marvell - properly handle CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests The mv_cesa_queue_req() function calls crypto_enqueue_request() to enqueue a request. In the normal case (i.e the queue isn't full), this function returns -EINPROGRESS. The current Marvell CESA crypto driver takes this into account and cleans up the request only if an error occured, i.e if the return value is not -EINPROGRESS. Unfortunately this causes problems with CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests. When such a request is passed to crypto_enqueue_request() and the queue is full, crypto_enqueue_request() will return -EBUSY, but will keep the request enqueued nonetheless. This situation was not properly handled by the Marvell CESA driver, which was anyway cleaning up the request in such a situation. When later on the request was taken out of the backlog and actually processed, a kernel crash occured due to the internal driver data structures for this structure having been cleaned up. To avoid this situation, this commit adds a mv_cesa_req_needs_cleanup() helper function which indicates if the request needs to be cleaned up or not after a call to crypto_enqueue_request(). This helper allows to do the cleanup only in the appropriate cases, and all call sites of mv_cesa_queue_req() are fixed to use this new helper function. Reported-by: Vincent Donnefort Fixes: db509a45339fd ("crypto: marvell/cesa - add TDMA support") Cc: # v4.2+ Signed-off-by: Thomas Petazzoni Acked-by: Boris Brezillon Tested-by: Vincent Donnefort Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.h | 27 +++++++++++++++++++++++++++ drivers/crypto/marvell/cipher.c | 7 +++---- drivers/crypto/marvell/hash.c | 8 +++----- 3 files changed, 33 insertions(+), 9 deletions(-) commit 793b8bf9ca17aee3b995c095058e6c4e7bd72e02 Author: Michael Ellerman Date: Wed Sep 16 21:21:50 2015 +1000 powerpc: Wire up sys_membarrier() The selftest passes on 64-bit LE & BE, and 32-bit. Signed-off-by: Michael Ellerman 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 95d0be61286bcc3fc987043fe3a9553adca02919 Author: Geliang Tang Date: Tue Sep 15 06:04:36 2015 -0700 drm/i915: fix kernel-doc warnings in intel_audio.c Fix the following 'make htmldocs' warnings: .//drivers/gpu/drm/i915/intel_audio.c:439: warning: No description found for parameter 'intel_encoder' .//drivers/gpu/drm/i915/intel_audio.c:439: warning: Excess function parameter 'encoder' description in 'intel_audio_codec_disable' .//drivers/gpu/drm/i915/intel_audio.c:439: warning: No description found for parameter 'intel_encoder' .//drivers/gpu/drm/i915/intel_audio.c:439: warning: Excess function parameter 'encoder' description in 'intel_audio_codec_disable' Signed-off-by: Geliang Tang Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_audio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4513b065f7dbd37224226ef6e44b09eff742776 Author: Hans de Goede Date: Mon Aug 24 00:35:36 2015 +0200 extcon: Fix attached value returned by is_extcon_changed is_extcon_changed should only check the idx-th bit of new, not the entirety of new when setting attached. This fixes extcon sending notifications that a cable was inserted when it gets removed while another cable is still connected. Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f770c0a09da855a2b51af6d19de97fb955eca85 Author: Herbert Xu Date: Fri Sep 18 19:16:50 2015 +0800 netlink: Fix autobind race condition that leads to zero port ID The commit c0bb07df7d981e4091432754e30c9c720e2c0c78 ("netlink: Reset portid after netlink_insert failure") introduced a race condition where if two threads try to autobind the same socket one of them may end up with a zero port ID. This led to kernel deadlocks that were observed by multiple people. This patch reverts that commit and instead fixes it by introducing a separte rhash_portid variable so that the real portid is only set after the socket has been successfully hashed. Fixes: c0bb07df7d98 ("netlink: Reset portid after netlink_insert failure") Reported-by: Tejun Heo Reported-by: Linus Torvalds Signed-off-by: Herbert Xu Signed-off-by: David S. Miller net/netlink/af_netlink.c | 12 +++++++----- net/netlink/af_netlink.h | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) commit ca1c4b745779e20711322b3338f3a942a3c1224a Author: Dexuan Cui Date: Thu Aug 13 17:07:03 2015 -0700 Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc This fixes the recent commit 3b71107d73b16074afa7658f3f0fcf837aabfe24: Drivers: hv: vmbus: Further improve CPU affiliation logic Without the fix, reloading hv_netvsc hangs the guest. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 5964db08767fb93376c0a0ddcf975fec1c0d1bd9 Author: Tomas Winkler Date: Mon Aug 24 15:27:37 2015 +0300 mei: fix debugfs files leak on error path if dbgfs_dir is not set then debugfs_remove_recursive is not called on the error path Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/debugfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3ea79249e81e5ed051f2e6480cbde896d99046e8 Author: Michael S. Tsirkin Date: Fri Sep 18 13:41:09 2015 +0300 macvtap: fix TUNSETSNDBUF values > 64k Upon TUNSETSNDBUF, macvtap reads the requested sndbuf size into a local variable u. commit 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF") changed its type to u16 (which is the right thing to do for all other macvtap ioctls), breaking all values > 64k. The value of TUNSETSNDBUF is actually a signed 32 bit integer, so the right thing to do is to read it into an int. Cc: David S. Miller Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF") Reported-by: Mark A. Peloquin Bisected-by: Matthew Rosato Reported-by: Christian Borntraeger Signed-off-by: Michael S. Tsirkin Tested-by: Matthew Rosato Acked-by: Christian Borntraeger Signed-off-by: David S. Miller drivers/net/macvtap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3afb1121800128aae9f5722e50097fcf1a9d4d88 Author: Paolo Bonzini Date: Fri Sep 18 17:33:04 2015 +0200 KVM: x86: trap AMD MSRs for the TSeg base and mask These have roughly the same purpose as the SMRR, which we do not need to implement in KVM. However, Linux accesses MSR_K8_TSEG_ADDR at boot, which causes problems when running a Xen dom0 under KVM. Just return 0, meaning that processor protection of SMRAM is not in effect. Reported-by: M A Young Cc: stable@vger.kernel.org Acked-by: Borislav Petkov Signed-off-by: Paolo Bonzini arch/x86/include/asm/msr-index.h | 1 + arch/x86/kvm/x86.c | 2 ++ 2 files changed, 3 insertions(+) commit 83cf9a2521b0934a5f9d04082c9bb4f554fddcd4 Author: Nicolas Dichtel Date: Fri Sep 18 11:47:41 2015 +0200 ip6tunnel: make rx/tx bytes counters consistent Like the previous patch, which fixes ipv4 tunnels, here is the ipv6 part. Before the patch, the external ipv6 header + gre header were included on tx. After the patch: $ ping -c1 192.168.6.121 ; ip -s l ls dev ip6gre1 PING 192.168.6.121 (192.168.6.121) 56(84) bytes of data. 64 bytes from 192.168.6.121: icmp_req=1 ttl=64 time=1.92 ms --- 192.168.6.121 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.923/1.923/1.923/0.000 ms 7: ip6gre1@NONE: mtu 1440 qdisc noqueue state UNKNOWN mode DEFAULT group default link/gre6 20:01:06:60:30:08:c1:c3:00:00:00:00:00:00:01:23 peer 20:01:06:60:30:08:c1:c3:00:00:00:00:00:00:01:21 RX: bytes packets errors dropped overrun mcast 84 1 0 0 0 0 TX: bytes packets errors dropped carrier collsns 84 1 0 0 0 0 $ ping -c1 192.168.1.121 ; ip -s l ls dev ip6tnl1 PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data. 64 bytes from 192.168.1.121: icmp_req=1 ttl=64 time=2.28 ms --- 192.168.1.121 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 2.288/2.288/2.288/0.000 ms 8: ip6tnl1@NONE: mtu 1452 qdisc noqueue state UNKNOWN mode DEFAULT group default link/tunnel6 2001:660:3008:c1c3::123 peer 2001:660:3008:c1c3::121 RX: bytes packets errors dropped overrun mcast 84 1 0 0 0 0 TX: bytes packets errors dropped carrier collsns 84 1 0 0 0 0 Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller include/net/ip6_tunnel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc22a0e2ea03b75b51a1f722f93821744b5b5ff1 Author: Nicolas Dichtel Date: Fri Sep 18 11:47:40 2015 +0200 iptunnel: make rx/tx bytes counters consistent This was already done a long time ago in commit 64194c31a0b6 ("inet: Make tunnel RX/TX byte counters more consistent") but tx path was broken (at least since 3.10). Before the patch the gre header was included on tx. After the patch: $ ping -c1 192.168.0.121 ; ip -s l ls dev gre1 PING 192.168.0.121 (192.168.0.121) 56(84) bytes of data. 64 bytes from 192.168.0.121: icmp_req=1 ttl=64 time=2.95 ms --- 192.168.0.121 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 2.955/2.955/2.955/0.000 ms 7: gre1@NONE: mtu 1468 qdisc noqueue state UNKNOWN mode DEFAULT group default link/gre 10.16.0.249 peer 10.16.0.121 RX: bytes packets errors dropped overrun mcast 84 1 0 0 0 0 TX: bytes packets errors dropped carrier collsns 84 1 0 0 0 0 Reported-by: Julien Meunier Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller net/ipv4/ip_tunnel_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac813744930d2af82d887ce1e51bcdb23a6c6805 Merge: 4e3ae00 ad5001c Author: David S. Miller Date: Sun Sep 20 22:32:20 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf Pablo Neira Ayuso says: ==================== Netfilter fixes for net The following patch contains Netfilter fixes for your net tree, they are: 1) nf_log_unregister() should only set to NULL the logger that is being unregistered, instead of everything else. Patch from Florian Westphal. 2) Fix a crash when accessing physoutdev from PREROUTING in br_netfilter. This is partially reverting the patch to shrink nf_bridge_info to 32 bytes. Also from Florian. 3) Use existing match/target extensions in the internal nft_compat extension lists when the extension is family unspecific (ie. NFPROTO_UNSPEC). 4) Wait for rcu grace period before leaving nf_log_unregister(). ==================== Signed-off-by: David S. Miller commit 4e3ae00100945d39e1f83b7c0179a114ccf55759 Author: Erik Hugne Date: Fri Sep 18 10:46:31 2015 +0200 tipc: reinitialize pointer after skb linearize The msg pointer into header may change after skb linearization. We must reinitialize it after calling skb_linearize to prevent operating on a freed or invalid pointer. Signed-off-by: Erik Hugne Reported-by: Tamás Végh Acked-by: Ying Xue Signed-off-by: David S. Miller net/tipc/msg.c | 1 + 1 file changed, 1 insertion(+) commit aab0c0e62ec4af224d1b6b40fca65055d403400b Author: Kevin Hao Date: Fri Sep 18 15:42:30 2015 +0800 Revert "net/phy: Add Vitesse 8641 phy ID" This reverts commit 1298267b548a78840bd4b3e030993ff8747ca5e6. That commit claim that the Vitesse VSC8641 is compatible with Vitesse 82xx. But this is not true. It seems that all the registers used in Vitesse phy driver are not compatible between 8641 and 82xx. It does cause malfunction of the Ethernet on p1010rdb-pa board. So we definitely need a rework in order to support the 8641 phy in this driver. Signed-off-by: Kevin Hao Signed-off-by: David S. Miller drivers/net/phy/vitesse.c | 14 -------------- 1 file changed, 14 deletions(-) commit 7a8a8e75d505147358b225173e890ada43a267e2 Author: David Woodhouse Date: Fri Sep 18 00:21:54 2015 +0100 8139cp: Call __cp_set_rx_mode() from cp_tx_timeout() Unless we reset the RX config, on real hardware I don't seem to receive any packets after a TX timeout. Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 1 + 1 file changed, 1 insertion(+) commit fc27bd115b334e3ebdc682a42a47c3aea2566dcc Author: David Woodhouse Date: Fri Sep 18 00:19:08 2015 +0100 8139cp: Use dev_kfree_skb_any() instead of dev_kfree_skb() in cp_clean_rings() This can be called from cp_tx_timeout() with interrupts disabled. Spotted by Francois Romieu Signed-off-by: David Woodhouse Signed-off-by: David S. Miller drivers/net/ethernet/realtek/8139cp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0315e382704817b279e5693dca8ab9d89aa20b3f Author: Nikola Forró Date: Thu Sep 17 16:01:32 2015 +0200 net: Fix behaviour of unreachable, blackhole and prohibit routes Man page of ip-route(8) says following about route types: unreachable - these destinations are unreachable. Packets are dis‐ carded and the ICMP message host unreachable is generated. The local senders get an EHOSTUNREACH error. blackhole - these destinations are unreachable. Packets are dis‐ carded silently. The local senders get an EINVAL error. prohibit - these destinations are unreachable. Packets are discarded and the ICMP message communication administratively prohibited is generated. The local senders get an EACCES error. In the inet6 address family, this was correct, except the local senders got ENETUNREACH error instead of EHOSTUNREACH in case of unreachable route. In the inet address family, all three route types generated ICMP message net unreachable, and the local senders got ENETUNREACH error. In both address families all three route types now behave consistently with documentation. Signed-off-by: Nikola Forró Signed-off-by: David S. Miller include/net/ip_fib.h | 30 +++++++++++++++++++----------- net/ipv4/route.c | 6 ++++-- net/ipv6/route.c | 4 +++- 3 files changed, 26 insertions(+), 14 deletions(-) commit ba5ca7848be05db6235aeb703586b821aa00e381 Author: Ivan Vecera Date: Wed Sep 16 15:27:43 2015 +0200 bna: check for dma mapping errors Check for DMA mapping errors, recover from them and register them in ethtool stats like other errors. Cc: Rasesh Mody 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 ++ drivers/net/ethernet/brocade/bna/bna_types.h | 1 + drivers/net/ethernet/brocade/bna/bnad.c | 29 ++++++++++++++++++++++++- drivers/net/ethernet/brocade/bna/bnad.h | 2 ++ drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 4 ++++ 5 files changed, 37 insertions(+), 1 deletion(-) commit 19a5ecde086a6a5287978b12ae948fa691b197b7 Author: Paul E. McKenney Date: Sun Sep 20 21:01:22 2015 -0700 rcu: Suppress lockdep false positive for rcp->exp_funnel_mutex In kernels built with CONFIG_PREEMPT=y, synchronize_rcu_expedited() invokes synchronize_sched_expedited() while holding RCU-preempt's root rcu_node structure's ->exp_funnel_mutex, which is acquired after the rcu_data structure's ->exp_funnel_mutex. The first thing that synchronize_sched_expedited() will do is acquire RCU-sched's rcu_data structure's ->exp_funnel_mutex. There is no danger of an actual deadlock because the locking order is always from RCU-preempt's expedited mutexes to those of RCU-sched. Unfortunately, lockdep considers both rcu_data structures' ->exp_funnel_mutex to be in the same lock class and therefore reports a deadlock cycle. This commit silences this false positive by placing RCU-sched's rcu_data structures' ->exp_funnel_mutex locks into their own lock class. Reported-by: Sasha Levin Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 5 +++++ 1 file changed, 5 insertions(+) commit 66e8c57da6bf6b847a48a5a6fda59512f733ed78 Author: Oleg Nesterov Date: Tue Aug 25 20:45:18 2015 +0200 rcu: Change _wait_rcu_gp() to work around GCC bug 67055 Code like this in inline functions confuses some recent versions of gcc: const int n = const-expr; whatever_t array[n]; For more details, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67055#c13 This compiler bug results in the following failure after 114b7fd4b (rcu: Create rcu_sync infrastructure): In file included from include/linux/rcupdate.h:429:0, from include/linux/rcu_sync.h:5, from kernel/rcu/sync.c:1: include/linux/rcutiny.h: In function 'rcu_barrier_sched': include/linux/rcutiny.h:55:20: internal compiler error: Segmentation fault static inline void rcu_barrier_sched(void) This commit therefore eliminates the constant local variable in favor of direct use of the expression. Reported-and-tested-by: Mark Salter Reported-by: Guenter Roeck Signed-off-by: Oleg Nesterov Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 2259f960b3a9b1020dccbf948c97311ce586db1b Author: Trond Myklebust Date: Sun Sep 20 13:30:30 2015 -0400 NFSv4.x/pnfs: Don't try to recover stateids twice in layoutget If the current open or layout stateid doesn't match the stateid used in the layoutget RPC call, then don't try to recover it. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 24311f884189d42d40354a6f38ca218eb9aeb811 Author: Trond Myklebust Date: Sun Sep 20 10:50:17 2015 -0400 NFSv4: Recovery of recalled read delegations is broken When a read delegation is being recalled, and we're reclaiming the cached opens, we need to make sure that we only reclaim read-only modes. A previous attempt to do this, relied on retrieving the delegation type from the nfs4_opendata structure. Unfortunately, as Kinglong pointed out, this field can only be set when performing reboot recovery. Furthermore, if we call nfs4_open_recover(), then we end up clobbering the state->flags for all modes that we're not recovering... The fix is to have the delegation recall code pass this information to the recovery call, and then refactor the recovery code so that nfs4_open_delegation_recall() does not need to call nfs4_open_recover(). Reported-by: Kinglong Mee Fixes: 39f897fdbd46 ("NFSv4: When returning a delegation, don't...") Tested-by: Kinglong Mee Cc: NeilBrown Cc: stable@vger.kernel.org # v4.2+ Signed-off-by: Trond Myklebust fs/nfs/delegation.c | 8 ++++-- fs/nfs/delegation.h | 2 +- fs/nfs/nfs4proc.c | 81 +++++++++++++++++++++++++++++++---------------------- 3 files changed, 53 insertions(+), 38 deletions(-) commit f491e70ccffa5d19aa51c958909320fa1f3905ed Author: Luis de Bethencourt Date: Thu Sep 17 18:09:55 2015 +0200 hwmon: (pwm-fan) Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Guenter Roeck drivers/hwmon/pwm-fan.c | 1 + 1 file changed, 1 insertion(+) commit fe5152882a45a2545d44d39fe29badc8e4f66ad3 Author: Luis de Bethencourt Date: Thu Sep 17 18:09:28 2015 +0200 hwmon: (gpio-fan) Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Guenter Roeck drivers/hwmon/gpio-fan.c | 1 + 1 file changed, 1 insertion(+) commit 3245acbce952cda75b2fafa8e40452ef0c4756c1 Author: Luis de Bethencourt Date: Thu Sep 17 18:09:11 2015 +0200 hwmon: (abx500) Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Guenter Roeck drivers/hwmon/abx500.c | 1 + 1 file changed, 1 insertion(+) commit b7f76ea2ef6739ee484a165ffbac98deb855d3d3 Author: Jann Horn Date: Fri Sep 18 23:41:23 2015 +0200 security: fix typo in security_task_prctl Signed-off-by: Jann Horn Reviewed-by: Andy Lutomirski Signed-off-by: Linus Torvalds include/linux/security.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3eb4ee68254235e4f47bc0410538fcdaede39589 Author: Thomas Huth Date: Fri Sep 18 08:57:28 2015 +0200 KVM: PPC: Book3S: Take the kvm->srcu lock in kvmppc_h_logical_ci_load/store() Access to the kvm->buses (like with the kvm_io_bus_read() and -write() functions) has to be protected via the kvm->srcu lock. The kvmppc_h_logical_ci_load() and -store() functions are missing this lock so far, so let's add it there, too. This fixes the problem that the kernel reports "suspicious RCU usage" when lock debugging is enabled. Cc: stable@vger.kernel.org # v4.1+ Fixes: 99342cf8044420eebdf9297ca03a14cb6a7085a1 Signed-off-by: Thomas Huth Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7e022e717f54897e396504306d0c9b61452adf4e Author: Gautham R. Shenoy Date: Thu May 21 13:57:04 2015 +0530 KVM: PPC: Book3S HV: Pass the correct trap argument to kvmhv_commence_exit In guest_exit_cont we call kvmhv_commence_exit which expects the trap number as the argument. However r3 doesn't contain the trap number at this point and as a result we would be calling the function with a spurious trap number. Fix this by copying r12 into r3 before calling kvmhv_commence_exit as r12 contains the trap number. Cc: stable@vger.kernel.org # v4.1+ Fixes: eddb60fb1443 Signed-off-by: Gautham R. Shenoy Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv_rmhandlers.S | 1 + 1 file changed, 1 insertion(+) commit 5fc3e64f941197d5b77abccbe0144b25c2c36f2f Author: Paul Mackerras Date: Fri Sep 18 13:13:44 2015 +1000 KVM: PPC: Book3S HV: Fix handling of interrupted VCPUs This fixes a bug which results in stale vcore pointers being left in the per-cpu preempted vcore lists when a VM is destroyed. The result of the stale vcore pointers is usually either a crash or a lockup inside collect_piggybacks() when another VM is run. A typical lockup message looks like: [ 472.161074] NMI watchdog: BUG: soft lockup - CPU#24 stuck for 22s! [qemu-system-ppc:7039] [ 472.161204] Modules linked in: kvm_hv kvm_pr kvm xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw ses enclosure shpchp rtc_opal i2c_opal powernv_rng binfmt_misc dm_service_time scsi_dh_alua radeon i2c_algo_bit drm_kms_helper ttm drm tg3 ptp pps_core cxgb3 ipr i2c_core mdio dm_multipath [last unloaded: kvm_hv] [ 472.162111] CPU: 24 PID: 7039 Comm: qemu-system-ppc Not tainted 4.2.0-kvm+ #49 [ 472.162187] task: c000001e38512750 ti: c000001e41bfc000 task.ti: c000001e41bfc000 [ 472.162262] NIP: c00000000096b094 LR: c00000000096b08c CTR: c000000000111130 [ 472.162337] REGS: c000001e41bff520 TRAP: 0901 Not tainted (4.2.0-kvm+) [ 472.162399] MSR: 9000000100009033 CR: 24848844 XER: 00000000 [ 472.162588] CFAR: c00000000096b0ac SOFTE: 1 GPR00: c000000000111170 c000001e41bff7a0 c00000000127df00 0000000000000001 GPR04: 0000000000000003 0000000000000001 0000000000000000 0000000000874821 GPR08: c000001e41bff8e0 0000000000000001 0000000000000000 d00000000efde740 GPR12: c000000000111130 c00000000fdae400 [ 472.163053] NIP [c00000000096b094] _raw_spin_lock_irqsave+0xa4/0x130 [ 472.163117] LR [c00000000096b08c] _raw_spin_lock_irqsave+0x9c/0x130 [ 472.163179] Call Trace: [ 472.163206] [c000001e41bff7a0] [c000001e41bff7f0] 0xc000001e41bff7f0 (unreliable) [ 472.163295] [c000001e41bff7e0] [c000000000111170] __wake_up+0x40/0x90 [ 472.163375] [c000001e41bff830] [d00000000efd6fc0] kvmppc_run_core+0x1240/0x1950 [kvm_hv] [ 472.163465] [c000001e41bffa30] [d00000000efd8510] kvmppc_vcpu_run_hv+0x5a0/0xd90 [kvm_hv] [ 472.163559] [c000001e41bffb70] [d00000000e9318a4] kvmppc_vcpu_run+0x44/0x60 [kvm] [ 472.163653] [c000001e41bffba0] [d00000000e92e674] kvm_arch_vcpu_ioctl_run+0x64/0x170 [kvm] [ 472.163745] [c000001e41bffbe0] [d00000000e9263a8] kvm_vcpu_ioctl+0x538/0x7b0 [kvm] [ 472.163834] [c000001e41bffd40] [c0000000002d0f50] do_vfs_ioctl+0x480/0x7c0 [ 472.163910] [c000001e41bffde0] [c0000000002d1364] SyS_ioctl+0xd4/0xf0 [ 472.163986] [c000001e41bffe30] [c000000000009260] system_call+0x38/0xd0 [ 472.164060] Instruction dump: [ 472.164098] ebc1fff0 ebe1fff8 7c0803a6 4e800020 60000000 60000000 60420000 8bad02e2 [ 472.164224] 7fc3f378 4b6a57c1 60000000 7c210b78 89290009 792affe3 40820070 The bug is that kvmppc_run_vcpu does not correctly handle the case where a vcpu task receives a signal while its guest vcpu is executing in the guest as a result of being piggy-backed onto the execution of another vcore. In that case we need to wait for the vcpu to finish executing inside the guest, and then remove this vcore from the preempted vcores list. That way, we avoid leaving this vcpu's vcore on the preempted vcores list when the vcpu gets interrupted. Fixes: ec2571650826 Reported-by: Thomas Huth Tested-by: Thomas Huth Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit a42fb351ca1f340f8307468be765e3f77ddedda9 Author: Knuth Posern Date: Sun Sep 20 21:25:22 2015 +0200 thunderbolt: Allow loading of module on recent Apple MacBooks with thunderbolt 2 controller The pci device ids listed in the thunderbolt driver are to restrictive, which prevents the driver from being loaded on recent Apple MacBooks using a thunderbolt 2 controller. In particular this prevented any hot-plugging functionality for thunderbolt based ethernet dongles (i.e. Apples thunderbolt gigabit ethernet broadcom tg3 based dongle Model A1433 EMC 2590). Changing the subvendor and subdevice to PCI_ANY_ID the thunderbolt driver loads and binds to the pci device 07:00.0 System peripheral: Intel Corporation Device 156c which is the thunderbolt 2 controller on the MacBookPro12,1. Successfully tested on MacBookPro12,1. With the patch the thunderbolt module gets now loaded on boot. And it provides hot-plugging support both for a cold-plugged and a warm-plugged ethernet dongle. Signed-off-by: Andreas Noever Acked-by: Knuth Posern Signed-off-by: Greg Kroah-Hartman drivers/thunderbolt/nhi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f93e4a96c9109378204c147b3eec0d0e8100fde Author: Linus Torvalds Date: Sun Sep 20 14:32:34 2015 -0700 Linux 4.3-rc2 Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8714d46dc5b95a6a898ec8f1e67237c7995adfc6 Author: Kinglong Mee Date: Sun Sep 20 23:04:22 2015 +0800 NFS: Fix an infinite loop when layoutget fail with BAD_STATEID If layouget fail with BAD_STATEID, restart should not using the old stateid. But, nfs client choose the layout stateid at first, and then the open stateid. To avoid the infinite loop of using bad stateid for layoutget, this patch sets the layout flag'ss NFS_LAYOUT_INVALID_STID bit to skip choosing the bad layout stateid. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 1 + 1 file changed, 1 insertion(+) commit 6f29b9bba7b08c6b1d6f2cc4cf750b342fc1946c Author: Kinglong Mee Date: Sun Sep 20 23:03:28 2015 +0800 NFS: Do cleanup before resetting pageio read/write to mds There is a reference leak of layout segment after resetting pageio read/write to mds. Signed-off-by: Kinglong Mee Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Trond Myklebust fs/nfs/read.c | 3 +++ fs/nfs/write.c | 3 +++ 2 files changed, 6 insertions(+) commit 97584d1838b7e2545c3b10aacef3327fcaa9531b Author: Javi Merino Date: Mon Sep 14 14:23:54 2015 +0100 thermal: power_allocator: exit early if there are no cooling devices Don't waste cycles in the power allocator governor's throttle function if there are no cooling devices and exit early. This commit doesn't change any functionality, but should provide better performance for the odd case of a thermal zone with trip points but without cooling devices. Cc: Zhang Rui Cc: Eduardo Valentin Reviewed-by: Daniel Kurtz Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/power_allocator.c | 5 +++++ 1 file changed, 5 insertions(+) commit 99bc7215bc60f6cd414cf1b85cd9d52cc596cccb Merge: 30ec568 7ae85dc Author: Linus Torvalds Date: Sat Sep 19 21:05:02 2015 -0700 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "Three fixes and a resulting cleanup for -rc2: - Andre Przywara reported that he was seeing a warning with the new cast inside DMA_ERROR_CODE's definition, and fixed the incorrect use. - Doug Anderson noticed that kgdb causes a "scheduling while atomic" bug. - OMAP5 folk noticed that their Thumb-2 compiled X servers crashed when enabling support to cover ARMv6 CPUs due to a kernel bug leaking some conditional context into the signal handler" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8425/1: kgdb: Don't try to stop the machine when setting breakpoints ARM: 8437/1: dma-mapping: fix build warning with new DMA_ERROR_CODE definition ARM: get rid of needless #if in signal handling code ARM: fix Thumb2 signal handling when ARMv6 is enabled commit 30ec56824897fc70f668dcb302f08cc9080eadfa Merge: 009884f ae78581 Author: Linus Torvalds Date: Sat Sep 19 20:57:45 2015 -0700 Merge tag 'linux-kselftest-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest fixes from Shuah Khan: "This update contains 7 fixes for problems ranging from build failurs to incorrect error reporting" * tag 'linux-kselftest-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: exec: revert to default emit rule selftests: change install command to rsync selftests: mqueue: simplify the Makefile selftests: mqueue: allow extra cflags selftests: rename jump label to static_keys selftests/seccomp: add support for s390 seltests/zram: fix syntax error commit 009884f384dcc71909f2b861c317da7242979f31 Merge: d590b2d 0f40314 Author: Linus Torvalds Date: Sat Sep 19 20:41:31 2015 -0700 Merge tag 'pm+acpi-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI updates from Rafael Wysocki: "Included are: a somewhat late devfreq update which however is mostly fixes and cleanups with one new thing only (the PPMUv2 support on Exynos5433), an ACPI cpufreq driver fixup and two ACPI core cleanups related to preprocessor directives. Specifics: - Fix a memory allocation size in the devfreq core (Xiaolong Ye). - Fix a mistake in the exynos-ppmu DT binding (Javier Martinez Canillas). - Add support for PPMUv2 ((Platform Performance Monitoring Unit version 2.0) on the Exynos5433 SoCs (Chanwoo Choi). - Fix a type casting bug in the Exynos PPMU code (MyungJoo Ham). - Assorted devfreq code cleanups and optimizations (Javi Merino, MyungJoo Ham, Viresh Kumar). - Fix up the ACPI cpufreq driver to use a more lightweight way to get to its private data in the ->get() callback (Rafael J Wysocki). - Fix a CONFIG_ prefix bug in one of the ACPI drivers and make the ACPI subsystem use IS_ENABLED() instead of #ifdefs in function bodies (Sudeep Holla)" * tag 'pm+acpi-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get() ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED() ACPI: int340x_thermal: add missing CONFIG_ prefix PM / devfreq: Fix incorrect type issue. PM / devfreq: tegra: Update governor to use devfreq_update_stats() PM / devfreq: comments for get_dev_status usage updated PM / devfreq: drop comment about thermal setting max_freq PM / devfreq: cache the last call to get_dev_status() PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL) PM / devfreq: exynos-ppmu: bit-wise operation bugfix. PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding commit d590b2d4bf61ab8d9ccaae033063eabe15699f9e Merge: e6827ba d34e210 Author: Linus Torvalds Date: Sat Sep 19 20:17:40 2015 -0700 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk fixes from Stephen Boyd: "A few driver fixes for tegra, rockchip, and st SoCs and a two-liner in the framework to avoid oops when get_parent ops return out of range values on tegra platforms" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x clk: check for invalid parent index of orphans in __clk_init() clk: tegra: dfll: Properly protect OPP list clk: rockchip: add critical clock for rk3368 commit e6827bafd6b56fa25ec380840fe6f47e9a213fbe Merge: dc847d5 2338f73 Author: Linus Torvalds Date: Sat Sep 19 20:10:30 2015 -0700 Merge tag 'led-fixes-for-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds Pull LED fixes from Jacek Anaszewski: - fix module autoload for six OF platform drivers (aat1290, bcm6328, bcm6358, ktd2692, max77693, ns2) - aat1290: add missing static modifier - ipaq-micro: add missing LEDS_CLASS dependency - lp55xx: correct Kconfig dependecy for f/w user helper * tag 'led-fixes-for-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: leds:lp55xx: Correct Kconfig dependency for f/w user helper leds: leds-ipaq-micro: Add LEDS_CLASS dependency leds: aat1290: add 'static' modifier to init_mm_current_scale leds: leds-ns2: Fix module autoload for OF platform driver leds: max77693: Fix module autoload for OF platform driver leds: ktd2692: Fix module autoload for OF platform driver leds: bcm6358: Fix module autoload for OF platform driver leds: bcm6328: Fix module autoload for OF platform driver leds: aat1290: Fix module autoload for OF platform driver commit dc847d5b4aa852c41b56c21bdc759fee13cc8f68 Merge: 2673ee5 e116a64 Author: Linus Torvalds Date: Sat Sep 19 20:04:11 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma fixes from Doug Ledford: "The new hfi1 driver in staging/rdma has had a number of fixup patches since being added to the tree. This is the first batch of those fixes" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/hfi: Properly set permissions for user device files IB/hfi1: mask vs shift confusion IB/hfi1: clean up some defines IB/hfi1: info leak in get_ctxt_info() IB/hfi1: fix a locking bug IB/hfi1: checking for NULL instead of IS_ERR IB/hfi1: fix sdma_descq_cnt parameter parsing IB/hfi1: fix copy_to/from_user() error handling IB/hfi1: fix pstateinfo from returning improperly byteswapped value commit 2673ee565f10e0f2fdcf61f7a715e6b4ac2497dc Merge: 133bb59 ae4f976 Author: Linus Torvalds Date: Sat Sep 19 19:13:03 2015 -0700 Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm fixes from Dan Williams: - a boot regression (since v4.2) fix for some ARM configurations from Tyler - regression (since v4.1) fixes for mkfs.xfs on a DAX enabled device from Jeff. These are tagged for -stable. - a pair of locking fixes from Axel that are hidden from lockdep since they involve device_lock(). The "btt" one is tagged for -stable, the other only applies to the new "pfn" mechanism in v4.3. - a fix for the pmem ->rw_page() path to use wmb_pmem() from Ross. * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: mm: fix type cast in __pfn_to_phys() pmem: add proper fencing to pmem_rw_page() libnvdimm: pfn_devs: Fix locking in namespace_store libnvdimm: btt_devs: Fix locking in namespace_store blockdev: don't set S_DAX for misaligned partitions dax: fix O_DIRECT I/O to the last block of a blockdev commit 133bb59585140747fd3938002670cb395f40dc76 Merge: 590dca3 9945187 Author: Linus Torvalds Date: Sat Sep 19 18:57:09 2015 -0700 Merge branch 'for-linus' of git://git.kernel.dk/linux-block Pull block updates from Jens Axboe: "This is a bit bigger than it should be, but I could (did) not want to send it off last week due to both wanting extra testing, and expecting a fix for the bounce regression as well. In any case, this contains: - Fix for the blk-merge.c compilation warning on gcc 5.x from me. - A set of back/front SG gap merge fixes, from me and from Sagi. This ensures that we honor SG gapping for integrity payloads as well. - Two small fixes for null_blk from Matias, fixing a leak and a capacity propagation issue. - A blkcg fix from Tejun, fixing a NULL dereference. - A fast clone optimization from Ming, fixing a performance regression since the arbitrarily sized bio's were introduced. - Also from Ming, a regression fix for bouncing IOs" * 'for-linus' of git://git.kernel.dk/linux-block: block: fix bounce_end_io block: blk-merge: fast-clone bio when splitting rw bios block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg block: Copy a user iovec if it includes gaps block: Refuse adding appending a gapped integrity page to a bio block: Refuse request/bio merges with gaps in the integrity payload block: Check for gaps on front and back merges null_blk: fix wrong capacity when bs is not 512 bytes null_blk: fix memory leak on cleanup block: fix bogus compiler warnings in blk-merge.c commit 590dca3a71875461e8fea3013af74386945191b2 Author: Chris Mason Date: Fri Sep 18 13:35:08 2015 -0400 fs-writeback: unplug before cond_resched in writeback_sb_inodes Commit 505a666ee3fc ("writeback: plug writeback in wb_writeback() and writeback_inodes_wb()") has us holding a plug during writeback_sb_inodes, which increases the merge rate when relatively contiguous small files are written by the filesystem. It helps both on flash and spindles. For an fs_mark workload creating 4K files in parallel across 8 drives, this commit improves performance ~9% more by unplugging before calling cond_resched(). cond_resched() doesn't trigger an implicit unplug, so explicitly getting the IO down to the device before scheduling reduces latencies for anyone waiting on clean pages. It also cuts down on how often we use kblockd to unplug, which means less work bouncing from one workqueue to another. Many more details about how we got here: https://lkml.org/lkml/2015/9/11/570 Signed-off-by: Chris Mason Signed-off-by: Linus Torvalds fs/fs-writeback.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 4b0ab51db32eba0f48b7618254742f143364a28d Author: Trond Myklebust Date: Fri Sep 18 09:52:07 2015 -0400 SUNRPC: xs_sock_mark_closed() does not need to trigger socket autoclose Under all conditions, it should be quite sufficient just to mark the socket as disconnected. It will then be closed by the transport shutdown or reconnect code. Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 1 - 1 file changed, 1 deletion(-) commit 79234c3db6842a3de03817211d891e0c2878f756 Author: Trond Myklebust Date: Fri Sep 18 15:53:24 2015 -0400 SUNRPC: Lock the transport layer on shutdown Avoid all races with the connect/disconnect handlers by taking the transport lock. Reported-by:"Suzuki K. Poulose" Acked-by: Jeff Layton Signed-off-by: Trond Myklebust net/sunrpc/xprt.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 002801fc5372ecb725f0d7939f88ca752ce1d499 Author: Fabio Estevam Date: Mon Sep 14 10:37:55 2015 -0700 Input: imx6ul_tsc - fix controller name We should better write "Touchscreen". Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/imx6ul_tsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5eab3cf3e48cf658f3432e8ba31436d5a4f6a219 Author: Fabio Estevam Date: Mon Sep 14 10:37:31 2015 -0700 Input: imx6ul_tsc - use the preferred method for kzalloc() According to Documentation/CodingStyle: "The preferred form for passing a size of a struct is the following: p = kmalloc(sizeof(*p), ...);" so do as suggested. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/imx6ul_tsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3905de62b2624a4574776b3b7ddfa97758b75edc Author: Fabio Estevam Date: Mon Sep 14 10:37:08 2015 -0700 Input: imx6ul_tsc - check for negative return value We should check for negative values returned by platform_get_irq(). Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/imx6ul_tsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6cc527b05847984990a09ef028b2f670bbc72c46 Author: Fabio Estevam Date: Mon Sep 14 10:36:35 2015 -0700 Input: imx6ul_tsc - propagate the errors imx6ul_adc_init() may fail in two cases, so we should better propagate the errors and make sure that the callers of this function also check and propagate the errors accordingly. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/imx6ul_tsc.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) commit 46b018fa95003f8159f5fcf9b8cd89acaea34e31 Author: Dmitry Torokhov Date: Sat Sep 5 10:19:38 2015 -0700 Input: walkera0701 - fix abs() calculations on 64 bit values abs() function can not be used with 64 bit values, so let's switch to abs64(). From include/linux/kernel.h: /* * abs() handles unsigned and signed longs, ints, shorts and chars. * For all input types abs() returns a signed long. * abs() should not be used for 64-bit types (s64, u64, long long) * - use abs64() for those. */ Reported-by: Joe Perches Signed-off-by: Dmitry Torokhov drivers/input/joystick/walkera0701.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86a39bffc4e94f80527c14fe00a3acb432910ef3 Author: Javier Martinez Canillas Date: Mon Sep 14 10:38:39 2015 -0700 Input: mms114 - remove unneded semicolons They aren't needed and are just creating null statements so remove it. Signed-off-by: Javier Martinez Canillas Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/mms114.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b9ab471b71900ca8a670ecf4f1cc65b626953655 Author: Javier Martinez Canillas Date: Mon Sep 14 10:38:31 2015 -0700 Input: pm8941-pwrkey - remove unneded semicolon It's not needed and is just creating a null statement so remove it. Signed-off-by: Javier Martinez Canillas Signed-off-by: Dmitry Torokhov drivers/input/misc/pm8941-pwrkey.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1452723cf23c908eed2bf6baf0c23943eb0e8bf Author: Daniel Martin Date: Sat Sep 19 11:27:19 2015 -0700 Input: fix typo in MT documentation Section "Event Computation" had this: ... ABS_MT_TOOL_X := C_X ABS_MT_TOOL_X := C_Y Replace the second ABS_MT_TOOL_X with ABS_MT_TOOL_Y. Signed-off-by: Daniel Martin Acked-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov Documentation/input/multi-touch-protocol.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b0379d7aa415249ce1dab8dd2554f8845d6822ab Author: Dudley Du Date: Sat Sep 19 10:39:32 2015 -0700 Input: cyapa - fix address of Gen3 devices in device tree documentation All of the Gen3 touchpads are fixed with I2C address 0x67, so correct the reg value description from 0x24 to 0x67. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/cypress,cyapa.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b64c173cdea21105eb4794487b3d593f0a2e6c3 Author: Adam Thomson Date: Wed Sep 16 10:13:19 2015 +0100 ASoC: fsl_ssi: Fix checking of dai format for AC97 mode Current code incorrectly treats dai format for AC97 as bit mask whereas it's actually an integer value. This causes DAI formats other than AC97 (e.g. DSP_B) to trigger AC97 related code, which is incorrect and breaks functionality. This patch fixes the code to correctly compare values to determine AC97 or not. Signed-off-by: Adam Thomson Acked-by: Timur Tabi Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f072f91aa7517386344476813ca0799e08fd0c35 Author: Sudip Mukherjee Date: Fri Sep 18 16:02:21 2015 +0530 ASoC: wm0010: fix error path Fix the error path so that we can free the allocated memory on the error path instead of releasing them individually on each error. Signed-off-by: Sudip Mukherjee Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm0010.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 2ace47be5a315def8f493ca77aa59c077ade30a1 Author: Sudip Mukherjee Date: Fri Sep 18 16:02:20 2015 +0530 ASoC: wm0010: fix memory leak We have requested for the firmware but we have missed releasing it both on success and on error path. While checking the code it turned out that the requested firmware is not even used. More over the same firmware is being loaded by wm0010_stage2_load(). Signed-off-by: Sudip Mukherjee Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm0010.c | 9 --------- 1 file changed, 9 deletions(-) commit c9e97b3cb2b80deb94c092a2022a6d385b838d84 Author: Luis de Bethencourt Date: Fri Sep 18 19:42:17 2015 +0200 spi: meson: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Mark Brown drivers/spi/spi-meson-spifc.c | 1 + 1 file changed, 1 insertion(+) commit 7209fee89f435b69051bb6bffe7f191336ac2a5e Author: Luis de Bethencourt Date: Fri Sep 18 19:09:51 2015 +0200 regulator: vexpress: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Mark Brown drivers/regulator/vexpress.c | 1 + 1 file changed, 1 insertion(+) commit 2f9481e7dc0d3aacbaa07701f3ee2527f5d48301 Author: Luis de Bethencourt Date: Fri Sep 18 19:09:24 2015 +0200 regulator: gpio: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Mark Brown drivers/regulator/gpio-regulator.c | 1 + 1 file changed, 1 insertion(+) commit d702ffd4d1df73b9c620af1654af42ff5b8d5c09 Author: Luis de Bethencourt Date: Fri Sep 18 19:09:07 2015 +0200 regulator: anatop: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Mark Brown drivers/regulator/anatop-regulator.c | 1 + 1 file changed, 1 insertion(+) commit 8524bb0c7ac688a3cd6ba12dae6104c54d0566b9 Author: Zidan Wang Date: Fri Sep 18 17:19:43 2015 +0800 ASoC: wm8960: correct the max register value of mic boost pga the max register value of mic boost pga should be 3. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ee92cfb030c16ddb01f6543968f13bcb61ed9da5 Author: Zidan Wang Date: Fri Sep 18 17:19:25 2015 +0800 ASoC: wm8962: remove 64k sample rate support wm8962 can't support 64k sample rate. When playing a 64KHz wave file, 'Unsupported rate 64000Hz' will be prompted. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8962.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 176fc2d5770a0990eebff903ba680d2edd32e718 Author: Mark Brown Date: Sat Sep 19 07:12:34 2015 -0700 regmap: debugfs: Don't bother actually printing when calculating max length The in kernel snprintf() will conveniently return the actual length of the printed string even if not given an output beffer at all so just do that rather than relying on the user to pass in a suitable buffer, ensuring that we don't need to worry if the buffer was truncated due to the size of the buffer passed in. Reported-by: Rasmus Villemoes Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/base/regmap/regmap-debugfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b763ec17ac762470eec5be8ebcc43e4f8b2c2b82 Author: Mark Brown Date: Sat Sep 19 07:00:18 2015 -0700 regmap: debugfs: Ensure we don't underflow when printing access masks If a read is attempted which is smaller than the line length then we may underflow the subtraction we're doing with the unsigned size_t type so move some of the calculation to be additions on the right hand side instead in order to avoid this. Reported-by: Rasmus Villemoes Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/base/regmap/regmap-debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae4f976968896f8f41b3a7aa21be6146492211e5 Author: Tyler Baker Date: Sat Sep 19 03:58:10 2015 -0400 mm: fix type cast in __pfn_to_phys() The various definitions of __pfn_to_phys() have been consolidated to use a generic macro in include/asm-generic/memory_model.h. This hit mainline in the form of 012dcef3f058 "mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h". When the generic macro was implemented the type cast to phys_addr_t was dropped which caused boot regressions on ARM platforms with more than 4GB of memory and LPAE enabled. It was suggested to use PFN_PHYS() defined in include/linux/pfn.h as provides the correct logic and avoids further duplication. Reported-by: kernelci.org bot Suggested-by: Dan Williams Signed-off-by: Tyler Baker Signed-off-by: Dan Williams include/asm-generic/memory_model.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f40314b81b765c26202cde33523e35809adbe9b Merge: 7dc1d36 bcb2b0b Author: Rafael J. Wysocki Date: Fri Sep 18 23:07:46 2015 +0200 Merge branch 'acpi-bus' * acpi-bus: ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED() ACPI: int340x_thermal: add missing CONFIG_ prefix commit 7dc1d36e8ef8f78f9dadf0476081f3c7ff7f79be Merge: 6ff33f3 1f0bd44 4184a8f Author: Rafael J. Wysocki Date: Fri Sep 18 23:05:28 2015 +0200 Merge branches 'pm-cpufreq' and 'pm-devfreq' * pm-cpufreq: cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get() * pm-devfreq: PM / devfreq: Fix incorrect type issue. PM / devfreq: tegra: Update governor to use devfreq_update_stats() PM / devfreq: comments for get_dev_status usage updated PM / devfreq: drop comment about thermal setting max_freq PM / devfreq: cache the last call to get_dev_status() PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL) PM / devfreq: exynos-ppmu: bit-wise operation bugfix. PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding commit ea9346514e77951e194f6db0205866f8478753f4 Merge: 74a0939 8315b77 Author: Greg Kroah-Hartman Date: Fri Sep 18 09:56:08 2015 -0700 Merge tag 'usb-ci-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus Peter writes: USB Chipidea fixes for v4.3-rc2 - Fix the stall implementation - Fix device mode transfer at zynq platform - other small fixes commit 00ade1f553e3b947cd26228392ee47d6f0f550e1 Merge: 3ae8394 ad2aa04 Author: Linus Torvalds Date: Fri Sep 18 09:28:20 2015 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio fixes and cleanups from Michael Tsirkin: "This fixes the virtio-test tool, and improves the error handling for virtio-ccw" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio/s390: handle failures of READ_VQ_CONF ccw tools/virtio: propagate V=X to kernel build vhost: move features to core tools/virtio: fix build after 4.2 changes commit 3ae839454e77cdc87d499a4bfd0932dec5763b55 Merge: fadb97b 00cc163 Author: Linus Torvalds Date: Fri Sep 18 09:23:08 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "Mostly stable material, a lot of ARM fixes" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (22 commits) sched: access local runqueue directly in single_task_running arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS' arm64: KVM: Remove all traces of the ThumbEE registers arm: KVM: Disable virtual timer even if the guest is not using it arm64: KVM: Disable virtual timer even if the guest is not using it arm/arm64: KVM: vgic: Check for !irqchip_in_kernel() when mapping resources KVM: s390: Replace incorrect atomic_or with atomic_andnot arm: KVM: Fix incorrect device to IPA mapping arm64: KVM: Fix user access for debug registers KVM: vmx: fix VPID is 0000H in non-root operation KVM: add halt_attempted_poll to VCPU stats kvm: fix zero length mmio searching kvm: fix double free for fast mmio eventfd kvm: factor out core eventfd assign/deassign logic kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd KVM: make the declaration of functions within 80 characters KVM: arm64: add workaround for Cortex-A57 erratum #852523 KVM: fix polling for guest halt continued even if disable it arm/arm64: KVM: Fix PSCI affinity info return value for non valid cores arm64: KVM: set {v,}TCR_EL2 RES1 bits ... commit 381c02f6d8ccad8ed574630f879c40fb59715124 Author: Mark Rutland Date: Wed Sep 16 18:18:49 2015 +0100 perf record: Avoid infinite loop at buildid processing with no samples If a session contains no events, we can get stuck in an infinite loop in __perf_session__process_events, with a non-zero file_size and data_offset, but a zero data_size. In this case, we can mmap the entirety of the file (consisting of the file and attribute headers), and fetch_mmaped_event will correctly refuse to read any (unmapped and non-existent) event headers. This causes __perf_session__process_events to unmap the file and retry with the exact same parameters, getting stuck in an infinite loop. This has been observed to result in an exit-time hang when counting rare/unschedulable events with perf record, and can be triggered artificially with the script below: ---- #!/bin/sh printf "REPRO: launching perf\n"; ./perf record -e software/config=9/ sleep 1 & PERF_PID=$!; sleep 0.002; kill -2 $PERF_PID; printf "REPRO: waiting for perf (%d) to exit...\n" "$PERF_PID"; wait $PERF_PID; printf "REPRO: perf exited\n"; ---- To avoid this, have __perf_session__process_events bail out early when the file has no data (i.e. it has no events). Commiter note: I only managed to reproduce this when setting /proc/sys/kernel/kptr_restrict to '1' and changing the code to purposefully not process any samples and no synthesized samples, i.e. kptr_restrict prevents 'record' from synthesizing the kernel mmaps for vmlinux + modules and since it is a workload started from perf, we don't synthesize mmap/comm records for existing threads. Adrian Hunter managed to reproduce it in his environment tho. Signed-off-by: Mark Rutland Tested-by: Arnaldo Carvalho de Melo Tested-by: Adrian Hunter Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1442423929-12253-1-git-send-email-mark.rutland@arm.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit e116a64fab650aed3d7b9b4db0b59c07f361bc9f Author: Ira Weiny Date: Thu Sep 17 13:47:49 2015 -0400 IB/hfi: Properly set permissions for user device files Some of the device files are required to be user accessible for PSM while most should remain accessible only by root. Add a parameter to hfi1_cdev_init which controls if the user should have access to this device which places it in a different class with the appropriate devnode callback. In addition set the devnode call back for the existing class to be a bit more explicit for those permissions. Finally remove the unnecessary null check before class_destroy Tested-by: Donald Dutile Signed-off-by: Haralanov, Mitko (mitko.haralanov@intel.com) Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/device.c | 54 ++++++++++++++++++++++++++++++++---- drivers/staging/rdma/hfi1/device.h | 3 +- drivers/staging/rdma/hfi1/diag.c | 5 ++-- drivers/staging/rdma/hfi1/file_ops.c | 9 ++++-- 4 files changed, 59 insertions(+), 12 deletions(-) commit 7d630467d7c454d801d72b58f242c373a64e39ed Author: Dan Carpenter Date: Wed Sep 16 19:03:45 2015 +0300 IB/hfi1: mask vs shift confusion We are shifting by the _MASK macros instead of the _SHIFT ones. Signed-off-by: Dan Carpenter Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/sdma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3f2686a2665b4d06753b602fe394b5d87bc7f279 Author: Dan Carpenter Date: Wed Sep 16 19:02:54 2015 +0300 IB/hfi1: clean up some defines I added spaces around operators so it matches kernel style because normally "-1ULL" is a number and " - 1" is a subtract operation. Also removed some superflous "ULL" types so "1ULL" becomes "1". Signed-off-by: Dan Carpenter Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/sdma.h | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit ebe6b2e8bc2cd06a330b3f9be8a4fa3ff44ab026 Author: Dan Carpenter Date: Wed Sep 16 09:42:25 2015 +0300 IB/hfi1: info leak in get_ctxt_info() The cinfo struct has a hole after the last struct member so we need to zero it out. Otherwise we disclose some uninitialized stack data. Signed-off-by: Dan Carpenter Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/file_ops.c | 1 + 1 file changed, 1 insertion(+) commit 951842b0540d2ed49ae29ba968adc496baf46556 Author: Dan Carpenter Date: Wed Sep 16 09:22:51 2015 +0300 IB/hfi1: fix a locking bug mutex_trylock() returns zero on failure, not EBUSY. Signed-off-by: Dan Carpenter Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/chip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 50b19729ced72cfa8bb1c44fed9203f395f13991 Author: Dan Carpenter Date: Wed Sep 16 09:22:20 2015 +0300 IB/hfi1: checking for NULL instead of IS_ERR __get_txreq() returns an ERR_PTR() but this checks for NULL so it would oops on failure. Signed-off-by: Dan Carpenter Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/verbs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit aeef010a0f63ad0a6f993d3da30753e9a8a39ec5 Author: Mike Marciniszyn Date: Tue Sep 15 10:19:27 2015 -0400 IB/hfi1: fix sdma_descq_cnt parameter parsing The boolean tests should have been or-ed. Reported-by: David Binderman Reviewed-by: Jubin John Signed-off-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/sdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e1df0068a24ba56673183cc3bd392d8bc301d423 Author: Dan Carpenter Date: Tue Sep 15 13:35:25 2015 +0300 IB/hfi1: fix copy_to/from_user() error handling copy_to/from_user() returns the number of bytes which we were not able to copy. It doesn't return an error code. Also a couple places had a printk() on error and I removed that because people can take advantage of it to fill /var/log/messages with spam. Signed-off-by: Dan Carpenter Acked-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/diag.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit aadfc3b2042d69a6b4b8d719d4221b988d7f31a5 Author: Ira Weiny Date: Wed Sep 9 01:28:21 2015 -0400 IB/hfi1: fix pstateinfo from returning improperly byteswapped value Byteswap link_width_downgrade_*_active values before sending on the wire. In addition properly define the Port State Info structure. Reviewed-by: Dennis Dalessandro Reviewed-by: Christian Gomez Signed-off-by: Rimmer, Todd Signed-off-by: Ira Weiny Acked-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/mad.c | 4 ++-- include/rdma/opa_port_info.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit ab1fffe3a73c694d698645451ba61255ec4ba5e6 Author: Peter Ujfalusi Date: Fri Sep 18 15:02:50 2015 +0300 ASoC: davinci-mcasp: Fix devm_kasprintf format string The '\n' at the end of the format string is not needed. It adds an extra line break when doing cat /proc/interrupts Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fadb97b089563da69ba326f9fea6399d071462b2 Merge: 09784fb ae80a2f Author: Linus Torvalds Date: Fri Sep 18 08:11:42 2015 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq updates from Thomas Gleixner: "This is a rather large update post rc1 due to the final steps of cleanups and API changes which had to wait for the preparatory patches to hit your tree. - Regression fixes for ARM GIC irqchips - Regression fixes and lockdep anotations for renesas irq chips - The leftovers of the cleanup and preparatory patches which have been ignored by maintainers - Final conversions of the newly merged users of obsolete APIs - Final removal of obsolete APIs - Final removal of ARM artifacts which had been introduced during the conversion of ARM to the generic interrupt code. - Final split of the irq_data into chip specific and common data to reflect the needs of hierarchical irq domains. - Treewide removal of the first argument of interrupt flow handlers, i.e. the irq number, which is not used by the majority of handlers and simple to retrieve from the other argument the irq descriptor. - A few comment updates and build warning fixes" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits) arm64: Remove ununsed set_irq_flags ARM: Remove ununsed set_irq_flags sh: Kill off set_irq_flags usage irqchip: Kill off set_irq_flags usage gpu/drm: Kill off set_irq_flags usage genirq: Remove irq argument from irq flow handlers genirq: Move field 'msi_desc' from irq_data into irq_common_data genirq: Move field 'affinity' from irq_data into irq_common_data genirq: Move field 'handler_data' from irq_data into irq_common_data genirq: Move field 'node' from irq_data into irq_common_data irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag genirq: Provide IRQD_FORWARDED_TO_VCPU status flag genirq: Simplify irq_data_to_desc() genirq: Remove __irq_set_handler_locked() pinctrl/pistachio: Use irq_set_handler_locked gpio: vf610: Use irq_set_handler_locked powerpc/mpc8xx: Use irq_set_handler_locked() powerpc/ipic: Use irq_set_handler_locked() powerpc/cpm2: Use irq_set_handler_locked() ... commit 09784fb8ef79f5c5adb9c1b4d0df000354e476e7 Merge: f240bdd 590f078 Author: Linus Torvalds Date: Fri Sep 18 08:06:28 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fix from Thomas Gleixner: "A single regression fix for the x86 dma allocator which got wreckaged in the merge window" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/pci/dma: Fix gfp flags for coherent DMA memory allocation commit f240bdd2a5b7d523ecced64c855ee2c1499f2854 Merge: a7d5c18 400c47d Author: Linus Torvalds Date: Fri Sep 18 08:01:06 2015 -0700 Merge tag 'powerpc-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Fix 32-bit TCE table init in kdump kernel from Nish - Fix kdump with non-power-of-2 crashkernel= from Nish - Abort cxl_pci_enable_device_hook() if PCI channel is offline from Andrew - Fix to release DRC when configure_connector() fails from Bharata - Wire up sys_userfaultfd() - Fix race condition in tearing down MSI interrupts from Paul - Fix unbalanced pci_dev_get() in cxl_probe() from Daniel - Fix cxl build failure due to -Wunused-variable gcc behaviour change from Ian - Tell the toolchain to use ABI v2 when building an LE boot wrapper from Benh - Fix THP to recompute hash value after a failed update from Aneesh - 32-bit memcpy/memset: only use dcbz once cache is enabled from Christophe * tag 'powerpc-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc32: memset: only use dcbz once cache is enabled powerpc32: memcpy: only use dcbz once cache is enabled powerpc/mm: Recompute hash value after a failed update powerpc/boot: Specify ABI v2 when building an LE boot wrapper cxl: Fix build failure due to -Wunused-variable behaviour change cxl: Fix unbalanced pci_dev_get in cxl_probe powerpc/MSI: Fix race condition in tearing down MSI interrupts powerpc: Wire up sys_userfaultfd() powerpc/pseries: Release DRC when configure_connector fails cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline powerpc/powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel= powerpc/powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel commit ebae871a509d3c24b32ff67af2671dadffc58770 Author: Igor Mammedov Date: Fri Sep 18 15:39:05 2015 +0200 kvm: svm: reset mmu on VCPU reset When INIT/SIPI sequence is sent to VCPU which before that was in use by OS, VMRUN might fail with: KVM: entry failed, hardware error 0xffffffff EAX=00000000 EBX=00000000 ECX=00000000 EDX=000006d3 ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000 EIP=00000000 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 0000ffff 00009300 CS =9a00 0009a000 0000ffff 00009a00 [...] CR0=60000010 CR2=b6f3e000 CR3=01942000 CR4=000007e0 [...] EFER=0000000000000000 with corresponding SVM error: KVM: FAILED VMRUN WITH VMCB: [...] cpl: 0 efer: 0000000000001000 cr0: 0000000080010010 cr2: 00007fd7fe85bf90 cr3: 0000000187d0c000 cr4: 0000000000000020 [...] What happens is that VCPU state right after offlinig: CR0: 0x80050033 EFER: 0xd01 CR4: 0x7e0 -> long mode with CR3 pointing to longmode page tables and when VCPU gets INIT/SIPI following transition happens CR0: 0 -> 0x60000010 EFER: 0x0 CR4: 0x7e0 -> paging disabled with stale CR3 However SVM under the hood puts VCPU in Paged Real Mode* which effectively translates CR0 0x60000010 -> 80010010 after svm_vcpu_reset() -> init_vmcb() -> kvm_set_cr0() -> svm_set_cr0() but from kvm_set_cr0() perspective CR0: 0 -> 0x60000010 only caching bits are changed and commit d81135a57aa6 ("KVM: x86: do not reset mmu if CR0.CD and CR0.NW are changed")' regressed svm_vcpu_reset() which relied on MMU being reset. As result VMRUN after svm_vcpu_reset() tries to run VCPU in Paged Real Mode with stale MMU context (longmode page tables), which causes some AMD CPUs** to bail out with VMEXIT_INVALID. Fix issue by unconditionally resetting MMU context at init_vmcb() time. * AMD64 Architecture Programmer’s Manual, Volume 2: System Programming, rev: 3.25 15.19 Paged Real Mode ** Opteron 1216 Signed-off-by: Igor Mammedov Fixes: d81135a57aa6 Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 1 + 1 file changed, 1 insertion(+) commit 00cc1633816de8c95f337608a1ea64e228faf771 Author: Dominik Dingel Date: Fri Sep 18 11:27:45 2015 +0200 sched: access local runqueue directly in single_task_running Commit 2ee507c47293 ("sched: Add function single_task_running to let a task check if it is the only task running on a cpu") referenced the current runqueue with the smp_processor_id. When CONFIG_DEBUG_PREEMPT is enabled, that is only allowed if preemption is disabled or the currrent task is bound to the local cpu (e.g. kernel worker). With commit f78195129963 ("kvm: add halt_poll_ns module parameter") KVM calls single_task_running. If CONFIG_DEBUG_PREEMPT is enabled that generates a lot of kernel messages. To avoid adding preemption in that cases, as it would limit the usefulness, we change single_task_running to access directly the cpu local runqueue. Cc: Tim Chen Suggested-by: Peter Zijlstra Acked-by: Peter Zijlstra (Intel) Cc: Fixes: 2ee507c472939db4b146d545352b8a7c79ef47f8 Signed-off-by: Dominik Dingel Signed-off-by: Paolo Bonzini kernel/sched/core.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 977108f89c989b1eeb5c8d938e1e71913391eb5f Author: Heiko Carstens Date: Thu Sep 17 18:30:36 2015 +0200 s390: wire up separate socketcalls system calls As discussed on linux-arch all architectures should wire up the separate system calls that are hidden behind the socketcall multiplexer system call. It's just a couple more system calls and gives us a very small performance improvement. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/unistd.h | 20 -------------------- arch/s390/include/uapi/asm/unistd.h | 19 ++++++++++++++++++- arch/s390/kernel/compat_wrapper.c | 7 +++++++ arch/s390/kernel/syscalls.S | 17 +++++++++++++++++ 4 files changed, 42 insertions(+), 21 deletions(-) commit 7681df456f97f21fb70f184702696d644e273d73 Author: Heiko Carstens Date: Thu Sep 17 18:30:35 2015 +0200 s390/compat: remove superfluous compat wrappers A couple of compat wrapper functions are simply trampolines to the real system call. This happened because the compat wrapper defines will only sign and zero extend system call parameters which are of different size on s390/s390x (longs and pointers). All other parameters will be correctly sign and zero extended by the normal system call wrappers. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/compat_wrapper.c | 51 ------------------- arch/s390/kernel/syscalls.S | 102 +++++++++++++++++++------------------- 2 files changed, 51 insertions(+), 102 deletions(-) commit a55b2ae78cfecaa5ce0384c05211606372b9496c Author: Heiko Carstens Date: Thu Sep 17 18:30:34 2015 +0200 s390/compat: do not trace compat wrapper functions Add notrace to the compat wrapper define to disable tracing of compat wrapper functions. These are supposed to be very small and more or less just a trampoline to the real system call. Also fix indentation. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/compat_wrapper.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit f73e22ab450140830005581c2c7ec389791a1b8d Author: Peter Zijlstra Date: Wed Sep 9 20:48:22 2015 +0200 perf: Fix races in computing the header sizes There are two races with the current code: - Another event can join the group and compute a larger header_size concurrently, if the smaller store wins we'll have an incorrect header_size set. - We compute the header_size after the event becomes active, therefore its possible to use the size before its computed. Remedy the first by moving the computation inside the ctx::mutex lock, and the second by placing it _before_ perf_install_in_context(). Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/events/core.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit a723968c0ed36db676478c3d26078f13484fe01c Author: Peter Zijlstra Date: Wed Sep 9 19:06:33 2015 +0200 perf: Fix u16 overflows Vince reported that its possible to overflow the various size fields and get weird stuff if you stick too many events in a group. Put a lid on this by requiring the fixed record size not exceed 16k. This is still a fair amount of events (silly amount really) and leaves plenty room for callchains and stack dwarves while also avoiding overflowing the u16 variables. Reported-by: Vince Weaver Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/events/core.c | 50 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) commit f55fc2a57cc9ca3b1bb4fb8eb25b6e1989e5b993 Author: Peter Zijlstra Date: Wed Sep 9 19:06:33 2015 +0200 perf: Restructure perf syscall point of no return The exclusive_event_installable() stuff only works because its exclusive with the grouping bits. Rework the code such that there is a sane place to error out before we go do things we cannot undo. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/events/core.c | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) commit dfe1f3cb312624928052413928d88b0ee3492216 Author: Andi Kleen Date: Wed Sep 9 14:54:00 2015 -0700 perf/x86/intel: Fix Skylake FRONTEND MSR extrareg mask Stephane pointed out that the extrareg mask was one bit too short. The bubble width field was truncated by one bit. Fix that here. Also add some extra comments on the reserved bits inside the event select code. Reported-by: Stephane Eranian Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441835640-21347-3-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit d0dc8494cd6904f8ad035d9ad97f313948f35d0c Author: Andi Kleen Date: Wed Sep 9 14:53:59 2015 -0700 perf/x86/intel/pebs: Add PEBS frontend profiling for Skylake Skylake has a new FRONTEND_LATENCY PEBS event to accurately profile frontend problems (like ITLB or decoding issues). The new event is configured through a separate MSR, which selects a range of sub events. Define the extra MSR as a extra reg and export support for it through sysfs. To avoid duplicating the existing tables use a new function to add new entries to existing tables. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Acked-by: Thomas Gleixner Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1435707205-6676-4-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr-index.h | 2 ++ arch/x86/kernel/cpu/perf_event.h | 1 + arch/x86/kernel/cpu/perf_event_intel.c | 11 ++++++++++- 3 files changed, 13 insertions(+), 1 deletion(-) commit 5e176213a6b2bc5146820c79542d37290434a3c4 Author: Andi Kleen Date: Mon Sep 14 14:47:02 2015 -0700 perf/x86/intel: Make the CYCLE_ACTIVITY.* constraint on Broadwell more specific The counter constraint for CYCLE_ACTIVITY.* on Broadwell covered all CYCLE_ACTIVITY.* sub events, and forced them on counter 2. But actually only one sub event (umask 8) needs to be on counter 2, all others do not have any constraint. Only force that subevent. This fixes groups with multiple CYCLE_ACTIVITY.* events, for example: % perf stat -x, -e '{cpu/event=0xa3,umask=0x6,cmask=6/,\ cpu/event=0xa2,umask=0x8/,\ cpu/event=0xa3,umask=0x4,cmask=4/,cpu/event=0xb1,umask=0x1,cmask=1/}' true 122150,,cpu/event=0xa3,umask=0x6,cmask=6/,846486,100.00 16483,,cpu/event=0xa2,umask=0x8/,846486,100.00 252280,,cpu/event=0xa3,umask=0x4,cmask=4/,846486,100.00 233604,,cpu/event=0xb1,umask=0x1,cmask=1/,846486,100.00 % Without this patch the third result would be Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1442267222-16464-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de9b8f5dcbd94bfb1d249907a635f1fb1968e19c Author: Peter Zijlstra Date: Thu Aug 13 23:09:29 2015 +0200 sched: Fix crash trying to dequeue/enqueue the idle thread Sasha reports that his virtual machine tries to schedule the idle thread since commit 6c37067e2786 ("sched: Change the sched_class::set_cpus_allowed() calling context"). Hit trace shows this happening from idle_thread_get()->init_idle(), which is the _second_ init_idle() invocation on that task_struct, the first being done through idle_init()->fork_idle(). (this code is insane...) Because we call init_idle() twice in a row, its ->sched_class == &idle_sched_class and ->on_rq = TASK_ON_RQ_QUEUED. This means do_set_cpus_allowed() think we're queued and will call dequeue_task(), which is implemented with BUG() for the idle class, seeing how dequeueing the idle task is a daft thing. Aside of the whole insanity of calling init_idle() _twice_, change the code to call set_cpus_allowed_common() instead as this is 'obviously' before the idle task gets ran etc.. Reported-by: Sasha Levin Tested-by: Sasha Levin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: 6c37067e2786 ("sched: Change the sched_class::set_cpus_allowed() calling context") Signed-off-by: Ingo Molnar kernel/sched/core.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit a6f83f00ad4b4e8a6c1cd14db495f40cf5ea7586 Merge: a7d5c18 bf64456 Author: Ingo Molnar Date: Fri Sep 18 07:41:56 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: User visible changes: - When handling perf_event_open() returning EBUSY and not being able to opendir the procfs mount point we would tell the user that the oprofile daemon was found by returning -1 on as the return for a bool function, oops, fix it, found with Coccinelle. (Peter Senna Tschudin). - Fix per-pkg event reporting bug in 'perf stat'. (Stephane Eranian) Developer visible changes: - Fix missing prototype for function provided when it isn't present in the libelf present, fixing the build on RHEL/CentOS 5.1 systems, for instance. (Arnaldo Carvalho de Melo) - Detect if the gcc and libnuma have the features needed to avoid requiring the use of NO_LIBNUMA and/or NO_AUXTRACE to build on older systems. (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit c2e7204d180f8efc80f27959ca9cf16fa17f67db Author: Eric Dumazet Date: Thu Sep 17 08:38:00 2015 -0700 tcp_cubic: do not set epoch_start in the future Tracking idle time in bictcp_cwnd_event() is imprecise, as epoch_start is normally set at ACK processing time, not at send time. Doing a proper fix would need to add an additional state variable, and does not seem worth the trouble, given CUBIC bug has been there forever before Jana noticed it. Let's simply not set epoch_start in the future, otherwise bictcp_update() could overflow and CUBIC would again grow cwnd too fast. This was detected thanks to a packetdrill test Neal wrote that was flaky before applying this fix. Fixes: 30927520dbae ("tcp_cubic: better follow cubic curve after idle period") Signed-off-by: Eric Dumazet Signed-off-by: Neal Cardwell Signed-off-by: Yuchung Cheng Cc: Jana Iyengar Signed-off-by: David S. Miller net/ipv4/tcp_cubic.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit adb094e5e7285385770eb7a7c122bfc663c5e174 Author: Taku Izumi Date: Thu Sep 17 23:21:21 2015 +0900 fjes: fix off-by-one error at fjes_hw_update_zone_task() Dan Carpenter reported off-by-one error of fjes at http://www.mail-archive.com/netdev@vger.kernel.org/msg77520.html Actually this is a bug. ep_shm_info[epidx].{es_status, zone} should be update inside for loop. This patch fixes this bug. Reported-by: Dan Carpenter Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 6cf35642147103195f126d13bdc1d4c32c7c6666 Author: Jiri Benc Date: Thu Sep 17 16:28:31 2015 +0200 MAINTAINERS: remove bouncing email address for qlcnic I got this automated message from when submitting a qlcnic patch: > Shahed Shaikh is no longer with QLogic. If you require assistance please > contact Ariel Elior Ariel.Elior@qlogic.com There's no point in having a bouncing address in MAINTAINERS. CC: Dept-GELinuxNICDev@qlogic.com CC: Ariel Elior Signed-off-by: Jiri Benc Signed-off-by: David S. Miller MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 1bdc0b109bfa3697a9f6b71f7fed995e08a0d683 Merge: c38f6ac ac7eccd Author: David S. Miller Date: Thu Sep 17 22:32:16 2015 -0700 Merge branch 'vxlan-fixes' Jiri Benc says: ==================== vxlan fixes This fixes various issues with vxlan related to IPv6. ==================== Signed-off-by: David S. Miller commit ac7eccd4d48fcc70d9fd6e4d10657bcde0a73f9f Author: Jiri Benc Date: Thu Sep 17 16:11:14 2015 +0200 bnx2x: track vxlan port count The callback for adding vxlan port can be called with the same port for both IPv4 and IPv6. Do not disable the offloading when the same port for both protocols is added and later one of them removed. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 1 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) commit 1e5b311ab2cc3baf73cdff066ab39c7466bf166b Author: Jiri Benc Date: Thu Sep 17 16:11:13 2015 +0200 be2net: allow offloading with the same port for IPv4 and IPv6 The callback for adding vxlan port can be called with the same port for both IPv4 and IPv6. Do not disable the offloading if this occurs. Signed-off-by: Jiri Benc Acked-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 1 + drivers/net/ethernet/emulex/benet/be_main.c | 10 ++++++++++ 2 files changed, 11 insertions(+) commit 378fddc281072a10b621341b9f78c902303a8fe7 Author: Jiri Benc Date: Thu Sep 17 16:11:12 2015 +0200 qlcnic: track vxlan port count The callback for adding vxlan port can be called with the same port for both IPv4 and IPv6. Do not disable the offloading when the same port for both protocols is added and later one of them removed. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 1 + drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) commit 057ba29bbe85e9587635e3128b26fa30fe849af9 Author: Jiri Benc Date: Thu Sep 17 16:11:11 2015 +0200 vxlan: reject IPv6 addresses if IPv6 is not configured When IPv6 address is set without IPv6 configured, the vxlan socket is mostly treated as an IPv4 one but various lookus in fdb etc. still take the AF_INET6 into account. This creates incosistencies with weird consequences. Just reject IPv6 addresses in such case. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/vxlan.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 9dc2ad1008c9f91f55ec6c89ec0f8639dfc91596 Author: Jiri Benc Date: Thu Sep 17 16:11:10 2015 +0200 vxlan: set needed headroom correctly vxlan_setup is called when allocating the net_device, i.e. way before vxlan_newlink (or vxlan_dev_configure) is called. This means vxlan->default_dst is actually unset in vxlan_setup and the condition that sets needed_headroom always takes the else branch. Set the needed_headrom at the point when we have the information about the address family available. Fixes: e4c7ed415387c ("vxlan: add ipv6 support") Fixes: 2853af6a2ea1a ("vxlan: use dev->needed_headroom instead of dev->hard_header_len") CC: Cong Wang Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/vxlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c38f6ac74c99801360705d97244ff222ae18dc97 Author: Michael Grzeschik Date: Thu Sep 17 15:26:16 2015 +0200 MAINTAINERS: add arcnet and take maintainership Add entry for arcnet to MAINTAINERS file and add myself as the maintainer of the subsystem. Signed-off-by: Michael Grzeschik Cc: davem@davemloft.net Cc: joe@perches.com Signed-off-by: David S. Miller MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit 980137a20317055451a73547cf07be4ddea039ee Author: Michael Grzeschik Date: Thu Sep 17 15:18:34 2015 +0200 ARCNET: fix hard_header_len limit For arcnet the bare minimum header only contains the 4 bytes to specify source, dest and offset (1, 1 and 2 bytes respectively). The corresponding struct is struct arc_hardware. The struct archdr contains additionally a union of possible soft headers. When doing $insertusecasehere packets might well include short (or even no?) soft headers. For this reason only use arc_hardware instead of archdr to determine the hard_header_len for an arcnet device. Signed-off-by: Michael Grzeschik Signed-off-by: David S. Miller drivers/net/arcnet/arcnet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1dbb2413cbfa7db7a337081af1f4119996522156 Merge: 34f5b00 d8949aa Author: David S. Miller Date: Thu Sep 17 22:25:51 2015 -0700 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth Johan Hedberg says: ==================== pull request: bluetooth 2015-09-17 Here's one important patch for the 4.3-rc series that fixes an issue with Bluetooth LE encryption failing because of a too early check for the SMP context. Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 34f5b0066435ffb793049b84fafd29fa195bcf90 Author: Sasha Levin Date: Wed Sep 16 15:30:21 2015 -0400 atm: deal with setting entry before mkip was called If we didn't call ATMARP_MKIP before ATMARP_ENCAP the VCC descriptor is non-existant and we'll end up dereferencing a NULL ptr: [1033173.491930] kasan: GPF could be caused by NULL-ptr deref or user memory accessirq event stamp: 123386 [1033173.493678] general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN [1033173.493689] Modules linked in: [1033173.493697] CPU: 9 PID: 23815 Comm: trinity-c64 Not tainted 4.2.0-next-20150911-sasha-00043-g353d875-dirty #2545 [1033173.493706] task: ffff8800630c4000 ti: ffff880063110000 task.ti: ffff880063110000 [1033173.493823] RIP: clip_ioctl (net/atm/clip.c:320 net/atm/clip.c:689) [1033173.493826] RSP: 0018:ffff880063117a88 EFLAGS: 00010203 [1033173.493828] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 000000000000000c [1033173.493830] RDX: 0000000000000002 RSI: ffffffffb3f10720 RDI: 0000000000000014 [1033173.493832] RBP: ffff880063117b80 R08: ffff88047574d9a4 R09: 0000000000000000 [1033173.493834] R10: 0000000000000000 R11: 0000000000000000 R12: 1ffff1000c622f53 [1033173.493836] R13: ffff8800cb905500 R14: ffff8808d6da2000 R15: 00000000fffffdfd [1033173.493840] FS: 00007fa56b92d700(0000) GS:ffff880478000000(0000) knlGS:0000000000000000 [1033173.493843] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [1033173.493845] CR2: 0000000000000000 CR3: 00000000630e8000 CR4: 00000000000006a0 [1033173.493855] Stack: [1033173.493862] ffffffffb0b60444 000000000000eaea 0000000041b58ab3 ffffffffb3c3ce32 [1033173.493867] ffffffffb0b6f3e0 ffffffffb0b60444 ffffffffb5ea2e50 1ffff1000c622f5e [1033173.493873] ffff8800630c4cd8 00000000000ee09a ffffffffb3ec4888 ffffffffb5ea2de8 [1033173.493874] Call Trace: [1033173.494108] do_vcc_ioctl (net/atm/ioctl.c:170) [1033173.494113] vcc_ioctl (net/atm/ioctl.c:189) [1033173.494116] svc_ioctl (net/atm/svc.c:605) [1033173.494200] sock_do_ioctl (net/socket.c:874) [1033173.494204] sock_ioctl (net/socket.c:958) [1033173.494244] do_vfs_ioctl (fs/ioctl.c:43 fs/ioctl.c:607) [1033173.494290] SyS_ioctl (fs/ioctl.c:622 fs/ioctl.c:613) [1033173.494295] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:186) [1033173.494362] Code: fa 48 c1 ea 03 80 3c 02 00 0f 85 50 09 00 00 49 8b 9e 60 06 00 00 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 14 48 89 fa 48 c1 ea 03 <0f> b6 04 02 48 89 fa 83 e2 07 38 d0 7f 08 84 c0 0f 85 14 09 00 All code ======== 0: fa cli 1: 48 c1 ea 03 shr $0x3,%rdx 5: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) 9: 0f 85 50 09 00 00 jne 0x95f f: 49 8b 9e 60 06 00 00 mov 0x660(%r14),%rbx 16: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax 1d: fc ff df 20: 48 8d 7b 14 lea 0x14(%rbx),%rdi 24: 48 89 fa mov %rdi,%rdx 27: 48 c1 ea 03 shr $0x3,%rdx 2b:* 0f b6 04 02 movzbl (%rdx,%rax,1),%eax <-- trapping instruction 2f: 48 89 fa mov %rdi,%rdx 32: 83 e2 07 and $0x7,%edx 35: 38 d0 cmp %dl,%al 37: 7f 08 jg 0x41 39: 84 c0 test %al,%al 3b: 0f 85 14 09 00 00 jne 0x955 Code starting with the faulting instruction =========================================== 0: 0f b6 04 02 movzbl (%rdx,%rax,1),%eax 4: 48 89 fa mov %rdi,%rdx 7: 83 e2 07 and $0x7,%edx a: 38 d0 cmp %dl,%al c: 7f 08 jg 0x16 e: 84 c0 test %al,%al 10: 0f 85 14 09 00 00 jne 0x92a [1033173.494366] RIP clip_ioctl (net/atm/clip.c:320 net/atm/clip.c:689) [1033173.494368] RSP Signed-off-by: Sasha Levin Signed-off-by: David S. Miller net/atm/clip.c | 3 +++ 1 file changed, 3 insertions(+) commit a7d5c189719846889c029c34e24e166a465368fa Merge: a8f1558 8a1513b Author: Linus Torvalds Date: Thu Sep 17 21:41:02 2015 -0700 Merge tag 'platform-drivers-x86-v4.3-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver fixes from Darren Hart: "Fix an issue introduced by the previous major toshiba rework. Add a quirk. Workaround a few platform specific firmware items. One cleanup to wmi I inadvertently dropped from a previous pull request. Details: hp-wmi: - limit hotkey enable toshiba_acpi: - Fix hotkeys registration on some toshiba models - Fix USB Sleep and Music always disabled wmi: - Remove private %pUL implementation asus-nb-wmi: - Add wapf=4 quirk for X456UA/X456UF" * tag 'platform-drivers-x86-v4.3-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: hp-wmi: limit hotkey enable toshiba_acpi: Fix hotkeys registration on some toshiba models toshiba_acpi: Fix USB Sleep and Music always disabled wmi: Remove private %pUL implementation asus-nb-wmi: Add wapf=4 quirk for X456UA/X456UF commit 1d325d217c7f190a42fb620ead20bb240fc16af0 Author: Florian Westphal Date: Wed Sep 16 17:26:14 2015 +0200 ipv6: ip6_fragment: fix headroom tests and skb leak David Woodhouse reports skb_under_panic when we try to push ethernet header to fragmented ipv6 skbs: skbuff: skb_under_panic: text:c1277f1e len:1294 put:14 head:dec98000 data:dec97ffc tail:0xdec9850a end:0xdec98f40 dev:br-lan [..] ip6_finish_output2+0x196/0x4da David further debugged this: [..] offending fragments were arriving here with skb_headroom(skb)==10. Which is reasonable, being the Solos ADSL card's header of 8 bytes followed by 2 bytes of PPP frame type. The problem is that if netfilter ipv6 defragmentation is used, skb_cow() in ip6_forward will only see reassembled skb. Therefore, headroom is overestimated by 8 bytes (we pulled fragment header) and we don't check the skbs in the frag_list either. We can't do these checks in netfilter defrag since outdev isn't known yet. Furthermore, existing tests in ip6_fragment did not consider the fragment or ipv6 header size when checking headroom of the fraglist skbs. While at it, also fix a skb leak on memory allocation -- ip6_fragment must consume the skb. I tested this e1000 driver hacked to not allocate additional headroom (we end up in slowpath, since LL_RESERVED_SPACE is 16). If 2 bytes of headroom are allocated, fastpath is taken (14 byte ethernet header was pulled, so 16 byte headroom available in all fragments). Reported-by: David Woodhouse Diagnosed-by: David Woodhouse Signed-off-by: Florian Westphal Tested-by: David Woodhouse Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit ce816eb064c82ab96276969971a561db78e66164 Author: David Woodhouse Date: Wed Sep 16 12:35:00 2015 +0100 solos-pci: Increase headroom on received packets A comment in include/linux/skbuff.h says that: * Various parts of the networking layer expect at least 32 bytes of * headroom, you should not reduce this. This was demonstrated by a panic when handling fragmented IPv6 packets: http://marc.info/?l=linux-netdev&m=144236093519172&w=2 It's not entirely clear if that comment is still valid — and if it is, perhaps netif_rx() ought to be enforcing it with a warning. But either way, it is rather stupid from a performance point of view for us to be receiving packets into a buffer which doesn't have enough room to prepend an Ethernet header — it means that *every* incoming packet is going to be need to be reallocated. So let's fix that. Signed-off-by: David Woodhouse Acked-by: Eric Dumazet Signed-off-by: David S. Miller drivers/atm/solos-pci.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 88c796640eac36209efabe5e42b7b47dee58603e Author: Javier Martinez Canillas Date: Wed Sep 16 11:11:22 2015 +0200 net: ks8851: Export OF module alias information Drivers needs to export the OF id table and this be built into the module or udev won't have the necessary information to autoload the driver module when the device is registered via OF. Signed-off-by: Javier Martinez Canillas Signed-off-by: David S. Miller drivers/net/ethernet/micrel/ks8851.c | 1 + 1 file changed, 1 insertion(+) commit a8f155855842f04273666192d3767fa9b94aaa58 Merge: 8e64a73 28c553d Author: Linus Torvalds Date: Thu Sep 17 21:16:47 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from ANdrew Morton: "8 fixes" * emailed patches from Andrew Morton : revert "mm: make sure all file VMAs have ->vm_ops set" MAINTAINERS: update LTP mailing list userfaultfd: add missing mmput() in error path lib/string_helpers.c: fix infinite loop in string_get_size() alpha: lib: export __delay alpha: io: define ioremap_uc kasan: fix last shadow judgement in memory_is_poisoned_16() zram: fix possible use after free in zcomp_create() commit 28c553d0aa0acf02e18f9e008661491a4b996595 Author: Andrew Morton Date: Thu Sep 17 16:02:00 2015 -0700 revert "mm: make sure all file VMAs have ->vm_ops set" Revert commit 6dc296e7df4c "mm: make sure all file VMAs have ->vm_ops set". Will Deacon reports that it "causes some mmap regressions in LTP, which appears to use a MAP_PRIVATE mmap of /dev/zero as a way to get anonymous pages in some of its tests (specifically mmap10 [1])". William Shuman reports Oracle crashes. So revert the patch while we work out what to do. Reported-by: William Shuman Reported-by: Will Deacon Cc: Kirill A. Shutemov Cc: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 8 -------- 1 file changed, 8 deletions(-) commit 0526109a24eb07984f9e79852767300c8b8144de Author: Cyril Hrubis Date: Thu Sep 17 16:01:57 2015 -0700 MAINTAINERS: update LTP mailing list [akpm@linux-foundation.org: Wanlong Gao has moved] Signed-off-by: Cyril Hrubis Cc: Jan Stancek Cc: Stanislav Kholmanskikh Cc: Alexey Kodanev Cc: Wanlong Gao Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c03e946fdd653c4a23e242aca83da7e9838f5b00 Author: Eric Biggers Date: Thu Sep 17 16:01:54 2015 -0700 userfaultfd: add missing mmput() in error path This fixes a memleak if anon_inode_getfile() fails in userfaultfd(). Signed-off-by: Eric Biggers Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 62bef58a55dfa8ada2a22b2496c6340468ecd98a Author: Vitaly Kuznetsov Date: Thu Sep 17 16:01:51 2015 -0700 lib/string_helpers.c: fix infinite loop in string_get_size() Some string_get_size() calls (e.g.: string_get_size(1, 512, STRING_UNITS_10, ..., ...) string_get_size(15, 64, STRING_UNITS_10, ..., ...) ) result in an infinite loop. The problem is that if size is equal to divisor[units]/blk_size and is smaller than divisor[units] we'll end up with size == 0 when we start doing sf_cap calculations: For string_get_size(1, 512, STRING_UNITS_10, ..., ...) case: ... remainder = do_div(size, divisor[units]); -> size is 0, remainder is 1 remainder *= blk_size; -> remainder is 512 ... size *= blk_size; -> size is still 0 size += remainder / divisor[units]; -> size is still 0 The caller causing the issue is sd_read_capacity(), the problem was noticed on Hyper-V, such weird size was reported by host when scanning collides with device removal. This is probably a separate issue worth fixing, this patch is intended to prevent the library routine from infinite looping. Signed-off-by: Vitaly Kuznetsov Acked-by: James Bottomley Cc: Andy Shevchenko Cc: Rasmus Villemoes Cc: "K. Y. Srinivasan" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/string_helpers.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 14b97deddf8ddecce9f35165b667c55c73e14638 Author: Sudip Mukherjee Date: Thu Sep 17 16:01:49 2015 -0700 alpha: lib: export __delay __delay was not exported as a result while building with allmodconfig we were getting build error of undefined symbol. __delay is being used by: drivers/net/phy/mdio-octeon.c Signed-off-by: Sudip Mukherjee Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Matt Turner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/lib/udelay.c | 1 + 1 file changed, 1 insertion(+) commit 969560d2afca76823cf97ec4f5c0fb7833e18553 Author: Sudip Mukherjee Date: Thu Sep 17 16:01:46 2015 -0700 alpha: io: define ioremap_uc ioremap_uc was not defined and as a result while building with allmodconfig were getting build error of: implicit declaration of function 'ioremap_uc'. Signed-off-by: Sudip Mukherjee Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Matt Turner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/io.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8d77a6d18ae9ccfd5eee1cc551ee4ac27fd41464 Author: Xishi Qiu Date: Thu Sep 17 16:01:43 2015 -0700 kasan: fix last shadow judgement in memory_is_poisoned_16() The shadow which correspond 16 bytes memory may span 2 or 3 bytes. If the memory is aligned on 8, then the shadow takes only 2 bytes. So we check "shadow_first_bytes" is enough, and need not to call "memory_is_poisoned_1(addr + 15);". But the code "if (likely(!last_byte))" is wrong judgement. e.g. addr=0, so last_byte = 15 & KASAN_SHADOW_MASK = 7, then the code will continue to call "memory_is_poisoned_1(addr + 15);" Signed-off-by: Xishi Qiu Acked-by: Andrey Ryabinin Cc: Andrey Konovalov Cc: Rusty Russell Cc: Michal Marek Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kasan/kasan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3aaf14da807a4e9931a37f21e4251abb8a67021b Author: Luis Henriques Date: Thu Sep 17 16:01:40 2015 -0700 zram: fix possible use after free in zcomp_create() zcomp_create() verifies the success of zcomp_strm_{multi,single}_create() through comp->stream, which can potentially be pointing to memory that was freed if these functions returned an error. While at it, replace a 'ERR_PTR(-ENOMEM)' by a more generic 'ERR_PTR(error)' as in the future zcomp_strm_{multi,siggle}_create() could return other error codes. Function documentation updated accordingly. Fixes: beca3ec71fe5 ("zram: add multi stream functionality") Signed-off-by: Luis Henriques Acked-by: Sergey Senozhatsky Acked-by: Minchan Kim Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zcomp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 4671fc6d47e0a0108fe24a4d830347d6a6ef4aa7 Author: Eric Dumazet Date: Tue Sep 15 18:29:47 2015 -0700 net/mlx4_en: really allow to change RSS key When changing rss key, we do not want to overwrite user provided key by the one provided by netdev_rss_key_fill(), which is the host random key generated at boot time. Fixes: 947cbb0ac242 ("net/mlx4_en: Support for configurable RSS hash function") Signed-off-by: Eric Dumazet Cc: Eyal Perry CC: Amir Vadai Acked-by: Or Gerlitz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_rx.c | 2 -- 1 file changed, 2 deletions(-) commit 8a1513b49321e503fd6c8b6793e3b1f9a8a3285b Author: Kyle Evans Date: Fri Sep 11 10:40:17 2015 -0500 hp-wmi: limit hotkey enable Do not write initialize magic on systems that do not have feature query 0xb. Fixes Bug #82451. Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd for code clearity. Add a new test function, hp_wmi_bios_2008_later() & simplify hp_wmi_bios_2009_later(), which fixes a bug in cases where an improper value is returned. Probably also fixes Bug #69131. Add missing __init tag. Signed-off-by: Kyle Evans Cc: stable@vger.kernel.org Signed-off-by: Darren Hart drivers/platform/x86/hp-wmi.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) commit 58189ca7b27411c3dc9a5cb9eeee0906da684c59 Author: David Ahern Date: Tue Sep 15 15:10:50 2015 -0700 net: Fix vti use case with oif in dst lookups Steffen reported that the recent change to add oif to dst lookups breaks the VTI use case. The problem is that with the oif set in the flow struct the comparison to the nh_oif is triggered. Fix by splitting the FLOWI_FLAG_VRFSRC into 2 flags -- one that triggers the vrf device cache bypass (FLOWI_FLAG_VRFSRC) and another telling the lookup to not compare nh oif (FLOWI_FLAG_SKIP_NH_OIF). Fixes: 42a7b32b73d6 ("xfrm: Add oif to dst lookups") Signed-off-by: David Ahern Acked-by: Steffen Klassert Signed-off-by: David S. Miller drivers/net/vrf.c | 3 ++- include/net/flow.h | 1 + include/net/route.h | 2 +- net/ipv4/fib_trie.c | 2 +- net/ipv4/udp.c | 3 ++- net/ipv4/xfrm4_policy.c | 2 ++ 6 files changed, 9 insertions(+), 4 deletions(-) commit d828755eae637c6ca39e30702e98abaf34cac146 Author: Hariprasad Shenai Date: Tue Sep 15 17:20:09 2015 +0530 cxgb4: add device ID for few T5 adapters Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 5 +++++ 1 file changed, 5 insertions(+) commit 2e64126bb0fb581b55e52e51ec451ebb0d6769c8 Author: Phil Sutter Date: Tue Sep 15 10:33:07 2015 +0200 net: qdisc: enhance default_qdisc documentation Aside from some lingual cleanup, point out which interfaces are not or partly covered by this setting. Signed-off-by: Phil Sutter Acked-by: Cong Wang Signed-off-by: David S. Miller Documentation/sysctl/net.txt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 562d897d15a6e2bab3cc9b4c172286b612834fe8 Author: David Ahern Date: Tue Sep 15 10:50:14 2015 -0600 net: Add documentation for VRF device Signed-off-by: David Ahern Signed-off-by: David S. Miller Documentation/networking/vrf.txt | 96 ++++++++++++++++++++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 97 insertions(+) commit cc5706056baa3002b844ff240a1cc2199a978795 Author: Joe Stringer Date: Mon Sep 14 11:14:50 2015 -0700 openvswitch: Fix IPv6 exthdr handling with ct helpers. Static code analysis reveals the following bug: net/openvswitch/conntrack.c:281 ovs_ct_helper() warn: unsigned 'protoff' is never less than zero. This signedness bug breaks error handling for IPv6 extension headers when using conntrack helpers. Fix the error by using a local signed variable. Fixes: cae3a2627520: "openvswitch: Allow attaching helpers to ct action" Reported-by: Dan Carpenter Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/conntrack.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 3ec0c97959abff33a42db9081c22132bcff5b4f2 Author: Kinglong Mee Date: Mon Sep 14 20:12:21 2015 +0800 nfs/filelayout: Fix NULL reference caused by double freeing of fh_array If filelayout_decode_layout fail, _filelayout_free_lseg will causes a double freeing of fh_array. [ 1179.279800] BUG: unable to handle kernel NULL pointer dereference at (null) [ 1179.280198] IP: [] filelayout_free_fh_array.isra.11+0x1d/0x70 [nfs_layout_nfsv41_files] [ 1179.281010] PGD 0 [ 1179.281443] Oops: 0000 [#1] [ 1179.281831] Modules linked in: nfs_layout_nfsv41_files(OE) nfsv4(OE) nfs(OE) fscache(E) xfs libcrc32c coretemp nfsd crct10dif_pclmul ppdev crc32_pclmul crc32c_intel auth_rpcgss ghash_clmulni_intel nfs_acl lockd vmw_balloon grace sunrpc parport_pc vmw_vmci parport shpchp i2c_piix4 vmwgfx drm_kms_helper ttm drm serio_raw mptspi scsi_transport_spi mptscsih e1000 mptbase ata_generic pata_acpi [last unloaded: fscache] [ 1179.283891] CPU: 0 PID: 13336 Comm: cat Tainted: G OE 4.3.0-rc1-pnfs+ #244 [ 1179.284323] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 [ 1179.285206] task: ffff8800501d48c0 ti: ffff88003e3c4000 task.ti: ffff88003e3c4000 [ 1179.285668] RIP: 0010:[] [] filelayout_free_fh_array.isra.11+0x1d/0x70 [nfs_layout_nfsv41_files] [ 1179.286612] RSP: 0018:ffff88003e3c77f8 EFLAGS: 00010202 [ 1179.287092] RAX: 0000000000000000 RBX: ffff88001fe78900 RCX: 0000000000000000 [ 1179.287731] RDX: ffffea0000f40760 RSI: ffff88001fe789c8 RDI: ffff88001fe789c0 [ 1179.288383] RBP: ffff88003e3c7810 R08: ffffea0000f40760 R09: 0000000000000000 [ 1179.289170] R10: 0000000000000000 R11: 0000000000000001 R12: ffff88001fe789c8 [ 1179.289959] R13: ffff88001fe789c0 R14: ffff88004ec05a80 R15: ffff88004f935b88 [ 1179.290791] FS: 00007f4e66bb5700(0000) GS:ffffffff81c29000(0000) knlGS:0000000000000000 [ 1179.291580] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1179.292209] CR2: 0000000000000000 CR3: 00000000203f8000 CR4: 00000000001406f0 [ 1179.292731] Stack: [ 1179.293195] ffff88001fe78900 00000000000000d0 ffff88001fe78178 ffff88003e3c7868 [ 1179.293676] ffffffffa0272737 0000000000000001 0000000000000001 ffff88001fe78800 [ 1179.294151] 00000000614fffce ffffffff81727671 ffff88001fe78100 ffff88001fe78100 [ 1179.294623] Call Trace: [ 1179.295092] [] filelayout_alloc_lseg+0xa7/0x2d0 [nfs_layout_nfsv41_files] [ 1179.295625] [] ? out_of_line_wait_on_bit+0x81/0xb0 [ 1179.296133] [] pnfs_layout_process+0xae/0x320 [nfsv4] [ 1179.296632] [] nfs4_proc_layoutget+0x2b1/0x360 [nfsv4] [ 1179.297134] [] pnfs_update_layout+0x853/0xb30 [nfsv4] [ 1179.297632] [] ? nfs_get_lock_context+0x74/0x170 [nfs] [ 1179.298158] [] filelayout_pg_init_read+0x37/0x50 [nfs_layout_nfsv41_files] [ 1179.298834] [] __nfs_pageio_add_request+0x119/0x460 [nfs] [ 1179.299385] [] ? nfs_create_request.part.9+0x37/0x2e0 [nfs] [ 1179.299872] [] nfs_pageio_add_request+0xa3/0x1b0 [nfs] [ 1179.300362] [] readpage_async_filler+0x85/0x260 [nfs] [ 1179.300907] [] read_cache_pages+0x91/0xd0 [ 1179.301391] [] ? nfs_read_completion+0x220/0x220 [nfs] [ 1179.301867] [] nfs_readpages+0x128/0x200 [nfs] [ 1179.302330] [] __do_page_cache_readahead+0x203/0x280 [ 1179.302784] [] ? __do_page_cache_readahead+0xd8/0x280 [ 1179.303413] [] ondemand_readahead+0x1a6/0x2f0 [ 1179.303855] [] page_cache_sync_readahead+0x31/0x50 [ 1179.304286] [] generic_file_read_iter+0x4a6/0x5c0 [ 1179.304711] [] ? __nfs_revalidate_mapping+0x1f6/0x240 [nfs] [ 1179.305132] [] nfs_file_read+0x52/0xa0 [nfs] [ 1179.305540] [] __vfs_read+0xcc/0x100 [ 1179.305936] [] vfs_read+0x85/0x130 [ 1179.306326] [] SyS_read+0x58/0xd0 [ 1179.306708] [] entry_SYSCALL_64_fastpath+0x12/0x76 [ 1179.307094] Code: c4 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 41 55 41 54 53 8b 07 49 89 f4 85 c0 74 47 48 8b 06 49 89 fd <48> 8b 38 48 85 ff 74 22 31 db eb 0c 48 63 d3 48 8b 3c d0 48 85 [ 1179.308357] RIP [] filelayout_free_fh_array.isra.11+0x1d/0x70 [nfs_layout_nfsv41_files] [ 1179.309177] RSP [ 1179.309582] CR2: 0000000000000000 Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/filelayout/filelayout.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit 0fdea1e8a2853f79d39b8555cc9de16a7e0ab26f Author: Trond Myklebust Date: Wed Sep 16 23:43:17 2015 -0400 SUNRPC: Ensure that we wait for connections to complete before retrying Commit 718ba5b87343, moved the responsibility for unlocking the socket to xs_tcp_setup_socket, meaning that the socket will be unlocked before we know that it has finished trying to connect. The following patch is based on an initial patch by Russell King to ensure that we delay clearing the XPRT_CONNECTING flag until we either know that we failed to initiate a connection attempt, or the connection attempt itself failed. Fixes: 718ba5b87343 ("SUNRPC: Add helpers to prevent socket create from racing") Reported-by: Russell King Reported-by: Russell King Tested-by: Russell King Tested-by: Benjamin Coddington Signed-off-by: Trond Myklebust include/linux/sunrpc/xprtsock.h | 3 +++ net/sunrpc/xprtsock.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) commit 37a1d3611c126fd9782ce5235791f898f053e763 Author: Roopa Prabhu Date: Sun Sep 13 10:18:33 2015 -0700 ipv6: include NLM_F_REPLACE in route replace notifications This patch adds NLM_F_REPLACE flag to ipv6 route replace notifications. This makes nlm_flags in ipv6 replace notifications consistent with ipv4. Signed-off-by: Roopa Prabhu Acked-by: Nicolas Dichtel Reviewed-by: Michal Kubecek Signed-off-by: David S. Miller include/net/ip6_fib.h | 3 ++- net/ipv6/ip6_fib.c | 6 +++--- net/ipv6/route.c | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) commit 74c600e36455af85c593702670f38709ca1951ce Author: Martyn Welch Date: Thu Sep 17 20:38:47 2015 +0100 MAINTAINERS: Update email address for Martyn Welch I have recently left GE and the email address listed for me in the maintainers file is no longer valid. Updating email address. Signed-off-by: Martyn Welch Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17a9618e984234fda167ea5e07eae6f4f2ea2186 Author: Julia Lawall Date: Sun Sep 13 14:15:07 2015 +0200 SUNRPC: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); // Signed-off-by: Julia Lawall Signed-off-by: Trond Myklebust net/sunrpc/sched.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 306a5549355966e480e0dcacdc6b9321d153e0c0 Author: J. Bruce Fields Date: Wed Sep 16 17:21:27 2015 -0400 nfs: fix v4.2 SEEK on files over 2 gigs We're incorrectly assigning a loff_t return to an int. If SEEK_HOLE or SEEK_DATA returns an offset over 2^31 then the application will see a weird lseek() result (usually -EIO). Cc: stable@vger.kernel.org Fixes: bdcc2cd14e4e "NFSv4.2: handle NFS-specific llseek errors" Signed-off-by: J. Bruce Fields Reviewed-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/nfs42proc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 03c78827db35be20ffa71cb5ccd2cedb192f95d6 Author: Trond Myklebust Date: Thu Sep 17 10:42:27 2015 -0400 SUNRPC: Fix races between socket connection and destroy code When we're destroying the socket transport, we need to ensure that we cancel any existing delayed connection attempts, and order them w.r.t. the call to xs_close(). Reported-by:"Suzuki K. Poulose" Acked-by: Jeff Layton Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 3 +++ 1 file changed, 3 insertions(+) commit 048883e0b934d9a5103d40e209cb14b7f33d2933 Author: Peng Tao Date: Fri Sep 11 11:14:06 2015 +0800 nfs: fix pg_test page count calculation We really want sizeof(struct page *) instead. Otherwise we limit maximum IO size to 64 pages rather than 512 pages on a 64bit system. Fixes 2e11f829(nfs: cap request size to fit a kmalloced page array). Cc: Christoph Hellwig Signed-off-by: Peng Tao Fixes: 2e11f8296d22 ("nfs: cap request size to fit a kmalloced page array") Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a41cbe86df3afbc82311a1640e20858c0cd7e065 Author: Olga Kornievskaia Date: Mon Sep 14 19:54:36 2015 -0400 Failing to send a CLOSE if file is opened WRONLY and server reboots on a 4.x mount A test case is as the description says: open(foobar, O_WRONLY); sleep() --> reboot the server close(foobar) The bug is because in nfs4state.c in nfs4_reclaim_open_state() a few line before going to restart, there is clear_bit(NFS4CLNT_RECLAIM_NOGRACE, &state->flags). NFS4CLNT_RECLAIM_NOGRACE is a flag for the client states not open owner states. Value of NFS4CLNT_RECLAIM_NOGRACE is 4 which is the value of NFS_O_WRONLY_STATE in nfs4_state->flags. So clearing it wipes out state and when we go to close it, “call_close” doesn’t get set as state flag is not set and CLOSE doesn’t go on the wire. Signed-off-by: Olga Kornievskaia Signed-off-by: Trond Myklebust fs/nfs/nfs4state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8aa33a7114704f3f5a359893a8e1de9ea2940a5 Author: David Daney Date: Wed Sep 9 15:57:59 2015 -0700 of_pci_irq: Silence bogus "of_irq_parse_pci() failed ..." messages. It is perfectly legitimate for a PCI device to have an PCI_INTERRUPT_PIN value of zero. This happens if the device doesn't use interrupts, or on PCIe devices, where only MSI/MSI-X are supported. Silence the annoying "of_irq_parse_pci() failed with rc=-19" error messages by moving the printing code into of_irq_parse_pci(), and only emitting the message for cases where PCI_INTERRUPT_PIN == 0 is not the cause for an early exit. Signed-off-by: David Daney Signed-off-by: Rob Herring drivers/of/of_pci_irq.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 31b47ae3f18b31d86f553198e624b3b38f6397a2 Author: Hans de Goede Date: Sat Sep 12 12:52:49 2015 +0200 devicetree: bindings: Extend the bma180 bindings with bma250 info The bma180 / bma250 accelerometers share a driver (at least under Linux), so it makes sense to also have their bindings info in a single .txt. This commit extends the bma180 bindings with bma250 bindings, specifically it specifies how the 2 seperate interrupts the bma250 has must be listed in devicetree. The existing bma180 driver is already fully compatible with the specified bindings. Signed-off-by: Hans de Goede Signed-off-by: Rob Herring Documentation/devicetree/bindings/iio/accel/bma180.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 9fa04fbeb78eab6f3817e444644348c46c7e2370 Author: Punit Agrawal Date: Tue Sep 8 12:20:49 2015 +0100 of: thermal: Mark cooling-*-level properties optional The cooling-{min,max}-level properties are marked as optional in Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt and the usage in various device tree matches this, i.e., some cooling device in the device trees provide these properties while others do not. Make the bindings in Documentation/devicetree/bindings/thermal/thermal.txt consistent with the cpufreq-dt bindings by marking the cooling-*-level properties as optional. Signed-off-by: Punit Agrawal Cc: Eduardo Valentin Cc: Rob Herring Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Signed-off-by: Rob Herring Documentation/devicetree/bindings/thermal/thermal.txt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit eb168b70dea54578a45119fcdb3b48ad5d75fed9 Author: Punit Agrawal Date: Tue Sep 8 12:20:48 2015 +0100 of: thermal: Fix inconsitency between cooling-*-state and cooling-*-level The device trees in the kernel as well as the binding description in Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt use the cooling-{min,max}-level property. Fix the inconsistency with the binding description in Documentation/devicetree/bindings/thermal/thermal.txt by changing cooling-*-state properties to cooling-*-level. Signed-off-by: Punit Agrawal Cc: Eduardo Valentin Cc: Rob Herring Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Signed-off-by: Rob Herring Documentation/devicetree/bindings/thermal/thermal.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit dc4dae00d82fedcd7a632f786f9f76c1f7f929a5 Author: Mark Rutland Date: Mon Sep 7 10:49:03 2015 +0100 Docs: dt: add #msi-cells to GICv3 ITS binding The GICv3 ITS uses sideband master identification data (known as a DeviceID) to identify which master wrote to a doorbell, and this data is used to determine how to react in response to the write. Commit 1e6db000482fa65a ("irqchip/gicv3-its: Add platform MSI support") added support per this binding, but failed to update the documentation. This patch fixes the documentation. Signed-off-by: Mark Rutland Acked-by: Marc Zyngier Cc: Rob Herring Signed-off-by: Rob Herring Documentation/devicetree/bindings/arm/gic-v3.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 8e64a7331702b7888ccf84b2b9ff46ab8e167c7f Merge: 2e5735f 335c258 Author: Linus Torvalds Date: Thu Sep 17 12:32:40 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph fixes from Sage Weil: "These are both fixes to the new and improved keepalive2 behavior" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: libceph: advertise support for keepalive2 libceph: don't access invalid memory in keepalive2 path commit 2e5735f4c377377cb738270024083f74ee058877 Merge: d109c4b e11fc21 Author: Linus Torvalds Date: Thu Sep 17 12:25:42 2015 -0700 Merge tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply fixes from Sebastian Reichel: "twl4030-charger fixes" * tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: twl4030_charger: fix another compile error Revert "twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node" commit d7ba2a024cf19261b34825f89d30ceef9a5ff864 Author: Masahiro Yamada Date: Wed Jul 29 18:45:33 2015 +0900 of: add vendor prefix for Socionext Inc. Signed-off-by: Masahiro Yamada Signed-off-by: Rob Herring Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit d34e210ed3a28050441f15228fd5ed929028d9cd Author: Gabriel Fernandez Date: Wed Sep 16 09:42:59 2015 +0200 drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x Use a generic name for this kind of PLL Correction in dts files are already done here: commit 5eb26c605909 ("ARM: STi: DT: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x") Signed-off-by: Gabriel Fernandez Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-fsyn.c | 8 ++++---- drivers/clk/st/clkgen-pll.c | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) commit bf6445631c6f00882b25516a174d5073ce0c6f81 Author: Peter Senna Tschudin Date: Thu Sep 17 12:08:53 2015 +0200 perf tools: Bool functions shouldn't return -1 Returning a negative value for a boolean function seem to have the undesired effect of returning true. Replace -1 by false in a bool-returning function. The diff of the .s file before and after the change (for x86_64): 3907c3907 < movl $1, %ebx --- > xorl %ebx, %ebx while if -1 is replaced by true, the diff is empty. This issue was found by the following Coccinelle semantic patch: @@ identifier f; constant C; typedef bool; @@ bool f (...){ <+... * return -C; ...+> } Signed-off-by: Peter Senna Tschudin Cc: Jiri Olsa Cc: Kan Liang Cc: Matt Fleming Cc: Milos Vyletel Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Steven Rostedt Link: http://lkml.kernel.org/r/1442484533-19742-1-git-send-email-peter.senna@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d109c4bb4513b8a63d56117f683901492093bfa9 Merge: 42dc2a3 df057cc Author: Linus Torvalds Date: Thu Sep 17 11:28:17 2015 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "This addresses some problems with filesystem writeback due to the recently merged hardware DBM patches, which caused us to treat some read-only pages as dirty. There are also some other, less significant fixes that are described in the summary below: A mixture of fixes for regressions introduced during the merge window, some longer standing problems that we spotted and a couple of hardware errata. The main changes are: - Fix fallout from the h/w DBM patches, causing filesystem writeback issues on both v8 and v8.1 CPUs - Workaround for Cortex-A53 erratum #843419 in the module loader - Fix for long-standing issue with compat big-endian signal handlers using the saved floating point state" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: errata: add module build workaround for erratum #843419 arm64: compat: fix vfp save/restore across signal handlers in big-endian arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers arm64: head.S: initialise mdcr_el2 in el2_setup arm64: enable generic idle loop arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM arm64: Fix pte_modify() to preserve the hardware dirty information arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled arm64: dma-mapping: check whether cma area is initialized or not commit 42dc2a3048247109b0a5ee6345226cbd3e4f6410 Merge: 1345df2 03da3ff Author: Linus Torvalds Date: Thu Sep 17 11:01:34 2015 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: - misc fixes all around the map - block non-root vm86(old) if mmap_min_addr != 0 - two small debuggability improvements - removal of obsolete paravirt op * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/platform: Fix Geode LX timekeeping in the generic x86 build x86/apic: Serialize LVTT and TSC_DEADLINE writes x86/ioapic: Force affinity setting in setup_ioapic_dest() x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method x86/ldt: Fix small LDT allocation for Xen x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text x86/cpu: Print family/model/stepping in hex x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0 x86/alternatives: Make optimize_nops() interrupt safe and synced x86/mm/srat: Print non-volatile flag in SRAT x86/cpufeatures: Enable cpuid for Intel SHA extensions commit 1345df21ac542daa9d8613f89a3f0b5f32d636f8 Merge: c2ea72f eef7635 Author: Linus Torvalds Date: Thu Sep 17 10:55:25 2015 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Ingo Molnar: "A fix for an abs()/abs64() bug that caused too slow NTP convergence on 32-bit kernels, plus a removal of an obsolete clockevents driver facility after all users got converted during the merge window" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clockevents: Remove unused set_mode() callback time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of abs64() commit c2ea72fd869145130969d6b07273c479cf2a22f5 Merge: a706797 5473e0c Author: Linus Torvalds Date: Thu Sep 17 10:49:42 2015 -0700 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fixes from Ingo Molnar: "A migrate_tasks() locking fix, and a late-coming nohz change plus a nohz debug check" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched: 'Annotate' migrate_tasks() nohz: Assert existing housekeepers when nohz full enabled nohz: Affine unpinned timers to housekeepers commit 23c3f310e897837aeb8ffe8700b803cb58e7b35d Author: Charles Keepax Date: Thu Sep 17 14:50:20 2015 +0100 regulator: core: Correct return value check in regulator_resolve_supply The ret pointer passed to regulator_dev_lookup is only filled with a valid error code if regulator_dev_lookup returned NULL. Currently regulator_resolve_supply checks this ret value before it checks if a regulator was returned, this can result in valid regulator lookups being ignored. Fixes: 6261b06de565 ("regulator: Defer lookup of supply to regulator_get") Signed-off-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/regulator/core.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit a706797febf4ff60ad61f855a01707be9fc3cf4c Merge: 9786cff f6cf87f Author: Linus Torvalds Date: Thu Sep 17 10:37:46 2015 -0700 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Ingo MOlnar: "Mostly tooling fixes, but also two x86 PMU driver fixes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tests: Fix software clock events test setting maps perf tests: Fix task exit test setting maps perf evlist: Fix create_syswide_maps() not propagating maps perf evlist: Fix add() not propagating maps perf evlist: Factor out a function to propagate maps for a single evsel perf evlist: Make create_maps() use set_maps() perf evlist: Make set_maps() more resilient perf evsel: Add own_cpus member perf evlist: Fix missing thread_map__put in propagate_maps() perf evlist: Fix splice_list_tail() not setting evlist perf evlist: Add has_user_cpus member perf evlist: Remove redundant validation from propagate_maps() perf evlist: Simplify set_maps() logic perf evlist: Simplify propagate_maps() logic perf top: Fix segfault pressing -> with no hist entries perf header: Fixup reading of HEADER_NRCPUS feature perf/x86/intel: Fix constraint access perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match the new logic perf tools: Fix use of wrong event when processing exit events perf tools: Fix parse_events_add_pmu caller commit 335c25858218e76ef47f92ecb9d22e919d36140d Author: Ilya Dryomov Date: Mon Sep 14 12:44:22 2015 +0300 libceph: advertise support for keepalive2 We are the client, but advertise keepalive2 anyway - for consistency, if nothing else. In the future the server might want to know whether its clients support keepalive2. Signed-off-by: Ilya Dryomov Reviewed-by: Yan, Zheng include/linux/ceph/ceph_features.h | 1 + 1 file changed, 1 insertion(+) commit 7f61f545657281a3a1b0faf68993165ebdecc51b Author: Ilya Dryomov Date: Mon Sep 14 16:01:05 2015 +0300 libceph: don't access invalid memory in keepalive2 path This struct ceph_timespec ceph_ts; ... con_out_kvec_add(con, sizeof(ceph_ts), &ceph_ts); wraps ceph_ts into a kvec and adds it to con->out_kvec array, yet ceph_ts becomes invalid on return from prepare_write_keepalive(). As a result, we send out bogus keepalive2 stamps. Fix this by encoding into a ceph_timespec member, similar to how acks are read and written. Signed-off-by: Ilya Dryomov Reviewed-by: Yan, Zheng include/linux/ceph/messenger.h | 4 +++- net/ceph/messenger.c | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) commit 74a093918b2296bed7136a7830821d45d3d5cb1a Merge: aa1471a 19ab6bc Author: Greg Kroah-Hartman Date: Thu Sep 17 09:39:39 2015 -0700 Merge tag 'usb-serial-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for v4.3-rc2 Just some new ZTE device IDs. Signed-off-by: Johan Hovold commit b0063dbfb031a7c728ed0d9533257e8329292cf1 Author: Arnaldo Carvalho de Melo Date: Thu Sep 17 12:54:30 2015 -0300 tools build: Add test for presence of __get_cpuid() gcc builtin The auxtrace code needed by Intel PT uses the __get_cpuid() gcc builtin, that is not present in old systems, breaking the build. Add a test to check for that builtin and disable AUXTRACE in those systems. [acme@rhel5 linux]$ make NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf install-bin make: Entering directory `/home/acme/git/linux/tools/perf' BUILD: Doing 'make -j2' parallel build Auto-detecting system features: ... lzma: [ on ] ... get_cpuid: [ OFF ] config/Makefile:630: Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc MKDIR /tmp/build/perf/util/ This fixes the build on old systems such as RHEL/CentOS 5.11. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: "Naveen N. Rao" Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Stephane Eranian Cc: Victor Kamensky Cc: Vinson Lee Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-d4puslul0jltoodzpx9r4sje@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 6 ++++-- tools/build/feature/Makefile | 6 +++++- tools/build/feature/test-all.c | 5 +++++ tools/build/feature/test-get_cpuid.c | 7 +++++++ tools/perf/config/Makefile | 9 +++++++-- 5 files changed, 28 insertions(+), 5 deletions(-) commit f8ac8606fd3cd72183de8eec2b151ff05040c70f Author: Arnaldo Carvalho de Melo Date: Thu Sep 17 12:20:28 2015 -0300 tools build: Add test for presence of numa_num_possible_cpus() in libnuma The existing numa test checks only if numa.h and numa_available() are present, but that can be satisfied with an old libnuma that is not enough for the 'perf bench numa' entry, so add a test to check for that: [acme@rhel5 linux]$ make NO_AUXTRACE=1 NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf install-bin make: Entering directory `/home/acme/git/linux/tools/perf' BUILD: Doing 'make -j2' parallel build Auto-detecting system features: ... libelf: [ on ] ... libnuma: [ on ] ... numa_num_possible_cpus: [ OFF ] ... libperl: [ on ] config/Makefile:577: Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8 INSTALL binaries This fixes the build on old systems such as RHEL/CentOS 5.11. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: "Naveen N. Rao" Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Stephane Eranian Cc: Victor Kamensky Cc: Vinson Lee Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-zqriqkezppi2de2iyjin1tnc@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.feature | 2 ++ tools/build/feature/Makefile | 4 ++++ tools/build/feature/test-all.c | 5 +++++ tools/build/feature/test-numa_num_possible_cpus.c | 6 ++++++ tools/perf/config/Makefile | 11 ++++++++--- 5 files changed, 25 insertions(+), 3 deletions(-) commit 179f36dde3cec0f9f05a757b68f6a58e4edbcc95 Author: Arnaldo Carvalho de Melo Date: Thu Sep 17 11:30:20 2015 -0300 Revert "perf symbols: Fix mismatched declarations for elf_getphdrnum" This reverts commit f785f2357673d520a0b7b468973cdd197f336494. We have a test to check if elf_getphdrnum() is present, so, if it fails, we'll get: [acme@rhel5 linux]$ cat /tmp/build/perf/feature/test-libelf-getphdrnum.make.output cc1: warnings being treated as errors test-libelf-getphdrnum.c: In function ‘main’: test-libelf-getphdrnum.c:7: warning: implicit declaration of function ‘elf_getphdrnum’ [acme@rhel5 linux]$ And this block will not be compiled: #ifndef HAVE_ELF_GETPHDRNUM_SUPPORT static int elf_getphdrnum(Elf *elf, size_t *dst) ... #endif So, if elf_getphdrnum() is being defined somewhere, there is a problem with the test that is not detecting that function, go fix it. Reported-by: Vinson Lee Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: "Naveen N. Rao" Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Stephane Eranian Cc: Victor Kamensky Cc: Wang Nan Link: http://lkml.kernel.org/n/tip-qn459fal6acvcvm50i8zxx9k@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 994518799930fc363d47cb7cf0d1abed1790bf16 Author: Ming Lei Date: Fri Sep 18 00:06:28 2015 +0800 block: fix bounce_end_io When bio bounce is involved, one new bio and its biovecs are cloned from the comming bio, which can be one fast-cloned bio from upper layer(such as dm). So it is obviously wrong to assume the start index of the coming( original) bio's io vector is zero, which can be any value between 0 and (bi_max_vecs - 1), especially in case of bio split. This patch fixes Fedora's booting oops on i386, often with the following kernel log together: > [ 9.026738] systemd[1]: Switching root. > [ 9.036467] systemd-journald[149]: Received SIGTERM from PID 1 > (systemd). > [ 9.082262] BUG: Bad page state in process kworker/u5:1 pfn:372ac > [ 9.083989] page:f3d32ae0 count:0 mapcount:0 mapping:f2252178 > index:0x16a > [ 9.085755] flags: 0x40020021(locked|lru|mappedtodisk) > [ 9.087284] page dumped because: page still charged to cgroup > [ 9.088772] bad because of flags: > [ 9.089731] flags: 0x21(locked|lru) > [ 9.090818] page->mem_cgroup:f2c3e400 Reported-by: Josh Boyer Tested-by: Adam Williamson Cc: Ming Lin Cc: Mike Snitzer Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/bounce.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 52cc6eead9095e2faf2ec7afc013aa3af1f01ac5 Author: Ming Lei Date: Thu Sep 17 09:58:38 2015 -0600 block: blk-merge: fast-clone bio when splitting rw bios biovecs has become immutable since v3.13, so it isn't necessary to allocate biovecs for the new cloned bios, then we can save one extra biovecs allocation/copy, and the allocation is often not fixed-length and a bit more expensive. For example, if the 'max_sectors_kb' of null blk's queue is set as 16(32 sectors) via sysfs just for making more splits, this patch can increase throught about ~70% in the sequential read test over null_blk(direct io, bs: 1M). Cc: Christoph Hellwig Cc: Kent Overstreet Cc: Ming Lin Cc: Dongsu Park Signed-off-by: Ming Lei This fixes a performance regression introduced by commit 54efd50bfd, and allows us to take full advantage of the fact that we have immutable bio_vecs. Hand applied, as it rejected violently with commit 5014c311baa2. Signed-off-by: Jens Axboe block/blk-merge.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) commit ba8fe0f85e15d047686caf8a42463b592c63c98c Author: Ross Zwisler Date: Wed Sep 16 14:52:21 2015 -0600 pmem: add proper fencing to pmem_rw_page() pmem_rw_page() needs to call wmb_pmem() on writes to make sure that the newly written data is durable. This flow was added to pmem_rw_bytes() and pmem_make_request() with this commit: commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of persistent memory updates") ...the pmem_rw_page() path was missed. Cc: Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 2 ++ 1 file changed, 2 insertions(+) commit 4ca8b57a0af145f4e791f21dbca6ad789da9ee8b Author: Axel Lin Date: Wed Sep 16 21:25:38 2015 +0800 libnvdimm: pfn_devs: Fix locking in namespace_store Always take device_lock() before nvdimm_bus_lock() to prevent deadlock. Signed-off-by: Axel Lin Signed-off-by: Dan Williams drivers/nvdimm/pfn_devs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9786cff38a31c452e32fd2f9a479dd7d19d91712 Merge: 1b3dfde 1975dbc Author: Linus Torvalds Date: Thu Sep 17 08:45:23 2015 -0700 Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking fixes from Ingo Molnar: "Spinlock performance regression fix, plus documentation fixes" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/static_keys: Fix up the static keys documentation locking/qspinlock/x86: Only emit the test-and-set fallback when building guest support locking/qspinlock/x86: Fix performance regression under unaccelerated VMs locking/static_keys: Fix a silly typo commit 1b3dfde386b7c72b8f5430dc40eee538eb40c948 Merge: 7271484 31409c9 Author: Linus Torvalds Date: Thu Sep 17 08:44:27 2015 -0700 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RCU fix from Ingo Molnar: "Fix a false positive warning" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition commit 4be9c1fc3df9c3b03c9bde8aec5e44fc73996a3f Author: Axel Lin Date: Wed Sep 16 21:24:47 2015 +0800 libnvdimm: btt_devs: Fix locking in namespace_store Always take device_lock() before nvdimm_bus_lock() to prevent deadlock. Cc: Signed-off-by: Axel Lin Signed-off-by: Dan Williams drivers/nvdimm/btt_devs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit efe4d36a75d4dfd1a9c161b2bbf9b90beb4d9648 Merge: 9bf9fde ef74891 Author: Paolo Bonzini Date: Thu Sep 17 16:51:59 2015 +0200 Merge tag 'kvm-arm-for-4.3-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master Second set of KVM/ARM changes for 4.3-rc2 - Workaround for a Cortex-A57 erratum - Bug fix for the debugging infrastructure - Fix for 32bit guests with more than 4GB of address space on a 32bit host - A number of fixes for the (unusual) case when we don't use the in-kernel GIC emulation - Removal of ThumbEE handling on arm64, since these have been dropped from the architecture before anyone actually ever built a CPU - Remove the KVM_ARM_MAX_VCPUS limitation which has become fairly pointless commit 52f5664a87474894e7da44f3b778dbe4e4c740b7 Author: Ariel Nahum Date: Thu Sep 3 19:49:55 2015 +0300 libiscsi: Fix iscsi_check_transport_timeouts possible infinite loop Connection last_ping is not being updated when iscsi_send_nopout fails. Not updating the last_ping will cause firing a timer to a past time (last_ping + ping_tmo < current_time) which triggers an infinite loop of iscsi_check_transport_timeouts() and hogs the cpu. Fix this issue by checking the return value of iscsi_send_nopout. If it fails set the next_timeout to one second later. Signed-off-by: Ariel Nahum Signed-off-by: Sagi Grimberg Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/libiscsi.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 590f07874e8e3c83729b919312c65aea2533c8cf Author: Junichi Nomura Date: Mon Sep 14 07:38:36 2015 +0000 x86/pci/dma: Fix gfp flags for coherent DMA memory allocation Commit 6894258eda2f reversed the order of gfp_flags adjustment in dma_alloc_attrs() for x86 [arch/x86/kernel/pci-dma.c] As a result, relevant flags set by dma_alloc_coherent_gfp_flags() are just discarded and cause coherent DMA memory allocation failure on some devices. Fixes: 6894258eda2f ("dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent}") Signed-off-by: Jun'ichi Nomura Tested-by: Tony Luck Acked-by: Christoph Hellwig Link: http://lkml.kernel.org/r/20150914073834.GA13077@xzibit.linux.bs1.fc.nec.co.jp Signed-off-by: Thomas Gleixner arch/x86/kernel/pci-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6fa92e2bcf6390e64895b12761e851c452d87bd8 Author: Shawn Lin Date: Wed Sep 9 15:41:52 2015 +0800 staging: ion: fix corruption of ion_import_dma_buf we found this issue but still exit in lastest kernel. Simply keep ion_handle_create under mutex_lock to avoid this race. WARNING: CPU: 2 PID: 2648 at drivers/staging/android/ion/ion.c:512 ion_handle_add+0xb4/0xc0() ion_handle_add: buffer already found. Modules linked in: iwlmvm iwlwifi mac80211 cfg80211 compat CPU: 2 PID: 2648 Comm: TimedEventQueue Tainted: G W 3.14.0 #7 00000000 00000000 9a3efd2c 80faf273 9a3efd6c 9a3efd5c 80935dc9 811d7fd3 9a3efd88 00000a58 812208a0 00000200 80e128d4 80e128d4 8d4ae00c a8cd8600 a8cd8094 9a3efd74 80935e0e 00000009 9a3efd6c 811d7fd3 9a3efd88 9a3efd9c Call Trace: [<80faf273>] dump_stack+0x48/0x69 [<80935dc9>] warn_slowpath_common+0x79/0x90 [<80e128d4>] ? ion_handle_add+0xb4/0xc0 [<80e128d4>] ? ion_handle_add+0xb4/0xc0 [<80935e0e>] warn_slowpath_fmt+0x2e/0x30 [<80e128d4>] ion_handle_add+0xb4/0xc0 [<80e144cc>] ion_import_dma_buf+0x8c/0x110 [<80c517c4>] reg_init+0x364/0x7d0 [<80993363>] ? futex_wait+0x123/0x210 [<80992e0e>] ? get_futex_key+0x16e/0x1e0 [<8099308f>] ? futex_wake+0x5f/0x120 [<80c51e19>] vpu_service_ioctl+0x1e9/0x500 [<80994aec>] ? do_futex+0xec/0x8e0 [<80971080>] ? prepare_to_wait_event+0xc0/0xc0 [<80c51c30>] ? reg_init+0x7d0/0x7d0 [<80a22562>] do_vfs_ioctl+0x2d2/0x4c0 [<80b198ad>] ? inode_has_perm.isra.41+0x2d/0x40 [<80b199cf>] ? file_has_perm+0x7f/0x90 [<80b1a5f7>] ? selinux_file_ioctl+0x47/0xf0 [<80a227a8>] SyS_ioctl+0x58/0x80 [<80fb45e8>] syscall_call+0x7/0x7 [<80fb0000>] ? mmc_do_calc_max_discard+0xab/0xe4 Fixes: 83271f626 ("ion: hold reference to handle...") Signed-off-by: Shawn Lin Reviewed-by: Laura Abbott Cc: stable # 3.14+ Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 989e503c929d82f34a3cae51e98cbc2745e7472c Author: Mark Hounschell Date: Tue Sep 15 08:56:10 2015 -0400 staging: dgap: Remove myself from the MAINTAINERS file Removes myself from the MAINTAINERS file for the dgap driver. There appears to be no way to get the firmware files required by the dgap driver into the linux-firmware tree. The dgap driver is useless wihtout this firmware. This product is considered an obsolete product by Digi. They will not respond to an inquiry concerning it or its firmware. Signed-off-by: Mark Hounschell Cc: Greg Kroah-Hartman Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 981473c74c0930190aa4651efebb9bb1f784416e Author: Christian Gromm Date: Wed Sep 16 17:33:35 2015 +0200 staging: most: Add dependency to HAS_IOMEM This patch prevents the module hdm_dim2 from breaking the build in case HAS_IOMEM is not configured. Reported-by: Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/Kconfig | 1 + 1 file changed, 1 insertion(+) commit f5ab93fa5e79bacd83f0866ad5c3950eee279b66 Author: Sudip Mukherjee Date: Wed Sep 16 22:16:38 2015 +0530 staging: unisys: remove reference of visorutil commit 53490b545cb0 ("staging: unisys: move periodic_work.c into the visorbus directory") has removed the visorutil directory but missed removing the reference in the Makefile. Fixes: 53490b545cb0 ("staging: unisys: move periodic_work.c into the visorbus directory") Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/Makefile | 1 - 1 file changed, 1 deletion(-) commit 2110d70c5e58326a10e93cfefdc0b3686e2ada12 Author: Borislav Petkov Date: Sat Aug 8 10:46:02 2015 +0200 cpu/cacheinfo: Fix teardown path Philip Müller reported a hang when booting 32-bit 4.1 kernel on an AMD box. A fragment of the splat was enough to pinpoint the issue: task: f58e0000 ti: f58e8000 task.ti: f58e800 EIP: 0060:[] EFLAGS: 00010206 CPU: 0 EIP is at free_cache_attributes+0x83/0xd0 EAX: 00000001 EBX: f589d46c ECX: 00000090 EDX: 360c2000 ESI: 00000000 EDI: c1724a80 EBP: f58e9ec0 ESP: f58e9ea0 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 CR0: 8005003b CR2: 000000ac CR3: 01731000 CR4: 000006d0 cache_shared_cpu_map_setup() did check sibling CPUs cacheinfo descriptor while the respective teardown path cache_shared_cpu_map_remove() didn't. Fix that. >From tglx's version: to be on the safe side, move the cacheinfo descriptor check to free_cache_attributes(), thus cleaning up the hotplug path a little and making this even more robust. Reported-and-tested-by: Philip Müller Reviewed-by: Thomas Gleixner Acked-by: Sudeep Holla Cc: # 4.1 Cc: Andre Przywara Cc: Guenter Roeck Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: linux-kernel@vger.kernel.org Cc: manjaro-dev@manjaro.org Cc: Philip Müller Link: https://lkml.kernel.org/r/55B47BB8.6080202@manjaro.org Signed-off-by: Borislav Petkov Signed-off-by: Greg Kroah-Hartman drivers/base/cacheinfo.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit ef748917b529847277f07c98c55e1c0ce416449f Author: Ming Lei Date: Wed Sep 2 14:31:21 2015 +0800 arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS' This patch removes config option of KVM_ARM_MAX_VCPUS, and like other ARCHs, just choose the maximum allowed value from hardware, and follows the reasons: 1) from distribution view, the option has to be defined as the max allowed value because it need to meet all kinds of virtulization applications and need to support most of SoCs; 2) using a bigger value doesn't introduce extra memory consumption, and the help text in Kconfig isn't accurate because kvm_vpu structure isn't allocated until request of creating VCPU is sent from QEMU; 3) the main effect is that the field of vcpus[] in 'struct kvm' becomes a bit bigger(sizeof(void *) per vcpu) and need more cache lines to hold the structure, but 'struct kvm' is one generic struct, and it has worked well on other ARCHs already in this way. Also, the world switch frequecy is often low, for example, it is ~2000 when running kernel building load in VM from APM xgene KVM host, so the effect is very small, and the difference can't be observed in my test at all. Cc: Dann Frazier Signed-off-by: Ming Lei Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/include/asm/kvm_host.h | 8 ++------ arch/arm/kvm/Kconfig | 11 ----------- arch/arm64/include/asm/kvm_host.h | 8 ++------ arch/arm64/kvm/Kconfig | 11 ----------- include/kvm/arm_vgic.h | 6 +----- virt/kvm/arm/vgic-v3.c | 2 +- 6 files changed, 6 insertions(+), 40 deletions(-) commit 34c3faa353db8f5d3ce9966cf854d5643c64c4db Author: Will Deacon Date: Tue Sep 15 17:15:33 2015 +0100 arm64: KVM: Remove all traces of the ThumbEE registers Although the ThumbEE registers and traps were present in earlier versions of the v8 architecture, it was retrospectively removed and so we can do the same. Whilst this breaks migrating a guest started on a previous version of the kernel, it is much better to kill these (non existent) registers as soon as possible. Reviewed-by: Marc Zyngier Signed-off-by: Will Deacon [maz: added commend about migration] Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_arm.h | 1 - arch/arm64/include/asm/kvm_asm.h | 4 +--- arch/arm64/kvm/hyp.S | 22 ++++------------------ arch/arm64/kvm/sys_regs.c | 7 ------- 4 files changed, 5 insertions(+), 29 deletions(-) commit 688bc577ac42ae3d07c889a1f0a72f0b23763d58 Author: Marc Zyngier Date: Wed Sep 16 16:18:59 2015 +0100 arm: KVM: Disable virtual timer even if the guest is not using it When running a guest with the architected timer disabled (with QEMU and the kernel_irqchip=off option, for example), it is important to make sure the timer gets turned off. Otherwise, the guest may try to enable it anyway, leading to a screaming HW interrupt. The fix is to unconditionally turn off the virtual timer on guest exit. Cc: stable@vger.kernel.org Signed-off-by: Marc Zyngier arch/arm/kvm/interrupts_head.S | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit c4cbba9fa078f55d9f6d081dbb4aec7cf969e7c7 Author: Marc Zyngier Date: Wed Sep 16 16:18:59 2015 +0100 arm64: KVM: Disable virtual timer even if the guest is not using it When running a guest with the architected timer disabled (with QEMU and the kernel_irqchip=off option, for example), it is important to make sure the timer gets turned off. Otherwise, the guest may try to enable it anyway, leading to a screaming HW interrupt. The fix is to unconditionally turn off the virtual timer on guest exit. Cc: stable@vger.kernel.org Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 96d4ee8aaa3cfbfadf137904f3696a9a84fab2d3 Author: Mathieu Desnoyers Date: Mon Sep 7 12:15:56 2015 -0400 s390/s390x: allocate sys_membarrier system call number Signed-off-by: Mathieu Desnoyers CC: Andrew Morton CC: linux-api@vger.kernel.org CC: Heiko Carstens CC: linux-s390@vger.kernel.org Signed-off-by: Martin Schwidefsky arch/s390/include/uapi/asm/unistd.h | 3 ++- arch/s390/kernel/syscalls.S | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 3dc636b2dafbf05b86decc2a55989c3261ffd116 Author: Michael Holzheu Date: Tue Sep 15 18:09:20 2015 +0200 s390/configs//zfcpdump_defconfig: Remove CONFIG_MEMSTICK This config option is completely irrelevant for zfcpdump and unfortunately causes a kernel panic on recent kernels in "mspro_block_init()/driver_register()". Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/configs/zfcpdump_defconfig | 5 ----- 1 file changed, 5 deletions(-) commit 022435713c0391020b55706c5b80fa1be44ba321 Author: Heiko Carstens Date: Wed Sep 9 09:39:58 2015 +0200 s390: wire up userfaultfd system call Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/uapi/asm/unistd.h | 3 ++- arch/s390/kernel/syscalls.S | 1 + tools/testing/selftests/vm/userfaultfd.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) commit 61cc37906b45534fcc2bea03c17e135ec010b624 Author: Martin Schwidefsky Date: Thu Sep 10 11:18:20 2015 +0200 s390/vtime: correct scaled cputime for SMT The scaled cputime is supposed to be derived from the normal per-thread cputime by dividing it with the average thread density in the last interval. The calculation of the scaling values for the average thread density is incorrect. The current, incorrect calculation: Ci = cycle count with i active threads T = unscaled cputime, sT = scaled cputime sT = T * (C1 + C2 + ... + Cn) / (1*C1 + 2*C2 + ... + n*Cn) The calculation happens to yield the correct numbers for the simple cases with only one Ci value not zero. But for cases with multiple Ci values not zero it fails. E.g. on a SMT-2 system with one thread active half the time and two threads active for the other half of the time it fails, the scaling factor should be 3/4 but the formula gives 2/3. The correct formula is sT = T * (C1/1 + C2/2 + ... + Cn/n) / (C1 + C2 + ... + Cn) Signed-off-by: Martin Schwidefsky arch/s390/kernel/vtime.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 58f8e9da33eb0104f5bee3e8b3ca44e1583c78b9 Author: Hendrik Brueckner Date: Mon Sep 7 10:52:42 2015 +0200 s390/cpum_cf: Corrected return code for unauthorized counter sets Previously, the cpum_cf PMU returned -EPERM if a counter is requested and the counter set to which the counter belongs is not authorized. According to the perf_event_open() system call manual, an error code of EPERM indicates an unsupported exclude setting or CAP_SYS_ADMIN is missing. Use ENOENT to indicate that particular counters are not available when the counter set which contains the counter is not authorized. For generic events, this might trigger a fall back, for example, to a software event. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/kernel/perf_cpum_cf.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 8d4bd0ed0439dfc780aab801a085961925ed6838 Author: Martin Schwidefsky Date: Tue Sep 8 15:25:39 2015 +0200 s390/compat: correct uc_sigmask of the compat signal frame The uc_sigmask in the ucontext structure is an array of words to keep the 64 signal bits (or 1024 if you ask glibc but the kernel sigset_t only has 64 bits). For 64 bit the sigset_t contains a single 8 byte word, but for 31 bit there are two 4 byte words. The compat signal handler code uses a simple copy of the 64 bit sigset_t to the 31 bit compat_sigset_t. As s390 is a big-endian architecture this is incorrect, the two words in the 31 bit sigset_t array need to be swapped. Cc: Reported-by: Stefan Liebler Signed-off-by: Martin Schwidefsky arch/s390/kernel/compat_signal.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) commit 9380cf5a884e237fc0e2571d5adf0b43bb4412c8 Author: Heiko Carstens Date: Wed Sep 9 13:15:00 2015 +0200 s390: fix floating point register corruption The critical section cleanup code misses to add the offset of the thread_struct to the task address. Therefore, if the critical section code gets executed, it may corrupt the task struct or restore the contents of the floating point registers from the wrong memory location. Fixes d0164ee20d "s390/kernel: remove save_fpu_regs() parameter and use __LC_CURRENT instead". Signed-off-by: Heiko Carstens Reviewed-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/kernel/entry.S | 2 ++ 1 file changed, 2 insertions(+) commit 88d64253785936d75323c74e7126d180e26de560 Author: Martin Schwidefsky Date: Tue Sep 8 13:59:08 2015 +0200 s390/hibernate: fix save and restore of vector registers The swsusp_arch_suspend()/swsusp_arch_resume() functions currently only save and restore the floating point registers. If the task that started the hibernation process is using vector registers they can get lost. To fix this just call save_fpu_regs in swsusp_arch_suspend(), the restore will happen automatically on return to user space. Reported-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/swsusp.S | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) commit ad5001cc7cdf9aaee5eb213fdee657e4a3c94776 Author: Pablo Neira Ayuso Date: Thu Sep 17 13:37:00 2015 +0200 netfilter: nf_log: wait for rcu grace after logger unregistration The nf_log_unregister() function needs to call synchronize_rcu() to make sure that the objects are not dereferenced anymore on module removal. Fixes: 5962815a6a56 ("netfilter: nf_log: use an array of loggers instead of list") Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_log.c | 1 + 1 file changed, 1 insertion(+) commit df057cc7b4fa59e9b55f07ffdb6c62bf02e99a00 Author: Will Deacon Date: Tue Mar 17 12:15:02 2015 +0000 arm64: errata: add module build workaround for erratum #843419 Cortex-A53 processors <= r0p4 are affected by erratum #843419 which can lead to a memory access using an incorrect address in certain sequences headed by an ADRP instruction. There is a linker fix to generate veneers for ADRP instructions, but this doesn't work for kernel modules which are built as unlinked ELF objects. This patch adds a new config option for the erratum which, when enabled, builds kernel modules with the mcmodel=large flag. This uses absolute addressing for all kernel symbols, thereby removing the use of ADRP as a PC-relative form of addressing. The ADRP relocs are removed from the module loader so that we fail to load any potentially affected modules. Cc: Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/Kconfig | 16 ++++++++++++++++ arch/arm64/Makefile | 4 ++++ arch/arm64/kernel/module.c | 2 ++ 3 files changed, 22 insertions(+) commit bdec97a855ef1e239f130f7a11584721c9a1bf04 Author: Will Deacon Date: Tue Sep 15 12:07:06 2015 +0100 arm64: compat: fix vfp save/restore across signal handlers in big-endian When saving/restoring the VFP registers from a compat (AArch32) signal frame, we rely on the compat registers forming a prefix of the native register file and therefore make use of copy_{to,from}_user to transfer between the native fpsimd_state and the compat_vfp_sigframe. Unfortunately, this doesn't work so well in a big-endian environment. Our fpsimd save/restore code operates directly on 128-bit quantities (Q registers) whereas the compat_vfp_sigframe represents the registers as an array of 64-bit (D) registers. The architecture packs the compat D registers into the Q registers, with the least significant bytes holding the lower register. Consequently, we need to swap the 64-bit halves when converting between these two representations on a big-endian machine. This patch replaces the __copy_{to,from}_user invocations in our compat VFP signal handling code with explicit __put_user loops that operate on 64-bit values and swap them accordingly. Cc: Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/kernel/signal32.c | 47 +++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) commit e56d82a116176f7af9d642b560abbbd3a2b68013 Author: Will Deacon Date: Fri Sep 11 15:31:24 2015 +0100 arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers We have a couple of CPU hotplug notifiers for resetting the CPU debug state to a sane value when a CPU comes online. This patch ensures that we mask out CPU_TASKS_FROZEN so that we don't miss any online events occuring due to suspend/resume. Acked-by: Lorenzo Pieralisi Signed-off-by: Will Deacon arch/arm64/kernel/debug-monitors.c | 2 +- arch/arm64/kernel/hw_breakpoint.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit d8949aad3eab5d396f4fefcd581773bf07b9a79e Author: Johan Hedberg Date: Fri Sep 4 12:22:46 2015 +0300 Bluetooth: Delay check for conn->smp in smp_conn_security() There are several actions that smp_conn_security() might make that do not require a valid SMP context (conn->smp pointer). One of these actions is to encrypt the link with an existing LTK. If the SMP context wasn't initialized properly we should still allow the independent actions to be done, i.e. the check for the context should only be done at the last possible moment. Reported-by: Chuck Ebbert Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # 4.0+ net/bluetooth/smp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b07bb761cf6a333b2108cdbe4ffee66407189bb1 Author: Thomas Hellstrom Date: Wed Sep 16 08:38:08 2015 -0700 drm/vmwgfx: Only build on X86 ioremap_cache() is currently not available on some architectures. Reported-by: kbuild test robot Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2338f73d407d5abe2036d92716ba25ef5279c3d2 Author: Takashi Iwai Date: Mon Sep 7 14:25:01 2015 +0200 leds:lp55xx: Correct Kconfig dependency for f/w user helper The commit [b67893206fc0: leds:lp55xx: fix firmware loading error] tries to address the firmware file handling with user helper, but it sets a wrong Kconfig CONFIG_FW_LOADER_USER_HELPER_FALLBACK. Since the wrong option was enabled, the system got a regression -- it suffers from the unexpected long delays for non-present firmware files. This patch corrects the Kconfig dependency to the right one, CONFIG_FW_LOADER_USER_HELPER. This doesn't change the fallback behavior but only enables UMH when needed. Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=944661 Fixes: b67893206fc0 ('leds:lp55xx: fix firmware loading error') Cc: # v4.2+ Signed-off-by: Takashi Iwai Signed-off-by: Jacek Anaszewski drivers/leds/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35bfe456be3ae1e11dd63e83096c95d0c6429c51 Author: Jacek Anaszewski Date: Mon Sep 7 17:06:05 2015 +0200 leds: leds-ipaq-micro: Add LEDS_CLASS dependency Fix missing Kconfig LEDS_CLASS dependency. Signed-off-by: Jacek Anaszewski Reviewed-by: Linus Walleij drivers/leds/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 305c324f43a2601cbeb894c17b68c8a8f3c13387 Author: Jacek Anaszewski Date: Fri Sep 4 12:27:09 2015 +0200 leds: aat1290: add 'static' modifier to init_mm_current_scale Function init_mm_current_scale is used only locally. Make it static then. Signed-off-by: Jacek Anaszewski drivers/leds/leds-aat1290.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98f9cc7ffcf2cb5b695208a4cd4927bb41c550f3 Author: Luis de Bethencourt Date: Tue Sep 1 23:36:59 2015 +0200 leds: leds-ns2: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jacek Anaszewski drivers/leds/leds-ns2.c | 1 + 1 file changed, 1 insertion(+) commit e3df661ff3243ce4d1719c212ee88521e0e7811b Author: Luis de Bethencourt Date: Tue Sep 1 23:36:41 2015 +0200 leds: max77693: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jacek Anaszewski drivers/leds/leds-max77693.c | 1 + 1 file changed, 1 insertion(+) commit 3682c7bdf5065b99638c56adc1be1507ed5c0f0e Author: Luis de Bethencourt Date: Tue Sep 1 23:36:15 2015 +0200 leds: ktd2692: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jacek Anaszewski drivers/leds/leds-ktd2692.c | 1 + 1 file changed, 1 insertion(+) commit 01736f07cad613937db13f7483b04e8f2af81883 Author: Luis de Bethencourt Date: Tue Sep 1 23:35:55 2015 +0200 leds: bcm6358: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6358.c | 1 + 1 file changed, 1 insertion(+) commit 6528ca19c1c8d4756b534a1ce9df4c3849f9dd04 Author: Luis de Bethencourt Date: Tue Sep 1 23:35:38 2015 +0200 leds: bcm6328: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jacek Anaszewski drivers/leds/leds-bcm6328.c | 1 + 1 file changed, 1 insertion(+) commit 93a51aa406f61985d12b60f9860f949b4bf7e43d Author: Luis de Bethencourt Date: Tue Sep 1 23:35:07 2015 +0200 leds: aat1290: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Jacek Anaszewski drivers/leds/leds-aat1290.c | 1 + 1 file changed, 1 insertion(+) commit aa1471a301f4c0a5988ebcafc8954990335dcf2c Merge: 6ff33f3 762982d Author: Greg Kroah-Hartman Date: Wed Sep 16 21:33:13 2015 -0700 Merge tag 'fixes-for-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v4.3-rc2 First series of fixes for v4.3-rc cycle. The major points are a fix to a regression which would let gadget driver disable an endpoint that's already disabled and a fix to MUSB to make sure IRQs are masked when we're going to suspend and unmasked on resume. Signed-off-by: Felipe Balbi commit e1ffceb078c6bc8a674077b29aee0926bbb54131 Author: Lucas Stach Date: Wed Aug 19 15:19:47 2015 +0200 ARM: imx53: qsrb: fix PMIC interrupt level The MC34708 PMIC interrupt level is active high, but was set to active low in the devicetree, probably as a result of a copy and paste error from the QSB board. This caused IRQ storms and led to the kernel disabling the PMIC interrupt. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx53-qsrb.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34adba711750b1a0eee100dda1d7fb6cfc55608f Author: Lucas Stach Date: Wed Aug 19 15:19:46 2015 +0200 ARM: imx53: include IRQ dt-bindings header Allows to use the more meaningful IRQ flag defines instead of the raw values. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo arch/arm/boot/dts/imx53.dtsi | 1 + 1 file changed, 1 insertion(+) commit 400c47d81ca383fc87d5a3937b234e23e26909fb Author: LEROY Christophe Date: Wed Sep 16 12:04:53 2015 +0200 powerpc32: memset: only use dcbz once cache is enabled memset() uses instruction dcbz to speed up clearing by not wasting time loading cache line with data that will be overwritten. Some platform like mpc52xx do no have cache active at startup and can therefore not use memset(). Allthough no part of the code explicitly uses memset(), GCC may make calls to it. This patch modifies memset() such that at startup, memset() unconditionally skip the optimised bloc that uses dcbz instruction. Once the initial MMU is set up, in machine_init() we patch memset() by replacing this inconditional jump by a NOP Tested-by: Thomas Gleixner Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman arch/powerpc/kernel/setup_32.c | 3 +++ arch/powerpc/lib/copy_32.S | 6 ++++++ 2 files changed, 9 insertions(+) commit 1cd03890ea64795e53f17a94928cca22495acb2a Author: LEROY Christophe Date: Wed Sep 16 12:04:51 2015 +0200 powerpc32: memcpy: only use dcbz once cache is enabled memcpy() uses instruction dcbz to speed up copy by not wasting time loading cache line with data that will be overwritten. Some platform like mpc52xx do no have cache active at startup and can therefore not use memcpy(). Allthough no part of the code explicitly uses memcpy(), GCC makes calls to it. This patch modifies memcpy() such that at startup, memcpy() unconditionally jumps to generic_memcpy() which doesn't use the dcbz instruction. Once the initial MMU is set up, in machine_init() we patch memcpy() by replacing this inconditional jump by a NOP Reported-by: Michal Sojka Tested-by: Thomas Gleixner Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman arch/powerpc/kernel/setup_32.c | 3 +++ arch/powerpc/lib/copy_32.S | 5 +++++ 2 files changed, 8 insertions(+) commit 84ad1bab0eebd2e2b2dd3c3db7b88cade22a6de1 Author: Roger Quadros Date: Mon Jul 27 16:10:17 2015 +0300 ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2 The VBUS line of USB2 is connected to VBUS detect logic on the PMIC. Use the palmas-usb driver to report VBUS events to the USB driver. As the palmas-usb driver supports GPIO based ID reporting provide the GPIO for ID pin as well. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit f4746176f95a0d06f07ea83191375d374611e170 Author: Grazvydas Ignotas Date: Wed Sep 16 01:36:20 2015 +0300 ARM: omap2plus_defconfig: enable GPIO_PCA953X This enables tca6424a GPIO expander driver that in turn enables TPD12S015 HDMI ESD protection and level shifter on OMAP5 uevm. In other words, it makes HDMI work on OMAP5 uevm. Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) commit 1dbdad75074d16c3e3005180f81a01cdc04a7872 Author: Grazvydas Ignotas Date: Wed Sep 16 01:34:31 2015 +0300 ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets The i2c5 pinctrl offsets are wrong. If the bootloader doesn't set the pins up, communication with tca6424a doesn't work (controller timeouts) and it is not possible to enable HDMI. Fixes: 9be495c42609 ("ARM: dts: omap5-evm: Add I2c pinctrl data") Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-uevm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08224a7d410699abce42674ee15a7cf37d54f340 Author: Dave Gerlach Date: Tue Sep 15 14:47:34 2015 -0500 ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late Add omap2_clk_enable_autoidle_all to am43xx_init_late otherwise the call to omap2_clk_disable_autoidle_all in am43xx_init_early may cause some clocks to always stay active and prevent low power mode transitions. Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/mach-omap2/io.c | 1 + 1 file changed, 1 insertion(+) commit 5005296e7408c055a02fc8be9f62218cb4b52b13 Author: Nishanth Menon Date: Thu Sep 3 14:23:45 2015 -0500 ARM: dts: am57xx-beagle-x15: Update Phy supplies Originally, all the SoC PHY rails were supplied by LDO3. However, as a result of characterization, it was determined that this posed a risk in extreme load conditions. Hence the PHY rails are split between two different LDOs. Update the related node as a result LDO3/VDDA_1V8_PHYA supplies vdda_usb1, vdda_usb2, vdda_sata, vdda_usb3 LDO4/VDDA_1V8_PHYB supplies vdda_pcie1, vdda_pcie0, vdda_hdmi, vdda_pcie NOTE: We break compatibility with pre-production boards with this change since, the PMIC LDO4 is disabled at OTP level. The new configuration is the plan of record and all pre-production boards are supposed to be replaced with the latest boards matching the mentioned configuration. Some very few 10 something boards have been created and stopped production till the latest modifications were done (PMIC USB interrupt, LDO4 etc) - and all of those boards are now getting scrapped.. If there are any (as per tracking information, there should not be any), TI should be contacted to have them replaced. Signed-off-by: Nishanth Menon [tony@atomide.com: updated commit about these being TI internal protos] Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 7ae85dc7687c7e7119053d83d02c560ea217b772 Author: Doug Anderson Date: Wed Aug 26 18:26:49 2015 +0100 ARM: 8425/1: kgdb: Don't try to stop the machine when setting breakpoints In (23a4e40 arm: kgdb: Handle read-only text / modules) we moved to using patch_text() to set breakpoints so that we could handle the case when we had CONFIG_DEBUG_RODATA. That patch used patch_text(). Unfortunately, patch_text() assumes that we're not in atomic context when it runs since it needs to grab a mutex and also wait for other CPUs to stop (which it does with a completion). This would result in a stack crawl if you had CONFIG_DEBUG_ATOMIC_SLEEP and tried to set a breakpoint in kgdb. The crawl looked something like: BUG: scheduling while atomic: swapper/0/0/0x00010007 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc7-00133-geb63b34 #1073 Hardware name: Rockchip (Device Tree) (unwind_backtrace) from [] (show_stack+0x20/0x24) (show_stack) from [] (dump_stack+0x84/0xb8) (dump_stack) from [] (__schedule_bug+0x54/0x6c) (__schedule_bug) from [] (__schedule+0x80/0x668) (__schedule) from [] (schedule+0xb8/0xd4) (schedule) from [] (schedule_timeout+0x2c/0x234) (schedule_timeout) from [] (wait_for_common+0xf4/0x188) (wait_for_common) from [] (wait_for_completion+0x20/0x24) (wait_for_completion) from [] (__stop_cpus+0x58/0x70) (__stop_cpus) from [] (stop_cpus+0x3c/0x54) (stop_cpus) from [] (__stop_machine+0xcc/0xe8) (__stop_machine) from [] (stop_machine+0x34/0x44) (stop_machine) from [] (patch_text+0x28/0x34) (patch_text) from [] (kgdb_arch_set_breakpoint+0x40/0x4c) (kgdb_arch_set_breakpoint) from [] (kgdb_validate_break_address+0x2c/0x60) (kgdb_validate_break_address) from [] (dbg_set_sw_break+0x1c/0xdc) (dbg_set_sw_break) from [] (gdb_serial_stub+0x9c4/0xba4) (gdb_serial_stub) from [] (kgdb_cpu_enter+0x1f8/0x60c) (kgdb_cpu_enter) from [] (kgdb_handle_exception+0x19c/0x1d0) (kgdb_handle_exception) from [] (kgdb_compiled_brk_fn+0x30/0x3c) (kgdb_compiled_brk_fn) from [] (do_undefinstr+0x1a4/0x20c) (do_undefinstr) from [] (__und_svc_finish+0x0/0x34) It turns out that when we're in kgdb all the CPUs are stopped anyway so there's no reason we should be calling patch_text(). We can instead directly call __patch_text() which assumes that CPUs have already been stopped. Fixes: 23a4e4050ba9 ("arm: kgdb: Handle read-only text / modules") Reported-by: Aapo Vienamo Signed-off-by: Douglas Anderson Reviewed-by: Stephen Boyd Acked-by: Kees Cook Signed-off-by: Russell King arch/arm/kernel/kgdb.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 90cde5584a34e210850728bebee4c6fb1a7124ba Author: Andre Przywara Date: Mon Sep 14 17:49:02 2015 +0100 ARM: 8437/1: dma-mapping: fix build warning with new DMA_ERROR_CODE definition Commit 96231b2686b5: ("ARM: 8419/1: dma-mapping: harmonize definition of DMA_ERROR_CODE") changed the definition of DMA_ERROR_CODE to use dma_addr_t, which makes the compiler barf on assigning this to an "int" variable on ARM with LPAE enabled: ************* In file included from /src/linux/include/linux/dma-mapping.h:86:0, from /src/linux/arch/arm/mm/dma-mapping.c:21: /src/linux/arch/arm/mm/dma-mapping.c: In function '__iommu_create_mapping': /src/linux/arch/arm/include/asm/dma-mapping.h:16:24: warning: overflow in implicit constant conversion [-Woverflow] #define DMA_ERROR_CODE (~(dma_addr_t)0x0) ^ /src/linux/arch/arm/mm/dma-mapping.c:1252:15: note: in expansion of macro DMA_ERROR_CODE' int i, ret = DMA_ERROR_CODE; ^ ************* Remove the actually unneeded initialization of "ret" in __iommu_create_mapping() and move the variable declaration inside the for-loop to make the scope of this variable more clear. Signed-off-by: Andre Przywara Signed-off-by: Russell King arch/arm/mm/dma-mapping.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 12fc7306e6ffae4e86680892f2286063d7d6eae7 Author: Russell King Date: Wed Sep 16 11:08:49 2015 +0100 ARM: get rid of needless #if in signal handling code Remove the #if statement which caused trouble for kernels that support both ARMv6 and ARMv7. Older architectures do not implement these bits, so it should be safe to always clear them. Signed-off-by: Russell King arch/arm/kernel/signal.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1605b60ad064c7019db8ade07f0b7bdc8c197b93 Author: Bartlomiej Zolnierkiewicz Date: Thu Sep 17 07:46:28 2015 +0900 ARM: dts: add suspend opp to exynos4412 Mark 800MHz OPP as a suspend opp for Exynos4412 based boards so effectively cpufreq-dt driver behavior w.r.t. suspend frequency matches what the old exynos-cpufreq driver has been doing. This patch fixes suspend/resume support on Exynos4412 based Trats2 board and reboot hang on Exynos4412 based Odroid U3 board. Cc: Thomas Abraham Cc: Javier Martinez Canillas Cc: Marek Szyprowski Cc: Tobias Jakobi Acked-by: Viresh Kumar Signed-off-by: Bartlomiej Zolnierkiewicz Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412.dtsi | 1 + 1 file changed, 1 insertion(+) commit a68371632b86d682992185ecf97316700a5a0f14 Author: Krzysztof Kozlowski Date: Wed Sep 16 08:37:02 2015 +0900 ARM: dts: Fix LEDs on exynos5422-odroidxu3 The LEDs on Odroid XU3 family boards could not properly probe because PWM outputs were reduced only to PWM for fan. Fix it for Odroid XU3 and XU3-Lite boards by switching to usage of all 4 outputs (although the PWM for MIPI probably is redundant because board does not have MIPI connector available). This fixes warnings on dmesg: [ 4.838712] samsung-pwm 12dd0000.pwm: tried to request PWM channel 1 without output [ 4.838725] leds_pwm pwmleds: unable to request PWM for green:mmc0: -22 [ 4.838767] leds_pwm: probe of pwmleds failed with error -22 Fixes: b685d540cc26 ("ARM: dts: Add pwm-fan node for exynos5422-odroidxu3") Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 - 1 file changed, 1 deletion(-) commit 9054a31d603ea82c6ed4914170a8708812a16324 Author: Mans Rullgard Date: Sun Feb 15 12:33:49 2015 +0000 clk: check for invalid parent index of orphans in __clk_init() If a mux clock is initialised (by hardware or firmware) with an invalid parent, its ->get_parent() can return an out of range index. For example, the generic mux clock attempts to return -EINVAL, which due to the u8 return type ends up a rather large number. Using this index with the parent_names[] array results in an invalid pointer and (usually) a crash in the following strcmp(). This patch adds a check for the parent index being in range, ignoring clocks reporting invalid values. Signed-off-by: Mans Rullgard Tested-by: Rhyland Klein Signed-off-by: Stephen Boyd drivers/clk/clk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e1595d89ae8180e0d3815cc75336ac3484de0aa0 Author: Thierry Reding Date: Thu Sep 10 15:55:21 2015 +0200 clk: tegra: dfll: Properly protect OPP list The OPP list needs to be protected against concurrent accesses. Using simple RCU read locks does the trick and gets rid of the following lockdep warning: =============================== [ INFO: suspicious RCU usage. ] 4.2.0-next-20150908 #1 Not tainted ------------------------------- drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 0 4 locks held by kworker/u8:0/6: #0: ("%s""deferwq"){++++.+}, at: [] process_one_work+0x118/0x4bc #1: (deferred_probe_work){+.+.+.}, at: [] process_one_work+0x118/0x4bc #2: (&dev->mutex){......}, at: [] __device_attach+0x20/0x118 #3: (prepare_lock){+.+...}, at: [] clk_prepare_lock+0x10/0xf8 stack backtrace: CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1 Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) Workqueue: deferwq deferred_probe_work_func [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x94/0xd4) [] (dump_stack) from [] (dev_pm_opp_find_freq_ceil+0x108/0x114) [] (dev_pm_opp_find_freq_ceil) from [] (dfll_calculate_rate_request+0xb8/0x170) [] (dfll_calculate_rate_request) from [] (dfll_clk_round_rate+0x1c/0x2c) [] (dfll_clk_round_rate) from [] (clk_calc_new_rates+0x1b8/0x228) [] (clk_calc_new_rates) from [] (clk_core_set_rate_nolock+0x44/0xac) [] (clk_core_set_rate_nolock) from [] (clk_set_rate+0x24/0x34) [] (clk_set_rate) from [] (tegra124_cpufreq_probe+0x120/0x230) [] (tegra124_cpufreq_probe) from [] (platform_drv_probe+0x44/0xac) [] (platform_drv_probe) from [] (driver_probe_device+0x218/0x304) [] (driver_probe_device) from [] (bus_for_each_drv+0x60/0x94) [] (bus_for_each_drv) from [] (__device_attach+0xb4/0x118) ata1: SATA link down (SStatus 0 SControl 300) [] (__device_attach) from [] (bus_probe_device+0x88/0x90) [] (bus_probe_device) from [] (deferred_probe_work_func+0x58/0x8c) [] (deferred_probe_work_func) from [] (process_one_work+0x188/0x4bc) [] (process_one_work) from [] (worker_thread+0x4c/0x4f4) [] (worker_thread) from [] (kthread+0xe4/0xf8) [] (kthread) from [] (ret_from_fork+0x14/0x24) Signed-off-by: Thierry Reding Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL") [vince.h@nvidia.com: Unlock rcu on error path] Signed-off-by: Vince Hsu [sboyd@codeaurora.org: Dropped second hunk that nested the rcu read lock unnecessarily] Signed-off-by: Stephen Boyd drivers/clk/tegra/clk-dfll.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 02d8dabc50f94353075f2f62b1047c1306e8bf92 Author: Stephane Eranian Date: Thu Sep 3 15:23:40 2015 +0200 perf stat: Fix per-pkg event reporting bug Per-pkg events need to be captured once per processor socket. The code in check_per_pkg() ensures only one value per processor package is used. However there is a problem with this function in case the first CPU of the package does not measure anything for the per-pkg event, but other CPUs do. Consider the following: $ create cgroup FOO; echo $$ >FOO/tasks; taskset -c 1 noploop & $ perf stat -a -I 1000 -e intel_cqm/llc_occupancy/ -G FOO sleep 100 1.00000 Bytes intel_cqm/llc_occupancy/ FOO The reason for this is that CPU0 in the cgroup has nothing running on it. Yet check_per_plg() will mark socket0 as processed and no other event value will be considered for the socket. This patch fixes the problem by having check_per_pkg() only consider events which actually ran. Signed-off-by: Stephane Eranian Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441286620-10117-1-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/stat.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 0f1d08dd6aaf7e9dd1039dce910c1f8ff58ee8c1 Author: Andrew F. Davis Date: Tue Sep 15 15:34:22 2015 -0500 regulator: tps65218: Fix missing zero typo Add missing zero to value. This will be needed when range checking is implemented. Signed-off-by: Andrew F. Davis Acked-by: Dan Murphy Signed-off-by: Mark Brown drivers/regulator/tps65218-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c8f7710c1c44fb650bc29b6ef78ed8b60cfaa28 Author: Robert Jarzmik Date: Tue Sep 15 20:51:31 2015 +0200 ASoC: fix broken pxa SoC support The previous fix of pxa library support, which was introduced to fix the library dependency, broke the previous SoC behavior, where a machine code binding pxa2xx-ac97 with a coded relied on : - sound/soc/pxa/pxa2xx-ac97.c - sound/soc/codecs/XXX.c For example, the mioa701_wm9713.c machine code is currently broken. The "select ARM" statement wrongly selects the soc/arm/pxa2xx-ac97 for compilation, as per an unfortunate fate SND_PXA2XX_AC97 is both declared in sound/arm/Kconfig and sound/soc/pxa/Kconfig. Fix this by ensuring that SND_PXA2XX_SOC correctly triggers the correct pxa2xx-ac97 compilation. Fixes: 846172dfe33c ("ASoC: fix SND_PXA2XX_LIB Kconfig warning") Signed-off-by: Robert Jarzmik Signed-off-by: Mark Brown sound/arm/Kconfig | 15 ++++++++------- sound/soc/pxa/Kconfig | 2 -- 2 files changed, 8 insertions(+), 9 deletions(-) commit e26d15f735f570a1178c3bba4d85e6f58e098fdd Author: Javier Martinez Canillas Date: Tue Sep 15 14:46:45 2015 +0200 spi: mediatek: fix wrong error return value on probe Commit adcbcfea15d62 ("spi: mediatek: fix spi clock usage error") added a new sel_clk but introduced bugs in the error paths since the wrong struct clk pointers are passed to PTR_ERR(). Fixes: adcbcfea15d62 ("spi: mediatek: fix spi clock usage error") Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0243ed44ad4a25dbd2e92ad97e5e12a1a6c72d6c Author: Geliang Tang Date: Tue Sep 15 04:59:21 2015 -0700 spi: fix kernel-doc warnings in spi.h Fix the following 'make htmldocs' warnings: .//include/linux/spi/spi.h:71: warning: No description found for parameter 'lock' .//include/linux/spi/spi.h:71: warning: Excess struct/union/enum/typedef member 'clock' description in 'spi_statistics' Signed-off-by: Geliang Tang Signed-off-by: Mark Brown include/linux/spi/spi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92243b6fc8fcb16bf401b055f7a0ba79f70a4115 Merge: a394d63 6ff33f3 Author: Mark Brown Date: Wed Sep 16 20:44:25 2015 +0100 Merge tag 'v4.3-rc1' into spi-fix-doc Linux 4.3-rc1 commit 385877c01361401113c101ef5a80a9f0998e072b Author: Axel Lin Date: Tue Sep 1 09:52:21 2015 +0800 ARM: pxa: balloon3: Fix build error irq_data_get_chip() function does not exist, call irq_desc_get_chip() instead. Fixes: 9ec97561aa6d ("ARM/pxa: Prepare balloon3_irq_handler for irq argument removal") Signed-off-by: Axel Lin Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/balloon3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c2f58514cfb374d5368c9da945f1765cd48eb0da Author: Pavel Fedin Date: Wed Aug 5 11:53:57 2015 +0100 arm/arm64: KVM: vgic: Check for !irqchip_in_kernel() when mapping resources Until b26e5fdac43c ("arm/arm64: KVM: introduce per-VM ops"), kvm_vgic_map_resources() used to include a check on irqchip_in_kernel(), and vgic_v2_map_resources() still has it. But now vm_ops are not initialized until we call kvm_vgic_create(). Therefore kvm_vgic_map_resources() can being called without a VGIC, and we die because vm_ops.map_resources is NULL. Fixing this restores QEMU's kernel-irqchip=off option to a working state, allowing to use GIC emulation in userspace. Fixes: b26e5fdac43c ("arm/arm64: KVM: introduce per-VM ops") Cc: stable@vger.kernel.org Signed-off-by: Pavel Fedin [maz: reworked commit message] Signed-off-by: Marc Zyngier arch/arm/kvm/arm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 54c3cf65aefd5e49e58201adb3dc7595c4b3ad9f Merge: 6ff33f3 60fdcb8 Author: Kevin Hilman Date: Wed Sep 16 09:27:24 2015 -0700 Merge tag 'omap-for-v4.3/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Merge "omap fixes against v4.3-rc1" from Tony Lindgren: Fixes for omaps against v4.3-rc1: - Fix long time regression on beagle for tfp410 pin muxing - Fix dm814x control base address typo and related Ethernet phy configuration - Fix igepv2 Ethernet pinmuxing as only some boards have it - Fix pbias regulator compatible values as a pending regulator fix needs those for MMC1 to work properly - Fix beagle-x15 MMC1 regulator and make pcf857x built-in - Fix omap5 and dra7 Kconfig options when built as the only SoCs selected - Fix PM errata for omap5 and dra7 as they too need it - Fix phycore mpu voltage Also included are a few cosmetic fixes: - Remove unused of_irq macros - Fix dra7 ethernet name * tag 'omap-for-v4.3/fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: Fixup model name for HP t410 dts ARM: dts: DRA7: fix a typo in ethernet ARM: omap2plus_defconfig: make PCF857x built-in ARM: dts: Use ti,pbias compatible string for pbias ARM: OMAP5: Cleanup options for SoC only build ARM: DRA7: Select missing options for SoC only build ARM: OMAP2+: board-generic: Remove stale of_irq macros ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410 ARM: dts: am335x-phycore-som: Fix mpu voltage ARM: dts: am57xx-beagle-x15: Fix regulator populated in MMC1 dt node ARM: dts: Fix dm814x control base to properly initialize Ethernet PHY ARM: dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again commit 72714841b705a5b9bccf37ee85a62352bee3a3ef Merge: 3025510 447e9a4 Author: Linus Torvalds Date: Wed Sep 16 09:16:20 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull rdma driver move from Doug Ledford: "This is a move only, no functional changes. I tried to get it in prior to the rc1 release, but we were waiting on IBM to get back to us that they were OK with the deprecation and eventual removal of this driver. That OK didn't materialize until last week, so integration and testing time pushed us beyond the rc1 release. Summary: - Move ehca driver to staging/rdma and schedule for deletion" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/ehca: Deprecate driver, move to staging, schedule deletion commit 0c986253b939cc14c69d4adbe2b4121bdf4aa220 Author: Tejun Heo Date: Wed Sep 16 11:51:12 2015 -0400 Revert "sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem" This reverts commit d59cfc09c32a2ae31f1c3bc2983a0cd79afb3f14. d59cfc09c32a ("sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem") and b5ba75b5fc0e ("cgroup: simplify threadgroup locking") changed how cgroup synchronizes against task fork and exits so that it uses global percpu_rwsem instead of per-process rwsem; unfortunately, the write [un]lock paths of percpu_rwsem always involve synchronize_rcu_expedited() which turned out to be too expensive. Improvements for percpu_rwsem are scheduled to be merged in the coming v4.4-rc1 merge window which alleviates this issue. For now, revert the two commits to restore per-process rwsem. They will be re-applied for the v4.4-rc1 merge window. Signed-off-by: Tejun Heo Link: http://lkml.kernel.org/g/55F8097A.7000206@de.ibm.com Reported-by: Christian Borntraeger Cc: Oleg Nesterov Cc: "Paul E. McKenney" Cc: Peter Zijlstra Cc: Paolo Bonzini Cc: stable@vger.kernel.org # v4.2+ include/linux/cgroup-defs.h | 27 ++-------------- include/linux/init_task.h | 8 +++++ include/linux/sched.h | 12 +++++++ kernel/cgroup.c | 77 +++++++++++++++++++++++++++++++++------------ kernel/fork.c | 4 +++ 5 files changed, 83 insertions(+), 45 deletions(-) commit f9f9e7b776142fb1c0782cade004cc8e0147a199 Author: Tejun Heo Date: Wed Sep 16 11:51:12 2015 -0400 Revert "cgroup: simplify threadgroup locking" This reverts commit b5ba75b5fc0e8404e2c50cb68f39bb6a53fc916f. d59cfc09c32a ("sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem") and b5ba75b5fc0e ("cgroup: simplify threadgroup locking") changed how cgroup synchronizes against task fork and exits so that it uses global percpu_rwsem instead of per-process rwsem; unfortunately, the write [un]lock paths of percpu_rwsem always involve synchronize_rcu_expedited() which turned out to be too expensive. Improvements for percpu_rwsem are scheduled to be merged in the coming v4.4-rc1 merge window which alleviates this issue. For now, revert the two commits to restore per-process rwsem. They will be re-applied for the v4.4-rc1 merge window. Signed-off-by: Tejun Heo Link: http://lkml.kernel.org/g/55F8097A.7000206@de.ibm.com Reported-by: Christian Borntraeger Cc: Oleg Nesterov Cc: "Paul E. McKenney" Cc: Peter Zijlstra Cc: Paolo Bonzini Cc: stable@vger.kernel.org # v4.2+ kernel/cgroup.c | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) commit 30255100d7c253c82b596a0768235d5865eee2cf Merge: 9efeaaf cd1faefa Author: Linus Torvalds Date: Wed Sep 16 08:49:41 2015 -0700 Merge tag 'hwmon-for-linus-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: "Two patches for the nct6775 driver: add support for NCT6793D, and fix swapped registers" * tag 'hwmon-for-linus-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (nct6775) Add support for NCT6793D hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most chips commit 9efeaaf9a0c1a27c2be8b2d37c73142555702a4f Merge: d1291eb fa84b52 Author: Linus Torvalds Date: Wed Sep 16 08:07:04 2015 -0700 Merge tag 'pinctrl-v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control fixes from Linus Walleij: "This is a first set of pin control fixes for the v4.3 series. Nothing special to say, business as usual. - Some IS_ERR() fixes from Julia Lawall. I always wanted the compiler to catch these but error pointers by nailing them as an err pointer intrinsic type or something seem to be a "no can do". In any case, cocinelle is obviously up to the task, better than bugs staying around. - Better error handling for NULL GPIO chips. - Fix a compile error from the big irq desc refactoring. I'm surprised the fallout wasn't bigger than this" * tag 'pinctrl-v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: samsung: s3c24xx: fix syntax error pinctrl: core: Warn about NULL gpio_chip in pinctrl_ready_for_gpio_range() pinctrl: join lines that can be a single line within 80 columns pinctrl: digicolor: convert null test to IS_ERR test pinctrl: qcom: ssbi: convert null test to IS_ERR test commit 9bf9fde2c98ba8362ea1d41d8bd8b32a23776e67 Author: Jason J. Herne Date: Wed Sep 16 09:13:50 2015 -0400 KVM: s390: Replace incorrect atomic_or with atomic_andnot The offending commit accidentally replaces an atomic_clear with an atomic_or instead of an atomic_andnot in kvm_s390_vcpu_request_handled. The symptom is that kvm guests on s390 hang on startup. This patch simply replaces the incorrect atomic_or with atomic_andnot Fixes: 805de8f43c20 (atomic: Replace atomic_{set,clear}_mask() usage) Signed-off-by: Jason J. Herne Acked-by: Christian Borntraeger Acked-by: Peter Zijlstra (Intel) Acked-by: Cornelia Huck Signed-off-by: Paolo Bonzini arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1291ebd85770299857b355160864cd1a9f6e5e9 Merge: aa57e0b 46d4f7c Author: Linus Torvalds Date: Wed Sep 16 07:58:58 2015 -0700 Merge tag 'gpio-v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO fixes from Linus Walleij: "This is the first round of GPIO fixes for v4.3. Quite a lot of patches, but the influx of new stuff in the merge window was equally big, so I'm not surprised. - Return value checks and thus nicer errorpath for two drivers. - Make GPIO_RCAR arch neutral. - Propagate errors from GPIO chip ->get() vtable call. It turned out these can actually fail sometimes, especially on slowpath controllers doing I2C traffic and similar. - Update documentation to be in sync with the massive changes in the v4.3 merge window, phew. - Handle deferred probe properly in the OMAP driver. - Get rid of surplus MODULE_ALIAS() from sx150x" * tag 'gpio-v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: omap: Fix GPIO numbering for deferred probe Documentation: gpio: Explain that -gpio is also supported gpio: omap: Fix gpiochip_add() handling for deferred probe gpio: sx150x: Remove unnecessary MODULE_ALIAS() Documentation: gpio: board: describe the con_id parameter Documentation: gpio: board: add flags parameter to gpiod_get*() functions gpio: Propagate errors from chip->get() gpio: rcar: GPIO_RCAR doesn't relate to ARM gpio: mxs: need to check return value of irq_alloc_generic_chip gpio: mxc: need to check return value of irq_alloc_generic_chip commit ae80a2f2d142b97ec68434313f0263256916683d Author: Rob Herring Date: Sat Aug 29 18:01:25 2015 -0500 arm64: Remove ununsed set_irq_flags Now that all users of set_irq_flags and custom flags are converted to genirq functions, the ARM specific set_irq_flags can be removed. Signed-off-by: Rob Herring Acked-by: Catalin Marinas Cc: linux-arm-kernel@lists.infradead.org Cc: Russell King Cc: Will Deacon Signed-off-by: Thomas Gleixner arch/arm64/include/asm/hardirq.h | 5 ----- 1 file changed, 5 deletions(-) commit eb811129ed9ea50ef2dfe8a83ddde6a16d1eb8d4 Author: Rob Herring Date: Sat Aug 29 18:01:24 2015 -0500 ARM: Remove ununsed set_irq_flags Now that all users of set_irq_flags and custom flags are converted to genirq functions, the ARM specific set_irq_flags can be removed. Signed-off-by: Rob Herring Tested-by: Kevin Hilman Cc: linux-arm-kernel@lists.infradead.org Cc: Russell King Signed-off-by: Thomas Gleixner arch/arm/include/asm/hw_irq.h | 6 ------ arch/arm/kernel/irq.c | 20 -------------------- 2 files changed, 26 deletions(-) commit 3e15135b98ecaa0228eb5dad42be7516cac38aa0 Author: Rob Herring Date: Sat Aug 29 18:01:23 2015 -0500 sh: Kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Acked-by: Simon Horman Cc: linux-arm-kernel@lists.infradead.org Cc: linux-sh@vger.kernel.org Cc: Russell King Cc: Magnus Damm Link: http://lkml.kernel.org/r/1440889285-5637-4-git-send-email-robh@kernel.org Signed-off-by: Thomas Gleixner drivers/sh/intc/internals.h | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit d17cab4451df1f25f3a46369e0aaeaa18390fa6b Author: Rob Herring Date: Sat Aug 29 18:01:22 2015 -0500 irqchip: Kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: linux-arm-kernel@lists.infradead.org Cc: Russell King Cc: Jason Cooper Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: Stephen Warren Cc: Lee Jones Cc: Alexander Shiyan Cc: Maxime Ripard Cc: linux-rpi-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Link: http://lkml.kernel.org/r/1440889285-5637-3-git-send-email-robh@kernel.org Signed-off-by: Thomas Gleixner drivers/irqchip/exynos-combiner.c | 2 +- drivers/irqchip/irq-armada-370-xp.c | 3 +-- drivers/irqchip/irq-bcm2835.c | 2 +- drivers/irqchip/irq-clps711x.c | 6 +++--- drivers/irqchip/irq-gic-v3.c | 5 ++--- drivers/irqchip/irq-gic.c | 4 ++-- drivers/irqchip/irq-hip04.c | 4 ++-- drivers/irqchip/irq-keystone.c | 2 +- drivers/irqchip/irq-mmp.c | 3 --- drivers/irqchip/irq-mxs.c | 1 - drivers/irqchip/irq-renesas-intc-irqpin.c | 1 - drivers/irqchip/irq-s3c24xx.c | 14 ++------------ drivers/irqchip/irq-sun4i.c | 2 +- drivers/irqchip/irq-versatile-fpga.c | 2 +- drivers/irqchip/irq-vic.c | 2 +- drivers/irqchip/irq-vt8500.c | 1 - drivers/irqchip/spear-shirq.c | 1 - 17 files changed, 18 insertions(+), 37 deletions(-) commit ca0141de743dc7760fdfeb9210b82dadf6d9b221 Author: Rob Herring Date: Sat Aug 29 18:01:21 2015 -0500 gpu/drm: Kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: linux-arm-kernel@lists.infradead.org Cc: Russell King Cc: David Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Thomas Gleixner drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 1 - drivers/gpu/ipu-v3/ipu-common.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit aa57e0b281453334267e836d15cfdb933f6d6f97 Merge: 865ca08 84cba17 Author: Linus Torvalds Date: Wed Sep 16 07:53:33 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes the following issues: - The selftest overreads the IV test vector. - Fix potential infinite loop in sunxi-ss driver. - Fix powerpc build failure when VMX is set without VSX" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: testmgr - don't copy from source IV too much crypto: sunxi-ss - Fix a possible driver hang with ciphers crypto: vmx - VMX crypto should depend on CONFIG_VSX commit 03da3ff1cfcd7774c8780d2547ba0d995f7dc03d Author: David Woodhouse Date: Wed Sep 16 14:10:03 2015 +0100 x86/platform: Fix Geode LX timekeeping in the generic x86 build In 2007, commit 07190a08eef36 ("Mark TSC on GeodeLX reliable") bypassed verification of the TSC on Geode LX. However, this code (now in the check_system_tsc_reliable() function in arch/x86/kernel/tsc.c) was only present if CONFIG_MGEODE_LX was set. OpenWRT has recently started building its generic Geode target for Geode GX, not LX, to include support for additional platforms. This broke the timekeeping on LX-based devices, because the TSC wasn't marked as reliable: https://dev.openwrt.org/ticket/20531 By adding a runtime check on is_geode_lx(), we can also include the fix if CONFIG_MGEODEGX1 or CONFIG_X86_GENERIC are set, thus fixing the problem. Signed-off-by: David Woodhouse Cc: Andres Salomon Cc: Linus Torvalds Cc: Marcelo Tosatti Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1442409003.131189.87.camel@infradead.org Signed-off-by: Ingo Molnar arch/x86/kernel/tsc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit ca09f02f122b2ecb0f5ddfc5fd47b29ed657d4fd Author: Marek Majtyka Date: Wed Sep 16 12:04:55 2015 +0200 arm: KVM: Fix incorrect device to IPA mapping A critical bug has been found in device memory stage1 translation for VMs with more then 4GB of address space. Once vm_pgoff size is smaller then pa (which is true for LPAE case, u32 and u64 respectively) some more significant bits of pa may be lost as a shift operation is performed on u32 and later cast onto u64. Example: vm_pgoff(u32)=0x00210030, PAGE_SHIFT=12 expected pa(u64): 0x0000002010030000 produced pa(u64): 0x0000000010030000 The fix is to change the order of operations (casting first onto phys_addr_t and then shifting). Reviewed-by: Marc Zyngier [maz: fixed changelog and patch formatting] Cc: stable@vger.kernel.org Signed-off-by: Marek Majtyka Signed-off-by: Marc Zyngier arch/arm/kvm/mmu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1713e5aa05fff3951e747548b373bd2c81be4e7a Author: Marc Zyngier Date: Wed Sep 16 10:54:37 2015 +0100 arm64: KVM: Fix user access for debug registers When setting the debug register from userspace, make sure that copy_from_user() is called with its parameters in the expected order. It otherwise doesn't do what you think. Fixes: 84e690bfbed1 ("KVM: arm64: introduce vcpu->arch.debug_ptr") Reported-by: Peter Maydell Cc: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/sys_regs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bd0b9ac405e1794d72533c3d487aa65b6b955a0c Author: Thomas Gleixner Date: Mon Sep 14 10:42:37 2015 +0200 genirq: Remove irq argument from irq flow handlers Most interrupt flow handlers do not use the irq argument. Those few which use it can retrieve the irq number from the irq descriptor. Remove the argument. Search and replace was done with coccinelle and some extra helper scripts around it. Thanks to Julia for her help! Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu arch/alpha/kernel/irq.c | 2 +- arch/arc/kernel/mcip.c | 2 +- arch/arm/common/it8152.c | 2 +- arch/arm/common/locomo.c | 2 +- arch/arm/common/sa1111.c | 6 ++---- arch/arm/include/asm/hardware/it8152.h | 2 +- arch/arm/include/asm/mach/irq.h | 4 ++-- arch/arm/mach-dove/irq.c | 6 +++--- arch/arm/mach-footbridge/isa-irq.c | 5 ++--- arch/arm/mach-gemini/gpio.c | 2 +- arch/arm/mach-imx/3ds_debugboard.c | 2 +- arch/arm/mach-imx/mach-mx31ads.c | 2 +- arch/arm/mach-iop13xx/msi.c | 2 +- arch/arm/mach-lpc32xx/irq.c | 4 ++-- arch/arm/mach-netx/generic.c | 3 +-- arch/arm/mach-omap1/fpga.c | 2 +- arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-pxa/balloon3.c | 2 +- arch/arm/mach-pxa/cm-x2xx-pci.c | 5 ++--- arch/arm/mach-pxa/lpd270.c | 2 +- arch/arm/mach-pxa/pcm990-baseboard.c | 2 +- arch/arm/mach-pxa/viper.c | 2 +- arch/arm/mach-pxa/zeus.c | 2 +- arch/arm/mach-rpc/ecard.c | 3 +-- arch/arm/mach-s3c24xx/bast-irq.c | 4 +--- arch/arm/mach-s3c64xx/common.c | 8 ++++---- arch/arm/mach-sa1100/neponset.c | 2 +- arch/arm/plat-orion/gpio.c | 2 +- arch/avr32/mach-at32ap/extint.c | 2 +- arch/avr32/mach-at32ap/pio.c | 2 +- arch/blackfin/include/asm/irq_handler.h | 4 ++-- arch/blackfin/kernel/irqchip.c | 2 +- arch/blackfin/mach-bf537/ints-priority.c | 10 +++------ arch/blackfin/mach-common/ints-priority.c | 5 ++--- arch/c6x/platforms/megamod-pic.c | 2 +- arch/m68k/amiga/amiints.c | 8 ++++---- arch/m68k/coldfire/intc-5272.c | 6 ++---- arch/m68k/include/asm/irq.h | 3 +-- arch/m68k/include/asm/mac_via.h | 2 +- arch/m68k/mac/baboon.c | 2 +- arch/m68k/mac/oss.c | 4 ++-- arch/m68k/mac/psc.c | 2 +- arch/m68k/mac/via.c | 6 +++--- arch/metag/kernel/irq.c | 4 +--- arch/mips/alchemy/common/irq.c | 4 ++-- arch/mips/alchemy/devboards/bcsr.c | 2 +- arch/mips/ath25/ar2315.c | 2 +- arch/mips/ath25/ar5312.c | 2 +- arch/mips/ath79/irq.c | 8 ++++---- arch/mips/cavium-octeon/octeon-irq.c | 2 +- arch/mips/include/asm/netlogic/common.h | 4 ++-- arch/mips/jz4740/gpio.c | 2 +- arch/mips/netlogic/common/smp.c | 4 ++-- arch/mips/pci/pci-ar2315.c | 2 +- arch/mips/pci/pci-ar71xx.c | 2 +- arch/mips/pci/pci-ar724x.c | 2 +- arch/mips/pci/pci-rt3883.c | 2 +- arch/mips/ralink/irq.c | 2 +- arch/powerpc/include/asm/qe_ic.h | 23 +++++++++------------ arch/powerpc/include/asm/tsi108_pci.h | 2 +- arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 3 +-- arch/powerpc/platforms/52xx/media5200.c | 2 +- arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 2 +- arch/powerpc/platforms/82xx/pq2ads-pci-pic.c | 2 +- arch/powerpc/platforms/85xx/common.c | 2 +- arch/powerpc/platforms/85xx/mpc85xx_cds.c | 6 ++---- arch/powerpc/platforms/85xx/mpc85xx_ds.c | 2 +- arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 2 +- arch/powerpc/platforms/86xx/pic.c | 2 +- arch/powerpc/platforms/8xx/m8xx_setup.c | 2 +- arch/powerpc/platforms/cell/axon_msi.c | 2 +- arch/powerpc/platforms/cell/interrupt.c | 2 +- arch/powerpc/platforms/cell/spider-pic.c | 2 +- arch/powerpc/platforms/chrp/setup.c | 2 +- arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 3 +-- arch/powerpc/platforms/embedded6xx/mvme5100.c | 2 +- arch/powerpc/platforms/pseries/setup.c | 2 +- arch/powerpc/sysdev/ge/ge_pic.c | 2 +- arch/powerpc/sysdev/ge/ge_pic.h | 2 -- arch/powerpc/sysdev/mpic.c | 2 +- arch/powerpc/sysdev/qe_lib/qe_ic.c | 4 ++-- arch/powerpc/sysdev/tsi108_pci.c | 2 +- arch/powerpc/sysdev/uic.c | 2 +- arch/powerpc/sysdev/xilinx_intc.c | 2 +- arch/sh/boards/mach-se/7343/irq.c | 2 +- arch/sh/boards/mach-se/7722/irq.c | 2 +- arch/sh/boards/mach-se/7724/irq.c | 2 +- arch/sh/boards/mach-x3proto/gpio.c | 2 +- arch/sh/cchips/hd6446x/hd64461.c | 2 +- arch/sparc/kernel/leon_kernel.c | 2 +- arch/sparc/kernel/leon_pci_grpci1.c | 2 +- arch/sparc/kernel/leon_pci_grpci2.c | 2 +- arch/tile/kernel/pci_gx.c | 5 ++--- arch/unicore32/kernel/irq.c | 2 +- arch/x86/kernel/irq_32.c | 19 +++++++---------- arch/x86/kernel/irq_64.c | 2 +- arch/x86/lguest/boot.c | 2 +- drivers/dma/ipu/ipu_irq.c | 2 +- drivers/gpio/gpio-altera.c | 6 ++---- drivers/gpio/gpio-bcm-kona.c | 2 +- drivers/gpio/gpio-brcmstb.c | 2 +- drivers/gpio/gpio-davinci.c | 3 +-- drivers/gpio/gpio-dwapb.c | 2 +- drivers/gpio/gpio-ep93xx.c | 5 ++--- drivers/gpio/gpio-intel-mid.c | 2 +- drivers/gpio/gpio-lynxpoint.c | 2 +- drivers/gpio/gpio-mpc8xxx.c | 2 +- drivers/gpio/gpio-msic.c | 2 +- drivers/gpio/gpio-msm-v2.c | 2 +- drivers/gpio/gpio-mvebu.c | 2 +- drivers/gpio/gpio-mxc.c | 4 ++-- drivers/gpio/gpio-mxs.c | 2 +- drivers/gpio/gpio-omap.c | 2 +- drivers/gpio/gpio-pl061.c | 2 +- drivers/gpio/gpio-pxa.c | 2 +- drivers/gpio/gpio-sa1100.c | 3 +-- drivers/gpio/gpio-tegra.c | 2 +- drivers/gpio/gpio-timberdale.c | 2 +- drivers/gpio/gpio-tz1090.c | 4 ++-- drivers/gpio/gpio-vf610.c | 2 +- drivers/gpio/gpio-zx.c | 2 +- drivers/gpio/gpio-zynq.c | 2 +- drivers/gpu/ipu-v3/ipu-common.c | 4 ++-- drivers/irqchip/exynos-combiner.c | 6 ++---- drivers/irqchip/irq-armada-370-xp.c | 3 +-- drivers/irqchip/irq-bcm2835.c | 4 ++-- drivers/irqchip/irq-bcm7038-l1.c | 2 +- drivers/irqchip/irq-bcm7120-l2.c | 2 +- drivers/irqchip/irq-brcmstb-l2.c | 7 +++---- drivers/irqchip/irq-dw-apb-ictl.c | 2 +- drivers/irqchip/irq-gic.c | 4 ++-- drivers/irqchip/irq-i8259.c | 2 +- drivers/irqchip/irq-imgpdc.c | 4 ++-- drivers/irqchip/irq-keystone.c | 2 +- drivers/irqchip/irq-metag-ext.c | 2 +- drivers/irqchip/irq-metag.c | 2 +- drivers/irqchip/irq-mips-gic.c | 2 +- drivers/irqchip/irq-mmp.c | 2 +- drivers/irqchip/irq-orion.c | 2 +- drivers/irqchip/irq-s3c24xx.c | 2 +- drivers/irqchip/irq-sunxi-nmi.c | 2 +- drivers/irqchip/irq-tb10x.c | 2 +- drivers/irqchip/irq-versatile-fpga.c | 8 ++++---- drivers/irqchip/irq-vic.c | 2 +- drivers/irqchip/spear-shirq.c | 2 +- drivers/mfd/asic3.c | 2 +- drivers/mfd/ezx-pcap.c | 2 +- drivers/mfd/htc-egpio.c | 2 +- drivers/mfd/jz4740-adc.c | 2 +- drivers/mfd/pm8921-core.c | 2 +- drivers/mfd/t7l66xb.c | 2 +- drivers/mfd/tc6393xb.c | 3 +-- drivers/mfd/ucb1x00-core.c | 2 +- drivers/pci/host/pci-keystone.c | 5 ++--- drivers/pci/host/pci-xgene-msi.c | 2 +- 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 | 2 +- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 ++-- drivers/pinctrl/pinctrl-adi2.c | 3 +-- drivers/pinctrl/pinctrl-amd.c | 6 +++--- drivers/pinctrl/pinctrl-at91.c | 2 +- drivers/pinctrl/pinctrl-coh901.c | 2 +- drivers/pinctrl/pinctrl-pistachio.c | 6 ++---- drivers/pinctrl/pinctrl-rockchip.c | 2 +- drivers/pinctrl/pinctrl-single.c | 2 +- drivers/pinctrl/pinctrl-st.c | 4 ++-- drivers/pinctrl/qcom/pinctrl-msm.c | 5 ++--- drivers/pinctrl/samsung/pinctrl-exynos.c | 4 ++-- drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 8 ++++---- drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 10 ++++----- drivers/pinctrl/sirf/pinctrl-atlas7.c | 4 ++-- drivers/pinctrl/sirf/pinctrl-sirf.c | 4 ++-- drivers/pinctrl/spear/pinctrl-plgpio.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 2 +- drivers/sh/intc/core.c | 2 +- drivers/sh/intc/virq.c | 4 ++-- drivers/soc/dove/pmu.c | 4 ++-- drivers/spmi/spmi-pmic-arb.c | 2 +- include/linux/irq.h | 16 +++++++-------- include/linux/irqdesc.h | 4 ++-- include/linux/irqhandler.h | 2 +- kernel/irq/chip.c | 27 ++++++++----------------- kernel/irq/handle.c | 4 +++- kernel/irq/irqdesc.c | 2 +- kernel/irq/resend.c | 2 +- 188 files changed, 281 insertions(+), 340 deletions(-) commit b237721c5d95082a803c0be686f56d2dd1de995b Author: Jiang Liu Date: Mon Jun 1 16:05:43 2015 +0800 genirq: Move field 'msi_desc' from irq_data into irq_common_data MSI descriptors are per-irq instead of per irqchip, so move it into struct irq_common_data. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Cc: Kevin Cernekee Cc: Arnd Bergmann Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1433145945-789-35-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 8 ++++---- include/linux/irqdesc.h | 2 +- kernel/irq/chip.c | 2 +- kernel/irq/irqdesc.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit 9df872faa7e1619e9278bec00ceaed2236533530 Author: Jiang Liu Date: Wed Jun 3 11:47:50 2015 +0800 genirq: Move field 'affinity' from irq_data into irq_common_data Irq affinity mask is per-irq instead of per irqchip, so move it into struct irq_common_data. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Cc: Kevin Cernekee Cc: Arnd Bergmann Link: http://lkml.kernel.org/r/1433303281-27688-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 4 +--- include/linux/irq.h | 12 ++++++------ kernel/irq/irqdesc.c | 9 +++++---- kernel/irq/manage.c | 12 ++++++------ kernel/irq/proc.c | 2 +- 5 files changed, 19 insertions(+), 20 deletions(-) commit af7080e040d223b5e7d0a8de28f7cea24ef017c4 Author: Jiang Liu Date: Mon Jun 1 16:05:21 2015 +0800 genirq: Move field 'handler_data' from irq_data into irq_common_data Handler data (handler_data) is per-irq instead of per irqchip, so move it into struct irq_common_data. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Cc: Kevin Cernekee Cc: Arnd Bergmann Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1433145945-789-13-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 8 ++++---- include/linux/irqdesc.h | 2 +- kernel/irq/chip.c | 4 ++-- kernel/irq/irqdesc.c | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) commit 449e9cae58b06be1293858ec8e5d8cb728238baa Author: Jiang Liu Date: Mon Jun 1 16:05:16 2015 +0800 genirq: Move field 'node' from irq_data into irq_common_data NUMA node information is per-irq instead of per-irqchip, so move it into struct irq_common_data. Also use CONFIG_NUMA to guard irq_common_data.node. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Cc: Kevin Cernekee Cc: Arnd Bergmann Link: http://lkml.kernel.org/r/1433145945-789-8-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 17 ++++++++++++++--- kernel/irq/internals.h | 2 +- kernel/irq/irqdesc.c | 4 +++- kernel/irq/irqdomain.c | 1 - 4 files changed, 18 insertions(+), 6 deletions(-) commit 4df7f54d16ebe9c37631182de84c4347f0e44db3 Author: Thomas Gleixner Date: Tue Sep 15 13:19:16 2015 +0200 irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag Get rid of the handler_data abuse. Signed-off-by: Thomas Gleixner Acked-by: Marc Zyngier drivers/irqchip/irq-gic-v3.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 714665351cc718e01f0ce34ef5325932d56d8b4e Author: Thomas Gleixner Date: Tue Sep 15 12:37:36 2015 +0200 irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag Get rid of the handler_data abuse. Signed-off-by: Thomas Gleixner Acked-by: Marc Zyngier drivers/irqchip/irq-gic.c | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) commit fc5697126aa074c289df5e8baae28e115963023f Author: Thomas Gleixner Date: Tue Sep 15 12:33:42 2015 +0200 genirq: Provide IRQD_FORWARDED_TO_VCPU status flag Provide a irq data flag to mark an irq forwarded to a VCPU along with the accessor functions. Signed-off-by: Thomas Gleixner Acked-by: Marc Zyngier include/linux/irq.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 755d119a6204974b2005a98549a48a75a7f5010b Author: Thomas Gleixner Date: Wed Sep 16 14:37:12 2015 +0200 genirq: Simplify irq_data_to_desc() Avoid the lookup of irq_desc and use the same mechanism for hierarchical and flat irqdomains. Based-on-a-patch-from: Jiang Liu Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 123236ccacc933daac3b39c5eb1f0011c70d41d8 Author: Thomas Gleixner Date: Wed Sep 16 12:54:23 2015 +0200 genirq: Remove __irq_set_handler_locked() All users converted to irq_set_handler_locked() Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 10 ---------- 1 file changed, 10 deletions(-) commit 7c51173adde2ec520348812214704313f5b36f75 Author: Thomas Gleixner Date: Wed Sep 16 12:52:53 2015 +0200 pinctrl/pistachio: Use irq_set_handler_locked Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-pistachio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a7147db0f5184954687546d430aed65cce483ffa Author: Thomas Gleixner Date: Wed Sep 16 12:51:00 2015 +0200 gpio: vf610: Use irq_set_handler_locked Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-vf610.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9ca86b204b3c874e6ada28309f607e3aa74d60a9 Author: Thomas Gleixner Date: Tue Jun 23 15:52:36 2015 +0200 powerpc/mpc8xx: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: @@ struct irq_data *d; expression E1; @@ -__irq_set_handler_locked(d->irq, E1); +irq_set_handler_locked(d, E1); Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/sysdev/mpc8xx_pic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9758a7b0e5fdd5a08bcc73540bb3b98d59295a6d Author: Thomas Gleixner Date: Tue Jun 23 15:52:34 2015 +0200 powerpc/ipic: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: @@ struct irq_data *d; expression E1; @@ -__irq_set_handler_locked(d->irq, E1); +irq_set_handler_locked(d, E1); Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Anton Blanchard Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/sysdev/ipic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e9e879a3d6cecc4258294c674627045da648fab0 Author: Thomas Gleixner Date: Tue Jun 23 15:52:32 2015 +0200 powerpc/cpm2: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: @@ struct irq_data *d; expression E1; @@ -__irq_set_handler_locked(d->irq, E1); +irq_set_handler_locked(d, E1); Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/sysdev/cpm2_pic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6b83bd941479e99f6890ed4b5c54cb1f43c7146f Author: Thomas Gleixner Date: Tue Jun 23 15:52:31 2015 +0200 powerpc/mpc52xx: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: @@ struct irq_data *d; expression E1; @@ -__irq_set_handler_locked(d->irq, E1); +irq_set_handler_locked(d, E1); Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Anatolij Gustschin Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/platforms/52xx/mpc52xx_pic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04bb92e4b4cf06a66889d37b892b78f926faa9d4 Author: Wanpeng Li Date: Wed Sep 16 19:31:11 2015 +0800 KVM: vmx: fix VPID is 0000H in non-root operation Reference SDM 28.1: The current VPID is 0000H in the following situations: - Outside VMX operation. (This includes operation in system-management mode under the default treatment of SMIs and SMM with VMX operation; see Section 34.14.) - In VMX root operation. - In VMX non-root operation when the “enable VPID” VM-execution control is 0. The VPID should never be 0000H in non-root operation when "enable VPID" VM-execution control is 1. However, commit 34a1cd60 ("kvm: x86: vmx: move some vmx setting from vmx_init() to hardware_setup()") remove the codes which reserve 0000H for VMX root operation. This patch fix it by again reserving 0000H for VMX root operation. Cc: stable@vger.kernel.org # 3.19+ Fixes: 34a1cd60d17f62c1f077c1478a6c2ca8c3d17af4 Reported-by: Wincy Van Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 2 ++ 1 file changed, 2 insertions(+) commit 36b35d5d807b7e57aff7d08e63de8b17731ee211 Author: Aneesh Kumar K.V Date: Tue Sep 15 12:30:08 2015 +0530 powerpc/mm: Recompute hash value after a failed update If we had secondary hash flag set, we ended up modifying hash value in the updatepp code path. Hence with a failed updatepp we will be using a wrong hash value for the following hash insert. Fix this by recomputing hash before insert. Without this patch we can end up with using wrong slot number in linux pte. That can result in us missing an hash pte update or invalidate which can cause memory corruption or even machine check. Fixes: 6d492ecc6489 ("powerpc/THP: Add code to handle HPTE faults for hugepages") Cc: stable@vger.kernel.org # v3.11+ Signed-off-by: Aneesh Kumar K.V Reviewed-by: Paul Mackerras Signed-off-by: Michael Ellerman arch/powerpc/mm/hugepage-hash64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 655471f54c2e395ba29ae4156ba0f49928177cc1 Author: Benjamin Herrenschmidt Date: Tue Sep 15 11:24:17 2015 +1000 powerpc/boot: Specify ABI v2 when building an LE boot wrapper The kernel does it, not the boot wrapper, which breaks with some cross compilers that still default to ABI v1. Fixes: 147c05168fc8 ("powerpc/boot: Add support for 64bit little endian wrapper") Cc: stable@vger.kernel.org # v3.16+ Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/boot/Makefile | 3 +++ 1 file changed, 3 insertions(+) commit e902e14549e04c040fb6e15785efd35f810a223a Author: Thomas Gleixner Date: Wed Sep 16 12:36:04 2015 +0200 genirq: Remove __irq_set_chip_handler_name_locked() All users converted to irq_set_chip_handler_name_locked() Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 13 ------------- 1 file changed, 13 deletions(-) commit b9a5ec33e32069a2f8af09d46266091602902bf4 Author: Thomas Gleixner Date: Wed Sep 16 12:32:40 2015 +0200 pinctrl: sunxi: Use irq_set_chip_handler_name_locked() __irq_set_chip_handler_name_locked() is about to be replaced. Use irq_set_chip_handler_name_locked() instead. Signed-off-by: Thomas Gleixner Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/sunxi/pinctrl-sunxi.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 62bea5bff486644ecf363fe8a1a2f6f32c614a49 Author: Paolo Bonzini Date: Tue Sep 15 18:27:57 2015 +0200 KVM: add halt_attempted_poll to VCPU stats This new statistic can help diagnosing VCPUs that, for any reason, trigger bad behavior of halt_poll_ns autotuning. For example, say halt_poll_ns = 480000, and wakeups are spaced exactly like 479us, 481us, 479us, 481us. Then KVM always fails polling and wastes 10+20+40+80+160+320+480 = 1110 microseconds out of every 479+481+479+481+479+481+479 = 3359 microseconds. The VCPU then is consuming about 30% more CPU than it would use without polling. This would show as an abnormally high number of attempted polling compared to the successful polls. Acked-by: Christian Borntraeger Signed-off-by: Paolo Bonzini arch/arm/include/asm/kvm_host.h | 1 + arch/arm64/include/asm/kvm_host.h | 1 + arch/mips/include/asm/kvm_host.h | 1 + arch/mips/kvm/mips.c | 1 + arch/powerpc/include/asm/kvm_host.h | 1 + arch/powerpc/kvm/book3s.c | 1 + arch/powerpc/kvm/booke.c | 1 + arch/s390/include/asm/kvm_host.h | 1 + arch/s390/kvm/kvm-s390.c | 1 + arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/x86.c | 1 + virt/kvm/kvm_main.c | 1 + 12 files changed, 12 insertions(+) commit ad2aa04218de9bd734d593adb0ac59854ec0cb68 Author: Pierre Morel Date: Thu Sep 10 16:35:08 2015 +0200 virtio/s390: handle failures of READ_VQ_CONF ccw In virtio_ccw_read_vq_conf() the return value of ccw_io_helper() was not checked. If the configuration could not be read properly, we'd wrongly assume a queue size of 0. Let's propagate any I/O error to virtio_ccw_setup_vq() so it may properly fail. Signed-off-by: Pierre Morel Signed-off-by: Cornelia Huck Signed-off-by: Michael S. Tsirkin drivers/s390/virtio/virtio_ccw.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit fd2e8d4300c56f9660679d629c449118e14c00cd Author: Michael S. Tsirkin Date: Wed Sep 9 22:26:25 2015 +0300 tools/virtio: propagate V=X to kernel build Signed-off-by: Michael S. Tsirkin tools/virtio/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e9fa50c6ccbebef0c4a4aae84090badf81359e6 Author: Michael S. Tsirkin Date: Wed Sep 9 22:24:56 2015 +0300 vhost: move features to core virtio 1 and any layout are core features, move them there. This fixes vhost test. Signed-off-by: Michael S. Tsirkin drivers/vhost/net.c | 3 +-- drivers/vhost/scsi.c | 4 +--- drivers/vhost/test.c | 3 +++ drivers/vhost/vhost.h | 4 +++- 4 files changed, 8 insertions(+), 6 deletions(-) commit 9b55613f42e8d40d5c9ccb8970bde6af4764b2ab Author: Russell King Date: Fri Sep 11 16:44:02 2015 +0100 ARM: fix Thumb2 signal handling when ARMv6 is enabled When a kernel is built covering ARMv6 to ARMv7, we omit to clear the IT state when entering a signal handler. This can cause the first few instructions to be conditionally executed depending on the parent context. In any case, the original test for >= ARMv7 is broken - ARMv6 can have Thumb-2 support as well, and an ARMv6T2 specific build would omit this code too. Relax the test back to ARMv6 or greater. This results in us always clearing the IT state bits in the PSR, even on CPUs where these bits are reserved. However, they're reserved for the IT state, so this should cause no harm. Cc: Fixes: d71e1352e240 ("Clear the IT state when invoking a Thumb-2 signal handler") Acked-by: Tony Lindgren Tested-by: H. Nikolaus Schaller Tested-by: Grazvydas Ignotas Signed-off-by: Russell King arch/arm/kernel/signal.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit f6cf87f748ff9480f97ff9c5caf6d6faacf52aa1 Merge: 91a4dc9 c5e6bd2 Author: Ingo Molnar Date: Wed Sep 16 09:06:54 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: - Fix segfault pressing -> in 'perf top' with no hist entries. (Wang Nan) E.g: perf top -e page-faults --pid 11400 # 11400 generates no page-fault - Fix propagation of thread and cpu maps, that got broken when doing incomplete changes to better support events with a PMU cpu mask, leading to Intel PT to fail with an error like: $ perf record -e intel_pt//u uname Error: The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (sched:sched_switch). Because intel_pt adds that sched:sched_switch evsel to the evlist after the thread/cpu maps were propagated to the evsels, fix it. (Adrian Hunter) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 8315b77d72c5f0b18ceb513303d845e73166133c Author: Li Jun Date: Wed Sep 16 14:46:32 2015 +0800 usb: chipidea: imx: fix a typo for imx6sx Use imx6sx instead of imx6sl's platform flags for imx6sx. Fixes: e14db48dfcf3 ("usb: chipidea: imx: add runtime power management support") Cc: # v4.1+ Signed-off-by: Li Jun Signed-off-by: Peter Chen drivers/usb/chipidea/ci_hdrc_imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f0bd44e937468446d080b98b5669844744c24a1 Author: Rafael J. Wysocki Date: Wed Sep 16 02:17:49 2015 +0200 cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get() cpufreq_cpu_get() called by get_cur_freq_on_cpu() is overkill, because the ->get() callback is always invoked in a context in which all of the conditions checked by cpufreq_cpu_get() are guaranteed to be satisfied. Use cpufreq_cpu_get_raw() instead of it and drop the corresponding cpufreq_cpu_put() from get_cur_freq_on_cpu(). Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/acpi-cpufreq.c | 3 +-- drivers/cpufreq/cpufreq.c | 4 ++-- include/linux/cpufreq.h | 5 +++++ 3 files changed, 8 insertions(+), 4 deletions(-) commit f0b2e563bc419df7c1b3d2f494574c25125f6aed Author: Jeff Moyer Date: Fri Aug 14 16:15:32 2015 -0400 blockdev: don't set S_DAX for misaligned partitions The dax code doesn't currently support misaligned partitions, so disable O_DIRECT via dax until such time as that support materializes. Cc: Suggested-by: Boaz Harrosh Signed-off-by: Jeff Moyer Signed-off-by: Dan Williams fs/block_dev.c | 7 +++++++ 1 file changed, 7 insertions(+) commit e94f5a2285fc94202a9efb2c687481f29b64132c Author: Jeff Moyer Date: Fri Aug 14 16:15:31 2015 -0400 dax: fix O_DIRECT I/O to the last block of a blockdev commit bbab37ddc20b (block: Add support for DAX reads/writes to block devices) caused a regression in mkfs.xfs. That utility sets the block size of the device to the logical block size using the BLKBSZSET ioctl, and then issues a single sector read from the last sector of the device. This results in the dax_io code trying to do a page-sized read from 512 bytes from the end of the device. The result is -ERANGE being returned to userspace. The fix is to align the block to the page size before calling get_block. Thanks to willy for simplifying my original patch. Cc: Signed-off-by: Jeff Moyer Tested-by: Linda Knippers Signed-off-by: Dan Williams fs/dax.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 20471ed4d403a5f4de6aa0c10cd1e446f7f2b3c7 Author: Julia Lawall Date: Sun Sep 13 14:15:27 2015 +0200 dccp: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); @@ expression x; @@ -if (x != NULL) { \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); x = NULL; -} // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller net/dccp/ackvec.c | 12 ++++-------- net/dccp/ccid.c | 3 +-- 2 files changed, 5 insertions(+), 10 deletions(-) commit adf78edac09f9640cd9676571586c4be46fb527c Author: Julia Lawall Date: Sun Sep 13 14:15:18 2015 +0200 net: core: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) { \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); x = NULL; -} // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller net/core/sock.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 58d29e3ce903dcafacee9e355225d64922325cf0 Author: Julia Lawall Date: Sun Sep 13 14:15:03 2015 +0200 atm: he: drop null test before destroy functions Remove unneeded NULL test. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ -if (x != NULL) \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x); // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/atm/he.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 982b527004826b40de1e821b123c70f05b41496c Author: Jesse Gross Date: Fri Sep 11 18:38:28 2015 -0700 openvswitch: Fix mask generation for nested attributes. Masks were added to OVS flows in a way that was backwards compatible with userspace programs that did not generate masks. As a result, it is possible that we may receive flows that do not have a mask and we need to synthesize one. Generating a mask requires iterating over attributes and descending into nested attributes. For each level we need to know the size to generate the correct mask. We do this with a linked table of attribute types. Although the logic to handle these nested attributes was there in concept, there are a number of bugs in practice. Examples include incomplete links between tables, variable length attributes being treated as nested and missing sanity checks. Signed-off-by: Jesse Gross Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/flow_netlink.c | 82 ++++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 23 deletions(-) commit 865ca084fdc68cd9b658da4b098008278da8fed3 Author: Luck, Tony Date: Tue Sep 15 13:50:18 2015 -0700 ia64: Enable userfaultfd and membarrier system calls Signed-off-by: Tony Luck Signed-off-by: Linus Torvalds arch/ia64/include/asm/unistd.h | 2 +- arch/ia64/include/uapi/asm/unistd.h | 2 ++ arch/ia64/kernel/entry.S | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) commit 9fd60088ffed7573c2d409ddc63a2150a5edd5d8 Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:26 2015 +0300 iser-target: Skip data copy if all the command data comes as immediate Given that supporting zcopy immediate data for all IOs requires iser driver to use its own buffer allocations, we settle with avoiding data copy for IOs with data length of up to 8K (which is more latency sensitive anyway). This trims IO write latency by up to 3us and increase IOPs by up to 40% by saving CPU time doing sg_copy_from_buffer (8K IO size is the obvious winner here). Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 26 ++++++++++++++++++-------- drivers/infiniband/ulp/isert/ib_isert.h | 1 + 2 files changed, 19 insertions(+), 8 deletions(-) commit 4366b19ca5eb15e63d6640565ade135cf06be91a Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:25 2015 +0300 iser-target: Change the recv buffers posting logic iser target batches post recv operations to avoid the overhead of acquiring the recv queue lock and posting a HW doorbell for each command. We change it to be per command in order to support zcopy immediate data for IOs that fits in the 8K transfer boundary (in the next patch). (Fix minor patch fuzz due to ib_mr removal - nab) Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 111 +++++++++++++++++++------------- drivers/infiniband/ulp/isert/ib_isert.h | 4 +- 2 files changed, 67 insertions(+), 48 deletions(-) commit bd3792205aaeb79b994338af2e5499fa503d79c7 Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:24 2015 +0300 iser-target: Fix pending connections handling in target stack shutdown sequnce Instead of handing a connection to the iscsi stack for processing right after accepting (rdma_accept) we only hand the connection to the iscsi core after we reached to a connected state (ESTABLISHED CM event). This will prevent two error scenrios: 1. race between rdma connection teardown and iscsi login sequence reported by Nic in: (ce9a9fc20a78a "iser-target: Fix REJECT CM event use-after-free OOPs") 2. target stack shutdown sequence race with constant login attempts by multiple initiators. We address this by maintaining two queues at the isert_np level: - accepted: connections that were accepted but have not reached connected state (might get rejected, unreachable or error). - pending: connections in connected state, but have yet to handed to the iscsi core for login processing. iser connections are promoted to the pending queue only from the accepted queue. This way the iscsi core now will only handle functional iser connections and once we shutdown the target stack, we look for any stales that got left behind so we can safely release them. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 66 ++++++++++++++++++--------------- drivers/infiniband/ulp/isert/ib_isert.h | 5 ++- 2 files changed, 40 insertions(+), 31 deletions(-) commit ed8cb0a4378c0e7035db047987fe0e7309020ab5 Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:23 2015 +0300 iser-target: Remove np_ prefix from isert_np members These are always referenced from np-> so no need for the prefix. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 58 ++++++++++++++++----------------- drivers/infiniband/ulp/isert/ib_isert.h | 8 ++--- 2 files changed, 33 insertions(+), 33 deletions(-) commit f27dfa1f0eb91494577a395e6b8a9aac2832e9cf Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:22 2015 +0300 iser-target: Remove unused variables Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 1 - drivers/infiniband/ulp/isert/ib_isert.h | 5 ----- 2 files changed, 6 deletions(-) commit 3e03c4b01da3e6a5f3081eb0aa252490fe83e352 Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:21 2015 +0300 iser-target: Put the reference on commands waiting for unsol data The iscsi target core teardown sequence calls wait_conn for all active commands to finish gracefully by: - move the queue-pair to error state - drain all the completions - wait for the core to finish handling all session commands However, when tearing down a session while there are sequenced commands that are still waiting for unsolicited data outs, we can block forever as these are missing an extra reference put. We basically need the equivalent of iscsit_free_queue_reqs_for_conn() which is called after wait_conn has returned. Address this by an explicit walk on conn_cmd_list and put the extra reference. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 38 ++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) commit a4c15cd957cbd728f685645de7a150df5912591a Author: Jenny Derzhavetz Date: Sun Sep 6 14:52:20 2015 +0300 iser-target: remove command with state ISTATE_REMOVE As documented in iscsit_sequence_cmd: /* * Existing callers for iscsit_sequence_cmd() will silently * ignore commands with CMDSN_LOWER_THAN_EXP, so force this * return for CMDSN_MAXCMDSN_OVERRUN as well.. */ We need to silently finish a command when it's in ISTATE_REMOVE. This fixes an teardown hang we were seeing where a mis-behaved initiator (triggered by allocation error injections) sent us a cmdsn which was lower than expected. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 892aa01df2ad67237f213c8f9d9b491e908aa910 Author: Sjoerd Simons Date: Fri Sep 11 22:25:48 2015 +0200 net: stmmac: Use msleep rather then udelay for reset delay The reset delays used for stmmac are in the order of 10ms to 1 second, which is far too long for udelay usage, so switch to using msleep. Practically this fixes the PHY not being reliably detected in some cases as udelay wouldn't actually delay for long enough to let the phy reliably be reset. Signed-off-by: Sjoerd Simons Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit d64f69b0373a7d0bcec8b5da7712977518a8f42b Author: Roopa Prabhu Date: Tue Sep 15 14:44:29 2015 -0700 rtnetlink: catch -EOPNOTSUPP errors from ndo_bridge_getlink problem reported: kernel 4.1.3 ------------ # bridge vlan port vlan ids eth0 1 PVID Egress Untagged 90 91 92 93 94 95 96 97 98 99 100 vmbr0 1 PVID Egress Untagged 94 kernel 4.2 ----------- # bridge vlan port vlan ids ndo_bridge_getlink can return -EOPNOTSUPP when an interfaces ndo_bridge_getlink op is set to switchdev_port_bridge_getlink and CONFIG_SWITCHDEV is not defined. This today can happen to bond, rocker and team devices. This patch adds -EOPNOTSUPP checks after calls to ndo_bridge_getlink. Fixes: 85fdb956726ff2a ("switchdev: cut over to new switchdev_port_bridge_getlink") Reported-by: Alexandre DERUMIER Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/core/rtnetlink.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit daf158d0d544cec80b7b30deff8cfc59a6e17610 Author: Simon Guinot Date: Tue Sep 15 22:41:21 2015 +0200 net: mvneta: fix DMA buffer unmapping in mvneta_rx() This patch fixes a regression introduced by the commit a84e32894191 ("net: mvneta: fix refilling for Rx DMA buffers"). Due to this commit the newly allocated Rx buffers are DMA-unmapped in place of those passed to the networking stack. Obviously, this causes data corruptions. This patch fixes the issue by ensuring that the right Rx buffers are DMA-unmapped. Reported-by: Oren Laskin Signed-off-by: Simon Guinot Fixes: a84e32894191 ("net: mvneta: fix refilling for Rx DMA buffers") Cc: # v3.8+ Tested-by: Oren Laskin Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 244b7f4324895e7c796cc94e8a8f70288ed20bdc Merge: e8684c8 70da5b5 Author: David S. Miller Date: Tue Sep 15 14:53:46 2015 -0700 Merge branch 'ip6tunnel_dst' Martin KaFai Lau says: ==================== ipv6: Fix dst_entry refcnt bugs in ip6_tunnel v4: - Fix a compilation error in patch 5 when CONFIG_LOCKDEP is turned on and re-test it v3: - Merge a 'if else if' test in patch 4 - Use rcu_dereference_protected in patch 5 to fix a sparse check when CONFIG_SPARSE_RCU_POINTER is enabled v2: - Add patch 4 and 5 to remove the spinlock v1: This patch series is to fix the dst refcnt bugs in ip6_tunnel. Patch 1 and 2 are the prep works. Patch 3 is the fix. I can reproduce the bug by adding and removing the ip6gre tunnel while running a super_netperf TCP_CRR test. I get the following trace by adding WARN_ON_ONCE(newrefcnt < 0) to dst_release(): [ 312.760432] ------------[ cut here ]------------ [ 312.774664] WARNING: CPU: 2 PID: 10263 at net/core/dst.c:288 dst_release+0xf3/0x100() [ 312.776041] Modules linked in: k10temp coretemp hwmon ip6_gre ip6_tunnel tunnel6 ipmi_devintf ipmi_ms\ ghandler ip6table_filter ip6_tables xt_NFLOG nfnetlink_log nfnetlink xt_comment xt_statistic iptable_fil\ ter ip_tables x_tables nfsv3 nfs_acl nfs fscache lockd grace mptctl netconsole autofs4 rpcsec_gss_krb5 a\ uth_rpcgss oid_registry sunrpc ipv6 dm_mod loop iTCO_wdt iTCO_vendor_support serio_raw rtc_cmos pcspkr i\ 2c_i801 i2c_core lpc_ich mfd_core ehci_pci ehci_hcd e1000e mlx4_en ptp pps_core vxlan udp_tunnel ip6_udp\ _tunnel mlx4_core sg button ext3 jbd mpt2sas raid_class [ 312.785302] CPU: 2 PID: 10263 Comm: netperf Not tainted 4.2.0-rc8-00046-g4db9b63-dirty #15 [ 312.791695] Hardware name: Quanta Freedom /Windmill-EP, BIOS F03_3B04 09/12/2013 [ 312.792965] ffffffff819dca2c ffff8811dfbdf6f8 ffffffff816537de ffff88123788fdb8 [ 312.794263] 0000000000000000 ffff8811dfbdf738 ffffffff81052646 ffff8811dfbdf768 [ 312.795593] ffff881203a98180 00000000ffffffff ffff88242927a000 ffff88120a2532e0 [ 312.796946] Call Trace: [ 312.797380] [] dump_stack+0x45/0x57 [ 312.798288] [] warn_slowpath_common+0x86/0xc0 [ 312.799699] [] warn_slowpath_null+0x1a/0x20 [ 312.800852] [] dst_release+0xf3/0x100 [ 312.801834] [] ip6_tnl_dst_store+0x48/0x70 [ip6_tunnel] [ 312.803738] [] ip6gre_xmit2+0x536/0x720 [ip6_gre] [ 312.804774] [] ip6gre_tunnel_xmit+0x16a/0x410 [ip6_gre] [ 312.805986] [] dev_hard_start_xmit+0x23b/0x390 [ 312.808810] [] ? neigh_destroy+0xef/0x140 [ 312.809843] [] __dev_queue_xmit+0x48c/0x4f0 [ 312.813931] [] dev_queue_xmit_sk+0x13/0x20 [ 312.814993] [] neigh_direct_output+0x12/0x20 [ 312.817448] [] ip6_finish_output2+0x183/0x460 [ipv6] [ 312.818762] [] ? find_next_bit+0x15/0x20 [ 312.819671] [] ip6_finish_output+0x89/0xe0 [ipv6] [ 312.820720] [] ip6_output+0x44/0xe0 [ipv6] [ 312.821762] [] ? nf_hook_slow+0x69/0xc0 [ 312.823123] [] ip6_xmit+0x242/0x4c0 [ipv6] [ 312.824073] [] ? ac6_proc_exit+0x20/0x20 [ipv6] [ 312.825116] [] inet6_csk_xmit+0x61/0xa0 [ipv6] [ 312.826127] [] tcp_transmit_skb+0x4f0/0x9b0 [ 312.827441] [] tcp_connect+0x637/0x7a0 [ 312.828327] [] tcp_v6_connect+0x2d6/0x550 [ipv6] [ 312.829581] [] __inet_stream_connect+0x95/0x2f0 [ 312.830600] [] ? hrtimer_try_to_cancel+0x1a/0xf0 [ 312.833456] [] ? timerqueue_add+0x59/0xb0 [ 312.834407] [] inet_stream_connect+0x38/0x50 [ 312.835886] [] SYSC_connect+0xb7/0xf0 [ 312.840035] [] ? do_setitimer+0x1b3/0x200 [ 312.840983] [] ? alarm_setitimer+0x3a/0x70 [ 312.841941] [] SyS_connect+0xe/0x10 [ 312.842818] [] entry_SYSCALL_64_fastpath+0x12/0x6a [ 312.844206] ---[ end trace 43f3ecd86c3b1313 ]--- ==================== Signed-off-by: David S. Miller commit 70da5b5c532f0ec8aa76b4f46158da5f010f34b3 Author: Martin KaFai Lau Date: Tue Sep 15 14:30:09 2015 -0700 ipv6: Replace spinlock with seqlock and rcu in ip6_tunnel This patch uses a seqlock to ensure consistency between idst->dst and idst->cookie. It also makes dst freeing from fib tree to undergo a rcu grace period. Signed-off-by: Martin KaFai Lau Signed-off-by: David S. Miller include/net/ip6_tunnel.h | 4 ++-- net/ipv6/ip6_fib.c | 9 +++++++-- net/ipv6/ip6_tunnel.c | 51 +++++++++++++++++++++++++----------------------- 3 files changed, 36 insertions(+), 28 deletions(-) commit 8e3d5be7368107f0c27a1f8126d79b01a47e9567 Author: Martin KaFai Lau Date: Tue Sep 15 14:30:08 2015 -0700 ipv6: Avoid double dst_free It is a prep work to get dst freeing from fib tree undergo a rcu grace period. The following is a common paradigm: if (ip6_del_rt(rt)) dst_free(rt) which means, if rt cannot be deleted from the fib tree, dst_free(rt) now. 1. We don't know the ip6_del_rt(rt) failure is because it was not managed by fib tree (e.g. DST_NOCACHE) or it had already been removed from the fib tree. 2. If rt had been managed by the fib tree, ip6_del_rt(rt) failure means dst_free(rt) has been called already. A second dst_free(rt) is not always obviously safe. The rt may have been destroyed already. 3. If rt is a DST_NOCACHE, dst_free(rt) should not be called. 4. It is a stopper to make dst freeing from fib tree undergo a rcu grace period. This patch is to use a DST_NOCACHE flag to indicate a rt is not managed by the fib tree. Signed-off-by: Martin KaFai Lau Signed-off-by: David S. Miller net/ipv6/addrconf.c | 7 +++---- net/ipv6/ip6_fib.c | 11 +++++++++-- net/ipv6/route.c | 7 ++++--- 3 files changed, 16 insertions(+), 9 deletions(-) commit cdf3464e6c6bd764277cbbe992cd12da735b92fb Author: Martin KaFai Lau Date: Tue Sep 15 14:30:07 2015 -0700 ipv6: Fix dst_entry refcnt bugs in ip6_tunnel Problems in the current dst_entry cache in the ip6_tunnel: 1. ip6_tnl_dst_set is racy. There is no lock to protect it: - One major problem is that the dst refcnt gets messed up. F.e. the same dst_cache can be released multiple times and then triggering the infamous dst refcnt < 0 warning message. - Another issue is the inconsistency between dst_cache and dst_cookie. It can be reproduced by adding and removing the ip6gre tunnel while running a super_netperf TCP_CRR test. 2. ip6_tnl_dst_get does not take the dst refcnt before returning the dst. This patch: 1. Create a percpu dst_entry cache in ip6_tnl 2. Use a spinlock to protect the dst_cache operations 3. ip6_tnl_dst_get always takes the dst refcnt before returning Signed-off-by: Martin KaFai Lau Signed-off-by: David S. Miller include/net/ip6_tunnel.h | 11 ++++- net/ipv6/ip6_gre.c | 38 ++++++++------- net/ipv6/ip6_tunnel.c | 122 +++++++++++++++++++++++++++++++++++------------ 3 files changed, 123 insertions(+), 48 deletions(-) commit f230d1e891ba1da5953460516960894154f265db Author: Martin KaFai Lau Date: Tue Sep 15 14:30:06 2015 -0700 ipv6: Rename the dst_cache helper functions in ip6_tunnel It is a prep work to fix the dst_entry refcnt bugs in ip6_tunnel. This patch rename: 1. ip6_tnl_dst_check() to ip6_tnl_dst_get() to better reflect that it will take a dst refcnt in the next patch. 2. ip6_tnl_dst_store() to ip6_tnl_dst_set() to have a more conventional name matching with ip6_tnl_dst_get(). Signed-off-by: Martin KaFai Lau Signed-off-by: David S. Miller include/net/ip6_tunnel.h | 4 ++-- net/ipv6/ip6_gre.c | 4 ++-- net/ipv6/ip6_tunnel.c | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) commit a3c119d392d7d7c68865fe76f5732ca9b8164d68 Author: Martin KaFai Lau Date: Tue Sep 15 14:30:05 2015 -0700 ipv6: Refactor common ip6gre_tunnel_init codes It is a prep work to fix the dst_entry refcnt bugs in ip6_tunnel. This patch refactors some common init codes used by both ip6gre_tunnel_init and ip6gre_tap_init. Signed-off-by: Martin KaFai Lau Signed-off-by: David S. Miller net/ipv6/ip6_gre.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) commit 09a77a885233e2a20dac2635a79c83ccf50a26a1 Author: David Woodhouse Date: Tue Sep 15 16:03:36 2015 +0100 modsign: Fix GPL/OpenSSL licence incompatibility The GPL does not permit us to link against the OpenSSL library. Use LGPL for sign-file and extract-file instead. [ The whole "openssl isn't compatible with gpl" is really just fear-mongering, but there's no reason not to make modsign LGPL, so nobody cares. - Linus ] Reported-by: Julian Andres Klode Signed-off-by: David Woodhouse Signed-off-by: David Howells Reviewed-by: Julian Andres Klode Signed-off-by: Linus Torvalds scripts/extract-cert.c | 10 +++++----- scripts/sign-file.c | 13 ++++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) commit 237865f195f6b10e4724ce49eeb3972641da882a Author: Bjorn Helgaas Date: Tue Sep 15 13:18:04 2015 -0500 PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch code" Revert dff22d2054b5 ("PCI: Call pci_read_bridge_bases() from core instead of arch code"). Reading PCI bridge windows is not arch-specific in itself, but there is PCI core code that doesn't work correctly if we read them too early. For example, Hannes found this case on an ARM Freescale i.mx6 board: pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff] pci 0000:00:00.0: PCI bridge to [bus 01-ff] pci 0000:00:00.0: BAR 8: no space for [mem size 0x01000000] (mem window) pci 0000:01:00.0: BAR 2: failed to assign [mem size 0x00200000] pci 0000:01:00.0: BAR 1: failed to assign [mem size 0x00004000] pci 0000:01:00.0: BAR 0: failed to assign [mem size 0x00000100] The 00:00.0 mem window needs to be at least 3MB: the 01:00.0 device needs 0x204100 of space, and mem windows are megabyte-aligned. Bus sizing can increase a bridge window size, but never *decrease* it (see d65245c3297a ("PCI: don't shrink bridge resources")). Prior to dff22d2054b5, ARM didn't read bridge windows at all, so the "original size" was zero, and we assigned a 3MB window. After dff22d2054b5, we read the bridge windows before sizing the bus. The firmware programmed a 16MB window (size 0x01000000) in 00:00.0, and since we never decrease the size, we kept 16MB even though we only needed 3MB. But 16MB doesn't fit in the host bridge aperture, so we failed to assign space for the window and the downstream devices. I think this is a defect in the PCI core: we shouldn't rely on the firmware to assign sensible windows. Ray reported a similar problem, also on ARM, with Broadcom iProc. Issues like this are too hard to fix right now, so revert dff22d2054b5. Reported-by: Hannes Reported-by: Ray Jui Link: http://lkml.kernel.org/r/CAAa04yFQEUJm7Jj1qMT57-LG7ZGtnhNDBe=PpSRa70Mj+XhW-A@mail.gmail.com Link: http://lkml.kernel.org/r/55F75BB8.4070405@broadcom.com Signed-off-by: Bjorn Helgaas Acked-by: Yinghai Lu Acked-by: Lorenzo Pieralisi arch/alpha/kernel/pci.c | 7 ++++++- arch/frv/mb93090-mb00/pci-vdk.c | 2 ++ arch/ia64/pci/pci.c | 5 +++-- arch/microblaze/pci/pci-common.c | 9 ++++++++- arch/mips/pci/pci.c | 6 ++++++ arch/mn10300/unit-asb2305/pci.c | 1 + arch/powerpc/kernel/pci-common.c | 8 +++++++- arch/x86/pci/common.c | 1 + arch/xtensa/kernel/pci.c | 4 ++++ drivers/parisc/dino.c | 3 +++ drivers/parisc/lba_pci.c | 1 + drivers/pci/probe.c | 6 ------ 12 files changed, 42 insertions(+), 11 deletions(-) commit 6584d84c3e504c76ad291cc2e381bbeed59798ab Author: Huang Shijie Date: Tue Sep 1 10:35:50 2015 +0800 genirq: Update the comment for generic_handle_irq_desc __do_IRQ() was removed by commit 1c77ff2 "genirq: Remove __do_IRQ", but the comment referring to __do_IRQ() was left. Update the comment for generic_handle_irq_desc(). Signed-off-by: Huang Shijie Cc: jiang.liu@linux.intel.com Cc: peterz@infradead.org Cc: rafael.j.wysocki@intel.com Cc: jason@lakedaemon.net Cc: marc.zyngier@arm.com Link: http://lkml.kernel.org/r/1441074950-3893-1-git-send-email-shijie.huang@arm.com Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3829c664b1eec243f2a355829efa40f0f414de8d Author: Thomas Gleixner Date: Tue Sep 15 13:47:24 2015 +0200 genirq: Remove stale comment Signed-off-by: Thomas Gleixner include/linux/irq.h | 4 ---- 1 file changed, 4 deletions(-) commit 4cd7863ecb90010533c178fba6ecc84d5529b402 Author: Geert Uytterhoeven Date: Tue Sep 8 19:00:36 2015 +0200 irqchip/renesas-irqc: Propagate wake-up settings to parent The renesas-irqc interrupt controller is cascaded to the GIC, but its driver doesn't propagate wake-up settings to the parent interrupt controller. Since commit aec89ef72ba6c944 ("irqchip/gic: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND"), the GIC driver masks interrupts during suspend, and wake-up through gpio-keys now fails on r8a73a4/ape6evm. Fix this by propagating wake-up settings to the parent interrupt controller. There's no need to handle irq_set_irq_wake() failures, as the renesas-irqc interrupt controller is always cascaded to a GIC, and the GIC driver always sets SKIP_SET_WAKE since the aforementioned commit. Signed-off-by: Geert Uytterhoeven Cc: Sudeep Holla Cc: Magnus Damm Cc: Jason Cooper Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1441731636-17610-3-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-irqc.c | 3 +++ 1 file changed, 3 insertions(+) commit f4e209cdc7a00f934007f40cf885471799073b0d Author: Geert Uytterhoeven Date: Tue Sep 8 19:00:35 2015 +0200 irqchip/renesas-intc-irqpin: Propagate wake-up settings to parent The renesas-intc-irqpin interrupt controller is cascaded to the GIC, but its driver doesn't propagate wake-up settings to the parent interrupt controller. Since commit aec89ef72ba6c944 ("irqchip/gic: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND"), the GIC driver masks interrupts during suspend, and wake-up through gpio-keys now fails on r8a7740/armadillo and sh73a0/kzm9g. Fix this by propagating wake-up settings to the parent interrupt controller. There's no need to handle irq_set_irq_wake() failures, as the renesas-intc-irqpin interrupt controller is always cascaded to a GIC, and the GIC driver always sets SKIP_SET_WAKE since the aforementioned commit. Signed-off-by: Geert Uytterhoeven Cc: Sudeep Holla Cc: Magnus Damm Cc: Jason Cooper Cc: Marc Zyngier Link: http://lkml.kernel.org/r/1441731636-17610-2-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-intc-irqpin.c | 3 +++ 1 file changed, 3 insertions(+) commit 769b5cf78e6c653c2f513649ee6c4e7a06723872 Author: Geert Uytterhoeven Date: Wed Sep 9 13:42:54 2015 +0200 irqchip/renesas-intc-irqpin: Use a separate lockdep class The renesas-intc-irqpin interrupt controller is cascaded to the GIC. Hence when propagating wake-up settings to its parent interrupt controller, the following lockdep warning is printed: ============================================= [ INFO: possible recursive locking detected ] 4.2.0-armadillo-10725-g50fcd7643c034198 #781 Not tainted --------------------------------------------- s2ram/1179 is trying to acquire lock: (&irq_desc_lock_class){-.-...}, at: [] __irq_get_desc_lock+0x78/0x94 but task is already holding lock: (&irq_desc_lock_class){-.-...}, at: [] __irq_get_desc_lock+0x78/0x94 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&irq_desc_lock_class); lock(&irq_desc_lock_class); *** DEADLOCK *** May be due to missing lock nesting notation 7 locks held by s2ram/1179: #0: (sb_writers#7){.+.+.+}, at: [] __sb_start_write+0x64/0xb8 #1: (&of->mutex){+.+.+.}, at: [] kernfs_fop_write+0x78/0x1a0 #2: (s_active#23){.+.+.+}, at: [] kernfs_fop_write+0x80/0x1a0 #3: (autosleep_lock){+.+.+.}, at: [] pm_autosleep_lock+0x18/0x20 #4: (pm_mutex){+.+.+.}, at: [] pm_suspend+0x54/0x248 #5: (&dev->mutex){......}, at: [] __device_suspend+0xdc/0x240 #6: (&irq_desc_lock_class){-.-...}, at: [] __irq_get_desc_lock+0x78/0x94 stack backtrace: CPU: 0 PID: 1179 Comm: s2ram Not tainted 4.2.0-armadillo-10725-g50fcd7643c034198 Hardware name: Generic R8A7740 (Flattened Device Tree) [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [] (show_stack) from [] (dump_stack+0x20/0x28) [] (dump_stack) from [] (__lock_acquire+0x67c/0x1b88) [] (__lock_acquire) from [] (lock_acquire+0x9c/0xbc) [] (lock_acquire) from [] (_raw_spin_lock_irqsave+0x44/0x58) [] (_raw_spin_lock_irqsave) from [] (__irq_get_desc_lock+0x78/0x94 [] (__irq_get_desc_lock) from [] (irq_set_irq_wake+0x28/0x100) [] (irq_set_irq_wake) from [] (intc_irqpin_irq_set_wake+0x24/0x4c) [] (intc_irqpin_irq_set_wake) from [] (set_irq_wake_real+0x3c/0x50 [] (set_irq_wake_real) from [] (irq_set_irq_wake+0x64/0x100) [] (irq_set_irq_wake) from [] (gpio_keys_suspend+0x60/0xa0) [] (gpio_keys_suspend) from [] (platform_pm_suspend+0x3c/0x5c) Avoid this false positive by using a separate lockdep class for INTC External IRQ Pin interrupts. Signed-off-by: Geert Uytterhoeven Cc: Grygorii Strashko Cc: Magnus Damm Cc: Jason Cooper Link: http://lkml.kernel.org/r/1441798974-25716-3-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-intc-irqpin.c | 7 +++++++ 1 file changed, 7 insertions(+) commit b1370658804510f6a1c0517a8ff1c9534d371edd Author: Geert Uytterhoeven Date: Wed Sep 9 13:42:53 2015 +0200 irqchip/renesas-irqc: Use a separate lockdep class The renesas-irqc interrupt controller is cascaded to the GIC. Hence when propagating wake-up settings to its parent interrupt controller, the following lockdep warning is printed: ============================================= [ INFO: possible recursive locking detected ] 4.2.0-ape6evm-10725-g50fcd7643c034198 #280 Not tainted --------------------------------------------- s2ram/1072 is trying to acquire lock: (&irq_desc_lock_class){-.-...}, at: [] __irq_get_desc_lock+0x58/0x98 but task is already holding lock: (&irq_desc_lock_class){-.-...}, at: [] __irq_get_desc_lock+0x58/0x98 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&irq_desc_lock_class); lock(&irq_desc_lock_class); *** DEADLOCK *** May be due to missing lock nesting notation 6 locks held by s2ram/1072: #0: (sb_writers#7){.+.+.+}, at: [] __sb_start_write+0xa0/0xa8 #1: (&of->mutex){+.+.+.}, at: [] kernfs_fop_write+0x4c/0x1bc #2: (s_active#24){.+.+.+}, at: [] kernfs_fop_write+0x54/0x1bc #3: (pm_mutex){+.+.+.}, at: [] pm_suspend+0x10c/0x510 #4: (&dev->mutex){......}, at: [] __device_suspend+0xdc/0x2cc #5: (&irq_desc_lock_class){-.-...}, at: [] __irq_get_desc_lock+0x58/0x98 stack backtrace: CPU: 0 PID: 1072 Comm: s2ram Not tainted 4.2.0-ape6evm-10725-g50fcd7643c034198 #280 Hardware name: Generic R8A73A4 (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x88/0x98) [] (dump_stack) from [] (__lock_acquire+0x15cc/0x20e4) [] (__lock_acquire) from [] (lock_acquire+0xac/0x12c) [] (lock_acquire) from [] (_raw_spin_lock_irqsave+0x40/0x54) [] (_raw_spin_lock_irqsave) from [] (__irq_get_desc_lock+0x58/0x98) [] (__irq_get_desc_lock) from [] (irq_set_irq_wake+0x20/0xf8) [] (irq_set_irq_wake) from [] (irqc_irq_set_wake+0x20/0x4c) [] (irqc_irq_set_wake) from [] (irq_set_irq_wake+0x8c/0xf8) [] (irq_set_irq_wake) from [] (gpio_keys_suspend+0x74/0xc0) [] (gpio_keys_suspend) from [] (dpm_run_callback+0x54/0x124) Avoid this false positive by using a separate lockdep class for IRQC interrupts. Signed-off-by: Geert Uytterhoeven Cc: Grygorii Strashko Cc: Magnus Damm Cc: Jason Cooper Link: http://lkml.kernel.org/r/1441798974-25716-2-git-send-email-geert%2Brenesas@glider.be Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-irqc.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 157add60cb35913b8a848a3d7e6456b8ed134796 Author: Pavel Fedin Date: Sun Sep 13 12:14:33 2015 +0100 irqchip/GICv2m: Fix GICv2m build warning on 32 bits After GICv2m was enabled for 32-bit ARM kernel, a warning popped up: drivers/irqchip/irq-gic-v2m.c: In function gicv2m_compose_msi_msg: drivers/irqchip/irq-gic-v2m.c:100:2: warning: right shift count >= width of type [enabled by default] msg->address_hi = (u32) (addr >> 32); ^ This patch fixes it by using proper macros for splitting up the value. Signed-off-by: Pavel Fedin Reviewed-by: Marc Zyngier Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Stuart Yoder Cc: Jason Cooper Link: http://lkml.kernel.org/r/1442142873-20213-4-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v2m.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5a9a8915c8888b615521b17d70a4342187eae60b Author: Marc Zyngier Date: Sun Sep 13 12:14:32 2015 +0100 irqchip/gic-v3-its: Add missing cache flushes When the ITS is configured for non-cacheable transactions, make sure that the allocated, zeroed memory is flushed to the Point of Coherency, allowing the ITS to observe the zeros instead of random garbage (or even get its own data overwritten by zeros being evicted from the cache...). Fixes: 241a386c7dbb "irqchip: gicv3-its: Use non-cacheable accesses when no shareability" Reported-and-tested-by: Stuart Yoder Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Pavel Fedin Cc: Jason Cooper Link: http://lkml.kernel.org/r/1442142873-20213-3-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 12e14066f4835f5ee1ca795f0309415b54c067a9 Author: Marc Zyngier Date: Sun Sep 13 12:14:31 2015 +0100 irqchip/GIC: Add workaround for aliased GIC400 The GICv2 architecture mandates that the two 4kB GIC regions are contiguous, and on two separate physical pages (so that access to the second page can be trapped by a hypervisor). This doesn't work very well when PAGE_SIZE is 64kB. A relatively common hack^Wway to work around this is to alias each 4kB region over its own 64kB page. Of course in this case, the base address you want to use is not really the begining of the region, but base + 60kB (so that you get a contiguous 8kB region over two distinct pages). Normally, this would be described in DT with a new property, but some HW is already out there, and the firmware makes sure that it will override whatever you put in the GIC node. Duh. And of course, said firmware source code is not available, despite being based on u-boot. The workaround is to detect the case where the CPU interface size is set to 128kB, and verify the aliasing by checking that the ID register for GIC400 (which is the only GIC wired this way so far) is the same at base and base + 0xF000. In this case, we update the GIC base address and let it roll. And if you feel slightly sick by looking at this, rest assured that I do too... Reported-by: Julien Grall Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Stuart Yoder Cc: Pavel Fedin Cc: Jason Cooper Link: http://lkml.kernel.org/r/1442142873-20213-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic.c | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) commit e4084a16bbe07957811c75dfb7c9bf25c5862ba0 Author: Marc Zyngier Date: Sun Sep 13 13:37:03 2015 +0100 platform-msi: Do not cache msi_desc in handler_data The current implementation of platform MSI caches the msi_desc pointer in irq_data::handler_data. This is a bit silly, as we also have irq_data::msi_desc, which is perfectly valid. Remove the useless assignment and simplify the whole flow. Reported-by: Ma Jun Signed-off-by: Marc Zyngier Reviewed-by: Jiang Liu Link: http://lkml.kernel.org/r/1442147824-20971-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/base/platform-msi.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit dc2ec62f75fd9be78d07b3b453aeb0d201ead419 Author: Thomas Gleixner Date: Tue Sep 15 13:34:05 2015 +0200 net/mlx4_en: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Search and replace was done with coccinelle Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Amir Vadai drivers/net/ethernet/mellanox/mlx4/en_rx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit da92b4eb7e2ec9866f14a0c8f453788e8052dee7 Author: Jiang Liu Date: Mon Jun 1 16:05:33 2015 +0800 powerpc, irq: Use access helper irq_data_get_affinity_mask() Use access helper irq_data_get_affinity_mask() so we can move the affinity mask to irq_common_data. Signed-off-by: Jiang Liu Cc: Benjamin Herrenschmidt Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1433145945-789-25-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/powerpc/kernel/irq.c | 2 +- arch/powerpc/sysdev/xics/ics-opal.c | 2 +- arch/powerpc/sysdev/xics/ics-rtas.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 8f4216c7d28976f7ec1b2bcbfa0a9f787133c45e Author: Jason Wang Date: Tue Sep 15 14:41:57 2015 +0800 kvm: fix zero length mmio searching Currently, if we had a zero length mmio eventfd assigned on KVM_MMIO_BUS. It will never be found by kvm_io_bus_cmp() since it always compares the kvm_io_range() with the length that guest wrote. This will cause e.g for vhost, kick will be trapped by qemu userspace instead of vhost. Fixing this by using zero length if an iodevice is zero length. Cc: stable@vger.kernel.org Cc: Gleb Natapov Cc: Paolo Bonzini Signed-off-by: Jason Wang Reviewed-by: Cornelia Huck Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit eefd6b06b17c5478e7c24bea6f64beaa2c431ca6 Author: Jason Wang Date: Tue Sep 15 14:41:56 2015 +0800 kvm: fix double free for fast mmio eventfd We register wildcard mmio eventfd on two buses, once for KVM_MMIO_BUS and once on KVM_FAST_MMIO_BUS but with a single iodev instance. This will lead to an issue: kvm_io_bus_destroy() knows nothing about the devices on two buses pointing to a single dev. Which will lead to double free[1] during exit. Fix this by allocating two instances of iodevs then registering one on KVM_MMIO_BUS and another on KVM_FAST_MMIO_BUS. CPU: 1 PID: 2894 Comm: qemu-system-x86 Not tainted 3.19.0-26-generic #28-Ubuntu Hardware name: LENOVO 2356BG6/2356BG6, BIOS G7ET96WW (2.56 ) 09/12/2013 task: ffff88009ae0c4b0 ti: ffff88020e7f0000 task.ti: ffff88020e7f0000 RIP: 0010:[] [] ioeventfd_release+0x28/0x60 [kvm] RSP: 0018:ffff88020e7f3bc8 EFLAGS: 00010292 RAX: dead000000200200 RBX: ffff8801ec19c900 RCX: 000000018200016d RDX: ffff8801ec19cf80 RSI: ffffea0008bf1d40 RDI: ffff8801ec19c900 RBP: ffff88020e7f3bd8 R08: 000000002fc75a01 R09: 000000018200016d R10: ffffffffc07df6ae R11: ffff88022fc75a98 R12: ffff88021e7cc000 R13: ffff88021e7cca48 R14: ffff88021e7cca50 R15: ffff8801ec19c880 FS: 00007fc1ee3e6700(0000) GS:ffff88023e240000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f8f389d8000 CR3: 000000023dc13000 CR4: 00000000001427e0 Stack: ffff88021e7cc000 0000000000000000 ffff88020e7f3be8 ffffffffc07e2622 ffff88020e7f3c38 ffffffffc07df69a ffff880232524160 ffff88020e792d80 0000000000000000 ffff880219b78c00 0000000000000008 ffff8802321686a8 Call Trace: [] ioeventfd_destructor+0x12/0x20 [kvm] [] kvm_put_kvm+0xca/0x210 [kvm] [] kvm_vcpu_release+0x18/0x20 [kvm] [] __fput+0xe7/0x250 [] ____fput+0xe/0x10 [] task_work_run+0xd4/0xf0 [] do_exit+0x368/0xa50 [] ? recalc_sigpending+0x1f/0x60 [] do_group_exit+0x45/0xb0 [] get_signal+0x291/0x750 [] do_signal+0x28/0xab0 [] ? do_futex+0xdb/0x5d0 [] ? __wake_up_locked_key+0x18/0x20 [] ? SyS_futex+0x76/0x170 [] do_notify_resume+0x69/0xb0 [] int_signal+0x12/0x17 Code: 5d c3 90 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 83 ec 08 48 8b 7f 20 e8 06 d6 a5 c0 48 8b 43 08 48 8b 13 48 89 df 48 89 42 08 <48> 89 10 48 b8 00 01 10 00 00 RIP [] ioeventfd_release+0x28/0x60 [kvm] RSP Cc: stable@vger.kernel.org Cc: Gleb Natapov Cc: Paolo Bonzini Signed-off-by: Jason Wang Reviewed-by: Cornelia Huck Signed-off-by: Paolo Bonzini virt/kvm/eventfd.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit 85da11ca587c8eb73993a1b503052391a73586f9 Author: Jason Wang Date: Tue Sep 15 14:41:55 2015 +0800 kvm: factor out core eventfd assign/deassign logic This patch factors out core eventfd assign/deassign logic and leaves the argument checking and bus index selection to callers. Cc: stable@vger.kernel.org Cc: Gleb Natapov Cc: Paolo Bonzini Signed-off-by: Jason Wang Reviewed-by: Cornelia Huck Signed-off-by: Paolo Bonzini virt/kvm/eventfd.c | 85 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 35 deletions(-) commit 8453fecbecae26edb3f278627376caab05d9a88d Author: Jason Wang Date: Tue Sep 15 14:41:54 2015 +0800 kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd We only want zero length mmio eventfd to be registered on KVM_FAST_MMIO_BUS. So check this explicitly when arg->len is zero to make sure this. Cc: stable@vger.kernel.org Cc: Gleb Natapov Cc: Paolo Bonzini Signed-off-by: Jason Wang Reviewed-by: Cornelia Huck Signed-off-by: Paolo Bonzini virt/kvm/eventfd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d10bcd473301888f957ec4b6b12aa3621be78d59 Author: Will Deacon Date: Wed Sep 2 18:49:28 2015 +0100 arm64: head.S: initialise mdcr_el2 in el2_setup When entering the kernel at EL2, we fail to initialise the MDCR_EL2 register which controls debug access and PMU capabilities at EL1. This patch ensures that the register is initialised so that all traps are disabled and all the PMU counters are available to the host. When a guest is scheduled, KVM takes care to configure trapping appropriately. Cc: Acked-by: Marc Zyngier Signed-off-by: Will Deacon arch/arm64/kernel/head.S | 5 +++++ 1 file changed, 5 insertions(+) commit 2314ee4d444e28d4670ff80c84df68c25887decb Author: Leo Yan Date: Fri Aug 21 04:40:22 2015 +0100 arm64: enable generic idle loop Enable generic idle loop for ARM64, so can support for hlt/nohlt command line options to override default idle loop behavior. Acked-by: Catalin Marinas Signed-off-by: Leo Yan Signed-off-by: Will Deacon arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) commit c5e6bd2ed3e81df443e4ae11e95ed71ff77bf9e5 Author: Adrian Hunter Date: Tue Sep 8 10:59:02 2015 +0300 perf tests: Fix software clock events test setting maps The test titled "Test software clock events have valid period values" was setting cpu/thread maps directly. Make it use the proper function perf_evlist__set_maps() especially now that it also propagates the maps. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-15-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/sw-clock.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 2998272275fc31fc3d478ef9c95e7eaef67dafa3 Author: Adrian Hunter Date: Tue Sep 8 10:59:01 2015 +0300 perf tests: Fix task exit test setting maps The test titled "Test number of exit event of a simple workload" was setting cpu/thread maps directly. Make it use the proper function perf_evlist__set_maps() especially now that it also propagates the maps. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-14-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/task-exit.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 8c0498b6891d7ca5c379c6283de7fc7fe8eebe5c Author: Adrian Hunter Date: Tue Sep 8 10:59:00 2015 +0300 perf evlist: Fix create_syswide_maps() not propagating maps Fix it by making it call perf_evlist__set_maps() instead of setting the maps itself. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-13-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 44c42d71c659527c81bf169808959c9339116d85 Author: Adrian Hunter Date: Tue Sep 8 10:58:59 2015 +0300 perf evlist: Fix add() not propagating maps If evsels are added after maps are created, then they won't have any maps propagated to them. Fix that. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-12-git-send-email-adrian.hunter@intel.com [ Moved the moving of propagate_maps() to the patch before, so that this one does _just_ the one lile fix calling in add()] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 2 ++ 1 file changed, 2 insertions(+) commit adc0c3e87b0e1baeccabe09b6dba738f17d0e91d Author: Adrian Hunter Date: Tue Sep 8 10:58:58 2015 +0300 perf evlist: Factor out a function to propagate maps for a single evsel Subsequent fixes will need a function that just propagates maps for a single evsel so factor it out. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-11-git-send-email-adrian.hunter@intel.com [ Moved them to before perf_evlist__add() to avoid having to move it in the next patch ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 49 ++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) commit 74bfd2b25de354feb4484c553dce4fe8d9c3b60b Author: Adrian Hunter Date: Tue Sep 8 10:58:57 2015 +0300 perf evlist: Make create_maps() use set_maps() Since there is a function to set maps, perf_evlist__create_maps() should use it. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-10-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 934e0f2053ce299893ca48a411bf7fdc8ac6254f Author: Adrian Hunter Date: Tue Sep 8 10:58:56 2015 +0300 perf evlist: Make set_maps() more resilient Make perf_evlist__set_maps() more resilient by allowing for the possibility that one or another of the maps isn't being changed and therefore should not be "put". Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-9-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit fce4d296b405b03fba033a55017348bf55b10db6 Author: Adrian Hunter Date: Tue Sep 8 10:58:55 2015 +0300 perf evsel: Add own_cpus member perf_evlist__propagate_maps() cannot easily tell if an evsel has its own cpu map. To make that simpler, keep a copy of the PMU cpu map and adjust the propagation logic accordingly. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-8-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 5 ++++- tools/perf/util/evsel.c | 1 + tools/perf/util/evsel.h | 1 + tools/perf/util/parse-events.c | 4 ++-- 4 files changed, 8 insertions(+), 3 deletions(-) commit b278c364b35ae940b05f6a9edf8061fc886cd09e Author: Adrian Hunter Date: Tue Sep 8 10:58:54 2015 +0300 perf evlist: Fix missing thread_map__put in propagate_maps() perf_evlist__propagate_maps() incorrectly assumes evsel->threads is NULL before reassigning it, but it won't be NULL when perf_evlist__set_maps() is used to set different (or NULL) maps. Thus thread_map__put must be used, which works even if evsel->threads is NULL. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-7-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 1 + 1 file changed, 1 insertion(+) commit f114d6eff76d20b521d8716e969e71b1f56f82b5 Author: Adrian Hunter Date: Tue Sep 8 10:58:53 2015 +0300 perf evlist: Fix splice_list_tail() not setting evlist Commit d49e46950772 ("perf evsel: Add a backpointer to the evlist a evsel is in") updated perf_evlist__add() but not perf_evlist__splice_list_tail(). This illustrates that it is better if perf_evlist__splice_list_tail() calls perf_evlist__add() instead of duplicating the logic, so do that. This will also simplify a subsequent fix for propagating maps. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-6-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 15 +++++++-------- tools/perf/util/evlist.h | 3 +-- tools/perf/util/parse-events.c | 3 +-- 3 files changed, 9 insertions(+), 12 deletions(-) commit ec9a77a7e3346a05b1287597982d0dd09dd1c3bd Author: Adrian Hunter Date: Tue Sep 8 10:58:52 2015 +0300 perf evlist: Add has_user_cpus member Subsequent patches will need to call perf_evlist__propagate_maps without reference to a "target". Add evlist->has_user_cpus to record whether the user has specified which cpus to target (and therefore whether that list of cpus should override the default settings for a selected event i.e. the cpu maps should be propagated) Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 11 ++++++----- tools/perf/util/evlist.h | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) commit d5bc056e73841d4bc941474a342ef9b6a207ac84 Author: Adrian Hunter Date: Tue Sep 8 10:58:51 2015 +0300 perf evlist: Remove redundant validation from propagate_maps() The validation checks that the values that were just assigned, got assigned i.e. the error can't ever happen. Subsequent patches will call this code in places where errors are not being returned. Changing those code paths to return this non-existent error is counter-productive, so just remove it. That in turn results in perf_evlist__set_maps not needing to return an error, but callers aren't checking it either, so remove that too. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-4-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 21 ++++++++------------- tools/perf/util/evlist.h | 5 ++--- 2 files changed, 10 insertions(+), 16 deletions(-) commit 725e06b2e2754fbff61521fa76fee51cee5bcb5f Author: Adrian Hunter Date: Tue Sep 8 10:58:50 2015 +0300 perf evlist: Simplify set_maps() logic Don't need to check for NULL when "putting" evlist->maps and evlist->threads because the "put" functions already do that. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit a69b09e2342a9c144b0291b9aeb849ab7d5843bf Author: Adrian Hunter Date: Tue Sep 8 10:58:49 2015 +0300 perf evlist: Simplify propagate_maps() logic If evsel->cpus is to be reassigned then the current value must be "put", which works even if it is NULL. Simplify the current logic by moving the "put" next to the assignment. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Kan Liang Link: http://lkml.kernel.org/r/1441699142-18905-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 2cd55c68c0a49a75433b15c7dbd1991fef81e662 Author: Ian Munsie Date: Tue Sep 15 15:48:34 2015 +1000 cxl: Fix build failure due to -Wunused-variable behaviour change A recent change in gcc caused this build failure: /var/lib/jenkins/workspace/gcc_kernel_build/linux/drivers/misc/cxl/cxl.h:72:27: error: ‘CXL_PSL_DLCNTL’ defined but not used [-Werror=unused-const-variable] static const cxl_p1_reg_t CXL_PSL_DLCNTL = {0x0060}; Because of this gcc commit: Commit 1bca8cbd0c68366f07277f98ce6963e10c2aa617 by mark PR28901 -Wunused-variable ignores unused const initialised variables in C 12 years ago it was decided that -Wunused-variable shouldn't warn about static const variables because some code used const static char rcsid[] strings which were never used but wanted in the code anyway. But as the bug points out this hides some real bugs. These days the usage of rcsids is not very popular anymore. So this patch changes the default to warn about unused static const variables in C with -Wunused-variable. And it adds a new option -Wno-unused-const-variable to turn this warning off. For C++ this new warning is off by default, since const variables can be used as #defines in C++. New testcases for the new defaults in C and C++ are included testing the new warning and suppressing it with an unused attribute or using -Wno-unused-const-variable. gcc/ChangeLog The cxl driver uses static consts in place of #defines in some cases for type safety, so this change causes the driver to fail to build on new copilers as these constants are not all used in every file that imports the header. Suppress the warning for this driver to return to the old behaviour of -Wunused-variable. Reported-by: Anton Blanchard Signed-off-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2925c2fdf1e0eb642482f5b30577e9435aaa8edb Author: Daniel Axtens Date: Tue Sep 15 15:04:07 2015 +1000 cxl: Fix unbalanced pci_dev_get in cxl_probe Currently the first thing we do in cxl_probe is to grab a reference on the pci device. Later on, we call device_register on our adapter. In our remove path, we call device_unregister, but we never call pci_dev_put. We therefore leak the device every time we do a reflash. device_register/unregister is sufficient to hold the reference. Therefore, drop the call to pci_dev_get. Here's why this is safe. The proposed cxl_probe(pdev) calls cxl_adapter_init: a) init calls cxl_adapter_alloc, which creates a struct cxl, conventionally called adapter. This struct contains a device entry, adapter->dev. b) init calls cxl_configure_adapter, where we set adapter->dev.parent = &dev->dev (here dev is the pci dev) So at this point, the cxl adapter's device's parent is the PCI device that I want to be refcounted properly. c) init calls cxl_register_adapter *) cxl_register_adapter calls device_register(&adapter->dev) So now we're in device_register, where dev is the adapter device, and we want to know if the PCI device is safe after we return. device_register(&adapter->dev) calls device_initialize() and then device_add(). device_add() does a get_device(). device_add() also explicitly grabs the device's parent, and calls get_device() on it: parent = get_device(dev->parent); So therefore, device_register() takes a lock on the parent PCI dev, which is what pci_dev_get() was guarding. pci_dev_get() can therefore be safely removed. Fixes: f204e0b8cedd ("cxl: Driver code for powernv PCIe based cards for userspace access") Cc: stable@vger.kernel.org Signed-off-by: Daniel Axtens Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 2 -- 1 file changed, 2 deletions(-) commit c1ceb5fff01c0357de0386f87a620a4636ca68d1 Author: Nathan Sullivan Date: Mon Aug 31 09:49:52 2015 -0500 Documentation: bindings: add doc for zynq USB Document the binding for the zynq specific chipidea UDC binding. Signed-off-by: Nathan Sullivan Signed-off-by: Peter Chen Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 1 + 1 file changed, 1 insertion(+) commit 84bc70f94d81f1d3107dbcdafc1b193169e82131 Author: Nathan Sullivan Date: Mon Aug 31 09:49:51 2015 -0500 usb: chipidea: add xilinx zynq platform data Due to having hardware tx buffers less than 512 bytes in size, streaming must be enabled on the Zynq for the udc to work at all. Add platform data specific to the Zynq udc, which does not set the CI_HDRC_DISABLE_STREAMING flag. Based on a patch by the same name from the Xilinx vendor tree. Signed-off-by: Nathan Sullivan Signed-off-by: Peter Chen drivers/usb/chipidea/ci_hdrc_usb2.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit 56ffa1d154c7e12af16273f0cdc42690dd05caf5 Author: Peter Chen Date: Mon Aug 24 14:10:07 2015 +0800 usb: chipidea: udc: using the correct stall implementation According to spec, there are functional and protocol stalls. For functional stall, it is for bulk and interrupt endpoints, below are cases for it: - Host sends SET_FEATURE request for Set-Halt, the udc driver needs to set stall, and return true unconditionally. - The gadget driver may call usb_ep_set_halt to stall certain endpoints, if there is a transfer in pending, the udc driver should not set stall, and return -EAGAIN accordingly. These two kinds of stall need to be cleared by host using CLEAR_FEATURE request (Clear-Halt). For protocol stall, it is for control endpoint, this stall will be set if the control request has failed. This stall will be cleared by next setup request (hardware will do it). It fixed usbtest (drivers/usb/misc/usbtest.c) Test 13 "set/clear halt" test failure, meanwhile, this change has been verified by USB2 CV Compliance Test and MSC Tests. Cc: #3.10+ Cc: Alan Stern Cc: Felipe Balbi Signed-off-by: Peter Chen drivers/usb/chipidea/udc.c | 84 ++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 40 deletions(-) commit e30f3963f2c3c03119d71f1804bdb94ccd33580b Author: Thomas Hellstrom Date: Mon Sep 14 01:24:41 2015 -0700 drm/ttm: Fix memory space allocation v2 In the event that TTM doesn't find a compatible memory type for the driver's first placement choice (placement without eviction), TTM returns -EINVAL without trying the driver's second choice. This causes problems on vmwgfx when VRAM is disabled before first modeset and during VT switches when fbdev is not enabled. Fix this by also trying the driver's second choice before returning -EINVAL. v2: Also check that man->use_type is true for the driver's second choice. Fixes a bug where disallowed memory types could be used. Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul Reviewed-by: Sinclair Yeh drivers/gpu/drm/ttm/ttm_bo.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 1975dbc276c6ab62230cf4f9df5ddc9ff0e0e473 Author: Jonathan Corbet Date: Mon Sep 14 17:11:05 2015 -0600 locking/static_keys: Fix up the static keys documentation Fix a few small mistakes in the static key documentation and delete an unneeded sentence. Suggested-by: Jason Baron Signed-off-by: Jonathan Corbet Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150914171105.511e1e21@lwn.net Signed-off-by: Ingo Molnar Documentation/static-keys.txt | 4 ++-- include/linux/jump_label.h | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) commit a30e577c96f59b1e1678ea5462432b09bf7d5cbc Author: Jeff Mahoney Date: Fri Sep 11 21:44:17 2015 -0400 btrfs: skip waiting on ordered range for special files In btrfs_evict_inode, we properly truncate the page cache for evicted inodes but then we call btrfs_wait_ordered_range for every inode as well. It's the right thing to do for regular files but results in incorrect behavior for device inodes for block devices. filemap_fdatawrite_range gets called with inode->i_mapping which gets resolved to the block device inode before getting passed to wbc_attach_fdatawrite_inode and ultimately to inode_to_bdi. What happens next depends on whether there's an open file handle associated with the inode. If there is, we write to the block device, which is unexpected behavior. If there isn't, we through normally and inode->i_data is used. We can also end up racing against open/close which can result in crashes when i_mapping points to a block device inode that has been closed. Since there can't be any page cache associated with special file inodes, it's safe to skip the btrfs_wait_ordered_range call entirely and avoid the problem. Cc: Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100911 Tested-by: Christoph Biedl Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana fs/btrfs/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bcb2b0b2bae2de744223c68521cd51c57feb486c Author: Sudeep Holla Date: Mon Sep 14 16:01:55 2015 +0100 ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED() This commit removes all CONFIG_.*{,_MODULE} in ACPI code, replacing it with IS_ENABLED(). Signed-off-by: Sudeep Holla Signed-off-by: Rafael J. Wysocki drivers/acpi/bus.c | 12 ++++-------- drivers/acpi/int340x_thermal.c | 9 ++++----- include/acpi/button.h | 4 ++-- include/acpi/video.h | 2 +- 4 files changed, 11 insertions(+), 16 deletions(-) commit cf3a51059efd653aa38667db799e85d77231af9d Author: Sudeep Holla Date: Mon Sep 14 16:01:54 2015 +0100 ACPI: int340x_thermal: add missing CONFIG_ prefix This patch adds the missing CONFIG_ prefix to INTEL_SOC_DTS_THERMAL macros. Signed-off-by: Sudeep Holla Signed-off-by: Rafael J. Wysocki drivers/acpi/int340x_thermal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 005efedf2c7d0a270ffbe28d8997b03844f3e3e7 Author: Filipe Manana Date: Mon Sep 14 09:09:31 2015 +0100 Btrfs: fix read corruption of compressed and shared extents If a file has a range pointing to a compressed extent, followed by another range that points to the same compressed extent and a read operation attempts to read both ranges (either completely or part of them), the pages that correspond to the second range are incorrectly filled with zeroes. Consider the following example: File layout [0 - 8K] [8K - 24K] | | | | points to extent X, points to extent X, offset 4K, length of 8K offset 0, length 16K [extent X, compressed length = 4K uncompressed length = 16K] If a readpages() call spans the 2 ranges, a single bio to read the extent is submitted - extent_io.c:submit_extent_page() would only create a new bio to cover the second range pointing to the extent if the extent it points to had a different logical address than the extent associated with the first range. This has a consequence of the compressed read end io handler (compression.c:end_compressed_bio_read()) finish once the extent is decompressed into the pages covering the first range, leaving the remaining pages (belonging to the second range) filled with zeroes (done by compression.c:btrfs_clear_biovec_end()). So fix this by submitting the current bio whenever we find a range pointing to a compressed extent that was preceded by a range with a different extent map. This is the simplest solution for this corner case. Making the end io callback populate both ranges (or more, if we have multiple pointing to the same extent) is a much more complex solution since each bio is tightly coupled with a single extent map and the extent maps associated to the ranges pointing to the shared extent can have different offsets and lengths. The following test case for fstests triggers the issue: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _need_to_be_root _supported_fs btrfs _supported_os Linux _require_scratch _require_cloner rm -f $seqres.full test_clone_and_read_compressed_extent() { local mount_opts=$1 _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount $mount_opts # Create a test file with a single extent that is compressed (the # data we write into it is highly compressible no matter which # compression algorithm is used, zlib or lzo). $XFS_IO_PROG -f -c "pwrite -S 0xaa 0K 4K" \ -c "pwrite -S 0xbb 4K 8K" \ -c "pwrite -S 0xcc 12K 4K" \ $SCRATCH_MNT/foo | _filter_xfs_io # Now clone our extent into an adjacent offset. $CLONER_PROG -s $((4 * 1024)) -d $((16 * 1024)) -l $((8 * 1024)) \ $SCRATCH_MNT/foo $SCRATCH_MNT/foo # Same as before but for this file we clone the extent into a lower # file offset. $XFS_IO_PROG -f -c "pwrite -S 0xaa 8K 4K" \ -c "pwrite -S 0xbb 12K 8K" \ -c "pwrite -S 0xcc 20K 4K" \ $SCRATCH_MNT/bar | _filter_xfs_io $CLONER_PROG -s $((12 * 1024)) -d 0 -l $((8 * 1024)) \ $SCRATCH_MNT/bar $SCRATCH_MNT/bar echo "File digests before unmounting filesystem:" md5sum $SCRATCH_MNT/foo | _filter_scratch md5sum $SCRATCH_MNT/bar | _filter_scratch # Evicting the inode or clearing the page cache before reading # again the file would also trigger the bug - reads were returning # all bytes in the range corresponding to the second reference to # the extent with a value of 0, but the correct data was persisted # (it was a bug exclusively in the read path). The issue happened # only if the same readpages() call targeted pages belonging to the # first and second ranges that point to the same compressed extent. _scratch_remount echo "File digests after mounting filesystem again:" # Must match the same digests we got before. md5sum $SCRATCH_MNT/foo | _filter_scratch md5sum $SCRATCH_MNT/bar | _filter_scratch } echo -e "\nTesting with zlib compression..." test_clone_and_read_compressed_extent "-o compress=zlib" _scratch_unmount echo -e "\nTesting with lzo compression..." test_clone_and_read_compressed_extent "-o compress=lzo" status=0 exit Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Reviewed-by: Qu Wenruo Reviewed-by: Liu Bo fs/btrfs/extent_io.c | 65 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 8 deletions(-) commit d25ed277fbd4c20247286fda2014ae6a2b88316b Merge: 9c488de 3bba75a Author: Linus Torvalds Date: Mon Sep 14 16:58:35 2015 -0700 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk fixes from Stephen Boyd: "A couple build fixes for drivers introduced in the merge window and a handful of patches to add more critical clocks on rockchip SoCs that are affected by newly introduced gpio clock handling" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188 clk: rockchip: add pclk_cpu to the list of rk3188 critical clocks clk: rockchip: handle critical clocks after registering all clocks clk: Hi6220: separately build stub clock driver clk: h8s2678: Fix compile error commit 4184a8fc57a43faa2625988cc87031db77af9d98 Merge: 6ff33f3 5f25f066 Author: Rafael J. Wysocki Date: Tue Sep 15 01:29:43 2015 +0200 Merge branch 'for-rafael' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq Pull devfreq updates for v4.3 from MyungJoo Ham. * 'for-rafael' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq: PM / devfreq: Fix incorrect type issue. PM / devfreq: tegra: Update governor to use devfreq_update_stats() PM / devfreq: comments for get_dev_status usage updated PM / devfreq: drop comment about thermal setting max_freq PM / devfreq: cache the last call to get_dev_status() PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL) PM / devfreq: exynos-ppmu: bit-wise operation bugfix. PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding Conflicts: drivers/devfreq/event/exynos-ppmu.c commit ae7858180510d6fd0dfaf66d209bc6103db1678f Author: Bamvor Jian Zhang Date: Wed Sep 9 21:06:29 2015 +0800 selftests: exec: revert to default emit rule With the previous patch, the installation method change from install to rsync. There is no need to create subdir during test, the default EMIT_TESTS is enough. This patch essentially revert commit 84cbd9e4 ("selftests/exec: do not install subdir as it is already created"). Suggested-by: Michael Ellerman Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/exec/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 900d65ee11aae3a23cb963f484b65eb3e269dd9c Author: Bamvor Jian Zhang Date: Wed Sep 9 21:06:28 2015 +0800 selftests: change install command to rsync The command of install could not handle the special files in exec testcases, change the default rule to rsync to fix this. The installation is unchanged after this commit. Suggested-by: Michael Ellerman Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/ftrace/Makefile | 2 +- tools/testing/selftests/lib.mk | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) commit b11054b959cf921a646b64983bc35193c1597739 Author: Bamvor Jian Zhang Date: Wed Sep 9 21:06:27 2015 +0800 selftests: mqueue: simplify the Makefile Use make's implict rule for building simple C programs. Suggested-by: Michael Ellerman Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/mqueue/Makefile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit cc19ada7340b5ed87a94ea381ff7ade6a053b2f3 Author: Bamvor Jian Zhang Date: Wed Sep 9 21:06:26 2015 +0800 selftests: mqueue: allow extra cflags Change from = to += in order to allows the user to pass whatever CFLAGS they wish(E.g. pass the proper headers and librareis (popt.h and libpopt.so) in cross-compiling) Suggested-by: Michael Ellerman Signed-off-by: Bamvor Jian Zhang Acked-by: Michael Ellerman Signed-off-by: Shuah Khan tools/testing/selftests/mqueue/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1087d019176df7e406387de3fe76129c74d24081 Author: Bamvor Jian Zhang Date: Wed Sep 9 21:06:25 2015 +0800 selftests: rename jump label to static_keys Commit 2bf9e0ab08c6 ("locking/static_keys: Provide a selftest") renamed jump_label directory to static_keys and failed to update the Makefile, causing the selftests build to fail. This commit fixes it by updating the Makefile with the new name and also moves the entry into the correct position to keep the list alphabetically sorted. Fixes: 2bf9e0ab08c6 ("locking/static_keys: Provide a selftest") Signed-off-by: Bamvor Jian Zhang Acked-by: Shuah Khan Acked-by: Michael Ellerman Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b623c4daadb5a4bfaef62783085b95bd9ba5a77c Author: Kees Cook Date: Fri Aug 21 11:22:35 2015 -0700 selftests/seccomp: add support for s390 This adds support for s390 to the seccomp selftests. Some improvements were made to enhance the accuracy of failure reporting, and additional tests were added to validate assumptions about the currently traced syscall. Also adds early asserts for running on older kernels to avoid noise when the seccomp syscall is not implemented. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan tools/testing/selftests/seccomp/seccomp_bpf.c | 37 +++++++++++++++++++++++++- tools/testing/selftests/seccomp/test_harness.h | 7 ++--- 2 files changed, 38 insertions(+), 6 deletions(-) commit 7ef7cc9fdf9853b3027c55b9481991695ad5e5b2 Author: Zhang Zhen Date: Mon Sep 14 12:13:27 2015 +0800 seltests/zram: fix syntax error Not all shells define a variable UID. This is a bash and zsh feature only. In other shells, the UID variable is not defined, so here test command expands to [ != 0 ] which is a syntax error. Without this patch: root@HGH1000007090:/opt/work/linux/tools/testing/selftests/zram# sh zram.sh zram.sh: 8: [: !=: unexpected operator zram.sh : No zram.ko module or /dev/zram0 device file not found zram.sh : CONFIG_ZRAM is not set With this patch: root@HGH1000007090:/opt/work/linux/tools/testing/selftests/zram# sh ./zram.sh zram.sh : No zram.ko module or /dev/zram0 device file not found zram.sh : CONFIG_ZRAM is not set Signed-off-by: Zhang Zhen Signed-off-by: Shuah Khan tools/testing/selftests/zram/zram.sh | 10 +--------- tools/testing/selftests/zram/zram_lib.sh | 3 ++- 2 files changed, 3 insertions(+), 10 deletions(-) commit 7168e947291f0ead07e5638b4599fb7845288b69 Merge: 21b430d 60fdcb8 Author: Tony Lindgren Date: Mon Sep 14 13:42:11 2015 -0700 Merge branch 'fixes-rc1' into omap-for-v4.3/fixes commit 60fdcb8863d9b4a8b6c6b367886fadb50d4c0b07 Author: Nicolas Chauvet Date: Thu Sep 3 17:34:40 2015 +0200 ARM: dts: Fixup model name for HP t410 dts This fix the model name for the device. Whole string taken from the HP support center web page Signed-off-by: Nicolas Chauvet Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm8148-t410.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c263a5b8120523b736ed4641657075f2024e75b7 Author: Vishal Mahaveer Date: Tue Aug 25 13:57:49 2015 -0500 ARM: dts: DRA7: fix a typo in ethernet Register address in name of the node is wrong Signed-off-by: Vishal Mahaveer Acked-by: Mugunthan V N Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3ab74b89c4d50e6d29d3ace2d400a8a3f1e6de3f Author: Kishon Vijay Abraham I Date: Wed Aug 5 19:13:49 2015 +0530 ARM: omap2plus_defconfig: make PCF857x built-in One of the lines from PCF857x is connected to the vdd line of MMC1 in DRA74x and DRA72x EVMs and is modelled as a regulator. If PCF857x is not made as built-in, the regulator_get in omap_hsmmc fails making it difficult to use MMC1 as rootfs. Make PCF857x built-in. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Sekhar Nori Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 737f146fe0dd1353f5e2c6153fedd81f48b5cd65 Author: Kishon Vijay Abraham I Date: Fri Sep 4 17:30:25 2015 +0530 ARM: dts: Use ti,pbias compatible string for pbias Use platform specific compatible strings instead of the common "ti,pbias-omap" compatible string. Signed-off-by: Kishon Vijay Abraham I Acked-by: Tony Lindgren Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 2 +- arch/arm/boot/dts/omap2430.dtsi | 2 +- arch/arm/boot/dts/omap3.dtsi | 2 +- arch/arm/boot/dts/omap4.dtsi | 2 +- arch/arm/boot/dts/omap5.dtsi | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 380528f742796e1244e931c51e77c9ed664f566c Author: Heiko Stübner Date: Sun Sep 13 13:20:36 2015 +0200 clk: rockchip: add critical clock for rk3368 Again a result of the gpio-clock-liberation the rk3368 needs the pclk_pd_pmu marked as critical, to boot successfully. Reported-by: Mark Rutland Signed-off-by: Heiko Stuebner Tested-by: Mark Rutland Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3368.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 9c488de24f7264f08d341024bffdd637b4d04c96 Merge: 57e6bbc eda2116 Author: Linus Torvalds Date: Mon Sep 14 12:49:15 2015 -0700 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull CIFS fixes from Steve French: "Two small cifs fixes" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: [CIFS] mount option sec=none not displayed properly in /proc/mounts CIFS: fix type confusion in copy offload ioctl commit 57e6bbcb4beb4c87aa93e78a1db08fdaab9ee65f Merge: 6ff33f3 c2172ce Author: Linus Torvalds Date: Mon Sep 14 12:24:10 2015 -0700 Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: "A number of fixes for the merge window, fixing a number of cases missed when testing the uaccess code, particularly cases which only show up with certain compiler versions" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8431/1: fix alignement of __bug_table section entries arm/xen: Enable user access to the kernel before issuing a privcmd call ARM: domains: add memory dependencies to get_domain/set_domain ARM: domains: thread_info.h no longer needs asm/domains.h ARM: uaccess: fix undefined instruction on ARMv7M/noMMU ARM: uaccess: remove unneeded uaccess_save_and_disable macro ARM: swpan: fix nwfpe for uaccess changes ARM: 8429/1: disable GCC SRA optimization commit d8f8004ec7048fb2faa6967ab51259b5603562fb Author: Nishanth Menon Date: Wed Sep 9 16:18:14 2015 -0500 ARM: OMAP5: Cleanup options for SoC only build OMAP5 SoC has Cortex-A15 which does not use TWD timer. It uses ARCH_TIMER instead, clean up unwanted configuration and enable OMAP_INTERCONNECT and OPP which is necessary for expected functionality on the SoC. Reported-by: Carlos Hernandez Reported-by: Felipe Balbi Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d2e104c63a81e64574a6af9806f2a5d5a48248d9 Author: Nishanth Menon Date: Wed Sep 9 16:18:13 2015 -0500 ARM: DRA7: Select missing options for SoC only build DRA7 does use OPP, uses OMAP interconnect and also does require SCU. These are missing in the SoC only build of DRA7 breaking various PM features in DRA7 only build. Reported-by: Carlos Hernandez Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 3 +++ 1 file changed, 3 insertions(+) commit a3b7470951ab49e5592d20c2bcfe5ee675221591 Author: Nishanth Menon Date: Wed Sep 9 16:18:12 2015 -0500 ARM: OMAP2+: board-generic: Remove stale of_irq macros When commit c4082d499fa2 ("ARM: omap2+: board-generic: clean up the irq data from board file") cleaned up the direct usage of gic_of_init and omap_intc_of_init, it failed to clean up the macros properly. Since these macros are no longer used, lets just remove them. Fixes: c4082d499fa2 ("ARM: omap2+: board-generic: clean up the irq data from board file") Reported-by: Carlos Hernandez Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/mach-omap2/board-generic.c | 7 ------- 1 file changed, 7 deletions(-) commit 6d785c963a660b0279c43a2b1cd9b1c89ce5514b Author: Nishanth Menon Date: Wed Sep 9 16:18:11 2015 -0500 ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well OMAP5 and DRA7 reuse the same pm44xx_erratum variable so, enable the same, else PM features such as Suspend to ram is broken in a SoC only build configuration. Reported-by: Carlos Hernandez Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/mach-omap2/pm.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d34cf0d56658ff040c707313b4a71e86a767cbc2 Author: Javier Martinez Canillas Date: Mon Sep 7 18:24:18 2015 +0200 ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi Only the IGEPv2 boards have a LAN9221i chip connected to the GPMC so the pinmux configuration for the GPIO connected to the IRQ line of the LAN chip should not be defined in the IGEP common dtsi but in the one common to the IGEPv2 boards. While there, use the OMAP3_CORE1_IOPAD() macro for the padconf reg. Suggested-by: Ladislav Michl Signed-off-by: Javier Martinez Canillas Acked-by: Enric Balletbo i Serra Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-igep.dtsi | 6 ------ arch/arm/boot/dts/omap3-igep0020-common.dtsi | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) commit c22c7f3e667bece46efe97780ab2df3af700aea0 Author: Nishanth Menon Date: Thu Sep 3 14:24:00 2015 -0500 ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410 With the support in the generic PM framework for wakeirq and capability added to the rtc-ds1307 driver to support this, we can now define the optional wakeup irq to allow the RTC to wakeup the system from low power modes as part of suspend. Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 259c0c04acde19d6286def1661ed22d0fb3b05b9 Author: Teresa Remmet Date: Thu Sep 3 14:00:06 2015 +0200 ARM: dts: am335x-phycore-som: Fix mpu voltage Fix the mpu voltage as it is set too low for the silicon revision 2.1. Signed-off-by: Teresa Remmet Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-phycore-som.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 423fe5f3c35ff0f374d5452eb2db93a28bf6b9e2 Author: Kishon Vijay Abraham I Date: Wed Jul 29 16:39:42 2015 +0530 ARM: dts: am57xx-beagle-x15: Fix regulator populated in MMC1 dt node For beagle x15, both the vdd and io lines are connected to the same regulator (ldo1_reg). However vmmc_aux is populated to vdd_3v3. Remove it. Signed-off-by: Kishon Vijay Abraham I Acked-by: Nishanth Menon [tony@atomide.com: updated to apply] Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 1 - 1 file changed, 1 deletion(-) commit 87ee15ec26000c6edc10e63c415bee1239e042c8 Author: Tony Lindgren Date: Mon Sep 14 07:07:28 2015 -0700 ARM: dts: Fix dm814x control base to properly initialize Ethernet PHY Looks like I made a typo on the control base, all the 81xx SoCs have it at 0x48140000 base. We've just gotten away with the typo as the Ethernet phy was configured by the bootloader on my test system and we're not yet using the pinctrl. In addition to fixing the contol base, we need to also use the right Ethernet phy flags to initialize it. And we are still missing the PLL driver for dm814x and only relying on the divider and mux clocks. Fixes: f3d953ea3721 ("ARM: dts: Add minimal dm814x support") Cc: Matthijs van Duin Cc: Nicolas Chauvet Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm8148-evm.dts | 4 ++-- arch/arm/boot/dts/dm8148-t410.dts | 4 ++-- arch/arm/boot/dts/dm814x.dtsi | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) commit 3a2fa775bd1d0579113666c1a2e37654a34018a0 Author: Carl Frederik Werner Date: Wed Sep 2 10:07:57 2015 +0900 ARM: dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again Let's fix pinmux address of gpio 170 used by tfp410 powerdown-gpio. According to the OMAP35x Technical Reference Manual CONTROL_PADCONF_I2C3_SDA[15:0] 0x480021C4 mode0: i2c3_sda CONTROL_PADCONF_I2C3_SDA[31:16] 0x480021C4 mode4: gpio_170 the pinmux address of gpio 170 must be 0x480021C6. The former wrong address broke i2c3 (used by hdmi ddc), resulting in kernel message: omap_i2c 48060000.i2c: controller timed out Fixes: 8cecf52befd7 ("ARM: omap3-beagle.dts: add display information") Cc: stable@vger.kernel.org # v3.15+ Signed-off-by: Carl Frederik Werner Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-beagle.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df5c79e982b38eec1d184668d66f9ce0c426e2a1 Merge: f17b329 721b51f Author: Mark Brown Date: Mon Sep 14 19:53:39 2015 +0100 Merge branch 'fix/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-fix-rt5645 commit 295c3405a8bbd69ee8c8eb6580f30b0b8739b33a Author: Jyri Sarha Date: Wed Sep 9 21:27:42 2015 +0300 ASoC: davinci-mcasp: Set .symmetric_rates = 1 in snd_soc_dai_driver The TX and RX direction share the same bit clock and frame sync, so the samplerate must be the same to both directions. Signed-off-by: Jyri Sarha Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 1 + 1 file changed, 1 insertion(+) commit bd315aab8a3ab1bc7074774b89a5d8ec7c1ff7ab Author: Wang Nan Date: Mon Sep 14 10:23:55 2015 +0000 perf top: Fix segfault pressing -> with no hist entries 'perf top' segfaults with following operation: # perf top -e page-faults -p 11400 # 11400 never generates page-fault Then on the resulting empty interface, press right key: # ./perf top -e page-faults -p 11400 perf: Segmentation fault -------- backtrace -------- ./perf[0x535428] /lib64/libc.so.6(+0x3545f)[0x7f0dd360745f] ./perf[0x531d46] ./perf(perf_evlist__tui_browse_hists+0x96)[0x5340d6] ./perf[0x44ba2f] /lib64/libpthread.so.0(+0x81d0)[0x7f0dd49dc1d0] /lib64/libc.so.6(clone+0x6c)[0x7f0dd36b90dc] The bug resides in perf_evsel__hists_browse() that, in the above circumstance browser->selection can be NULL, but code after skip_annotation doesn't consider it. This patch fix it by checking browser->selection before fetching browser->selection->map. Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1442226235-117265-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 921e54680aefe52f28d9ce9485edb1bfef4b92a8 Author: Axel Lin Date: Tue Sep 1 14:50:15 2015 +0800 ASoC: au1x: psc-i2s: Fix unused variable 'ret' warning Fix below build warning: sound/soc/au1x/psc-i2s.c: In function 'au1xpsc_i2s_drvprobe': sound/soc/au1x/psc-i2s.c:299:6: warning: unused variable 'ret' [-Wunused-variable] Reported-by: kbuild test robot Signed-off-by: Axel Lin Acked-by: Manuel Lauss Signed-off-by: Mark Brown sound/soc/au1x/psc-i2s.c | 1 - 1 file changed, 1 deletion(-) commit 42617869bf095c650e67aad4001cab4224e7fa98 Author: Axel Lin Date: Tue Sep 1 12:31:24 2015 +0800 ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM devm_snd_dmaengine_pcm_register() is guarded by CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/spear/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4fba9b5be12d577d2e2c19fdca6b0744c3f271e Author: Koro Chen Date: Mon Sep 14 14:51:17 2015 +0800 ASoC: mediatek: Increase periods_min in capture In capture, there is chance that hw_ptr reported at IRQ is a little smaller than period_size due to internal AFE buffer. In the case of ping-pong buffer: |xxxxxxxxxxxxxxxxxxxxxxxxxxxx--|-----------------------------| hw_ptr < period_size This available buffer will not be read since its size is smaller than avail_min (which is period_size by default), and read thread continues to sleep. If the next hw_ptr is just a little larger than buffer_size, overrun occurs. One more period can hold the possible unread buffer. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-pcm.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 81523aac01a7f68af2576800c8623edfb6323017 Author: Wei Yang Date: Fri Sep 11 14:12:53 2015 +0800 KVM: make the declaration of functions within 80 characters After 'commit 0b8ba4a2b658 ("KVM: fix checkpatch.pl errors in kvm/coalesced_mmio.h")', the declaration of the two function will exceed 80 characters. This patch reduces the TAPs to make each line in 80 characters. Signed-off-by: Wei Yang Signed-off-by: Paolo Bonzini virt/kvm/coalesced_mmio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5d7c631d926b59aa16f3c56eaeb83f1036c81dc7 Author: Shaohua Li Date: Thu Jul 30 16:24:43 2015 -0700 x86/apic: Serialize LVTT and TSC_DEADLINE writes The APIC LVTT register is MMIO mapped but the TSC_DEADLINE register is an MSR. The write to the TSC_DEADLINE MSR is not serializing, so it's not guaranteed that the write to LVTT has reached the APIC before the TSC_DEADLINE MSR is written. In such a case the write to the MSR is ignored and as a consequence the local timer interrupt never fires. The SDM decribes this issue for xAPIC and x2APIC modes. The serialization methods recommended by the SDM differ. xAPIC: "1. Memory-mapped write to LVT Timer Register, setting bits 18:17 to 10b. 2. WRMSR to the IA32_TSC_DEADLINE MSR a value much larger than current time-stamp counter. 3. If RDMSR of the IA32_TSC_DEADLINE MSR returns zero, go to step 2. 4. WRMSR to the IA32_TSC_DEADLINE MSR the desired deadline." x2APIC: "To allow for efficient access to the APIC registers in x2APIC mode, the serializing semantics of WRMSR are relaxed when writing to the APIC registers. Thus, system software should not use 'WRMSR to APIC registers in x2APIC mode' as a serializing instruction. Read and write accesses to the APIC registers will occur in program order. A WRMSR to an APIC register may complete before all preceding stores are globally visible; software can prevent this by inserting a serializing instruction, an SFENCE, or an MFENCE before the WRMSR." The xAPIC method is to just wait for the memory mapped write to hit the LVTT by checking whether the MSR write has reached the hardware. There is no reason why a proper MFENCE after the memory mapped write would not do the same. Andi Kleen confirmed that MFENCE is sufficient for the xAPIC case as well. Issue MFENCE before writing to the TSC_DEADLINE MSR. This can be done unconditionally as all CPUs which have TSC_DEADLINE also have MFENCE support. [ tglx: Massaged the changelog ] Signed-off-by: Shaohua Li Reviewed-by: Ingo Molnar Cc: Cc: Cc: Cc: Andi Kleen Cc: H. Peter Anvin Cc: stable@vger.kernel.org #v3.7+ Link: http://lkml.kernel.org/r/20150909041352.GA2059853@devbig257.prn2.facebook.com Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/apic.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 723831927e8813b5b336d383174f686ad708bf10 Author: Peter Ujfalusi Date: Mon Sep 14 16:06:48 2015 +0300 ASoC: davinci-mcasp: Revise the FIFO threshold calculation The FIFO threshold for McASP should be <=[tx/rx]numevt so the initial value for the refining should meet this requirement as well. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-mcasp.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 4857c91f0d195f05908fff296ba1ec5fca87066c Author: Thomas Gleixner Date: Mon Sep 14 12:00:55 2015 +0200 x86/ioapic: Force affinity setting in setup_ioapic_dest() The recent ioapic cleanups changed the affinity setting in setup_ioapic_dest() from a direct write to the hardware to the delayed affinity setup via irq_set_affinity(). That results in a warning from chained_irq_exit(): WARNING: CPU: 0 PID: 5 at kernel/irq/migration.c:32 irq_move_masked_irq [] irq_move_masked_irq+0xb8/0xc0 [] ioapic_ack_level+0x111/0x130 [] intel_gpio_irq_handler+0x148/0x1c0 The reason is that irq_set_affinity() does not write directly to the hardware. It marks the affinity setting as pending and executes it from the next interrupt. The chained handler infrastructure does not take the irq descriptor lock for performance reasons because such a chained interrupt is not visible to any interfaces. So the delayed affinity setting triggers the warning in irq_move_masked_irq(). Restore the old behaviour by calling the set_affinity function of the ioapic chip in setup_ioapic_dest(). This is safe as none of the interrupts can be on the fly at this point. Fixes: aa5cb97f14a2 'x86/irq: Remove x86_io_apic_ops.set_affinity and related interfaces' Reported-and-tested-by: Mika Westerberg Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: jarkko.nikula@linux.intel.com arch/x86/kernel/apic/io_apic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ba378ca9c04a5fc1b2cf0f0274a9d02eb3d1bad9 Author: Pablo Neira Ayuso Date: Mon Sep 14 18:04:09 2015 +0200 netfilter: nft_compat: skip family comparison in case of NFPROTO_UNSPEC Fix lookup of existing match/target structures in the corresponding list by skipping the family check if NFPROTO_UNSPEC is used. This is resulting in the allocation and insertion of one match/target structure for each use of them. So this not only bloats memory consumption but also severely affects the time to reload the ruleset from the iptables-compat utility. After this patch, iptables-compat-restore and iptables-compat take almost the same time to reload large rulesets. Fixes: 0ca743a55991 ("netfilter: nf_tables: add compatibility layer for x_tables") Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_compat.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 63cdbc06b357dcb3a7104a421ee4a4550d7fadfd Author: Florian Westphal Date: Mon Sep 14 17:06:27 2015 +0200 netfilter: bridge: fix routing of bridge frames with call-iptables=1 We can't re-use the physoutdev storage area. 1. When using NFQUEUE in PREROUTING, we attempt to bump a bogus refcnt since nf_bridge->physoutdev is garbage (ipv4/ipv6 address) 2. for same reason, we crash in physdev match in FORWARD or later if skb is routed instead of bridged. This increases nf_bridge_info to 40 bytes, but we have no other choice. Fixes: 72b1e5e4cac7 ("netfilter: bridge: reduce nf_bridge_info to 32 bytes again") Reported-by: Sander Eikelenboom Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/skbuff.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 586b286b110e94eb31840ac5afc0c24e0881fe34 Author: Mike Snitzer Date: Wed Sep 9 21:34:51 2015 -0400 dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE Setting the dm-crypt device's max_segment_size to PAGE_SIZE is an unfortunate constraint that is required to avoid the potential for exceeding dm-crypt's underlying device's max_segments limits -- due to crypt_alloc_buffer() possibly allocating pages for the encryption bio that are not as physically contiguous as the original bio. It is interesting to note that this problem was already fixed back in 2007 via commit 91e106259 ("dm crypt: use bio_add_page"). But Linux 4.0 commit cf2f1abfb ("dm crypt: don't allocate pages for a partial request") regressed dm-crypt back to _not_ using bio_add_page(). But given dm-crypt's cpu parallelization changes all depend on commit cf2f1abfb's abandoning of the more complex io fragments processing that dm-crypt previously had we cannot easily go back to using bio_add_page(). So all said the cleanest way to resolve this issue is to fix dm-crypt to properly constrain the original bios entering dm-crypt so the encryption bios that dm-crypt generates from the original bios are always compatible with the underlying device's max_segments queue limits. It should be noted that technically Linux 4.3 does _not_ need this fix because of the block core's new late bio-splitting capability. But, it is reasoned, there is little to be gained by having the block core split the encrypted bio that is composed of PAGE_SIZE segments. That said, in the future we may revert this change. Fixes: cf2f1abfb ("dm crypt: don't allocate pages for a partial request") Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=104421 Suggested-by: Jeff Moyer Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 4.0+ drivers/md/dm-crypt.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 43297dda0a51e4ffed0888ce727c218cfb7474b6 Author: Will Deacon Date: Mon Sep 14 16:06:03 2015 +0100 KVM: arm64: add workaround for Cortex-A57 erratum #852523 When restoring the system register state for an AArch32 guest at EL2, writes to DACR32_EL2 may not be correctly synchronised by Cortex-A57, which can lead to the guest effectively running with junk in the DACR and running into unexpected domain faults. This patch works around the issue by re-ordering our restoration of the AArch32 register aliases so that they happen before the AArch64 system registers. Ensuring that the registers are restored in this order guarantees that they will be correctly synchronised by the core. Cc: Reviewed-by: Marc Zyngier Signed-off-by: Will Deacon Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp.S | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 762982db33b23029e98c844611e2e8beeb75bc0d Author: Roger Quadros Date: Thu Aug 13 13:28:42 2015 +0300 usb: phy: phy-generic: Fix reset behaviour on legacy boot The gpio-desc migration done in v4.0 caused a regression with legacy boots due to reversed reset logic. e.g. omap3-beagle USB host breaks on legacy boot. Request the reset GPIO with GPIOF_ACTIVE_LOW flag so that it matches the driver logic and pin behaviour. Fixes: e9f2cefb0cdc ("usb: phy: generic: migrate to gpio_desc") Cc: # 4.0+ Tested-by: Fabio Estevam Signed-off-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/phy/phy-generic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 523d5daf86e5e8b540bdc91e090197b5665f0519 Author: Luis de Bethencourt Date: Thu Aug 27 17:45:37 2015 +0200 usb: musb: ux500: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Felipe Balbi drivers/usb/musb/ux500.c | 2 ++ 1 file changed, 2 insertions(+) commit 6fc6f4b87cb32fcd0bf5e5bce434301958a3b624 Author: Pascal Huerst Date: Thu Sep 3 10:50:58 2015 +0200 usb: musb: Disable interrupts on suspend, enable them on resume In certain situations, an interrupt triggers on resume, before musb_start() has been called. This has been observed to cause enumeration issues after suspend/resume cycles with AM335x. Signed-off-by: Pascal Huerst Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 6527cc27761a124de8c08e6488ce17fdcc74dbba Author: Alexey Khoroshilov Date: Sun Sep 6 01:11:51 2015 +0300 usb: gadget: amd5536udc: fix error handling in udc_pci_probe() If a failure happens early in udc_pci_probe(), error handling code just kfree(dev) and returns. The patch adds proper resource deallocations in udc_pci_probe() itself, since udc_pci_remove() is not suitabe to be called so early in initialization process. By the way, iounmap(dev->regs) is replaced by iounmap(dev->virt_addr) in udc_pci_remove() for clarity. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/amd5536udc.c | 43 +++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 23 deletions(-) commit 88ccdbd5fc59ce8c69261a20746ca2533be7e358 Author: Randy Dunlap Date: Thu Sep 10 10:37:39 2015 -0700 usb: phy: fix phy-qcom-8x16-usb build Fix build errors that happen when USB_QCOM_8X16_PHY=y and EXTCON=m: drivers/built-in.o: In function `phy_8x16_init': phy-qcom-8x16-usb.c:(.text+0x86ef4): undefined reference to `extcon_get_cable_state' drivers/built-in.o: In function `phy_8x16_probe': phy-qcom-8x16-usb.c:(.text+0x870bf): undefined reference to `extcon_get_edev_by_phandle' phy-qcom-8x16-usb.c:(.text+0x87133): undefined reference to `extcon_register_interest' phy-qcom-8x16-usb.c:(.text+0x87151): undefined reference to `extcon_unregister_interest' drivers/built-in.o: In function `phy_8x16_remove': phy-qcom-8x16-usb.c:(.text+0x872ec): undefined reference to `extcon_unregister_interest' Signed-off-by: Randy Dunlap Cc: Felipe Balbi Signed-off-by: Felipe Balbi drivers/usb/phy/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40af177efc9385af15c49a40976f71e58e6af418 Author: Bin Liu Date: Mon Sep 14 09:12:34 2015 -0500 usb: musb: ensure in peripheral mode when checking session The change ensures otg is not in a A- state when checking for VBUS in peripheral mode. musb_start() where VBUS checking is in can be called in many situations. One example is in babble recovery routine, in which otg is transitioning from A-HOST to A-WAIT-BCON, but VBUS discharge takes time, so musb->is_active could be set to 1 due to this improper checking, then it causes musb_bus_suspend() failed which leads to warning log message flooding. Signed-off-by: Bin Liu Signed-off-by: Felipe Balbi drivers/usb/musb/musb_core.c | 1 + 1 file changed, 1 insertion(+) commit 51256484c033a6d57d71aa8f788c24e5dc82348a Merge: edb9272 0c06729 Author: Paolo Bonzini Date: Mon Sep 14 17:07:35 2015 +0200 Merge tag 'kvm-arm-for-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master KVM/ARM changes for 4.3-rc2 - Fix timer interrupt injection after the rework that went in during the merge window - Reset the timer to zero on reboot - Make sure the TCR_EL2 RES1 bits are really set to 1 - Fix a PSCI affinity bug for non-existing vcpus commit edb9272f35d8bc97c86101a13f67d0ba16f3eecc Author: Wanpeng Li Date: Mon Sep 14 17:38:51 2015 +0800 KVM: fix polling for guest halt continued even if disable it If there is already some polling ongoing, it's impossible to disable the polling, since as soon as somebody sets halt_poll_ns to 0, polling will never stop, as grow and shrink are only handled if halt_poll_ns is != 0. This patch fix it by reset vcpu->halt_poll_ns in order to stop polling when polling is disabled. Reported-by: Christian Borntraeger Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e2ae0692bf6f71c8b841889b655d0dc08413e4e3 Author: Felipe Balbi Date: Tue Aug 25 12:07:45 2015 -0500 usb: dwc3: omap: enable irqs lately If we enable IRQs before requesting our extcon device, we might fall into a situation where and IRQ fires before we're ready to handle it. Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-omap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e4c1b1ba7f663fd77204201eef83baf58e2e5777 Author: Robert Baldyga Date: Fri Aug 21 11:01:29 2015 +0200 usb: gadget: fix possible regression introduced with ep->claimed This patch fixes possible regression introduced by patch reworking endpoint claiming mechanism. It restores setring ep->driver_data to NULL in usb_ep_autoconfig_reset(), which was removed by patch commit cc476b42a39d. Fixes: cc476b42a39d ("usb: gadget: encapsulate endpoint claiming mechanism") Reported-by: Felipe Balbi Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 1 + 1 file changed, 1 insertion(+) commit f5cbb182586ea36c6ad0e90e3534d18a5e9af094 Author: Javi Merino Date: Mon Sep 14 14:23:53 2015 +0100 thermal: power_allocator: don't require tzp to be present for the thermal zone Thermal zones created using thermal_zone_device_create() may not have tzp. As the governor gets its parameters from there, allocate it while the governor is bound to the thermal zone so that it can operate in it. In this case, tzp is freed when the thermal zone switches to another governor. Cc: Zhang Rui Cc: Eduardo Valentin Reviewed-by: Daniel Kurtz Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/power_allocator.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) commit 8b7b390f805f09ff252351468a79ebabde1ab55a Author: Javi Merino Date: Mon Sep 14 14:23:52 2015 +0100 thermal: power_allocator: relax the requirement of two passive trip points The power allocator governor currently requires that the thermal zone has at least two passive trip points. If there aren't, the governor refuses to bind to the thermal zone. This commit relaxes that requirement. Now the governor will bind to all thermal zones regardless of how many trip points they have. Cc: Zhang Rui Cc: Eduardo Valentin Reviewed-by: Daniel Kurtz Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin Documentation/thermal/power_allocator.txt | 2 +- drivers/thermal/power_allocator.c | 101 +++++++++++++++++------------- 2 files changed, 58 insertions(+), 45 deletions(-) commit e055bb0f9a6e5c09bedf41c2a5b881edbd7f2ed0 Author: Javi Merino Date: Mon Sep 14 14:23:51 2015 +0100 thermal: power_allocator: relax the requirement of a sustainable_power in tzp The power allocator governor currently requires that a sustainable power is passed as part of the thermal zone's thermal zone parameters. If that parameter is not provided, it doesn't register with the thermal zone. While this parameter is strongly recommended for optimal performance, it doesn't need to be mandatory. Relax the requirement and allow the governor to bind to thermal zones that don't provide it by estimating it from the cooling devices' power model. Cc: Zhang Rui Cc: Eduardo Valentin Reviewed-by: Daniel Kurtz Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/power_allocator.c | 125 ++++++++++++++++++++++++++++++-------- 1 file changed, 100 insertions(+), 25 deletions(-) commit c973c3bcec3752455c4d7545edd42935cd7942d9 Author: Javi Merino Date: Mon Sep 14 14:23:50 2015 +0100 thermal: Add a function to get the minimum power The thermal core already has a function to get the maximum power of a cooling device: power_actor_get_max_power(). Add a function to get the minimum power of a cooling device. Cc: Zhang Rui Cc: Eduardo Valentin Reviewed-by: Daniel Kurtz Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/thermal_core.c | 28 ++++++++++++++++++++++++++++ include/linux/thermal.h | 6 ++++++ 2 files changed, 34 insertions(+) commit 205ee117d4dc4a11ac3bd9638bb9b2e839f4de9a Author: Florian Westphal Date: Wed Sep 9 02:57:21 2015 +0200 netfilter: nf_log: don't zap all loggers on unregister like nf_log_unset, nf_log_unregister must not reset the list of loggers. Otherwise, a call to nf_log_unregister() will render loggers of other nf protocols unusable: iptables -A INPUT -j LOG modprobe nf_log_arp ; rmmod nf_log_arp iptables -A INPUT -j LOG iptables: No chain/target/match by that name Fixes: 30e0c6a6be ("netfilter: nf_log: prepare net namespace support for loggers") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_log.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit cda34fc774d114afe98515a21c2063a803f922bc Author: Juergen Gross Date: Mon Sep 14 12:42:23 2015 +0200 x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method It's not used anywhere. Signed-off-by: Juergen Gross Acked-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 Cc: akataria@vmware.com Cc: chrisw@sous-sol.org Cc: jeremy@goop.org Cc: virtualization@lists.linux-foundation.org Link: http://lkml.kernel.org/r/1442227343-403-1-git-send-email-jgross@suse.com Signed-off-by: Ingo Molnar arch/x86/include/asm/paravirt_types.h | 1 - 1 file changed, 1 deletion(-) commit bf950040a53da35522e38066d9eb6ab7a1c9d136 Author: Will Deacon Date: Fri Sep 11 18:22:02 2015 +0100 arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM Depending on CONFIG_ARM64_HW_AFDBM, we use either bit 57 or 51 of the pte to represent PTE_WRITE. Given that bit 51 is reserved prior to ARMv8.1, we can just use that bit regardless of the config option. That also matches what happens if a kernel configured with ARM64_HW_AFDBM=y is run on a CPU without the DBM functionality. Cc: Julien Grall Tested-by: Julien Grall Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 62d96c71d248834af2891293dc23cc344ae2ec36 Author: Catalin Marinas Date: Fri Sep 11 18:22:01 2015 +0100 arm64: Fix pte_modify() to preserve the hardware dirty information The pte_modify() function with hardware AF/DBM enabled must transfer the hardware dirty information to the software PTE_DIRTY bit. However, it was setting this bit in newprot and the mask does not cover such bit. This patch sets PTE_DIRTY on the original pte which will be preserved in the returned value. Fixes: 2f4b829c625e ("arm64: Add support for hardware updates of the access and dirty pte bits") Cc: Julien Grall Tested-by: Julien Grall Tested-by: Will Deacon Signed-off-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b847415ce96efef819534b230d84695b1bc6d36b Author: Catalin Marinas Date: Fri Sep 11 18:22:00 2015 +0100 arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled Commit 2f4b829c625e ("arm64: Add support for hardware updates of the access and dirty pte bits") introduced support for handling hardware updates of the access flag and dirty status. The PTE is automatically dirtied in hardware (if supported) by clearing the PTE_RDONLY bit when the PTE_DBM/PTE_WRITE bit is set. The pte_hw_dirty() macro was added to detect a hardware dirtied pte. The pte_dirty() macro checks for both software PTE_DIRTY and pte_hw_dirty(). Functions like pte_modify() clear the PTE_RDONLY bit since it is meant to be set in set_pte_at() when written to memory. In such cases, pte_hw_dirty() would return true even though such pte is clean. This patch changes pte_hw_dirty() to test the PTE_DBM/PTE_WRITE bit together with PTE_RDONLY. Fixes: 2f4b829c625e ("arm64: Add support for hardware updates of the access and dirty pte bits") Reported-by: Julien Grall Tested-by: Julien Grall Tested-by: Will Deacon Signed-off-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ba9cc453c400049f632d4eb2f2835e2f96654ddc Author: Jisheng Zhang Date: Fri Sep 11 08:49:47 2015 +0100 arm64: dma-mapping: check whether cma area is initialized or not If CMA is turned on and CMA size is set to zero, kernel should behave as if CMA was not enabled at compile time. Every dma allocation should check existence of cma area before requesting memory. Arm has done this by commit e464ef16c4f0 ("arm: dma-mapping: add checking cma area initialized"), also do this for arm64. Acked-by: Catalin Marinas Signed-off-by: Jisheng Zhang Signed-off-by: Will Deacon arch/arm64/mm/dma-mapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f454b478861325f067fd58ba7ee9f1b5c4a9d6a0 Author: Jan Beulich Date: Wed Sep 2 09:45:58 2015 -0600 x86/ldt: Fix small LDT allocation for Xen While the following commit: 37868fe113 ("x86/ldt: Make modify_ldt synchronous") added a nice comment explaining that Xen needs page-aligned whole page chunks for guest descriptor tables, it then nevertheless used kzalloc() on the small size path. As I'm unaware of guarantees for kmalloc(PAGE_SIZE, ) to return page-aligned memory blocks, I believe this needs to be switched back to __get_free_page() (or better get_zeroed_page()). Signed-off-by: Jan Beulich Cc: Andy Lutomirski Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: David Vrabel Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/55E735D6020000780009F1E6@prv-mh.provo.novell.com Signed-off-by: Ingo Molnar arch/x86/kernel/ldt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eef7635a22f6b144206b5ca2f1398f637acffc4d Author: Viresh Kumar Date: Fri Sep 11 09:34:26 2015 +0530 clockevents: Remove unused set_mode() callback All users are migrated to the per-state callbacks, get rid of the unused interface and the core support code. Signed-off-by: Viresh Kumar Signed-off-by: Thomas Gleixner Cc: linaro-kernel@lists.linaro.org Cc: John Stultz Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/fd60de14cf6d125489c031207567bb255ad946f6.1441943991.git.viresh.kumar@linaro.org Signed-off-by: Ingo Molnar include/linux/clockchips.h | 29 +++++-------------------- kernel/time/clockevents.c | 42 +----------------------------------- kernel/time/tick-common.c | 1 - kernel/time/timer_list.c | 54 +++++++++++++++++++++------------------------- 4 files changed, 30 insertions(+), 96 deletions(-) commit 04a6b8bfee06e309be7e9ae4527cdab19c081761 Author: Mathias Krause Date: Fri Sep 11 09:57:20 2015 +0200 xfrm6: Fix ICMPv6 and MH header checks in _decode_session6 Ensure there's enough data left prior calling pskb_may_pull(). If skb->data was already advanced, we'll call pskb_may_pull() with a negative value converted to unsigned int -- leading to a huge positive value. That won't matter in practice as pskb_may_pull() will likely fail in this case, but it leads to underflow reports on kernels handling such kind of over-/underflows, e.g. a PaX enabled kernel instrumented with the size_overflow plugin. Reported-by: satmd Reported-and-tested-by: Marcin Jurkowski Signed-off-by: Mathias Krause Cc: PaX Team Signed-off-by: Steffen Klassert net/ipv6/xfrm6_policy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1e6428124fe22906be0de1622c8fed8e50e5de05 Author: Ingo Molnar Date: Sat Sep 5 08:58:10 2015 +0200 x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text The CONFIG_VM86 Kconfig help text is actively misleading, so fix it: - Don't mark it 'obsolete' in the text as we'll support the ABI as long as CPUs support it. - Qualify the part about software emulation and mention that for some apps you want a real vm86 mode. - Don't scare users away from the option, instead explain what it does. Reported-by: Stas Sergeev Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Austin S Hemmelgarn Cc: Borislav Petkov Cc: Brian Gerst Cc: Josh Boyer Cc: Kees Cook Cc: Linus Torvalds Cc: Matthew Garrett Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/Kconfig | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit b838c950b397ebed94eb11b473f1f17428a1443d Author: Thomas Gleixner Date: Mon Sep 14 10:20:25 2015 +0200 soc: dove: Prepare irq handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Gregory CLEMENT drivers/soc/dove/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5230347ea70a811f0a526e8e4f0f529ac31b7d18 Author: Thomas Gleixner Date: Mon Sep 14 10:27:13 2015 +0200 soc: dove: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Search and replace done with coccinelle Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu drivers/soc/dove/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 391de7f9ef9e6a500343d977ccd037b70e62aa45 Author: Thomas Gleixner Date: Mon Sep 14 10:17:00 2015 +0200 powerpc/cell: Prepare irq handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Arnd Bergmann Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/platforms/cell/interrupt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0a0dbd92584061549d9775030269365dc16ad289 Author: Thomas Gleixner Date: Mon Sep 14 10:13:42 2015 +0200 powerpc/85xx: Prepare irq handlers for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Scott Wood Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/platforms/85xx/mpc85xx_cds.c | 3 ++- arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 5aac2d3368210f15c2fc73f158e2110a0bb611ca Author: Thomas Gleixner Date: Mon Sep 14 10:11:26 2015 +0200 powerpc/mpc5121_ads_cpld: Prepare irq handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Anatolij Gustschin Cc: linuxppc-dev@lists.ozlabs.org arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2e586a7e017a502410ba1c1a7411179e1d3fbb2b Author: Thomas Hellstrom Date: Mon Sep 14 01:17:43 2015 -0700 drm/vmwgfx: Map the fifo as cached On the guest kernel side, previously the FIFO has been mapped write- combined. This has worked since VMs up to now has not honored the mapping type and mapped the FIFO cached anyway. Since the FIFO is accessed cached by the CPU on the virtual device side, this leads to inconsistent mappings once the guest starts to honor the mapping types. So ask for cached mappings when we map the FIFO. We do this by using ioremap_cache() instead of ioremap_wc(), and remove the MTRR setup. On the TTM side, MOBs, GMRs and VRAM buffers are already requesting cached mappings for kernel- and user-space. Cc: Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 10 ++-------- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 - 2 files changed, 2 insertions(+), 9 deletions(-) commit 54c12bc374408faddbff75dbf1a6167c19af39c4 Author: Thomas Hellstrom Date: Mon Sep 14 01:13:11 2015 -0700 drm/vmwgfx: Fix up user_dmabuf refcounting If user space calls unreference on a user_dmabuf it will typically kill the struct ttm_base_object member which is responsible for the user-space visibility. However the dmabuf part may still be alive and refcounted. In some situations, like for shared guest-backed surface referencing/opening, the driver may try to reference the struct ttm_base_object member again, causing an immediate kernel warning and a later kernel NULL pointer dereference. Fix this by always maintaining a reference on the struct ttm_base_object member, in situations where it might subsequently be referenced. Cc: Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 6 ++++-- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 6 ++++-- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 29 +++++++++++++++++++++-------- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 11 ++++++++--- 6 files changed, 39 insertions(+), 17 deletions(-) commit 19ab6bc5674a30fdb6a2436b068d19a3c17dc73e Author: Liu.Zhao Date: Mon Aug 24 08:36:12 2015 -0700 USB: option: add ZTE PIDs This is intended to add ZTE device PIDs on kernel. Signed-off-by: Liu.Zhao Cc: stable [johan: sort the new entries ] Signed-off-by: Johan Hovold drivers/usb/serial/option.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 91a4dc9f71e4b8f9b8da547d19f80e7be89d7539 Merge: ebfb498 caa4704 Author: Ingo Molnar Date: Mon Sep 14 09:29:22 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fix from Arnaldo Carvalho de Melo: - The values of _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN (sysconf(3)) were being read from perf.data files in the inverse order they are written, fix it. (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit fa84b52cb681b27e6b5e003457562e25a239b9c4 Author: Linus Walleij Date: Tue Sep 8 16:46:40 2015 +0200 pinctrl: samsung: s3c24xx: fix syntax error ?SYNTAX ERROR irq_desc_get_irq_chip() does not exist. It should be irq_desc_get_chip(). Tested by compiling s3c2410_defconfig. Cc: Thomas Gleixner Reported-by: Paul Gortmaker Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 942cde724075f840ded89390b10dce1a47a4d712 Author: Tony Lindgren Date: Thu Sep 3 10:34:30 2015 -0700 pinctrl: core: Warn about NULL gpio_chip in pinctrl_ready_for_gpio_range() If the gpio driver is confused about the numbers for gpio-ranges, pinctrl_ready_for_gpio_range() may get called with invalid GPIO causing a NULL pointer exception. Let's instead provide a warning that allows fixing the problem and return with error. Signed-off-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/pinctrl/core.c | 3 +++ 1 file changed, 3 insertions(+) commit 163dc9f39a26b41fc49319fce4145b35f9705789 Author: Masahiro Yamada Date: Sat Aug 1 13:22:38 2015 +0900 pinctrl: join lines that can be a single line within 80 columns There is no reason to break a line shorter than 80 columns. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/pinmux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5a99233e9bcacc7ea23e173a75bbb7301abd3e6f Author: Julia Lawall Date: Mon Aug 24 23:12:27 2015 +0200 pinctrl: digicolor: convert null test to IS_ERR test Since commit 323de9efdf3e ("pinctrl: make pinctrl_register() return proper error code"), pinctrl_register returns an error code rather than NULL on failure. Update a driver that was introduced more recently. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression e,e1,e2; @@ e = pinctrl_register(...) ... when != e = e1 if ( - e == NULL + IS_ERR(e) ) { ... return - e2 + PTR_ERR(e) ; } // Signed-off-by: Julia Lawall Acked-by: Baruch Siach Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-digicolor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d259ec26a6c541a5437e9ed0a1e1891342af3cff Author: Julia Lawall Date: Mon Aug 24 23:12:26 2015 +0200 pinctrl: qcom: ssbi: convert null test to IS_ERR test Since commit 323de9efdf3e ("pinctrl: make pinctrl_register() return proper error code"), pinctrl_register returns an error code rather than NULL on failure. Update some drivers that were introduced more recently. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression e,e1,e2; @@ e = pinctrl_register(...) ... when != e = e1 if ( - e == NULL + IS_ERR(e) ) { ... return - e2 + PTR_ERR(e) ; } // Signed-off-by: Julia Lawall 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 46d4f7c25e1bb59b1663878b843a7ec06eaf5806 Author: Tony Lindgren Date: Thu Sep 3 10:31:27 2015 -0700 gpio: omap: Fix GPIO numbering for deferred probe If gpio-omap probe fails with -EPROBE_DEFER, the GPIO numbering keeps increasing. Only increase the gpio count if gpiochip_add() was successful as otherwise the numbers will increase for each probe attempt. Cc: Javier Martinez Canillas Cc: Kevin Hilman Cc: Santosh Shilimkar Reviewed-by: Grygorii Strashko Signed-off-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ae80d64ee8c88b77c58254bcdc5c0981faab672d Author: Javier Martinez Canillas Date: Tue Sep 1 10:46:15 2015 +0200 Documentation: gpio: Explain that -gpio is also supported The GPIO documentation mentions that GPIOs are mapped by defining a -gpios property in the consumer device's node but a -gpio sufix is also supported after commit: dd34c37aa3e8 ("gpio: of: Allow -gpio suffix for property names") Update the documentation to match the implementation. Signed-off-by: Javier Martinez Canillas Signed-off-by: Linus Walleij Documentation/gpio/board.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5e606abef57a89b3ca25f5d97a953c6cdad7cbac Author: Tony Lindgren Date: Fri Aug 28 11:44:49 2015 -0700 gpio: omap: Fix gpiochip_add() handling for deferred probe Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER: [ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register [ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517 ... [ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable! Let's fix the issue by adding the missing pm_runtime_put() on error. Cc: Grygorii Strashko Cc: Javier Martinez Canillas Cc: Kevin Hilman Cc: Santosh Shilimkar Acked-by: Santosh Shilimkar Signed-off-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit e799f35c32ea940222b568abf38d6abcab7fa8c1 Author: Javier Martinez Canillas Date: Sun Aug 30 23:58:44 2015 +0200 gpio: sx150x: Remove unnecessary MODULE_ALIAS() The driver has a I2C device id table that is used to create the module aliases and also "sx150x" isn't a supported I2C id, so it's never used. Signed-off-by: Javier Martinez Canillas Signed-off-by: Linus Walleij drivers/gpio/gpio-sx150x.c | 1 - 1 file changed, 1 deletion(-) commit 87e77e46c61a9333227ab41cdefb1875758a4f13 Author: Dirk Behme Date: Wed Sep 2 20:07:10 2015 +0200 Documentation: gpio: board: describe the con_id parameter The con_id parameter has to match the GPIO description and is automatically extended by the GPIO suffix if not NULL. I had to look into the code to understand this and properly find the GPIO I've been looking for, so document this. Signed-off-by: Dirk Behme Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij Documentation/gpio/board.txt | 9 +++++++++ Documentation/gpio/consumer.txt | 3 +++ 2 files changed, 12 insertions(+) commit 69de52ba321dda8dd7f632d1e480983494325ba0 Author: Dirk Behme Date: Wed Sep 2 20:07:09 2015 +0200 Documentation: gpio: board: add flags parameter to gpiod_get*() functions With commit 39b2bbe3d715 ("gpio: add flags argument to gpiod_get*() functions") the gpiod_get*() functions got a 'flags' parameter. Reflect this in the documentation, too. Signed-off-by: Dirk Behme Signed-off-by: Linus Walleij Documentation/gpio/board.txt | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit e20538b82f1ffcc06e68feb117f24f211cff7a4d Author: Bjorn Andersson Date: Fri Aug 28 09:44:18 2015 -0700 gpio: Propagate errors from chip->get() It's possible to have gpio chips hanging off unreliable remote buses where the get() operation will fail to acquire a readout of the current gpio state. Propagate these errors to the consumer so that they can act on, retry or ignore these failing reads, instead of treating them as the line being held high. Signed-off-by: Bjorn Andersson Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit aad38b75fb632200eb64282469458d21ce2cc39a Author: Kuninori Morimoto Date: Tue Aug 25 09:12:43 2015 +0000 gpio: rcar: GPIO_RCAR doesn't relate to ARM 8cd1470("gpio: rcar: Add r8a7795 (R-Car H3) support") added GPIO support for r8a7795. r8a7795 based on CONFIG_ARM64. OTOH, GPIO_RCAR driver can be compiled fine on non-ARM. This patch removed ARM dependency for it. Signed-off-by: Kuninori Morimoto Acked-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bbc557d976b4e5ae9a41d619bd79f09ccac9afc Author: Peng Fan Date: Sun Aug 23 21:11:53 2015 +0800 gpio: mxs: need to check return value of irq_alloc_generic_chip Need to check return value of irq_alloc_generic_chip, because it may return NULL. 1. Change mxs_gpio_init_gc return type from void to int. 2. Add a new lable out_irqdomain_remove to remove the irq domain when mxc_gpio_init_gc fail. Signed-off-by: Peng Fan Cc: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-mxs.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 9e26b0b114adb321a9bf41520bac304ef49e77d1 Author: Peng Fan Date: Sun Aug 23 21:11:52 2015 +0800 gpio: mxc: need to check return value of irq_alloc_generic_chip Need to check return value of irq_alloc_generic_chip, because it may return NULL. 1. Change mxc_gpio_init_gc return type from void to int. 2. Add a new lable out_irqdomain_remove to remove the irq domain when mxc_gpio_init_gc fail. Signed-off-by: Peng Fan Cc: Alexandre Courbot [Manually rebased] Signed-off-by: Linus Walleij drivers/gpio/gpio-mxc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit eba4f88d5af84e0fcaa5d6eb4fe35a75c47203cb Author: Javi Merino Date: Mon Aug 17 19:21:43 2015 +0100 thermal: cpu_cooling: free power table on error or when unregistering The power table is not being freed on error from cpufreq_cooling register or when unregistering. Free it. Fixes: c36cf0717631 ("thermal: cpu_cooling: implement the power cooling device API") Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 459ac37506d195713b5e82271a2ac44a777e47df Author: Javi Merino Date: Mon Aug 17 19:21:42 2015 +0100 thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock build_dyn_power_table() allocates the power table while holding rcu_read_lock. kcalloc using GFP_KERNEL may sleep, so it can't be called in an RCU read-side path. Move the rcu protection to the part of the function that really needs it: the part that handles the dev_pm_opp pointer received from dev_pm_opp_find_freq_ceil(). In the unlikely case that there is an OPP added to the cpu while this function is running, return -EAGAIN. Fixes: c36cf0717631 ("thermal: cpu_cooling: implement the power cooling device API") Cc: Zhang Rui Cc: Eduardo Valentin Signed-off-by: Javi Merino Signed-off-by: Eduardo Valentin drivers/thermal/cpu_cooling.c | 47 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 24 deletions(-) commit 0847e26a84faa0fcb4572d7e42d0a44cab69a83d Author: Luis de Bethencourt Date: Thu Sep 3 13:10:14 2015 +0200 thermal: db8500_cpufreq_cooling: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Eduardo Valentin drivers/thermal/db8500_cpufreq_cooling.c | 1 + 1 file changed, 1 insertion(+) commit 64e05d8bcc837bc66cb2c6e71796c8883aa45939 Author: Viresh Kumar Date: Thu Aug 27 07:32:11 2015 +0530 thermal: cpu_cooling: Add MAINTAINERS entry None of the patches are reaching Viresh or Daniel directly as get_maintainers doesn't report us as maintainers. Looks like file header or history of commits isn't able to do that properly. Add a separate entry for cpu_cooling driver in MAINTAINERS. Acked-by: Eduardo Valentin Acked-by: Amit Daniel Kachhap Acked-by: Amit Daniel Kachhap Signed-off-by: Viresh Kumar Signed-off-by: Eduardo Valentin MAINTAINERS | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ec2feb475f4880246166a47e066e7a601a6103af Author: Eduardo Valentin Date: Wed Sep 9 21:13:41 2015 -0700 thermal: ti-soc: Kconfig fix to avoid menu showing wrongly Move the dependencies to menu, so we avoid showing it wrongly. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 1 + drivers/thermal/ti-soc-thermal/Kconfig | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) commit 41ae3c02743e8f1f21ceebca614342d26b4eb080 Author: Eduardo Valentin Date: Wed Sep 9 20:58:36 2015 -0700 thermal: ti-soc: allow compile test Adding COMPILE_TEST flag to ti-soc driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/ti-soc-thermal/Kconfig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit cb7fb4d342023d03070fcc1ed73fcd43682973d7 Author: Eduardo Valentin Date: Wed Sep 9 20:56:26 2015 -0700 thermal: qcom_spmi: allow compile test Adding COMPILE_TEST flag to qcom_spmi driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2bf427353eb606481d15d2843c76cdffa29ed418 Author: Eduardo Valentin Date: Wed Sep 9 20:53:35 2015 -0700 thermal: exynos: allow compile test Adding COMPILE_TEST flag to exynos driver to facilitate maintenance. Cc: Lukasz Majewski Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b1582672121e1c1138e68b64128d94e7f61d10c Author: Eduardo Valentin Date: Wed Sep 9 20:48:00 2015 -0700 thermal: armada: allow compile test Adding COMPILE_TEST flag to armada driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07fffd5ccab70bc00fd69b9ce2297a5e8d05b838 Author: Eduardo Valentin Date: Wed Sep 9 20:45:25 2015 -0700 thermal: dove: allow compile test Adding COMPILE_TEST flag to dove driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c8aa959e13f5cb082ad244d2c9b806a67d9a8b6 Author: Eduardo Valentin Date: Wed Sep 9 20:44:46 2015 -0700 thermal: kirkwood: allow compile test Adding COMPILE_TEST flag to kirkwood driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 444f9b00073668f028db0c14f609cf08abc9a2b3 Author: Eduardo Valentin Date: Wed Sep 9 20:43:57 2015 -0700 thermal: rockchip: allow compile test Adding COMPILE_TEST flag to rockchip driver to facilitate maintenance. Cc: Zhang Rui Cc: Heiko Stuebner Cc: linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa2937b73a45e49704b24db8d9163d83002332d9 Author: Eduardo Valentin Date: Wed Sep 9 20:42:01 2015 -0700 thermal: spear: allow compile test Adding COMPILE_TEST flag to spear driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Viresh Kumar Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9e2b05218e64fc6c614b90a650863981701f974 Author: Eduardo Valentin Date: Wed Sep 9 20:39:44 2015 -0700 thermal: hisi: allow compile test Adding COMPILE_TEST flag to hisi driver to facilitate maintenance. Cc: Zhang Rui Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin drivers/thermal/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd33dc9ac2977ebe30cecbf39d2992190fbac5b4 Author: Punit Agrawal Date: Tue Sep 8 14:51:12 2015 +0100 thermal: Fix thermal_zone_of_sensor_register to match documentation thermal_zone_of_sensor_register is documented as returning a pointer to either a valid thermal_zone_device on success, or a corresponding ERR_PTR() value. In contrast, the function returns NULL when THERMAL_OF is configured off. Fix this. Signed-off-by: Punit Agrawal Acked-by: Guenter Roeck Cc: Eduardo Valentin Cc: Zhang Rui Signed-off-by: Eduardo Valentin include/linux/thermal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 216076705d6ac291d42e0f8dd85e6a0da98c0fa3 Author: Mike Snitzer Date: Tue Sep 8 08:56:13 2015 -0400 dm thin: disable discard support for thin devices if pool's is disabled If the pool is configured with 'ignore_discard' its discard support is disabled. The pool's thin devices should also have queue_limits that reflect discards are disabled. Fixes: 34fbcf62 ("dm thin: range discard support") Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 4.1+ drivers/md/dm-thin.c | 4 ++++ 1 file changed, 4 insertions(+) commit cbc41d0a761bffb3166a413a3c77100a737c0cd7 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:15 2015 +0200 drivers: sh: Disable PM runtime for multi-platform ARM with genpd If the default PM Domain using PM_CLK is used for PM runtime, the real Clock Domain cannot be registered from DT later. Hence do not enable it when running a multi-platform kernel with genpd support on R-Car or RZ. The CPG/MSTP Clock Domain driver will take care of PM runtime management of the module clocks. Now most multi-platform ARM shmobile platforms (SH-Mobile, R-Mobile, R-Car, RZ) use DT-based PM Domains to take care of PM runtime management of the module clocks, simplify the platform logic by replacing the explicit SoC checks by a single check for the presence of MSTP clocks in DT. Backwards-compatiblity with old DTs (mainly for R-Car Gen2) is provided by checking for the presence of a "#power-domain-cells" property in DT. The default PM Domain is still needed for: - backwards-compatibility with old DTs that lack PM Domain properties, - the CONFIG_PM=n case, - legacy (non-DT) ARM/shmobile platforms without genpd support (r8a7778, r8a7779), - legacy SuperH. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman drivers/sh/pm_runtime.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit 9b302c1acf4114d51b7f0962df0b0ddee0dc75cd Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:14 2015 +0200 drivers: sh: Disable legacy default PM Domain on emev2 EMMA Mobile EV2 doesn't have MSTP clocks. All its device drivers manage clocks explicitly, without relying on Runtime PM, so it doesn't need the legacy default PM Domain. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman drivers/sh/pm_runtime.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 833b5794e3303cc97a0d2d4ba97f26cc9d9b4b79 Author: Chanho Park Date: Tue Sep 1 23:17:03 2015 +0900 ARM: EXYNOS: reset Little cores when cpu is up The cpu booting of exynos5422 has been still broken since we discussed it in last year[1]. This patch is inspired from Odroid XU3 code (Actually, it was from samsung exynos vendor kernel)[2]. This weird reset code was founded exynos5420 octa cores series SoCs and only required for the first boot core is the Little core (Cortex A7). Some of the exynos5420 boards and all of the exynos5422 boards will require this code. There is two ways to check the little core is the first cpu. One is checking GPG2CON[1] GPIO value and the other is checking the cluster number of the first cpu. I selected the latter because it's more easier than the former. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-June/350632.html [2] https://patchwork.kernel.org/patch/6782891/ Cc: Kevin Hilman Cc: Javier Martinez Canillas Cc: Krzysztof Kozlowski Tested-by: Kevin Hilman Signed-off-by: Chanho Park Cc: # 4.1+ [k.kozlowski: Adding stable for v4.1+, reformat comment] Signed-off-by: Krzysztof Kozlowski arch/arm/mach-exynos/mcpm-exynos.c | 27 ++++++++++++++++++++++++++- arch/arm/mach-exynos/regs-pmu.h | 6 ++++++ 2 files changed, 32 insertions(+), 1 deletion(-) commit 8b5081c876bde9b1df5e96ee6990d5acd20c128b Author: Benjamin Romer Date: Fri Sep 4 12:01:33 2015 -0400 staging: unisys: visornic: handle error return from device registration There is no code to handle an error return in visornic, when it tries to register with visorbus. This patch handles an error return from visorbus_register_visor_driver() by dropping out of initialization. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6155a3cf11a6d4ed102ef5a30f655d4d2a38076b Author: Benjamin Romer Date: Fri Sep 4 12:01:32 2015 -0400 staging: unisys: stop device registration before visorbus registration In cases where visorbus is compiled directly into the kernel, if visorbus registration fails for any reason, it is still possible for other drivers to call visorbus_register_visor_driver(), which could cause an oops. Prevent this by saving the result of the call to create_bus() in a static variable, and return an error code when the bus hasn't been registered successfully. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 418627ddc6d1ed50a3dfd2c8f938741b0cbcc1ed Author: David Kershner Date: Fri Sep 4 12:01:31 2015 -0400 staging: unisys: visorbus: Unregister driver on error If there is an error in registering driver attributes, unregister the driver as well. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 2 ++ 1 file changed, 2 insertions(+) commit f6b6a8ec9a3bcba8cc9a9c302b514cf3848e7d35 Author: David Kershner Date: Fri Sep 4 12:01:30 2015 -0400 staging: unisys: visornic: Fix receive bytes statistics The receive byte statistics was wrong in /proc/net/dev. Move the collection of statistics after the proper amount of bytes has been calculated and make sure you add it to rx_bytes instead of just replacing it. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5b12100a53c11ef760e78c2899be8f1bf33812ca Author: David Kershner Date: Fri Sep 4 12:01:29 2015 -0400 staging: unisys: unregister netdev when create debugfs fails Noticed we were not unregistering the netdevice if we failed to create the debugfs entries. This patch fixes that problem. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit dd3afa57c515801f37071734f56be9035fdeaa8c Author: Stefan Wahren Date: Tue Aug 25 21:04:12 2015 +0000 staging: fbtft: replace master->setup() with spi_setup() Calling the setup of the SPI master directly causes a NULL pointer dereference with master drivers without a separate setup function. This problem is reproduceable on ARM MXS platform. So fix this issue by using spi_setup() instead. Signed-off-by: Stefan Wahren Acked-by: Noralf Trønnes Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fb_uc1611.c | 2 +- drivers/staging/fbtft/fb_watterott.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit cabb5b2a2866829177df2f1cee70f0dd42ee6ae0 Author: Stefan Wahren Date: Tue Aug 25 21:04:11 2015 +0000 staging: fbtft: fix 9-bit SPI support detection Since the result of the setup function isn't adequate to check 9-bit SPI support, we better check bits_per_word_mask. Btw this change avoids a NULL pointer dereference with master drivers without a separate setup function. Signed-off-by: Stefan Wahren Acked-by: Noralf Trønnes Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-core.c | 10 +++------- drivers/staging/fbtft/flexfb.c | 11 ++++------- 2 files changed, 7 insertions(+), 14 deletions(-) commit d98229f0299d5d5a741873c5900159844b2b2de5 Author: Andreas Dilger Date: Mon Aug 24 11:11:49 2015 -0400 staging/lustre: change Lustre URLs and mailing list Now that the lustre.org domain has been liberated we can again use that for the main website URL and mailing list. Also update the URL for userspace tools downloads and Git repo. Signed-off-by: Andreas Dilger Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 4 ++-- drivers/staging/lustre/README.txt | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) commit a6ee5ac15ddf2425a066339f1ab030c97ec74b25 Author: Daniel Vetter Date: Fri Aug 21 14:02:57 2015 -0700 staging/android: Update ION TODO per LPC discussion We discussed a bit with the folks on the Cc: list below what to do with ION. Two big take-aways: - High-performance drivers (like gpus) always want to play tricks with coherency and will lie to the dma api (radeon, nouveau, i915 gpu drivers all do so in upstream). What needs to be done here is fill gaps in dma-buf so that we can do this without breaking the dma-api expections of other clients like v4l. The consesus is that hw won't stop needing these tricks anytime soon. - Placement constraints for shared buffers won't be solved any other way than through something platform-specific like ion with platform-specific knowledge in userspace in something like gralloc. For general-purpose devices where this assumption would be painful for userspace (like servers) the consensus is that such devices will have proper MMUs where placement constraint handling is fairly irrelevant. Hence it is reasonable to destage ion as-is without changing the overall design to enable these use-cases and just fixing up a these few fairly minor things. Since there won't relly be an open-source userspace for ion (and hence drm maintainers won't take it) the proposal is to eventually move it to drivers/android/ion.[hc]. Laura would be ok with being maintainer once this is all done and ion is destaged. Note that Thiago is working on exposing the cpu cache flushing for cpu access from userspace through mmaps so this is alread in progress. Also adding him to the Cc: list. v2: Add ION_IOC_IMPORT to the list of ioctl that probably should go. Cc: Laura Abbott Cc: sumit.semwal@linaro.org Cc: laurent.pinchart@ideasonboard.com Cc: ghackmann@google.com Cc: robdclark@gmail.com Cc: david.brown@arm.com Cc: romlem@google.com Cc: Tiago Vignatti Signed-off-by: Daniel Vetter Signed-off-by: Greg Kroah-Hartman drivers/staging/android/TODO | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit b786a8ad6a34b45ff6e40cf9c21f9c13c38e2f70 Author: Geert Uytterhoeven Date: Tue Sep 1 22:05:58 2015 +0200 Staging: most: MOST and MOSTCORE should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_free_coherent" [drivers/staging/most/mostcore/mostcore.ko] undefined! ERROR: "dma_alloc_coherent" [drivers/staging/most/mostcore/mostcore.ko] undefined! As all MOST sub drivers use DMA functionality, add a dependency on HAS_DMA to MOSTCORE, and to MOST, which selects MOSTCORE. Signed-off-by: Geert Uytterhoeven Acked-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 1 + drivers/staging/most/mostcore/Kconfig | 1 + 2 files changed, 2 insertions(+) commit 4de2ced795272db3ee5d668510b3a91a2bf1d1fb Author: Randy Dunlap Date: Mon Aug 17 11:08:23 2015 -0700 staging: most: fix HDM_USB dependencies and build errors Fix kconfig dependency warning and build errors. warning: (HDM_USB) selects AIM_NETWORK which has unmet direct dependencies (STAGING && MOST && NET) drivers/built-in.o: In function `aim_resume_tx_channel': networking.c:(.text+0xd6f7a2): undefined reference to `netif_tx_wake_queue' drivers/built-in.o: In function `aim_rx_data': networking.c:(.text+0xd6f8c5): undefined reference to `__netdev_alloc_skb' networking.c:(.text+0xd6f99a): undefined reference to `skb_put' networking.c:(.text+0xd6fa44): undefined reference to `eth_type_trans' networking.c:(.text+0xd6fa6f): undefined reference to `netif_rx' drivers/built-in.o: In function `most_nd_setup': networking.c:(.text+0xd6fad2): undefined reference to `ether_setup' drivers/built-in.o: In function `most_nd_set_mac_address': networking.c:(.text+0xd6fb0f): undefined reference to `eth_mac_addr' drivers/built-in.o: In function `most_nd_open': networking.c:(.text+0xd6fd37): undefined reference to `netif_tx_wake_queue' drivers/built-in.o: In function `aim_probe_channel': networking.c:(.text+0xd6febb): undefined reference to `alloc_netdev_mqs' networking.c:(.text+0xd6ff18): undefined reference to `register_netdev' networking.c:(.text+0xd6ff4a): undefined reference to `free_netdev' drivers/built-in.o: In function `most_net_rm_netdev_safe.isra.0': networking.c:(.text+0xd6ffcf): undefined reference to `unregister_netdev' networking.c:(.text+0xd6ffdf): undefined reference to `free_netdev' drivers/built-in.o: In function `most_nd_start_xmit': networking.c:(.text+0xd70390): undefined reference to `kfree_skb' drivers/built-in.o: In function `most_deliver_netinfo': (.text+0xd70499): undefined reference to `netif_tx_wake_queue' Signed-off-by: Randy Dunlap Cc: Christian Gromm Cc: Michael Fabry Cc: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-usb/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit caa470475d9b59eeff093ae650800d34612c4379 Author: Arnaldo Carvalho de Melo Date: Fri Sep 11 12:36:12 2015 -0300 perf header: Fixup reading of HEADER_NRCPUS feature The original patch introducing this header wrote the number of CPUs available and online in one order and then swapped those values when reading, fix it. Before: # perf record usleep 1 # perf report --header-only | grep 'nrcpus \(online\|avail\)' # nrcpus online : 4 # nrcpus avail : 4 # echo 0 > /sys/devices/system/cpu/cpu2/online # perf record usleep 1 # perf report --header-only | grep 'nrcpus \(online\|avail\)' # nrcpus online : 4 # nrcpus avail : 3 # echo 0 > /sys/devices/system/cpu/cpu1/online # perf record usleep 1 # perf report --header-only | grep 'nrcpus \(online\|avail\)' # nrcpus online : 4 # nrcpus avail : 2 After the fix, bringing back the CPUs online: # perf report --header-only | grep 'nrcpus \(online\|avail\)' # nrcpus online : 2 # nrcpus avail : 4 # echo 1 > /sys/devices/system/cpu/cpu2/online # perf record usleep 1 # perf report --header-only | grep 'nrcpus \(online\|avail\)' # nrcpus online : 3 # nrcpus avail : 4 # echo 1 > /sys/devices/system/cpu/cpu1/online # perf record usleep 1 # perf report --header-only | grep 'nrcpus \(online\|avail\)' # nrcpus online : 4 # nrcpus avail : 4 Acked-by: Namhyung Kim Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Stephane Eranian Cc: Wang Nan Fixes: fbe96f29ce4b ("perf tools: Make perf.data more self-descriptive (v8)") Link: http://lkml.kernel.org/r/20150911153323.GP23511@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/header.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a797451b3a595759b4df48150e611237d4bd204a Author: Douglas Anderson Date: Wed Sep 2 14:25:48 2015 -0700 ARM: dts: Add ddc i2c reference to veyron The ddc-i2c-bus property was missing from the veyron dtsi file since downstream the ddc-i2c-bus was still being specified in rk3288.dtsi and nobody noticed when the veyron dtsi was sent upstream. Add it. Signed-off-by: Douglas Anderson Tested-by: Brian Norris Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-veyron.dtsi | 1 + 1 file changed, 1 insertion(+) commit f594297830b29c8204c421fafe66001178ac0f9a Author: Josh Boyer Date: Fri Sep 4 08:49:34 2015 -0400 ARM: dts: Fix Makefile target for sun4i-a10-itead-iteaduino-plus Commit 79ae3e66f8d (ARM: dts: sun4i: Add Iteaduino Plus A10) added a new make target for the sun4i-a10-itead-iteaduino-plus dts file, but mistakenly used .dts instead of the correct .dtb suffix. This resulted in a build error like: scripts/Makefile.dtbinst:42: target 'sun4i-a10-itead-iteaduino-plus.dts' doesn't match the target pattern when doing a make dtbs_install. Fix it to use the proper file name. Signed-off-by: Josh Boyer Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eaeef1ad9b6ea6df1d1220c254d9563da60cb9d1 Author: Timo Sigurdsson Date: Tue Aug 4 23:08:01 2015 +0200 ARM: dts: sunxi: Raise minimum CPU voltage for sun7i-a20 to meet SoC specifications sun7i-a20.dtsi contains a cpufreq operating point at 0.9 volts. The minimum CPU voltage for the Allwinner A20 SoC, however, is 1.0 volts. Thus, raise the voltage for the lowest operating point to 1.0 volts in order to stay within the SoC specifications. It is an undervolted setting that isn't stable across all SoCs and boards out there. Cc: # v4.0+ Fixes: d96b7161916f ("ARM: dts: sun7i: Add cpu clock reference and operating points to dtsi") Signed-off-by: Timo Sigurdsson Acked-by: Iain Paton Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b692cb83b14d2f741f513221f5f78042c674c2a9 Author: Jarkko Nikula Date: Mon Sep 7 10:23:01 2015 +0300 ARM: pxa: ssp: Fix build error by removing originally incorrect DT binding Commit 03fbf488cece ("spi: pxa2xx: Differentiate Intel LPSS types") caused build error here because it removed the type LPSS_SSP and I didn't notice the type was used here too. I believe commit a6e56c28a178 ("ARM: pxa: ssp: add DT bindings") added it accidentally by copying all enum pxa_ssp_type types from include/linux/pxa2xx_ssp.h even LPSS_SSP was for Intel LPSS SPI devices. Fix the build error by removing this incorrect binding. Fixes: 03fbf488cece ("spi: pxa2xx: Differentiate Intel LPSS types") Signed-off-by: Jarkko Nikula Reported-by: Axel Lin Cc: # 4.2 Signed-off-by: Robert Jarzmik arch/arm/plat-pxa/ssp.c | 1 - 1 file changed, 1 deletion(-) commit adf3442cc890f04af1e8e2c0b335c84e5092dca9 Author: Robert Jarzmik Date: Sun Aug 23 21:13:57 2015 +0200 ARM: pxa: fix DFI bus lockups on startup After the conversion of pxa architecture to common clock framework, the NAND clock can be disabled on startup if no nand driver claims it. In this case, it happens that if the bootloader used the NAND and set the DFI arbitration bit, the next access to a static memory controller area, such as an ethernet card, the system bus will stall, and the core will be stalled forever. Fix this by clearing the DFI arbritration bit in pxa3xx startup. The bit will be enabled the pxa3xx-nand driver on need anyway. The only left requirement is that upon pxa3xx-nand removal, the bit should be cleared before the clock is disabled. Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/include/mach/addr-map.h | 7 +++++++ arch/arm/mach-pxa/pxa3xx.c | 21 ++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) commit 2619d7e9c92d524cb155ec89fd72875321512e5b Author: John Stultz Date: Wed Sep 9 16:07:30 2015 -0700 time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of abs64() The internal clocksteering done for fine-grained error correction uses a logarithmic approximation, so any time adjtimex() adjusts the clock steering, timekeeping_freqadjust() quickly approximates the correct clock frequency over a series of ticks. Unfortunately, the logic in timekeeping_freqadjust(), introduced in commit: dc491596f639 ("timekeeping: Rework frequency adjustments to work better w/ nohz") used the abs() function with a s64 error value to calculate the size of the approximated adjustment to be made. Per include/linux/kernel.h: "abs() should not be used for 64-bit types (s64, u64, long long) - use abs64()". Thus on 32-bit platforms, this resulted in the clocksteering to take a quite dampended random walk trying to converge on the proper frequency, which caused the adjustments to be made much slower then intended (most easily observed when large adjustments are made). This patch fixes the issue by using abs64() instead. Reported-by: Nuno Gonçalves Tested-by: Nuno Goncalves Signed-off-by: John Stultz Cc: # v3.17+ Cc: Linus Torvalds Cc: Miroslav Lichvar Cc: Peter Zijlstra Cc: Prarit Bhargava Cc: Richard Cochran Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1441840051-20244-1-git-send-email-john.stultz@linaro.org Signed-off-by: Ingo Molnar kernel/time/timekeeping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebfb4988f0378e2ac3b4a0aa1ea20d724293f392 Author: Peter Zijlstra Date: Thu Sep 10 11:58:27 2015 +0200 perf/x86/intel: Fix constraint access Sasha reported that we can get here with .idx==-1, and cpuc->event_constraints unallocated. Suggested-by: Stephane Eranian Reported-by: Sasha Levin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Fixes: b371b5943178 ("perf/x86: Fix event/group validation") Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7c5b190e115a2f7a51a85f261e7d7dca4b4bbe64 Author: Borislav Petkov Date: Thu Sep 10 21:55:27 2015 +0200 x86/cpu: Print family/model/stepping in hex 924e101a7ab6 ("x86/debug: Dump family, model, stepping of the boot CPU") had its good intentions to dump the exact F/M/S as an aid during debugging sessions but its output can be ambiguous. Fix that: -smpboot: CPU0: Intel Core Processor (Broadwell) (fam: 06, model: 47, stepping: 02) +smpboot: CPU0: Intel Core Processor (Broadwell) (family: 0x6, model: 0x47, stepping: 0x2) Also, spell out "family". Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1441914927-32037-1-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cd1faefa66425c3fa338777773c5c017edea3439 Author: Guenter Roeck Date: Sun Aug 30 19:45:19 2015 -0700 hwmon: (nct6775) Add support for NCT6793D NCT6793D is register compatible with NCT6792D. Also move nct6775_sio_names[] closer to enum kinds to simplify adding new chips. Tested-by: Grazvydas Ignotas Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck Documentation/hwmon/nct6775 | 4 ++++ drivers/hwmon/Kconfig | 4 ++-- drivers/hwmon/nct6775.c | 48 ++++++++++++++++++++++++++++++--------------- 3 files changed, 38 insertions(+), 18 deletions(-) commit 728d29400488d54974d3317fe8a232b45fdb42ee Author: Guenter Roeck Date: Mon Aug 31 16:13:47 2015 -0700 hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most chips The STEP_UP_TIME and STEP_DOWN_TIME registers are swapped for all chips but NCT6775. Reported-by: Grazvydas Ignotas Reviewed-by: Jean Delvare Cc: stable@vger.kernel.org # v3.10+ Signed-off-by: Guenter Roeck drivers/hwmon/nct6775.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f Author: Linus Torvalds Date: Sat Sep 12 16:35:56 2015 -0700 Linux 4.3-rc1 Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6917b51dee54f21816706af2278517b7af218f9a Merge: 10fbd36 254a0f4 Author: Linus Torvalds Date: Sat Sep 12 12:24:29 2015 -0700 Merge tag 'cris-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris Pull CRIS updates from Jesper Nilsson: "Mostly removal of old cruft of which we can use a generic version, or fixes for code not commonly run in the cris port, but also additions to enable some good debug" * tag 'cris-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris: (25 commits) CRISv10: delete unused lib/dmacopy.c CRISv10: delete unused lib/old_checksum.c CRIS: fix switch_mm() lockdep splat CRISv32: enable LOCKDEP_SUPPORT CRIS: add STACKTRACE_SUPPORT CRISv32: annotate irq enable in idle loop CRISv32: add support for irqflags tracing CRIS: UAPI: use generic types.h CRIS: UAPI: use generic shmbuf.h CRIS: UAPI: use generic msgbuf.h CRIS: UAPI: use generic socket.h CRIS: UAPI: use generic sembuf.h CRIS: UAPI: use generic sockios.h CRIS: UAPI: use generic auxvec.h CRIS: UAPI: use generic headers via Kbuild CRIS: UAPI: fix elf.h export CRIS: don't make asm/elf.h depend on asm/user.h CRIS: UAPI: fix ptrace.h CRISv32: Squash compile warnings for axisflashmap CRISv32: Add GPIO driver to the default configs ... commit 10fbd36e362a0f367e34a7cd876a81295d8fc5ca Author: Linus Torvalds Date: Wed May 27 15:32:15 2015 -0700 blk: rq_data_dir() should not return a boolean rq_data_dir() returns either READ or WRITE (0 == READ, 1 == WRITE), not a boolean value. Now, admittedly the "!= 0" doesn't really change the value (0 stays as zero, 1 stays as one), but it's not only redundant, it confuses gcc, and causes gcc to warn about the construct switch (rq_data_dir(req)) { case READ: ... case WRITE: ... that we have in a few drivers. Now, the gcc warning is silly and stupid (it seems to warn not about the switch value having a different type from the case statements, but about _any_ boolean switch value), but in this case the code itself is silly and stupid too, so let's just change it, and get rid of warnings like this: drivers/block/hd.c: In function ‘hd_request’: drivers/block/hd.c:630:11: warning: switch condition has boolean value [-Wswitch-bool] switch (rq_data_dir(req)) { The odd '!= 0' came in when "cmd_flags" got turned into a "u64" in commit 5953316dbf90 ("block: make rq->cmd_flags be 64-bit") and is presumably because the old code (that just did a logical 'and' with 1) would then end up making the type of rq_data_dir() be u64 too. But if we want to retain the old regular integer type, let's just cast the result to 'int' rather than use that rather odd '!= 0'. Signed-off-by: Linus Torvalds include/linux/blkdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e1df8b0a1bb2ac8254616d6075e40f9ca447fa29 Merge: dfb22fc 505a666 Author: Linus Torvalds Date: Sat Sep 12 11:19:01 2015 -0700 Merge branch 'writeback-plugging' Fix up the writeback plugging introduced in commit d353d7587d02 ("writeback: plug writeback at a high level") that then caused problems due to the unplug happening with a spinlock held. * writeback-plugging: writeback: plug writeback in wb_writeback() and writeback_inodes_wb() Revert "writeback: plug writeback at a high level" commit 505a666ee3fc611518e85df203eb8c707995ceaa Author: Linus Torvalds Date: Fri Sep 11 13:37:19 2015 -0700 writeback: plug writeback in wb_writeback() and writeback_inodes_wb() We had to revert the pluggin in writeback_sb_inodes() because the wb->list_lock is held, but we could easily plug at a higher level before taking that lock, and unplug after releasing it. This does that. Chris will run performance numbers, just to verify that this approach is comparable to the alternative (we could just drop and re-take the lock around the blk_finish_plug() rather than these two commits. I'd have preferred waiting for actual performance numbers before picking one approach over the other, but I don't want to release rc1 with the known "sleeping function called from invalid context" issue, so I'll pick this cleanup version for now. But if the numbers show that we really want to plug just at the writeback_sb_inodes() level, and we should just play ugly games with the spinlock, we'll switch to that. Cc: Chris Mason Cc: Josef Bacik Cc: Dave Chinner Cc: Neil Brown Cc: Jan Kara Cc: Christoph Hellwig Signed-off-by: Linus Torvalds fs/fs-writeback.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 31409c97640ff5f1a49e34ac7f3c82097bf57bec Merge: e713c80 dc3a04d Author: Ingo Molnar Date: Sat Sep 12 10:26:24 2015 +0200 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/urgent Pull RCU fix from Paul E. McKenney, fixing an inverted RCU_LOCKDEP_WARN() condition. Signed-off-by: Ingo Molnar commit dfb22fc5c0eb7645f47a752ce537bfb2c8a6aea6 Author: Linus Torvalds Date: Fri Sep 11 20:06:59 2015 -0700 thermal: fix intel PCH thermal driver mismerge I didn't notice this when merging the thermal code from Zhang, but his merge (commit 5a924a07f882: "Merge branches 'thermal-core' and 'thermal-intel' of .git into next") of the thermal-core and thermal-intel branches was wrong. In thermal-core, commit 17e8351a7739 ("thermal: consistently use int for temperatures") converted the thermal layer to use "int" for temperatures. But in parallel, in the thermal-intel branch commit d0a12625d2ff ("thermal: Add Intel PCH thermal driver") added support for the intel PCH thermal sensor using the old interfaces that used "unsigned long" pointers. This resulted in warnings like this: drivers/thermal/intel_pch_thermal.c:184:14: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] .get_temp = pch_thermal_get_temp, ^ drivers/thermal/intel_pch_thermal.c:184:14: note: (near initialization for ‘tzd_ops.get_temp’) drivers/thermal/intel_pch_thermal.c:186:19: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] .get_trip_temp = pch_get_trip_temp, ^ drivers/thermal/intel_pch_thermal.c:186:19: note: (near initialization for ‘tzd_ops.get_trip_temp’) This fixes it. Signed-off-by: Linus Torvalds drivers/thermal/intel_pch_thermal.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 01b0c014eeb0bb857a5dc572cd108be7becddfe7 Merge: 3ebb054 e527b22 Author: Linus Torvalds Date: Fri Sep 11 19:34:09 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge fourth patch-bomb from Andrew Morton: - sys_membarier syscall - seq_file interface changes - a few misc fixups * emailed patches from Andrew Morton : revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each" mm/early_ioremap: add explicit #include of asm/early_ioremap.h fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void selftests: enhance membarrier syscall test selftests: add membarrier syscall test sys_membarrier(): system-wide memory barrier (generic, x86) MODSIGN: fix a compilation warning in extract-cert commit 3ebb0540c20d6670396ccee9ff6794c095fa9311 Author: Vineet Gupta Date: Fri Sep 11 16:32:22 2015 -0700 ARCv2: [axs103_smp] Reduce clk for SMP FPGA configs Newer bitfiles needs the reduced clk even for SMP builds Cc: #4.2 Signed-off-by: Vineet Gupta Signed-off-by: Linus Torvalds arch/arc/plat-axs10x/axs10x.c | 2 ++ 1 file changed, 2 insertions(+) commit ded0e250b58a27af6034a8ab9226cbcdf7c0d847 Merge: f0c032d 9a07826 Author: Linus Torvalds Date: Fri Sep 11 19:29:00 2015 -0700 Merge tag 'ntb-4.3' of git://github.com/jonmason/ntb Pull NTB fixes from Jon Mason: "NTB bug and documentation fixes, new device IDs, performance improvements, and adding a mailing list to MAINTAINERS for NTB" * tag 'ntb-4.3' of git://github.com/jonmason/ntb: NTB: Fix range check on memory window index NTB: Improve index handling in B2B MW workaround NTB: Fix documentation for ntb_peer_db_clear. NTB: Fix documentation for ntb_link_is_up NTB: Use unique DMA channels for TX and RX NTB: Remove dma_sync_wait from ntb_async_rx NTB: Clean up QP stats info NTB: Make the transport list in order of discovery NTB: Add PCI Device IDs for Broadwell Xeon NTB: Add flow control to the ntb_netdev NTB: Add list to MAINTAINERS commit f0c032d81f58c99b63a6e57cf883e923db910928 Merge: fa9a67e 53431d0 Author: Linus Torvalds Date: Fri Sep 11 19:17:28 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull more input updates from Dmitry Torokhov: "Second round of updates for the input subsystem. This introduces two brand new touchscreen drivers (Colibri and imx6ul_tsc), some small driver fixes, and we are no longer report errors from evdev_flush() as users do not really have a way of handling errors, error codes that we were returning were not on the list of errors supposed to be returned by close(), and errors were causing issues with one of older versions of systemd" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: imx_keypad - remove obsolete comment Input: touchscreen - add imx6ul_tsc driver support Input: Add touchscreen support for Colibri VF50 Input: i8042 - lower log level for "no controller" message Input: evdev - do not report errors form flush() Input: elants_i2c - extend the calibration timeout to 12 seconds Input: sparcspkr - fix module autoload for OF platform drivers Input: regulator-haptic - fix module autoload for OF platform driver Input: pwm-beeper - fix module autoload for OF platform driver Input: ab8500-ponkey - Fix module autoload for OF platform driver Input: cyttsp - remove unnecessary MODULE_ALIAS() Input: elan_i2c - add ACPI ID "ELAN1000" commit fa9a67ef9de48de5474ea1e5a358340369e78b74 Merge: 05c7808 4614e0c Author: Linus Torvalds Date: Fri Sep 11 19:11:06 2015 -0700 Merge tag 'pm+acpi-4.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull more power management and ACPI updates from Rafael Wysocki: "These are mostly fixes and cleanups on top of the previous PM+ACPI pull request (cpufreq core and drivers, cpuidle, generic power domains framework). Some of them didn't make to that pull request and some fix issues introduced by it. The only really new thing is the support for suspend frequency in the cpufreq-dt driver, but it is needed to fix an issue with Exynos platforms. Specifics: - build fix for the new Mediatek MT8173 cpufreq driver (Guenter Roeck). - generic power domains framework fixes (power on error code path, subdomain removal) and cleanup of a deprecated API user (Geert Uytterhoeven, Jon Hunter, Ulf Hansson). - cpufreq-dt driver fixes including two fixes for bugs related to the new Operating Performance Points Device Tree bindings introduced recently (Viresh Kumar). - suspend frequency support for the cpufreq-dt driver (Bartlomiej Zolnierkiewicz, Viresh Kumar). - cpufreq core cleanups (Viresh Kumar). - intel_pstate driver fixes (Chen Yu, Kristen Carlson Accardi). - additional sanity check in the cpuidle core (Xunlei Pang). - fix for a comment related to CPU power management (Lina Iyer)" * tag 'pm+acpi-4.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: intel_pstate: fix PCT_TO_HWP macro intel_pstate: Fix user input of min/max to legal policy region PM / OPP: Return suspend_opp only if it is enabled cpufreq-dt: add suspend frequency support cpufreq: allow cpufreq_generic_suspend() to work without suspend frequency PM / OPP: add dev_pm_opp_get_suspend_opp() helper staging: board: Migrate away from __pm_genpd_name_add_device() cpufreq: Use __func__ to print function's name cpufreq: staticize cpufreq_cpu_get_raw() PM / Domains: Ensure subdomain is not in use before removing cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL cpuidle/coupled: Add sanity check for safe_state_index PM / Domains: Try power off masters in error path of __pm_genpd_poweron() cpufreq: dt: Tolerance applies on both sides of target voltage cpufreq: dt: Print error on failing to mark OPPs as shared cpufreq: dt: Check OPP count before marking them shared kernel/cpu_pm: fix cpu_cluster_pm_exit comment commit 05c78081d2d8eaf04bf60946fcc53380febf3376 Merge: 8e78b7d ac64a2c Author: Linus Torvalds Date: Fri Sep 11 19:00:42 2015 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending Pull SCSI target updates from Nicholas Bellinger: "Here are the outstanding target-pending updates for v4.3-rc1. Mostly bug-fixes and minor changes this round. The fallout from the big v4.2-rc1 RCU conversion have (thus far) been minimal. The highlights this round include: - Move sense handling routines into scsi_common code (Sagi) - Return ABORTED_COMMAND sense key for PI errors (Sagi) - Add tpg_enabled_sendtargets attribute for disabled iscsi-target discovery (David) - Shrink target struct se_cmd by rearranging fields (Roland) - Drop iSCSI use of mutex around max_cmd_sn increment (Roland) - Replace iSCSI __kernel_sockaddr_storage with sockaddr_storage (Andy + Chris) - Honor fabric max_data_sg_nents I/O transfer limit (Arun + Himanshu + nab) - Fix EXTENDED_COPY >= v4.1 regression OOPsen (Alex + nab)" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (37 commits) target: use stringify.h instead of own definition target/user: Fix UFLAG_UNKNOWN_OP handling target: Remove no-op conditional target/user: Remove unused variable target: Fix max_cmd_sn increment w/o cmdsn mutex regressions target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess target/qla2xxx: Honor max_data_sg_nents I/O transfer limit target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage target/iscsi: Replace conn->login_ip with login_sockaddr target/iscsi: Keep local_ip as the actual sockaddr target/iscsi: Fix np_ip bracket issue by removing np_ip target: Drop iSCSI use of mutex around max_cmd_sn increment qla2xxx: Update tcm_qla2xxx module description to 24xx+ iscsi-target: Add tpg_enabled_sendtargets for disabled discovery drivers: target: Drop unlikely before IS_ERR(_OR_NULL) target: check DPO/FUA usage for COMPARE AND WRITE target: Shrink struct se_cmd by rearranging fields target: Remove cmd->se_ordered_id (unused except debug log lines) target: add support for START_STOP_UNIT SCSI opcode target: improve unsupported opcode message ... commit 8e78b7dc93c580c050435b0f88991c26e02166bc Merge: 06a660a 294ab78 Author: Linus Torvalds Date: Fri Sep 11 18:15:18 2015 -0700 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull second round of SCSI updates from James Bottomley: "There's one late arriving patch here (added today), fixing a build issue which the scsi_dh patch set in here uncovered. Other than that, everything has been incubated in -next and the checkers for a week. The major pieces of this patch are a set patches facilitating better integration between scsi and scsi_dh (the device handling layer used by multi-path; all the dm parts are acked by Mike Snitzer). This also includes driver updates for mp3sas, scsi_debug and an assortment of bug fixes" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (50 commits) scsi_dh: fix randconfig build error scsi: fix scsi_error_handler vs. scsi_host_dev_release race fcoe: Convert use of __constant_htons to htons mpt2sas: setpci reset kernel oops fix pm80xx: Don't override ts->stat on IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY lpfc: Fix possible use-after-free and double free in lpfc_mbx_cmpl_rdp_page_a2() bfa: Fix incorrect de-reference of pointer bfa: Fix indentation scsi_transport_sas: Remove check for SAS expander when querying bay/enclosure IDs. scsi_debug: resp_request: remove unused variable scsi_debug: fix REPORT LUNS Well Known LU scsi_debug: schedule_resp fix input variable check scsi_debug: make dump_sector static scsi_debug: vfree is null safe so drop the check scsi_debug: use SCSI_W_LUN_REPORT_LUNS instead of SAM2_WLUN_REPORT_LUNS; scsi_debug: define pr_fmt() for consistent logging mpt2sas: Refcount fw_events and fix unsafe list usage mpt2sas: Refcount sas_device objects and fix unsafe list usage scsi_dh: return SCSI_DH_NOTCONN in scsi_dh_activate() scsi_dh: don't allow to detach device handlers at runtime ... commit eda2116f4ab6d79cfcffc202b5d2bbb0797ba013 Author: Steve French Date: Fri Sep 11 19:24:19 2015 -0500 [CIFS] mount option sec=none not displayed properly in /proc/mounts When the user specifies "sec=none" in a cifs mount, we set sec_type as unspecified (and set a flag and the username will be null) rather than setting sectype as "none" so cifs_show_security was not properly displaying it in cifs /proc/mounts entries. Signed-off-by: Steve French Reviewed-by: Jeff Layton fs/cifs/cifsfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 06a660ada2064bbdcd09aeb8173f2ad128c71978 Merge: d9b44fe 63540f0 Author: Linus Torvalds Date: Fri Sep 11 16:42:39 2015 -0700 Merge tag 'media/v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media updates from Mauro Carvalho Chehab: "A series of patches that move part of the code used to allocate memory from the media subsystem to the mm subsystem" [ The mm parts have been acked by VM people, and the series was apparently in -mm for a while - Linus ] * tag 'media/v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: [media] drm/exynos: Convert g2d_userptr_get_dma_addr() to use get_vaddr_frames() [media] media: vb2: Remove unused functions [media] media: vb2: Convert vb2_dc_get_userptr() to use frame vector [media] media: vb2: Convert vb2_vmalloc_get_userptr() to use frame vector [media] media: vb2: Convert vb2_dma_sg_get_userptr() to use frame vector [media] vb2: Provide helpers for mapping virtual addresses [media] media: omap_vout: Convert omap_vout_uservirt_to_phys() to use get_vaddr_pfns() [media] mm: Provide new get_vaddr_frames() helper [media] vb2: Push mmap_sem down to memops commit d9b44fe30fb8637b23f804eab2e7afbce129d714 Merge: 9ebd051 12f0721 Author: Linus Torvalds Date: Fri Sep 11 16:21:12 2015 -0700 Merge tag 'edac/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac Pull edac updates from Mauro Carvalho Chehab: "Two EDAC fixes for Intel systems (Haswell and Ivy Bridge)" * tag 'edac/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac: sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell sb_edac: look harder for DDRIO on Haswell systems commit e8684c88774c0ddfeefdbed0aa469b25b9962f3e Author: Alexey Khoroshilov Date: Sat Sep 12 00:34:48 2015 +0300 irda: ali-ircc: Fix deadlock in ali_ircc_sir_change_speed() ali_ircc_sir_change_speed() is always called with self->lock held, so acquiring the lock inside it leads to unavoidable deadlock. Call graph: ali_ircc_sir_change_speed() is called from ali_ircc_change_speed() ali_ircc_fir_hard_xmit() under spin_lock_irqsave(&self->lock, flags); ali_ircc_sir_hard_xmit() under spin_lock_irqsave(&self->lock, flags); ali_ircc_net_ioctl() under spin_lock_irqsave(&self->lock, flags); ali_ircc_dma_xmit_complete() ali_ircc_fir_interrupt() ali_ircc_interrupt() under spin_lock(&self->lock); ali_ircc_sir_write_wakeup() ali_ircc_sir_interrupt() ali_ircc_interrupt() under spin_lock(&self->lock); The patch removes spin_lock/unlock from ali_ircc_sir_change_speed(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: David S. Miller drivers/net/irda/ali-ircc.c | 6 ------ 1 file changed, 6 deletions(-) commit 9ebd051a7d5aa7b0ce813c3c2e5b9c851e7774b9 Merge: 51a73ba 5a924a0 Author: Linus Torvalds Date: Fri Sep 11 16:13:47 2015 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux Pull thermal updates from Zhang Rui: - use int instead of unsigned long to represent temperature to avoid bogus overheat detection when negative temperature reported. From Sascha Hauer. - export available thermal governors information to user space via sysfs. From Wei Ni. - introduce new thermal driver for Wildcat Point platform controller hub, which uses PCH thermal sensor and associated critical and hot trip points. From Tushar Dave. - add suuport for Intel Skylake and Denlow platforms in powerclamp driver. - some small cleanups in thermal core. * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: thermal: Add Intel PCH thermal driver thermal: Add comment explaining test for critical temperature thermal: Use IS_ENABLED instead of #ifdef thermal: remove unnecessary call to thermal_zone_device_set_polling thermal: trivial: fix typo in comment thermal: consistently use int for temperatures thermal: add available policies sysfs attribute thermal/powerclamp: add cpu id for denlow platform thermal/powerclamp: add cpu id for Skylake u/y thermal/powerclamp: add cpu id for skylake h/s commit 38c089d1d8d058f5dff018a811568aa8e8bc47fc Author: Joe Stringer Date: Fri Sep 11 15:01:16 2015 -0700 openvswitch: Fix dependency on IPv6 defrag. When NF_CONNTRACK is built-in, NF_DEFRAG_IPV6 is a module, and OPENVSWITCH is built-in, the following build error would occur: net/built-in.o: In function `ovs_ct_execute': (.text+0x10f587): undefined reference to `nf_ct_frag6_gather' Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action") Reported-by: Jim Davis Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e527b22c3f63c02832ac4cb8ed0ec3a9b638bbdf Author: Andrew Morton Date: Fri Sep 11 13:07:53 2015 -0700 revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each" Revert commit f83c7b5e9fd6 ("ocfs2/dlm: use list_for_each_entry instead of list_for_each"). list_for_each_entry() will dereference its `pos' argument, which can be NULL in dlm_process_recovery_data(). Reported-by: Julia Lawall Reported-by: Fengguang Wu Cc: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmrecovery.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 4f1af60bcc2fc6caa7fa3036238b5994708e9a84 Author: Ard Biesheuvel Date: Fri Sep 11 13:07:50 2015 -0700 mm/early_ioremap: add explicit #include of asm/early_ioremap.h Commit 6b0f68e32ea8 ("mm: add utility for early copy from unmapped ram") introduces a function copy_from_early_mem() into mm/early_ioremap.c which itself calls early_memremap()/early_memunmap(). However, since early_memunmap() has not been declared yet at this point in the .c file, nor by any explicitly included header files, we are depending on a transitive include of asm/early_ioremap.h to declare it, which is fragile. So instead, include this header explicitly. Signed-off-by: Ard Biesheuvel Acked-by: Mark Salter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/early_ioremap.c | 1 + 1 file changed, 1 insertion(+) commit 6798a8caaf64fa68b9ab2044e070fe4545034e03 Author: Joe Perches Date: Fri Sep 11 13:07:48 2015 -0700 fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void The seq_ function return values were frequently misused. See: commit 1f33c41c03da ("seq_file: Rename seq_overflow() to seq_has_overflowed() and make public") All uses of these return values have been removed, so convert the return types to void. Miscellanea: o Move seq_put_decimal_ and seq_escape prototypes closer the other seq_vprintf prototypes o Reorder seq_putc and seq_puts to return early on overflow o Add argument names to seq_vprintf and seq_printf o Update the seq_escape kernel-doc o Convert a couple of leading spaces to tabs in seq_escape Signed-off-by: Joe Perches Cc: Al Viro Cc: Steven Rostedt Cc: Mark Brown Cc: Stephen Rothwell Cc: Joerg Roedel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/iommu/omap-iommu-debug.c | 3 +- fs/nsfs.c | 3 +- fs/seq_file.c | 70 ++++++++++++++++++---------------------- include/linux/seq_file.h | 19 +++++------ 4 files changed, 45 insertions(+), 50 deletions(-) commit c9946c4208a3725e116c05180d93154eb406d451 Author: Mathieu Desnoyers Date: Fri Sep 11 13:07:45 2015 -0700 selftests: enhance membarrier syscall test Update the membarrier syscall self-test to match the membarrier interface. Extend coverage of the interface. Consider ENOSYS as a "SKIP" test, since it is a valid configuration, but does not allow testing the system call. Signed-off-by: Mathieu Desnoyers Cc: Michael Ellerman Cc: Pranith Kumar Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .../testing/selftests/membarrier/membarrier_test.c | 100 +++++++++++++++------ 1 file changed, 75 insertions(+), 25 deletions(-) commit b6d973441675222a4e6c8cad8208c2fe098a0b25 Author: Pranith Kumar Date: Fri Sep 11 13:07:42 2015 -0700 selftests: add membarrier syscall test Add a self test for the membarrier system call. Signed-off-by: Pranith Kumar Signed-off-by: Mathieu Desnoyers Cc: Michael Ellerman Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/Makefile | 1 + tools/testing/selftests/membarrier/.gitignore | 1 + tools/testing/selftests/membarrier/Makefile | 11 ++++ .../testing/selftests/membarrier/membarrier_test.c | 71 ++++++++++++++++++++++ 4 files changed, 84 insertions(+) commit 5b25b13ab08f616efd566347d809b4ece54570d1 Author: Mathieu Desnoyers Date: Fri Sep 11 13:07:39 2015 -0700 sys_membarrier(): system-wide memory barrier (generic, x86) Here is an implementation of a new system call, sys_membarrier(), which executes a memory barrier on all threads running on the system. It is implemented by calling synchronize_sched(). It can be used to distribute the cost of user-space memory barriers asymmetrically by transforming pairs of memory barriers into pairs consisting of sys_membarrier() and a compiler barrier. For synchronization primitives that distinguish between read-side and write-side (e.g. userspace RCU [1], rwlocks), the read-side can be accelerated significantly by moving the bulk of the memory barrier overhead to the write-side. The existing applications of which I am aware that would be improved by this system call are as follows: * Through Userspace RCU library (http://urcu.so) - DNS server (Knot DNS) https://www.knot-dns.cz/ - Network sniffer (http://netsniff-ng.org/) - Distributed object storage (https://sheepdog.github.io/sheepdog/) - User-space tracing (http://lttng.org) - Network storage system (https://www.gluster.org/) - Virtual routers (https://events.linuxfoundation.org/sites/events/files/slides/DPDK_RCU_0MQ.pdf) - Financial software (https://lkml.org/lkml/2015/3/23/189) Those projects use RCU in userspace to increase read-side speed and scalability compared to locking. Especially in the case of RCU used by libraries, sys_membarrier can speed up the read-side by moving the bulk of the memory barrier cost to synchronize_rcu(). * Direct users of sys_membarrier - core dotnet garbage collector (https://github.com/dotnet/coreclr/issues/198) Microsoft core dotnet GC developers are planning to use the mprotect() side-effect of issuing memory barriers through IPIs as a way to implement Windows FlushProcessWriteBuffers() on Linux. They are referring to sys_membarrier in their github thread, specifically stating that sys_membarrier() is what they are looking for. To explain the benefit of this scheme, let's introduce two example threads: Thread A (non-frequent, e.g. executing liburcu synchronize_rcu()) Thread B (frequent, e.g. executing liburcu rcu_read_lock()/rcu_read_unlock()) In a scheme where all smp_mb() in thread A are ordering memory accesses with respect to smp_mb() present in Thread B, we can change each smp_mb() within Thread A into calls to sys_membarrier() and each smp_mb() within Thread B into compiler barriers "barrier()". Before the change, we had, for each smp_mb() pairs: Thread A Thread B previous mem accesses previous mem accesses smp_mb() smp_mb() following mem accesses following mem accesses After the change, these pairs become: Thread A Thread B prev mem accesses prev mem accesses sys_membarrier() barrier() follow mem accesses follow mem accesses As we can see, there are two possible scenarios: either Thread B memory accesses do not happen concurrently with Thread A accesses (1), or they do (2). 1) Non-concurrent Thread A vs Thread B accesses: Thread A Thread B prev mem accesses sys_membarrier() follow mem accesses prev mem accesses barrier() follow mem accesses In this case, thread B accesses will be weakly ordered. This is OK, because at that point, thread A is not particularly interested in ordering them with respect to its own accesses. 2) Concurrent Thread A vs Thread B accesses Thread A Thread B prev mem accesses prev mem accesses sys_membarrier() barrier() follow mem accesses follow mem accesses In this case, thread B accesses, which are ensured to be in program order thanks to the compiler barrier, will be "upgraded" to full smp_mb() by synchronize_sched(). * Benchmarks On Intel Xeon E5405 (8 cores) (one thread is calling sys_membarrier, the other 7 threads are busy looping) 1000 non-expedited sys_membarrier calls in 33s =3D 33 milliseconds/call. * User-space user of this system call: Userspace RCU library Both the signal-based and the sys_membarrier userspace RCU schemes permit us to remove the memory barrier from the userspace RCU rcu_read_lock() and rcu_read_unlock() primitives, thus significantly accelerating them. These memory barriers are replaced by compiler barriers on the read-side, and all matching memory barriers on the write-side are turned into an invocation of a memory barrier on all active threads in the process. By letting the kernel perform this synchronization rather than dumbly sending a signal to every process threads (as we currently do), we diminish the number of unnecessary wake ups and only issue the memory barriers on active threads. Non-running threads do not need to execute such barrier anyway, because these are implied by the scheduler context switches. Results in liburcu: Operations in 10s, 6 readers, 2 writers: memory barriers in reader: 1701557485 reads, 2202847 writes signal-based scheme: 9830061167 reads, 6700 writes sys_membarrier: 9952759104 reads, 425 writes sys_membarrier (dyn. check): 7970328887 reads, 425 writes The dynamic sys_membarrier availability check adds some overhead to the read-side compared to the signal-based scheme, but besides that, sys_membarrier slightly outperforms the signal-based scheme. However, this non-expedited sys_membarrier implementation has a much slower grace period than signal and memory barrier schemes. Besides diminishing the number of wake-ups, one major advantage of the membarrier system call over the signal-based scheme is that it does not need to reserve a signal. This plays much more nicely with libraries, and with processes injected into for tracing purposes, for which we cannot expect that signals will be unused by the application. An expedited version of this system call can be added later on to speed up the grace period. Its implementation will likely depend on reading the cpu_curr()->mm without holding each CPU's rq lock. This patch adds the system call to x86 and to asm-generic. [1] http://urcu.so membarrier(2) man page: MEMBARRIER(2) Linux Programmer's Manual MEMBARRIER(2) NAME membarrier - issue memory barriers on a set of threads SYNOPSIS #include int membarrier(int cmd, int flags); DESCRIPTION The cmd argument is one of the following: MEMBARRIER_CMD_QUERY Query the set of supported commands. It returns a bitmask of supported commands. MEMBARRIER_CMD_SHARED Execute a memory barrier on all threads running on the system. Upon return from system call, the caller thread is ensured that all running threads have passed through a state where all memory accesses to user-space addresses match program order between entry to and return from the system call (non-running threads are de facto in such a state). This covers threads from all pro=E2=80=90 cesses running on the system. This command returns 0. The flags argument needs to be 0. For future extensions. All memory accesses performed in program order from each targeted thread is guaranteed to be ordered with respect to sys_membarrier(). If we use the semantic "barrier()" to represent a compiler barrier forcing memory accesses to be performed in program order across the barrier, and smp_mb() to represent explicit memory barriers forcing full memory ordering across the barrier, we have the following ordering table for each pair of barrier(), sys_membarrier() and smp_mb(): The pair ordering is detailed as (O: ordered, X: not ordered): barrier() smp_mb() sys_membarrier() barrier() X X O smp_mb() X O O sys_membarrier() O O O RETURN VALUE On success, these system calls return zero. On error, -1 is returned, and errno is set appropriately. For a given command, with flags argument set to 0, this system call is guaranteed to always return the same value until reboot. ERRORS ENOSYS System call is not implemented. EINVAL Invalid arguments. Linux 2015-04-15 MEMBARRIER(2) Signed-off-by: Mathieu Desnoyers Reviewed-by: Paul E. McKenney Reviewed-by: Josh Triplett Cc: KOSAKI Motohiro Cc: Steven Rostedt Cc: Nicholas Miell Cc: Ingo Molnar Cc: Alan Cox Cc: Lai Jiangshan Cc: Stephen Hemminger Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: David Howells Cc: Pranith Kumar Cc: Michael Kerrisk Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds MAINTAINERS | 8 +++++ arch/x86/entry/syscalls/syscall_32.tbl | 1 + arch/x86/entry/syscalls/syscall_64.tbl | 1 + include/linux/syscalls.h | 2 ++ include/uapi/asm-generic/unistd.h | 4 ++- include/uapi/linux/Kbuild | 1 + include/uapi/linux/membarrier.h | 53 +++++++++++++++++++++++++++ init/Kconfig | 12 +++++++ kernel/Makefile | 1 + kernel/membarrier.c | 66 ++++++++++++++++++++++++++++++++++ kernel/sys_ni.c | 3 ++ 11 files changed, 151 insertions(+), 1 deletion(-) commit 7c0d35a339db612aae5496424030307128f088a9 Author: David Howells Date: Fri Sep 11 13:07:36 2015 -0700 MODSIGN: fix a compilation warning in extract-cert Fix the following warning when compiling extract-cert: scripts/extract-cert.c: In function `write_cert': scripts/extract-cert.c:89:2: warning: format not a string literal and no format arguments [-Wformat-security] ERR(!i2d_X509_bio(wb, x509), cert_dst); ^ whereby the ERR() macro is taking cert_dst as the format string. "%s" should be used as the format string as the path could contain special characters. Signed-off-by: David Howells Reported-by: Jim Davis Acked-by : David Woodhouse Cc: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/extract-cert.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 447e9a4d27484175a84daaa8e03d35c650f443b7 Author: Doug Ledford Date: Fri Sep 11 12:52:26 2015 -0400 IB/ehca: Deprecate driver, move to staging, schedule deletion The ehca driver is only supported on IBM machines with a custom EBus. As they have opted to build their newer machines using more industry standard technology and haven't really been pushing EBus capable machines for a while, this driver can now safely be moved to the staging area and scheduled for eventual removal. This plan was brought to IBM's attention and received their sign-off. Cc: alexs@linux.vnet.ibm.com Cc: hnguyen@de.ibm.com Cc: raisch@de.ibm.com Cc: stefan.roscher@de.ibm.com Signed-off-by: Doug Ledford drivers/infiniband/Kconfig | 1 - drivers/infiniband/hw/Makefile | 1 - drivers/infiniband/hw/ehca/Kconfig | 9 - drivers/infiniband/hw/ehca/Makefile | 16 - drivers/infiniband/hw/ehca/ehca_av.c | 277 --- drivers/infiniband/hw/ehca/ehca_classes.h | 482 ---- drivers/infiniband/hw/ehca/ehca_classes_pSeries.h | 208 -- drivers/infiniband/hw/ehca/ehca_cq.c | 397 ---- drivers/infiniband/hw/ehca/ehca_eq.c | 189 -- drivers/infiniband/hw/ehca/ehca_hca.c | 414 ---- drivers/infiniband/hw/ehca/ehca_irq.c | 870 ------- drivers/infiniband/hw/ehca/ehca_irq.h | 77 - drivers/infiniband/hw/ehca/ehca_iverbs.h | 218 -- drivers/infiniband/hw/ehca/ehca_main.c | 1123 --------- drivers/infiniband/hw/ehca/ehca_mcast.c | 131 -- drivers/infiniband/hw/ehca/ehca_mrmw.c | 2593 --------------------- drivers/infiniband/hw/ehca/ehca_mrmw.h | 132 -- drivers/infiniband/hw/ehca/ehca_pd.c | 124 - drivers/infiniband/hw/ehca/ehca_qes.h | 260 --- drivers/infiniband/hw/ehca/ehca_qp.c | 2257 ------------------ drivers/infiniband/hw/ehca/ehca_reqs.c | 953 -------- drivers/infiniband/hw/ehca/ehca_sqp.c | 245 -- drivers/infiniband/hw/ehca/ehca_tools.h | 155 -- drivers/infiniband/hw/ehca/ehca_uverbs.c | 309 --- drivers/infiniband/hw/ehca/hcp_if.c | 949 -------- drivers/infiniband/hw/ehca/hcp_if.h | 265 --- drivers/infiniband/hw/ehca/hcp_phyp.c | 82 - drivers/infiniband/hw/ehca/hcp_phyp.h | 90 - drivers/infiniband/hw/ehca/hipz_fns.h | 68 - drivers/infiniband/hw/ehca/hipz_fns_core.h | 100 - drivers/infiniband/hw/ehca/hipz_hw.h | 414 ---- drivers/infiniband/hw/ehca/ipz_pt_fn.c | 289 --- drivers/infiniband/hw/ehca/ipz_pt_fn.h | 289 --- 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 | 277 +++ drivers/staging/rdma/ehca/ehca_classes.h | 482 ++++ 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 | 218 ++ drivers/staging/rdma/ehca/ehca_main.c | 1123 +++++++++ drivers/staging/rdma/ehca/ehca_mcast.c | 131 ++ drivers/staging/rdma/ehca/ehca_mrmw.c | 2593 +++++++++++++++++++++ drivers/staging/rdma/ehca/ehca_mrmw.h | 132 ++ drivers/staging/rdma/ehca/ehca_pd.c | 124 + drivers/staging/rdma/ehca/ehca_qes.h | 260 +++ drivers/staging/rdma/ehca/ehca_qp.c | 2257 ++++++++++++++++++ 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 +++ 67 files changed, 13993 insertions(+), 13987 deletions(-) commit 51a73ba5f409ef6f419c8ec3a0d1257633500aaa Merge: e91eb62 6551881 Author: Linus Torvalds Date: Fri Sep 11 15:12:59 2015 -0700 Merge git://www.linux-watchdog.org/linux-watchdog Pull watchdog updates from Wim Van Sebroeck: - new driver for NXP LPC18xx Watchdog Timer - new driver for SAMA5D4 watchdog timer - add support for MCP79 to nv_tco driver - clean-up and improvement of the mpc8xxx watchdog driver - improvements to gpio-wdt - at91sam9_wdt clock improvements ... and other small fixes and improvements * git://www.linux-watchdog.org/linux-watchdog: (25 commits) Watchdog: Fix parent of watchdog_devices watchdog: at91rm9200: Correct check for syscon_node_to_regmap() errors watchdog: at91sam9: get and use slow clock Documentation: dt: binding: atmel-sama5d4-wdt: for SAMA5D4 watchdog driver watchdog: add a driver to support SAMA5D4 watchdog timer watchdog: mpc8xxx: allow to compile for MPC512x watchdog: mpc8xxx: use better error code when watchdog cannot be enabled watchdog: mpc8xxx: use dynamic memory for device specific data watchdog: mpc8xxx: use devm_ioremap_resource to map memory watchdog: mpc8xxx: make use of of_device_get_match_data watchdog: mpc8xxx: simplify registration watchdog: mpc8xxx: remove dead code watchdog: lpc18xx_wdt_get_timeleft() can be static DT: watchdog: Add NXP LPC18xx Watchdog Timer binding documentation watchdog: NXP LPC18xx Watchdog Timer Driver watchdog: gpio-wdt: ping already at startup for always running devices watchdog: gpio-wdt: be more strict about hw_algo matching Documentation: watchdog: at91sam9_wdt: add clocks property watchdog: booke_wdt: Use infrastructure to check timeout limits watchdog: (nv_tco) add support for MCP79 ... commit c2d4fbd2163e607915cc05798ce7fb7f31117cc1 Author: Linus Lüssing Date: Fri Sep 11 18:39:48 2015 +0200 bridge: fix igmpv3 / mldv2 report parsing With the newly introduced helper functions the skb pulling is hidden in the checksumming function - and undone before returning to the caller. The IGMPv3 and MLDv2 report parsing functions in the bridge still assumed that the skb is pointing to the beginning of the IGMP/MLD message while it is now kept at the beginning of the IPv4/6 header, breaking the message parsing and creating packet loss. Fixing this by taking the offset between IP and IGMP/MLD header into account, too. Fixes: 9afd85c9e455 ("net: Export IGMP/MLD message validation code") Reported-by: Tobias Powalowski Tested-by: Tobias Powalowski Signed-off-by: Linus Lüssing Signed-off-by: David S. Miller net/bridge/br_multicast.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a19a19de8310fb8ca2ca0621a9db1aab082943c5 Author: Arnd Bergmann Date: Fri Sep 11 11:33:01 2015 +0200 bnx2x: use ktime_get_seconds() for timestamp commit c48f350ff5e7 "bnx2x: Add MFW dump support" added the bnx2x_update_mfw_dump() function that reads the current time and stores it in a 32-bit field that gets passed into a buffer in a fixed format. This is potentially broken when the epoch overflows in 2038, and otherwise overflows in 2106. As we're trying to avoid uses of struct timeval for this reason, I noticed the addition of this function, and tried to rewrite it in a way that is more explicit about the overflow and that will keep working once we deprecate struct timeval. I assume that it is not possible to change the ABI any more, otherwise we should try to use a 64-bit field for the seconds right away. Signed-off-by: Arnd Bergmann Cc: Yuval Mintz Cc: Ariel Elior Acked-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 8e2d61e0aed2b7c4ecb35844fe07e0b2b762dee4 Author: Marcelo Ricardo Leitner Date: Thu Sep 10 17:31:15 2015 -0300 sctp: fix race on protocol/netns initialization Consider sctp module is unloaded and is being requested because an user is creating a sctp socket. During initialization, sctp will add the new protocol type and then initialize pernet subsys: status = sctp_v4_protosw_init(); if (status) goto err_protosw_init; status = sctp_v6_protosw_init(); if (status) goto err_v6_protosw_init; status = register_pernet_subsys(&sctp_net_ops); The problem is that after those calls to sctp_v{4,6}_protosw_init(), it is possible for userspace to create SCTP sockets like if the module is already fully loaded. If that happens, one of the possible effects is that we will have readers for net->sctp.local_addr_list list earlier than expected and sctp_net_init() does not take precautions while dealing with that list, leading to a potential panic but not limited to that, as sctp_sock_init() will copy a bunch of blank/partially initialized values from net->sctp. The race happens like this: CPU 0 | CPU 1 socket() | __sock_create | socket() inet_create | __sock_create list_for_each_entry_rcu( | answer, &inetsw[sock->type], | list) { | inet_create /* no hits */ | if (unlikely(err)) { | ... | request_module() | /* socket creation is blocked | * the module is fully loaded | */ | sctp_init | sctp_v4_protosw_init | inet_register_protosw | list_add_rcu(&p->list, | last_perm); | | list_for_each_entry_rcu( | answer, &inetsw[sock->type], sctp_v6_protosw_init | list) { | /* hit, so assumes protocol | * is already loaded | */ | /* socket creation continues | * before netns is initialized | */ register_pernet_subsys | Simply inverting the initialization order between register_pernet_subsys() and sctp_v4_protosw_init() is not possible because register_pernet_subsys() will create a control sctp socket, so the protocol must be already visible by then. Deferring the socket creation to a work-queue is not good specially because we loose the ability to handle its errors. So, as suggested by Vlad, the fix is to split netns initialization in two moments: defaults and control socket, so that the defaults are already loaded by when we register the protocol, while control socket initialization is kept at the same moment it is today. Fixes: 4db67e808640 ("sctp: Make the address lists per network namespace") Signed-off-by: Vlad Yasevich Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/protocol.c | 64 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 23 deletions(-) commit 19539ce783dd27768d4f7f3b753152bf983db65b Author: Tycho Andersen Date: Thu Sep 10 18:25:07 2015 -0600 ebpf: emit correct src_reg for conditional jumps Instead of always emitting BPF_REG_X, let's emit BPF_REG_X only when the source actually is BPF_X. This causes programs generated by the classic converter to not be importable via bpf(), as the eBPF verifier checks that the src_reg is correct or 0. While not a problem yet, this will be a problem when BPF_PROG_DUMP lands, and we can potentially dump and re-import programs generated by the converter. Signed-off-by: Tycho Andersen CC: Alexei Starovoitov CC: Daniel Borkmann Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/core/filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1853c949646005b5959c483becde86608f548f24 Author: Daniel Borkmann Date: Thu Sep 10 20:05:46 2015 +0200 netlink, mmap: transform mmap skb into full skb on taps Ken-ichirou reported that running netlink in mmap mode for receive in combination with nlmon will throw a NULL pointer dereference in __kfree_skb() on nlmon_xmit(), in my case I can also trigger an "unable to handle kernel paging request". The problem is the skb_clone() in __netlink_deliver_tap_skb() for skbs that are mmaped. I.e. the cloned skb doesn't have a destructor, whereas the mmap netlink skb has it pointed to netlink_skb_destructor(), set in the handler netlink_ring_setup_skb(). There, skb->head is being set to NULL, so that in such cases, __kfree_skb() doesn't perform a skb_release_data() via skb_release_all(), where skb->head is possibly being freed through kfree(head) into slab allocator, although netlink mmap skb->head points to the mmap buffer. Similarly, the same has to be done also for large netlink skbs where the data area is vmalloced. Therefore, as discussed, make a copy for these rather rare cases for now. This fixes the issue on my and Ken-ichirou's test-cases. Reference: http://thread.gmane.org/gmane.linux.network/371129 Fixes: bcbde0d449ed ("net: netlink: virtual tap device management") Reported-by: Ken-ichirou MATSUZAWA Signed-off-by: Daniel Borkmann Tested-by: Ken-ichirou MATSUZAWA Signed-off-by: David S. Miller net/netlink/af_netlink.c | 30 +++++++++++++++++++++++------- net/netlink/af_netlink.h | 9 +++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) commit 0ba13fd19d39b7cb672bcec052bc813389c079a4 Author: Linus Torvalds Date: Fri Sep 11 13:26:39 2015 -0700 Revert "writeback: plug writeback at a high level" This reverts commit d353d7587d02116b9732d5c06615aed75a4d3a47. Doing the block layer plug/unplug inside writeback_sb_inodes() is broken, because that function is actually called with a spinlock held: wb->list_lock, as pointed out by Chris Mason. Chris suggested just dropping and re-taking the spinlock around the blk_finish_plug() call (the plgging itself can happen under the spinlock), and that would technically work, but is just disgusting. We do something fairly similar - but not quite as disgusting because we at least have a better reason for it - in writeback_single_inode(), so it's not like the caller can depend on the lock being held over the call, but in this case there just isn't any good reason for that "release and re-take the lock" pattern. [ In general, we should really strive to avoid the "release and retake" pattern for locks, because in the general case it can easily cause subtle bugs when the caller caches any state around the call that might be invalidated by dropping the lock even just temporarily. ] But in this case, the plugging should be easy to just move up to the callers before the spinlock is taken, which should even improve the effectiveness of the plug. So there is really no good reason to play games with locking here. I'll send off a test-patch so that Dave Chinner can verify that that plug movement works. In the meantime this just reverts the problematic commit and adds a comment to the function so that we hopefully don't make this mistake again. Reported-by: Chris Mason Cc: Josef Bacik Cc: Dave Chinner Cc: Neil Brown Cc: Jan Kara Cc: Christoph Hellwig Signed-off-by: Linus Torvalds fs/fs-writeback.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit e91eb6204fb826116453e43d4f5cf0f666bf46fe Merge: e013f74 527afb4 Author: Linus Torvalds Date: Fri Sep 11 12:38:25 2015 -0700 Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs cleanups and fixes from Chris Mason: "These are small cleanups, and also some fixes for our async worker thread initialization. I was having some trouble testing these, but it ended up being a combination of changing around my test servers and a shiny new schedule while atomic from the new start/finish_plug in writeback_sb_inodes(). That one only hits on btrfs raid5/6 or MD raid10, and if I wasn't changing a bunch of things in my test setup at once it would have been really clear. Fix for writeback_sb_inodes() on the way as well" * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: cleanup: remove unnecessary check before btrfs_free_path is called btrfs: async_thread: Fix workqueue 'max_active' value when initializing btrfs: Add raid56 support for updating num_tolerated_disk_barrier_failures in btrfs_balance btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures btrfs: Remove noused chunk_tree and chunk_objectid from scrub_enumerate_chunks and scrub_chunk btrfs: Update out-of-date "skip parity stripe" comment commit e013f74b60bbd37ee8c3a55214eb351ea3101c15 Merge: 01cab55 4383868 Author: Linus Torvalds Date: Fri Sep 11 12:33:03 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client Pull Ceph update from Sage Weil: "There are a few fixes for snapshot behavior with CephFS and support for the new keepalive protocol from Zheng, a libceph fix that affects both RBD and CephFS, a few bug fixes and cleanups for RBD from Ilya, and several small fixes and cleanups from Jianpeng and others" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: improve readahead for file holes ceph: get inode size for each append write libceph: check data_len in ->alloc_msg() libceph: use keepalive2 to verify the mon session is alive rbd: plug rbd_dev->header.object_prefix memory leak rbd: fix double free on rbd_dev->header_name libceph: set 'exists' flag for newly up osd ceph: cleanup use of ceph_msg_get ceph: no need to get parent inode in ceph_open ceph: remove the useless judgement ceph: remove redundant test of head->safe and silence static analysis warnings ceph: fix queuing inode to mdsdir's snaprealm libceph: rename con_work() to ceph_con_workfn() libceph: Avoid holding the zero page on ceph_msgr_slab_init errors libceph: remove the unused macro AES_KEY_SIZE ceph: invalidate dirty pages after forced umount ceph: EIO all operations after forced umount commit 01cab5549c3e9a0fe7248fc5ad0fd79361cc0d39 Merge: 64d1def 8f7e0a8 Author: Linus Torvalds Date: Fri Sep 11 12:23:51 2015 -0700 Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 Pull GFS2 updates from Bob Peterson: "Here is a list of patches we've accumulated for GFS2 for the current upstream merge window. This time we've only got six patches, many of which are very small: - three cleanups from Andreas Gruenbacher, including a nice cleanup of the sequence file code for the sbstats debugfs file. - a patch from Ben Hutchings that changes statistics variables from signed to unsigned. - two patches from me that increase GFS2's glock scalability by switching from a conventional hash table to rhashtable" * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: gfs2: A minor "sbstats" cleanup gfs2: Fix a typo in a comment gfs2: Make statistics unsigned, suitable for use with do_div() GFS2: Use resizable hash table for glocks GFS2: Move glock superblock pointer to field gl_name gfs2: Simplify the seq file code for "sbstats" commit 294ab783ad98066b87296db1311c7ba2a60206a5 Author: Christoph Hellwig Date: Wed Sep 9 18:04:18 2015 +0200 scsi_dh: fix randconfig build error It looks like the Kconfig check that was meant to fix this (commit fe9233fb6914a0eb20166c967e3020f7f0fba2c9 [SCSI] scsi_dh: fix kconfig related build errors) was actually reversed, but no-one noticed until the new set of patches which separated DM and SCSI_DH). Fixes: fe9233fb6914a0eb20166c967e3020f7f0fba2c9 Signed-off-by: Christoph Hellwig Tested-by: Mike Snitzer Signed-off-by: James Bottomley drivers/md/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c2172ce2303051764829d4958bd50a11ada0590f Merge: a4a5a73 0b61f2c Author: Russell King Date: Fri Sep 11 19:18:28 2015 +0100 Merge branch 'uaccess' into fixes commit a4a5a7379e4ca03c192b732d61e446994eb67bbc Author: Robert Jarzmik Date: Fri Sep 11 17:12:27 2015 +0100 ARM: 8431/1: fix alignement of __bug_table section entries On old ARM chips, unaligned accesses to memory are not trapped and fixed. On module load, symbols are relocated, and the relocation of __bug_table symbols is done on a u32 basis. Yet the section is not aligned to a multiple of 4 address, but to a multiple of 2. This triggers an Oops on pxa architecture, where address 0xbf0021ea is the first relocation in the __bug_table section : apply_relocate(): pxa3xx_nand: section 13 reloc 0 sym '' Unable to handle kernel paging request at virtual address bf0021ea pgd = e1cd0000 [bf0021ea] *pgd=c1cce851, *pte=c1cde04f, *ppte=c1cde01f Internal error: Oops: 23 [#1] ARM Modules linked in: CPU: 0 PID: 606 Comm: insmod Not tainted 4.2.0-rc8-next-20150828-cm-x300+ #887 Hardware name: CM-X300 module task: e1c68700 ti: e1c3e000 task.ti: e1c3e000 PC is at apply_relocate+0x2f4/0x3d4 LR is at 0xbf0021ea pc : [] lr : [] psr: 80000013 sp : e1c3fe30 ip : 60000013 fp : e49e8c60 r10: e49e8fa8 r9 : 00000000 r8 : e49e7c58 r7 : e49e8c38 r6 : e49e8a58 r5 : e49e8920 r4 : e49e8918 r3 : bf0021ea r2 : bf007034 r1 : 00000000 r0 : bf000000 Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 0000397f Table: c1cd0018 DAC: 00000051 Process insmod (pid: 606, stack limit = 0xe1c3e198) [] (apply_relocate) from [] (load_module+0x1248/0x1f5c) [] (load_module) from [] (SyS_init_module+0xe4/0x170) [] (SyS_init_module) from [] (ret_fast_syscall+0x0/0x38) Fix this by ensuring entries in __bug_table are all aligned to at least of multiple of 4. This transforms a module section __bug_table as : - [12] __bug_table PROGBITS 00000000 002232 000018 00 A 0 0 1 + [12] __bug_table PROGBITS 00000000 002232 000018 00 A 0 0 4 Signed-off-by: Robert Jarzmik Reviewed-by: Dave Martin Signed-off-by: Russell King arch/arm/include/asm/bug.h | 1 + 1 file changed, 1 insertion(+) commit 0b61f2c0f37983c98ed4207f3f5e265938371b68 Author: Julien Grall Date: Fri Sep 11 17:25:59 2015 +0100 arm/xen: Enable user access to the kernel before issuing a privcmd call When Xen is copying data to/from the guest it will check if the kernel has the right to do the access. If not, the hypercall will return an error. After the commit a5e090acbf545c0a3b04080f8a488b17ec41fe02 "ARM: software-based privileged-no-access support", the kernel can't access any longer the user space by default. This will result to fail on every hypercall made by the userspace (i.e via privcmd). We have to enable the userspace access and then restore the correct permission every time the privcmd is used to made an hypercall. I didn't find generic helpers to do a these operations, so the change is only arm32 specific. Reported-by: Riku Voipio Signed-off-by: Julien Grall Signed-off-by: Russell King arch/arm/xen/hypercall.S | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 64d1def7d33856824d2c5c6fd6d4579d4d54bb87 Merge: 04d78e3 5ee20bc Author: Linus Torvalds Date: Fri Sep 11 09:42:32 2015 -0700 Merge tag 'sound-fix-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "A collection of small fixes since the last update: the HD-audio quirks as usual with a USB-audio fix and a trivial fix for the old sparc driver" * tag 'sound-fix-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: usb-audio: Change internal PCM order ALSA: hda - Fix white noise on Dell M3800 ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437 ALSA: hda - Enable headphone jack detect on old Fujitsu laptops ALSA: sparc: amd7930: Fix module autoload for OF platform driver ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop. commit 04d78e39ee1a7aa3712fce016b37b43a03f810c1 Merge: b0a1ea5 9fbcc7c Author: Linus Torvalds Date: Fri Sep 11 09:35:56 2015 -0700 Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "Just a bunch of fixes to squeeze in before -rc1: - three nouveau regression fixes - one qxl regression fix - a bunch of i915 fixes ... and some core displayport/atomic fixes" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/nouveau/device: enable c800 quirk for tecra w50 drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x drm/nouveau/gr/nv04: fix big endian setting on gr context drm/qxl: validate monitors config modes drm/i915: Allow DSI dual link to be configured on any pipe drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS drm/i915: Fix CSR MMIO address check drm/i915: Limit the number of loops for reading a split 64bit register drm/i915: Fix broken mst get_hw_state. drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x uapi/drm/i915_drm.h: fix userspace compilation. drm/i915: Always mark the object as dirty when used by the GPU drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus speed drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed drm/dp: Define AUX_RETRY_INTERVAL as 500 us drm/atomic: Fix bookkeeping with TEST_ONLY, v3. commit 53431d0a3534263168c8ee576bad1c2c3a4cd9e0 Merge: 01b944f ade9c1a Author: Dmitry Torokhov Date: Fri Sep 11 09:02:36 2015 -0700 Merge branch 'next' into for-linus Prepare second round of input updates for 4.3 merge window. commit 6e8f580d1fcc18e290713984c379cb97131c015a Author: Russell King Date: Fri Sep 11 08:34:52 2015 +0100 ARM: domains: add memory dependencies to get_domain/set_domain We need to have memory dependencies on get_domain/set_domain to avoid the compiler over-optimising these inline assembly instructions. Loads/stores must not be reordered across a set_domain(), so introduce a compiler barrier for that assembly. The value of get_domain() must not be cached across a set_domain(), but we still want to allow the compiler to optimise it away. Introduce a dependency on current_thread_info()->cpu_domain to avoid this; the new memory clobber in set_domain() should therefore cause the compiler to re-load this. The other advantage of using this is we should have its address in the register set already, or very soon after at most call sites. Tested-by: Robert Jarzmik Signed-off-by: Russell King arch/arm/include/asm/domain.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 716ff1921a86c637b8875c7bb312fc6755fa9300 Author: Russell King Date: Fri Sep 11 08:17:39 2015 +0100 ARM: domains: thread_info.h no longer needs asm/domains.h As of 1eef5d2f1b46 ("ARM: domains: switch to keeping domain value in register") we no longer need to include asm/domains.h into asm/thread_info.h. Remove it. Tested-by: Robert Jarzmik Signed-off-by: Russell King arch/arm/include/asm/thread_info.h | 1 - 1 file changed, 1 deletion(-) commit 6fe810bda0bd9a5d7674fc671fac27b8aa8ec243 Author: Tejun Heo Date: Sat Sep 5 15:47:36 2015 -0400 block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg While making the root blkg unconditional, ec13b1d6f0a0 ("blkcg: always create the blkcg_gq for the root blkcg") removed the part which clears q->root_blkg and ->root_rl.blkg during q exit. This leaves the two pointers dangling after blkg_destroy_all(). blk-throttle exit path performs blkg traversals and dereferences ->root_blkg and can lead to the following oops. BUG: unable to handle kernel NULL pointer dereference at 0000000000000558 IP: [] __blkg_lookup+0x26/0x70 ... task: ffff88001b4e2580 ti: ffff88001ac0c000 task.ti: ffff88001ac0c000 RIP: 0010:[] [] __blkg_lookup+0x26/0x70 ... Call Trace: [] blk_throtl_drain+0x5a/0x110 [] blkcg_drain_queue+0x18/0x20 [] __blk_drain_queue+0xc0/0x170 [] blk_queue_bypass_start+0x61/0x80 [] blkcg_deactivate_policy+0x39/0x100 [] blk_throtl_exit+0x38/0x50 [] blkcg_exit_queue+0x3e/0x50 [] blk_release_queue+0x1e/0xc0 ... While the bug is a straigh-forward use-after-free bug, it is tricky to reproduce because blkg release is RCU protected and the rest of exit path usually finishes before RCU grace period. This patch fixes the bug by updating blkg_destro_all() to clear q->root_blkg and ->root_rl.blkg. Signed-off-by: Tejun Heo Reported-by: "Richard W.M. Jones" Reported-by: Josh Boyer Link: http://lkml.kernel.org/g/CA+5PVA5rzQ0s4723n5rHBcxQa9t0cW8BPPBekr_9aMRoWt2aYg@mail.gmail.com Fixes: ec13b1d6f0a0 ("blkcg: always create the blkcg_gq for the root blkcg") Cc: stable@vger.kernel.org # v4.2+ Tested-by: Richard W.M. Jones Signed-off-by: Jens Axboe block/blk-cgroup.c | 3 +++ 1 file changed, 3 insertions(+) commit 46348456c1791053dcbe5a9e21825b10a3c8a8fb Author: Sagi Grimberg Date: Thu Sep 3 19:28:23 2015 +0300 block: Copy a user iovec if it includes gaps For drivers that don't support gaps in the SG lists handed to them we must bounce (copy the user buffers) and pass a bio that does not include gaps. This doesn't matter for any current user, but will help to allow iser which can't handle gaps to use the block virtual boundary instead of using driver-local bounce buffering when handling SG_IO commands. Signed-off-by: Christoph Hellwig Signed-off-by: Sagi Grimberg Signed-off-by: Jens Axboe block/blk-map.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 87a816df537e096d404add543ef47b796906c130 Author: Sagi Grimberg Date: Tue Sep 8 09:33:35 2015 -0600 block: Refuse adding appending a gapped integrity page to a bio This is only theoretical at the moment given that the only subsystems that generate integrity payloads are the block layer itself and the scsi target (which generate well aligned integrity payloads). But when we will expose integrity meta-data to user-space, we'll need to refuse appending a page with a gap (if the queue virtual boundary is set). Signed-off-by: Sagi Grimberg Signed-off-by: Jens Axboe block/bio-integrity.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7f39add3b08cbbdb99abe50e6d7c342e6800d684 Author: Sagi Grimberg Date: Fri Sep 11 09:03:04 2015 -0600 block: Refuse request/bio merges with gaps in the integrity payload If a driver sets the block queue virtual boundary mask, it means that it cannot handle gaps so we must not allow those in the integrity payload as well. Signed-off-by: Sagi Grimberg Fixed up by me to have duplicate integrity merge functions, depending on whether block integrity is enabled or not. Fixes a compilations issue with CONFIG_BLK_DEV_INTEGRITY unset. Signed-off-by: Jens Axboe block/blk-integrity.c | 3 +++ block/blk-merge.c | 6 ++++++ include/linux/blkdev.h | 30 ++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) commit 4c17a6d56bb0cad3066a714e94f7185a24b40f49 Author: Jann Horn Date: Fri Sep 11 16:27:27 2015 +0200 CIFS: fix type confusion in copy offload ioctl This might lead to local privilege escalation (code execution as kernel) for systems where the following conditions are met: - CONFIG_CIFS_SMB2 and CONFIG_CIFS_POSIX are enabled - a cifs filesystem is mounted where: - the mount option "vers" was used and set to a value >=2.0 - the attacker has write access to at least one file on the filesystem To attack this, an attacker would have to guess the target_tcon pointer (but guessing wrong doesn't cause a crash, it just returns an error code) and win a narrow race. CC: Stable Signed-off-by: Jann Horn Signed-off-by: Steve French fs/cifs/ioctl.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 84cba178a3b88efe2668a9039f70abda072faa21 Author: Andrey Ryabinin Date: Thu Sep 10 13:11:55 2015 +0300 crypto: testmgr - don't copy from source IV too much While the destination buffer 'iv' is MAX_IVLEN size, the source 'template[i].iv' could be smaller, thus memcpy may read read invalid memory. Use crypto_skcipher_ivsize() to get real ivsize and pass it to memcpy. Signed-off-by: Andrey Ryabinin Signed-off-by: Herbert Xu crypto/testmgr.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4614e0cc66a8ea1d163efc364ba743424dee5c0a Merge: 3e66c4b 21dd33b abceaa9 f33b774 Author: Rafael J. Wysocki Date: Fri Sep 11 15:37:36 2015 +0200 Merge branches 'pm-cpu', 'pm-cpuidle' and 'pm-domains' * pm-cpu: kernel/cpu_pm: fix cpu_cluster_pm_exit comment * pm-cpuidle: cpuidle/coupled: Add sanity check for safe_state_index * pm-domains: staging: board: Migrate away from __pm_genpd_name_add_device() PM / Domains: Ensure subdomain is not in use before removing PM / Domains: Try power off masters in error path of __pm_genpd_poweron() commit 3e66c4b86035884e00f008086b183b925fb0592b Merge: 7c97666 74da56c Author: Rafael J. Wysocki Date: Fri Sep 11 15:37:25 2015 +0200 Merge branch 'pm-cpufreq' * pm-cpufreq: intel_pstate: fix PCT_TO_HWP macro intel_pstate: Fix user input of min/max to legal policy region cpufreq-dt: add suspend frequency support cpufreq: allow cpufreq_generic_suspend() to work without suspend frequency cpufreq: Use __func__ to print function's name cpufreq: staticize cpufreq_cpu_get_raw() cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL cpufreq: dt: Tolerance applies on both sides of target voltage cpufreq: dt: Print error on failing to mark OPPs as shared cpufreq: dt: Check OPP count before marking them shared commit 7c976664d537bca19c9bf892b4d9e5ab7ecea927 Merge: ae98207 1b2b90c Author: Rafael J. Wysocki Date: Fri Sep 11 15:37:17 2015 +0200 Merge branch 'pm-opp' * pm-opp: PM / OPP: Return suspend_opp only if it is enabled PM / OPP: add dev_pm_opp_get_suspend_opp() helper commit 7e90f9b2b56669260e5f6f97974735d187f79b7d Author: Zidan Wang Date: Wed Sep 9 19:29:11 2015 +0800 ASoC: wm8960: correct gain value for input PGA and add microphone PGA The input PGAs have a gain range from -17.25dB to +30dB in 0.75dB steps. The boost stage can provide additional gain. For line inputs, -12dB to +6dB gain is available on the boost mixer. For micphone inputs, it can provide up to +29dB additional gain from the microphone PGA. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit 3758ff5f3dab57cd768d54279962a2f6bbc17188 Author: Zidan Wang Date: Wed Sep 9 19:29:10 2015 +0800 ASoC: wm8960: correct the min gain value of some PGA The min gain is the corresponding gain value when the register value is 0 instead of 1, just correct it. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dd85ebf681ef0ee1fc985c353dd45e8b53b5dc1e Author: Sudip Mukherjee Date: Thu Sep 10 16:48:13 2015 +0530 spi: spidev: fix possible NULL dereference During the last close we are freeing spidev if spidev->spi is NULL, but just before checking if spidev->spi is NULL we are dereferencing it. Lets add a check there to avoid the NULL dereference. Fixes: 9169051617df ("spi: spidev: Don't mangle max_speed_hz in underlying spi device") Signed-off-by: Sudip Mukherjee Reviewed-by: Jarkko Nikula Tested-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spidev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f17b329b73a0393dc9d5fc5b4457189f92e5bbef Author: Oder Chiou Date: Thu Sep 10 13:40:16 2015 +0800 ASoC: rt5645: Remove incorrect settings The patch removes the incorrect settings to avoid the pop sound in the first playback with headphone after boot. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 6 ------ 1 file changed, 6 deletions(-) commit 75881df3fd7708f234c1e2573ade812eb5701708 Author: Sudip Mukherjee Date: Thu Sep 10 18:01:44 2015 +0530 ASoC: dapm: fix memory leak Incase of an unknown event we were directly returning but we missed freeing params. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d249872939bfa86c9cce44a56a8cbdbc7086519b Author: Alexander Shishkin Date: Fri Jul 17 16:34:10 2015 +0300 perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match the new logic Since event->hw.itrace_started is now set in pmu::start() to signal the beginning of the trace, do so also in the intel_bts driver. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1437140050-23363-4-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_bts.c | 1 + 1 file changed, 1 insertion(+) commit ac64a2ce509104a746321a4f9646b6750cf281eb Author: David Disseldorp Date: Fri Sep 4 01:39:56 2015 +0200 target: use stringify.h instead of own definition Signed-off-by: David Disseldorp Acked-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 3 ++- include/uapi/linux/target_core_user.h | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) commit ed97d0cd78a337450e17eb613bdeec15e729af46 Author: Andy Grover Date: Thu Sep 3 16:03:44 2015 -0700 target/user: Fix UFLAG_UNKNOWN_OP handling Calling transport_generic_request_failure() from here causes list corruption. We should be using target_complete_cmd() instead. Which we do in all other cases, so the UNKNOWN_OP case can become just another member of the big else/if chain in tcmu_handle_completion(). Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 06b967e429cfb76494badb9ffdd69e934ba72c77 Author: Andy Grover Date: Thu Sep 3 16:03:43 2015 -0700 target: Remove no-op conditional This does nothing, and there are many other places where transport_cmd_check_stop_to_fabric()'s retval is not checked>, If we wanted to check it here, we should probably do it those other places too. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4824640ec3fc84337cb2baa9fb780e95864feb88 Author: Andy Grover Date: Thu Sep 3 16:03:42 2015 -0700 target/user: Remove unused variable We don't use it any more. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/target_core_user.c | 1 - 1 file changed, 1 deletion(-) commit 7dd03aca9d61a9b64cd2a8cf6f5ea6f1f5391e8d Author: Roland Dreier Date: Tue Sep 8 06:14:18 2015 -0700 target: Fix max_cmd_sn increment w/o cmdsn mutex regressions Current for-next iscsi target is broken: commit 109e2381749c1cfd94a0d22b2b54142539024973 Author: Roland Dreier Date: Thu Jul 23 14:53:32 2015 -0700 target: Drop iSCSI use of mutex around max_cmd_sn increment This patch fixes incorrect pr_debug() + atomic_inc_return() usage within iscsit_increment_maxcmdsn() code. Also fix funny iscsit_determine_maxcmdsn() usage and update iscsi_target_do_tx_login_io() code. Reported-by: Sagi Grimberg Cc: Sagi Grimberg Signed-off-by: Roland Dreier Cc: Roland Dreier Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target_device.c | 7 +++++-- drivers/target/iscsi/iscsi_target_nego.c | 2 -- 2 files changed, 5 insertions(+), 4 deletions(-) commit 4416f89b8cfcb794d040fc3b68e5fb159b7d8d02 Author: Nicholas Bellinger Date: Thu Sep 3 06:30:45 2015 +0000 target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess This patch is a >= v4.1 regression bug-fix where control CDB emulation logic in commit 38b57f82 now expects a se_cmd->se_sess pointer to exist when determining T10-PI support is to be exposed for initiator host ports. To address this bug, go ahead and add locally generated se_cmd descriptors for copy-offload block-copy to it's own stand-alone se_session nexus, while the parent EXTENDED_COPY se_cmd descriptor remains associated with it's originating se_cmd->se_sess nexus. Note a valid se_cmd->se_sess is also required for future support of WRITE_INSERT and READ_STRIP software emulation when submitting backend I/O to se_device that exposes T10-PI suport. Reported-by: Alex Gorbachev Tested-by: Alex Gorbachev Cc: "Martin K. Petersen" Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Doug Gilbert Cc: # v4.1+ Signed-off-by: Nicholas Bellinger drivers/target/target_core_xcopy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8f9b565482c537821588444e09ff732c7d65ed6e Author: Nicholas Bellinger Date: Thu Jul 30 18:28:13 2015 -0700 target/qla2xxx: Honor max_data_sg_nents I/O transfer limit This patch adds an optional fabric driver provided SGL limit that target-core will honor as it's own internal I/O maximum transfer length limit, as exposed by EVPD=0xb0 block limits parameters. This is required for handling cases when host I/O transfer length exceeds the requested EVPD block limits maximum transfer length. The initial user of this logic is qla2xxx, so that we can avoid having to reject I/Os from some legacy FC hosts where EVPD=0xb0 parameters are not honored. When se_cmd payload length exceeds the provided limit in target_check_max_data_sg_nents() code, se_cmd->data_length + se_cmd->prot_length are reset with se_cmd->residual_count plus underflow bit for outgoing TFO response callbacks. It also checks for existing CDB level underflow + overflow and recalculates final residual_count as necessary. Note this patch currently assumes 1:1 mapping of PAGE_SIZE per struct scatterlist entry. Reported-by: Craig Watson Cc: Craig Watson Tested-by: Himanshu Madhani Cc: Roland Dreier Cc: Arun Easi Cc: Giridhar Malavali Cc: Andrew Vasquez Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/tcm_qla2xxx.c | 5 ++++ drivers/target/target_core_spc.c | 13 +++++++-- drivers/target/target_core_transport.c | 51 +++++++++++++++++++++++++++++++++- include/target/target_core_fabric.h | 13 +++++++++ 4 files changed, 78 insertions(+), 4 deletions(-) commit 5473e0cc37c03c576adbda7591a6cc8e37c1bb7f Author: Wanpeng Li Date: Fri Aug 28 14:55:56 2015 +0800 sched: 'Annotate' migrate_tasks() Kernel testing triggered this warning: | WARNING: CPU: 0 PID: 13 at kernel/sched/core.c:1156 do_set_cpus_allowed+0x7e/0x80() | Modules linked in: | CPU: 0 PID: 13 Comm: migration/0 Not tainted 4.2.0-rc1-00049-g25834c7 #2 | Call Trace: | dump_stack+0x4b/0x75 | warn_slowpath_common+0x8b/0xc0 | warn_slowpath_null+0x22/0x30 | do_set_cpus_allowed+0x7e/0x80 | cpuset_cpus_allowed_fallback+0x7c/0x170 | select_fallback_rq+0x221/0x280 | migration_call+0xe3/0x250 | notifier_call_chain+0x53/0x70 | __raw_notifier_call_chain+0x1e/0x30 | cpu_notify+0x28/0x50 | take_cpu_down+0x22/0x40 | multi_cpu_stop+0xd5/0x140 | cpu_stopper_thread+0xbc/0x170 | smpboot_thread_fn+0x174/0x2f0 | kthread+0xc4/0xe0 | ret_from_kernel_thread+0x21/0x30 As Peterz pointed out: | So the normal rules for changing task_struct::cpus_allowed are holding | both pi_lock and rq->lock, such that holding either stabilizes the mask. | | This is so that wakeup can happen without rq->lock and load-balance | without pi_lock. | | From this we already get the relaxation that we can omit acquiring | rq->lock if the task is not on the rq, because in that case | load-balancing will not apply to it. | | ** these are the rules currently tested in do_set_cpus_allowed() ** | | Now, since __set_cpus_allowed_ptr() uses task_rq_lock() which | unconditionally acquires both locks, we could get away with holding just | rq->lock when on_rq for modification because that'd still exclude | __set_cpus_allowed_ptr(), it would also work against | __kthread_bind_mask() because that assumes !on_rq. | | That said, this is all somewhat fragile. | | Now, I don't think dropping rq->lock is quite as disastrous as it | usually is because !cpu_active at this point, which means load-balance | will not interfere, but that too is somewhat fragile. | | So we end up with a choice of two fragile.. This patch fixes it by following the rules for changing task_struct::cpus_allowed with both pi_lock and rq->lock held. Reported-by: kernel test robot Reported-by: Sasha Levin Signed-off-by: Wanpeng Li [ Modified changelog and patch. ] Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/BLU436-SMTP1660820490DE202E3934ED3806E0@phx.gbl Signed-off-by: Ingo Molnar kernel/sched/core.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) commit a6b277857fd2c990bc208ca1958d3f34d26052f7 Author: Peter Zijlstra Date: Sat Sep 5 16:55:05 2015 +0200 locking/qspinlock/x86: Only emit the test-and-set fallback when building guest support Only emit the test-and-set fallback for Hypervisors lacking PARAVIRT_SPINLOCKS support when building for guests. Suggested-by: Linus Torvalds Signed-off-by: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org # 4.2 Signed-off-by: Ingo Molnar arch/x86/include/asm/qspinlock.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 43b3f02899f74ae9914a39547cc5492156f0027a Author: Peter Zijlstra Date: Fri Sep 4 17:25:23 2015 +0200 locking/qspinlock/x86: Fix performance regression under unaccelerated VMs Dave ran into horrible performance on a VM without PARAVIRT_SPINLOCKS set and Linus noted that the test-and-set implementation was retarded. One should spin on the variable with a load, not a RMW. While there, remove 'queued' from the name, as the lock isn't queued at all, but a simple test-and-set. Suggested-by: Linus Torvalds Reported-by: Dave Chinner Tested-by: Dave Chinner Signed-off-by: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman Long Cc: stable@vger.kernel.org # v4.2+ Link: http://lkml.kernel.org/r/20150904152523.GR18673@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar arch/x86/include/asm/qspinlock.h | 16 ++++++++++++---- include/asm-generic/qspinlock.h | 4 ++-- kernel/locking/qspinlock.c | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) commit 5f25f066f75a67835abb5e400471a27abd09395b Author: Xiaolong Ye Date: Fri Sep 11 11:05:23 2015 +0800 PM / devfreq: Fix incorrect type issue. time_in_state in struct devfreq is defined as unsigned long, so devm_kzalloc should use sizeof(unsigned long) as argument instead of sizeof(unsigned int), otherwise it will cause unexpected result in 64bit system. Signed-off-by: Xiaolong Ye Signed-off-by: Kevin Liu Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14de3903181ca41dde73d57ad4f7a79a314ee6bf Author: MyungJoo Ham Date: Tue Aug 18 13:47:41 2015 +0900 PM / devfreq: tegra: Update governor to use devfreq_update_stats() Direct invocation of get_dev_status() is no more recommended. Signed-off-by: MyungJoo Ham drivers/devfreq/tegra-devfreq.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d54cdf3fc91aae3780433471d15d73413a845bc0 Author: MyungJoo Ham Date: Tue Aug 18 13:45:49 2015 +0900 PM / devfreq: comments for get_dev_status usage updated With the introduction of devfreq_update_stats(), governors are not recommended to use get_dev_status() directly. Signed-off-by: MyungJoo Ham include/linux/devfreq.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit d3b7e1745c0d1be2add1bb58065eef142c5a098f Author: Javi Merino Date: Fri Aug 14 18:57:00 2015 +0100 PM / devfreq: drop comment about thermal setting max_freq The thermal infrastructure should use the devfreq cooling device, which uses the OPP library to disable OPPs as necessary. Fix a couple of typos in the same comment while we are at it. Signed-off-by: Javi Merino Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 08e75e754a6d9838e490b74551d19fc04d0fd6f9 Author: Javi Merino Date: Fri Aug 14 18:56:56 2015 +0100 PM / devfreq: cache the last call to get_dev_status() The return value of get_dev_status() can be reused. Cache it so that other parts of the kernel can reuse it instead of having to call the same function again. Cc: Kyungmin Park Signed-off-by: Javi Merino Signed-off-by: MyungJoo Ham drivers/devfreq/governor_simpleondemand.c | 33 +++++++++++++++++-------------- include/linux/devfreq.h | 15 ++++++++++++++ 2 files changed, 33 insertions(+), 15 deletions(-) commit 9348da2f1c2ca8e064d4907cdc5b3a19477df933 Author: Viresh Kumar Date: Mon Aug 10 11:42:25 2015 +0530 PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. Signed-off-by: Viresh Kumar Signed-off-by: MyungJoo Ham drivers/devfreq/devfreq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 86fa4cdb0f1e16d7e27278e29e4f0b9ba22f1a9b Author: MyungJoo Ham Date: Wed Aug 5 10:55:10 2015 +0900 PM / devfreq: exynos-ppmu: bit-wise operation bugfix. Make it u64 before left-shifting 32bits. Signed-off-by: MyungJoo Ham drivers/devfreq/event/exynos-ppmu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d80f02231a1ee891f56f06ee6e4646db6ba28836 Author: Chanwoo Choi Date: Fri Jul 24 13:17:25 2015 +0900 PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 This patch updates the documentation to include the information of PPMUv2. The PPMUv2 is used for Exynos5433 and Exynos7420 to monitor the performance of each IP in Exynos SoC. Cc: MyungJoo Ham Cc: Kyungmin Park Signed-off-by: Chanwoo Choi .../bindings/devfreq/event/exynos-ppmu.txt | 42 ++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit 77fe46a301a75795cf1d43ed2988a15c1600d1b5 Author: Chanwoo Choi Date: Fri Jul 24 13:17:24 2015 +0900 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 This patch adds the support for PPMU (Platform Performance Monitoring Unit) version 2.0 for Exynos5433 SoC. Exynos5433 SoC must need PPMUv2 which is quite different from PPMUv1.1. The exynos-ppmu.c driver supports both PPMUv1.1 and PPMUv2. Cc: MyungJoo Ham Cc: Kyungmin Park Signed-off-by: Chanwoo Choi drivers/devfreq/event/exynos-ppmu.c | 170 ++++++++++++++++++++++++++++++++++-- drivers/devfreq/event/exynos-ppmu.h | 70 +++++++++++++++ 2 files changed, 233 insertions(+), 7 deletions(-) commit f47ff87f79a0f65db6af5b6bebd67b8f011994d1 Author: Javier Martinez Canillas Date: Mon Jul 13 08:58:51 2015 +0200 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding The exynos-ppmu driver is only a clock consumer and not a clock provider but its Device Tree binding listed #clock-cells as an optional property. Signed-off-by: Javier Martinez Canillas Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt | 1 - 1 file changed, 1 deletion(-) commit 9fbcc7c007ea200357e2453c6b2b153646fbc165 Merge: d1031d5 778613e5 Author: Dave Airlie Date: Fri Sep 11 14:38:36 2015 +1000 Merge branch 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next three nouveau regression fixes. * 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau/device: enable c800 quirk for tecra w50 drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x drm/nouveau/gr/nv04: fix big endian setting on gr context commit b0a1ea51bda4c2bcdde460221e1772f3a4f8c44f Merge: 33e247c 69d7fde Author: Linus Torvalds Date: Thu Sep 10 18:56:14 2015 -0700 Merge branch 'for-4.3/blkcg' of git://git.kernel.dk/linux-block Pull blk-cg updates from Jens Axboe: "A bit later in the cycle, but this has been in the block tree for a a while. This is basically four patchsets from Tejun, that improve our buffered cgroup writeback. It was dependent on the other cgroup changes, but they went in earlier in this cycle. Series 1 is set of 5 patches that has cgroup writeback updates: - bdi_writeback iteration fix which could lead to some wb's being skipped or repeated during e.g. sync under memory pressure. - Simplification of wb work wait mechanism. - Writeback tracepoints updated to report cgroup. Series 2 is is a set of updates for the CFQ cgroup writeback handling: cfq has always charged all async IOs to the root cgroup. It didn't have much choice as writeback didn't know about cgroups and there was no way to tell who to blame for a given writeback IO. writeback finally grew support for cgroups and now tags each writeback IO with the appropriate cgroup to charge it against. This patchset updates cfq so that it follows the blkcg each bio is tagged with. Async cfq_queues are now shared across cfq_group, which is per-cgroup, instead of per-request_queue cfq_data. This makes all IOs follow the weight based IO resource distribution implemented by cfq. - Switched from GFP_ATOMIC to GFP_NOWAIT as suggested by Jeff. - Other misc review points addressed, acks added and rebased. Series 3 is the blkcg policy cleanup patches: This patchset contains assorted cleanups for blkcg_policy methods and blk[c]g_policy_data handling. - alloc/free added for blkg_policy_data. exit dropped. - alloc/free added for blkcg_policy_data. - blk-throttle's async percpu allocation is replaced with direct allocation. - all methods now take blk[c]g_policy_data instead of blkcg_gq or blkcg. And finally, series 4 is a set of patches cleaning up the blkcg stats handling: blkcg's stats have always been somwhat of a mess. This patchset tries to improve the situation a bit. - The following patches added to consolidate blkcg entry point and blkg creation. This is in itself is an improvement and helps colllecting common stats on bio issue. - per-blkg stats now accounted on bio issue rather than request completion so that bio based and request based drivers can behave the same way. The issue was spotted by Vivek. - cfq-iosched implements custom recursive stats and blk-throttle implements custom per-cpu stats. This patchset make blkcg core support both by default. - cfq-iosched and blk-throttle keep track of the same stats multiple times. Unify them" * 'for-4.3/blkcg' of git://git.kernel.dk/linux-block: (45 commits) blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy blkcg: s/CFQ_WEIGHT_*/CFQ_WEIGHT_LEGACY_*/ blkcg: implement interface for the unified hierarchy blkcg: misc preparations for unified hierarchy interface blkcg: separate out tg_conf_updated() from tg_set_conf() blkcg: move body parsing from blkg_conf_prep() to its callers blkcg: mark existing cftypes as legacy blkcg: rename subsystem name from blkio to io blkcg: refine error codes returned during blkcg configuration blkcg: remove unnecessary NULL checks from __cfqg_set_weight_device() blkcg: reduce stack usage of blkg_rwstat_recursive_sum() blkcg: remove cfqg_stats->sectors blkcg: move io_service_bytes and io_serviced stats into blkcg_gq blkcg: make blkg_[rw]stat_recursive_sum() to be able to index into blkcg_gq blkcg: make blkcg_[rw]stat per-cpu blkcg: add blkg_[rw]stat->aux_cnt and replace cfq_group->dead_stats with it blkcg: consolidate blkg creation in blkcg_bio_issue_check() blk-throttle: improve queue bypass handling blkcg: move root blkg lookup optimization from throtl_lookup_tg() to __blkg_lookup() blkcg: inline [__]blkg_lookup() ... commit 778613e583994d947960a7f177226d0e7b5ef124 Author: Ben Skeggs Date: Thu Sep 3 12:39:45 2015 +1000 drm/nouveau/device: enable c800 quirk for tecra w50 Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 1 + 1 file changed, 1 insertion(+) commit c5bf4609e03e296d74cbbfe124ba49e0f907feb3 Author: Roy Spliet Date: Wed Sep 2 23:21:02 2015 +0100 drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x Typo that snuck in with commit 6979c6303a4abf263753cd9d577d79f05c6e8c47 Signed-off-by: Roy Spliet Reported-by: Pierre Moreau Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 15ee005893c5ac8aabb66c2ad0033ef31dbdcfa3 Author: Ilia Mirkin Date: Mon Aug 31 22:50:28 2015 -0400 drm/nouveau/gr/nv04: fix big endian setting on gr context Broken since "gr: convert user classes to new-style nvkm_object" Tested on a PPC64 G5 + NV34 Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 33e247c7e58d335d70ecb84fd869091e2e4b8dcb Merge: d71fc23 452e06a Author: Linus Torvalds Date: Thu Sep 10 18:19:42 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge third patch-bomb from Andrew Morton: - even more of the rest of MM - lib/ updates - checkpatch updates - small changes to a few scruffy filesystems - kmod fixes/cleanups - kexec updates - a dma-mapping cleanup series from hch * emailed patches from Andrew Morton : (81 commits) dma-mapping: consolidate dma_set_mask dma-mapping: consolidate dma_supported dma-mapping: cosolidate dma_mapping_error dma-mapping: consolidate dma_{alloc,free}_noncoherent dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent} mm: use vma_is_anonymous() in create_huge_pmd() and wp_huge_pmd() mm: make sure all file VMAs have ->vm_ops set mm, mpx: add "vm_flags_t vm_flags" arg to do_mmap_pgoff() mm: mark most vm_operations_struct const namei: fix warning while make xmldocs caused by namei.c ipc: convert invalid scenarios to use WARN_ON zlib_deflate/deftree: remove bi_reverse() lib/decompress_unlzma: Do a NULL check for pointer lib/decompressors: use real out buf size for gunzip with kernel fs/affs: make root lookup from blkdev logical size sysctl: fix int -> unsigned long assignments in INT_MIN case kexec: export KERNEL_IMAGE_SIZE to vmcoreinfo kexec: align crash_notes allocation to make it be inside one physical page kexec: remove unnecessary test in kimage_alloc_crash_control_pages() kexec: split kexec_load syscall from kexec core code ... commit d71fc239b6915a8b750e9a447311029ff45b6580 Merge: 519f526 c6e59bd Author: Linus Torvalds Date: Thu Sep 10 17:59:04 2015 -0700 Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull late ARM SoC updates from Kevin Hilman: "This is a collection of a few late fixes and other misc stuff that had dependencies on things being merged from other trees. The bulk of the changes are for samsung/exynos SoCs for some changes that needed a few minor reworks so ended up a bit late. The others are mainly for qcom SoCs: a couple fixes and some DTS updates" * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (37 commits) ARM: multi_v7_defconfig: Enable PBIAS regulator soc: qcom: smd: Correct fBLOCKREADINTR handling soc: qcom: smd: Use correct remote processor ID soc: qcom: smem: Fix errant private access ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path ARM: dts: qcom: msm8960-cdp: Use stdout-path ARM: dts: qcom: msm8660-surf: Use stdout-path ARM: dts: qcom: ipq8064-ap148: Use stdout-path ARM: dts: qcom: apq8084-mtp: Use stdout-path ARM: dts: qcom: apq8084-ifc6540: Use stdout-path ARM: dts: qcom: apq8074-dragonboard: Use stdout-path ARM: dts: qcom: apq8064-ifc6410: Use stdout-path ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path ARM: dts: qcom: Label serial nodes for aliasing and stdout-path reset: ath79: Fix missing spin_lock_init reset: Add (devm_)reset_control_get stub functions ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12 cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o ARM: dts: add iommu property to JPEG device for exynos4 ARM: dts: enable SPI1 for exynos4412-odroidu3 ... commit d1031d576d7398ab2e2fce53796d733c5be13d64 Merge: 91b6fc0 f36203b Author: Dave Airlie Date: Fri Sep 11 10:52:37 2015 +1000 Merge tag 'topic/drm-fixes-2015-09-09' of git://anongit.freedesktop.org/drm-intel into drm-next bunch of drm fixes. * tag 'topic/drm-fixes-2015-09-09' of git://anongit.freedesktop.org/drm-intel: drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus speed drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed drm/dp: Define AUX_RETRY_INTERVAL as 500 us drm/atomic: Fix bookkeeping with TEST_ONLY, v3. commit 91b6fc02a258422bf342992add24cfe70a029eca Merge: bd3e1c7 8242578 Author: Dave Airlie Date: Fri Sep 11 10:52:08 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-09-10' of git://anongit.freedesktop.org/drm-intel into drm-next Fixes headed for v4.3-rc1, including Maarten's DP MST state checker fix you requested. * tag 'drm-intel-next-fixes-2015-09-10' of git://anongit.freedesktop.org/drm-intel: drm/i915: Allow DSI dual link to be configured on any pipe drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS drm/i915: Fix CSR MMIO address check drm/i915: Limit the number of loops for reading a split 64bit register drm/i915: Fix broken mst get_hw_state. drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x uapi/drm/i915_drm.h: fix userspace compilation. drm/i915: Always mark the object as dirty when used by the GPU commit bd3e1c7c6de9f5f70d97cdb6c817151c0477c5e3 Author: Jonathon Jongsma Date: Thu Aug 20 14:04:32 2015 -0500 drm/qxl: validate monitors config modes Due to some recent changes in drm_helper_probe_single_connector_modes_merge_bits(), old custom modes were not being pruned properly. In current kernels, drm_mode_validate_basic() is called to sanity-check each mode in the list. If the sanity-check passes, the mode's status gets set to to MODE_OK. In older kernels this check was not done, so old custom modes would still have a status of MODE_UNVERIFIED at this point, and would therefore be pruned later in the function. As a result of this new behavior, the list of modes for a device always includes every custom mode ever configured for the device, with the largest one listed first. Since desktop environments usually choose the first preferred mode when a hotplug event is emitted, this had the result of making it very difficult for the user to reduce the size of the display. The qxl driver did implement the mode_valid connector function, but it was empty. In order to restore the old behavior where old custom modes are pruned, we implement a proper mode_valid function for the qxl driver. This function now checks each mode against the last configured custom mode and the list of standard modes. If the mode doesn't match any of these, its status is set to MODE_BAD so that it will be pruned as expected. Signed-off-by: Jonathon Jongsma Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie drivers/gpu/drm/qxl/qxl_display.c | 66 ++++++++++++++++++++++++--------------- drivers/gpu/drm/qxl/qxl_drv.h | 2 ++ 2 files changed, 42 insertions(+), 26 deletions(-) commit 519f526d391b0ef775aeb04c4b6f632ea6b3ee50 Merge: 06ab838 ba60c41 Author: Linus Torvalds Date: Thu Sep 10 16:42:49 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull more kvm updates from Paolo Bonzini: "ARM: - Full debug support for arm64 - Active state switching for timer interrupts - Lazy FP/SIMD save/restore for arm64 - Generic ARMv8 target PPC: - Book3S: A few bug fixes - Book3S: Allow micro-threading on POWER8 x86: - Compiler warnings Generic: - Adaptive polling for guest halt" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (49 commits) kvm: irqchip: fix memory leak kvm: move new trace event outside #ifdef CONFIG_KVM_ASYNC_PF KVM: trace kvm_halt_poll_ns grow/shrink KVM: dynamic halt-polling KVM: make halt_poll_ns per-vCPU Silence compiler warning in arch/x86/kvm/emulate.c kvm: compile process_smi_save_seg_64() only for x86_64 KVM: x86: avoid uninitialized variable warning KVM: PPC: Book3S: Fix typo in top comment about locking KVM: PPC: Book3S: Fix size of the PSPB register KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set KVM: PPC: Book3S HV: Fix race in starting secondary threads KVM: PPC: Book3S: correct width in XER handling KVM: PPC: Book3S HV: Fix preempted vcore stolen time calculation KVM: PPC: Book3S HV: Fix preempted vcore list locking KVM: PPC: Book3S HV: Implement H_CLEAR_REF and H_CLEAR_MOD KVM: PPC: Book3S HV: Fix bug in dirty page tracking KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE KVM: PPC: Book3S HV: Implement dynamic micro-threading on POWER8 KVM: PPC: Book3S HV: Make use of unused threads when running guests ... commit 06ab838c2024db468855118087db16d8fa905ddc Merge: 573c577 5f51042 Author: Linus Torvalds Date: Thu Sep 10 16:21:11 2015 -0700 Merge tag 'for-linus-4.3-rc0b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen terminology fixes from David Vrabel: "Use the correct GFN/BFN terms more consistently" * tag 'for-linus-4.3-rc0b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/xenbus: Rename the variable xen_store_mfn to xen_store_gfn xen/privcmd: Further s/MFN/GFN/ clean-up hvc/xen: Further s/MFN/GFN clean-up video/xen-fbfront: Further s/MFN/GFN clean-up xen/tmem: Use xen_page_to_gfn rather than pfn_to_gfn xen: Use correctly the Xen memory terminologies arm/xen: implement correctly pfn_to_mfn xen: Make clear that swiotlb and biomerge are dealing with DMA address commit 573c577af079184ca523984e3279644eb37756a3 Merge: 0cdf5a4 b141327 Author: Linus Torvalds Date: Thu Sep 10 16:20:00 2015 -0700 Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze Pull microblaze update from Michal Simek. * 'next' of git://git.monstr.eu/linux-2.6-microblaze: elf-em.h: move EM_MICROBLAZE to the common header commit 0cdf5a464070c8a2980a27113c47fb8e71babb9c Merge: 65c61bc 02cc2cc Author: Linus Torvalds Date: Thu Sep 10 16:19:07 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel Pull hexagon updates from Richard Kuo: "Just two fixes -- one for a uapi header and one for a timer interface" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel: Revert "Hexagon: fix signal.c compile error" hexagon/time: Migrate to new 'set-state' interface commit 53147b6cabee5e8d1997b5682fcc0c3b72ddf9c2 Author: Azael Avalos Date: Wed Sep 9 11:25:45 2015 -0600 toshiba_acpi: Fix hotkeys registration on some toshiba models Commit a2b3471b5b13 ("toshiba_acpi: Use the Hotkey Event Type function for keymap choosing") changed the *setup_keyboard function to query for the Hotkey Event Type to help choose the correct keymap, but turns out that here are certain Toshiba models out there not implementing this feature, and thus, failing to continue the input device registration and leaving such laptops without hotkey support. This patch changes such check, and instead of returning an error if the Hotkey Event Type is not present, we simply inform userspace about it, changing the message printed from err to notice, making the function responsible for registering the input device to continue. This issue was found on a Toshiba Portege Z30-B, but there might be some other models out there affected by this regression as well. Cc: # 4.1+ Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit cf680eae34d26bd474c2ed3bd7d3aff59054aed5 Author: Azael Avalos Date: Wed Sep 9 11:25:44 2015 -0600 toshiba_acpi: Fix USB Sleep and Music always disabled Commit e1a949c1b988 ("toshiba_acpi: Refactor *{get, set} functions return value") made changes on the return type of the HCI/SCI functions, but a typo on the USB Sleep and Music code is always reporting non existent support for such feature. This patch corrects the typo, changing an assignment to a comparison, making the laptops with actual support for such feature to work again. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3bba75a2ec32bd5fa7024a4de3b8cf9ee113a76a Author: Romain Perier Date: Sun Aug 23 11:32:37 2015 +0200 clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188 Now that the rockchip clock subsystem does clock gating with GPIO banks, these are no longer enabled once during probe and no longer stay enabled for eternity. When all these clocks are disabled, the parent clock pclk_peri might be disabled too, as no other child claims it. So, we need to add pclk_peri to the critical clocks. Signed-off-by: Romain Perier Tested-by: Michael Niewoehner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3188.c | 1 + 1 file changed, 1 insertion(+) commit 1166160ab531198f7abc773992c0e04d0f9b7600 Author: Michael Niewoehner Date: Tue Aug 25 22:22:07 2015 +0200 clk: rockchip: add pclk_cpu to the list of rk3188 critical clocks pclk_cpu needs to keep running because it is needed for devices like the act8865 regulator but with the recent gpio clock handling this is not always the case anymore. So add it to the list of critical clocks. Signed-off-by: Michael Niewoehner Reviewed-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3188.c | 1 + 1 file changed, 1 insertion(+) commit bb0f73616396e7929b68d3bdea70064003599d33 Author: Heiko Stuebner Date: Fri Aug 21 19:51:41 2015 +0200 clk: rockchip: handle critical clocks after registering all clocks Currently the registration of critical clocks is done in the function shared between rk3066 and rk3188 clock trees. That results in them getting handled maybe before all of them are registered. Therefore move the critical clock handling down to the end of the soc- specific clock registration function, so that all clocks are registered before they're maybe handled as critical clock. Signed-off-by: Heiko Stuebner Tested-by: Michael Niewoehner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3188.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 65c61bc5dbbcfa1ff38e58aa834cb9a88e84a886 Merge: b8889c4 3092752 Author: Linus Torvalds Date: Thu Sep 10 13:53:15 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix out-of-bounds array access in netfilter ipset, from Jozsef Kadlecsik. 2) Use correct free operation on netfilter conntrack templates, from Daniel Borkmann. 3) Fix route leak in SCTP, from Marcelo Ricardo Leitner. 4) Fix sizeof(pointer) in mac80211, from Thierry Reding. 5) Fix cache pointer comparison in ip6mr leading to missed unlock of mrt_lock. From Richard Laing. 6) rds_conn_lookup() needs to consider network namespace in key comparison, from Sowmini Varadhan. 7) Fix deadlock in TIPC code wrt broadcast link wakeups, from Kolmakov Dmitriy. 8) Fix fd leaks in bpf syscall, from Daniel Borkmann. 9) Fix error recovery when installing ipv6 multipath routes, we would delete the old route before we would know if we could fully commit to the new set of nexthops. Fix from Roopa Prabhu. 10) Fix run-time suspend problems in r8152, from Hayes Wang. 11) In fec, don't program the MAC address into the chip when the clocks are gated off. From Fugang Duan. 12) Fix poll behavior for netlink sockets when using rx ring mmap, from Daniel Borkmann. 13) Don't allocate memory with GFP_KERNEL from get_stats64 in r8169 driver, from Corinna Vinschen. 14) In TCP Cubic congestion control, handle idle periods better where we are application limited, in order to keep cwnd from growing out of control. From Eric Dumzet. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (65 commits) tcp_cubic: better follow cubic curve after idle period tcp: generate CA_EVENT_TX_START on data frames xen-netfront: respect user provided max_queues xen-netback: respect user provided max_queues r8169: Fix sleeping function called during get_stats64, v2 ether: add IEEE 1722 ethertype - TSN netlink, mmap: fix edge-case leakages in nf queue zero-copy netlink, mmap: don't walk rx ring on poll if receive queue non-empty cxgb4: changes for new firmware 1.14.4.0 net: fec: add netif status check before set mac address r8152: fix the runtime suspend issues r8152: split DRIVER_VERSION ipv6: fix ifnullfree.cocci warnings add microchip LAN88xx phy driver stmmac: fix check for phydev being open net: qlcnic: delete redundant memsets net: mv643xx_eth: use kzalloc net: jme: use kzalloc() instead of kmalloc+memset net: cavium: liquidio: use kzalloc in setup_glist() net: ipv6: use common fib_default_rule_pref ... commit 452e06af1f0149b01201f94264d452cd7a95db7a Author: Christoph Hellwig Date: Wed Sep 9 15:39:53 2015 -0700 dma-mapping: consolidate dma_set_mask Almost everyone implements dma_set_mask the same way, although some time that's hidden in ->set_dma_mask methods. This patch consolidates those into a common implementation that either calls ->set_dma_mask if present or otherwise uses the default implementation. Some architectures used to only call ->set_dma_mask after the initial checks, and those instance have been fixed to do the full work. h8300 implemented dma_set_mask bogusly as a no-ops and has been fixed. Unfortunately some architectures overload unrelated semantics like changing the dma_ops into it so we still need to allow for an architecture override for now. [jcmvbkbc@gmail.com: fix xtensa] Signed-off-by: Christoph Hellwig Cc: Arnd Bergmann Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Yoshinori Sato Cc: Michal Simek Cc: Jonas Bonn Cc: Chris Metcalf Cc: Guan Xuetao Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Andy Shevchenko Signed-off-by: Max Filippov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/dma-mapping.h | 5 ----- arch/alpha/kernel/pci-noop.c | 10 ---------- arch/alpha/kernel/pci_iommu.c | 11 ----------- arch/arm/include/asm/dma-mapping.h | 5 ----- arch/arm64/include/asm/dma-mapping.h | 9 --------- arch/h8300/include/asm/dma-mapping.h | 5 ----- arch/hexagon/include/asm/dma-mapping.h | 1 - arch/hexagon/kernel/dma.c | 11 ----------- arch/ia64/include/asm/dma-mapping.h | 9 --------- arch/microblaze/include/asm/dma-mapping.h | 14 -------------- arch/mips/include/asm/dma-mapping.h | 16 ---------------- arch/mips/loongson64/common/dma-swiotlb.c | 3 +++ arch/openrisc/include/asm/dma-mapping.h | 9 --------- arch/powerpc/include/asm/dma-mapping.h | 4 +++- arch/s390/include/asm/dma-mapping.h | 2 -- arch/s390/pci/pci_dma.c | 10 ---------- arch/sh/include/asm/dma-mapping.h | 14 -------------- arch/sparc/include/asm/dma-mapping.h | 4 +++- arch/tile/include/asm/dma-mapping.h | 6 ++++-- arch/unicore32/include/asm/dma-mapping.h | 10 ---------- arch/x86/include/asm/dma-mapping.h | 2 -- arch/x86/kernel/pci-dma.c | 11 ----------- arch/xtensa/include/asm/dma-mapping.h | 11 ----------- include/asm-generic/dma-mapping-common.h | 15 +++++++++++++++ 24 files changed, 28 insertions(+), 169 deletions(-) commit ee196371d5cb1942ebdccc16bdce389812aa265e Author: Christoph Hellwig Date: Wed Sep 9 15:39:49 2015 -0700 dma-mapping: consolidate dma_supported Most architectures just call into ->dma_supported, but some also return 1 if the method is not present, or 0 if no dma ops are present (although that should never happeb). Consolidate this more broad version into common code. Also fix h8300 which inorrectly always returned 0, which would have been a problem if it's dma_set_mask implementation wasn't a similarly buggy noop. As a few architectures have much more elaborate implementations, we still allow for arch overrides. [jcmvbkbc@gmail.com: fix xtensa] Signed-off-by: Christoph Hellwig Cc: Arnd Bergmann Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Yoshinori Sato Cc: Michal Simek Cc: Jonas Bonn Cc: Chris Metcalf Cc: Guan Xuetao Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Andy Shevchenko Signed-off-by: Max Filippov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/dma-mapping.h | 5 ----- arch/arm/include/asm/dma-mapping.h | 6 +++--- arch/arm64/include/asm/dma-mapping.h | 6 ------ arch/h8300/include/asm/dma-mapping.h | 5 ----- arch/hexagon/include/asm/dma-mapping.h | 1 + arch/ia64/include/asm/dma-mapping.h | 6 ------ arch/microblaze/include/asm/dma-mapping.h | 13 +------------ arch/mips/include/asm/dma-mapping.h | 6 ------ arch/openrisc/include/asm/dma-mapping.h | 5 +++-- arch/powerpc/include/asm/dma-mapping.h | 11 ----------- arch/s390/include/asm/dma-mapping.h | 9 --------- arch/sh/include/asm/dma-mapping.h | 10 ---------- arch/sparc/include/asm/dma-mapping.h | 1 + arch/tile/include/asm/dma-mapping.h | 6 ------ arch/unicore32/include/asm/dma-mapping.h | 10 ---------- arch/x86/include/asm/dma-mapping.h | 4 +++- arch/xtensa/include/asm/dma-mapping.h | 6 ------ include/asm-generic/dma-mapping-common.h | 13 +++++++++++++ 18 files changed, 25 insertions(+), 98 deletions(-) commit efa21e432c7b3c8ae976039d614a017799b6e874 Author: Christoph Hellwig Date: Wed Sep 9 15:39:46 2015 -0700 dma-mapping: cosolidate dma_mapping_error Currently there are three valid implementations of dma_mapping_error: (1) call ->mapping_error (2) check for a hardcoded error code (3) always return 0 This patch provides a common implementation that calls ->mapping_error if present, then checks for DMA_ERROR_CODE if defined or otherwise returns 0. [jcmvbkbc@gmail.com: fix xtensa] Signed-off-by: Christoph Hellwig Cc: Arnd Bergmann Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Yoshinori Sato Cc: Michal Simek Cc: Jonas Bonn Cc: Chris Metcalf Cc: Guan Xuetao Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Andy Shevchenko Signed-off-by: Max Filippov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/dma-mapping.h | 5 ----- arch/arm/include/asm/dma-mapping.h | 9 --------- arch/arm64/include/asm/dma-mapping.h | 7 ------- arch/h8300/include/asm/dma-mapping.h | 5 ----- arch/hexagon/include/asm/dma-mapping.h | 11 +---------- arch/ia64/include/asm/dma-mapping.h | 7 ------- arch/microblaze/include/asm/dma-mapping.h | 11 ----------- arch/mips/include/asm/dma-mapping.h | 8 -------- arch/openrisc/include/asm/dma-mapping.h | 5 ----- arch/powerpc/include/asm/dma-mapping.h | 17 ++--------------- arch/s390/include/asm/dma-mapping.h | 10 ---------- arch/sh/include/asm/dma-mapping.h | 13 ++----------- arch/sparc/include/asm/dma-mapping.h | 6 ------ arch/tile/include/asm/dma-mapping.h | 7 ------- arch/unicore32/include/asm/dma-mapping.h | 10 ---------- arch/x86/include/asm/dma-mapping.h | 11 ----------- arch/xtensa/include/asm/dma-mapping.h | 9 --------- include/asm-generic/dma-mapping-common.h | 14 ++++++++++++++ 18 files changed, 19 insertions(+), 146 deletions(-) commit 1e8937526e2309d48fccd81bb30a590ac21a5516 Author: Christoph Hellwig Date: Wed Sep 9 15:39:42 2015 -0700 dma-mapping: consolidate dma_{alloc,free}_noncoherent Most architectures do not support non-coherent allocations and either define dma_{alloc,free}_noncoherent to their coherent versions or stub them out. Openrisc uses dma_{alloc,free}_attrs to implement them, and only Mips implements them directly. This patch moves the Openrisc version to common code, and handles the DMA_ATTR_NON_CONSISTENT case in the mips dma_map_ops instance. Note that actual non-coherent allocations require a dma_cache_sync implementation, so if non-coherent allocations didn't work on an architecture before this patch they still won't work after it. [jcmvbkbc@gmail.com: fix xtensa] Signed-off-by: Christoph Hellwig Cc: Arnd Bergmann Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Yoshinori Sato Cc: Michal Simek Cc: Jonas Bonn Cc: Chris Metcalf Cc: Guan Xuetao Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Andy Shevchenko Signed-off-by: Max Filippov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/dma-mapping.h | 3 --- arch/arm/include/asm/dma-mapping.h | 21 ++++++--------------- arch/arm64/include/asm/dma-mapping.h | 14 -------------- arch/h8300/include/asm/dma-mapping.h | 3 --- arch/hexagon/include/asm/dma-mapping.h | 3 --- arch/ia64/include/asm/dma-mapping.h | 3 --- arch/microblaze/include/asm/dma-mapping.h | 3 --- arch/mips/include/asm/dma-mapping.h | 6 ------ arch/mips/mm/dma-default.c | 20 +++++++++++++++----- arch/openrisc/include/asm/dma-mapping.h | 20 -------------------- arch/powerpc/include/asm/dma-mapping.h | 3 --- arch/s390/include/asm/dma-mapping.h | 3 --- arch/sh/include/asm/dma-mapping.h | 3 --- arch/sparc/include/asm/dma-mapping.h | 3 --- arch/tile/include/asm/dma-mapping.h | 3 --- arch/unicore32/include/asm/dma-mapping.h | 3 --- arch/x86/include/asm/dma-mapping.h | 3 --- arch/xtensa/include/asm/dma-mapping.h | 3 --- include/asm-generic/dma-mapping-common.h | 18 ++++++++++++++++++ 19 files changed, 39 insertions(+), 99 deletions(-) commit 6894258eda2f9badc28c878086c0e54bd5b7fb30 Author: Christoph Hellwig Date: Wed Sep 9 15:39:39 2015 -0700 dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent} Since 2009 we have a nice asm-generic header implementing lots of DMA API functions for architectures using struct dma_map_ops, but unfortunately it's still missing a lot of APIs that all architectures still have to duplicate. This series consolidates the remaining functions, although we still need arch opt outs for two of them as a few architectures have very non-standard implementations. This patch (of 5): The coherent DMA allocator works the same over all architectures supporting dma_map operations. This patch consolidates them and converges the minor differences: - the debug_dma helpers are now called from all architectures, including those that were previously missing them - dma_alloc_from_coherent and dma_release_from_coherent are now always called from the generic alloc/free routines instead of the ops dma-mapping-common.h always includes dma-coherent.h to get the defintions for them, or the stubs if the architecture doesn't support this feature - checks for ->alloc / ->free presence are removed. There is only one magic instead of dma_map_ops without them (mic_dma_ops) and that one is x86 only anyway. Besides that only x86 needs special treatment to replace a default devices if none is passed and tweak the gfp_flags. An optional arch hook is provided for that. [linux@roeck-us.net: fix build] [jcmvbkbc@gmail.com: fix xtensa] Signed-off-by: Christoph Hellwig Cc: Arnd Bergmann Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Yoshinori Sato Cc: Michal Simek Cc: Jonas Bonn Cc: Chris Metcalf Cc: Guan Xuetao Cc: Ralf Baechle Cc: Benjamin Herrenschmidt Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Andy Shevchenko Signed-off-by: Guenter Roeck Signed-off-by: Max Filippov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/alpha/include/asm/dma-mapping.h | 18 ---------- arch/arm/include/asm/dma-mapping.h | 29 ---------------- arch/arm/mm/dma-mapping.c | 12 ------- arch/arm64/include/asm/dma-mapping.h | 33 ------------------ arch/h8300/include/asm/dma-mapping.h | 26 -------------- arch/hexagon/include/asm/dma-mapping.h | 33 ------------------ arch/ia64/include/asm/dma-mapping.h | 25 ------------- arch/microblaze/include/asm/dma-mapping.h | 31 ----------------- arch/mips/cavium-octeon/dma-octeon.c | 8 ----- arch/mips/include/asm/dma-mapping.h | 31 ----------------- arch/mips/loongson64/common/dma-swiotlb.c | 8 ----- arch/mips/mm/dma-default.c | 7 ---- arch/mips/netlogic/common/nlm-dma.c | 10 ------ arch/openrisc/include/asm/dma-mapping.h | 30 ---------------- arch/powerpc/include/asm/dma-mapping.h | 33 ------------------ arch/s390/include/asm/dma-mapping.h | 31 ----------------- arch/sh/include/asm/dma-mapping.h | 37 -------------------- arch/sparc/include/asm/dma-mapping.h | 26 -------------- arch/tile/include/asm/dma-mapping.h | 27 -------------- arch/unicore32/include/asm/dma-mapping.h | 24 ------------- arch/x86/include/asm/dma-mapping.h | 16 ++------- arch/x86/kernel/pci-dma.c | 49 +++++--------------------- arch/xtensa/include/asm/dma-mapping.h | 31 ----------------- drivers/xen/swiotlb-xen.c | 6 ---- include/asm-generic/dma-mapping-common.h | 58 +++++++++++++++++++++++++++++++ 25 files changed, 70 insertions(+), 569 deletions(-) commit fb6dd5fa4165c4b82f1a11416c2fc192ae3a84e2 Author: Kirill A. Shutemov Date: Wed Sep 9 15:39:35 2015 -0700 mm: use vma_is_anonymous() in create_huge_pmd() and wp_huge_pmd() Let's use helper rather than direct check of vma->vm_ops to distinguish anonymous VMA. Signed-off-by: Kirill A. Shutemov Reviewed-by: Oleg Nesterov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Minchan Kim Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6dc296e7df4c9a0857491cc3f55da16a9eeeeae7 Author: Kirill A. Shutemov Date: Wed Sep 9 15:39:32 2015 -0700 mm: make sure all file VMAs have ->vm_ops set We rely on vma->vm_ops == NULL to detect anonymous VMA: see vma_is_anonymous(), but some drivers doesn't set ->vm_ops. As a result we can end up with anonymous page in private file mapping. That should not lead to serious misbehaviour, but nevertheless is wrong. Let's fix by setting up dummy ->vm_ops for file mmapping if f_op->mmap() didn't set its own. The patch also adds sanity check into __vma_link_rb(). It will help catch broken VMAs which inserted directly into mm_struct via insert_vm_struct(). Signed-off-by: Kirill A. Shutemov Reviewed-by: Oleg Nesterov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Minchan Kim Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1fcfd8db7f82fa1f533a6f0e4155614ff4144d56 Author: Oleg Nesterov Date: Wed Sep 9 15:39:29 2015 -0700 mm, mpx: add "vm_flags_t vm_flags" arg to do_mmap_pgoff() Add the additional "vm_flags_t vm_flags" argument to do_mmap_pgoff(), rename it to do_mmap(), and re-introduce do_mmap_pgoff() as a simple wrapper on top of do_mmap(). Perhaps we should update the callers of do_mmap_pgoff() and kill it later. This way mpx_mmap() can simply call do_mmap(vm_flags => VM_MPX) and do not play with vm internals. After this change mmap_region() has a single user outside of mmap.c, arch/tile/mm/elf.c:arch_setup_additional_pages(). It would be nice to change arch/tile/ and unexport mmap_region(). [kirill@shutemov.name: fix build] [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Oleg Nesterov Acked-by: Dave Hansen Tested-by: Dave Hansen Signed-off-by: Kirill A. Shutemov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Minchan Kim Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/mm/mpx.c | 51 +++++++-------------------------------------------- include/linux/mm.h | 12 ++++++++++-- mm/mmap.c | 10 ++++------ mm/nommu.c | 19 ++++++++++--------- 4 files changed, 31 insertions(+), 61 deletions(-) commit 7cbea8dc0127a95226c7722a738ac6534950ef67 Author: Kirill A. Shutemov Date: Wed Sep 9 15:39:26 2015 -0700 mm: mark most vm_operations_struct const With two exceptions (drm/qxl and drm/radeon) all vm_operations_struct structs should be constant. Signed-off-by: Kirill A. Shutemov Reviewed-by: Oleg Nesterov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Minchan Kim Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/entry/vsyscall/vsyscall_64.c | 2 +- drivers/android/binder.c | 2 +- drivers/gpu/drm/vgem/vgem_drv.c | 2 +- drivers/hsi/clients/cmt_speech.c | 2 +- drivers/infiniband/hw/qib/qib_file_ops.c | 2 +- drivers/infiniband/hw/qib/qib_mmap.c | 2 +- drivers/media/platform/omap/omap_vout.c | 2 +- drivers/misc/genwqe/card_dev.c | 2 +- drivers/staging/android/ion/ion.c | 2 +- drivers/staging/comedi/comedi_fops.c | 2 +- drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +- drivers/xen/gntalloc.c | 2 +- drivers/xen/gntdev.c | 2 +- drivers/xen/privcmd.c | 4 ++-- fs/ceph/addr.c | 2 +- fs/cifs/file.c | 2 +- security/selinux/selinuxfs.c | 2 +- 17 files changed, 18 insertions(+), 18 deletions(-) commit 2a78b857d3755a6f8d0c70d7e365e473925987c1 Author: Masanari Iida Date: Wed Sep 9 15:39:23 2015 -0700 namei: fix warning while make xmldocs caused by namei.c Fix the following warnings: Warning(.//fs/namei.c:2422): No description found for parameter 'nd' Warning(.//fs/namei.c:2422): Excess function parameter 'nameidata' description in 'path_mountpoint' Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d0edd8528362c07216498340e928159510595e7b Author: Davidlohr Bueso Date: Wed Sep 9 15:39:20 2015 -0700 ipc: convert invalid scenarios to use WARN_ON Considering Linus' past rants about the (ab)use of BUG in the kernel, I took a look at how we deal with such calls in ipc. Given that any errors or corruption in ipc code are most likely contained within the set of processes participating in the broken mechanisms, there aren't really many strong fatal system failure scenarios that would require a BUG call. Also, if something is seriously wrong, ipc might not be the place for such a BUG either. 1. For example, recently, a customer hit one of these BUG_ONs in shm after failing shm_lock(). A busted ID imho does not merit a BUG_ON, and WARN would have been better. 2. MSG_COPY functionality of posix msgrcv(2) for checkpoint/restore. I don't see how we can hit this anyway -- at least it should be IS_ERR. The 'copy' arg from do_msgrcv is always set by calling prepare_copy() first and foremost. We could also probably drop this check altogether. Either way, it does not merit a BUG_ON. 3. No ->fault() callback for the fs getting the corresponding page -- seems selfish to make the system unusable. Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ipc/msgutil.c | 2 +- ipc/shm.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 8b235f2f16a472b8cfc10e8ef1286fcd3331e033 Author: yalin wang Date: Wed Sep 9 15:39:18 2015 -0700 zlib_deflate/deftree: remove bi_reverse() Remove bi_reverse() and use generic bitrev32() instead - it should have better performance on some platforms. Signed-off-by: yalin wang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/zlib_deflate/deftree.c | 6 +++--- lib/zlib_deflate/defutil.h | 16 ---------------- 2 files changed, 3 insertions(+), 19 deletions(-) commit e4e29dc4841d21943bec1bc5378ab421d2320d83 Author: Fabio Estevam Date: Wed Sep 9 15:39:15 2015 -0700 lib/decompress_unlzma: Do a NULL check for pointer Compare pointer-typed values to NULL rather than 0. The semantic patch that makes this change is available in scripts/coccinelle/null/badzero.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/decompress_unlzma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d3862d26e67a59340ba1cf1748196c76c5787de Author: Yinghai Lu Date: Wed Sep 9 15:39:12 2015 -0700 lib/decompressors: use real out buf size for gunzip with kernel When loading x86 64bit kernel above 4GiB with patched grub2, got kernel gunzip error. | early console in decompress_kernel | decompress_kernel: | input: [0x807f2143b4-0x807ff61aee] | output: [0x807cc00000-0x807f3ea29b] 0x027ea29c: output_len | boot via startup_64 | KASLR using RDTSC... | new output: [0x46fe000000-0x470138cfff] 0x0338d000: output_run_size | decompress: [0x46fe000000-0x47007ea29b] <=== [0x807f2143b4-0x807ff61aee] | | Decompressing Linux... gz... | | uncompression error | | -- System halted the new buffer is at 0x46fe000000ULL, decompressor_gzip is using 0xffffffb901ffffff as out_len. gunzip in lib/zlib_inflate/inflate.c cap that len to 0x01ffffff and decompress fails later. We could hit this problem with crashkernel booting that uses kexec loading kernel above 4GiB. We have decompress_* support: 1. inbuf[]/outbuf[] for kernel preboot. 2. inbuf[]/flush() for initramfs 3. fill()/flush() for initrd. This bug only affect kernel preboot path that use outbuf[]. Add __decompress and take real out_buf_len for gunzip instead of guessing wrong buf size. Fixes: 1431574a1c4 (lib/decompressors: fix "no limit" output buffer length) Signed-off-by: Yinghai Lu Cc: Alexandre Courbot Cc: Jon Medhurst Cc: Stephen Warren Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/boot/compressed/decompress.c | 2 +- arch/h8300/boot/compressed/misc.c | 2 +- arch/m32r/boot/compressed/misc.c | 3 ++- arch/mips/boot/compressed/decompress.c | 4 ++-- arch/s390/boot/compressed/misc.c | 2 +- arch/sh/boot/compressed/misc.c | 2 +- arch/unicore32/boot/compressed/misc.c | 4 ++-- arch/x86/boot/compressed/misc.c | 3 ++- lib/decompress_bunzip2.c | 6 +++--- lib/decompress_inflate.c | 31 ++++++++++++++++++++++++++----- lib/decompress_unlz4.c | 6 +++--- lib/decompress_unlzma.c | 7 +++---- lib/decompress_unlzo.c | 13 ++++++++++++- lib/decompress_unxz.c | 12 +++++++++++- 14 files changed, 70 insertions(+), 27 deletions(-) commit e852d82a5b55b44ce8be89078d0dfbddbeae3211 Author: Pranay Kr. Srivastava Date: Wed Sep 9 15:39:09 2015 -0700 fs/affs: make root lookup from blkdev logical size This patch resolves https://bugzilla.kernel.org/show_bug.cgi?id=16531. When logical blkdev size > 512 then sector numbers become larger than the device can support. Make affs start lookup based on the device's logical sector size instead of 512. Reported-by: Mark Suggested-by: Mark Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/affs/super.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9a5bc726d559221a3394bb8ef97d0abc1ee94d00 Author: Ilya Dryomov Date: Wed Sep 9 15:39:06 2015 -0700 sysctl: fix int -> unsigned long assignments in INT_MIN case The following if (val < 0) *lvalp = (unsigned long)-val; is incorrect because the compiler is free to assume -val to be positive and use a sign-extend instruction for extending the bit pattern. This is a problem if val == INT_MIN: # echo -2147483648 >/proc/sys/dev/scsi/logging_level # cat /proc/sys/dev/scsi/logging_level -18446744071562067968 Cast to unsigned long before negation - that way we first sign-extend and then negate an unsigned, which is well defined. With this: # cat /proc/sys/dev/scsi/logging_level -2147483648 Signed-off-by: Ilya Dryomov Cc: Mikulas Patocka Cc: Robert Xiao Cc: "Eric W. Biederman" Cc: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/sysctl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1303a27c9c32020a3b6ac89be270d2ab1f28be24 Author: Baoquan He Date: Wed Sep 9 15:39:03 2015 -0700 kexec: export KERNEL_IMAGE_SIZE to vmcoreinfo In x86_64, since v2.6.26 the KERNEL_IMAGE_SIZE is changed to 512M, and accordingly the MODULES_VADDR is changed to 0xffffffffa0000000. However, in v3.12 Kees Cook introduced kaslr to randomise the location of kernel. And the kernel text mapping addr space is enlarged from 512M to 1G. That means now KERNEL_IMAGE_SIZE is variable, its value is 512M when kaslr support is not compiled in and 1G when kaslr support is compiled in. Accordingly the MODULES_VADDR is changed too to be: #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE) So when kaslr is compiled in and enabled, the kernel text mapping addr space and modules vaddr space need be adjusted. Otherwise makedumpfile will collapse since the addr for some symbols is not correct. Hence KERNEL_IMAGE_SIZE need be exported to vmcoreinfo and got in makedumpfile to help calculate MODULES_VADDR. Signed-off-by: Baoquan He Acked-by: Kees Cook Acked-by: Vivek Goyal Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kexec_core.c | 3 +++ 1 file changed, 3 insertions(+) commit bbb78b8f3f4ea8eca14937b693bfe244838e1d4d Author: Baoquan He Date: Wed Sep 9 15:39:00 2015 -0700 kexec: align crash_notes allocation to make it be inside one physical page People reported that crash_notes in /proc/vmcore were corrupted and this cause crash kdump failure. With code debugging and log we got the root cause. This is because percpu variable crash_notes are allocated in 2 vmalloc pages. Currently percpu is based on vmalloc by default. Vmalloc can't guarantee 2 continuous vmalloc pages are also on 2 continuous physical pages. So when 1st kernel exports the starting address and size of crash_notes through sysfs like below: /sys/devices/system/cpu/cpux/crash_notes /sys/devices/system/cpu/cpux/crash_notes_size kdump kernel use them to get the content of crash_notes. However the 2nd part may not be in the next neighbouring physical page as we expected if crash_notes are allocated accross 2 vmalloc pages. That's why nhdr_ptr->n_namesz or nhdr_ptr->n_descsz could be very huge in update_note_header_size_elf64() and cause note header merging failure or some warnings. In this patch change to call __alloc_percpu() to passed in the align value by rounding crash_notes_size up to the nearest power of two. This makes sure the crash_notes is allocated inside one physical page since sizeof(note_buf_t) in all ARCHS is smaller than PAGE_SIZE. Meanwhile add a BUILD_BUG_ON to break compile if size is bigger than PAGE_SIZE since crash_notes definitely will be in 2 pages. That need be avoided, and need be reported if it's unavoidable. [akpm@linux-foundation.org: use correct comment layout] Signed-off-by: Baoquan He Cc: Eric W. Biederman Cc: Vivek Goyal Cc: Dave Young Cc: Lisa Mitchell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kexec_core.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 04e9949b2d26ae1f0acd1181876a2a8ece92112d Author: Minfei Huang Date: Wed Sep 9 15:38:58 2015 -0700 kexec: remove unnecessary test in kimage_alloc_crash_control_pages() Transforming PFN(Page Frame Number) to struct page is never failure, so we can simplify the code logic to do the image->control_page assignment directly in the loop, and remove the unnecessary conditional judgement. Signed-off-by: Minfei Huang Acked-by: Dave Young Acked-by: Vivek Goyal Cc: Simon Horman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kexec_core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2965faa5e03d1e71e9ff9aa143fff39e0a77543a Author: Dave Young Date: Wed Sep 9 15:38:55 2015 -0700 kexec: split kexec_load syscall from kexec core code There are two kexec load syscalls, kexec_load another and kexec_file_load. kexec_file_load has been splited as kernel/kexec_file.c. In this patch I split kexec_load syscall code to kernel/kexec.c. And add a new kconfig option KEXEC_CORE, so we can disable kexec_load and use kexec_file_load only, or vice verse. The original requirement is from Ted Ts'o, he want kexec kernel signature being checked with CONFIG_KEXEC_VERIFY_SIG enabled. But kexec-tools use kexec_load syscall can bypass the checking. Vivek Goyal proposed to create a common kconfig option so user can compile in only one syscall for loading kexec kernel. KEXEC/KEXEC_FILE selects KEXEC_CORE so that old config files still work. Because there's general code need CONFIG_KEXEC_CORE, so I updated all the architecture Kconfig with a new option KEXEC_CORE, and let KEXEC selects KEXEC_CORE in arch Kconfig. Also updated general kernel code with to kexec_load syscall. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Dave Young Cc: Eric W. Biederman Cc: Vivek Goyal Cc: Petr Tesarik Cc: Theodore Ts'o Cc: Josh Boyer Cc: David Howells Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/Kconfig | 3 + arch/arm/Kconfig | 1 + arch/ia64/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/mips/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/s390/Kconfig | 1 + arch/sh/Kconfig | 1 + arch/tile/Kconfig | 1 + arch/x86/Kconfig | 3 +- arch/x86/boot/header.S | 2 +- arch/x86/include/asm/kdebug.h | 2 +- arch/x86/kernel/Makefile | 4 +- arch/x86/kernel/kvmclock.c | 4 +- arch/x86/kernel/reboot.c | 4 +- arch/x86/kernel/setup.c | 2 +- arch/x86/kernel/vmlinux.lds.S | 2 +- arch/x86/kvm/vmx.c | 8 +- arch/x86/platform/efi/efi.c | 4 +- arch/x86/platform/uv/uv_nmi.c | 6 +- drivers/firmware/efi/Kconfig | 2 +- drivers/pci/pci-driver.c | 2 +- include/linux/kexec.h | 6 +- init/initramfs.c | 4 +- kernel/Makefile | 1 + kernel/events/core.c | 2 +- kernel/kexec.c | 1495 +--------------------------------------- kernel/kexec_core.c | 1511 +++++++++++++++++++++++++++++++++++++++++ kernel/ksysfs.c | 6 +- kernel/printk/printk.c | 2 +- kernel/reboot.c | 2 +- kernel/sysctl.c | 2 +- 32 files changed, 1560 insertions(+), 1527 deletions(-) commit a43cac0d9dc2073ff2245a171429ddbe1accece7 Author: Dave Young Date: Wed Sep 9 15:38:51 2015 -0700 kexec: split kexec_file syscall code to kexec_file.c Split kexec_file syscall related code to another file kernel/kexec_file.c so that the #ifdef CONFIG_KEXEC_FILE in kexec.c can be dropped. Sharing variables and functions are moved to kernel/kexec_internal.h per suggestion from Vivek and Petr. [akpm@linux-foundation.org: fix bisectability] [akpm@linux-foundation.org: declare the various arch_kexec functions] [akpm@linux-foundation.org: fix build] Signed-off-by: Dave Young Cc: Eric W. Biederman Cc: Vivek Goyal Cc: Petr Tesarik Cc: Theodore Ts'o Cc: Josh Boyer Cc: David Howells Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kexec.h | 11 + kernel/Makefile | 1 + kernel/kexec.c | 1056 +---------------------------------------------- kernel/kexec_file.c | 1045 ++++++++++++++++++++++++++++++++++++++++++++++ kernel/kexec_internal.h | 22 + 5 files changed, 1090 insertions(+), 1045 deletions(-) commit a202fbbf56e819de83876827c4bf5da2bfbac5ec Author: Andy Shevchenko Date: Wed Sep 9 15:38:48 2015 -0700 drivers/net/wireless/ath/wil6210: use seq_hex_dump() to dump buffers Instead of custom approach let's use recently introduced seq_hex_dump() helper. Signed-off-by: Andy Shevchenko Cc: Alexander Viro Cc: Joe Perches Cc: Tadeusz Struk Cc: Helge Deller Cc: Ingo Tuchscherer Cc: Catalin Marinas Cc: Vladimir Kondratiev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/net/wireless/ath/wil6210/debugfs.c | 35 ++++++------------------------ 1 file changed, 7 insertions(+), 28 deletions(-) commit 6fc37c4900765d579f25fbd293fcda7be5037896 Author: Andy Shevchenko Date: Wed Sep 9 15:38:45 2015 -0700 kmemleak: use seq_hex_dump() to dump buffers Instead of custom approach let's use recently introduced seq_hex_dump() helper. Signed-off-by: Andy Shevchenko Cc: Alexander Viro Cc: Joe Perches Cc: Tadeusz Struk Cc: Helge Deller Cc: Ingo Tuchscherer Acked-by: Catalin Marinas Cc: Vladimir Kondratiev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 5d2fe875c9e822aa55579ea2032153e2891db57a Author: Andy Shevchenko Date: Wed Sep 9 15:38:42 2015 -0700 drivers/s390/crypto/zcrypt_api.c: use seq_hex_dump() to dump buffers Instead of custom approach let's use recently introduced seq_hex_dump() helper. Signed-off-by: Andy Shevchenko Acked-by: Ingo Tuchscherer Cc: Alexander Viro Cc: Joe Perches Cc: Tadeusz Struk Cc: Helge Deller Cc: Catalin Marinas Cc: Vladimir Kondratiev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/s390/crypto/zcrypt_api.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit b342a65dd71c02f606dfea51e99773c333a2439d Author: Andy Shevchenko Date: Wed Sep 9 15:38:39 2015 -0700 parisc: use seq_hex_dump() to dump buffers Instead of custom approach let's use recently introduced seq_hex_dump() helper. In one case it changes the output from 1111111122222222333333334444444455555555666666667777777788888888 to 11111111 22222222 33333333 44444444 55555555 66666666 77777777 88888888 though it seems it prints same data (by meaning) in both cases. I decide to choose to use the space divided one. Signed-off-by: Andy Shevchenko Acked-by: Helge Deller Cc: Alexander Viro Cc: Joe Perches Cc: Tadeusz Struk Cc: Ingo Tuchscherer Cc: Catalin Marinas Cc: Vladimir Kondratiev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/parisc/ccio-dma.c | 13 +++---------- drivers/parisc/sba_iommu.c | 9 ++------- 2 files changed, 5 insertions(+), 17 deletions(-) commit d0cce062217fedb448cf7f36e0b82a80ac9e1243 Author: Andy Shevchenko Date: Wed Sep 9 15:38:36 2015 -0700 drivers/crypto/qat: use seq_hex_dump() to dump buffers Instead of custom approach let's use recently introduced seq_hex_dump() helper. Signed-off-by: Andy Shevchenko Acked-by: Tadeusz Struk Cc: Alexander Viro Cc: Joe Perches Cc: Helge Deller Cc: Ingo Tuchscherer Cc: Catalin Marinas Cc: Vladimir Kondratiev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/crypto/qat/qat_common/adf_transport_debug.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 37607102c4426cf92aeb5da1b1d9a79ba6d95e3f Author: Andy Shevchenko Date: Wed Sep 9 15:38:33 2015 -0700 seq_file: provide an analogue of print_hex_dump() This introduces a new helper and switches current users to use it. All patches are compiled tested. kmemleak is tested via its own test suite. This patch (of 6): The new seq_hex_dump() is a complete analogue of print_hex_dump(). We have few users of this functionality already. It allows to reduce their codebase. Signed-off-by: Andy Shevchenko Cc: Alexander Viro Cc: Joe Perches Cc: Tadeusz Struk Cc: Helge Deller Cc: Ingo Tuchscherer Cc: Catalin Marinas Cc: Vladimir Kondratiev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/seq_file.c | 42 ++++++++++++++++++++++++++++++++++++++++++ include/linux/seq_file.h | 4 ++++ 2 files changed, 46 insertions(+) commit 40f705a736eac10e7dca7ab5dd5ed675a6df031d Author: Jann Horn Date: Wed Sep 9 15:38:30 2015 -0700 fs: Don't dump core if the corefile would become world-readable. On a filesystem like vfat, all files are created with the same owner and mode independent of who created the file. When a vfat filesystem is mounted with root as owner of all files and read access for everyone, root's processes left world-readable coredumps on it (but other users' processes only left empty corefiles when given write access because of the uid mismatch). Given that the old behavior was inconsistent and insecure, I don't see a problem with changing it. Now, all processes refuse to dump core unless the resulting corefile will only be readable by their owner. Signed-off-by: Jann Horn Acked-by: Kees Cook Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/coredump.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit fbb1816942c04429e85dbf4c1a080accc534299e Author: Jann Horn Date: Wed Sep 9 15:38:28 2015 -0700 fs: if a coredump already exists, unlink and recreate with O_EXCL It was possible for an attacking user to trick root (or another user) into writing his coredumps into an attacker-readable, pre-existing file using rename() or link(), causing the disclosure of secret data from the victim process' virtual memory. Depending on the configuration, it was also possible to trick root into overwriting system files with coredumps. Fix that issue by never writing coredumps into existing files. Requirements for the attack: - The attack only applies if the victim's process has a nonzero RLIMIT_CORE and is dumpable. - The attacker can trick the victim into coredumping into an attacker-writable directory D, either because the core_pattern is relative and the victim's cwd is attacker-writable or because an absolute core_pattern pointing to a world-writable directory is used. - The attacker has one of these: A: on a system with protected_hardlinks=0: execute access to a folder containing a victim-owned, attacker-readable file on the same partition as D, and the victim-owned file will be deleted before the main part of the attack takes place. (In practice, there are lots of files that fulfill this condition, e.g. entries in Debian's /var/lib/dpkg/info/.) This does not apply to most Linux systems because most distros set protected_hardlinks=1. B: on a system with protected_hardlinks=1: execute access to a folder containing a victim-owned, attacker-readable and attacker-writable file on the same partition as D, and the victim-owned file will be deleted before the main part of the attack takes place. (This seems to be uncommon.) C: on any system, independent of protected_hardlinks: write access to a non-sticky folder containing a victim-owned, attacker-readable file on the same partition as D (This seems to be uncommon.) The basic idea is that the attacker moves the victim-owned file to where he expects the victim process to dump its core. The victim process dumps its core into the existing file, and the attacker reads the coredump from it. If the attacker can't move the file because he does not have write access to the containing directory, he can instead link the file to a directory he controls, then wait for the original link to the file to be deleted (because the kernel checks that the link count of the corefile is 1). A less reliable variant that requires D to be non-sticky works with link() and does not require deletion of the original link: link() the file into D, but then unlink() it directly before the kernel performs the link count check. On systems with protected_hardlinks=0, this variant allows an attacker to not only gain information from coredumps, but also clobber existing, victim-writable files with coredumps. (This could theoretically lead to a privilege escalation.) Signed-off-by: Jann Horn Cc: Kees Cook Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/coredump.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) commit bb304a5c6fc63d8506cd9741a3a5f35b73605625 Author: Frederic Weisbecker Date: Wed Sep 9 15:38:25 2015 -0700 kmod: handle UMH_WAIT_PROC from system unbound workqueue The UMH_WAIT_PROC handler runs in its own thread in order to make sure that waiting for the exec kernel thread completion won't block other usermodehelper queued jobs. On older workqueue implementations, worklets couldn't sleep without blocking the rest of the queue. But now the workqueue subsystem handles that. Khelper still had the older limitation due to its singlethread properties but we replaced it to system unbound workqueues. Those are affine to the current node and can block up to some number of instances. They are a good candidate to handle UMH_WAIT_PROC assuming that we have enough system unbound workers to handle lots of parallel usermodehelper jobs. Signed-off-by: Frederic Weisbecker Cc: Rik van Riel Reviewed-by: Oleg Nesterov Cc: Christoph Lameter Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kmod.c | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) commit 90f023030e26ce8f981b3e688cb79329d8d07cc3 Author: Frederic Weisbecker Date: Wed Sep 9 15:38:22 2015 -0700 kmod: use system_unbound_wq instead of khelper We need to launch the usermodehelper kernel threads with the widest affinity and this is partly why we use khelper. This workqueue has unbound properties and thus a wide affinity inherited by all its children. Now khelper also has special properties that we aren't much interested in: ordered and singlethread. There is really no need about ordering as all we do is creating kernel threads. This can be done concurrently. And singlethread is a useless limitation as well. The workqueue engine already proposes generic unbound workqueues that don't share these useless properties and handle well parallel jobs. The only worrysome specific is their affinity to the node of the current CPU. It's fine for creating the usermodehelper kernel threads but those inherit this affinity for longer jobs such as requesting modules. This patch proposes to use these node affine unbound workqueues assuming that a node is sufficient to handle several parallel usermodehelper requests. Signed-off-by: Frederic Weisbecker Cc: Rik van Riel Reviewed-by: Oleg Nesterov Cc: Christoph Lameter Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kmod.h | 2 -- init/main.c | 1 - kernel/kmod.c | 40 +++++++++++++++++----------------------- 3 files changed, 17 insertions(+), 26 deletions(-) commit b639e86bae431db3fbc9fae8d09a9bbf97b74711 Author: Frederic Weisbecker Date: Wed Sep 9 15:38:19 2015 -0700 kmod: add up-to-date explanations on the purpose of each asynchronous levels There seem to be quite some confusions on the comments, likely due to changes that came after them. Now since it's very non obvious why we have 3 levels of asynchronous code to implement usermodehelpers, it's important to comment in detail the reason of this layout. Signed-off-by: Frederic Weisbecker Cc: Rik van Riel Reviewed-by: Oleg Nesterov Cc: Christoph Lameter Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kmod.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) commit d097c0240ae8085dd39aa6ca9bd9960969b2b38e Author: Frederic Weisbecker Date: Wed Sep 9 15:38:16 2015 -0700 kmod: remove unecessary explicit wide CPU affinity setting Khelper is affine to all CPUs. Now since it creates the call_usermodehelper_exec_[a]sync() kernel threads, those inherit the wide affinity. As such explicitly forcing a wide affinity from those kernel threads is like a no-op. Just remove it. It's needless and it breaks CPU isolation users who rely on workqueue affinity tuning. Signed-off-by: Frederic Weisbecker Cc: Rik van Riel Reviewed-by: Oleg Nesterov Cc: Christoph Lameter Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kmod.c | 3 --- 1 file changed, 3 deletions(-) commit b6b50a814d0ece9c1f98f2b3b5c2a251a5c9a211 Author: Frederic Weisbecker Date: Wed Sep 9 15:38:13 2015 -0700 kmod: bunch of internal functions renames This patchset does a bunch of cleanups and converts khelper to use system unbound workqueues. The 3 first patches should be uncontroversial. The last 2 patches are debatable. Kmod creates kernel threads that perform userspace jobs and we want those to have a large affinity in order not to contend busy CPUs. This is (partly) why we use khelper which has a wide affinity that the kernel threads it create can inherit from. Now khelper is a dedicated workqueue that has singlethread properties which we aren't interested in. Hence those two debatable changes: _ We would like to use generic workqueues. System unbound workqueues are a very good candidate but they are not wide affine, only node affine. Now probably a node is enough to perform many parallel kmod jobs. _ We would like to remove the wait_for_helper kernel thread (UMH_WAIT_PROC handler) to use the workqueue. It means that if the workqueue blocks, and no other worker can take pending kmod request, we can be screwed. Now if we have 512 threads, this should be enough. This patch (of 5): Underscores on function names aren't much verbose to explain the purpose of a function. And kmod has interesting such flavours. Lets rename the following functions: * __call_usermodehelper -> call_usermodehelper_exec_work * ____call_usermodehelper -> call_usermodehelper_exec_async * wait_for_helper -> call_usermodehelper_exec_sync Signed-off-by: Frederic Weisbecker Cc: Rik van Riel Reviewed-by: Oleg Nesterov Cc: Christoph Lameter Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kmod.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 60b61a6f42f36e4fbfbc0139b7e86ce1494d2d9b Author: NeilBrown Date: Wed Sep 9 15:38:10 2015 -0700 kmod: correct documentation of return status of request_module If request_module() successfully runs modprobe, but modprobe exits with a non-zero status, then the return value from request_module() will be that (positive) error status. So the return from request_module can be: negative errno zero for success positive exit code. Signed-off-by: NeilBrown Cc: Goldwyn Rodrigues Cc: Oleg Nesterov Cc: Tejun Heo Cc: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/kmod.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit b4cc0efea4f0bfa2477c56af406cfcf3d3e58680 Author: Hin-Tak Leung Date: Wed Sep 9 15:38:07 2015 -0700 hfs: fix B-tree corruption after insertion at position 0 Fix B-tree corruption when a new record is inserted at position 0 in the node in hfs_brec_insert(). This is an identical change to the corresponding hfs b-tree code to Sergei Antonov's "hfsplus: fix B-tree corruption after insertion at position 0", to keep similar code paths in the hfs and hfsplus drivers in sync, where appropriate. Signed-off-by: Hin-Tak Leung Cc: Sergei Antonov Cc: Joe Perches Reviewed-by: Vyacheslav Dubeyko Cc: Anton Altaparmakov Cc: Al Viro Cc: Christoph Hellwig Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hfs/brec.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 7cb74be6fd827e314f81df3c5889b87e4c87c569 Author: Hin-Tak Leung Date: Wed Sep 9 15:38:04 2015 -0700 hfs,hfsplus: cache pages correctly between bnode_create and bnode_free Pages looked up by __hfs_bnode_create() (called by hfs_bnode_create() and hfs_bnode_find() for finding or creating pages corresponding to an inode) are immediately kmap()'ed and used (both read and write) and kunmap()'ed, and should not be page_cache_release()'ed until hfs_bnode_free(). This patch fixes a problem I first saw in July 2012: merely running "du" on a large hfsplus-mounted directory a few times on a reasonably loaded system would get the hfsplus driver all confused and complaining about B-tree inconsistencies, and generates a "BUG: Bad page state". Most recently, I can generate this problem on up-to-date Fedora 22 with shipped kernel 4.0.5, by running "du /" (="/" + "/home" + "/mnt" + other smaller mounts) and "du /mnt" simultaneously on two windows, where /mnt is a lightly-used QEMU VM image of the full Mac OS X 10.9: $ df -i / /home /mnt Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/fedora-root 3276800 551665 2725135 17% / /dev/mapper/fedora-home 52879360 716221 52163139 2% /home /dev/nbd0p2 4294967295 1387818 4293579477 1% /mnt After applying the patch, I was able to run "du /" (60+ times) and "du /mnt" (150+ times) continuously and simultaneously for 6+ hours. There are many reports of the hfsplus driver getting confused under load and generating "BUG: Bad page state" or other similar issues over the years. [1] The unpatched code [2] has always been wrong since it entered the kernel tree. The only reason why it gets away with it is that the kmap/memcpy/kunmap follow very quickly after the page_cache_release() so the kernel has not had a chance to reuse the memory for something else, most of the time. The current RW driver appears to have followed the design and development of the earlier read-only hfsplus driver [3], where-by version 0.1 (Dec 2001) had a B-tree node-centric approach to read_cache_page()/page_cache_release() per bnode_get()/bnode_put(), migrating towards version 0.2 (June 2002) of caching and releasing pages per inode extents. When the current RW code first entered the kernel [2] in 2005, there was an REF_PAGES conditional (and "//" commented out code) to switch between B-node centric paging to inode-centric paging. There was a mistake with the direction of one of the REF_PAGES conditionals in __hfs_bnode_create(). In a subsequent "remove debug code" commit [4], the read_cache_page()/page_cache_release() per bnode_get()/bnode_put() were removed, but a page_cache_release() was mistakenly left in (propagating the "REF_PAGES <-> !REF_PAGE" mistake), and the commented-out page_cache_release() in bnode_release() (which should be spanned by !REF_PAGES) was never enabled. References: [1]: Michael Fox, Apr 2013 http://www.spinics.net/lists/linux-fsdevel/msg63807.html ("hfsplus volume suddenly inaccessable after 'hfs: recoff %d too large'") Sasha Levin, Feb 2015 http://lkml.org/lkml/2015/2/20/85 ("use after free") https://bugs.launchpad.net/ubuntu/+source/linux/+bug/740814 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1027887 https://bugzilla.kernel.org/show_bug.cgi?id=42342 https://bugzilla.kernel.org/show_bug.cgi?id=63841 https://bugzilla.kernel.org/show_bug.cgi?id=78761 [2]: http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/\ fs/hfs/bnode.c?id=d1081202f1d0ee35ab0beb490da4b65d4bc763db commit d1081202f1d0ee35ab0beb490da4b65d4bc763db Author: Andrew Morton Date: Wed Feb 25 16:17:36 2004 -0800 [PATCH] HFS rewrite http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/\ fs/hfsplus/bnode.c?id=91556682e0bf004d98a529bf829d339abb98bbbd commit 91556682e0bf004d98a529bf829d339abb98bbbd Author: Andrew Morton Date: Wed Feb 25 16:17:48 2004 -0800 [PATCH] HFS+ support [3]: http://sourceforge.net/projects/linux-hfsplus/ http://sourceforge.net/projects/linux-hfsplus/files/Linux%202.4.x%20patch/hfsplus%200.1/ http://sourceforge.net/projects/linux-hfsplus/files/Linux%202.4.x%20patch/hfsplus%200.2/ http://linux-hfsplus.cvs.sourceforge.net/viewvc/linux-hfsplus/linux/\ fs/hfsplus/bnode.c?r1=1.4&r2=1.5 Date: Thu Jun 6 09:45:14 2002 +0000 Use buffer cache instead of page cache in bnode.c. Cache inode extents. [4]: http://git.kernel.org/cgit/linux/kernel/git/\ stable/linux-stable.git/commit/?id=a5e3985fa014029eb6795664c704953720cc7f7d commit a5e3985fa014029eb6795664c704953720cc7f7d Author: Roman Zippel Date: Tue Sep 6 15:18:47 2005 -0700 [PATCH] hfs: remove debug code Signed-off-by: Hin-Tak Leung Signed-off-by: Sergei Antonov Reviewed-by: Anton Altaparmakov Reported-by: Sasha Levin Cc: Al Viro Cc: Christoph Hellwig Cc: Vyacheslav Dubeyko Cc: Sougata Santra Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hfs/bnode.c | 9 ++++----- fs/hfsplus/bnode.c | 3 --- 2 files changed, 4 insertions(+), 8 deletions(-) commit 3725e9dd5bef376ab87d41e40c437a6b2a20eb59 Author: Jan Harkes Date: Wed Sep 9 15:38:01 2015 -0700 fs/coda: fix readlink buffer overflow Dan Carpenter discovered a buffer overflow in the Coda file system readlink code. A userspace file system daemon can return a 4096 byte result which then triggers a one byte write past the allocated readlink result buffer. This does not trigger with an unmodified Coda implementation because Coda has a 1024 byte limit for symbolic links, however other userspace file systems using the Coda kernel module could be affected. Although this is an obvious overflow, I don't think this has to be handled as too sensitive from a security perspective because the overflow is on the Coda userspace daemon side which already needs root to open Coda's kernel device and to mount the file system before we get to the point that links can be read. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Jan Harkes Reported-by: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/coda/upcall.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c5595fa2f1ce3c1a74dbd2ddc949257e80d81dc0 Author: Joe Perches Date: Wed Sep 9 15:37:58 2015 -0700 checkpatch: add constant comparison on left side test "CONST variable" checks like: if (NULL != foo) and while (0 < bar(...)) where a constant (or what appears to be a constant like an upper case identifier) is on the left of a comparison are generally preferred to be written using the constant on the right side like: if (foo != NULL) and while (bar(...) > 0) Add a test for this. Add a --fix option too, but only do it when the code is immediately surrounded by parentheses to avoid misfixing things like "(0 < bar() + constant)" Signed-off-by: Joe Perches Cc: Nicolas Morey Chaisemartin Cc: Viresh Kumar Cc: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 54507b5183cc4f8e4f1a58a312e1f30c130658b7 Author: Joe Perches Date: Wed Sep 9 15:37:55 2015 -0700 checkpatch: add __pmem to $Sparse annotations commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of persistent memory updates") added a new __pmem annotation for sparse verification. Add __pmem to the $Sparse variable so checkpatch can appropriately ignore uses of this attribute too. Signed-off-by: Joe Perches Reviewed-by: Ross Zwisler Acked-by: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 1 + 1 file changed, 1 insertion(+) commit 4e5d56bdf892e18832a6540b63ebf709966bce2a Author: Eddie Kovsky Date: Wed Sep 9 15:37:52 2015 -0700 checkpatch: fix left brace warning Using checkpatch.pl with Perl 5.22.0 generates the following warning: Unescaped left brace in regex is deprecated, passed through in regex; This patch fixes the warnings by escaping occurrences of the left brace inside the regular expression. Signed-off-by: Eddie Kovsky Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bf4daf12a9fbc818029051c97b65fbfca6366a44 Author: Joe Perches Date: Wed Sep 9 15:37:50 2015 -0700 checkpatch: avoid some commit message long line warnings Fixes: and Link: lines may exceed 75 chars in the commit log. So too can stack dump and dmesg lines and lines that seem like filenames. And Fixes: lines don't need to have a "commit" prefix before the commit id. Add exceptions for these types of lines. Signed-off-by: Joe Perches Reported-by: Paul Bolle Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) commit 6e30075742316a1d72b7e8f794f6e0bd44d774e2 Author: Joe Perches Date: Wed Sep 9 15:37:47 2015 -0700 checkpatch: emit an error on formats with 0x% Using 0x%d is wrong. Emit a message when it happens. Miscellanea: Improve the %Lu warning to match formats like %16Lu. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 7bd7e483c27d884c2f59e286e42623abba413f83 Author: Joe Perches Date: Wed Sep 9 15:37:44 2015 -0700 checkpatch: make --strict the default for drivers/staging files and patches Making --strict the default for staging may help some people submit patches without obvious defects. Signed-off-by: Joe Perches Cc: Dan Carpenter Cc: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86406b1cb7ac4fa5e7691eae5f2fb10c9af03dc3 Author: Joe Perches Date: Wed Sep 9 15:37:41 2015 -0700 checkpatch: always check block comment styles Some of the block comment tests that are used only for networking are appropriate for all patches. For example, these styles are not encouraged: /* block comment without introductory * */ and /* * block comment with line terminating */ Remove the networking specific test and add comments. There are some infrequent false positives where code is lazily commented out using /* and */ rather than using #if 0/#endif blocks like: /* case foo: case bar: */ case baz: Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 7d3a9f673e1bdb45f86d15a67e230e4a9b050850 Author: Joe Perches Date: Wed Sep 9 15:37:39 2015 -0700 checkpatch: report the right line # when using --emacs and --file commit 34d8815f9512 ("checkpatch: add --showfile to allow input via pipe to show filenames") broke the --emacs with --file option. Fix it. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 100425deeb7586c9d401f787aeab3b43a4c6a0c6 Author: Joe Perches Date: Wed Sep 9 15:37:36 2015 -0700 checkpatch: add some _destroy functions to NEEDLESS_IF tests Sergey Senozhatsky has modified several destroy functions that can now be called with NULL values. - kmem_cache_destroy() - mempool_destroy() - dma_pool_destroy() Update checkpatch to warn when those functions are preceded by an if. Update checkpatch to --fix all the calls too only when the code style form is using leading tabs. from: if (foo) (foo); to: (foo); Signed-off-by: Joe Perches Tested-by: Sergey Senozhatsky Cc: David Rientjes Cc: Julia Lawall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) commit 3e838b6c41e8ac86c992bdaaa78625faf528a578 Author: Joe Perches Date: Wed Sep 9 15:37:33 2015 -0700 checkpatch: Allow longer declaration macros Some really long declaration macros exist. For instance; DEFINE_DMA_BUF_EXPORT_INFO(exp_info); and DECLARE_DM_KCOPYD_THROTTLE_WITH_MODULE_PARM(name, description) Increase the limit from 2 words to 6 after DECLARE/DEFINE uses. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f5af480f4554aac12e002b6f5c2b04895857700 Author: Joe Perches Date: Wed Sep 9 15:37:30 2015 -0700 checkpatch: improve SUSPECT_CODE_INDENT test Many lines exist like if (foo) bar; where the tabbed indentation of the branch is not one more than the "if" line above it. checkpatch should emit a warning on those lines. Miscellenea: o Remove comments from branch blocks o Skip blank lines in block Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 9d3e3c705eb395528fd8f17208c87581b134da48 Author: Joe Perches Date: Wed Sep 9 15:37:27 2015 -0700 checkpatch: add warning on BUG/BUG_ON use Using BUG/BUG_ON crashes the kernel and is just unfriendly. Enable code that emits a warning on BUG/BUG_ON use. Make the code emit the message at WARNING level when scanning a patch and at CHECK level when scanning files so that script users don't feel an obligation to fix code that might be above their pay grade. Signed-off-by: Joe Perches Reported-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit fe043ea1205695f2224b279ac9f5cc1742d18f0b Author: Joe Perches Date: Wed Sep 9 15:37:25 2015 -0700 checkpatch: warn on bare SHA-1 commit IDs in commit logs Commit IDs should have commit descriptions too. Warn when a 12 to 40 byte SHA-1 is used in commit logs. Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/checkpatch.pl | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 6b4a35fc19a9229080dead8a9c316e8857b3e94d Author: Wang Long Date: Wed Sep 9 15:37:22 2015 -0700 lib/test_kasan.c: make kmalloc_oob_krealloc_less more correctly In kmalloc_oob_krealloc_less, I think it is better to test the size2 boundary. If we do not call krealloc, the access of position size1 will still cause out-of-bounds and access of position size2 does not. After call krealloc, the access of position size2 cause out-of-bounds. So using size2 is more correct. Signed-off-by: Wang Long Cc: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_kasan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9789d8e0cfc6b5e265d9b0aa6e86b394a6d216a1 Author: Wang Long Date: Wed Sep 9 15:37:19 2015 -0700 lib/test_kasan.c: fix a typo Signed-off-by: Wang Long Cc: Andrey Ryabinin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/test_kasan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b40bdb7fb2b8359d5dfe19a91c147465c3d0359b Author: Kees Cook Date: Wed Sep 9 15:37:16 2015 -0700 lib/string_helpers: rename "esc" arg to "only" To further clarify the purpose of the "esc" argument, rename it to "only" to reflect that it is a limit, not a list of additional characters to escape. Signed-off-by: Kees Cook Suggested-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/string_helpers.h | 14 +++++++------- lib/string_helpers.c | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) commit d89a3f7335bb5d9e572ecc287b300161200364eb Author: Kees Cook Date: Wed Sep 9 15:37:14 2015 -0700 lib/string_helpers: clarify esc arg in string_escape_mem The esc argument is used to reduce which characters will be escaped. For example, using " " with ESCAPE_SPACE will not produce any escaped spaces. Signed-off-by: Kees Cook Cc: Andy Shevchenko Cc: Rasmus Villemoes Cc: Mathias Krause Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/string_helpers.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit cdf17449af1d9b596742c260134edd6c1fac2792 Author: Linus Walleij Date: Wed Sep 9 15:37:11 2015 -0700 hexdump: do not print debug dumps for !CONFIG_DEBUG print_hex_dump_debug() is likely supposed to be analogous to pr_debug() or dev_dbg() & friends. Currently it will adhere to dynamic debug, but will not stub out prints if CONFIG_DEBUG is not set. Let's make it do the right thing, because I am tired of having my dmesg buffer full of hex dumps on production systems. Signed-off-by: Linus Walleij Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/printk.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 9bf98f168b7b004c94c766a6989071e0f858def3 Author: Pan Xinhui Date: Wed Sep 9 15:37:08 2015 -0700 lib/bitmap.c: bitmap_parselist can accept string with whitespaces on head or tail In __bitmap_parselist we can accept whitespaces on head or tail during every parsing procedure. If input has valid ranges, there is no reason to reject the user. For example, bitmap_parselist(" 1-3, 5, ", &mask, nmaskbits). After separating the string, we get " 1-3", " 5", and " ". It's possible and reasonable to accept such string as long as the parsing result is correct. Signed-off-by: Pan Xinhui Cc: Yury Norov Cc: Chris Metcalf Cc: Rasmus Villemoes Cc: Sudeep Holla Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/bitmap.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) commit d9282cb66353be502aae09aae75d05a6863eb979 Author: Pan Xinhui Date: Wed Sep 9 15:37:05 2015 -0700 lib/bitmap.c: fix a special string handling bug in __bitmap_parselist If string end with '-', for exapmle, bitmap_parselist("1,0-",&mask, nmaskbits), It is not in a valid pattern, so add a check after loop. Return -EINVAL on such condition. Signed-off-by: Pan Xinhui Cc: Yury Norov Cc: Chris Metcalf Cc: Rasmus Villemoes Cc: Sudeep Holla Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/bitmap.c | 4 ++++ 1 file changed, 4 insertions(+) commit d21c3d4d1c6b2a0b85aeae5cc774b1bacc64e5b4 Author: Pan Xinhui Date: Wed Sep 9 15:37:02 2015 -0700 lib/bitmap.c: correct a code style and do some, optimization We can avoid in-loop incrementation of ndigits. Save current totaldigits to ndigits before loop, and check ndigits against totaldigits after the loop. Signed-off-by: Pan Xinhui Cc: Yury Norov Cc: Chris Metcalf Cc: Rasmus Villemoes Cc: Sudeep Holla Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/bitmap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 774636e19ed514cdf560006813c0473409616de8 Author: Alexey Dobriyan Date: Wed Sep 9 15:36:59 2015 -0700 proc: convert to kstrto*()/kstrto*_from_user() Convert from manual allocation/copy_from_user/... to kstrto*() family which were designed for exactly that. One case can not be converted to kstrto*_from_user() to make code even more simpler because of whitespace stripping, oh well... Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/base.c | 70 ++++++++++++++++++---------------------------------------- 1 file changed, 21 insertions(+), 49 deletions(-) commit 2d2e4715a65ca7e81b292d01ae009a03ccedb9b5 Author: Alexey Dobriyan Date: Wed Sep 9 15:36:17 2015 -0700 kstrto*: accept "-0" for signed conversion strtol(3) et al accept "-0", so should we. Signed-off-by: Alexey Dobriyan Cc: David Howells Cc: Jan Kara Cc: Joel Becker Cc: Mark Fasheh Cc: Theodore Ts'o Cc: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/kstrtox.c | 2 +- lib/test-kstrtox.c | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) commit 3cdea4d71439fb5676b7334a333dab0f7b1bd2e9 Author: Joe Perches Date: Wed Sep 9 15:36:14 2015 -0700 MAINTAINERS/CREDITS: mark MaxRAID as Orphan, move Anil Ravindranath to CREDITS Anil's email address bounces and he hasn't had a signoff in over 5 years. Signed-off-by: Joe Perches Cc: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds CREDITS | 4 ++++ MAINTAINERS | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 515a9adce0f0c3d2ef20f869c12902d03851a273 Author: Jason A. Donenfeld Date: Wed Sep 9 15:36:12 2015 -0700 include/linux/printk.h: include pr_fmt in pr_debug_ratelimited The other two implementations of pr_debug_ratelimited include pr_fmt, along with every other pr_* function. But pr_debug_ratelimited forgot to add it with the CONFIG_DYNAMIC_DEBUG implementation. This patch unifies the behavior. Signed-off-by: Jason A. Donenfeld Cc: Steven Rostedt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/printk.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 52aa8536f8f41367d5f2938ad67aa87957e70010 Author: Joe Perches Date: Wed Sep 9 15:36:09 2015 -0700 kernel/cred.c: remove unnecessary kdebug atomic reads Commit e0e817392b9a ("CRED: Add some configurable debugging [try #6]") added the kdebug mechanism to this file back in 2009. The kdebug macro calls no_printk which always evaluates arguments. Most of the kdebug uses have an unnecessary call of atomic_read(&cred->usage) Make the kdebug macro do nothing by defining it with do { if (0) no_printk(...); } while (0) when not enabled. $ size kernel/cred.o* (defconfig x86-64) text data bss dec hex filename 2748 336 8 3092 c14 kernel/cred.o.new 2788 336 8 3132 c3c kernel/cred.o.old Miscellanea: o Neaten the #define kdebug macros while there Signed-off-by: Joe Perches Cc: David Howells Cc: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/cred.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 2307e1a3c0780d7b908f6809f34034a04f954806 Author: Wei Yongjun Date: Wed Sep 9 15:36:06 2015 -0700 kernel/extable.c: remove duplicated include Signed-off-by: Wei Yongjun Acked-by: Steven Rostedt Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/extable.c | 1 - 1 file changed, 1 deletion(-) commit 8b839635e73575990e92cce1f19f5b1d7febd3fa Author: Vasily Kulikov Date: Wed Sep 9 15:36:03 2015 -0700 include/linux/poison.h: remove not-used poison pointer macros Signed-off-by: Vasily Kulikov Cc: Solar Designer Cc: Thomas Gleixner Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/poison.h | 7 ------- 1 file changed, 7 deletions(-) commit 8a5e5e02fc83aaf67053ab53b359af08c6c49aaf Author: Vasily Kulikov Date: Wed Sep 9 15:36:00 2015 -0700 include/linux/poison.h: fix LIST_POISON{1,2} offset Poison pointer values should be small enough to find a room in non-mmap'able/hardly-mmap'able space. E.g. on x86 "poison pointer space" is located starting from 0x0. Given unprivileged users cannot mmap anything below mmap_min_addr, it should be safe to use poison pointers lower than mmap_min_addr. The current poison pointer values of LIST_POISON{1,2} might be too big for mmap_min_addr values equal or less than 1 MB (common case, e.g. Ubuntu uses only 0x10000). There is little point to use such a big value given the "poison pointer space" below 1 MB is not yet exhausted. Changing it to a smaller value solves the problem for small mmap_min_addr setups. The values are suggested by Solar Designer: http://www.openwall.com/lists/oss-security/2015/05/02/6 Signed-off-by: Vasily Kulikov Cc: Solar Designer Cc: Thomas Gleixner 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 ecf1a3dfff22bd165532a3af64f32697ae97c1ef Author: Waiman Long Date: Wed Sep 9 15:35:57 2015 -0700 proc: change proc_subdir_lock to a rwlock The proc_subdir_lock spinlock is used to allow only one task to make change to the proc directory structure as well as looking up information in it. However, the information lookup part can actually be entered by more than one task as the pde_get() and pde_put() reference count update calls in the critical sections are atomic increment and decrement respectively and so are safe with concurrent updates. The x86 architecture has already used qrwlock which is fair and other architectures like ARM are in the process of switching to qrwlock. So unfairness shouldn't be a concern in that conversion. This patch changed the proc_subdir_lock to a rwlock in order to enable concurrent lookup. The following functions were modified to take a write lock: - proc_register() - remove_proc_entry() - remove_proc_subtree() The following functions were modified to take a read lock: - xlate_proc_name() - proc_lookup_de() - proc_readdir_de() A parallel /proc filesystem search with the "find" command (1000 threads) was run on a 4-socket Haswell-EX box (144 threads). Before the patch, the parallel search took about 39s. After the patch, the parallel find took only 25s, a saving of about 14s. The micro-benchmark that I used was artificial, but it was used to reproduce an exit hanging problem that I saw in real application. In fact, only allow one task to do a lookup seems too limiting to me. Signed-off-by: Waiman Long Acked-by: "Eric W. Biederman" Cc: Alexey Dobriyan Cc: Nicolas Dichtel Cc: Al Viro Cc: Scott J Norton Cc: Douglas Hatch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/generic.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit bdb4d100afe9818aebd1d98ced575c5ef143456c Author: Calvin Owens Date: Wed Sep 9 15:35:54 2015 -0700 procfs: always expose /proc//map_files/ and make it readable Currently, /proc//map_files/ is restricted to CAP_SYS_ADMIN, and is only exposed if CONFIG_CHECKPOINT_RESTORE is set. Each mapped file region gets a symlink in /proc//map_files/ corresponding to the virtual address range at which it is mapped. The symlinks work like the symlinks in /proc//fd/, so you can follow them to the backing file even if that backing file has been unlinked. Currently, files which are mapped, unlinked, and closed are impossible to stat() from userspace. Exposing /proc//map_files/ closes this functionality "hole". Not being able to stat() such files makes noticing and explicitly accounting for the space they use on the filesystem impossible. You can work around this by summing up the space used by every file in the filesystem and subtracting that total from what statfs() tells you, but that obviously isn't great, and it becomes unworkable once your filesystem becomes large enough. This patch moves map_files/ out from behind CONFIG_CHECKPOINT_RESTORE, and adjusts the permissions enforced on it as follows: * proc_map_files_lookup() * proc_map_files_readdir() * map_files_d_revalidate() Remove the CAP_SYS_ADMIN restriction, leaving only the current restriction requiring PTRACE_MODE_READ. The information made available to userspace by these three functions is already available in /proc/PID/maps with MODE_READ, so I don't see any reason to limit them any further (see below for more detail). * proc_map_files_follow_link() This stub has been added, and requires that the user have CAP_SYS_ADMIN in order to follow the links in map_files/, since there was concern on LKML both about the potential for bypassing permissions on ancestor directories in the path to files pointed to, and about what happens with more exotic memory mappings created by some drivers (ie dma-buf). In older versions of this patch, I changed every permission check in the four functions above to enforce MODE_ATTACH instead of MODE_READ. This was an oversight on my part, and after revisiting the discussion it seems that nobody was concerned about anything outside of what is made possible by ->follow_link(). So in this version, I've left the checks for PTRACE_MODE_READ as-is. [akpm@linux-foundation.org: catch up with concurrent proc_pid_follow_link() changes] Signed-off-by: Calvin Owens Reviewed-by: Kees Cook Cc: Andy Lutomirski Cc: Cyrill Gorcunov Cc: Joe Perches Cc: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/base.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) commit d3691d2c6d3e72624c987bbef6f322631bbb2d5d Author: Vladimir Davydov Date: Wed Sep 9 15:35:51 2015 -0700 proc: add cond_resched to /proc/kpage* read/write loop Reading/writing a /proc/kpage* file may take long on machines with a lot of RAM installed. Signed-off-by: Vladimir Davydov Suggested-by: Andres Lagar-Cavilla Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/page.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f074a8f49eb87cde95ac9d040ad5e7ea4f029738 Author: Vladimir Davydov Date: Wed Sep 9 15:35:48 2015 -0700 proc: export idle flag via kpageflags As noted by Minchan, a benefit of reading idle flag from /proc/kpageflags is that one can easily filter dirty and/or unevictable pages while estimating the size of unused memory. Note that idle flag read from /proc/kpageflags may be stale in case the page was accessed via a PTE, because it would be too costly to iterate over all page mappings on each /proc/kpageflags read to provide an up-to-date value. To make sure the flag is up-to-date one has to read /sys/kernel/mm/page_idle/bitmap first. Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/pagemap.txt | 7 +++++++ fs/proc/page.c | 3 +++ include/uapi/linux/kernel-page-flags.h | 1 + 3 files changed, 11 insertions(+) commit 33c3fc71c8cfa3cc3a98beaa901c069c177dc295 Author: Vladimir Davydov Date: Wed Sep 9 15:35:45 2015 -0700 mm: introduce idle page tracking Knowing the portion of memory that is not used by a certain application or memory cgroup (idle memory) can be useful for partitioning the system efficiently, e.g. by setting memory cgroup limits appropriately. Currently, the only means to estimate the amount of idle memory provided by the kernel is /proc/PID/{clear_refs,smaps}: the user can clear the access bit for all pages mapped to a particular process by writing 1 to clear_refs, wait for some time, and then count smaps:Referenced. However, this method has two serious shortcomings: - it does not count unmapped file pages - it affects the reclaimer logic To overcome these drawbacks, this patch introduces two new page flags, Idle and Young, and a new sysfs file, /sys/kernel/mm/page_idle/bitmap. A page's Idle flag can only be set from userspace by setting bit in /sys/kernel/mm/page_idle/bitmap at the offset corresponding to the page, and it is cleared whenever the page is accessed either through page tables (it is cleared in page_referenced() in this case) or using the read(2) system call (mark_page_accessed()). Thus by setting the Idle flag for pages of a particular workload, which can be found e.g. by reading /proc/PID/pagemap, waiting for some time to let the workload access its working set, and then reading the bitmap file, one can estimate the amount of pages that are not used by the workload. The Young page flag is used to avoid interference with the memory reclaimer. A page's Young flag is set whenever the Access bit of a page table entry pointing to the page is cleared by writing to the bitmap file. If page_referenced() is called on a Young page, it will add 1 to its return value, therefore concealing the fact that the Access bit was cleared. Note, since there is no room for extra page flags on 32 bit, this feature uses extended page flags when compiled on 32 bit. [akpm@linux-foundation.org: fix build] [akpm@linux-foundation.org: kpageidle requires an MMU] [akpm@linux-foundation.org: decouple from page-flags rework] Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/00-INDEX | 2 + Documentation/vm/idle_page_tracking.txt | 98 ++++++++++++++ fs/proc/page.c | 3 + fs/proc/task_mmu.c | 5 +- include/linux/mmu_notifier.h | 2 + include/linux/page-flags.h | 11 ++ include/linux/page_ext.h | 4 + include/linux/page_idle.h | 110 +++++++++++++++ mm/Kconfig | 12 ++ mm/Makefile | 1 + mm/debug.c | 4 + mm/huge_memory.c | 12 +- mm/migrate.c | 6 + mm/page_ext.c | 4 + mm/page_idle.c | 232 ++++++++++++++++++++++++++++++++ mm/rmap.c | 6 + mm/swap.c | 3 + 17 files changed, 512 insertions(+), 3 deletions(-) commit 1d7715c676a1566c2e4c3e77d16b1f9bb4909025 Author: Vladimir Davydov Date: Wed Sep 9 15:35:41 2015 -0700 mmu-notifier: add clear_young callback In the scope of the idle memory tracking feature, which is introduced by the following patch, we need to clear the referenced/accessed bit not only in primary, but also in secondary ptes. The latter is required in order to estimate wss of KVM VMs. At the same time we want to avoid flushing tlb, because it is quite expensive and it won't really affect the final result. Currently, there is no function for clearing pte young bit that would meet our requirements, so this patch introduces one. To achieve that we have to add a new mmu-notifier callback, clear_young, since there is no method for testing-and-clearing a secondary pte w/o flushing tlb. The new method is not mandatory and currently only implemented by KVM. Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Acked-by: Paolo Bonzini Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmu_notifier.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ mm/mmu_notifier.c | 17 +++++++++++++++++ virt/kvm/kvm_main.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) commit 80ae2fdceba8313b0433f899bdd9c6c463291a17 Author: Vladimir Davydov Date: Wed Sep 9 15:35:38 2015 -0700 proc: add kpagecgroup file /proc/kpagecgroup contains a 64-bit inode number of the memory cgroup each page is charged to, indexed by PFN. Having this information is useful for estimating a cgroup working set size. The file is present if CONFIG_PROC_PAGE_MONITOR && CONFIG_MEMCG. Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/pagemap.txt | 6 ++++- fs/proc/page.c | 53 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) commit e993d905c81e2c0f669f2f8e8327df86738baebe Author: Vladimir Davydov Date: Wed Sep 9 15:35:35 2015 -0700 memcg: zap try_get_mem_cgroup_from_page It is only used in mem_cgroup_try_charge, so fold it in and zap it. Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 9 +-------- mm/memcontrol.c | 48 ++++++++++++---------------------------------- 2 files changed, 13 insertions(+), 44 deletions(-) commit 94a59fb36ee91b3f977a9b914ec701efe40041de Author: Vladimir Davydov Date: Wed Sep 9 15:35:31 2015 -0700 hwpoison: use page_cgroup_ino for filtering by memcg Hwpoison allows to filter pages by memory cgroup ino. Currently, it calls try_get_mem_cgroup_from_page to obtain the cgroup from a page and then its ino using cgroup_ino, but now we have a helper method for that, page_cgroup_ino, so use it instead. This patch also loosens the hwpoison memcg filter dependency rules - it makes it depend on CONFIG_MEMCG instead of CONFIG_MEMCG_SWAP, because hwpoison memcg filter does not require anything (nor it used to) from CONFIG_MEMCG_SWAP side. Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hwpoison-inject.c | 5 +---- mm/memory-failure.c | 16 ++-------------- 2 files changed, 3 insertions(+), 18 deletions(-) commit 2fc045247089ad4ed611ec20cc3a736c0212bf1a Author: Vladimir Davydov Date: Wed Sep 9 15:35:28 2015 -0700 memcg: add page_cgroup_ino helper This patchset introduces a new user API for tracking user memory pages that have not been used for a given period of time. The purpose of this is to provide the userspace with the means of tracking a workload's working set, i.e. the set of pages that are actively used by the workload. Knowing the working set size can be useful for partitioning the system more efficiently, e.g. by tuning memory cgroup limits appropriately, or for job placement within a compute cluster. ==== USE CASES ==== The unified cgroup hierarchy has memory.low and memory.high knobs, which are defined as the low and high boundaries for the workload working set size. However, the working set size of a workload may be unknown or change in time. With this patch set, one can periodically estimate the amount of memory unused by each cgroup and tune their memory.low and memory.high parameters accordingly, therefore optimizing the overall memory utilization. Another use case is balancing workloads within a compute cluster. Knowing how much memory is not really used by a workload unit may help take a more optimal decision when considering migrating the unit to another node within the cluster. Also, as noted by Minchan, this would be useful for per-process reclaim (https://lwn.net/Articles/545668/). With idle tracking, we could reclaim idle pages only by smart user memory manager. ==== USER API ==== The user API consists of two new files: * /sys/kernel/mm/page_idle/bitmap. This file implements a bitmap where each bit corresponds to a page, indexed by PFN. When the bit is set, the corresponding page is idle. A page is considered idle if it has not been accessed since it was marked idle. To mark a page idle one should set the bit corresponding to the page by writing to the file. A value written to the file is OR-ed with the current bitmap value. Only user memory pages can be marked idle, for other page types input is silently ignored. Writing to this file beyond max PFN results in the ENXIO error. Only available when CONFIG_IDLE_PAGE_TRACKING is set. This file can be used to estimate the amount of pages that are not used by a particular workload as follows: 1. mark all pages of interest idle by setting corresponding bits in the /sys/kernel/mm/page_idle/bitmap 2. wait until the workload accesses its working set 3. read /sys/kernel/mm/page_idle/bitmap and count the number of bits set * /proc/kpagecgroup. This file contains a 64-bit inode number of the memory cgroup each page is charged to, indexed by PFN. Only available when CONFIG_MEMCG is set. This file can be used to find all pages (including unmapped file pages) accounted to a particular cgroup. Using /sys/kernel/mm/page_idle/bitmap, one can then estimate the cgroup working set size. For an example of using these files for estimating the amount of unused memory pages per each memory cgroup, please see the script attached below. ==== REASONING ==== The reason to introduce the new user API instead of using /proc/PID/{clear_refs,smaps} is that the latter has two serious drawbacks: - it does not count unmapped file pages - it affects the reclaimer logic The new API attempts to overcome them both. For more details on how it is achieved, please see the comment to patch 6. ==== PATCHSET STRUCTURE ==== The patch set is organized as follows: - patch 1 adds page_cgroup_ino() helper for the sake of /proc/kpagecgroup and patches 2-3 do related cleanup - patch 4 adds /proc/kpagecgroup, which reports cgroup ino each page is charged to - patch 5 introduces a new mmu notifier callback, clear_young, which is a lightweight version of clear_flush_young; it is used in patch 6 - patch 6 implements the idle page tracking feature, including the userspace API, /sys/kernel/mm/page_idle/bitmap - patch 7 exports idle flag via /proc/kpageflags ==== SIMILAR WORKS ==== Originally, the patch for tracking idle memory was proposed back in 2011 by Michel Lespinasse (see http://lwn.net/Articles/459269/). The main difference between Michel's patch and this one is that Michel implemented a kernel space daemon for estimating idle memory size per cgroup while this patch only provides the userspace with the minimal API for doing the job, leaving the rest up to the userspace. However, they both share the same idea of Idle/Young page flags to avoid affecting the reclaimer logic. ==== PERFORMANCE EVALUATION ==== SPECjvm2008 (https://www.spec.org/jvm2008/) was used to evaluate the performance impact introduced by this patch set. Three runs were carried out: - base: kernel without the patch - patched: patched kernel, the feature is not used - patched-active: patched kernel, 1 minute-period daemon is used for tracking idle memory For tracking idle memory, idlememstat utility was used: https://github.com/locker/idlememstat testcase base patched patched-active compiler 537.40 ( 0.00)% 532.26 (-0.96)% 538.31 ( 0.17)% compress 305.47 ( 0.00)% 301.08 (-1.44)% 300.71 (-1.56)% crypto 284.32 ( 0.00)% 282.21 (-0.74)% 284.87 ( 0.19)% derby 411.05 ( 0.00)% 413.44 ( 0.58)% 412.07 ( 0.25)% mpegaudio 189.96 ( 0.00)% 190.87 ( 0.48)% 189.42 (-0.28)% scimark.large 46.85 ( 0.00)% 46.41 (-0.94)% 47.83 ( 2.09)% scimark.small 412.91 ( 0.00)% 415.41 ( 0.61)% 421.17 ( 2.00)% serial 204.23 ( 0.00)% 213.46 ( 4.52)% 203.17 (-0.52)% startup 36.76 ( 0.00)% 35.49 (-3.45)% 35.64 (-3.05)% sunflow 115.34 ( 0.00)% 115.08 (-0.23)% 117.37 ( 1.76)% xml 620.55 ( 0.00)% 619.95 (-0.10)% 620.39 (-0.03)% composite 211.50 ( 0.00)% 211.15 (-0.17)% 211.67 ( 0.08)% time idlememstat: 17.20user 65.16system 2:15:23elapsed 1%CPU (0avgtext+0avgdata 8476maxresident)k 448inputs+40outputs (1major+36052minor)pagefaults 0swaps ==== SCRIPT FOR COUNTING IDLE PAGES PER CGROUP ==== #! /usr/bin/python # import os import stat import errno import struct CGROUP_MOUNT = "/sys/fs/cgroup/memory" BUFSIZE = 8 * 1024 # must be multiple of 8 def get_hugepage_size(): with open("/proc/meminfo", "r") as f: for s in f: k, v = s.split(":") if k == "Hugepagesize": return int(v.split()[0]) * 1024 PAGE_SIZE = os.sysconf("SC_PAGE_SIZE") HUGEPAGE_SIZE = get_hugepage_size() def set_idle(): f = open("/sys/kernel/mm/page_idle/bitmap", "wb", BUFSIZE) while True: try: f.write(struct.pack("Q", pow(2, 64) - 1)) except IOError as err: if err.errno == errno.ENXIO: break raise f.close() def count_idle(): f_flags = open("/proc/kpageflags", "rb", BUFSIZE) f_cgroup = open("/proc/kpagecgroup", "rb", BUFSIZE) with open("/sys/kernel/mm/page_idle/bitmap", "rb", BUFSIZE) as f: while f.read(BUFSIZE): pass # update idle flag idlememsz = {} while True: s1, s2 = f_flags.read(8), f_cgroup.read(8) if not s1 or not s2: break flags, = struct.unpack('Q', s1) cgino, = struct.unpack('Q', s2) unevictable = (flags >> 18) & 1 huge = (flags >> 22) & 1 idle = (flags >> 25) & 1 if idle and not unevictable: idlememsz[cgino] = idlememsz.get(cgino, 0) + \ (HUGEPAGE_SIZE if huge else PAGE_SIZE) f_flags.close() f_cgroup.close() return idlememsz if __name__ == "__main__": print "Setting the idle flag for each page..." set_idle() raw_input("Wait until the workload accesses its working set, " "then press Enter") print "Counting idle pages..." idlememsz = count_idle() for dir, subdirs, files in os.walk(CGROUP_MOUNT): ino = os.stat(dir)[stat.ST_INO] print dir + ": " + str(idlememsz.get(ino, 0) / 1024) + " kB" ==== END SCRIPT ==== This patch (of 8): Add page_cgroup_ino() helper to memcg. This function returns the inode number of the closest online ancestor of the memory cgroup a page is charged to. It is required for exporting information about which page is charged to which cgroup to userspace, which will be introduced by a following patch. Signed-off-by: Vladimir Davydov Reviewed-by: Andres Lagar-Cavilla Cc: Minchan Kim Cc: Raghavendra K T Cc: Johannes Weiner Cc: Michal Hocko Cc: Greg Thelen Cc: Michel Lespinasse Cc: David Rientjes Cc: Pavel Emelyanov Cc: Cyrill Gorcunov Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 1 + mm/memcontrol.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) commit 9c4c5ef3760470cbf8bf408a173d1b2fdba065b1 Author: Dan Streetman Date: Wed Sep 9 15:35:25 2015 -0700 zswap: update docs for runtime-changeable attributes Change the Documentation/vm/zswap.txt doc to indicate that the "zpool" and "compressor" params are now changeable at runtime. Signed-off-by: Dan Streetman Cc: Seth Jennings Cc: Sergey Senozhatsky Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/zswap.txt | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) commit 90b0fc26d5dbe21c7a21668320b276af9b2281d7 Author: Dan Streetman Date: Wed Sep 9 15:35:21 2015 -0700 zswap: change zpool/compressor at runtime Update the zpool and compressor parameters to be changeable at runtime. When changed, a new pool is created with the requested zpool/compressor, and added as the current pool at the front of the pool list. Previous pools remain in the list only to remove existing compressed pages from. The old pool(s) are removed once they become empty. Signed-off-by: Dan Streetman Acked-by: Seth Jennings Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zswap.c | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 129 insertions(+), 13 deletions(-) commit f1c54846ee4504d89b59b04d870831db4046b478 Author: Dan Streetman Date: Wed Sep 9 15:35:19 2015 -0700 zswap: dynamic pool creation Add dynamic creation of pools. Move the static crypto compression per-cpu transforms into each pool. Add a pointer to zswap_entry to the pool it's in. This is required by the following patch which enables changing the zswap zpool and compressor params at runtime. [akpm@linux-foundation.org: fix merge snafus] Signed-off-by: Dan Streetman Acked-by: Seth Jennings Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zswap.c | 548 +++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 405 insertions(+), 143 deletions(-) commit 3f0e131221eb951c45c93d1cce9db73889be2a5e Author: Dan Streetman Date: Wed Sep 9 15:35:16 2015 -0700 zpool: add zpool_has_pool() This series makes creation of the zpool and compressor dynamic, so that they can be changed at runtime. This makes using/configuring zswap easier, as before this zswap had to be configured at boot time, using boot params. This uses a single list to track both the zpool and compressor together, although Seth had mentioned an alternative which is to track the zpools and compressors using separate lists. In the most common case, only a single zpool and single compressor, using one list is slightly simpler than using two lists, and for the uncommon case of multiple zpools and/or compressors, using one list is slightly less simple (and uses slightly more memory, probably) than using two lists. This patch (of 4): Add zpool_has_pool() function, indicating if the specified type of zpool is available (i.e. zsmalloc or zbud). This allows checking if a pool is available, without actually trying to allocate it, similar to crypto_has_alg(). This is used by a following patch to zswap that enables the dynamic runtime creation of zswap zpools. Signed-off-by: Dan Streetman Acked-by: Seth Jennings Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/zpool.h | 2 ++ mm/zpool.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit e11fc21e756e662e465cac3da6547d438d0b1446 Author: Grazvydas Ignotas Date: Sat Sep 5 02:32:34 2015 +0300 twl4030_charger: fix another compile error When CONFIG_CHARGER_TWL4030=y and CONFIG_TWL4030_MADC=m we get a compile error: drivers/built-in.o: In function `twl4030_charger_update_current': twl4030_charger.c:(.text+0x504681): undefined reference to `twl4030_get_madc_conversion' Use IS_REACHABLE to fix it. Cc: NeilBrown Reported-by: Randy Dunlap Signed-off-by: Grazvydas Ignotas Acked-by: Tony Lindgren Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aefc574bbbbe74bb891ba392d98f2d59a417c774 Author: Sebastian Reichel Date: Thu Sep 10 10:00:55 2015 +0200 Revert "twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node" Revert commit 3fc3895e4fe17ee92ae1d1bb9f04da6069e8c370, since it introduced a boot failure on some OMAP platforms. Reported-by: Kevin Hilman Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 30059d494a72603d066baf55c748803df968aa08 Author: Chris Metcalf Date: Wed Apr 29 13:07:38 2015 -0400 tile: use global strscpy() rather than private copy Now that strscpy() is a standard API, remove the local copy. Signed-off-by: Chris Metcalf arch/tile/gxio/mpipe.c | 33 ++++----------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) commit 30035e45753b708e7d47a98398500ca005e02b86 Author: Chris Metcalf Date: Wed Apr 29 12:52:04 2015 -0400 string: provide strscpy() The strscpy() API is intended to be used instead of strlcpy(), and instead of most uses of strncpy(). - Unlike strlcpy(), it doesn't read from memory beyond (src + size). - Unlike strlcpy() or strncpy(), the API provides an easy way to check for destination buffer overflow: an -E2BIG error return value. - The provided implementation is robust in the face of the source buffer being asynchronously changed during the copy, unlike the current implementation of strlcpy(). - Unlike strncpy(), the destination buffer will be NUL-terminated if the string in the source buffer is too long. - Also unlike strncpy(), the destination buffer will not be updated beyond the NUL termination, avoiding strncpy's behavior of zeroing the entire tail end of the destination buffer. (A memset() after the strscpy() can be used if this behavior is desired.) - The implementation should be reasonably performant on all platforms since it uses the asm/word-at-a-time.h API rather than simple byte copy. Kernel-to-kernel string copy is not considered to be performance critical in any case. Signed-off-by: Chris Metcalf include/linux/string.h | 3 ++ lib/string.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) commit 135919a3a80565070b9645009e65f73e72c661c0 Author: Len Brown Date: Wed Sep 9 13:35:05 2015 -0400 intel_idle: Skylake Client Support - updated Addition of PC9 state, and minor tweaks to existing PC6 and PC8 states. Signed-off-by: Len Brown drivers/idle/intel_idle.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 30927520dbae297182990bb21d08762bcc35ce1d Author: Eric Dumazet Date: Wed Sep 9 21:55:07 2015 -0700 tcp_cubic: better follow cubic curve after idle period Jana Iyengar found an interesting issue on CUBIC : The epoch is only updated/reset initially and when experiencing losses. The delta "t" of now - epoch_start can be arbitrary large after app idle as well as the bic_target. Consequentially the slope (inverse of ca->cnt) would be really large, and eventually ca->cnt would be lower-bounded in the end to 2 to have delayed-ACK slow-start behavior. This particularly shows up when slow_start_after_idle is disabled as a dangerous cwnd inflation (1.5 x RTT) after few seconds of idle time. Jana initial fix was to reset epoch_start if app limited, but Neal pointed out it would ask the CUBIC algorithm to recalculate the curve so that we again start growing steeply upward from where cwnd is now (as CUBIC does just after a loss). Ideally we'd want the cwnd growth curve to be the same shape, just shifted later in time by the amount of the idle period. Reported-by: Jana Iyengar Signed-off-by: Eric Dumazet Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Cc: Stephen Hemminger Cc: Sangtae Ha Cc: Lawrence Brakmo Signed-off-by: David S. Miller net/ipv4/tcp_cubic.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 05c5a46d71f621df620fbabbd7758ee1b44575ad Author: Neal Cardwell Date: Wed Sep 9 21:54:37 2015 -0700 tcp: generate CA_EVENT_TX_START on data frames Issuing a CC TX_START event on control frames like pure ACK is a waste of time, as a CC should not care. Following patch needs this change, as we want CUBIC to properly track idle time at a low cost, with a single TX_START being generated. Yuchung might slightly refine the condition triggering TX_START on a followup patch. Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: Yuchung Cheng Cc: Jana Iyengar Cc: Stephen Hemminger Cc: Sangtae Ha Cc: Lawrence Brakmo Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 32a844056fd43dda647e1c3c6b9983bdfa04d17d Author: Wei Liu Date: Thu Sep 10 11:18:58 2015 +0100 xen-netfront: respect user provided max_queues Originally that parameter was always reset to num_online_cpus during module initialisation, which renders it useless. The fix is to only set max_queues to num_online_cpus when user has not provided a value. Signed-off-by: Wei Liu Cc: David Vrabel Reviewed-by: David Vrabel Tested-by: David Vrabel Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 4c82ac3c37363e8c4ded6a5fe1ec5fa756b34df3 Author: Wei Liu Date: Thu Sep 10 11:18:57 2015 +0100 xen-netback: respect user provided max_queues Originally that parameter was always reset to num_online_cpus during module initialisation, which renders it useless. The fix is to only set max_queues to num_online_cpus when user has not provided a value. Reported-by: Johnny Strom Signed-off-by: Wei Liu Reviewed-by: David Vrabel Acked-by: Ian Campbell Signed-off-by: David S. Miller drivers/net/xen-netback/netback.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 420203204eada39cfe0e8eb65e609da7b209cf33 Author: Corinna Vinschen Date: Thu Sep 10 10:47:35 2015 +0200 r8169: Fix sleeping function called during get_stats64, v2 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104031 Fixes: 6e85d5ad36a26debc23a9a865c029cbe242b2dc8 Based on the discussion starting at http://www.spinics.net/lists/netdev/msg342193.html Tested locally on RTL8168evl/8111evl with various concurrent processes accessing /proc/net/dev while changing the link state as well as removing/reloading the r8169 module. Signed-off-by: Corinna Vinschen Tested-by: poma Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 137 ++++++++++++++--------------------- 1 file changed, 54 insertions(+), 83 deletions(-) commit 85b4e4eb2f9ac29ee8ec47f1f055f251cb251a3c Author: Rasmus Villemoes Date: Thu Sep 10 00:08:45 2015 +0200 wmi: Remove private %pUL implementation The work performed by wmi_gtoa is equivalent to simply sprintf(out, "%pUL", in), so one could replace its body by this. However, most users feed the result directly as a %s argument to some other function which also understands the %p extensions (they all ultimately use vsnprintf), so we can eliminate some stack buffers and quite a bit of code by just using %pUL directly. In wmi_dev_uevent I'm not sure whether there's room for a nul-terminator in env->buf, so I've just replaced wmi_gtoa with the equivalent sprintf call. Signed-off-by: Rasmus Villemoes Signed-off-by: Darren Hart drivers/platform/x86/wmi.c | 51 ++++++---------------------------------------- 1 file changed, 6 insertions(+), 45 deletions(-) commit 824257857fd81f5e749831ff9cd63566b5a86abe Author: Gaurav K Singh Date: Mon Aug 3 15:45:32 2015 +0530 drm/i915: Allow DSI dual link to be configured on any pipe Just like single link MIPI panels, similarly for dual link panels, pipe to be configured is based on the DVO port from VBT Block 2. In hardware, Port A is mapped with Pipe A and Port C is mapped with Pipe B. This issue got introduced in - commit 7e9804fdcffc650515c60f524b8b2076ee59e710 Author: Jani Nikula Date: Fri Jan 16 14:27:23 2015 +0200 drm/i915/dsi: add drm mipi dsi host support Cc: stable@vger.kernel.org # v4.0 Signed-off-by: Gaurav K Singh Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dsi.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 58590c14d80defc94e900308a9d8fa55284de6f2 Author: Ville Syrjälä Date: Tue Sep 8 21:05:12 2015 +0300 drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS If one disables DDR DVFS in the BIOS, Punit will apparently ignores all DDR DVFS request. Currently we assume that DDR DVFS is always operational, which leads to errors in dmesg when the DDR DVFS requests time out. Fix the problem by gently prodding Punit during driver load to find out whether it will respond to DDR DVFS requests. If the request times out, we assume that DDR DVFS has been permanenly disabled in the BIOS and no longer perster the Punit about it. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91629 Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Tested-by: Clint Taylor Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/intel_pm.c | 42 ++++++++++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 13 deletions(-) commit 85e0a0f21a14bfd9145422a6a627c3df47101bd8 Author: Filipe Manana Date: Thu Sep 10 10:36:06 2015 +0100 Btrfs: remove unnecessary locking of cleaner_mutex to avoid deadlock After commmit e44163e17796 ("btrfs: explictly delete unused block groups in close_ctree and ro-remount"), added in the 4.3 merge window, we have calls to btrfs_delete_unused_bgs() while holding the cleaner_mutex. This can cause a deadlock with a concurrent block group relocation (when a filesystem balance or shrink operation is in progress for example) because btrfs_delete_unused_bgs() locks delete_unused_bgs_mutex and the relocation path locks first delete_unused_bgs_mutex and then it locks cleaner_mutex, resulting in a classic ABBA deadlock: CPU 0 CPU 1 lock fs_info->cleaner_mutex __btrfs_balance() || btrfs_shrink_device() lock fs_info->delete_unused_bgs_mutex btrfs_relocate_chunk() btrfs_relocate_block_group() lock fs_info->cleaner_mutex btrfs_delete_unused_bgs() lock fs_info->delete_unused_bgs_mutex Fix this by not taking the cleaner_mutex before calling btrfs_delete_unused_bgs() because it's no longer needed after commit 67c5e7d464bc ("Btrfs: fix race between balance and unused block group deletion"). The mutex fs_info->delete_unused_bgs_mutex, the spinlock fs_info->unused_bgs_lock and a block group's spinlock are enough to get correct serialization between tasks running relocation and unused block group deletion (as well as between multiple tasks concurrently calling btrfs_delete_unused_bgs()). This issue was discussed (in the mailing list) during the review of the patch titled "btrfs: explictly delete unused block groups in close_ctree and ro-remount" and it was agreed that acquiring the cleaner mutex had to be dropped after the patch titled "Btrfs: fix race between balance and unused block group deletion" got merged (both patches were submitted at about the same time, but one landed in kernel 4.2 and the other in the 4.3 merge window). Signed-off-by: Filipe Manana fs/btrfs/disk-io.c | 2 -- fs/btrfs/super.c | 2 -- 2 files changed, 4 deletions(-) commit 3a0e27d84bb9abac5e39dc71706768a88c72cb71 Author: Arnaud Pouliquen Date: Thu Sep 10 09:45:55 2015 +0200 ASoC: sti: check return of of_property_read Add check on of_property_read to return error when DT required property is not defined. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif_player.c | 14 ++++++++++---- sound/soc/sti/uniperif_reader.c | 6 +++++- 2 files changed, 15 insertions(+), 5 deletions(-) commit d630526d0aa6acc0868dae892b1febda72029a3e Author: Alexandre Belloni Date: Thu Sep 10 10:19:52 2015 +0200 spi: atmel: remove warning when !CONFIG_PM_SLEEP When CONFIG_PM is defined but not CONFIG_PM_SLEEP (this happens when CONFIG_SUSPEND is not defined), there is the following warning: drivers/spi/spi-atmel.c:1723:12: warning: ‘atmel_spi_suspend’ defined but not used [-Wunused-function] drivers/spi/spi-atmel.c:1741:12: warning: ‘atmel_spi_resume’ defined but not used [-Wunused-function] Enclose both atmel_spi_suspend and atmel_spi_resume in #ifdef CONFIG_PM_SLEEP/#endif to solve that. Signed-off-by: Alexandre Belloni Signed-off-by: Mark Brown drivers/spi/spi-atmel.c | 2 ++ 1 file changed, 2 insertions(+) commit 2a3fffd45822070309bcf0b1e1dae624d633824a Author: Martin Sperl Date: Thu Sep 10 09:32:14 2015 +0000 spi: bcm2835: BUG: fix wrong use of PAGE_MASK There is a bug in the alignment checking of transfers, that results in DMA not being used for un-aligned transfers that do not cross page-boundries, which is valid. This is due to a missconception of the meaning PAGE_MASK when implementing that check originally - (PAGE_SIZE - 1) should have been used instead. Also fixes a copy/paste error. Reported-by: Signed-off-by: Martin Sperl Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-bcm2835.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9da75de030bb6e49475ef37c8495d07e98cfeb33 Author: LABBE Corentin Date: Wed Sep 9 14:27:07 2015 +0200 crypto: sunxi-ss - Fix a possible driver hang with ciphers The sun4i_ss_opti_poll function cipher data until the output miter have a length of 0. If the crypto API client, give more SGs than necessary this could result in an infinite loop. Fix it by checking for remaining bytes, just like sun4i_ss_cipher_poll(). Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/sunxi-ss/sun4i-ss-cipher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f1ab428711358fbb747ba392c3448462494e6c6a Author: Michael Ellerman Date: Wed Sep 9 18:22:35 2015 +1000 crypto: vmx - VMX crypto should depend on CONFIG_VSX This code uses FP (floating point), Altivec and VSX (Vector-Scalar Extension). It can just depend on CONFIG_VSX though, because that already depends on FP and Altivec. Otherwise we get lots of link errors such as: drivers/built-in.o: In function `.p8_aes_setkey': aes.c:(.text+0x2d325c): undefined reference to `.enable_kernel_altivec' aes.c:(.text+0x2d326c): undefined reference to `.enable_kernel_vsx' Signed-off-by: Michael Ellerman Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 982b0b2dd590c00f089fc6fe915bd0cb302a7f5c Author: Takashi Iwai Date: Wed Sep 9 16:52:09 2015 +0200 drm/i915: Fix CSR MMIO address check Fix a wrong logical AND (&&) used for the range check of CSR MMIO. Spotted nicely by gcc -Wlogical-op flag: drivers/gpu/drm/i915/intel_csr.c: In function ‘finish_csr_load’: drivers/gpu/drm/i915/intel_csr.c:353:41: warning: logical ‘and’ of mutually exclusive tests is always false [-Wlogical-op] Fixes: eb805623d8b1 ('drm/i915/skl: Add support to load SKL CSR firmware.') Cc: # v4.2 Signed-off-by: Takashi Iwai Reviewed-by: Daniel Vetter Reviewed-by: Animesh Manna Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e297c939b745e420ef0b9dc989cb87bda617b399 Author: Paul Mackerras Date: Thu Sep 10 14:36:21 2015 +1000 powerpc/MSI: Fix race condition in tearing down MSI interrupts This fixes a race which can result in the same virtual IRQ number being assigned to two different MSI interrupts. The most visible consequence of that is usually a warning and stack trace from the sysfs code about an attempt to create a duplicate entry in sysfs. The race happens when one CPU (say CPU 0) is disposing of an MSI while another CPU (say CPU 1) is setting up an MSI. CPU 0 calls (for example) pnv_teardown_msi_irqs(), which calls msi_bitmap_free_hwirqs() to indicate that the MSI (i.e. its hardware IRQ number) is no longer in use. Then, before CPU 0 gets to calling irq_dispose_mapping() to free up the virtal IRQ number, CPU 1 comes in and calls msi_bitmap_alloc_hwirqs() to allocate an MSI, and gets the same hardware IRQ number that CPU 0 just freed. CPU 1 then calls irq_create_mapping() to get a virtual IRQ number, which sees that there is currently a mapping for that hardware IRQ number and returns the corresponding virtual IRQ number (which is the same virtual IRQ number that CPU 0 was using). CPU 0 then calls irq_dispose_mapping() and frees that virtual IRQ number. Now, if another CPU comes along and calls irq_create_mapping(), it is likely to get the virtual IRQ number that was just freed, resulting in the same virtual IRQ number apparently being used for two different hardware interrupts. To fix this race, we just move the call to msi_bitmap_free_hwirqs() to after the call to irq_dispose_mapping(). Since virq_to_hw() doesn't work for the virtual IRQ number after irq_dispose_mapping() has been called, we need to call it before irq_dispose_mapping() and remember the result for the msi_bitmap_free_hwirqs() call. The pattern of calling msi_bitmap_free_hwirqs() before irq_dispose_mapping() appears in 5 places under arch/powerpc, and appears to have originated in commit 05af7bd2d75e ("[POWERPC] MPIC U3/U4 MSI backend") from 2007. Fixes: 05af7bd2d75e ("[POWERPC] MPIC U3/U4 MSI backend") Cc: stable@vger.kernel.org # v2.6.22+ Reported-by: Alexey Kardashevskiy Signed-off-by: Paul Mackerras Signed-off-by: Michael Ellerman arch/powerpc/platforms/pasemi/msi.c | 5 +++-- arch/powerpc/platforms/powernv/pci.c | 5 +++-- arch/powerpc/sysdev/fsl_msi.c | 5 +++-- arch/powerpc/sysdev/mpic_u3msi.c | 5 +++-- arch/powerpc/sysdev/ppc4xx_msi.c | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) commit 1ab1e895492d8084dfc1c854efacde219e56b8c1 Author: Henrik Austad Date: Wed Sep 9 12:25:17 2015 +0200 ether: add IEEE 1722 ethertype - TSN IEEE 1722 describes AVB (later renamed to TSN - Time Sensitive Networking), a protocol, encapsualtion and synchronization to utilize standard networks for audio/video (and later other time-sensitive) streams. This standard uses ethertype 0x22F0. http://standards.ieee.org/develop/regauth/ethertype/eth.txt This is a respin of a previous patch ("ether: add AVB frame type ETH_P_AVB") CC: "David S. Miller" CC: netdev@vger.kernel.org CC: linux-api@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Henrik Austad Signed-off-by: David S. Miller include/uapi/linux/if_ether.h | 1 + 1 file changed, 1 insertion(+) commit b14132797d8041a42e03f4ffa1e722da1425adfb Author: Mike Frysinger Date: Tue Aug 18 03:28:01 2015 -0400 elf-em.h: move EM_MICROBLAZE to the common header The linux/audit.h header uses EM_MICROBLAZE in order to define AUDIT_ARCH_MICROBLAZE, but it's only available in the microblaze asm headers. Move it to the common elf-em.h header so that the define can be used on non-microblaze systems. Otherwise we get build errors that EM_MICROBLAZE isn't defined when we try to use the AUDIT_ARCH_MICROBLAZE symbol. Signed-off-by: Mike Frysinger Signed-off-by: Michal Simek arch/microblaze/include/uapi/asm/elf.h | 3 ++- include/uapi/linux/elf-em.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 6bb0fef489f667cf701853054f44579754f00a06 Author: Daniel Borkmann Date: Thu Sep 10 02:10:57 2015 +0200 netlink, mmap: fix edge-case leakages in nf queue zero-copy When netlink mmap on receive side is the consumer of nf queue data, it can happen that in some edge cases, we write skb shared info into the user space mmap buffer: Assume a possible rx ring frame size of only 4096, and the network skb, which is being zero-copied into the netlink skb, contains page frags with an overall skb->len larger than the linear part of the netlink skb. skb_zerocopy(), which is generic and thus not aware of the fact that shared info cannot be accessed for such skbs then tries to write and fill frags, thus leaking kernel data/pointers and in some corner cases possibly writing out of bounds of the mmap area (when filling the last slot in the ring buffer this way). I.e. the ring buffer slot is then of status NL_MMAP_STATUS_VALID, has an advertised length larger than 4096, where the linear part is visible at the slot beginning, and the leaked sizeof(struct skb_shared_info) has been written to the beginning of the next slot (also corrupting the struct nl_mmap_hdr slot header incl. status etc), since skb->end points to skb->data + ring->frame_size - NL_MMAP_HDRLEN. The fix adds and lets __netlink_alloc_skb() take the actual needed linear room for the network skb + meta data into account. It's completely irrelevant for non-mmaped netlink sockets, but in case mmap sockets are used, it can be decided whether the available skb_tailroom() is really large enough for the buffer, or whether it needs to internally fallback to a normal alloc_skb(). >From nf queue side, the information whether the destination port is an mmap RX ring is not really available without extra port-to-socket lookup, thus it can only be determined in lower layers i.e. when __netlink_alloc_skb() is called that checks internally for this. I chose to add the extra ldiff parameter as mmap will then still work: We have data_len and hlen in nfqnl_build_packet_message(), data_len is the full length (capped at queue->copy_range) for skb_zerocopy() and hlen some possible part of data_len that needs to be copied; the rem_len variable indicates the needed remaining linear mmap space. The only other workaround in nf queue internally would be after allocation time by f.e. cap'ing the data_len to the skb_tailroom() iff we deal with an mmap skb, but that would 1) expose the fact that we use a mmap skb to upper layers, and 2) trim the skb where we otherwise could just have moved the full skb into the normal receive queue. After the patch, in my test case the ring slot doesn't fit and therefore shows NL_MMAP_STATUS_COPY, where a full skb carries all the data and thus needs to be picked up via recv(). Fixes: 3ab1f683bf8b ("nfnetlink: add support for memory mapped netlink") Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller include/linux/netlink.h | 13 +++++++++++-- net/netfilter/nfnetlink_queue_core.c | 5 +++-- net/netlink/af_netlink.c | 18 ++++++++++++------ 3 files changed, 26 insertions(+), 10 deletions(-) commit a66e36568e30ed3714c0e3a12bd3b64696343ff5 Author: Daniel Borkmann Date: Thu Sep 10 01:20:46 2015 +0200 netlink, mmap: don't walk rx ring on poll if receive queue non-empty In case of netlink mmap, there can be situations where received frames have to be placed into the normal receive queue. The ring buffer indicates this through NL_MMAP_STATUS_COPY, so the user is asked to pick them up via recvmsg(2) syscall, and to put the slot back to NL_MMAP_STATUS_UNUSED. Commit 0ef707700f1c ("netlink: rx mmap: fix POLLIN condition") changed polling, so that we walk in the worst case the whole ring through the new netlink_has_valid_frame(), for example, when the ring would have no NL_MMAP_STATUS_VALID, but at least one NL_MMAP_STATUS_COPY frame. Since we do a datagram_poll() already earlier to pick up a mask that could possibly contain POLLIN | POLLRDNORM already (due to NL_MMAP_STATUS_COPY), we can skip checking the rx ring entirely. In case the kernel is compiled with !CONFIG_NETLINK_MMAP, then all this is irrelevant anyway as netlink_poll() is just defined as datagram_poll(). Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller net/netlink/af_netlink.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit f2be053c83ee93888fc09d90df2bded0deb28947 Author: Hariprasad Shenai Date: Thu Sep 10 09:55:13 2015 +0530 cxgb4: changes for new firmware 1.14.4.0 Incorporate fw_ldst_cmd structure change for new firmware and also update version string for the same Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h | 33 +++++++++++++++++++++-- drivers/net/ethernet/chelsio/cxgb4/t4fw_version.h | 12 ++++----- 2 files changed, 37 insertions(+), 8 deletions(-) commit 9638d19e481605217f95d9ab3c8896e499b1407d Author: Nimrod Andy Date: Thu Sep 10 09:35:39 2015 +0800 net: fec: add netif status check before set mac address There exist one issue by below case that case system hang: ifconfig eth0 down ifconfig eth0 hw ether 00:10:19:19:81:19 After eth0 down, all fec clocks are gated off. In the .fec_set_mac_address() function, it will set new MAC address to registers, which causes system hang. So it needs to add netif status check to avoid registers access when clocks are gated off. Until eth0 up the new MAC address are wrote into related registers. V2: As Lucas Stach's suggestion, add a comment in the code to explain why it needed. CC: Lucas Stach CC: Florian Fainelli Signed-off-by: Fugang Duan Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1d68c286384d147838d252e2969f2f787e7fbffb Merge: 52fe51f 2dd49e0 Author: David S. Miller Date: Wed Sep 9 20:27:54 2015 -0700 Merge branch 'r8152-autoresume' Hayes Wang says: ==================== r8152: fix the autoresume may fail Fix the autosuspend issues which occur about linking change. ==================== Signed-off-by: David S. Miller commit 2dd49e0f16fb0e07c6fcc1322ebba310f5827072 Author: hayeswang Date: Mon Sep 7 11:57:44 2015 +0800 r8152: fix the runtime suspend issues Fix the runtime suspend issues result from the linking change. Case 1: a) link down occurs. b) driver disable tx/rx. c) autosuspend occurs. d) hw linking up. e) device suspends without enabling tx/rx. f) couldn't wake up when receiving packets. Case 2: a) Nway results in linking down. b) autosuspend occurs. c) device suspends. d) device may not wake up when linking up. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) commit d0942473e3ca4629a40bbf0c9fd74fc0c7ff2a79 Author: hayeswang Date: Mon Sep 7 11:57:43 2015 +0800 r8152: split DRIVER_VERSION Split DRIVER_VERSION into NETNEXT_VERSION and NET_VERSION. Then, according to the value of DRIVER_VERSION, we could know which patches are used generally without comparing the source code. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 52fe51f8523751da0e79c85350c47eb3bb94da5b Author: Wu Fengguang Date: Thu Sep 10 06:57:12 2015 +0800 ipv6: fix ifnullfree.cocci warnings net/ipv6/route.c:2946:3-8: WARNING: NULL check before freeing functions like kfree, debugfs_remove, debugfs_remove_recursive or usb_free_urb is not needed. Maybe consider reorganizing relevant code to avoid passing NULL values. NULL check before some freeing functions is not needed. Based on checkpatch warning "kfree(NULL) is safe this check is probably not required" and kfreeaddr.cocci by Julia Lawall. Generated by: scripts/coccinelle/free/ifnullfree.cocci CC: Roopa Prabhu Signed-off-by: Fengguang Wu Signed-off-by: David S. Miller net/ipv6/route.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 792aec47d59d951865cc617a97b6e6be53d4b977 Author: Woojung.Huh@microchip.com Date: Wed Sep 9 20:49:53 2015 +0000 add microchip LAN88xx phy driver Add Microchip LAN88XX phy driver for phylib. Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 5 ++ drivers/net/phy/Makefile | 1 + drivers/net/phy/microchip.c | 148 +++++++++++++++++++++++++++++++++++++++++++ include/linux/microchipphy.h | 73 +++++++++++++++++++++ 4 files changed, 227 insertions(+) commit dfc50fcaad574e5c8c85cbc83eca1426b2413fa4 Author: Alexey Brodkin Date: Wed Sep 9 18:01:08 2015 +0300 stmmac: fix check for phydev being open Current check of phydev with IS_ERR(phydev) may make not much sense because of_phy_connect() returns NULL on failure instead of error value. Still for checking result of phy_connect() IS_ERR() makes perfect sense. So let's use combined check IS_ERR_OR_NULL() that covers both cases. Cc: Sergei Shtylyov Cc: Giuseppe Cavallaro Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Cc: David Miller Signed-off-by: Alexey Brodkin Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 1f0ca208531a152e1da6aa43d095fe0b2039d9ca Author: Rasmus Villemoes Date: Wed Sep 9 10:38:05 2015 +0200 net: qlcnic: delete redundant memsets In all cases, mbx->req.arg and mbx->rsp.arg have just been allocated using kcalloc(), so these six memsets are redundant. Signed-off-by: Rasmus Villemoes Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 2 -- drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 2 -- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 2 -- 3 files changed, 6 deletions(-) commit b66a60857ca4fae5900c5d81c2ba04e657509b99 Author: Rasmus Villemoes Date: Wed Sep 9 10:38:04 2015 +0200 net: mv643xx_eth: use kzalloc The double memset is a little ugly; using kzalloc avoids it altogether. Signed-off-by: Rasmus Villemoes Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mv643xx_eth.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit e9b5ac277e8f8dffa28f85a065e2fd890d9e48c7 Author: Rasmus Villemoes Date: Wed Sep 9 10:38:03 2015 +0200 net: jme: use kzalloc() instead of kmalloc+memset Using kzalloc saves a tiny bit on .text. Signed-off-by: Rasmus Villemoes Signed-off-by: David S. Miller drivers/net/ethernet/jme.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit ce8e5c7035098fa5b8fea910f14be59b8cace81f Author: Rasmus Villemoes Date: Wed Sep 9 10:38:02 2015 +0200 net: cavium: liquidio: use kzalloc in setup_glist() We save a little .text and get rid of the sizeof(...) style inconsistency. Signed-off-by: Rasmus Villemoes Signed-off-by: David S. Miller drivers/net/ethernet/cavium/liquidio/lio_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c6e59bdac940e63cfabd40a89d342eb470b009b9 Merge: 312146b 208487a Author: Kevin Hilman Date: Wed Sep 9 16:15:34 2015 -0700 Merge tag 'qcom-soc-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm into next/late Qualcomm ARM Based SoC Updates for 4.3-rc2 * Fix errant private access in SMEM * Fix use of correct remote processor ID in SMD transactions * Correct SMD fBLOCKREADINTR handling * tag 'qcom-soc-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm: soc: qcom: smd: Correct fBLOCKREADINTR handling soc: qcom: smd: Use correct remote processor ID soc: qcom: smem: Fix errant private access devicetree: soc: Add Qualcomm SMD based RPM DT binding soc: qcom: Driver for the Qualcomm RPM over SMD soc: qcom: Add Shared Memory Driver soc: qcom: Add device tree binding for Shared Memory Device drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM soc: qcom: Add Shared Memory Manager driver commit 312146b50781a9ed1172402e170983a5e967d55d Merge: 7f98121 8f1dc3c Author: Kevin Hilman Date: Wed Sep 9 16:15:19 2015 -0700 Merge tag 'qcom-dt-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm into next/late Qualcomm ARM Based Device Tree Updates for v4.3-rc2 * Add labels for serial nodes to be used for aliasing and stdout-path * Add stdout-path for APQ8064 Compulab QS600 * Add stdout-path for APQ8064 Inforce 6410 * Add stdout-path for APQ8074 Dragonboard * Add stdout-path for APQ8084 Inforce 6540 * Add stdout-path for APQ8084 MTP * Add stdout-path for IPQ8064 AP148 * Add stdout-path for MSM8660 Surf * Add stdout-path for MSM8960 CDP * Add stdout-path for MSM8974 Xperia Honami * tag 'qcom-dt-for-4.3-rc2' of git://codeaurora.org/quic/kernel/agross-msm: (24 commits) ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path ARM: dts: qcom: msm8960-cdp: Use stdout-path ARM: dts: qcom: msm8660-surf: Use stdout-path ARM: dts: qcom: ipq8064-ap148: Use stdout-path ARM: dts: qcom: apq8084-mtp: Use stdout-path ARM: dts: qcom: apq8084-ifc6540: Use stdout-path ARM: dts: qcom: apq8074-dragonboard: Use stdout-path ARM: dts: qcom: apq8064-ifc6410: Use stdout-path ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path ARM: dts: qcom: Label serial nodes for aliasing and stdout-path ARM: dts: qs600: Add real regulators to sdcc ARM: dts: ifc6410: add real regulators for sdcc nodes. ARM: dts: apq8064: remove temporary fixed regulator for mmc ARM: dts: apq8064: fix missing gsbi cell-index ARM: dts: apq8064: Add DT support for GSBI6 and for UART pin mux ARM: dts: apq8064: add pm8921 mpp support ARM: dts: apq8064: Add pm8921 mfd and its gpio node ARM: dts: msm8974: Add smem reservation and node ARM: dts: msm8974: Add tcsr mutex node ARM: dts: qcom: Add ks8851 node for wired ethernet ... commit 7f9812122ffaebd71d4d964f6f5109473a9fc683 Merge: 71d4404 ae1973a Author: Kevin Hilman Date: Wed Sep 9 16:07:41 2015 -0700 Merge branch 'next/defconfig' into next/late * next/defconfig: (45 commits) ARM: multi_v7_defconfig: Enable PBIAS regulator ARM: add TC2 PM support to multi_v7_defconfig ARM: tegra: Update multi_v7_defconfig ARM: tegra: Update default configuration ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER ARM: at91/defconfig: at91_dt: enable DRM hlcdc support ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I, cryptodev ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON, FHANDLE ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig ARM: multi_v7_defconfig: Select MX6UL and MX7D ARM: prima2_defconfig: enable build for hwspinlock ARM: prima2_defconfig: enable build for RTC ARM: prima2_defconfig: enable build for misc input ARM: prima2_defconfig: enable build for SiRFSoC SDHC host ARM: prima2_defconfig: fix the outdated defconfig ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC ARM: defconfig: orion5x: add DT support ARM: qcom_defconfig: Enable options for KS8851 ethernet ARM: multi_v7_defconfig: Enable support for PWM Regulators ... commit ae1973a2df8ea48ab04cd406c569ce0b5721dd99 Author: Kishon Vijay Abraham I Date: Fri Sep 4 17:43:15 2015 +0530 ARM: multi_v7_defconfig: Enable PBIAS regulator PBIAS regulator is required for MMC module in OMAP2, OMAP3, OMAP4, OMAP5 and DRA7 SoCs. Enable it here. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Kevin Hilman arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 71d440499b8ecbd5289bdf4ef5cce6eb62fffb0d Merge: 7c4ecc7 9738031 Author: Kevin Hilman Date: Wed Sep 9 15:42:45 2015 -0700 Merge branch 'drivers/reset' into next/late * drivers/reset: reset: ath79: Fix missing spin_lock_init reset: Add (devm_)reset_control_get stub functions reset: reset-zynq: Adding support for Xilinx Zynq reset controller. docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings. MIPS: ath79: Add the reset controller to the AR9132 dtsi reset: Add a driver for the reset controller on the AR71XX/AR9XXX devicetree: Add bindings for the ATH79 reset controller reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property doc: dt: add documentation for lpc1850-rgu reset driver reset: add driver for lpc18xx rgu reset: sti: constify of_device_id array ARM: STi: DT: Move reset controller constants into common location MAINTAINERS: add include/dt-bindings/reset path to reset controller entry commit 9738031561d246f625325badb03a1f1eca2d1b01 Merge: 5d44595 f319cb8 Author: Kevin Hilman Date: Wed Sep 9 15:41:42 2015 -0700 Merge tag 'reset-for-4.3-fixes' of git://git.pengutronix.de/git/pza/linux into drivers/reset Merge "Reset controller fixes for v4.3" from Philipp Zabel: Reset controller fixes for v4.3 - added stubs to avoid build breakage in COMPILE_TEST configurations with RESET_CONTROLLER disabled - fixed missing spinlock initialization in ath79 driver * tag 'reset-for-4.3-fixes' of git://git.pengutronix.de/git/pza/linux: reset: ath79: Fix missing spin_lock_init reset: Add (devm_)reset_control_get stub functions commit af4cb25df93d2e7a97d65db2bfacaa4400988dea Author: Russell King Date: Wed Sep 9 21:19:49 2015 +0100 ARM: uaccess: fix undefined instruction on ARMv7M/noMMU The use of get_domain() in copy_thread() results in an oops on ARMv7M/noMMU systems. The thread cpu_domain value is only used when CONFIG_CPU_USE_DOMAINS is enabled, so there's no need to save the value in copy_thread() except when this is enabled, and this option will never be enabled on these platforms. Unhandled exception: IPSR = 00000006 LR = fffffff1 CPU: 0 PID: 0 Comm: swapper Not tainted 4.2.0-next-20150909-00001-gb8ec5ad #41 Hardware name: NXP LPC18xx/43xx (Device Tree) task: 2823fbe0 ti: 2823c000 task.ti: 2823c000 PC is at copy_thread+0x18/0x92 LR is at copy_thread+0x19/0x92 pc : [<2800a46e>] lr : [<2800a46f>] psr: 4100000b sp : 2823df00 ip : 00000000 fp : 287c81c0 r10: 00000000 r9 : 00800300 r8 : 287c8000 r7 : 287c8000 r6 : 2818908d r5 : 00000000 r4 : 287ca000 r3 : 00000000 r2 : 00000000 r1 : fffffff0 r0 : 287ca048 xPSR: 4100000b Reported-by: Ariel D'Alessandro Signed-off-by: Russell King arch/arm/kernel/process.c | 2 ++ 1 file changed, 2 insertions(+) commit 296254f3223d201f2aa53f5f717eedfdc63f3db8 Author: Russell King Date: Mon Sep 7 00:30:06 2015 +0100 ARM: uaccess: remove unneeded uaccess_save_and_disable macro This macro is never referenced, remove it. Signed-off-by: Russell King arch/arm/include/asm/assembler.h | 5 ----- 1 file changed, 5 deletions(-) commit 39dc53deff30d9b239ac36cfeb0ef2022d03a449 Author: Russell King Date: Mon Sep 7 00:29:15 2015 +0100 ARM: swpan: fix nwfpe for uaccess changes NWFPE needs to access userspace to check whether the next instruction is another FP instruction. Allow userspace access for this read. Signed-off-by: Russell King arch/arm/nwfpe/entry.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f53de1e9a4aaf8cbe08845da6f7ff26a078ac507 Author: Phil Sutter Date: Wed Sep 9 14:20:56 2015 +0200 net: ipv6: use common fib_default_rule_pref This switches IPv6 policy routing to use the shared fib_default_rule_pref() function of IPv4 and DECnet. It is also used in multicast routing for IPv4 as well as IPv6. The motivation for this patch is a complaint about iproute2 behaving inconsistent between IPv4 and IPv6 when adding policy rules: Formerly, IPv6 rules were assigned a fixed priority of 0x3FFF whereas for IPv4 the assigned priority value was decreased with each rule added. Since then all users of the default_pref field have been converted to assign the generic function fib_default_rule_pref(), fib_nl_newrule() may just use it directly instead. Therefore get rid of the function pointer altogether and make fib_default_rule_pref() static, as it's not used outside fib_rules.c anymore. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller include/net/fib_rules.h | 2 -- net/core/fib_rules.c | 10 +++------- net/decnet/dn_rules.c | 1 - net/ipv4/fib_rules.c | 1 - net/ipv4/ipmr.c | 1 - net/ipv6/fib6_rules.c | 6 ------ net/ipv6/ip6mr.c | 1 - 7 files changed, 3 insertions(+), 19 deletions(-) commit 444c5f92ed152346aef0952316e0ea855129846c Author: Tobias Klauser Date: Wed Sep 9 11:24:29 2015 +0200 net: ethoc: Remove unnecessary #ifdef CONFIG_OF For !CONFIG_OF of_get_property() is defined to always return NULL. Thus there's no need to protect the call to of_get_property() with #ifdef CONFIG_OF. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller drivers/net/ethernet/ethoc.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 03679a14739a0d4c14b52ba65a69ff553bfba73b Author: Florian Fainelli Date: Tue Sep 8 20:06:41 2015 -0700 net: dsa: bcm_sf2: Fix 64-bits register writes The macro to write 64-bits quantities to the 32-bits register swapped the value and offsets arguments, we want to preserve the ordering of the arguments with respect to how writel() is implemented for instance: value first, offset/base second. Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver") Signed-off-by: Florian Fainelli Reviewed-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/bcm_sf2.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 687f07156b0c99205c21aa4e2986564046d342fe Author: Alexei Starovoitov Date: Tue Sep 8 13:40:01 2015 -0700 bpf: fix out of bounds access in verifier log when the verifier log is enabled the print_bpf_insn() is doing bpf_alu_string[BPF_OP(insn->code) >> 4] and bpf_jmp_string[BPF_OP(insn->code) >> 4] where BPF_OP is a 4-bit instruction opcode. Malformed insns can cause out of bounds access. Fix it by sizing arrays appropriately. The bug was found by clang address sanitizer with libfuzzer. Reported-by: Yonghong Song Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller kernel/bpf/verifier.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6b9ea5a64ed5eeb3f68f2e6fcce0ed1179801d1e Author: Roopa Prabhu Date: Tue Sep 8 10:53:04 2015 -0700 ipv6: fix multipath route replace error recovery Problem: The ecmp route replace support for ipv6 in the kernel, deletes the existing ecmp route too early, ie when it installs the first nexthop. If there is an error in installing the subsequent nexthops, its too late to recover the already deleted existing route leaving the fib in an inconsistent state. This patch reduces the possibility of this by doing the following: a) Changes the existing multipath route add code to a two stage process: build rt6_infos + insert them ip6_route_add rt6_info creation code is moved into ip6_route_info_create. b) This ensures that most errors are caught during building rt6_infos and we fail early c) Separates multipath add and del code. Because add needs the special two stage mode in a) and delete essentially does not care. d) In any event if the code fails during inserting a route again, a warning is printed (This should be unlikely) Before the patch: $ip -6 route show 3000:1000:1000:1000::2 via fe80::202:ff:fe00:b dev swp49s0 metric 1024 3000:1000:1000:1000::2 via fe80::202:ff:fe00:d dev swp49s1 metric 1024 3000:1000:1000:1000::2 via fe80::202:ff:fe00:f dev swp49s2 metric 1024 /* Try replacing the route with a duplicate nexthop */ $ip -6 route change 3000:1000:1000:1000::2/128 nexthop via fe80::202:ff:fe00:b dev swp49s0 nexthop via fe80::202:ff:fe00:d dev swp49s1 nexthop via fe80::202:ff:fe00:d dev swp49s1 RTNETLINK answers: File exists $ip -6 route show /* previously added ecmp route 3000:1000:1000:1000::2 dissappears from * kernel */ After the patch: $ip -6 route show 3000:1000:1000:1000::2 via fe80::202:ff:fe00:b dev swp49s0 metric 1024 3000:1000:1000:1000::2 via fe80::202:ff:fe00:d dev swp49s1 metric 1024 3000:1000:1000:1000::2 via fe80::202:ff:fe00:f dev swp49s2 metric 1024 /* Try replacing the route with a duplicate nexthop */ $ip -6 route change 3000:1000:1000:1000::2/128 nexthop via fe80::202:ff:fe00:b dev swp49s0 nexthop via fe80::202:ff:fe00:d dev swp49s1 nexthop via fe80::202:ff:fe00:d dev swp49s1 RTNETLINK answers: File exists $ip -6 route show 3000:1000:1000:1000::2 via fe80::202:ff:fe00:b dev swp49s0 metric 1024 3000:1000:1000:1000::2 via fe80::202:ff:fe00:d dev swp49s1 metric 1024 3000:1000:1000:1000::2 via fe80::202:ff:fe00:f dev swp49s2 metric 1024 Fixes: 27596472473a ("ipv6: fix ECMP route replacement") Signed-off-by: Roopa Prabhu Reviewed-by: Nikolay Aleksandrov Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller net/ipv6/route.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 175 insertions(+), 26 deletions(-) commit 208487a8f69084992f76ef87ddd3e00e5eaf6587 Author: Bjorn Andersson Date: Mon Aug 24 13:38:46 2015 -0700 soc: qcom: smd: Correct fBLOCKREADINTR handling fBLOCKREADINTR is masking the notification from the remote and should hence be cleared while we're waiting the tx fifo to drain. Also change the reset state to mask the notification, as send is the only use case where we're interested in it. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/smd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 93dbed9121cc8e0fcc93edd9fca901322bdfbd1a Author: Andy Gross Date: Wed Aug 26 14:42:45 2015 -0500 soc: qcom: smd: Use correct remote processor ID This patch fixes SMEM addressing issues when remote processors need to use secure SMEM partitions. Signed-off-by: Andy Gross Reviewed-by: Bjorn Andersson Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt | 6 ++++++ drivers/soc/qcom/smd.c | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) commit 18912806bbf8bd6e2b5cb12317679790eb0e0ce4 Author: Andy Gross Date: Tue Aug 11 23:48:15 2015 -0500 soc: qcom: smem: Fix errant private access This patch corrects private partition item access. Instead of falling back to global for instances where we have an actual host and remote partition existing, return the results of the private lookup. Signed-off-by: Andy Gross drivers/soc/qcom/smem.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 61e19ba99e2a88392dcaee4b5e7f3e23548b8164 Merge: bc0195a ba68227 Author: Andy Gross Date: Wed Sep 9 15:56:35 2015 -0500 Merge tag 'qcom-soc-for-4.3' into v4.2-rc2 Qualcomm ARM Based SoC Updates for 4.3 * Add SMEM driver * Add SMD driver * Add RPM over SMD driver * Select QCOM_SCM by default commit 74da56ce5c6715630aed3ccc0fcb86a9210c1a56 Author: Kristen Carlson Accardi Date: Wed Sep 9 11:41:22 2015 -0700 intel_pstate: fix PCT_TO_HWP macro PCT_TO_HWP does not take the actual range of pstates exported by HWP_CAPABILITIES in account, and is broken on most platforms. Remove the macro and set the min and max pstate for hwp by determining the range and adjusting by the min and max percent limits values. Signed-off-by: Kristen Carlson Accardi Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 43717aadd2bc87fb10fbf1cd815c1cbae9bb95b3 Author: Chen Yu Date: Wed Sep 9 18:27:31 2015 +0800 intel_pstate: Fix user input of min/max to legal policy region In current code, max_perf_pct might be smaller than min_perf_pct by improper user input: $ grep . /sys/devices/system/cpu/intel_pstate/m*_perf_pct /sys/devices/system/cpu/intel_pstate/max_perf_pct:100 /sys/devices/system/cpu/intel_pstate/min_perf_pct:100 $ echo 80 > /sys/devices/system/cpu/intel_pstate/max_perf_pct $ grep . /sys/devices/system/cpu/intel_pstate/m*_perf_pct /sys/devices/system/cpu/intel_pstate/max_perf_pct:80 /sys/devices/system/cpu/intel_pstate/min_perf_pct:100 Fix this problem by 2 steps: 1. Normalize the user input to [min_policy, max_policy]. 2. Make sure max_perf_pct>=min_perf_pct, suggested by Seiichi Ikarashi. Signed-off-by: Chen Yu Acked-by: Kristen Carlson Accardi Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 1b2b90cbea00670221f062814dc8bcecb3af7b90 Author: Viresh Kumar Date: Wed Sep 9 16:58:22 2015 +0530 PM / OPP: Return suspend_opp only if it is enabled There is no point returning suspend_opp, if it is disabled by the core. As we can't use it at all. Fix it. Fixes: 4eafbd15b6c8 ("PM / OPP: add dev_pm_opp_get_suspend_opp() helper") Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 8f1dc3cf8f1e617ec888bcdb69111aae9bf4a9e0 Author: Stephen Boyd Date: Tue Jun 16 14:31:53 2015 -0700 ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Cc: Tim Bird Cc: Bjorn Andersson Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit c0ed595961c44beea0d0dc3b0e2b1ef354931bdf Author: Stephen Boyd Date: Tue Jun 16 14:31:52 2015 -0700 ARM: dts: qcom: msm8960-cdp: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-msm8960-cdp.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit a96731089e8e0d550f017359dacaee19463517c7 Author: Stephen Boyd Date: Tue Jun 16 14:31:51 2015 -0700 ARM: dts: qcom: msm8660-surf: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-msm8660-surf.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9a61b3a39a88b955d89c5f19e01b0b19185ebce6 Author: Stephen Boyd Date: Tue Jun 16 14:31:50 2015 -0700 ARM: dts: qcom: ipq8064-ap148: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Cc: Mathieu Olivari Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-ipq8064-ap148.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit ccfdf7cd7dfaa4140702ff43d760d0eb1578d725 Author: Stephen Boyd Date: Tue Jun 16 14:31:49 2015 -0700 ARM: dts: qcom: apq8084-mtp: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-apq8084-mtp.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit d92c945d854f9d973d3a0836548c93ed249b8f3a Author: Stephen Boyd Date: Tue Jun 16 14:31:48 2015 -0700 ARM: dts: qcom: apq8084-ifc6540: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-apq8084-ifc6540.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5f769789bdec38c1d5b19a8743924daf87f5d023 Author: Stephen Boyd Date: Tue Jun 16 14:31:47 2015 -0700 ARM: dts: qcom: apq8074-dragonboard: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-apq8074-dragonboard.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7f9e28b61057da3a4aa56a79436916a821e63a35 Author: Stephen Boyd Date: Tue Jun 16 14:31:46 2015 -0700 ARM: dts: qcom: apq8064-ifc6410: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 4e19db11e99b27bdd4817c3d58a7ead7af8d7d7c Author: Stephen Boyd Date: Tue Jun 16 14:31:45 2015 -0700 ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path Use stdout-path so that we don't have to put the console on the kernel command line. Cc: Mike Rapoport Cc: Igor Grinberg Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 10bfcfea9bbe91adf79cc4efc9c764edd0cbadda Author: Stephen Boyd Date: Tue Jun 16 14:31:44 2015 -0700 ARM: dts: qcom: Label serial nodes for aliasing and stdout-path Add a label to the serial nodes that are being used for the console. Signed-off-by: Stephen Boyd arch/arm/boot/dts/qcom-apq8084.dtsi | 2 +- arch/arm/boot/dts/qcom-ipq8064.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8660.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8960.dtsi | 2 +- arch/arm/boot/dts/qcom-msm8974.dtsi | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 9f384d67f2334b5888ac9e6302f3c35a09b09787 Merge: bc0195a baff39e Author: Andy Gross Date: Wed Sep 9 14:56:32 2015 -0500 Merge tag 'qcom-dt-for-4.3' into v4.2-rc2 Qualcomm ARM Based Device Tree Updates for v4.3 * Switch to use pinctrl compatible for GPIOs * Add RPM regulators for MSM8960 * Add SPI Ethernet support on MSM8960 CDP * Add SMEM support along with dependencies * Add PM8921 support for GPIO and MPP * Fix GSBI cell index * Switch to use real regulators on APQ8064 w/ SDCC commit 592867bfabe2fcb449393ba7eb0de4f972a08c63 Author: Daniel Borkmann Date: Tue Sep 8 18:00:09 2015 +0200 ebpf: fix fd refcount leaks related to maps in bpf syscall We may already have gotten a proper fd struct through fdget(), so whenever we return at the end of an map operation, we need to call fdput(). However, each map operation from syscall side first probes CHECK_ATTR() to verify that unused fields in the bpf_attr union are zero. In case of malformed input, we return with error, but the lookup to the map_fd was already performed at that time, so that we return without an corresponding fdput(). Fix it by performing an fdget() only right before bpf_map_get(). The fdget() invocation on maps in the verifier is not affected. Fixes: db20fd2b0108 ("bpf: add lookup/update/delete/iterate methods to BPF maps") Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/syscall.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 6551881c86c791237a3bebf11eb3bd70b60ea782 Author: Pratyush Anand Date: Thu Aug 20 14:05:01 2015 +0530 Watchdog: Fix parent of watchdog_devices /sys/class/watchdog/watchdogn/device/modalias can help to identify the driver/module for a given watchdog node. However, many wdt devices do not set their parent and so, we do not see an entry for device in sysfs for such devices. This patch fixes parent of watchdog_device so that /sys/class/watchdog/watchdogn/device is populated. Exceptions: booke, diag288, octeon, softdog and w83627hf -- They do not have any parent. Not sure, how we can identify driver for these devices. Signed-off-by: Pratyush Anand Reviewed-by: Johannes Thumshirn Acked-by: Guenter Roeck Acked-by: H Hartley Sweeten Acked-by: Lee Jones Acked-by: Lubomir Rintel Acked-by: Maxime Coquelin Acked-by: Thierry Reding Acked-by: Viresh Kumar Acked-by: Linus Walleij Signed-off-by: Wim Van Sebroeck drivers/misc/mei/wd.c | 1 + drivers/watchdog/bcm2835_wdt.c | 1 + drivers/watchdog/bcm47xx_wdt.c | 1 + drivers/watchdog/bcm_kona_wdt.c | 1 + drivers/watchdog/coh901327_wdt.c | 1 + drivers/watchdog/da9052_wdt.c | 1 + drivers/watchdog/da9055_wdt.c | 1 + drivers/watchdog/da9062_wdt.c | 1 + drivers/watchdog/da9063_wdt.c | 1 + drivers/watchdog/davinci_wdt.c | 1 + drivers/watchdog/digicolor_wdt.c | 1 + drivers/watchdog/ep93xx_wdt.c | 1 + drivers/watchdog/gpio_wdt.c | 1 + drivers/watchdog/ie6xx_wdt.c | 1 + drivers/watchdog/intel-mid_wdt.c | 1 + drivers/watchdog/jz4740_wdt.c | 1 + drivers/watchdog/mena21_wdt.c | 1 + drivers/watchdog/menf21bmc_wdt.c | 1 + drivers/watchdog/omap_wdt.c | 1 + drivers/watchdog/orion_wdt.c | 1 + drivers/watchdog/pnx4008_wdt.c | 1 + drivers/watchdog/qcom-wdt.c | 1 + drivers/watchdog/retu_wdt.c | 1 + drivers/watchdog/rt2880_wdt.c | 1 + drivers/watchdog/s3c2410_wdt.c | 1 + drivers/watchdog/shwdt.c | 1 + drivers/watchdog/sirfsoc_wdt.c | 1 + drivers/watchdog/sp805_wdt.c | 1 + drivers/watchdog/st_lpc_wdt.c | 1 + drivers/watchdog/stmp3xxx_rtc_wdt.c | 1 + drivers/watchdog/tegra_wdt.c | 1 + drivers/watchdog/twl4030_wdt.c | 1 + drivers/watchdog/txx9wdt.c | 1 + drivers/watchdog/ux500_wdt.c | 1 + drivers/watchdog/via_wdt.c | 1 + drivers/watchdog/wm831x_wdt.c | 1 + drivers/watchdog/wm8350_wdt.c | 1 + 37 files changed, 37 insertions(+) commit bf5125d5e0759a0f513b1bcd33c15edc0cf4c17b Author: Bjorn Andersson Date: Mon Aug 17 09:19:03 2015 -0700 watchdog: at91rm9200: Correct check for syscon_node_to_regmap() errors syscon_node_to_regmap() returns a regmap or an ERR_PTR(). Signed-off-by: Bjorn Andersson Acked-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/at91rm9200_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a97a09bd119fbdf4ba8c634fed8f4148d1def1e0 Author: Alexandre Belloni Date: Sun Aug 16 11:23:43 2015 +0200 watchdog: at91sam9: get and use slow clock Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system hang") added a workaround for the slow clock as it is not properly handled by its users. Get and use the slow clock as it is necessary for the at91sam9 watchdog. Signed-off-by: Alexandre Belloni Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/at91sam9_wdt.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit f4fff94e3e3a712ef062c44b64ecf8f552f48ea4 Author: Wenyou Yang Date: Thu Aug 6 18:17:05 2015 +0800 Documentation: dt: binding: atmel-sama5d4-wdt: for SAMA5D4 watchdog driver The compatible "atmel,sama5d4-wdt" supports the SAMA5D4 watchdog driver and the watchdog's WDT_MR register can be written more than once. Signed-off-by: Wenyou Yang Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../bindings/watchdog/atmel-sama5d4-wdt.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 74e98eb085889b0d2d4908f59f6e00026063014f Author: Sasha Levin Date: Tue Sep 8 10:53:40 2015 -0400 RDS: verify the underlying transport exists before creating a connection There was no verification that an underlying transport exists when creating a connection, this would cause dereferencing a NULL ptr. It might happen on sockets that weren't properly bound before attempting to send a message, which will cause a NULL ptr deref: [135546.047719] kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN [135546.051270] Modules linked in: [135546.051781] CPU: 4 PID: 15650 Comm: trinity-c4 Not tainted 4.2.0-next-20150902-sasha-00041-gbaa1222-dirty #2527 [135546.053217] task: ffff8800835bc000 ti: ffff8800bc708000 task.ti: ffff8800bc708000 [135546.054291] RIP: __rds_conn_create (net/rds/connection.c:194) [135546.055666] RSP: 0018:ffff8800bc70fab0 EFLAGS: 00010202 [135546.056457] RAX: dffffc0000000000 RBX: 0000000000000f2c RCX: ffff8800835bc000 [135546.057494] RDX: 0000000000000007 RSI: ffff8800835bccd8 RDI: 0000000000000038 [135546.058530] RBP: ffff8800bc70fb18 R08: 0000000000000001 R09: 0000000000000000 [135546.059556] R10: ffffed014d7a3a23 R11: ffffed014d7a3a21 R12: 0000000000000000 [135546.060614] R13: 0000000000000001 R14: ffff8801ec3d0000 R15: 0000000000000000 [135546.061668] FS: 00007faad4ffb700(0000) GS:ffff880252000000(0000) knlGS:0000000000000000 [135546.062836] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [135546.063682] CR2: 000000000000846a CR3: 000000009d137000 CR4: 00000000000006a0 [135546.064723] Stack: [135546.065048] ffffffffafe2055c ffffffffafe23fc1 ffffed00493097bf ffff8801ec3d0008 [135546.066247] 0000000000000000 00000000000000d0 0000000000000000 ac194a24c0586342 [135546.067438] 1ffff100178e1f78 ffff880320581b00 ffff8800bc70fdd0 ffff880320581b00 [135546.068629] Call Trace: [135546.069028] ? __rds_conn_create (include/linux/rcupdate.h:856 net/rds/connection.c:134) [135546.069989] ? rds_message_copy_from_user (net/rds/message.c:298) [135546.071021] rds_conn_create_outgoing (net/rds/connection.c:278) [135546.071981] rds_sendmsg (net/rds/send.c:1058) [135546.072858] ? perf_trace_lock (include/trace/events/lock.h:38) [135546.073744] ? lockdep_init (kernel/locking/lockdep.c:3298) [135546.074577] ? rds_send_drop_to (net/rds/send.c:976) [135546.075508] ? __might_fault (./arch/x86/include/asm/current.h:14 mm/memory.c:3795) [135546.076349] ? __might_fault (mm/memory.c:3795) [135546.077179] ? rds_send_drop_to (net/rds/send.c:976) [135546.078114] sock_sendmsg (net/socket.c:611 net/socket.c:620) [135546.078856] SYSC_sendto (net/socket.c:1657) [135546.079596] ? SYSC_connect (net/socket.c:1628) [135546.080510] ? trace_dump_stack (kernel/trace/trace.c:1926) [135546.081397] ? ring_buffer_unlock_commit (kernel/trace/ring_buffer.c:2479 kernel/trace/ring_buffer.c:2558 kernel/trace/ring_buffer.c:2674) [135546.082390] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749) [135546.083410] ? trace_event_raw_event_sys_enter (include/trace/events/syscalls.h:16) [135546.084481] ? do_audit_syscall_entry (include/trace/events/syscalls.h:16) [135546.085438] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749) [135546.085515] rds_ib_laddr_check(): addr 36.74.25.172 ret -99 node type -1 Acked-by: Santosh Shilimkar Signed-off-by: Sasha Levin Signed-off-by: David S. Miller net/rds/connection.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 76534860f108b812926a4fbfbdadbfa9cdec89d0 Author: Wenyou Yang Date: Thu Aug 6 18:16:46 2015 +0800 watchdog: add a driver to support SAMA5D4 watchdog timer From SAMA5D4, the watchdog timer is upgrated with a new feature, which is describled as in the datasheet, "WDT_MR can be written until a LOCKMR command is issued in WDT_CR". That is to say, as long as the bootstrap and u-boot don't issue a LOCKMR command, WDT_MR can be written more than once in the driver. So the SAMA5D4 watchdog driver's implementation is different from the at91sam9260 watchdog driver implemented in file at91sam9_wdt.c. The user application open the device file to enable the watchdog timer hardware, and close to disable it, and set the watchdog timer timeout by seting WDV and WDD fields of WDT_MR register, and ping the watchdog by issuing WDRSTT command to WDT_CR register with hard-coded key. Signed-off-by: Wenyou Yang Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 9 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/at91sam9_wdt.h | 2 + drivers/watchdog/sama5d4_wdt.c | 280 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 292 insertions(+) commit f8c33e9717150f7b8063d6d77a8ea90adad434e9 Author: Uwe Kleine-König Date: Wed Aug 12 10:15:58 2015 +0200 watchdog: mpc8xxx: allow to compile for MPC512x The MPC5125 processor features a watchdog device that is identical to the MPC8610 one. So allow to enable the driver for MPC512x kernel configurations. Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72cd501e6a9b578cf99ae062477d9c7a938a3238 Author: Uwe Kleine-König Date: Wed Aug 12 10:15:57 2015 +0200 watchdog: mpc8xxx: use better error code when watchdog cannot be enabled checkpatch warns about ENOSYS, telling "ENOSYS means 'invalid syscall nr' and nothing else". So use ENODEV instead. Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mpc8xxx_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7997ebad4d747ff5561cb5ec0c7423e0d4e628d5 Author: Uwe Kleine-König Date: Wed Aug 12 10:15:56 2015 +0200 watchdog: mpc8xxx: use dynamic memory for device specific data Instead of relying on global static memory dynamically allocate the needed data. This has the benefit of some saved bytes if the driver is not in use and making it possible to bind more than one device (even though this has no known use case). Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mpc8xxx_wdt.c | 88 +++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 35 deletions(-) commit de5f71222bd544558d81701454eb457b295de96e Author: Uwe Kleine-König Date: Wed Aug 12 10:15:55 2015 +0200 watchdog: mpc8xxx: use devm_ioremap_resource to map memory This simplifies the error paths and device unbinding. Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mpc8xxx_wdt.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit f0ded83b96d27b27db0015e701cfd916330e3c50 Author: Uwe Kleine-König Date: Wed Aug 12 10:15:54 2015 +0200 watchdog: mpc8xxx: make use of of_device_get_match_data This function is new in v4.2-rc1 and makes a forward declaration of the match table superfluous which can so be removed. Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mpc8xxx_wdt.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 50ffb53ef2311e4631086d27783b00db6859c60e Author: Uwe Kleine-König Date: Wed Aug 12 10:15:53 2015 +0200 watchdog: mpc8xxx: simplify registration Since commit ef90174f8210 ("watchdog: watchdog_core: Add watchdog registration deferral mechanism") there is no need to delay the call to watchdog_register_device any more. So simplify the registration code accordingly. Resetting wd_base to NULL can the also be dropped because nothing depends on it being NULL to signal probe failure any more. (The matching wd_base = NULL in .remove was missing, too.) Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mpc8xxx_wdt.c | 38 +++++++------------------------------- 1 file changed, 7 insertions(+), 31 deletions(-) commit a57e06f7c6365f7d6e13f35933d3ef329205c1af Author: Uwe Kleine-König Date: Wed Aug 12 10:15:52 2015 +0200 watchdog: mpc8xxx: remove dead code Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mpc8xxx_wdt.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) commit 6cd8a1b9f71290d58099101e65e7e2279bcdb212 Author: Fengguang Wu Date: Fri Aug 7 10:28:40 2015 -0700 watchdog: lpc18xx_wdt_get_timeleft() can be static Signed-off-by: Fengguang Wu Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/lpc18xx_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cfde37e1ec18dc68a52a1b882390c0f9c52b5f10 Author: Ariel D'Alessandro Date: Sat Aug 1 15:37:17 2015 -0300 DT: watchdog: Add NXP LPC18xx Watchdog Timer binding documentation Add the devicetree binding document for NXP LPC18xx Watchdog Timer. Signed-off-by: Ariel D'Alessandro Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck .../devicetree/bindings/watchdog/lpc18xx-wdt.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 7c25f8c9f67708e6464d2221bc311cbd99e950dc Author: Ariel D'Alessandro Date: Sat Aug 1 15:37:16 2015 -0300 watchdog: NXP LPC18xx Watchdog Timer Driver This commit adds support for the watchdog timer found in NXP LPC SoCs family, which includes LPC18xx/LPC43xx. Other SoCs in that family may share the same watchdog hardware. Watchdog driver registers a restart handler that will restart the system by performing an incorrect feed after ensuring the watchdog is enabled in reset mode. As watchdog cannot be disabled in hardware, driver's stop routine will regularly send a keepalive ping using a timer. Signed-off-by: Ariel D'Alessandro Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/Kconfig | 11 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/lpc18xx_wdt.c | 340 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 352 insertions(+) commit 4f2d0b2d1b31cbe704c8f94e74e46cb64187ab0c Author: Uwe Kleine-König Date: Fri Jul 31 09:21:36 2015 +0200 watchdog: gpio-wdt: ping already at startup for always running devices During probe for an always-running watchdog a timer is setup to constantly ping the watchdog while the device is not open. The gpio to ping the watchdog is setup to inactive. For a watchdog with hw_algo = "toggle" this results in a ping depending on the initial state of the gpio, for hw_algo = "level" no ping is generated. Make sure that the first automatic ping is sent immediately and not only when the timer expires the first time. This makes the machine survive in case more than half of the watchdog timeout is already elapsed. (Which is very probable for the chip I'm faced with that has a timeout of one second.) Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/gpio_wdt.c | 60 ++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit 0a0a542f6bbb2ebe956f0117c842302442ef52da Author: Uwe Kleine-König Date: Thu Jul 30 11:32:23 2015 +0200 watchdog: gpio-wdt: be more strict about hw_algo matching strncmp(algo, "toggle", 6) doesn't compare the trailing '\0' byte, so using hw_algo = "toggleboggle" is recognized the same way as hw_algo = "toggle" . While this doesn't introduce any problems for a device tree that sticks to the documented settings it's still ugly. Fix this by using strcmp to only match on "toggle" and "level". Signed-off-by: Uwe Kleine-König Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/gpio_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ab54d7f017772e89964d4040937a83cd4468562a Author: Alexandre Belloni Date: Fri Jul 31 11:39:39 2015 +0200 Documentation: watchdog: at91sam9_wdt: add clocks property The watchdog has an input clock, the slow clock. It is required as it will not function without it. Signed-off-by: Alexandre Belloni Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/devicetree/bindings/watchdog/atmel-wdt.txt | 2 ++ 1 file changed, 2 insertions(+) commit 1d5d48523900a4b0f25d6b52f1a93c84bd671186 Author: David Vrabel Date: Tue Sep 8 14:25:14 2015 +0100 xen-netback: require fewer guest Rx slots when not using GSO Commit f48da8b14d04ca87ffcffe68829afd45f926ec6a (xen-netback: fix unlimited guest Rx internal queue and carrier flapping) introduced a regression. The PV frontend in IPXE only places 4 requests on the guest Rx ring. Since netback required at least (MAX_SKB_FRAGS + 1) slots, IPXE could not receive any packets. a) If GSO is not enabled on the VIF, fewer guest Rx slots are required for the largest possible packet. Calculate the required slots based on the maximum GSO size or the MTU. This calculation of the number of required slots relies on 1650d5455bd2 (xen-netback: always fully coalesce guest Rx packets) which present in 4.0-rc1 and later. b) Reduce the Rx stall detection to checking for at least one available Rx request. This is fine since we're predominately concerned with detecting interfaces which are down and thus have zero available Rx requests. Signed-off-by: David Vrabel Reviewed-by: Wei Liu Signed-off-by: David S. Miller drivers/net/xen-netback/common.h | 10 ---------- drivers/net/xen-netback/netback.c | 23 ++++++++++++++++------- 2 files changed, 16 insertions(+), 17 deletions(-) commit fa928ee8d4af1f70eee77a5ac77c084a0715eb9e Author: Guenter Roeck Date: Wed Jul 29 09:45:36 2015 -0700 watchdog: booke_wdt: Use infrastructure to check timeout limits The watchdog infrastructure checks the maximum timeout for us. Use it. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/booke_wdt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 64307b48f79f35d28ed6b44e20b773bc00a0152e Author: Vivien Didelot Date: Mon Jul 27 12:03:30 2015 -0400 watchdog: (nv_tco) add support for MCP79 Tested on the Nvidia chipset with an SMBus controller PCI ID 0x0AA2 (as shown in the PCI listing during the boot sequence). Signed-off-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/nv_tco.c | 2 ++ 1 file changed, 2 insertions(+) commit 0919e4445190da18496d31aac08b90828a47d45f Author: Francesco Lavra Date: Sat Jul 25 08:25:18 2015 +0200 watchdog: sunxi: fix activation of system reset Commit f2147de33470 ("watchdog: sunxi: support parameterized compatible strings") introduced a regression in sunxi_wdt_start(), by which the system reset function of the watchdog is not enabled upon starting the watchdog. As a result, the system is not reset when the watchdog expires. Fix it. Fixes: f2147de33470 ("watchdog: sunxi: support parameterized compatible strings") Signed-off-by: Francesco Lavra Acked-by: Maxime Ripard Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Cc: stable@vger.kernel.org drivers/watchdog/sunxi_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5724485b185a4ac4bb96149718ff736c5ef5c169 Author: Greta Zhang Date: Fri Jul 24 15:28:46 2015 +0800 watchdog: mtk_wdt: add wdt shutdown callback to disable wdt if enabled Without .shutdown(), watchdog might reset the system during power off. For example, if watchdog's timeout is set to 30s, then it is reset to zero by mtk_wdt_ping(). During power off, no app will ping watchdog, but watchdog is still running and may trigger reset. Signed-off-by: Greta Zhang Signed-off-by: Eddie Huang Acked-by: Matthias Brugger Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mtk_wdt.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 9fab06920c9207aca8ff4e2416bb10cabc19294a Author: Greta Zhang Date: Fri Jul 24 15:28:45 2015 +0800 watchdog: mtk_wdt: add suspend/resume support add mediatek watchdog driver suspend/resume support Signed-off-by: Greta Zhang Signed-off-by: Roger Lu Signed-off-by: Eddie Huang Acked-by: Matthias Brugger Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/mtk_wdt.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 8a340dbbc4b10fe07a924e91979bfc93e966dd65 Author: Ezequiel Garcia Date: Thu Jul 23 17:21:16 2015 -0300 watchdog: imgpdc: Unregister restart handler on remove Commit c631f20068 ("watchdog: imgpdc: Add reboot support") introduced a restart handler but forgot to unregister it on driver removal. Fix it. Fixes: c631f20068 ("watchdog: imgpdc: Add reboot support") Reported-by: Ariel D'Alessandro Signed-off-by: Ezequiel Garcia Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck drivers/watchdog/imgpdc_wdt.c | 1 + 1 file changed, 1 insertion(+) commit f15d7114bbdd594f1d8b644a44f647d2b6e9772e Author: Timur Tabi Date: Mon Jun 29 11:46:17 2015 -0500 Documentation/watchdog: add timeout and ping rate control to watchdog-test.c The watchdog test program is much more useful if it can configure the timeout value and ping rate. This will allow you to test actual timeouts. Adds the -t parameter to set the timeout value (in seconds), and -p to set the ping rate (number of seconds between pings). Signed-off-by: Timur Tabi Reviewed-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Documentation/watchdog/src/watchdog-test.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 9b57ab8b58571ee57030210b74e2aabd1a18cff2 Merge: d43cefc 2a485cf Author: David S. Miller Date: Wed Sep 9 12:29:26 2015 -0700 Merge branch 'cxgb4-fixes' Hariprasad Shenai says: ==================== cxgb4: Fix tx flit calculation and wc stat configuration This patch series fixes the following: Patch 1/2 fixes tx flit calculation, which if wrong can lead to stall, hang, data corrpution, write combining failure. Patch 2/2 fixes PCI-E write combining stats configuration. This patch series has been created against net tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit 2a485cf7db2815ca0d1510143d9126c4475aab39 Author: Hariprasad Shenai Date: Tue Sep 8 16:25:40 2015 +0530 cxgb4: Fix for write-combining stats configuration The write-combining configuration register SGE_STAT_CFG_A needs to be configured after FW initializes the adapter, else FW will reset the configuration Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit fd1754fb8afbd9cf4ea279d533414aa6577b7e60 Author: Hariprasad Shenai Date: Tue Sep 8 16:25:39 2015 +0530 cxgb4: Fix tx flit calculation In commit 0aac3f56d4a63f04 ("cxgb4: Add comment for calculate tx flits and sge length code") introduced a regression where tx flit calculation is going wrong, which can lead to data corruption, hang, stall and write-combining failure. Fixing it. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d43cefcd68bbc9a67b2c0efe38eb9cf6b5170fe8 Author: Atsushi Nemoto Date: Tue Sep 8 18:15:41 2015 +0900 net: eth: altera: Fix the initial device operstate Call netif_carrier_off() prior to register_netdev(), otherwise userspace can see incorrect link state. Signed-off-by: Atsushi Nemoto Signed-off-by: David S. Miller drivers/net/ethernet/altera/altera_tse_main.c | 1 + 1 file changed, 1 insertion(+) commit ddab2c0eaf57b2de0b2516a477e3ce0f7554509b Author: Michael S. Tsirkin Date: Wed Sep 9 22:03:30 2015 +0300 tools/virtio: fix build after 4.2 changes more stubs, mostly Signed-off-by: Michael S. Tsirkin tools/virtio/asm/barrier.h | 2 ++ tools/virtio/linux/export.h | 3 +++ tools/virtio/linux/kernel.h | 8 ++++++++ 3 files changed, 13 insertions(+) commit b8889c4fc6ba03e289cec6a4d692f6f080a55e53 Merge: fac33bf 0de6cfb Author: Linus Torvalds Date: Wed Sep 9 11:27:01 2015 -0700 Merge tag 'tty-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty driver reverts from Greg KH: "Here are some reverts for some tty patches (specifically the pl011 driver) that ended up breaking a bunch of machines (i.e. almost all of the ones with this chip). People are working on a fix for this, but in the meantime, it's best to just revert all 5 patches to restore people's serial consoles. These reverts have been in linux-next for many days now" * tag 'tty-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: Revert "uart: pl011: Rename regs with enumeration" Revert "uart: pl011: Introduce register accessor" Revert "uart: pl011: Introduce register look up table" Revert "uart: pl011: Improve LCRH register access decision" Revert "uart: pl011: Add support to ZTE ZX296702 uart" commit fac33bfdb0a54e149f8d1c2f002de5b57770b84c Merge: 82278fc 2ff46e6 Author: Linus Torvalds Date: Wed Sep 9 11:17:33 2015 -0700 Merge tag 'for-linus-20150909' of git://git.infradead.org/linux-mtd Pull more MTD updates from Brian Norris: "There was one significant bug in my first pull request, fixed here. I also threw in a few trivial ID additions and a small module rename. Details: - SPI NOR: bug fix for a "end of table" check that resulted in a NULL dereference in some cases - SPI NOR: a few new IDs / feature flags - OMAP2 NAND: rename module so it doesn't conflict with onenand omap2.ko" * tag 'for-linus-20150909' of git://git.infradead.org/linux-mtd: mtd: spi-nor: fix NULL dereference when no match found in spi_nor_ids[] mtd: spi-nor: s25sl064p supports both dual and quad I/O mtd: spi-nor: allow dual/quad reads on S25FL129P mtd: nand: omap2: Rename shippable module to omap2_nand mtd: spi-nor: Add support for sst25wf020a mtd: spi-nor: Add support for Micron n25q064a serial flash commit 82278fc079542a04e076da34546a7d6dc649b0cc Merge: bd2843f 7a59382 Author: Linus Torvalds Date: Wed Sep 9 10:55:32 2015 -0700 Merge tag 'pwm/for-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm Pull pwm updates from Thierry Reding: "This set of changes introduces the beginnings of a new API that's based around the concept of states that can be atomically applied. Drivers go to various lengths to implement something similar, which indicates that the core should really be providing the necessary framework. On top of that, there is a bit of cleanup as well as improved kerneldoc and integration into the device-drivers DocBook. Regarding drivers there is a new one for the NXP LPC18xx family of SoCs and a couple of fixes for existing drivers (pca9685, Broadcom Kona and Atmel HLCDC)" * tag 'pwm/for-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: ARM: at91: pwm: atmel-hlcdc: Add at91sam9n12 errata pwm: Add NXP LPC18xx PWM/SCT DT binding documentation pwm: NXP LPC18xx PWM/SCT driver pwm-pca9685: Support changing the output frequency pwm-pca9685: Fix several driver bugs pwm: kona: Modify settings application sequence pwm: pca9685: Drop owner assignment pwm: Add to device-drivers documentation pwm: Clean up kerneldoc pwm: Remove useless whitespace pwm: sysfs: Remove unnecessary padding pwm: sysfs: Properly convert from enum to string pwm: Make use of pwm_get_xxx() helpers where appropriate pwm: Add pwm_get_polarity() helper function pwm: Constify PWM device where possible pwm: Add the pwm_is_enabled() helper commit bd2843fe1f29f6145c623ae9390f144cefaa611d Author: Al Viro Date: Wed Sep 9 10:16:39 2015 +0100 fix ufs write vs readpage race when writing into a hole Followup to the UFS series - with the way we clear the new blocks (via buffer cache, possibly on more than a page worth of file) we really should not insert a reference to new block into inode block tree until after we'd cleared it. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds fs/ufs/balloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit daf0e1ed578f65e8395102549e135887e6661860 Merge: 065d80b 997e120 Author: Linus Torvalds Date: Wed Sep 9 10:37:41 2015 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio updates from Michael Tsirkin: "Virtio fixes and features for 4.3: - virtio-mmio can now be auto-loaded through acpi. - virtio blk supports extended partitions. - total memory is better reported when using virtio balloon with auto-deflate. - cache control is re-enabled when using virtio-blk in modern mode" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio_balloon: do not change memory amount visible via /proc/meminfo virtio_ballon: change stub of release_pages_by_pfn virtio-blk: Allow extended partitions virtio_mmio: add ACPI probing virtio-blk: use VIRTIO_BLK_F_WCE and VIRTIO_BLK_F_CONFIG_WCE in virtio1 commit 065d80b4bf314df143aa9f260a154a24e33b4fbe Merge: 949feac e7e98d7 Author: Linus Torvalds Date: Wed Sep 9 10:27:59 2015 -0700 Merge tag 'metag-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag Pull metag updates from James Hogan: "Metag architecture changes for v4.3. Just a couple of changes for v4.3-rc1. A preparatory IRQ patch to prepare for moving irq_data struct members, and a tweak to Documentation/features since Meta2 could support THP" * tag 'metag-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: Documentation/features/vm: Meta2 is capable of THP metag/irq: Use access helper irq_data_get_affinity_mask() commit 949feacb8af3659037dd34ef177e9bc727627859 Merge: 384989b 08441d4 Author: Linus Torvalds Date: Wed Sep 9 10:07:32 2015 -0700 Merge tag 'nios2-v4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2 Pull nios2 updates from Ley Foon Tan: - add defconfig and device tree for max 10 support - migrate to new 'set-state' interface for timer - fix unaligned handler - MAINTAINERS: update nios2 git repo * tag 'nios2-v4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2: nios2: add Max10 defconfig nios2: Add Max10 device tree MAINTAINERS: update nios2 git repo nios2: remove unused statistic counters nios2: fixed variable imm16 to s16 nios2/time: Migrate to new 'set-state' interface commit 384989b58d45e5478d555cdb4ac79336a88a45cc Merge: d77e92e 5fb4e28 Author: Linus Torvalds Date: Wed Sep 9 09:59:35 2015 -0700 Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs updates from Steve French: "Small cifs fix and a patch for improved debugging" * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: cifs: Fix use-after-free on mid_q_entry Update cifs version number Add way to query server fs info for smb3 commit d77e92e270edd79a2218ce0ba5b6179ad0c93175 Author: Ross Zwisler Date: Wed Sep 9 10:29:40 2015 -0600 dax: update PMD fault handler with PMEM API As part of the v4.3 merge window the DAX code was updated by Matthew and Kirill to handle PMD pages. Also as part of the v4.3 merge window we updated the DAX code to do proper PMEM flushing (commit 2765cfbb342c: "dax: update I/O path to do proper PMEM flushing"). The additional code added by the DAX PMD patches also needs to be updated to properly use the PMEM API. This ensures that after a PMD fault is handled the zeros written to the newly allocated pages are durable on the DIMMs. linux/dax.h is included to get rid of a bunch of sparse warnings. Signed-off-by: Ross Zwisler Cc: Matthew Wilcox , Cc: Dan Williams Cc: Kirill Shutemov Signed-off-by: Linus Torvalds fs/dax.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 02cc2ccfe771677db3cd40a71837e1467ebc839a Author: Mike Frysinger Date: Wed Apr 22 21:28:04 2015 -0400 Revert "Hexagon: fix signal.c compile error" This reverts commit f3f601c1d2728f02544cfd143eaa82e5398b3e9b. UAPI headers cannot use "uapi/" in their paths by design -- when they're installed, they do not have the uapi/ prefix. Otherwise doing so breaks userland badly. Signed-off-by: Mike Frysinger Signed-off-by: Richard Kuo arch/hexagon/include/uapi/asm/signal.h | 2 -- 1 file changed, 2 deletions(-) commit 26d2177e977c912863ac04f6c1a967e793ca3a56 Merge: a794b4f d1178cb Author: Linus Torvalds Date: Wed Sep 9 08:33:31 2015 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma Pull inifiniband/rdma updates from Doug Ledford: "This is a fairly sizeable set of changes. I've put them through a decent amount of testing prior to sending the pull request due to that. There are still a few fixups that I know are coming, but I wanted to go ahead and get the big, sizable chunk into your hands sooner rather than waiting for those last few fixups. Of note is the fact that this creates what is intended to be a temporary area in the drivers/staging tree specifically for some cleanups and additions that are coming for the RDMA stack. We deprecated two drivers (ipath and amso1100) and are waiting to hear back if we can deprecate another one (ehca). We also put Intel's new hfi1 driver into this area because it needs to be refactored and a transfer library created out of the factored out code, and then it and the qib driver and the soft-roce driver should all be modified to use that library. I expect drivers/staging/rdma to be around for three or four kernel releases and then to go away as all of the work is completed and final deletions of deprecated drivers are done. Summary of changes for 4.3: - Create drivers/staging/rdma - Move amso1100 driver to staging/rdma and schedule for deletion - Move ipath driver to staging/rdma and schedule for deletion - Add hfi1 driver to staging/rdma and set TODO for move to regular tree - Initial support for namespaces to be used on RDMA devices - Add RoCE GID table handling to the RDMA core caching code - Infrastructure to support handling of devices with differing read and write scatter gather capabilities - Various iSER updates - Kill off unsafe usage of global mr registrations - Update SRP driver - Misc mlx4 driver updates - Support for the mr_alloc verb - Support for a netlink interface between kernel and user space cache daemon to speed path record queries and route resolution - Ininitial support for safe hot removal of verbs devices" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (136 commits) IB/ipoib: Suppress warning for send only join failures IB/ipoib: Clean up send-only multicast joins IB/srp: Fix possible protection fault IB/core: Move SM class defines from ib_mad.h to ib_smi.h IB/core: Remove unnecessary defines from ib_mad.h IB/hfi1: Add PSM2 user space header to header_install IB/hfi1: Add CSRs for CONFIG_SDMA_VERBOSITY mlx5: Fix incorrect wc pkey_index assignment for GSI messages IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow IB/uverbs: reject invalid or unknown opcodes IB/cxgb4: Fix if statement in pick_local_ip6adddrs IB/sa: Fix rdma netlink message flags IB/ucma: HW Device hot-removal support IB/mlx4_ib: Disassociate support IB/uverbs: Enable device removal when there are active user space applications IB/uverbs: Explicitly pass ib_dev to uverbs commands IB/uverbs: Fix race between ib_uverbs_open and remove_one IB/uverbs: Fix reference counting usage of event files IB/core: Make ib_dealloc_pd return void IB/srp: Create an insecure all physical rkey only if needed ... commit 7a5938201834a9c25155176d0f5942d48336b244 Author: Josh Wu Date: Fri Jul 31 18:51:20 2015 +0200 ARM: at91: pwm: atmel-hlcdc: Add at91sam9n12 errata The errata for HLCDC PWM of at91sam9n12 are the same as for at91sam9x5. Signed-off-by: Josh Wu Acked-by: Alexandre Belloni Signed-off-by: Thierry Reding drivers/pwm/pwm-atmel-hlcdc.c | 5 +++++ 1 file changed, 5 insertions(+) commit b0dabcc6f8b7cb08d5c81ecbc642105d67a4c1d2 Author: Ariel D'Alessandro Date: Wed Aug 5 23:31:47 2015 -0300 pwm: Add NXP LPC18xx PWM/SCT DT binding documentation Add the devicetree binding document for NXP LPC18xx PWM/SCT. Signed-off-by: Ariel D'Alessandro Signed-off-by: Thierry Reding .../devicetree/bindings/pwm/lpc1850-sct-pwm.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 841e6f90bb789a1372087b22c39f3a9ef2e02758 Author: Ariel D'Alessandro Date: Wed Aug 5 23:31:46 2015 -0300 pwm: NXP LPC18xx PWM/SCT driver This commit adds support for NXP LPC18xx PWM/SCT. NXP LPC SoCs family, which includes LPC18xx/LPC43xx, provides a State Configurable Timer (SCT) which can be configured as a Pulse Width Modulator. Other SoCs in that family may share the same hardware. The PWM supports a total of 16 channels, but only 15 can be simultaneously requested. There's only one period, global to all the channels, thus PWM driver will refuse setting different values to it, unless there's only one channel requested. Signed-off-by: Ariel D'Alessandro [thierry.reding@gmail.com: remove excessive padding of fields] Signed-off-by: Thierry Reding drivers/pwm/Kconfig | 12 ++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-lpc18xx-sct.c | 465 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 478 insertions(+) commit f1ec5ec7a94ba8138f9cbdc1e9e3b03aee29c4df Author: Liam Girdwood Date: Wed Sep 9 12:10:31 2015 +0100 ASoC: intel: Fix SSP port configuration after RTD3 resume. Currently the SSP port settings are being clobbered as part of the DSP RTD3 restore logic. make sure we save the correct params and restore them at resume. The FW sadly does not save SSP settings as part of the PM context. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/haswell/sst-haswell-ipc.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 721b51fcf91898299d96f4b72cb9434cda29dce6 Author: John Lin Date: Wed Sep 9 16:47:48 2015 +0800 ASoC: rt5645: Add struct dmi_system_id "Google Ultima" for chrome platform Signed-off-by: John Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 7 +++++++ 1 file changed, 7 insertions(+) commit acd29f7b22262d9e848393b9b6ae13eb42d22514 Author: Chris Wilson Date: Tue Sep 8 14:17:13 2015 +0100 drm/i915: Limit the number of loops for reading a split 64bit register In I915_READ64_2x32 we attempt to read a 64bit register using 2 32bit reads. Due to the nature of the registers we try to read in this manner, they may increment between the two instruction (e.g. a timestamp counter). To keep the result accurate, we repeat the read if we detect an overflow (i.e. the upper value varies). However, some hardware is just plain flaky and may endless loop as the the upper 32bits are not stable. Just give up after a couple of tries and report whatever we read last. v2: Use the most recent values when erring out on an unstable register. Reported-by: russianneuromancer@ya.ru Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91906 Signed-off-by: Chris Wilson Cc: Michał Winiarski Cc: Daniel Vetter Cc: Jani Nikula Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 438386853d4c0c48fe73bf05a7d61c70ca5a3bfb Author: Yan, Zheng Date: Mon Sep 7 15:46:24 2015 +0800 ceph: improve readahead for file holes When readahead encounters file holes, osd reply returns error -ENOENT, finish_read() skips adding pages to the the page cache. So readahead does not work for file holes. The fix is adding zero pages to the page cache when -ENOENT is returned. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 55b0b31cbc09f80db384671e22cdc94b2aa26b29 Author: Yan, Zheng Date: Mon Sep 7 11:35:01 2015 +0800 ceph: get inode size for each append write Signed-off-by: Yan, Zheng fs/ceph/file.c | 6 ++++++ 1 file changed, 6 insertions(+) commit d15f9d694b77fe5e4ea12b3031ecaa13b5aa2b10 Author: Ilya Dryomov Date: Wed Sep 2 11:37:09 2015 +0300 libceph: check data_len in ->alloc_msg() Only ->alloc_msg() should check data_len of the incoming message against the preallocated ceph_msg, doing it in the messenger is not right. The contract is that either ->alloc_msg() returns a ceph_msg which will fit all of the portions of the incoming message, or it returns NULL and possibly sets skip, signaling whether NULL is due to an -ENOMEM. ->alloc_msg() should be the only place where we make the skip/no-skip decision. I stumbled upon this while looking at con/osd ref counting. Right now, if we get a non-extent message with a larger data portion than we are prepared for, ->alloc_msg() returns a ceph_msg, and then, when we skip it in the messenger, we don't put the con/osd ref acquired in ceph_con_in_msg_alloc() (which is normally put in process_message()), so this also fixes a memory leak. An existing BUG_ON in ceph_msg_data_cursor_init() ensures we don't corrupt random memory should a buggy ->alloc_msg() return an unfit ceph_msg. While at it, I changed the "unknown tid" dout() to a pr_warn() to make sure all skips are seen and unified format strings. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder net/ceph/messenger.c | 7 ------- net/ceph/osd_client.c | 51 ++++++++++++++++++--------------------------------- 2 files changed, 18 insertions(+), 40 deletions(-) commit 7845989cb4b3da1db903918c844fccb9817d34a0 Author: Kolmakov Dmitriy Date: Mon Sep 7 09:05:48 2015 +0000 net: tipc: fix stall during bclink wakeup procedure If an attempt to wake up users of broadcast link is made when there is no enough place in send queue than it may hang up inside the tipc_sk_rcv() function since the loop breaks only after the wake up queue becomes empty. This can lead to complete CPU stall with the following message generated by RCU: INFO: rcu_sched self-detected stall on CPU { 0} (t=2101 jiffies g=54225 c=54224 q=11465) Task dump for CPU 0: tpch R running task 0 39949 39948 0x0000000a ffffffff818536c0 ffff88181fa037a0 ffffffff8106a4be 0000000000000000 ffffffff818536c0 ffff88181fa037c0 ffffffff8106d8a8 ffff88181fa03800 0000000000000001 ffff88181fa037f0 ffffffff81094a50 ffff88181fa15680 Call Trace: [] sched_show_task+0xae/0x120 [] dump_cpu_task+0x38/0x40 [] rcu_dump_cpu_stacks+0x90/0xd0 [] rcu_check_callbacks+0x3eb/0x6e0 [] ? account_system_time+0x7f/0x170 [] update_process_times+0x34/0x60 [] tick_sched_handle.isra.18+0x31/0x40 [] tick_sched_timer+0x3c/0x70 [] __run_hrtimer.isra.34+0x3d/0xc0 [] hrtimer_interrupt+0xc5/0x1e0 [] ? native_smp_send_reschedule+0x42/0x60 [] local_apic_timer_interrupt+0x34/0x60 [] smp_apic_timer_interrupt+0x3c/0x60 [] apic_timer_interrupt+0x6b/0x70 [] ? _raw_spin_unlock_irqrestore+0x9/0x10 [] __wake_up_sync_key+0x4f/0x60 [] tipc_write_space+0x31/0x40 [tipc] [] filter_rcv+0x31f/0x520 [tipc] [] ? tipc_sk_lookup+0xc9/0x110 [tipc] [] ? _raw_spin_lock_bh+0x19/0x30 [] tipc_sk_rcv+0x2dc/0x3e0 [tipc] [] tipc_bclink_wakeup_users+0x2f/0x40 [tipc] [] tipc_node_unlock+0x186/0x190 [tipc] [] ? kfree_skb+0x2c/0x40 [] tipc_rcv+0x2ac/0x8c0 [tipc] [] tipc_l2_rcv_msg+0x38/0x50 [tipc] [] __netif_receive_skb_core+0x5a3/0x950 [] __netif_receive_skb+0x13/0x60 [] netif_receive_skb_internal+0x1e/0x90 [] napi_gro_receive+0x78/0xa0 [] tg3_poll_work+0xc54/0xf40 [tg3] [] ? consume_skb+0x2c/0x40 [] tg3_poll_msix+0x41/0x160 [tg3] [] net_rx_action+0xe2/0x290 [] __do_softirq+0xda/0x1f0 [] irq_exit+0x76/0xa0 [] do_IRQ+0x55/0xf0 [] common_interrupt+0x6b/0x6b The issue occurs only when tipc_sk_rcv() is used to wake up postponed senders: tipc_bclink_wakeup_users() // wakeupq - is a queue which consists of special // messages with SOCK_WAKEUP type. tipc_sk_rcv(wakeupq) ... while (skb_queue_len(inputq)) { filter_rcv(skb) // Here the type of message is checked // and if it is SOCK_WAKEUP then // it tries to wake up a sender. tipc_write_space(sk) wake_up_interruptible_sync_poll() } After the sender thread is woke up it can gather control and perform an attempt to send a message. But if there is no enough place in send queue it will call link_schedule_user() function which puts a message of type SOCK_WAKEUP to the wakeup queue and put the sender to sleep. Thus the size of the queue actually is not changed and the while() loop never exits. The approach I proposed is to wake up only senders for which there is enough place in send queue so the described issue can't occur. Moreover the same approach is already used to wake up senders on unicast links. I have got into the issue on our product code but to reproduce the issue I changed a benchmark test application (from tipcutils/demos/benchmark) to perform the following scenario: 1. Run 64 instances of test application (nodes). It can be done on the one physical machine. 2. Each application connects to all other using TIPC sockets in RDM mode. 3. When setup is done all nodes start simultaneously send broadcast messages. 4. Everything hangs up. The issue is reproducible only when a congestion on broadcast link occurs. For example, when there are only 8 nodes it works fine since congestion doesn't occur. Send queue limit is 40 in my case (I use a critical importance level) and when 64 nodes send a message at the same moment a congestion occurs every time. Signed-off-by: Dmitry S Kolmakov Reviewed-by: Jon Maloy Acked-by: Ying Xue Signed-off-by: David S. Miller net/tipc/bcast.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 7b9018738e43c7c7693632174c69fde83b8edc07 Author: Barry Song Date: Mon Sep 7 03:15:20 2015 +0000 dm9000: fix a typo Signed-off-by: Barry Song Signed-off-by: David S. Miller drivers/net/ethernet/davicom/dm9000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7a577f013d6745c800a11a2911ddc9a3214e7f09 Author: Vivien Didelot Date: Sat Sep 5 21:49:41 2015 -0400 net: bridge: remove unnecessary switchdev include Remove the unnecessary switchdev.h include from br_netlink.c. Signed-off-by: Vivien Didelot Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_netlink.c | 1 - 1 file changed, 1 deletion(-) commit bf361ad38165939049a2649b1a0078f3268d4bd1 Author: Vivien Didelot Date: Sat Sep 5 21:27:57 2015 -0400 net: bridge: check __vlan_vid_del for error Since __vlan_del can return an error code, change its inner function __vlan_vid_del to return an eventual error from switchdev_port_obj_del. Signed-off-by: Vivien Didelot Acked-by: Jiri Pirko Signed-off-by: David S. Miller net/bridge/br_vlan.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 39797a279d62972cd914ef580fdfacb13e508bf8 Author: Florian Fainelli Date: Sat Sep 5 13:07:27 2015 -0700 net: dsa: bcm_sf2: Fix ageing conditions and operation The comparison check between cur_hw_state and hw_state is currently invalid because cur_hw_state is right shifted by G_MISTP_SHIFT, while hw_state is not, so we end-up comparing bits 2:0 with bits 7:5, which is going to cause an additional aging to occur. Fix this by not shifting cur_hw_state while reading it, but instead, mask the value with the appropriately shitfted bitmask. The other problem with the fast-ageing process is that we did not set the EN_AGE_DYNAMIC bit to request the ageing to occur for dynamically learned MAC addresses. Finally, write back 0 to the FAST_AGE_CTRL register to avoid leaving spurious bits sets from one operation to the other. Fixes: 12f460f23423 ("net: dsa: bcm_sf2: add HW bridging support") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/bcm_sf2.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit b855d45dc3175eb3e602b945805c7b6aa8c04559 Author: Michael Ellerman Date: Tue Sep 8 15:16:09 2015 +1000 powerpc: Wire up sys_userfaultfd() The selftest passes on 64-bit LE and BE. Signed-off-by: Michael Ellerman 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 a794b4f3292160bb3fd0f1f90ec8df454e3b17b3 Merge: f6f7a63 bf2d087 Author: Linus Torvalds Date: Tue Sep 8 18:19:17 2015 -0700 Merge tag 'for-linus-4.3' of git://git.code.sf.net/p/openipmi/linux-ipmi Pull IPMI updates from Corey Minyard: "Most of these have been sitting in linux-next for more than a release, particularly commit 0fbcf4af7c83 ("ipmi: Convert the IPMI SI ACPI handling to a platform device") which is probably the most complex patch. That is also the one that changes drivers/acpi/acpi_pnp.c. The change in that file is only removing IPMI from a "special platform devices" list, since I convert it to the standard PNP interface. I posted this one to the ACPI list twice and got no response, and it seems to work well in my testing, so I'm hoping it's good. Hidehiro Kawai posted a set of changes that improves the panic time handling in the IPMI driver. The rest of the changes are minor bug fixes or cleanups and some documentation" * tag 'for-linus-4.3' of git://git.code.sf.net/p/openipmi/linux-ipmi: ipmi:ssif: Add a module parm to specify that SMBus alerts don't work ipmi: add of_device_id in MODULE_DEVICE_TABLE ipmi: Compensate for BMCs that wont set the irq enable bit ipmi: Don't call receive handler in the panic context ipmi: Avoid touching possible corrupted lists in the panic context ipmi: Don't flush messages in sender() in run-to-completion mode ipmi: Factor out message flushing procedure ipmi: Remove unneeded set_run_to_completion call ipmi: Make some data const that was only read ipmi: constify SSIF ACPI device ids ipmi: Delete an unnecessary check before the function call "cleanup_one_si" char:ipmi - Change 1 to true for bool type variables during initialization. impi:Remove unneeded setting of module owner to THIS_MODULE in the platform structure, powernv_ipmi_driver ipmi: Add a comment in how messages are delivered from the lower layer ipmi/powernv: Fix potential invalid pointer dereference ipmi: Convert the IPMI SI ACPI handling to a platform device ipmi: Add device tree bindings information commit f6f7a6369203fa3e07efb7f35cfd81efe9f25b07 Merge: 839fe91 df69f52 Author: Linus Torvalds Date: Tue Sep 8 17:52:23 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge second patch-bomb from Andrew Morton: "Almost all of the rest of MM. There was an unusually large amount of MM material this time" * emailed patches from Andrew Morton : (141 commits) zpool: remove no-op module init/exit mm: zbud: constify the zbud_ops mm: zpool: constify the zpool_ops mm: swap: zswap: maybe_preload & refactoring zram: unify error reporting zsmalloc: remove null check from destroy_handle_cache() zsmalloc: do not take class lock in zs_shrinker_count() zsmalloc: use class->pages_per_zspage zsmalloc: consider ZS_ALMOST_FULL as migrate source zsmalloc: partial page ordering within a fullness_list zsmalloc: use shrinker to trigger auto-compaction zsmalloc: account the number of compacted pages zsmalloc/zram: introduce zs_pool_stats api zsmalloc: cosmetic compaction code adjustments zsmalloc: introduce zs_can_compact() function zsmalloc: always keep per-class stats zsmalloc: drop unused variable `nr_to_migrate' mm/memblock.c: fix comment in __next_mem_range() mm/page_alloc.c: fix type information of memoryless node memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node() ... commit 839fe9156fbe89c3157aa6146d22090f8cffddd8 Merge: 54283ae 6dc0dcd Author: Linus Torvalds Date: Tue Sep 8 17:45:05 2015 -0700 Merge branch 'parisc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc updates from Helge Deller: "The most important changes in this patchset are: - re-enable 64bit PCI bus addresses which were temporarily disabled for PA-RISC in kernel 4.2 - fix the 64bit CAS operation in the LWS path which now enables us to enable the 64bit gcc atomic builtins even on 32bit userspace with 64bit kernel - fix a long-standing bug which sometimes crashed kernel at bootup while serial interrupt wasn't registered yet" * 'parisc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Use platform_device_register_simple("rtc-generic") parisc: Drop CONFIG_SMP around update_cr16_clocksource() parisc: Use double word condition in 64bit CAS operation parisc: Filter out spurious interrupts in PA-RISC irq handler parisc: Additionally check for in_atomic() in page fault handler PCI,parisc: Enable 64-bit bus addresses on PA-RISC parisc: Define ioremap_uc and ioremap_wc commit 54283aed90c3cf353e2c01a1d1ca853f5eedf92a Merge: 9a9952b 7eba7d9 Author: Linus Torvalds Date: Tue Sep 8 17:39:10 2015 -0700 Merge tag 'linux-kselftest-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull kselftest update from Shuah Khan: "This update adds new zram test and fixes to problems found during testing this new zram test. In addition, there are a few bug fixes and ksefltest improvement patches from Linaro developers. I will send another update later on this week to fix kselftest breakage due to commit 2bf9e0ab08c6 ("locking/static_keys: Provide a selftest") after the fix soaks in next for a couple of days" * tag 'linux-kselftest-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/zram: Makefile fix selftests/zram: must be run as root selftests: breakpoints: fix installing error on the architecture except x86 selftests: check before install selftests/zram: Adding zram tests commit 953ba9ff77f3d08635712eaeffb218d46889b58a Author: Bartlomiej Zolnierkiewicz Date: Tue Sep 8 18:41:03 2015 +0200 cpufreq-dt: add suspend frequency support Add suspend frequency support and if needed set it to the frequency obtained from the suspend opp (can be defined using opp-v2 bindings and is optional). Acked-by: Viresh Kumar Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 201f3716575781b83259ed026845a213c2355035 Author: Bartlomiej Zolnierkiewicz Date: Tue Sep 8 18:41:02 2015 +0200 cpufreq: allow cpufreq_generic_suspend() to work without suspend frequency Some cpufreq drivers may set suspend frequency only for selected setups but still would like to use the generic suspend handler. Thus don't treat !policy->suspend_freq condition as an incorrect one. Acked-by: Viresh Kumar Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9a9952bbd76a13fc2c95c28f09ba1801a3664929 Merge: e81b594 4ad7956 Author: Linus Torvalds Date: Tue Sep 8 17:22:35 2015 -0700 Merge tag 'iommu-updates-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull iommu updates for from Joerg Roedel: "This time the IOMMU updates are mostly cleanups or fixes. No big new features or drivers this time. In particular the changes include: - Bigger cleanup of the Domain<->IOMMU data structures and the code that manages them in the Intel VT-d driver. This makes the code easier to understand and maintain, and also easier to keep the data structures in sync. It is also a preparation step to make use of default domains from the IOMMU core in the Intel VT-d driver. - Fixes for a couple of DMA-API misuses in ARM IOMMU drivers, namely in the ARM and Tegra SMMU drivers. - Fix for a potential buffer overflow in the OMAP iommu driver's debug code - A couple of smaller fixes and cleanups in various drivers - One small new feature: Report domain-id usage in the Intel VT-d driver to easier detect bugs where these are leaked" * tag 'iommu-updates-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (83 commits) iommu/vt-d: Really use upper context table when necessary x86/vt-d: Fix documentation of DRHD iommu/fsl: Really fix init section(s) content iommu/io-pgtable-arm: Unmap and free table when overwriting with block iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h iommu/msm: Use BUG_ON instead of if () BUG() iommu/vt-d: Access iomem correctly iommu/vt-d: Make two functions static iommu/vt-d: Use BUG_ON instead of if () BUG() iommu/vt-d: Return false instead of 0 in irq_remapping_cap() iommu/amd: Use BUG_ON instead of if () BUG() iommu/amd: Make a symbol static iommu/amd: Simplify allocation in irq_remapping_alloc() iommu/tegra-smmu: Parameterize number of TLB lines iommu/tegra-smmu: Factor out tegra_smmu_set_pde() iommu/tegra-smmu: Extract tegra_smmu_pte_get_use() iommu/tegra-smmu: Use __GFP_ZERO to allocate zeroed pages iommu/tegra-smmu: Remove PageReserved manipulation iommu/tegra-smmu: Convert to use DMA API iommu/tegra-smmu: smmu_flush_ptc() wants device addresses ... commit d9df93ec8eb751f96c8070f104fa2a588b5ad345 Merge: 63431f7 4eafbd1 Author: Rafael J. Wysocki Date: Wed Sep 9 02:21:06 2015 +0200 Merge branch 'pm-opp' into pm-cpufreq commit 4eafbd15b6c84cd3f6c76022c8a6c27f7cc076e1 Author: Bartlomiej Zolnierkiewicz Date: Tue Sep 8 18:41:01 2015 +0200 PM / OPP: add dev_pm_opp_get_suspend_opp() helper Add dev_pm_opp_get_suspend_opp() helper to obtain suspend opp. Acked-by: Viresh Kumar Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 30 ++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 6 ++++++ 2 files changed, 36 insertions(+) commit f33b77408a91d4427374010897b90af678dc47be Author: Geert Uytterhoeven Date: Tue Sep 8 19:06:03 2015 +0200 staging: board: Migrate away from __pm_genpd_name_add_device() The named genpd APIs are deprecated. Hence convert the board staging code from using genpd names to DT node paths. For now this supports PM domains with "#power-domain-cells = <0>" only. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Acked-by: Greg Kroah-Hartman Signed-off-by: Rafael J. Wysocki drivers/staging/board/armadillo800eva.c | 2 +- drivers/staging/board/board.c | 36 ++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) commit e81b594cdae73f341ea13bc9fb2b57a5b739c1a3 Merge: fa81558 072502a Author: Linus Torvalds Date: Tue Sep 8 16:48:55 2015 -0700 Merge tag 'regmap-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap updates from Mark Brown: "This has been a busy release for regmap. By far the biggest set of changes here are those from Markus Pargmann which implement support for block transfers in smbus devices. This required quite a bit of refactoring but leaves us better able to handle odd restrictions that controllers may have and with better performance on smbus. Other new features include: - Fix interactions with lockdep for nested regmaps (eg, when a device using regmap is connected to a bus where the bus controller has a separate regmap). Lockdep's default class identification is too crude to work without help. - Support for must write bitfield operations, useful for operations which require writing a bit to trigger them from Kuniori Morimoto. - Support for delaying during register patch application from Nariman Poushin. - Support for overriding cache state via the debugfs implementation from Richard Fitzgerald" * tag 'regmap-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (25 commits) regmap: fix a NULL pointer dereference in __regmap_init regmap: Support bulk reads for devices without raw formatting regmap-i2c: Add smbus i2c block support regmap: Add raw_write/read checks for max_raw_write/read sizes regmap: regmap max_raw_read/write getter functions regmap: Introduce max_raw_read/write for regmap_bulk_read/write regmap: Add missing comments about struct regmap_bus regmap: No multi_write support if bus->write does not exist regmap: Split use_single_rw internally into use_single_read/write regmap: Fix regmap_bulk_write for bus writes regmap: regmap_raw_read return error on !bus->read regulator: core: Print at debug level on debugfs creation failure regmap: Fix regmap_can_raw_write check regmap: fix typos in regmap.c regmap: Fix integertypes for register address and value regmap: Move documentation to regmap.h regmap: Use different lockdep class for each regmap init call thermal: sti: Add parentheses around bridge->ops->regmap_init call mfd: vexpress: Add parentheses around bridge->ops->regmap_init call regmap: debugfs: Fix misuse of IS_ENABLED ... commit d70e22d5bcf700a53881acad71a6c669be6eec93 Author: Viresh Kumar Date: Thu Jul 16 16:56:19 2015 +0530 hexagon/time: Migrate to new 'set-state' interface Migrate hexagon driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: linux-hexagon@vger.kernel.org Signed-off-by: Viresh Kumar Signed-off-by: Richard Kuo arch/hexagon/kernel/time.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit fa815580fb87d1b8c218f9eba8122b2fc3f1a68c Merge: 85579ad 57817e6 Author: Linus Torvalds Date: Tue Sep 8 16:42:55 2015 -0700 Merge tag 'fbdev-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull fbdev updates from Tomi Valkeinen: "Minor fixes and cleanups" * tag 'fbdev-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: video: fbdev: atmel_lcdfb: remove useless include video: fbdev: pxa168fb: Use devm_clk_get fbdev: ssd1307fb: fix error return code fbdev: fix snprintf() limit in show_bl_curve() video: fbdev: s3c-fb: Constify platform_device_id video: fbdev: atmel: fix warning for const return value video: fbdev: Drop owner assignment from platform_driver video: fbdev: Drop owner assignment from i2c_driver fbdev: remove unnecessary memset in vfb framebuffer: disable vgacon on microblaze arch fbdev: udlfb: remove unneeded initialization in few places fbdev: Allow compile test of GPIO consumers if !GPIOLIB fbdev: fix cea_modes array size commit 12f0721c5a70408e86257c5c99605cf743cd44c6 Author: Aristeu Rozanski Date: Fri Jun 12 15:08:17 2015 -0400 sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell dimm_dev_type has been incorrectly determined in sb_edac. This patch fixes it for Ivy Bridge and Haswell only since nothing like exists for Sandy Bridge. We tested this patch in multiple systems matching the results with the installed memory modules. Acked-by: Tony Luck Signed-off-by: Aristeu Rozanski Signed-off-by: Mauro Carvalho Chehab drivers/edac/sb_edac.c | 60 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 11 deletions(-) commit 85579ad7f1dfc0b72bb243b7227bc4f663035e71 Merge: 3af6e98 092b6db Author: Linus Torvalds Date: Tue Sep 8 16:33:16 2015 -0700 Merge tag 'mmc-v4.3' of git://git.linaro.org/people/ulf.hansson/mmc Pull MMC updates from Ulf Hansson: "MMC core: - Fix a race condition in the request handling - Skip trim commands for some buggy kingston eMMCs - An optimization and a correction for erase groups - Set CMD23 quirk for some Sandisk cards MMC host: - sdhci: Give GPIO CD higher precedence and don't poll when it's used - sdhci: Fix DMA memory leakage - sdhci: Some updates for clock management - sdhci-of-at91: introduce driver for the Atmel SDMMC - sdhci-of-arasan: Add support for sdhci-5.1 - sdhci-esdhc-imx: Add support for imx7d which also supports HS400 - sdhci: A collection of fixes and improvements for various sdhci hosts - omap_hsmmc: Modernization of the regulator code - dw_mmc: A couple of fixes for DMA and PIO mode - usdhi6rol0: A few fixes and support probe deferral for regulators - pxamci: Convert to use dmaengine - sh_mmcif: Fix the suspend process in a short term solution - tmio: Adjust timeout for commands - sunxi: Fix timeout while gating/ungating clock" * tag 'mmc-v4.3' of git://git.linaro.org/people/ulf.hansson/mmc: (67 commits) mmc: android-goldfish: remove incorrect __iomem annotation mmc: core: fix race condition in mmc_wait_data_done mmc: host: omap_hsmmc: remove CONFIG_REGULATOR check mmc: host: omap_hsmmc: use ios->vdd for setting vmmc voltage mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status mmc: host: omap_hsmmc: enable/disable vmmc_aux regulator based on previous state mmc: host: omap_hsmmc: don't use ->set_power to set initial regulator state mmc: host: omap_hsmmc: avoid pbias regulator enable on power off mmc: host: omap_hsmmc: add separate function to set pbias mmc: host: omap_hsmmc: add separate functions for enable/disable supply mmc: host: omap_hsmmc: return error if any of the regulator APIs fail mmc: host: omap_hsmmc: remove unnecessary pbias set_voltage mmc: host: omap_hsmmc: use mmc_host's vmmc and vqmmc mmc: host: omap_hsmmc: use the ocrmask provided by the vmmc regulator mmc: host: omap_hsmmc: cleanup omap_hsmmc_reg_get() mmc: host: omap_hsmmc: return on fatal errors from omap_hsmmc_reg_get mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc mmc: sdhci-of-at91: fix platform_no_drv_owner.cocci warnings mmc: sh_mmcif: Fix suspend process mmc: usdhi6rol0: fix error return code ... commit 7179385afef252cd3f52c0a06cc0c405ae6d66bc Author: Aristeu Rozanski Date: Fri Jun 12 09:44:52 2015 -0400 sb_edac: look harder for DDRIO on Haswell systems In case the memory banks are populated so the first channel isn't used, the DDRIO PCI device won't be visible and it won't be possible to determine the memory type. Acked-by: Tony Luck Signed-off-by: Aristeu Rozanski Signed-off-by: Mauro Carvalho Chehab drivers/edac/sb_edac.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 3af6e98f25d1f68b9c36beee330342944a4e0048 Merge: acceba5 628b3198 Author: Linus Torvalds Date: Tue Sep 8 16:26:18 2015 -0700 Merge tag 'platform-drivers-x86-v4.3-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform driver updates from Darren Hart: "Significant work on toshiba_acpi, including new hardware support, refactoring, and cleanups. Extend device support for asus, ideapad, and acer systems. New surface pro 3 buttons driver. Misc minor cleanups for thinkpad and hp-wireless. acer-wmi: - No rfkill on HP Omen 15 wifi thinkpad_acpi: - Remove side effects from vdbg_printk -> no_printk macro surface pro 3: - Add support driver for Surface Pro 3 buttons hp-wireless: - remove unneeded goto/label in hpwl_init ideapad-laptop: - add alternative representation for Yoga 2 to DMI table - Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list asus-laptop: - Add key found on Asus F3M MAINTAINERS: - Remove Toshiba Linux mailing list address toshiba_acpi: - Bump driver version to 0.23 - Remove unnecessary checks and returns in HCI/SCI functions - Refactor *{get, set} functions return value - Remove "*not supported" feature prints - Change *available functions return type - Add set_fan_status function - Change some variables to avoid warnings from ninja-check - Reorder toshiba_acpi_alt_keymap entries - Remove unused wireless defines - Transflective backlight updates - Avoid registering input device on WMI event laptops - Add /dev/toshiba_acpi device - Adapt /proc/acpi/toshiba/keys to TOS1900 devices" * tag 'platform-drivers-x86-v4.3-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (21 commits) acer-wmi: No rfkill on HP Omen 15 wifi thinkpad_acpi: Remove side effects from vdbg_printk -> no_printk macro surface pro 3: Add support driver for Surface Pro 3 buttons hp-wireless: remove unneeded goto/label in hpwl_init ideapad-laptop: add alternative representation for Yoga 2 to DMI table asus-laptop: Add key found on Asus F3M MAINTAINERS: Remove Toshiba Linux mailing list address ideapad-laptop: Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list toshiba_acpi: Bump driver version to 0.23 toshiba_acpi: Remove unnecessary checks and returns in HCI/SCI functions toshiba_acpi: Refactor *{get, set} functions return value toshiba_acpi: Remove "*not supported" feature prints toshiba_acpi: Change *available functions return type toshiba_acpi: Add set_fan_status function toshiba_acpi: Change some variables to avoid warnings from ninja-check toshiba_acpi: Reorder toshiba_acpi_alt_keymap entries toshiba_acpi: Remove unused wireless defines toshiba_acpi: Transflective backlight updates toshiba_acpi: Avoid registering input device on WMI event laptops toshiba_acpi: Add /dev/toshiba_acpi device ... commit acceba598eda9817bc187f3a683a2d2ee7e7fbc7 Merge: c191761 5a73882 Author: Linus Torvalds Date: Tue Sep 8 16:16:26 2015 -0700 Merge branch 'i2c/for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: "Features: - new drivers: Renesas EMEV2, register based MUX, NXP LPC2xxx - core: scans DT and assigns wakeup interrupts. no driver changes needed. - core: some refcouting issues fixed and better API for that - core: new helper function for best effort block read emulation - slave framework: proper DT bindings and userspace instantiation - some bigger work for xiic, pxa, omap drivers .. and quite a number of smaller driver fixes, cleanups, improvements" * 'i2c/for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (65 commits) i2c: mux: reg Change ioread endianness for readback i2c: mux: reg: fix compilation warnings i2c: mux: reg: simplify register size checking i2c: muxes: fix leaked i2c adapter device node references i2c: allow specifying separate wakeup interrupt in device tree of/irq: export of_get_irq_byname() i2c: xgene-slimpro: dma_mapping_error() doesn't return an error code i2c: Replace I2C_CROS_EC_TUNNEL dependency eeprom: at24: use i2c_smbus_read_i2c_block_data_or_emulated i2c: core: Add support for best effort block read emulation i2c: lpc2k: add driver i2c: mux: Add register-based mux i2c-mux-reg i2c: dt: describe generic bindings i2c: slave: print warning if slave flag not set i2c: support 10 bit and slave addresses in sysfs 'new_device' i2c: take address space into account when checking for used addresses i2c: apply DT flags when probing i2c: make address check indpendent from client struct i2c: rename address check functions i2c: apply address offset for slaves, too ... commit c19176154b464c861e49355eff636aa6896735b5 Merge: 12f03ee 5f1b2f7 Author: Linus Torvalds Date: Tue Sep 8 15:46:31 2015 -0700 Merge tag 'rtc-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux Pull RTC updates from Alexandre Belloni: "Core: - use is_visible() to control sysfs attributes - switch wakealarm attribute to DEVICE_ATTR_RW - make rtc_does_wakealarm() return boolean - properly manage lifetime of dev and cdev in rtc device - remove unnecessary device_get() in rtc_device_unregister - fix double free in rtc_register_device() error path New drivers: - NXP LPC24xx - Xilinx Zynq MP - Dialog DA9062 Subsystem wide cleanups: - fix drivers that consider 0 as a valid IRQ in client->irq - Drop (un)likely before IS_ERR(_OR_NULL) - drop the remaining owner assignment for i2c_driver and platform_driver - module autoload fixes Drivers: - 88pm80x: add device tree support - abx80x: fix RTC write bit - ab8500: Add a sentinel to ab85xx_rtc_ids[] - armada38x: Align RTC set time procedure with the official errata - as3722: correct month value - at91sam9: cleanups - at91rm9200: get and use slow clock and cleanups - bq32k: remove redundant check - cmos: century support, proper fix for the spurious wakeup - ds1307: cleanups and wakeup irq support - ds1374: Remove unused variable - ds1685: Use module_platform_driver - ds3232: fix WARNING trace in resume function - gemini: fix ptr_ret.cocci warnings - mt6397: implement suspend/resume - omap: support internal and external clock enabling - opal: Enable alarms only when opal supports tpo - pcf2127: use OFS flag to detect unreliable date and warn the user - pl031: fix typo for author email - rx8025: huge cleanup and fixes - sa1100/pxa: share common code - s5m: fix to update ctrl register - s3c: fix clocks and wakeup, cleanup - sirfsoc: use regmap - nvram_read()/nvram_write() functions for cmos, ds1305, ds1307, ds1343, ds1511, ds1553, ds1742, m48t59, rp5c01, stk17ta8, tx4939 - use rtc_valid_tm() error code when reading date/time instead of 0 for isl12022, pcf2123, pcf2127" * tag 'rtc-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (90 commits) rtc: abx80x: fix RTC write bit rtc: ab8500: Add a sentinel to ab85xx_rtc_ids[] rtc: ds1374: Remove unused variable rtc: Fix module autoload for OF platform drivers rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers rtc: omap: Add external clock enabling support rtc: omap: Add internal clock enabling support ARM: dts: AM437x: Add the internal and external clock nodes for rtc rtc: s5m: fix to update ctrl register rtc: add xilinx zynqmp rtc driver devicetree: bindings: rtc: add bindings for xilinx zynqmp rtc rtc: as3722: correct month value ARM: config: Switch PXA27x platforms to use PXA RTC driver ARM: mmp: remove unused RTC register definitions ARM: sa1100: remove unused RTC register definitions rtc: sa1100/pxa: convert to run-time register mapping ARM: pxa: add memory resource to SA1100 RTC device rtc: pxa: convert to use shared sa1100 functions rtc: sa1100: prepare to share sa1100_rtc_ops rtc: ds3232: fix WARNING trace in resume function ... commit df69f52d990bd85159727bd26e819d3a6e49c666 Author: Dan Streetman Date: Tue Sep 8 15:05:09 2015 -0700 zpool: remove no-op module init/exit Remove zpool_init() and zpool_exit(); they do nothing other than print "loaded" and "unloaded". Signed-off-by: Dan Streetman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zpool.c | 14 -------------- 1 file changed, 14 deletions(-) commit c83db4f419e7105af38cdcca80cc51213214a2c8 Author: Krzysztof Kozlowski Date: Tue Sep 8 15:05:06 2015 -0700 mm: zbud: constify the zbud_ops The structure zbud_ops is not modified so make the pointer to it a pointer to const. Signed-off-by: Krzysztof Kozlowski Acked-by: Dan Streetman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/zbud.h | 2 +- mm/zbud.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 786727799a85aeabc20cab5ecfb72771bcbd6b85 Author: Krzysztof Kozlowski Date: Tue Sep 8 15:05:03 2015 -0700 mm: zpool: constify the zpool_ops The structure zpool_ops is not modified so make the pointer to it a pointer to const. Signed-off-by: Krzysztof Kozlowski Acked-by: Dan Streetman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/zpool.h | 4 ++-- mm/zbud.c | 4 ++-- mm/zpool.c | 4 ++-- mm/zsmalloc.c | 3 ++- mm/zswap.c | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) commit 5b999aadbae65696a148f55250d94b6f3d74071e Author: Dmitry Safonov <0x7f454c46@gmail.com> Date: Tue Sep 8 15:05:00 2015 -0700 mm: swap: zswap: maybe_preload & refactoring zswap_get_swap_cache_page and read_swap_cache_async have pretty much the same code with only significant difference in return value and usage of swap_readpage. I a helper __read_swap_cache_async() with the common code. Behavior change: now zswap_get_swap_cache_page will use radix_tree_maybe_preload instead radix_tree_preload. Looks like, this wasn't changed only by the reason of code duplication. Signed-off-by: Dmitry Safonov <0x7f454c46@gmail.com> Cc: Johannes Weiner Cc: Vladimir Davydov Cc: Michal Hocko Cc: Hugh Dickins Cc: Minchan Kim Cc: Tejun Heo Cc: Jens Axboe Cc: Christoph Hellwig Cc: David Herrmann Cc: Seth Jennings Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swap.h | 3 +++ mm/swap_state.c | 37 ++++++++++++++++++-------- mm/zswap.c | 73 +++++----------------------------------------------- 3 files changed, 35 insertions(+), 78 deletions(-) commit 708649694a8699ff91d395c4aef5ecea3ade14bc Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:58 2015 -0700 zram: unify error reporting Make zram syslog error reporting more consistent. We have random error levels in some places. For example, critical errors like "Error allocating memory for compressed page" and "Unable to allocate temp memory" are reported as KERN_INFO messages. a) Reassign error levels Error messages that directly affect zram functionality -- pr_err(): Error allocating zram address table Error creating memory pool Decompression failed! err=%d, page=%u Unable to allocate temp memory Compression failed! err=%d Error allocating memory for compressed page: %u, size=%zu Cannot initialise %s compressing backend Error allocating disk queue for device %d Error allocating disk structure for device %d Error creating sysfs group for device %d Unable to register zram-control class Unable to get major number Messages that do not affect functionality, but user must be warned (because sysfs attrs will be removed in this particular case) -- pr_warn(): %d (%s) Attribute %s (and others) will be removed. %s Messages that do not affect functionality and mostly are informative -- pr_info(): Cannot change max compression streams Can't change algorithm for initialized device Cannot change disksize for initialized device Added device: %s Removed device: %s b) Update sysfs_create_group() error message First, it lacks a trailing new line; add it. Second, every error message in zram_add() has a "for device %d" part, which makes errors more informative. Add missing part to "Error creating sysfs group" message. Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit cd10add00c1b31cd664a31108a9b395025def50a Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:55 2015 -0700 zsmalloc: remove null check from destroy_handle_cache() We can pass a NULL cache pointer to kmem_cache_destroy(), because it NULL-checks its argument now. Remove redundant test from destroy_handle_cache(). Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b3e237f1f5a86030c875e186ff19640f4f4f3c63 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:52 2015 -0700 zsmalloc: do not take class lock in zs_shrinker_count() We can avoid taking class ->lock around zs_can_compact() in zs_shrinker_count(), because the number that we return back is outdated in general case, by design. We have different sources that are able to change class's state right after we return from zs_can_compact() -- ongoing I/O operations, manually triggered compaction, or two of them happening simultaneously. We re-do this calculations during compaction on a per class basis anyway. zs_unregister_shrinker() will not return until we have an active shrinker, so classes won't unexpectedly disappear while zs_shrinker_count() iterates them. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 4 ---- 1 file changed, 4 deletions(-) commit 6cbf16b3b66a61b9c6df8f2ed4ac346cb427f28a Author: Minchan Kim Date: Tue Sep 8 15:04:49 2015 -0700 zsmalloc: use class->pages_per_zspage There is no need to recalcurate pages_per_zspage in runtime. Just use class->pages_per_zspage to avoid unnecessary runtime overhead. Signed-off-by: Minchan Kim Acked-by: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit ad9d5e175a77a253f52a7259a7c918b8351d99f1 Author: Minchan Kim Date: Tue Sep 8 15:04:47 2015 -0700 zsmalloc: consider ZS_ALMOST_FULL as migrate source There is no reason to prevent select ZS_ALMOST_FULL as migration source if we cannot find source from ZS_ALMOST_EMPTY. With this patch, zs_can_compact will return more exact result. Signed-off-by: Minchan Kim Acked-by: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 58f171174625150f3aaad0cddd3e365270b8e1b8 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:44 2015 -0700 zsmalloc: partial page ordering within a fullness_list We want to see more ZS_FULL pages and less ZS_ALMOST_{FULL, EMPTY} pages. Put a page with higher ->inuse count first within its ->fullness_list, which will give us better chances to fill up this page with new objects (find_get_zspage() return ->fullness_list head for new object allocation), so some zspages will become ZS_ALMOST_FULL/ZS_FULL quicker. It performs a trivial and cheap ->inuse compare which does not slow down zsmalloc and in the worst case keeps the list pages in no particular order. A more expensive solution could sort fullness_list by ->inuse count. [minchan@kernel.org: code adjustments] Signed-off-by: Sergey Senozhatsky Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit ab9d306d9c3bf64b1dbad127aa13252cc550f839 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:41 2015 -0700 zsmalloc: use shrinker to trigger auto-compaction Perform automatic pool compaction by a shrinker when system is getting tight on memory. User-space has a very little knowledge regarding zsmalloc fragmentation and basically has no mechanism to tell whether compaction will result in any memory gain. Another issue is that user space is not always aware of the fact that system is getting tight on memory. Which leads to very uncomfortable scenarios when user space may start issuing compaction 'randomly' or from crontab (for example). Fragmentation is not always necessarily bad, allocated and unused objects, after all, may be filled with the data later, w/o the need of allocating a new zspage. On the other hand, we obviously don't want to waste memory when the system needs it. Compaction now has a relatively quick pool scan so we are able to estimate the number of pages that will be freed easily, which makes it possible to call this function from a shrinker->count_objects() callback. We also abort compaction as soon as we detect that we can't free any pages any more, preventing wasteful objects migrations. Signed-off-by: Sergey Senozhatsky Suggested-by: Minchan Kim Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) commit 860c707dca155a56dfa115ddd6c00959296144a6 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:38 2015 -0700 zsmalloc: account the number of compacted pages Compaction returns back to zram the number of migrated objects, which is quite uninformative -- we have objects of different sizes so user space cannot obtain any valuable data from that number. Change compaction to operate in terms of pages and return back to compaction issuer the number of pages that were freed during compaction. So from now on we will export more meaningful value in zram/mm_stat -- the number of freed (compacted) pages. This requires: (a) a rename of `num_migrated' to 'pages_compacted' (b) a internal API change -- return first_page's fullness_group from putback_zspage(), so we know when putback_zspage() did free_zspage(). It helps us to account compaction stats correctly. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/blockdev/zram.txt | 3 ++- drivers/block/zram/zram_drv.c | 2 +- include/linux/zsmalloc.h | 4 ++-- mm/zsmalloc.c | 27 +++++++++++++++++---------- 4 files changed, 22 insertions(+), 14 deletions(-) commit 7d3f3938236b4bb878214e6791e76fd8409bdeee Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:35 2015 -0700 zsmalloc/zram: introduce zs_pool_stats api `zs_compact_control' accounts the number of migrated objects but it has a limited lifespan -- we lose it as soon as zs_compaction() returns back to zram. It worked fine, because (a) zram had it's own counter of migrated objects and (b) only zram could trigger compaction. However, this does not work for automatic pool compaction (not issued by zram). To account objects migrated during auto-compaction (issued by the shrinker) we need to store this number in zs_pool. Define a new `struct zs_pool_stats' structure to keep zs_pool's stats there. It provides only `num_migrated', as of this writing, but it surely can be extended. A new zsmalloc zs_pool_stats() symbol exports zs_pool's stats back to caller. Use zs_pool_stats() in zram and remove `num_migrated' from zram_stats. Signed-off-by: Sergey Senozhatsky Suggested-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/block/zram/zram_drv.c | 15 +++++++++------ drivers/block/zram/zram_drv.h | 1 - include/linux/zsmalloc.h | 6 ++++++ mm/zsmalloc.c | 29 +++++++++++++++-------------- 4 files changed, 30 insertions(+), 21 deletions(-) commit 0dc63d488a2a433a4a85d3908b3f195c4e6450d2 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:33 2015 -0700 zsmalloc: cosmetic compaction code adjustments Change zs_object_copy() argument order to be (DST, SRC) rather than (SRC, DST). copy/move functions usually have (to, from) arguments order. Rename alloc_target_page() to isolate_target_page(). This function doesn't allocate anything, it isolates target page, pretty much like isolate_source_page(). Tweak __zs_compact() comment. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 04f05909e0fde36ba481ad4c850b666ebef1ac55 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:30 2015 -0700 zsmalloc: introduce zs_can_compact() function This function checks if class compaction will free any pages. Rephrasing -- do we have enough unused objects to form at least one ZS_EMPTY page and free it. It aborts compaction if class compaction will not result in any (further) savings. EXAMPLE (this debug output is not part of this patch set): - class size - number of allocated objects - number of used objects - max objects per zspage - pages per zspage - estimated number of pages that will be freed [..] class-512 objs:544 inuse:540 maxobj-per-zspage:8 pages-per-zspage:1 zspages-to-free:0 ... class-512 compaction is useless. break class-496 objs:660 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4 zspages-to-free:2 class-496 objs:627 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4 zspages-to-free:1 class-496 objs:594 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4 zspages-to-free:0 ... class-496 compaction is useless. break class-448 objs:657 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1 zspages-to-free:4 class-448 objs:648 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1 zspages-to-free:3 class-448 objs:639 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1 zspages-to-free:2 class-448 objs:630 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1 zspages-to-free:1 class-448 objs:621 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1 zspages-to-free:0 ... class-448 compaction is useless. break class-432 objs:728 inuse:685 maxobj-per-zspage:28 pages-per-zspage:3 zspages-to-free:1 class-432 objs:700 inuse:685 maxobj-per-zspage:28 pages-per-zspage:3 zspages-to-free:0 ... class-432 compaction is useless. break class-416 objs:819 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4 zspages-to-free:2 class-416 objs:780 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4 zspages-to-free:1 class-416 objs:741 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4 zspages-to-free:0 ... class-416 compaction is useless. break class-400 objs:690 inuse:674 maxobj-per-zspage:10 pages-per-zspage:1 zspages-to-free:1 class-400 objs:680 inuse:674 maxobj-per-zspage:10 pages-per-zspage:1 zspages-to-free:0 ... class-400 compaction is useless. break class-384 objs:736 inuse:709 maxobj-per-zspage:32 pages-per-zspage:3 zspages-to-free:0 ... class-384 compaction is useless. break [..] Every "compaction is useless" indicates that we saved CPU cycles. class-512 has 544 object allocated 540 objects used 8 objects per-page Even if we have a ALMOST_EMPTY zspage, we still don't have enough room to migrate all of its objects and free this zspage; so compaction will not make a lot of sense, it's better to just leave it as is. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 57244594195fe697f9261c7970ca25db35280967 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:27 2015 -0700 zsmalloc: always keep per-class stats Always account per-class `zs_size_stat' stats. This data will help us make better decisions during compaction. We are especially interested in OBJ_ALLOCATED and OBJ_USED, which can tell us if class compaction will result in any memory gain. For instance, we know the number of allocated objects in the class, the number of objects being used (so we also know how many objects are not used) and the number of objects per-page. So we can ensure if we have enough unused objects to form at least one ZS_EMPTY zspage during compaction. We calculate this value on per-class basis so we can calculate a total number of zspages that can be released. Which is exactly what a shrinker wants to know. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 40 ++++++++-------------------------------- 1 file changed, 8 insertions(+), 32 deletions(-) commit b430d1fd6c7d22cc07e7c22a2ee1078667605313 Author: Sergey Senozhatsky Date: Tue Sep 8 15:04:24 2015 -0700 zsmalloc: drop unused variable `nr_to_migrate' This patchset tweaks compaction and makes it possible to trigger pool compaction automatically when system is getting low on memory. zsmalloc in some cases can suffer from a notable fragmentation and compaction can release some considerable amount of memory. The problem here is that currently we fully rely on user space to perform compaction when needed. However, performing zsmalloc compaction is not always an obvious thing to do. For example, suppose we have a `idle' fragmented (compaction was never performed) zram device and system is getting low on memory due to some 3rd party user processes (gcc LTO, or firefox, etc.). It's quite unlikely that user space will issue zpool compaction in this case. Besides, user space cannot tell for sure how badly pool is fragmented; however, this info is known to zsmalloc and, hence, to a shrinker. This patch (of 7): __zs_compact() does not use `nr_to_migrate', drop it. Signed-off-by: Sergey Senozhatsky Acked-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/zsmalloc.c | 4 ---- 1 file changed, 4 deletions(-) commit ad5ea8cd5b934cc082f2cda900b490def149908e Author: Alexander Kuleshov Date: Tue Sep 8 15:04:22 2015 -0700 mm/memblock.c: fix comment in __next_mem_range() Signed-off-by: Alexander Kuleshov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ada0c5a2daf11816180ec30bdbdbed1f6ff3224 Author: Zhen Lei Date: Tue Sep 8 15:04:19 2015 -0700 mm/page_alloc.c: fix type information of memoryless node For a memoryless node, the output of get_pfn_range_for_nid are all zero. It will display mem from 0 to -1. Signed-off-by: Zhen Lei Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b5685e9263a6f3a8da546b8a46382f18a63745c9 Author: Xishi Qiu Date: Tue Sep 8 15:04:16 2015 -0700 memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node() When hot adding a node from add_memory(), we will add memblock first, so the node is not empty. But when called from cpu_up(), the node should be empty. Signed-off-by: Xishi Qiu Cc: Tang Chen Cc: Yasuaki Ishimatsu Cc: Naoya Horiguchi Cc: Vlastimil Babka Cc: Taku Izumi \ Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 34b100605cb7e201d5c4e39f54d0e11caa950733 Author: Yaowei Bai Date: Tue Sep 8 15:04:13 2015 -0700 mm/page_alloc.c: change sysctl_lower_zone_reserve_ratio to sysctl_lowmem_reserve_ratio in comments We use sysctl_lowmem_reserve_ratio rather than sysctl_lower_zone_reserve_ratio to determine how aggressive the kernel is in defending lowmem from the possibility of being captured into pinned user memory. To avoid misleading, correct it in some comments. Signed-off-by: Yaowei Bai Acked-by: Michal Hocko Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 013110a73dcf970cb28c5b0a79f9eee577ea6aa2 Author: Yaowei Bai Date: Tue Sep 8 15:04:10 2015 -0700 mm/page_alloc.c: fix a misleading comment The comment says that the per-cpu batchsize and zone watermarks are determined by present_pages which is definitely wrong, they are both calculated from managed_pages. Fix it. Signed-off-by: Yaowei Bai Acked-by: Michal Hocko Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/sysctl/vm.txt | 4 ++-- mm/page_alloc.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit c9d13f5fc748a02cb5917a798f065681007342b9 Author: Chen Gang Date: Tue Sep 8 15:04:08 2015 -0700 mm/mmap.c:insert_vm_struct(): check for failure before setting values There's no point in initializing vma->vm_pgoff if the insertion attempt will be failing anyway. Run the checks before performing the initialization. Signed-off-by: Chen Gang Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit bde43c6c9f4f360ae549a0ed9f10a3e62e363aca Author: Petr Mladek Date: Tue Sep 8 15:04:05 2015 -0700 mm/khugepaged: allow interruption of allocation sleep again Commit 1dfb059b9438 ("thp: reduce khugepaged freezing latency") fixed khugepaged to do not block a system suspend. But the result is that it could not get interrupted before the given timeout because the condition for the wait event is "false". This patch puts back the original approach but it uses freezable_schedule_timeout_interruptible() instead of schedule_timeout_interruptible(). It does the right thing. I am pretty sure that the freezable variant was not used in the original fix only because it was not available at that time. The regression has been there for ages. It was not critical. It just did the allocation throttling a little bit more aggressively. I found this problem when converting the kthread to kthread worker API and trying to understand the code. This bug is thought to have minimal userspace-visible impact. Somebody could set a high alloc_sleep value by mistake, and then try to fix it back, but khugepaged would keep sleeping until the high value expires. Signed-off-by: Petr Mladek Cc: Andrea Arcangeli Acked-by: Vlastimil Babka Cc: "Aneesh Kumar K.V" Cc: "Kirill A. Shutemov" Cc: David Rientjes Cc: Ebru Akagunduz Cc: Mel Gorman Cc: Jiri Kosina Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit c11539315129b599aae6d9bc0f941dee5559ec58 Author: Alexander Kuleshov Date: Tue Sep 8 15:04:02 2015 -0700 mm/memblock.c: fiy typos in comments s/succees/success/ Signed-off-by: Alexander Kuleshov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1a16718cf7f4f48ee2aa2cfd9a961c6b433a7b5b Author: Joonsoo Kim Date: Tue Sep 8 15:03:59 2015 -0700 mm/compaction: correct to flush migrated pages if pageblock skip happens We cache isolate_start_pfn before entering isolate_migratepages(). If pageblock is skipped in isolate_migratepages() due to whatever reason, cc->migrate_pfn can be far from isolate_start_pfn hence we flush pages that were freed. For example, the following scenario can be possible: - assume order-9 compaction, pageblock order is 9 - start_isolate_pfn is 0x200 - isolate_migratepages() - skip a number of pageblocks - start to isolate from pfn 0x600 - cc->migrate_pfn = 0x620 - return - last_migrated_pfn is set to 0x200 - check flushing condition - current_block_start is set to 0x600 - last_migrated_pfn < current_block_start then do useless flush This wrong flush would not help the performance and success rate so this patch tries to fix it. One simple way to know the exact position where we start to isolate migratable pages is that we cache it in isolate_migratepages() before entering actual isolation. This patch implements that and fixes the problem. Signed-off-by: Joonsoo Kim Acked-by: Vlastimil Babka Cc: Mel Gorman Cc: Rik van Riel Cc: David Rientjes Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 30 +++++++++++++++--------------- mm/internal.h | 1 + 2 files changed, 16 insertions(+), 15 deletions(-) commit 82c1fc714763b823169958a98196d9be56c63b30 Author: Vlastimil Babka Date: Tue Sep 8 15:03:56 2015 -0700 mm: use numa_mem_id() in alloc_pages_node() alloc_pages_node() might fail when called with NUMA_NO_NODE and __GFP_THISNODE on a CPU belonging to a memoryless node. To make the local-node fallback more robust and prevent such situations, use numa_mem_id(), which was introduced for similar scenarios in the slab context. Suggested-by: Christoph Lameter Signed-off-by: Vlastimil Babka Acked-by: David Rientjes Acked-by: Mel Gorman Acked-by: Christoph Lameter Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0bc35a970c01c50e3bcc4b5a612787346024e5db Author: Vlastimil Babka Date: Tue Sep 8 15:03:53 2015 -0700 mm: unify checks in alloc_pages_node() and __alloc_pages_node() Perform the same debug checks in alloc_pages_node() as are done in __alloc_pages_node(), by making the former function a wrapper of the latter one. In addition to better diagnostics in DEBUG_VM builds for situations which have been already fatal (e.g. out-of-bounds node id), there are two visible changes for potential existing buggy callers of alloc_pages_node(): - calling alloc_pages_node() with any negative nid (e.g. due to arithmetic overflow) was treated as passing NUMA_NO_NODE and fallback to local node was applied. This will now be fatal. - calling alloc_pages_node() with an offline node will now be checked for DEBUG_VM builds. Since it's not fatal if the node has been previously online, and this patch may expose some existing buggy callers, change the VM_BUG_ON in __alloc_pages_node() to VM_WARN_ON. Signed-off-by: Vlastimil Babka Acked-by: David Rientjes Acked-by: Johannes Weiner Acked-by: Christoph Lameter Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 96db800f5d73cd5c49461253d45766e094f0f8c2 Author: Vlastimil Babka Date: Tue Sep 8 15:03:50 2015 -0700 mm: rename alloc_pages_exact_node() to __alloc_pages_node() alloc_pages_exact_node() was introduced in commit 6484eb3e2a81 ("page allocator: do not check NUMA node ID when the caller knows the node is valid") as an optimized variant of alloc_pages_node(), that doesn't fallback to current node for nid == NUMA_NO_NODE. Unfortunately the name of the function can easily suggest that the allocation is restricted to the given node and fails otherwise. In truth, the node is only preferred, unless __GFP_THISNODE is passed among the gfp flags. The misleading name has lead to mistakes in the past, see for example commits 5265047ac301 ("mm, thp: really limit transparent hugepage allocation to local node") and b360edb43f8e ("mm, mempolicy: migrate_to_node should only migrate to node"). Another issue with the name is that there's a family of alloc_pages_exact*() functions where 'exact' means exact size (instead of page order), which leads to more confusion. To prevent further mistakes, this patch effectively renames alloc_pages_exact_node() to __alloc_pages_node() to better convey that it's an optimized variant of alloc_pages_node() not intended for general usage. Both functions get described in comments. It has been also considered to really provide a convenience function for allocations restricted to a node, but the major opinion seems to be that __GFP_THISNODE already provides that functionality and we shouldn't duplicate the API needlessly. The number of users would be small anyway. Existing callers of alloc_pages_exact_node() are simply converted to call __alloc_pages_node(), with the exception of sba_alloc_coherent() which open-codes the check for NUMA_NO_NODE, so it is converted to use alloc_pages_node() instead. This means it no longer performs some VM_BUG_ON checks, and since the current check for nid in alloc_pages_node() uses a 'nid < 0' comparison (which includes NUMA_NO_NODE), it may hide wrong values which would be previously exposed. Both differences will be rectified by the next patch. To sum up, this patch makes no functional changes, except temporarily hiding potentially buggy callers. Restricting the checks in alloc_pages_node() is left for the next patch which can in turn expose more existing buggy callers. Signed-off-by: Vlastimil Babka Acked-by: Johannes Weiner Acked-by: Robin Holt Acked-by: Michal Hocko Acked-by: Christoph Lameter Acked-by: Michael Ellerman Cc: Mel Gorman Cc: David Rientjes Cc: Greg Thelen Cc: Aneesh Kumar K.V Cc: Pekka Enberg Cc: Joonsoo Kim Cc: Naoya Horiguchi Cc: Tony Luck Cc: Fenghua Yu Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Gleb Natapov Cc: Paolo Bonzini Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Cliff Whickman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/ia64/hp/common/sba_iommu.c | 6 +----- arch/ia64/kernel/uncached.c | 2 +- arch/ia64/sn/pci/pci_dma.c | 2 +- arch/powerpc/platforms/cell/ras.c | 2 +- arch/x86/kvm/vmx.c | 2 +- drivers/misc/sgi-xp/xpc_uv.c | 2 +- include/linux/gfp.h | 23 +++++++++++++++-------- kernel/profile.c | 8 ++++---- mm/filemap.c | 2 +- mm/huge_memory.c | 2 +- mm/hugetlb.c | 4 ++-- mm/memory-failure.c | 2 +- mm/mempolicy.c | 4 ++-- mm/migrate.c | 4 ++-- mm/page_alloc.c | 2 -- mm/slab.c | 2 +- mm/slob.c | 4 ++-- mm/slub.c | 2 +- 18 files changed, 38 insertions(+), 37 deletions(-) commit 7fadc820222497eac234d1d51a66517c00a6ca4c Author: Hugh Dickins Date: Tue Sep 8 15:03:46 2015 -0700 mm, vmscan: unlock page while waiting on writeback This is merely a politeness: I've not found that shrink_page_list() leads to deadlock with the page it holds locked across wait_on_page_writeback(); but nevertheless, why hold others off by keeping the page locked there? And while we're at it: remove the mistaken "not " from the commentary on this Case 3 (and a distracting blank line from Case 2, if I may). Signed-off-by: Hugh Dickins Acked-by: Michal Hocko Acked-by: Johannes Weiner Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 26f5d7609f03ad8d6dc552458e4e371a62416b37 Author: Jeff Layton Date: Tue Sep 8 15:03:44 2015 -0700 list_lru: don't call list_lru_from_kmem if the list_head is empty If the list_head is empty then we'll have called list_lru_from_kmem for nothing. Move that call inside of the list_empty if block. Signed-off-by: Jeff Layton Reviewed-by: Vladimir Davydov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/list_lru.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 21cd3a604797c2774676926a95a3d17d4cd5cbb3 Author: Wang Kai Date: Tue Sep 8 15:03:41 2015 -0700 kmemleak: record accurate early log buffer count and report when exceeded In log_early function, crt_early_log should also count once when 'crt_early_log >= ARRAY_SIZE(early_log)'. Otherwise the reported count from kmemleak_init is one less than 'actual number'. Then, in kmemleak_init, if early_log buffer size equal actual number, kmemleak will init sucessful, so change warning condition to 'crt_early_log > ARRAY_SIZE(early_log)'. Signed-off-by: Wang Kai Acked-by: Catalin Marinas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/kmemleak.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e3975891254e08d220ddcafca93a0e05d9560bfb Author: Chen Gang Date: Tue Sep 8 15:03:38 2015 -0700 mm/mmap.c: simplify the failure return working flow __split_vma() doesn't need out_err label, neither need initializing err. copy_vma() can return NULL directly when kmem_cache_alloc() fails. Signed-off-by: Chen Gang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 44a30220bc0a171c010e8df63d144655abdafe61 Author: Yu Zhao Date: Tue Sep 8 15:03:33 2015 -0700 shmem: recalculate file inode when fstat Shmem uses shmem_recalc_inode to update i_blocks when it allocates page, undoes range or swaps. But mm can drop clean page without notifying shmem. This makes fstat sometimes return out-of-date block size. The problem can be partially solved when we add inode_operations->getattr which calls shmem_recalc_inode to update i_blocks for fstat. shmem_recalc_inode also updates counter used by statfs and vm_committed_as. For them the situation is not changed. They still suffer from the discrepancy after dropping clean page and before the function is called by aforementioned triggers. Signed-off-by: Yu Zhao Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/shmem.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 567d117b8b2ab1c3437acc4799505a59bfa5722b Author: Alexander Kuleshov Date: Tue Sep 8 15:03:33 2015 -0700 mm/memblock.c: rename local variable of memblock_type to 'type' Since commit e3239ff92a17 ("memblock: Rename memblock_region to memblock_type and memblock_property to memblock_region"), all local variables of the membock_type type were renamed to 'type'. This commit renames all remaining local variables with the memblock_type type to the same view. Signed-off-by: Alexander Kuleshov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 230ac719c500e58e71342be381ad2042a8cffc42 Author: Naoya Horiguchi Date: Tue Sep 8 15:03:29 2015 -0700 mm/hwpoison: don't try to unpoison containment-failed pages memory_failure() can be called at any page at any time, which means that we can't eliminate the possibility of containment failure. In such case the best option is to leak the page intentionally (and never touch it later.) We have an unpoison function for testing, and it cannot handle such containment-failed pages, which results in kernel panic (visible with various calltraces.) So this patch suggests that we limit the unpoisonable pages to properly contained pages and ignore any other ones. Testers are recommended to keep in mind that there're un-unpoisonable pages when writing test programs. Signed-off-by: Naoya Horiguchi Tested-by: Wanpeng Li Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit da1b13ccfbebe0b9d69b5d61eff0a675e19e69a5 Author: Wanpeng Li Date: Tue Sep 8 15:03:27 2015 -0700 mm/hwpoison: fix race between soft_offline_page and unpoison_memory Wanpeng Li reported a race between soft_offline_page() and unpoison_memory(), which causes the following kernel panic: BUG: Bad page state in process bash pfn:97000 page:ffffea00025c0000 count:0 mapcount:1 mapping: (null) index:0x7f4fdbe00 flags: 0x1fffff80080048(uptodate|active|swapbacked) page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set bad because of flags: flags: 0x40(active) Modules linked in: snd_hda_codec_hdmi i915 rpcsec_gss_krb5 nfsv4 dns_resolver bnep rfcomm nfsd bluetooth auth_rpcgss nfs_acl nfs rfkill lockd grace sunrpc i2c_algo_bit drm_kms_helper snd_hda_codec_realtek snd_hda_codec_generic drm snd_hda_intel fscache snd_hda_codec x86_pkg_temp_thermal coretemp kvm_intel snd_hda_core snd_hwdep kvm snd_pcm snd_seq_dummy snd_seq_oss crct10dif_pclmul snd_seq_midi crc32_pclmul snd_seq_midi_event ghash_clmulni_intel snd_rawmidi aesni_intel lrw gf128mul snd_seq glue_helper ablk_helper snd_seq_device cryptd fuse snd_timer dcdbas serio_raw mei_me parport_pc snd mei ppdev i2c_core video lp soundcore parport lpc_ich shpchp mfd_core ext4 mbcache jbd2 sd_mod e1000e ahci ptp libahci crc32c_intel libata pps_core CPU: 3 PID: 2211 Comm: bash Not tainted 4.2.0-rc5-mm1+ #45 Hardware name: Dell Inc. OptiPlex 7020/0F5C5X, BIOS A03 01/08/2015 Call Trace: dump_stack+0x48/0x5c bad_page+0xe6/0x140 free_pages_prepare+0x2f9/0x320 ? uncharge_list+0xdd/0x100 free_hot_cold_page+0x40/0x170 __put_single_page+0x20/0x30 put_page+0x25/0x40 unmap_and_move+0x1a6/0x1f0 migrate_pages+0x100/0x1d0 ? kill_procs+0x100/0x100 ? unlock_page+0x6f/0x90 __soft_offline_page+0x127/0x2a0 soft_offline_page+0xa6/0x200 This race is explained like below: CPU0 CPU1 soft_offline_page __soft_offline_page TestSetPageHWPoison unpoison_memory PageHWPoison check (true) TestClearPageHWPoison put_page -> release refcount held by get_hwpoison_page in unpoison_memory put_page -> release refcount held by isolate_lru_page in __soft_offline_page migrate_pages The second put_page() releases refcount held by isolate_lru_page() which will lead to unmap_and_move() releases the last refcount of page and w/ mapcount still 1 since try_to_unmap() is not called if there is only one user map the page. Anyway, the page refcount and mapcount will still mess if the page is mapped by multiple users. This race was introduced by commit 4491f71260 ("mm/memory-failure: set PageHWPoison before migrate_pages()"), which focuses on preventing the reuse of successfully migrated page. Before this commit we prevent the reuse by changing the migratetype to MIGRATE_ISOLATE during soft offlining, which has the following problems, so simply reverting the commit is not a best option: 1) it doesn't eliminate the reuse completely, because set_migratetype_isolate() can fail to set MIGRATE_ISOLATE to the target page if the pageblock of the page contains one or more unmovable pages (i.e. has_unmovable_pages() returns true). 2) the original code changes migratetype to MIGRATE_ISOLATE forcibly, and sets it to MIGRATE_MOVABLE forcibly after soft offline, regardless of the original migratetype state, which could impact other subsystems like memory hotplug or compaction. This patch moves PageSetHWPoison just after put_page() in unmap_and_move(), which closes up the reported race window and minimizes another race window b/w SetPageHWPoison and reallocation (which causes the reuse of soft-offlined page.) The latter race window still exists but it's acceptable, because it's rare and effectively the same as ordinary "containment failure" case even if it happens, so keep the window open is acceptable. Fixes: 4491f71260 ("mm/memory-failure: set PageHWPoison before migrate_pages()") Signed-off-by: Wanpeng Li Signed-off-by: Naoya Horiguchi Reported-by: Wanpeng Li Tested-by: Wanpeng Li Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swapops.h | 14 ++++++++++++++ mm/memory-failure.c | 4 ---- mm/migrate.c | 9 +++++---- 3 files changed, 19 insertions(+), 8 deletions(-) commit 8e30456b6c56029ecbb43b777519175e478adfbf Author: Naoya Horiguchi Date: Tue Sep 8 15:03:24 2015 -0700 mm/hwpoison: introduce num_poisoned_pages wrappers num_poisoned_pages counter will be changed outside mm/memory-failure.c by a subsequent patch, so this patch prepares wrappers to manipulate it. Signed-off-by: Naoya Horiguchi Tested-by: Wanpeng Li Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/swapops.h | 23 +++++++++++++++++++++++ mm/memory-failure.c | 30 ++++++++++++++---------------- 2 files changed, 37 insertions(+), 16 deletions(-) commit 665d9da7f0a9bd80b64d0024630806e45c7ff7d7 Author: Wanpeng Li Date: Tue Sep 8 15:03:21 2015 -0700 mm/hwpoison: replace most of put_page in memory error handling by put_hwpoison_page Replace most instances of put_page() in memory error handling with put_hwpoison_page(). Signed-off-by: Wanpeng Li Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit be91748fa6ca6909853c3dc630d65e45084962d7 Author: Wanpeng Li Date: Tue Sep 8 15:03:18 2015 -0700 mm/hwpoison: fix refcount of THP head page in no-injection case Hwpoison injection takes a refcount of target page and another refcount of head page of THP if the target page is the tail page of a THP. However, current code doesn't release the refcount of head page if the THP is not supported to be injected wrt hwpoison filter. Fix it by reducing the refcount of head page if the target page is the tail page of a THP and it is not supported to be injected. Signed-off-by: Wanpeng Li Acked-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hwpoison-inject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94bf4ec84a84d3ab2513b4e681fd3d083328d76d Author: Wanpeng Li Date: Tue Sep 8 15:03:15 2015 -0700 mm/hwpoison: introduce put_hwpoison_page to put refcount for memory error handling Introduce put_hwpoison_page to put refcount for memory error handling. Signed-off-by: Wanpeng Li Suggested-by: Naoya Horiguchi Acked-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 1 + mm/memory-failure.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) commit 1e0e635be82132167a134b5a9c884e70e61f8373 Author: Wanpeng Li Date: Tue Sep 8 15:03:13 2015 -0700 mm/hwpoison: fix PageHWPoison test/set race There is a race between madvise_hwpoison path and memory_failure: CPU0 CPU1 madvise_hwpoison get_user_pages_fast PageHWPoison check (false) memory_failure TestSetPageHWPoison soft_offline_page PageHWPoison check (true) return -EBUSY (without put_page) Signed-off-by: Wanpeng Li Suggested-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 2 ++ 1 file changed, 2 insertions(+) commit 7d1900c744b2e4687b3e467edf58373c02bcf22d Author: Wanpeng Li Date: Tue Sep 8 15:03:10 2015 -0700 mm/hwpoison: fix failure to split thp w/ refcount held THP pages will get a refcount in madvise_hwpoison() w/ MF_COUNT_INCREASED flag, however, the refcount is still held when fail to split THP pages. Fix it by reducing the refcount of THP pages when fail to split THP. Signed-off-by: Wanpeng Li Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory-failure.c | 2 ++ 1 file changed, 2 insertions(+) commit 5dd2c4bded8776ee93c8f38b739fea531095067f Author: Mark Salter Date: Tue Sep 8 15:03:07 2015 -0700 x86: use generic early mem copy The early_ioremap library now has a generic copy_from_early_mem() function. Use the generic copy function for x86 relocate_initrd(). [akpm@linux-foundation.org: remove MAX_MAP_CHUNK define, per Yinghai Lu] Signed-off-by: Mark Salter Cc: Catalin Marinas Cc: Will Deacon Cc: Arnd Bergmann Cc: Ard Biesheuvel Cc: Mark Rutland Cc: Russell King Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Yinghai Lu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/setup.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) commit 1570f0d7ab425c1e0905715bf9cc98b2a82e723f Author: Mark Salter Date: Tue Sep 8 15:03:04 2015 -0700 arm64: support initrd outside kernel linear map The use of mem= could leave part or all of the initrd outside of the kernel linear map. This will lead to an error when unpacking the initrd and a probable failure to boot. This patch catches that situation and relocates the initrd to be fully within the linear map. Signed-off-by: Mark Salter Acked-by: Will Deacon Cc: Catalin Marinas Cc: Arnd Bergmann Cc: Ard Biesheuvel Cc: Mark Rutland Cc: Russell King Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Yinghai Lu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm64/kernel/setup.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 6b0f68e32ea8749ff7d4a66cd5761e915e48e59d Author: Mark Salter Date: Tue Sep 8 15:03:01 2015 -0700 mm: add utility for early copy from unmapped ram When booting an arm64 kernel w/initrd using UEFI/grub, use of mem= will likely cut off part or all of the initrd. This leaves it outside the kernel linear map which leads to failure when unpacking. The x86 code has a similar need to relocate an initrd outside of mapped memory in some cases. The current x86 code uses early_memremap() to copy the original initrd from unmapped to mapped RAM. This patchset creates a generic copy_from_early_mem() utility based on that x86 code and has arm64 and x86 share it in their respective initrd relocation code. This patch (of 3): In some early boot circumstances, it may be necessary to copy from RAM outside the kernel linear mapping to mapped RAM. The need to relocate an initrd is one example in the x86 code. This patch creates a helper function based on current x86 code. Signed-off-by: Mark Salter Cc: Catalin Marinas Cc: Will Deacon Cc: Arnd Bergmann Cc: Ard Biesheuvel Cc: Mark Rutland Cc: Russell King Cc: Ingo Molnar Cc: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Yinghai Lu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/asm-generic/early_ioremap.h | 6 ++++++ mm/early_ioremap.c | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) commit e6590740ceb83fd014fae7d571fe5a5d5886b7c8 Author: Mike Kravetz Date: Tue Sep 8 15:02:58 2015 -0700 Documentation: update libhugetlbfs location and use for testing The URL for libhugetlbfs has changed. Also, put a stronger emphasis on using libgugetlbfs for hugetlb regression testing. Signed-off-by: Mike Kravetz Acked-by: Naoya Horiguchi Cc: Joern Engel Cc: Davidlohr Bueso Cc: David Rientjes Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/hugetlbpage.txt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit fd5a9ecd6880619bea74c6b12ec86819eacfb012 Author: Mike Kravetz Date: Tue Sep 8 15:02:55 2015 -0700 selftests:vm: point to libhugetlbfs for regression testing The hugetlb selftests provide minimal coverage. Have run script point people at libhugetlbfs for better regression testing. Signed-off-by: Mike Kravetz Acked-by: Naoya Horiguchi Cc: Joern Engel Cc: Davidlohr Bueso Cc: David Rientjes Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/run_vmtests | 4 ++++ 1 file changed, 4 insertions(+) commit 243db5351aae5e6756fb610d41431a30d44b56a6 Author: Mike Kravetz Date: Tue Sep 8 15:02:52 2015 -0700 Revert "selftests: add hugetlbfstest" This manually reverts 7e50533d4b842 ("selftests: add hugetlbfstest"). The hugetlbfstest test depends on hugetlb pages being counted in a task's rss. This functionality is not in the kernel, so the test will always fail. Remove test to avoid confusion. Signed-off-by: Mike Kravetz Acked-by: Naoya Horiguchi Cc: Joern Engel Cc: Davidlohr Bueso Cc: David Rientjes Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/Makefile | 1 - tools/testing/selftests/vm/hugetlbfstest.c | 86 ------------------------------ tools/testing/selftests/vm/run_vmtests | 11 ---- 3 files changed, 98 deletions(-) commit 9fcd6d2e052eef525e94a9ae58dbe7ed4df4f5a7 Author: Vlastimil Babka Date: Tue Sep 8 15:02:49 2015 -0700 mm, compaction: skip compound pages by order in free scanner The compaction free scanner is looking for PageBuddy() pages and skipping all others. For large compound pages such as THP or hugetlbfs, we can save a lot of iterations if we skip them at once using their compound_order(). This is generally unsafe and we can read a bogus value of order due to a race, but if we are careful, the only danger is skipping too much. When tested with stress-highalloc from mmtests on 4GB system with 1GB hugetlbfs pages, the vmstat compact_free_scanned count decreased by at least 15%. Signed-off-by: Vlastimil Babka Cc: Minchan Kim Cc: Mel Gorman Acked-by: Joonsoo Kim Acked-by: Michal Nazarewicz Cc: Naoya Horiguchi Cc: Christoph Lameter Cc: Rik van Riel Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 29c0dde830f8c08ceacf2d3edf6dc8ddd9a9c3c4 Author: Vlastimil Babka Date: Tue Sep 8 15:02:46 2015 -0700 mm, compaction: always skip all compound pages by order in migrate scanner The compaction migrate scanner tries to skip THP pages by their order, to reduce number of iterations for pages it cannot isolate. The check is only done if PageLRU() is true, which means it applies to THP pages, but not e.g. hugetlbfs pages or any other non-LRU compound pages, which we have to iterate by base pages. This limitation comes from the assumption that it's only safe to read compound_order() when we have the zone's lru_lock and THP cannot be split under us. But the only danger (after filtering out order values that are not below MAX_ORDER, to prevent overflows) is that we skip too much or too little after reading a bogus compound_order() due to a rare race. This is the same reasoning as patch 99c0fd5e51c4 ("mm, compaction: skip buddy pages by their order in the migrate scanner") introduced for unsafely reading PageBuddy() order. After this patch, all pages are tested for PageCompound() and we skip them by compound_order(). The test is done after the test for balloon_page_movable() as we don't want to assume if balloon pages (or other pages with own isolation and migration implementation if a generic API gets implemented) are compound or not. When tested with stress-highalloc from mmtests on 4GB system with 1GB hugetlbfs pages, the vmstat compact_migrate_scanned count decreased by 15%. [kirill.shutemov@linux.intel.com: change PageTransHuge checks to PageCompound for different series was squashed here] Signed-off-by: Vlastimil Babka Cc: Minchan Kim Acked-by: Mel Gorman Acked-by: Joonsoo Kim Acked-by: Michal Nazarewicz Cc: Naoya Horiguchi Cc: Christoph Lameter Cc: Rik van Riel Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) commit 02333641e2cf4ac9f23eeeb01183ed8318d346ca Author: Vlastimil Babka Date: Tue Sep 8 15:02:42 2015 -0700 mm, compaction: encapsulate resetting cached scanner positions Reseting the cached compaction scanner positions is now open-coded in __reset_isolation_suitable() and compact_finished(). Encapsulate the functionality in a new function reset_cached_positions(). Signed-off-by: Vlastimil Babka Cc: Minchan Kim Cc: Mel Gorman Cc: Joonsoo Kim Acked-by: Michal Nazarewicz Cc: Naoya Horiguchi Cc: Christoph Lameter Cc: Rik van Riel Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit f5f61a320bf6275f37fcabf6645b4ac8e683c007 Author: Vlastimil Babka Date: Tue Sep 8 15:02:39 2015 -0700 mm, compaction: simplify handling restart position in free pages scanner Handling the position where compaction free scanner should restart (stored in cc->free_pfn) got more complex with commit e14c720efdd7 ("mm, compaction: remember position within pageblock in free pages scanner"). Currently the position is updated in each loop iteration of isolate_freepages(), although it should be enough to update it only when breaking from the loop. There's also an extra check outside the loop updates the position in case we have met the migration scanner. This can be simplified if we move the test for having isolated enough from the for-loop header next to the test for contention, and determining the restart position only in these cases. We can reuse the isolate_start_pfn variable for this instead of setting cc->free_pfn directly. Outside the loop, we can simply set cc->free_pfn to current value of isolate_start_pfn without any extra check. Also add a VM_BUG_ON to catch possible mistake in the future, in case we later add a new condition that terminates isolate_freepages_block() prematurely without also considering the condition in isolate_freepages(). Signed-off-by: Vlastimil Babka Cc: Minchan Kim Acked-by: Mel Gorman Acked-by: Joonsoo Kim Cc: Michal Nazarewicz Cc: Naoya Horiguchi Cc: Christoph Lameter Cc: Rik van Riel Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit f2849aa09d4fbc4145ebb5dc96187c9ab967f5cf Author: Vlastimil Babka Date: Tue Sep 8 15:02:36 2015 -0700 mm, compaction: more robust check for scanners meeting Assorted compaction cleanups and optimizations. The interesting patches are 4 and 5. In 4, skipping of compound pages in single iteration is improved for migration scanner, so it works also for !PageLRU compound pages such as hugetlbfs, slab etc. Patch 5 introduces this kind of skipping in the free scanner. The trick is that we can read compound_order() without any protection, if we are careful to filter out values larger than MAX_ORDER. The only danger is that we skip too much. The same trick was already used for reading the freepage order in the migrate scanner. To demonstrate improvements of Patches 4 and 5 I've run stress-highalloc from mmtests, set to simulate THP allocations (including __GFP_COMP) on a 4GB system where 1GB was occupied by hugetlbfs pages. I'll include just the relevant stats: Patch 3 Patch 4 Patch 5 Compaction stalls 7523 7529 7515 Compaction success 323 304 322 Compaction failures 7200 7224 7192 Page migrate success 247778 264395 240737 Page migrate failure 15358 33184 21621 Compaction pages isolated 906928 980192 909983 Compaction migrate scanned 2005277 1692805 1498800 Compaction free scanned 13255284 11539986 9011276 Compaction cost 288 305 277 With 5 iterations per patch, the results are still noisy, but we can see that Patch 4 does reduce migrate_scanned by 15% thanks to skipping the hugetlbfs pages at once. Interestingly, free_scanned is also reduced and I have no idea why. Patch 5 further reduces free_scanned as expected, by 15%. Other stats are unaffected modulo noise. [1] https://lkml.org/lkml/2015/1/19/158 This patch (of 5): Compaction should finish when the migration and free scanner meet, i.e. they reach the same pageblock. Currently however, the test in compact_finished() simply just compares the exact pfns, which may yield a false negative when the free scanner position is in the middle of a pageblock and the migration scanner reaches the begining of the same pageblock. This hasn't been a problem until commit e14c720efdd7 ("mm, compaction: remember position within pageblock in free pages scanner") allowed the free scanner position to be in the middle of a pageblock between invocations. The hot-fix 1d5bfe1ffb5b ("mm, compaction: prevent infinite loop in compact_zone") prevented the issue by adding a special check in the migration scanner to satisfy the current detection of scanners meeting. However, the proper fix is to make the detection more robust. This patch introduces the compact_scanners_met() function that returns true when the free scanner position is in the same or lower pageblock than the migration scanner. The special case in isolate_migratepages() introduced by 1d5bfe1ffb5b is removed. Suggested-by: Joonsoo Kim Signed-off-by: Vlastimil Babka Cc: Minchan Kim Acked-by: Mel Gorman Acked-by: Joonsoo Kim Acked-by: Michal Nazarewicz Cc: Naoya Horiguchi Cc: Christoph Lameter Acked-by: Rik van Riel Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/compaction.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 1fc524d74cf40072a2de3f74a920818398dbff30 Author: Sean O. Stalley Date: Tue Sep 8 15:02:33 2015 -0700 coccinelle: mm: scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci add [pci|dma]_pool_zalloc coccinelle check. replaces instances of [pci|dma]_pool_alloc() followed by memset(0) with [pci|dma]_pool_zalloc(). Signed-off-by: Sean O. Stalley Acked-by: Julia Lawall Cc: Vinod Koul Cc: Bjorn Helgaas Cc: Gilles Muller Cc: Nicolas Palix Cc: Michal Marek Cc: Sebastian Andrzej Siewior Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds .../coccinelle/api/alloc/pool_zalloc-simple.cocci | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) commit 01a7fd337b2c2af97e9c55bb9406a222a2e209d3 Author: Sean O. Stalley Date: Tue Sep 8 15:02:30 2015 -0700 pci: mm: add pci_pool_zalloc() call Add a wrapper function for pci_pool_alloc() to get zeroed memory. Signed-off-by: Sean O. Stalley Cc: Vinod Koul Cc: Bjorn Helgaas Cc: Gilles Muller Cc: Nicolas Palix Cc: Michal Marek Cc: Sebastian Andrzej Siewior Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/pci.h | 2 ++ 1 file changed, 2 insertions(+) commit ad82362b2defd4adad87d8538617b2f51a4bf9c3 Author: Sean O. Stalley Date: Tue Sep 8 15:02:27 2015 -0700 mm: add dma_pool_zalloc() call to DMA API Add a wrapper function for dma_pool_alloc() to get zeroed memory. Signed-off-by: Sean O. Stalley Cc: Vinod Koul Cc: Bjorn Helgaas Cc: Gilles Muller Cc: Nicolas Palix Cc: Michal Marek Cc: Sebastian Andrzej Siewior Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/DMA-API.txt | 7 +++++++ include/linux/dmapool.h | 6 ++++++ 2 files changed, 13 insertions(+) commit fa23f56d90ed7bd760ae2aea6dfb2f501a099e90 Author: Sean O. Stalley Date: Tue Sep 8 15:02:24 2015 -0700 mm: add support for __GFP_ZERO flag to dma_pool_alloc() Currently a call to dma_pool_alloc() with a ___GFP_ZERO flag returns a non-zeroed memory region. This patchset adds support for the __GFP_ZERO flag to dma_pool_alloc(), adds 2 wrapper functions for allocing zeroed memory from a pool, and provides a coccinelle script for finding & replacing instances of dma_pool_alloc() followed by memset(0) with a single dma_pool_zalloc() call. There was some concern that this always calls memset() to zero, instead of passing __GFP_ZERO into the page allocator. [https://lkml.org/lkml/2015/7/15/881] I ran a test on my system to get an idea of how often dma_pool_alloc() calls into pool_alloc_page(). After Boot: [ 30.119863] alloc_calls:541, page_allocs:7 After an hour: [ 3600.951031] alloc_calls:9566, page_allocs:12 After copying 1GB file onto a USB drive: [ 4260.657148] alloc_calls:17225, page_allocs:12 It doesn't look like dma_pool_alloc() calls down to the page allocator very often (at least on my system). This patch (of 4): Currently the __GFP_ZERO flag is ignored by dma_pool_alloc(). Make dma_pool_alloc() zero the memory if this flag is set. Signed-off-by: Sean O. Stalley Acked-by: David Rientjes Cc: Vinod Koul Cc: Bjorn Helgaas Cc: Gilles Muller Cc: Nicolas Palix Cc: Michal Marek Cc: Sebastian Andrzej Siewior Cc: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/dmapool.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit c54839a722a02818677bcabe57e957f0ce4f841d Author: Jaewon Kim Date: Tue Sep 8 15:02:21 2015 -0700 vmscan: fix increasing nr_isolated incurred by putback unevictable pages reclaim_clean_pages_from_list() assumes that shrink_page_list() returns number of pages removed from the candidate list. But shrink_page_list() puts back mlocked pages without passing it to caller and without counting as nr_reclaimed. This increases nr_isolated. To fix this, this patch changes shrink_page_list() to pass unevictable pages back to caller. Caller will take care those pages. Minchan said: It fixes two issues. 1. With unevictable page, cma_alloc will be successful. Exactly speaking, cma_alloc of current kernel will fail due to unevictable pages. 2. fix leaking of NR_ISOLATED counter of vmstat With it, too_many_isolated works. Otherwise, it could make hang until the process get SIGKILL. Signed-off-by: Jaewon Kim Acked-by: Minchan Kim Cc: Mel Gorman Acked-by: Vlastimil Babka Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0b802f101d0c6caeeee89066dc2c8665082a83df Author: Vladimir Davydov Date: Tue Sep 8 15:02:18 2015 -0700 mm: vmscan: never isolate more pages than necessary If transparent huge pages are enabled, we can isolate many more pages than we actually need to scan, because we count both single and huge pages equally in isolate_lru_pages(). Since commit 5bc7b8aca942d ("mm: thp: add split tail pages to shrink page list in page reclaim"), we scan all the tail pages immediately after a huge page split (see shrink_page_list()). As a result, we can reclaim up to SWAP_CLUSTER_MAX * HPAGE_PMD_NR (512 MB) in one run! This is easy to catch on memcg reclaim with zswap enabled. The latter makes swapout instant so that if we happen to scan an unreferenced huge page we will evict both its head and tail pages immediately, which is likely to result in excessive reclaim. Signed-off-by: Vladimir Davydov Cc: Johannes Weiner Reviewed-by: Michal Hocko Cc: Vlastimil Babka Cc: Minchan Kim Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/vmscan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 64b990d2957cb535fe1c17b9694d5d4f7de69962 Author: Kirill A. Shutemov Date: Tue Sep 8 15:02:15 2015 -0700 mm: drop __nocast from vm_flags_t definition __nocast does no good for vm_flags_t. It only produces useless sparse warnings. Let's drop it. Signed-off-by: Kirill A. Shutemov Cc: Oleg Nesterov Acked-by: David Rientjes Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm_types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b4ace4141db1ddc46f6c9915086dd5e18d7154d Author: Chris Metcalf Date: Tue Sep 8 15:02:12 2015 -0700 bootmem: avoid freeing to bootmem after bootmem is done Bootmem isn't popular any more, but some architectures still use it, and freeing to bootmem after calling free_all_bootmem_core() can end up scribbling over random memory. Instead, make sure the kernel generates a warning in this case by ensuring the node_bootmem_map field is non-NULL when are freeing or marking bootmem. An instance of this bug was just fixed in the tile architecture ("tile: use free_bootmem_late() for initrd") and catching this case more widely seems like a good thing. Signed-off-by: Chris Metcalf Acked-by: Mel Gorman Cc: Yasuaki Ishimatsu Cc: Pekka Enberg Cc: Paul McQuade Cc: Tang Chen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/bootmem.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c5b4e1b02f2a0c2309ecd58a235a2f5ee4eb0074 Author: Naoya Horiguchi Date: Tue Sep 8 15:02:09 2015 -0700 mm, page_isolation: make set/unset_migratetype_isolate() file-local Nowaday, set/unset_migratetype_isolate() is defined and used only in mm/page_isolation, so let's limit the scope within the file. Signed-off-by: Naoya Horiguchi Acked-by: David Rientjes Acked-by: Vlastimil Babka Cc: Joonsoo Kim Cc: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/page-isolation.h | 5 ----- mm/page_isolation.c | 5 +++-- 2 files changed, 3 insertions(+), 7 deletions(-) commit acda0c3340282bc7c36f4e9a5e2ccb7bb7e64676 Author: Aristeu Rozanski Date: Tue Sep 8 15:02:06 2015 -0700 mm/mempolicy.c: get rid of duplicated check for vma(VM_PFNMAP) in queue_pages_range() This check was introduced as part of 6f4576e3687 ("mempolicy: apply page table walker on queue_pages_range()") which got duplicated by 48684a65b4e ("mm: pagewalk: fix misbehavior of walk_page_range for vma(VM_PFNMAP)") by reintroducing it earlier on queue_page_test_walk() Signed-off-by: Aristeu Rozanski Acked-by: Naoya Horiguchi Acked-by: Kirill A. Shutemov Cc: Andrea Arcangeli Acked-by: Cyrill Gorcunov Cc: Dave Hansen Cc: Kirill A. Shutemov Cc: Pavel Emelyanov Cc: Benjamin Herrenschmidt Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempolicy.c | 3 --- 1 file changed, 3 deletions(-) commit 95cf82ecc1fcb44df1768162343cc8eb88083b86 Author: Tang Chen Date: Tue Sep 8 15:02:03 2015 -0700 mem-hotplug: handle node hole when initializing numa_meminfo. When parsing SRAT, all memory ranges are added into numa_meminfo. In numa_init(), before entering numa_cleanup_meminfo(), all possible memory ranges are in numa_meminfo. And numa_cleanup_meminfo() removes all ranges over max_pfn or empty. But, this only works if the nodes are continuous. Let's have a look at the following example: We have an SRAT like this: SRAT: Node 0 PXM 0 [mem 0x00000000-0x5fffffff] SRAT: Node 0 PXM 0 [mem 0x100000000-0x1ffffffffff] SRAT: Node 1 PXM 1 [mem 0x20000000000-0x3ffffffffff] SRAT: Node 4 PXM 2 [mem 0x40000000000-0x5ffffffffff] hotplug SRAT: Node 5 PXM 3 [mem 0x60000000000-0x7ffffffffff] hotplug SRAT: Node 2 PXM 4 [mem 0x80000000000-0x9ffffffffff] hotplug SRAT: Node 3 PXM 5 [mem 0xa0000000000-0xbffffffffff] hotplug SRAT: Node 6 PXM 6 [mem 0xc0000000000-0xdffffffffff] hotplug SRAT: Node 7 PXM 7 [mem 0xe0000000000-0xfffffffffff] hotplug On boot, only node 0,1,2,3 exist. And the numa_meminfo will look like this: numa_meminfo.nr_blks = 9 1. on node 0: [0, 60000000] 2. on node 0: [100000000, 20000000000] 3. on node 1: [20000000000, 40000000000] 4. on node 4: [40000000000, 60000000000] 5. on node 5: [60000000000, 80000000000] 6. on node 2: [80000000000, a0000000000] 7. on node 3: [a0000000000, a0800000000] 8. on node 6: [c0000000000, a0800000000] 9. on node 7: [e0000000000, a0800000000] And numa_cleanup_meminfo() will merge 1 and 2, and remove 8,9 because the end address is over max_pfn, which is a0800000000. But 4 and 5 are not removed because their end addresses are less then max_pfn. But in fact, node 4 and 5 don't exist. In a word, numa_cleanup_meminfo() is not able to handle holes between nodes. Since memory ranges in node 4 and 5 are in numa_meminfo, in numa_register_memblks(), node 4 and 5 will be mistakenly set to online. If you run lscpu, it will show: NUMA node0 CPU(s): 0-14,128-142 NUMA node1 CPU(s): 15-29,143-157 NUMA node2 CPU(s): NUMA node3 CPU(s): NUMA node4 CPU(s): 62-76,190-204 NUMA node5 CPU(s): 78-92,206-220 In this patch, we use memblock_overlaps_region() to check if ranges in numa_meminfo overlap with ranges in memory_block. Since memory_block contains all available memory at boot time, if they overlap, it means the ranges exist. If not, then remove them from numa_meminfo. After this patch, lscpu will show: NUMA node0 CPU(s): 0-14,128-142 NUMA node1 CPU(s): 15-29,143-157 NUMA node4 CPU(s): 62-76,190-204 NUMA node5 CPU(s): 78-92,206-220 Signed-off-by: Tang Chen Reviewed-by: Yasuaki Ishimatsu Cc: Thomas Gleixner Cc: Tejun Heo Cc: Luiz Capitulino Cc: Xishi Qiu Cc: Will Deacon Cc: Vladimir Murzin Cc: Fabian Frederick Cc: Alexander Kuleshov Cc: Baoquan He Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/mm/numa.c | 6 ++++-- include/linux/memblock.h | 2 ++ mm/memblock.c | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) commit c5c5c9d1008fb15945d0173b3ca75931ef53ae1f Author: Tang Chen Date: Tue Sep 8 15:02:00 2015 -0700 mm/memblock.c: make memblock_overlaps_region() return bool. memblock_overlaps_region() checks if the given memblock region intersects a region in memblock. If so, it returns the index of the intersected region. But its only caller is memblock_is_region_reserved(), and it returns 0 if false, non-zero if true. Both of these should return bool. Signed-off-by: Tang Chen Cc: Thomas Gleixner Cc: Tejun Heo Cc: Yasuaki Ishimatsu Cc: Luiz Capitulino Cc: Xishi Qiu Cc: Will Deacon Cc: Vladimir Murzin Cc: Fabian Frederick Cc: Alexander Kuleshov Cc: Baoquan He Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memblock.h | 2 +- mm/memblock.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit 72079ba0dfefc1444b4ef98a2fa3d040838a775f Author: Mike Kravetz Date: Tue Sep 8 15:01:57 2015 -0700 mm: madvise allow remove operation for hugetlbfs Now that we have hole punching support for hugetlbfs, we can also support the MADV_REMOVE interface to it. Signed-off-by: Dave Hansen Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/madvise.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 70c3547e36f5c9fbc4caecfeca98f0effa6932c5 Author: Mike Kravetz Date: Tue Sep 8 15:01:54 2015 -0700 hugetlbfs: add hugetlbfs_fallocate() This is based on the shmem version, but it has diverged quite a bit. We have no swap to worry about, nor the new file sealing. Add synchronication via the fault mutex table to coordinate page faults, fallocate allocation and fallocate hole punch. What this allows us to do is move physical memory in and out of a hugetlbfs file without having it mapped. This also gives us the ability to support MADV_REMOVE since it is currently implemented using fallocate(). MADV_REMOVE lets madvise() remove pages from the middle of a hugetlbfs file, which wasn't possible before. hugetlbfs fallocate only operates on whole huge pages. Based on code by Dave Hansen. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 179 +++++++++++++++++++++++++++++++++++++++++++++++- include/linux/hugetlb.h | 3 + mm/hugetlb.c | 2 +- 3 files changed, 182 insertions(+), 2 deletions(-) commit ab76ad540a50191308e5bb6b5e2d9e26c78616d3 Author: Mike Kravetz Date: Tue Sep 8 15:01:50 2015 -0700 hugetlbfs: New huge_add_to_page_cache helper routine Currently, there is only a single place where hugetlbfs pages are added to the page cache. The new fallocate code be adding a second one, so break the functionality out into its own helper. Signed-off-by: Dave Hansen Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/hugetlb.h | 2 ++ mm/hugetlb.c | 27 ++++++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) commit d85f69b0b533ec6d7ac8c21db958c44c6d957c90 Author: Mike Kravetz Date: Tue Sep 8 15:01:47 2015 -0700 mm/hugetlb: alloc_huge_page handle areas hole punched by fallocate Areas hole punched by fallocate will not have entries in the region/reserve map. However, shared mappings with min_size subpool reservations may still have reserved pages. alloc_huge_page needs to handle this special case and do the proper accounting. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 54 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 15 deletions(-) commit 1fb1b0e9ef2d661488f8053986c3b7641cae529d Author: Mike Kravetz Date: Tue Sep 8 15:01:44 2015 -0700 mm/hugetlb: vma_has_reserves() needs to handle fallocate hole punch In vma_has_reserves(), the current assumption is that reserves are always present for shared mappings. However, this will not be the case with fallocate hole punch. When punching a hole, the present page will be deleted as well as the region/reserve map entry (and hence any reservation). vma_has_reserves is passed "chg" which indicates whether or not a region/reserve map is present. Use this to determine if reserves are actually present or were removed via hole punch. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit b5cec28d36f5ee6b4e6f68a0a40aa1e4045d6d99 Author: Mike Kravetz Date: Tue Sep 8 15:01:41 2015 -0700 hugetlbfs: truncate_hugepages() takes a range of pages Modify truncate_hugepages() to take a range of pages (start, end) instead of simply start. If an end value of LLONG_MAX is passed, the current "truncate" functionality is maintained. Existing callers are modified to pass LLONG_MAX as end of range. By keying off end == LLONG_MAX, the routine behaves differently for truncate and hole punch. Page removal is now synchronized with page allocation via faults by using the fault mutex table. The hole punch case can experience the rare region_del error and must handle accordingly. Add the routine hugetlb_fix_reserve_counts to fix up reserve counts in the case where region_del returns an error. Since the routine handles more than just the truncate case, it is renamed to remove_inode_hugepages(). To be consistent, the routine truncate_huge_page() is renamed remove_huge_page(). Downstream of remove_inode_hugepages(), the routine hugetlb_unreserve_pages() is also modified to take a range of pages. hugetlb_unreserve_pages is modified to detect an error from region_del and pass it back to the caller. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 98 ++++++++++++++++++++++++++++++++++++++++++++----- include/linux/hugetlb.h | 4 +- mm/hugetlb.c | 40 ++++++++++++++++++-- 3 files changed, 128 insertions(+), 14 deletions(-) commit 1bfad99ab42569807d0ca1698449cae5e8c0334a Author: Mike Kravetz Date: Tue Sep 8 15:01:38 2015 -0700 hugetlbfs: hugetlb_vmtruncate_list() needs to take a range to delete fallocate hole punch will want to unmap a specific range of pages. Modify the existing hugetlb_vmtruncate_list() routine to take a start/end range. If end is 0, this indicates all pages after start should be unmapped. This is the same as the existing truncate functionality. Modify existing callers to add 0 as end of range. Since the routine will be used in hole punch as well as truncate operations, it is more appropriately renamed to hugetlb_vmdelete_list(). Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/hugetlbfs/inode.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit c672c7f29f2fdb73e1f72911bf499675c81fcdbb Author: Mike Kravetz Date: Tue Sep 8 15:01:35 2015 -0700 mm/hugetlb: expose hugetlb fault mutex for use by fallocate hugetlb page faults are currently synchronized by the table of mutexes (htlb_fault_mutex_table). fallocate code will need to synchronize with the page fault code when it allocates or deletes pages. Expose interfaces so that fallocate operations can be synchronized with page faults. Minor name changes to be more consistent with other global hugetlb symbols. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/hugetlb.h | 5 +++++ mm/hugetlb.c | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) commit feba16e25a578080af5aad5eb9e469b4e6c23eef Author: Mike Kravetz Date: Tue Sep 8 15:01:31 2015 -0700 mm/hugetlb: add region_del() to delete a specific range of entries fallocate hole punch will want to remove a specific range of pages. The existing region_truncate() routine deletes all region/reserve map entries after a specified offset. region_del() will provide this same functionality if the end of region is specified as LONG_MAX. Hence, region_del() can replace region_truncate(). Unlike region_truncate(), region_del() can return an error in the rare case where it can not allocate memory for a region descriptor. This ONLY happens in the case where an existing region must be split. Current callers passing LONG_MAX as end of range will never experience this error and do not need to deal with error handling. Future callers of region_del() (such as fallocate hole punch) will need to handle this error. Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 122 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 85 insertions(+), 37 deletions(-) commit 5e9113731a3ce616e8b5aa128ffc1aeaa4942571 Author: Mike Kravetz Date: Tue Sep 8 15:01:28 2015 -0700 mm/hugetlb: add cache of descriptors to resv_map for region_add hugetlbfs is used today by applications that want a high degree of control over huge page usage. Often, large hugetlbfs files are used to map a large number huge pages into the application processes. The applications know when page ranges within these large files will no longer be used, and ideally would like to release them back to the subpool or global pools for other uses. The fallocate() system call provides an interface for preallocation and hole punching within files. This patch set adds fallocate functionality to hugetlbfs. fallocate hole punch will want to remove a specific range of pages. When pages are removed, their associated entries in the region/reserve map will also be removed. This will break an assumption in the region_chg/region_add calling sequence. If a new region descriptor must be allocated, it is done as part of the region_chg processing. In this way, region_add can not fail because it does not need to attempt an allocation. To prepare for fallocate hole punch, create a "cache" of descriptors that can be used by region_add if necessary. region_chg will ensure there are sufficient entries in the cache. It will be necessary to track the number of in progress add operations to know a sufficient number of descriptors reside in the cache. A new routine region_abort is added to adjust this in progress count when add operations are aborted. vma_abort_reservation is also added for callers creating reservations with vma_needs_reservation/vma_commit_reservation. [akpm@linux-foundation.org: fix typo in comment, use more cols] Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Acked-by: Hillf Danton Cc: Dave Hansen Cc: David Rientjes Cc: Hugh Dickins Cc: Davidlohr Bueso Cc: Aneesh Kumar Cc: Christoph Hellwig Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/hugetlb.h | 3 + mm/hugetlb.c | 174 ++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 155 insertions(+), 22 deletions(-) commit bb14c2c75db972a1bf65fd63c8d5a0b41a8f263a Author: Vlastimil Babka Date: Tue Sep 8 15:01:25 2015 -0700 mm: rename and move get/set_freepage_migratetype The pair of get/set_freepage_migratetype() functions are used to cache pageblock migratetype for a page put on a pcplist, so that it does not have to be retrieved again when the page is put on a free list (e.g. when pcplists become full). Historically it was also assumed that the value is accurate for pages on freelists (as the functions' names unfortunately suggest), but that cannot be guaranteed without affecting various allocator fast paths. It is in fact not needed and all such uses have been removed. The last remaining (but pointless) usage related to pages of freelists is in move_freepages(), which this patch removes. To prevent further confusion, rename the functions to get/set_pcppage_migratetype() and expand their description. Since all the users are now in mm/page_alloc.c, move the functions there from the shared header. Signed-off-by: Vlastimil Babka Acked-by: David Rientjes Acked-by: Joonsoo Kim Cc: Minchan Kim Acked-by: Michal Nazarewicz Cc: Laura Abbott Reviewed-by: Naoya Horiguchi Cc: Seungho Park Cc: Johannes Weiner Cc: "Kirill A. Shutemov" Acked-by: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 12 ------------ mm/page_alloc.c | 41 ++++++++++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 25 deletions(-) commit aa016d145d4c3b8a7273429528f19d5b423ddbc7 Author: Vlastimil Babka Date: Tue Sep 8 15:01:22 2015 -0700 mm, page_isolation: remove bogus tests for isolated pages The __test_page_isolated_in_pageblock() is used to verify whether all pages in pageblock were either successfully isolated, or are hwpoisoned. Two of the possible state of pages, that are tested, are however bogus and misleading. Both tests rely on get_freepage_migratetype(page), which however has no guarantees about pages on freelists. Specifically, it doesn't guarantee that the migratetype returned by the function actually matches the migratetype of the freelist that the page is on. Such guarantee is not its purpose and would have negative impact on allocator performance. The first test checks whether the freepage_migratetype equals MIGRATE_ISOLATE, supposedly to catch races between page isolation and allocator activity. These races should be fixed nowadays with 51bb1a4093 ("mm/page_alloc: add freepage on isolate pageblock to correct buddy list") and related patches. As explained above, the check wouldn't be able to catch them reliably anyway. For the same reason false positives can happen, although they are harmless, as the move_freepages() call would just move the page to the same freelist it's already on. So removing the test is not a bug fix, just cleanup. After this patch, we assume that all PageBuddy pages are on the correct freelist and that the races were really fixed. A truly reliable verification in the form of e.g. VM_BUG_ON() would be complicated and is arguably not needed. The second test (page_count(page) == 0 && get_freepage_migratetype(page) == MIGRATE_ISOLATE) is probably supposed (the code comes from a big memory isolation patch from 2007) to catch pages on MIGRATE_ISOLATE pcplists. However, pcplists don't contain MIGRATE_ISOLATE freepages nowadays, those are freed directly to free lists, so the check is obsolete. Remove it as well. Signed-off-by: Vlastimil Babka Acked-by: Joonsoo Kim Cc: Minchan Kim Acked-by: Michal Nazarewicz Cc: Laura Abbott Reviewed-by: Naoya Horiguchi Cc: Seungho Park Cc: Johannes Weiner Cc: "Kirill A. Shutemov" Acked-by: Mel Gorman Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 4 ++++ mm/page_isolation.c | 30 ++++++------------------------ 2 files changed, 10 insertions(+), 24 deletions(-) commit 156408c0edaacbea1137f58b28fd6ec341064310 Author: Vishnu Pratap Singh Date: Tue Sep 8 15:01:19 2015 -0700 lib/show_mem.c: correct reserved memory calculation CMA reserved memory is not part of total reserved memory. Currently when we print the total reserve memory it considers cma as part of reserve memory and do minus of totalcma_pages from reserved, which is wrong. In cases where total reserved is less than cma reserved we will get negative values & while printing we print as unsigned and we will get a very large value. Below is the show mem output on X86 ubuntu based system where CMA reserved is 100MB (25600 pages) & total reserved is ~40MB(10316 pages). And reserve memory shows a large value because of this bug. Before: [ 127.066430] 898908 pages RAM [ 127.066432] 671682 pages HighMem/MovableOnly [ 127.066434] 4294952012 pages reserved [ 127.066436] 25600 pages cma reserved After: [ 44.663129] 898908 pages RAM [ 44.663130] 671682 pages HighMem/MovableOnly [ 44.663130] 10316 pages reserved [ 44.663131] 25600 pages cma reserved Signed-off-by: Vishnu Pratap Singh Cc: Michal Nazarewicz Cc: Marek Szyprowski Cc: Joonsoo Kim Cc: Laurent Pinchart Cc: Sasha Levin Cc: Danesh Petigara Cc: Laura Abbott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds lib/show_mem.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e752eb68811aeece2220e183e23369a34122fb5e Author: Michal Hocko Date: Tue Sep 8 15:01:16 2015 -0700 memcg: move memcg_proto_active from sock.h The only user is sock_update_memcg which is living in memcontrol.c so it doesn't make much sense to pollute sock.h by this inline helper. Move it to memcontrol.c and open code it into its only caller. Signed-off-by: Michal Hocko Cc: Vladimir Davydov Cc: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/net/sock.h | 5 ----- mm/memcontrol.c | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) commit a03f1f058969ec350fb7451a6fbca23096ee5727 Author: Michal Hocko Date: Tue Sep 8 15:01:13 2015 -0700 memcg, tcp_kmem: check for cg_proto in sock_update_memcg sk_prot->proto_cgroup is allowed to return NULL but sock_update_memcg doesn't check for NULL. The function relies on the mem_cgroup_is_root check because we shouldn't get NULL otherwise because mem_cgroup_from_task will always return !NULL. All other callers are checking for NULL and we can safely replace mem_cgroup_is_root() check by cg_proto != NULL which will be more straightforward (proto_cgroup returns NULL for the root memcg already). Signed-off-by: Michal Hocko Reviewed-by: Vladimir Davydov Cc: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9f2115f93b88e5e8d48b87b153e36a537afb58cb Author: Tejun Heo Date: Tue Sep 8 15:01:10 2015 -0700 memcg: restructure mem_cgroup_can_attach() Restructure it to lower nesting level and help the planned threadgroup leader iteration changes. This is pure reorganization. Signed-off-by: Tejun Heo Signed-off-by: Michal Hocko Reviewed-by: Vladimir Davydov Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 61 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) commit 64219994898c8689c3d57668996f476f8c2d398c Author: Michal Hocko Date: Tue Sep 8 15:01:07 2015 -0700 memcg: get rid of extern for functions in memcontrol.h Most of the exported functions in this header are not marked extern so change the rest to follow the same style. Signed-off-by: Michal Hocko Reviewed-by: Vladimir Davydov Cc: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit fabc3fdde00b54825ba23230aedbf88a735b4e49 Author: Michal Hocko Date: Tue Sep 8 15:01:04 2015 -0700 memcg: get rid of mem_cgroup_root_css for !CONFIG_MEMCG The only user is cgwb_bdi_init and that one depends on CONFIG_CGROUP_WRITEBACK which in turn depends on CONFIG_MEMCG so it doesn't make much sense to definte an empty stub for !CONFIG_MEMCG. Moreover ERR_PTR(-EINVAL) is ugly and would lead to runtime crashes if used in unguarded code paths. Better fail during compilation. Signed-off-by: Michal Hocko Reviewed-by: Vladimir Davydov Cc: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 2 -- 1 file changed, 2 deletions(-) commit 33398cf2f360c5ce24c8a22436d52a06ad4e5eb5 Author: Michal Hocko Date: Tue Sep 8 15:01:02 2015 -0700 memcg: export struct mem_cgroup mem_cgroup structure is defined in mm/memcontrol.c currently which means that the code outside of this file has to use external API even for trivial access stuff. This patch exports mm_struct with its dependencies and makes some of the exported functions inlines. This even helps to reduce the code size a bit (make defconfig + CONFIG_MEMCG=y) text data bss dec hex filename 12355346 1823792 1089536 15268674 e8fb42 vmlinux.before 12354970 1823792 1089536 15268298 e8f9ca vmlinux.after This is not much (370B) but better than nothing. We also save a function call in some hot paths like callers of mem_cgroup_count_vm_event which is used for accounting. The patch doesn't introduce any functional changes. [vdavykov@parallels.com: inline memcg_kmem_is_active] [vdavykov@parallels.com: do not expose type outside of CONFIG_MEMCG] [akpm@linux-foundation.org: memcontrol.h needs eventfd.h for eventfd_ctx] [akpm@linux-foundation.org: export mem_cgroup_from_task() to modules] Signed-off-by: Michal Hocko Reviewed-by: Vladimir Davydov Suggested-by: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/memcontrol.h | 370 +++++++++++++++++++++++++++++++++++++++++---- include/linux/swap.h | 10 +- include/net/sock.h | 28 ---- mm/memcontrol.c | 315 +------------------------------------- mm/memory-failure.c | 2 +- mm/slab_common.c | 2 +- mm/vmscan.c | 2 +- 7 files changed, 351 insertions(+), 378 deletions(-) commit b3d9ed3fd872fc074286674ae8595ee880938bbf Author: Michal Hocko Date: Tue Sep 8 15:00:59 2015 -0700 sparc32: do not include swap.h from pgtable_32.h "memcg: export struct mem_cgroup" will add includes into linux/memcontrol.h which lead to further header dependency issues as reported by Guenter Roeck: In file included from include/linux/highmem.h:7:0, from include/linux/bio.h:23, from include/linux/writeback.h:192, from include/linux/memcontrol.h:30, from include/linux/swap.h:8, from ./arch/sparc/include/asm/pgtable_32.h:17, from ./arch/sparc/include/asm/pgtable.h:6, from arch/sparc/kernel/traps_32.c:23: include/linux/mm.h: In function 'is_vmalloc_addr': include/linux/mm.h:371:17: error: 'VMALLOC_START' undeclared (first use in this function) include/linux/mm.h:371:17: note: each undeclared identifier is reported only once for each function it appears in include/linux/mm.h:371:41: error: 'VMALLOC_END' undeclared (first use in this function) include/linux/mm.h: In function 'maybe_mkwrite': include/linux/mm.h:556:3: error: implicit declaration of function 'pte_mkwrite' The issue is that pgtable_32.h depends on swap.h to get swap_entry_t but that goes all the way down to linux/mm.h which wants to have VMALLOC_* which is defined later in pgtable_32.h, though. swap_entry_t is defined in include/mm_types.h so it should be sufficient to include this header without more dependencies. Signed-off-by: Michal Hocko Reported-by: Guenter Roeck Tested-by: Guenter Roeck Cc: David Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sparc/include/asm/pgtable_32.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 44d7175da6ea10e353e69b586bb68bbfef89e403 Author: Sergey Senozhatsky Date: Tue Sep 8 15:00:56 2015 -0700 mm/dmapool: allow NULL `pool' pointer in dma_pool_destroy() dma_pool_destroy() does not tolerate a NULL dma_pool pointer argument and performs a NULL-pointer dereference. This requires additional attention and effort from developers/reviewers and forces all dma_pool_destroy() callers to do a NULL check if (pool) dma_pool_destroy(pool); Or, otherwise, be invalid dma_pool_destroy() users. Tweak dma_pool_destroy() and NULL-check the pointer there. Proposed by Andrew Morton. Link: https://lkml.org/lkml/2015/6/8/583 Signed-off-by: Sergey Senozhatsky Acked-by: David Rientjes Cc: Julia Lawall Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/dmapool.c | 3 +++ 1 file changed, 3 insertions(+) commit 4e3ca3e033d1eea62fa16c3fdbef4f20427bd0de Author: Sergey Senozhatsky Date: Tue Sep 8 15:00:53 2015 -0700 mm/mempool: allow NULL `pool' pointer in mempool_destroy() mempool_destroy() does not tolerate a NULL mempool_t pointer argument and performs a NULL-pointer dereference. This requires additional attention and effort from developers/reviewers and forces all mempool_destroy() callers to do a NULL check if (pool) mempool_destroy(pool); Or, otherwise, be invalid mempool_destroy() users. Tweak mempool_destroy() and NULL-check the pointer there. Proposed by Andrew Morton. Link: https://lkml.org/lkml/2015/6/8/583 Signed-off-by: Sergey Senozhatsky Acked-by: David Rientjes Cc: Julia Lawall Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mempool.c | 3 +++ 1 file changed, 3 insertions(+) commit 3942d29918522ba6a393c19388301ec04df429cd Author: Sergey Senozhatsky Date: Tue Sep 8 15:00:50 2015 -0700 mm/slab_common: allow NULL cache pointer in kmem_cache_destroy() kmem_cache_destroy() does not tolerate a NULL kmem_cache pointer argument and performs a NULL-pointer dereference. This requires additional attention and effort from developers/reviewers and forces all kmem_cache_destroy() callers (200+ as of 4.1) to do a NULL check if (cache) kmem_cache_destroy(cache); Or, otherwise, be invalid kmem_cache_destroy() users. Tweak kmem_cache_destroy() and NULL-check the pointer there. Proposed by Andrew Morton. Link: https://lkml.org/lkml/2015/6/8/583 Signed-off-by: Sergey Senozhatsky Acked-by: David Rientjes Cc: Julia Lawall Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab_common.c | 3 +++ 1 file changed, 3 insertions(+) commit 75e8f8b24cb0dc4951267d31f0a49e5ce2f345c4 Author: David Rientjes Date: Tue Sep 8 15:00:47 2015 -0700 mm, oom: remove unnecessary variable The "killed" variable in out_of_memory() can be removed since the call to oom_kill_process() where we should block to allow the process time to exit is obvious. Signed-off-by: David Rientjes Acked-by: Michal Hocko Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/oom_kill.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 8989e4c7d4e3c30b55c998a1138cd06c92df7295 Author: David Rientjes Date: Tue Sep 8 15:00:44 2015 -0700 mm, oom: add description of struct oom_control Describe the purpose of struct oom_control and what each member does. Also make gfp_mask and order const since they are never manipulated or passed to functions that discard the qualifier. Signed-off-by: David Rientjes Cc: Michal Hocko Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/oom.h | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) commit 071a4befebb655d6b31bf5c6bacd5a6df035224d Author: David Rientjes Date: Tue Sep 8 15:00:42 2015 -0700 mm, oom: do not panic for oom kills triggered from sysrq Sysrq+f is used to kill a process either for debug or when the VM is otherwise unresponsive. It is not intended to trigger a panic when no process may be killed. Avoid panicking the system for sysrq+f when no processes are killed. Signed-off-by: David Rientjes Suggested-by: Michal Hocko Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/sysrq.txt | 3 ++- mm/oom_kill.c | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) commit 54e9e29132d7caefcad470281cae06ac34a982c8 Author: David Rientjes Date: Tue Sep 8 15:00:39 2015 -0700 mm, oom: pass an oom order of -1 when triggered by sysrq The force_kill member of struct oom_control isn't needed if an order of -1 is used instead. This is the same as order == -1 in struct compact_control which requires full memory compaction. This patch introduces no functional change. Signed-off-by: David Rientjes Cc: Sergey Senozhatsky Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/tty/sysrq.c | 3 +-- include/linux/oom.h | 1 - mm/memcontrol.c | 1 - mm/oom_kill.c | 5 ++--- mm/page_alloc.c | 1 - 5 files changed, 3 insertions(+), 8 deletions(-) commit 6e0fc46dc2152d3e2d25a5d5b640ae3586c247c6 Author: David Rientjes Date: Tue Sep 8 15:00:36 2015 -0700 mm, oom: organize oom context into struct There are essential elements to an oom context that are passed around to multiple functions. Organize these elements into a new struct, struct oom_control, that specifies the context for an oom condition. This patch introduces no functional change. Signed-off-by: David Rientjes Acked-by: Michal Hocko Cc: Sergey Senozhatsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/tty/sysrq.c | 12 +++++- include/linux/oom.h | 25 +++++++----- mm/memcontrol.c | 16 +++++--- mm/oom_kill.c | 115 ++++++++++++++++++++++++---------------------------- mm/page_alloc.c | 10 ++++- 5 files changed, 98 insertions(+), 80 deletions(-) commit 2c0b80d463c6ade539d51ad03bc7c41849fb37e8 Author: Nicholas Krause Date: Tue Sep 8 15:00:33 2015 -0700 mm: make set_recommended_min_free_kbytes() return void This makes set_recommended_min_free_kbytes() have a return type of void as it cannot fail. Signed-off-by: Nicholas Krause Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 28c015d07507e164d93b33498b4e482ff81c0e9b Author: David Rientjes Date: Tue Sep 8 15:00:31 2015 -0700 mm: improve __GFP_NORETRY comment based on implementation Explicitly state that __GFP_NORETRY will attempt direct reclaim and memory compaction before returning NULL and that the oom killer is not called in the current implementation of the page allocator. [akpm@linux-foundation.org: s/has/have/] Signed-off-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/gfp.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 998ef75ddb5709bbea0bf1506cd2717348a3c647 Author: Dave Hansen Date: Tue Sep 8 15:00:28 2015 -0700 fs: do not prefault sys_write() user buffer pages === Short summary ==== iov_iter_fault_in_readable() works around a really rare case and we can avoid the deadlock it addresses in another way: disable page faults and work around copy failures by faulting after the copy in a slow path instead of before in a hot one. I have a little microbenchmark that does repeated, small writes to tmpfs. This patch speeds that micro up by 6.2%. === Long version === When doing a sys_write() we have a source buffer in userspace and then a target file page. If both of those are the same physical page, there is a potential deadlock that we avoid. It would happen something like this: 1. We start the write to the file 2. Allocate page cache page and set it !Uptodate 3. Touch the userspace buffer to copy in the user data 4. Page fault (since source of the write not yet mapped) 5. Page fault code tries to lock the page and deadlocks (more details on this below) To avoid this, we prefault the page to guarantee that this fault does not occur. But, this prefault comes at a cost. It is one of the most expensive things that we do in a hot write() path (especially if we compare it to the read path). It is working around a pretty rare case. To fix this, it's pretty simple. We move the "prefault" code to run after we attempt the copy. We explicitly disable page faults _during_ the copy, detect the copy failure, then execute the "prefault" ouside of where the page lock needs to be held. iov_iter_copy_from_user_atomic() actually already has an implicit pagefault_disable() inside of it (at least on x86), but we add an explicit one. I don't think we can depend on every kmap_atomic() implementation to pagefault_disable() for eternity. =================================================== The stack trace when this happens looks like this: wait_on_page_bit_killable+0xc0/0xd0 __lock_page_or_retry+0x84/0xa0 filemap_fault+0x1ed/0x3d0 __do_fault+0x41/0xc0 handle_mm_fault+0x9bb/0x1210 __do_page_fault+0x17f/0x3d0 do_page_fault+0xc/0x10 page_fault+0x22/0x30 generic_perform_write+0xca/0x1a0 __generic_file_write_iter+0x190/0x1f0 ext4_file_write_iter+0xe9/0x460 __vfs_write+0xaa/0xe0 vfs_write+0xa6/0x1a0 SyS_write+0x46/0xa0 entry_SYSCALL_64_fastpath+0x12/0x6a 0xffffffffffffffff (Note, this does *NOT* happen in practice today because the kmap_atomic() does a pagefault_disable(). The trace above was obtained by taking out the pagefault_disable().) You can trigger the deadlock with this little code snippet: fd = open("foo", O_RDWR); fdmap = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0); write(fd, &fdmap[0], 1); Signed-off-by: Dave Hansen Cc: Al Viro Cc: Michal Hocko Cc: Jens Axboe Cc: Tejun Heo Cc: NeilBrown Cc: Matthew Wilcox Cc: Paul Cassella Cc: Greg Thelen Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/filemap.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit 8334b96221ff0dcbde4873d31eb4d84774ed8ed4 Author: Minchan Kim Date: Tue Sep 8 15:00:24 2015 -0700 mm: /proc/pid/smaps:: show proportional swap share of the mapping We want to know per-process workingset size for smart memory management on userland and we use swap(ex, zram) heavily to maximize memory efficiency so workingset includes swap as well as RSS. On such system, if there are lots of shared anonymous pages, it's really hard to figure out exactly how many each process consumes memory(ie, rss + wap) if the system has lots of shared anonymous memory(e.g, android). This patch introduces SwapPss field on /proc//smaps so we can get more exact workingset size per process. Bongkyu tested it. Result is below. 1. 50M used swap SwapTotal: 461976 kB SwapFree: 411192 kB $ adb shell cat /proc/*/smaps | grep "SwapPss:" | awk '{sum += $2} END {print sum}'; 48236 $ adb shell cat /proc/*/smaps | grep "Swap:" | awk '{sum += $2} END {print sum}'; 141184 2. 240M used swap SwapTotal: 461976 kB SwapFree: 216808 kB $ adb shell cat /proc/*/smaps | grep "SwapPss:" | awk '{sum += $2} END {print sum}'; 230315 $ adb shell cat /proc/*/smaps | grep "Swap:" | awk '{sum += $2} END {print sum}'; 1387744 [akpm@linux-foundation.org: simplify kunmap_atomic() call] Signed-off-by: Minchan Kim Reported-by: Bongkyu Kim Tested-by: Bongkyu Kim Cc: Hugh Dickins Cc: Sergey Senozhatsky Cc: Jonathan Corbet Cc: Jerome Marchand Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/proc.txt | 18 +++++++++++----- fs/proc/task_mmu.c | 18 ++++++++++++++-- include/linux/swap.h | 6 ++++++ mm/swapfile.c | 42 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 7 deletions(-) commit 3115aec4513e5bcb399235cac98a5637fe641c13 Author: Vladimir Murzin Date: Tue Sep 8 15:00:22 2015 -0700 memtest: remove unused header files memtest does not require these headers to be included. Signed-off-by: Vladimir Murzin Cc: Leon Romanovsky Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memtest.c | 5 ----- 1 file changed, 5 deletions(-) commit f373bafcad68834761b40da9cecda842f43d4797 Author: Vladimir Murzin Date: Tue Sep 8 15:00:19 2015 -0700 memtest: cleanup log messages - prefer pr_info(... to printk(KERN_INFO ... - use %pa for phys_addr_t - use cpu_to_be64 while printing pattern in reserve_bad_mem() Signed-off-by: Vladimir Murzin Cc: Leon Romanovsky Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memtest.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 06f805965fc205e27681eee99fd2376fafd8da65 Author: Vladimir Murzin Date: Tue Sep 8 15:00:16 2015 -0700 memtest: use kstrtouint instead of simple_strtoul Since simple_strtoul is obsolete and memtest_pattern is type of int, use kstrtouint instead. Signed-off-by: Vladimir Murzin Cc: Leon Romanovsky Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memtest.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 83b4b0bb635eee2b8e075062e4e008d1bc110ed7 Author: Konstantin Khlebnikov Date: Tue Sep 8 15:00:13 2015 -0700 pagemap: update documentation Notes about recent changes. [akpm@linux-foundation.org: various tweaks] Signed-off-by: Konstantin Khlebnikov Cc: Mark Williamson Cc: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/pagemap.txt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 77bb499bb60f4b79cca7d139c8041662860fcf87 Author: Konstantin Khlebnikov Date: Tue Sep 8 15:00:10 2015 -0700 pagemap: add mmap-exclusive bit for marking pages mapped only here This patch sets bit 56 in pagemap if this page is mapped only once. It allows to detect exclusively used pages without exposing PFN: present file exclusive state 0 0 0 non-present 1 1 0 file page mapped somewhere else 1 1 1 file page mapped only here 1 0 0 anon non-CoWed page (shared with parent/child) 1 0 1 anon CoWed page (or never forked) CoWed pages in (MAP_FILE | MAP_PRIVATE) areas are anon in this context. MMap-exclusive bit doesn't reflect potential page-sharing via swapcache: page could be mapped once but has several swap-ptes which point to it. Application could detect that by swap bit in pagemap entry and touch that pte via /proc/pid/mem to get real information. See http://lkml.kernel.org/r/CAEVpBa+_RyACkhODZrRvQLs80iy0sqpdrd0AaP_-tgnX3Y9yNQ@mail.gmail.com Requested by Mark Williamson. [akpm@linux-foundation.org: fix spello] Signed-off-by: Konstantin Khlebnikov Reviewed-by: Mark Williamson Tested-by: Mark Williamson Reviewed-by: Naoya Horiguchi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/pagemap.txt | 3 ++- fs/proc/task_mmu.c | 14 +++++++++++++- tools/vm/page-types.c | 10 ++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) commit 1c90308e7a77af6742a97d1021cca923b23b7f0d Author: Konstantin Khlebnikov Date: Tue Sep 8 15:00:07 2015 -0700 pagemap: hide physical addresses from non-privileged users This patch makes pagemap readable for normal users and hides physical addresses from them. For some use-cases PFN isn't required at all. See http://lkml.kernel.org/r/1425935472-17949-1-git-send-email-kirill@shutemov.name Fixes: ab676b7d6fbf ("pagemap: do not leak physical addresses to non-privileged userspace") Signed-off-by: Konstantin Khlebnikov Cc: Naoya Horiguchi Reviewed-by: Mark Williamson Tested-by: Mark Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 356515e7b64c2629f686109d426baaf868cdf7e8 Author: Konstantin Khlebnikov Date: Tue Sep 8 15:00:04 2015 -0700 pagemap: rework hugetlb and thp report This patch moves pmd dissection out of reporting loop: huge pages are reported as bunch of normal pages with contiguous PFNs. Add missing "FILE" bit in hugetlb vmas. Signed-off-by: Konstantin Khlebnikov Reviewed-by: Naoya Horiguchi Reviewed-by: Mark Williamson Tested-by: Mark Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 100 +++++++++++++++++++++++------------------------------ 1 file changed, 44 insertions(+), 56 deletions(-) commit deb945441b9408d6cd15751f5232eeca9f50a5a1 Author: Konstantin Khlebnikov Date: Tue Sep 8 15:00:02 2015 -0700 pagemap: switch to the new format and do some cleanup This patch removes page-shift bits (scheduled to remove since 3.11) and completes migration to the new bit layout. Also it cleans messy macro. Signed-off-by: Konstantin Khlebnikov Reviewed-by: Naoya Horiguchi Cc: Mark Williamson Tested-by: Mark Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 150 ++++++++++++++++++-------------------------------- tools/vm/page-types.c | 25 +++------ 2 files changed, 61 insertions(+), 114 deletions(-) commit a06db751c321546e5563041956a57613259c6720 Author: Konstantin Khlebnikov Date: Tue Sep 8 14:59:59 2015 -0700 pagemap: check permissions and capabilities at open time This patchset makes pagemap useable again in the safe way (after row hammer bug it was made CAP_SYS_ADMIN-only). This patchset restores access for non-privileged users but hides PFNs from them. Also it adds bit 'map-exclusive' which is set if page is mapped only here: it helps in estimation of working set without exposing pfns and allows to distinguish CoWed and non-CoWed private anonymous pages. Second patch removes page-shift bits and completes migration to the new pagemap format: flags soft-dirty and mmap-exclusive are available only in the new format. This patch (of 5): This patch moves permission checks from pagemap_read() into pagemap_open(). Pointer to mm is saved in file->private_data. This reference pins only mm_struct itself. /proc/*/mem, maps, smaps already work in the same way. See http://lkml.kernel.org/r/CA+55aFyKpWrt_Ajzh1rzp_GcwZ4=6Y=kOv8hBz172CFJp6L8Tg@mail.gmail.com Signed-off-by: Konstantin Khlebnikov Reviewed-by: Naoya Horiguchi Reviewed-by: Mark Williamson Tested-by: Mark Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) commit b5e3aa0a4d5e35329203fd09acb0dbc7f7fd64de Author: Vineet Gupta Date: Tue Sep 8 14:59:56 2015 -0700 mm: remove put_page_unless_one() It has no callers. Signed-off-by: Vineet Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 12 ------------ 1 file changed, 12 deletions(-) commit 4fcab5f437c481e51c270a2d12ef56a3f2367371 Author: Wei Yang Date: Tue Sep 8 14:59:53 2015 -0700 mm/memblock.c: WARN_ON when flags differs from overlap region Each memblock_region has flags to indicates the type of this range. For the overlap case, memblock_add_range() inserts the lower part and leave the upper part as indicated in the overlapped region. If the flags of the new range differs from the overlapped region, the information recorded is not correct. This patch adds a WARN_ON when the flags of the new range differs from the overlapped region. Signed-off-by: Wei Yang Cc: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 1 + 1 file changed, 1 insertion(+) commit 7f3eb55bfad8a6dfd880559210f5b21737d69815 Author: Wei Yang Date: Tue Sep 8 14:59:50 2015 -0700 mm/page_alloc.c: remove unused variable in free_area_init_core() Commit febd5949e134 ("mm/memory hotplug: init the zone's size when calculating node totalpages") refines the function free_area_init_core(). After doing so, these two parameters are not used anymore. This patch removes these two parameters. Signed-off-by: Wei Yang Cc: Gu Zheng Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 904a9553d4fcdc0c7d5621f6178f0e07598701dc Author: Wei Yang Date: Tue Sep 8 14:59:48 2015 -0700 mm/page_alloc.c: refine the calculation of highest possible node id nr_node_ids records the highest possible node id, which is calculated by scanning the bitmap node_states[N_POSSIBLE]. Current implementation scan the bitmap from the beginning, which will scan the whole bitmap. This patch reverses the order by scanning from the end with find_last_bit(). Signed-off-by: Wei Yang Cc: Tejun Heo Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/page_alloc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 52a2b53ffde6d6018dfc454fbde34383351fb896 Author: Kirill A. Shutemov Date: Tue Sep 8 14:59:45 2015 -0700 mm, dax: use i_mmap_unlock_write() in do_cow_fault() __dax_fault() takes i_mmap_lock for write. Let's pair it with write unlock on do_cow_fault() side. Signed-off-by: Kirill A. Shutemov Acked-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 46c043ede4711e8d598b9d63c5616c1fedb0605e Author: Kirill A. Shutemov Date: Tue Sep 8 14:59:42 2015 -0700 mm: take i_mmap_lock in unmap_mapping_range() for DAX DAX is not so special: we need i_mmap_lock to protect mapping->i_mmap. __dax_pmd_fault() uses unmap_mapping_range() shoot out zero page from all mappings. We need to drop i_mmap_lock there to avoid lock deadlock. Re-aquiring the lock should be fine since we check i_size after the point. Signed-off-by: Kirill A. Shutemov Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 35 +++++++++++++++++++---------------- mm/memory.c | 11 ++--------- 2 files changed, 21 insertions(+), 25 deletions(-) commit 3fdd1b479dbc03347e98f904f54133a9cef5521f Author: Matthew Wilcox Date: Tue Sep 8 14:59:39 2015 -0700 dax: use linear_page_index() I was basically open-coding it (thanks to copying code from do_fault() which probably also needs to be fixed). Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 73a6ec47f68787df1b41869def52915da2f4a6b7 Author: Matthew Wilcox Date: Tue Sep 8 14:59:37 2015 -0700 dax: ensure that zero pages are removed from other processes If the first access to a huge page was a store, there would be no existing zero pmd in this process's page tables. There could be a zero pmd in another process's page tables, if it had done a load. We can detect this case by noticing that the buffer_head returned from the filesystem is New, and ensure that other processes mapping this huge page have their page tables flushed. Signed-off-by: Matthew Wilcox Reported-by: Kirill A. Shutemov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit d295e3415a88ae63a37a22652808b20c7fcb970e Author: Kirill A. Shutemov Date: Tue Sep 8 14:59:34 2015 -0700 dax: don't use set_huge_zero_page() This is another place where DAX assumed that pgtable_t was a pointer. Open code the important parts of set_huge_zero_page() in DAX and make set_huge_zero_page() static again. Signed-off-by: Kirill A. Shutemov Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 18 ++++++++++++------ include/linux/huge_mm.h | 3 --- mm/huge_memory.c | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) commit da146769004e1dd5ed06853e6d009be8ca675d5f Author: Kirill A. Shutemov Date: Tue Sep 8 14:59:31 2015 -0700 thp: fix zap_huge_pmd() for DAX The original DAX code assumed that pgtable_t was a pointer, which isn't true on all architectures. Restructure the code to not rely on that assumption. [willy@linux.intel.com: further fixes integrated into this patch] Signed-off-by: Kirill A. Shutemov Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 71 +++++++++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 40 deletions(-) commit 5b701b846aad7909d20693bcced2522d0ce8d1bc Author: Kirill A. Shutemov Date: Tue Sep 8 14:59:28 2015 -0700 thp: decrement refcount on huge zero page if it is split The DAX code neglected to put the refcount on the huge zero page. Also we must notify on splits. Signed-off-by: Kirill A. Shutemov Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 843172978bb92997310d2f7fbc172ece423cfc02 Author: Matthew Wilcox Date: Tue Sep 8 14:59:25 2015 -0700 dax: fix race between simultaneous faults If two threads write-fault on the same hole at the same time, the winner of the race will return to userspace and complete their store, only to have the loser overwrite their store with zeroes. Fix this for now by taking the i_mmap_sem for write instead of read, and do so outside the call to get_block(). Now the loser of the race will see the block has already been zeroed, and will not zero it again. This severely limits our scalability. I have ideas for improving it, but those can wait for a later patch. Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 33 +++++++++++++++++---------------- mm/memory.c | 11 ++++++++--- 2 files changed, 25 insertions(+), 19 deletions(-) commit 01a33b4ace68bc35679a347f21d5ed6e222e30dc Author: Matthew Wilcox Date: Tue Sep 8 14:59:22 2015 -0700 ext4: start transaction before calling into DAX Jan Kara pointed out that in the case where we are writing to a hole, we can end up with a lock inversion between the page lock and the journal lock. We can avoid this by starting the transaction in ext4 before calling into DAX. The journal lock nests inside the superblock pagefault lock, so we have to duplicate that code from dax_fault, like XFS does. Signed-off-by: Matthew Wilcox Cc: Jan Kara Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/file.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) commit ed923b5776a2d2e949bd5b20f3956d68f3c826b7 Author: Matthew Wilcox Date: Tue Sep 8 14:59:20 2015 -0700 ext4: add ext4_get_block_dax() DAX wants different semantics from any currently-existing ext4 get_block callback. Unlike ext4_get_block_write(), it needs to honour the 'create' flag, and unlike ext4_get_block(), it needs to be able to return unwritten extents. So introduce a new ext4_get_block_dax() which has those semantics. We could also change ext4_get_block_write() to honour the 'create' flag, but that might have consequences on other users that I do not currently understand. Signed-off-by: Matthew Wilcox Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/ext4.h | 2 ++ fs/ext4/file.c | 6 +++--- fs/ext4/inode.c | 11 +++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) commit 84c4e5e675408b6fb7d74eec7da9a4a5698b50af Author: Matthew Wilcox Date: Tue Sep 8 14:59:17 2015 -0700 dax: improve comment about truncate race Jan Kara pointed out I should be more explicit here about the perils of racing against truncate. The comment is mostly the same as for the PTE case. Signed-off-by: Matthew Wilcox Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit ae18d6dcf57b56b984ff27fd55b4e2caf5bfbd44 Author: Matthew Wilcox Date: Tue Sep 8 14:59:14 2015 -0700 thp: change insert_pfn's return type to void It would make more sense to have all the return values from vmf_insert_pfn_pmd() encoded in one place instead of having to follow the convention into insert_pfn(). Suggested by Jeff Moyer. Signed-off-by: Matthew Wilcox Cc: Jeff Moyer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e676a4c191653787c3fe851fe3b9f1f33d49dac2 Author: Matthew Wilcox Date: Tue Sep 8 14:59:11 2015 -0700 ext4: use ext4_get_block_write() for DAX DAX relies on the get_block function either zeroing newly allocated blocks before they're findable by subsequent calls to get_block, or marking newly allocated blocks as unwritten. ext4_get_block() cannot create unwritten extents, but ext4_get_block_write() can. Signed-off-by: Matthew Wilcox Reported-by: Andy Rudoff Cc: Theodore Ts'o Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/file.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit dd8a2b6c29a3221c19ab475c8408fc2b914ccfab Author: Valentin Rothberg Date: Tue Sep 8 14:59:09 2015 -0700 fs/dax.c: fix typo in #endif comment Fix typo s/CONFIG_TRANSPARENT_HUGEPAGES/CONFIG_TRANSPARENT_HUGEPAGE/ in #endif comment introduced by commit 2b26a9206d6a ("dax: add huge page fault support"). Signed-off-by: Valentin Rothberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/dax.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit acd76e74d80f961553861d9cf49a62cbcf496d28 Author: Matthew Wilcox Date: Tue Sep 8 14:59:06 2015 -0700 xfs: huge page fault support Use DAX to provide support for huge pages. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/xfs/xfs_file.c | 30 +++++++++++++++++++++++++++++- fs/xfs/xfs_trace.h | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) commit 11bd1a9ecdd687b8a4b9b360b7e4b74a1a5e2bd5 Author: Matthew Wilcox Date: Tue Sep 8 14:59:03 2015 -0700 ext4: huge page fault support Use DAX to provide support for huge pages. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext4/file.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit e7b1ea2ad6581b83f63246db48aa2c2c9bf2ec8d Author: Matthew Wilcox Date: Tue Sep 8 14:59:00 2015 -0700 ext2: huge page fault support Use DAX to provide support for huge pages. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ext2/file.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 844f35db1088dd1a9de37b53d4d823626232bd19 Author: Matthew Wilcox Date: Tue Sep 8 14:58:57 2015 -0700 dax: add huge page fault support This is the support code for DAX-enabled filesystems to allow them to provide huge pages in response to faults. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/filesystems/dax.txt | 7 +- fs/dax.c | 152 ++++++++++++++++++++++++++++++++++++++ include/linux/dax.h | 14 ++++ 3 files changed, 170 insertions(+), 3 deletions(-) commit 5cad465d7fa646bad3d677df276bfc8e2ad709e3 Author: Matthew Wilcox Date: Tue Sep 8 14:58:54 2015 -0700 mm: add vmf_insert_pfn_pmd() Similar to vm_insert_pfn(), but for PMDs rather than PTEs. The 'vmf_' prefix instead of 'vm_' prefix is intended to indicate that it returns a VMF_ value rather than an errno (which would only have to be converted into a VMF_ value anyway). Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 2 ++ mm/huge_memory.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) commit fc43704437ebe40f642ac53f7ee73661fe74e6b8 Author: Matthew Wilcox Date: Tue Sep 8 14:58:51 2015 -0700 mm: export various functions for the benefit of DAX To use the huge zero page in DAX, we need these functions exported. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 10 ++++++++++ mm/huge_memory.c | 7 +------ 2 files changed, 11 insertions(+), 6 deletions(-) commit b96375f74a6d4f39fc6cbdc0bce5175115c7f96f Author: Matthew Wilcox Date: Tue Sep 8 14:58:48 2015 -0700 mm: add a pmd_fault handler Allow non-anonymous VMAs to provide huge pages in response to a page fault. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 ++ mm/memory.c | 30 ++++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 6 deletions(-) commit 4897c7655d9419ba7e62bac145ec6a1847134d93 Author: Matthew Wilcox Date: Tue Sep 8 14:58:45 2015 -0700 thp: prepare for DAX huge pages Add a vma_is_dax() helper macro to test whether the VMA is DAX, and use it in zap_huge_pmd() and __split_huge_page_pmd(). [akpm@linux-foundation.org: fix build] Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/dax.h | 4 ++++ mm/huge_memory.c | 48 +++++++++++++++++++++++++++++------------------- 2 files changed, 33 insertions(+), 19 deletions(-) commit 7c414164593514f76b422faae0824bdd3754209b Author: Andrew Morton Date: Tue Sep 8 14:58:43 2015 -0700 dax: revert userfaultfd change Undo the change which "userfaultfd: call handle_userfault() for userfaultfd_missing() faults" made to set_huge_zero_page(). DAX will need that return value. Cc: Andrea Arcangeli Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit c94c2acf84dc16cf4b989bb0bc849785b7ff52f5 Author: Matthew Wilcox Date: Tue Sep 8 14:58:40 2015 -0700 dax: move DAX-related functions to a new header In order to handle the !CONFIG_TRANSPARENT_HUGEPAGES case, we need to return VM_FAULT_FALLBACK from the inlined dax_pmd_fault(), which is defined in linux/mm.h. Given that we don't want to include in , the easiest solution is to move the DAX-related functions to a new header, . We could also have moved VM_FAULT_* definitions to a new header, or a different header that isn't quite such a boil-the-ocean header as , but this felt like the best option. Signed-off-by: Matthew Wilcox Cc: Hillf Danton Cc: "Kirill A. Shutemov" Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/block_dev.c | 1 + fs/ext2/file.c | 1 + fs/ext2/inode.c | 1 + fs/ext4/file.c | 1 + fs/ext4/indirect.c | 1 + fs/ext4/inode.c | 1 + fs/xfs/xfs_buf.h | 1 + include/linux/dax.h | 21 +++++++++++++++++++++ include/linux/fs.h | 14 -------------- 9 files changed, 28 insertions(+), 14 deletions(-) commit e1b9996b85ba3ff143ded04523cd015762d20f03 Author: Kirill A. Shutemov Date: Tue Sep 8 14:58:37 2015 -0700 thp: vma_adjust_trans_huge(): adjust file-backed VMA too This series of patches adds support for using PMD page table entries to map DAX files. We expect NV-DIMMs to start showing up that are many gigabytes in size and the memory consumption of 4kB PTEs will be astronomical. The patch series leverages much of the Transparant Huge Pages infrastructure, going so far as to borrow one of Kirill's patches from his THP page cache series. This patch (of 10): Since we're going to have huge pages in page cache, we need to call adjust file-backed VMA, which potentially can contain huge pages. For now we call it for all VMAs. Probably later we will need to introduce a flag to indicate that the VMA has huge pages. Signed-off-by: Kirill A. Shutemov Signed-off-by: Matthew Wilcox Acked-by: Hillf Danton Cc: Theodore Ts'o Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/huge_mm.h | 11 +---------- mm/huge_memory.c | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) commit ce75799b83aaf3fd592e21531a9532bed157c6b5 Author: Oleg Nesterov Date: Tue Sep 8 14:58:34 2015 -0700 mremap: fix the wrong !vma->vm_file check in copy_vma() Test-case: #define _GNU_SOURCE #include #include #include #include #include #include void *find_vdso_vaddr(void) { FILE *perl; char buf[32] = {}; perl = popen("perl -e 'open STDIN,qq|/proc/@{[getppid]}/maps|;" "/^(.*?)-.*vdso/ && print hex $1 while <>'", "r"); fread(buf, sizeof(buf), 1, perl); fclose(perl); return (void *)atol(buf); } #define PAGE_SIZE 4096 void *get_unmapped_area(void) { void *p = mmap(0, PAGE_SIZE, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1,0); assert(p != MAP_FAILED); munmap(p, PAGE_SIZE); return p; } char save[2][PAGE_SIZE]; int main(void) { void *vdso = find_vdso_vaddr(); void *page[2]; assert(vdso); memcpy(save, vdso, sizeof (save)); // force another fault on the next check assert(madvise(vdso, 2 * PAGE_SIZE, MADV_DONTNEED) == 0); page[0] = mremap(vdso, PAGE_SIZE, PAGE_SIZE, MREMAP_FIXED | MREMAP_MAYMOVE, get_unmapped_area()); page[1] = mremap(vdso + PAGE_SIZE, PAGE_SIZE, PAGE_SIZE, MREMAP_FIXED | MREMAP_MAYMOVE, get_unmapped_area()); assert(page[0] != MAP_FAILED && page[1] != MAP_FAILED); printf("match: %d %d\n", !memcmp(save[0], page[0], PAGE_SIZE), !memcmp(save[1], page[1], PAGE_SIZE)); return 0; } fails without this patch. Before the previous commit it gets the wrong page, now it segfaults (which is imho better). This is because copy_vma() wrongly assumes that if vma->vm_file == NULL is irrelevant until the first fault which will use do_anonymous_page(). This is obviously wrong for the special mapping. Signed-off-by: Oleg Nesterov Acked-by: Kirill A. Shutemov Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a9cc3b55e9d20289cc18a65257e62c2dd4932fb Author: Oleg Nesterov Date: Tue Sep 8 14:58:31 2015 -0700 mmap: fix the usage of ->vm_pgoff in special_mapping paths Test-case: #include #include #include #include #include #include void *find_vdso_vaddr(void) { FILE *perl; char buf[32] = {}; perl = popen("perl -e 'open STDIN,qq|/proc/@{[getppid]}/maps|;" "/^(.*?)-.*vdso/ && print hex $1 while <>'", "r"); fread(buf, sizeof(buf), 1, perl); fclose(perl); return (void *)atol(buf); } #define PAGE_SIZE 4096 int main(void) { void *vdso = find_vdso_vaddr(); assert(vdso); // of course they should differ, and they do so far printf("vdso pages differ: %d\n", !!memcmp(vdso, vdso + PAGE_SIZE, PAGE_SIZE)); // split into 2 vma's assert(mprotect(vdso, PAGE_SIZE, PROT_READ) == 0); // force another fault on the next check assert(madvise(vdso, 2 * PAGE_SIZE, MADV_DONTNEED) == 0); // now they no longer differ, the 2nd vm_pgoff is wrong printf("vdso pages differ: %d\n", !!memcmp(vdso, vdso + PAGE_SIZE, PAGE_SIZE)); return 0; } Output: vdso pages differ: 1 vdso pages differ: 0 This is because split_vma() correctly updates ->vm_pgoff, but the logic in insert_vm_struct() and special_mapping_fault() is absolutely broken, so the fault at vdso + PAGE_SIZE return the 1st page. The same happens if you simply unmap the 1st page. special_mapping_fault() does: pgoff = vmf->pgoff - vma->vm_pgoff; and this is _only_ correct if vma->vm_start mmaps the first page from ->vm_private_data array. vdso or any other user of install_special_mapping() is not anonymous, it has the "backing storage" even if it is just the array of pages. So we actually need to make vm_pgoff work as an offset in this array. Note: this also allows to fix another problem: currently gdb can't access "[vvar]" memory because in this case special_mapping_fault() doesn't work. Now that we can use ->vm_pgoff we can implement ->access() and fix this. Signed-off-by: Oleg Nesterov Acked-by: Kirill A. Shutemov Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mmap.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit b5330628546616af14ff23075fbf8d4ad91f6e25 Author: Oleg Nesterov Date: Tue Sep 8 14:58:28 2015 -0700 mm: introduce vma_is_anonymous(vma) helper special_mapping_fault() is absolutely broken. It seems it was always wrong, but this didn't matter until vdso/vvar started to use more than one page. And after this change vma_is_anonymous() becomes really trivial, it simply checks vm_ops == NULL. However, I do think the helper makes sense. There are a lot of ->vm_ops != NULL checks, the helper makes the caller's code more understandable (self-documented) and this is more grep-friendly. This patch (of 3): Preparation. Add the new simple helper, vma_is_anonymous(vma), and change handle_pte_fault() to use it. It will have more users. The name is not accurate, say a hpet_mmap()'ed vma is not anonymous. Perhaps it should be named vma_has_fault() instead. But it matches the logic in mmap.c/memory.c (see next changes). "True" just means that a page fault will use do_anonymous_page(). Signed-off-by: Oleg Nesterov Acked-by: Kirill A. Shutemov Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 5 +++++ mm/memory.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) commit af8713b701a74c3784ce6683f64f474a94b1b643 Author: Geert Uytterhoeven Date: Tue Sep 8 14:58:25 2015 -0700 selftests/userfaultfd: fix compiler warnings on 32-bit On 32-bit: userfaultfd.c: In function 'locking_thread': userfaultfd.c:152: warning: left shift count >= width of type userfaultfd.c: In function 'uffd_poll_thread': userfaultfd.c:295: warning: cast to pointer from integer of different size userfaultfd.c: In function 'uffd_read_thread': userfaultfd.c:332: warning: cast to pointer from integer of different size Fix the shift warning by splitting the shift in two parts, and the integer/pointer warnigns by adding intermediate casts to "unsigned long". Signed-off-by: Geert Uytterhoeven Cc: Andrea Arcangeli Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/userfaultfd.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 61e57c0c3a37539e13af03ce68598034d37c7256 Author: Kees Cook Date: Tue Sep 8 14:58:22 2015 -0700 cgroup: fix seq_show_option merge with legacy_name When seq_show_option (commit a068acf2ee77: "fs: create and use seq_show_option for escaping") was merged, it did not correctly collide with cgroup's addition of legacy_name (commit 3e1d2eed39d8: "cgroup: introduce cgroup_subsys->legacy_name") changes. This fixes the reported name. Signed-off-by: Kees Cook Acked-by: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12f03ee606914317e7e6a0815e53a48205c31dae Merge: d9241b2 004f1af Author: Linus Torvalds Date: Tue Sep 8 14:35:59 2015 -0700 Merge tag 'libnvdimm-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm updates from Dan Williams: "This update has successfully completed a 0day-kbuild run and has appeared in a linux-next release. The changes outside of the typical drivers/nvdimm/ and drivers/acpi/nfit.[ch] paths are related to the removal of IORESOURCE_CACHEABLE, the introduction of memremap(), and the introduction of ZONE_DEVICE + devm_memremap_pages(). Summary: - Introduce ZONE_DEVICE and devm_memremap_pages() as a generic mechanism for adding device-driver-discovered memory regions to the kernel's direct map. This facility is used by the pmem driver to enable pfn_to_page() operations on the page frames returned by DAX ('direct_access' in 'struct block_device_operations'). For now, the 'memmap' allocation for these "device" pages comes from "System RAM". Support for allocating the memmap from device memory will arrive in a later kernel. - Introduce memremap() to replace usages of ioremap_cache() and ioremap_wt(). memremap() drops the __iomem annotation for these mappings to memory that do not have i/o side effects. The replacement of ioremap_cache() with memremap() is limited to the pmem driver to ease merging the api change in v4.3. Completion of the conversion is targeted for v4.4. - Similar to the usage of memcpy_to_pmem() + wmb_pmem() in the pmem driver, update the VFS DAX implementation and PMEM api to provide persistence guarantees for kernel operations on a DAX mapping. - Convert the ACPI NFIT 'BLK' driver to map the block apertures as cacheable to improve performance. - Miscellaneous updates and fixes to libnvdimm including support for issuing "address range scrub" commands, clarifying the optimal 'sector size' of pmem devices, a clarification of the usage of the ACPI '_STA' (status) property for DIMM devices, and other minor fixes" * tag 'libnvdimm-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (34 commits) libnvdimm, pmem: direct map legacy pmem by default libnvdimm, pmem: 'struct page' for pmem libnvdimm, pfn: 'struct page' provider infrastructure x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB add devm_memremap_pages mm: ZONE_DEVICE for "device memory" mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h dax: drop size parameter to ->direct_access() nd_blk: change aperture mapping from WC to WB nvdimm: change to use generic kvfree() pmem, dax: have direct_access use __pmem annotation dax: update I/O path to do proper PMEM flushing pmem: add copy_from_iter_pmem() and clear_pmem() pmem, x86: clean up conditional pmem includes pmem: remove layer when calling arch_has_wmb_pmem() pmem, x86: move x86 PMEM API to new pmem.h header libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option pmem: switch to devm_ allocations devres: add devm_memremap libnvdimm, btt: write and validate parent_uuid ... commit d9241b22b58e012f26dd2244508d9f4837402af0 Merge: 605e971 3716001 Author: Linus Torvalds Date: Tue Sep 8 14:23:13 2015 -0700 Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull misc kbuild updates from Michal Marek: - deb-pkg: + module signing fix + dtb files are added to the package + do not require `hostname -f` to work during build + make deb-pkg generates a source package, bindeb-pkg has been added to only generate the binary package - rpm-pkg packages /lib/modules as well - new coccinelle patch and updates to existing ones - new stackusage & stackdelta script to collect and compare stack usage info (using gcc's -fstack-usage) - make tags understands trace_*_rcuidle() macros - .gitignore updates, misc cleanups * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (27 commits) deb-pkg: add source package package/Makefile: move source tar creation to a function scripts: add stackdelta script kbuild: remove *.su files generated by -fstack-usage .gitignore: add *.su pattern scripts: add stackusage script kbuild: avoid listing /lib/modules in kernel spec file fallback to hostname in scripts/package/builddeb coccinelle: api: extend spatch for dropping unnecessary owner deb-pkg: simplify directory creation scripts/tags.sh: Include trace_*_rcuidle() in tags scripts/package/Makefile: rpmbuild is needed for rpm targets Kbuild: Add ID files to .gitignore gitignore: Add MIPS vmlinux.32 to the list coccinelle: simple_return: Add a blank line coccinelle: irqf_oneshot.cocci: Improve the generated commit log coccinelle: api: add vma_pages.cocci scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar scripts/coccinelle/misc/semicolon.cocci: Use imperative mood coccinelle: simple_open: Use imperative mood ... commit 605e9710fb5fef0dd2bb49d7b75e46601df62112 Merge: dab3c3c 78a6854 Author: Linus Torvalds Date: Tue Sep 8 14:17:38 2015 -0700 Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull kconfig updates from Michal Marek: - kconfig warns about junk characters in Kconfig files - merge_config.sh error handling - small cleanup * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: merge_config.sh: exit on missing input files kconfig: Regenerate shipped zconf.{hash,lex}.c files kconfig: warn of unhandled characters in Kconfig commands kconfig: Delete unnecessary checks before the function call "sym_calc_value" commit dab3c3cc4f44273ccf2d7ff57c0a4f5bd45c0528 Merge: 59a47ff 5631d9c Author: Linus Torvalds Date: Tue Sep 8 14:12:19 2015 -0700 Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild Pull core kbuild updates from Michal Marek: - modpost portability fix - linker script fix - genksyms segfault fix - fixdep cleanup - fix for clang detection * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: kbuild: Fix clang detection kbuild: fixdep: drop meaningless hash table initialization kbuild: fixdep: optimize code slightly genksyms: Regenerate parser genksyms: Duplicate function pointer type definitions segfault kbuild: Fix .text.unlikely placement Avoid conflict with host definitions when cross-compiling commit 59a47fff0217592e248556a7ab436d5c17365962 Merge: 425afcf b7dc42f Author: Linus Torvalds Date: Tue Sep 8 14:04:14 2015 -0700 Merge tag 'trace-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing update from Steven Rostedt: "Mostly this is just clean ups and micro optimizations. The changes with more meat are: - Allowing the trace event filters to filter on CPU number and process ids - Two new markers for trace output latency were added (10 and 100 msec latencies) - Have tracing_thresh filter function profiling time I also worked on modifying the ring buffer code for some future work, and moved the adding of the timestamp around. One of my changes caused a regression, and since other changes were built on top of it and already tested, I had to operate a revert of that change. Instead of rebasing, this change set has the code that caused a regression as well as the code to revert that change without touching the other changes that were made on top of it" * tag 'trace-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: ring-buffer: Revert "ring-buffer: Get timestamp after event is allocated" tracing: Don't make assumptions about length of string on task rename tracing: Allow triggers to filter for CPU ids and process names ftrace: Format MCOUNT_ADDR address as type unsigned long tracing: Introduce two additional marks for delay ftrace: Fix function_graph duration spacing with 7-digits ftrace: add tracing_thresh to function profile tracing: Clean up stack tracing and fix fentry updates ring-buffer: Reorganize function locations ring-buffer: Make sure event has enough room for extend and padding ring-buffer: Get timestamp after event is allocated ring-buffer: Move the adding of the extended timestamp out of line ring-buffer: Add event descriptor to simplify passing data ftrace: correct the counter increment for trace_buffer data tracing: Fix for non-continuous cpu ids tracing: Prefer kcalloc over kzalloc with multiply commit 5b902d6f97f573fde911338e5d943e6b07fac7f9 Author: Julien Grall Date: Thu Sep 3 23:59:50 2015 +0100 device property: Don't overwrite addr when failing in device_get_mac_address The function device_get_mac_address is trying different property names in order to get the mac address. To check the return value, the variable addr (which contain the buffer pass by the caller) will be re-used. This means that if the previous property is not found, the next property will be read using a NULL buffer. Therefore it's only possible to retrieve the mac if node contains a property "mac-address". Fix it by using a temporary buffer for the return value. This has been introduced by commit 4c96b7dc0d393f12c17e0d81db15aa4a820a6ab3 "Add a matching set of device_ functions for determining mac/phy" Signed-off-by: Julien Grall Cc: Jeremy Linton Cc: David S. Miller Reviewed-by: Jeremy Linton Signed-off-by: David S. Miller drivers/base/property.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 425afcff13a4bea2a3cf6f395cbc66fc158852be Merge: b793c00 15ce414 Author: Linus Torvalds Date: Tue Sep 8 13:34:59 2015 -0700 Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit Pull audit update from Paul Moore: "This is one of the larger audit patchsets in recent history, consisting of eight patches and almost 400 lines of changes. The bulk of the patchset is the new "audit by executable" functionality which allows admins to set an audit watch based on the executable on disk. Prior to this, admins could only track an application by PID, which has some obvious limitations. Beyond the new functionality we also have some refcnt fixes and a few minor cleanups" * 'upstream' of git://git.infradead.org/users/pcmoore/audit: fixup: audit: implement audit by executable audit: implement audit by executable audit: clean simple fsnotify implementation audit: use macros for unset inode and device values audit: make audit_del_rule() more robust audit: fix uninitialized variable in audit_add_rule() audit: eliminate unnecessary extra layer of watch parent references audit: eliminate unnecessary extra layer of watch references commit fcb0bb6aab256288a4e0a8650d26e4096ec30319 Author: Eugene Shatokhin Date: Tue Sep 1 17:05:33 2015 +0300 usbnet: Fix a race between usbnet_stop() and the BH The race may happen when a device (e.g. YOTA 4G LTE Modem) is unplugged while the system is downloading a large file from the Net. Hardware breakpoints and Kprobes with delays were used to confirm that the race does actually happen. The race is on skb_queue ('next' pointer) between usbnet_stop() and rx_complete(), which, in turn, calls usbnet_bh(). Here is a part of the call stack with the code where the changes to the queue happen. The line numbers are for the kernel 4.1.0: *0 __skb_unlink (skbuff.h:1517) prev->next = next; *1 defer_bh (usbnet.c:430) spin_lock_irqsave(&list->lock, flags); old_state = entry->state; entry->state = state; __skb_unlink(skb, list); spin_unlock(&list->lock); spin_lock(&dev->done.lock); __skb_queue_tail(&dev->done, skb); if (dev->done.qlen == 1) tasklet_schedule(&dev->bh); spin_unlock_irqrestore(&dev->done.lock, flags); *2 rx_complete (usbnet.c:640) state = defer_bh(dev, skb, &dev->rxq, state); At the same time, the following code repeatedly checks if the queue is empty and reads these values concurrently with the above changes: *0 usbnet_terminate_urbs (usbnet.c:765) /* maybe wait for deletions to finish. */ while (!skb_queue_empty(&dev->rxq) && !skb_queue_empty(&dev->txq) && !skb_queue_empty(&dev->done)) { schedule_timeout(msecs_to_jiffies(UNLINK_TIMEOUT_MS)); set_current_state(TASK_UNINTERRUPTIBLE); netif_dbg(dev, ifdown, dev->net, "waited for %d urb completions\n", temp); } *1 usbnet_stop (usbnet.c:806) if (!(info->flags & FLAG_AVOID_UNLINK_URBS)) usbnet_terminate_urbs(dev); As a result, it is possible, for example, that the skb is removed from dev->rxq by __skb_unlink() before the check "!skb_queue_empty(&dev->rxq)" in usbnet_terminate_urbs() is made. It is also possible in this case that the skb is added to dev->done queue after "!skb_queue_empty(&dev->done)" is checked. So usbnet_terminate_urbs() may stop waiting and return while dev->done queue still has an item. Locking in defer_bh() and usbnet_terminate_urbs() was revisited to avoid this race. Signed-off-by: Eugene Shatokhin Reviewed-by: Bjørn Mork Acked-by: Oliver Neukum Signed-off-by: David S. Miller drivers/net/usb/usbnet.c | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) commit 8b9558aab853e98ba6e3fee0dd8545544966958c Author: Yan, Zheng Date: Tue Sep 1 17:19:38 2015 +0800 libceph: use keepalive2 to verify the mon session is alive Signed-off-by: Yan, Zheng Signed-off-by: Ilya Dryomov include/linux/ceph/libceph.h | 2 ++ include/linux/ceph/messenger.h | 4 +++ include/linux/ceph/msgr.h | 4 ++- net/ceph/ceph_common.c | 1 + net/ceph/messenger.c | 59 ++++++++++++++++++++++++++++++++++++++---- net/ceph/mon_client.c | 37 ++++++++++++++++++++------ 6 files changed, 93 insertions(+), 14 deletions(-) commit d194cd1dd1be61249b08e5461ae8a9c05d1072c9 Author: Ilya Dryomov Date: Mon Aug 31 18:22:10 2015 +0300 rbd: plug rbd_dev->header.object_prefix memory leak Need to free object_prefix when rbd_dev_v2_snap_context() fails, but only if this is the first time we are reading in the header. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 3ebe138ac642a195c7f2efdb918f464734421fd6 Author: Ilya Dryomov Date: Mon Aug 31 15:21:39 2015 +0300 rbd: fix double free on rbd_dev->header_name If rbd_dev_image_probe() in rbd_dev_probe_parent() fails, header_name is freed twice: once in rbd_dev_probe_parent() and then in its caller rbd_dev_image_probe() (rbd_dev_image_probe() is called recursively to handle parent images). rbd_dev_probe_parent() is responsible for probing the parent, so it shouldn't muck with clone's fields. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder drivers/block/rbd.c | 1 - 1 file changed, 1 deletion(-) commit 6dd74e44dc1df85f125982a8d6591bc4a76c9f5d Author: Yan, Zheng Date: Fri Aug 28 17:59:35 2015 +0800 libceph: set 'exists' flag for newly up osd Signed-off-by: Yan, Zheng Reviewed-by: Sage Weil Signed-off-by: Ilya Dryomov net/ceph/osdmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5fdb1389e1399d6801a8c5d10952ef4153039fb2 Author: Jianpeng Ma Date: Tue Aug 18 10:30:38 2015 +0800 ceph: cleanup use of ceph_msg_get Signed-off-by: Jianpeng Ma Signed-off-by: Yan, Zheng fs/ceph/mds_client.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e36d571d70c7f46b20c28d81025fd5fc044a8e22 Author: Jianpeng Ma Date: Tue Aug 18 10:25:35 2015 +0800 ceph: no need to get parent inode in ceph_open parent inode is needed in creating new inode case. For ceph_open, the target inode already exists. Signed-off-by: Jianpeng Ma Signed-off-by: Yan, Zheng fs/ceph/file.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit a43137f7b0f1467cf3005b6ff6574d978642d247 Author: Jianpeng Ma Date: Tue Aug 18 10:23:50 2015 +0800 ceph: remove the useless judgement err != 0 is already handled. So skip this. Signed-off-by: Jianpeng Ma Signed-off-by: Yan, Zheng fs/ceph/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1550d34e5626a20a2e12c73bdc1e6e217a0ba897 Author: Brad Hubbard Date: Tue Aug 18 10:18:53 2015 +0800 ceph: remove redundant test of head->safe and silence static analysis warnings Signed-off-by: Brad Hubbard Signed-off-by: Yan, Zheng fs/ceph/mds_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23078637e05460428f803be7d0f46908df8a970a Author: Yan, Zheng Date: Mon Jul 20 10:14:06 2015 +0800 ceph: fix queuing inode to mdsdir's snaprealm During MDS failovers, MClientSnap message may cause kclient to move some inodes from root directory's snaprealm to mdsdir's snaprealm and queue snapshots for these inodes. For a FS has never created any snapshot, both root directory's snaprealm and mdsdir's snaprealm share the same snapshot contexts (both are ceph_empty_snapc). This confuses ceph_put_wrbuffer_cap_refs(), make it unable to distinguish snapshot buffers from head buffers. The fix is do not use ceph_empty_snapc as snaprealm's cached context. Signed-off-by: Yan, Zheng fs/ceph/snap.c | 7 ------- 1 file changed, 7 deletions(-) commit 6893162215d7bf08a4273247ec1fc7dedee5135c Author: Ilya Dryomov Date: Fri Jul 3 15:44:41 2015 +0300 libceph: rename con_work() to ceph_con_workfn() Even though it's static, con_work(), being a work func, shows up in various stacktraces a lot. Prefix it with ceph_. Signed-off-by: Ilya Dryomov net/ceph/messenger.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d920ff6fc7c1ec3d7bd80432bff5575c0ebe426c Author: Benoît Canet Date: Thu Jun 25 21:02:57 2015 +0200 libceph: Avoid holding the zero page on ceph_msgr_slab_init errors ceph_msgr_slab_init may fail due to a temporary ENOMEM. Delay a bit the initialization of zero_page in ceph_msgr_init and reorder its cleanup in _ceph_msgr_exit so it's done in reverse order of setup. BUG_ON() will not suffer to be postponed in case it is triggered. Signed-off-by: Benoît Canet Reviewed-by: Alex Elder Signed-off-by: Ilya Dryomov net/ceph/messenger.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b79b23682a1649f30960fb5bd920ba46c89a1b14 Author: Nicholas Krause Date: Sun Jul 5 06:34:05 2015 +0000 libceph: remove the unused macro AES_KEY_SIZE This removes the no longer used macro AES_KEY_SIZE as no functions use this macro anymore and thus this macro can be removed due it no longer being required. Signed-off-by: Nicholas Krause Signed-off-by: Ilya Dryomov net/ceph/crypto.c | 4 ---- 1 file changed, 4 deletions(-) commit a341d4df87487ae68189e0be869c39a2b0cb9aaa Author: Yan, Zheng Date: Wed Jul 1 17:03:23 2015 +0800 ceph: invalidate dirty pages after forced umount After forced umount, ceph_writepages_start() skips flushing dirty pages. To make sure inode's reference count get dropped to zero, we need to invalidate dirty pages. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 2 ++ 1 file changed, 2 insertions(+) commit 48fec5d0a504dfbb302cb1dd24ebb0b82a46cce9 Author: Yan, Zheng Date: Wed Jul 1 16:27:46 2015 +0800 ceph: EIO all operations after forced umount This patch makes try_get_cap_refs() and __do_request() check if the file system was forced umount, and return -EIO if it was. This patch also adds a helper function to drops dirty caps and wakes up blocking operation. Signed-off-by: Yan, Zheng fs/ceph/addr.c | 2 +- fs/ceph/caps.c | 8 ++++++++ fs/ceph/mds_client.c | 54 +++++++++++++++++++++++++++++++++++++++++----------- fs/ceph/mds_client.h | 1 + fs/ceph/super.c | 1 + 5 files changed, 54 insertions(+), 12 deletions(-) commit b793c005ceabf6db0b17494b0ec67ade6796bb34 Merge: 6f0a2fc 07f081f Author: Linus Torvalds Date: Tue Sep 8 12:41:25 2015 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull security subsystem updates from James Morris: "Highlights: - PKCS#7 support added to support signed kexec, also utilized for module signing. See comments in 3f1e1bea. ** NOTE: this requires linking against the OpenSSL library, which must be installed, e.g. the openssl-devel on Fedora ** - Smack - add IPv6 host labeling; ignore labels on kernel threads - support smack labeling mounts which use binary mount data - SELinux: - add ioctl whitelisting (see http://kernsec.org/files/lss2015/vanderstoep.pdf) - fix mprotect PROT_EXEC regression caused by mm change - Seccomp: - add ptrace options for suspend/resume" * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (57 commits) PKCS#7: Add OIDs for sha224, sha284 and sha512 hash algos and use them Documentation/Changes: Now need OpenSSL devel packages for module signing scripts: add extract-cert and sign-file to .gitignore modsign: Handle signing key in source tree modsign: Use if_changed rule for extracting cert from module signing key Move certificate handling to its own directory sign-file: Fix warning about BIO_reset() return value PKCS#7: Add MODULE_LICENSE() to test module Smack - Fix build error with bringup unconfigured sign-file: Document dependency on OpenSSL devel libraries PKCS#7: Appropriately restrict authenticated attributes and content type KEYS: Add a name for PKEY_ID_PKCS7 PKCS#7: Improve and export the X.509 ASN.1 time object decoder modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS extract-cert: Cope with multiple X.509 certificates in a single file sign-file: Generate CMS message as signature instead of PKCS#7 PKCS#7: Support CMS messages also [RFC5652] X.509: Change recorded SKID & AKID to not include Subject or Issuer PKCS#7: Check content type and versions MAINTAINERS: The keyrings mailing list has moved ... commit 6f0a2fc1feb19bd142961a39dc118e7e55418b3f Merge: 752240e 96f0e00 Author: Linus Torvalds Date: Tue Sep 8 12:28:10 2015 -0700 Merge branch 'nmi' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull NMI backtrace update from Russell King: "These changes convert the x86 NMI handling to be a library implementation which other architectures can make use of. Thomas Gleixner has reviewed and tested these changes, and wishes me to send these rather than taking them through the tip tree. The final patch in the set adds an initial implementation using this infrastructure to ARM, even though it doesn't send the IPI at "NMI" level. Patches are in progress to add the ARM equivalent of NMI, but we still need the IRQ-level fallback for systems where the "NMI" isn't available due to secure firmware denying access to it" * 'nmi' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: add basic support for on-demand backtrace of other CPUs nmi: x86: convert to generic nmi handler nmi: create generic NMI backtrace implementation commit 752240e74d650faa24425adc523f1308973ea51c Merge: b8cb642 626d750 Author: Linus Torvalds Date: Tue Sep 8 11:46:48 2015 -0700 Merge tag 'for-linus-4.3-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen updates from David Vrabel: "Xen features and fixes for 4.3: - Convert xen-blkfront to the multiqueue API - [arm] Support binding event channels to different VCPUs. - [x86] Support > 512 GiB in a PV guests (off by default as such a guest cannot be migrated with the current toolstack). - [x86] PMU support for PV dom0 (limited support for using perf with Xen and other guests)" * tag 'for-linus-4.3-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (33 commits) xen: switch extra memory accounting to use pfns xen: limit memory to architectural maximum xen: avoid another early crash of memory limited dom0 xen: avoid early crash of memory limited dom0 arm/xen: Remove helpers which are PV specific xen/x86: Don't try to set PCE bit in CR4 xen/PMU: PMU emulation code xen/PMU: Intercept PMU-related MSR and APIC accesses xen/PMU: Describe vendor-specific PMU registers xen/PMU: Initialization code for Xen PMU xen/PMU: Sysfs interface for setting Xen PMU mode xen: xensyms support xen: remove no longer needed p2m.h xen: allow more than 512 GB of RAM for 64 bit pv-domains xen: move p2m list if conflicting with e820 map xen: add explicit memblock_reserve() calls for special pages mm: provide early_memremap_ro to establish read-only mapping xen: check for initrd conflicting with e820 map xen: check pre-allocated page tables for conflict with memory map xen: check for kernel memory conflicting with memory layout ... commit b8cb642af98216fe6eeca1525345b8a5c9d7c9a4 Merge: 1c8cc72 4a6ac30 Author: Linus Torvalds Date: Tue Sep 8 11:36:56 2015 -0700 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull more irq updates from Thomas Gleixner: "The second part of irq related updates: - Provide EOImode for GIC[V3] irq chips, which is a prerequisite for direct interrupt handling in [KVM] guests" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/GIC: Fix EOImode setting for non-DT/ACPI systems irqchip/GIC: Don't deactivate interrupts forwarded to a guest irqchip/GIC: Convert to EOImode == 1 irqchip/GICv3: Don't deactivate interrupts forwarded to a guest irqchip/GICv3: Convert to EOImode == 1 commit 1c8cc72d57f321bfccadf4f7b38b94ba287928bc Merge: b9ffce9 50e48bd Author: Linus Torvalds Date: Tue Sep 8 11:31:33 2015 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu Pull m68k/colfire fixes from Greg Ungerer: "Only a couple of patches this time. One migrating the clock driver code to the new set-state interface. The other cleaning up to use the PFN_DOWN macro" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: m68k/coldfire: use PFN_DOWN macro m68k/coldfire/pit: Migrate to new 'set-state' interface commit b9ffce9ae14fa6068a7c8c3ce2350ee3a8c1787b Merge: 0c8e2f2 0dad87f Author: Linus Torvalds Date: Tue Sep 8 11:26:17 2015 -0700 Merge tag 'ecryptfs-4.3-rc1-stale-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs Pull ecryptfs fixes from Tyler Hicks: "Invalidate stale eCryptfs dcache entries caused by unlinked lower inodes" * tag 'ecryptfs-4.3-rc1-stale-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs: eCryptfs: Delete a check before the function call "key_put" eCryptfs: Invalidate dcache entries when lower i_nlink is zero commit 0c8e2f2c7b86c29775379f716f7db07516fcbcbf Merge: 49df2e3 71c6da8 Author: Linus Torvalds Date: Tue Sep 8 11:20:39 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fix from Herbert Xu: "This fixes a memory corruption bug in ghash-clmulni-intel due to insufficient memory allocation" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: ghash-clmulni: specify context size for ghash async algorithm commit 49df2e3e902e1c3caf998f97a92512424936199d Author: Andrea Arcangeli Date: Wed Jul 29 18:53:17 2015 +0200 userfaultfd: selftest: update userfaultfd x86 32bit syscall number It changed as result of other syscalls, and while the system call list itself was correctly updated, the selftest program was not. Signed-off-by: Andrea Arcangeli Cc: Andrew Morton Cc: Stephen Rothwell Cc: Thomas Gleixner Cc: Andy Lutomirski Signed-off-by: Linus Torvalds tools/testing/selftests/vm/userfaultfd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f51042f876b88a3b81a135cc4ca0adb3d246112 Author: Julien Grall Date: Fri Aug 7 17:34:42 2015 +0100 xen/xenbus: Rename the variable xen_store_mfn to xen_store_gfn The variable xen_store_mfn is effectively storing a GFN and not an MFN. Signed-off-by: Julien Grall Signed-off-by: David Vrabel drivers/xen/xenbus/xenbus_probe.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a13d7201d7deedcbb6ac6efa94a1a7d34d3d79ec Author: Julien Grall Date: Fri Aug 7 17:34:41 2015 +0100 xen/privcmd: Further s/MFN/GFN/ clean-up The privcmd code is mixing the usage of GFN and MFN within the same functions which make the code difficult to understand when you only work with auto-translated guests. The privcmd driver is only dealing with GFN so replace all the mention of MFN into GFN. The ioctl structure used to map foreign change has been left unchanged given that the userspace is using it. Nonetheless, add a comment to explain the expected value within the "mfn" field. Signed-off-by: Julien Grall Reviewed-by: David Vrabel Signed-off-by: David Vrabel arch/arm/xen/enlighten.c | 18 +++++++++--------- arch/x86/xen/mmu.c | 32 ++++++++++++++++---------------- drivers/xen/privcmd.c | 44 ++++++++++++++++++++++---------------------- drivers/xen/xlate_mmu.c | 18 +++++++++--------- include/uapi/xen/privcmd.h | 4 ++++ include/xen/xen-ops.h | 10 +++++----- 6 files changed, 65 insertions(+), 61 deletions(-) commit 859e3267c515d0cc7cc11528e80a2b7f3edc3bd9 Author: Julien Grall Date: Fri Aug 7 17:34:40 2015 +0100 hvc/xen: Further s/MFN/GFN clean-up HVM_PARAM_CONSOLE_PFN is used to retrieved the console PFN for HVM guest. It returns a PFN (aka GFN) and not a MFN. Furthermore, use directly virt_to_gfn for both PV and HVM domain rather than doing a special case for each of the them. Signed-off-by: Julien Grall Reviewed-by: David Vrabel Signed-off-by: David Vrabel drivers/tty/hvc/hvc_xen.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 0467533a7a5da08a881a31120d95cd159e54640b Author: Julien Grall Date: Fri Aug 7 17:34:39 2015 +0100 video/xen-fbfront: Further s/MFN/GFN clean-up The PV driver xen-fbfront is only dealing with GFN and not MFN. Rename all the occurence of MFN to GFN. Also take the opportunity to replace to usage of pfn_to_gfn by xen_page_to_gfn. Signed-off-by: Julien Grall Reviewed-by: David Vrabel Signed-off-by: David Vrabel drivers/video/fbdev/xen-fbfront.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a76e3cc32d872acd5104278d21d2084da07c16a8 Author: Julien Grall Date: Fri Aug 7 17:34:38 2015 +0100 xen/tmem: Use xen_page_to_gfn rather than pfn_to_gfn All the caller of xen_tmem_{get,put}_page have a struct page * in hand and call pfn_to_gfn for the only benefits of these 2 functions. Rather than passing the pfn in parameter, pass directly the page and use directly xen_page_to_gfn. Signed-off-by: Julien Grall Reviewed-by: Stefano Stabellini Signed-off-by: David Vrabel drivers/xen/tmem.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit 0df4f266b3af90442bbeb5e685a84a80745beba0 Author: Julien Grall Date: Fri Aug 7 17:34:37 2015 +0100 xen: Use correctly the Xen memory terminologies Based on include/xen/mm.h [1], Linux is mistakenly using MFN when GFN is meant, I suspect this is because the first support for Xen was for PV. This resulted in some misimplementation of helpers on ARM and confused developers about the expected behavior. For instance, with pfn_to_mfn, we expect to get an MFN based on the name. Although, if we look at the implementation on x86, it's returning a GFN. For clarity and avoid new confusion, replace any reference to mfn with gfn in any helpers used by PV drivers. The x86 code will still keep some reference of pfn_to_mfn which may be used by all kind of guests No changes as been made in the hypercall field, even though they may be invalid, in order to keep the same as the defintion in xen repo. Note that page_to_mfn has been renamed to xen_page_to_gfn to avoid a name to close to the KVM function gfn_to_page. Take also the opportunity to simplify simple construction such as pfn_to_mfn(page_to_pfn(page)) into xen_page_to_gfn. More complex clean up will come in follow-up patches. [1] http://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=e758ed14f390342513405dd766e874934573e6cb Signed-off-by: Julien Grall Reviewed-by: Stefano Stabellini Acked-by: Dmitry Torokhov Acked-by: Wei Liu Signed-off-by: David Vrabel arch/arm/include/asm/xen/page.h | 13 ++++++------ arch/x86/include/asm/xen/page.h | 35 +++++++++++++++++++++++++++++++-- arch/x86/xen/smp.c | 2 +- drivers/block/xen-blkfront.c | 6 +++--- drivers/input/misc/xen-kbdfront.c | 4 ++-- drivers/net/xen-netback/netback.c | 4 ++-- drivers/net/xen-netfront.c | 12 ++++++----- drivers/scsi/xen-scsifront.c | 10 +++++----- drivers/tty/hvc/hvc_xen.c | 5 +++-- drivers/video/fbdev/xen-fbfront.c | 4 ++-- drivers/xen/balloon.c | 2 +- drivers/xen/events/events_base.c | 2 +- drivers/xen/events/events_fifo.c | 4 ++-- drivers/xen/gntalloc.c | 3 ++- drivers/xen/manage.c | 2 +- drivers/xen/tmem.c | 4 ++-- drivers/xen/xenbus/xenbus_client.c | 2 +- drivers/xen/xenbus/xenbus_dev_backend.c | 2 +- drivers/xen/xenbus/xenbus_probe.c | 8 +++----- include/xen/page.h | 4 ++-- 20 files changed, 81 insertions(+), 47 deletions(-) commit 5192b35de47e47a0f736fe30da199f32030680e7 Author: Julien Grall Date: Fri Aug 7 17:34:36 2015 +0100 arm/xen: implement correctly pfn_to_mfn After the commit introducing convertion between DMA and guest addresses, all the callers of pfn_to_mfn are expecting to get a GFN (Guest Frame Number). On ARM, all the guests are auto-translated so the GFN is equal to the Linux PFN (Pseudo-physical Frame Number). The current implementation may return an MFN if the caller is passing a PFN associated to a mapped foreign grant. In pratice, I haven't seen the problem on running guest but we should fix it for the sake of correctness. Correct the implementation by always returning the pfn passed in parameter. A follow-up patch will take care to rename pfn_to_mfn to a suitable name. Signed-off-by: Julien Grall Reviewed-by: Stefano Stabellini Signed-off-by: David Vrabel arch/arm/include/asm/xen/page.h | 8 -------- 1 file changed, 8 deletions(-) commit 32e09870eedfb501a6cb5729d8c23f44f8a7cbdd Author: Julien Grall Date: Fri Aug 7 17:34:35 2015 +0100 xen: Make clear that swiotlb and biomerge are dealing with DMA address The swiotlb is required when programming a DMA address on ARM when a device is not protected by an IOMMU. In this case, the DMA address should always be equal to the machine address. For DOM0 memory, Xen ensure it by have an identity mapping between the guest address and host address. However, when mapping a foreign grant reference, the 1:1 model doesn't work. For ARM guest, most of the callers of pfn_to_mfn expects to get a GFN (Guest Frame Number), i.e a PFN (Page Frame Number) from the Linux point of view given that all ARM guest are auto-translated. Even though the name pfn_to_mfn is misleading, we need to ensure that those caller get a GFN and not by mistake a MFN. In pratical, I haven't seen error related to this but we should fix it for the sake of correctness. In order to fix the implementation of pfn_to_mfn on ARM in a follow-up patch, we have to introduce new helpers to return the DMA from a PFN and the invert. On x86, the new helpers will be an alias of pfn_to_mfn and mfn_to_pfn. The helpers will be used in swiotlb and xen_biovec_phys_mergeable. This is necessary in the latter because we have to ensure that the biovec code will not try to merge a biovec using foreign page and another using Linux memory. Lastly, the helper mfn_to_local_pfn has been renamed to bfn_to_local_pfn given that the only usage was in swiotlb. Signed-off-by: Julien Grall Reviewed-by: Stefano Stabellini Signed-off-by: David Vrabel arch/arm/include/asm/xen/page.h | 23 +++++++++++++++++++++-- arch/arm/xen/mm.c | 4 ++-- arch/x86/include/asm/xen/page.h | 8 ++++++-- drivers/xen/biomerge.c | 6 +++--- drivers/xen/swiotlb-xen.c | 16 ++++++++-------- 5 files changed, 40 insertions(+), 17 deletions(-) commit 6dc0dcde406bb0e40ad6a6f45f44534d3a094205 Author: Helge Deller Date: Tue Sep 8 17:50:03 2015 +0200 parisc: Use platform_device_register_simple("rtc-generic") Signed-off-by: Helge Deller arch/parisc/kernel/time.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 72581cecee411be2b2c00226c98e0c20aab337a2 Author: Helge Deller Date: Tue Sep 8 17:49:31 2015 +0200 parisc: Drop CONFIG_SMP around update_cr16_clocksource() No need to use CONFIG_SMP around update_cr16_clocksource(). It checks for num_online_cpus() beeing greater than 1, which is always 1 in UP builds. Signed-off-by: Helge Deller arch/parisc/kernel/time.c | 7 ------- 1 file changed, 7 deletions(-) commit 626d7508664c4bc8e67f496da4387ecd0c410b8c Author: Juergen Gross Date: Fri Sep 4 14:05:51 2015 +0200 xen: switch extra memory accounting to use pfns Instead of using physical addresses for accounting of extra memory areas available for ballooning switch to pfns as this is much less error prone regarding partial pages. Reported-by: Roger Pau Monné Tested-by: Roger Pau Monné Signed-off-by: Juergen Gross Signed-off-by: David Vrabel arch/x86/xen/setup.c | 80 ++++++++++++++++++++++++++++----------------------- drivers/xen/balloon.c | 6 ++-- include/xen/page.h | 4 +-- 3 files changed, 49 insertions(+), 41 deletions(-) commit cb9e444b5aaa900bb4310da411315b6947c53e37 Author: Juergen Gross Date: Fri Sep 4 14:18:08 2015 +0200 xen: limit memory to architectural maximum When a pv-domain (including dom0) is started it tries to size it's p2m list according to the maximum possible memory amount it ever can achieve. Limit the initial maximum memory size to the architectural limit of the hardware in order to avoid overflows during remapping of memory. This problem will occur when dom0 is started with an initial memory size being a multiple of 1GB, but without specifying it's maximum memory size. The kernel must be configured without CONFIG_XEN_BALLOON_MEMORY_HOTPLUG for the problem to happen. Reported-by: Roger Pau Monné Tested-by: Roger Pau Monné Signed-off-by: Juergen Gross Signed-off-by: David Vrabel arch/x86/xen/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab24507cfae8d916814bb6c16f66e453184a29a5 Author: Juergen Gross Date: Wed Aug 19 18:53:11 2015 +0200 xen: avoid another early crash of memory limited dom0 Commit b1c9f169047b ("xen: split counting of extra memory pages...") introduced an error when dom0 was started with limited memory occurring only on some hardware. The problem arises in case dom0 is started with initial memory and maximum memory being the same. The kernel must be configured without CONFIG_XEN_BALLOON_MEMORY_HOTPLUG for the problem to happen. If all of this is true and the E820 map of the machine is sparse (some areas are not covered) then the machine might crash early in the boot process. An example E820 map triggering the problem looks like this: [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000cf7fafff] usable [ 0.000000] BIOS-e820: [mem 0x00000000cf7fb000-0x00000000cf95ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000cf960000-0x00000000cfb62fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfb63000-0x00000000cfd14fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000cfd15000-0x00000000cfd61fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfd62000-0x00000000cfd6cfff] ACPI data [ 0.000000] BIOS-e820: [mem 0x00000000cfd6d000-0x00000000cfd6ffff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfd70000-0x00000000cfd70fff] usable [ 0.000000] BIOS-e820: [mem 0x00000000cfd71000-0x00000000cfea8fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000cfea9000-0x00000000cfeb9fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfeba000-0x00000000cfecafff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000cfecb000-0x00000000cfecbfff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfecc000-0x00000000cfedbfff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000cfedc000-0x00000000cfedcfff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfedd000-0x00000000cfeddfff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000cfede000-0x00000000cfee3fff] ACPI NVS [ 0.000000] BIOS-e820: [mem 0x00000000cfee4000-0x00000000cfef6fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000cfef7000-0x00000000cfefffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fec10000-0x00000000fec10fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed00fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed40000-0x00000000fed44fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed61000-0x00000000fed70fff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000fed80000-0x00000000fed8ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000100001000-0x000000020effffff] usable In this case the area a0000-dffff isn't present in the map. This will confuse the memory setup of the domain when remapping the memory from such holes to populated areas. To avoid the problem the accounting of to be remapped memory has to count such holes in the E820 map as well. Reported-by: Boris Ostrovsky Signed-off-by: Juergen Gross Signed-off-by: David Vrabel arch/x86/xen/setup.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit eafd72e016c69df511b14a98b61e439c58ad9c51 Author: Juergen Gross Date: Wed Aug 19 18:52:34 2015 +0200 xen: avoid early crash of memory limited dom0 Commit b1c9f169047b ("xen: split counting of extra memory pages...") introduced an error when dom0 was started with limited memory. The problem arises in case dom0 is started with initial memory and maximum memory being the same and exactly a multiple of 1 GB. The kernel must be configured without CONFIG_XEN_BALLOON_MEMORY_HOTPLUG for the problem to happen. In this case it will crash very early during boot due to the virtual mapped p2m list not being large enough to be able to remap any memory: (XEN) Freed 304kB init memory. mapping kernel into physical memory about to get started... (XEN) traps.c:459:d0v0 Unhandled invalid opcode fault/trap [#6] on VCPU 0 [ec=0000] (XEN) domain_crash_sync called from entry.S: fault at ffff82d080229a93 create_bounce_frame+0x12b/0x13a (XEN) Domain 0 (vcpu#0) crashed on cpu#0: (XEN) ----[ Xen-4.5.2-pre x86_64 debug=n Not tainted ]---- (XEN) CPU: 0 (XEN) RIP: e033:[] (XEN) RFLAGS: 0000000000000206 EM: 1 CONTEXT: pv guest (d0v0) (XEN) rax: ffffffff81db2000 rbx: 000000004d000000 rcx: 0000000000000000 (XEN) rdx: 000000004d000000 rsi: 0000000000063000 rdi: 000000004d063000 (XEN) rbp: ffffffff81c03d78 rsp: ffffffff81c03d28 r8: 0000000000023000 (XEN) r9: 00000001040ff000 r10: 0000000000007ff0 r11: 0000000000000000 (XEN) r12: 0000000000063000 r13: 000000000004d000 r14: 0000000000000063 (XEN) r15: 0000000000000063 cr0: 0000000080050033 cr4: 00000000000006f0 (XEN) cr3: 0000000105c0f000 cr2: ffffc90000268000 (XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: e02b cs: e033 (XEN) Guest stack trace from rsp=ffffffff81c03d28: (XEN) 0000000000000000 0000000000000000 ffffffff81d120cb 000000010000e030 (XEN) 0000000000010006 ffffffff81c03d68 000000000000e02b ffffffffffffffff (XEN) 0000000000000063 000000000004d063 ffffffff81c03de8 ffffffff81d130a7 (XEN) ffffffff81c03de8 000000000004d000 00000001040ff000 0000000000105db1 (XEN) 00000001040ff001 000000000004d062 ffff8800092d6ff8 0000000002027000 (XEN) ffff8800094d8340 ffff8800092d6ff8 00003ffffffff000 ffff8800092d7ff8 (XEN) ffffffff81c03e48 ffffffff81d13c43 ffff8800094d8000 ffff8800094d9000 (XEN) 0000000000000000 ffff8800092d6000 00000000092d6000 000000004cfbf000 (XEN) 00000000092d6000 00000000052d5442 0000000000000000 0000000000000000 (XEN) ffffffff81c03ed8 ffffffff81d185c1 0000000000000000 0000000000000000 (XEN) ffffffff81c03e78 ffffffff810f8ca4 ffffffff81c03ed8 ffffffff8171a15d (XEN) 0000000000000010 ffffffff81c03ee8 0000000000000000 0000000000000000 (XEN) ffffffff81f0e402 ffffffffffffffff ffffffff81dae900 0000000000000000 (XEN) 0000000000000000 0000000000000000 ffffffff81c03f28 ffffffff81d0cf0f (XEN) 0000000000000000 0000000000000000 0000000000000000 ffffffff81db82e0 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) ffffffff81c03f38 ffffffff81d0c603 ffffffff81c03ff8 ffffffff81d11c86 (XEN) 0300000100000032 0000000000000005 0000000000000020 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) Domain 0 crashed: rebooting machine in 5 seconds. This can be avoided by allocating aneough space for the p2m to cover the maximum memory of dom0 plus the identity mapped holes required for PCI space, BIOS etc. Reported-by: Boris Ostrovsky Signed-off-by: Juergen Gross Signed-off-by: David Vrabel arch/x86/xen/setup.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1b59ddfcf1678de38a1f8ca9fb8ea5eebeff1843 Author: John David Anglin Date: Mon Sep 7 20:13:28 2015 -0400 parisc: Use double word condition in 64bit CAS operation The attached change fixes the condition used in the "sub" instruction. A double word comparison is needed. This fixes the 64-bit LWS CAS operation on 64-bit kernels. I can now enable 64-bit atomic support in GCC. Cc: Signed-off-by: John David Anglin Signed-off-by: Helge Deller arch/parisc/kernel/syscall.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b1b4e435e4ef7de77f07bf2a42c8380b960c2d44 Author: Helge Deller Date: Thu Sep 3 22:45:21 2015 +0200 parisc: Filter out spurious interrupts in PA-RISC irq handler When detecting a serial port on newer PA-RISC machines (with iosapic) we have a long way to go to find the right IRQ line, registering it, then registering the serial port and the irq handler for the serial port. During this phase spurious interrupts for the serial port may happen which then crashes the kernel because the action handler might not have been set up yet. So, basically it's a race condition between the serial port hardware and the CPU which sets up the necessary fields in the irq sructs. The main reason for this race is, that we unmask the serial port irqs too early without having set up everything properly before (which isn't easily possible because we need the IRQ number to register the serial ports). This patch is a work-around for this problem. It adds checks to the CPU irq handler to verify if the IRQ action field has been initialized already. If not, we just skip this interrupt (which isn't critical for a serial port at bootup). The real fix would probably involve rewriting all PA-RISC specific IRQ code (for CPU, IOSAPIC, GSC and EISA) to use IRQ domains with proper parenting of the irq chips and proper irq enabling along this line. This bug has been in the PA-RISC port since the beginning, but the crashes happened very rarely with currently used hardware. But on the latest machine which I bought (a C8000 workstation), which uses the fastest CPUs (4 x PA8900, 1GHz) and which has the largest possible L1 cache size (64MB each), the kernel crashed at every boot because of this race. So, without this patch the machine would currently be unuseable. For the record, here is the flow logic: 1. serial_init_chip() in 8250_gsc.c calls iosapic_serial_irq(). 2. iosapic_serial_irq() calls txn_alloc_irq() to find the irq. 3. iosapic_serial_irq() calls cpu_claim_irq() to register the CPU irq 4. cpu_claim_irq() unmasks the CPU irq (which it shouldn't!) 5. serial_init_chip() then registers the 8250 port. Problems: - In step 4 the CPU irq shouldn't have been registered yet, but after step 5 - If serial irq happens between 4 and 5 have finished, the kernel will crash Signed-off-by: Helge Deller arch/parisc/kernel/irq.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 699817c3df46eb209044d8c9eb20c6ff6c67c81d Author: Helge Deller Date: Wed Sep 2 18:18:48 2015 +0200 parisc: Additionally check for in_atomic() in page fault handler Craig Estey noticed that we didn't checked for in_atomic() in our page fault handler like other architectures. This commit adds this check by using faulthandler_disabled() which includes a check for pagefault_disabled() and in_atomic(). Reported-by: Craig Estey Signed-off-by: Helge Deller arch/parisc/mm/fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e02a653e15d8d32e9e768fd99a3271aafe5c5d77 Author: Helge Deller Date: Wed Sep 2 18:17:29 2015 +0200 PCI,parisc: Enable 64-bit bus addresses on PA-RISC Commit 3a9ad0b ("PCI: Add pci_bus_addr_t") unconditionally introduced usage of 64-bit PCI bus addresses on all 64-bit platforms which broke PA-RISC. It turned out that due to enabling the 64-bit addresses, the PCI logic decided to use the GMMIO instead of the LMMIO region. This commit simply disables registering the GMMIO and thus we fall back to use the LMMIO region as before. Reverts commit 45ea2a5fed6dacb9bb0558d8b21eacc1c45d5bb4 ("PCI: Don't use 64-bit bus addresses on PA-RISC") To: linux-parisc@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: Bjorn Helgaas Cc: Meelis Roos Cc: stable@vger.kernel.org # v3.19+ Signed-off-by: Helge Deller drivers/parisc/lba_pci.c | 7 +++++-- drivers/pci/Kconfig | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) commit 38d9029a652cb2925a97a8484f6e8f2c85fd55bb Author: Guenter Roeck Date: Fri Jul 31 19:34:46 2015 -0700 parisc: Define ioremap_uc and ioremap_wc Commit 3cc2dac5be3f ("drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC") introduces calls to ioremap_wc and ioremap_uc. This causes build failures with parisc:allmodconfig. Map the missing functions to ioremap_nocache. Fixes: 3cc2dac5be3f ("drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC") Cc: Luis R. Rodriguez Cc: Paul Gortmaker Signed-off-by: Guenter Roeck Signed-off-by: Helge Deller arch/parisc/include/asm/io.h | 2 ++ 1 file changed, 2 insertions(+) commit e85376cbd23299e4d40bace0cb5ab867b270fdbd Author: Maarten Lankhorst Date: Thu Aug 27 13:13:31 2015 +0200 drm/i915: Fix broken mst get_hw_state. connector->encoder is initialized as NULL. Fix this by setting it in during pre enable. MST connectors are not read out during initial hw readout, and have no fixed encoder mappings. So it's harmless to return false when the connector has never been assigned to an encoder. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 8 ++++---- drivers/gpu/drm/i915/intel_dp_mst.c | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) commit 997e120843e82609c8d99a9d5714e6cf91e14cbe Author: Denis V. Lunev Date: Thu Aug 20 00:49:49 2015 +0300 virtio_balloon: do not change memory amount visible via /proc/meminfo Balloon device is frequently used as a mean of cooperative memory control in between guest and host to manage memory overcommitment. This is the typical case for any hosting workload when KVM guest is provided for end-user. Though there is a problem in this setup. The end-user and hosting provider have signed SLA agreement in which some amount of memory is guaranted for the guest. The good thing is that this memory will be given to the guest when the guest will really need it (f.e. with OOM in guest and with VIRTIO_BALLOON_F_DEFLATE_ON_OOM configuration flag set). The bad thing is that end-user does not know this. Balloon by default reduce the amount of memory exposed to the end-user each time when the page is stolen from guest or returned back by using adjust_managed_page_count and thus /proc/meminfo shows reduced amount of memory. Fortunately the solution is simple, we should just avoid to call adjust_managed_page_count with VIRTIO_BALLOON_F_DEFLATE_ON_OOM set. Signed-off-by: Denis V. Lunev CC: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_balloon.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit b4d34037329f46ed818d3b0a6e1e23b9c8721f79 Author: Denis V. Lunev Date: Thu Aug 20 00:49:48 2015 +0300 virtio_ballon: change stub of release_pages_by_pfn and rename it to release_pages_balloon. The function originally takes arrays of pfns and now it takes pointer to struct virtio_ballon. This change is necessary to conditionally call adjust_managed_page_count in the next patch. Signed-off-by: Denis V. Lunev CC: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_balloon.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5fa3142da14b162f30e4781ff17e1926c47f28fb Author: Fam Zheng Date: Sun Sep 6 17:05:42 2015 +0800 virtio-blk: Allow extended partitions This will allow up to DISK_MAX_PARTS (256) partitions, with for example GPT in the guest. Otherwise, the partition scan code will only discover the first 15 partitions. Signed-off-by: Fam Zheng Signed-off-by: Michael S. Tsirkin drivers/block/virtio_blk.c | 1 + 1 file changed, 1 insertion(+) commit 38c4ab8e48ab153dee461e10e81256720b70a0b3 Author: Graeme Gregory Date: Tue Jul 28 10:44:02 2015 +0100 virtio_mmio: add ACPI probing Added the match table and pointers for ACPI probing to the driver. This uses the same identifier for virt devices as being used for qemu ARM64 ACPI support. http://git.linaro.org/people/shannon.zhao/qemu.git/commit/d0bf1955a3ecbab4b51d46f8c5dda02b7e14a17e Signed-off-by: Graeme Gregory Signed-off-by: Michael S. Tsirkin drivers/virtio/virtio_mmio.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 53eab6fd2777dc7cb338519827e23f8bf892903e Author: Paolo Bonzini Date: Fri Aug 21 15:53:55 2015 -0700 virtio-blk: use VIRTIO_BLK_F_WCE and VIRTIO_BLK_F_CONFIG_WCE in virtio1 VIRTIO_BLK_F_CONFIG_WCE is important in order to achieve good performance (up to 2x, though more realistically +30-40%) in latency-bound workloads. However, it was removed by mistake together with VIRTIO_BLK_F_FLUSH. It will be restored in the next revision of the virtio 1.0 standard, so do the same in Linux. Signed-off-by: Paolo Bonzini Signed-off-by: Michael S. Tsirkin drivers/block/virtio_blk.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 08441d462ebdc64df79b392f877e26522616bad5 Author: Chee Nouk Phoon Date: Tue Sep 8 18:08:56 2015 +0800 nios2: add Max10 defconfig Max10 is a FPGA device. This patch adds defconfig based on Max10 hardware reference design. Design is intended to run on Max10 development kit. Signed-off-by: Chee Nouk Phoon Signed-off-by: Ley Foon Tan arch/nios2/configs/10m50_defconfig | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) commit 61c610ec61bb334ba97cddaf352c95b9371d2a23 Author: Chee Nouk Phoon Date: Tue Sep 8 18:07:44 2015 +0800 nios2: Add Max10 device tree Max10 is a FPGA device. This patch adds Nios2 support for Max10. This device tree is based on Max10 hardware reference design. Signed-off-by: Chee Nouk Phoon Signed-off-by: Ley Foon Tan arch/nios2/boot/dts/10m50_devboard.dts | 248 +++++++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) commit ba60c41ae392b473a1897faa0b8739fcb8759d69 Author: Sudip Mukherjee Date: Wed Sep 2 12:33:53 2015 +0530 kvm: irqchip: fix memory leak We were taking the exit path after checking ue->flags and return value of setup_routing_entry(), but 'e' was not freed incase of a failure. Signed-off-by: Sudip Mukherjee Signed-off-by: Paolo Bonzini virt/kvm/irqchip.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 3dfe6a507353f3253c8136734d94bfdb459fa04d Author: Wanpeng Li Date: Tue Sep 8 11:14:13 2015 +0200 kvm: move new trace event outside #ifdef CONFIG_KVM_ASYNC_PF Fixes compilation with ppc64_defconfig. Reported-by: Stephen Rothwell Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini include/trace/events/kvm.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit edcd591c77a48da753456f92daf8bb50fe9bac93 Author: Jonathan Corbet Date: Mon Sep 7 13:18:03 2015 -0600 locking/static_keys: Fix a silly typo Commit: 412758cb2670 ("jump label, locking/static_keys: Update docs") introduced a typo that might as well get fixed. Signed-off-by: Jonathan Corbet Cc: Andrew Morton Cc: Jason Baron Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150907131803.54c027e1@lwn.net Signed-off-by: Ingo Molnar Documentation/static-keys.txt | 2 +- include/linux/jump_label.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit daebaabb5cfbe4a6f09ca0e0f8b7673efc704960 Author: Bharata B Rao Date: Mon Sep 7 15:52:40 2015 +0530 powerpc/pseries: Release DRC when configure_connector fails Commit f32393c943e2 ("powerpc/pseries: Correct cpu affinity for dlpar added cpus") moved dlpar_acquire_drc() call to before dlpar_configure_connector() call in dlpar_cpu_probe(), but missed to release the DRC if dlpar_configure_connector() failed. During CPU hotplug, if configure-connector fails for any reason, then this will result in subsequent CPU hotplug attempts to fail. Release the acquired DRC if dlpar_configure_connector() call fails so that the DRC is left in right isolation and allocation state for the subsequent hotplug operation to succeed. Fixes: f32393c943e2 ("powerpc/pseries: Correct cpu affinity for dlpar added cpus") Cc: stable@vger.kernel.org # 4.1+ Signed-off-by: Bharata B Rao Reviewed-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/dlpar.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6af3e3adcac595a683bb55299a907d7d1ad61ab3 Author: Filipe Manana Date: Mon Sep 7 10:41:12 2015 +0100 Btrfs: don't initialize a space info as full to prevent ENOSPC Commit 2e6e518335f8 ("Btrfs: fix block group ->space_info null pointer dereference") accidently marked a space info as full when initializing it with a value of 0 total bytes. This introduces an ENOSPC problem when writing file data if we mount a filesystem that has no data block groups allocated, because the data space info is initialized with 0 total bytes, marked as full, and it never gets its total bytes incremented by a (positive) value to unmark it as full (because there are no data block groups loaded when the fs is mounted). For metadata and system spaces this issue can never happen since we always have at least one metadata block group and one system block group (even for an empty filesystem). So fix this by just not initializing a space info as full, reverting the offending part of the commit mentioned above. The following test case for fstests reproduces the issue: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _need_to_be_root _supported_fs btrfs _supported_os Linux _require_scratch rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 # Mount our filesystem without space caches enabled so that we do not # get any space used from the initial data block group that mkfs creates # (space caches used space from data block groups). _scratch_mount "-o nospace_cache" # Need an fs with at least 2Gb to make sure mkfs.btrfs does not create # an fs using mixed block groups (used both for data and metadata). We # really need to have dedicated block groups for data to reproduce the # issue and mkfs.btrfs defaults to mixed block groups only for small # filesystems (up to 1Gb). _require_fs_space $SCRATCH_MNT $((2 * 1024 * 1024)) # Run balance with the purpose of deleting the unused data block group # that mkfs created. We could also wait for the background kthread to # automatically delete the unused block group, but we do not have a way # to make it run and wait for it to complete, so just do a balance # instead of some unreliable sleep _run_btrfs_util_prog balance start -dusage=0 $SCRATCH_MNT # Now unmount the filesystem, mount it again (either with or with space # caches enabled, it does not matter to trigger the problem) and attempt # to create a file with some data - this used to fail with ENOSPC # because there were no data block groups when the filesystem was # mounted and the data space info object was marked as full when # initialized (because it had 0 total bytes), which prevented the file # write path from attempting to allocate a data block group and fail # immediately with ENOSPC. _scratch_remount echo "hello world" > $SCRATCH_MNT/foobar echo "Silence is golden" status=0 exit Signed-off-by: Filipe Manana fs/btrfs/extent-tree.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 63431f789c957cebcffeb51953dfaeb7f1ddd827 Author: Viresh Kumar Date: Mon Jul 27 17:58:06 2015 +0530 cpufreq: Use __func__ to print function's name Its better to use __func__ to print functions name instead of writing the name in the print statement. This also has the advantage that a change in function's name doesn't force us to change the print message as well. Reviewed-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4e4adb2f462889b9eac736dd06d60658beb091b6 Merge: 77a7880 5445b1f Author: Linus Torvalds Date: Mon Sep 7 14:02:24 2015 -0700 Merge tag 'nfs-for-4.3-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client updates from Trond Myklebust: "Highlights include: Stable patches: - Fix atomicity of pNFS commit list updates - Fix NFSv4 handling of open(O_CREAT|O_EXCL|O_RDONLY) - nfs_set_pgio_error sometimes misses errors - Fix a thinko in xs_connect() - Fix borkage in _same_data_server_addrs_locked() - Fix a NULL pointer dereference of migration recovery ops for v4.2 client - Don't let the ctime override attribute barriers. - Revert "NFSv4: Remove incorrect check in can_open_delegated()" - Ensure flexfiles pNFS driver updates the inode after write finishes - flexfiles must not pollute the attribute cache with attrbutes from the DS - Fix a protocol error in layoutreturn - Fix a protocol issue with NFSv4.1 CLOSE stateids Bugfixes + cleanups - pNFS blocks bugfixes from Christoph - Various cleanups from Anna - More fixes for delegation corner cases - Don't fsync twice for O_SYNC/IS_SYNC files - Fix pNFS and flexfiles layoutstats bugs - pnfs/flexfiles: avoid duplicate tracking of mirror data - pnfs: Fix layoutget/layoutreturn/return-on-close serialisation issues - pnfs/flexfiles: error handling retries a layoutget before fallback to MDS Features: - Full support for the OPEN NFS4_CREATE_EXCLUSIVE4_1 mode from Kinglong - More RDMA client transport improvements from Chuck - Removal of the deprecated ib_reg_phys_mr() and ib_rereg_phys_mr() verbs from the SUNRPC, Lustre and core infiniband tree. - Optimise away the close-to-open getattr if there is no cached data" * tag 'nfs-for-4.3-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (108 commits) NFSv4: Respect the server imposed limit on how many changes we may cache NFSv4: Express delegation limit in units of pages Revert "NFS: Make close(2) asynchronous when closing NFS O_DIRECT files" NFS: Optimise away the close-to-open getattr if there is no cached data NFSv4.1/flexfiles: Clean up ff_layout_write_done_cb/ff_layout_commit_done_cb NFSv4.1/flexfiles: Mark the layout for return in ff_layout_io_track_ds_error() nfs: Remove unneeded checking of the return value from scnprintf nfs: Fix truncated client owner id without proto type NFSv4.1/flexfiles: Mark layout for return if the mirrors are invalid NFSv4.1/flexfiles: RW layouts are valid only if all mirrors are valid NFSv4.1/flexfiles: Fix incorrect usage of pnfs_generic_mark_devid_invalid() NFSv4.1/flexfiles: Fix freeing of mirrors NFSv4.1/pNFS: Don't request a minimal read layout beyond the end of file NFSv4.1/pnfs: Handle LAYOUTGET return values correctly NFSv4.1/pnfs: Don't ask for a read layout for an empty file. NFSv4.1: Fix a protocol issue with CLOSE stateids NFSv4.1/flexfiles: Don't mark the entire deviceid as bad for file errors SUNRPC: Prevent SYN+SYNACK+RST storms SUNRPC: xs_reset_transport must mark the connection as disconnected NFSv4.1/pnfs: Ensure layoutreturn reserves space for the opaque payload ... commit 77a78806c7df8d414c33031a1ca5121876910c4f Merge: 7d9071a 5d54b8c Author: Linus Torvalds Date: Mon Sep 7 13:28:32 2015 -0700 Merge tag 'xfs-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs Pull xfs updates from Dave Chinner: "There isn't a whole lot to this update - it's mostly bug fixes and they are spread pretty much all over XFS. There are some corruption fixes, some fixes for log recovery, some fixes that prevent unount from hanging, a lockdep annotation rework for inode locking to prevent false positives and the usual random bunch of cleanups and minor improvements. Deatils: - large rework of EFI/EFD lifecycle handling to fix log recovery corruption issues, crashes and unmount hangs - separate metadata UUID on disk to enable changing boot label UUID for v5 filesystems - fixes for gcc miscompilation on certain platforms and optimisation levels - remote attribute allocation and recovery corruption fixes - inode lockdep annotation rework to fix bugs with too many subclasses - directory inode locking changes to prevent lockdep false positives - a handful of minor corruption fixes - various other small cleanups and bug fixes" * tag 'xfs-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (42 commits) xfs: fix error gotos in xfs_setattr_nonsize xfs: add mssing inode cache attempts counter increment xfs: return errors from partial I/O failures to files libxfs: bad magic number should set da block buffer error xfs: fix non-debug build warnings xfs: collapse allocsize and biosize mount option handling xfs: Fix file type directory corruption for btree directories xfs: lockdep annotations throw warnings on non-debug builds xfs: Fix uninitialized return value in xfs_alloc_fix_freelist() xfs: inode lockdep annotations broke non-lockdep build xfs: flush entire file on dio read/write to cached file xfs: Fix xfs_attr_leafblock definition libxfs: readahead of dir3 data blocks should use the read verifier xfs: stop holding ILOCK over filldir callbacks xfs: clean up inode lockdep annotations xfs: swap leaf buffer into path struct atomically during path shift xfs: relocate sparse inode mount warning xfs: dquots should be stamped with sb_meta_uuid xfs: log recovery needs to validate against sb_meta_uuid xfs: growfs not aware of sb_meta_uuid ... commit d075a88e515278b3e2d5ec39e80e6fd3c6e48841 Author: Viresh Kumar Date: Thu Sep 3 12:15:21 2015 +0530 cpufreq: staticize cpufreq_cpu_get_raw() cpufreq_cpu_get_raw() isn't used by any external users, staticize it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a07826f99034202dad589285a47132685d9538b Author: Allen Hubbe Date: Mon Aug 31 09:31:00 2015 -0400 NTB: Fix range check on memory window index The range check must exclude the upper bound. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2aa2a77a489deda473c99a4c15074d092718912c Author: Allen Hubbe Date: Mon Aug 31 09:30:59 2015 -0400 NTB: Improve index handling in B2B MW workaround Check that b2b_mw_idx is in range of the number of memory windows when initializing the device. The workaround is considered to be in effect only if the device b2b_idx is exactly UINT_MAX, instead of any index past the last memory window. Only print B2B MW workaround information in debugfs if the workaround is in effect. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) commit 86663c91866ae85c219f1a80ef2c9460b7ca5cd8 Author: Allen Hubbe Date: Wed Jul 15 12:43:21 2015 -0400 NTB: Fix documentation for ntb_peer_db_clear. The documentation should say "peer" not "local" when referring to the peer doorbell register. Reported-by: Dave Jiang Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason include/linux/ntb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7c23237481782fbea3c2230e362b72863e144b0 Author: Allen Hubbe Date: Wed Jul 15 04:15:28 2015 -0400 NTB: Fix documentation for ntb_link_is_up There was a copy and paste error in the documentation for ntb_link_is_up. The long description was mistakenly copied from ntb_link_set_trans. This adds the appropriate long description for ntb_link_is_up. Reported-by: Dave Jiang Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason include/linux/ntb.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 569410ca756cd3ebb15609cb6828a8393fb6384d Author: Dave Jiang Date: Mon Jul 13 08:07:22 2015 -0400 NTB: Use unique DMA channels for TX and RX Allocate two DMA channels, one for TX operation and one for RX operation, instead of having one DMA channel for everything. This provides slightly better performance, and also will make error handling cleaner later on. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 77 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 19 deletions(-) commit 905921e74864e80228e7f8cfe75315cd0a8cada8 Author: Allen Hubbe Date: Mon Jul 13 08:07:21 2015 -0400 NTB: Remove dma_sync_wait from ntb_async_rx The dma_sync_wait can hurt the performance of workloads mixed with both large and small frames. Large frames will be copied using the dma engine. Small frames will be copied by the cpu. The dma_sync_wait prevents the cpu and dma engine copying in parallel. In the period where the cpu is copying, the dma engine is stopped. The dma engine is not doing any useful work to copy large frames during that time, and the additional time to restart the dma engine for the next large frame. This will decrease the throughput for the portion of a workload with large frames. In the period where the dma engine is copying, the cpu is held up waiting for dma to complete. The small frames processing will be delayed until the dma is complete. The RX frames are completed in-order, and the processing of small frames takes very little time, so dma_sync_wait may have an insignificant impact on the respose time of frames. The more significant impact is to the system, because the delay in dma_sync_wait is implemented as busy non-blocking wait. This can prevent the delayed core from doing any useful work, even if it could be processing work for other drivers, unrelated to transport RX processing. After applying the earlier patch to fix out-of-order RX acknoledgement, the dma_sync_wait is no longer necessary. Remove it, so that cpu memcpy will proceed immediately for small frames, in parallel with ongoing dma for large frames. Do not hold up the cpu from doing work while dma is in progress. The prior fix will continue to ensure in-order completion of the RX frames to the upper layer, and in-order delivery of the RX acknoledgement. Signed-off-by: Allen Hubbe Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit d98ef99e378b0d5c42be928d6f2abe08a5f9ce53 Author: Dave Jiang Date: Mon Jul 13 08:07:20 2015 -0400 NTB: Clean up QP stats info Make QP stats info more readable for debugging purposes. Also add an entry to indicate whether DMA is being used. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) commit 315100004fd6d9189b033f3bf9c5eba9eb906705 Author: Dave Jiang Date: Mon Jul 13 08:07:19 2015 -0400 NTB: Make the transport list in order of discovery The list should be added from the bottom and not the top in order to ensure the transport is provided in the same order to clients as ntb devices are discovered. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/ntb_transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a5d19d9f046d770776508fdde959d2a42bce9f7 Author: Dave Jiang Date: Mon Jul 13 08:07:18 2015 -0400 NTB: Add PCI Device IDs for Broadwell Xeon Adding PCI Device IDs for B2B (back to back), RP (root port, primary), and TB (transparent bridge, secondary) devices. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/ntb/hw/intel/ntb_hw_intel.c | 15 +++++++++++++++ drivers/ntb/hw/intel/ntb_hw_intel.h | 3 +++ 2 files changed, 18 insertions(+) commit e74bfeedad08180b968d8613dcde141ffb0720c3 Author: Dave Jiang Date: Mon Jul 13 08:07:17 2015 -0400 NTB: Add flow control to the ntb_netdev Right now if we push the NTB really hard, we start dropping packets due to not able to process the packets fast enough. We need to st:qop the upper layer from flooding us when that happens. A timer is necessary in order to restart the queue once the resource has been processed on the receive side. Due to the way NTB is setup, the resources on the tx side are tied to the processing of the rx side and there's no async way to know when the rx side has released those resources. Signed-off-by: Dave Jiang Signed-off-by: Jon Mason drivers/net/ntb_netdev.c | 77 +++++++++++++++++++++++++++++++++++++++++++ drivers/ntb/ntb_transport.c | 18 +++++++++- include/linux/ntb_transport.h | 1 + 3 files changed, 95 insertions(+), 1 deletion(-) commit 5e9fd733fa34b491e7ac41c91aa42ba0a9d8ea10 Author: Jon Mason Date: Sat Jul 4 14:48:33 2015 -0400 NTB: Add list to MAINTAINERS Add the new NTB mailing list to MAINTAINERS Signed-off-by: Jon Mason MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) commit 0094dc40a97260b64313b169989952d3aa2013f6 Author: Ley Foon Tan Date: Tue Sep 8 01:50:05 2015 +0800 MAINTAINERS: update nios2 git repo Signed-off-by: Ley Foon Tan MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3fb39c482c39760ab3b5e59f30868c988c25578d Author: Bernd Weiberg Date: Fri Sep 4 16:59:45 2015 +0800 nios2: remove unused statistic counters Removed some statistic counters to improve the performance of the handler. Signed-off-by: Bernd Weiberg Signed-off-by: Ley Foon Tan arch/nios2/kernel/misaligned.c | 18 ------------------ 1 file changed, 18 deletions(-) commit db5a7e55468147f28d1a408880564b61c542e4f8 Author: Bernd Weiberg Date: Fri Sep 4 17:03:03 2015 +0800 nios2: fixed variable imm16 to s16 Fxid variable imm16 to s16 instead of u16, offset might be negative. Signed-off-by: Bernd Weiberg Signed-off-by: Ley Foon Tan arch/nios2/kernel/misaligned.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 549a14c14b2f1868b81e5417a33b6d79e6da1d00 Author: Viresh Kumar Date: Tue Aug 18 13:59:28 2015 +0800 nios2/time: Migrate to new 'set-state' interface Migrate nios2 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Ley Foon Tan Cc: Tobias Klauser Cc: Herbert Xu Cc: Dmitry Torokhov Cc: nios2-dev@lists.rocketboards.org Signed-off-by: Viresh Kumar Acked-by: Ley Foon Tan arch/nios2/kernel/time.c | 49 ++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) commit 5445b1fbd123420bffed5e629a420aa2a16bf849 Author: Trond Myklebust Date: Sat Sep 5 19:06:58 2015 -0400 NFSv4: Respect the server imposed limit on how many changes we may cache The NFSv4 delegation spec allows the server to tell a client to limit how much data it cache after the file is closed. In return, the server guarantees enough free space to avoid ENOSPC situations, etc. Prior to this patch, we assumed we could always cache aggressively after close. Unfortunately, this causes problems with servers that set the limit to 0 and therefore do not offer any ENOSPC guarantees. Signed-off-by: Trond Myklebust fs/nfs/delegation.c | 25 +++++++++++++++++++++++++ fs/nfs/delegation.h | 1 + fs/nfs/file.c | 10 +--------- fs/nfs/internal.h | 1 - fs/nfs/nfs4file.c | 29 ++++++++++++++++++++++++++++- 5 files changed, 55 insertions(+), 11 deletions(-) commit 7d160a6c462c2c690e074c173b43aad7204049ad Author: Trond Myklebust Date: Sat Sep 5 19:06:57 2015 -0400 NFSv4: Express delegation limit in units of pages Since we're tracking modifications to the page cache on a per-page basis, it makes sense to express the limit to how much we may cache in units of pages. Signed-off-by: Trond Myklebust fs/nfs/delegation.c | 4 ++-- fs/nfs/delegation.h | 2 +- fs/nfs/nfs4xdr.c | 16 ++++++++++------ include/linux/nfs_xdr.h | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) commit 6583d2032d57df9f1c00c753ca58e1a822901bf0 Author: Leilk Liu Date: Mon Sep 7 19:37:57 2015 +0800 spi: mediatek: fix spi cs polarity error Mediatek spi HW can't set cs inactive(keep cs high) directly. Instead, it supplies pause mode to do it indirectly. If driver unsets SPI_CMD_PAUSE_MODE in CMD_REG, it also needs to reset internal state machine to let cs inactive at once. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit a077224fd35b2f7fbc93f14cf67074fc792fbac2 Author: Ard Biesheuvel Date: Thu Sep 3 13:24:40 2015 +0100 ARM: 8429/1: disable GCC SRA optimization While working on the 32-bit ARM port of UEFI, I noticed a strange corruption in the kernel log. The following snprintf() statement (in drivers/firmware/efi/efi.c:efi_md_typeattr_format()) snprintf(pos, size, "|%3s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]", was producing the following output in the log: | | | | | |WB|WT|WC|UC] | | | | | |WB|WT|WC|UC] | | | | | |WB|WT|WC|UC] |RUN| | | | |WB|WT|WC|UC]* |RUN| | | | |WB|WT|WC|UC]* | | | | | |WB|WT|WC|UC] |RUN| | | | |WB|WT|WC|UC]* | | | | | |WB|WT|WC|UC] |RUN| | | | | | | |UC] |RUN| | | | | | | |UC] As it turns out, this is caused by incorrect code being emitted for the string() function in lib/vsprintf.c. The following code if (!(spec.flags & LEFT)) { while (len < spec.field_width--) { if (buf < end) *buf = ' '; ++buf; } } for (i = 0; i < len; ++i) { if (buf < end) *buf = *s; ++buf; ++s; } while (len < spec.field_width--) { if (buf < end) *buf = ' '; ++buf; } when called with len == 0, triggers an issue in the GCC SRA optimization pass (Scalar Replacement of Aggregates), which handles promotion of signed struct members incorrectly. This is a known but as yet unresolved issue. (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932). In this particular case, it is causing the second while loop to be executed erroneously a single time, causing the additional space characters to be printed. So disable the optimization by passing -fno-ipa-sra. Cc: Acked-by: Nicolas Pitre Signed-off-by: Ard Biesheuvel Signed-off-by: Russell King arch/arm/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7d1647dc4ba0a61fec5381c1abb59dc886b6ef3c Author: Andrew Donnellan Date: Mon Sep 7 10:52:58 2015 +1000 cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline cxl_pci_enable_device_hook() is called when attempting to enable an AFU sitting on a vPHB. At present, the state of the underlying CXL card's PCI channel is only checked when it calls cxl_afu_check_and_enable() at the very end, after it has already set DMA options and initialised a default context. Check the CXL card's link status before setting DMA options or initialising a default context. If the link is down, print a warning and return immediately. Signed-off-by: Andrew Donnellan Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/vphb.c | 6 ++++++ 1 file changed, 6 insertions(+) commit fa14486979b3a47307bcdb10f8b5baa875a5cf68 Author: Nishanth Aravamudan Date: Fri Sep 4 11:22:52 2015 -0700 powerpc/powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel= The 32-bit TCE table initialization relies on the DMA window having a size equal to a power of 2 (and checks for it explicitly). But crashkernel= has no constraint that requires a power-of-2 be specified. This causes the kdump kernel to fail to boot as none of the PCI devices (including the disk controller) are successfully initialized. After this change, the PCI devices successfully set up the 32-bit TCE table and kdump succeeds. Fixes: aca6913f5551 ("powerpc/powernv/ioda2: Introduce helpers to allocate TCE pages") Signed-off-by: Nishanth Aravamudan Cc: stable@vger.kernel.org # 4.2 Tested-by: Jan Stancek Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit bb0054552d080dd929907c5925d4bedc8bf6def7 Author: Nishanth Aravamudan Date: Wed Sep 2 08:39:28 2015 -0700 powerpc/powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel When attempting to kdump with the 4.2 kernel, we see for each PCI device: pci 0003:01 : [PE# 000] Assign DMA32 space pci 0003:01 : [PE# 000] Setting up 32-bit TCE table at 0..80000000 pci 0003:01 : [PE# 000] Failed to create 32-bit TCE table, err -22 PCI: Domain 0004 has 8 available 32-bit DMA segments PCI: 4 PE# for a total weight of 70 pci 0004:01 : [PE# 002] Assign DMA32 space pci 0004:01 : [PE# 002] Setting up 32-bit TCE table at 0..80000000 pci 0004:01 : [PE# 002] Failed to create 32-bit TCE table, err -22 pci 0004:0d : [PE# 005] Assign DMA32 space pci 0004:0d : [PE# 005] Setting up 32-bit TCE table at 0..80000000 pci 0004:0d : [PE# 005] Failed to create 32-bit TCE table, err -22 pci 0004:0e : [PE# 006] Assign DMA32 space pci 0004:0e : [PE# 006] Setting up 32-bit TCE table at 0..80000000 pci 0004:0e : [PE# 006] Failed to create 32-bit TCE table, err -22 pci 0004:10 : [PE# 008] Assign DMA32 space pci 0004:10 : [PE# 008] Setting up 32-bit TCE table at 0..80000000 pci 0004:10 : [PE# 008] Failed to create 32-bit TCE table, err -22 and eventually the kdump kernel fails to boot as none of the PCI devices (including the disk controller) are successfully initialized. The EINVAL response is because the DMA window (the 2GB base window) is larger than the kdump kernel's reserved memory (crashkernel=, in this case specified to be 1024M). The check in question, if ((window_size > memory_hotplug_max()) || !is_power_of_2(window_size)) is a valid sanity check for pnv_pci_ioda2_table_alloc_pages(), so adjust the caller to pass in a smaller window size if our maximum memory value is smaller than the DMA window. After this change, the PCI devices successfully set up the 32-bit TCE table and kdump succeeds. The problem was seen on a Firestone machine originally. Fixes: aca6913f5551 ("powerpc/powernv/ioda2: Introduce helpers to allocate TCE pages") Cc: stable@vger.kernel.org # 4.2 Signed-off-by: Nishanth Aravamudan Reviewed-by: Alexey Kardashevskiy [mpe: Coding style pedantry, use u64, change the indentation] Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 5ee20bc792467d7d612157e0a9962765aa943b08 Author: Johan Rastén Date: Sun Sep 6 18:16:13 2015 +0200 ALSA: usb-audio: Change internal PCM order New PCMs will now be added to the end of the chip's PCM list instead of to the front. This changes the way streams are combined so that the first capture stream will now be merged with the first playback stream instead of the last. This fixes a problem with ASUS U7. Cards with one playback stream and cards without capture streams should be unaffected by this change. Exception added for M-Audio Audiophile USB (tm) since it seems to have a fix to swap capture stream numbering in alsa-lib conf/cards/USB-audio.conf Signed-off-by: Johan Rastén Signed-off-by: Takashi Iwai sound/usb/stream.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit e7e98d76777ffba334bbf7a61939c5de48acc5a0 Author: James Hogan Date: Thu Jul 30 13:31:42 2015 +0100 Documentation/features/vm: Meta2 is capable of THP Change metag Transparent Huge Pages (THP) support from .. to TODO. Meta2 has variable sized pages, between 4KB and 4MB, specified at the 1st level page table level, and already supports hugetlbfs, so supporting THP is theoretically possible too. Signed-off-by: James Hogan Acked-by: Ingo Molnar Cc: Jonathan Corbet Cc: linux-metag@vger.kernel.org Cc: linux-doc@vger.kernel.org Documentation/features/vm/THP/arch-support.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46cdc9be0841b30ba612aec1878cb746faf280a4 Author: françois romieu Date: Fri Sep 4 23:05:42 2015 +0200 cxgb4: fix usage of uninitialized variable drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c: In function ‘init_one’: drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c:4579:8: warning: ‘chip’ may be used uninitialized in this function [-Wmaybe-uninitialized] chip |= CHELSIO_CHIP_CODE(CHELSIO_T4, pl_rev); ^ drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c:4571:11: note: ‘chip’ was declared here int ver, chip; ^ Fixes: d86bd29e0b31 ("cxgb4/cxgb4vf: read the correct bits of PL Who Am I register") Signed-off-by: Francois Romieu Cc: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit bd1a05ee98b06c9a20138c45f96ccfddf3163f93 Author: Sergei Shtylyov Date: Thu Sep 3 23:22:16 2015 +0300 fixed_phy: pass 'irq' to fixed_phy_add() I've noticed that fixed_phy_register() ignores its 'irq' parameter instead of passing it to fixed_phy_add(). Luckily, fixed_phy_register() seems to always be called with PHY_POLL for 'irq'... :-) Fixes: a75951217472 ("net: phy: extend fixed driver with fixed_phy_register()") Signed-off-by: Sergei Shtylyov Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f88f69dd17f150e2abcc7e2d95f895f2546fa381 Author: Joe Stringer Date: Fri Sep 4 13:07:40 2015 -0700 openvswitch: Remove conntrack Kconfig option. There's no particular desire to have conntrack action support in Open vSwitch as an independently configurable bit, rather just to ensure there is not a hard dependency. This exposed option doesn't accurately reflect the conntrack dependency when enabled, so simplify this by removing the option. Compile the support if NF_CONNTRACK is enabled. Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action") Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/Kconfig | 12 +----------- net/openvswitch/Makefile | 4 +++- net/openvswitch/conntrack.h | 4 ++-- 3 files changed, 6 insertions(+), 14 deletions(-) commit 585e7e1a544c5b13b2a0014c23f3cb6622e8c995 Author: Vivien Didelot Date: Fri Sep 4 11:22:24 2015 -0400 net: dsa: mv88e6171: add hardware 802.1Q support The Marvell 88E6171 switch is in the 88E6351 family, which supports 802.1Q, thus add support from the generic mv88e6xxx functions. Signed-off-by: Vivien Didelot Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6171.c | 5 +++++ 1 file changed, 5 insertions(+) commit 080fff50a3bd669dbc16261602055a157fe89583 Merge: e5a5837 ef9be10 Author: David S. Miller Date: Sun Sep 6 19:49:55 2015 -0700 Merge tag 'mac80211-for-davem-2015-09-04' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== For the first round of fixes, we have this: * fix for the sizeof() pointer type issue * a fix for regulatory getting into a restore loop * a fix for rfkill global 'all' state, it needs to be stored everywhere to apply correctly to new rfkill instances * properly refuse CQM RSSI when it cannot actually be used * protect HT TDLS traffic properly in non-HT networks * don't incorrectly advertise 80 MHz support when not allowed ==================== Signed-off-by: David S. Miller commit e5a5837da756b4826d40636239718eb8f76775fd Author: Geert Uytterhoeven Date: Fri Sep 4 14:44:12 2015 +0200 ethernet: synopsys: SYNOPSYS_DWC_ETH_QOS should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_alloc_coherent" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined! ERROR: "dma_free_coherent" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined! ERROR: "dma_unmap_single" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined! ERROR: "dma_map_page" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined! ERROR: "dma_mapping_error" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined! ERROR: "dma_map_single" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined! Signed-off-by: Geert Uytterhoeven Acked-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f1b7354e0d65ad528b820a8a46c15d70954f699 Author: Geert Uytterhoeven Date: Fri Sep 4 12:49:32 2015 +0200 vxlan: Refactor vxlan_udp_encap_recv() to kill compiler warning drivers/net/vxlan.c: In function ‘vxlan_udp_encap_recv’: drivers/net/vxlan.c:1226: warning: ‘info’ may be used uninitialized in this function While this warning is a false positive, it can be killed easily by getting rid of the pointer intermediary and referring directly to the ip_tunnel_info structure. Signed-off-by: Geert Uytterhoeven Reviewed-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 99c79eceb152e2ac7f8a81ff55d4a810f730ec7b Author: Geert Uytterhoeven Date: Fri Sep 4 12:47:28 2015 +0200 lan78xx: Fix ladv/radv error handling in lan78xx_link_reset() net/usb/lan78xx.c: In function ‘lan78xx_link_reset’: net/usb/lan78xx.c:1107: warning: comparison is always false due to limited range of data type net/usb/lan78xx.c:1111: warning: comparison is always false due to limited range of data type Assigning return values that can be negative error codes to "u16" variables makes them positive, ignoring the errors. Hence use "int" instead. Drop the "unlikely"s (unlikely considered harmful) and propagate the actual error values instead of overriding them to -EIO while we're at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 537b604c8b3aa8b96fe35f87dd085816552e294c Author: Michal Hocko Date: Thu Aug 27 20:16:37 2015 +0200 scsi: fix scsi_error_handler vs. scsi_host_dev_release race b9d5c6b7ef57 ("[SCSI] cleanup setting task state in scsi_error_handler()") has introduced a race between scsi_error_handler and scsi_host_dev_release resulting in the hang when the device goes away because scsi_error_handler might miss a wake up: CPU0 CPU1 scsi_error_handler scsi_host_dev_release kthread_stop() kthread_should_stop() test_bit(KTHREAD_SHOULD_STOP) set_bit(KTHREAD_SHOULD_STOP) wake_up_process() wait_for_completion() set_current_state(TASK_INTERRUPTIBLE) schedule() The most straightforward solution seems to be to invert the ordering of the set_current_state and kthread_should_stop. The issue has been noticed during reboot test on a 3.0 based kernel but the current code seems to be affected in the same way. [jejb: additional comment added] Cc: # 3.6+ Reported-and-debugged-by: Mike Mayer Signed-off-by: Michal Hocko Reviewed-by: Dan Williams Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_error.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 420fa2118c020a005e9f0311c1e0b27414306618 Author: Vaishali Thakkar Date: Wed Aug 19 11:18:44 2015 +0530 fcoe: Convert use of __constant_htons to htons In little endian cases, the macro htons unfolds to __swab16 which provides special case for constants. In big endian cases, __constant_htons and htons expand directly to the same expression. So, replace __constant_htons with htons with the goal of getting rid of the definition of __constant_htons completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ - __constant_htons(x) + htons(x) Signed-off-by: Vaishali Thakkar Acked-by: Vasu Dev Signed-off-by: James Bottomley drivers/scsi/fcoe/fcoe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6229b414b3adb3aac0b54e67d72d6462fc230c0d Author: Nagarajkumar Narayanan Date: Tue Aug 18 13:27:10 2015 +0530 mpt2sas: setpci reset kernel oops fix mpt2sas: setpci reset on nytro warpdrive card along with sysfs access and cli ioctl access resulted in kernel oops 1. pci_access_mutex lock added to provide synchronization between IOCTL, sysfs, PCI resource handling path 2. gioc_lock spinlock to protect list operations over multiple controllers >From c53a1cff4c07528b8b9ec7f6716e94950283e8f9 Mon Sep 17 00:00:00 2001 From: Nagarajkumar Narayanan Date: Tue, 18 Aug 2015 11:58:13 +0530 Subject: [PATCH] mpt2sas setpci reset oops fix In mpt2sas driver due to lack of synchronization between ioctl, BRM status access through sysfs, pci resource removal kernel oops happen as ioctl path and BRM status sysfs access path still tries to access the removed resources Two locks added to provide syncrhonization 1. pci_access_mutex: Mutex to synchronize ioctl,sysfs show path and pci resource handling. PCI resource freeing will lead to free vital hardware/memory resource, which might be in use by cli/sysfs path functions resulting in Null pointer reference followed by kernel crash. To avoid the above race condition we use mutex syncrhonization which ensures the syncrhonization between cli/sysfs_show path Note: pci_access_mutex is used only if nytro warpdrive cards (ioc->is_warpdrive based on device id) are used as we could not test this case with other SAS2 HBA cards We can remove this check if this behaviour confirmed from other cards. 2. spinlock on list operations over IOCs Case: when multiple warpdrive cards(IOCs) are in use Each IOC will added to the ioc list stucture on initialization. Watchdog threads run at regular intervals to check IOC for any fault conditions which will trigger the dead_ioc thread to deallocate pci resource, resulting deleting the IOC netry from list, this deletion need to protected by spinlock to enusre that ioc removal is syncrhonized, if not synchronized it might lead to list_del corruption as the ioc list is traversed in cli path Signed-off-by: Nagarajkumar Narayanan Reviewed-by: Johannes Thumshirn Acked-by: Sreekanth Reddy Signed-off-by: James Bottomley drivers/scsi/mpt2sas/mpt2sas_base.c | 6 ++++++ drivers/scsi/mpt2sas/mpt2sas_base.h | 19 +++++++++++++++++- drivers/scsi/mpt2sas/mpt2sas_ctl.c | 38 +++++++++++++++++++++++++++++------- drivers/scsi/mpt2sas/mpt2sas_scsih.c | 13 +++++++++++- 4 files changed, 67 insertions(+), 9 deletions(-) commit 50acde8ed35620fdfad88f4e20a39a1eb0d8d4c9 Author: Johannes Thumshirn Date: Mon Aug 17 15:52:32 2015 +0200 pm80xx: Don't override ts->stat on IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY In case psataPayload->status has a status of IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY ts->stat gets set to SAS_OPEN_REJECT but a missing 'break' statement causes a fallthrough to the default handler of the switch statement overriding ts->stat to SAS_DEV_NO_RESPONSE. Signed-off-by: Johannes Thumshirn Acked-by: Jack Wang Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_hwi.c | 1 + drivers/scsi/pm8001/pm80xx_hwi.c | 1 + 2 files changed, 2 insertions(+) commit 612872cabf5be6f95d43d9a88eef38201ae8005d Author: Johannes Thumshirn Date: Mon Aug 17 13:03:02 2015 +0200 lpfc: Fix possible use-after-free and double free in lpfc_mbx_cmpl_rdp_page_a2() If the bf_get() call in lpfc_mbx_cmpl_rdp_page_a2() does succeeds, execution continues normally and mp gets kfree()d. If the subsequent call to lpfc_sli_issue_mbox() fails execution jumps to the error label where lpfc_mbuf_free() is called with mp->virt and mp->phys as function arguments. This is the use after free. Following the use after free mp gets kfree()d again which is a double free. Signed-off-by: Johannes Thumshirn Acked-by: James Smart Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_mbox.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 6f3d828f5bd72174c24789aba5d4ed036b60f44b Author: Anil Gurumurthy Date: Thu Aug 13 06:41:52 2015 -0400 bfa: Fix incorrect de-reference of pointer Signed-off-by: Anil Gurumurthy Tested-by: Sudarsana Kalluru Reviewed-by: Ewan D. Milne Signed-off-by: James Bottomley drivers/scsi/bfa/bfa_ioc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7f4d6343820af5c2dc3979e91d85e71e638cd3d Author: Anil Gurumurthy Date: Thu Aug 13 06:41:51 2015 -0400 bfa: Fix indentation Signed-off-by: Anil Gurumurthy Tested-by : Sudarasana Kalluru Reviewed-by: Ewan D. Milne Signed-off-by: James Bottomley drivers/scsi/bfa/bfa_ioc.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 0c416b54f29151a31999868d59c64ace11589d1b Author: Jordan Hargrave Date: Mon Jul 13 09:27:33 2015 -0500 scsi_transport_sas: Remove check for SAS expander when querying bay/enclosure IDs. Dell Server backplanes can report bay/enclosure IDs without an expander present. This patch allows the bay/enclosure IDs to be propagaged to sysfs.we Signed-off-by: Jordan Hargrave Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_transport_sas.c | 10 ---------- 1 file changed, 10 deletions(-) commit 2492fc09f0b90cd69cd9788d12c5c79d673adef3 Author: Tomas Winkler Date: Tue Jul 28 16:54:26 2015 +0300 scsi_debug: resp_request: remove unused variable Fixes the following warning In function ‘resp_requests’: drivers/scsi//scsi_debug.c:1432:15: warning: variable ‘want_dsense’ set but not used [-Wunused-but-set-variable] bool dsense, want_dsense; Signed-off-by: Tomas Winkler Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f2d3fd29ba6226218533ad3fbba2312ae122663f Author: Tomas Winkler Date: Tue Jul 28 16:54:25 2015 +0300 scsi_debug: fix REPORT LUNS Well Known LU The use case to report 'REPORT LUNS WLUN' described in scsi_debug documentation didn't work because: scsi_scan_host_selected() checks for: lun < shost->max_lun To fix this we set: max_lun = SCSI_W_LUN_REPORT_LUNS + 1; Signed-off-by: Tomas Winkler Acked-by: Douglas Gilbert Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 299b6c07ea134d4f9d7cb743194bf9c1941585b2 Author: Tomas Winkler Date: Tue Jul 28 16:54:24 2015 +0300 scsi_debug: schedule_resp fix input variable check The function should never be called with cmnd NULL so put a fat WARN there. Fix also smatch wraning: schedule_resp() warn: variable dereferenced before check 'cmnd' Signed-off-by: Tomas Winkler Acked-by: Douglas Gilbert Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 58a8635d5a1b49c4b87fb48969319e1ce77d3f03 Author: Tomas Winkler Date: Tue Jul 28 16:54:23 2015 +0300 scsi_debug: make dump_sector static fixes warning: warning: no previous prototype for ‘dump_sector’ Signed-off-by: Tomas Winkler Acked-by: Douglas Gilbert Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit de232af6703ff8e283559016c14a3273ea932878 Author: Tomas Winkler Date: Tue Jul 28 16:54:22 2015 +0300 scsi_debug: vfree is null safe so drop the check Signed-off-by: Tomas Winkler Acked-by: Douglas Gilbert Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 34d55434ba1f39093ea30cb770d70508fdb1edaa Author: Tomas Winkler Date: Tue Jul 28 16:54:21 2015 +0300 scsi_debug: use SCSI_W_LUN_REPORT_LUNS instead of SAM2_WLUN_REPORT_LUNS; use SCSI_W_LUN_REPORT_LUNS from scsi.h instead of localy defined SAM2_WLUN_REPORT_LUNS Signed-off-by: Tomas Winkler Acked-by: Douglas Gilbert Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit c1287970f4847a973830daf4076bc25929f3b2d9 Author: Tomas Winkler Date: Tue Jul 28 16:54:20 2015 +0300 scsi_debug: define pr_fmt() for consistent logging Use pr_fmt with both module name and __func__ Also drop few bare printk leftovers The log format should stay pretty much intact Signed-off-by: Tomas Winkler Acked-by: Douglas Gilbert Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/scsi_debug.c | 118 +++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 65 deletions(-) commit 008549f6e8a1dc4aeea4a8d64184909786b27713 Author: Calvin Owens Date: Thu Aug 13 18:48:10 2015 -0700 mpt2sas: Refcount fw_events and fix unsafe list usage The fw_event_work struct is concurrently referenced at shutdown, so add a refcount to protect it, and refactor the code to use it. Additionally, refactor _scsih_fw_event_cleanup_queue() such that it no longer iterates over the list without holding the lock, since _firmware_event_work() concurrently deletes items from the list. Signed-off-by: Calvin Owens Reviewed-by: Christoph Hellwig Reviewed-by: Nicholas Bellinger Tested-by: Chaitra Basappa Acked-by: Sreekanth Reddy Signed-off-by: James Bottomley drivers/scsi/mpt2sas/mpt2sas_scsih.c | 112 ++++++++++++++++++++++++++++------- 1 file changed, 91 insertions(+), 21 deletions(-) commit d224fe0d609734888af63656ddaf3a8352f0a7b5 Author: Calvin Owens Date: Thu Aug 13 18:48:09 2015 -0700 mpt2sas: Refcount sas_device objects and fix unsafe list usage These objects can be referenced concurrently throughout the driver, we need a way to make sure threads can't delete them out from under each other. This patch adds the refcount, and refactors the code to use it. Additionally, we cannot iterate over the sas_device_list without holding the lock, or we risk corrupting random memory if items are added or deleted as we iterate. This patch refactors _scsih_probe_sas() to use the sas_device_list in a safe way. Signed-off-by: Calvin Owens Reviewed-by: Christoph Hellwig Reviewed-by: Nicholas Bellinger Tested-by: Chaitra Basappa Acked-by: Sreekanth Reddy Signed-off-by: James Bottomley drivers/scsi/mpt2sas/mpt2sas_base.h | 22 +- drivers/scsi/mpt2sas/mpt2sas_scsih.c | 480 +++++++++++++++++++++---------- drivers/scsi/mpt2sas/mpt2sas_transport.c | 12 +- 3 files changed, 360 insertions(+), 154 deletions(-) commit 8901c18b6cafa51f7985f1031968bbfe9dc47735 Author: Daniel Drake Date: Wed Sep 2 16:10:34 2015 -0600 asus-nb-wmi: Add wapf=4 quirk for X456UA/X456UF These laptops boot with wifi as hard-blocked, with no obvious way to enable it. Using a quirk to set wapf=4 solves the problem. Signed-off-by: Daniel Drake Acked-by: Corentin Chary Signed-off-by: Darren Hart drivers/platform/x86/asus-nb-wmi.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 2cbd78244fb26a06f2b8fb006b32f133451df413 Author: Wanpeng Li Date: Thu Sep 3 22:07:39 2015 +0800 KVM: trace kvm_halt_poll_ns grow/shrink Tracepoint for dynamic halt_pool_ns, fired on every potential change. Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini include/trace/events/kvm.h | 30 ++++++++++++++++++++++++++++++ virt/kvm/kvm_main.c | 8 ++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) commit aca6ff29c4063a8d467cdee241e6b3bf7dc4a171 Author: Wanpeng Li Date: Thu Sep 3 22:07:38 2015 +0800 KVM: dynamic halt-polling There is a downside of always-poll since poll is still happened for idle vCPUs which can waste cpu usage. This patchset add the ability to adjust halt_poll_ns dynamically, to grow halt_poll_ns when shot halt is detected, and to shrink halt_poll_ns when long halt is detected. There are two new kernel parameters for changing the halt_poll_ns: halt_poll_ns_grow and halt_poll_ns_shrink. no-poll always-poll dynamic-poll ----------------------------------------------------------------------- Idle (nohz) vCPU %c0 0.15% 0.3% 0.2% Idle (250HZ) vCPU %c0 1.1% 4.6%~14% 1.2% TCP_RR latency 34us 27us 26.7us "Idle (X) vCPU %c0" is the percent of time the physical cpu spent in c0 over 60 seconds (each vCPU is pinned to a pCPU). (nohz) means the guest was tickless. (250HZ) means the guest was ticking at 250HZ. The big win is with ticking operating systems. Running the linux guest with nohz=off (and HZ=250), we save 3.4%~12.8% CPUs/second and get close to no-polling overhead levels by using the dynamic-poll. The savings should be even higher for higher frequency ticks. Suggested-by: David Matlack Signed-off-by: Wanpeng Li [Simplify the patch. - Paolo] Signed-off-by: Paolo Bonzini virt/kvm/kvm_main.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) commit 19020f8ab83de9dc5a9c8af1f321a526f38bbc40 Author: Wanpeng Li Date: Thu Sep 3 22:07:37 2015 +0800 KVM: make halt_poll_ns per-vCPU Change halt_poll_ns into per-VCPU variable, seeded from module parameter, to allow greater flexibility. Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 1 + virt/kvm/kvm_main.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit e8dd2d2d641cb2724ee10e76c0ad02e04289c017 Author: Valdis Kletnieks Date: Sat Aug 29 17:49:16 2015 -0400 Silence compiler warning in arch/x86/kvm/emulate.c Compiler warning: CC [M] arch/x86/kvm/emulate.o arch/x86/kvm/emulate.c: In function "__do_insn_fetch_bytes": arch/x86/kvm/emulate.c:814:9: warning: "linear" may be used uninitialized in this function [-Wmaybe-uninitialized] GCC is smart enough to realize that the inlined __linearize may return before setting the value of linear, but not smart enough to realize the same X86EMU_CONTINUE blocks actual use of the value. However, the value of 'linear' can only be set to one value, so hoisting the one line of code upwards makes GCC happy with the code. Reported-by: Aruna Hewapathirane Tested-by: Aruna Hewapathirane Signed-off-by: Valdis Kletnieks Signed-off-by: Paolo Bonzini arch/x86/kvm/emulate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit efbb288afc2f3079fa5e9308f4d9d06a390babdc Author: Alexander Kuleshov Date: Sun Sep 6 19:35:41 2015 +0600 kvm: compile process_smi_save_seg_64() only for x86_64 The process_smi_save_seg_64() function called only in the process_smi_save_state_64() if the CONFIG_X86_64 is set. This patch adds #ifdef CONFIG_X86_64 around process_smi_save_seg_64() to prevent following warning message: arch/x86/kvm/x86.c:5946:13: warning: ‘process_smi_save_seg_64’ defined but not used [-Wunused-function] static void process_smi_save_seg_64(struct kvm_vcpu *vcpu, char *buf, int n) ^ Signed-off-by: Alexander Kuleshov Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 2 ++ 1 file changed, 2 insertions(+) commit 29ecd66019047768080e8eeab4cd6582b28383a2 Author: Paolo Bonzini Date: Sun Sep 6 16:24:50 2015 +0200 KVM: x86: avoid uninitialized variable warning This does not show up on all compiler versions, so it sneaked into the first 4.3 pull request. The fix is to mimic the logic of the "print sptes" loop in the "fill array" loop. Then leaf and root can be both initialized unconditionally. Note that "leaf" now points to the first unused element of the array, not the last filled element. Reported-by: Linus Torvalds Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8f384c0177a03640312b9cb3638c998b32243b63 Author: Sowmini Varadhan Date: Thu Sep 3 16:24:52 2015 -0400 RDS: rds_conn_lookup() should factor in the struct net for a match Only return a conn if the rds_conn_net(conn) matches the struct net passed to rds_conn_lookup(). Fixes: 467fa15356ac ("RDS-TCP: Support multiple RDS-TCP listen endpoints, one per netns.") Signed-off-by: Sowmini Varadhan Acked-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/connection.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 42ea4457aea7aaeddf0c0b06724f297608f5e9d2 Author: Maciej S. Szmigiero Date: Thu Sep 3 21:38:30 2015 +0200 net: fec: normalize return value of pm_runtime_get_sync() in MDIO write If fec MDIO write method succeeds its return value comes from call to pm_runtime_get_sync(). But pm_runtime_get_sync() can also return 1. In case of Micrel KSZ9031 PHY this value will then be returned along the call chain of phy_write() -> ksz9031_extended_write() -> ksz9031_center_flp_timing() -> ksz9031_config_init() -> phy_init_hw() -> phy_attach_direct() -> phy_connect_direct(). Then phy_connect() will cast it into a pointer using ERR_PTR(), which then fec_enet_mii_probe() will try to dereference resulting in an oops. Fix it by normalizing return value of pm_runtime_get_sync() to be zero if positive in MDIO write method. Fixes: 8fff755e9f8d ("net: fec: Ensure clocks are enabled while using mdio bus") Signed-off-by: Maciej Szmigiero Acked-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0890cf6cb6ab1af650025670b1a839671a9a3fcb Author: Jiri Pirko Date: Thu Sep 3 14:04:17 2015 +0200 switchdev: fix return value of switchdev_port_fdb_dump in case of error switchdev_port_fdb_dump is used as .ndo_fdb_dump. Its return value is idx, so we cannot return errval. Fixes: 45d4122ca7cd ("switchdev: add support for fdb add/del/dump via switchdev_port_obj ops.") Signed-off-by: Jiri Pirko Acked-by: Sridhar Samudrala Acked-by: Scott Feldman Signed-off-by: David S. Miller net/switchdev/switchdev.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit b65888796b72b677928527b17eeb8e935b767146 Author: Sathya Perla Date: Thu Sep 3 07:41:53 2015 -0400 be2net: Revert "make the RX_FILTER command asynchronous" commit The be_cmd_rx_filter() routine sends a non-embedded cmd to the FW and used a pre-allocated dma memory to hold the cmd payload. This worked fine when this cmd was synchronous. This cmd was changed to asynchronous mode by the commit 8af65c2f4("make the RX_FILTER command asynchronous"). So now when there are two quick invocations of this cmd, the 2nd request may end up overwriting the first request, causing FW cmd corruption. This patch reverts the offending commit and hence fixes the regression. Fixes: 8af65c2f4("be2net: make the RX_FILTER command asynchronous") Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53cfd053e4d82b46dddc5d3522700263016e3156 Merge: bd516bd 9cf94ea Author: David S. Miller Date: Sat Sep 5 17:36:30 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf Conflicts: include/net/netfilter/nf_conntrack.h The conflict was an overlap between changing the type of the zone argument to nf_ct_tmpl_alloc() whilst exporting nf_ct_tmpl_free. Pablo Neira Ayuso says: ==================== Netfilter fixes for net The following patchset contains Netfilter fixes for net, they are: 1) Oneliner to restore maps in nf_tables since we support addressing registers at 32 bits level. 2) Restore previous default behaviour in bridge netfilter when CONFIG_IPV6=n, oneliner from Bernhard Thaler. 3) Out of bound access in ipset hash:net* set types, reported by Dave Jones' KASan utility, patch from Jozsef Kadlecsik. 4) Fix ipset compilation with gcc 4.4.7 related to C99 initialization of unnamed unions, patch from Elad Raz. 5) Add a workaround to address inconsistent endianess in the res_id field of nfnetlink batch messages, reported by Florian Westphal. 6) Fix error paths of CT/synproxy since the conntrack template was moved to use kmalloc, patch from Daniel Borkmann. All of them look good to me to reach 4.2, I can route this to -stable myself too, just let me know what you prefer. ==================== Signed-off-by: David S. Miller commit 7d9071a095023cd1db8fa18fa0d648dc1a5210e0 Merge: bd77966 397d425 Author: Linus Torvalds Date: Sat Sep 5 20:34:28 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs updates from Al Viro: "In this one: - d_move fixes (Eric Biederman) - UFS fixes (me; locking is mostly sane now, a bunch of bugs in error handling ought to be fixed) - switch of sb_writers to percpu rwsem (Oleg Nesterov) - superblock scalability (Josef Bacik and Dave Chinner) - swapon(2) race fix (Hugh Dickins)" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (65 commits) vfs: Test for and handle paths that are unreachable from their mnt_root dcache: Reduce the scope of i_lock in d_splice_alias dcache: Handle escaped paths in prepend_path mm: fix potential data race in SyS_swapon inode: don't softlockup when evicting inodes inode: rename i_wb_list to i_io_list sync: serialise per-superblock sync operations inode: convert inode_sb_list_lock to per-sb inode: add hlist_fake to avoid the inode hash lock in evict writeback: plug writeback at a high level change sb_writers to use percpu_rw_semaphore shift percpu_counter_destroy() into destroy_super_work() percpu-rwsem: kill CONFIG_PERCPU_RWSEM percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire() percpu-rwsem: introduce percpu_down_read_trylock() document rwsem_release() in sb_wait_write() fix the broken lockdep logic in __sb_start_write() introduce __sb_writers_{acquired,release}() helpers ufs_inode_get{frag,block}(): get rid of 'phys' argument ufs_getfrag_block(): tidy up a bit ... commit bd779669945ed9982890da789ad32e3bd0d41f14 Merge: 9cfcc65 b5ac1fb2 Author: Linus Torvalds Date: Sat Sep 5 20:33:10 2015 -0700 Merge tag 'for-linus-4.3-merge-window-part-1' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs Pull 9p updates from Eric Van Hensbergen: "Just a few cleanups for 4.3 merge window for the 9p file system. I've gotten several more over the past week, but this group has been in for-next for at least a couple of weeks so I figured I'd push them first while I test the rest. Most of the ones not in this set are bug-fixes anyways so I could hold them for rc1" * tag 'for-linus-4.3-merge-window-part-1' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs: 9p: fix return code of read() when count is 0 9p: remove unused option Opt_trans commit 9cfcc658da9693f65e7224e8329e40ada2f3c699 Merge: e3a98ac 50ef28a Author: Linus Torvalds Date: Sat Sep 5 18:21:14 2015 -0700 Merge tag 'media/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media updates from Mauro Carvalho Chehab: - new DVB frontend drivers: ascot2e, cxd2841er, horus3a, lnbh25 - new HDMI capture driver: tc358743 - new driver for NetUP DVB new boards (netup_unidvb) - IR support for DVBSky cards (smipcie-ir) - Coda driver has gain macroblock tiling support - Renesas R-Car gains JPEG codec driver - new DVB platform driver for STi boards: c8sectpfe - added documentation for the media core kABI to device-drivers DocBook - lots of driver fixups, cleanups and improvements * tag 'media/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (297 commits) [media] c8sectpfe: Remove select on undefined LIBELF_32 [media] i2c: fix platform_no_drv_owner.cocci warnings [media] cx231xx: Use wake_up_interruptible() instead of wake_up_interruptible_nr() [media] tc358743: only queue subdev notifications if devnode is set [media] tc358743: add missing Kconfig dependency/select [media] c8sectpfe: Use %pad to print 'dma_addr_t' [media] DocBook media: Fix typo "the the" in xml files [media] tc358743: make reset gpio optional [media] tc358743: set direction of reset gpio using devm_gpiod_get [media] dvbdev: document most of the functions/data structs [media] dvb_frontend.h: document the struct dvb_frontend [media] dvb-frontend.h: document struct dtv_frontend_properties [media] dvb-frontend.h: document struct dvb_frontend_ops [media] dvb: Use DVBFE_ALGO_HW where applicable [media] dvb_frontend.h: document struct analog_demod_ops [media] dvb_frontend.h: Document struct dvb_tuner_ops [media] Docbook: Document struct analog_parameters [media] dvb_frontend.h: get rid of dvbfe_modcod [media] add documentation for struct dvb_tuner_info [media] dvb_frontend: document dvb_frontend_tune_settings ... commit e3a98ac47698bf1c1e4e6fae72afc9866953fce5 Merge: 2a013e3 86e488a Author: Linus Torvalds Date: Sat Sep 5 18:11:04 2015 -0700 Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration Pull mailbox updates from Jassi Brar: "Mainly we move from jiffy based timer to HRTIMER for finer control over polling. Then a controller reduces its polling period from 10 to 1ms" * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration: mailbox: arm_mhu: reduce txpoll_period from 10ms to 1 ms mailbox: switch to hrtimer for tx_complete polling mailbox: Drop owner assignment from platform_driver commit 2a013e37ce691a7c072df27b35e9790fc8f5a82f Merge: 1744771 e89c6fd Author: Linus Torvalds Date: Sat Sep 5 17:52:22 2015 -0700 Merge tag 'md/4.3' of git://neil.brown.name/md Pull md updates from Neil Brown: - an assortment of little fixes, several for minor races only likely to be hit during testing - further cluster-md-raid1 development, not ready for real use yet. - new RAID6 syndrome code for ARM NEON - fix a race where a write can return before failure of one device is properly recorded in metadata, so an immediate crash might result in that write being lost. * tag 'md/4.3' of git://neil.brown.name/md: (33 commits) md/raid5: ensure device failure recorded before write request returns. md/raid5: use bio_list for the list of bios to return. md/raid10: ensure device failure recorded before write request returns. md/raid1: ensure device failure recorded before write request returns. md-cluster: remove inappropriate try_module_get from join() md: extend spinlock protection in register_md_cluster_operations md-cluster: Read the disk bitmap sb and check if it needs recovery md-cluster: only call complete(&cinfo->completion) when node join cluster md-cluster: add missed lockres_free md-cluster: remove the unused sb_lock md-cluster: init suspend_list and suspend_lock early in join md-cluster: add the error check if failed to get dlm lock md-cluster: init completion within lockres_init md-cluster: fix deadlock issue on message lock md-cluster: transfer the resync ownership to another node md-cluster: split recover_slot for future code reuse md-cluster: use %pU to print UUIDs md: setup safemode_timer before it's being used md/raid5: handle possible race as reshape completes. md: sync sync_completed has correct value as recovery finishes. ... commit bd516bd1feeb3890502178a74228ec05271f2b6d Author: Sudip Mukherjee Date: Thu Sep 3 11:30:30 2015 +0530 net: wan: sbni: fix device usage count dev_get_by_name() will increment the usage count if the matching device is found. But we were not decrementing the count if we have got the device and the device is non-active. Signed-off-by: Sudip Mukherjee Signed-off-by: David S. Miller drivers/net/wan/sbni.c | 2 ++ 1 file changed, 2 insertions(+) commit 25b4a44c19c83d98e8c0807a7ede07c1f28eab8b Author: Richard Laing Date: Thu Sep 3 13:52:31 2015 +1200 net/ipv6: Correct PIM6 mrt_lock handling In the IPv6 multicast routing code the mrt_lock was not being released correctly in the MFC iterator, as a result adding or deleting a MIF would cause a hang because the mrt_lock could not be acquired. This fix is a copy of the code for the IPv4 case and ensures that the lock is released correctly. Signed-off-by: Richard Laing Acked-by: Cong Wang Signed-off-by: David S. Miller net/ipv6/ip6mr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17447717a3266965e257d3eae79d89539ce3ec0a Merge: 2236597 a457974 Author: Linus Torvalds Date: Sat Sep 5 17:26:24 2015 -0700 Merge tag 'nfsd-4.3' of git://linux-nfs.org/~bfields/linux Pull nfsd updates from Bruce Fields: "Nothing major, but: - Add Jeff Layton as an nfsd co-maintainer: no change to existing practice, just an acknowledgement of the status quo. - Two patches ("nfsd: ensure that...") for a race overlooked by the state locking rewrite, causing a crash noticed by multiple users. - Lots of smaller bugfixes all over from Kinglong Mee. - From Jeff, some cleanup of server rpc code in preparation for possible shift of nfsd threads to workqueues" * tag 'nfsd-4.3' of git://linux-nfs.org/~bfields/linux: (52 commits) nfsd: deal with DELEGRETURN racing with CB_RECALL nfsd: return CLID_INUSE for unexpected SETCLIENTID_CONFIRM case nfsd: ensure that delegation stateid hash references are only put once nfsd: ensure that the ol stateid hash reference is only put once net: sunrpc: fix tracepoint Warning: unknown op '->' nfsd: allow more than one laundry job to run at a time nfsd: don't WARN/backtrace for invalid container deployment. fs: fix fs/locks.c kernel-doc warning nfsd: Add Jeff Layton as co-maintainer NFSD: Return word2 bitmask if setting security label in OPEN/CREATE NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1 nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL. nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug NFSD: Store parent's stat in a separate value nfsd: Fix two typos in comments lockd: NLM grace period shouldn't block NFSv4 opens nfsd: include linux/nfs4.h in export.h sunrpc: Switch to using hash list instead single list sunrpc/nfsd: Remove redundant code by exports seq_operations functions sunrpc: Store cache_detail in seq_file's private directly ... commit a394d635193b641f2c86ead5ada5b115d57c51f8 Author: Guenter Roeck Date: Sun Sep 6 01:46:54 2015 +0300 spi: Fix documentation of spi_alloc_master() Actually, spi_master_put() after spi_alloc_master() must _not_ be followed by kfree(). The memory is already freed with the call to spi_master_put() through spi_master_class, which registers a release function. Calling both spi_master_put() and kfree() results in often nasty (and delayed) crashes elsewhere in the kernel, often in the networking stack. This reverts commit eb4af0f5349235df2e4a5057a72fc8962d00308a. Link to patch and concerns: https://lkml.org/lkml/2012/9/3/269 or http://lkml.iu.edu/hypermail/linux/kernel/1209.0/00790.html Alexey Klimov: This revert becomes valid after 94c69f765f1b4a658d96905ec59928e3e3e07e6a when spi-imx.c has been fixed and there is no need to call kfree() so comment for spi_alloc_master() should be fixed. Signed-off-by: Guenter Roeck Signed-off-by: Alexey Klimov Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 22365979ab15f8500254cb90037b0b4c17554739 Merge: 6c0f568 3a9508b Author: Linus Torvalds Date: Sat Sep 5 15:14:43 2015 -0700 Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs updates from Chris Mason: "This has Jeff Mahoney's long standing trim patch that fixes corners where trims were missing. Omar has some raid5/6 fixes, especially for using scrub and device replace when devices are missing. Zhao Lie continues cleaning and fixing things, this series fixes some really hard to hit corners in xfstests. I had to pull it last merge window due to some deadlocks, but those are now resolved. I added support for Tejun's new blkio controllers. It seems to work well for single devices, we'll expand to multi-device as well" * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (47 commits) btrfs: fix compile when block cgroups are not enabled Btrfs: fix file read corruption after extent cloning and fsync Btrfs: check if previous transaction aborted to avoid fs corruption btrfs: use __GFP_NOFAIL in alloc_btrfs_bio btrfs: Prevent from early transaction abort btrfs: Remove unused arguments in tree-log.c btrfs: Remove useless condition in start_log_trans() Btrfs: add support for blkio controllers Btrfs: remove unused mutex from struct 'btrfs_fs_info' Btrfs: fix parity scrub of RAID 5/6 with missing device Btrfs: fix device replace of a missing RAID 5/6 device Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operation Btrfs: count devices correctly in readahead during RAID 5/6 replace Btrfs: remove misleading handling of missing device scrub btrfs: fix clone / extent-same deadlocks Btrfs: fix defrag to merge tail file extent Btrfs: fix warning in backref walking btrfs: Add WARN_ON() for double lock in btrfs_tree_lock() btrfs: Remove root argument in extent_data_ref_count() btrfs: Fix wrong comment of btrfs_alloc_tree_block() ... commit 6c0f568e84a3cfc775682311d65205462c3f3bc1 Merge: c821990 559ec2f Author: Linus Torvalds Date: Sat Sep 5 14:27:38 2015 -0700 Merge branch 'akpm' (patches from Andrew) Merge patch-bomb from Andrew Morton: - a few misc things - Andy's "ambient capabilities" - fs/nofity updates - the ocfs2 queue - kernel/watchdog.c updates and feature work. - some of MM. Includes Andrea's userfaultfd feature. [ Hadn't noticed that userfaultfd was 'default y' when applying the patches, so that got fixed in this merge instead. We do _not_ mark new features that nobody uses yet 'default y' - Linus ] * emailed patches from Andrew Morton : (118 commits) mm/hugetlb.c: make vma_has_reserves() return bool mm/madvise.c: make madvise_behaviour_valid() return bool mm/memory.c: make tlb_next_batch() return bool mm/dmapool.c: change is_page_busy() return from int to bool mm: remove struct node_active_region mremap: simplify the "overlap" check in mremap_to() mremap: don't do uneccesary checks if new_len == old_len mremap: don't do mm_populate(new_addr) on failure mm: move ->mremap() from file_operations to vm_operations_struct mremap: don't leak new_vma if f_op->mremap() fails mm/hugetlb.c: make vma_shareable() return bool mm: make GUP handle pfn mapping unless FOLL_GET is requested mm: fix status code which move_pages() returns for zero page mm: memcontrol: bring back the VM_BUG_ON() in mem_cgroup_swapout() genalloc: add support of multiple gen_pools per device genalloc: add name arg to gen_pool_get() and devm_gen_pool_create() mm/memblock: WARN_ON when nid differs from overlap region Documentation/features/vm: add feature description and arch support status for batched TLB flush after unmap mm: defer flush of writable TLB entries mm: send one IPI per CPU to TLB flush all entries after unmapping pages ... commit c82199061009d1561e31e17fca5e47a87cb7ff4c Author: Eric Dumazet Date: Fri Aug 28 19:42:30 2015 -0700 task_work: remove fifo ordering guarantee In commit f341861fb0b ("task_work: add a scheduling point in task_work_run()") I fixed a latency problem adding a cond_resched() call. Later, commit ac3d0da8f329 added yet another loop to reverse a list, bringing back the latency spike : I've seen in some cases this loop taking 275 ms, if for example a process with 2,000,000 files is killed. We could add yet another cond_resched() in the reverse loop, or we can simply remove the reversal, as I do not think anything would depend on order of task_work_add() submitted works. Fixes: ac3d0da8f329 ("task_work: Make task_work_add() lockless") Signed-off-by: Eric Dumazet Reported-by: Maciej Żenczykowski Acked-by: Al Viro Signed-off-by: Linus Torvalds kernel/task_work.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit ade9c1a47c811a7ae1c874882ad9178af1ed1098 Author: Fabio Estevam Date: Wed Feb 19 13:38:13 2014 -0800 Input: imx_keypad - remove obsolete comment Since commit 81e8f2bc (Input: imx_keypad - add pm suspend and resume support) the imx_keypad driver supports power management, so let's remove the obsolete comment. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov drivers/input/keyboard/imx_keypad.c | 2 -- 1 file changed, 2 deletions(-) commit 9a436d524d3533cd15ed5a189d2237ff1e4e5343 Author: Haibo Chen Date: Sat Sep 5 11:31:21 2015 -0700 Input: touchscreen - add imx6ul_tsc driver support Freescale i.MX6UL contains a internal touchscreen controller, this patch add a driver to support this controller. Signed-off-by: Haibo Chen Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/imx6ul_tsc.txt | 36 ++ drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/imx6ul_tsc.c | 523 +++++++++++++++++++++ 4 files changed, 572 insertions(+) commit 48ead50c1dd8e5cdb7ead067558a834c1e895e6e Author: Sanchayan Maity Date: Sat Sep 5 10:32:09 2015 -0700 Input: Add touchscreen support for Colibri VF50 The Colibri Vybrid VF50 module supports 4-wire touchscreens using FETs and ADC inputs. This driver uses the IIO consumer interface and relies on the vf610_adc driver based on the IIO framework. Signed-off-by: Sanchayan Maity Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/colibri-vf50-ts.txt | 36 ++ drivers/input/touchscreen/Kconfig | 12 + drivers/input/touchscreen/Makefile | 1 + drivers/input/touchscreen/colibri-vf50-ts.c | 386 +++++++++++++++++++++ 4 files changed, 435 insertions(+) commit f5d75341fac6033f6afac900da110cc78e06d40d Author: Takashi Iwai Date: Sat Sep 5 10:29:09 2015 -0700 Input: i8042 - lower log level for "no controller" message Nowadays the machines without i8042 controller is popular, and no need to print "No controller found" message in the error log level, which annoys at booting in quiet mode. Let's lower it info level. Signed-off-by: Takashi Iwai Signed-off-by: Dmitry Torokhov drivers/input/serio/i8042.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f1b2f77646fc0ef2f36fc554f5722a1381d0892 Author: Mitja Spes Date: Wed Sep 2 10:02:29 2015 +0200 rtc: abx80x: fix RTC write bit Fix RTC write bit as per application manual Cc: stable@vger.kernel.org # 4.1+ Signed-off-by: Mitja Spes Signed-off-by: Alexandre Belloni drivers/rtc/rtc-abx80x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a67e93153f03a8d205727c0aeacb5524a414f77 Author: Fabio Estevam Date: Fri Sep 4 08:58:05 2015 -0300 rtc: ab8500: Add a sentinel to ab85xx_rtc_ids[] Add a sentinel to ab85xx_rtc_ids[] in order to fix the following error: drivers/rtc/rtc-ab8500: struct platform_device_id is 24 bytes. The last of 2 is: 0x61 0x62 0x38 0x35 0x34 0x30 0x2d 0x72 0x74 0x63 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x8c FATAL: drivers/rtc/rtc-ab8500: struct platform_device_id is not terminated with a NULL entry! Reported-by: Andrey Ryabinin Reported-by: Olof's autobuilder Signed-off-by: Fabio Estevam Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ab8500.c | 1 + 1 file changed, 1 insertion(+) commit d78908d9717b627a261b1bfe6feb67181e12752e Author: Fabio Estevam Date: Mon Aug 10 09:47:45 2015 -0300 rtc: ds1374: Remove unused variable Remove unused variable 'res' and fix the following build warning: drivers/rtc/rtc-ds1374.c:667:6: warning: unused variable 'res' [-Wunused-variable] Reported-by: Olof's autobuilder Signed-off-by: Fabio Estevam Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1374.c | 2 -- 1 file changed, 2 deletions(-) commit 73798d5c41fdb434ccbeeec76afc8106869a98c3 Author: Javier Martinez Canillas Date: Thu Aug 27 13:52:02 2015 +0200 rtc: Fix module autoload for OF platform drivers These platform drivers have a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Javier Martinez Canillas Acked-by: Andrew Lunn Signed-off-by: Alexandre Belloni drivers/rtc/rtc-armada38x.c | 1 + drivers/rtc/rtc-coh901331.c | 1 + drivers/rtc/rtc-da9063.c | 1 + drivers/rtc/rtc-moxart.c | 1 + drivers/rtc/rtc-mpc5121.c | 1 + drivers/rtc/rtc-mt6397.c | 1 + drivers/rtc/rtc-mv.c | 1 + drivers/rtc/rtc-vt8500.c | 1 + 8 files changed, 8 insertions(+) commit 63074cc3d4b8367aa6d9dc5520b88ca6557d32fa Author: Javier Martinez Canillas Date: Thu Aug 27 12:34:32 2015 +0200 rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers These platform drivers have a platform device ID table but the module alias information is not created so module autoloading will not work. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ab8500.c | 1 + drivers/rtc/rtc-max8997.c | 1 + drivers/rtc/rtc-s5m.c | 1 + 3 files changed, 3 insertions(+) commit 399cf0f63f6f24d7a837fbfbc801010cb6e77579 Author: Keerthy Date: Tue Aug 18 15:11:16 2015 +0530 rtc: omap: Add external clock enabling support Configure the clock source to external clock if available. External clock is preferred as it can be ticking during suspend. Signed-off-by: Keerthy Acked-by: Tony Lindgren Signed-off-by: Alexandre Belloni drivers/rtc/rtc-omap.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 532409aa1ba8b69d5a3dea159d4b1bd9adbd7a46 Author: Keerthy Date: Tue Aug 18 15:11:15 2015 +0530 rtc: omap: Add internal clock enabling support The rtc can be clocked by an internal 32K clock. Adding the support to enable the same. Signed-off-by: Keerthy Acked-by: Tony Lindgren Signed-off-by: Alexandre Belloni drivers/rtc/rtc-omap.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit fff51e771eafc3b4fa6daf1372fd4a4023bb402b Author: Keerthy Date: Tue Aug 18 15:11:14 2015 +0530 ARM: dts: AM437x: Add the internal and external clock nodes for rtc rtc can either be supplied from internal 32k clock or external crystal generated 32k clock. Internal clock is SOC specific and the external clock is board dependent. Adding the corresponding nodes. Signed-off-by: Keerthy Acked-by: Tony Lindgren Signed-off-by: Alexandre Belloni Documentation/devicetree/bindings/rtc/rtc-omap.txt | 4 ++++ arch/arm/boot/dts/am4372.dtsi | 2 ++ arch/arm/boot/dts/am437x-gp-evm.dts | 13 +++++++++++++ arch/arm/boot/dts/am437x-idk-evm.dts | 9 +++++++++ arch/arm/boot/dts/am437x-sk-evm.dts | 9 +++++++++ 5 files changed, 37 insertions(+) commit ff02c0444b83201ff76cc49deccac8cf2bffc7bc Author: Joonyoung Shim Date: Fri Aug 21 18:43:41 2015 +0900 rtc: s5m: fix to update ctrl register According to datasheet, the S2MPS13X and S2MPS14X should update write buffer via setting WUDR bit to high after ctrl register is written. If not, ALARM interrupt of rtc-s5m doesn't happen first time when i use tools/testing/selftests/timers/rtctest.c test program and hour format is used to 12 hour mode in Odroid-XU3 board. One more issue is the RTC doesn't keep time on Odroid-XU3 board when i turn on board after power off even if RTC battery is connected. It can be solved as setting WUDR & RUDR bits to high at the same time after RTC_CTRL register is written. It's same with condition of only writing ALARM registers, so this is for only S2MPS14 and we should set WUDR & A_UDR bits to high on S2MPS13. I can't find any reasonable description about this like fix from datasheet, but can find similar codes from rtc driver source of hardkernel kernel and vendor kernel. Signed-off-by: Joonyoung Shim Cc: # v3.16 Reviewed-by: Krzysztof Kozlowski Tested-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s5m.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 11143c19eb57a8aee4335e57b21f2897b9fff294 Author: Suneel Garapati Date: Wed Aug 19 15:23:22 2015 +0530 rtc: add xilinx zynqmp rtc driver Add support for RTC controller found on Xilinx Zynq Ultrascale+ MPSoC platform. Signed-off-by: Suneel Garapati Acked-by: Moritz Fischer Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 7 ++ drivers/rtc/Makefile | 1 + drivers/rtc/rtc-zynqmp.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 287 insertions(+) commit 12ece40d9196e01961192fc25cfdaf22392520de Author: Suneel Garapati Date: Wed Aug 19 15:23:21 2015 +0530 devicetree: bindings: rtc: add bindings for xilinx zynqmp rtc adds file for description on device node bindings for RTC found on Xilinx Zynq Ultrascale+ MPSoC. Signed-off-by: Suneel Garapati Signed-off-by: Alexandre Belloni Documentation/devicetree/bindings/rtc/xlnx-rtc.txt | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit a038c3aa9f3afe9ab97a75827789859fb4af5767 Author: Bibek Basu Date: Fri Aug 14 20:44:02 2015 +0200 rtc: as3722: correct month value The RTC month value is 1-indexed, but the kernel assumes it is 0-indexed. This may result in the RTC not rolling over correctly. Signed-off-by: Bibek Basu Signed-off-by: Felix Janda Signed-off-by: Alexandre Belloni drivers/rtc/rtc-as3722.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e66ce07a9692f492580820640b446971dff97a74 Author: Rob Herring Date: Mon Jun 1 07:53:01 2015 -0500 ARM: config: Switch PXA27x platforms to use PXA RTC driver With the SA1100 and PXA RTC drivers be mutually exclusive and no longer sharing hardware, PXA27x/PXA3xx platforms must use the PXA RTC driver as the SA1100 platform device is no longer registered. This change should be almost transparent to userspace. Former users of pxa-rtc should be aware that 2 RTCs will be available on their kernels, rtc0 being sa1100-rtc and rtc1 being pxa-rtc. Any userspace relying on the fact that rtc0 was pxa-rtc should be fixed. As a consequence: - the first reboot after the switch will have the wrong time, - on dual boot platform where the other OS programs some logic into the sa1100 rtc IP, a lack of fix in userspace, ie. a kernel changing sa1100-rtc thinking it is pxa-rtc could have dire consequence, such as wiping the other OS data partition. (Thanks to Robert Jarmik for help on the above commit text.) Signed-off-by: Rob Herring Acked-by: Robert Jarzmik Cc: Daniel Mack Cc: Haojian Zhuang Cc: Sergey Lapin Cc: Russell King Cc: Mike Rapoport Cc: Philipp Zabel Signed-off-by: Alexandre Belloni arch/arm/configs/cm_x2xx_defconfig | 2 +- arch/arm/configs/em_x270_defconfig | 2 +- arch/arm/configs/magician_defconfig | 2 +- arch/arm/configs/palmz72_defconfig | 2 +- arch/arm/configs/pcm027_defconfig | 2 +- arch/arm/configs/trizeps4_defconfig | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit 7b758ef4440cd581e8207d762af635c644c85f81 Author: Rob Herring Date: Tue Feb 3 14:54:01 2015 -0600 ARM: mmp: remove unused RTC register definitions Now that register definitions have been moved to the driver, regs-rtc.h is no longer used and can be removed. Signed-off-by: Rob Herring Cc: Eric Miao Cc: Haojian Zhuang Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Alexandre Belloni arch/arm/mach-mmp/include/mach/regs-rtc.h | 23 ----------------------- 1 file changed, 23 deletions(-) commit d6679c48c13ce896a428d392ffe8a62ad6a75b77 Author: Rob Herring Date: Tue Feb 3 14:46:29 2015 -0600 ARM: sa1100: remove unused RTC register definitions Now that register definitions have been moved to the driver, we can remove them from machine specific code. Signed-off-by: Rob Herring Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Alexandre Belloni arch/arm/mach-sa1100/include/mach/SA-1100.h | 34 ----------------------------- 1 file changed, 34 deletions(-) commit 90d0ae8e9583355725583e9d1ff0ebdc97936f39 Author: Rob Herring Date: Tue Feb 3 14:44:51 2015 -0600 rtc: sa1100/pxa: convert to run-time register mapping SA1100 and PXA differ only in register offsets which are currently hardcoded in a machine specific header. Some arm64 platforms (PXA1928) have this RTC block as well (and not the PXA270 variant). Convert the driver to use ioremap and set the register offsets dynamically. Since we are touching all the register accesses, convert them all to readl_relaxed/writel_relaxed. Signed-off-by: Rob Herring Acked-by: Robert Jarzmik Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: rtc-linux@googlegroups.com Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pxa.c | 4 +++ drivers/rtc/rtc-sa1100.c | 82 ++++++++++++++++++++++++++++++++---------------- drivers/rtc/rtc-sa1100.h | 4 +++ 3 files changed, 63 insertions(+), 27 deletions(-) commit 2c4fabec8790384b91473aa3d0d28d4407168ef9 Author: Rob Herring Date: Mon Feb 2 17:50:32 2015 -0600 ARM: pxa: add memory resource to SA1100 RTC device The drivers for the SA1100 and PXA RTCs are now mutually exclusive, so add the memory resource for the sa1100-rtc device. Since the memory resource is already present in the pxa_rtc_resources, that makes sa1100_rtc_resources and pxa_rtc_resources equivalent, so use pxa_rtc_resources for both devices and remove the duplicate sa1100_rtc_resources. Signed-off-by: Rob Herring Cc: Daniel Mack Cc: Haojian Zhuang Acked-by: Robert Jarzmik Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Alexandre Belloni arch/arm/mach-pxa/devices.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit 3cdf4ad9633e3ca616617e76b46915c02cba426b Author: Rob Herring Date: Wed May 13 09:20:04 2015 -0500 rtc: pxa: convert to use shared sa1100 functions Currently, the rtc-sa1100 and rtc-pxa drivers co-exist as rtc-pxa has a superset of functionality. Having 2 drivers sharing the same memory resource is not allowed by the driver model if resources are properly declared. This problem was avoided by not adding memory resources to the SA1100 RTC driver, but that prevents clean-up of the SA1100 driver. This commit converts the PXA RTC to use the exported SA1100 RTC functions. Now the sa1100-rtc and pxa-rtc devices are mutually exclusive, so we must remove the sa1100-rtc from pxa27x and pxa3xx. Signed-off-by: Rob Herring Cc: Daniel Mack Cc: Haojian Zhuang Cc: Robert Jarzmik Cc: Russell King Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: linux-arm-kernel@lists.infradead.org Cc: rtc-linux@googlegroups.com Signed-off-by: Alexandre Belloni arch/arm/mach-pxa/pxa27x.c | 1 - arch/arm/mach-pxa/pxa3xx.c | 1 - drivers/rtc/Kconfig | 12 ++++++----- drivers/rtc/rtc-pxa.c | 51 ++++++++++++++++++++++------------------------ 4 files changed, 31 insertions(+), 34 deletions(-) commit 8c0961ba7c9356186a0606a391f08e2ecb491a57 Author: Rob Herring Date: Tue May 12 16:23:23 2015 -0500 rtc: sa1100: prepare to share sa1100_rtc_ops Factor out the RTC initialization from the platform device specific parts in order to share the RTC device ops with other drivers. Specifically, it will be shared with rtc-pxa driver. Signed-off-by: Rob Herring Cc: Robert Jarzmik Cc: Russell King Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: rtc-linux@googlegroups.com Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sa1100.c | 59 ++++++++++++++++++++++++------------------------ drivers/rtc/rtc-sa1100.h | 19 ++++++++++++++++ 2 files changed, 49 insertions(+), 29 deletions(-) commit dc2280ebf45bfa4fbc4b1588a6642aa33454a9b8 Author: Wang Dongsheng Date: Wed Aug 12 17:14:13 2015 +0800 rtc: ds3232: fix WARNING trace in resume function If ds3232 work on some platform that is not implementing irq_set_wake, ds3232 will get a WARNING trace in resume. So fix ds3232->suspended state to false when irq_set_irq_wake return error. WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604 irq_set_irq_wake+0x4b/0x8c() Unbalanced IRQ 201 wake disable Modules linked in: CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25 [<800107d9>] (unwind_backtrace+0x1/0x88) from [<8000e4ef>] (show_stack+0xb/0xc) [<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] (dump_stack+0x4d/0x60) [<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>] (warn_slowpath_common+0x45/0x64) [<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>] (warn_slowpath_fmt+0x1b/0x24) [<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) [<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>] (ds3232_resume+0x2d/0x36) [<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) [<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>] (device_resume+0x7b/0xa2) [<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>] (dpm_resume+0xbb/0x19c) [<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>] (dpm_resume_end+0x9/0x12) [<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) [<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>] (pm_suspend+0x71/0x128) [<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>] (state_store+0x6d/0x80) [<80037449>] (state_store+0x6d/0x80) from [<800af4d5>] (sysfs_write_file+0x9f/0xde) [<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>] (vfs_write+0x7b/0x104) [<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>] (SyS_write+0x27/0x48) [<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>] (ret_fast_syscall+0x1/0x44) Signed-off-by: Wang Dongsheng Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds3232.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 467e1436ba85f78b8c4610c4549eb255a8211c42 Author: Niranjan Sivakumar Date: Sat Sep 5 18:20:35 2015 +0200 ALSA: hda - Fix white noise on Dell M3800 The M3800 is very minor workstation variant of the XPS 15 which has already been patched for this issue. I figured it's probably more important for this version of the laptop to be patched than the regular XPS as Dell sells is pre-configured with Ubuntu to be used as a Linux workstation. I have tested the patch on my the hardware on Linux 4.2.0. Signed-off-by: Niranjan Sivakumar Cc: # v4.1+ Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) commit a161574e200ae63a5042120e0d8c36830e81bde3 Author: Takashi Iwai Date: Thu Aug 13 18:05:06 2015 +0200 ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437 It turned out that the machine has a bass speaker, so take a correct fixup entry. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb148bdeb0ab16fc0ae8009799471e4d7180073b Author: Takashi Iwai Date: Thu Aug 13 18:02:39 2015 +0200 ALSA: hda - Enable headphone jack detect on old Fujitsu laptops According to the bug report, FSC Amilo laptops with ALC880 can detect the headphone jack but currently the driver disables it. It's partly intentionally, as non-working jack detect was reported in the past. Let's enable now. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501 Cc: Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 27b15e31dbc5f4d7fc93e6acaa898cbfd1cf74ea Author: Joonyoung Shim Date: Tue Aug 11 20:28:20 2015 +0900 rtc: s3c: remove unnecessary NULL assignment It's unnecessary the code that assigns info->rtc_clk to NULL in s3c_rtc_remove. Signed-off-by: Joonyoung Shim Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s3c.c | 1 - 1 file changed, 1 deletion(-) commit 7f23a93661eb5caa373f75a145cec14331a8caaa Author: Joonyoung Shim Date: Tue Aug 11 20:28:19 2015 +0900 rtc: s3c: add missing clk control It's missed to call clk_unprepare() about info->rtc_src_clk in s3c_rtc_remove and to call clk_disable_unprepare about info->rtc_clk in error routine of s3c_rtc_probe. Signed-off-by: Joonyoung Shim Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s3c.c | 3 +++ 1 file changed, 3 insertions(+) commit 1fb1c35f56bb6ab4a65920c648154b0f78f634a5 Author: Joonyoung Shim Date: Wed Aug 12 19:21:46 2015 +0900 rtc: s3c: fix disabled clocks for alarm The clock enable/disable codes for alarm have been removed from commit 24e1455493da ("drivers/rtc/rtc-s3c.c: delete duplicate clock control") and the clocks are disabled even if alarm is set, so alarm interrupt can't happen. The s3c_rtc_setaie function can be called several times with 'enabled' argument having same value, so it needs to check whether clocks are enabled or not. Signed-off-by: Joonyoung Shim Cc: # v4.1 Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-s3c.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 80e274e96e5bc4ddf9ee4b31ab6f4a2a9fa08040 Author: Alexandre Belloni Date: Mon Aug 10 16:33:40 2015 +0200 rtc: at91sam9: remove useless include Definitions from linux/platform_data/atmel.h are not used, remove the include. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-at91sam9.c | 1 - 1 file changed, 1 deletion(-) commit 1955f213a68323f7348fc06461017c7675efe6c1 Author: Alexandre Belloni Date: Mon Aug 10 16:33:39 2015 +0200 rtc: at91sam9: include linux/of.h This driver is using device tree but is not including of.h Signed-off-by: Alexandre Belloni drivers/rtc/rtc-at91sam9.c | 1 + 1 file changed, 1 insertion(+) commit 0c6e718389305cbc4cd9b8e3fd4b4173bd1127e6 Author: Nadav Haklai Date: Thu Aug 6 17:18:48 2015 +0200 rtc: armada38x: Align RTC set time procedure with the official errata According to the Armada38x functional errata FE-3124064, writing to the RTC TIME register may fail. As a workaround, after writing to RTC TIME register, issue a dummy write of 0x0 twice to the RTC Status register. This is the updated implementation of the Errata that eliminates the need of the long 100ms delay during the RTC set time procedure. [gregory.clement@free-electrons.com]: removed the mutex and use the spinlock again Signed-off-by: Nadav Haklai Reviewed-by: Neta Zur Hershkovits Signed-off-by: Gregory CLEMENT Signed-off-by: Alexandre Belloni drivers/rtc/rtc-armada38x.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) commit efbbb4fd6b6fe0d3d2cfb3c5bbcdf00f1995cb60 Author: Alexandre Belloni Date: Tue Aug 4 11:33:59 2015 +0200 rtc: rx8025: check time validity when necessary Check time validity when reading time as this is when we need to know. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 58 ++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 29 deletions(-) commit 5c66e1e0b79bd63dcdfbc03b80823522643a1f14 Author: Alexandre Belloni Date: Tue Aug 4 11:24:33 2015 +0200 rtc: rx8025: fix RX8025_BIT_CTRL2_CTFG initialization RX8025_BIT_CTRL2_CTFG was set to 0 only when it was already 0. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b33d36b670e7166e8a082e050bfb241ba65271f Author: Alexandre Belloni Date: Tue Aug 4 10:56:50 2015 +0200 rtc: rx8025: remove useless initialization irq_freq is already initialized to 1 in rtc_device_register() Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 1 - 1 file changed, 1 deletion(-) commit 8c4a4467cda299491eff64640c891a0b2926cb76 Author: Alexandre Belloni Date: Tue Aug 4 10:48:20 2015 +0200 rtc: rx8025: reset validity when setting time Wait for the user to set the time to reset the validity bits. Until then, the time may be invalid. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) commit a27c7bf657cb4ab893328359b66a584251be6cac Author: Alexandre Belloni Date: Tue Aug 4 10:46:22 2015 +0200 rtc: rx8025: fix rx8025_init_client() rx8025_init_client is modifying ctrl[0] and writing it to RX8025_REG_CTRL2 but ctrl[0] is actually RX8025_REG_CTRL1. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8a06513df55ef10baf80f55d13786eb29efa4fa6 Author: Alexandre Belloni Date: Tue Aug 4 00:45:37 2015 +0200 rtc: rx8025: continue without alarm when irq request fails Instead of bailing out, disable alarms and continue when devm_request_threaded_irq() fails. This allows to still provide some functionality. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fd9061fb497926c0e62bf1c7ff727801499fd2ea Author: Alexandre Belloni Date: Tue Aug 4 00:40:25 2015 +0200 rtc: rx8025: cleanup accessors Remove useless error messages, at that point, the user already knows something went wrong but will not be able to do anything about it anyway. It is also highly unlikely that some registers are readable/writable but not some other ones. Also, transform rx8025_read_reg to be more resemblant to i2c_smbus_read_byte_data() Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 85 ++++++++++++++++++------------------------------ 1 file changed, 31 insertions(+), 54 deletions(-) commit 6f0a8cfebb898b88fb0d934d7a44a6d4c98d5285 Author: Alexandre Belloni Date: Sun Jul 26 10:13:31 2015 +0200 rtc: rx8025: don't reset the time Stop setting the time to epoch when it is invalid. The proper way to handle that is to return an error when it is invalid instead of returning an incorrect value. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) commit 2e10e74df72ff0f8ea65eb1ee6e39ed8278a91bf Author: Alexandre Belloni Date: Sat Jul 25 15:54:59 2015 +0200 rtc: rx8025: fix transfer mode The datasheet specifies that transfer mode must be 0 for write and either 0x4 (simplified read) or 0 (standard read). 0x8 is not specified, use standard mode. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 32672c55951b2633bb93ec6f12734cf17e9d3a14 Author: Alexandre Belloni Date: Sat Jul 25 12:07:37 2015 +0200 rtc: rx8025: only handle dates between 2000 and 2099 The hardware is only capable of handling dates between 2000 and 2099, enforce that. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 2ddd18693cb93126077bd072884dffca423c1e27 Author: Alexandre Belloni Date: Sat Jul 25 11:50:22 2015 +0200 rtc: rx8025: use BIT() Use BIT() instead of hand coding. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit dbcce7cf1eb95c704faa3fff1acc974010c8e5a4 Author: Alexandre Belloni Date: Fri Jul 24 16:12:10 2015 +0200 rtc: rx8025: remove useless probe error message It is useless to print a message when probe fails as the user is already aware that it failed. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit f0b63a1d5a4a4d9d60fe728ede0fa78ec5aab8be Author: Alexandre Belloni Date: Fri Jul 24 16:07:30 2015 +0200 rtc: rx8025: switch to managed irq allocation Use devm_request_threaded_irq() so it is not necessary to call free_irq() explicitly. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit b6a57c955c362cb9d6ace991cdd77376849abb44 Author: Alexandre Belloni Date: Fri Jul 24 15:59:43 2015 +0200 rtc: rx8025: Convert to threaded IRQ The driver currently emulates the concept of threaded IRQ using a workqueue, switch to threaded IRQ instead. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) commit 15d3bdc23eb54c50b2a5f143325fe83c3ab0dd27 Author: Alexandre Belloni Date: Fri Jul 24 15:50:23 2015 +0200 rtc: rx8025: remove useless headers and reorder them Remove the useless includes and order the remaining ones alphabetically. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 824625d3926f0caf4753426d2b24a8fc08a406c8 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:36 2015 +0300 rtc: tx4939: clean up tx4939_rtc_nvram_read()/tx4939_rtc_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-tx4939.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ecc663c3d0dc181fd15e4d60753024d180fd7e8f Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:35 2015 +0300 rtc: stk17ta8: clean up stk17ta8_nvram_read()/stk17ta8_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-stk17ta8.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d1cf4bdee8e574c0d2b7ce9fa8d9cd89c0ac761a Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:34 2015 +0300 rtc: rp5c01: clean up rp5c01_nvram_read()/rp5c01_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rp5c01.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 99be3e371b2ac03b936044139be10cf0c7b9cc58 Author: Vladimir Zapolskiy Date: Wed Aug 5 21:13:02 2015 +0300 rtc: m48t59: clean up m48t59_nvram_read()/m48t59_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Spinlock acquisition/release is moved out of the loop body to get atomic states of NVRAM reading and writing operations. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-m48t59.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit c472d7ded2dfbe7da29531a9c9e6b951e5658605 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:32 2015 +0300 rtc: ds1742: clean up ds1742_nvram_read()/ds1742_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1742.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a9118d77b3be366c4843446d671a52ccfddcc15c Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:31 2015 +0300 rtc: ds1553: clean up ds1553_nvram_read()/ds1553_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1553.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8ccba14233000f48639aad4cab55ed7b61260db5 Author: Vladimir Zapolskiy Date: Wed Aug 5 21:12:58 2015 +0300 rtc: ds1511: clean up ds1511_nvram_read()/ds1511_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c The change enables burst mode of access to SRAM for any read()/write() operations, it is worth to mention that this may influence on userspace, for instance prior to the change read(fd, buf, 1); read(fd, buf + 1, 1); and read(fd, buf, 2); sequences of syscalls over DS1511's sysfs "nvram" fd led to different DS1511 state changes and/or buf content, if some userspace applications are written specifically for DS1511 and exploit this strange "feature", they may be impacted. Also the change corrects NVRAM size accessible to userspace from 255 bytes to 256 bytes. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1511.c | 42 +++++------------------------------------- 1 file changed, 5 insertions(+), 37 deletions(-) commit f4843b19d2c7b5effd25e2a65b487d02bf55e96f Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:29 2015 +0300 rtc: ds1343: clean up ds1343_nvram_read()/ds1343_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1343.c | 12 ------------ 1 file changed, 12 deletions(-) commit ca7c14d3a1ab1932732c506e32ab5b189b9c0a16 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:28 2015 +0300 rtc: ds1307: clean up ds1307_nvram_read()/ds1307_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1307.c | 14 -------------- 1 file changed, 14 deletions(-) commit 273e03041e6d48024a57682cbf7b61510f74ec64 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:27 2015 +0300 rtc: ds1305: clean up ds1305_nvram_read()/ds1305_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller size in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1305.c | 18 ------------------ 1 file changed, 18 deletions(-) commit a3781639e148497d7381d8786aaefe9f8b7e3028 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:48:26 2015 +0300 rtc: cmos: clean up cmos_nvram_read()/cmos_nvram_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Alexandre Belloni drivers/rtc/rtc-cmos.c | 13 ------------- 1 file changed, 13 deletions(-) commit 3c217e51d8a272b9301058fe845d6c69cc0651cb Author: Sylvain Chouleur Date: Mon Jun 8 11:45:19 2015 +0200 rtc: cmos: century support If century field is supported by the RTC CMOS device, then we should use it and then do not consider years greater that 169 as an error. For information, the year field of the rtc_time structure contains the value to add to 1970 to obtain the current year. This was a hack to be able to support years for 1970 to 2069. This patch remains compatible with this implementation. Signed-off-by: Sylvain Chouleur Signed-off-by: Alexandre Belloni include/asm-generic/rtc.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 11f67a8bbf65872c3e9edc70242420a8c314a860 Author: Alexandre Belloni Date: Fri Jul 31 11:39:51 2015 +0200 rtc: at91rm9200: get and use slow clock Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system hang") added a workaround for the slow clock as it is not properly handled by its users. Get and use the slow clock as it is necessary for the at91rm9200 rtc. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni drivers/rtc/rtc-at91rm9200.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit 202cc98acf96de1c3897194e1ed5ae1c80c8b0f3 Author: kbuild test robot Date: Fri Jul 31 15:01:04 2015 +0530 rtc: gemini: fix ptr_ret.cocci warnings drivers/rtc/rtc-gemini.c:151:1-3: WARNING: PTR_ERR_OR_ZERO can be used Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR Generated by: scripts/coccinelle/api/ptr_ret.cocci Signed-off-by: Fengguang Wu Signed-off-by: Viresh Kumar Signed-off-by: Alexandre Belloni drivers/rtc/rtc-gemini.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit e7cba884af366f49ab7b7f5157e690357addebba Author: viresh kumar Date: Fri Jul 31 16:23:43 2015 +0530 rtc: Drop (un)likely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. gemini driver was using likely() for a failure case while the rtc driver is getting registered. That looks wrong and it should really be unlikely. But because we are killing all the unlikely() flags, lets kill that too. Signed-off-by: Viresh Kumar Acked-by: Hans Ulli Kroll Signed-off-by: Alexandre Belloni drivers/rtc/interface.c | 2 +- drivers/rtc/rtc-bfin.c | 2 +- drivers/rtc/rtc-gemini.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 74000eb14a173f427240b90363580c686a675ddf Author: Alexandre Belloni Date: Wed Jul 29 02:01:33 2015 +0200 rtc: at91rm9200: sort headers alphabetically Sort included headers alphabetically. Signed-off-by: Alexandre Belloni Acked-by: Boris Brezillon Acked-by: Nicolas Ferre drivers/rtc/rtc-at91rm9200.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 8918bd8a5f6c37963ba04ae79ad6488108894ab9 Author: Alexandre Belloni Date: Tue Jul 28 21:51:10 2015 +0200 rtc: at91sam9: get sclk rate after enabling it See help for clk_get_rate(): "obtain the current clock rate (in Hz) for a clock source. This is only valid once the clock source has been enabled." It currently returns the correct value but that may not stay that way. Signed-off-by: Alexandre Belloni Acked-by: Boris Brezillon Acked-by: Nicolas Ferre drivers/rtc/rtc-at91sam9.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 6932ff5395e3a2541fba696b38dc71393cf7ce57 Author: Alexandre Belloni Date: Tue Jul 28 21:49:24 2015 +0200 rtc: at91sam9: sort headers alphabetically Sort included headers alphabetically. Signed-off-by: Alexandre Belloni Acked-by: Boris Brezillon Acked-by: Nicolas Ferre drivers/rtc/rtc-at91sam9.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 73ab31ce1bbc64c590b2a2d58364942adfa11a3f Author: Alexandre Belloni Date: Tue Jul 28 21:47:57 2015 +0200 rtc: at91sam9: remove useless check rtc->sclk necessarily points to a valid clocks at this point. Else the probe would have aborted. Signed-off-by: Alexandre Belloni Acked-by: Boris Brezillon Acked-by: Nicolas Ferre drivers/rtc/rtc-at91sam9.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ffe60fcfda98a3e4f51bc1e02ff5412a7e1c9c79 Author: Alexandre Belloni Date: Tue Jul 28 21:46:15 2015 +0200 rtc: at91sam9: properly handle error case In case of a probe error, it is possible to abort after issuing clk_prepare_enable(). Ensure the clock is disabled and unprepared in that case. Signed-off-by: Alexandre Belloni Acked-by: Boris Brezillon Acked-by: Nicolas Ferre drivers/rtc/rtc-at91sam9.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 27675ef03c0535158b77af76591920fe041ebf14 Author: Leo Yan Date: Wed Jul 29 14:13:40 2015 +0800 rtc: pl031: fix typo for author email The email address missed character ">", so add it. Signed-off-by: Leo Yan Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pl031.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c4fc2955ad37afb0d75ed5a67bad94c1529b0cf Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:46 2015 +0200 rtc: Export OF module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ab-b5ze-s3.c | 1 + drivers/rtc/rtc-isl12022.c | 1 + drivers/rtc/rtc-isl12057.c | 1 + 3 files changed, 3 insertions(+) commit 8109d44f7604cd5ab833ea09da98703f6eb16460 Author: Adrian Huang Date: Mon Jul 6 12:19:13 2015 +0800 rtc: cmos: Revert "rtc-cmos: Add an alarm disable quirk" Commit d5a1c7e3fc38 ("rtc-cmos: Add an alarm disable quirk") that added a special quirk is not needed because [PATCH 1/2] of this patchset makes the kernel more robust: rtc-cmos: Cancel alarm timer if alarm time is equal to now+1 seconds Signed-off-by: Adrian Huang Tested-by: Egbert Eich Tested-by: Diego Ercolani Cc: Borislav Petkov Signed-off-by: Alexandre Belloni drivers/rtc/rtc-cmos.c | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) commit 88b8d33b1c6aadba553c998db91c4b36be0fac52 Author: Adrian Huang Date: Mon Jul 6 12:19:12 2015 +0800 rtc: cmos: Cancel alarm timer if alarm time is equal to now+1 seconds Steps to reproduce the problem: 1) Enable RTC wake-up option in BIOS Setup 2) Issue one of these commands in the OS: "poweroff" or "shutdown -h now" 3) System will shut down and then reboot automatically Root-cause of the issue: 1) During the shutdown process, the hwclock utility is used to save the system clock to hardware clock (RTC). 2) The hwclock utility invokes ioctl() with RTC_UIE_ON. The kernel configures the RTC alarm for the periodic interrupt (every 1 second). 3) The hwclock uitlity closes the /dev/rtc0 device, and the kernel disables the RTC alarm irq (AIE bit of Register B) via ioctl() with RTC_UIE_OFF. But, the configured alarm time is the current_time + 1. 4) After the next 1 second is elapsed, the AF (alarm interrupt flag) of Register C is set. 5) The S5 handler in BIOS is invoked to configure alarm registers (enable AIE bit and configure alarm date/time). But, BIOS does not clear the previous interrupt status during alarm configuration. Therefore, "AF=AIE=1" causes the rtc device to trigger an interrupt. 6) So, the machine reboots automatically right after shutdown. This patch cancels the alarm timer if the following condictions are met (suggested by Alexandre): 1) The configured alarm time is equal to current_time + 1 seconds. 2) The AIE timer is not in use. The member 'alarm_expires' is introduced in struct cmos_rtc because of the following reasons: 1) The configured alarm time can be retrieved from cmos_read_alarm(), but we need to take the 'wrapped timestamp' and 'time rollover' into consideration. The function __rtc_read_alarm() eliminates the concerns. To avoid the duplicated code in the lower level RTC driver, invoking __rtc_read_alarm from the lower level RTC driver is not encouraged. Moreover, the compilation error 'the undefined __rtc_read_alarm" is observed if the lower level RTC driver is compiled as a kernel module. 2) The uie_rtctimer.node.expires and aie_timer.node.expires can be retrieved for the configured alarm time. But, the problem is that either of them might configure the CMOS alarm time. We cannot make sure UIE timer or AIE tiemr configured the CMOS alarm time before. (uie_rtctimer or aie_timer is enabled and then is disabled). 3) The patch introduces the member 'alarm_expires' to keep the newly configured alarm time, so the above-mentioned concerns can be eliminated. The issue goes away after 20-time shutdown tests. Signed-off-by: Adrian Huang Tested-by: Egbert Eich Tested-by: Diego Ercolani Cc: Borislav Petkov Signed-off-by: Alexandre Belloni drivers/rtc/rtc-cmos.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 4 deletions(-) commit 80ca3277bc7f398e3315af996443464dac5d4b88 Author: S Twiss Date: Tue Jul 21 11:29:07 2015 +0100 rtc: da9063: Add DA9062 RTC capability to DA9063 RTC driver Add DA9062 RTC support into the existing DA9063 RTC driver component by using generic access tables for common register and bit mask definitions. The following change will add generic register and bit mask support to the DA9063 RTC. The changes are slightly complicated by requiring support for three register sets: DA9063-AD, DA9063-BB and DA9062-AA. The following alterations have been made to the DA9063 RTC: - Addition of a da9063_compatible_rtc_regmap structure to hold all generic registers and bitmasks for this type of RTC component. - A re-write of struct da9063 to use pointers for regmap and compatible registers/masks definitions - Addition of a of_device_id table for DA9063 and DA9062 defaults - Refactoring functions to use struct da9063_compatible_rtc accesses to generic registers/masks instead of using defines from registers.h - Re-work of da9063_rtc_probe() to use of_match_node() and dev_get_regmap() to provide initialisation of generic registers and masks and access to regmap Signed-off-by: Steve Twiss Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 6 +- drivers/rtc/rtc-da9063.c | 391 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 282 insertions(+), 115 deletions(-) commit d7f9777de884daf5721211bddfd21e7c8c156b17 Author: Henry Chen Date: Thu Jul 30 22:53:14 2015 +0800 rtc: mt6397: implement suspend/resume function in rtc-mt6397 driver Implement the suspend/resume function in order to control rtc's irq_wake flag and handle as wakeup source. Signed-off-by: Henry Chen Acked-by: Eddie Huang Signed-off-by: Alexandre Belloni drivers/rtc/rtc-mt6397.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 3ee2c40b7ac2bf121aaa1176d8ac25b6a26e3a94 Author: Dmitry Torokhov Date: Thu Jul 23 16:01:08 2015 -0700 rtc: switch to using is_visible() to control sysfs attributes Instead of creating wakealarm attribute manually, after the device has been registered, let's rely on facilities provided by the attribute groups to control which attributes are visible and which are not. This allows to create all needed attributes at once, at the same time that we register RTC class device. Signed-off-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/class.c | 4 +--- drivers/rtc/rtc-core.h | 19 +++------------- drivers/rtc/rtc-sysfs.c | 59 +++++++++++++++++++++++++------------------------ 3 files changed, 34 insertions(+), 48 deletions(-) commit a17ccd1c6a327e5b468358e8352a6af004261473 Author: Dmitry Torokhov Date: Thu Jul 23 16:01:07 2015 -0700 rtc: switch wakealarm attribute to DEVICE_ATTR_RW Instead of using older style DEVICE_ATTR for wakealarm attribute let's switch to using DEVICE_ATTR_RW that ensures consistent across the kernel permissions on the attribute. Signed-off-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sysfs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit df100c017ea9f1a6a517c3fba84f8507973c004e Author: Dmitry Torokhov Date: Thu Jul 23 16:01:06 2015 -0700 rtc: make rtc_does_wakealarm() return boolean Users of rtc_does_wakealarm() return value treat it as boolean so let's change the signature accordingly. Signed-off-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sysfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f2284f9c900a47961883b88064933a89b5dd5f46 Author: Henri Roosen Date: Fri Jul 24 10:16:06 2015 +0200 rtc: rx8025: remove obsolete local_irq_disable() and local_irq_enable() for rtc_update_irq() Since commit e6229bec25be ("rtc: make rtc_update_irq callable with irqs enabled") rtc_update_irq() is callable with irqs enabled. Signed-off-by: Henri Roosen Signed-off-by: Alexandre Belloni drivers/rtc/rtc-rx8025.c | 4 ---- 1 file changed, 4 deletions(-) commit 0d9030a2c3214cf8f9bfff84204e0f5ba5e790d7 Author: Octavian Purdila Date: Fri Jun 5 16:59:43 2015 +0300 rtc: fix drivers that consider 0 as a valid IRQ in client->irq Since dab472eb931b ("i2c / ACPI: Use 0 to indicate that device does not have interrupt assigned"), 0 is not a valid i2c client irq anymore, so change all driver's checks accordingly. The same issue occurs when the device is instantiated via device tree with no IRQ, or from the i2c sysfs interface, even before the patch above. Signed-off-by: Octavian Purdila Reviewed-by: Mika Westerberg Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1374.c | 4 ++-- drivers/rtc/rtc-ds3232.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 1e4cd62558c293bc51cc179d676b708683a29c12 Author: Dmitry Torokhov Date: Mon Jul 20 16:02:51 2015 -0700 rtc: dev: properly manage lifetime of dev and cdev in rtc device struct rtc embeds both struct dev and struct cdev. Unfortunately character device structure may outlive the parent rtc structure unless we set it up as parent of character device so that it will stay pinned until character device is freed. Signed-off-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-dev.c | 1 + 1 file changed, 1 insertion(+) commit c3b399a4b6703a04ef6eb3efe35ff12163e409e0 Author: Dmitry Torokhov Date: Mon Jul 20 16:02:50 2015 -0700 rtc: class: remove unnecessary device_get() in rtc_device_unregister Technically the address of rtc->dev can never be NULL, so get_device() can never fail. Also caller of rtc_device_unregister() supposed to be the owner of the device and thus have a valid reference. Therefore call to get_device() is not needed here. Signed-off-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/class.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 6706664d92ea841913d5fcfd06c290fbe6d33bd2 Author: Dmitry Torokhov Date: Mon Jul 20 16:02:49 2015 -0700 rtc: class: fix double free in rtc_register_device() error path Commit 59cca865f21e ("drivers/rtc/class.c: fix device_register() error handling") correctly noted that naked kfree() should not be used after failed device_register() call, however, while it added the needed put_device() it forgot to remove the original kfree() causing double-free. Cc: Vasiliy Kulikov Signed-off-by: Dmitry Torokhov Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/class.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit dfe6c04aa289de06df95d888719af63d1d4c982d Author: Guo Zeng Date: Tue Jul 14 01:31:38 2015 +0000 rtc: sirfsoc: move to regmap APIs from platform-specific APIs The current codes use CSR platform specific API exported by machine codes to read/write RTC registers. they are: sirfsoc_rtc_iobrg_readl() sirfsoc_rtc_iobrg_writel() commit b1999477ed91 ("ARM: prima2: move to use REGMAP APIs for rtciobrg") moves to regmap support, now we can move to use regmap APIs in RTC driver. Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Alexandre Belloni drivers/rtc/rtc-sirfsoc.c | 107 +++++++++++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 43 deletions(-) commit f4a2eecb3ff9f51b179b213e7cc3766f920f2dc5 Author: Vaibhav Jain Date: Tue Jul 14 13:28:28 2015 +0530 rtc: opal: Enable alarms only when opal supports tpo rtc-opal driver provides support for rtc alarms via timed-power-on(tpo). However some Power platforms like BML use a fake rtc clock and don't support tpo. Such platforms are indicated by the missing 'has-tpo' property in the device tree. Current implementation however enables callback for rtc_class_ops.read/set alarm irrespective of the tpo support from the platform. This results in a failed opal call when kernel tries to read an existing alarms via opal_get_tpo_time during rtc device registration. This patch fixes this issue by setting opal_rtc_ops.read/set_alarm callback pointers only when tpo is supported. Acked-by: Michael Neuling Acked-by: Neelesh Gupta Signed-off-by: Vaibhav Jain Acked-by: Stewart Smith Signed-off-by: Alexandre Belloni drivers/rtc/rtc-opal.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit c28b42e3aee03fe869a3f73039cf92686ccbc8fb Author: Joachim Eastwood Date: Sat Jul 11 19:28:49 2015 +0200 rtc: add rtc-lpc24xx driver Add driver for the RTC found on NXP LPC178x/18xx/408x/43xx devices. The RTC provides calendar and clock functionality together with alarm interrupt support. Signed-off-by: Joachim Eastwood Signed-off-by: Alexandre Belloni drivers/rtc/Kconfig | 12 ++ drivers/rtc/Makefile | 1 + drivers/rtc/rtc-lpc24xx.c | 310 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 323 insertions(+) commit dcb9372b34c9de90672e4cf811d7c3a8519320aa Author: Joachim Eastwood Date: Sat Jul 11 19:28:50 2015 +0200 doc: dt: add documentation for nxp,lpc1788-rtc Document NXP LPC178x/18xx/408x/43xx bindings Signed-off-by: Joachim Eastwood Signed-off-by: Alexandre Belloni .../devicetree/bindings/rtc/nxp,lpc1788-rtc.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 045c6fdd37a01d950c0f5ca64733b53b184fe91b Author: Krzysztof Kozlowski Date: Fri Jul 10 15:39:51 2015 +0900 rtc: Drop owner assignment from platform_driver platform_driver does not need to set an owner because platform_driver_register() will set it. Signed-off-by: Alexandre Belloni drivers/rtc/rtc-opal.c | 1 - 1 file changed, 1 deletion(-) commit b28845433eb9c205c381ed69b09167d6ae5aac1c Author: Krzysztof Kozlowski Date: Fri Jul 10 15:39:50 2015 +0900 rtc: Drop owner assignment from i2c_driver i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ab-b5ze-s3.c | 1 - drivers/rtc/rtc-bq32k.c | 1 - drivers/rtc/rtc-ds1307.c | 1 - drivers/rtc/rtc-ds1374.c | 1 - drivers/rtc/rtc-ds3232.c | 1 - drivers/rtc/rtc-fm3130.c | 1 - drivers/rtc/rtc-hym8563.c | 1 - drivers/rtc/rtc-isl12057.c | 1 - drivers/rtc/rtc-pcf2127.c | 1 - drivers/rtc/rtc-pcf85063.c | 1 - drivers/rtc/rtc-pcf8523.c | 1 - drivers/rtc/rtc-pcf8563.c | 1 - drivers/rtc/rtc-pcf8583.c | 1 - drivers/rtc/rtc-rx8025.c | 1 - drivers/rtc/rtc-rx8581.c | 1 - 15 files changed, 15 deletions(-) commit 653ebd75e9e469e99a40ab14128d915386dc78c6 Author: Andrea Scian Date: Tue Jun 16 11:39:47 2015 +0200 rtc: pcf2127: use OFS flag to detect unreliable date and warn the user The PCF2127 datasheet states that it's wrong to say that the date in unreliable if BLF (battery low flag) is set but instead, OSF (seconds register) should be used to check if oscillator, for any reason, stopped. Battery may be low (usually below 2V5 threshold) but the date may be anyway correct (typically date is unreliable when input voltage is below 1V2). Signed-off-by: Andrea Scian Signed-off-by: Alexandre Belloni drivers/rtc/rtc-pcf2127.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) commit 821f51c4da869706356ddecfeeac286bf4df9b98 Author: Andrea Scian Date: Tue Jun 16 11:35:19 2015 +0200 rtc: use rtc_valid_tm() error code when reading date/time There's a wrong comment in some RTC drivers that say it's better to ignore rtc_valid_tm() when reading RTC timestamp. However this is wrong and is better to return to the userspace the error if timestamp is not valid. Signed-off-by: Andrea Scian Signed-off-by: Alexandre Belloni drivers/rtc/rtc-isl12022.c | 7 +------ drivers/rtc/rtc-pcf2123.c | 8 +------- drivers/rtc/rtc-pcf2127.c | 8 +------- 3 files changed, 3 insertions(+), 20 deletions(-) commit 4ab82103131777b9aabb6ba31aead6e5b0293b32 Author: Vaibhav Hiremath Date: Thu Jul 9 12:25:51 2015 +0530 rtc: 88pm80x: add device tree support Along with DT support, this patch also cleans up the unnecessary code around 'rtc_wakeup' initialization. Signed-off-by: Chao Xie Signed-off-by: Vaibhav Hiremath Signed-off-by: Alexandre Belloni drivers/rtc/rtc-88pm80x.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) commit 617f6f7ef5bfe8c0ac580243c3da9a836c6e39bf Author: Maninder Singh Date: Wed Jul 8 12:26:47 2015 +0530 rtc: bq32k: remove redundant check removing below static analysis error: (error) Possible null pointer dereference: client if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) ^^^^^^^ Error comes because client is dereferenced before NULL check. So probably NULL this check is not required. Signed-off-by: Maninder Singh Signed-off-by: Alexandre Belloni drivers/rtc/rtc-bq32k.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 508db592e2f54d731bf2f5eabd9642a1a566f276 Author: Vaishali Thakkar Date: Tue Jul 7 11:16:14 2015 +0530 rtc: ds1685: Use module_platform_driver Use module_platform_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return platform_driver_register(&x); } @b depends on a@ identifier e, a.x; @@ -static e(...) { platform_driver_unregister(&x); } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_platform_driver; @@ -module_exit(e); +module_platform_driver(x); Signed-off-by: Vaishali Thakkar Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1685.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) commit 7abea617a4bae178da0f42983998c779ec2f732d Author: Nishanth Menon Date: Wed Jun 24 11:26:54 2015 -0500 rtc: ds1307: Support optional wakeup interrupt source With the recent pinctrl-single changes, SoCs such as Texas Instrument's OMAP processors can treat wake-up events from deeper idle states as interrupts. Let's add support for the optional second interrupt for wake-up using the generic wakeirq support added in commit 4990d4fe327b ("PM / Wakeirq: Add automated device wake IRQ handling") Finally, to pass the wake-up interrupt in the dts file, interrupts-extended property needs to be passed. This is similar in approach to commit 2a0b965cfb6e ("serial: omap: Add support for optional wake-up") + ee83bd3b6483 ("serial: omap: Switch wake-up interrupt to generic wakeirq") Signed-off-by: Nishanth Menon Reviewed-by: Grygorii Strashko Acked-by: Tony Lindgren Acked-by: Felipe Balbi Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1307.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) commit eac7237fd8432e232af3c407e667dbdc17ebf1d8 Author: Nishanth Menon Date: Tue Jun 23 11:15:12 2015 -0500 rtc: ds1307: Sort the headers It is always a good practice to keep the #includes sorted Signed-off-by: Nishanth Menon Acked-by: Felipe Balbi Reviewed-by: Grygorii Strashko Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1307.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c5983191362af5ef7a627d8811a45f0fd01a3582 Author: Nishanth Menon Date: Tue Jun 23 11:15:11 2015 -0500 rtc: ds1307: Switch to managed irq allocation Since we are not doing anything fancy in remove function that requires us to sequence IRQ free operation, we might as well switch over to devm_ equivalent of managed IRQ allocation and remove the explicit free_irq since it'd be done automatically at remove. Signed-off-by: Nishanth Menon Acked-by: Felipe Balbi Reviewed-by: Grygorii Strashko Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1307.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 2fb07a10e0aa699ddb12aba1459208579bdc9802 Author: Felipe Balbi Date: Tue Jun 23 11:15:10 2015 -0500 rtc: ds1307: Convert to threaded IRQ The driver currently emulates the concept of threaded IRQ using a workqueue, which it really does not need to. Instead, switch over to threaded_irq handlers which is meant precisely for the same purpose. Signed-off-by: Felipe Balbi Signed-off-by: Nishanth Menon Reviewed-by: Grygorii Strashko Signed-off-by: Alexandre Belloni drivers/rtc/rtc-ds1307.c | 59 ++++++++++++++++-------------------------------- 1 file changed, 19 insertions(+), 40 deletions(-) commit e89c6fdf9e0eb1b5a03574d4ca73e83eae8deb91 Merge: c3cce6c 1081230 Author: NeilBrown Date: Sat Sep 5 11:07:04 2015 +0200 Merge linux-block/for-4.3/core into md/for-linux There were a few conflicts that are fairly easy to resolve. Signed-off-by: NeilBrown commit 76fc5e7b2355af167dea1a32e93c57fc37900a5b Author: Andy Lutomirski Date: Fri Sep 4 17:00:43 2015 -0700 x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0 vm86 exposes an interesting attack surface against the entry code. Since vm86 is mostly useless anyway if mmap_min_addr != 0, just turn it off in that case. There are some reports that vbetool can work despite setting mmap_min_addr to zero. This shouldn't break that use case, as CAP_SYS_RAWIO already overrides mmap_min_addr. Suggested-by: Linus Torvalds Signed-off-by: Andy Lutomirski Cc: Arjan van de Ven Cc: Austin S Hemmelgarn Cc: Borislav Petkov Cc: Brian Gerst Cc: Josh Boyer Cc: Kees Cook Cc: Matthew Garrett Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Stas Sergeev Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/vm86_32.c | 27 +++++++++++++++++++++++++++ tools/testing/selftests/x86/entry_from_vm86.c | 5 +++-- 2 files changed, 30 insertions(+), 2 deletions(-) commit 95cd2ea7d54b41b0b2828587f108fe270d59eede Merge: 66c117d e713c80 Author: Ingo Molnar Date: Sat Sep 5 09:00:30 2015 +0200 Merge branch 'linus' into x86/urgent, to be able to merge a dependent fix Signed-off-by: Ingo Molnar commit 30e7a65b3fdb53cc49f85c965095e40aceea3961 Author: Jon Hunter Date: Thu Sep 3 09:10:37 2015 +0100 PM / Domains: Ensure subdomain is not in use before removing The function pm_genpd_remove_subdomain() removes a subdomain from a generic PM domain, however, it does not check if the subdomain has any slave domains or device attached before doing so. Therefore, add a test to verify that the subdomain does not have any slave domains associated or any device attached before removing. Signed-off-by: Jon Hunter Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5269e7067cd66f4797760f160be21ff50f2d1582 Author: Guenter Roeck Date: Thu Sep 3 08:20:58 2015 -0700 cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL If ARM_MT8173_CPUFREQ is configured, and THERMAL is configured as module, the following build error is seen for arm:allmodconfig and arm64:allmodconfig. drivers/built-in.o: In function `mtk_cpufreq_ready': :(.text+0x32a20c): undefined reference to `of_cpufreq_cooling_register' drivers/built-in.o: In function `mtk_cpufreq_exit': :(.text+0x32a420): undefined reference to `cpufreq_cooling_unregister' The fix is similar to CPUFREQ_DT, but more restrictive since ARM_MT8173_CPUFREQ can not be built as module. Fixes: 1453863fb02a ("cpufreq: mediatek: Add MT8173 cpufreq driver") Signed-off-by: Guenter Roeck Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig.arm | 1 + 1 file changed, 1 insertion(+) commit 559ec2f8fd50981821621f52db5e1a8ffcf8d792 Author: Nicholas Krause Date: Fri Sep 4 15:48:27 2015 -0700 mm/hugetlb.c: make vma_has_reserves() return bool This makes vma_has_reserves() return bool due to this particular function only returning either one or zero as its return value. Signed-off-by: Nicholas Krause Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 1ecef9ed0f63bfff58895a4f3aec751e907c7f3d Author: Nicholas Krause Date: Fri Sep 4 15:48:24 2015 -0700 mm/madvise.c: make madvise_behaviour_valid() return bool This makes the madvise_bahaviour_valid() function return bool due to this particular function always returning the value of either one or zero as its return value. Signed-off-by: Nicholas Krause Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/madvise.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ca1d6c7d9d461effa2c4e8b9b227a14e9fdcf1cc Author: Nicholas Krause Date: Fri Sep 4 15:48:22 2015 -0700 mm/memory.c: make tlb_next_batch() return bool This makes the tlb_next_batch() bool due to this particular function only ever returning either one or zero as its return value. Signed-off-by: Nicholas Krause Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d9e7e37b4d83371d08650612e0bb0b80a1240289 Author: Nicholas Krause Date: Fri Sep 4 15:48:19 2015 -0700 mm/dmapool.c: change is_page_busy() return from int to bool This makes the function is_page_busy() return bool rather then an int now due to this particular function's single return statement only ever evaulating to either one or zero. Signed-off-by: Nicholas Krause Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/dmapool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e6dab4233f667c0ae465e5cb46603b49b4f6d74 Author: minkyung88.kim Date: Fri Sep 4 15:48:16 2015 -0700 mm: remove struct node_active_region struct node_active_region is not used anymore. Remove it. Signed-off-by: minkyung88.kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mmzone.h | 8 -------- 1 file changed, 8 deletions(-) commit 9943242ca468149c4ce30d4633524c0866d4a87b Author: Oleg Nesterov Date: Fri Sep 4 15:48:13 2015 -0700 mremap: simplify the "overlap" check in mremap_to() Minor, but this check is overcomplicated. Two half-intervals do NOT overlap if END1 <= START2 || END2 <= START1, mremap_to() just needs to negate this check. Signed-off-by: Oleg Nesterov Acked-by: David Rientjes Cc: Benjamin LaHaise Cc: Hugh Dickins Cc: Jeff Moyer Cc: Kirill A. Shutemov Cc: Laurent Dufour Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mremap.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 1d3916869798755968b3cd764ab21f2bb86ffff7 Author: Oleg Nesterov Date: Fri Sep 4 15:48:10 2015 -0700 mremap: don't do uneccesary checks if new_len == old_len The "new_len > old_len" branch in vma_to_resize() looks very confusing. It only covers the VM_DONTEXPAND/pgoff checks but everything below is equally unneeded if new_len == old_len. Change this code to return if "new_len == old_len", new_len < old_len is not possible, otherwise the code below is wrong anyway. Signed-off-by: Oleg Nesterov Acked-by: David Rientjes Cc: Benjamin LaHaise Cc: Hugh Dickins Cc: Jeff Moyer Cc: Kirill A. Shutemov Cc: Laurent Dufour Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mremap.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit d456fb9e5254df433d4806769d7ff75d80d66aa4 Author: Oleg Nesterov Date: Fri Sep 4 15:48:07 2015 -0700 mremap: don't do mm_populate(new_addr) on failure move_vma() sets *locked even if move_page_tables() or ->mremap() fails, change sys_mremap() to check "ret & ~PAGE_MASK". I think we should simply remove the VM_LOCKED code in move_vma(), that is why this patch doesn't change move_vma(). But this needs more cleanups. Signed-off-by: Oleg Nesterov Acked-by: David Rientjes Cc: Benjamin LaHaise Cc: Hugh Dickins Cc: Jeff Moyer Cc: Kirill A. Shutemov Cc: Laurent Dufour Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mremap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5477e70a6420a6b7ca96c8e21413ee1c96a84260 Author: Oleg Nesterov Date: Fri Sep 4 15:48:04 2015 -0700 mm: move ->mremap() from file_operations to vm_operations_struct vma->vm_ops->mremap() looks more natural and clean in move_vma(), and this way ->mremap() can have more users. Say, vdso. While at it, s/aio_ring_remap/aio_ring_mremap/. Note: this is the minimal change before ->mremap() finds another user in file_operations; this method should have more arguments, and it can be used to kill arch_remap(). Signed-off-by: Oleg Nesterov Acked-by: Pavel Emelyanov Acked-by: Kirill A. Shutemov Cc: David Rientjes Cc: Benjamin LaHaise Cc: Hugh Dickins Cc: Jeff Moyer Cc: Laurent Dufour Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/aio.c | 27 ++++++++++++++++++--------- include/linux/fs.h | 1 - include/linux/mm.h | 1 + mm/mremap.c | 4 ++-- 4 files changed, 21 insertions(+), 12 deletions(-) commit df1eab303c836c98a79de427aa1c7d6812acaaa9 Author: Oleg Nesterov Date: Fri Sep 4 15:48:01 2015 -0700 mremap: don't leak new_vma if f_op->mremap() fails move_vma() can't just return if f_op->mremap() fails, we should unmap the new vma like we do if move_page_tables() fails. To avoid the code duplication this patch moves the "move entries back" under the new "if (err)" branch. Signed-off-by: Oleg Nesterov Acked-by: David Rientjes Cc: Benjamin LaHaise Cc: Hugh Dickins Cc: Jeff Moyer Cc: Kirill Shutemov Cc: Pavel Emelyanov Cc: Laurent Dufour Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/mremap.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 31aafb45f4e1c34e4aba37c150ae4e74880b46ed Author: Nicholas Krause Date: Fri Sep 4 15:47:58 2015 -0700 mm/hugetlb.c: make vma_shareable() return bool This makes vma_shareable() return bool now due to this particular function only ever returning either one or zero as its return value. Signed-off-by: Nicholas Krause Acked-by: Mike Kravetz Acked-by: Naoya Horiguchi Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/hugetlb.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1027e4436b6a5c413c95d95e50d0f26348a602ac Author: Kirill A. Shutemov Date: Fri Sep 4 15:47:55 2015 -0700 mm: make GUP handle pfn mapping unless FOLL_GET is requested With DAX, pfn mapping becoming more common. The patch adjusts GUP code to cover pfn mapping for cases when we don't need struct page to proceed. To make it possible, let's change follow_page() code to return -EEXIST error code if proper page table entry exists, but no corresponding struct page. __get_user_page() would ignore the error code and move to the next page frame. The immediate effect of the change is working MAP_POPULATE and mlock() on DAX mappings. [akpm@linux-foundation.org: fix arm64 build] Signed-off-by: Kirill A. Shutemov Reviewed-by: Toshi Kani Acked-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/gup.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 50 insertions(+), 10 deletions(-) commit d899844e9c98c9c74b4d9926fd3bd66a225f6978 Author: Kirill A. Shutemov Date: Fri Sep 4 15:47:53 2015 -0700 mm: fix status code which move_pages() returns for zero page The manpage for move_pages(2) specifies that status code for zero page is supposed to be -EFAULT. Currently kernel return -ENOENT in this case. follow_page() can do it for us, if we would ask for FOLL_DUMP. The use of FOLL_DUMP also means that the upper layer page tables pages are no longer allocated. Signed-off-by: Kirill A. Shutemov Reviewed-by: Christoph Lameter Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/migrate.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit ce9ce6659a5775047ad529ed77ab119da5fb8b0c Author: Sebastian Andrzej Siewior Date: Fri Sep 4 15:47:50 2015 -0700 mm: memcontrol: bring back the VM_BUG_ON() in mem_cgroup_swapout() Clark stumbled over a VM_BUG_ON() in -RT which was then was removed by Johannes in commit f371763a79d ("mm: memcontrol: fix false-positive VM_BUG_ON() on -rt"). The comment before that patch was a tiny bit better than it is now. While the patch claimed to fix a false-postive on -RT this was not the case. None of the -RT folks ACKed it and it was not a false positive report. That was a *real* problem. This patch updates the comment that is improper because it refers to "disabled preemption" as a consequence of that lock being taken. A spin_lock() disables preemption, true, but in this case the code relies on the fact that the lock _also_ disables interrupts once it is acquired. And this is the important detail (which was checked the VM_BUG_ON()) which needs to be pointed out. This is the hint one needs while looking at the code. It was explained by Johannes on the list that the per-CPU variables are protected by local_irq_save(). The BUG_ON() was helpful. This code has been workarounded in -RT in the meantime. I wouldn't mind running into more of those if the code in question uses *special* kind of locking since now there is no verification (in terms of lockdep or BUG_ON()) and therefore I bring the VM_BUG_ON() check back in. The two functions after the comment could also have a "local_irq_save()" dance around them in order to serialize access to the per-CPU variables. This has been avoided because the interrupts should be off. Signed-off-by: Sebastian Andrzej Siewior Acked-by: Johannes Weiner Cc: Thomas Gleixner Cc: Steven Rostedt Cc: Clark Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memcontrol.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit c98c36355dd6d5c4433c8d17e8eb839ca9b97606 Author: Vladimir Zapolskiy Date: Fri Sep 4 15:47:47 2015 -0700 genalloc: add support of multiple gen_pools per device This change fills devm_gen_pool_create()/gen_pool_get() "name" argument stub with contents and extends of_gen_pool_get() functionality on this basis. If there is no associated platform device with a device node passed to of_gen_pool_get(), the function attempts to get a label property or device node name (= repeats MTD OF partition standard) and seeks for a named gen_pool registered by device of the parent device node. The main idea of the change is to allow registration of independent gen_pools under the same umbrella device, say "partitions" on "storage device", the original functionality of one "partition" per "storage device" is untouched. [akpm@linux-foundation.org: fix constness in devres_find()] [dan.carpenter@oracle.com: freeing const data pointers] Signed-off-by: Vladimir Zapolskiy Cc: Philipp Zabel Cc: Greg Kroah-Hartman Cc: Russell King Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Jean-Christophe Plagniol-Villard Cc: Shawn Guo Cc: Sascha Hauer Cc: Mauro Carvalho Chehab Cc: Arnd Bergmann Signed-off-by: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/genalloc.h | 2 ++ lib/genalloc.c | 71 ++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 59 insertions(+), 14 deletions(-) commit 73858173593c31cb94bce63fe1c24eb803bb04e6 Author: Vladimir Zapolskiy Date: Fri Sep 4 15:47:43 2015 -0700 genalloc: add name arg to gen_pool_get() and devm_gen_pool_create() This change modifies gen_pool_get() and devm_gen_pool_create() client interfaces adding one more argument "name" of a gen_pool object. Due to implementation gen_pool_get() is capable to retrieve only one gen_pool associated with a device even if multiple gen_pools are created, fortunately right at the moment it is sufficient for the clients, hence provide NULL as a valid argument on both producer devm_gen_pool_create() and consumer gen_pool_get() sides. Because only one created gen_pool per device is addressable, explicitly add a restriction to devm_gen_pool_create() to create only one gen_pool per device, this implies two possible error codes returned by the function, account it on client side (only misc/sram). This completes client side changes related to genalloc updates. [akpm@linux-foundation.org: gen_pool_get() cleanup] Signed-off-by: Vladimir Zapolskiy Cc: Philipp Zabel Cc: Greg Kroah-Hartman Cc: Russell King Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Jean-Christophe Plagniol-Villard Cc: Shawn Guo Cc: Sascha Hauer Cc: Mauro Carvalho Chehab Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/arm/mach-at91/pm.c | 2 +- arch/arm/mach-imx/pm-imx5.c | 2 +- arch/arm/mach-imx/pm-imx6.c | 2 +- arch/arm/mach-socfpga/pm.c | 2 +- drivers/media/platform/coda/coda-common.c | 2 +- drivers/misc/sram.c | 8 ++--- include/linux/genalloc.h | 4 +-- lib/genalloc.c | 49 ++++++++++++++++++------------- 8 files changed, 39 insertions(+), 32 deletions(-) commit c0a294988322a804901fe24222027fe8a34defcb Author: Wei Yang Date: Fri Sep 4 15:47:38 2015 -0700 mm/memblock: WARN_ON when nid differs from overlap region Each memblock_region has nid to indicates the Node ID of this range. For the overlap case, memblock_add_range() inserts the lower part and leave the upper part as indicated in the overlapped region. If the nid of the new range differs from the overlapped region, the information recorded is not correct. This patch adds a WARN_ON when the nid of the new range differs from the overlapped region. Signed-off-by: Wei Yang Acked-by: David Rientjes Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memblock.c | 3 +++ 1 file changed, 3 insertions(+) commit c7e1e3ccfbd153c890240a391f258efaedfa94d0 Author: Mel Gorman Date: Fri Sep 4 15:47:38 2015 -0700 Documentation/features/vm: add feature description and arch support status for batched TLB flush after unmap Signed-off-by: Mel Gorman Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/features/vm/TLB/arch-support.txt | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit d950c9477d51f0cefc2ed3cf76e695d46af0d9c1 Author: Mel Gorman Date: Fri Sep 4 15:47:35 2015 -0700 mm: defer flush of writable TLB entries If a PTE is unmapped and it's dirty then it was writable recently. Due to deferred TLB flushing, it's best to assume a writable TLB cache entry exists. With that assumption, the TLB must be flushed before any IO can start or the page is freed to avoid lost writes or data corruption. This patch defers flushing of potentially writable TLBs as long as possible. Signed-off-by: Mel Gorman Reviewed-by: Rik van Riel Cc: Dave Hansen Acked-by: Ingo Molnar Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/sched.h | 7 +++++++ mm/internal.h | 4 ++++ mm/rmap.c | 28 +++++++++++++++++++++------- mm/vmscan.c | 7 ++++++- 4 files changed, 38 insertions(+), 8 deletions(-) commit 72b252aed506b8f1a03f7abd29caef4cdf6a043b Author: Mel Gorman Date: Fri Sep 4 15:47:32 2015 -0700 mm: send one IPI per CPU to TLB flush all entries after unmapping pages An IPI is sent to flush remote TLBs when a page is unmapped that was potentially accesssed by other CPUs. There are many circumstances where this happens but the obvious one is kswapd reclaiming pages belonging to a running process as kswapd and the task are likely running on separate CPUs. On small machines, this is not a significant problem but as machine gets larger with more cores and more memory, the cost of these IPIs can be high. This patch uses a simple structure that tracks CPUs that potentially have TLB entries for pages being unmapped. When the unmapping is complete, the full TLB is flushed on the assumption that a refill cost is lower than flushing individual entries. Architectures wishing to do this must give the following guarantee. If a clean page is unmapped and not immediately flushed, the architecture must guarantee that a write to that linear address from a CPU with a cached TLB entry will trap a page fault. This is essentially what the kernel already depends on but the window is much larger with this patch applied and is worth highlighting. The architecture should consider whether the cost of the full TLB flush is higher than sending an IPI to flush each individual entry. An additional architecture helper called flush_tlb_local is required. It's a trivial wrapper with some accounting in the x86 case. The impact of this patch depends on the workload as measuring any benefit requires both mapped pages co-located on the LRU and memory pressure. The case with the biggest impact is multiple processes reading mapped pages taken from the vm-scalability test suite. The test case uses NR_CPU readers of mapped files that consume 10*RAM. Linear mapped reader on a 4-node machine with 64G RAM and 48 CPUs 4.2.0-rc1 4.2.0-rc1 vanilla flushfull-v7 Ops lru-file-mmap-read-elapsed 159.62 ( 0.00%) 120.68 ( 24.40%) Ops lru-file-mmap-read-time_range 30.59 ( 0.00%) 2.80 ( 90.85%) Ops lru-file-mmap-read-time_stddv 6.70 ( 0.00%) 0.64 ( 90.38%) 4.2.0-rc1 4.2.0-rc1 vanilla flushfull-v7 User 581.00 611.43 System 5804.93 4111.76 Elapsed 161.03 122.12 This is showing that the readers completed 24.40% faster with 29% less system CPU time. From vmstats, it is known that the vanilla kernel was interrupted roughly 900K times per second during the steady phase of the test and the patched kernel was interrupts 180K times per second. The impact is lower on a single socket machine. 4.2.0-rc1 4.2.0-rc1 vanilla flushfull-v7 Ops lru-file-mmap-read-elapsed 25.33 ( 0.00%) 20.38 ( 19.54%) Ops lru-file-mmap-read-time_range 0.91 ( 0.00%) 1.44 (-58.24%) Ops lru-file-mmap-read-time_stddv 0.28 ( 0.00%) 0.47 (-65.34%) 4.2.0-rc1 4.2.0-rc1 vanilla flushfull-v7 User 58.09 57.64 System 111.82 76.56 Elapsed 27.29 22.55 It's still a noticeable improvement with vmstat showing interrupts went from roughly 500K per second to 45K per second. The patch will have no impact on workloads with no memory pressure or have relatively few mapped pages. It will have an unpredictable impact on the workload running on the CPU being flushed as it'll depend on how many TLB entries need to be refilled and how long that takes. Worst case, the TLB will be completely cleared of active entries when the target PFNs were not resident at all. [sasha.levin@oracle.com: trace tlb flush after disabling preemption in try_to_unmap_flush] Signed-off-by: Mel Gorman Reviewed-by: Rik van Riel Cc: Dave Hansen Acked-by: Ingo Molnar Cc: Linus Torvalds Signed-off-by: Sasha Levin Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/Kconfig | 1 + arch/x86/include/asm/tlbflush.h | 6 +++ include/linux/rmap.h | 3 ++ include/linux/sched.h | 16 +++++++ init/Kconfig | 10 ++++ mm/internal.h | 11 +++++ mm/rmap.c | 104 +++++++++++++++++++++++++++++++++++++++- mm/vmscan.c | 23 ++++++++- 8 files changed, 172 insertions(+), 2 deletions(-) commit 5b74283ab251b9db55cbbe31d19ca72482103290 Author: Mel Gorman Date: Fri Sep 4 15:47:29 2015 -0700 x86, mm: trace when an IPI is about to be sent When unmapping pages it is necessary to flush the TLB. If that page was accessed by another CPU then an IPI is used to flush the remote CPU. That is a lot of IPIs if kswapd is scanning and unmapping >100K pages per second. There already is a window between when a page is unmapped and when it is TLB flushed. This series increases the window so multiple pages can be flushed using a single IPI. This should be safe or the kernel is hosed already. Patch 1 simply made the rest of the series easier to write as ftrace could identify all the senders of TLB flush IPIS. Patch 2 tracks what CPUs potentially map a PFN and then sends an IPI to flush the entire TLB. Patch 3 tracks when there potentially are writable TLB entries that need to be batched differently Patch 4 increases SWAP_CLUSTER_MAX to further batch flushes The performance impact is documented in the changelogs but in the optimistic case on a 4-socket machine the full series reduces interrupts from 900K interrupts/second to 60K interrupts/second. This patch (of 4): It is easy to trace when an IPI is received to flush a TLB but harder to detect what event sent it. This patch makes it easy to identify the source of IPIs being transmitted for TLB flushes on x86. Signed-off-by: Mel Gorman Reviewed-by: Rik van Riel Reviewed-by: Dave Hansen Acked-by: Ingo Molnar Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/mm/tlb.c | 1 + include/linux/mm_types.h | 1 + include/trace/events/tlb.h | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) commit c47174fc362a089b1125174258e53ef4a69ce6b8 Author: Andrea Arcangeli Date: Fri Sep 4 15:47:23 2015 -0700 userfaultfd: selftest This test allocates two virtual areas and bounces the physical memory across the two virtual areas using only userfaultfd. Signed-off-by: Andrea Arcangeli Cc: Pavel Emelyanov Cc: Dave Hansen Cc: Linus Torvalds Cc: Shuah Khan Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/vm/Makefile | 3 + tools/testing/selftests/vm/run_vmtests | 11 + tools/testing/selftests/vm/userfaultfd.c | 636 +++++++++++++++++++++++++++++++ 3 files changed, 650 insertions(+) commit 2c5b7e1be74ff0175dedbbd325abe9f0dbbb09ae Author: Andrea Arcangeli Date: Fri Sep 4 15:47:23 2015 -0700 userfaultfd: avoid missing wakeups during refile in userfaultfd_read During the refile in userfaultfd_read both waitqueues could look empty to the lockless wake_userfault(). Use a seqcount to prevent this false negative that could leave an userfault blocked. Signed-off-by: Andrea Arcangeli Cc: Pavel Emelyanov Cc: Dave Hansen Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 230c92a8797e0e717c6732de0fffdd5726c0f48f Author: Andrea Arcangeli Date: Fri Sep 4 15:47:20 2015 -0700 userfaultfd: propagate the full address in THP faults The THP faults were not propagating the original fault address. The latest version of the API with uffd.arg.pagefault.address is supposed to propagate the full address through THP faults. This was not a kernel crashing bug and it wouldn't risk to corrupt user memory, but it would cause a SIGBUS failure because the wrong page was being copied. For various reasons this wasn't easily reproducible in the qemu workload, but the strestest exposed the problem immediately. Signed-off-by: Andrea Arcangeli Cc: Pavel Emelyanov Cc: Dave Hansen Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit dfa37dc3fc1f6f81a6900d0e561c02362f4817f6 Author: Andrea Arcangeli Date: Fri Sep 4 15:47:18 2015 -0700 userfaultfd: allow signals to interrupt a userfault This is only simple to achieve if the userfault is going to return to userland (not to the kernel) because we can avoid returning VM_FAULT_RETRY despite we temporarily released the mmap_sem. The fault would just be retried by userland then. This is safe at least on x86 and powerpc (the two archs with the syscall implemented so far). Hint to verify for which archs this is safe: after handle_mm_fault returns, no access to data structures protected by the mmap_sem must be done by the fault code in arch/*/mm/fault.c until up_read(&mm->mmap_sem) is called. This has two main benefits: signals can run with lower latency in production (signals aren't blocked by userfaults and userfaults are immediately repeated after signal processing) and gdb can then trivially debug the threads blocked in this kind of userfaults coming directly from userland. On a side note: while gdb has a need to get signal processed, coredumps always worked perfectly with userfaults, no matter if the userfault is triggered by GUP a kernel copy_user or directly from userland. Signed-off-by: Andrea Arcangeli Cc: Pavel Emelyanov Cc: Dave Hansen Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) commit e6485a47b758cae04a496764a1095961ee3249e4 Author: Andrea Arcangeli Date: Fri Sep 4 15:47:15 2015 -0700 userfaultfd: require UFFDIO_API before other ioctls UFFDIO_API was already forced before read/poll could work. This makes the code more strict to force it also for all other ioctls. All users would already have been required to call UFFDIO_API before invoking other ioctls but this makes it more explicit. This will ensure we can change all ioctls (all but UFFDIO_API/struct uffdio_api) with a bump of uffdio_api.api. There's no actual plan or need to change the API or the ioctl, the current API already should cover fine even the non cooperative usage, but this is just for the longer term future just in case. Signed-off-by: Andrea Arcangeli Cc: Pavel Emelyanov Cc: Dave Hansen Cc: Linus Torvalds Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ad465cae96b456b48d26c96f27a0577ba443472a Author: Andrea Arcangeli Date: Fri Sep 4 15:47:11 2015 -0700 userfaultfd: UFFDIO_COPY and UFFDIO_ZEROPAGE These two ioctl allows to either atomically copy or to map zeropages into the virtual address space. This is used by the thread that opened the userfaultfd to resolve the userfaults. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) commit b6ebaedb4cb1a18220ae626c3a9e184ee39dd248 Author: Andrea Arcangeli Date: Fri Sep 4 15:47:08 2015 -0700 userfaultfd: avoid mmap_sem read recursion in mcopy_atomic If the rwsem starves writers it wasn't strictly a bug but lockdep doesn't like it and this avoids depending on lowlevel implementation details of the lock. [akpm@linux-foundation.org: delete weird BUILD_BUG_ON()] Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/userfaultfd.c | 91 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 26 deletions(-) commit c1a4de99fada21e2e9251e52cbb51eff5aadc757 Author: Andrea Arcangeli Date: Fri Sep 4 15:47:04 2015 -0700 userfaultfd: mcopy_atomic|mfill_zeropage: UFFDIO_COPY|UFFDIO_ZEROPAGE preparation This implements mcopy_atomic and mfill_zeropage that are the lowlevel VM methods that are invoked respectively by the UFFDIO_COPY and UFFDIO_ZEROPAGE userfaultfd commands. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/userfaultfd_k.h | 6 + mm/Makefile | 1 + mm/userfaultfd.c | 269 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 276 insertions(+) commit 1f1c6f075904c241f9e44eb37efa8777141fc938 Author: Andrea Arcangeli Date: Fri Sep 4 15:47:01 2015 -0700 userfaultfd: UFFDIO_COPY|UFFDIO_ZEROPAGE uAPI This implements the uABI of UFFDIO_COPY and UFFDIO_ZEROPAGE. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/uapi/linux/userfaultfd.h | 42 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) commit 1380fca084743fef8d17e59b273473393944ce58 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:58 2015 -0700 userfaultfd: activate syscall This activates the userfaultfd syscall. [sfr@canb.auug.org.au: activate syscall fix] [akpm@linux-foundation.org: don't enable userfaultfd on powerpc] Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/entry/syscalls/syscall_32.tbl | 1 + arch/x86/entry/syscalls/syscall_64.tbl | 1 + include/linux/syscalls.h | 1 + kernel/sys_ni.c | 1 + 4 files changed, 4 insertions(+) commit a14c151e567cb2c3e62611da808a8bdab86fdee5 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:54 2015 -0700 userfaultfd: buildsystem activation This allows to select the userfaultfd during configuration to build it. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/Makefile | 1 + init/Kconfig | 11 +++++++++++ 2 files changed, 12 insertions(+) commit 8d2afd96c20316d112e04d935d9e09150e988397 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:51 2015 -0700 userfaultfd: solve the race between UFFDIO_COPY|ZEROPAGE and read Solve in-kernel the race between UFFDIO_COPY|ZEROPAGE and userfaultfd_read if they are run on different threads simultaneously. Until now qemu solved the race in userland: the race was explicitly and intentionally left for userland to solve. However we can also solve it in kernel. Requiring all users to solve this race if they use two threads (one for the background transfer and one for the userfault reads) isn't very attractive from an API prospective, furthermore this allows to remove a whole bunch of mutex and bitmap code from qemu, making it faster. The cost of __get_user_pages_fast should be insignificant considering it scales perfectly and the pagetables are already hot in the CPU cache, compared to the overhead in userland to maintain those structures. Applying this patch is backwards compatible with respect to the userfaultfd userland API, however reverting this change wouldn't be backwards compatible anymore. Without this patch qemu in the background transfer thread, has to read the old state, and do UFFDIO_WAKE if old_state is missing but it become REQUESTED by the time it tries to set it to RECEIVED (signaling the other side received an userfault). vcpu background_thr userfault_thr ----- ----- ----- vcpu0 handle_mm_fault() postcopy_place_page read old_state -> MISSING UFFDIO_COPY 0x7fb76a139000 (no wakeup, still pending) vcpu0 fault at 0x7fb76a139000 enters handle_userfault poll() is kicked poll() -> POLLIN read() -> 0x7fb76a139000 postcopy_pmi_change_state(MISSING, REQUESTED) -> REQUESTED tmp_state = postcopy_pmi_change_state(old_state, RECEIVED) -> REQUESTED /* check that no userfault raced with UFFDIO_COPY */ if (old_state == MISSING && tmp_state == REQUESTED) UFFDIO_WAKE from background thread And a second case where a UFFDIO_WAKE would be needed is in the userfault thread: vcpu background_thr userfault_thr ----- ----- ----- vcpu0 handle_mm_fault() postcopy_place_page read old_state -> MISSING UFFDIO_COPY 0x7fb76a139000 (no wakeup, still pending) tmp_state = postcopy_pmi_change_state(old_state, RECEIVED) -> RECEIVED vcpu0 fault at 0x7fb76a139000 enters handle_userfault poll() is kicked poll() -> POLLIN read() -> 0x7fb76a139000 if (postcopy_pmi_change_state(MISSING, REQUESTED) == RECEIVED) UFFDIO_WAKE from userfault thread This patch removes the need of both UFFDIO_WAKE and of the associated per-page tristate as well. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 81 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 66 insertions(+), 15 deletions(-) commit 3004ec9cabf49f43fae2b2bd1855a4720f1def7a Author: Andrea Arcangeli Date: Fri Sep 4 15:46:48 2015 -0700 userfaultfd: allocate the userfaultfd_ctx cacheline aligned Use proper slab to guarantee alignment. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) commit 15b726ef048b31a24b3fefb6863083a25fe34800 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:44 2015 -0700 userfaultfd: optimize read() and poll() to be O(1) This makes read O(1) and poll that was already O(1) becomes lockless. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 185 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 111 insertions(+), 74 deletions(-) commit ba85c702e4b247393ffe9e3fbc13d8aee7b02059 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:41 2015 -0700 userfaultfd: wake pending userfaults This is an optimization but it's a userland visible one and it affects the API. The downside of this optimization is that if you call poll() and you get POLLIN, read(ufd) may still return -EAGAIN. The blocked userfault may be waken by a different thread, before read(ufd) comes around. This in short means that poll() isn't really usable if the userfaultfd is opened in blocking mode. userfaults won't wait in "pending" state to be read anymore and any UFFDIO_WAKE or similar operations that has the objective of waking userfaults after their resolution, will wake all blocked userfaults for the resolved range, including those that haven't been read() by userland yet. The behavior of poll() becomes not standard, but this obviates the need of "spurious" UFFDIO_WAKE and it lets the userland threads to restart immediately without requiring an UFFDIO_WAKE. This is even more significant in case of repeated faults on the same address from multiple threads. This optimization is justified by the measurement that the number of spurious UFFDIO_WAKE accounts for 5% and 10% of the total userfaults for heavy workloads, so it's worth optimizing those away. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 65 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 22 deletions(-) commit a9b85f9415fd9e529d03299e5335433f614ec1fb Author: Andrea Arcangeli Date: Fri Sep 4 15:46:37 2015 -0700 userfaultfd: change the read API to return a uffd_msg I had requests to return the full address (not the page aligned one) to userland. It's not entirely clear how the page offset could be relevant because userfaults aren't like SIGBUS that can sigjump to a different place and it actually skip resolving the fault depending on a page offset. There's currently no real way to skip the fault especially because after a UFFDIO_COPY|ZEROPAGE, the fault is optimized to be retried within the kernel without having to return to userland first (not even self modifying code replacing the .text that touched the faulting address would prevent the fault to be repeated). Userland cannot skip repeating the fault even more so if the fault was triggered by a KVM secondary page fault or any get_user_pages or any copy-user inside some syscall which will return to kernel code. The second time FAULT_FLAG_RETRY_NOWAIT won't be set leading to a SIGBUS being raised because the userfault can't wait if it cannot release the mmap_map first (and FAULT_FLAG_RETRY_NOWAIT is required for that). Still returning userland a proper structure during the read() on the uffd, can allow to use the current UFFD_API for the future non-cooperative extensions too and it looks cleaner as well. Once we get additional fields there's no point to return the fault address page aligned anymore to reuse the bits below PAGE_SHIFT. The only downside is that the read() syscall will read 32bytes instead of 8bytes but that's not going to be measurable overhead. The total number of new events that can be extended or of new future bits for already shipped events, is limited to 64 by the features field of the uffdio_api structure. If more will be needed a bump of UFFD_API will be required. [akpm@linux-foundation.org: use __packed] Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/userfaultfd.txt | 12 +++--- fs/userfaultfd.c | 79 +++++++++++++++++++++++----------------- include/uapi/linux/userfaultfd.h | 70 +++++++++++++++++++++++++++-------- 3 files changed, 108 insertions(+), 53 deletions(-) commit 3f602d2724b1f7d2d27ddcd7963a040a5890fd16 Author: Pavel Emelyanov Date: Fri Sep 4 15:46:34 2015 -0700 userfaultfd: Rename uffd_api.bits into .features This is (seems to be) the minimal thing that is required to unblock standard uffd usage from the non-cooperative one. Now more bits can be added to the features field indicating e.g. UFFD_FEATURE_FORK and others needed for the latter use-case. Signed-off-by: Pavel Emelyanov Signed-off-by: Andrea Arcangeli Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 4 ++-- include/uapi/linux/userfaultfd.h | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) commit 86039bd3b4e6a1129318cbfed4e0a6e001656635 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:31 2015 -0700 userfaultfd: add new syscall to provide memory externalization Once an userfaultfd has been created and certain region of the process virtual address space have been registered into it, the thread responsible for doing the memory externalization can manage the page faults in userland by talking to the kernel using the userfaultfd protocol. poll() can be used to know when there are new pending userfaults to be read (POLLIN). Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Cc: Dan Carpenter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/userfaultfd.c | 1036 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1036 insertions(+) commit c1294d05de5df1ab8c93aa13c531782ede907e14 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:27 2015 -0700 userfaultfd: prevent khugepaged to merge if userfaultfd is armed If userfaultfd is armed on a certain vma we can't "fill" the holes with zeroes or we'll break the userland on demand paging. The holes if the userfault is armed, are really missing information (not zeroes) that the userland has to load from network or elsewhere. The same issue happens for wrprotected ptes that we can't just convert into a single writable pmd_trans_huge. We could however in theory still merge across zeropages if only VM_UFFD_MISSING is set (so if VM_UFFD_WP is not set)... that could be slightly improved but it'd be much more complex code for a tiny corner case. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 19a809afe2fe089317226bbe5c5a1ce7f53dcdca Author: Andrea Arcangeli Date: Fri Sep 4 15:46:24 2015 -0700 userfaultfd: teach vma_merge to merge across vma->vm_userfaultfd_ctx vma->vm_userfaultfd_ctx is yet another vma parameter that vma_merge must be aware about so that we can merge vmas back like they were originally before arming the userfaultfd on some memory range. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm.h | 2 +- mm/madvise.c | 3 ++- mm/mempolicy.c | 4 ++-- mm/mlock.c | 3 ++- mm/mmap.c | 40 +++++++++++++++++++++++++++------------- mm/mprotect.c | 3 ++- 6 files changed, 36 insertions(+), 19 deletions(-) commit 6b251fc96cf2cdf1ce4b5db055547e2a5679bc77 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:20 2015 -0700 userfaultfd: call handle_userfault() for userfaultfd_missing() faults This is where the page faults must be modified to call handle_userfault() if userfaultfd_missing() is true (so if the vma->vm_flags had VM_UFFD_MISSING set). handle_userfault() then takes care of blocking the page fault and delivering it to userland. The fault flags must also be passed as parameter so the "read|write" kind of fault can be passed to userland. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/huge_memory.c | 69 ++++++++++++++++++++++++++++++++++++++------------------ mm/memory.c | 16 +++++++++++++ 2 files changed, 63 insertions(+), 22 deletions(-) commit 16ba6f811dfe44bc14f7946a4b257b85476fc16e Author: Andrea Arcangeli Date: Fri Sep 4 15:46:17 2015 -0700 userfaultfd: add VM_UFFD_MISSING and VM_UFFD_WP These two flags gets set in vma->vm_flags to tell the VM common code if the userfaultfd is armed and in which mode (only tracking missing faults, only tracking wrprotect faults or both). If neither flags is set it means the userfaultfd is not armed on the vma. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/task_mmu.c | 2 ++ include/linux/mm.h | 2 ++ kernel/fork.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) commit 745f234be12b6191b15eae8dd415cc81a9137f47 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:14 2015 -0700 userfaultfd: add vm_userfaultfd_ctx to the vm_area_struct This adds the vm_userfaultfd_ctx to the vm_area_struct. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/mm_types.h | 11 +++++++++++ kernel/fork.c | 1 + 2 files changed, 12 insertions(+) commit 932b18e0aec65acb089f4bd8761ee85e70f8eb6a Author: Andrea Arcangeli Date: Fri Sep 4 15:46:10 2015 -0700 userfaultfd: linux/userfaultfd_k.h Kernel header defining the methods needed by the VM common code to interact with the userfaultfd. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/userfaultfd_k.h | 79 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) commit 1038628d80e96e3a086189172d9be8eb85ecfabf Author: Andrea Arcangeli Date: Fri Sep 4 15:46:04 2015 -0700 userfaultfd: uAPI Defines the uAPI of the userfaultfd, notably the ioctl numbers and protocol. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/ioctl/ioctl-number.txt | 1 + include/uapi/linux/Kbuild | 1 + include/uapi/linux/userfaultfd.h | 83 ++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) commit 51360155eccb907ff8635bd10fc7de876408c2e0 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:04 2015 -0700 userfaultfd: waitqueue: add nr wake parameter to __wake_up_locked_key userfaultfd needs to wake all waitqueues (pass 0 as nr parameter), instead of the current hardcoded 1 (that would wake just the first waitqueue in the head list). Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/wait.h | 5 +++-- kernel/sched/wait.c | 7 ++++--- net/sunrpc/sched.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) commit 25edd8bffd0f7563f0c04c1d219eb89061ce9886 Author: Andrea Arcangeli Date: Fri Sep 4 15:46:00 2015 -0700 userfaultfd: linux/Documentation/vm/userfaultfd.txt This is the latest userfaultfd patchset. The postcopy live migration feature on the qemu side is mostly ready to be merged and it entirely depends on the userfaultfd syscall to be merged as well. So it'd be great if this patchset could be reviewed for merging in -mm. Userfaults allow to implement on demand paging from userland and more generally they allow userland to more efficiently take control of the behavior of page faults than what was available before (PROT_NONE + SIGSEGV trap). The use cases are: 1) KVM postcopy live migration (one form of cloud memory externalization). KVM postcopy live migration is the primary driver of this work: http://blog.zhaw.ch/icclab/setting-up-post-copy-live-migration-in-openstack/ http://lists.gnu.org/archive/html/qemu-devel/2015-02/msg04873.html 2) postcopy live migration of binaries inside linux containers: http://thread.gmane.org/gmane.linux.kernel.mm/132662 3) KVM postcopy live snapshotting (allowing to limit/throttle the memory usage, unlike fork would, plus the avoidance of fork overhead in the first place). While the wrprotect tracking is not implemented yet, the syscall API is already contemplating the wrprotect fault tracking and it's generic enough to allow its later implementation in a backwards compatible fashion. 4) KVM userfaults on shared memory. The UFFDIO_COPY lowlevel method should be extended to work also on tmpfs and then the uffdio_register.ioctls will notify userland that UFFDIO_COPY is available even when the registered virtual memory range is tmpfs backed. 5) alternate mechanism to notify web browsers or apps on embedded devices that volatile pages have been reclaimed. This basically avoids the need to run a syscall before the app can access with the CPU the virtual regions marked volatile. This depends on point 4) to be fulfilled first, as volatile pages happily apply to tmpfs. Even though there wasn't a real use case requesting it yet, it also allows to implement distributed shared memory in a way that readonly shared mappings can exist simultaneously in different hosts and they can be become exclusive at the first wrprotect fault. This patch (of 22): Add documentation. Signed-off-by: Andrea Arcangeli Acked-by: Pavel Emelyanov Cc: Sanidhya Kashyap Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" Cc: Andres Lagar-Cavilla Cc: Dave Hansen Cc: Paolo Bonzini Cc: Rik van Riel Cc: Mel Gorman Cc: Andy Lutomirski Cc: Hugh Dickins Cc: Peter Feiner Cc: "Dr. David Alan Gilbert" Cc: Johannes Weiner Cc: "Huangpeng (Peter)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Documentation/vm/userfaultfd.txt | 142 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) commit 2d16e0fd3265b42648d267b7adb837db9798edaf Author: Daniel Borkmann Date: Fri Sep 4 15:45:57 2015 -0700 mm/slab.h: fix argument order in cache_from_obj's error message While debugging a networking issue, I hit a condition that triggered an object to be freed into the wrong kmem cache, and thus triggered the warning in cache_from_obj(). The arguments in the error message are in wrong order: the location of the object's kmem cache is in cachep, not s. Signed-off-by: Daniel Borkmann Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slab.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 45eb00cd3a034b8448f52fd9074e9b2b11d857c1 Author: Joonsoo Kim Date: Fri Sep 4 15:45:54 2015 -0700 mm/slub: don't wait for high-order page allocation Description is almost copied from commit fb05e7a89f50 ("net: don't wait for order-3 page allocation"). I saw excessive direct memory reclaim/compaction triggered by slub. This causes performance issues and add latency. Slub uses high-order allocation to reduce internal fragmentation and management overhead. But, direct memory reclaim/compaction has high overhead and the benefit of high-order allocation can't compensate the overhead of both work. This patch makes auxiliary high-order allocation atomic. If there is no memory pressure and memory isn't fragmented, the alloction will still success, so we don't sacrifice high-order allocation's benefit here. If the atomic allocation fails, direct memory reclaim/compaction will not be triggered, allocation fallback to low-order immediately, hence the direct memory reclaim/compaction overhead is avoided. In the allocation failure case, kswapd is waken up and trying to make high-order freepages, so allocation could success next time. Following is the test to measure effect of this patch. System: QEMU, CPU 8, 512 MB Mem: 25% memory is allocated at random position to make fragmentation. Memory-hogger occupies 150 MB memory. Workload: hackbench -g 20 -l 1000 Average result by 10 runs (Base va Patched) elapsed_time(s): 4.3468 vs 2.9838 compact_stall: 461.7 vs 73.6 pgmigrate_success: 28315.9 vs 7256.1 Signed-off-by: Joonsoo Kim Cc: Christoph Lameter Cc: Pekka Enberg Acked-by: David Rientjes Cc: Shaohua Li Cc: Vlastimil Babka Cc: Michal Hocko Cc: Eric Dumazet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 2 ++ 1 file changed, 2 insertions(+) commit 80da026a8e5da83b6ab029807844587960490e2b Author: Konstantin Khlebnikov Date: Fri Sep 4 15:45:51 2015 -0700 mm/slub: fix slab double-free in case of duplicate sysfs filename sysfs_slab_add() shouldn't call kobject_put at error path: this puts last reference of kmem-cache kobject and frees it. Kmem cache will be freed second time at error path in kmem_cache_create(). For example this happens when slub debug was enabled in runtime and somebody creates new kmem cache: # echo 1 | tee /sys/kernel/slab/*/sanity_checks # modprobe configfs "configfs_dir_cache" cannot be merged because existing slab have debug and cannot create new slab because unique name ":t-0000096" already taken. Signed-off-by: Konstantin Khlebnikov Acked-by: Christoph Lameter Cc: Pekka Enberg Acked-by: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 588f8ba913d35a667407afa29444bf2f94e03d19 Author: Thomas Gleixner Date: Fri Sep 4 15:45:48 2015 -0700 mm/slub: move slab initialization into irq enabled region Initializing a new slab can introduce rather large latencies because most of the initialization runs always with interrupts disabled. There is no point in doing so. The newly allocated slab is not visible yet, so there is no reason to protect it against concurrent alloc/free. Move the expensive parts of the initialization into allocate_slab(), so for all allocations with GFP_WAIT set, interrupts are enabled. Signed-off-by: Thomas Gleixner Acked-by: Christoph Lameter Cc: Pekka Enberg Acked-by: David Rientjes Cc: Joonsoo Kim Cc: Sebastian Andrzej Siewior Cc: Steven Rostedt Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 89 ++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 42 insertions(+), 47 deletions(-) commit 3eed034d045ce93a40e232a6bd5f86127342053a Author: Jesper Dangaard Brouer Date: Fri Sep 4 15:45:45 2015 -0700 slub: add support for kmem_cache_debug in bulk calls Per request of Joonsoo Kim adding kmem debug support. I've tested that when debugging is disabled, then there is almost no performance impact as this code basically gets removed by the compiler. Need some guidance in enabling and testing this. bulk- PREVIOUS - THIS-PATCH 1 - 43 cycles(tsc) 10.811 ns - 44 cycles(tsc) 11.236 ns improved -2.3% 2 - 27 cycles(tsc) 6.867 ns - 28 cycles(tsc) 7.019 ns improved -3.7% 3 - 21 cycles(tsc) 5.496 ns - 22 cycles(tsc) 5.526 ns improved -4.8% 4 - 24 cycles(tsc) 6.038 ns - 19 cycles(tsc) 4.786 ns improved 20.8% 8 - 17 cycles(tsc) 4.280 ns - 18 cycles(tsc) 4.572 ns improved -5.9% 16 - 17 cycles(tsc) 4.483 ns - 18 cycles(tsc) 4.658 ns improved -5.9% 30 - 18 cycles(tsc) 4.531 ns - 18 cycles(tsc) 4.568 ns improved 0.0% 32 - 58 cycles(tsc) 14.586 ns - 65 cycles(tsc) 16.454 ns improved -12.1% 34 - 53 cycles(tsc) 13.391 ns - 63 cycles(tsc) 15.932 ns improved -18.9% 48 - 65 cycles(tsc) 16.268 ns - 50 cycles(tsc) 12.506 ns improved 23.1% 64 - 53 cycles(tsc) 13.440 ns - 63 cycles(tsc) 15.929 ns improved -18.9% 128 - 79 cycles(tsc) 19.899 ns - 86 cycles(tsc) 21.583 ns improved -8.9% 158 - 90 cycles(tsc) 22.732 ns - 90 cycles(tsc) 22.552 ns improved 0.0% 250 - 95 cycles(tsc) 23.916 ns - 98 cycles(tsc) 24.589 ns improved -3.2% Signed-off-by: Jesper Dangaard Brouer Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) commit fbd02630c6e3c60feecc4688f5f98b015d264516 Author: Jesper Dangaard Brouer Date: Fri Sep 4 15:45:43 2015 -0700 slub: initial bulk free implementation This implements SLUB specific kmem_cache_free_bulk(). SLUB allocator now both have bulk alloc and free implemented. Choose to reenable local IRQs while calling slowpath __slab_free(). In worst case, where all objects hit slowpath call, the performance should still be faster than fallback function __kmem_cache_free_bulk(), because local_irq_{disable+enable} is very fast (7-cycles), while the fallback invokes this_cpu_cmpxchg() which is slightly slower (9-cycles). Nitpicking, this should be faster for N>=4, due to the entry cost of local_irq_{disable+enable}. Do notice that the save+restore variant is very expensive, this is key to why this optimization works. CPU: i7-4790K CPU @ 4.00GHz * local_irq_{disable,enable}: 7 cycles(tsc) - 1.821 ns * local_irq_{save,restore} : 37 cycles(tsc) - 9.443 ns Measurements on CPU CPU i7-4790K @ 4.00GHz Baseline normal fastpath (alloc+free cost): 43 cycles(tsc) 10.834 ns Bulk- fallback - this-patch 1 - 58 cycles(tsc) 14.542 ns - 43 cycles(tsc) 10.811 ns improved 25.9% 2 - 50 cycles(tsc) 12.659 ns - 27 cycles(tsc) 6.867 ns improved 46.0% 3 - 48 cycles(tsc) 12.168 ns - 21 cycles(tsc) 5.496 ns improved 56.2% 4 - 47 cycles(tsc) 11.987 ns - 24 cycles(tsc) 6.038 ns improved 48.9% 8 - 46 cycles(tsc) 11.518 ns - 17 cycles(tsc) 4.280 ns improved 63.0% 16 - 45 cycles(tsc) 11.366 ns - 17 cycles(tsc) 4.483 ns improved 62.2% 30 - 45 cycles(tsc) 11.433 ns - 18 cycles(tsc) 4.531 ns improved 60.0% 32 - 75 cycles(tsc) 18.983 ns - 58 cycles(tsc) 14.586 ns improved 22.7% 34 - 71 cycles(tsc) 17.940 ns - 53 cycles(tsc) 13.391 ns improved 25.4% 48 - 80 cycles(tsc) 20.077 ns - 65 cycles(tsc) 16.268 ns improved 18.8% 64 - 71 cycles(tsc) 17.799 ns - 53 cycles(tsc) 13.440 ns improved 25.4% 128 - 91 cycles(tsc) 22.980 ns - 79 cycles(tsc) 19.899 ns improved 13.2% 158 - 100 cycles(tsc) 25.241 ns - 90 cycles(tsc) 22.732 ns improved 10.0% 250 - 102 cycles(tsc) 25.583 ns - 95 cycles(tsc) 23.916 ns improved 6.9% Signed-off-by: Jesper Dangaard Brouer Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) commit ebe909e0fdb34b980c5cf636c495e4f0bb0dfda8 Author: Jesper Dangaard Brouer Date: Fri Sep 4 15:45:40 2015 -0700 slub: improve bulk alloc strategy Call slowpath __slab_alloc() from within the bulk loop, as the side-effect of this call likely repopulates c->freelist. Choose to reenable local IRQs while calling slowpath. Saving some optimizations for later. E.g. it is possible to extract parts of __slab_alloc() and avoid the unnecessary and expensive (37 cycles) local_irq_{save,restore}. For now, be happy calling __slab_alloc() this lower icache impact of this func and I don't have to worry about correctness. Measurements on CPU CPU i7-4790K @ 4.00GHz Baseline normal fastpath (alloc+free cost): 42 cycles(tsc) 10.601 ns Bulk- fallback - this-patch 1 - 58 cycles(tsc) 14.516 ns - 49 cycles(tsc) 12.459 ns improved 15.5% 2 - 51 cycles(tsc) 12.930 ns - 38 cycles(tsc) 9.605 ns improved 25.5% 3 - 49 cycles(tsc) 12.274 ns - 34 cycles(tsc) 8.525 ns improved 30.6% 4 - 48 cycles(tsc) 12.058 ns - 32 cycles(tsc) 8.036 ns improved 33.3% 8 - 46 cycles(tsc) 11.609 ns - 31 cycles(tsc) 7.756 ns improved 32.6% 16 - 45 cycles(tsc) 11.451 ns - 32 cycles(tsc) 8.148 ns improved 28.9% 30 - 79 cycles(tsc) 19.865 ns - 68 cycles(tsc) 17.164 ns improved 13.9% 32 - 76 cycles(tsc) 19.212 ns - 66 cycles(tsc) 16.584 ns improved 13.2% 34 - 74 cycles(tsc) 18.600 ns - 63 cycles(tsc) 15.954 ns improved 14.9% 48 - 88 cycles(tsc) 22.092 ns - 77 cycles(tsc) 19.373 ns improved 12.5% 64 - 80 cycles(tsc) 20.043 ns - 68 cycles(tsc) 17.188 ns improved 15.0% 128 - 99 cycles(tsc) 24.818 ns - 89 cycles(tsc) 22.404 ns improved 10.1% 158 - 99 cycles(tsc) 24.977 ns - 92 cycles(tsc) 23.089 ns improved 7.1% 250 - 106 cycles(tsc) 26.552 ns - 99 cycles(tsc) 24.785 ns improved 6.6% Signed-off-by: Jesper Dangaard Brouer Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 994eb764ec5ad57c9b7c5e72b892205039a84b69 Author: Jesper Dangaard Brouer Date: Fri Sep 4 15:45:37 2015 -0700 slub bulk alloc: extract objects from the per cpu slab First piece: acceleration of retrieval of per cpu objects If we are allocating lots of objects then it is advantageous to disable interrupts and avoid the this_cpu_cmpxchg() operation to get these objects faster. Note that we cannot do the fast operation if debugging is enabled, because we would have to add extra code to do all the debugging checks. And it would not be fast anyway. Note also that the requirement of having interrupts disabled avoids having to do processor flag operations. Allocate as many objects as possible in the fast way and then fall back to the generic implementation for the rest of the objects. Measurements on CPU CPU i7-4790K @ 4.00GHz Baseline normal fastpath (alloc+free cost): 42 cycles(tsc) 10.554 ns Bulk- fallback - this-patch 1 - 57 cycles(tsc) 14.432 ns - 48 cycles(tsc) 12.155 ns improved 15.8% 2 - 50 cycles(tsc) 12.746 ns - 37 cycles(tsc) 9.390 ns improved 26.0% 3 - 48 cycles(tsc) 12.180 ns - 33 cycles(tsc) 8.417 ns improved 31.2% 4 - 48 cycles(tsc) 12.015 ns - 32 cycles(tsc) 8.045 ns improved 33.3% 8 - 46 cycles(tsc) 11.526 ns - 30 cycles(tsc) 7.699 ns improved 34.8% 16 - 45 cycles(tsc) 11.418 ns - 32 cycles(tsc) 8.205 ns improved 28.9% 30 - 80 cycles(tsc) 20.246 ns - 73 cycles(tsc) 18.328 ns improved 8.8% 32 - 79 cycles(tsc) 19.946 ns - 72 cycles(tsc) 18.208 ns improved 8.9% 34 - 78 cycles(tsc) 19.659 ns - 71 cycles(tsc) 17.987 ns improved 9.0% 48 - 86 cycles(tsc) 21.516 ns - 82 cycles(tsc) 20.566 ns improved 4.7% 64 - 93 cycles(tsc) 23.423 ns - 89 cycles(tsc) 22.480 ns improved 4.3% 128 - 100 cycles(tsc) 25.170 ns - 99 cycles(tsc) 24.871 ns improved 1.0% 158 - 102 cycles(tsc) 25.549 ns - 101 cycles(tsc) 25.375 ns improved 1.0% 250 - 101 cycles(tsc) 25.344 ns - 100 cycles(tsc) 25.182 ns improved 1.0% Signed-off-by: Christoph Lameter Signed-off-by: Jesper Dangaard Brouer Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) commit 484748f0b65a1950b2b93f444a2287e8dd2cedd6 Author: Christoph Lameter Date: Fri Sep 4 15:45:34 2015 -0700 slab: infrastructure for bulk object allocation and freeing Add the basic infrastructure for alloc/free operations on pointer arrays. It includes a generic function in the common slab code that is used in this infrastructure patch to create the unoptimized functionality for slab bulk operations. Allocators can then provide optimized allocation functions for situations in which large numbers of objects are needed. These optimization may avoid taking locks repeatedly and bypass metadata creation if all objects in slab pages can be used to provide the objects required. Allocators can extend the skeletons provided and add their own code to the bulk alloc and free functions. They can keep the generic allocation and freeing and just fall back to those if optimizations would not work (like for example when debugging is on). Signed-off-by: Christoph Lameter Signed-off-by: Jesper Dangaard Brouer Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/slab.h | 10 ++++++++++ mm/slab.c | 13 +++++++++++++ mm/slab.h | 9 +++++++++ mm/slab_common.c | 23 +++++++++++++++++++++++ mm/slob.c | 13 +++++++++++++ mm/slub.c | 14 ++++++++++++++ 6 files changed, 82 insertions(+) commit 2ae44005b678431a5c7a55dafcd09421ba3fadf0 Author: Jesper Dangaard Brouer Date: Fri Sep 4 15:45:31 2015 -0700 slub: fix spelling succedd to succeed With this patchset the SLUB allocator now has both bulk alloc and free implemented. This patchset mostly optimizes the "fastpath" where objects are available on the per CPU fastpath page. This mostly amortize the less-heavy none-locked cmpxchg_double used on fastpath. The "fallback" bulking (e.g __kmem_cache_free_bulk) provides a good basis for comparison. Measurements[1] of the fallback functions __kmem_cache_{free,alloc}_bulk have been copied from slab_common.c and forced "noinline" to force a function call like slab_common.c. Measurements on CPU CPU i7-4790K @ 4.00GHz Baseline normal fastpath (alloc+free cost): 42 cycles(tsc) 10.601 ns Measurements last-patch with disabled debugging: Bulk- fallback - this-patch 1 - 57 cycles(tsc) 14.448 ns - 44 cycles(tsc) 11.236 ns improved 22.8% 2 - 51 cycles(tsc) 12.768 ns - 28 cycles(tsc) 7.019 ns improved 45.1% 3 - 48 cycles(tsc) 12.232 ns - 22 cycles(tsc) 5.526 ns improved 54.2% 4 - 48 cycles(tsc) 12.025 ns - 19 cycles(tsc) 4.786 ns improved 60.4% 8 - 46 cycles(tsc) 11.558 ns - 18 cycles(tsc) 4.572 ns improved 60.9% 16 - 45 cycles(tsc) 11.458 ns - 18 cycles(tsc) 4.658 ns improved 60.0% 30 - 45 cycles(tsc) 11.499 ns - 18 cycles(tsc) 4.568 ns improved 60.0% 32 - 79 cycles(tsc) 19.917 ns - 65 cycles(tsc) 16.454 ns improved 17.7% 34 - 78 cycles(tsc) 19.655 ns - 63 cycles(tsc) 15.932 ns improved 19.2% 48 - 68 cycles(tsc) 17.049 ns - 50 cycles(tsc) 12.506 ns improved 26.5% 64 - 80 cycles(tsc) 20.009 ns - 63 cycles(tsc) 15.929 ns improved 21.3% 128 - 94 cycles(tsc) 23.749 ns - 86 cycles(tsc) 21.583 ns improved 8.5% 158 - 97 cycles(tsc) 24.299 ns - 90 cycles(tsc) 22.552 ns improved 7.2% 250 - 102 cycles(tsc) 25.681 ns - 98 cycles(tsc) 24.589 ns improved 3.9% Benchmarking shows impressive improvements in the "fastpath" with a small number of objects in the working set. Once the working set increases, resulting in activating the "slowpath" (that contains the heavier locked cmpxchg_double) the improvement decreases. I'm currently working on also optimizing the "slowpath" (as network stack use-case hits this), but this patchset should provide a good foundation for further improvements. Rest of my patch queue in this area needs some more work, but preliminary results are good. I'm attending Netfilter Workshop[2] next week, and I'll hopefully return working on further improvements in this area. This patch (of 6): s/succedd/succeed/ Signed-off-by: Jesper Dangaard Brouer Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/slub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec6a90661a0d6ce1461d05c7a58a0a151154e14a Author: Ulrich Obergfell Date: Fri Sep 4 15:45:28 2015 -0700 watchdog: rename watchdog_suspend() and watchdog_resume() Rename watchdog_suspend() to lockup_detector_suspend() and watchdog_resume() to lockup_detector_resume() to avoid confusion with the watchdog subsystem and to be consistent with the existing name lockup_detector_init(). Also provide comment blocks to explain the watchdog_running and watchdog_suspended variables and their relationship. Signed-off-by: Ulrich Obergfell Reviewed-by: Aaron Tomlin Cc: Guenter Roeck Cc: Don Zickus Cc: Ulrich Obergfell Cc: Jiri Olsa Cc: Michal Hocko Cc: Stephane Eranian Cc: Chris Metcalf Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/cpu/perf_event_intel.c | 4 ++-- include/linux/nmi.h | 8 ++++---- kernel/watchdog.c | 26 ++++++++++++++++++++++---- 3 files changed, 28 insertions(+), 10 deletions(-) commit 999bbe49ea0118b70ddf3f5d679f51dc7a97ae55 Author: Ulrich Obergfell Date: Fri Sep 4 15:45:25 2015 -0700 watchdog: use suspend/resume interface in fixup_ht_bug() Remove watchdog_nmi_disable_all() and watchdog_nmi_enable_all() since these functions are no longer needed. If a subsystem has a need to deactivate the watchdog temporarily, it should utilize the watchdog_suspend() and watchdog_resume() functions. [akpm@linux-foundation.org: fix build with CONFIG_LOCKUP_DETECTOR=m] Signed-off-by: Ulrich Obergfell Reviewed-by: Aaron Tomlin Cc: Guenter Roeck Cc: Don Zickus Cc: Ulrich Obergfell Cc: Jiri Olsa Cc: Michal Hocko Cc: Stephane Eranian Cc: Chris Metcalf Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/cpu/perf_event_intel.c | 7 +++++-- include/linux/nmi.h | 13 +++++++++---- kernel/watchdog.c | 35 ---------------------------------- 3 files changed, 14 insertions(+), 41 deletions(-) commit d4bdd0b21c7652a8271f873cc755486b255c1bbd Author: Ulrich Obergfell Date: Fri Sep 4 15:45:21 2015 -0700 watchdog: use park/unpark functions in update_watchdog_all_cpus() Remove update_watchdog() and restart_watchdog_hrtimer() since these functions are no longer needed. Changes of parameters such as the sample period are honored at the time when the watchdog threads are being unparked. Signed-off-by: Ulrich Obergfell Reviewed-by: Aaron Tomlin Cc: Guenter Roeck Cc: Don Zickus Cc: Ulrich Obergfell Cc: Jiri Olsa Cc: Michal Hocko Cc: Stephane Eranian Cc: Chris Metcalf Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/watchdog.c | 40 ++-------------------------------------- 1 file changed, 2 insertions(+), 38 deletions(-) commit 8c073d27d7ad293bf734cc8475689413afadab81 Author: Ulrich Obergfell Date: Fri Sep 4 15:45:18 2015 -0700 watchdog: introduce watchdog_suspend() and watchdog_resume() This interface can be utilized to deactivate the hard and soft lockup detector temporarily. Callers are expected to minimize the duration of deactivation. Multiple deactivations are allowed to occur in parallel but should be rare in practice. [akpm@linux-foundation.org: remove unneeded static initialization] Signed-off-by: Ulrich Obergfell Reviewed-by: Aaron Tomlin Cc: Guenter Roeck Cc: Don Zickus Cc: Ulrich Obergfell Cc: Jiri Olsa Cc: Michal Hocko Cc: Stephane Eranian Cc: Chris Metcalf Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/nmi.h | 2 ++ kernel/watchdog.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) commit 81a4beef91ba4a9e8ad6054ca9933dff7e25ff28 Author: Ulrich Obergfell Date: Fri Sep 4 15:45:15 2015 -0700 watchdog: introduce watchdog_park_threads() and watchdog_unpark_threads() Originally watchdog_nmi_enable(cpu) and watchdog_nmi_disable(cpu) were only called in watchdog thread context. However, the following commits utilize these functions outside of watchdog thread context too. commit 9809b18fcf6b8d8ec4d3643677345907e6b50eca Author: Michal Hocko Date: Tue Sep 24 15:27:30 2013 -0700 watchdog: update watchdog_thresh properly commit b3738d29323344da3017a91010530cf3a58590fc Author: Stephane Eranian Date: Mon Nov 17 20:07:03 2014 +0100 watchdog: Add watchdog enable/disable all functions Hence, it is now possible that these functions execute concurrently with the same 'cpu' argument. This concurrency is problematic because per-cpu 'watchdog_ev' can be accessed/modified without adequate synchronization. The patch series aims to address the above problem. However, instead of introducing locks to protect per-cpu 'watchdog_ev' a different approach is taken: Invoke these functions by parking and unparking the watchdog threads (to ensure they are always called in watchdog thread context). static struct smp_hotplug_thread watchdog_threads = { ... .park = watchdog_disable, // calls watchdog_nmi_disable() .unpark = watchdog_enable, // calls watchdog_nmi_enable() }; Both previously mentioned commits call these functions in a similar way and thus in principle contain some duplicate code. The patch series also avoids this duplication by providing a commonly usable mechanism. - Patch 1/4 introduces the watchdog_{park|unpark}_threads functions that park/unpark all watchdog threads specified in 'watchdog_cpumask'. They are intended to be called inside of kernel/watchdog.c only. - Patch 2/4 introduces the watchdog_{suspend|resume} functions which can be utilized by external callers to deactivate the hard and soft lockup detector temporarily. - Patch 3/4 utilizes watchdog_{park|unpark}_threads to replace some code that was introduced by commit 9809b18fcf6b8d8ec4d3643677345907e6b50eca. - Patch 4/4 utilizes watchdog_{suspend|resume} to replace some code that was introduced by commit b3738d29323344da3017a91010530cf3a58590fc. A few corner cases should be mentioned here for completeness. - kthread_park() of watchdog/N could hang if cpu N is already locked up. However, if watchdog is enabled the lockup will be detected anyway. - kthread_unpark() of watchdog/N could hang if cpu N got locked up after kthread_park(). The occurrence of this scenario should be _very_ rare in practice, in particular because it is not expected that temporary deactivation will happen frequently, and if it happens at all it is expected that the duration of deactivation will be short. This patch (of 4): introduce watchdog_park_threads() and watchdog_unpark_threads() These functions are intended to be used only from inside kernel/watchdog.c to park/unpark all watchdog threads that are specified in watchdog_cpumask. Signed-off-by: Ulrich Obergfell Reviewed-by: Aaron Tomlin Cc: Guenter Roeck Cc: Don Zickus Cc: Ulrich Obergfell Cc: Jiri Olsa Cc: Michal Hocko Cc: Stephane Eranian Cc: Chris Metcalf Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/watchdog.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit aacfbe6a9724bb6d66a656a5abcc681d5649ed92 Author: Guenter Roeck Date: Fri Sep 4 15:45:12 2015 -0700 kernel/watchdog: move NMI function header declarations from watchdog.h to nmi.h The kernel's NMI watchdog has nothing to do with the watchdog subsystem. Its header declarations should be in linux/nmi.h, not linux/watchdog.h. The code provided two sets of dummy functions if HARDLOCKUP_DETECTOR is not configured, one in the include file and one in kernel/watchdog.c. Remove the dummy functions from kernel/watchdog.c and use those from the include file. Signed-off-by: Guenter Roeck Cc: Stephane Eranian Cc: Peter Zijlstra (Intel) Cc: Ingo Molnar Cc: Don Zickus Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/x86/kernel/cpu/perf_event_intel.c | 2 +- include/linux/nmi.h | 8 +++++--- include/linux/watchdog.h | 8 -------- kernel/watchdog.c | 2 -- 4 files changed, 6 insertions(+), 14 deletions(-) commit 314b08ff5205420d956d14657e16d92c460a6f21 Author: Frederic Weisbecker Date: Fri Sep 4 15:45:09 2015 -0700 watchdog: simplify housekeeping affinity with the appropriate mask housekeeping_mask gathers all the CPUs that aren't part of the nohz_full set. This is exactly what we want the watchdog to be affine to without the need to use complicated cpumask operations. Signed-off-by: Frederic Weisbecker Reviewed-by: Chris Metcalf Cc: Thomas Gleixner Cc: Chris Metcalf Cc: Don Zickus Cc: Peter Zijlstra Cc: Ulrich Obergfell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/watchdog.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 230ec93909f00678401cb2d63b8b95f1dea68e40 Author: Frederic Weisbecker Date: Fri Sep 4 15:45:06 2015 -0700 smpboot: allow passing the cpumask on per-cpu thread registration It makes the registration cheaper and simpler for the smpboot per-cpu kthread users that don't need to always update the cpumask after threads creation. [sfr@canb.auug.org.au: fix for allow passing the cpumask on per-cpu thread registration] Signed-off-by: Frederic Weisbecker Reviewed-by: Chris Metcalf Reviewed-by: Thomas Gleixner Cc: Chris Metcalf Cc: Don Zickus Cc: Peter Zijlstra Cc: Ulrich Obergfell Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/smpboot.h | 11 ++++++++++- kernel/smpboot.c | 14 +++++++++----- kernel/watchdog.c | 9 +++------ 3 files changed, 22 insertions(+), 12 deletions(-) commit 3dd08c0c918f9bf058572ddbf26e7d6fb5674a5c Author: Frederic Weisbecker Date: Fri Sep 4 15:45:03 2015 -0700 smpboot: make cleanup to mirror setup The per-cpu kthread cleanup() callback is the mirror of the setup() callback. When the per-cpu kthread is started, it first calls setup() to initialize the resources which are then released by cleanup() when the kthread exits. Now since the introduction of a per-cpu kthread cpumask, the kthreads excluded by the cpumask on boot may happen to be parked immediately after their creation without taking the setup() stage, waiting to be asked to unpark to do so. Then when smpboot_unregister_percpu_thread() is later called, the kthread is stopped without having ever called setup(). But this triggers a bug as the kthread unconditionally calls cleanup() on exit but this doesn't mirror any setup(). Thus the kernel crashes because we try to free resources that haven't been initialized, as in the watchdog case: WATCHDOG disable 0 WATCHDOG disable 1 WATCHDOG disable 2 BUG: unable to handle kernel NULL pointer dereference at (null) IP: hrtimer_active+0x26/0x60 [...] Call Trace: hrtimer_try_to_cancel+0x1c/0x280 hrtimer_cancel+0x1d/0x30 watchdog_disable+0x56/0x70 watchdog_cleanup+0xe/0x10 smpboot_thread_fn+0x23c/0x2c0 kthread+0xf8/0x110 ret_from_fork+0x3f/0x70 This bug is currently masked with explicit kthread unparking before kthread_stop() on smpboot_destroy_threads(). This forces a call to setup() and then unpark(). We could fix this by unconditionally calling setup() on kthread entry. But setup() isn't always cheap. In the case of watchdog it launches hrtimer, perf events, etc... So we may as well like to skip it if there are chances the kthread will never be used, as in a reduced cpumask value. So let's simply do a state machine check before calling cleanup() that makes sure setup() has been called before mirroring it. And remove the nasty hack workaround. Signed-off-by: Frederic Weisbecker Reviewed-by: Chris Metcalf Reviewed-by: Thomas Gleixner Cc: Chris Metcalf Cc: Don Zickus Cc: Peter Zijlstra Cc: Ulrich Obergfell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/smpboot.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 5869b5064b0950afc447610c0f5d4134b71d9e94 Author: Frederic Weisbecker Date: Fri Sep 4 15:45:00 2015 -0700 smpboot: fix memory leak on error handling The cpumask is allocated before threads get created. If the latter step fails, we need to free the cpumask. Signed-off-by: Frederic Weisbecker Reviewed-by: Chris Metcalf Reviewed-by: Thomas Gleixner Cc: Chris Metcalf Cc: Don Zickus Cc: Peter Zijlstra Cc: Ulrich Obergfell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds kernel/smpboot.c | 1 + 1 file changed, 1 insertion(+) commit a068acf2ee77693e0bf39d6e07139ba704f461c3 Author: Kees Cook Date: Fri Sep 4 15:44:57 2015 -0700 fs: create and use seq_show_option for escaping Many file systems that implement the show_options hook fail to correctly escape their output which could lead to unescaped characters (e.g. new lines) leaking into /proc/mounts and /proc/[pid]/mountinfo files. This could lead to confusion, spoofed entries (resulting in things like systemd issuing false d-bus "mount" notifications), and who knows what else. This looks like it would only be the root user stepping on themselves, but it's possible weird things could happen in containers or in other situations with delegated mount privileges. Here's an example using overlay with setuid fusermount trusting the contents of /proc/mounts (via the /etc/mtab symlink). Imagine the use of "sudo" is something more sneaky: $ BASE="ovl" $ MNT="$BASE/mnt" $ LOW="$BASE/lower" $ UP="$BASE/upper" $ WORK="$BASE/work/ 0 0 none /proc fuse.pwn user_id=1000" $ mkdir -p "$LOW" "$UP" "$WORK" $ sudo mount -t overlay -o "lowerdir=$LOW,upperdir=$UP,workdir=$WORK" none /mnt $ cat /proc/mounts none /root/ovl/mnt overlay rw,relatime,lowerdir=ovl/lower,upperdir=ovl/upper,workdir=ovl/work/ 0 0 none /proc fuse.pwn user_id=1000 0 0 $ fusermount -u /proc $ cat /proc/mounts cat: /proc/mounts: No such file or directory This fixes the problem by adding new seq_show_option and seq_show_option_n helpers, and updating the vulnerable show_option handlers to use them as needed. Some, like SELinux, need to be open coded due to unusual existing escape mechanisms. [akpm@linux-foundation.org: add lost chunk, per Kees] [keescook@chromium.org: seq_show_option should be using const parameters] Signed-off-by: Kees Cook Acked-by: Serge Hallyn Acked-by: Jan Kara Acked-by: Paul Moore Cc: J. R. Okajima Signed-off-by: Kees Cook Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ceph/super.c | 2 +- fs/cifs/cifsfs.c | 6 +++--- fs/ext4/super.c | 4 ++-- fs/gfs2/super.c | 6 +++--- fs/hfs/super.c | 4 ++-- fs/hfsplus/options.c | 4 ++-- fs/hostfs/hostfs_kern.c | 2 +- fs/ocfs2/super.c | 4 ++-- fs/overlayfs/super.c | 6 +++--- fs/reiserfs/super.c | 8 +++++--- fs/xfs/xfs_super.c | 4 ++-- include/linux/seq_file.h | 35 +++++++++++++++++++++++++++++++++++ kernel/cgroup.c | 7 ++++--- net/ceph/ceph_common.c | 7 +++++-- security/selinux/hooks.c | 2 +- 15 files changed, 71 insertions(+), 30 deletions(-) commit 46359295a352e01a5a017297c70b7ee0c5da6de6 Author: Joseph Qi Date: Fri Sep 4 15:44:54 2015 -0700 ocfs2: clean up redundant NULL checks before kfree NULL check before kfree is redundant and so clean them up. Signed-off-by: Joseph Qi Reviewed-by: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 2 +- fs/ocfs2/suballoc.c | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) commit 7ecef14ab1db961545354fa443749aeda2ea1b75 Author: Joe Perches Date: Fri Sep 4 15:44:51 2015 -0700 ocfs2: neaten do_error, ocfs2_error and ocfs2_abort These uses sometimes do and sometimes don't have '\n' terminations. Make the uses consistently use '\n' terminations and remove the newline from the functions. Miscellanea: o Coalesce formats o Realign arguments Signed-off-by: Joe Perches Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 86 ++++++++++++++++++------------------------------- fs/ocfs2/aops.c | 4 +-- fs/ocfs2/dir.c | 49 +++++++++++++--------------- fs/ocfs2/extent_map.c | 22 +++++++------ fs/ocfs2/inode.c | 18 +++++------ fs/ocfs2/journal.c | 2 +- fs/ocfs2/localalloc.c | 3 +- fs/ocfs2/move_extents.c | 5 ++- fs/ocfs2/quota_local.c | 3 +- fs/ocfs2/refcounttree.c | 53 +++++++++++++----------------- fs/ocfs2/suballoc.c | 75 ++++++++++++++++++++---------------------- fs/ocfs2/super.c | 4 +-- fs/ocfs2/super.h | 6 ++-- fs/ocfs2/xattr.c | 35 +++++++++----------- 14 files changed, 163 insertions(+), 202 deletions(-) commit d0c97d52f5e1de125394d748be7bd5763fd9ed9e Author: Xue jiufei Date: Fri Sep 4 15:44:48 2015 -0700 ocfs2: do not set fs read-only if rec[0] is empty while committing truncate While appending an extent to a file, it will call these functions: ocfs2_insert_extent -> call ocfs2_grow_tree() if there's no free rec -> ocfs2_add_branch add a new branch to extent tree, now rec[0] in the leaf of rightmost path is empty -> ocfs2_do_insert_extent -> ocfs2_rotate_tree_right -> ocfs2_extend_rotate_transaction -> jbd2_journal_restart if jbd2_journal_extend fail -> ocfs2_insert_path -> ocfs2_extend_trans -> jbd2_journal_restart if jbd2_journal_extend fail -> ocfs2_insert_at_leaf -> ocfs2_et_update_clusters Function jbd2_journal_restart() may be called and it may happened that buffers dirtied in ocfs2_add_branch() are committed while buffers dirtied in ocfs2_insert_at_leaf() and ocfs2_et_update_clusters() are not. So an empty rec[0] is left in rightmost path which will cause read-only filesystem when call ocfs2_commit_truncate() with the error message: "Inode %lu has an empty extent record". This is not a serious problem, so remove the rightmost path when call ocfs2_commit_truncate(). Signed-off-by: joyce.xue Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) commit 7f27ec978b0ef37391262bbf15c587fd8526e268 Author: yangwenfang Date: Fri Sep 4 15:44:45 2015 -0700 ocfs2: call ocfs2_journal_access_di() before ocfs2_journal_dirty() in ocfs2_write_end_nolock() 1: After we call ocfs2_journal_access_di() in ocfs2_write_begin(), jbd2_journal_restart() may also be called, in this function transaction A's t_updates-- and obtains a new transaction B. If jbd2_journal_commit_transaction() is happened to commit transaction A, when t_updates==0, it will continue to complete commit and unfile buffer. So when jbd2_journal_dirty_metadata(), the handle is pointed a new transaction B, and the buffer head's journal head is already freed, jh->b_transaction == NULL, jh->b_next_transaction == NULL, it returns EINVAL, So it triggers the BUG_ON(status). thread 1 jbd2 ocfs2_write_begin jbd2_journal_commit_transaction ocfs2_write_begin_nolock ocfs2_start_trans jbd2__journal_start(t_updates+1, transaction A) ocfs2_journal_access_di ocfs2_write_cluster_by_desc ocfs2_mark_extent_written ocfs2_change_extent_flag ocfs2_split_extent ocfs2_extend_rotate_transaction jbd2_journal_restart (t_updates-1,transaction B) t_updates==0 __jbd2_journal_refile_buffer (jh->b_transaction = NULL) ocfs2_write_end ocfs2_write_end_nolock ocfs2_journal_dirty jbd2_journal_dirty_metadata(bug) ocfs2_commit_trans 2. In ext4, I found that: jbd2_journal_get_write_access() called by ext4_write_end. ext4_write_begin ext4_journal_start __ext4_journal_start_sb ext4_journal_check_start jbd2__journal_start ext4_write_end ext4_mark_inode_dirty ext4_reserve_inode_write ext4_journal_get_write_access jbd2_journal_get_write_access ext4_mark_iloc_dirty ext4_do_update_inode ext4_handle_dirty_metadata jbd2_journal_dirty_metadata 3. So I think we should put ocfs2_journal_access_di before ocfs2_journal_dirty in the ocfs2_write_end. and it works well after my modification. Signed-off-by: vicky Reviewed-by: Mark Fasheh Cc: Joel Becker Cc: Zhangguanghui Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 40476b8294466d40e7db57b4cbf69a831a4486b8 Author: Tina Ruchandani Date: Fri Sep 4 15:44:43 2015 -0700 ocfs2: use 64bit variables to track heartbeat time o2hb_elapsed_msecs computes the time taken for a disk heartbeat. 'struct timeval' variables are used to store start and end times. On 32-bit systems, the 'tv_sec' component of 'struct timeval' will overflow in year 2038 and beyond. This patch solves the overflow with the following: 1. Replace o2hb_elapsed_msecs using 'ktime_t' values to measure start and end time, and built-in function 'ktime_ms_delta' to compute the elapsed time. ktime_get_real() is used since the code prints out the wallclock time. 2. Changes format string to print time as a single 64-bit nanoseconds value ("%lld") instead of seconds and microseconds. This simplifies the code since converting ktime_t to that format would need expensive computation. However, the debug log string is less readable than the previous format. Signed-off-by: Tina Ruchandani Suggested by: Arnd Bergmann Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/heartbeat.c | 49 ++++++++------------------------------------ 1 file changed, 9 insertions(+), 40 deletions(-) commit ad694821224634d46b6571f0161e85ac2e397396 Author: Joseph Qi Date: Fri Sep 4 15:44:40 2015 -0700 ocfs2: fix race between crashed dio and rm There is a race case between crashed dio and rm, which will lead to OCFS2_VALID_FL not set read-only. N1 N2 ------------------------------------------------------------------------ dd with direct flag rm file crashed with an dio entry left in orphan dir clear OCFS2_VALID_FL in ocfs2_remove_inode recover N1 and read the corrupted inode, and set filesystem read-only So we skip the inode deletion this time and wait for dio entry recovered first. Signed-off-by: Joseph Qi Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/inode.c | 9 +++++++++ fs/ocfs2/journal.c | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) commit f57a22ddecd6f26040a67e2c12880f98f88b6e00 Author: Yiwen Jiang Date: Fri Sep 4 15:44:37 2015 -0700 ocfs2: avoid access invalid address when read o2dlm debug messages The following case will lead to a lockres is freed but is still in use. cat /sys/kernel/debug/o2dlm/locking_state dlm_thread lockres_seq_start -> lock dlm->track_lock -> get resA resA->refs decrease to 0, call dlm_lockres_release, and wait for "cat" unlock. Although resA->refs is already set to 0, increase resA->refs, and then unlock lock dlm->track_lock -> list_del_init() -> unlock -> free resA In such a race case, invalid address access may occurs. So we should delete list res->tracking before resA->refs decrease to 0. Signed-off-by: Yiwen Jiang Reviewed-by: Joseph Qi Cc: Joel Becker Signed-off-by: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmmaster.c | 22 +++++++++++----------- fs/ocfs2/dlm/dlmthread.c | 10 ++++++++++ 2 files changed, 21 insertions(+), 11 deletions(-) commit 743b5f1434f57a147226c747fe228cadeb7b05ed Author: Tariq Saeed Date: Fri Sep 4 15:44:34 2015 -0700 ocfs2: take inode lock in ocfs2_iop_set/get_acl() This bug in mainline code is pointed out by Mark Fasheh. When ocfs2_iop_set_acl() and ocfs2_iop_get_acl() are entered from VFS layer, inode lock is not held. This seems to be regression from older kernels. The patch is to fix that. Orabug: 20189959 Signed-off-by: Tariq Saeed Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/acl.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit 3d46a44a0c01b15d385ccaae24b56f619613c256 Author: Tariq Saeed Date: Fri Sep 4 15:44:31 2015 -0700 ocfs2: fix BUG_ON() in ocfs2_ci_checkpointed() PID: 614 TASK: ffff882a739da580 CPU: 3 COMMAND: "ocfs2dc" #0 [ffff882ecc3759b0] machine_kexec at ffffffff8103b35d #1 [ffff882ecc375a20] crash_kexec at ffffffff810b95b5 #2 [ffff882ecc375af0] oops_end at ffffffff815091d8 #3 [ffff882ecc375b20] die at ffffffff8101868b #4 [ffff882ecc375b50] do_trap at ffffffff81508bb0 #5 [ffff882ecc375ba0] do_invalid_op at ffffffff810165e5 #6 [ffff882ecc375c40] invalid_op at ffffffff815116fb [exception RIP: ocfs2_ci_checkpointed+208] RIP: ffffffffa0a7e940 RSP: ffff882ecc375cf0 RFLAGS: 00010002 RAX: 0000000000000001 RBX: 000000000000654b RCX: ffff8812dc83f1f8 RDX: 00000000000017d9 RSI: ffff8812dc83f1f8 RDI: ffffffffa0b2c318 RBP: ffff882ecc375d20 R8: ffff882ef6ecfa60 R9: ffff88301f272200 R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffffffffff R13: ffff8812dc83f4f0 R14: 0000000000000000 R15: ffff8812dc83f1f8 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 #7 [ffff882ecc375d28] ocfs2_check_meta_downconvert at ffffffffa0a7edbd [ocfs2] #8 [ffff882ecc375d38] ocfs2_unblock_lock at ffffffffa0a84af8 [ocfs2] #9 [ffff882ecc375dc8] ocfs2_process_blocked_lock at ffffffffa0a85285 [ocfs2] #10 [ffff882ecc375e18] ocfs2_downconvert_thread_do_work at ffffffffa0a85445 [ocfs2] #11 [ffff882ecc375e68] ocfs2_downconvert_thread at ffffffffa0a854de [ocfs2] #12 [ffff882ecc375ee8] kthread at ffffffff81090da7 #13 [ffff882ecc375f48] kernel_thread_helper at ffffffff81511884 assert is tripped because the tran is not checkpointed and the lock level is PR. Some time ago, chmod command had been executed. As result, the following call chain left the inode cluster lock in PR state, latter on causing the assert. system_call_fastpath -> my_chmod -> sys_chmod -> sys_fchmodat -> notify_change -> ocfs2_setattr -> posix_acl_chmod -> ocfs2_iop_set_acl -> ocfs2_set_acl -> ocfs2_acl_set_mode Here is how. 1119 int ocfs2_setattr(struct dentry *dentry, struct iattr *attr) 1120 { 1247 ocfs2_inode_unlock(inode, 1); <<< WRONG thing to do. .. 1258 if (!status && attr->ia_valid & ATTR_MODE) { 1259 status = posix_acl_chmod(inode, inode->i_mode); 519 posix_acl_chmod(struct inode *inode, umode_t mode) 520 { .. 539 ret = inode->i_op->set_acl(inode, acl, ACL_TYPE_ACCESS); 287 int ocfs2_iop_set_acl(struct inode *inode, struct posix_acl *acl, ... 288 { 289 return ocfs2_set_acl(NULL, inode, NULL, type, acl, NULL, NULL); 224 int ocfs2_set_acl(handle_t *handle, 225 struct inode *inode, ... 231 { .. 252 ret = ocfs2_acl_set_mode(inode, di_bh, 253 handle, mode); 168 static int ocfs2_acl_set_mode(struct inode *inode, struct buffer_head ... 170 { 183 if (handle == NULL) { >>> BUG: inode lock not held in ex at this point <<< 184 handle = ocfs2_start_trans(OCFS2_SB(inode->i_sb), 185 OCFS2_INODE_UPDATE_CREDITS); ocfs2_setattr.#1247 we unlock and at #1259 call posix_acl_chmod. When we reach ocfs2_acl_set_mode.#181 and do trans, the inode cluster lock is not held in EX mode (it should be). How this could have happended? We are the lock master, were holding lock EX and have released it in ocfs2_setattr.#1247. Note that there are no holders of this lock at this point. Another node needs the lock in PR, and we downconvert from EX to PR. So the inode lock is PR when do the trans in ocfs2_acl_set_mode.#184. The trans stays in core (not flushed to disc). Now another node want the lock in EX, downconvert thread gets kicked (the one that tripped assert abovt), finds an unflushed trans but the lock is not EX (it is PR). If the lock was at EX, it would have flushed the trans ocfs2_ci_checkpointed -> ocfs2_start_checkpoint before downconverting (to NULL) for the request. ocfs2_setattr must not drop inode lock ex in this code path. If it does, takes it again before the trans, say in ocfs2_set_acl, another cluster node can get in between, execute another setattr, overwriting the one in progress on this node, resulting in a mode acl size combo that is a mix of the two. Orabug: 20189959 Signed-off-by: Tariq Saeed Reviewed-by: Mark Fasheh Cc: Joel Becker Cc: Joseph Qi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/file.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 72f6fe1fe5a386225cdc30f025681830a63a117e Author: Norton.Zhu Date: Fri Sep 4 15:44:28 2015 -0700 ocfs2: optimize error handling in dlm_request_join Currently error handling in dlm_request_join is a little obscure, so optimize it to promote readability. If packet.code is invalid, reset it to JOIN_DISALLOW to keep it meaningful. It only influences the log printing. Signed-off-by: Norton.Zhu Cc: Srinivas Eeda Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmdomain.c | 71 ++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 32 deletions(-) commit 928dda1f9433f024ac48c3d97ae683bf83dd0e42 Author: Yiwen Jiang Date: Fri Sep 4 15:44:25 2015 -0700 ocfs2: fix a tiny case that inode can not removed When running dirop_fileop_racer we found a case that inode can not removed. Two nodes, say Node A and Node B, mount the same ocfs2 volume. Create two dirs /race/1/ and /race/2/ in the filesystem. Node A Node B rm -r /race/2/ mv /race/1/ /race/2/ call ocfs2_unlink(), get the EX mode of /race/2/ wait for B unlock /race/2/ decrease i_nlink of /race/2/ to 0, and add inode of /race/2/ into orphan dir, unlock /race/2/ got EX mode of /race/2/. because /race/1/ is dir, so inc i_nlink of /race/2/ and update into disk, unlock /race/2/ because i_nlink of /race/2/ is not zero, this inode will always remain in orphan dir This patch fixes this case by test whether i_nlink of new dir is zero. Signed-off-by: Yiwen Jiang Reviewed-by: Mark Fasheh Cc: Joel Becker Cc: Joseph Qi Cc: Xue jiufei Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/namei.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6ab855a99b735c227ad1e0deda636833f41c5b87 Author: WeiWei Wang Date: Fri Sep 4 15:44:23 2015 -0700 ocfs2: add ip_alloc_sem in direct IO to protect allocation changes In ocfs2, ip_alloc_sem is used to protect allocation changes on the node. In direct IO, we add ip_alloc_sem to protect date consistent between direct-io and ocfs2_truncate_file race (buffer io use ip_alloc_sem already). Although inode->i_mutex lock is used to avoid concurrency of above situation, i think ip_alloc_sem is still needed because protect allocation changes is significant. Other filesystem like ext4 also uses rw_semaphore to protect data consistent between get_block-vs-truncate race by other means, So ip_alloc_sem in ocfs2 direct io is needed. Signed-off-by: Weiwei Wang Signed-off-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 34237681e02ad1617138926f437d0a147249ec13 Author: Goldwyn Rodrigues Date: Fri Sep 4 15:44:20 2015 -0700 ocfs2: clear the rest of the buffers on error In case a validation fails, clear the rest of the buffers and return the error to the calling function. This also facilitates bubbling up the error originating from ocfs2_error to calling functions. Signed-off-by: Goldwyn Rodrigues Reviewed-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/buffer_head_io.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 17a5b9ab32fe0464e7f556e28a2b49d2023fb533 Author: Goldwyn Rodrigues Date: Fri Sep 4 15:44:17 2015 -0700 ocfs2: acknowledge return value of ocfs2_error() Caveat: This may return -EROFS for a read case, which seems wrong. This is happening even without this patch series though. Should we convert EROFS to EIO? Signed-off-by: Goldwyn Rodrigues Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/alloc.c | 16 ++++++++-------- fs/ocfs2/dir.c | 25 +++++++++---------------- fs/ocfs2/inode.c | 8 ++++---- fs/ocfs2/move_extents.c | 3 +-- fs/ocfs2/refcounttree.c | 42 ++++++++++++++++++------------------------ fs/ocfs2/suballoc.c | 25 ++++++------------------- fs/ocfs2/xattr.c | 15 +++++---------- 7 files changed, 51 insertions(+), 83 deletions(-) commit 7d0fb9148ab6f52006de7cce18860227594ba872 Author: Goldwyn Rodrigues Date: Fri Sep 4 15:44:11 2015 -0700 ocfs2: add errors=continue OCFS2 is often used in high-availaibility systems. However, ocfs2 converts the filesystem to read-only at the drop of the hat. This may not be necessary, since turning the filesystem read-only would affect other running processes as well, decreasing availability. This attempt is to add errors=continue, which would return the EIO to the calling process and terminate furhter processing so that the filesystem is not corrupted further. However, the filesystem is not converted to read-only. As a future plan, I intend to create a small utility or extend fsck.ocfs2 to fix small errors such as in the inode. The input to the utility such as the inode can come from the kernel logs so we don't have to schedule a downtime for fixing small-enough errors. The patch changes the ocfs2_error to return an error. The error returned depends on the mount option set. If none is set, the default is to turn the filesystem read-only. Perhaps errors=continue is not the best option name. Historically it is used for making an attempt to progress in the current process itself. Should we call it errors=eio? or errors=killproc? Suggestions/Comments welcome. Sources are available at: https://github.com/goldwynr/linux/tree/error-cont Signed-off-by: Goldwyn Rodrigues Signed-off-by: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/ocfs2.h | 2 ++ fs/ocfs2/super.c | 63 +++++++++++++++++++++++++++++++++++++++----------------- fs/ocfs2/super.h | 2 +- 3 files changed, 47 insertions(+), 20 deletions(-) commit 513e2dae9422223072ed3887e91efebec2fc0a01 Author: Xue jiufei Date: Fri Sep 4 15:44:11 2015 -0700 ocfs2: flush inode data to disk and free inode when i_count becomes zero Disk inode deletion may be heavily delayed when one node unlink a file after the same dentry is freed on another node(say N1) because of memory shrink but inode is left in memory. This inode can only be freed while N1 doing the orphan scan work. However, N1 may skip orphan scan for several times because other nodes may do the work earlier. In our tests, it may take 1 hour on 4 nodes cluster and it hurts the user experience. So we think the inode should be freed after the data flushed to disk when i_count becomes zero to avoid such circumstances. Signed-off-by: Joyce.xue Cc: Joel Becker Reviewed-by: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/inode.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 0f5e7b41f91814447defc34e915fc5d6e52266d9 Author: Sanidhya Kashyap Date: Fri Sep 4 15:44:08 2015 -0700 ocfs2: trusted xattr missing CAP_SYS_ADMIN check The trusted extended attributes are only visible to the process which hvae CAP_SYS_ADMIN capability but the check is missing in ocfs2 xattr_handler trusted list. The check is important because this will be used for implementing mechanisms in the userspace for which other ordinary processes should not have access to. Signed-off-by: Sanidhya Kashyap Reviewed-by: Mark Fasheh Cc: Joel Becker Cc: Taesoo kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/xattr.c | 3 +++ 1 file changed, 3 insertions(+) commit 807a7907114c7c703017ed7a96477a2eeb0d08e0 Author: jiangyiwen Date: Fri Sep 4 15:44:06 2015 -0700 ocfs2: set filesytem read-only when ocfs2_delete_entry failed. In ocfs2_rename, it will lead to an inode with two entried(old and new) if ocfs2_delete_entry(old) failed. Thus, filesystem will be inconsistent. The case is described below: ocfs2_rename -> ocfs2_start_trans -> ocfs2_add_entry(new) -> ocfs2_delete_entry(old) -> __ocfs2_journal_access *failed* because of -ENOMEM -> ocfs2_commit_trans So filesystem should be set to read-only at the moment. Signed-off-by: Yiwen Jiang Cc: Joseph Qi Cc: Joel Becker Reviewed-by: Mark Fasheh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/namei.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit f83c7b5e9fd633fe91128af116e6472a8c4d29a5 Author: Joseph Qi Date: Fri Sep 4 15:44:03 2015 -0700 ocfs2/dlm: use list_for_each_entry instead of list_for_each Use list_for_each_entry instead of list_for_each to simplify code. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmrecovery.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 0e3d9eafb86183a33efc42f0beff5afceebbafba Author: Joseph Qi Date: Fri Sep 4 15:44:00 2015 -0700 ocfs2: remove unneeded code in dlm_register_domain_handlers The last goto statement is unneeded, so remove it. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmdomain.c | 2 -- 1 file changed, 2 deletions(-) commit cdd09f49cb271d95cbe69ef886459e0490040e98 Author: Joseph Qi Date: Fri Sep 4 15:43:57 2015 -0700 ocfs2: fix BUG when o2hb_register_callback fails In dlm_register_domain_handlers, if o2hb_register_callback fails, it will call dlm_unregister_domain_handlers to unregister. This will trigger the BUG_ON in o2hb_unregister_callback because hc_magic is 0. So we should call o2hb_setup_callback to initialize hc first. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlm/dlmdomain.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 914a9b74295774b92409fbc3e0abcfa9185d9469 Author: Joseph Qi Date: Fri Sep 4 15:43:54 2015 -0700 ocfs2: remove unneeded code in ocfs2_dlm_init status is already initialized and it will only be 0 or negatives in the code flow. So remove the unneeded assignment after the lable 'local'. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/dlmglue.c | 2 -- 1 file changed, 2 deletions(-) commit 3cb2ec43f63c42412a18620f1226eb4aa434a7a8 Author: Joseph Qi Date: Fri Sep 4 15:43:52 2015 -0700 ocfs2: adjust code to match locking/unlocking order Unlocking order in ocfs2_unlink and ocfs2_rename mismatches the corresponding locking order, although it won't cause issues, adjust the code so that it looks more reasonable. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/namei.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit bf59e6623a3a92a2bf428f2d6592c81aae6317e1 Author: Joseph Qi Date: Fri Sep 4 15:43:49 2015 -0700 ocfs2: clean up unused local variables in ocfs2_file_write_iter Since commit 86b9c6f3f891 ("ocfs2: remove filesize checks for sync I/O journal commit") removes filesize checks for sync I/O journal commit, variables old_size and old_clusters are not actually used any more. So clean them up. Signed-off-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/file.c | 9 --------- 1 file changed, 9 deletions(-) commit 372a447c4bb8271d128def5f93e3365d5d06b4d8 Author: Christophe JAILLET Date: Fri Sep 4 15:43:46 2015 -0700 ocfs2: do not log twice error messages 'o2hb_map_slot_data' and 'o2hb_populate_slot_data' are called from only one place, in 'o2hb_region_dev_write'. Return value is checked and 'mlog_errno' is called to log a message if it is not 0. So there is no need to call 'mlog_errno' directly within these functions. This would result on logging the message twice. Signed-off-by: Christophe JAILLET Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/cluster/heartbeat.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit acf8fdbe6afb084666df347602fe4258f1cf5fd5 Author: Joseph Qi Date: Fri Sep 4 15:43:43 2015 -0700 ocfs2: do not BUG if buffer not uptodate in __ocfs2_journal_access When storage network is unstable, it may trigger the BUG in __ocfs2_journal_access because of buffer not uptodate. We can retry the write in this case or return error instead of BUG. Signed-off-by: Joseph Qi Reported-by: Zhangguanghui Tested-by: Zhangguanghui Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/journal.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit faaebf18f831c1546bdc65ff8f49d2a73e675ded Author: Joseph Qi Date: Fri Sep 4 15:43:40 2015 -0700 ocfs2: fix several issues of append dio 1) Take rw EX lock in case of append dio. 2) Explicitly treat the error code -EIOCBQUEUED as normal. 3) Set di_bh to NULL after brelse if it may be used again later. Signed-off-by: Joseph Qi Cc: Yiwen Jiang Cc: Weiwei Wang Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 7 ++++++- fs/ocfs2/file.c | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) commit 512f62acbdf1ee81ce4882c85835f5420a1c304c Author: Joseph Qi Date: Fri Sep 4 15:43:37 2015 -0700 ocfs2: fix race between dio and recover orphan During direct io the inode will be added to orphan first and then deleted from orphan. There is a race window that the orphan entry will be deleted twice and thus trigger the BUG when validating OCFS2_DIO_ORPHANED_FL in ocfs2_del_inode_from_orphan. ocfs2_direct_IO_write ... ocfs2_add_inode_to_orphan >>>>>>>> race window. 1) another node may rm the file and then down, this node take care of orphan recovery and clear flag OCFS2_DIO_ORPHANED_FL. 2) since rw lock is unlocked, it may race with another orphan recovery and append dio. ocfs2_del_inode_from_orphan So take inode mutex lock when recovering orphans and make rw unlock at the end of aio write in case of append dio. Signed-off-by: Joseph Qi Reported-by: Yiwen Jiang Cc: Weiwei Wang Cc: Mark Fasheh Cc: Joel Becker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/aops.c | 9 ++++++--- fs/ocfs2/file.c | 2 +- fs/ocfs2/inode.h | 2 -- fs/ocfs2/journal.c | 8 ++++---- fs/ocfs2/namei.c | 42 +++++++++++++----------------------------- fs/ocfs2/super.c | 2 -- 6 files changed, 24 insertions(+), 41 deletions(-) commit 81cf09edc793688cbf53c3082802571e2018f3ac Author: Alexander Kuleshov Date: Fri Sep 4 15:43:35 2015 -0700 sh: use PFN_DOWN macro Replace ((x) >> PAGE_SHIFT) with the predefined PFN_DOWN macro. Signed-off-by: Alexander Kuleshov Acked-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds arch/sh/mm/init.c | 4 ++-- arch/sh/mm/numa.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 917520e100e1db5e8dd546dd94fef070a31652a5 Author: SF Markus Elfring Date: Fri Sep 4 15:43:32 2015 -0700 ntfs: delete unnecessary checks before calling iput() iput() tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Cc: Julia Lawall Reviewed-by: Anton Altaparmakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ntfs/super.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) commit 35108d71383c5f4abc286430c0b5da79d22553f9 Author: Zhao Lei Date: Fri Sep 4 15:43:29 2015 -0700 scripts/spelling.txt: add some typo-words I wrote a small script to show word-pair from all linux spelling-typo commits, and get following result by sort | uniq -c: 181 occured -> occurred 78 transfered -> transferred 67 recieved -> received 65 dependant -> dependent 58 wether -> whether 56 accomodate -> accommodate 54 occured -> occurred 51 recieve -> receive 47 cant -> can't 40 sucessfully -> successfully ... Some of them are not in spelling.txt, this patch adds the most common word-pairs into spelling.txt. Signed-off-by: Zhao Lei Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/spelling.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit e260fe01fa39eddb05bd8b70fad5bc9a129648f2 Author: Robert Jarzmik Date: Fri Sep 4 15:43:26 2015 -0700 scripts: decode_stacktrace: fix ARM architecture decoding Fix the stack decoder for the ARM architecture. An ARM stack is designed as : [ 81.547704] [] (bucket_find_contain) from [] (check_sync+0x40/0x4f8) [ 81.559668] [] (check_sync) from [] (debug_dma_sync_sg_for_cpu+0x128/0x194) [ 81.571583] [] (debug_dma_sync_sg_for_cpu) from [] (__videobuf_s The current script doesn't expect the symbols to be bound by parenthesis, and triggers the following errors : awk: cmd. line:1: error: Unmatched ( or \(: / (check_sync$/ [ 81.547704] (bucket_find_contain) from (check_sync+0x40/0x4f8) Fix it by chopping starting and ending parenthesis from the each symbol name. As a side note, this probably comes from the function dump_backtrace_entry(), which is implemented differently for each architecture. That makes a single decoding script a bit a challenge. Signed-off-by: Robert Jarzmik Cc: Sasha Levin Cc: Russell King Cc: Michal Marek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/decode_stacktrace.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit fa70900e0984792cc45a9e51c28684c3287058c2 Author: Jean Delvare Date: Fri Sep 4 15:43:24 2015 -0700 scripts/Lindent: handle missing indent gracefully If indent is not found, bail out immediately instead of spitting random shell script error messages. Signed-off-by: Jean Delvare Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/Lindent | 3 +++ 1 file changed, 3 insertions(+) commit d40e1e6532efbb40f8fc1f5af093063a3d186754 Author: Bart Van Assche Date: Fri Sep 4 15:43:21 2015 -0700 kerneldoc: Convert error messages to GNU error message format Editors like emacs and vi recognize a number of error message formats. The format used by the kerneldoc tool is not recognized by emacs. Change the kerneldoc error message format to the GNU style such that the emacs prev-error and next-error commands can be used to navigate through kerneldoc error messages. For more information about the GNU error message format, see also https://www.gnu.org/prep/standards/html_node/Errors.html. This patch has been generated via the following sed command: sed -i.orig 's/Error(\${file}:\$.):/\${file}:\$.: error:/g;s/Warning(\${file}:\$.):/\${file}:\$.: warning:/g;s/Warning(\${file}):/\${file}:1: warning:/g;s/Info(\${file}:\$.):/\${file}:\$.: info:/g' scripts/kernel-doc Signed-off-by: Bart Van Assche Cc: Johannes Berg Acked-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/kernel-doc | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit c22b6ae69ee93c1ecc6821847a8542163fbf3e1a Author: Sudip Mukherjee Date: Fri Sep 4 15:43:18 2015 -0700 scripts/spelling.txt: spelling of uninitialized I just did a spelling mistake of uninitialized and wrote that as unintialized. Fortunately I noticed it in my final review. Signed-off-by: Sudip Mukherjee Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/spelling.txt | 1 + 1 file changed, 1 insertion(+) commit 779a6ce877bf711323f998b3a7382cdbe7350d87 Author: Maninder Singh Date: Fri Sep 4 15:43:15 2015 -0700 scripts/spelling.txt: add misspelled words for check misspelled words for check:- chcek chck cehck I myself did these spell mistakes in changelog for patches, Thus suggesting to add in spelling.txt, so that checkpatch.pl warns it earlier. References:- ./arch/powerpc/kernel/exceptions-64e.S:456: . . . make sure you chcek https://lkml.org/lkml/2015/6/25/289 ./arch/x86/mm/pageattr.c:1368: * No need to cehck in that case [akpm@linux-foundation.org: add whcih->which, whcih I always get wrong] Signed-off-by: Maninder Singh Acked-by: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds scripts/spelling.txt | 4 ++++ 1 file changed, 4 insertions(+) commit 4712e722f91457e60723b9cef6265a74290efba9 Author: Jan Kara Date: Fri Sep 4 15:43:12 2015 -0700 fsnotify: get rid of fsnotify_destroy_mark_locked() fsnotify_destroy_mark_locked() is subtle to use because it temporarily releases group->mark_mutex. To avoid future problems with this function, split it into two. fsnotify_detach_mark() is the part that needs group->mark_mutex and fsnotify_free_mark() is the part that must be called outside of group->mark_mutex. This way it's much clearer what's going on and we also avoid some pointless acquisitions of group->mark_mutex. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/dnotify/dnotify.c | 14 +++++--- fs/notify/fanotify/fanotify_user.c | 8 +++-- fs/notify/mark.c | 73 +++++++++++++++++++++----------------- include/linux/fsnotify_backend.h | 7 ++-- 4 files changed, 61 insertions(+), 41 deletions(-) commit 925d1132a03e33cb8f29a0057300d023b4f1be23 Author: Jan Kara Date: Fri Sep 4 15:43:09 2015 -0700 fsnotify: remove mark->free_list Free list is used when all marks on given inode / mount should be destroyed when inode / mount is going away. However we can free all of the marks without using a special list with some care. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/fsnotify.c | 1 - fs/notify/fsnotify.h | 21 +++++++++++++++------ fs/notify/inode_mark.c | 20 -------------------- fs/notify/mark.c | 40 +++++++++++++++++++++++++--------------- fs/notify/vfsmount_mark.c | 19 ------------------- include/linux/fsnotify_backend.h | 2 -- 6 files changed, 40 insertions(+), 63 deletions(-) commit 1e39fc01836d02a11515aaabd97a0a938326bfe2 Author: Jan Kara Date: Fri Sep 4 15:43:06 2015 -0700 fsnotify: document mark locking Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/fsnotify_backend.h | 50 ++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 20 deletions(-) commit 3c53e514212455db9923c203694a72007558b48f Author: Jan Kara Date: Fri Sep 4 15:43:03 2015 -0700 fsnotify: fix check in inotify fdinfo printing A check in inotify_fdinfo() checking whether mark is valid was always true due to a bug. Luckily we can never get to invalidated marks since we hold mark_mutex and invalidated marks get removed from the group list when they are invalidated under that mutex. Anyway fix the check to make code more future proof. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/fdinfo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7c49b8616460ebb12ee56d80d1abfbc20b6f3cbb Author: Dave Hansen Date: Fri Sep 4 15:43:01 2015 -0700 fs/notify: optimize inotify/fsnotify code for unwatched files I have a _tiny_ microbenchmark that sits in a loop and writes single bytes to a file. Writing one byte to a tmpfs file is around 2x slower than reading one byte from a file, which is a _bit_ more than I expecte. This is a dumb benchmark, but I think it's hard to deny that write() is a hot path and we should avoid unnecessary overhead there. I did a 'perf record' of 30-second samples of read and write. The top item in a diffprofile is srcu_read_lock() from fsnotify(). There are active inotify fd's from systemd, but nothing is actually listening to the file or its part of the filesystem. I *think* we can avoid taking the srcu_read_lock() for the common case where there are no actual marks on the file. This means that there will both be nothing to notify for *and* implies that there is no need for clearing the ignore mask. This patch gave a 13.1% speedup in writes/second on my test, which is an improvement from the 10.8% that I saw with the last version. Signed-off-by: Dave Hansen Reviewed-by: Jan Kara Cc: Al Viro Cc: Eric Paris Cc: John McCutchan Cc: Robert Love Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/notify/fsnotify.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 031e29b5877f31676739dc2f847d04c2c0732034 Author: Yuriy Kolerov Date: Fri Sep 4 15:42:58 2015 -0700 drivers/video/concole: add negative dependency for VGA_CONSOLE on ARC Architectures which support VGA console must define screen_info structurture from "uapi/linux/screen_info.h". Otherwise undefined symbol error occurs. Usually it's defined in "setup.c" for each architecture. If an architecture does not support VGA console (ARC's case) there are 2 ways: define a dummy instance of screen_info or add a negative dependency for VGA_CONSOLE in to prevent selecting this option. I've implemented the second way. However the best solution is to add HAVE_VGA_CONSOLE option for targets which support VGA console. Then turn off VGA_CONSOLE by default and add dependency to HAVE_VGA_CONSOLE. But right now it's better to just add a negative dependency for ARC and then consider how to collaborate about this issue with maintainers of other architectures. Signed-off-by: Yuriy Kolerov Acked-by: Geert Uytterhoeven Cc: Jean-Christophe Plagniol-Villard Cc: Tomi Valkeinen Cc: Jaya Kumar Cc: Vineet Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/video/console/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 746bf6d64275be0c65b0631d8a72b16f1454cfa1 Author: Andy Lutomirski Date: Fri Sep 4 15:42:51 2015 -0700 capabilities: add a securebit to disable PR_CAP_AMBIENT_RAISE Per Andrew Morgan's request, add a securebit to allow admins to disable PR_CAP_AMBIENT_RAISE. This securebit will prevent processes from adding capabilities to their ambient set. For simplicity, this disables PR_CAP_AMBIENT_RAISE entirely rather than just disabling setting previously cleared bits. Signed-off-by: Andy Lutomirski Acked-by: Andrew G. Morgan Acked-by: Serge Hallyn Cc: Kees Cook Cc: Christoph Lameter Cc: Serge Hallyn Cc: Jonathan Corbet Cc: Aaron Jones Cc: Ted Ts'o Cc: Andrew G. Morgan Cc: Mimi Zohar Cc: Austin S Hemmelgarn Cc: Markku Savela Cc: Jarkko Sakkinen Cc: Michael Kerrisk Cc: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/uapi/linux/securebits.h | 11 ++++++++++- security/commoncap.c | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) commit 32ae976ed3b5ba39c9208ace41bcdf4157d21db3 Author: Andy Lutomirski Date: Fri Sep 4 15:42:48 2015 -0700 selftests/capabilities: Add tests for capability evolution This test focuses on ambient capabilities. It requires either root or the ability to create user namespaces. Some of the test cases will be skipped for nonroot users. Signed-off-by: Andy Lutomirski Acked-by: Kees Cook Cc: Christoph Lameter # Original author Cc: Serge E. Hallyn Cc: James Morris Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds tools/testing/selftests/capabilities/.gitignore | 2 + tools/testing/selftests/capabilities/Makefile | 18 + tools/testing/selftests/capabilities/test_execve.c | 427 +++++++++++++++++++++ .../testing/selftests/capabilities/validate_cap.c | 73 ++++ 4 files changed, 520 insertions(+) commit 58319057b7847667f0c9585b9de0e8932b0fdb08 Author: Andy Lutomirski Date: Fri Sep 4 15:42:45 2015 -0700 capabilities: ambient capabilities Credit where credit is due: this idea comes from Christoph Lameter with a lot of valuable input from Serge Hallyn. This patch is heavily based on Christoph's patch. ===== The status quo ===== On Linux, there are a number of capabilities defined by the kernel. To perform various privileged tasks, processes can wield capabilities that they hold. Each task has four capability masks: effective (pE), permitted (pP), inheritable (pI), and a bounding set (X). When the kernel checks for a capability, it checks pE. The other capability masks serve to modify what capabilities can be in pE. Any task can remove capabilities from pE, pP, or pI at any time. If a task has a capability in pP, it can add that capability to pE and/or pI. If a task has CAP_SETPCAP, then it can add any capability to pI, and it can remove capabilities from X. Tasks are not the only things that can have capabilities; files can also have capabilities. A file can have no capabilty information at all [1]. If a file has capability information, then it has a permitted mask (fP) and an inheritable mask (fI) as well as a single effective bit (fE) [2]. File capabilities modify the capabilities of tasks that execve(2) them. A task that successfully calls execve has its capabilities modified for the file ultimately being excecuted (i.e. the binary itself if that binary is ELF or for the interpreter if the binary is a script.) [3] In the capability evolution rules, for each mask Z, pZ represents the old value and pZ' represents the new value. The rules are: pP' = (X & fP) | (pI & fI) pI' = pI pE' = (fE ? pP' : 0) X is unchanged For setuid binaries, fP, fI, and fE are modified by a moderately complicated set of rules that emulate POSIX behavior. Similarly, if euid == 0 or ruid == 0, then fP, fI, and fE are modified differently (primary, fP and fI usually end up being the full set). For nonroot users executing binaries with neither setuid nor file caps, fI and fP are empty and fE is false. As an extra complication, if you execute a process as nonroot and fE is set, then the "secure exec" rules are in effect: AT_SECURE gets set, LD_PRELOAD doesn't work, etc. This is rather messy. We've learned that making any changes is dangerous, though: if a new kernel version allows an unprivileged program to change its security state in a way that persists cross execution of a setuid program or a program with file caps, this persistent state is surprisingly likely to allow setuid or file-capped programs to be exploited for privilege escalation. ===== The problem ===== Capability inheritance is basically useless. If you aren't root and you execute an ordinary binary, fI is zero, so your capabilities have no effect whatsoever on pP'. This means that you can't usefully execute a helper process or a shell command with elevated capabilities if you aren't root. On current kernels, you can sort of work around this by setting fI to the full set for most or all non-setuid executable files. This causes pP' = pI for nonroot, and inheritance works. No one does this because it's a PITA and it isn't even supported on most filesystems. If you try this, you'll discover that every nonroot program ends up with secure exec rules, breaking many things. This is a problem that has bitten many people who have tried to use capabilities for anything useful. ===== The proposed change ===== This patch adds a fifth capability mask called the ambient mask (pA). pA does what most people expect pI to do. pA obeys the invariant that no bit can ever be set in pA if it is not set in both pP and pI. Dropping a bit from pP or pI drops that bit from pA. This ensures that existing programs that try to drop capabilities still do so, with a complication. Because capability inheritance is so broken, setting KEEPCAPS, using setresuid to switch to nonroot uids, and then calling execve effectively drops capabilities. Therefore, setresuid from root to nonroot conditionally clears pA unless SECBIT_NO_SETUID_FIXUP is set. Processes that don't like this can re-add bits to pA afterwards. The capability evolution rules are changed: pA' = (file caps or setuid or setgid ? 0 : pA) pP' = (X & fP) | (pI & fI) | pA' pI' = pI pE' = (fE ? pP' : pA') X is unchanged If you are nonroot but you have a capability, you can add it to pA. If you do so, your children get that capability in pA, pP, and pE. For example, you can set pA = CAP_NET_BIND_SERVICE, and your children can automatically bind low-numbered ports. Hallelujah! Unprivileged users can create user namespaces, map themselves to a nonzero uid, and create both privileged (relative to their namespace) and unprivileged process trees. This is currently more or less impossible. Hallelujah! You cannot use pA to try to subvert a setuid, setgid, or file-capped program: if you execute any such program, pA gets cleared and the resulting evolution rules are unchanged by this patch. Users with nonzero pA are unlikely to unintentionally leak that capability. If they run programs that try to drop privileges, dropping privileges will still work. It's worth noting that the degree of paranoia in this patch could possibly be reduced without causing serious problems. Specifically, if we allowed pA to persist across executing non-pA-aware setuid binaries and across setresuid, then, naively, the only capabilities that could leak as a result would be the capabilities in pA, and any attacker *already* has those capabilities. This would make me nervous, though -- setuid binaries that tried to privilege-separate might fail to do so, and putting CAP_DAC_READ_SEARCH or CAP_DAC_OVERRIDE into pA could have unexpected side effects. (Whether these unexpected side effects would be exploitable is an open question.) I've therefore taken the more paranoid route. We can revisit this later. An alternative would be to require PR_SET_NO_NEW_PRIVS before setting ambient capabilities. I think that this would be annoying and would make granting otherwise unprivileged users minor ambient capabilities (CAP_NET_BIND_SERVICE or CAP_NET_RAW for example) much less useful than it is with this patch. ===== Footnotes ===== [1] Files that are missing the "security.capability" xattr or that have unrecognized values for that xattr end up with has_cap set to false. The code that does that appears to be complicated for no good reason. [2] The libcap capability mask parsers and formatters are dangerously misleading and the documentation is flat-out wrong. fE is *not* a mask; it's a single bit. This has probably confused every single person who has tried to use file capabilities. [3] Linux very confusingly processes both the script and the interpreter if applicable, for reasons that elude me. The results from thinking about a script's file capabilities and/or setuid bits are mostly discarded. Preliminary userspace code is here, but it needs updating: https://git.kernel.org/cgit/linux/kernel/git/luto/util-linux-playground.git/commit/?h=cap_ambient&id=7f5afbd175d2 Here is a test program that can be used to verify the functionality (from Christoph): /* * Test program for the ambient capabilities. This program spawns a shell * that allows running processes with a defined set of capabilities. * * (C) 2015 Christoph Lameter * Released under: GPL v3 or later. * * * Compile using: * * gcc -o ambient_test ambient_test.o -lcap-ng * * This program must have the following capabilities to run properly: * Permissions for CAP_NET_RAW, CAP_NET_ADMIN, CAP_SYS_NICE * * A command to equip the binary with the right caps is: * * setcap cap_net_raw,cap_net_admin,cap_sys_nice+p ambient_test * * * To get a shell with additional caps that can be inherited by other processes: * * ./ambient_test /bin/bash * * * Verifying that it works: * * From the bash spawed by ambient_test run * * cat /proc/$$/status * * and have a look at the capabilities. */ #include #include #include #include #include #include /* * Definitions from the kernel header files. These are going to be removed * when the /usr/include files have these defined. */ #define PR_CAP_AMBIENT 47 #define PR_CAP_AMBIENT_IS_SET 1 #define PR_CAP_AMBIENT_RAISE 2 #define PR_CAP_AMBIENT_LOWER 3 #define PR_CAP_AMBIENT_CLEAR_ALL 4 static void set_ambient_cap(int cap) { int rc; capng_get_caps_process(); rc = capng_update(CAPNG_ADD, CAPNG_INHERITABLE, cap); if (rc) { printf("Cannot add inheritable cap\n"); exit(2); } capng_apply(CAPNG_SELECT_CAPS); /* Note the two 0s at the end. Kernel checks for these */ if (prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, cap, 0, 0)) { perror("Cannot set cap"); exit(1); } } int main(int argc, char **argv) { int rc; set_ambient_cap(CAP_NET_RAW); set_ambient_cap(CAP_NET_ADMIN); set_ambient_cap(CAP_SYS_NICE); printf("Ambient_test forking shell\n"); if (execv(argv[1], argv + 1)) perror("Cannot exec"); return 0; } Signed-off-by: Christoph Lameter # Original author Signed-off-by: Andy Lutomirski Acked-by: Serge E. Hallyn Acked-by: Kees Cook Cc: Jonathan Corbet Cc: Aaron Jones Cc: Ted Ts'o Cc: Andrew G. Morgan Cc: Mimi Zohar Cc: Austin S Hemmelgarn Cc: Markku Savela Cc: Jarkko Sakkinen Cc: Michael Kerrisk Cc: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/proc/array.c | 5 ++- include/linux/cred.h | 8 ++++ include/uapi/linux/prctl.h | 7 +++ kernel/user_namespace.c | 1 + security/commoncap.c | 102 ++++++++++++++++++++++++++++++++++++++----- security/keys/process_keys.c | 1 + 6 files changed, 113 insertions(+), 11 deletions(-) commit e9f069868d60550c4b46f084ac9276a57c1b4711 Author: Andrew Morton Date: Fri Sep 4 15:42:42 2015 -0700 kernel/kthread.c:kthread_create_on_node(): clarify documentation - Make it clear that the `node' arg refers to memory allocations only: kthread_create_on_node() does not pin the new thread to that node's CPUs. - Encourage the use of NUMA_NO_NODE. [nzimmer@sgi.com: use NUMA_NO_NODE in kthread_create() also] Cc: Nathan Zimmer Cc: Tejun Heo Cc: Eric Dumazet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds include/linux/kthread.h | 2 +- kernel/kthread.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) commit 04697858d89e4bf2650364f8d6956e2554e8ef88 Author: Yinghai Lu Date: Fri Sep 4 15:42:39 2015 -0700 mm: check if section present during memory block registering Tony Luck found on his setup, if memory block size 512M will cause crash during booting. BUG: unable to handle kernel paging request at ffffea0074000020 IP: get_nid_for_pfn+0x17/0x40 PGD 128ffcb067 PUD 128ffc9067 PMD 0 Oops: 0000 [#1] SMP Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.2.0-rc8 #1 ... Call Trace: ? register_mem_sect_under_node+0x66/0xe0 register_one_node+0x17b/0x240 ? pci_iommu_alloc+0x6e/0x6e topology_init+0x3c/0x95 do_one_initcall+0xcd/0x1f0 The system has non continuous RAM address: BIOS-e820: [mem 0x0000001300000000-0x0000001cffffffff] usable BIOS-e820: [mem 0x0000001d70000000-0x0000001ec7ffefff] usable BIOS-e820: [mem 0x0000001f00000000-0x0000002bffffffff] usable BIOS-e820: [mem 0x0000002c18000000-0x0000002d6fffefff] usable BIOS-e820: [mem 0x0000002e00000000-0x00000039ffffffff] usable So there are start sections in memory block not present. For example: memory block : [0x2c18000000, 0x2c20000000) 512M first three sections are not present. The current register_mem_sect_under_node() assume first section is present, but memory block section number range [start_section_nr, end_section_nr] would include not present section. For arch that support vmemmap, we don't setup memmap for struct page area within not present sections area. So skip the pfn range that belong to absent section. [akpm@linux-foundation.org: simplification] [rientjes@google.com: more simplification] Fixes: bdee237c0343 ("x86: mm: Use 2GB memory block size on large memory x86-64 systems") Fixes: 982792c782ef ("x86, mm: probe memory block size for generic x86 64bit") Signed-off-by: Yinghai Lu Signed-off-by: David Rientjes Reported-by: Tony Luck Tested-by: Tony Luck Cc: Greg KH Cc: Ingo Molnar Tested-by: David Rientjes Cc: [3.15+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds drivers/base/node.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit aa1057b3dec478b20c77bad07442318ae36d893c Author: Ryan Ding Date: Fri Sep 4 15:42:36 2015 -0700 ocfs2: direct write will call ocfs2_rw_unlock() twice when doing aio+dio ocfs2_file_write_iter() is usng the wrong return value ('written'). This will cause ocfs2_rw_unlock() be called both in write_iter & end_io, triggering a BUG_ON. This issue was introduced by commit 7da839c47589 ("ocfs2: use __generic_file_write_iter()"). Orabug: 21612107 Fixes: 7da839c47589 ("ocfs2: use __generic_file_write_iter()") Signed-off-by: Ryan Ding Reviewed-by: Junxiao Bi Cc: Al Viro Cc: Mark Fasheh Cc: Joel Becker Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds fs/ocfs2/file.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 7f36e3e56db1ae75d1e157011b3cb2e0957f0a7e Author: Tang Chen Date: Fri Sep 4 15:42:32 2015 -0700 memory-hotplug: add hot-added memory ranges to memblock before allocate node_data for a node. Commit f9126ab9241f ("memory-hotplug: fix wrong edge when hot add a new node") hot-added memory range to memblock, after creating pgdat for new node. But there is a problem: add_memory() |--> hotadd_new_pgdat() |--> free_area_init_node() |--> get_pfn_range_for_nid() |--> find start_pfn and end_pfn in memblock |--> ...... |--> memblock_add_node(start, size, nid) -------- Here, just too late. get_pfn_range_for_nid() will find that start_pfn and end_pfn are both 0. As a result, when adding memory, dmesg will give the following wrong message. Initmem setup node 5 [mem 0x0000000000000000-0xffffffffffffffff] On node 5 totalpages: 0 Built 5 zonelists in Node order, mobility grouping on. Total pages: 32588823 Policy zone: Normal init_memory_mapping: [mem 0x60000000000-0x607ffffffff] The solution is simple, just add the memory range to memblock a little earlier, before hotadd_new_pgdat(). [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Tang Chen Cc: Xishi Qiu Cc: Yasuaki Ishimatsu Cc: Kamezawa Hiroyuki Cc: Taku Izumi Cc: Gu Zheng Cc: Naoya Horiguchi Cc: Vlastimil Babka Cc: Mel Gorman Cc: David Rientjes Cc: [4.2.x] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds mm/memory_hotplug.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 254a0f4135482dc02701562a38e10675a48c8ddf Author: Rabin Vincent Date: Fri May 22 20:58:49 2015 +0200 CRISv10: delete unused lib/dmacopy.c This file is never built. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/arch-v10/lib/dmacopy.c | 42 ---------------------------------------- 1 file changed, 42 deletions(-) commit c2ffc68afc0fce16923a54b2dad4d544463b9e0b Author: Rabin Vincent Date: Fri May 22 20:58:48 2015 +0200 CRISv10: delete unused lib/old_checksum.c This file is never built. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/arch-v10/lib/old_checksum.c | 86 ----------------------------------- 1 file changed, 86 deletions(-) commit 7f0144e7779a8c62e3177301d4b2179432ce5460 Author: Rabin Vincent Date: Fri Feb 20 19:35:16 2015 +0100 CRIS: fix switch_mm() lockdep splat With lockdep support implemented on CRISv32, we get the following splat. switch_mm() can be called both from the scheduler() (with interrupts disabled) and from flush_old_exec (via activate_mm()), with interrupts enabled. Fix it by disabling interrupts in activate_mm(), similar to powerpc and hexagon. t====================================================== [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ] 3.19.0-08802-g20bc9f1-dirty #323 Not tainted ------------------------------------------------------ init/1 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: (mmu_context_lock){+.+...}, at: [] switch_mm+0x22/0xc6 and this task is already holding: (&rq->lock){-.-.-.}, at: [] __schedule+0x5e/0x648 which would create a new lock dependency: (&rq->lock){-.-.-.} -> (mmu_context_lock){+.+...} but this new dependency connects a HARDIRQ-irq-safe lock: (&rq->lock){-.-.-.} ... which became HARDIRQ-irq-safe at: [] scheduler_tick+0x28/0x5e [] timer_interrupt+0x4e/0x6a [] handle_irq_event_percpu+0x54/0x13c [] generic_handle_irq+0x2a/0x36 to a HARDIRQ-irq-unsafe lock: (mmu_context_lock){+.+...} ... which became HARDIRQ-irq-unsafe at: ... [] __lock_acquire+0x8f8/0x1d9c [] switch_mm+0x22/0xc6 [] flush_old_exec+0x500/0x5d4 [] load_elf_phdrs+0x7a/0x84 [] load_elf_binary+0x21c/0x13b4 [] do_execve+0x22/0x2c [] ____call_usermodehelper+0x0/0x154 [] ret_from_kernel_thread+0xe/0x14 other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(mmu_context_lock); local_irq_disable(); lock(&rq->lock); lock(mmu_context_lock); lock(&rq->lock); *** DEADLOCK *** 1 lock held by init/1: #0: (&rq->lock){-.-.-.}, at: [] __schedule+0x5e/0x648 Call Trace: [] printk+0x0/0x4e [] print_shortest_lock_dependencies+0x0/0x15c [] print_stack_trace+0x0/0x88 [] __lock_is_held+0x3e/0x5e [] lock_acquire+0x8a/0xcc [] _raw_spin_lock+0x44/0x7a [] switch_mm+0x22/0xc6 [] __schedule+0x0/0x648 [] schedule+0x36/0x7c [] trace_hardirqs_on+0x0/0x1e [] do_work_pending+0x30/0xd4 [] _work_pending+0xe/0x12 Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/mmu_context.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 94c5c115c1f7d347d5ec7f32a090f8643dd42525 Author: Rabin Vincent Date: Thu May 14 18:19:37 2015 +0200 CRISv32: enable LOCKDEP_SUPPORT Now that we have stack tracing and irq flags tracing support, we can also enable lockdep support Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) commit aa6f4d2b6547a9949d87c9b09a872a7015366588 Author: Rabin Vincent Date: Thu May 14 18:19:03 2015 +0200 CRIS: add STACKTRACE_SUPPORT Add stacktrace support, which is required for lockdep and tracing. The stack tracing simply looks at all kernel text symbols found on the stack, similar to the trap stack dumping code, which can also be converted to use this. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/Kconfig | 3 ++ arch/cris/include/asm/stacktrace.h | 8 ++++ arch/cris/kernel/Makefile | 1 + arch/cris/kernel/stacktrace.c | 76 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 88 insertions(+) commit 3fffa23ee0a348aef1b597b67626d4724667143b Author: Rabin Vincent Date: Fri Feb 20 18:57:37 2015 +0100 CRISv32: annotate irq enable in idle loop Use a call to local_irq_enable() instead of incline asm so that the irqsoff latency tracer knows that interrupts are enabled here. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/arch-v32/kernel/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 444e0c2881bcc70db6833d9c653c6ced36813d3b Author: Rabin Vincent Date: Thu Feb 19 21:36:55 2015 +0100 CRISv32: add support for irqflags tracing Add support irqflags tracing, which is required for things like lockdep and ftrace. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/Kconfig | 4 ++++ arch/cris/arch-v32/kernel/entry.S | 11 +++++++++++ arch/cris/kernel/irq.c | 6 +++++- 3 files changed, 20 insertions(+), 1 deletion(-) commit 20ae24739968ae7f94d0e73215d444042f91df78 Author: Rabin Vincent Date: Sat Feb 28 23:59:50 2015 +0100 CRIS: UAPI: use generic types.h CRIS' types.h is functionally identical to the asm-generic version. Effective diff: +#ifndef _ASM_GENERIC_TYPES_H +#define _ASM_GENERIC_TYPES_H + #include + +#endif Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/asm/types.h | 12 ------------ arch/cris/include/uapi/asm/types.h | 1 - 3 files changed, 1 insertion(+), 13 deletions(-) commit 258a9ff66c30c830f6e2f06856878be4d4cc81af Author: Rabin Vincent Date: Sat Feb 28 23:55:46 2015 +0100 CRIS: UAPI: use generic shmbuf.h CRIS' shmbuf.h is equivalent to the asm-generic verison. Effective diff: -#ifndef _CRIS_SHMBUF_H -#define _CRIS_SHMBUF_H +#ifndef __ASM_GENERIC_SHMBUF_H +#define __ASM_GENERIC_SHMBUF_H + +#include struct ipc64_perm shm_perm; size_t shm_segsz; __kernel_time_t shm_atime; +#if __BITS_PER_LONG != 64 unsigned long __unused1; +#endif __kernel_time_t shm_dtime; +#if __BITS_PER_LONG != 64 unsigned long __unused2; +#endif __kernel_time_t shm_ctime; +#if __BITS_PER_LONG != 64 unsigned long __unused3; +#endif __kernel_pid_t shm_cpid; __kernel_pid_t shm_lpid; - unsigned long shm_nattch; - unsigned long __unused4; - unsigned long __unused5; + __kernel_ulong_t shm_nattch; + __kernel_ulong_t __unused4; + __kernel_ulong_t __unused5; }; struct shminfo64 { - unsigned long shmmax; - unsigned long shmmin; - unsigned long shmmni; - unsigned long shmseg; - unsigned long shmall; - unsigned long __unused1; - unsigned long __unused2; - unsigned long __unused3; - unsigned long __unused4; + __kernel_ulong_t shmmax; + __kernel_ulong_t shmmin; + __kernel_ulong_t shmmni; + __kernel_ulong_t shmseg; + __kernel_ulong_t shmall; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; + __kernel_ulong_t __unused3; + __kernel_ulong_t __unused4; }; #endif Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/uapi/asm/shmbuf.h | 42 ------------------------------------- 2 files changed, 1 insertion(+), 42 deletions(-) commit 74d94adb351161cc4027f94e878ac4e80adcfdc9 Author: Rabin Vincent Date: Sat Feb 28 23:53:37 2015 +0100 CRIS: UAPI: use generic msgbuf.h CRIS' msgbuf.h is equivalent to the asm-generic version. Effective diff: -#ifndef _CRIS_MSGBUF_H -#define _CRIS_MSGBUF_H - - +#ifndef __ASM_GENERIC_MSGBUF_H +#define __ASM_GENERIC_MSGBUF_H +#include struct msqid64_ds { struct ipc64_perm msg_perm; __kernel_time_t msg_stime; +#if __BITS_PER_LONG != 64 unsigned long __unused1; +#endif __kernel_time_t msg_rtime; +#if __BITS_PER_LONG != 64 unsigned long __unused2; +#endif __kernel_time_t msg_ctime; +#if __BITS_PER_LONG != 64 unsigned long __unused3; - unsigned long msg_cbytes; - unsigned long msg_qnum; - unsigned long msg_qbytes; +#endif + __kernel_ulong_t msg_cbytes; + __kernel_ulong_t msg_qnum; + __kernel_ulong_t msg_qbytes; __kernel_pid_t msg_lspid; __kernel_pid_t msg_lrpid; - unsigned long __unused4; - unsigned long __unused5; + __kernel_ulong_t __unused4; + __kernel_ulong_t __unused5; }; #endif Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/uapi/asm/msgbuf.h | 33 --------------------------------- 2 files changed, 1 insertion(+), 33 deletions(-) commit 45266922510fcd1e55df483f41be8debd5df9de8 Author: Rabin Vincent Date: Sat Feb 28 23:47:37 2015 +0100 CRIS: UAPI: use generic socket.h CRIS' socket.h is equivalent to the asm-generic version. Effective diff: -#ifndef _ASM_SOCKET_H -#define _ASM_SOCKET_H - - +#ifndef __ASM_GENERIC_SOCKET_H +#define __ASM_GENERIC_SOCKET_H #include #define SO_LINGER 13 #define SO_BSDCOMPAT 14 #define SO_REUSEPORT 15 +#ifndef SO_PASSCRED #define SO_PASSCRED 16 #define SO_PEERCRED 17 #define SO_RCVLOWAT 18 #define SO_SNDLOWAT 19 #define SO_RCVTIMEO 20 #define SO_SNDTIMEO 21 +#endif #define SO_SECURITY_AUTHENTICATION 22 Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/uapi/asm/socket.h | 92 ------------------------------------- 2 files changed, 1 insertion(+), 92 deletions(-) commit 53789d25a0603e5c836e460c758867d2071eb135 Author: Rabin Vincent Date: Sat Feb 28 23:43:31 2015 +0100 CRIS: UAPI: use generic sembuf.h CRIS's sembuf.h is equivalent to the asm-generic version. Effective diff: -#ifndef _CRIS_SEMBUF_H -#define _CRIS_SEMBUF_H +#ifndef __ASM_GENERIC_SEMBUF_H +#define __ASM_GENERIC_SEMBUF_H +#include struct semid64_ds { struct ipc64_perm sem_perm; __kernel_time_t sem_otime; +#if __BITS_PER_LONG != 64 unsigned long __unused1; +#endif __kernel_time_t sem_ctime; +#if __BITS_PER_LONG != 64 unsigned long __unused2; +#endif unsigned long sem_nsems; unsigned long __unused3; unsigned long __unused4; Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/uapi/asm/sembuf.h | 25 ------------------------- 2 files changed, 1 insertion(+), 25 deletions(-) commit c823b970b632a86e4f01f3eae9c0860350b70c3c Author: Rabin Vincent Date: Sat Feb 28 23:21:25 2015 +0100 CRIS: UAPI: use generic sockios.h CRIS' sockios.h is equivalent to the asm-generic version. Effective diff: -#ifndef __ARCH_CRIS_SOCKIOS__ -#define __ARCH_CRIS_SOCKIOS__ +#ifndef __ASM_GENERIC_SOCKIOS_H +#define __ASM_GENERIC_SOCKIOS_H Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/uapi/asm/sockios.h | 13 ------------- 2 files changed, 1 insertion(+), 13 deletions(-) commit 889d74a4d40f60427d0482bc271bfc5660a1157b Author: Rabin Vincent Date: Sat Feb 28 22:59:42 2015 +0100 CRIS: UAPI: use generic auxvec.h CRIS's auxvec.h is empty just like the asm-generic version. Effective diff: -#ifndef __ASMCRIS_AUXVEC_H -#define __ASMCRIS_AUXVEC_H +#ifndef __ASM_GENERIC_AUXVEC_H +#define __ASM_GENERIC_AUXVEC_H + Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 1 + arch/cris/include/uapi/asm/auxvec.h | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) commit 0c02fa2f4ef47334387aeb3aef21ccdab6513459 Author: Rabin Vincent Date: Sat Feb 28 23:31:10 2015 +0100 CRIS: UAPI: use generic headers via Kbuild Use Kbuild magic to include the generic headers. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/asm/Kbuild | 10 ++++++++++ arch/cris/include/uapi/asm/bitsperlong.h | 1 - arch/cris/include/uapi/asm/errno.h | 6 ------ arch/cris/include/uapi/asm/fcntl.h | 1 - arch/cris/include/uapi/asm/ioctl.h | 1 - arch/cris/include/uapi/asm/ipcbuf.h | 1 - arch/cris/include/uapi/asm/kvm_para.h | 1 - arch/cris/include/uapi/asm/mman.h | 1 - arch/cris/include/uapi/asm/poll.h | 1 - arch/cris/include/uapi/asm/resource.h | 6 ------ arch/cris/include/uapi/asm/siginfo.h | 6 ------ arch/cris/include/uapi/asm/statfs.h | 6 ------ 12 files changed, 10 insertions(+), 31 deletions(-) commit f377ea88b862bf7151be96d276f4cb740f8e1c41 Merge: 51e771c 73bf1b7 Author: Linus Torvalds Date: Fri Sep 4 15:49:32 2015 -0700 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux Pull drm updates from Dave Airlie: "This is the main pull request for the drm for 4.3. Nouveau is probably the biggest amount of changes in here, since it missed 4.2. Highlights below, along with the usual bunch of fixes. All stuff outside drm should have applicable acks. Highlights: - new drivers: freescale dcu kms driver - core: more atomic fixes disable some dri1 interfaces on kms drivers drop fb panic handling, this was just getting more broken, as more locking was required. new core fbdev Kconfig support - instead of each driver enable/disabling it struct_mutex cleanups - panel: more new panels cleanup Kconfig - i915: Skylake support enabled by default legacy modesetting using atomic infrastructure Skylake fixes GEN9 workarounds - amdgpu: Fiji support CGS support for amdgpu Initial GPU scheduler - off by default Lots of bug fixes and optimisations. - radeon: DP fixes misc fixes - amdkfd: Add Carrizo support for amdkfd using amdgpu. - nouveau: long pending cleanup to complete driver, fully bisectable which makes it larger, perfmon work more reclocking improvements maxwell displayport fixes - vmwgfx: new DX device support, supports OpenGL 3.3 screen targets support - mgag200: G200eW support G200e new revision support - msm: dragonboard 410c support, msm8x94 support, msm8x74v1 support yuv format support dma plane support mdp5 rotation initial hdcp - sti: atomic support - exynos: lots of cleanups atomic modesetting/pageflipping support render node support - tegra: tegra210 support (dc, dsi, dp/hdmi) dpms with atomic modesetting support - atmel: support for 3 more atmel SoCs new input formats, PRIME support. - dwhdmi: preparing to add audio support - rockchip: yuv plane support" * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1369 commits) drm/amdgpu: rename gmc_v8_0_init_compute_vmid drm/amdgpu: fix vce3 instance handling drm/amdgpu: remove ib test for the second VCE Ring drm/amdgpu: properly enable VM fault interrupts drm/amdgpu: fix warning in scheduler drm/amdgpu: fix buffer placement under memory pressure drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic drm/amdgpu: fix typo in dce11 watermark setup drm/amdgpu: fix typo in dce10 watermark setup drm/amdgpu: use top down allocation for non-CPU accessible vram drm/amdgpu: be explicit about cpu vram access for driver BOs (v2) drm/amdgpu: set MEC doorbell range for Fiji drm/amdgpu: implement burst NOP for SDMA drm/amdgpu: add insert_nop ring func and default implementation drm/amdgpu: add amdgpu_get_sdma_instance helper function drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES drm/amdgpu: add burst_nop flag for sdma drm/amdgpu: add count field for the SDMA NOP packet v2 drm/amdgpu: use PT for VM sync on unmap drm/amdgpu: make wait_event uninterruptible in push_job ... commit 2493d3e28a22087116158249d79410fd355d1e83 Author: Rabin Vincent Date: Fri Mar 27 22:35:11 2015 +0100 CRIS: UAPI: fix elf.h export CRIS userspace (uClibc for one) expects asm/elf.h to be exported but this header appears to have gone missing at some point. Move it to uapi/ and export it. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/arch-v10/arch/elf.h | 84 -------------------------------- arch/cris/include/arch-v32/arch/elf.h | 76 ----------------------------- arch/cris/include/asm/elf.h | 86 --------------------------------- arch/cris/include/uapi/asm/Kbuild | 3 ++ arch/cris/include/uapi/asm/elf.h | 90 +++++++++++++++++++++++++++++++++++ arch/cris/include/uapi/asm/elf_v10.h | 84 ++++++++++++++++++++++++++++++++ arch/cris/include/uapi/asm/elf_v32.h | 76 +++++++++++++++++++++++++++++ 7 files changed, 253 insertions(+), 246 deletions(-) commit 3a79a075375cebb672ddaea7896378afa0203e87 Author: Rabin Vincent Date: Thu May 14 17:00:58 2015 +0200 CRIS: don't make asm/elf.h depend on asm/user.h We're going to export asm/elf.h; remove its dependencies on the non-exported asm/user.h and the unused asm/system.h include. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/arch-v10/arch/elf.h | 5 +++-- arch/cris/include/arch-v32/arch/elf.h | 5 +++-- arch/cris/include/asm/elf.h | 5 +---- 3 files changed, 7 insertions(+), 8 deletions(-) commit 835e4177284e1574033dea47d4bb8e55c21b6345 Author: Rabin Vincent Date: Fri Mar 27 22:32:27 2015 +0100 CRIS: UAPI: fix ptrace.h The exported ptrace.h header on CRIS references an "arch" directory which does not exist. Fix this by having the variants in the same directory and including them conditionally, similar to other architectures. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/arch-v32/kernel/signal.c | 1 - arch/cris/include/arch-v10/arch/ptrace.h | 118 ----------------------------- arch/cris/include/arch-v32/arch/irqflags.h | 2 +- arch/cris/include/arch-v32/arch/ptrace.h | 118 ----------------------------- arch/cris/include/uapi/asm/Kbuild | 2 + arch/cris/include/uapi/asm/ptrace.h | 6 +- arch/cris/include/uapi/asm/ptrace_v10.h | 118 +++++++++++++++++++++++++++++ arch/cris/include/uapi/asm/ptrace_v32.h | 118 +++++++++++++++++++++++++++++ 8 files changed, 244 insertions(+), 239 deletions(-) commit 4b86715748da506b176b5ec50c041b335c9d1769 Author: Jesper Nilsson Date: Wed Jun 3 13:04:23 2015 +0200 CRISv32: Squash compile warnings for axisflashmap Signed-off-by: Jesper Nilsson arch/cris/arch-v32/drivers/axisflashmap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 939b83fb03f275016cd72a0f81f49bf8e63c2a14 Author: Jesper Nilsson Date: Wed Jun 3 12:42:01 2015 +0200 CRISv32: Add GPIO driver to the default configs Fix a number of small issues visible when GPIO is enabled: - Correct missing default for !ETRAXFS in Kconfig - Remove information on number of bits for some Kconfigs related to the GPIO, they are different in ETRAX FS and ARTPEC-3 - Fix compile warning in ARTPEC-3 GPIO driver Signed-off-by: Jesper Nilsson arch/cris/arch-v32/drivers/Kconfig | 16 ++++++++-------- arch/cris/arch-v32/drivers/mach-a3/gpio.c | 4 ++-- arch/cris/configs/artpec_3_defconfig | 5 +---- arch/cris/configs/etraxfs_defconfig | 1 + 4 files changed, 12 insertions(+), 14 deletions(-) commit 94230178678cb7e0f82ff2c161ac84742f79a2e7 Author: Jesper Nilsson Date: Wed Jun 3 12:25:51 2015 +0200 CRISv32: ETRAX FS: Squash warnings in pinmux driver Squash the followng warnings arch/cris/arch-v32/mach-fs/pinmux.c: In function 'crisv32_pinmux_alloc_fixed': arch/cris/arch-v32/mach-fs/pinmux.c:104:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] arch/cris/arch-v32/mach-fs/pinmux.c: In function 'crisv32_pinmux_dealloc_fixed': arch/cris/arch-v32/mach-fs/pinmux.c:238:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] arch/cris/arch-v32/mach-fs/pinmux.c: In function '__crisv32_pinmux_alloc': arch/cris/arch-v32/mach-fs/pinmux.c:49:1: warning: control reaches end of non-void function [-Wreturn-type] Signed-off-by: Jesper Nilsson arch/cris/arch-v32/mach-fs/pinmux.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit ee59843cd2b4331db49671c7f045ee2ff9d535b6 Author: Chen Gang Date: Wed May 6 21:48:12 2015 +0800 CRIS: Wire up missing syscalls The related warnings: CALL scripts/checksyscalls.sh :1229:2: warning: #warning syscall sched_setattr not implemented [-Wcpp] :1232:2: warning: #warning syscall sched_getattr not implemented [-Wcpp] :1235:2: warning: #warning syscall renameat2 not implemented [-Wcpp] :1238:2: warning: #warning syscall seccomp not implemented [-Wcpp] :1241:2: warning: #warning syscall getrandom not implemented [-Wcpp] :1244:2: warning: #warning syscall memfd_create not implemented [-Wcpp] :1247:2: warning: #warning syscall bpf not implemented [-Wcpp] :1250:2: warning: #warning syscall execveat not implemented [-Wcpp] Signed-off-by: Chen Gang Signed-off-by: Jesper Nilsson arch/cris/arch-v10/kernel/entry.S | 8 ++++++++ arch/cris/arch-v32/kernel/entry.S | 8 ++++++++ arch/cris/include/asm/unistd.h | 2 +- arch/cris/include/uapi/asm/unistd.h | 8 ++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) commit f59625a8f770741d590da09be4f0fcfc75b31e46 Author: Rabin Vincent Date: Thu May 14 14:36:56 2015 +0200 CRISv32: allow CONFIG_DEBUG_BUGVERBOSE Support for verbose BUG reporting already exists, but the HAVE flag that allows the option to be enabled is missing. Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 98a725a57a8e92bfbe962a8c69975ce0f9ff11fe Author: Rabin Vincent Date: Thu May 14 14:36:55 2015 +0200 CRISv32: add unreachable() to BUG() Add an unreachable() in the BUG() implementations, to get rid of several warnings similar to the one below: kernel/sched/core.c: In function 'pick_next_task': kernel/sched/core.c:2690:1: warning: control reaches end of non-void function [-Wreturn-type] Signed-off-by: Rabin Vincent Signed-off-by: Jesper Nilsson arch/cris/include/arch-v32/arch/bug.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 6a4756f6951f97a9a601ba24632c5906750ef00d Author: Christophe Jaillet Date: Fri May 1 15:58:19 2015 +0200 cris: arch-v32: gpio: Use kzalloc instead of kmalloc/memset Turn a kmalloc/memset into an equivalent kzalloc. Doing so also move the zero'ing of the memory outside of a mutex. Signed-off-by: Christophe Jaillet Signed-off-by: Jesper Nilsson arch/cris/arch-v32/drivers/mach-fs/gpio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 73bf1b7be7aab60d7c651402441dd0b0b4991098 Merge: 5b78cb6 35c7a95 Author: Dave Airlie Date: Sat Sep 5 07:46:09 2015 +1000 Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next A few more fixes for amdgpu from the last few days: - Fix several copy paste typos - Resume from suspend fixes for VCE - Fix the GPU scheduler warning in kfifo_out - Re-enable GPUVM fault interrupts which were inadvertently disabled - GPUVM page table hang fix when paging * 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: drm/amdgpu: rename gmc_v8_0_init_compute_vmid drm/amdgpu: fix vce3 instance handling drm/amdgpu: remove ib test for the second VCE Ring drm/amdgpu: properly enable VM fault interrupts drm/amdgpu: fix warning in scheduler drm/amdgpu: fix buffer placement under memory pressure drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic drm/amdgpu: fix typo in dce11 watermark setup drm/amdgpu: fix typo in dce10 watermark setup drm/amdgpu: use top down allocation for non-CPU accessible vram drm/amdgpu: be explicit about cpu vram access for driver BOs (v2) commit 4eae50143bcbfda819c650b7ed6739f3b6338ffc Author: Trond Myklebust Date: Fri Sep 4 15:17:53 2015 -0400 Revert "NFS: Make close(2) asynchronous when closing NFS O_DIRECT files" This reverts commit f895c53f8ace3c3e49ebf9def90e63fc6d46d2bf. This commit causes a NFSv4 regression in that close()+unlink() can end up failing. The reason is that we no longer have a guarantee that the CLOSE has completed on the server, meaning that the subsequent call to REMOVE may fail with NFS4ERR_FILE_OPEN if the server implements Windows unlink() semantics. Reported-by: Cc: Chuck Lever Signed-off-by: Trond Myklebust fs/nfs/inode.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 5cf9d70659594e1a75b34d18619d0bb6e0cbbafa Author: Trond Myklebust Date: Fri Sep 4 15:07:37 2015 -0400 NFS: Optimise away the close-to-open getattr if there is no cached data If there is no cached data, then there is no need to track the file change attribute on close. Signed-off-by: Trond Myklebust fs/nfs/inode.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 35c7a9526af75040fac744babd0fafe18b8fe0a1 Author: Alex Deucher Date: Thu Sep 3 18:01:00 2015 -0400 drm/amdgpu: rename gmc_v8_0_init_compute_vmid It should be gfx_v8_0_init_compute_vmid since it's part of the gfx block. Acked-by: Leo Liu Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit be4f38e28ca2bbd6d06db8064277d71389746e26 Author: Alex Deucher Date: Thu Sep 3 19:03:11 2015 -0400 drm/amdgpu: fix vce3 instance handling Need to properly handle the instances for the idle checks and soft reset. Acked-by: Leo Liu Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 48 ++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) commit 898e50d444e12f735e45d07cd3f306ac5d4abca8 Author: Leo Liu Date: Fri Sep 4 15:08:55 2015 -0400 drm/amdgpu: remove ib test for the second VCE Ring it seems the VCE ring 1 ib test not reliable, remove it for now. Signed-off-by: Leo Liu Reviewed-by: Alex Deucher Reviewed-by: Christian König Tested-and-Reviewed-by: Sonny Jiang drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 ++++ 1 file changed, 4 insertions(+) commit 140b519f7a117c86c085b3800a2fea3015cd877f Author: Christian König Date: Fri Sep 4 18:48:29 2015 +0200 drm/amdgpu: properly enable VM fault interrupts This fixes not printing VM faults. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 16 +++++++++------- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 17 +++++++++-------- 2 files changed, 18 insertions(+), 15 deletions(-) commit 51e771c0d25b43d0f12b2c7c01939942becbbe28 Merge: abebcdf 01b944f Author: Linus Torvalds Date: Fri Sep 4 12:02:11 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input subsystem updates from Dmitry Torokhov: "Drivers, drivers, drivers... No interesting input core changes this time" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (74 commits) Input: elan_i2c - use iap_version to get firmware information Input: max8997_haptic - fix module alias Input: elan_i2c - fix typos for validpage_count Input: psmouse - add small delay for IBM trackpoint pass-through mode Input: synaptics - fix handling of disabling gesture mode Input: elan_i2c - enable ELAN0100 acpi panels Input: gpio-keys - report error when disabling unsupported key Input: sur40 - fix error return code Input: sentelic - silence some underflow warnings Input: zhenhua - switch to using bitrev8() Input: cros_ec_keyb - replace KEYBOARD_CROS_EC dependency Input: cap11xx - add LED support Input: elants_i2c - fix for devm_gpiod_get API change Input: elan_i2c - enable asynchronous probing Input: elants_i2c - enable asynchronous probing Input: elants_i2c - wire up regulator support Input: do not emit unneeded EV_SYN when suspending Input: elants_i2c - disable idle mode before updating firmware MAINTAINERS: Add maintainer for atmel_mxt_ts Input: atmel_mxt_ts - remove warning on zero T44 count ... commit abebcdfb64f1b39eeeb14282d9cd4aad1ed86f8d Merge: 670c039 d5f362a Author: Linus Torvalds Date: Fri Sep 4 11:46:02 2015 -0700 Merge tag 'sound-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "There are little changes in core part, but lots of development are found in drivers, especially ASoC. The diffstat shows regmap-related changes for a slight API additions / changes, and that's all. Looking at the code size statistics, the most significant addition is for Intel Skylake. (Note that SKL support is still underway, the codec driver is missing.) Also STI controller driver is a major addition as well as a few new codec drivers. In HD-audio side, there are fewer changes than the past. The noticeable change is the support of ELD notification from i915 graphics driver. Thus this pull request carries a few changes in drm/i915. Other than that, USB-audio got a rewrite of runtime PM code. It was initiated by lockdep warning, but resulted in a good cleanup in the end. Below are the highlights: Common: - Factoring out of AC'97 reset code from ASoC into the core helper - A few regmap API extensions (in case it's not pulled yet) ASoC: - New drivers for Cirrus CS4349, GTM601, InvenSense ICS43432, Realtek RT298 and ST STI controllers - Machine drivers for Rockchip systems with MAX98090 and RT5645 and RT5650 - Initial driver support for Intel Skylake devices - Lots of rsnd cleanup and enhancements - A few DAPM fixes and cleanups - A large number of cleanups in various drivers (conversion and standardized to regmap, component) mostly by Lars-Peter and Axel HD-audio: - Extended HD-audio core for Intel Skylake controller support - Quirks for Dell headsets, Alienware 15 - Clean up of pin-based quirk tables for Realtek codecs - ELD notifier implenetation for Intel HDMI/DP USB-audio: - Refactor runtime PM code to make lockdep happier" * tag 'sound-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (411 commits) drm/i915: Add locks around audio component bind/unbind drm/i915: Drop port_mst_index parameter from pin/eld callback ALSA: hda - Fix missing inline for dummy snd_hdac_set_codec_wakeup() ALSA: hda - Wake the codec up on pin/ELD notify events ALSA: hda - allow codecs to access the i915 pin/ELD callback drm/i915: Call audio pin/ELD notify function drm/i915: Add audio pin sense / ELD callback ASoC: zx296702-i2s: Fix resource leak when unload module ASoC: sti_uniperif: Ensure component is unregistered when unload module ASoC: au1x: psc-i2s: Convert to use devm_ioremap_resource ASoC: sh: dma-sh7760: Convert to devm_snd_soc_register_platform ASoC: spear_pcm: Use devm_snd_dmaengine_pcm_register to fix resource leak ALSA: fireworks/bebob/dice/oxfw: fix substreams counting at vmalloc failure ASoC: Clean up docbook warnings ASoC: txx9: Convert to devm_snd_soc_register_platform ASoC: pxa: Convert to devm_snd_soc_register_platform ASoC: nuc900: Convert to devm_snd_soc_register_platform ASoC: blackfin: Convert to devm_snd_soc_register_platform ASoC: au1x: Convert to devm_snd_soc_register_platform ASoC: qcom: Constify asoc_qcom_lpass_cpu_dai_ops ... commit 670c039deeffb5c0a3a900de53b95dba781aaf89 Merge: 8bd8fd0 13d20b3 Author: Linus Torvalds Date: Fri Sep 4 11:40:40 2015 -0700 Merge tag 'backlight-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight Pull backlight updates from Lee Jones: - Stop using LP855X Platform Data to control regulators - Move PWM8941 WLED driver into Backlight - Remove invalid use of IS_ERR_VALUE() macro - Remove duplicate check for NULL data before unregistering - Export I2C Device ID structure * tag 'backlight-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: backlight: tosa: Export I2C module alias information backlight: lp8788_bl: Delete a check before backlight_device_unregister() backlight: sky81452: Remove unneeded use of IS_ERR_VALUE() macro backlight: pm8941-wled: Move PM8941 WLED driver to backlight backlight: lp855x: Use private data for regulator control commit 8bd8fd0a29bfd5ad8e1976edd8c4c40cdb39aa4f Merge: 3527122 5a688c4 Author: Linus Torvalds Date: Fri Sep 4 11:35:03 2015 -0700 Merge tag 'mfd-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD updates from Lee Jones: "New Device Support: - New Clocksource driver from ST - New MFD/ACPI/DMA drivers for Intel's Sunrisepoint PCH based platforms - Add support for Arizona WM8998 and WM1814 - Add support for Dialog Semi DA9062 and DA9063 - Add support for Kontron COMe-bBL6 and COMe-cBW6 - Add support for X-Powers AXP152 - Add support for Atmel, many - Add support for STMPE, many - Add support for USB in X-Powers AXP22X Core Frameworks: - New Base API to traverse devices and their children in reverse order Bug Fixes: - Fix race between runtime-suspend and IRQs - Obtain platform data form more reliable source Fix-ups: - Constifying things - Variable signage changes - Kconfig depends|selects changes - Make use of BIT() macro - Do not supply .owner attribute in *_driver structures - MAINTAINERS entries - Stop using set_irq_flags() - Start using irq_set_chained_handler_and_data() - Export DT device ID structures" * tag 'mfd-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (69 commits) mfd: jz4740-adc: Init mask cache in generic IRQ chip mfd: cros_ec: spi: Add OF match table mfd: stmpe: Add OF match table mfd: max77686: Split out regulator part from the DT binding mfd: Add DT binding for Maxim MAX77802 IC mfd: max77686: Use a generic name for the PMIC node in the example mfd: max77686: Don't suggest in binding to use a deprecated property mfd: Add MFD_CROS_EC dependencies mfd: cros_ec: Remove CROS_EC_PROTO dependency for SPI and I2C drivers mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs mfd: axp20x: Add missing registers, and mark more registers volatile mfd: arizona: Fixup some formatting/white space errors mfd: wm8994: Fix NULL pointer exception on missing pdata of: Add vendor prefix for Nuvoton mfd: mt6397: Implement wake handler and suspend/resume to handle wake up event mfd: atmel-hlcdc: Add support for new SoCs mfd: Export OF module alias information in missing drivers mfd: stw481x: Export I2C module alias information mfd: da9062: Support for the DA9063 OnKey in the DA9062 core mfd: max899x: Avoid redundant irq_data lookup ... commit 352712274507645b6f82b8763977ad87321919a3 Merge: 88a9988 ab98193 Author: Linus Torvalds Date: Fri Sep 4 11:10:18 2015 -0700 Merge tag 'dmaengine-4.3-rc1' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine updates from Vinod Koul: "This time we have aded a new capability for scatter-gathered memset using dmaengine APIs. This is supported in xdmac & hdmac drivers We have added support for reusing descriptors for examples like video buffers etc. Driver will follow The behaviour of descriptor ack has been clarified and documented New devices added are: - dma controller in sun[457]i SoCs - lpc18xx dmamux - ZTE ZX296702 dma controller - Analog Devices AXI-DMAC DMA controller - eDMA support for dma-crossbar - imx6sx support in imx-sdma driver - imx-sdma device to device support Other: - jz4780 fixes - ioatdma large refactor and cleanup for removal of ioat v1 and v2 which is deprecated and fixes - ACPI support in X-Gene DMA engine driver - ipu irq fixes - mvxor fixes - minor fixes spread thru drivers" [ The Kconfig and Makefile entries got re-sorted alphabetically, and I handled the conflict with the new Intel integrated IDMA driver by slightly mis-sorting it on purpose: "IDMA64" got sorted after "IMX" in order to keep the Intel entries together. I think it might be a good idea to just rename the IDMA64 config entry to INTEL_IDMA64 to make the sorting be a true sort, not this mismash. Also, this merge disables the COMPILE_TEST for the sun4i DMA controller, because it does not compile cleanly at all. - Linus ] * tag 'dmaengine-4.3-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (89 commits) dmaengine: ioatdma: add Broadwell EP ioatdma PCI dev IDs dmaengine :ipu: change ipu_irq_handler() to remove compile warning dmaengine: ioatdma: Fix variable array length dmaengine: ioatdma: fix sparse "error" with prep lock dmaengine: hdmac: Add memset capabilities dmaengine: sort the sh Makefile dmaengine: sort the sh Kconfig dmaengine: sort the dw Kconfig dmaengine: sort the Kconfig dmaengine: sort the makefile drivers/dma: make mv_xor.c driver explicitly non-modular dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller devicetree: Add bindings documentation for Analog Devices AXI-DMAC dmaengine: xgene-dma: Fix the lock to allow client for further submission of requests dmaengine: ioatdma: fix coccinelle warning dmaengine: ioatdma: fix zero day warning on incompatible pointer type dmaengine: tegra-apb: Simplify locking for device using global pause dmaengine: tegra-apb: Remove unnecessary return statements and variables dmaengine: tegra-apb: Avoid unnecessary channel base address calculation dmaengine: tegra-apb: Remove unused variables ... commit 88a99886c26fec8bf662e7b6bc080431a8660326 Merge: 8d2faea 1ab3638 Author: Linus Torvalds Date: Fri Sep 4 10:22:09 2015 -0700 Merge tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control updates from Linus Walleij: "This is the bulk of pin control changes for the v4.3 development cycle. Like with GPIO it's a lot of stuff. If my subsystems are any sign of the overall tempo of the kernel v4.3 will be a gigantic diff. [ It looks like 4.3 is calmer than 4.2 in most other subsystems, but we'll see - Linus ] Core changes: - It is possible configure groups in debugfs. - Consolidation of chained IRQ handler install/remove replacing all call sites where irq_set_handler_data() and irq_set_chained_handler() were done in succession with a combined call to irq_set_chained_handler_and_data(). This series was created by Thomas Gleixner after the problem was observed by Russell King. - Tglx also made another series of patches switching __irq_set_handler_locked() for irq_set_handler_locked() which is way cleaner. - Tglx also wrote a good bunch of patches to make use of irq_desc_get_xxx() accessors and avoid looking up irq_descs from IRQ numbers. The goal is to get rid of the irq number from the handlers in the IRQ flow which is nice. Driver feature enhancements: - Power management support for the SiRF SoC Atlas 7. - Power down support for the Qualcomm driver. - Intel Cherryview and Baytrail: switch drivers to use raw spinlocks in IRQ handlers to play nice with the realtime patch set. - Rework and new modes handling for Qualcomm SPMI-MPP. - Pinconf power source config for SH PFC. New drivers and subdrivers: - A new driver for Conexant Digicolor CX92755. - A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5, ProXtream2 and PH1-LD6b SoC pin control support. - Reverse-egineered the S/PDIF settings for the Allwinner sun4i driver. - Support for Qualcomm Technologies QDF2xxx ARM64 SoCs - A new Freescale i.mx6ul subdriver. Cleanup: - Remove platform data support in a number of SH PFC subdrivers" * tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (95 commits) pinctrl: at91: fix null pointer dereference pinctrl: mediatek: Implement wake handler and suspend resume pinctrl: mediatek: Fix multiple registration issue. pinctrl: sh-pfc: r8a7794: add USB pin groups pinctrl: at91: Use generic irq_{request,release}_resources() pinctrl: cherryview: Use raw_spinlock for locking pinctrl: baytrail: Use raw_spinlock for locking pinctrl: imx6ul: Remove .owner field pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp pinctrl: sh-pfc: Implement pinconf power-source param for voltage switching clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks pinctrl: sun4i: add spdif to pin description. pinctrl: atlas7: clear ugly branch statements for pull and drivestrength pinctrl: baytrail: Serialize all register access pinctrl: baytrail: Drop FSF mailing address pinctrl: rockchip: only enable gpio clock when it setting pinctrl/mediatek: fix spelling mistake in dev_err error message pinctrl: cherryview: Serialize all register access pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting pinctrl: nomadik: reflect current input value ... commit 8d2faea672606827c2018143ec7d88c760f2d6de Merge: 02cf1da 01e2dae Author: Linus Torvalds Date: Fri Sep 4 10:07:45 2015 -0700 Merge tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO updates from Linus Walleij: "This is the bulk of GPIO changes for the v4.3 kernel cycle. There is quite a lot going on in the GPIO subsystem this merge window, so the main matter is decribed below. The hits in other subsystems when making the GPIO flags optional are all ACKed by their respective subsystem maintainers. Core changes: - Root out the wrapper devm_gpiod_get() and gpiod_get() etc versions of the descriptor calls that did not use the flags argument on the end. This was around for too long and eventually Uwe Kleine-König took the time to clean it out and the last users are removed along with the macros in this tag. In several cases the use of flags simplifies the code. For this reason we have (ACKed) patches hitting in DRM, IIO, media, NFC, USB+PHY up until we hammer in the nail with removing the macros. - Add a fat document describing how much ready-made GPIO stuff we have i the kernel to discourage people from reinventing a square wheel in userspace, as so often happens. - Create a separate lockdep class for each instance of a GPIO IRQ chip instead of using one class for all chips, as the current code will not work with systems with several GPIO chips doing lockdep debugging. - Protect against driver unloading also when a GPIO line is only used as IRQ for the GPIOLIB_IRQCHIP helpers. - If the GPIO chip has no designated owner, assign the parent device driver owner as owner. - Consolidation of chained IRQ handler install/remove replacing all call sites where irq_set_handler_data() and irq_set_chained_handler() were done in succession with a combined call to irq_set_chained_handler_and_data(). This series was created by Thomas Gleixner after the problem was observed by Russell King. - Tglx also made another series of patches switching __irq_set_handler_locked() for irq_set_handler_locked() which is way cleaner. - Tglx and Jiang Liu wrote a good bunch of patches to make use of irq_desc_get_xxx() accessors and avoid looking up irq_descs from IRQ numbers. The goal is to get rid of the irq number from the handlers in the IRQ flow which is nice. - Rob Herring killed off the set_irq_flags() for all GPIO drivers. This was an ARM specific function that is replaced with the generic irq_modify_status() where special flags are actually needed. - When an OF node has a pin range for its GPIOs, return -EPROBE_DEFER if the pin controller isn't available. Pretty logical, yet needed to be fixed. - If a driver using GPIOLIB_IRQCHIP has its own irq_*_resources call back, then call these instead of the defaults provided by the GPIOLIB. - Fix an undocumented ABI hole: named GPIOs were not properly documented. Driver improvements: - Add get_direction() support to the generic GPIO driver, it's strange that we didn't have that before. - Make it possible to have input-only GPIO chips using the generic GPIO driver. - Clean out platform data support from the Emma Mobile (EM) driver - Finegrained runtime PM support for the RCAR driver. - Support r8a7795 (R-car H3) in the RCAR driver. - Support interrupts on GPIOs 16 thru 31 in the DaVinci driver. - Some consolidation and new support in the MPC8xxx driver, we now support MPC5125. - Preempt-RT-friendly patches: the OMAP, MPC8xxx, drivers uses raw spinlocks making it work better with the realime patches. - Interrupt support for the EXTRAXFS GPIO driver. - Make the ETRAXFS GPIO driver support also ARTPEC-3. - Interrupt and wakeup support for the BRCMSTB driver, also for wakeup from S5 cold boot. - Mask MXC IRQs during suspend. - Improve OMAP2 GPIO set_debounce() to work according to spec. - The VF610 driver handles IRQs properly. New drivers: - ZTE ZX GPIO driver" * tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits) Revert "gpio: extraxfs: fix returnvar.cocci warnings" gpio: tc3589x: use static container helper gpio: xlp: fix error return code gpio: vf610: handle level IRQ's properly gpio: max732x: Fix error handling in probe() gpio: omap: fix clk_prepare/unprepare usage gpio: omap: protect regs access in omap_gpio_irq_handler gpio: omap: fix omap2_set_gpio_debounce gpio: omap: switch to use platform_get_irq gpio: omap: remove wrong irq_domain_remove usage in probe gpiolib: add description for gpio irqchip fields in struct gpio_chip gpio: extraxfs: fix returnvar.cocci warnings gpiolib: irqchip: use different lockdep class for each gpio irqchip gpio/grgpio: fix deadlock in grgpio_irq_unmap() Documentation: gpio: consumer: describe active low property gpio: mxc: fix section mismatch warning gpio/mxc: mask gpio interrupts in suspend gpio: omap: Fix missing raw locks conversion gpio: brcmstb: support wakeup from S5 cold boot gpio: brcmstb: Add interrupt and wakeup source support ... commit 072502a67c9164625288cca17704808e6c06273f Merge: 84fb901 1ed8111 2de9d60 Author: Mark Brown Date: Fri Sep 4 17:22:10 2015 +0100 Merge remote-tracking branches 'regmap/topic/lockdep' and 'regmap/topic/seq-delay' into regmap-next commit 84fb9015d20dc12a2d36f7d775700a53cc45ad90 Merge: a458a6d ad3a942 e874e6c Author: Mark Brown Date: Fri Sep 4 17:22:09 2015 +0100 Merge remote-tracking branches 'regmap/topic/debugfs' and 'regmap/topic/force-update' into regmap-next commit a458a6d411b86de7a2a8e51f9016cf017d5ed545 Merge: f7474161 04782ca Author: Mark Brown Date: Fri Sep 4 17:22:08 2015 +0100 Merge remote-tracking branch 'regmap/topic/core' into regmap-next commit f74741615368af1b8401be4b7a6f0b9ccbc2420a Merge: b3959b5 9a16ea9 Author: Mark Brown Date: Fri Sep 4 17:22:07 2015 +0100 Merge remote-tracking branch 'regmap/fix/raw' into regmap-linus commit b3959b5cd33383d9fa9b6c653e162331c2af2e08 Merge: 64291f7 2f9b660 Author: Mark Brown Date: Fri Sep 4 17:22:07 2015 +0100 Merge remote-tracking branch 'regmap/fix/core' into regmap-linus commit 04782ca20a8ebb5acf0c35756a38964ae5ea7321 Merge: d5b98eb 17649c9 Author: Mark Brown Date: Fri Sep 4 17:16:39 2015 +0100 Merge branch 'topic/smbus-block' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regmap-core commit 0de6cfb9f314db230c47b2158e7725208b3b4728 Author: Greg Kroah-Hartman Date: Fri Sep 4 09:13:56 2015 -0700 Revert "uart: pl011: Rename regs with enumeration" This reverts commit 534e14e2293d8cd714b94513686228453b21fae2 as with this patch the serial console is broken on lots of platforms. Reported-by: Marc Zyngier Cc: Jun Nie Acked-by: Will Deacon Tested-by: Will Deacon Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 207 ++++++++++++++++++---------------------- 1 file changed, 93 insertions(+), 114 deletions(-) commit f11c98417c65ddd730c483c1c9290ae0f7b121a7 Author: Greg Kroah-Hartman Date: Fri Sep 4 09:13:39 2015 -0700 Revert "uart: pl011: Introduce register accessor" This reverts commit 7b753f318d1456c8e7740f3bd96d1dbb362d5449 as with this patch the serial console is broken on lots of platforms. Reported-by: Marc Zyngier Cc: Jun Nie Acked-by: Will Deacon Tested-by: Will Deacon Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 263 +++++++++++++++++++--------------------- 1 file changed, 122 insertions(+), 141 deletions(-) commit ab66ca27c801605c6bb19baed2933544dd7d39e6 Author: Greg Kroah-Hartman Date: Fri Sep 4 09:13:30 2015 -0700 Revert "uart: pl011: Introduce register look up table" This reverts commit 2c096a9eedc6841d3610545f4e6c3d72bd0962be as with this patch the serial console is broken on lots of platforms. Reported-by: Marc Zyngier Cc: Jun Nie Acked-by: Will Deacon Tested-by: Will Deacon Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 55 ++++------------------------------------- 1 file changed, 5 insertions(+), 50 deletions(-) commit 8e50254a6ab2abb6ae08699adffe3d89e4c75912 Author: Greg Kroah-Hartman Date: Fri Sep 4 09:12:03 2015 -0700 Revert "uart: pl011: Improve LCRH register access decision" This reverts commit 09dcc7dfc05b31bf0bbcd1511cd1a2644908d5c8 as with this patch the serial console is broken on lots of platforms. Reported-by: Marc Zyngier Cc: Jun Nie Acked-by: Will Deacon Tested-by: Will Deacon Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 062a68a5e0aaa9577d75391ffafa11e3c2a5f892 Author: Greg Kroah-Hartman Date: Fri Sep 4 09:11:24 2015 -0700 Revert "uart: pl011: Add support to ZTE ZX296702 uart" This reverts commit 8cd90e50d1408c65c355084b1c7f8f9085f49c6b as with this patch the serial console is broken on lots of platforms. Reported-by: Marc Zyngier Cc: Jun Nie Acked-by: Will Deacon Tested-by: Will Deacon Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 4 +- drivers/tty/serial/amba-pl011.c | 195 +++------------------------------------- include/linux/amba/serial.h | 14 --- 3 files changed, 16 insertions(+), 197 deletions(-) commit 0c0672922dcc70ffba11d96385e98e42fb3ae08d Author: Alexander Spyridakis Date: Fri Sep 4 17:06:24 2015 +0200 arm/arm64: KVM: Fix PSCI affinity info return value for non valid cores If a guest requests the affinity info for a non-existing vCPU we need to properly return an error, instead of erroneously reporting an off state. Signed-off-by: Alexander Spyridakis Signed-off-by: Alvise Rigo Acked-by: Mark Rutland Reviewed-by: Marc Zyngier Signed-off-by: Marc Zyngier arch/arm/kvm/psci.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 02cf1da2548d318ad4db9eb4cf8656e24b11aefc Merge: a4fdb2a 8d03bc5 Author: Linus Torvalds Date: Fri Sep 4 08:59:53 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull tile updates from Chris Metcalf: "This includes secure computing support as well as miscellaneous minor improvements" * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: correct some typos in opcode type names tile/vdso: emit a GNU hash as well tile: Remove finish_arch_switch tile: enable full SECCOMP support tile/time: Migrate to new 'set-state' interface commit 857d1a973077245f03b351e2539529c86267bfe4 Author: Mark Rutland Date: Mon Aug 24 14:42:05 2015 +0100 arm64: KVM: set {v,}TCR_EL2 RES1 bits Currently we don't set the RES1 bits of TCR_EL2 and VTCR_EL2 when configuring them, which could lead to unexpected behaviour when an architectural meaning is defined for those bits. Set the RES1 bits to avoid issues. Cc: Catalin Marinas Cc: Christoffer Dall Cc: Marc Zyngier Cc: Suzuki Poulose Cc: Will Deacon Reviewed-by: Christoffer Dall Signed-off-by: Mark Rutland Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_arm.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 4ad9e16af36bbe8657aabe494ff912acbc213ce4 Author: Christoffer Dall Date: Fri Sep 4 16:24:39 2015 +0200 arm/arm64: KVM: arch timer: Reset CNTV_CTL to 0 Provide a better quality of implementation and be architecture compliant on ARMv7 for the architected timer by resetting the CNTV_CTL to 0 on reset of the timer. This change alone fixes the UEFI reset issue reported by Laszlo back in February. Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: Drew Jones Cc: Wei Huang Cc: Peter Maydell Reviewed-by: Marc Zyngier Signed-off-by: Christoffer Dall Signed-off-by: Marc Zyngier virt/kvm/arm/arch_timer.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 04bdfa8ab5bab929cc57f73952c503a88372601d Author: Christoffer Dall Date: Fri Sep 4 16:24:38 2015 +0200 arm/arm64: KVM: vgic: Move active state handling to flush_hwstate We currently set the physical active state only when we *inject* a new pending virtual interrupt, but this is actually not correct, because we could have been preempted and run something else on the system that resets the active state to clear. This causes us to run the VM with the timer set to fire, but without setting the physical active state. The solution is to always check the LR configurations, and we if have a mapped interrupt in the LR in either the pending or active state (virtual), then set the physical active state. Acked-by: Marc Zyngier Signed-off-by: Christoffer Dall Signed-off-by: Marc Zyngier virt/kvm/arm/vgic.c | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) commit 71c6da846be478a61556717ef1ee1cea91f5d6a8 Author: Andrey Ryabinin Date: Thu Sep 3 14:32:01 2015 +0300 crypto: ghash-clmulni: specify context size for ghash async algorithm Currently context size (cra_ctxsize) doesn't specified for ghash_async_alg. Which means it's zero. Thus crypto_create_tfm() doesn't allocate needed space for ghash_async_ctx, so any read/write to ctx (e.g. in ghash_async_init_tfm()) is not valid. Cc: stable@vger.kernel.org Signed-off-by: Andrey Ryabinin Signed-off-by: Herbert Xu arch/x86/crypto/ghash-clmulni-intel_glue.c | 1 + 1 file changed, 1 insertion(+) commit 5134e999cb72c621f48305d5c201ab30156505c1 Author: Alex Deucher Date: Fri Sep 4 00:11:54 2015 -0400 drm/amdgpu: fix warning in scheduler This should never happen so warn when the count does not equal the expected size. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a4fdb2a46f617b8b2cd47acec026ec16532edbc6 Merge: 807249d 674c242c Author: Linus Torvalds Date: Fri Sep 4 07:18:09 2015 -0700 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 updates from Will Deacon: - Support for new architectural features introduced in ARMv8.1: * Privileged Access Never (PAN) to catch user pointer dereferences in the kernel * Large System Extension (LSE) for building scalable atomics and locks (depends on locking/arch-atomic from tip, which is included here) * Hardware Dirty Bit Management (DBM) for updating clean PTEs automatically - Move our PSCI implementation out into drivers/firmware/, where it can be shared with arch/arm/. RMK has also pulled this component branch and has additional patches moving arch/arm/ over. MAINTAINERS is updated accordingly. - Better BUG implementation based on the BRK instruction for trapping - Leaf TLB invalidation for unmapping user pages - Support for PROBE_ONLY PCI configurations - Various cleanups and non-critical fixes, including: * Always flush FP/SIMD state over exec() * Restrict memblock additions based on range of linear mapping * Ensure *(LIST_POISON) generates a fatal fault * Context-tracking syscall return no longer corrupts return value when not forced on. * Alternatives patching synchronisation/stability improvements * Signed sub-word cmpxchg compare fix (tickled by HAVE_CMPXCHG_LOCAL) * Force SMP=y * Hide direct DCC access from userspace * Fix EFI stub memory allocation when DRAM starts at 0x0 * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits) arm64: flush FP/SIMD state correctly after execve() arm64: makefile: fix perf_callchain.o kconfig dependency arm64: set MAX_MEMBLOCK_ADDR according to linear region size of/fdt: make memblock maximum physical address arch configurable arm64: Fix source code file path in comments arm64: entry: always restore x0 from the stack on syscall return arm64: mdscr_el1: avoid exposing DCC to userspace arm64: kconfig: Move LIST_POISON to a safe value arm64: Add __exception_irq_entry definition for function graph arm64: mm: ensure patched kernel text is fetched from PoU arm64: alternatives: ensure secondary CPUs execute ISB after patching arm64: make ll/sc __cmpxchg_case_##name asm consistent arm64: dma-mapping: Simplify pgprot handling arm64: restore cpu suspend/resume functionality ARM64: PCI: do not enable resources on PROBE_ONLY systems arm64: cmpxchg: truncate sub-word signed types before comparison arm64: alternative: put secondary CPUs into polling loop during patch arm64/Documentation: clarify wording regarding memory below the Image arm64: lse: fix lse cmpxchg code indentation arm64: remove redundant object file list ... commit ef9be10c8c999e00b239eec24cf01952a308f8e7 Author: Johannes Berg Date: Fri Aug 28 10:44:20 2015 +0200 mac80211: reject software RSSI CQM with beacon filtering When beacon filtering is enabled the mac80211 software implementation for RSSI CQM cannot work as beacons will not be available. Rather than accepting such a configuration without proper effect, reject it. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 4 ++++ 1 file changed, 4 insertions(+) commit 52a45f38ca5998db0394e782d137595a82a08b43 Author: Arik Nemtsov Date: Sat Aug 15 22:39:53 2015 +0300 mac80211: avoid VHT usage with no 80MHz chans allowed Currently if 80MHz channels are not allowed for use, the VHT IE is not included in the probe request for an AP. This is not good enough if the AP is configured with the wrong regulatory and supports VHT even where prohibited or in TDLS scenarios. Mark the ifmgd with the DISABLE_VHT flag for the misbehaving-AP case, and unset VHT support from the peer-station entry for the TDLS case. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/mlme.c | 16 ++++++++++++++++ net/mac80211/vht.c | 15 +++++++++++++++ 2 files changed, 31 insertions(+) commit 549cc1c560128d583698ba9a73af283fe87dbab8 Author: Maciej S. Szmigiero Date: Wed Sep 2 19:00:31 2015 +0200 cfg80211: regulatory: restore proper user alpha2 restore_regulatory_settings() should restore alpha2 as computed in restore_alpha2(), not raw user_alpha2 to behave as described in the comment just above that code. This fixes endless loop of calling CRDA for "00" and "97" countries after resume from suspend on my laptop. Looks like others had the same problem, too: http://ath9k-devel.ath9k.narkive.com/knY5W6St/ath9k-and-crda-messages-in-logs https://bugs.launchpad.net/ubuntu/+source/linux/+bug/899335 https://forum.porteus.org/viewtopic.php?t=4975&p=36436 https://forums.opensuse.org/showthread.php/483356-Authentication-Regulatory-Domain-issues-ath5k-12-2 Signed-off-by: Maciej Szmigiero Signed-off-by: Johannes Berg net/wireless/reg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c0778933a3d7c35a94e8c35847acd9bb59a257d Author: João Paulo Rechi Vita Date: Tue Aug 25 08:56:43 2015 -0400 rfkill: Copy "all" global state to other types When switching the state of all RFKill switches of type all we need to replicate the RFKILL_TYPE_ALL global state to all the other types global state, so it is used to initialize persistent RFKill switches on register. Signed-off-by: João Paulo Rechi Vita Acked-by: Marcel Holtmann Signed-off-by: Johannes Berg net/rfkill/core.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 22f66895e60cfc55b92f6fa93f05bb3fbdbd0bed Author: Avri Altman Date: Tue Aug 18 16:52:07 2015 +0300 mac80211: protect non-HT BSS when HT TDLS traffic exists HT TDLS traffic should be protected in a non-HT BSS to avoid collisions. Therefore, when TDLS peers join/leave, check if protection is (now) needed and set the ht_operation_mode of the virtual interface according to the HT capabilities of the TDLS peer(s). This works because a non-HT BSS connection never sets (or otherwise uses) the ht_operation_mode; it just means that drivers must be aware that this field applies to all HT traffic for this virtual interface, not just the traffic within the BSS. Document that. Signed-off-by: Avri Altman Signed-off-by: Johannes Berg include/net/mac80211.h | 4 ++- net/mac80211/tdls.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 70 insertions(+), 4 deletions(-) commit 98a1f8282b8c37378c1b947d661a58942331ca90 Author: Thierry Reding Date: Wed Aug 26 12:22:14 2015 +0200 mac80211: Do not use sizeof() on pointer type The rate_control_cap_mask() function takes a parameter mcs_mask, which GCC will take to be u8 * even though it was declared with a fixed size. This causes the following warning: net/mac80211/rate.c: In function 'rate_control_cap_mask': net/mac80211/rate.c:719:25: warning: 'sizeof' on array function parameter 'mcs_mask' will return size of 'u8 * {aka unsigned char *}' [-Wsizeof-array-argument] for (i = 0; i < sizeof(mcs_mask); i++) ^ net/mac80211/rate.c:684:10: note: declared here u8 mcs_mask[IEEE80211_HT_MCS_MASK_LEN], ^ This can be easily fixed by using the IEEE80211_HT_MCS_MASK_LEN directly within the loop condition. Signed-off-by: Thierry Reding Signed-off-by: Johannes Berg net/mac80211/rate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5631d9c429857194bd55d7bcd8fa5bdd1a9899a3 Author: Michal Marek Date: Wed Aug 19 17:36:41 2015 +0200 kbuild: Fix clang detection We cannot detect clang before including the arch Makefile, because that can set the default cross compiler. We also cannot detect clang after including the arch Makefile, because powerpc wants to know about clang. Solve this by using an deferred variable. This costs us a few shell invocations, but this is only a constant number. Reported-by: Behan Webster Reported-by: Anton Blanchard Signed-off-by: Michal Marek Makefile | 9 +-------- arch/powerpc/Makefile | 8 ++++---- scripts/Kbuild.include | 4 ++++ scripts/Makefile.extrawarn | 2 +- 4 files changed, 10 insertions(+), 13 deletions(-) commit 86bfbc15660a61bb7b3df73db11939eec3393008 Author: Luis de Bethencourt Date: Thu Sep 3 13:03:04 2015 +0200 ALSA: sparc: amd7930: Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Takashi Iwai sound/sparc/amd7930.c | 1 + 1 file changed, 1 insertion(+) commit 3716001bcb7f5822382ac1f2f54226b87312cc6b Author: Riku Voipio Date: Wed Sep 2 12:57:24 2015 +0300 deb-pkg: add source package Make deb-pkg build both source and binary package like make rpm-pkg does. For people who only need binary kernel package, there is now bindeb-pkg target, same target also used to build the .deb files if built from the source package using dpkg-buildpackage. Generated source package will build the same kernel .config than what was available for make deb-pkg. The name of the source package can be set with KDEB_SOURCENAME enviroment variable. The source package is useful for GPL compliance, or for feeding to a automated debian package builder. Cc: Chris J Arges Reviewed-by: maximilian attems Reviewed-by: Ben Hutchings Signed-off-by: Riku Voipio Signed-off-by: Michal Marek scripts/package/Makefile | 17 +++++++++++++---- scripts/package/builddeb | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 6 deletions(-) commit 26803821463c4e76322559b3dfb0c6b0fcc8aee8 Author: Riku Voipio Date: Wed Sep 2 12:57:08 2015 +0300 package/Makefile: move source tar creation to a function Split source tarball creation from rpm-pkg target so it can be used from deb-pkg target as well. As added bonus, we can now pretty print TAR the name of tarball created in quiet mode This patch prepares the groundwork for deb-pkg source package adding bit. Signed-off-by: Riku Voipio Signed-off-by: Michal Marek scripts/package/Makefile | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit 21adf76e908dd03ae47c8f4dd53b180996a725ad Merge: 5b92356 53ff6bc Author: Ingo Molnar Date: Fri Sep 4 11:00:56 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: - In some cases where perf_event.fork.{pid,tid} should be used we were instead using perf_event.comm.{pid,tid}, which is not a problem for for the 'pid' case, that sits in the same place in these union_perf_event members, but comm.tid sits where fork.ppid is, oops. These cases were considered as (potentially) problematic: - 'perf script' with !sample_id_all, i.e. only non old kernels without perf_event_attr.sample_id_all. - intel_pt could be affected when decoding without timestamps, as the exit event is only used to flush out data which anyway gets flushed at the end of the session. - intel_bts also uses the exit event to flush data which would probably not cause errors as it would get flushed at the end of the session instead. Fix it. (Adrian Hunter) - Due to relaxing the compiler checks for bison generated files, we missed updating one parse_events_add_pmu() caller when this function had its prototype changed, fix it. (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 1adecc6755e1e4193b5618ddb2e107f6d6e88f4b Author: Woodrow Shen Date: Fri Sep 4 15:08:12 2015 +0800 ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop. Dell laptop has a series model to use the same codec but different subsystem ID. At the same time they happens the white noise by login screen and headphone; for fixing them together, I only can add these IDs to FIXUP function ALC292_FIXUP_DISABLE_AAMIX, then try to solve such the similar issues. Codec: Realtek ALC3235 Vendor Id: 0x10ec0293 Subsystem Id: 0x102806dd Subsystem Id: 0x102806df Subsystem Id: 0x102806e0 Cc: BugLink: https://bugs.launchpad.net/bugs/1492132 Signed-off-by: Woodrow Shen Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 93efac3f2e03321129de67a3c0ba53048bb53e31 Author: Herbert Xu Date: Fri Sep 4 13:21:06 2015 +0800 ipv6: Fix IPsec pre-encap fragmentation check The IPv6 IPsec pre-encap path performs fragmentation for tunnel-mode packets. That is, we perform fragmentation pre-encap rather than post-encap. A check was added later to ensure that proper MTU information is passed back for locally generated traffic. Unfortunately this check was performed on all IPsec packets, including transport-mode packets. What's more, the check failed to take GSO into account. The end result is that transport-mode GSO packets get dropped at the check. This patch fixes it by moving the tunnel mode check forward as well as adding the GSO check. Fixes: dd767856a36e ("xfrm6: Don't call icmpv6_send on local error") Signed-off-by: Herbert Xu Signed-off-by: Steffen Klassert net/ipv6/xfrm6_output.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit eb38f3a4f6e86f8bb10a3217ebd85ecc5d763aae Author: Takashi Iwai Date: Thu Sep 3 22:20:00 2015 -0700 Input: evdev - do not report errors form flush() We've got bug reports showing the old systemd-logind (at least system-210) aborting unexpectedly, and this turned out to be because of an invalid error code from close() call to evdev devices. close() is supposed to return only either EINTR or EBADFD, while the device returned ENODEV. logind was overreacting to it and decided to kill itself when an unexpected error code was received. What a tragedy. The bad error code comes from flush fops, and actually evdev_flush() returns ENODEV when device is disconnected or client's access to it is revoked. But in these cases the fact that flush did not actually happen is not an error, but rather normal behavior. For non-disconnected devices result of flush is also not that interesting as there is no potential of data loss and even if it fails application has no way of handling the error. Because of that we are better off always returning success from evdev_flush(). Also returning EINTR from flush()/close() is discouraged (as it is not clear how application should handle this error), so let's stop taking evdev->mutex interruptibly. Bugzilla: http://bugzilla.suse.com/show_bug.cgi?id=939834 Cc: Signed-off-by: Takashi Iwai Signed-off-by: Dmitry Torokhov drivers/input/evdev.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 22c15e5e008297c90daa8657fea1a3f0e0675454 Author: James Chen Date: Thu Sep 3 22:12:38 2015 -0700 Input: elants_i2c - extend the calibration timeout to 12 seconds The 23 inch device found in Chrome project buddy requires 9.2~10.5 seconds to complete calibration. Let's increase calibration timeout to 12 seconds to give the device enough time. Signed-off-by: James Chen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/elants_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26492f195eed08b95ad5acdfbe625062ad7d86c6 Author: Luis de Bethencourt Date: Thu Sep 3 10:50:57 2015 -0700 Input: sparcspkr - fix module autoload for OF platform drivers These platform drivers have a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Dmitry Torokhov drivers/input/misc/sparcspkr.c | 2 ++ 1 file changed, 2 insertions(+) commit 5b78cb668764061bd8a06f73f9bd081ba6942fef Merge: aed160e 6fa2d19 Author: Dave Airlie Date: Fri Sep 4 13:09:20 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-09-02' of git://anongit.freedesktop.org/drm-intel into drm-next i915 display fixes headed for v4.3. Mostly SKL, but some regression fixes too. * tag 'drm-intel-next-fixes-2015-09-02' of git://anongit.freedesktop.org/drm-intel: i915: Set ddi_pll_sel in DP MST path drm/i915: Don't use link_bw for PLL setup drm/i915: Preserve SSC earlier drm/i915/skl: Adding DDI_E power well domain drm/i915: eDP can be present on DDI-E drm/i915/skl: Enable DDI-E drm/i915: Enable HDMI on DDI-E drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pre GEN6 drm/i915: Check DP link status on long hpd too drm/i915: set CDCLK if DPLL0 enabled during resuming from S3 commit aed160eac581258f5f280b6e4b3f49b106973a78 Merge: 41e8a0a3 4c156c2 Author: Dave Airlie Date: Fri Sep 4 13:08:40 2015 +1000 Merge branch 'drm-rockchip-2015-08-26' of https://github.com/markyzq/kernel-drm-rockchip into drm-next Here are some fixes and some new features for rockchip drm, tested on popmetal rk3288 board, can you land them? * 'drm-rockchip-2015-08-26' of https://github.com/markyzq/kernel-drm-rockchip: drm/rockchip: vop: support plane scale drm/rockchip: vop: restore vop registers when resume drm/rockchip: vop: Default enable win2/3 area0 bit drm/rockchip: vop: Add yuv plane support drm/rockchip: vop: Fix window dest start point drm/rockchip: vop: Fix virtual stride calculation commit 41e8a0a3046530911bf2f2fc28c971bf588858b8 Merge: 55cdb31 aa3469c Author: Dave Airlie Date: Fri Sep 4 13:08:08 2015 +1000 Merge tag 'vmwgfx-next-15-09-01' of git://people.freedesktop.org/~thomash/linux into drm-next Pull request of 2015-09-01 A single commit. Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1227193 * tag 'vmwgfx-next-15-09-01' of git://people.freedesktop.org/~thomash/linux: drm/vmwgfx: Allow dropped masters render-node like access on legacy nodes v2 commit 55cdb314494b0372c2f0ba3a589aeb412a9626ba Merge: 9949558 c305857 Author: Dave Airlie Date: Fri Sep 4 13:07:18 2015 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next This is a last pull request, which includes two g2d patches I missed, and more cleanup series of Exynos drm driver. The cleanup series makes Exynos drm driver more simple, and removes unnecessary codes, and considers multiple plane format of framebuffer. I hope this not to be late. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: remove buf_cnt from struct exynos_drm_fb drm/exynos: remove exynos_drm_fb_get_buf_cnt() drm/exynos: cleanup exynos_user_fb_create() drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers drm/exynos: cleanup to get gem object for fb drm/exynos: update fb_info via only one function drm/exynos: cleanup exynos_drm_fbdev_update() drm/exynos: s/exynos_gem_obj/obj in exynos_drm_fbdev.c drm/exynos: remove exynos_drm_fb_set_buf_cnt() drm/exynos: remove superfluous checks in g2d_check_reg_offset() drm/exynos: fix size check in g2d_check_buf_desc_is_valid() commit 99495589aa4de7166af254bc497cdbe133fc24bb Merge: 879a37d bddf802 Author: Dave Airlie Date: Fri Sep 4 13:06:29 2015 +1000 Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next More fixes for radeon and amdgpu for 4.3: - Send full DP aux address fixes for radeon and amdgpu - Fix an HDMI display regression for pre-DCE5 parts - UVD suspend fixes for amdgpu - Add an rs480 suspend quirk - Fix bo reserve handling in amdgpu GEM_OP ioctl - GPU scheduler fixes - SDMA optimizations - MEC fix for Fiji * 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (21 commits) drm/amdgpu: set MEC doorbell range for Fiji drm/amdgpu: implement burst NOP for SDMA drm/amdgpu: add insert_nop ring func and default implementation drm/amdgpu: add amdgpu_get_sdma_instance helper function drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES drm/amdgpu: add burst_nop flag for sdma drm/amdgpu: add count field for the SDMA NOP packet v2 drm/amdgpu: use PT for VM sync on unmap drm/amdgpu: make wait_event uninterruptible in push_job drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2 drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()" v2 Add radeon suspend/resume quirk for HP Compaq dc5750. drm/amdgpu: re-work sync_resv drm/amdgpu/atom: Send out the full AUX address drm/radeon/native: Send out the full AUX address drm/radeon/atom: Send out the full AUX address drm/amdgpu: use IB for fill_buffer instead of direct command drm/amdgpu: stop trying to suspend UVD sessions v2 drm/amdgpu: add scheduler dependency callback v2 drm/amdgpu: let the scheduler work more with jobs v2 ... commit dc3a04d551b5d21f1badbb39bfe8e5bc1289b184 Author: Paul E. McKenney Date: Wed Sep 2 17:11:22 2015 -0700 security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition f78f5b90c4ff ("rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()") introduced a bug by incorrectly inverting the condition when moving from rcu_lockdep_assert() to RCU_LOCKDEP_WARN(). This commit therefore fixes the inversion. Reported-by: Felipe Balbi Reported-by: Tejun Heo Signed-off-by: Paul E. McKenney Acked-by: Serge Hallyn Tested-by: Josh Boyer security/device_cgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 807249d3ada1ff28a47c4054ca4edd479421b671 Merge: ff474e8 2db9704 Author: Linus Torvalds Date: Thu Sep 3 16:55:55 2015 -0700 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus Pull MIPS updates from Ralf Baechle: "This is the main pull request for 4.3 for MIPS. Here's the summary: Three fixes that didn't make 4.2-stable: - a -Os build might compile the kernel using the MIPS16 instruction set but the R2 optimized inline functions in are implemented using 32-bit wide instructions which is invalid. - a build error in pgtable-bits.h for a particular kernel configuration. - accessing registers of the CM GCR might have been compiled to use 64 bit accesses but these registers are onl 32 bit wide. And also a few new bits: - move the ATH79 GPIO driver to drivers/gpio - the definition of IRQCHIP_DECLARE has moved to linux/irqchip.h, change ATH79 accordingly. - fix definition of pgprot_writecombine - add an implementation of dma_map_ops.mmap - fix alignment of quiet build output for vmlinuz link - BCM47xx: Use kmemdup rather than duplicating its implementation - Netlogic: Fix 0x0x prefixes of constants. - merge Bjorn Helgaas' series to remove most of the weak keywords from function declarations. - CP0 and CP1 registers are best considered treated as unsigned values to avoid large values from becoming negative values. - improve support for the MIPS GIC timer. - enable common clock framework for Malta and SEAD3. - a number of improvments and fixes to dump_tlb(). - document the MIPS TLB dump functionality in Magic SysRq. - Cavium Octeon CN68XX improvments. - NetLogic improvments. - irq: Use access helper irq_data_get_affinity_mask. - handle MSA unaligned accesses. - a number of R6-related math-emu fixes. - support for I6400. - improvments to MSA support. - add uprobes support. - move from deprecated __initcall to arch_initcall. - remove finish_arch_switch(). - IRQ cleanups by Thomas Gleixner. - migrate to new 'set-state' interface. - random small cleanups" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (148 commits) MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16. MIPS: Fix alignment of quiet build output for vmlinuz link MIPS: math-emu: Remove unused handle_dsemul function declaration MIPS: math-emu: Add support for the MIPS R6 MAX{, A} FPU instruction MIPS: math-emu: Add support for the MIPS R6 MIN{, A} FPU instruction MIPS: math-emu: Add support for the MIPS R6 CLASS FPU instruction MIPS: math-emu: Add support for the MIPS R6 RINT FPU instruction MIPS: math-emu: Add support for the MIPS R6 MSUBF FPU instruction MIPS: math-emu: Add support for the MIPS R6 MADDF FPU instruction MIPS: math-emu: Add support for the MIPS R6 SELNEZ FPU instruction MIPS: math-emu: Add support for the MIPS R6 SELEQZ FPU instruction MIPS: math-emu: Add support for the CMP.condn.fmt R6 instruction MIPS: inst.h: Add new MIPS R6 FPU opcodes MIPS: Octeon: Fix management port MII address on Kontron S1901 MIPS: BCM47xx: Use kmemdup rather than duplicating its implementation STAGING: Octeon: Use common helpers for determining interface and port MIPS: Octeon: Support interfaces 4 and 5 MIPS: Octeon: Set up 1:1 mapping between CN68XX PKO queues and ports MIPS: Octeon: Initialize CN68XX PKO STAGING: Octeon: Support CN68XX style WQE ... commit ff474e8ca8547d09cb82ebab56d4c96f9eea01ce Merge: 4c92b5b 390fd59 Author: Linus Torvalds Date: Thu Sep 3 16:41:38 2015 -0700 Merge tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc updates from Michael Ellerman: - support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask from Benjamin Herrenschmidt - EEH fixes for SRIOV from Gavin - introduce rtas_get_sensor_fast() for IRQ handlers from Thomas Huth - use hardware RNG for arch_get_random_seed_* not arch_get_random_* from Paul Mackerras - seccomp filter support from Michael Ellerman - opal_cec_reboot2() handling for HMIs & machine checks from Mahesh Salgaonkar - add powerpc timebase as a trace clock source from Naveen N. Rao - misc cleanups in the xmon, signal & SLB code from Anshuman Khandual - add an inline function to update POWER8 HID0 from Gautham R. Shenoy - fix pte_pagesize_index() crash on 4K w/64K hash from Michael Ellerman - drop support for 64K local store on 4K kernels from Michael Ellerman - move dma_get_required_mask() from pnv_phb to pci_controller_ops from Andrew Donnellan - initialize distance lookup table from drconf path from Nikunj A Dadhania - enable RTC class support from Vaibhav Jain - disable automatically blocked PCI config from Gavin Shan - add LEDs driver for PowerNV platform from Vasant Hegde - fix endianness issues in the HVSI driver from Laurent Dufour - kexec endian fixes from Samuel Mendoza-Jonas - fix corrupted pdn list from Gavin Shan - fix fenced PHB caused by eeh_slot_error_detail() from Gavin Shan - Freescale updates from Scott: Highlights include 32-bit memcpy/memset optimizations, checksum optimizations, 85xx config fragments and updates, device tree updates, e6500 fixes for non-SMP, and misc cleanup and minor fixes. - a ton of cxl updates & fixes: - add explicit precision specifiers from Rasmus Villemoes - use more common format specifier from Rasmus Villemoes - destroy cxl_adapter_idr on module_exit from Johannes Thumshirn - destroy afu->contexts_idr on release of an afu from Johannes Thumshirn - compile with -Werror from Daniel Axtens - EEH support from Daniel Axtens - plug irq_bitmap getting leaked in cxl_context from Vaibhav Jain - add alternate MMIO error handling from Ian Munsie - allow release of contexts which have been OPENED but not STARTED from Andrew Donnellan - remove use of macro DEFINE_PCI_DEVICE_TABLE from Vaishali Thakkar - release irqs if memory allocation fails from Vaibhav Jain - remove racy attempt to force EEH invocation in reset from Daniel Axtens - fix + cleanup error paths in cxl_dev_context_init from Ian Munsie - fix force unmapping mmaps of contexts allocated through the kernel api from Ian Munsie - set up and enable PSL Timebase from Philippe Bergheaud * tag 'powerpc-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (140 commits) cxl: Set up and enable PSL Timebase cxl: Fix force unmapping mmaps of contexts allocated through the kernel api cxl: Fix + cleanup error paths in cxl_dev_context_init powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail() powerpc/pseries: Cleanup on pci_dn_reconfig_notifier() powerpc/pseries: Fix corrupted pdn list powerpc/powernv: Enable LEDS support powerpc/iommu: Set default DMA offset in dma_dev_setup cxl: Remove racy attempt to force EEH invocation in reset cxl: Release irqs if memory allocation fails cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver powerpc/powernv: Reset HILE before kexec_sequence() powerpc/kexec: Reset secondary cpu endianness before kexec powerpc/hvsi: Fix endianness issues in the HVSI driver leds/powernv: Add driver for PowerNV platform powerpc/powernv: Create LED platform device powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states powerpc/powernv: Fix the log message when disabling VF cxl: Allow release of contexts which have been OPENED but not STARTED ... commit 4c92b5bb14226faa16d29a1df5752baf1ff22b53 Merge: c706c7e fca8b80 Author: Linus Torvalds Date: Thu Sep 3 16:36:33 2015 -0700 Merge branch 'pcmcia' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM pcmcia updates from Russell King: "A series of changes updating the PXA and SA11x0 PCMCIA code to use devm_* APIs, and resolve some resource leaks in doing so. This results in a few small cleanups which are included in this set. FYI, the recommit of these today is to add Robert Jarzmik's reviewed-by tags, which I'd forgotten to add from mid-July" * 'pcmcia' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: pcmcia: soc_common: remove skt_dev_info's clk pointer pcmcia: sa11xx_base.c: remove useless init/exit functions pcmcia: sa1111: simplify clk handing in sa1111_pcmcia_add() pcmcia: sa1111: update socket driver to use devm_clk_get() API pcmcia: pxa2xx: convert memory allocation to devm_* API pcmcia: pxa2xx: update socket driver to use devm_clk_get() API pcmcia: sa11x0: convert memory allocation to devm_* API pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers commit c706c7eb0d08098f0d768aeef945d7cf1f8858b4 Merge: 79b0691 3ff32a0 Author: Linus Torvalds Date: Thu Sep 3 16:27:01 2015 -0700 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm Pull ARM development updates from Russell King: "Included in this update: - moving PSCI code from ARM64/ARM to drivers/ - removal of some architecture internals from global kernel view - addition of software based "privileged no access" support using the old domains register to turn off the ability for kernel loads/stores to access userspace. Only the proper accessors will be usable. - addition of early fixup support for early console - re-addition (and reimplementation) of OMAP special interconnect barrier - removal of finish_arch_switch() - only expose cpuX/online in sysfs if hotpluggable - a number of code cleanups" * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (41 commits) ARM: software-based priviledged-no-access support ARM: entry: provide uaccess assembly macro hooks ARM: entry: get rid of multiple macro definitions ARM: 8421/1: smp: Collapse arch_cpu_idle_dead() into cpu_die() ARM: uaccess: provide uaccess_save_and_enable() and uaccess_restore() ARM: mm: improve do_ldrd_abort macro ARM: entry: ensure that IRQs are enabled when calling syscall_trace_exit() ARM: entry: efficiency cleanups ARM: entry: get rid of asm_trace_hardirqs_on_cond ARM: uaccess: simplify user access assembly ARM: domains: remove DOMAIN_TABLE ARM: domains: keep vectors in separate domain ARM: domains: get rid of manager mode for user domain ARM: domains: move initial domain setting value to asm/domains.h ARM: domains: provide domain_mask() ARM: domains: switch to keeping domain value in register ARM: 8419/1: dma-mapping: harmonize definition of DMA_ERROR_CODE ARM: 8417/1: refactor bitops functions with BIT_MASK() and BIT_WORD() ARM: 8416/1: Feroceon: use of_iomap() to map register base ARM: 8415/1: early fixmap support for earlycon ... commit 79b0691d0c1d3d4a976e3304a1512e6eca9671ec Merge: ca520ca 5b92356 Author: Linus Torvalds Date: Thu Sep 3 16:15:41 2015 -0700 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Ingo Molnar: "Tooling fixes plus a handful of late arriving tooling changes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tools: Fix link time error with sample_reg_masks on non x86 perf build: Fix Intel PT instruction decoder dependency problem perf dwarf: Fix potential array out of bounds access perf record: Add ability to name registers to record perf/x86: Add list of register names perf script: Enable printing of interrupted machine state perf evlist: Open event on evsel cpus and threads bpf tools: New API to get name from a BPF object perf tools: Fix build on powerpc broken by pt/bts commit ca520cab25e0e8da717c596ccaa2c2b3650cfa09 Merge: 4c12ab7 d420acd Author: Linus Torvalds Date: Thu Sep 3 15:46:07 2015 -0700 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking and atomic updates from Ingo Molnar: "Main changes in this cycle are: - Extend atomic primitives with coherent logic op primitives (atomic_{or,and,xor}()) and deprecate the old partial APIs (atomic_{set,clear}_mask()) The old ops were incoherent with incompatible signatures across architectures and with incomplete support. Now every architecture supports the primitives consistently (by Peter Zijlstra) - Generic support for 'relaxed atomics': - _acquire/release/relaxed() flavours of xchg(), cmpxchg() and {add,sub}_return() - atomic_read_acquire() - atomic_set_release() This came out of porting qwrlock code to arm64 (by Will Deacon) - Clean up the fragile static_key APIs that were causing repeat bugs, by introducing a new one: DEFINE_STATIC_KEY_TRUE(name); DEFINE_STATIC_KEY_FALSE(name); which define a key of different types with an initial true/false value. Then allow: static_branch_likely() static_branch_unlikely() to take a key of either type and emit the right instruction for the case. To be able to know the 'type' of the static key we encode it in the jump entry (by Peter Zijlstra) - Static key self-tests (by Jason Baron) - qrwlock optimizations (by Waiman Long) - small futex enhancements (by Davidlohr Bueso) - ... and misc other changes" * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (63 commits) jump_label/x86: Work around asm build bug on older/backported GCCs locking, ARM, atomics: Define our SMP atomics in terms of _relaxed() operations locking, include/llist: Use linux/atomic.h instead of asm/cmpxchg.h locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics locking/qrwlock: Implement queue_write_unlock() using smp_store_release() locking/lockref: Remove homebrew cmpxchg64_relaxed() macro definition locking, asm-generic: Add _{relaxed|acquire|release}() variants for 'atomic_long_t' locking, asm-generic: Rework atomic-long.h to avoid bulk code duplication locking/atomics: Add _{acquire|release|relaxed}() variants of some atomic operations locking, compiler.h: Cast away attributes in the WRITE_ONCE() magic locking/static_keys: Make verify_keys() static jump label, locking/static_keys: Update docs locking/static_keys: Provide a selftest jump_label: Provide a self-test s390/uaccess, locking/static_keys: employ static_branch_likely() x86, tsc, locking/static_keys: Employ static_branch_likely() locking/static_keys: Add selftest locking/static_keys: Add a new static_key interface locking/static_keys: Rework update logic locking/static_keys: Add static_key_{en,dis}able() helpers ... commit 724a7636ad026a3a68f3fc626ccd04111f65cfd9 Merge: 4548a69 410f038 Author: David S. Miller Date: Thu Sep 3 15:43:06 2015 -0700 Merge branch 'sctp-fixes' Marcelo Ricardo Leitner says: ==================== couple of sctp fixes for 0ca50d12fe46 These are two fixes for sctp after my patch on 0ca50d12fe46 ("sctp: fix src address selection if using secondary addresses") The first, fix a dst leak on those it decided to skip. The second, adds the fallback on src selection that Vlad had asked about. Unfortunatelly a lot of ipvs setups relies on the old behavior and I don't see a better fix for it. Please consider both to -stable tree. ==================== Acked-by: Neil Horman Acked-by: Vlad Yasevich Signed-off-by: David S. Miller commit 410f03831c0768f2b1850d28ba697b167ddcb89b Author: Marcelo Ricardo Leitner Date: Wed Sep 2 16:20:22 2015 -0300 sctp: add routing output fallback Commit 0ca50d12fe46 added a restriction that the address must belong to the output interface, so that sctp will use the right interface even when using secondary addresses. But it breaks IPVS setups, on which people is used to attach VIP addresses to loopback interface on real servers. It's preferred to attach to the interface actually in use, but it's a very common setup and that used to work. This patch then saves the first routing good result, even if it would be going out through an interface that doesn't have that address. If no better hit found, it's then used. This effectively restores the original behavior if no better interface could be found. Fixes: 0ca50d12fe46 ("sctp: fix src address selection if using secondary addresses") Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/protocol.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit d82f0f1fc8a4f214a50c9dfc64e3896f9894afb7 Author: Marcelo Ricardo Leitner Date: Wed Sep 2 16:20:21 2015 -0300 sctp: fix dst leak Commit 0ca50d12fe46 failed to release the reference to dst entries that it decided to skip. Fixes: 0ca50d12fe46 ("sctp: fix src address selection if using secondary addresses") Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/protocol.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4548a697e4969d695047cebd6d9af5e2f6cc728e Author: Atsushi Nemoto Date: Wed Sep 2 17:49:29 2015 +0900 net: eth: altera: fix napi poll_list corruption tse_poll() calls __napi_complete() with irq enabled. This leads napi poll_list corruption and may stop all napi drivers working. Use napi_complete() instead of __napi_complete(). Signed-off-by: Atsushi Nemoto Signed-off-by: David S. Miller drivers/net/ethernet/altera/altera_tse_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4e33d1f0a145d48e8cf287954bbf791af8387cfb Author: Greg Kurz Date: Thu Sep 3 11:12:59 2015 +0200 KVM: PPC: Book3S: Fix typo in top comment about locking Signed-off-by: Greg Kurz Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_xics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1178cbcdcf91900ccf10a177350d7945703c151 Author: Jason Gunthorpe Date: Fri Aug 21 17:34:13 2015 -0600 IB/ipoib: Suppress warning for send only join failures We expect send only joins to fail, it just means there are no listeners for the group. The correct thing to do is silently drop the packet at source. Eg avahi will full join 224.0.0.251 which causes a send only IGMP packet to 224.0.0.22, and then a warning level kmessage like this: ib0: sendonly multicast join failed for ff12:401b:ffff:0000:0000:0000:0000:0016, status -22 If there is no IP router listening to IGMP. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit c3acdc06a95ff20d920220ecb931186b0bb22c42 Author: Doug Ledford Date: Thu Sep 3 17:05:58 2015 -0400 IB/ipoib: Clean up send-only multicast joins Even though we don't expect the group to be created by the SM we sill need to provide all the parameters to force the SM to validate they are correct. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 38 ++++++++++++++++++-------- 1 file changed, 27 insertions(+), 11 deletions(-) commit 4c12ab7e5e2e892fa94df500f96001837918a281 Merge: 9cbf22b 01a5ad8 Author: Linus Torvalds Date: Thu Sep 3 13:10:22 2015 -0700 Merge tag 'for-f2fs-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "The major work includes fixing and enhancing the existing extent_cache feature, which has been well settling down so far and now it becomes a default mount option accordingly. Also, this version newly registers a f2fs memory shrinker to reclaim several objects consumed by a couple of data structures in order to avoid memory pressures. Another new feature is to add ioctl(F2FS_GARBAGE_COLLECT) which triggers a cleaning job explicitly by users. Most of the other patches are to fix bugs occurred in the corner cases across the whole code area" * tag 'for-f2fs-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (85 commits) f2fs: upset segment_info repair f2fs: avoid accessing NULL pointer in f2fs_drop_largest_extent f2fs: update extent tree in batches f2fs: fix to release inode correctly f2fs: handle f2fs_truncate error correctly f2fs: avoid unneeded initializing when converting inline dentry f2fs: atomically set inode->i_flags f2fs: fix wrong pointer access during try_to_free_nids f2fs: use __GFP_NOFAIL to avoid infinite loop f2fs: lookup neighbor extent nodes for merging later f2fs: split __insert_extent_tree_ret for readability f2fs: kill dead code in __insert_extent_tree f2fs: adjust showing of extent cache stat f2fs: add largest/cached stat in extent cache f2fs: fix incorrect mapping for bmap f2fs: add annotation for space utilization of regular/inline dentry f2fs: fix to update cached_en of extent tree properly f2fs: fix typo f2fs: check the node block address of newly allocated nid f2fs: go out for insert_inode_locked failure ... commit bf2d087749d91e1fa2826edde1e2fd650d3053ca Author: Corey Minyard Date: Thu Aug 27 15:49:18 2015 -0500 ipmi:ssif: Add a module parm to specify that SMBus alerts don't work They are broken on some platforms, this gives people a chance to work around it until the firmware is fixed. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_ssif.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit acbd9ae70a94bdc626508f444879e19ebe1c421f Author: Brijesh Singh Date: Mon Aug 24 09:15:25 2015 -0500 ipmi: add of_device_id in MODULE_DEVICE_TABLE Fix autoloading ipmi modules when using device tree. Signed-off-by: Brijesh Singh Moved this change up into the CONFIG_OF section to account for changes to the probing code. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_si_intf.c | 1 + 1 file changed, 1 insertion(+) commit d08828973d96eb26e48fb7ca8fb8a8d49adbe53a Author: Corey Minyard Date: Tue Aug 18 14:29:10 2015 -0500 ipmi: Compensate for BMCs that wont set the irq enable bit It appears that some BMCs support interrupts but don't support setting the irq enable bits. The interrupts are just always on. Sigh. Add code to compensate. The new code was very similar to another functions, so this also factors out the common code into other functions. Signed-off-by: Corey Minyard Tested-by: Henrik Korkuc drivers/char/ipmi/ipmi_si_intf.c | 180 +++++++++++++++++++++++++++++---------- 1 file changed, 137 insertions(+), 43 deletions(-) commit c49c097610fe1aabf86111297280a718abb5dcc2 Author: Hidehiro Kawai Date: Mon Jul 27 14:55:16 2015 +0900 ipmi: Don't call receive handler in the panic context Received handlers defined as ipmi_recv_hndl member of struct ipmi_user_hndl can take a spinlock. This means that if the kernel panics while holding the lock, a deadlock may happen on the lock while flushing queued messages in the panic context. Calling the receive handler doesn't make much meanings in the panic context, simply skip it to avoid possible deadlocks. Signed-off-by: Hidehiro Kawai Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_msghandler.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 06e5e345fea8df24b1d935f98741343df4cab664 Author: Hidehiro Kawai Date: Mon Jul 27 14:55:16 2015 +0900 ipmi: Avoid touching possible corrupted lists in the panic context When processing queued messages in the panic context, IPMI driver tries to do it without any locking to avoid deadlocks. However, this means we can touch a corrupted list if the kernel panicked while manipulating the list. Fortunately, current `add-tail and del-from-head' style implementation won't touch the corrupted part, but it is inherently risky. To get rid of the risk, this patch re-initializes the message lists on panic if the related spinlock has already been acquired. As the result, we may lose queued messages, but it's not so painful. Dropping messages on the received message list is also less problematic because no one can respond the received messages. Signed-off-by: Hidehiro Kawai Fixed a comment typo. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_msghandler.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 82802f968bd3118af04eaeb3814c21d9813be527 Author: Hidehiro Kawai Date: Mon Jul 27 14:55:16 2015 +0900 ipmi: Don't flush messages in sender() in run-to-completion mode When flushing queued messages in run-to-completion mode, smi_event_handler() is recursively called. flush_messages() smi_event_handler() handle_transaction_done() deliver_recv_msg() ipmi_smi_msg_received() smi_recv_tasklet() sender() flush_messages() smi_event_handler() ... The depth of the recursive call depends on the number of queued messages, so it can cause a stack overflow if many messages have been queued. To solve this problem, this patch removes flush_messages() from sender()@ipmi_si_intf.c. Instead, add flush_messages() to caller side of sender() if needed. Additionally, to implement this, add new handler flush_messages to struct ipmi_smi_handlers. Signed-off-by: Hidehiro Kawai Fixed up a comment and some spacing issues. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_msghandler.c | 3 +++ drivers/char/ipmi/ipmi_si_intf.c | 10 +++++----- include/linux/ipmi_smi.h | 5 +++++ 3 files changed, 13 insertions(+), 5 deletions(-) commit e45361d733d0a1432b0f6307375045e66ac02489 Author: Hidehiro Kawai Date: Mon Jul 27 14:55:16 2015 +0900 ipmi: Factor out message flushing procedure Factor out message flushing procedure which is used in run-to-completion mode. This patch doesn't change the logic. Signed-off-by: Hidehiro Kawai Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_si_intf.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) commit b0868dd5c17c0d9cc8919e786db2e428aa225621 Author: Hidehiro Kawai Date: Mon Jul 27 14:55:16 2015 +0900 ipmi: Remove unneeded set_run_to_completion call send_panic_events() calls intf->handlers->set_run_to_completion(), but it has already been done in the caller function panic_event(). Remove it from send_panic_events(). Signed-off-by: Hidehiro Kawai Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_msghandler.c | 2 -- 1 file changed, 2 deletions(-) commit 81d02b7f8c507f06299476a0e5b2aa677c5eaecb Author: Corey Minyard Date: Sat Jun 13 10:34:25 2015 -0500 ipmi: Make some data const that was only read Several data structures were only used for reading, so make them const. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_bt_sm.c | 2 +- drivers/char/ipmi/ipmi_kcs_sm.c | 2 +- drivers/char/ipmi/ipmi_msghandler.c | 12 +++++----- drivers/char/ipmi/ipmi_si_intf.c | 47 ++++++++++++++++++++----------------- drivers/char/ipmi/ipmi_si_sm.h | 10 ++++---- drivers/char/ipmi/ipmi_smic_sm.c | 2 +- include/linux/ipmi_smi.h | 2 +- 7 files changed, 40 insertions(+), 37 deletions(-) commit 5186cf9c74034a4a7856de9c8048493be34c457d Author: Mathias Krause Date: Sat Jun 13 14:19:33 2015 +0200 ipmi: constify SSIF ACPI device ids Constify the ACPI device ID array, it doesn't need to be writable at runtime. Signed-off-by: Mathias Krause Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_ssif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a7930899ca0082a33350b253c6ed34f67255f98e Author: Markus Elfring Date: Sat Jun 27 18:12:14 2015 +0200 ipmi: Delete an unnecessary check before the function call "cleanup_one_si" The cleanup_one_si() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_si_intf.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit fedb25ea903d3520b6cff00c41740a892cf6bc0e Author: Shailendra Verma Date: Tue May 26 00:54:57 2015 +0530 char:ipmi - Change 1 to true for bool type variables during initialization. Signed-off-by: Shailendra Verma Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_si_intf.c | 8 ++++---- drivers/char/ipmi/ipmi_ssif.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit 881c585ef79addb2440a7f8d59bda5640d0ff623 Author: Nicholas Krause Date: Sat May 9 15:32:28 2015 -0400 impi:Remove unneeded setting of module owner to THIS_MODULE in the platform structure, powernv_ipmi_driver This removes the no longer required setting of the module owner for the plaform structure,powernv_ipmi_driver to THIS_MODULE as the driver core for ipmi drivers will directly find and set the module owner for this driver. Signed-off-by: Nicholas Krause Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_powernv.c | 1 - 1 file changed, 1 deletion(-) commit b2234ee9fc059c17e811a365383e3412a2f50bed Author: Corey Minyard Date: Thu Feb 19 11:29:24 2015 -0600 ipmi: Add a comment in how messages are delivered from the lower layer To avoid confusion in the future. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_msghandler.c | 4 ++++ 1 file changed, 4 insertions(+) commit cca85f19c260df495a487495479c67803b25fa8a Author: Neelesh Gupta Date: Thu Jul 16 16:46:54 2015 +0530 ipmi/powernv: Fix potential invalid pointer dereference If the OPAL call to receive the ipmi message fails, then we free up the smi message and return. But, the driver still holds the reference to old smi message in the 'cur_msg' which can potentially be accessed later and freed again leading to kernel oops. To fix it up, The kernel driver should reset the 'cur_msg' and send reply to the user in addition to freeing the message. Signed-off-by: Neelesh Gupta Fixed a checkpatch warning dealing with an else after a return. Signed-off-by: Corey Minyard drivers/char/ipmi/ipmi_powernv.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 0fbcf4af7c8362d4691f9388efa57d0b14b34225 Author: Corey Minyard Date: Tue Jun 9 16:51:46 2015 -0500 ipmi: Convert the IPMI SI ACPI handling to a platform device The IPMI SI driver was using direct PNP, but that was not really ideal because the IPMI device is a platform device. There was some special handling in the acpi_pnp.c code for making this work, but that was breaking ACPI handling for the IPMI SSIF driver. So without this patch there were significant issues getting the SSIF driver to work with ACPI. So use a platform device for ACPI detection and remove the entry from acpi_pnp.c. Signed-off-by: Corey Minyard drivers/acpi/acpi_pnp.c | 2 - drivers/char/ipmi/ipmi_si_intf.c | 320 +++++++++++++++++++-------------------- 2 files changed, 157 insertions(+), 165 deletions(-) commit 92e847212676bb3c5f9f7e317907367dbb8c504b Author: Corey Minyard Date: Thu Sep 3 14:58:55 2015 -0500 ipmi: Add device tree bindings information Signed-off-by: Corey Minyard Documentation/devicetree/bindings/ipmi.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 7fbc67df2cd6d0b72fd5d6d3acaa79ab6f5b0224 Author: Sagi Grimberg Date: Mon Aug 24 19:04:51 2015 +0300 IB/srp: Fix possible protection fault srp_destroy_qp is designed to indicate we are safe to continue with freeing the channel resources by modifying the qp error state, posting a dummy wr on the queue-pair and waiting for it to flush. This also holds for the channel registration pool as we are unmapping the memory region when handling a scsi response. Destroying the channel registration pool before we make sure we processed all the inflight IO might introduce a use-after-free of the registration pool. This use-after-free is demonstrated in the stack trace below where srp is trying to unmap a used FMR after the fmr_pool was already destroyed. general protection fault: 0000 [#1] SMP RIP: 0010:[] [] _raw_spin_lock_irqsave+0x1b/0x50 Call Trace: [] ib_fmr_pool_unmap+0x1a/0xb0 [ib_core] [] srp_unmap_data.isra.28+0x17d/0x250 [ib_srp] [] srp_free_req+0x2b/0x60 [ib_srp] [] srp_recv_completion+0x174/0x580 [ib_srp] [] mlx4_eq_int+0x4de/0xe50 [mlx4_core] [] mlx4_msi_x_interrupt+0x10/0x20 [mlx4_core] [] handle_irq_event_percpu+0x35/0x1b0 [] handle_irq_event+0x32/0x50 [] handle_edge_irq+0x6f/0x120 [] handle_irq+0x1a/0x30 [] do_IRQ+0x45/0xb0 [] common_interrupt+0x6d/0x6d [] cpuidle_enter_state+0x4f/0xc0 [] cpuidle_idle_call+0xcc/0x210 [] arch_cpu_idle+0xa/0x30 [] cpu_startup_entry+0xe1/0x270 [] start_secondary+0x21a/0x2c0 Reported-by: Eliott Kespi Signed-off-by: Sagi Grimberg Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 9cbf22b37ae0592dea809cb8d424990774c21786 Merge: ea814ab b3a5bbf Author: Linus Torvalds Date: Thu Sep 3 12:57:48 2015 -0700 Merge tag 'dlm-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm Pull dlm updates from David Teigland: "This set mainly includes a change to the way the dlm uses the SCTP API in the kernel, removing the direct dependency on the sctp module. Other odd SCTP-related fixes are also included. The other notable fix is for a long standing regression in the behavior of lock value blocks for user space locks" * tag 'dlm-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm: dlm: print error from kernel_sendpage dlm: fix lvb copy for user locks dlm: sctp_accept_from_sock() can be static dlm: fix reconnecting but not sending data dlm: replace BUG_ON with a less severe handling dlm: use sctp 1-to-1 API dlm: fix not reconnecting on connecting error handling dlm: fix race while closing connections dlm: fix connection stealing if using SCTP commit ea814ab9aab23505f6828a0cc01c985e59847f4e Merge: e31fb9e bdfe0cbd Author: Linus Torvalds Date: Thu Sep 3 12:52:19 2015 -0700 Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 updates from Ted Ts'o: "Pretty much all bug fixes and clean ups for 4.3, after a lot of features and other churn going into 4.2" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: Revert "ext4: remove block_device_ejected" ext4: ratelimit the file system mounted message ext4: silence a format string false positive ext4: simplify some code in read_mmp_block() ext4: don't manipulate recovery flag when freezing no-journal fs jbd2: limit number of reserved credits ext4 crypto: remove duplicate header file ext4: update c/mtime on truncate up jbd2: avoid infinite loop when destroying aborted journal ext4, jbd2: add REQ_FUA flag when recording an error in the superblock ext4 crypto: fix spelling typo in comment ext4 crypto: exit cleanly if ext4_derive_key_aes() fails ext4: reject journal options for ext2 mounts ext4: implement cgroup writeback support ext4: replace ext4_io_submit->io_op with ->io_wbc ext4 crypto: check for too-short encrypted file names ext4 crypto: use a jbd2 transaction when adding a crypto policy jbd2: speedup jbd2_journal_dirty_metadata() commit 0629cb06cdf8f1a403ce71bce5b83380ae898e1a Author: Ira Weiny Date: Thu Sep 3 14:16:30 2015 -0400 IB/core: Move SM class defines from ib_mad.h to ib_smi.h When the hfi1 driver was added these definitions were moved from the qib driver to ib_mad.h to be used by both qib and hfi1. They should have been moved to ib_smi.h instead. Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA") Reviewed-by: Hal Rosenstock Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_ruc.c | 1 + include/rdma/ib_mad.h | 45 ----------------------------------- include/rdma/ib_smi.h | 47 +++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 45 deletions(-) commit ce755c9b01e09ee4907cf79bd0f57fa5cf65c4c3 Author: Ira Weiny Date: Wed Sep 2 18:45:54 2015 -0400 IB/core: Remove unnecessary defines from ib_mad.h Remove the unused IB_NOTICE_REPRESS_* defines. When the hfi1 driver was added these definitions were moved from the qib driver to ib_mad.h. They should have been removed instead. Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA") Signed-off-by: Ira Weiny Reviewed-by: Hal Rosenstock Signed-off-by: Doug Ledford include/rdma/ib_mad.h | 12 ------------ 1 file changed, 12 deletions(-) commit 6f876ce4b53f7c748e07cedab661aa4bcc8a09d2 Author: Ira Weiny Date: Wed Sep 2 18:46:21 2015 -0400 IB/hfi1: Add PSM2 user space header to header_install When the hfi1 driver was added a user space header file (hfi1_user.h) was added to be shared between PSM2 and the driver. However, the file was not added to the header install. Add it now. Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA") Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford include/uapi/rdma/Kbuild | 1 + include/uapi/rdma/hfi/Kbuild | 2 ++ 2 files changed, 3 insertions(+) commit e31fb9e00543e5d3c5b686747d3c862bc09b59f3 Merge: 824b005 9181f8b Author: Linus Torvalds Date: Thu Sep 3 12:28:30 2015 -0700 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull ext3 removal, quota & udf fixes from Jan Kara: "The biggest change in the pull is the removal of ext3 filesystem driver (~28k lines removed). Ext4 driver is a full featured replacement these days and both RH and SUSE use it for several years without issues. Also there are some workarounds in VM & block layer mainly for ext3 which we could eventually get rid of. Other larger change is addition of proper error handling for dquot_initialize(). The rest is small fixes and cleanups" [ I wasn't convinced about the ext3 removal and worried about things falling through the cracks for legacy users, but ext4 maintainers piped up and were all unanimously in favor of removal, and maintaining all legacy ext3 support inside ext4. - Linus ] * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: udf: Don't modify filesystem for read-only mounts quota: remove an unneeded condition ext4: memory leak on error in ext4_symlink() mm/Kconfig: NEED_BOUNCE_POOL: clean-up condition ext4: Improve ext4 Kconfig test block: Remove forced page bouncing under IO fs: Remove ext3 filesystem driver doc: Update doc about journalling layer jfs: Handle error from dquot_initialize() reiserfs: Handle error from dquot_initialize() ocfs2: Handle error from dquot_initialize() ext4: Handle error from dquot_initialize() ext2: Handle error from dquot_initalize() quota: Propagate error from ->acquire_dquot() commit 66c117d7fa2ae429911e60d84bf31a90b2b96189 Author: Thomas Gleixner Date: Thu Sep 3 12:34:55 2015 +0200 x86/alternatives: Make optimize_nops() interrupt safe and synced Richard reported the following crash: [ 0.036000] BUG: unable to handle kernel paging request at 55501e06 [ 0.036000] IP: [] common_interrupt+0xb/0x38 [ 0.036000] Call Trace: [ 0.036000] [] ? add_nops+0x90/0xa0 [ 0.036000] [] apply_alternatives+0x274/0x630 Chuck decoded: " 0: 8d 90 90 83 04 24 lea 0x24048390(%eax),%edx 6: 80 fc 0f cmp $0xf,%ah 9: a8 0f test $0xf,%al >> b: a0 06 1e 50 55 mov 0x55501e06,%al 10: 57 push %edi 11: 56 push %esi Interrupt 0x30 occurred while the alternatives code was replacing the initial 0x90,0x90,0x90 NOPs (from the ASM_CLAC macro) with the optimized version, 0x8d,0x76,0x00. Only the first byte has been replaced so far, and it makes a mess out of the insn decoding." optimize_nops() is buggy in two aspects: - It's not disabling interrupts across the modification - It's lacking a sync_core() call Add both. Fixes: 4fd4b6e5537c 'x86/alternatives: Use optimized NOPs for padding' Reported-and-tested-by: "Richard W.M. Jones" Signed-off-by: Thomas Gleixner Cc: Richard W.M. Jones Cc: Chuck Ebbert Cc: Borislav Petkov Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1509031232340.15006@nanos Signed-off-by: Thomas Gleixner arch/x86/kernel/alternative.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6fd8edabc2b03203e6bc44e77d1dfff415e706cc Author: Jubin John Date: Wed Sep 2 10:43:24 2015 -0400 IB/hfi1: Add CSRs for CONFIG_SDMA_VERBOSITY 3 CSRs needed by the CONFIG_SDMA_VERBOSITY code were removed during the CSR clean up. Adding these CSRs back to resolve 0-day build failure: https://lists.01.org/pipermail/kbuild-all/2015-August/011919.html Reviewed-by: Mike Marciniszyn Signed-off-by: Jubin John Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/chip_registers.h | 3 +++ drivers/staging/rdma/hfi1/sdma.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 824b005c86f91fe02eb2743a4526361f11786f70 Merge: dd5cdb4 f49a26e Author: Linus Torvalds Date: Thu Sep 3 11:55:55 2015 -0700 Merge branch 'hpfs' (patches from Mikulas) Merge hpfs upddate from Mikulas Patocka. * emailed patches from Mikulas Patocka : hpfs: update ctime and mtime on directory modification hpfs: support hotfixes commit f49a26e7718dd30b49e3541e3e25aecf5e7294e2 Author: Mikulas Patocka Date: Wed Sep 2 22:51:53 2015 +0200 hpfs: update ctime and mtime on directory modification Update ctime and mtime when a directory is modified. (though OS/2 doesn't update them anyway) Signed-off-by: Mikulas Patocka Cc: stable@kernel.org # v3.3+ Signed-off-by: Linus Torvalds fs/hpfs/namei.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit a64eefaac1c5cc8dbc6995228fe08a61b8e1d26b Author: Mikulas Patocka Date: Wed Sep 2 22:50:12 2015 +0200 hpfs: support hotfixes When the OS/2 driver hits a disk write error, it writes the sector to another location and adds the sector mapping to the hotfix map. This patch makes the hpfs driver understand the hotfix map and remap accesses accoring to it. Signed-off-by: Mikulas Patocka Signed-off-by: Linus Torvalds fs/hpfs/buffer.c | 39 +++++++++++++++++++++++++++++++++------ fs/hpfs/file.c | 9 +++++++-- fs/hpfs/hpfs_fn.h | 7 +++++++ fs/hpfs/map.c | 26 ++++++++++++++++++++++++++ fs/hpfs/super.c | 15 +++------------ 5 files changed, 76 insertions(+), 20 deletions(-) commit b636401f0ec9bbf7931774e00f3adf7ee9214cce Author: Sagi Grimberg Date: Wed Sep 2 22:23:04 2015 +0300 mlx5: Fix incorrect wc pkey_index assignment for GSI messages Since patch series "Demux IB CM requests in the rdma_cm module" the P_Key index is taken from the work completion rather than the message itself. The HCA provides us with the message P_Key. In order to provide the P_Key index, we need to look it up. Given that this is relevant only for GSI messages (session establishments) which is less performance critical, micro-optimize against the GSI (is_qp1) branch. Fixes: 4c21b5bcef73 ("IB/cma: Add net_dev and private data checks to RDMA CM") Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/cq.c | 10 +++++++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 5 +++++ drivers/infiniband/hw/mlx5/qp.c | 5 ----- 3 files changed, 14 insertions(+), 6 deletions(-) commit 11d748045c6dadb279d1acdb6d2ea8f3f2ede85b Author: Haggai Eran Date: Tue Sep 1 09:56:56 2015 +0300 IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow The mlx5_ib_reg_user_mr() function will attempt to call clean_mr() in its error flow even though there is never a case where the error flow occurs with a valid MR pointer to destroy. Remove the clean_mr() call and the incorrect comment above it. Fixes: b4cfe447d47b ("IB/mlx5: Implement on demand paging by adding support for MMU notifiers") Cc: Eli Cohen Signed-off-by: Haggai Eran Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/mr.c | 12 ------------ 1 file changed, 12 deletions(-) commit 8f7e0a806db0a3ba33234af3c39d68ed8c144071 Author: Andreas Gruenbacher Date: Thu Aug 27 13:02:54 2015 -0500 gfs2: A minor "sbstats" cleanup It seems cleaner to avoid the temporary value here. Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson fs/gfs2/glock.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit c9ea8c8b74b5fb2584879e4338770ed252d8a489 Author: Andreas Gruenbacher Date: Thu Aug 27 13:05:08 2015 -0500 gfs2: Fix a typo in a comment Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson fs/gfs2/lock_dlm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d207133e9c362bc05a3bb6701d63eeb75cc4b77 Author: Ben Hutchings Date: Thu Aug 27 12:51:45 2015 -0500 gfs2: Make statistics unsigned, suitable for use with do_div() None of these statistics can meaningfully be negative, and the numerator for do_div() must have the type u64. The generic implementation of do_div() used on some 32-bit architectures asserts that, resulting in a compiler error in gfs2_rgrp_congested(). Fixes: 0166b197c2ed ("GFS2: Average in only non-zero round-trip times ...") Signed-off-by: Ben Hutchings Signed-off-by: Bob Peterson Acked-by: Andreas Gruenbacher fs/gfs2/glock.c | 22 +++++++++++----------- fs/gfs2/incore.h | 2 +- fs/gfs2/rgrp.c | 8 ++++---- fs/gfs2/trace_gfs2.h | 16 ++++++++-------- 4 files changed, 24 insertions(+), 24 deletions(-) commit 88ffbf3e037e67b52c46d528aca1618489c21f68 Author: Bob Peterson Date: Mon Mar 16 11:02:46 2015 -0500 GFS2: Use resizable hash table for glocks This patch changes the glock hash table from a normal hash table to a resizable hash table, which scales better. This also simplifies a lot of code. Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher Acked-by: Steven Whitehouse fs/gfs2/glock.c | 264 +++++++++++++++++++++---------------------------------- fs/gfs2/incore.h | 4 +- 2 files changed, 102 insertions(+), 166 deletions(-) commit 15562c439d0a1850b71aa1c0d92d1f4fb9503c8d Author: Bob Peterson Date: Mon Mar 16 11:52:05 2015 -0500 GFS2: Move glock superblock pointer to field gl_name What uniquely identifies a glock in the glock hash table is not gl_name, but gl_name and its superblock pointer. This patch makes the gl_name field correspond to a unique glock identifier. That will allow us to simplify hashing with a future patch, since the hash algorithm can then take the gl_name and hash its components in one operation. Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher Acked-by: Steven Whitehouse fs/gfs2/glock.c | 32 +++++++++++++++----------------- fs/gfs2/glops.c | 38 ++++++++++++++++++++------------------ fs/gfs2/incore.h | 9 +++++---- fs/gfs2/lock_dlm.c | 10 +++++----- fs/gfs2/lops.c | 6 +++--- fs/gfs2/meta_io.c | 6 +++--- fs/gfs2/meta_io.h | 2 +- fs/gfs2/quota.c | 22 +++++++++++----------- fs/gfs2/rgrp.c | 2 +- fs/gfs2/trace_gfs2.h | 18 +++++++++--------- fs/gfs2/trans.c | 4 ++-- 11 files changed, 75 insertions(+), 74 deletions(-) commit 81648d043191e5f8f5870c5af6060b56383b139d Author: Andreas Gruenbacher Date: Thu Aug 27 11:43:00 2015 -0500 gfs2: Simplify the seq file code for "sbstats" Don't use struct gfs2_glock_iter as the helper data structure for iterating through "sbstats"; we are not iterating through glocks here. Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson fs/gfs2/glock.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) commit 270e869d846af143f60b7404e01e785d18420007 Author: Christian König Date: Wed Sep 2 20:25:48 2015 +0200 drm/amdgpu: fix buffer placement under memory pressure Some buffers (UVD/VM page tables) must be placed in VRAM, but the byte restriction for moving buffers didn't took this into account. Port of radeon commit 4b09556660bfe1b43d72ca858524c6baf2c6cb1d. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b632ffa7cee439ba5dce3b3bc4a5cbe2b3e20133 Author: Christoph Hellwig Date: Wed Aug 26 11:00:37 2015 +0200 IB/uverbs: reject invalid or unknown opcodes We have many WR opcodes that are only supported in kernel space and/or require optional information to be copied into the WR structure. Reject all those not explicitly handled so that we can't pass invalid information to drivers. Cc: stable@vger.kernel.org Signed-off-by: Christoph Hellwig Reviewed-by: Jason Gunthorpe Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 54b9a96f10d9acb7b1ffd40e2e1736443eb7656d Author: Nicholas Krause Date: Wed Aug 26 23:00:59 2015 -0400 IB/cxgb4: Fix if statement in pick_local_ip6adddrs This fixes an if statement checking the return value of the function get_lladdr for success in the function pick_local_ip6addrs to instead of directly checking the return value of this call check the opposite as get_lladdr returns zero for success which would incorrectly make this if statement block not execute with the current if statement check. Signed-off-by: Nicholas Krause Acked-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/cm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 731857715f03035c812c3f6bdcb6b0179150c1aa Author: Luis de Bethencourt Date: Thu Sep 3 10:50:21 2015 -0700 Input: regulator-haptic - fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Dmitry Torokhov drivers/input/misc/regulator-haptic.c | 1 + 1 file changed, 1 insertion(+) commit 544edf56fdbf3916f4dad4e2dc71de3965a9d964 Author: Luis de Bethencourt Date: Thu Sep 3 10:49:46 2015 -0700 Input: pwm-beeper - fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Dmitry Torokhov drivers/input/misc/pwm-beeper.c | 1 + 1 file changed, 1 insertion(+) commit e4dbe796285d96976586487fe0555f678c95b60f Author: Luis de Bethencourt Date: Thu Sep 3 10:49:17 2015 -0700 Input: ab8500-ponkey - Fix module autoload for OF platform driver This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Dmitry Torokhov drivers/input/misc/ab8500-ponkey.c | 1 + 1 file changed, 1 insertion(+) commit f2bc114b82ecbd32b3581bebdf40f1f2c4e9941b Author: Javier Martinez Canillas Date: Thu Sep 3 10:47:25 2015 -0700 Input: cyttsp - remove unnecessary MODULE_ALIAS() The drivers have a I2C device ID table that is used to create the module aliases and also "cyttsp" and "cyttsp4" are not supported I2C device IDs so these module aliases are never used. Signed-off-by: Javier Martinez Canillas Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/cyttsp4_i2c.c | 1 - drivers/input/touchscreen/cyttsp_i2c.c | 1 - 2 files changed, 2 deletions(-) commit 4aeca98c49e9873e18b27540a0ba18b22e1b9424 Author: João Paulo Rechi Vita Date: Thu Sep 3 10:04:49 2015 -0700 Input: elan_i2c - add ACPI ID "ELAN1000" This ACPI ID present in the DSDT of the ASUS E202SA laptop. Signed-off-by: João Paulo Rechi Vita Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 1 + 1 file changed, 1 insertion(+) commit 9f42a89da6b4dc015631e01ba990d3db2cae2a1b Author: Leo Yan Date: Wed Sep 2 10:57:47 2015 +0800 clk: Hi6220: separately build stub clock driver The previous code, kernel builds Hi6220's common clock driver and stub clock driver together. Stub clock driver has introduced the dependency with CONFIG_MAILBOX, so kernel will not build Hi6220's common clock driver due ARM64's defconfig have not enabled CONFIG_MAILBOX by default. So separately build stub clock driver and common clock driver for Hi6220; and only let stub clock driver has the dependency with CONFIG_MAILBOX. Signed-off-by: Leo Yan Tested-by: Kevin Hilman Signed-off-by: Stephen Boyd drivers/clk/hisilicon/Kconfig | 8 +++++++- drivers/clk/hisilicon/Makefile | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) commit 50ef28a6ac216fd8b796257a3768fef8f57b917d Author: Peter Griffin Date: Tue Sep 1 07:48:11 2015 -0300 [media] c8sectpfe: Remove select on undefined LIBELF_32 LIBELF_32 is not defined in Kconfig, and is left over legacy which is not required in the upstream driver, so remove it. Suggested-by: Valentin Rothberg Signed-off-by: Peter Griffin Acked-by: Lee Jones Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 01b944fe1cd4e21a2a9ed51adbdbafe2d5e905ba Merge: e51e384 58f1eae Author: Dmitry Torokhov Date: Thu Sep 3 10:01:44 2015 -0700 Merge branch 'next' into for-linus Prepare first round of input updates for 4.3 merge window. commit 58f1eae48e5372200553de07b5ecc7574803ee91 Author: Duson Lin Date: Thu Sep 3 09:46:45 2015 -0700 Input: elan_i2c - use iap_version to get firmware information When driver is in IAP mode ic_type query may return 0xff. However iap_version will always be valid, so let's use it to determine parameters of the firmware that the controller is supposed to accept. Signed-off-by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit cfd34ed8deede7cbb0ba46d61870f075ac9694e3 Author: Fengguang Wu Date: Fri Aug 21 17:12:20 2015 -0300 [media] i2c: fix platform_no_drv_owner.cocci warnings drivers/media/i2c/tc358743.c:1960:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Geert Uytterhoeven Signed-off-by: Fengguang Wu Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 1 - 1 file changed, 1 deletion(-) commit 543409a2475de00d336468eee5bba8409092db16 Author: Steven Rostedt Date: Thu Aug 20 18:03:43 2015 -0300 [media] cx231xx: Use wake_up_interruptible() instead of wake_up_interruptible_nr() While looking at use cases of the wake queues in order to add support for simple wait queues, I noticed that there was only a single user of wake_up_interruptible_nr(), and that use was doing a single task wake up. Have that user use the proper wake_up_interruptible() instead, and perhaps we can even remove the function wake_up_interruptible_nr(). Signed-off-by: Steven Rostedt Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/cx231xx/cx231xx-video.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit abeaca0ff5666a1cd7460304e619e4c6a486ea04 Author: Philipp Zabel Date: Thu Aug 20 04:35:43 2015 -0300 [media] tc358743: only queue subdev notifications if devnode is set Hardware interrupts are enabled in the probe function, before the subdev is registered to its v4l2_device. Until v4l2_device_register_subdev_node is called, sd->devnode is NULL and v4l2_subdev_notify_event must not be called. Signed-off-by: Philipp Zabel Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 22dbe35a3aa2c06cef9faa472c46e8decbcd64e9 Author: Hans Verkuil Date: Wed Aug 19 03:27:27 2015 -0300 [media] tc358743: add missing Kconfig dependency/select As reported by Randy: > when CONFIG_MEDIA_CONTROLLER is not enabled: > > ../drivers/media/i2c/tc358743.c: In function 'tc358743_probe': > ../drivers/media/i2c/tc358743.c:1890:29: error: 'struct v4l2_subdev' has no member named 'entity' > err = media_entity_init(&sd->entity, 1, &state->pad, 0); > ^ > ../drivers/media/i2c/tc358743.c:1940:26: error: 'struct v4l2_subdev' has no member named 'entity' > media_entity_cleanup(&sd->entity); > ^ > ../drivers/media/i2c/tc358743.c: In function 'tc358743_remove': > ../drivers/media/i2c/tc358743.c:1955:26: error: 'struct v4l2_subdev' has no member named 'entity' > media_entity_cleanup(&sd->entity); > ^ This driver depends on VIDEO_V4L2_SUBDEV_API and needs to select HDMI. Signed-off-by: Hans Verkuil Reported-by: Randy Dunlap Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 62e5f051c110a4f8de66f4c33e690892089aaac4 Author: Fabio Estevam Date: Tue Aug 18 10:23:05 2015 -0300 [media] c8sectpfe: Use %pad to print 'dma_addr_t' Use %pad to print 'dma_addr_t' in order to fix the following build warning: drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c:588:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'dma_addr_t' [-Wformat=] Reported-by: Olof's autobuilder Signed-off-by: Fabio Estevam Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e7c4274a70aa2d6f485996d0ca1dad52d0039ca Author: Jens Axboe Date: Thu Sep 3 19:28:20 2015 +0300 block: Check for gaps on front and back merges We are checking for gaps to previous bio_vec, which can only detect back merges gaps. Moreover, at the point where we check for a gap, we don't know if we will attempt a back or a front merge. Thus, check for gap to prev in a back merge attempt and check for a gap to next in a front merge attempt. Signed-off-by: Jens Axboe [sagig: Minor rename change] Signed-off-by: Sagi Grimberg block/blk-merge.c | 19 ++++++------------- include/linux/blkdev.h | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 13 deletions(-) commit 062683901ad5c29ac375e6b7c7bca2737d41e11a Author: Masanari Iida Date: Mon Aug 17 08:20:56 2015 -0300 [media] DocBook media: Fix typo "the the" in xml files This patch fix spelling typo "the the" found in controls.xml and vidioc-g-param.xml. These xml files are'nt generated from any source files, so I have to fix these xml files directly. Signed-off-by: Masanari Iida Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/controls.xml | 2 +- Documentation/DocBook/media/v4l/vidioc-g-parm.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1e137d92c0c6f162d57ede1ba85c298acde26bdc Author: Uwe Kleine-König Date: Tue Aug 18 05:31:10 2015 -0300 [media] tc358743: make reset gpio optional Commit 256148246852 ("[media] tc358743: support probe from device tree") specified in the device tree binding documentation that the reset gpio is optional. Make the implementation match accordingly. Signed-off-by: Uwe Kleine-König Reviewed-by: Linus Walleij Acked-by: Philipp Zabel Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 06d3f2e02024912d46e1fc8387c0284c9dfc36ad Author: Uwe Kleine-König Date: Tue Aug 18 05:31:09 2015 -0300 [media] tc358743: set direction of reset gpio using devm_gpiod_get Commit 256148246852 ("[media] tc358743: support probe from device tree") failed to explicitly set the direction of the reset gpio. Use the optional flag of devm_gpiod_get to make up leeway. This is also necessary because the flag parameter will become mandatory soon. Signed-off-by: Uwe Kleine-König Reviewed-by: Linus Walleij Acked-by: Philipp Zabel Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 362eda04ba0638af1c41dcc1e594dcbff80346c1 Author: Alex Deucher Date: Thu Sep 3 00:53:24 2015 -0400 drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic The logic was reversed. This feature is not enabled at the moment, but fix it now for the future. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 99a092383794e07d60644b449a01656da112eb1f Author: Alex Deucher Date: Thu Sep 3 10:16:23 2015 -0400 drm/amdgpu: fix typo in dce11 watermark setup Using the wrong watermwark value for the secondary watermark. Copy paste typo. Noticed by Mykola. Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be9fd2e978939ab3e59ee4164fa0893e70359557 Author: Alex Deucher Date: Thu Sep 3 10:19:03 2015 -0400 drm/amdgpu: fix typo in dce10 watermark setup Using the wrong watermwark value for the secondary watermark. Copy paste typo. Noticed by Mykola. Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd5cdb48edfd34401799056a9acf61078d773f90 Merge: 1e1a4e8 62da986 Author: Linus Torvalds Date: Thu Sep 3 08:08:17 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Pull networking updates from David Miller: "Another merge window, another set of networking changes. I've heard rumblings that the lightweight tunnels infrastructure has been voted networking change of the year. But what do I know? 1) Add conntrack support to openvswitch, from Joe Stringer. 2) Initial support for VRF (Virtual Routing and Forwarding), which allows the segmentation of routing paths without using multiple devices. There are some semantic kinks to work out still, but this is a reasonably strong foundation. From David Ahern. 3) Remove spinlock fro act_bpf fast path, from Alexei Starovoitov. 4) Ignore route nexthops with a link down state in ipv6, just like ipv4. From Andy Gospodarek. 5) Remove spinlock from fast path of act_gact and act_mirred, from Eric Dumazet. 6) Document the DSA layer, from Florian Fainelli. 7) Add netconsole support to bcmgenet, systemport, and DSA. Also from Florian Fainelli. 8) Add Mellanox Switch Driver and core infrastructure, from Jiri Pirko. 9) Add support for "light weight tunnels", which allow for encapsulation and decapsulation without bearing the overhead of a full blown netdevice. From Thomas Graf, Jiri Benc, and a cast of others. 10) Add Identifier Locator Addressing support for ipv6, from Tom Herbert. 11) Support fragmented SKBs in iwlwifi, from Johannes Berg. 12) Allow perf PMUs to be accessed from eBPF programs, from Kaixu Xia. 13) Add BQL support to 3c59x driver, from Loganaden Velvindron. 14) Stop using a zero TX queue length to mean that a device shouldn't have a qdisc attached, use an explicit flag instead. From Phil Sutter. 15) Use generic geneve netdevice infrastructure in openvswitch, from Pravin B Shelar. 16) Add infrastructure to avoid re-forwarding a packet in software that was already forwarded by a hardware switch. From Scott Feldman. 17) Allow AF_PACKET fanout function to be implemented in a bpf program, from Willem de Bruijn" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1458 commits) netfilter: nf_conntrack: make nf_ct_zone_dflt built-in netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled net: fec: clear receive interrupts before processing a packet ipv6: fix exthdrs offload registration in out_rt path xen-netback: add support for multicast control bgmac: Update fixed_phy_register() sock, diag: fix panic in sock_diag_put_filterinfo flow_dissector: Use 'const' where possible. flow_dissector: Fix function argument ordering dependency ixgbe: Resolve "initialized field overwritten" warnings ixgbe: Remove bimodal SR-IOV disabling ixgbe: Add support for reporting 2.5G link speed ixgbe: fix bounds checking in ixgbe_setup_tc for 82598 ixgbe: support for ethtool set_rxfh ixgbe: Avoid needless PHY access on copper phys ixgbe: cleanup to use cached mask value ixgbe: Remove second instance of lan_id variable ixgbe: use kzalloc for allocating one thing flow: Move __get_hash_from_flowi{4,6} into flow_dissector.c ixgbe: Remove unused PCI bus types ... commit fca8b807a667c6f34af1cffe57efbd17b257d07b Author: Russell King Date: Thu Mar 26 11:01:04 2015 +0000 pcmcia: soc_common: remove skt_dev_info's clk pointer We no longer need to store the clk pointer in struct skt_dev_info as we no longer need to remember the clk pointer for the cleanup paths. Reviewed-by: Robert Jarzmik Signed-off-by: Russell King drivers/pcmcia/pxa2xx_base.c | 1 - drivers/pcmcia/sa11xx_base.c | 1 - drivers/pcmcia/soc_common.h | 1 - 3 files changed, 3 deletions(-) commit c3eb700c5db18be80c1ba37d39995b4c23fbe792 Author: Russell King Date: Thu Mar 26 10:57:48 2015 +0000 pcmcia: sa11xx_base.c: remove useless init/exit functions A library module is not required to have module init/exit functions. Get rid of these unnecessary functions. Signed-off-by: Russell King drivers/pcmcia/sa11xx_base.c | 10 ---------- 1 file changed, 10 deletions(-) commit 321ae9646bbfdf27550ecb65617322abc2b92052 Author: Russell King Date: Thu Mar 26 10:46:35 2015 +0000 pcmcia: sa1111: simplify clk handing in sa1111_pcmcia_add() clk_get(dev, NULL) will always refer to the same clock, so it's pointless calling this multiple times for the same device. As we no longer have to worry about the cleanup (via use of devm_clk_get()) we can simplify sa1111_pcmcia_add() too. Signed-off-by: Russell King drivers/pcmcia/sa1111_generic.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 924e5ea2ce0f6addb8b098760d840b0923573d19 Author: Russell King Date: Thu Mar 26 10:27:08 2015 +0000 pcmcia: sa1111: update socket driver to use devm_clk_get() API Update the pxa2xx socket driver to use the devm_clk_get() API so that the cleanup paths are simplified. Signed-off-by: Russell King drivers/pcmcia/sa1111_generic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8e2caf0d21a7059d8b56cb19d5d0182a28b1eabc Author: Russell King Date: Thu Mar 26 10:33:16 2015 +0000 pcmcia: pxa2xx: convert memory allocation to devm_* API Convert the pxa2xx socket driver memory allocation to use devm_kzalloc() to simplify the cleanup path. Reviewed-by: Robert Jarzmik Signed-off-by: Russell King drivers/pcmcia/pxa2xx_base.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit ac92f1517379299c03dc501b6a44be49cfcbcfe4 Author: Russell King Date: Thu Mar 26 10:27:08 2015 +0000 pcmcia: pxa2xx: update socket driver to use devm_clk_get() API Update the pxa2xx socket driver to use the devm_clk_get() API so that the cleanup paths are simplified. Reviewed-by: Robert Jarzmik Signed-off-by: Russell King drivers/pcmcia/pxa2xx_base.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit cace5dce5581a5a1232b68e1bc7b778ff40c328b Author: Alex Deucher Date: Wed Sep 2 15:06:08 2015 -0400 drm/amdgpu: use top down allocation for non-CPU accessible vram Should help avoid fragmentation of vram due to CPU access requirements. Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 857d913d057f8e7330e9f17eaa2b0eb7ad492c33 Author: Alex Deucher Date: Thu Aug 27 00:14:16 2015 -0400 drm/amdgpu: be explicit about cpu vram access for driver BOs (v2) For kernel driver BOs, be explicit about whether we need vram access up front. This avoids unecessary migrations and avoids using visible vram for buffers were it's not needed. v2: line wrap fixes Reviewed-by: Christian König Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 12 +++++++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 +++++-- drivers/gpu/drm/amd/amdgpu/fiji_smc.c | 8 ++++++-- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 12 +++++++++--- drivers/gpu/drm/amd/amdgpu/iceland_smc.c | 4 +++- drivers/gpu/drm/amd/amdgpu/tonga_smc.c | 8 ++++++-- 12 files changed, 51 insertions(+), 20 deletions(-) commit 3ff32a0def6e0d2e21a6c5ad1b00726592774018 Merge: 40d3f02 8149795 Author: Russell King Date: Thu Sep 3 15:28:50 2015 +0100 Merge branch 'devel-stable' into for-linus Conflicts: drivers/perf/arm_pmu.c commit 40d3f02851577da27b5cbb1538888301245ef1e7 Merge: e0aa3a6 3939f33 9205b79 3fa6097 a5e090a Author: Russell King Date: Thu Sep 3 15:28:37 2015 +0100 Merge branches 'cleanup', 'fixes', 'misc', 'omap-barrier' and 'uaccess' into for-linus commit b7dc42fd79390c074e2bff3b172b585d5c2d80c2 Author: Steven Rostedt (Red Hat) Date: Thu Sep 3 08:57:12 2015 -0400 ring-buffer: Revert "ring-buffer: Get timestamp after event is allocated" The commit a4543a2fa9ef31 "ring-buffer: Get timestamp after event is allocated" is needed for some future work. But after adding it, there is a race somewhere that causes the saved timestamp to have a slight shift, and get ahead of the actual timestamp and make it look like time goes backwards. I'm still looking into why this happens, but in the mean time, this is holding up other work to get in. I'm reverting the change for now (which makes the problem go away), and will add it back after I know what is wrong and fix it. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 156 +++++++++++++++------------------------------ 1 file changed, 50 insertions(+), 106 deletions(-) commit 2db97045aa40da4312f7321845bc52b136c8603a Merge: fb2646a e0d8b2e Author: Ralf Baechle Date: Thu Sep 3 14:06:33 2015 +0200 Merge branch '4.2-fixes' into mips-for-linux-next commit d5f362a7b977bdfaf8a955f3d604a29267bd5464 Author: David Henningsson Date: Thu Sep 3 11:51:35 2015 +0200 drm/i915: Add locks around audio component bind/unbind This will make sure that audio callbacks do not race with component bind/unbind. [Note: this is an update patch to commit [51e1d83cab99: drm/i915: Call audio pin/ELD notify function] where I mistakenly applied the older version. Jani and Daniel's review tags were to the latest version, so I add them below, too -- tiwai] Signed-off-by: David Henningsson Reviewed-by: Jani Nikula Acked-by: Daniel Vetter Signed-off-by: Takashi Iwai drivers/gpu/drm/i915/intel_audio.c | 4 ++++ 1 file changed, 4 insertions(+) commit e0d8b2ec532852d4b5aabcec3e7611848c32237d Author: Yousong Zhou Date: Thu Sep 3 17:47:45 2015 +0800 MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16. The nomips16 has to be added both as function attribute and assembler directive. When only function attribute is specified, the compiler will inline the function with -Os optimization. The generated assembly code cannot be correctly assembled because ISA mode switch has to be done through jump instruction. When only ".set nomips16" directive is used, the generated assembly code will use MIPS32 code for the inline assembly template and MIPS16 for the function return. The compiled binary is invalid: 00403100 <__arch_swab16>: 403100: 7c0410a0 wsbh v0,a0 403104: e820ea31 swc2 $0,-5583(at) while correct code should be: 00402650 <__arch_swab16>: 402650: 7c0410a0 wsbh v0,a0 402654: 03e00008 jr ra 402658: 3042ffff andi v0,v0,0xffff Signed-off-by: Yousong Zhou Cc: Chen Jie Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11087/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/swab.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit f0675d4a8ed9d3e863ff611561ee0944969a2784 Author: David Henningsson Date: Thu Sep 3 11:51:34 2015 +0200 drm/i915: Drop port_mst_index parameter from pin/eld callback The port_mst_index parameter was reserved for future use, but maintainers prefer to add it later when it is actually used. [Note: this is an update patch to commit [51e1d83cab99: drm/i915: Call audio pin/ELD notify function] where I mistakenly applied the older version. Jani and Daniel's review tags were to the latest version, so I add them below, too -- tiwai] Signed-off-by: David Henningsson Reviewed-by: Jani Nikula Acked-by: Daniel Vetter Signed-off-by: Takashi Iwai drivers/gpu/drm/i915/intel_audio.c | 4 ++-- include/drm/i915_component.h | 3 +-- sound/pci/hda/patch_hdmi.c | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) commit fb2646ab032d12ef06225c64768691c7ecc500ec Author: Alex Smith Date: Tue Aug 18 15:03:10 2015 +0100 MIPS: Fix alignment of quiet build output for vmlinuz link The "LD vmlinuz" line in the quiet build output is misaligned with the rest of the output. Fix this. Signed-off-by: Alex Smith Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11019/ Signed-off-by: Ralf Baechle arch/mips/boot/compressed/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65ab562cabe01d524ec6b50f37694200745c21c1 Author: Markos Chandras Date: Wed Aug 12 10:14:35 2015 +0100 MIPS: math-emu: Remove unused handle_dsemul function declaration handle_dsemul does not exist and it's not being used in the code at all so remove its declaration. The deliberate DS emulation exception is handled by the do_dsemulret C code. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10950/ Signed-off-by: Ralf Baechle arch/mips/math-emu/dsemul.c | 1 - 1 file changed, 1 deletion(-) commit a79f5f9ba5088f157482feaa6ae2bacc9da0f5db Author: Markos Chandras Date: Thu Aug 13 09:56:36 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 MAX{, A} FPU instruction MIPS R6 introduced the following instruction: Scalar Floating-Point Maximum and Scalar Floating-Point argument with Maximum Absolute Value MAX.fmt writes the maximum value of the inputs fs and ft to the destination fd. MAXA.fmt takes input arguments fs and ft and writes the argument with the maximum absolute value to the destination fd. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10961/ Signed-off-by: Ralf Baechle arch/mips/math-emu/Makefile | 4 +- arch/mips/math-emu/cp1emu.c | 48 ++++++++++ arch/mips/math-emu/dp_fmax.c | 213 +++++++++++++++++++++++++++++++++++++++++++ arch/mips/math-emu/ieee754.h | 4 + arch/mips/math-emu/sp_fmax.c | 213 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 480 insertions(+), 2 deletions(-) commit 4e9561b20e2f5c1170704a81ec7e1ac961ba5e68 Author: Markos Chandras Date: Thu Aug 13 09:56:35 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 MIN{, A} FPU instruction MIPS R6 introduced the following instruction: Scalar Floating-Point Minimum and Scalar Floating-Point argument with Minimum Absolute Value MIN.fmt writes the minimum value of the inputs fs and ft to the destination fd. MINA.fmt takes input arguments fs and ft and writes the argument with the minimum absolute value to the destination fd. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10960/ Signed-off-by: Ralf Baechle arch/mips/math-emu/Makefile | 4 +- arch/mips/math-emu/cp1emu.c | 48 ++++++++++ arch/mips/math-emu/dp_fmin.c | 213 +++++++++++++++++++++++++++++++++++++++++++ arch/mips/math-emu/ieee754.h | 4 + arch/mips/math-emu/sp_fmin.c | 213 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 480 insertions(+), 2 deletions(-) commit 38db37ba069f9d801ef56b820cfc7c247a7ffc02 Author: Markos Chandras Date: Thu Aug 13 09:56:34 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 CLASS FPU instruction MIPS R6 introduced the following instruction: Stores in fd a bit mask reflecting the floating-point class of the floating point scalar value fs. CLASS.fmt: FPR[fd] = class(FPR[fs]) Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10959/ Signed-off-by: Ralf Baechle arch/mips/math-emu/Makefile | 4 +-- arch/mips/math-emu/cp1emu.c | 24 +++++++++++++++++ arch/mips/math-emu/dp_2008class.c | 55 +++++++++++++++++++++++++++++++++++++++ arch/mips/math-emu/ieee754.h | 2 ++ arch/mips/math-emu/sp_2008class.c | 55 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 138 insertions(+), 2 deletions(-) commit 400bd2e41393a783e0532321fdb369d2cc15ea26 Author: Markos Chandras Date: Thu Aug 13 09:56:33 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 RINT FPU instruction MIPS R6 introduced the following instruction: Floating-Point Round to Integral Scalar floating-point round to integral floating point value. RINT.fmt: FPR[fd] = round_int(FPR[fs]) Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10958/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 83d43305a1df2aa2976e3ccf012e4cf0dc29673d Author: Markos Chandras Date: Thu Aug 13 09:56:32 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 MSUBF FPU instruction MIPS R6 introduced the following instruction: Floating Point Fused Multiply Subtract: MSUBF.fmt To perform a fused multiply-subtract of FP values. MSUBF.fmt: FPR[fd] = FPR[fd] - (FPR[fs] x FPR[ft]) Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10957/ Signed-off-by: Ralf Baechle arch/mips/math-emu/Makefile | 4 +- arch/mips/math-emu/cp1emu.c | 26 ++++ arch/mips/math-emu/dp_msubf.c | 269 ++++++++++++++++++++++++++++++++++++++++++ arch/mips/math-emu/ieee754.h | 4 + arch/mips/math-emu/sp_msubf.c | 258 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 559 insertions(+), 2 deletions(-) commit e24c3bec3e8e254a3784b3e4c97bd3a76fbcc807 Author: Markos Chandras Date: Thu Aug 13 09:56:31 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 MADDF FPU instruction MIPS R6 introduced the following instruction: Floating Point Fused Multiply Add: MADDF.fmt To perform a fused multiply-add of FP values. MADDF.fmt: FPR[fd] = FPR[fd] + (FPR[fs] x FPR[ft]) Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10956/ Signed-off-by: Ralf Baechle arch/mips/math-emu/Makefile | 4 +- arch/mips/math-emu/cp1emu.c | 26 +++++ arch/mips/math-emu/dp_maddf.c | 265 ++++++++++++++++++++++++++++++++++++++++++ arch/mips/math-emu/ieee754.h | 5 + arch/mips/math-emu/sp_maddf.c | 255 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 553 insertions(+), 2 deletions(-) commit 130fe357ee895421a4aefef7b1285bf52f295afe Author: Markos Chandras Date: Thu Aug 13 09:56:30 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 SELNEZ FPU instruction MIPS R6 introduced the following instruction: SELNEZ.fmt: FPR[fd]  FPR[ft].bit0 ? FPR[fs] : 0 Add support for emulating the single and double precision formats of the said instruction. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10955/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 67613f02788d73541c7c9b1c851061b8c223057b Author: Markos Chandras Date: Thu Aug 13 09:56:29 2015 +0200 MIPS: math-emu: Add support for the MIPS R6 SELEQZ FPU instruction MIPS R6 introduced the following instruction: SELEQZ.fmt: FPR[fd]  FPR[ft].bit0 ? 0 : FPR[fs] Add support for emulating the single and double precision formats of the said instruction. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10954/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit f8c3c6717a7128f9601b20f890d658283d59561a Author: Markos Chandras Date: Thu Aug 13 09:56:28 2015 +0200 MIPS: math-emu: Add support for the CMP.condn.fmt R6 instruction Add support for emulating the new CMP.condn.fmt R6 instructions and return SIGILL for the old C.cond.fmt if R2 emulation is not enabled since it's not supported by R6. The functionality of the new CMP.condn.fmt is the following one: If the comparison specified by the condn field of the instruction is true for the operand values, the result is true; otherwise, the result is false. If no exception is taken, the result is written into FPR fd; true is all 1s and false is all 0s repeated the operand width of fmt. All other bits beyond the operand width fmt are UNPREDICTABLE. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10953/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 130 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 121 insertions(+), 9 deletions(-) commit 107d34009ef00d1680521be2c4a1cba31f9b69a6 Author: Markos Chandras Date: Thu Aug 13 09:56:27 2015 +0200 MIPS: inst.h: Add new MIPS R6 FPU opcodes Add opcodes for the new MIPS R6 FPU instructions. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10952/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/inst.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit cef232ec86cdadfa7f58c7db140084db0b6cc9db Author: Aaro Koskinen Date: Tue Aug 11 10:56:28 2015 +0300 MIPS: Octeon: Fix management port MII address on Kontron S1901 Management port MII address is incorrect on Kontron S1901 resulting in broken networking. Fix by providing definitions for the in-tree DT pruning code. Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10914/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-helper-board.c | 6 ++++++ arch/mips/include/asm/octeon/cvmx-bootinfo.h | 2 ++ 2 files changed, 8 insertions(+) commit e5dd8f2cf65cb228fad881ecd35093d8409d17c6 Author: Andrzej Hajda Date: Fri Aug 7 09:59:10 2015 +0200 MIPS: BCM47xx: Use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Acked-by: Hauke Mehrtens Cc: Hauke Mehrtens Cc: Rafał Miłecki Cc: Andrzej Hajda Cc: Bartlomiej Zolnierkiewicz Cc: Marek Szyprowski Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10898/ Signed-off-by: Ralf Baechle arch/mips/bcm47xx/buttons.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1d39a5e4ce09172358a5435a3411a46e76a04bb4 Author: Janne Huttunen Date: Thu Aug 13 16:21:46 2015 +0300 STAGING: Octeon: Use common helpers for determining interface and port Currently the Octeon Ethernet driver hardcodes the mapping between interface/port and IPD port number. Since we have generic helpers for the very same purpose, we might as well use them instead. This prevents having the same information in multiple places. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10975/ Signed-off-by: Ralf Baechle drivers/staging/octeon/ethernet-util.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 31705376a2fd71f5c5b596fb2d3b2c6232a6268a Author: Janne Huttunen Date: Thu Aug 13 16:21:45 2015 +0300 MIPS: Octeon: Support interfaces 4 and 5 Add the support for mapping between interface/port numbers and IPD port numbers also for the additional interfaces some Octeon II models have. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10967/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-helper-util.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 85847d8033b66c2f36e9a992ff3873fb10d72b80 Author: Janne Huttunen Date: Thu Aug 13 16:21:44 2015 +0300 MIPS: Octeon: Set up 1:1 mapping between CN68XX PKO queues and ports Use the internal port number also as the queue number on CN68XX. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10962/ Signed-off-by: Ralf Baechle arch/mips/include/asm/octeon/cvmx-pko.h | 3 +++ 1 file changed, 3 insertions(+) commit 153bfe381356226ed4c330bb2dff957a6e6c3986 Author: Janne Huttunen Date: Thu Aug 13 16:21:43 2015 +0300 MIPS: Octeon: Initialize CN68XX PKO CN68XX requires a different PKO configuration. This patch provides just enough setup to get the XAUI interfaces on CN6880 working with default parameters. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10974/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-pko.c | 149 ++++++++++++++++++++++++++- 1 file changed, 144 insertions(+), 5 deletions(-) commit f8023da8ae40c275403568d6f9fc9b585c7f6fab Author: Janne Huttunen Date: Thu Aug 13 16:21:42 2015 +0300 STAGING: Octeon: Support CN68XX style WQE CN68XX has a bit different WQE structure. This patch provides the new definitions and converts the code to use the proper variant based on the actual model. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10973/ Signed-off-by: Ralf Baechle .../cavium-octeon/executive/cvmx-helper-util.c | 8 +- arch/mips/include/asm/octeon/cvmx-pow.h | 9 +- arch/mips/include/asm/octeon/cvmx-wqe.h | 308 +++++++++++++++++---- drivers/staging/octeon/ethernet-rx.c | 58 ++-- drivers/staging/octeon/ethernet-tx.c | 19 +- 5 files changed, 304 insertions(+), 98 deletions(-) commit d5f9bc7360fc130b6f26e7c0684bc61df29deb6a Author: Janne Huttunen Date: Thu Aug 13 16:21:41 2015 +0300 STAGING: Octeon: Increase output command buffers The Octeon II models have more interfaces and thus require more output command buffers. Increase the allocation to support these models. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10965/ Signed-off-by: Ralf Baechle drivers/staging/octeon/ethernet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f5cfc8db28e63d992d293d5b49d7cb8ec5214c56 Author: Aaro Koskinen Date: Thu Aug 13 16:21:40 2015 +0300 STAGING: Octeon: Set SSO group mask properly on CN68XX CN68XX uses SSO instead of POW. Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10966/ Signed-off-by: Ralf Baechle drivers/staging/octeon/ethernet-rx.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit bcbb13964dd4174f3a512d6a4460173c5c252199 Author: Aaro Koskinen Date: Thu Aug 13 16:21:39 2015 +0300 STAGING: Octeon: Properly enable/disable SSO WQE interrupts The Octeon models with SSO instead of POW need to use a different register for configuring the WQE interrupt thresholds. Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10964/ Signed-off-by: Ralf Baechle drivers/staging/octeon/ethernet-rx.c | 54 ++++++++++++++++++++++++++---------- drivers/staging/octeon/ethernet.c | 5 +++- 2 files changed, 43 insertions(+), 16 deletions(-) commit 70b4e2ed4343f03bd7d64d6a58801ff28d231d34 Author: Janne Huttunen Date: Thu Aug 13 16:21:38 2015 +0300 MIPS: Octeon: Add definitions for setting up SSO Some Octeon II models have SSO instead of POW and use a different register for setting the interrupt thresholds. Add the necessary definitions for configuring the interrupts also on those models. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10972/ Signed-off-by: Ralf Baechle arch/mips/include/asm/octeon/cvmx-pow-defs.h | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit b92084ba545b73933ca179d46fe11801f7f9d349 Author: Janne Huttunen Date: Thu Aug 13 16:21:37 2015 +0300 MIPS: Octeon: Configure minimum PKO packet sizes on CN68XX CN68XX has common minimum packet size filters that need to be configured for the traffic to work. Just set them to a default value. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10963/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-helper.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 4397564542c18d2fee904b1e2c09ae15a871d853 Author: Janne Huttunen Date: Thu Aug 13 16:21:36 2015 +0300 MIPS: Octeon: Configure XAUI pkinds Configure the pkinds of XAUI interfaces on Octeon models that have them. This simple configuration uses 1:1 mapping between the PIP input port number and the selected pkind. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10971/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-helper-xaui.c | 7 +++++++ 1 file changed, 7 insertions(+) commit fce0af1dc34e2765357dfbd21dd923c89254bcdb Author: Janne Huttunen Date: Thu Aug 13 16:21:35 2015 +0300 MIPS: Octeon: Support all PIP input ports on CN68XX CN68XX has 48 PIP input ports. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10969/ Signed-off-by: Ralf Baechle arch/mips/include/asm/octeon/cvmx-pip.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c8c3f0201333f430b632c6b62a5b81456284884 Author: Janne Huttunen Date: Thu Aug 13 16:21:34 2015 +0300 MIPS: Octeon: Support additional interfaces on CN68XX CN68XX has 9 interfaces. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: https://patchwork.linux-mips.org/patch/10968/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-helper.c | 2 ++ 1 file changed, 2 insertions(+) commit c0034c30ed301e28c72dc516156baabf5840ce5f Author: Janne Huttunen Date: Thu Aug 13 16:21:33 2015 +0300 MIPS: Octeon: Fix CN6880 hang on XAUI init Some CN68XX series Octeon II chips seem to hang if a reset is issued on XAUI initialization. Avoid the hang by disabling the reset on affected models. Tested on Cavium EBB6800 evaluation board and Kontron S1901 board. Signed-off-by: Janne Huttunen Signed-off-by: Aaro Koskinen Acked-by: David Daney Cc: David Daney Cc: linux-mips@linux-mips.org Cc: Janne Huttunen Cc: Aaro Koskinen Cc: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Patchwork: http://patchwork.linux-mips.org/patch/10970/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/executive/cvmx-helper-xaui.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit af0cfb2c44ee5cd3c86d1ffd054d318f536cb6dd Author: Ezequiel Garcia Date: Thu Aug 6 12:22:43 2015 +0100 MIPS: pistachio: Allow to enable the external timer based clocksource This commit introduces a new config, so the user can choose to enable the General Purpose Timer based clocksource. This option is required to have CPUFreq support. Signed-off-by: Ezequiel Garcia Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Daniel Lezcano Cc: devicetree@vger.kernel.org Cc: Thomas Gleixner Cc: Andrew Bresticker Cc: James Hartley Cc: Govindraj Raja Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Cc: Ezequiel Garcia Patchwork: http://patchwork.linux-mips.org/patch/10887/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + arch/mips/pistachio/Kconfig | 13 +++++++++++++ 2 files changed, 14 insertions(+) commit 84583983c31983068429d82e6f9262009d584549 Author: Ezequiel Garcia Date: Fri Aug 7 16:39:31 2015 +0100 CLOCKSOURCE: Add Pistachio clocksource-only driver The Pistachio SoC provides four general purpose timers, and allow to implement a clocksource driver. This driver can be used as a replacement for the MIPS GIC and MIPS R4K clocksources and sched clocks, which are clocked from the CPU clock. Given the general purpose timers are clocked from an independent clock, this new clocksource driver will be useful to introduce CPUFreq support for Pistachio machines. Signed-off-by: Ezequiel Garcia Signed-off-by: Govindraj Raja Reviewed-by: Thomas Gleixner Acked-by: Daniel Lezcano Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Andrew Bresticker Cc: James Hartley Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Cc: Ezequiel Garcia Patchwork: https://patchwork.linux-mips.org/patch/10899/ Signed-off-by: Ralf Baechle drivers/clocksource/Kconfig | 4 + drivers/clocksource/Makefile | 1 + drivers/clocksource/time-pistachio.c | 217 +++++++++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+) commit d6ed2b9b60cb03091e0c84c270d145a475606297 Author: Ezequiel Garcia Date: Mon Jul 27 15:02:33 2015 +0100 Documentation: dt: Add Pistachio SoC general purpose timer binding document Add a device-tree binding document for the clocksource driver provided by Pistachio SoC general purpose timers. Signed-off-by: Ezequiel Garcia Reviewed-by: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Daniel Lezcano Cc: devicetree@vger.kernel.org Cc: Thomas Gleixner Cc: James Hartley Cc: Govindraj Raja Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Patchwork: https://patchwork.linux-mips.org/patch/10783/ Signed-off-by: Ralf Baechle .../bindings/timer/img,pistachio-gptimer.txt | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit fc6a6772f888ee8ab4c5428854f7f1d3abda13df Author: Ezequiel Garcia Date: Mon Jul 27 15:00:15 2015 +0100 CLOCKSOURCE: mips-gic: Update clockevent frequency on clock rate changes This commit introduces the clockevent frequency update, using a clock notifier. It will be used to support CPUFreq on platforms using MIPS GIC based clockevents. Signed-off-by: Ezequiel Garcia Acked-by: Daniel Lezcano Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Thomas Gleixner Cc: Andrew Bresticker Cc: James Hartley Cc: Govindraj Raja Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Patchwork: https://patchwork.linux-mips.org/patch/10782/ Signed-off-by: Ralf Baechle drivers/clocksource/mips-gic-timer.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit 42b002ab73e00b24356be4f01954fa961fea4d82 Author: Guenter Roeck Date: Sat Aug 22 02:40:41 2015 -0700 MIPS: Kconfig: Enable common clock framework for Malta and SEAD3 Now that we're ready to enable COMMON_CLK for GIC platforms do so for Malta and SEAD3. The only other user of the GIC Pistachio does already do so. [ralf@linux-mips.org: Rewrite the commit message because applied in the right order there is no breakage thus no fix required.] Signed-off-by: Guenter Roeck Cc: Ezequiel Garcia Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11038/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 67d4e669c1e504a491e44737f3561eaba919b304 Author: Ezequiel Garcia Date: Mon Jul 27 15:00:14 2015 +0100 CLOCKSOURCE: mips-gic: Split clocksource and clockevent initialization This is preparation work for the introduction of clockevent frequency update with a clock notifier. This is only possible when the device is passed a clk struct, so let's split the legacy and devicetree initialization. Reviewed-by: Andrew Bresticker Signed-off-by: Ezequiel Garcia Acked-by: Daniel Lezcano Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Thomas Gleixner Cc: James Hartley Cc: Govindraj Raja Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Patchwork: https://patchwork.linux-mips.org/patch/10781/ Signed-off-by: Ralf Baechle drivers/clocksource/mips-gic-timer.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit f95ac8558b88a5e9ae2b1d580a5cc55bffa512fa Author: Ezequiel Garcia Date: Mon Jul 27 15:00:13 2015 +0100 CLOCKSOURCE: mips-gic: Add missing error returns checks This commit adds the required checks on the functions that return an error. Some of them are not critical, so only a warning is printed. Signed-off-by: Ezequiel Garcia Reviewed-by: Andrew Bresticker Acked-by: Daniel Lezcano Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Thomas Gleixner Cc: James Hartley Cc: Govindraj Raja Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Patchwork: https://patchwork.linux-mips.org/patch/10780/ Signed-off-by: Ralf Baechle drivers/clocksource/mips-gic-timer.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit eb811c73b69f18cefb7a63f22fe07212c6575650 Author: Ezequiel Garcia Date: Mon Jul 27 15:00:12 2015 +0100 CLOCKSOURCE: mips-gic: Enable the clock before using it For the clock to be used (e.g. get its rate through clk_get_rate) it should be prepared and enabled first. Also, while the clock is enabled the driver must hold a reference to it, so let's remove the call to clk_put. Reviewed-by: Andrew Bresticker Signed-off-by: Ezequiel Garcia Acked-by: Daniel Lezcano Cc: linux-kernel@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Thomas Gleixner Cc: James Hartley Cc: Govindraj Raja Cc: Damien Horsley Cc: James Hogan Cc: Ezequiel Garcia Patchwork: https://patchwork.linux-mips.org/patch/10779/ Signed-off-by: Ralf Baechle drivers/clocksource/mips-gic-timer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 1a3d59579b9f436da038f377309cf2270c76318e Author: Paul Burton Date: Mon Aug 3 08:49:30 2015 -0700 MIPS: Tidy up FPU context switching Rather than saving the scalar FP or vector context in the assembly resume function, reuse the existing C code we have in fpu.h to do exactly that. This reduces duplication, results in a much easier to read resume function & should allow the compiler to optimise out more MSA code due to is_msa_enabled()/cpu_has_msa being known-zero at compile time for kernels without MSA support. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Leonid Yegoshin Cc: Maciej W. Rozycki Cc: linux-kernel@vger.kernel.org Cc: James Hogan Cc: Markos Chandras Cc: Manuel Lauss Patchwork: https://patchwork.linux-mips.org/patch/10830/ Signed-off-by: Ralf Baechle arch/mips/include/asm/fpu.h | 21 ++++++++++++-------- arch/mips/include/asm/switch_to.h | 21 ++++---------------- arch/mips/kernel/r4k_switch.S | 41 +-------------------------------------- 3 files changed, 18 insertions(+), 65 deletions(-) commit 23eb6f4016758b756b54704b359e3c51d425d6ab Author: Antonio Ospite Date: Tue Apr 28 13:11:25 2015 +0200 MIPS: Netlogic: Fix 0x0x prefixes. Fix the 0x0x prefix in integer constants, in this case the registers interval is actually 0x8065 .. 0x80A4 as confirmed some lines above in the code. Signed-off-by: Antonio Ospite Cc: linux-mips@linux-mips.org Cc: Jiri Kosina Patchwork: https://patchwork.linux-mips.org/patch/9908/ Signed-off-by: Ralf Baechle arch/mips/netlogic/xlp/ahci-init-xlp2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7565cc3321987e46d1f65f5b5eb3fb48268fdc2 Author: Ralf Baechle Date: Wed Jul 29 23:17:00 2015 +0200 Documentation: MIPS now supports uprobes. Signed-off-by: Ralf Baechle Documentation/features/debug/uprobes/arch-support.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40e084a506eba78310cd5e8ab700fd1226c6130a Author: Ralf Baechle Date: Wed Jul 29 22:44:53 2015 +0200 MIPS: Add uprobes support. Signed-off-by: Ralf Baechle arch/mips/Kconfig | 4 + arch/mips/include/asm/kdebug.h | 4 +- arch/mips/include/asm/ptrace.h | 80 +++++++++ arch/mips/include/asm/thread_info.h | 5 +- arch/mips/include/asm/uprobes.h | 58 ++++++ arch/mips/include/uapi/asm/break.h | 2 + arch/mips/kernel/Makefile | 1 + arch/mips/kernel/ptrace.c | 88 ++++++++++ arch/mips/kernel/signal.c | 4 + arch/mips/kernel/traps.c | 12 ++ arch/mips/kernel/uprobes.c | 341 ++++++++++++++++++++++++++++++++++++ 11 files changed, 597 insertions(+), 2 deletions(-) commit e3b28831c18c6c95c51b6bb717fa116d2b658ba9 Author: Ralf Baechle Date: Tue Jul 28 20:37:43 2015 +0200 MIPS: Set trap_no field in thread_struct on exception. This reverts commit 7281cd22973008a782860e48ed8d85d00204168c and adds actual functionality to use the field. arch/mips/include/asm/processor.h | 2 ++ arch/mips/kernel/asm-offsets.c | 1 + arch/mips/kernel/traps.c | 28 ++++++++++++++-------------- arch/mips/mm/fault.c | 8 ++++---- 4 files changed, 21 insertions(+), 18 deletions(-) commit 8c576912e4708144cbaa28228cc910746f39bafd Author: Subhendu Sekhar Behera Date: Sat Aug 1 17:44:23 2015 +0530 MIPS: Netlogic: NAND IRQ mapping Add NAND IRQ mapping for XLP9xx processor. Signed-off-by: Subhendu Sekhar Behera Signed-off-by: Jayachandran C Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10820/ Signed-off-by: Ralf Baechle arch/mips/netlogic/xlp/nlm_hal.c | 2 ++ 1 file changed, 2 insertions(+) commit 079e31600786b1ef8cab15ac6345605ad9150daf Author: Kamlakant Patel Date: Sat Aug 1 17:44:22 2015 +0530 MIPS: Netlogic: set ARCH_REQUIRE_GPIOLIB for XLP platform This is needed to enable GPIO framework support for Netlogic XLP platform. Signed-off-by: Kamlakant Patel Signed-off-by: Jayachandran C Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10818/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit a8a747764a970fc4c4f39f554c7dc08a4ca67db8 Author: Kamlakant Patel Date: Sat Aug 1 17:44:21 2015 +0530 MIPS: Netlogic: add device tree entry for XLP GPIO Add GPIO entries to the Netlogic XLP device tree files. Signed-off-by: Kamlakant Patel Signed-off-by: Jayachandran C Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10819/ Signed-off-by: Ralf Baechle arch/mips/boot/dts/netlogic/xlp_evp.dts | 12 ++++++++++++ arch/mips/boot/dts/netlogic/xlp_fvp.dts | 12 ++++++++++++ arch/mips/boot/dts/netlogic/xlp_gvp.dts | 11 +++++++++++ arch/mips/boot/dts/netlogic/xlp_rvp.dts | 11 +++++++++++ arch/mips/boot/dts/netlogic/xlp_svp.dts | 12 ++++++++++++ 5 files changed, 58 insertions(+) commit 325f0a1833c41d2d399fda161866923b72592cc9 Author: Kamlakant Patel Date: Sat Aug 1 17:44:20 2015 +0530 MIPS: Netlogic: Use chip_data for irq_chip methods Update mips/netlogic/common/irq.c and mips/pci/msi-xlp.c to use chip_data to store interrupt controller data pointer. It uses handler_data now, and that causes errors when an API (like the GPIO subsystem) tries to use the handler data. Signed-off-by: Kamlakant Patel Signed-off-by: Jayachandran C Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10817/ Signed-off-by: Ralf Baechle arch/mips/netlogic/common/irq.c | 12 ++++++------ arch/mips/pci/msi-xlp.c | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) commit 832f5dacfa0bb081a3b3b979a36a132b28ffacf3 Author: Alban Bedel Date: Sun Aug 2 18:30:11 2015 +0200 MIPS: Remove all the uses of custom gpio.h Currently CONFIG_ARCH_HAVE_CUSTOM_GPIO_H is defined for all MIPS machines, and each machine type provides its own gpio.h. However only a handful really implement the GPIO API, most just forward everythings to gpiolib. The Alchemy machine is notable as it provides a system to allow implementing the GPIO API at the board level. But it is not used by any board currently supported, so it can also be removed. For most machine types we can just remove the custom gpio.h, as well as the custom wrappers if some exists. Some of the code found in the wrappers must be moved to the respective GPIO driver. A few more fixes are need in some drivers as they rely on linux/gpio.h to provides some machine specific definitions, or used asm/gpio.h instead of linux/gpio.h for the gpio API. Signed-off-by: Alban Bedel Reviewed-by: Linus Walleij Cc: linux-mips@linux-mips.org Cc: Hauke Mehrtens Cc: Rafał Miłecki Cc: Bartlomiej Zolnierkiewicz Cc: Tejun Heo Cc: Alexandre Courbot Cc: Dmitry Torokhov Cc: Florian Fainelli Cc: Manuel Lauss Cc: Joe Perches Cc: Daniel Walter Cc: Sergey Ryazanov Cc: Huacai Chen Cc: James Hartley Cc: Andrew Bresticker Cc: Paul Burton Cc: Jiri Kosina Cc: Bjorn Helgaas Cc: Wolfram Sang Cc: Randy Dunlap Cc: Varka Bhadram Cc: Masanari Iida Cc: Tomi Valkeinen Cc: Michael Buesch Cc: abdoulaye berthe Cc: linux-kernel@vger.kernel.org Cc: linux-ide@vger.kernel.org Cc: linux-gpio@vger.kernel.org Cc: linux-input@vger.kernel.org Cc: netdev@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10828/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 - arch/mips/alchemy/Kconfig | 7 -- arch/mips/alchemy/board-gpr.c | 1 + arch/mips/alchemy/board-mtx1.c | 1 + arch/mips/alchemy/common/Makefile | 7 +- arch/mips/alchemy/devboards/db1000.c | 1 + arch/mips/alchemy/devboards/db1300.c | 1 + arch/mips/alchemy/devboards/db1550.c | 1 + arch/mips/alchemy/devboards/pm.c | 2 +- arch/mips/ar7/gpio.c | 5 +- arch/mips/ar7/platform.c | 1 - arch/mips/ar7/setup.c | 1 - arch/mips/include/asm/gpio.h | 6 - arch/mips/include/asm/mach-ar7/ar7.h | 4 + arch/mips/include/asm/mach-ar7/gpio.h | 41 ------- arch/mips/include/asm/mach-ath25/gpio.h | 16 --- arch/mips/include/asm/mach-ath79/gpio.h | 26 ----- arch/mips/include/asm/mach-au1x00/gpio-au1000.h | 148 ++---------------------- arch/mips/include/asm/mach-au1x00/gpio.h | 86 -------------- arch/mips/include/asm/mach-bcm47xx/gpio.h | 17 --- arch/mips/include/asm/mach-bcm63xx/gpio.h | 15 --- arch/mips/include/asm/mach-cavium-octeon/gpio.h | 21 ---- arch/mips/include/asm/mach-generic/gpio.h | 21 ---- arch/mips/include/asm/mach-jz4740/gpio.h | 2 - arch/mips/include/asm/mach-lantiq/gpio.h | 13 --- arch/mips/include/asm/mach-loongson64/gpio.h | 36 ------ arch/mips/include/asm/mach-pistachio/gpio.h | 21 ---- arch/mips/include/asm/mach-rc32434/gpio.h | 12 -- arch/mips/jz4740/gpio.c | 20 ++-- arch/mips/pci/pci-lantiq.c | 1 - arch/mips/rb532/devices.c | 1 + arch/mips/rb532/gpio.c | 6 + arch/mips/txx9/generic/setup.c | 16 --- drivers/ata/pata_rb532_cf.c | 3 +- drivers/gpio/gpio-ath79.c | 32 ----- drivers/input/misc/rb532_button.c | 1 + drivers/net/ethernet/ti/cpmac.c | 2 + 37 files changed, 45 insertions(+), 551 deletions(-) commit 1d473c2cb9fe25fc6bad30b0eb8d92e384496042 Author: Alban Bedel Date: Fri Jul 3 11:11:49 2015 +0200 MIPS: ath79: Move the GPIO driver to drivers/gpio GPIO drivers should be in drivers/gpio Signed-off-by: Alban Bedel Acked-by: Linus Walleij Cc: linux-gpio@vger.kernel.org Cc: Alexandre Courbot Cc: Gabor Juhos Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10597/ Signed-off-by: Ralf Baechle arch/mips/ath79/Makefile | 2 +- arch/mips/ath79/gpio.c | 236 ---------------------------------------------- drivers/gpio/Makefile | 1 + drivers/gpio/gpio-ath79.c | 236 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 238 insertions(+), 237 deletions(-) commit f689332b19fa1120de1bd84988a7bd0c08bd9b7b Author: Alban Bedel Date: Fri Jul 3 11:11:48 2015 +0200 MIPS: Ath79: Remove the unused GPIO function API To prepare moving the GPIO driver to drivers/gpio remove the platform specific pinmux API. As it is not used by any board, and such functionality should better be implemented using the pinmux subsystem just removing it seems to be the best option. Signed-off-by: Alban Bedel Acked-by: Linus Walleij Cc: linux-gpio@vger.kernel.org Cc: Alexandre Courbot Cc: Gabor Juhos Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10596/ Signed-off-by: Ralf Baechle arch/mips/ath79/common.h | 3 --- arch/mips/ath79/gpio.c | 43 ------------------------------------------- 2 files changed, 46 deletions(-) commit 5fac4f7ac067b2eee3aaf19eff8bd1d7d8e9a91e Author: Paul Burton Date: Thu Jul 30 08:16:10 2015 -0700 MIPS: Select CONFIG_ARCH_USE_CMPXCHG_LOCKREF for MIPS64 On MIPS64 we have spinlocks that are 32b in size and an efficient cmpxchg64 implementation, so we qualify to make use of cmpxchg backed lockrefs. Select the ARCH_USE_CMPXCHG_LOCKREF Kconfig symbol and provide a trivial implementation of arch_spin_value_unlocked to satisfy the lockref code. Using Linus' simple testcase from http://article.gmane.org/gmane.linux.file-systems/77466 on a dual core system with an in-development MIPS64 CPU running on FPGA I see around an 8% gain: Pre-patch: Total loops: 252698 Total loops: 251482 Total loops: 250806 Total loops: 252885 Total loops: 251666 Post-patch: Total loops: 273728 Total loops: 269932 Total loops: 269341 Total loops: 275004 Total loops: 270208 [ralf@linux-mips.org: Fixed conflict.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Steven J. Hill Cc: linux-kernel@vger.kernel.org Cc: Maciej W. Rozycki Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10810/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + arch/mips/include/asm/spinlock.h | 5 +++++ 2 files changed, 6 insertions(+) commit f51246efee2b6bc72e86bc1d16599fc7c455b986 Author: Ralf Baechle Date: Wed Jul 29 12:14:42 2015 +0200 MIPS: Get rid of finish_arch_switch(). MIPS was using finish_arch_switch() as a hook to restore and initialize CPU context for all threads, even newly created kernel and user threads. This is however entirely solvable within switch_to() so get rid of finish_arch_switch() which is in the way of scheduler cleanups. Signed-off-by: Ralf Baechle arch/mips/include/asm/switch_to.h | 48 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 25 deletions(-) commit f1f5e414851fdb69a3200e5c15799ea4788d423e Author: Alex Smith Date: Fri Jul 24 16:16:12 2015 +0100 MIPS: Use Ingenic-specific write combine attribute on all Ingenic platforms The Ingenic-specific write combining cache attribute was defined based on CONFIG_MACH_JZ4740 and therefore not used on JZ4780. Change this to CONFIG_MACH_INGENIC so that it gets used on all Ingenic platforms. Signed-off-by: Alex Smith Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10769/ Signed-off-by: Ralf Baechle arch/mips/include/asm/pgtable-bits.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c172467be36f7c9591e59b647e4cd342ce2ef41 Author: Alex Smith Date: Thu Jul 30 12:03:42 2015 +0100 MIPS: Add implementation of dma_map_ops.mmap() The generic implementation of dma_map_ops.mmap(), dma_common_mmap(), is not correct for non-coherent devices. It expects to be passed a virtual address previously returned by dma_alloc_coherent(), which for a non-coherent device will return a KSEG1 address. It then attempts to convert that virtual address to a physical address using virt_to_page() which will yield an incorrect address. Also, dma_common_mmap() does not handle the DMA_ATTR_WRITE_COMBINE attribute, and therefore dma_mmap_writecombine() will not actually set the appropriate pgprot_t flags for write combining. This patch adds an implementation of dma_map_ops.mmap() that correctly handles KSEG1 addresses, and enables write combining when requested. Signed-off-by: Alex Smith Cc: Sadegh Abbasi Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10808/ Signed-off-by: Ralf Baechle arch/mips/mm/dma-default.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit c4687b15a8487e8ef028814a301a88958baf72bc Author: Alex Smith Date: Fri Jul 24 16:16:10 2015 +0100 MIPS: Fix definition of pgprot_writecombine() If pgprot_writecombine is not #defined, asm-generic/pgtable.h will try to provide a default implementation by #defining it to pgprot_noncached. However our implementation is an inline function rather than a #define, so it was never actually used because of the #define in generic code. Add "#define pgprot_writecombine pgprot_writecombine" to prevent generic code from re-defining it. Signed-off-by: Alex Smith Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10767/ Signed-off-by: Ralf Baechle arch/mips/include/asm/pgtable.h | 2 ++ 1 file changed, 2 insertions(+) commit 0ce3417e84825155e2d74ac65e133bf7ba995a74 Author: Paul Burton Date: Mon Jul 27 12:58:27 2015 -0700 MIPS: Drop EXPERIMENTAL tag from O32+FP64 & MSA CONFIG_MIPS_O32_FP64_SUPPORT and CONFIG_CPU_HAS_MSA are in pretty good shape these days, and in much wider use than they once were. Stop referring to them as EXPERIMENTAL. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10801/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3cc9fa7fb3e38e83e59977c8bc5c355687232362 Author: Paul Burton Date: Mon Jul 27 12:58:25 2015 -0700 MIPS: Advertise MSA support via HWCAP when present If MSA is supported by both the hardware & the kernel then advertise that support to userland via the AT_HWCAP aux vector. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Leonid Yegoshin Cc: Maciej W. Rozycki Cc: linux-kernel@vger.kernel.org Cc: Huacai Chen Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10799/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 1 + 1 file changed, 1 insertion(+) commit 4c0630346e2fcfe68eac8fa31d38daf04570e671 Author: Paul Burton Date: Mon Jul 27 12:58:24 2015 -0700 MIPS: Advertise MIPSr6 via HWCAP when appropriate When running on a CPU implementing the release 6 of the MIPS32 or MIPS64 ISA, advertise that to userland via the appropriate HWCAP bit. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Leonid Yegoshin Cc: Maciej W. Rozycki Cc: linux-kernel@vger.kernel.org Cc: Huacai Chen Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10798/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 3 +++ 1 file changed, 3 insertions(+) commit e14f1db7a61f016d74393ca9e8fc49a91d27f603 Author: Paul Burton Date: Mon Jul 27 12:58:23 2015 -0700 MIPS: AT_HWCAP aux vector infrastructure In order for userland to determine whether various features are safe to use, it will need to know both that the hardware supports those features and that the kernel is recent enough & configured appropriately to support them. For example under the O32 modeless FP proposal the dynamic linker & ifunc resolvers will need this information. The kernel is the only thing in a position to know availability accurately, so the kernel needs to provide the information to userland. This patch introduces the infrastructure to provide the AT_HWCAP aux vector to userland in order to provide that information. It also defines the 2 currently specified flags, which indicate MIPSr6 & MSA support. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Kees Cook Cc: Huacai Chen Cc: Maciej W. Rozycki Cc: Alex Smith Cc: linux-kernel@vger.kernel.org Cc: Leonid Yegoshin Cc: Markos Chandras Cc: Ingo Molnar Patchwork: https://patchwork.linux-mips.org/patch/10797/ Signed-off-by: Ralf Baechle arch/mips/include/asm/elf.h | 4 +++- arch/mips/include/uapi/asm/hwcap.h | 8 ++++++++ arch/mips/kernel/cpu-probe.c | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) commit bf82cb30c7e58b3a9742f0a45962ebdf51befac7 Author: Paul Burton Date: Mon Jul 27 12:58:22 2015 -0700 MIPS: Save MSA extended context around signals It is desirable for signal handlers to be allowed to make use of MSA, particularly if auto vectorisation is used when compiling a program. The MSA context must therefore be saved & restored before & after invoking the signal handler. Make use of the extended context structs defined in the preceding patch to save MSA context after the sigframe when appropriate. [ralf@linux-mips.org: Fixed conflicts.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Leonid Yegoshin Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: James Hogan Cc: Andrew Morton Cc: Andy Lutomirski Cc: Markos Chandras Cc: Manuel Lauss Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10796/ Signed-off-by: Ralf Baechle arch/mips/kernel/r4k_fpu.S | 118 ++++++++++++++++++++ arch/mips/kernel/signal-common.h | 3 + arch/mips/kernel/signal.c | 227 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 333 insertions(+), 15 deletions(-) commit f1fe2d21f4e1aca8644cea888dc618f0183ad671 Author: Paul Burton Date: Mon Jul 27 12:58:21 2015 -0700 MIPS: Add definitions for extended context The context introduced by MSA needs to be saved around signals. However, we can't increase the size of struct sigcontext because that will change the offset of the signal mask in struct sigframe or struct ucontext. This patch instead places the new context immediately after the struct sigframe for traditional signals, or similarly after struct ucontext for RT signals. The layout of struct sigframe & struct ucontext is identical from their sigcontext fields onwards, so the offset from the sigcontext to the extended context will always be the same regardless of the type of signal. Userland will be able to search through the extended context by using the magic values to detect which types of context are present. Any unrecognised context can be skipped over using the size field of struct extcontext. Once the magic value END_EXTCONTEXT_MAGIC is seen it is known that there are no further extended context structures to examine. This approach is somewhat similar to that taken by ARM to save VFP & other context at the end of struct ucontext. Userland can determine whether extended context is present by checking for the USED_EXTCONTEXT bit in the sc_used_math field of struct sigcontext. Whilst this could potentially change the historic semantics of sc_used_math if further extended context which does not imply FP context were to be introduced in the future, I have been unable to find any userland code making use of sc_used_math at all. Using one of the fields described as unused in struct sigcontext was considered, but the kernel does not already write to those fields so there would be no guarantee of the field being clear on older kernels. Other alternatives would be to have userland check the kernel version, or to have a HWCAP bit indicating presence of extended context. However there is a desire to have the context & information required to decode it be self contained such that, for example, debuggers could decode the saved context easily. [ralf@linux-mips.org: Fixed conflict.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Peter Zijlstra Cc: Zubair Lutfullah Kakakhel Cc: Alex Smith Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: Andrew Morton Cc: Andy Lutomirski Cc: Michael Ellerman Cc: Markos Chandras Cc: Daniel Borkmann Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10795/ Signed-off-by: Ralf Baechle arch/mips/include/asm/Kbuild | 1 - arch/mips/include/uapi/asm/sigcontext.h | 3 ++ arch/mips/include/uapi/asm/ucontext.h | 65 +++++++++++++++++++++++++++++++++ arch/mips/kernel/signal.c | 13 +++++++ 4 files changed, 81 insertions(+), 1 deletion(-) commit 0d071fa3772b85fe5d81032fbc011c623570d2fc Author: Paul Burton Date: Mon Jul 27 12:58:20 2015 -0700 MIPS: Indicate FP mode in sigcontext sc_used_math The sc_used_math field of struct sigcontext & its variants has traditionally been used as a boolean value indicating only whether or not floating point context is saved within the sigcontext. With various supported FP modes & the ability to switch between them this information will no longer be enough to decode the meaning of the data stored in the sc_fpregs fields of struct sigcontext. To make that possible 3 bits are defined within sc_used_math: - Bit 0 (USED_FP) represents whether FP was used, essentially providing the boolean flag which sc_used_math as a whole provided previously. - Bit 1 (USED_FR1) provides the value of the Status.FR bit at the time the FP context was saved. - Bit 2 (USED_HYBRID_FPRS) indicates whether the FP context was saved under the hybrid FPR scheme. Essentially, when set the odd singles are located in bits 63:32 of the preceding even indexed sc_fpregs element. Any userland that tests whether the sc_used_math field is zero or non-zero will continue to function as expected. Having said that, I could not find any userland which uses the sc_used_math field at all. [ralf@linux-mips.org: Fixed rejects.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: Andy Lutomirski Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10794/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/sigcontext.h | 9 +++++++++ arch/mips/kernel/signal.c | 15 +++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) commit 6a24432cf9cfb6e071fb3566144a3a5ace9d3c0d Author: Paul Burton Date: Mon Jul 27 12:58:19 2015 -0700 MIPS: Remove unused {get,put}_sigset functions These functions are never called & thus dead code. Remove them. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: Andy Lutomirski Cc: Andrew Morton Patchwork: https://patchwork.linux-mips.org/patch/10793/ Signed-off-by: Ralf Baechle arch/mips/kernel/signal32.c | 51 --------------------------------------------- 1 file changed, 51 deletions(-) commit d02a40aff6e043bae1cd6e6416e9048990928b1d Author: Paul Burton Date: Mon Jul 27 12:58:18 2015 -0700 MIPS: Use common FP sigcontext code for O32 compat Make use of the common FP sigcontext code for O32 binaries running on MIPS64 kernels now that it is taking appropriate offsets into struct sigcontext(32) from struct mips_abi. [ralf@linux-mips.org: Fixed reject.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Leonid Yegoshin Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: James Hogan Cc: Andrew Morton Cc: Andy Lutomirski Cc: Markos Chandras Cc: Manuel Lauss Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10792/ Signed-off-by: Ralf Baechle arch/mips/include/asm/signal.h | 3 + arch/mips/kernel/asm-offsets.c | 11 --- arch/mips/kernel/r4k_fpu.S | 114 ------------------------------- arch/mips/kernel/signal.c | 4 +- arch/mips/kernel/signal32.c | 150 ++--------------------------------------- 5 files changed, 11 insertions(+), 271 deletions(-) commit 6f0aba63bfb3eb33b68cf746c44b6ab302599180 Author: Paul Burton Date: Mon Jul 27 12:58:17 2015 -0700 MIPS: Skip odd double FP registers when copying FP32 sigcontext When a task uses 32 bit floating point, the odd indexed 32b register values are stored in bits 63:32 of the preceding even indexed 64b FP register field in saved context. Thus there is no point in preserving the odd indexed 64b register fields since they hold no valid context. This patch will cause them to be skipped, as is already done in arch/mips/kernel/signal32.c. [ralf@linux-mips.org: Fixed reject.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: Andy Lutomirski Cc: Maciej W. Rozycki Cc: Andrew Morton Patchwork: https://patchwork.linux-mips.org/patch/10791/ Signed-off-by: Ralf Baechle arch/mips/kernel/signal.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 64243c2a945640392b59fe1dc66c30ee1ca04170 Author: Paul Burton Date: Mon Jul 27 12:58:16 2015 -0700 MIPS: Move FP usage checks into protected_{save, restore}_fp_context In preparation for sharing protected_{save,restore}_fp_context with compat ABIs, move the FP usage checks into said functions. This will both enable that code to be shared, and allow for extensions of it in further patches to also be shared. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: Andy Lutomirski Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10790/ Signed-off-by: Ralf Baechle arch/mips/kernel/signal.c | 73 ++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 39 deletions(-) commit 2db9ca0a355100c40d1bef2aae3b9d9cf199cd04 Author: Paul Burton Date: Mon Jul 27 12:58:15 2015 -0700 MIPS: Use struct mips_abi offsets to save FP context When saving FP state to struct sigcontext, make use of the offsets provided by struct mips_abi to obtain appropriate addresses for the sc_fpregs & sc_fpc_csr fields of the sigcontext. This is done only for the native struct sigcontext in this patch (ie. for O32 in CONFIG_32BIT kernels or for N64 in CONFIG_64BIT kernels) but is done in preparation for sharing this code with compat ABIs in further patches. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Leonid Yegoshin Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: James Hogan Cc: Andy Lutomirski Cc: Markos Chandras Cc: Manuel Lauss Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10789/ Signed-off-by: Ralf Baechle arch/mips/kernel/r4k_fpu.S | 151 +++++++++++++++++++++------------------ arch/mips/kernel/signal-common.h | 6 ++ arch/mips/kernel/signal.c | 85 +++++++++++++++------- 3 files changed, 145 insertions(+), 97 deletions(-) commit 778561006e5891801ac794ddf7b21148a5555e35 Author: Paul Burton Date: Mon Jul 27 12:58:14 2015 -0700 MIPS: Add offsets to sigcontext FP fields to struct mips_abi Add fields to struct mips_abi, which holds information regarding the kernel-userland ABI regarding signals, to specify the offsets to the FP related fields within the appropriate variant of struct sigcontext. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: James Hogan Cc: Andy Lutomirski Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10788/ Signed-off-by: Ralf Baechle arch/mips/include/asm/abi.h | 4 ++++ arch/mips/kernel/signal.c | 6 +++++- arch/mips/kernel/signal32.c | 6 +++++- arch/mips/kernel/signal_n32.c | 6 +++++- 4 files changed, 19 insertions(+), 3 deletions(-) commit 689ee8565c5b5af9369f4c34af04196f2d3fea83 Author: Paul Burton Date: Mon Jul 27 12:58:13 2015 -0700 MIPS: Simplify EVA FP context handling code The protected_{save,restore}_fp_context functions had effectively different implementations for EVA. Simplify & unify the code somewhat such that EVA configurations simply guarantee the FPU-not-owned path through the standard code path. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: linux-mips@linux-mips.org Cc: Guenter Roeck Cc: Matthew Fortune Cc: Michael Ellerman Cc: linux-kernel@vger.kernel.org Cc: Richard Weinberger Cc: Andy Lutomirski Cc: Maciej W. Rozycki Patchwork: https://patchwork.linux-mips.org/patch/10787/ Signed-off-by: Ralf Baechle arch/mips/kernel/signal.c | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) commit 397d08b006fc8bbb087615214400b86b64f8fe50 Author: Viresh Kumar Date: Mon Jul 6 16:42:05 2015 +0530 MIPS: sni: Migrate to new 'set-state' interface Migrate sni driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10612/ Signed-off-by: Ralf Baechle arch/mips/sni/time.c | 49 +++++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 30 deletions(-) commit 0c16240ab07ff8a0e611f676f86a92a4b513d15d Author: Viresh Kumar Date: Mon Jul 6 16:42:04 2015 +0530 MIPS: IP27: Migrate to new 'set-state' interface Migrate sgidriver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Signed-off-by: Viresh Kumar Cc: Deng-Cheng Zhu Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10611/ Signed-off-by: Ralf Baechle arch/mips/sgi-ip27/ip27-timer.c | 7 ------- 1 file changed, 7 deletions(-) commit 59113d93c2b483485cf62f0b057f896e420048c2 Author: Viresh Kumar Date: Mon Jul 6 16:42:03 2015 +0530 MIPS: rt3352: Migrate to new 'set-state' interface Migrate ralink driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10610/ Signed-off-by: Ralf Baechle arch/mips/ralink/cevt-rt3352.c | 59 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 29 deletions(-) commit 1fed884d5f3d615d56d3b3c07d5ef95f7b49b5f5 Author: Viresh Kumar Date: Mon Jul 6 16:42:02 2015 +0530 MIPS: loongsoon32: Migrate to new 'set-state' interface Migrate loongsoon32 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Kelvin Cheung Cc: Huacai Chen Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10609/ Signed-off-by: Ralf Baechle arch/mips/loongson32/common/time.c | 57 +++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 23 deletions(-) commit e3280b2a54b38406563d6422685a20172382d365 Author: Viresh Kumar Date: Mon Jul 6 16:42:01 2015 +0530 MIPS: loongson64/timer: Migrate to new 'set-state' interface Migrate loongson driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. [ralf@linux-mips.org: Folded in Viresh's followon fix.] Signed-off-by: Viresh Kumar Cc: Huacai Chen Cc: Michael Opdenacker Cc: Hongliang Tao Cc: Valentin Rothberg Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Cc: Viresh Kumar Patchwork: https://patchwork.linux-mips.org/patch/10608/ Patchwork: https://patchwork.linux-mips.org/patch/10883/ Signed-off-by: Ralf Baechle arch/mips/loongson64/common/cs5536/cs5536_mfgpt.c | 46 ++++----- arch/mips/loongson64/loongson-3/hpet.c | 117 +++++++++++++--------- 2 files changed, 92 insertions(+), 71 deletions(-) commit d199da550da30e0946a7554f8a93ef75f66f8005 Author: Viresh Kumar Date: Mon Jul 6 16:42:00 2015 +0530 MIPS: cevt-txx9: Migrate to new 'set-state' interface Migrate cevt-txx9 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Deng-Cheng Zhu Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Cc: Viresh Kumar Patchwork: https://patchwork.linux-mips.org/patch/10607/ Signed-off-by: Ralf Baechle arch/mips/kernel/cevt-txx9.c | 81 ++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 30 deletions(-) commit 57e148cabbb2f1e6770d6a506088486142b26b97 Author: Viresh Kumar Date: Mon Jul 6 16:41:59 2015 +0530 MIPS: cevt-sb1250: Migrate to new 'set-state' interface Migrate cevt-rsb1250 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10606/ Signed-off-by: Ralf Baechle arch/mips/kernel/cevt-sb1250.c | 45 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) commit 877c61dc63c2eaa98515abfd89596f293b543342 Author: Viresh Kumar Date: Mon Jul 6 16:41:58 2015 +0530 MIPS: cevt-r4k: Migrate to new 'set-state' interface Migrate cevt-4k driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Signed-off-by: Viresh Kumar Cc: James Hogan Cc: Andrew Bresticker Cc: Qais Yousef Cc: Jason Cooper Cc: Leonid Yegoshin Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10605/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cevt-r4k.h | 1 - arch/mips/kernel/cevt-r4k.c | 7 ------- 2 files changed, 8 deletions(-) commit c88f2fb4d81df3dbafd79d51b2cacefb356d466c Author: Viresh Kumar Date: Mon Jul 6 16:41:57 2015 +0530 MIPS: cevt-gt641xx: Migrate to new 'set-state' interface Migrate cevt-gt641xx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10604/ Signed-off-by: Ralf Baechle arch/mips/kernel/cevt-gt641xx.c | 57 ++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 18 deletions(-) commit 9f95618f9fe5fc902a3d8fecd10c98e482fab6c5 Author: Viresh Kumar Date: Mon Jul 6 16:41:56 2015 +0530 MIPS: cevt-ds1287: Migrate to new 'set-state' interface Migrate cevt-ds1287 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10603/ Signed-off-by: Ralf Baechle arch/mips/kernel/cevt-ds1287.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) commit 1edf907a09e1cad9032411d84679b637ab696593 Author: Viresh Kumar Date: Mon Jul 6 16:41:55 2015 +0530 MIPS: cevt-bcm1480: Migrate to new 'set-state' interface Migrate cevt-bcm1480 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Read operation on R_SCD_TIMER_CFG and R_SCD_TIMER_INIT registers isn't performed now for many modes as there returned values aren't used. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10602/ Signed-off-by: Ralf Baechle arch/mips/kernel/cevt-bcm1480.c | 44 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit c87cbe06916868e1b14a0681e874b96cfab61083 Author: Viresh Kumar Date: Mon Jul 6 16:41:54 2015 +0530 MIPS: jz4740: Migrate to new 'set-state' interface Migrate jz4740 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Cc: Paul Burton Cc: Deng-Cheng Zhu Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10601/ Signed-off-by: Ralf Baechle arch/mips/jz4740/time.c | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) commit 20a7835f8f3666eaaec599f8f9f1628c4e7e88dd Author: Viresh Kumar Date: Mon Jul 6 16:41:53 2015 +0530 MIPS: Jazz: Migrate to new 'set-state' interface Migrate jazz driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Signed-off-by: Viresh Kumar Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10600/ Signed-off-by: Ralf Baechle arch/mips/jazz/irq.c | 7 ------- 1 file changed, 7 deletions(-) commit 3dcd7779ac4dada4a2c97e19a9ac3593891d89a0 Author: Viresh Kumar Date: Mon Jul 6 16:41:52 2015 +0530 MIPS: Alchemy: Migrate to new 'set-state' interface Migrate alchemy driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Signed-off-by: Viresh Kumar Cc: Manuel Lauss Cc: Daniel Lezcano Cc: linux-mips@linux-mips.org Cc: linaro-kernel@lists.linaro.org Cc: Thomas Gleixner Patchwork: https://patchwork.linux-mips.org/patch/10599/ Signed-off-by: Ralf Baechle arch/mips/alchemy/common/time.c | 6 ------ 1 file changed, 6 deletions(-) commit f17c4ca33601f03f4b5f598f085ee356358932b7 Author: Ralf Baechle Date: Thu Jul 23 12:02:09 2015 +0200 MIPS: Kconfig: Separate 32BIT and 64BIT config block by blank line. Signed-off-by: Ralf Baechle arch/mips/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 1249ed3540809d30d1fe42c94276a9db2845d173 Author: Ralf Baechle Date: Mon Jul 20 09:10:20 2015 +0200 MIPS: math-emu: Move from deprecated __initcall to arch_initcall. Signed-off-by: Ralf Baechle arch/mips/math-emu/me-debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bab0b627f6d9cd5af08f6be81288883d3b1aa9c Author: Ralf Baechle Date: Mon Jul 20 09:09:40 2015 +0200 MIPS: Lasat: Move from deprecated __initcall to arch_initcall. Signed-off-by: Ralf Baechle arch/mips/lasat/sysctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8d6b591ce9b2706403b4c79d72c4483a7fbeda54 Author: Ralf Baechle Date: Mon Jul 20 09:04:41 2015 +0200 MIPS: unaligned: Move from deprecated __initcall to arch_initcall. Signed-off-by: Ralf Baechle arch/mips/kernel/unaligned.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 486fcde40d8f903dbd460fb0b5a35423528032e3 Author: Ralf Baechle Date: Mon Jul 20 08:58:20 2015 +0200 MIPS: Sibyte: Move bus watcher from deprecated __initcall to device_initcall Signed-off-by: Ralf Baechle arch/mips/sibyte/common/bus_watcher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bae637a2148c97882a1bbfdac08d7a5f4441cdb3 Author: James Hogan Date: Wed Jul 15 16:17:47 2015 +0100 MIPS: Rearrange ENTRYLO field definitions The generic field definitions (i.e. present before MIPS32/MIPS64) in mipsregs.h are conventionally not prefixed with MIPS_, so rename the recently added MIPS_ENTRYLO_* definitions for the G, V, D, and C fields to ENTRYLO_*. Also rearrange to put the EntryLo and EntryHi definitions in the right place in the file. Fixes: 8ab6abcb6aa4 ("MIPS: mipsregs.h: Add EntryLo bit definitions") Reported-by: Maciej W. Rozycki Signed-off-by: James Hogan Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10725/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mipsregs.h | 52 +++++++++++++++++++++------------------- arch/mips/lib/dump_tlb.c | 18 +++++++------- 2 files changed, 36 insertions(+), 34 deletions(-) commit 9bd860cae3c46a83371ce899ae0d665b6e253687 Author: James Hogan Date: Wed Jul 15 16:17:46 2015 +0100 MIPS: dump_tlb: Dump FrameMask register if exists The FrameMask register is relevant to the TLB so it should be dumped by dump_tlb_regs(), however it is only present in certain cores (r10000, r12000, r14000, r16000). Add dumping of it, conditional upon current_cpu_type(). Suggested-by: Joshua Kinard Suggested-by: Maciej W. Rozycki Signed-off-by: James Hogan Cc: Joshua Kinard Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10724/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5d3c3c7d296d9622560558de96875cf694d96f58 Author: James Hogan Date: Wed Jul 15 16:17:45 2015 +0100 MIPS: dump_tlb: Only dump PageGrain if interesting The PageGrain register may not exist if certain architectural features aren't present, therefore only print out its value when dumping the TLB registers if it is expected to contain fields relevant to the TLB. Fixes: d1e9a4f54735 ("MIPS: Add SysRq operation to dump TLBs on all CPUs") Reported-by: Joshua Kinard Reported-by: Maciej W. Rozycki Signed-off-by: James Hogan Cc: Joshua Kinard Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10723/ Signed-off-by: Ralf Baechle arch/mips/lib/dump_tlb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit aaa7be48fdbf14836ff1bc61c72969960a5923c6 Author: James Hogan Date: Wed Jul 15 16:17:44 2015 +0100 MIPS: Probe for small (1KiB) page support Probe Config3 for small page support. This will be useful to give clues as to whether the PageGrain register exists. Signed-off-by: James Hogan Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10722/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cpu-features.h | 4 ++++ arch/mips/include/asm/cpu.h | 1 + arch/mips/kernel/cpu-probe.c | 2 ++ 3 files changed, 7 insertions(+) commit 3c865dd9c1d64046877112451f13db2cb46d4d28 Author: James Hogan Date: Wed Jul 15 16:17:43 2015 +0100 MIPS: Refactor dumping of TLB registers for r3k/r4k The TLB registers are dumped in a couble of places: - sysrq_tlbdump_single() - when dumping TLB state. - do_mcheck() - in response to a machine check error. The main TLB registers also differ between r3k and r4k, but r4k appears to be assumed. Refactor this code into a dump_tlb_regs() function, implemented for both r3k and r4k, and used by both of the above functions. Fixes: d1e9a4f54735 ("MIPS: Add SysRq operation to dump TLBs on all CPUs") Suggested-by: Maciej W. Rozycki Signed-off-by: James Hogan Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10721/ Signed-off-by: Ralf Baechle arch/mips/include/asm/tlbdebug.h | 1 + arch/mips/kernel/sysrq.c | 14 +------------- arch/mips/kernel/traps.c | 16 ++-------------- arch/mips/lib/dump_tlb.c | 18 ++++++++++++++++++ arch/mips/lib/r3k_dump_tlb.c | 11 +++++++++++ arch/mips/mm/tlb-r3k.c | 2 +- 6 files changed, 34 insertions(+), 28 deletions(-) commit 0f6ce77538c3f0628acdeee30738e4c8fe08d7e2 Author: James Hogan Date: Wed Jul 15 16:17:42 2015 +0100 Documentation/sysrq.txt: Mention MIPS TLB dump (x) Commit d1e9a4f54735 ("MIPS: Add SysRq operation to dump TLBs on all CPUs") added the 'x' sysrq key for dumping MIPS TLB entries, but didn't document it in Documentation/sysrq.txt. Add mention of the MIPS use of the 'x' SysRq key. Reported-by: Maciej W. Rozycki Signed-off-by: James Hogan Acked-by: Jonathan Corbet Cc: Maciej W. Rozycki Cc: linux-mips@linux-mips.org Cc: linux-doc@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10720/ Signed-off-by: Ralf Baechle Documentation/sysrq.txt | 1 + 1 file changed, 1 insertion(+) commit c909ca718e8f50cf484ef06a8dd935e738e8e53d Author: Markos Chandras Date: Fri Jul 17 10:38:32 2015 +0100 MIPS: math-emu: Emulate missing BC1{EQ,NE}Z instructions Commit c8a34581ec09 ("MIPS: Emulate the BC1{EQ,NE}Z FPU instructions") added support for emulating the new R6 BC1{EQ,NE}Z branches but it missed the case where the instruction that caused the exception was not on a DS. Signed-off-by: Markos Chandras Fixes: c8a34581ec09 ("MIPS: Emulate the BC1{EQ,NE}Z FPU instructions") Cc: # 4.0+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10738/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit e8f80cc1a6d80587136b015e989a12827e1fcfe5 Author: Markos Chandras Date: Fri Jul 17 10:36:03 2015 +0100 MIPS: math-emu: Allow m{f,t}hc emulation on MIPS R6 The mfhc/mthc instructions are supported on MIPS R6 so emulate them if needed. Signed-off-by: Markos Chandras Cc: # 4.0+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10737/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 166457436e38175e1d9891f98d9d6edbee100f32 Author: Markos Chandras Date: Thu Jul 16 16:43:33 2015 +0100 MIPS: math-emu: Fix indentation Fix indentation for the final 'else' blocks. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10735/ Signed-off-by: Ralf Baechle arch/mips/math-emu/ieee754int.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bbdd8147b1b9efb7268a7cad31e148d794363abe Author: Markos Chandras Date: Thu Jul 16 14:06:45 2015 +0100 MIPS: cp1emu: Fix closing bracket for the d_fmt case The double format (d_fmt) case uses an opening bracket which then closes at the end of the word format (w_fmt). This can be rather confusing so add the closing bracket at the end of the d_fmt case and use another one for the w_fmt one. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10733/ Signed-off-by: Ralf Baechle arch/mips/math-emu/cp1emu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 674d10e26dd4c1a1b9161e9dcce0667d1c5dd318 Author: Markos Chandras Date: Thu Jul 16 13:24:46 2015 +0100 MIPS: Kconfig: Drop the EXPERIMENTAL tag from MIPS R6 The MIPS R6 ISA support has been part of mainline since v4.0 and it should be in a good shape nowadays so it is not an experimental feature anymore. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10731/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c46a2f01fb2bea6ae7e4e3f3f2aad65d8eda837d Author: Ralf Baechle Date: Wed Jul 15 11:48:15 2015 +0200 MIPS: Treat CP1 control registers as unsigned ints. These are bitfields and treating them as signed values doesn't make any sense. Signed-off-by: Ralf Baechle Reported-by: Chris Packham arch/mips/include/asm/mipsregs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82eb8f7342cf722a8bf3d42e9982f56bff166b85 Author: Chris Packham Date: Wed Jul 15 10:44:30 2015 +1200 MIPS: Use unsigned int when reading CP0 registers Update __read_32bit_c0_register() and __read_32bit_c0_ctrl_register() to use "unsigned int res;" instead of "int res;". There is little reason to treat these register values as signed. They are either counters (which by definition are unsigned) or are made up of various bit fields to be interpreted as per the CPU datasheet. This has come up via u-boot[1] which sync's asm/mipsregs.h with the kernel. In u-boots case the value read from read_c0_count() is assigned to an unsigned long [2] which triggers a sign extension and causes a bug. U-boot should probably be more explicit about the types used for the timer_read_counter() API but that aside is there any reason to treat these values as signed integers? A quick grep around the arch/mips makes me thing that there may be some bugs lurking when read_c0_count() starts to yield a negative value but I haven't really explored any of them. [1] - http://lists.denx.de/pipermail/u-boot/2015-July/219086.html [2] - http://git.denx.de/?p=u-boot.git;a=blob;f=arch/mips/cpu/time.c#l11 Signed-off-by: Chris Packham Cc: linux-mips@linux-mips.org Cc: Daniel Schwierzeck Cc: Chris Packham Cc: Steven J. Hill Cc: Maciej W. Rozycki Cc: linux-kernel@vger.kernel.org Cc: James Hogan Cc: Markos Chandras Cc: Paul Burton Patchwork: https://patchwork.linux-mips.org/patch/10718/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mipsregs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 570e5d26ff2e970e018343675bc64302420221d8 Author: Paul Burton Date: Fri Jul 10 16:52:39 2015 +0100 MIPS: malta: Use generic platform_maar_init The default implementation of platform_maar_init is sufficient for Malta boards where we want to allow speculation in the regions of memory corresponding to DDR & disallow it elsewhere. Drop the custom implementation such that the default is used, reducing the duplication of information provided by the Malta platform code. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: James Hogan Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10677/ Signed-off-by: Ralf Baechle arch/mips/mti-malta/malta-memory.c | 25 ------------------------- 1 file changed, 25 deletions(-) commit cbd95a89996d1b5fadf411e9218c64e713a83099 Author: Paul Burton Date: Fri Jul 10 16:52:38 2015 +0100 MIPS: mm: default platform_maar_init using bootmem data Introduce a default weak implementation of platform_maar_init which makes use of the data that platforms already provide to the bootmem allocator. This should hopefully cover the most common configurations, reduce the duplication of information provided by platforms & leaves platforms with the option of providing a custom implementation if required. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Paolo Bonzini Cc: Steven J. Hill Cc: linux-kernel@vger.kernel.org Cc: Ard Biesheuvel Patchwork: https://patchwork.linux-mips.org/patch/10676/ Signed-off-by: Ralf Baechle arch/mips/mm/init.c | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) commit e4aa1f153add29343eeb8b3bf0f64e7c6fc7e697 Author: Leonid Yegoshin Date: Mon Jun 22 12:21:00 2015 +0100 MIPS: MSA unaligned memory access support The MSA architecture specification allows for hardware to not implement unaligned vector memory accesses in some or all cases. A typical example of this is the I6400 core which does not implement unaligned vector memory access when the memory crosses a page boundary. The architecture also requires that such memory accesses complete successfully as far as userland is concerned, so the kernel is required to emulate them. This patch implements support for emulating unaligned MSA ld & st instructions by copying between the user memory & the tasks FP context in struct thread_struct, updating hardware registers from there as appropriate in order to avoid saving & restoring the entire vector context for each unaligned memory access. Tested both using an I6400 CPU and with a QEMU build hacked to produce AdEL exceptions for unaligned vector memory accesses. [paul.burton@imgtec.com: - Remove #ifdef's - Move msa_op into enum major_op rather than #define - Replace msa_{to,from}_wd with {read,write}_msa_wr_{b,h,w,l} and the format-agnostic wrappers, removing the custom endian mangling for big endian systems. - Restructure the msa_op case in emulate_load_store_insn to share more code between the load & store cases. - Avoid the need for a temporary union fpureg on the stack by simply reusing the already suitably aligned context in struct thread_struct. - Use sizeof(*fpr) rather than hardcoding 16 as the size for user memory checks & copies. - Stop recalculating the address of the unaligned vector memory access and rely upon the value read from BadVAddr as we do for other unaligned memory access instructions. - Drop the now unused val8 & val16 fields in union fpureg. - Rewrite commit message. - General formatting cleanups.] Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Leonid Yegoshin Cc: Huacai Chen Cc: Maciej W. Rozycki Cc: linux-kernel@vger.kernel.org Cc: Jie Chen Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10573/ Signed-off-by: Ralf Baechle arch/mips/kernel/unaligned.c | 72 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit 6b35e11442db48638c9e9f2ff19f706484a73abe Author: Paul Burton Date: Mon Jun 22 12:20:59 2015 +0100 MIPS: Introduce accessors for MSA vector registers Introduce accessor functions allowing the kernel to access arbitrary vector registers using an arbitrary data format. The accessors are implemented in assembly, using macros to avoid massive duplication, in order to make use of the existing support for MSA with & without toolchain support. The accessors will be used in a later patch. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Leonid Yegoshin Cc: linux-kernel@vger.kernel.org Cc: James Hogan Cc: Markos Chandras Cc: Manuel Lauss Patchwork: https://patchwork.linux-mips.org/patch/10572/ Signed-off-by: Ralf Baechle arch/mips/include/asm/asmmacro.h | 114 +++++++++++++++++++++++++++++++++++++++ arch/mips/include/asm/msa.h | 80 +++++++++++++++++++++++++++ arch/mips/kernel/r4k_fpu.S | 67 +++++++++++++++++++++++ 3 files changed, 261 insertions(+) commit 6701ca2df4e22fb130330800b6cde687cb761637 Author: Leonid Yegoshin Date: Mon Jun 22 12:20:58 2015 +0100 MIPS: Declare MSA MI10 instruction formats Declare a struct describing the MSA MI10 instruction format used for ld & st instructions, for use by subsequent patches. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Leonid Yegoshin Cc: Steven J. Hill Cc: linux-kernel@vger.kernel.org Cc: Markos Chandras Patchwork: https://patchwork.linux-mips.org/patch/10571/ Signed-off-by: Ralf Baechle arch/mips/include/uapi/asm/inst.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit b620c9720a0e18bc2067c65ad3b9020e813372eb Author: Bjorn Helgaas Date: Sun Jul 12 18:12:03 2015 -0500 MIPS: Remove "__weak" definition from arch-specific linkage.h "__weak" is defined in include/linux/compiler-gcc.h. We shouldn't need an arch-specific definition. Remove the "__weak" definition from arch/mips/include/asm/linkage.h. Signed-off-by: Bjorn Helgaas Reviewed-by: James Hogan Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10689/ Signed-off-by: Ralf Baechle arch/mips/include/asm/linkage.h | 1 - 1 file changed, 1 deletion(-) commit e1d97497309867cdc1064ed6b10953abd1740b05 Author: Bjorn Helgaas Date: Sun Jul 12 18:11:54 2015 -0500 MIPS: Remove "weak" from mips_cdmm_phys_base() declaration Weak header file declarations are error-prone because they make every definition weak, and the linker chooses one based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node decl")). mips_cdmm_phys_base() is defined only in arch/mips/mti-malta/malta-memory.c so there's no problem with multiple definitions. But it works better to have a weak default implementation and allow a strong function to override it. Then we don't have to test whether a definition is present, and if there are ever multiple strong definitions, we get a link error instead of calling a random definition. Add a weak mips_cdmm_phys_base() definition and remove the weak annotation from the declaration in arch/mips/include/asm/cdmm.h. Signed-off-by: Bjorn Helgaas Reviewed-by: James Hogan Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10688/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cdmm.h | 4 ++-- drivers/bus/mips_cdmm.c | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) commit 770847bad0200b62af2d93808b4e69d82f14264e Author: Bjorn Helgaas Date: Sun Jul 12 18:11:46 2015 -0500 MIPS: Remove "weak" from get_c0_fdc_int() declaration Weak header file declarations are error-prone because they make every definition weak, and the linker chooses one based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node decl")). The most elegant solution is to have a weak default implementation and allow a strong function to override it. Then we don't have to test whether a definition is present, and if there are ever multiple strong definitions, we get a link error instead of calling a random definition. Add a weak get_c0_fdc_int() definition with the default code and remove the weak annotation from the declaration. Signed-off-by: Bjorn Helgaas Reviewed-by: James Hogan Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10687/ Signed-off-by: Ralf Baechle arch/mips/include/asm/irq.h | 2 +- drivers/tty/mips_ejtag_fdc.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) commit ec0b9d35d1fbf7e3a3eccc662ad641794d3685a5 Author: Bjorn Helgaas Date: Sun Jul 12 18:11:38 2015 -0500 MIPS: Remove "weak" from get_c0_compare_int() declaration Weak header file declarations are error-prone because they make every definition weak, and the linker chooses one based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node decl")). get_c0_compare_int() is defined in several files. Each definition is weak, so I assume Kconfig prevents two or more from being included. The caller contains default code used when get_c0_compare_int() isn't defined at all. Add a weak get_c0_compare_int() definition with the default code and remove the weak annotation from the declaration. Then the platform implementations will be strong and will override the weak default. If multiple platforms are ever configured in, we'll get a link error instead of calling a random platform's implementation. Signed-off-by: Bjorn Helgaas Reviewed-by: James Hogan Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10686/ Signed-off-by: Ralf Baechle arch/mips/include/asm/time.h | 2 +- arch/mips/kernel/cevt-r4k.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) commit 5a73882fd2c3a86b502d54da532d373a1f2db15e Author: York Sun Date: Wed Sep 2 11:40:46 2015 -0500 i2c: mux: reg Change ioread endianness for readback Reading the register (if allowed) after writing is to ensure writing is completed on a posted bus. The endianness of reading doesn't matter. Signed-off-by: York Sun Signed-off-by: Wolfram Sang drivers/i2c/muxes/i2c-mux-reg.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit a05a34e7f6ff4a942186e99932885b10c6bc1d1a Author: Mike Rapoport Date: Wed Sep 2 11:03:41 2015 +0300 i2c: mux: reg: fix compilation warnings With CONFIG_OF=n, the following warnings occur when compiling drivers/i2c/muxes/i2c-mux-reg.c: CC drivers/i2c/muxes/i2c-mux-reg.o drivers/i2c/muxes/i2c-mux-reg.c:170:13: warning: ‘struct gpiomux’ declared inside parameter list [enabled by default] struct platform_device *pdev) ^ drivers/i2c/muxes/i2c-mux-reg.c:170:13: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] drivers/i2c/muxes/i2c-mux-reg.c: In function ‘i2c_mux_reg_probe’: drivers/i2c/muxes/i2c-mux-reg.c:201:3: warning: passing argument 1 of ‘i2c_mux_reg_probe_dt’ from incompatible pointer type [enabled by default] ret = i2c_mux_reg_probe_dt(mux, pdev); ^ Signed-off-by: Mike Rapoport Signed-off-by: Wolfram Sang drivers/i2c/muxes/i2c-mux-reg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fce388afd633cdf20844e17f47b0d97c7ee06e69 Author: Wolfram Sang Date: Thu Aug 20 23:40:46 2015 +0200 i2c: mux: reg: simplify register size checking Checking was done at three different locations, just do it once and properly at probing time. Signed-off-by: Wolfram Sang Tested-by: York Sun drivers/i2c/muxes/i2c-mux-reg.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit b9c93646fd5cb669d096fec5ad25a01f04cfde27 Author: Kishon Vijay Abraham I Date: Thu Sep 3 12:20:37 2015 +0530 regulator: pbias: program pbias register offset in pbias driver Add separate compatible strings for every platform and populate the pbias register offset in the driver data. This helps avoid depending on the dt for pbias register offset. Also update the dt binding documentation for the new compatible strings. Suggested-by: Tony Lindgren Signed-off-by: Kishon Vijay Abraham I Acked-by: Tony Lindgren Signed-off-by: Mark Brown .../bindings/regulator/pbias-regulator.txt | 7 ++- drivers/regulator/pbias-regulator.c | 56 +++++++++++++++++++--- 2 files changed, 56 insertions(+), 7 deletions(-) commit f35f3a48d6ee810557b58e6b7d933438999401b6 Author: Thomas Huth Date: Wed Sep 2 11:14:48 2015 +0200 KVM: PPC: Book3S: Fix size of the PSPB register The size of the Problem State Priority Boost Register is only 32 bits, but the kvm_vcpu_arch->pspb variable is declared as "ulong", ie. 64-bit. However, the assembler code accesses this variable with 32-bit accesses, and the KVM_REG_PPC_PSPB macro is defined with SIZE_U32, too, so that the current code is broken on big endian hosts: kvmppc_get_one_reg_hv() will only return zero for this register since it is using the wrong half of the pspb variable. Let's fix this problem by adjusting the size of the pspb field in the kvm_vcpu_arch structure. Signed-off-by: Thomas Huth Signed-off-by: Paul Mackerras arch/powerpc/include/asm/kvm_host.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 06554d9f6cc8f0b5ec903db19726a15dfc7b09d6 Author: Gautham R. Shenoy Date: Fri Aug 7 17:41:20 2015 +0530 KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set The code that handles the case when we receive a H_DOORBELL interrupt has a comment which says "Hypervisor doorbell - exit only if host IPI flag set". However, the current code does not actually check if the host IPI flag is set. This is due to a comparison instruction that got missed. As a result, the current code performs the exit to host only if some sibling thread or a sibling sub-core is exiting to the host. This implies that, an IPI sent to a sibling core in (subcores-per-core != 1) mode will be missed by the host unless the sibling core is on the exit path to the host. This patch adds the missing comparison operation which will ensure that when HOST_IPI flag is set, we unconditionally exit to the host. Fixes: 66feed61cdf6 Cc: stable@vger.kernel.org # v4.1+ Signed-off-by: Gautham R. Shenoy Reviewed-by: David Gibson Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv_rmhandlers.S | 1 + 1 file changed, 1 insertion(+) commit 7f23532866f931be626e69ff55caf39e54516047 Author: Gautham R. Shenoy Date: Wed Sep 2 21:48:58 2015 +0530 KVM: PPC: Book3S HV: Fix race in starting secondary threads The current dynamic micro-threading code has a race due to which a secondary thread naps when it is supposed to be running a vcpu. As a side effect of this, on a guest exit, the primary thread in kvmppc_wait_for_nap() finds that this secondary thread hasn't cleared its vcore pointer. This results in "CPU X seems to be stuck!" warnings. The race is possible since the primary thread on exiting the guests only waits for all the secondaries to clear its vcore pointer. It subsequently expects the secondary threads to enter nap while it unsplits the core. A secondary thread which hasn't yet entered the nap will loop in kvm_no_guest until its vcore pointer and the do_nap flag are unset. Once the core has been unsplit, a new vcpu thread can grab the core and set the do_nap flag *before* setting the vcore pointers of the secondary. As a result, the secondary thread will now enter nap via kvm_unsplit_nap instead of running the guest vcpu. Fix this by setting the do_nap flag after setting the vcore pointer in the PACA of the secondary in kvmppc_run_core. Also, ensure that a secondary thread doesn't nap in kvm_unsplit_nap when the vcore pointer in its PACA struct is set. Fixes: b4deba5c41e9 Signed-off-by: Gautham R. Shenoy Reviewed-by: David Gibson Signed-off-by: Paul Mackerras arch/powerpc/kvm/book3s_hv.c | 10 +++++++++- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) commit abceaa9cded5f059f8c3b3b6f32730084fe5e39f Author: Xunlei Pang Date: Mon Aug 31 11:34:05 2015 +0800 cpuidle/coupled: Add sanity check for safe_state_index Since we are using cpuidle_driver::safe_state_index directly as the target state index, it is better to add the sanity check at the point of registering the driver. Signed-off-by: Xunlei Pang Signed-off-by: Rafael J. Wysocki drivers/cpuidle/coupled.c | 22 ++++++++++++++++++++++ drivers/cpuidle/cpuidle.h | 6 ++++++ drivers/cpuidle/driver.c | 4 ++++ 3 files changed, 32 insertions(+) commit 29e47e2173349ee06bd339f7753821c720d50923 Author: Ulf Hansson Date: Wed Sep 2 10:16:13 2015 +0200 PM / Domains: Try power off masters in error path of __pm_genpd_poweron() While powering up a genpd, its domain masters are first being powered up. In the error path of __pm_genpd_poweron(), we didn't care to try power off these domain masters. Let's deal with that to avoid leaving unused PM domains powered. Signed-off-by: Ulf Hansson Reviewed-by: Krzysztof Kozlowski Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit a2022001cebd0825b96aa0f3345ea3ad44ae79d4 Author: Viresh Kumar Date: Wed Sep 2 14:36:50 2015 +0530 cpufreq: dt: Tolerance applies on both sides of target voltage Tolerance applies on both sides of the target voltage, i.e. both min and max sides. But while checking if a voltage is supported by the regulator or not, we haven't taken care of tolerance on the lower side. Fix that. Cc: Lucas Stach Fixes: 045ee45c4ff2 ("cpufreq: cpufreq-dt: disable unsupported OPPs") Signed-off-by: Viresh Kumar Reviewed-by: Lucas Stach Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8bc862843901e282e58f5ecd66f1df24366ecb6b Author: Viresh Kumar Date: Wed Sep 2 14:36:49 2015 +0530 cpufreq: dt: Print error on failing to mark OPPs as shared We need to explicitly mark OPPs as shared, when they are not defined with OPP-v2 bindings. This operation can potentially fail, and in that case we should at least print an error message. Fixes: 2e02d8723edf ("cpufreq: dt: Add support for operating-points-v2 bindings") Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7d5d0c8ba369cbfb68eec6912f35197d82214668 Author: Viresh Kumar Date: Wed Sep 2 14:36:48 2015 +0530 cpufreq: dt: Check OPP count before marking them shared We need to explicitly mark OPPs as shared, when they are not defined with OPP-v2 bindings. But this isn't required to be done if we failed to initialize OPP table. Reorder code to verify OPP count before marking them shared. Fixes: 2e02d8723edf ("cpufreq: dt: Add support for operating-points-v2 bindings") Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 0ed537b5fd18c38b526fd0e6837a00f96aee30c4 Merge: 72e624d 50a3cb0 Author: Rafael J. Wysocki Date: Thu Sep 3 02:46:01 2015 +0200 Merge branch 'pm-opp' into pm-cpufreq commit 21dd33b09c61597df603c654589adffd7955491a Author: Lina Iyer Date: Wed Sep 2 16:18:57 2015 -0600 kernel/cpu_pm: fix cpu_cluster_pm_exit comment cpu_cluster_pm_exit() must be sent after cpu_cluster_pm_enter() has been sent for the cluster and before any cpu_pm_exit() notifications are sent for any CPU. Cc: Nicolas Pitre Acked-by: Kevin Hilman Signed-off-by: Lina Iyer Signed-off-by: Rafael J. Wysocki kernel/cpu_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac0e137ab0da80e8fc0db2027598e2f7f82a5a02 Author: Guenter Roeck Date: Mon Aug 31 20:27:32 2015 -0700 clk: h8s2678: Fix compile error Recent cleanup removed some include files without checking if the cleaned up code still compiles. This results in the following compile error. drivers/clk/h8300/clk-h8s2678.c: In function ‘h8s2678_pll_clk_setup’: drivers/clk/h8300/clk-h8s2678.c:99:14: error: implicit declaration of function ‘kzalloc’ drivers/clk/h8300/clk-h8s2678.c:138:2: error: implicit declaration of function ‘kfree’ Cc: Yoshinori Sato Signed-off-by: Guenter Roeck Signed-off-by: Stephen Boyd drivers/clk/h8300/clk-h8s2678.c | 1 + 1 file changed, 1 insertion(+) commit 1e1a4e8f439113b7820bc7150569f685e1cc2b43 Merge: d975f30 cc7da0b Author: Linus Torvalds Date: Wed Sep 2 16:35:26 2015 -0700 Merge tag 'dm-4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper update from Mike Snitzer: - a couple small cleanups in dm-cache, dm-verity, persistent-data's dm-btree, and DM core. - a 4.1-stable fix for dm-cache that fixes the leaking of deferred bio prison cells - a 4.2-stable fix that adds feature reporting for the dm-stats features added in 4.2 - improve DM-snapshot to not invalidate the on-disk snapshot if snapshot device write overflow occurs; but a write overflow triggered through the origin device will still invalidate the snapshot. - optimize DM-thinp's async discard submission a bit now that late bio splitting has been included in block core. - switch DM-cache's SMQ policy lock from using a mutex to a spinlock; improves performance on very low latency devices (eg. NVMe SSD). - document DM RAID 4/5/6's discard support [ I did not pull the slab changes, which weren't appropriate for this tree, and weren't obviously the right thing to do anyway. At the very least they need some discussion and explanation before getting merged. Because not pulling the actual tagged commit but doing a partial pull instead, this merge commit thus also obviously is missing the git signature from the original tag ] * tag 'dm-4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm cache: fix use after freeing migrations dm cache: small cleanups related to deferred prison cell cleanup dm cache: fix leaking of deferred bio prison cells dm raid: document RAID 4/5/6 discard support dm stats: report precise_timestamps and histogram in @stats_list output dm thin: optimize async discard submission dm snapshot: don't invalidate on-disk image on snapshot write overflow dm: remove unlikely() before IS_ERR() dm: do not override error code returned from dm_get_device() dm: test return value for DM_MAPIO_SUBMITTED dm verity: remove unused mempool dm cache: move wake_waker() from free_migrations() to where it is needed dm btree remove: remove unused function get_nr_entries() dm btree: remove unused "dm_block_t root" parameter in btree_split_sibling() dm cache policy smq: change the mutex to a spinlock commit 2ff46e6fea6254ac8fa97aeb9c14e51436ab95f6 Author: Brian Norris Date: Wed Sep 2 16:34:35 2015 -0700 mtd: spi-nor: fix NULL dereference when no match found in spi_nor_ids[] Commit 06bb6f5a69df ("mtd: spi-nor: stop (ab)using struct spi_device_id") converted an array into a pointer, which means that we should be checking if the pointer goes anywhere, not whether the C string is empty. To do the latter means we dereference a NULL pointer when we reach the terminating entry, for which 'name' is now NULL instead of an array { 0, 0, ... }. Sample crash: [ 1.101371] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 1.109457] pgd = c0004000 [ 1.112157] [00000000] *pgd=00000000 [ 1.115736] Internal error: Oops: 5 [#1] SMP ARM [ 1.120345] Modules linked in: [ 1.123405] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.2.0-next-20150902+ #61 [ 1.130611] Hardware name: Rockchip (Device Tree) [ 1.135306] task: ee0b8d40 ti: ee0ba000 task.ti: ee0ba000 [ 1.140697] PC is at spi_nor_scan+0x90/0x8c4 [ 1.144958] LR is at spi_nor_scan+0xa4/0x8c4 ... [ 1.504112] [] (spi_nor_scan) from [] (m25p_probe+0xc8/0x11c) [ 1.511583] [] (m25p_probe) from [] (spi_drv_probe+0x60/0x7c) [ 1.519055] [] (spi_drv_probe) from [] (driver_probe_device+0x1a0/0x444) [ 1.527478] [] (driver_probe_device) from [] (__device_attach_driver+0x94/0xa0) [ 1.536507] [] (__device_attach_driver) from [] (bus_for_each_drv+0x94/0xa4) [ 1.545277] [] (bus_for_each_drv) from [] (__device_attach+0xa4/0x144) [ 1.553526] [] (__device_attach) from [] (device_initial_probe+0x1c/0x20) [ 1.562035] [] (device_initial_probe) from [] (bus_probe_device+0x38/0x94) [ 1.570631] [] (bus_probe_device) from [] (device_add+0x430/0x558) [ 1.578534] [] (device_add) from [] (spi_add_device+0xe4/0x174) [ 1.586178] [] (spi_add_device) from [] (spi_register_master+0x698/0x7d4) [ 1.594688] [] (spi_register_master) from [] (devm_spi_register_master+0x40/0x7c) [ 1.603892] [] (devm_spi_register_master) from [] (rockchip_spi_probe+0x360/0x3f4) [ 1.613182] [] (rockchip_spi_probe) from [] (platform_drv_probe+0x58/0xa8) [ 1.621779] [] (platform_drv_probe) from [] (driver_probe_device+0x1a0/0x444) [ 1.630635] [] (driver_probe_device) from [] (__driver_attach+0x80/0xa4) [ 1.639058] [] (__driver_attach) from [] (bus_for_each_dev+0x98/0xac) [ 1.647221] [] (bus_for_each_dev) from [] (driver_attach+0x28/0x30) [ 1.655210] [] (driver_attach) from [] (bus_add_driver+0x128/0x250) [ 1.663200] [] (bus_add_driver) from [] (driver_register+0xac/0xf0) [ 1.671191] [] (driver_register) from [] (__platform_driver_register+0x58/0x6c) [ 1.680221] [] (__platform_driver_register) from [] (rockchip_spi_driver_init+0x18/0x20) [ 1.690033] [] (rockchip_spi_driver_init) from [] (do_one_initcall+0x124/0x1dc) [ 1.699063] [] (do_one_initcall) from [] (kernel_init_freeable+0x218/0x2ec) [ 1.707748] [] (kernel_init_freeable) from [] (kernel_init+0x1c/0xf4) [ 1.715912] [] (kernel_init) from [] (ret_from_fork+0x14/0x24) [ 1.723460] Code: e3510000 159f67c0 0a00000c e5961000 (e5d13000) [ 1.729564] ---[ end trace 95baa6b3b861ce25 ]--- Fixes: 06bb6f5a69df ("mtd: spi-nor: stop (ab)using struct spi_device_id") Signed-off-by: Brian Norris Cc: Rafał Miłecki drivers/mtd/spi-nor/spi-nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62da98656b62a5ca57f22263705175af8ded5aa1 Author: Daniel Borkmann Date: Thu Sep 3 01:26:07 2015 +0200 netfilter: nf_conntrack: make nf_ct_zone_dflt built-in Fengguang reported, that some randconfig generated the following linker issue with nf_ct_zone_dflt object involved: [...] CC init/version.o LD init/built-in.o net/built-in.o: In function `ipv4_conntrack_defrag': nf_defrag_ipv4.c:(.text+0x93e95): undefined reference to `nf_ct_zone_dflt' net/built-in.o: In function `ipv6_defrag': nf_defrag_ipv6_hooks.c:(.text+0xe3ffe): undefined reference to `nf_ct_zone_dflt' make: *** [vmlinux] Error 1 Given that configurations exist where we have a built-in part, which is accessing nf_ct_zone_dflt such as the two handlers nf_ct_defrag_user() and nf_ct6_defrag_user(), and a part that configures nf_conntrack as a module, we must move nf_ct_zone_dflt into a fixed, guaranteed built-in area when netfilter is configured in general. Therefore, split the more generic parts into a common header under include/linux/netfilter/ and move nf_ct_zone_dflt into the built-in section that already holds parts related to CONFIG_NF_CONNTRACK in the netfilter core. This fixes the issue on my side. Fixes: 308ac9143ee2 ("netfilter: nf_conntrack: push zone object into functions") Reported-by: Fengguang Wu Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller include/linux/netfilter.h | 2 ++ .../linux/netfilter/nf_conntrack_zones_common.h | 23 ++++++++++++++++++++++ include/net/netfilter/nf_conntrack_zones.h | 19 +----------------- net/netfilter/core.c | 6 ++++++ net/netfilter/nf_conntrack_core.c | 7 ------- 5 files changed, 32 insertions(+), 25 deletions(-) commit a82b0e63917f597c546cd479acc938e08ac54f2d Author: Daniel Borkmann Date: Wed Sep 2 20:54:02 2015 +0200 netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled While testing various Kconfig options on another issue, I found that the following one triggers as well on allmodconfig and nf_conntrack disabled: net/ipv4/netfilter/nf_dup_ipv4.c: In function ‘nf_dup_ipv4’: net/ipv4/netfilter/nf_dup_ipv4.c:72:20: error: ‘nf_skb_duplicated’ undeclared (first use in this function) if (this_cpu_read(nf_skb_duplicated)) [...] net/ipv6/netfilter/nf_dup_ipv6.c: In function ‘nf_dup_ipv6’: net/ipv6/netfilter/nf_dup_ipv6.c:66:20: error: ‘nf_skb_duplicated’ undeclared (first use in this function) if (this_cpu_read(nf_skb_duplicated)) Fix it by including directly the header where it is defined. Fixes: bbde9fc1824a ("netfilter: factor out packet duplication for IPv4/IPv6") Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller net/ipv4/netfilter/nf_dup_ipv4.c | 1 + net/ipv6/netfilter/nf_dup_ipv6.c | 1 + 2 files changed, 2 insertions(+) commit ed63f1dcd5788d36f942fbcce350742385e3e18c Author: Russell King Date: Wed Sep 2 17:24:14 2015 +0800 net: fec: clear receive interrupts before processing a packet The patch just to re-submit the patch "db3421c114cfa6326" because the patch "4d494cdc92b3b9a0" remove the change. Clear any pending receive interrupt before we process a pending packet. This helps to avoid any spurious interrupts being raised after we have fully cleaned the receive ring, while still allowing an interrupt to be raised if we receive another packet. The position of this is critical: we must do this prior to reading the next packet status to avoid potentially dropping an interrupt when a packet is still pending. Acked-by: Fugang Duan Signed-off-by: Russell King Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 1 + 1 file changed, 1 insertion(+) commit 5fdb7e1b976dc9d18aff8c711e51d17c4c324a0e Author: Matias Bjørling Date: Mon Aug 31 14:17:31 2015 +0200 null_blk: fix wrong capacity when bs is not 512 bytes set_capacity() sets device's capacity using 512 bytes sectors. null_blk calculates the number of sectors by size / bs, which set_capacity is called with. This led to null_blk exposing the wrong number of sectors when bs is not 512 bytes. Signed-off-by: Matias Bjørling Reviewed-by: Ross Zwisler Signed-off-by: Jens Axboe drivers/block/null_blk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit de65d2d26f81f7f84c7258b3a137f20e8fa5bb6a Author: Matias Bjørling Date: Mon Aug 31 14:17:18 2015 +0200 null_blk: fix memory leak on cleanup Driver was not freeing the memory allocated for internal nullb queues. This patch frees the memory during driver unload. Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe drivers/block/null_blk.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 5014c311baa2b21384321fa4a9f617a92e3e56f0 Author: Jens Axboe Date: Wed Sep 2 16:46:02 2015 -0600 block: fix bogus compiler warnings in blk-merge.c The compiler can't figure out that bvprv is initialized whenever 'prev' is set to 1 as well. Use a pointer to bvprv instead, setting it to NULL initially, and get rid of the 'prev' tracking. This dumbs it down enough that gcc is happy. Signed-off-by: Jens Axboe block/blk-merge.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit e41b0bedba0293b9e1e8d1e8ed553104b9693656 Author: Daniel Borkmann Date: Thu Sep 3 00:29:07 2015 +0200 ipv6: fix exthdrs offload registration in out_rt path We previously register IPPROTO_ROUTING offload under inet6_add_offload(), but in error path, we try to unregister it with inet_del_offload(). This doesn't seem correct, it should actually be inet6_del_offload(), also ipv6_exthdrs_offload_exit() from that commit seems rather incorrect (it also uses rthdr_offload twice), but it got removed entirely later on. Fixes: 3336288a9fea ("ipv6: Switch to using new offload infrastructure.") Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller net/ipv6/exthdrs_offload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7cc8c5cde0a5872f5d013f82978b73c011d8f8f1 Author: Trond Myklebust Date: Wed Sep 2 15:22:48 2015 -0700 NFSv4.1/flexfiles: Clean up ff_layout_write_done_cb/ff_layout_commit_done_cb Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit f95c03b2d5fb6d56c0d7ec21970329b49b657fed Author: Trond Myklebust Date: Wed Sep 2 15:15:11 2015 -0700 NFSv4.1/flexfiles: Mark the layout for return in ff_layout_io_track_ds_error() When I/O cannot complete due to a fatal error on the DS, ensure that we invalidate the corresponding layout segment and return it. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit 0f12a27b47284e86eaa4a5ad3877ec3018463178 Author: Joachim Eastwood Date: Fri Aug 14 18:42:32 2015 +0200 mtd: spi-nor: s25sl064p supports both dual and quad I/O This chip can be found on Hitex LPC4350 Evaluation Board. Signed-off-by: Joachim Eastwood Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c1752086796bafaf0c933240642ed1cf21ddab4f Author: Jonas Gorski Date: Wed Aug 26 14:56:53 2015 +0200 mtd: spi-nor: allow dual/quad reads on S25FL129P According to the datasheet[1], both S25FL129P0 (256kB sectors) and S25FL129P1 (64kB sectors) support dual read, quad read, dual i/o read and quad i/o read. I have verified dual read to be working for S25FL129P1 on a dual capable spi controller. Quad as well as S25FL129P0 is untested, lacking hardware to verify. [1] http://www.spansion.com/Support/Datasheets/S25FL129P_00.pdf Signed-off-by: Jonas Gorski Reviewed-by: Marek Vasut Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 092f05c3eccbd616a0cfa21945412a3e82a9fb6c Author: Roger Quadros Date: Fri Aug 21 13:45:35 2015 +0300 mtd: nand: omap2: Rename shippable module to omap2_nand As both omap2 onenand and omap2 nand driver modules are named the same i.e. "omap2.ko", only one of them gets shipped during MODPOST if both are configured as loadable modules. To avoid this ambiguity let's ship the omap2 nand driver as "omap2_nand.ko" Reported by Pierre Neyron via github https://github.com/beagleboard/linux/issues/40 Cc: Robert Nelson Signed-off-by: Roger Quadros Signed-off-by: Brian Norris drivers/mtd/nand/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a1d97ef96e3899ad9d4ec0024f9b4927e0490689 Author: Alexis Ballier Date: Fri Aug 14 19:35:39 2015 +0200 mtd: spi-nor: Add support for sst25wf020a It is a 256KiB flash with 4 KiB erase sectors and 64KiB overlay blocks. This is the one available on Hardkernel's Odroid U3 shield. Signed-off-by: Alexis Ballier [Brian: seems like this does NOT require the usual SST_WRITE hacks] Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) commit 2a06c7b1fd2389aed2a308db8de803603d592444 Author: Mika Westerberg Date: Thu Aug 27 12:52:19 2015 +0300 mtd: spi-nor: Add support for Micron n25q064a serial flash Add Micron (n25q064a) 8MB flash to the list of supported chips. Signed-off-by: Mika Westerberg Reviewed-by: Jagan Teki [Brian: fixup context] Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) commit 53ff6bc37be449f546158a39c528d7814dfb15a1 Author: Adrian Hunter Date: Tue Aug 18 12:07:05 2015 +0300 perf tools: Fix use of wrong event when processing exit events In a couple of cases the 'comm' member of 'union event' has been used instead of the correct member ('fork') when processing exit events. In the cases where it has been used incorrectly, only the 'pid' and 'tid' are affected. The 'pid' value would be correct anyway because it is in the same position in 'comm' and 'fork' events, but the 'tid' would have been incorrectly assigned from 'ppid'. However, for exit events, the kernel puts the current task in the 'ppid' and 'ttid' which is the same as the exiting task. That is 'ppid' == 'pid' and if the task is not multi-threaded, 'pid' == 'tid' i.e. the data goes wrong only when tracing multi-threaded programs. It is hard to find an example of how this would produce an error in practice. There are 3 occurences of the fix: 1. perf script is only affected if !sample_id_all which only happens on old kernels. 2. intel_pt is only affected when decoding without timestamps and would probably still decode correctly - the exit event is only used to flush out data which anyway gets flushed at the end of the session 3. intel_bts also uses the exit event to flush data which would probably not cause errors as it would get flushed at the end of the session instead Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1439888825-27708-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 4 ++-- tools/perf/util/intel-bts.c | 2 +- tools/perf/util/intel-pt.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit d975f309a8b250e67b66eabeb56be6989c783629 Merge: 52b084d f8bcbe6 Author: Linus Torvalds Date: Wed Sep 2 13:22:38 2015 -0700 Merge branch 'for-4.3/sg' of git://git.kernel.dk/linux-block Pull SG updates from Jens Axboe: "This contains a set of scatter-gather related changes/fixes for 4.3: - Add support for limited chaining of sg tables even for architectures that do not set ARCH_HAS_SG_CHAIN. From Christoph. - Add sg chain support to target_rd. From Christoph. - Fixup open coded sg->page_link in crypto/omap-sham. From Christoph. - Fixup open coded crypto ->page_link manipulation. From Dan. - Also from Dan, automated fixup of manual sg_unmark_end() manipulations. - Also from Dan, automated fixup of open coded sg_phys() implementations. - From Robert Jarzmik, addition of an sg table splitting helper that drivers can use" * 'for-4.3/sg' of git://git.kernel.dk/linux-block: lib: scatterlist: add sg splitting function scatterlist: use sg_phys() crypto/omap-sham: remove an open coded access to ->page_link scatterlist: remove open coded sg_unmark_end instances crypto: replace scatterwalk_sg_chain with sg_chain target/rd: always chain S/G list scatterlist: allow limited chaining without ARCH_HAS_SG_CHAIN commit 52b084d31cbc8e90cb6fc1ac4061d9a24375c89d Merge: 1081230 e19b127 Author: Linus Torvalds Date: Wed Sep 2 13:14:58 2015 -0700 Merge branch 'for-4.3/drivers' of git://git.kernel.dk/linux-block Pull block driver updates from Jens Axboe: "On top of the 4.3 core block IO changes, here are the driver related changes for 4.3. Basically just NVMe and nbd this time around: - NVMe: - PRACT PI improvement from Alok Pandey. - Cleanups and improvements on submission queue doorbell and writing, using CMB if available. From Jon Derrick. - From Keith, support for setting queue maximum segments, and reset support. - Also from Jon, fixup of u64 division issue on 32-bit archs and wiring up of the reset support through and ioctl. - Two small cleanups from Matias and Sunad - Various code cleanups and fixes from Markus Pargmann" * 'for-4.3/drivers' of git://git.kernel.dk/linux-block: NVMe: Using PRACT bit to generate and verify PI by controller NVMe:Remove unreachable code in nvme_abort_req NVMe: Add nvme subsystem reset IOCTL NVMe: Add nvme subsystem reset support NVMe: removed unused nn var from nvme_dev_add NVMe: Set queue max segments nbd: flags is a u32 variable nbd: Rename functions for clearness of recv/send path nbd: Change 'disconnect' to be boolean nbd: Add debugfs entries nbd: Remove variable 'pid' nbd: Move clear queue debug message nbd: Remove 'harderror' and propagate error properly nbd: restructure sock_shutdown nbd: sock_shutdown, remove conditional lock nbd: Fix timeout detection nvme: Fixes u64 division which breaks i386 builds NVMe: Use CMB for the IO SQes if available NVMe: Unify SQ entry writing and doorbell ringing commit 1081230b748de8f03f37f80c53dfa89feda9b8de Merge: df91039 2ca495a Author: Linus Torvalds Date: Wed Sep 2 13:10:25 2015 -0700 Merge branch 'for-4.3/core' of git://git.kernel.dk/linux-block Pull core block updates from Jens Axboe: "This first core part of the block IO changes contains: - Cleanup of the bio IO error signaling from Christoph. We used to rely on the uptodate bit and passing around of an error, now we store the error in the bio itself. - Improvement of the above from myself, by shrinking the bio size down again to fit in two cachelines on x86-64. - Revert of the max_hw_sectors cap removal from a revision again, from Jeff Moyer. This caused performance regressions in various tests. Reinstate the limit, bump it to a more reasonable size instead. - Make /sys/block//queue/discard_max_bytes writeable, by me. Most devices have huge trim limits, which can cause nasty latencies when deleting files. Enable the admin to configure the size down. We will look into having a more sane default instead of UINT_MAX sectors. - Improvement of the SGP gaps logic from Keith Busch. - Enable the block core to handle arbitrarily sized bios, which enables a nice simplification of bio_add_page() (which is an IO hot path). From Kent. - Improvements to the partition io stats accounting, making it faster. From Ming Lei. - Also from Ming Lei, a basic fixup for overflow of the sysfs pending file in blk-mq, as well as a fix for a blk-mq timeout race condition. - Ming Lin has been carrying Kents above mentioned patches forward for a while, and testing them. Ming also did a few fixes around that. - Sasha Levin found and fixed a use-after-free problem introduced by the bio->bi_error changes from Christoph. - Small blk cgroup cleanup from Viresh Kumar" * 'for-4.3/core' of git://git.kernel.dk/linux-block: (26 commits) blk: Fix bio_io_vec index when checking bvec gaps block: Replace SG_GAPS with new queue limits mask block: bump BLK_DEF_MAX_SECTORS to 2560 Revert "block: remove artifical max_hw_sectors cap" blk-mq: fix race between timeout and freeing request blk-mq: fix buffer overflow when reading sysfs file of 'pending' Documentation: update notes in biovecs about arbitrarily sized bios block: remove bio_get_nr_vecs() fs: use helper bio_add_page() instead of open coding on bi_io_vec block: kill merge_bvec_fn() completely md/raid5: get rid of bio_fits_rdev() md/raid5: split bio for chunk_aligned_read block: remove split code in blkdev_issue_{discard,write_same} btrfs: remove bio splitting and merge_bvec_fn() calls bcache: remove driver private bio splitting code block: simplify bio_add_page() block: make generic_make_request handle arbitrarily sized bios blk-cgroup: Drop unlikely before IS_ERR(_OR_NULL) block: don't access bio->bi_error after bio_put() block: shrink struct bio down to 2 cache lines again ... commit df910390e2db07a76c87f258475f6c96253cee6c Merge: 91a247d 9f55bca Author: Linus Torvalds Date: Wed Sep 2 12:22:54 2015 -0700 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull first round of SCSI updates from James Bottomley: "This includes one new driver: cxlflash plus the usual grab bag of updates for the major drivers: qla2xxx, ipr, storvsc, pm80xx, hptiop, plus a few assorted fixes. There's another tranch coming, but I want to incubate it another few days in the checkers, plus it includes a mpt2sas separated lifetime fix, which Avago won't get done testing until Friday" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (85 commits) aic94xx: set an error code on failure storvsc: Set the error code correctly in failure conditions storvsc: Allow write_same when host is windows 10 storvsc: use storage protocol version to determine storage capabilities storvsc: use correct defaults for values determined by protocol negotiation storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. storvsc: Use a single value to track protocol versions storvsc: Rather than look for sets of specific protocol versions, make decisions based on ranges. cxlflash: Remove unused variable from queuecommand cxlflash: shift wrapping bug in afu_link_reset() cxlflash: off by one bug in cxlflash_show_port_status() cxlflash: Virtual LUN support cxlflash: Superpipe support cxlflash: Base error recovery support qla2xxx: Update driver version to 8.07.00.26-k qla2xxx: Add pci device id 0x2261. qla2xxx: Fix missing device login retries. qla2xxx: do not clear slot in outstanding cmd array qla2xxx: Remove decrement of sp reference count in abort handler. qla2xxx: Add support to show MPI and PEP FW version for ISP27xx. ... commit 91a247d7d3694a161092931ea4e0b13c11b8e9a0 Merge: 8bdc69b 718e38b Author: Linus Torvalds Date: Wed Sep 2 12:16:24 2015 -0700 Merge tag 'for-linus-20150901' of git://git.infradead.org/linux-mtd Pull MTD updates from Brian Norris: "SPI NOR: - reduce virtual address space requirements for fsl-quadspi memory map - new fsl-quadspi IP support: imx6ul-qspi and imx7d-qspi - add new NOR flash device support - add new driver for NXP SPI Flash Interface (SPIFI) - stop abusing SPI API structs for non-SPI framework - fixup DT table matching for new "jedec,spi-nor" string NAND: - brcmnand: fix big endian MIPS macro usage - denali: refactor to use devres, dev_*() printing, etc. - OMAP ELM: change the module alias to actually be usable - pxa3xx_nand: fixup a few command sequencing issues -- both new and old - race conditions in the IRQ handler status clearing - problems when a bootloader left interrupts pending - config issues when overriding the bootloader configuration - new flash device support - sunxi_nand: - optimize timing configuration by calculation, rather than fixed fail-safe values - use EDO setting from ONFI - r852: fix compiler warnings - davinci: add 4KB page support Core: - oobtest: correct debug print information" * tag 'for-linus-20150901' of git://git.infradead.org/linux-mtd: (42 commits) mtd: mtd_oobtest: Fix the address offset with vary_offset case mtd: blkdevs: fix switch-bool compilation warning mtd: spi-nor: stop (ab)using struct spi_device_id mtd: nand: add Toshiba TC58NVG0S3E to nand_ids table mtd: dataflash: Export OF module alias information nand: pxa3xx: Increase READ_ID buffer and make the size static mtd: nand: pxa3xx-nand: fix random command timeouts mtd: nand: pxa3xx_nand: fix early spurious interrupt mtd: pxa3xx_nand: add a default chunk size mtd: omap_elm: Fix module alias mtd: physmap_of: fix null pointer deference when kzalloc returns null mtd: nettel: do not ignore mtd_device_register() failure in nettel_init() mtd: denali_pci: switch to dev_err() mtd: denali_pci: refactor driver using devres API mtd: denali_pci: use module_pci_driver() macro mtd: denali: hide core part from user in Kconfig mtd: spi-nor: add Spansion S25FL204K support mtd: spi-nor: Improve Kconfig help text for SPI_FSL_QUADSPI mtd: spi-nor: add driver for NXP SPI Flash Interface (SPIFI) doc: dt: add documentation for nxp,lpc1773-spifi ... commit 210c34dcd8d912dcc740f1f17625a7293af5cb56 Author: Paul Durrant Date: Wed Sep 2 17:58:36 2015 +0100 xen-netback: add support for multicast control Xen's PV network protocol includes messages to add/remove ethernet multicast addresses to/from a filter list in the backend. This allows the frontend to request the backend only forward multicast packets which are of interest thus preventing unnecessary noise on the shared ring. The canonical netif header in git://xenbits.xen.org/xen.git specifies the message format (two more XEN_NETIF_EXTRA_TYPEs) so the minimal necessary changes have been pulled into include/xen/interface/io/netif.h. To prevent the frontend from extending the multicast filter list arbitrarily a limit (XEN_NETBK_MCAST_MAX) has been set to 64 entries. This limit is not specified by the protocol and so may change in future. If the limit is reached then the next XEN_NETIF_EXTRA_TYPE_MCAST_ADD sent by the frontend will be failed with NETIF_RSP_ERROR. Signed-off-by: Paul Durrant Cc: Ian Campbell Cc: Wei Liu Acked-by: Wei Liu Signed-off-by: David S. Miller drivers/net/xen-netback/common.h | 15 ++++++ drivers/net/xen-netback/interface.c | 10 ++++ drivers/net/xen-netback/netback.c | 99 +++++++++++++++++++++++++++++++++++++ drivers/net/xen-netback/xenbus.c | 13 +++++ include/xen/interface/io/netif.h | 8 ++- 5 files changed, 144 insertions(+), 1 deletion(-) commit 4db78d31deff77f227de56316ee865d65eaa7f01 Author: Fabio Estevam Date: Wed Sep 2 13:25:59 2015 -0300 bgmac: Update fixed_phy_register() Commit a5597008dbc2 ("phy: fixed_phy: Add gpio to determine link up/down.") added a new argument to fixed_phy_register(), but missed to update bgmac driver, causing the following build failure: drivers/net/ethernet/broadcom/bgmac.c:1450:2: error: too few arguments to function 'fixed_phy_register' Add the missing argument. Reported-by: Mark Brown Signed-off-by: Fabio Estevam Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bgmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b382c08656000c12a146723a153b85b13a855b49 Author: Daniel Borkmann Date: Wed Sep 2 14:00:36 2015 +0200 sock, diag: fix panic in sock_diag_put_filterinfo diag socket's sock_diag_put_filterinfo() dumps classic BPF programs upon request to user space (ss -0 -b). However, native eBPF programs attached to sockets (SO_ATTACH_BPF) cannot be dumped with this method: Their orig_prog is always NULL. However, sock_diag_put_filterinfo() unconditionally tries to access its filter length resp. wants to copy the filter insns from there. Internal cBPF to eBPF transformations attached to sockets don't have this issue, as orig_prog state is kept. It's currently only used by packet sockets. If we would want to add native eBPF support in the future, this needs to be done through a different attribute than PACKET_DIAG_FILTER to not confuse possible user space disassemblers that work on diag data. Fixes: 89aa075832b0 ("net: sock: allow eBPF programs to be attached to sockets") Signed-off-by: Daniel Borkmann Acked-by: Nicolas Dichtel Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/sock_diag.c | 3 +++ 1 file changed, 3 insertions(+) commit ba13b5f8f86efa78bc0aaea297b0001b6cbf6c21 Author: Kaike Wan Date: Thu Aug 20 14:20:42 2015 -0400 IB/sa: Fix rdma netlink message flags The flags to ibnl_put_msg should be NLM_F_REQUEST instead of GFP_KERNEL. Signed-off-by: Kaike Wan Signed-off-by: John Fleck Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/sa_query.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bddf8026386927985ef6d0d11c3ba78f70b76bad Author: Jammy Zhou Date: Tue Sep 1 16:44:11 2015 +0800 drm/amdgpu: set MEC doorbell range for Fiji Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ac01db3dd5a0c7916e804a52752b780c5c18b98d Author: Jammy Zhou Date: Tue Sep 1 13:13:54 2015 +0800 drm/amdgpu: implement burst NOP for SDMA Customize the insert_nop func for SDMA rings, and use burst NOP for ring/IB submissions in other places as well Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 34 +++++++++++++++++++++++++++++----- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 34 +++++++++++++++++++++++++++++----- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 33 ++++++++++++++++++++++++++++----- 3 files changed, 86 insertions(+), 15 deletions(-) commit edff0e2826412be38f0c7977cbf89262141aad87 Author: Jammy Zhou Date: Tue Sep 1 13:04:08 2015 +0800 drm/amdgpu: add insert_nop ring func and default implementation The insert_nop function is added to amdgpu_ring_funcs structure as well as the default implementation Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 24 +++++++++++++++++++++--- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 ++ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 ++ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1 + drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 1 + drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 1 + drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 1 + 12 files changed, 36 insertions(+), 3 deletions(-) commit 4b2f7e2ca94d58ea16e411a1f717392b91f7730a Author: Jammy Zhou Date: Tue Sep 1 12:56:17 2015 +0800 drm/amdgpu: add amdgpu_get_sdma_instance helper function This function is added to map the ring to sdma instance Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 36f523a7c095192662286057a7eb70d583203fe5 Author: Jammy Zhou Date: Tue Sep 1 12:54:27 2015 +0800 drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES Remove the hardcoded usage Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 18111de0dfc38c582c4348af3bda5d3331d35012 Author: Jammy Zhou Date: Mon Aug 31 14:06:39 2015 +0800 drm/amdgpu: add burst_nop flag for sdma The burst NOP is supported for SDMA when feature_version is >= 20. Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 2 ++ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 2 ++ drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 ++ 4 files changed, 7 insertions(+) commit 4207a734c32cafd8ea603eb440d6a8e100e7d1d2 Author: Jammy Zhou Date: Mon Aug 31 14:01:05 2015 +0800 drm/amdgpu: add count field for the SDMA NOP packet v2 This is added to support the burst NOP v2: squash the typo fix Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/cikd.h | 1 + drivers/gpu/drm/amd/amdgpu/iceland_sdma_pkt_open.h | 5 +++++ drivers/gpu/drm/amd/amdgpu/tonga_sdma_pkt_open.h | 5 +++++ 3 files changed, 11 insertions(+) commit a60c42320b375e80e52e7861acd6b81c61f05166 Author: Christian König Date: Tue Sep 1 15:33:25 2015 +0200 drm/amdgpu: use PT for VM sync on unmap Instead of the array which is used for ID management. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit c9f0fe5e19ec485476c3b22e9265016b96c813ef Author: Chunming Zhou Date: Mon Aug 31 15:46:12 2015 +0800 drm/amdgpu: make wait_event uninterruptible in push_job with interruptible, the push_job maybe return -ERESTARTSYS, then result in push_job error. E.g. bug trace: [ 181.618860] *****amdgpu_copy_buffer:fence->seq:0x0000000048d8758b, contxt:1207959552, ref:683967304, r:-512 [ 181.618929] BUG: unable to handle kernel paging request at ffffffff811aa266 [ 181.625887] IP: [] reservation_object_add_excl_fence+0x3c/0x120 ... [ 181.859767] [] ? unmap_mapping_range+0x66/0x110 [ 181.865928] [] ttm_bo_move_accel_cleanup+0x41/0x3c0 [ttm] [ 181.872971] [] amdgpu_move_blit.isra.18+0x122/0x150 [amdgpu] [ 181.880254] [] ? unmap_mapping_range+0x66/0x110 [ 181.886420] [] amdgpu_bo_move+0xa9/0x200 [amdgpu] [ 181.892753] [] ttm_bo_handle_move_mem+0x26d/0x5c0 [ttm] Signed-off-by: Chunming Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 4c28fb0b27ad58d772cb972564369b9ebdad0d6b Author: Christian König Date: Fri Aug 28 17:27:54 2015 +0200 drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2 No copy_(to|from)_user while BO is reserved. v2: handle default path as well Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8221d706f4f39337e28644f333aefbca41ac0d18 Author: Christian König Date: Wed Sep 2 12:14:57 2015 -0400 drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()" v2 That isn't used any more. v2: rebase Signed-off-by: Christian König Reviewed-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 11 ++++---- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 44 +++++++------------------------ drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 4 +-- 3 files changed, 16 insertions(+), 43 deletions(-) commit 09bfda10e6efd7b65bcc29237bee1765ed779657 Author: Jeffery Miller Date: Tue Sep 1 11:23:02 2015 -0400 Add radeon suspend/resume quirk for HP Compaq dc5750. With the radeon driver loaded the HP Compaq dc5750 Small Form Factor machine fails to resume from suspend. Adding a quirk similar to other devices avoids the problem and the system resumes properly. Signed-off-by: Jeffery Miller Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_combios.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 423a9480add9d9afba035d3c2617034d5f766065 Author: Chunming Zhou Date: Mon Aug 24 16:59:54 2015 +0800 drm/amdgpu: re-work sync_resv sync_resv is to handle both amdgpu_fence and sched_fence. Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit e39daf2c63518a8ce92e3ad5caa04097524b3585 Author: Alex Deucher Date: Mon Aug 31 11:08:44 2015 -0400 drm/amdgpu/atom: Send out the full AUX address AUX addresses are 20 bits long. Send out the entire address instead of just the low 16 bits. Port of: drm/radeon/atom: Send out the full AUX address to amdgpu Reviewed-by: Jammy Zhou Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8bdc69b764013a9b5ebeef7df8f314f1066c5d79 Merge: 76ec51e 20f1f4b Author: Linus Torvalds Date: Wed Sep 2 08:04:23 2015 -0700 Merge branch 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup updates from Tejun Heo: - a new PIDs controller is added. It turns out that PIDs are actually an independent resource from kmem due to the limited PID space. - more core preparations for the v2 interface. Once cpu side interface is settled, it should be ready for lifting the devel mask. for-4.3-unified-base was temporarily branched so that other trees (block) can pull cgroup core changes that blkcg changes depend on. - a non-critical idr_preload usage bug fix. * 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup: pids: fix invalid get/put usage cgroup: introduce cgroup_subsys->legacy_name cgroup: don't print subsystems for the default hierarchy cgroup: make cftype->private a unsigned long cgroup: export cgrp_dfl_root cgroup: define controller file conventions cgroup: fix idr_preload usage cgroup: add documentation for the PIDs controller cgroup: implement the PIDs subsystem cgroup: allow a cgroup subsystem to reject a fork commit 76ec51ef5edfe540bbc3c61b860f88deb8e6a37b Merge: 7d3e2eb 292c24a Author: Linus Torvalds Date: Wed Sep 2 08:03:25 2015 -0700 Merge branch 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu Pull percpu updates from Tejun Heo: "Minor cleanups" * 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: percpu: clean up of schunk->map[] assignment in pcpu_setup_first_chunk percpu: update incorrect comment for this_cpu_*() operations commit 7d3e2eb1786fafa186eb8bc276edef75ba69e023 Merge: 2dc7e55 355c066 Author: Linus Torvalds Date: Wed Sep 2 08:02:20 2015 -0700 Merge branch 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue updates from Tejun Heo: "Only three trivial changes for workqueue this time - doc, MAINTAINERS and EXPORT_SYMBOL updates" * 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: fix some docbook warnings workqueue: Make flush_workqueue() available again to non GPL modules workqueue: add myself as a dedicated reviwer commit 2dc7e555e33e645df70a8aa89c529de1902f0064 Merge: ae98207 d6e9b70 Author: Linus Torvalds Date: Wed Sep 2 08:00:54 2015 -0700 Merge branch 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata Pull libata updates from Tejun Heo: "Nothing interesting. A couple device specific minor updates and a kernel doc change" * 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: ata: pata_arasam_cf: Use devm_clk_get libata: fix libata-core.c kernel-doc warning ata: sata_rcar: Remove obsolete sata-r8a779* platform_device_id entries commit c3058579a2882bb4bb6bf1ab0fe65f5ed070e530 Author: Joonyoung Shim Date: Tue Sep 1 16:22:55 2015 +0900 drm/exynos: remove buf_cnt from struct exynos_drm_fb Looking other drm drivers, there is no the restriction that framebuffer has only one buffer in .create_handle() callback. They use just first buffer. If this limitation is removed, there is no reason keeping buffer count for framebuffer, so we can remove buf_cnt from struct exynos_drm_fb. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 9 --------- 1 file changed, 9 deletions(-) commit faec262b14f3d92601c06b5c73b45ea71d0d164b Author: Joonyoung Shim Date: Tue Sep 1 16:22:54 2015 +0900 drm/exynos: remove exynos_drm_fb_get_buf_cnt() We can get buffer count of framebuffer using drm_format_num_planes(), so keeping exynos_drm_fb_get_buf_cnt() is unnecessary. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 9 --------- drivers/gpu/drm/exynos/exynos_drm_fb.h | 3 --- drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 +- 3 files changed, 1 insertion(+), 13 deletions(-) commit 8d31758ecfe156fa4775017858613a5087eb57bf Author: Joonyoung Shim Date: Tue Sep 1 16:22:53 2015 +0900 drm/exynos: cleanup exynos_user_fb_create() Using exynos_drm_framebuffer_init(), redundant codes can be removed. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 47 ++++++++++------------------------ 1 file changed, 13 insertions(+), 34 deletions(-) commit d56125afcbdfde09bcb05d3e07e1d063989b5f74 Author: Joonyoung Shim Date: Tue Sep 1 16:22:52 2015 +0900 drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers This modifies exynos_drm_framebuffer_init() to be possible to support multiple buffers. Then it can be used by exynos_user_fb_create(). Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 36 +++++++++++++++++-------------- drivers/gpu/drm/exynos/exynos_drm_fb.h | 5 ++++- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 3 +-- 3 files changed, 25 insertions(+), 19 deletions(-) commit dcbb85a1641771547d83ee3a43230ea76703ed68 Author: Joonyoung Shim Date: Tue Sep 1 16:22:51 2015 +0900 drm/exynos: cleanup to get gem object for fb Current codes get first gem object and then again get remain gem objects. They can be unified to one routine. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit ee885ca5c0a34d5212eae9293ee8359e65c73715 Author: Joonyoung Shim Date: Tue Sep 1 16:22:50 2015 +0900 drm/exynos: update fb_info via only one function This patch moves codes to update fb_info into exynos_drm_fbdev_update(), so fb_info is updated via only one function. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit d76199609823ef0c5ab20ccdc8785df283241fd1 Author: Joonyoung Shim Date: Tue Sep 1 16:22:49 2015 +0900 drm/exynos: cleanup exynos_drm_fbdev_update() It can get exynos_gem object via function argument, so no need to call exynos_drm_fb_gem_obj() in exynos_drm_fbdev_update. It also can get struct drm_framebuffer *fb via helper->fb, so can remove a function argument for it. Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit 39a839f2e65185bcde80f99b5ee5ccd649ba07a2 Author: Joonyoung Shim Date: Tue Sep 1 16:22:48 2015 +0900 drm/exynos: s/exynos_gem_obj/obj in exynos_drm_fbdev.c The variable name "exynos_gem_obj" is too long, so some lines exceed 80 characters. It's simple to use "obj" instead of "exynos_gem_obj". Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit 94e30d93f9360051b76e8e2a4b61753cde5e16c8 Author: Joonyoung Shim Date: Tue Sep 1 16:22:47 2015 +0900 drm/exynos: remove exynos_drm_fb_set_buf_cnt() The exynos_drm_fb_set_buf_cnt() is used to set buffer count only in exynos_drm_fbdev_update(). This patch sets directly buffer count in exynos_drm_framebuffer_init() without using exynos_drm_fb_set_buf_cnt(), so there is no any reason to keep exynos_drm_fb_set_buf_cnt(). Signed-off-by: Joonyoung Shim Reviewed-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fb.c | 13 +++---------- drivers/gpu/drm/exynos/exynos_drm_fb.h | 4 ---- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 3 --- 3 files changed, 3 insertions(+), 17 deletions(-) commit 7de5c36c2aa9fc7ae1443d144f895ffd044c6b36 Author: Tobias Jakobi Date: Tue Aug 18 00:51:23 2015 +0200 drm/exynos: remove superfluous checks in g2d_check_reg_offset() The cases of the switch statement ensure that reg_type can never be REG_TYPE_NONE here. Signed-off-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_g2d.c | 8 -------- 1 file changed, 8 deletions(-) commit 179239a7ae805f7695167c62a97eac3efe52d7af Author: Tobias Jakobi Date: Tue Aug 18 00:51:24 2015 +0200 drm/exynos: fix size check in g2d_check_buf_desc_is_valid() The size check was incomplete. It only computed the size of area of the drawing rectangle and checked if the size still fit inside the buffer. The correct check is to compute the position of the last byte that the G2D engine is going to access and then check if that position is still contained in the buffer. In particular we need the stride information to determine this. Signed-off-by: Tobias Jakobi Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_g2d.c | 51 ++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 10 deletions(-) commit a457974f1b9524a6e7d0a0be10df760e7802d32f Author: Andrew Elble Date: Mon Aug 31 12:06:41 2015 -0400 nfsd: deal with DELEGRETURN racing with CB_RECALL We have observed the server sending recalls for delegation stateids that have already been successfully returned. Change nfsd4_cb_recall_done() to return success if the client has returned the delegation. While this does not completely eliminate the sending of recalls for delegations that have already been returned, this does prevent unnecessarily declaring the callback path to be down. Reported-by: Eric Meddaugh Signed-off-by: Andrew Elble Acked-by: Jeff Layton Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 3 +++ 1 file changed, 3 insertions(+) commit 4e3d1e26c2b2c40ebff69f2825fa862bfcf082d1 Author: Ville Syrjälä Date: Thu Aug 27 23:56:12 2015 +0300 drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x Pass the correct hpd[] array to intel_get_hpd_pins() on pre-g4x platforms. This got broken in the following commit: commit fd63e2a972c670887e5e8a08440111d3812c0996 Author: Imre Deak Date: Tue Jul 21 15:32:44 2015 -0700 drm/i915: combine i9xx_get_hpd_pins and pch_get_hpd_pins Cc: Imre Deak Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Reviewed-by: Daniel Vetter Reviewed-by: Egbert Eich Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16f7249ddf831f5ec0e1358222ce5db300446b84 Author: Artem Savkov Date: Wed Sep 2 13:41:18 2015 +0200 uapi/drm/i915_drm.h: fix userspace compilation. commit 346add7834557b5b9628b9bf2387106d42e631d4 Author: Daniel Vetter Date: Tue Jul 14 18:07:30 2015 +0200 drm/i915: Use expcitly fixed type in compat32 structs changed the type of param field in drm_i915_getparam from int to s32. This header is exported to userspace and needs to use userspace type __s32 instead. This fixes userspace compilation errors like the following: include/drm/i915_drm.h:361:2: error: unknown type name 's32' s32 param; Signed-off-by: Artem Savkov Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula include/uapi/drm/i915_drm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51bc140431e233284660b1d22c47dec9ecdb521e Author: Chris Wilson Date: Mon Aug 31 15:10:39 2015 +0100 drm/i915: Always mark the object as dirty when used by the GPU There have been many hard to track down bugs whereby userspace forgot to flag a write buffer and then cause graphics corruption or a hung GPU when that buffer was later purged under memory pressure (as the buffer appeared clean, its pages would have been evicted rather than preserved and any changes more recent than in the backing storage would be lost). In retrospect this is a rare optimisation against memory pressure, already the slow path. If we always mark the buffer as dirty when accessed by the GPU, anything not used can still be evicted cheaply (ideal behaviour for mark-and-sweep eviction) but we do not run the risk of corruption. For correct read serialisation, userspace still has to notify when the GPU writes to an object. However, there are certain situations under which userspace may wish to tell white lies to the kernel... Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Kristian Høgsberg Cc: Jesse Barnes Cc: "Goel, Akash" Cc: Michał Winiarski Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f36203be608a38a5b5523a7aa52cc72f757b9679 Author: Ville Syrjälä Date: Wed Aug 26 22:55:07 2015 +0300 drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus speed To help with debugging i2c-over-aux issues, add a module parameter than can be used to tweak the assumed i2c bus speed, and thus the maximum number of retries we will do for each aux message. Cc: Simon Farnsworth Cc: moosotc@gmail.com Signed-off-by: Ville Syrjälä Reviewed-by: Simon Farnsworth Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/drm_dp_helper.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 4efa83c8c786ab7ec7982e3dd348cb7e7ecbeb04 Author: Ville Syrjälä Date: Tue Sep 1 20:12:54 2015 +0300 drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed Calculate the number of retries we should do for each i2c-over-aux message based on the time it takes to perform the i2c transfer vs. the aux transfer. We assume the shortest possible length for the aux transfer, and the longest possible (exluding clock stretching) for the i2c transfer. The DP spec has some examples on how to calculate this, but we don't calculate things quite the same way. The spec doesn't account for the retry interval (assumes immediate retry on defer), and doesn't assume the best/worst case behaviour as we do. Note that currently we assume 10 kHz speed for the i2c bus. Some real world devices (eg. some Apple DP->VGA dongle) fails with less than 16 retries. and that would correspond to something close to 15 kHz (with our method of calculating things) But let's just go for 10 kHz to be on the safe side. Ideally we should query/set the i2c bus speed via DPCD but for now this should at leaast remove the regression from the 1->16 byte trasnfer size change. And of course if the sink completes the transfer quicker this shouldn't slow things down since we don't change the interval between retries. I did a few experiments with a DP->DVI dongle I have that allows you to change the i2c bus speed. Here are the results of me changing the actual bus speed and the assumed bus speed and seeing when we start to fail the operation: actual i2c khz assumed i2c khz max retries 1 1 ok -> 2 fail 211 ok -> 106 fail 5 8 ok -> 9 fail 27 ok -> 24 fail 10 17 ok -> 18 fail 13 ok -> 12 fail 100 210 ok -> 211 fail 2 ok -> 1 fail So based on that we have a fairly decent safety margin baked into the formula to calculate the max number of retries. Fixes a regression with some DP dongles from: commit 1d002fa720738bcd0bddb9178e9ea0773288e1dd Author: Simon Farnsworth Date: Tue Feb 10 18:38:08 2015 +0000 drm/dp: Use large transactions for I2C over AUX v2: Use best case for AUX and worst case for i2c (Simon Farnsworth) Add a define our AUX retry interval and account for it v3: Make everything usecs to avoid confusion about units (Daniel) Add a comment reminding people about the AUX bitrate (Daniel) Use DIV_ROUND_UP() since we're after the "worst" case for i2c Cc: Simon Farnsworth Cc: moosotc@gmail.com Tested-by: moosotc@gmail.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91451 Reviewed-by: Simon Farnsworth Reviewed-by: Daniel Vetter Signed-off-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/drm_dp_helper.c | 84 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 2 deletions(-) commit 5ad4da4302712fba10624d28cb6c269fee592b69 Author: Jiri Olsa Date: Wed Sep 2 09:56:31 2015 +0200 perf tools: Fix parse_events_add_pmu caller Following commit changed parse_events_add_pmu interface: 36adec85a86f perf tools: Change parse_events_add_pmu interface but forgot to change one caller. Because of lessen compilation rules for the bison parser, the compiler did not warn on that. Signed-off-by: Jiri Olsa Cc: Raphael Beamonte Cc: David Ahern Cc: Matt Fleming Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Steven Rostedt Fixes: 36adec85a86f ("perf tools: Change parse_events_add_pmu interface") Link: http://lkml.kernel.org/r/1441180605-24737-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79a2b161c12a1b751f53a7698494cb722530bca5 Author: Ville Syrjälä Date: Wed Aug 26 22:55:05 2015 +0300 drm/dp: Define AUX_RETRY_INTERVAL as 500 us Currently we react to native and i2c defers by waiting either 400-500 us or 500-600 us, depending on which code path we take. Consolidate them all to one define AUX_RETRY_INTERVAL which defines the minimum interval. Since we've been using two different intervals pick the longer of them and define AUX_RETRY_INTERVAL as 500 us. For the maximum just use AUX_RETRY_INTERVAL+100 us. I want to have a define for this so that I can use it when calculating the estimated duration of i2c-over-aux transfers. Without a define it would be very easy to change the sleep duration and neglect to update the i2c-over-aux estimates. Cc: Simon Farnsworth Cc: moosotc@gmail.com Signed-off-by: Ville Syrjälä Reviewed-by: Simon Farnsworth Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/drm_dp_helper.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 9f8df6adf6c53abfa10e243cb289c34eb18ec581 Author: Sudip Mukherjee Date: Wed Sep 2 16:14:06 2015 +0530 regulator: core: fix possible NULL dereference We were checking rdev->supply for NULL after dereferencing it. Lets check for rdev->supply along with _regulator_is_enabled() and call regulator_enable() only if rdev->supply is not NULL. Signed-off-by: Sudip Mukherjee Signed-off-by: Mark Brown drivers/regulator/core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 57817e619a215588739f3f644986c78b586b541b Author: Alexandre Belloni Date: Mon Aug 10 16:31:54 2015 +0200 video: fbdev: atmel_lcdfb: remove useless include Definitions from linux/platform_data/atmel.h are not used, remove the include. Signed-off-by: Alexandre Belloni Signed-off-by: Tomi Valkeinen drivers/video/fbdev/atmel_lcdfb.c | 1 - 1 file changed, 1 deletion(-) commit 6869de380e8c11c31b608bb2502dcacd634eda13 Author: Takashi Iwai Date: Wed Sep 2 12:24:55 2015 +0200 ALSA: hda - Fix missing inline for dummy snd_hdac_set_codec_wakeup() This seems overlooked. Fixes: 98d8fc6c5d36 ('ALSA: hda - Move hda_i915.c from sound/pci/hda to sound/hda') Cc: # v4.2+ Signed-off-by: Takashi Iwai include/sound/hda_i915.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25adc137c546ce297b4d76820913dda11cad3891 Author: David Henningsson Date: Wed Aug 19 10:48:58 2015 +0200 ALSA: hda - Wake the codec up on pin/ELD notify events Whenever there is an event from the i915 driver, wake the codec and recheck plug/unplug + ELD status. This fixes the issue with lost unsol events in power save mode, the codec and controller can now sleep in D3 and still know when the HDMI monitor has been connected. Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 45c053df5bdc4843cf19b920db6ab819ddc27ff7 Author: David Henningsson Date: Wed Aug 19 10:48:57 2015 +0200 ALSA: hda - allow codecs to access the i915 pin/ELD callback This lets the interested codec be notified when an i915 pin/ELD event happens. [tiwai: Fixed a trivial build error for CONFIG_SND_HDA_I915=n] Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai include/sound/hda_i915.h | 7 +++++++ sound/hda/hdac_i915.c | 10 ++++++++++ 2 files changed, 17 insertions(+) commit 51e1d83cab9988716ae68801a721f4df0aaa374b Author: David Henningsson Date: Wed Aug 19 10:48:56 2015 +0200 drm/i915: Call audio pin/ELD notify function When the audio codec is enabled or disabled, notify the audio driver. This will enable the audio driver to get the notification at all times (even when audio is in different powersave states). Signed-off-by: David Henningsson Reviewed-by: Jani Nikula Acked-by: Daniel Vetter Signed-off-by: Takashi Iwai drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_audio.c | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) commit 2a8ceedf787167e6b1670b89d44e8dffca14d19c Author: David Henningsson Date: Wed Aug 19 10:48:55 2015 +0200 drm/i915: Add audio pin sense / ELD callback This callback will be called by the i915 driver to notify the hda driver that its HDMI information needs to be refreshed, i e, that audio output is now available (or unavailable) - usually as a result of a monitor being plugged in (or unplugged). Signed-off-by: David Henningsson Reviewed-by: Jani Nikula Acked-by: Daniel Vetter Signed-off-by: Takashi Iwai include/drm/i915_component.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 02bc933ebb59208f42c2e6305b2c17fd306f695d Author: Tan, Jui Nee Date: Tue Sep 1 10:22:51 2015 +0800 spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is disabled On Intel Baytrail, there is case when interrupt handler get called, no SPI message is captured. The RX FIFO is indeed empty when RX timeout pending interrupt (SSSR_TINT) happens. Use the BIOS version where both HSUART and SPI are on the same IRQ. Both drivers are using IRQF_SHARED when calling the request_irq function. When running two separate and independent SPI and HSUART application that generate data traffic on both components, user will see messages like below on the console: pxa2xx-spi pxa2xx-spi.0: bad message state in interrupt handler This commit will fix this by first checking Receiver Time-out Interrupt, if it is disabled, ignore the request and return without servicing. Signed-off-by: Tan, Jui Nee Acked-by: Jarkko Nikula Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-pxa2xx.c | 4 ++++ 1 file changed, 4 insertions(+) commit 7c8bb6cb95061b3143759459ed6c6b0c73bcfecb Author: Frederic Weisbecker Date: Tue Sep 1 16:51:00 2015 +0200 nohz: Assert existing housekeepers when nohz full enabled The code ensures that when nohz full is running, at least the boot CPU serves as a housekeeper and it can't be later offlined. Let's assert this assumption to make sure that we have CPUs to handle unbound jobs like workqueues and timers while nohz full CPUs run undisturbed. Also improve the comments on housekeeper offlining prevention. Signed-off-by: Frederic Weisbecker Acked-by: Thomas Gleixner Cc: Chris Metcalf Cc: Christoph Lameter Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Vatika Harlalka Link: http://lkml.kernel.org/r/1441119060-2230-3-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar kernel/time/tick-sched.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 9642d18eee2cd169b60c6ac0f20bda745b5a3d1e Author: Vatika Harlalka Date: Tue Sep 1 16:50:59 2015 +0200 nohz: Affine unpinned timers to housekeepers The problem addressed in this patch is about affining unpinned timers. Adaptive or Full Dynticks CPUs are currently disturbed by unnecessary jitter due to firing of such timers on them. This patch will affine timers to online CPUs which are not full dynticks in NOHZ_FULL configured systems. It should not introduce overhead in nohz full off case due to static keys. Signed-off-by: Vatika Harlalka Signed-off-by: Frederic Weisbecker Reviewed-by: Preeti U Murthy Acked-by: Thomas Gleixner Cc: Chris Metcalf Cc: Christoph Lameter Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441119060-2230-2-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar include/linux/tick.h | 9 +++++++++ kernel/sched/core.c | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) commit 31e09b18c863718939e3e9c30eee55f9011d85ee Author: Linda Knippers Date: Tue Sep 1 15:41:55 2015 -0400 x86/mm/srat: Print non-volatile flag in SRAT With the addition of NVDIMM support, a question came up as to whether NVDIMM ranges should be in the SRAT with this bit set. I think the consensus was no because the ranges are in the NFIT with proximity domain information there. ACPI is not clear on the meaning of this bit in the SRAT. If someone is setting it, we might want to ask them what they expect to happen with it. Right now this bit is only printed if all the ACPI debug information is turned on. Signed-off-by: Linda Knippers Acked-by: Thomas Gleixner Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150901194154.GA4939@ljkz400 Signed-off-by: Ingo Molnar arch/x86/mm/srat.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5b923564ccf43f92969c9e0fd199c8c5db657039 Merge: 5320266 af4aead Author: Ingo Molnar Date: Wed Sep 2 09:22:53 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: - Fix link time error with sample_reg_masks on non-x86. (Stephane Eranian) - Fix potential array out of bounds access. (Wang Nan) - Fix Intel PT instruction decoder dependency problem. (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 20a17bf6c04e3eca8824c930ecc55ab832558e3b Author: David S. Miller Date: Tue Sep 1 21:19:17 2015 -0700 flow_dissector: Use 'const' where possible. Signed-off-by: David S. Miller include/linux/skbuff.h | 8 ++--- include/net/flow.h | 8 ++--- net/core/flow_dissector.c | 79 ++++++++++++++++++++++++----------------------- 3 files changed, 49 insertions(+), 46 deletions(-) commit de4c1f8ba302ccf4f2b3b17dc614b0a0b14d351a Author: Tom Herbert Date: Tue Sep 1 18:11:04 2015 -0700 flow_dissector: Fix function argument ordering dependency Commit c6cc1ca7f4d70c ("flowi: Abstract out functions to get flow hash based on flowi") introduced a bug in __skb_set_sw_hash where we require a dependency on evaluating arguments in a function in order. There is no such ordering enforced in C, so this incorrect. This patch fixes that by splitting out the arguments. This bug was found via a compiler warning that keys may be uninitialized. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1bd40543534578f20889d5e999a0f184fd7ea88f Merge: a17ace9 990a2d6 Author: David S. Miller Date: Tue Sep 1 20:17:17 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-09-01 This series contains updates to i40e, ixgbe and ixgbevf. Anjali fixes a bug in i40e where the port is not receiving multicast or VLAN tagged packets in promiscuous mode. Which can occur when a software bridge is created on top of the device. Don adds support in ixgbe that indicates the presence of management firmware. Added support for entering low power link up state on devices that support it when the device is closing or suspending. Updated the driver to report unknown bus speed and width since IOSF does not report a PCIe bus speed or width for X550 devices. Also added the new bus type for integrated I/O interface (IOSF). Cleaned up of redundant code in ixgbe. Mark adds support for UDP-encapsulation transmit checksum and for VXLAN receive offloads. Introduces a helper function to do the register access and processing to avoid needless PHY access on copper PHYs. Added support for reporting 2.5G link speed. Fixed warnings resulting from redundant initializations of the get_bus_info field. Maninder Singh updates the ixgbe driver to use kzalloc instead of kcalloc for allocation of one thing. Tom Barbette adds support for ethtool to change the rxfh indirection table and/or key using ethtool interface. Emil resolves an issue where users were not able to dynamically set number of queues for 82598 via ethtool -L. Alex Williamson removes bimodal SR-IOV disabling behavior since it is confusing to users and results in a state where the PF is broken for other uses unless the user sets sriov_numvfs to zero prior to unbinding the device. ==================== Signed-off-by: David S. Miller commit ae982073095a44f004d7ffb9f271077abef9dbcf Merge: f1a3c0b e625ccec Author: Linus Torvalds Date: Tue Sep 1 19:45:46 2015 -0700 Merge tag 'pm+acpi-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management and ACPI updates from Rafael Wysocki: "From the number of commits perspective, the biggest items are ACPICA and cpufreq changes with the latter taking the lead (over 50 commits). On the cpufreq front, there are many cleanups and minor fixes in the core and governors, driver updates etc. We also have a new cpufreq driver for Mediatek MT8173 chips. ACPICA mostly updates its debug infrastructure and adds a number of fixes and cleanups for a good measure. The Operating Performance Points (OPP) framework is updated with new DT bindings and support for them among other things. We have a few updates of the generic power domains framework and a reorganization of the ACPI device enumeration code and bus type operations. And a lot of fixes and cleanups all over. Included is one branch from the MFD tree as it contains some PM-related driver core and ACPI PM changes a few other commits are based on. Specifics: - ACPICA update to upstream revision 20150818 including method tracing extensions to allow more in-depth AML debugging in the kernel and a number of assorted fixes and cleanups (Bob Moore, Lv Zheng, Markus Elfring). - ACPI sysfs code updates and a documentation update related to AML method tracing (Lv Zheng). - ACPI EC driver fix related to serialized evaluations of _Qxx methods and ACPI tools updates allowing the EC userspace tool to be built from the kernel source (Lv Zheng). - ACPI processor driver updates preparing it for future introduction of CPPC support and ACPI PCC mailbox driver updates (Ashwin Chaugule). - ACPI interrupts enumeration fix for a regression related to the handling of IRQ attribute conflicts between MADT and the ACPI namespace (Jiang Liu). - Fixes related to ACPI device PM (Mika Westerberg, Srinidhi Kasagar). - ACPI device registration code reorganization to separate the sysfs-related code and bus type operations from the rest (Rafael J Wysocki). - Assorted cleanups in the ACPI core (Jarkko Nikula, Mathias Krause, Andy Shevchenko, Rafael J Wysocki, Nicolas Iooss). - ACPI cpufreq driver and ia64 cpufreq driver fixes and cleanups (Pan Xinhui, Rafael J Wysocki). - cpufreq core cleanups on top of the previous changes allowing it to preseve its sysfs directories over system suspend/resume (Viresh Kumar, Rafael J Wysocki, Sebastian Andrzej Siewior). - cpufreq fixes and cleanups related to governors (Viresh Kumar). - cpufreq updates (core and the cpufreq-dt driver) related to the turbo/boost mode support (Viresh Kumar, Bartlomiej Zolnierkiewicz). - New DT bindings for Operating Performance Points (OPP), support for them in the OPP framework and in the cpufreq-dt driver plus related OPP framework fixes and cleanups (Viresh Kumar). - cpufreq powernv driver updates (Shilpasri G Bhat). - New cpufreq driver for Mediatek MT8173 (Pi-Cheng Chen). - Assorted cpufreq driver (speedstep-lib, sfi, integrator) cleanups and fixes (Abhilash Jindal, Andrzej Hajda, Cristian Ardelean). - intel_pstate driver updates including Skylake-S support, support for enabling HW P-states per CPU and an additional vendor bypass list entry (Kristen Carlson Accardi, Chen Yu, Ethan Zhao). - cpuidle core fixes related to the handling of coupled idle states (Xunlei Pang). - intel_idle driver updates including Skylake Client support and support for freeze-mode-specific idle states (Len Brown). - Driver core updates related to power management (Andy Shevchenko, Rafael J Wysocki). - Generic power domains framework fixes and cleanups (Jon Hunter, Geert Uytterhoeven, Rajendra Nayak, Ulf Hansson). - Device PM QoS framework update to allow the latency tolerance setting to be exposed to user space via sysfs (Mika Westerberg). - devfreq support for PPMUv2 in Exynos5433 and a fix for an incorrect exynos-ppmu DT binding (Chanwoo Choi, Javier Martinez Canillas). - System sleep support updates (Alan Stern, Len Brown, SungEun Kim). - rockchip-io AVS support updates (Heiko Stuebner). - PM core clocks support fixup (Colin Ian King). - Power capping RAPL driver update including support for Skylake H/S and Broadwell-H (Radivoje Jovanovic, Seiichi Ikarashi). - Generic device properties framework fixes related to the handling of static (driver-provided) property sets (Andy Shevchenko). - turbostat and cpupower updates (Len Brown, Shilpasri G Bhat, Shreyas B Prabhu)" * tag 'pm+acpi-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (180 commits) cpufreq: speedstep-lib: Use monotonic clock cpufreq: powernv: Increase the verbosity of OCC console messages cpufreq: sfi: use kmemdup rather than duplicating its implementation cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor() cpufreq: rename cpufreq_real_policy as cpufreq_user_policy cpufreq: remove redundant 'policy' field from user_policy cpufreq: remove redundant 'governor' field from user_policy cpufreq: update user_policy.* on success cpufreq: use memcpy() to copy policy cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event cpufreq: mediatek: Add MT8173 cpufreq driver dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings PM / Domains: Fix typo in description of genpd_dev_pm_detach() PM / Domains: Remove unusable governor dummies PM / Domains: Make pm_genpd_init() available to modules PM / domains: Align column headers and data in pm_genpd_summary output powercap / RAPL: disable the 2nd power limit properly tools: cpupower: Fix error when running cpupower monitor PM / OPP: Drop unlikely before IS_ERR(_OR_NULL) PM / OPP: Fix static checker warning (broken 64bit big endian systems) ... commit f1a3c0b933e7ff856223d6fcd7456d403e54e4e5 Merge: 089b669 c8fb70a Author: Linus Torvalds Date: Tue Sep 1 19:37:56 2015 -0700 Merge tag 'devicetree-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree updates from Rob Herring: - added Frank Rowand as DT maintainer in preparation for Grant's retirement. - generic MSI binding documentation and a few other minor doc updates - fix long standing issue with DT platorm device unregistration - fix loop forever bug in of_find_matching_node_by_address() * tag 'devicetree-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: MAINTAINERS: Add Frank Rowand as DT maintainer mtd: nand: pxa3xx: add optional dma for pxa architecture Documentation: DT: cpsw: document missing compatible Docs: dt: add generic MSI bindings drivercore: Fix unregistration path of platform devices of/address: Don't loop forever in of_find_matching_node_by_address(). of: Add vendor prefix for JEDEC Solid State Technology Association of/platform: add function to populate default bus of: Add vendor prefix for Sharp Corporation commit 5a924a07f882e866f2337bf65048be357956691a Merge: 64291f7 934c93b d0a1262 Author: Zhang Rui Date: Wed Sep 2 10:08:02 2015 +0800 Merge branches 'thermal-core' and 'thermal-intel' of .git into next commit 089b669506ef28fae2c24a0ec21e06c02a38556b Merge: 45c680b e5f6450 Author: Linus Torvalds Date: Tue Sep 1 18:46:42 2015 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial tree updates from Jiri Kosina: "The usual stuff from trivial tree for 4.3 (kerneldoc updates, printk() fixes, Documentation and MAINTAINERS updates)" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits) MAINTAINERS: update my e-mail address mod_devicetable: add space before */ scsi: a100u2w: trivial typo in printk i2c: Fix typo in i2c-bfin-twi.c treewide: fix typos in comment blocks Doc: fix trivial typo in SubmittingPatches proportions: Spelling s/consitent/consistent/ dm: Spelling s/consitent/consistent/ aic7xxx: Fix typo in error message pcmcia: Fix typo in locking documentation scsi/arcmsr: Fix typos in error log drm/nouveau/gr: Fix typo in nv10.c [SCSI] Fix printk typos in drivers/scsi staging: comedi: Grammar s/Enable support a/Enable support for a/ Btrfs: Spelling s/consitent/consistent/ README: GTK+ is a acronym ASoC: omap: Fix typo in config option description mm: tlb.c: Fix error message ntfs: super.c: Fix error log fix typo in Documentation/SubmittingPatches ... commit 45c680b9949ecdb829a331100ae49926bf82899c Merge: 851328f 225f58f Author: Linus Torvalds Date: Tue Sep 1 18:44:28 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching Pull livepatching fix from Jiri Kosina: "Livepatching error handling fix" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching: livepatch: Improve error handling in klp_disable_func() commit 851328feb8c1d4130d3a0acb004e474168702d6d Merge: 2d678b6 f212bd9 Author: Linus Torvalds Date: Tue Sep 1 18:39:09 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid Pull HID updates from Jiri Kosina: "to receive patches queued for 4.3 merge window in HID tree. Highlights: - a lot of improvements (regarding supported features and devices) to Wacom driver, from Aaron Skomra and Jason Gerecke - a lot of functional fixes and support for large I2C transfer to cp2112 driver, from Ellen Wang - HW support improvements to RMI driver, from Andrew Duggan - quite some small fixes and device ID additions all over the place" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (44 commits) HID: wacom: wacom_setup_numbered_buttons is local to wacom_wac HID: wacom: Add support for Express Key Remote. HID: wacom: Set button bits based on a new numbered_buttons HID: quirks: add QUIRK_NOGET for an other TPV touchscreen HID: usbhid: Fix the check for HID_RESET_PENDING in hid_io_error HID: i2c-hid: Only disable irq wake if it was successfully enabled during suspend HID: wacom: Use tablet-provided touch height/width values for INTUOSHT HID: gembird: add new driver to fix Gembird JPD-DualForce 2 HID: lenovo: Hide middle-button press until release HID: lenovo: Add missing return-value check HID: lenovo: Use constants for axes names HID: wacom: Simplify 'wacom_pl_irq' HID: wacom: Do not repeatedly attempt to set device mode on error HID: wacom: Do not repeatedly attempt to set device mode on error HID: wacom: Remove WACOM_QUIRK_NO_INPUT HID: wacom: Replace WACOM_QUIRK_MONITOR with WACOM_DEVICETYPE_WL_MONITOR HID: wacom: Use calculated pkglen for wireless touch interface HID: sony: Fix DS4 controller reporting rate issues HID: chicony: Add support for Acer Aspire Switch 12 HID: hid-lg: Add USBID for Logitech G29 Wheel ... commit 2d678b68e842e5b6fc46fc6914f7b7144bb2c23d Merge: 73b6fa8 99e1dfb Author: Linus Torvalds Date: Tue Sep 1 18:34:22 2015 -0700 Merge tag 'edac_for_4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC fixes from Borislav Petkov: "Two minor fixlets this time: AMD MCE decoding correction and xgene_edac cleanup" * tag 'edac_for_4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC, mce_amd: Don't emit 'CE' for Deferred error EDAC, xgene: Drop owner assignment from platform_driver commit 990a2d6ed543bd18b864b8a11f7be3368c67ccea Author: Mark Rustad Date: Wed Jul 29 16:00:38 2015 -0700 ixgbe: Resolve "initialized field overwritten" warnings Resolve warnings resulting from redundant initialization of the get_bus_info field in the mac_ops_X550* structures. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 1 - 1 file changed, 1 deletion(-) commit 7837e2867f56ec4435e75af54236732885303694 Author: Alex Williamson Date: Fri Jul 10 15:31:34 2015 -0600 ixgbe: Remove bimodal SR-IOV disabling When unbinding an SR-IOV device with VFs configured from ixgbe, the driver behaves in one of two ways. If max_vfs was specified, the SR-IOV state is disabled, removing the VFs. The occurs regardless of whether the VF count was later modified through sysfs. If however max_vfs is zero, such as by not specifying the module parameter, the VFs persist after the PF is unbound from ixgbe. If the PF is then bound to vfio-pci to be assigned to a VM, the PF is non-functional. >From the comment, commit da36b64736cf ("ixgbe: Implement PCI SR-IOV sysfs callback operation") clearly intended this alternate behavior, but probably didn't realize the PF doesn't work in this mode. This bimodal behavior is confusing to users and results in a state where the PF is broken for other uses unless the user sets sriov_numvfs to zero prior to unbinding the device. Remove this behavior so that VFs are removed and the PF is functional for other uses after unbind, regardless of the way VFs are enabled. Signed-off-by: Alex Williamson Acked-by: Greg Rose Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 454adb008d78e4ecdfec3f2e5e9eb08ee5a60f1a Author: Mark Rustad Date: Fri Jul 10 14:19:22 2015 -0700 ixgbe: Add support for reporting 2.5G link speed Now that we can do 2.5G link speed, we need to be able to report it. Also change the nested triadic involved in creating the log message to instead use a simpler switch statement to set a string pointer. Signed-off-by: Mark Rustad Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 7 ++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 27 +++++++++++++++++------- 2 files changed, 26 insertions(+), 8 deletions(-) commit 7e3f5c8881ba45eba1c74344b00558920008e6e6 Author: Emil Tantilov Date: Thu Jul 9 12:28:59 2015 -0700 ixgbe: fix bounds checking in ixgbe_setup_tc for 82598 This patch resolves an issue where users were not able to dynamically set number of queues for 82598 via ethtool -L Reported-by: Tal Abudi Signed-off-by: Emil Tantilov Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1c7cf0784e4d448ed8a07c5fc1e3aac1528272f1 Author: Tom Barbette Date: Fri Jun 26 15:40:18 2015 +0200 ixgbe: support for ethtool set_rxfh Allows to change the rxfh indirection table and/or key using ethtool interface. Signed-off-by: Tom Barbette Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 47 ++++++++++++++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) commit ae8140aa6bf5c7aafc0d9c2f612c5b59bea1ce9f Author: Mark Rustad Date: Thu Jun 25 17:49:57 2015 -0700 ixgbe: Avoid needless PHY access on copper phys Avoid a needless PHY access on copper phys to save the 10ms wait time for each PHY access. A helper function is introduced to actually do the register access and process the contents. Signed-off-by: Mark Rustad Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 64 ++++++++++++++++++--------- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + 2 files changed, 44 insertions(+), 21 deletions(-) commit 897b9349f056d1c1cf5141ded4ec26766d845f8b Author: Don Skidmore Date: Fri Jun 19 19:14:57 2015 -0400 ixgbe: cleanup to use cached mask value We already cache this FW/SW semaphore mask so might as well use it for consistency. Signed-off-by: Don Skidmore Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit d5702dea43fc517c389f2d9825213dabbfdaed5e Author: Don Skidmore Date: Fri Jun 19 12:23:36 2015 -0400 ixgbe: Remove second instance of lan_id variable This patch removes the redundant lan_id in the phy struct and uses the bus version. Both variables exist and intend to represent the STATUS register LAN_ID field. However, phy.lan_id is not bit shifted so the phy.lan_id = 0x0 for LAN Id 0 and phy.lan_id = 0x4 for LAN Id 1. Where bus.lan_id is bit shifted so bus.lan_id = 0x0 for LAN Id 0 and bus.lan_id = 0x1 for LAN Id 1. There seems no need for the additional lan_id variable and this should make the code less confusing. Signed-off-by: Donald C Skidmore Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c | 4 +--- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) commit bc52f951e344b2ec64388c71890d88c5fc154a41 Author: Maninder Singh Date: Fri Jun 19 09:37:55 2015 +0530 ixgbe: use kzalloc for allocating one thing Use kzalloc rather than kcalloc(1.. The semantic patch that makes this change is as follows: // @@ @@ - kcalloc(1, + kzalloc( ...) // and removing checkpatch below CHECK: CHECK: Prefer kzalloc(sizeof(*fwd_adapter)...) over kzalloc(sizeof(struct ixgbe_fwd_adapter)...) Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a17ace95b0f08ccbcf24946db5673c4b5ee8fcae Author: David S. Miller Date: Tue Sep 1 17:00:24 2015 -0700 flow: Move __get_hash_from_flowi{4,6} into flow_dissector.c These cannot live in net/core/flow.c which only builds when XFRM is enabled. Reported-by: kbuild test robot Signed-off-by: David S. Miller net/core/flow.c | 36 ------------------------------------ net/core/flow_dissector.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 36 deletions(-) commit fa888b891384ccbf18e70af2e02f5173e55e5e7f Author: Don Skidmore Date: Thu Jun 18 16:31:42 2015 -0400 ixgbe: Remove unused PCI bus types The ixgbe never has as very doubtfully ever will support either PCI or PCI-X devices. So remove the unused types from the ixgbe_bus_type. Thanks to Alex Duyck for suggesting this. Signed-off-by: Donald C Skidmore Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 2 -- 1 file changed, 2 deletions(-) commit f9328bc6a7edc0fbaea836007b4261ca6233d96f Author: Don Skidmore Date: Thu Jun 18 13:24:06 2015 -0400 ixgbe: add new bus type for intergrated I/O interface (IOSF) With this patch we add support for a new bus type ixgbe_bus_type_internal. X550em devices use IOSF and not PCIe bus so this new type is to accommodate them. Signed-off-by: Donald C Skidmore Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 11 ++++++++++- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) commit 454c65dd1a1e7fdaa5bbd3a34e14ab5560fbfad7 Author: Don Skidmore Date: Wed Jun 17 20:59:59 2015 -0400 ixgbe: add get_bus_info method for X550 Added ixgbe_get_bus_info_X550em to X550 code. ixgbe_get_bus_info_X550em sets bus.width to ixgbe_bus_width_unknown and bus.speed to ixgbe_bus_speed_unknown, because IOSF does not report a PCIe bus width or speed. Signed-off-by: Don Skidmore Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 6ac7439459606a57265800e60b14d58365ab19eb Author: Don Skidmore Date: Wed Jun 17 17:34:31 2015 -0400 ixgbe: Add support for entering low power link up state When the device is closing or suspending, call ixgbe_enter_lplu to enter low power link up state on devices that support it. When this is done, prevent the phy from being reset in the ixgbe_down path so that link is present when calling ixgbe_enter_lplu. Signed-off-by: Don Skidmore Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 10 +- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 34 +++++- drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 143 ++++++++++++++++++++++++++ 3 files changed, 185 insertions(+), 2 deletions(-) commit 67359c3c9fc8e9fbed991bbe0cfeda55c7e0a64c Author: Mark Rustad Date: Mon Jun 15 11:33:25 2015 -0700 ixgbe: Add support for VXLAN RX offloads Add support for VXLAN RX offloads for the X55x devices that support them. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe.h | 6 ++ drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 18 +++- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 119 ++++++++++++++++++++----- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 15 ++-- 4 files changed, 127 insertions(+), 31 deletions(-) commit f467bc06022d4d37de459f9498ff4fbc7e9b0fca Author: Mark Rustad Date: Mon Jun 15 11:33:20 2015 -0700 ixgbe: Add support for UDP-encapsulated tx checksum offload By using GSO for UDP-encapsulated packets, all ixgbe devices can be directed to generate checksums for the inner headers because the outer UDP checksum can be zero. So point the machinery at the inner headers and have the hardware generate the checksum. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 66 ++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 12 deletions(-) commit 4b36993d3df0834eff3b4172962de0343a4d9123 Author: David S. Miller Date: Tue Sep 1 16:46:08 2015 -0700 flow_dissector: Don't use bit fields. Just have a flags member instead. In file included from include/linux/linkage.h:4:0, from include/linux/kernel.h:6, from net/core/flow_dissector.c:1: In function 'flow_keys_hash_start', inlined from 'flow_hash_from_keys' at net/core/flow_dissector.c:553:34: >> include/linux/compiler.h:447:38: error: call to '__compiletime_assert_459' declared with attribute error: BUILD_BUG_ON failed: FLOW_KEYS_HASH_OFFSET % sizeof(u32) Reported-by: kbuild test robot Signed-off-by: David S. Miller include/net/flow_dissector.h | 8 +++++--- net/core/flow_dissector.c | 14 +++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) commit d490d15877b2e6fc2d800ea232a0eca54cf4592c Author: Mark Rustad Date: Thu Jun 11 11:02:20 2015 -0700 ixgbe: Check whether FDIRCMD writes actually complete Wait up to about 100 us for FDIRCMD writes to complete and return failure indications. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 63 ++++++++++++++++---------- drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 1 + 2 files changed, 40 insertions(+), 24 deletions(-) commit b5529ef5be1f0a0089988ec51541aa9573e94476 Author: Don Skidmore Date: Wed Jun 10 20:42:30 2015 -0400 ixgbe: Assign set_phy_power dynamically where needed There are various reasons why this method may or may not need to be defined and some of these we don't know until runtime. So we will set the value in get_invariants. Signed-off-by: Donald C Skidmore Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c | 5 +++++ drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit bd8069ace513dd2741bc7177eeebc9a392451db1 Author: Don Skidmore Date: Wed Jun 10 20:05:02 2015 -0400 ixgbe: add new function to check for management presence This patch adds a support function that will indicate for the existence of management FW. Signed-off-by: Donald C Skidmore Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 8 ++------ drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 15 +++++++++++++++ drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 1 + 3 files changed, 18 insertions(+), 6 deletions(-) commit 92faef85613d6d56803ad6130f6daf4a803deddc Author: Anjali Singhai Jain Date: Tue Jul 28 13:02:00 2015 -0400 i40e: Set defport behavior for the Main VSI when in promiscuous mode This fixes bugs where the port is not receiving multicast or VLAN tagged packets when in promiscuous mode. This can occur when a SW bridge is created on top of the device. This also fixes issues where the promiscuous behavior setting was not being preserved across a reset caused by features being enabled or disabled. We are using defport instead of doing a true promiscuous mode because we do not need to receive the SRIOV or VMDq VSI directed traffic which would suck up bandwidth and is really not intended for the SW bridge. In addition, with defport we get VLAN promiscuous behavior which is not possible from the VSI level promiscuous setting. Change-ID: Ie21985eac32d5af1c02e9d71c6430a90d5bab40f Signed-off-by: Anjali Singhai Jain Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 37 ++++++++++++++++++++++------- 2 files changed, 30 insertions(+), 8 deletions(-) commit 73b6fa8e49c2d13e04d20186261e5f7855c6d0bf Merge: e713c80 4b75de86 Author: Linus Torvalds Date: Tue Sep 1 16:13:25 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace Pull user namespace updates from Eric Biederman: "This finishes up the changes to ensure proc and sysfs do not start implementing executable files, as the there are application today that are only secure because such files do not exist. It akso fixes a long standing misfeature of /proc//mountinfo that did not show the proper source for files bind mounted from /proc//ns/*. It also straightens out the handling of clone flags related to user namespaces, fixing an unnecessary failure of unshare(CLONE_NEWUSER) when files such as /proc//environ are read while is calling unshare. This winds up fixing a minor bug in unshare flag handling that dates back to the first version of unshare in the kernel. Finally, this fixes a minor regression caused by the introduction of sysfs_create_mount_point, which broke someone's in house application, by restoring the size of /sys/fs/cgroup to 0 bytes. Apparently that application uses the directory size to determine if a tmpfs is mounted on /sys/fs/cgroup. The bind mount escape fixes are present in Al Viros for-next branch. and I expect them to come from there. The bind mount escape is the last of the user namespace related security bugs that I am aware of" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: fs: Set the size of empty dirs to 0. userns,pidns: Force thread group sharing, not signal handler sharing. unshare: Unsharing a thread does not require unsharing a vm nsfs: Add a show_path method to fix mountinfo mnt: fs_fully_visible enforce noexec and nosuid if !SB_I_NOEXEC vfs: Commit to never having exectuables on proc and sysfs. commit e713c80a4e49d4bed5324d24755e42bf01c87556 Merge: 43af987 c8b5db7 Author: Linus Torvalds Date: Tue Sep 1 15:42:28 2015 -0700 Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 clockevent update from Thomas Gleixner: "A single commit, which converts HPET clockevents driver to the new callbacks" * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/hpet: Migrate to new set_state interface commit 43af9872f52abfed5523b8346d98a5e283b38163 Merge: 17e6b00 a47d457 Author: Linus Torvalds Date: Tue Sep 1 15:20:51 2015 -0700 Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 apic updates from Thomas Gleixner: "This udpate contains: - rework the irq vector array to store a pointer to the irq descriptor instead of the irq number to avoid a lookup of the irq descriptor in the irq entry path - lguest interrupt handling cleanups - conversion of the local apic timer to the new clockevent callbacks - preparatory changes for the irq argument removal of interrupt flow handlers" * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/irq: Do not dereference irq descriptor before checking it tools/lguest: Clean up include dir tools/lguest: Fix redefinition of struct virtio_pci_cfg_cap x86/irq: Store irq descriptor in vector array genirq: Provide irq_desc_has_action x86/irq: Get rid of an indentation level x86/irq: Rename VECTOR_UNDEFINED to VECTOR_UNUSED x86/irq: Replace numeric constant x86/irq: Protect smp_cleanup_move x86/lguest: Do not setup unused irq vectors x86/lguest: Clean up lguest_setup_irq x86/apic: Drop local_irq_save/restore in timer callbacks x86/apic: Migrate apic timer to new set_state interface x86/irq: Use access helper irq_data_get_affinity_mask() x86/irq: Use accessor irq_data_get_irq_handler_data() x86/irq: Use accessor irq_data_get_node() commit 4a3e5779cf6c6d557682b499c2190ad04c80c6fd Author: Kinglong Mee Date: Mon Aug 31 10:53:43 2015 +0800 nfs: Remove unneeded checking of the return value from scnprintf The return value from scnprintf always less than the buffer length. So, result >= len always false. This patch removes those checking. int vscnprintf(char *buf, size_t size, const char *fmt, va_list args) { int i; i = vsnprintf(buf, size, fmt, args); if (likely(i < size)) return i; if (size != 0) return size - 1; return 0; } Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit 4a70316caef7d158445e672e146eb9f1b8c1aeee Author: Kinglong Mee Date: Mon Aug 31 10:53:33 2015 +0800 nfs: Fix truncated client owner id without proto type The length of "Linux NFSv4.0 " is 14, not 10. Without this patch, I get a truncated client owner id as, "Linux NFSv4.0 ::1/::1" With this patch, "Linux NFSv4.0 ::1/::1 tcp" Fixes: a319268891 ("nfs: make nfs4_init_nonuniform_client_string use a dynamically allocated buffer") Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 889d94d49a3cbcbc8c8d07208549fa614d33da76 Author: Trond Myklebust Date: Tue Sep 1 00:58:24 2015 -0700 NFSv4.1/flexfiles: Mark layout for return if the mirrors are invalid If a read-write layout has an invalid mirror, then we should mark it as invalid, and return it. If a read-only layout has an invalid mirror, then mark it as invalid and check if there is still at least one valid mirror before we return it. Note: Also fix incorrect use of pnfs_generic_mark_devid_invalid(). We really want nfs4_mark_deviceid_unavailable(). Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 45 ++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 15 deletions(-) commit 81d6dc8b3431d298abaef11d8bc64646fc691618 Author: Trond Myklebust Date: Tue Sep 1 02:49:44 2015 -0700 NFSv4.1/flexfiles: RW layouts are valid only if all mirrors are valid Unlike read layouts, the writeable layout cannot fall back to using only one of the mirrors. It need to write to all of them. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) commit 388ef16640cefd202daa723fba02e7c0266f8454 Author: Trond Myklebust Date: Tue Sep 1 03:31:33 2015 -0700 NFSv4.1/flexfiles: Fix incorrect usage of pnfs_generic_mark_devid_invalid() Unlike the files layout, flexfiles does not test for the NFS_DEVICEID_INVALID flag. Instead it relies on NFS_DEVICEID_UNAVAILABLE. Fix is to replace with nfs4_mark_deviceid_unavailable(). Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 41ecc3d390266acc1aa911d2ec477928a5248f75 Merge: d3d11fe 6db61d7 Author: David S. Miller Date: Tue Sep 1 15:06:24 2015 -0700 Merge branch 'flow-dissector-features' Tom Herbert says: ==================== flow_dissector: Paramterize dissection and other features This patch set adds some new capabilities to flow_dissector: - Add flags to flow dissector functions to control dissection - Flag to stop dissection when L3 header is seen (don't dissect L4) - Flag to stop dissection when encapsulation is detected - Flag to parse first fragment of fragmented packet. This may provide L4 ports - Added new reporting in key_control - Packet is a fragment - Packet is a first fragment - Packet has encapsulation Also: - Make __skb_set_sw_hash a general function - Create functions to get a flow hash based on flowi4 or flowi6 structures without an reference to an skbuff - Ignore flow dissector return value from ___skb_get_hash. Just use whatever key fields are found to make a hash Tested: Ran 200 netperf TCP_RR instances for IPv6 and IPv4. Did not see any regression. Ran UDP_RR with 10000 byte request and response size for IPv4 and IPv6, no regression observed however I did see better performance with IPv6 flow labels due to use of flow labels for L4 hash. ==================== Signed-off-by: David S. Miller commit 6db61d79c1e1b2346e2142d6c950a8d2e8380b82 Author: Tom Herbert Date: Tue Sep 1 09:24:33 2015 -0700 flow_dissector: Ignore flow dissector return value from ___skb_get_hash In ___skb_get_hash ignore return value from skb_flow_dissect_flow_keys. A failure in that function likely means that there was a parse error, so we may as well use whatever fields were found before the error was hit. This is also good because it means we won't keep trying to derive the hash on subsequent calls to skb_get_hash for the same packet. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 823b96939578eae67b9d6c0e33a39d6a7b6401e7 Author: Tom Herbert Date: Tue Sep 1 09:24:32 2015 -0700 flow_dissector: Add control/reporting of encapsulation Add an input flag to flow dissector on rather dissection should stop when encapsulation is detected (IP/IP or GRE). Also, add a key_control flag that indicates encapsulation was encountered during the dissection. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 2 ++ net/core/flow_dissector.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) commit 872b1abb1ed47a691f465fb3d285f6cf6bcd8663 Author: Tom Herbert Date: Tue Sep 1 09:24:31 2015 -0700 flow_dissector: Add flag to stop parsing when an IPv6 flow label is seen Add an input flag to flow dissector on rather dissection should be stopped when a flow label is encountered. Presumably, the flow label is derived from a sufficient hash of an inner transport packet so further dissection is not needed (that is ports are not included in the flow hash). Using the flow label instead of ports has the additional benefit that packet fragments should hash to same value as non-fragments for a flow (assuming that the same flow label is used). We set this flag by default in for skb_get_hash. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 1 + net/core/flow_dissector.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) commit 8306b688f1a6621b9efe3b0d827e26750528b12a Author: Tom Herbert Date: Tue Sep 1 09:24:30 2015 -0700 flow_dissector: Add flag to stop parsing at L3 Add an input flag to flow dissector on rather dissection should be stopped when an L3 packet is encountered. This would be useful if a caller just wanted to get IP addresses of the outermost header (e.g. to do an L3 hash). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 1 + net/core/flow_dissector.c | 6 ++++++ 2 files changed, 7 insertions(+) commit b840f28b908da0239c8c5d9c8cae362ad21cda97 Author: Tom Herbert Date: Tue Sep 1 09:24:29 2015 -0700 flow_dissector: Support IPv6 fragment header Parse NEXTHDR_FRAGMENT. When seen account for it in the fragment bits of key_control. Also, check if first fragment should be parsed. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 807e165dc44fd93f9d378f861f0540a158d7343a Author: Tom Herbert Date: Tue Sep 1 09:24:28 2015 -0700 flow_dissector: Add control/reporting of fragmentation Add an input flag to flow dissector on rather dissection should be attempted on a first fragment. Also add key_control flags to indicate that a packet is a fragment or first fragment. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/flow_dissector.h | 4 ++++ net/core/flow_dissector.c | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) commit cd79a2382aa5dcefa6e21a7c59bb1bb19e53b74d Author: Tom Herbert Date: Tue Sep 1 09:24:27 2015 -0700 flow_dissector: Add flags argument to skb_flow_dissector functions The flags argument will allow control of the dissection process (for instance whether to parse beyond L3). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/cisco/enic/enic_clsf.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 2 +- include/linux/skbuff.h | 19 +++++++++++-------- net/core/flow_dissector.c | 7 ++++--- net/ethernet/eth.c | 2 +- net/sched/cls_flow.c | 2 +- net/sched/cls_flower.c | 2 +- net/sched/sch_choke.c | 4 ++-- 9 files changed, 23 insertions(+), 19 deletions(-) commit a6e544b0a88b53114bfa5a57e21b7be7a8dfc9d0 Author: Tom Herbert Date: Tue Sep 1 09:24:26 2015 -0700 flow_dissector: Jump to exit code in __skb_flow_dissect Instead of returning immediately (on a parsing failure for instance) we jump to cleanup code. This always sets protocol values in key_control (even on a failure there is still valid information in the key_tags that was set before the problem was hit). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/flow_dissector.c | 51 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 26 deletions(-) commit c6cc1ca7f4d70cbb3ea3a5ca163c5dabaf155cdb Author: Tom Herbert Date: Tue Sep 1 09:24:25 2015 -0700 flowi: Abstract out functions to get flow hash based on flowi Create __get_hash_from_flowi6 and __get_hash_from_flowi4 to get the flow keys and hash based on flowi structures. These are called by __skb_get_hash_flowi6 and __skb_get_hash_flowi4. Also, created get_hash_from_flowi6 and get_hash_from_flowi4 which can be called when just the hash value for a flowi is needed. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 16 ++++++++++++---- include/net/flow.h | 19 +++++++++++++++++++ include/net/flow_dissector.h | 2 ++ net/core/flow.c | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 4 deletions(-) commit bcc83839ffdb063dd2b0370cd85c4f825761fc59 Author: Tom Herbert Date: Tue Sep 1 09:24:24 2015 -0700 skbuff: Make __skb_set_sw_hash a general function Move __skb_set_sw_hash to skbuff.h and add __skb_set_hash which is a common method (between __skb_set_sw_hash and skb_set_hash) to set the hash in an skbuff. Also, move skb_clear_hash to be closer to __skb_set_hash. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 45 ++++++++++++++++++++++++++++---------------- include/net/flow_dissector.h | 5 +++++ net/core/flow_dissector.c | 18 ++++++------------ 3 files changed, 40 insertions(+), 28 deletions(-) commit e5276937ae6e654a811345f0716266f12e77bede Author: Tom Herbert Date: Tue Sep 1 09:24:23 2015 -0700 flow_dissector: Move skb related functions to skbuff.h Move the flow dissector functions that are specific to skbuffs into skbuff.h out of flow_dissector.h. This makes flow_dissector.h have no dependencies on skbuff.h. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 47 +++++++++++++++++++++++++++++++++++++++++ include/net/flow_dissector.h | 50 -------------------------------------------- 2 files changed, 47 insertions(+), 50 deletions(-) commit d3d11fe08ccc9bff174fc958722b5661f0932486 Author: Jean Delvare Date: Tue Sep 1 18:07:41 2015 +0200 tg3: Fix temperature reporting The temperature registers appear to report values in degrees Celsius while the hwmon API mandates values to be exposed in millidegrees Celsius. Do the conversion so that the values reported by "sensors" are correct. Fixes: aed93e0bf493 ("tg3: Add hwmon support for temperature") Signed-off-by: Jean Delvare Cc: Prashant Sreedharan Cc: Michael Chan Cc: stable@vger.kernel.org [v3.6+] Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/tg3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6c6aedcbcbacd7b0cb4b64ed5ac835bc1c60a03 Author: Mark Salter Date: Tue Sep 1 09:36:05 2015 -0400 phylib: fix device deletion order in mdiobus_unregister() commit 8b63ec1837fa ("phylib: Make PHYs children of their MDIO bus, not the bus' parent.") uncovered a problem in mdiobus_unregister() which leads to this warning when I reboot an APM Mustang (arm64) platform: WARNING: CPU: 7 PID: 4239 at fs/sysfs/group.c:224 sysfs_remove_group+0xa0/0xa4() sysfs group fffffe0000e07a10 not found for kobject 'xgene-mii-eth0:03' ... CPU: 7 PID: 4239 Comm: reboot Tainted: G E 4.2.0-0.18.el7.test15.aarch64 #1 Hardware name: AppliedMicro Mustang/Mustang, BIOS 1.1.0 Aug 26 2015 Call Trace: [] dump_backtrace+0x0/0x170 [] show_stack+0x20/0x2c [] dump_stack+0x78/0x9c [] warn_slowpath_common+0xa0/0xd8 [] warn_slowpath_fmt+0x74/0x88 [] sysfs_remove_group+0x9c/0xa4 [] dpm_sysfs_remove+0x5c/0x70 [] device_del+0x44/0x208 [] device_unregister+0x2c/0x7c [] mdiobus_unregister+0x48/0x94 [] xgene_enet_mdio_remove+0x28/0x44 [] xgene_enet_remove+0xd0/0xd8 [] xgene_enet_shutdown+0x2c/0x3c [] platform_drv_shutdown+0x24/0x40 [] device_shutdown+0xf0/0x1b4 [] kernel_restart_prepare+0x40/0x4c [] kernel_restart+0x1c/0x80 [] SyS_reboot+0x17c/0x250 The problem is that mdiobus_unregister() deletes the bus device before unregistering the phy devices on the bus. This wasn't a problem before because the phys were not children of the bus: /sys/devices/platform/APMC0D05:00/net/eth0/xgene-mii-eth0:03 /sys/devices/platform/APMC0D05:00/net/eth0/xgene-mii-eth0 But now that they are: /sys/devices/platform/APMC0D05:00/net/eth0/xgene-mii-eth0/xgene-mii-eth0:03 when mdiobus_unregister deletes the bus device, the phy subdirs are removed from sysfs also. So when the phys are unregistered afterward, we get the warning. This patch changes the order so that phys are unregistered before the bus device is deleted. Fixes: 8b63ec1837fa ("phylib: Make PHYs children of their MDIO bus, not the bus' parent.") Signed-off-by: Mark Salter Reviewed-by: Florian Fainelli Tested-by: Mark Langsdorf Signed-off-by: David S. Miller drivers/net/phy/mdio_bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 01a5ad827a36e36f45e1fdb96903ea115f759865 Author: Yunlei He Date: Mon Aug 31 17:15:10 2015 +0800 f2fs: upset segment_info repair upset segment_info like this: 276000|161 0|0 4|70 3|0 3|0 0|0 0|91 4|0 4|232 4|39 276104|0 4|0 4|1 4|0 4|0 4|280 4|0 4|42 4|262 4|38 276204|179 4|89 4|39 4|24 4|0 4|96 4|3 4|428 4|0 4|118 276304|112 4|97 4|0 4|0 4|0 4|68 4|0 4|0 4|86 4|138 276404|0 4|0 0|166 5|39 4|101 0|111 Signed-off-by: Yunlei He Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17e6b00ac422b49d44a0b8d98402a211f726282d Merge: 5e359bf e324c4d Author: Linus Torvalds Date: Tue Sep 1 14:33:35 2015 -0700 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq updates from Thomas Gleixner: "This updated pull request does not contain the last few GIC related patches which were reported to cause a regression. There is a fix available, but I let it breed for a couple of days first. The irq departement provides: - new infrastructure to support non PCI based MSI interrupts - a couple of new irq chip drivers - the usual pile of fixlets and updates to irq chip drivers - preparatory changes for removal of the irq argument from interrupt flow handlers - preparatory changes to remove IRQF_VALID" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits) irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2 irqchip: Add documentation for the bcm2836 interrupt controller irqchip/bcm2835: Add support for being used as a second level controller irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ PCI: xilinx: Fix typo in function name irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance irqchip/gic: Only allow the primary GIC to set the CPU map PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove unicore32/irq: Prepare puv3_gpio_handler for irq argument removal tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal m68k/irq: Prepare irq handlers for irq argument removal C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal blackfin: Prepare irq handlers for irq argument removal arc/irq: Prepare idu_cascade_isr for irq argument removal sparc/irq: Use access helper irq_data_get_affinity_mask() sparc/irq: Use helper irq_data_get_irq_handler_data() parisc/irq: Use access helper irq_data_get_affinity_mask() mn10300/irq: Use access helper irq_data_get_affinity_mask() irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal ... commit 9b8ff51822893e743eee09350c1928daa3ef503f Author: David Ahern Date: Tue Sep 1 14:26:35 2015 -0600 net: Make table id type u32 A number of VRF patches used 'int' for table id. It should be u32 to be consistent with the rest of the stack. Fixes: 4e3c89920cd3a ("net: Introduce VRF related flags and helpers") 15be405eb2ea9 ("net: Add inet_addr lookup by table") 30bbaa1950055 ("net: Fix up inet_addr_type checks") 021dd3b8a142d ("net: Add routes to the table associated with the device") dc028da54ed35 ("inet: Move VRF table lookup to inlined function") f6d3c19274c74 ("net: FIB tracepoints") Signed-off-by: David Ahern Reviewed-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/net/route.h | 2 +- include/net/vrf.h | 24 ++++++++++++------------ include/trace/events/fib.h | 6 +++--- net/ipv4/af_inet.c | 2 +- net/ipv4/fib_frontend.c | 10 +++++----- net/ipv4/fib_semantics.c | 2 +- 6 files changed, 23 insertions(+), 23 deletions(-) commit 5e359bf2219d8622eb0931701e45af55db323228 Merge: 8d01b66 85e1cd6 Author: Linus Torvalds Date: Tue Sep 1 14:04:50 2015 -0700 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer updates from Thomas Gleixner: "Rather large, but nothing exiting: - new range check for settimeofday() to prevent that boot time becomes negative. - fix for file time rounding - a few simplifications of the hrtimer code - fix for the proc/timerlist code so the output of clock realtime timers is accurate - more y2038 work - tree wide conversion of clockevent drivers to the new callbacks" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (88 commits) hrtimer: Handle failure of tick_init_highres() gracefully hrtimer: Unconfuse switch_hrtimer_base() a bit hrtimer: Simplify get_target_base() by returning current base hrtimer: Drop return code of hrtimer_switch_to_hres() time: Introduce timespec64_to_jiffies()/jiffies_to_timespec64() time: Introduce current_kernel_time64() time: Introduce struct itimerspec64 time: Add the common weak version of update_persistent_clock() time: Always make sure wall_to_monotonic isn't positive time: Fix nanosecond file time rounding in timespec_trunc() timer_list: Add the base offset so remaining nsecs are accurate for non monotonic timers cris/time: Migrate to new 'set-state' interface kernel: broadcast-hrtimer: Migrate to new 'set-state' interface xtensa/time: Migrate to new 'set-state' interface unicore/time: Migrate to new 'set-state' interface um/time: Migrate to new 'set-state' interface sparc/time: Migrate to new 'set-state' interface sh/localtimer: Migrate to new 'set-state' interface score/time: Migrate to new 'set-state' interface s390/time: Migrate to new 'set-state' interface ... commit 21b430d23d233c67e6589ea5054d18392e15a28e Author: Tony Lindgren Date: Tue Sep 1 13:59:25 2015 -0700 ARM: omap2plus_defconfig: Enable MUSB DMA support With recent MUSB changes we can now build in support for multiple DMA implementations. So let's enable DMA by default to make life easier for distro use. Acked-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 81032e34e184a8d63598d215a6d4a3352018ffea Author: Vishal Mahaveer Date: Tue Sep 1 13:59:25 2015 -0700 ARM: DRA752: Add ID detect for ES2.0 ES2.0 is a minor variant of ES1.1. ES2.0 is an incremental revision with various fixes including the following: - reset logic fixes - few assymetric aging logic fixes - MMC clock rate fixes - Ethernet speed fixes - edma fixes for mcasp NOTE: even though we use a compatible of dra742 and dra752, the usage in the Linux kernel is more or less interchangable - we use dra752 more often in the linux kernel compared to dra742 and 4.2-rc6 Signed-off-by: Vishal Mahaveer Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/mach-omap2/id.c | 8 ++++++-- arch/arm/mach-omap2/soc.h | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) commit 05f4f1abc274ac7e8e83424d0cef2d842db91815 Author: Frans Klaver Date: Tue Sep 1 13:59:25 2015 -0700 ARM: OMAP3: vc: fix 'or' always true warning Fix the warning: arch/arm/mach-omap2/vc.c:302:47: warning: logical ‘or’ of collectively exhaustive tests is always true [-Wlogical-op] As we're toggling both CLKREQ and OFFMODE, we should also be checking OFFMODE. Signed-off-by: Frans Klaver Signed-off-by: Tony Lindgren arch/arm/mach-omap2/vc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 874b300a6a0bfe97225ed1f8648fa92238e4d9e9 Author: Tony Lindgren Date: Tue Sep 1 13:59:25 2015 -0700 ARM: OMAP2+: Fix booting if no timer parent clock is available When bringing up a new SoC we needlessly prevent booting at timer init if timer clock_set_parent fails. This can fail if the system is booting on bootloader configured PLL values until the clock framework driver for the PLL is implemented. Let's just WARN instead, this will provide helpful information for anybody bringing up a new SoC what needs to be fixed. This allows to boot dm814x that's still missing the PLL driver. Signed-off-by: Tony Lindgren arch/arm/mach-omap2/timer.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit fe8291e82b5d0b79b743683e5c0fb7e273f7a99a Author: Grygorii Strashko Date: Tue Sep 1 13:59:24 2015 -0700 ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs omap_device_late_init Kernel fails to boot 50% of times (form build to build) with RT-patchset applied due to the following race - on late boot stages deferred_probe_work_func->omap_hsmmc_probe races with omap_device_late_ini. The same issue has been reported now on linux-next (4.3) by Keerthy [1] late_initcall - deferred_probe_initcal() tries to re-probe all pending driver's probe. - later on, some driver is probing in this case It's cpsw.c (but could be any other drivers) cpsw_init - platform_driver_register - really_probe - driver_bound - driver_deferred_probe_trigger and boot proceed. So, at this moment we have deferred_probe_work_func scheduled. late_initcall_sync - omap_device_late_init - omap_device_idle CPU1 CPU2 - deferred_probe_work_func - really_probe - omap_hsmmc_probe - pm_runtime_get_sync late_initcall_sync - omap_device_late_init if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER) { if (od->_state == OMAP_DEVICE_STATE_ENABLED) { - omap_device_idle [ops - IP is disabled] - [fail] - pm_runtime_put_sync - omap_hsmmc_runtime_suspend [ooops!] == log == omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517 davinci_mdio 48485000.mdio: davinci mdio revision 1.6 davinci_mdio 48485000.mdio: detected phy mask fffffff3 libphy: 48485000.mdio: probed davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver unknown davinci_mdio 48485000.mdio: phy[3]: device 48485000.mdio:03, driver unknown omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517 cpsw 48484000.ethernet: Detected MACID = b4:99:4c:c7:d2:48 cpsw 48484000.ethernet: cpsw: Detected MACID = b4:99:4c:c7:d2:49 hctosys: unable to open rtc device (rtc0) omap_hsmmc 480b4000.mmc: omap_device_late_idle: enabled but no driver. Idling ldousb: disabling Unhandled fault: imprecise external abort (0x1406) at 0x00000000 [00000000] *pgd=00000000 Internal error: : 1406 [#1] PREEMPT SMP ARM Modules linked in: CPU: 1 PID: 58 Comm: kworker/u4:1 Not tainted 4.1.2-rt1-00467-g6da3c0a-dirty #5 Hardware name: Generic DRA74X (Flattened Device Tree) Workqueue: deferwq deferred_probe_work_func task: ee6ddb00 ti: edd3c000 task.ti: edd3c000 PC is at omap_hsmmc_runtime_suspend+0x1c/0x12c LR is at _od_runtime_suspend+0xc/0x24 pc : [] lr : [] psr: a0000013 sp : edd3dda0 ip : ee6ddb00 fp : c07be540 r10: 00000000 r9 : c07be540 r8 : 00000008 r7 : 00000000 r6 : ee646c10 r5 : ee646c10 r4 : edd79380 r3 : fa0b4100 r2 : 00000000 r1 : 00000000 r0 : ee646c10 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c5387d Table: 8000406a DAC: 00000015 Process kworker/u4:1 (pid: 58, stack limit = 0xedd3c218) Stack: (0xedd3dda0 to 0xedd3e000) dda0: ee646c70 ee646c10 c0029584 00000000 00000008 c0029590 ee646c70 ee646c10 ddc0: c0029584 c03adfb8 ee646c10 00000004 0000000c c03adff0 ee646c10 00000004 dde0: 0000000c c03ae4ec 00000000 edd3c000 ee646c10 00000004 ee646c70 00000004 de00: fa0b4000 c03aec20 ee6ddb00 ee646c10 00000004 ee646c70 ee646c10 fffffdfb de20: edd79380 00000000 fa0b4000 c03aee90 fffffdfb edd79000 ee646c00 c0474290 de40: 00000000 edda24c0 edd79380 edc81f00 00000000 00000200 00000001 c06dd488 de60: edda3960 ee646c10 ee646c10 c0824cc4 fffffdfb c0880c94 00000002 edc92600 de80: c0836378 c03a7f84 ee646c10 c0824cc4 00000000 c0880c80 c0880c94 c03a6568 dea0: 00000000 ee646c10 c03a66ac ee4f8000 00000000 00000001 edc92600 c03a4b40 dec0: ee404c94 edc83c4c ee646c10 ee646c10 ee646c44 c03a63c4 ee646c10 ee646c10 dee0: c0814448 c03a5aa8 ee646c10 c0814220 edd3c000 c03a5ec0 c0814250 ee6be400 df00: edd3c000 c004e5bc ee6ddb01 00000078 ee6ddb00 ee4f8000 ee6be418 edd3c000 df20: ee4f8028 00000088 c0836045 ee4f8000 ee6be400 c004e928 ee4f8028 00000000 df40: c004e8ec 00000000 ee6bf1c0 ee6be400 c004e8ec 00000000 00000000 00000000 df60: 00000000 c0053450 2e56fa97 00000000 afdffbd7 ee6be400 00000000 00000000 df80: edd3df80 edd3df80 00000000 00000000 edd3df90 edd3df90 edd3dfac ee6bf1c0 dfa0: c0053384 00000000 00000000 c000f668 00000000 00000000 00000000 00000000 dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 f1fc9d7e febfbdff [] (omap_hsmmc_runtime_suspend) from [] (_od_runtime_suspend+0xc/0x24) [] (_od_runtime_suspend) from [] (__rpm_callback+0x24/0x3c) [] (__rpm_callback) from [] (rpm_callback+0x20/0x80) [] (rpm_callback) from [] (rpm_suspend+0xe4/0x618) [] (rpm_suspend) from [] (__pm_runtime_idle+0x60/0x80) [] (__pm_runtime_idle) from [] (omap_hsmmc_probe+0x6bc/0xa7c) [] (omap_hsmmc_probe) from [] (platform_drv_probe+0x44/0xa4) [] (platform_drv_probe) from [] (driver_probe_device+0x170/0x2b4) [] (driver_probe_device) from [] (bus_for_each_drv+0x64/0x98) [] (bus_for_each_drv) from [] (device_attach+0x70/0x88) [] (device_attach) from [] (bus_probe_device+0x84/0xac) [] (bus_probe_device) from [] (deferred_probe_work_func+0x58/0x88) [] (deferred_probe_work_func) from [] (process_one_work+0x134/0x464) [] (process_one_work) from [] (worker_thread+0x3c/0x4fc) [] (worker_thread) from [] (kthread+0xcc/0xe4) [] (kthread) from [] (ret_from_fork+0x14/0x2c) Code: e594302c e593202c e584205c e594302c (e5932128) ---[ end trace 0000000000000002 ]--- The issue happens because omap_device_late_init() do not take into account that some drivers are present, but their probes were not finished successfully and where deferred instead. This is the valid case, and omap_device_late_init() should not idle such devices. To fix this issue, the value of omap_device->_driver_status field should be checked not only for BUS_NOTIFY_BOUND_DRIVER (driver is present and has been bound to device successfully), but also checked for BUS_NOTIFY_BIND_DRIVER (driver about to be bound) - which means driver is present and there was try to bind it to device. [1] http://www.spinics.net/lists/arm-kernel/msg441880.html Cc: Tero Kristo Cc: Keerthy Tested-by: Keerthy Signed-off-by: Grygorii Strashko Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_device.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8d01b66b4f23a9fcf5c6787b27f0be5f8cbae98c Merge: 2faf962 341a670 Author: Linus Torvalds Date: Tue Sep 1 13:29:48 2015 -0700 Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC 64-bit changes from Olof Johansson: "Here's our branch of ARM64 contents for this merge window. Most of this is DT contents for new SoCs (or those who have seen new device support added). Maybe we should stop separating out the arm64 contents here to avoid the kind of internal conflicts as we got this time around, where 32- and 64-bit contents conflicted. Anyhow, on the actual contents: New SoCs: - Broadcom North Star 2 (ns2) - Marvell Berlin4CT - Mediatek MT6795 - Rockchip RK3368 In addition, there are enhancements for the following platforms: - Mediatek MT8173: cpuidle-dt updates, misc other additions - ZyncMP: A bunch of devices added to the existing DTSI - Qualcomm MSM8916 and APQ8016 updates for USB, etc. + a handful of other updates for various platforms" * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (47 commits) ARM64: dts: vexpress: Use assigned-clock-parents for sp810 ARM64: dts: mt6795: enable basic SMP bringup for MT6795 arm64: Enable Marvell Berlin SoC family in defconfig arm64: Enable Marvell Berlin SoC family in Kconfig arm64: dts: Add dts files for Marvell Berlin4CT SoC ARM64: zynqmp: Move SPI nodes to the right location ARM64: zynqmp: Move uart and ttcs to the right location ARM64: zynqmp: Enable spi flashes on ep108 ARM64: zynqmp: Add eeprom memories on i2c bus ARM64: zynqmp: Enable sdhci on ep108 ARM64: zynqmp: Enable watchdog on ep108 ARM64: zynqmp: Add DWC3 usb support ARM64: zynqmp: Add SMMU support ARM64: zynqmp: Add CANs node for platform ARM64: zynqmp: Use zynqmp specific compatible string for gpio devicetree: xilinx: zynqmp: add sata node PCI: iproc: Fix BCMA dependency in Kconfig arm64: dts: Add Broadcom North Star 2 support arm64: Add Broadcom iProc family support PCI: iproc: Fix ARM64 dependency in Kconfig ... commit 2faf962d90ca4c5ee7ba026b7351b1f74500bcdf Merge: b3a5af4 ba5d183 Author: Linus Torvalds Date: Tue Sep 1 13:17:43 2015 -0700 Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC defconfig updates from Olof Johansson: "We mostly keep defconfigs updates on a separate branch due to their tendency to conflict between platforms and this encourages more careful separation of code changes and config changes. Most updates here are minor tweaks, enabling new drivers for various platforms, and so on. Renesas also removed one defconfig (marzen_defconfig)" * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (44 commits) ARM: add TC2 PM support to multi_v7_defconfig ARM: tegra: Update multi_v7_defconfig ARM: tegra: Update default configuration ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER ARM: at91/defconfig: at91_dt: enable DRM hlcdc support ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I, cryptodev ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON, FHANDLE ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig ARM: multi_v7_defconfig: Select MX6UL and MX7D ARM: prima2_defconfig: enable build for hwspinlock ARM: prima2_defconfig: enable build for RTC ARM: prima2_defconfig: enable build for misc input ARM: prima2_defconfig: enable build for SiRFSoC SDHC host ARM: prima2_defconfig: fix the outdated defconfig ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC ARM: defconfig: orion5x: add DT support ARM: qcom_defconfig: Enable options for KS8851 ethernet ARM: multi_v7_defconfig: Enable support for PWM Regulators ARM: multi_v7_defconfig: Enable ST's PWM driver ... commit b3a5af435ab4b860714b2f56c65fd506aa677e71 Merge: 1021781 4c80a00 Author: Linus Torvalds Date: Tue Sep 1 13:09:20 2015 -0700 Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM DT updates from Olof Johansson: "Ladies and gentlemen, we proudly announce to you the latest branch of ARM device tree contents for the mainline kernel. Come and see, come and see! No less than twentythree thousand lines of additions! Just imagine the joy you will have of using your mainline kernel on newly supported hardware such as Rockchip Chromebooks, Freescale i.MX6UL boards or UniPhier hardware! For those of you feeling less adventurous, added hardware support on platforms such as TI DM814x and Gumstix Overo platforms might be more of your liking. We've got something for everyone here! Ahem. Cough. So, anyway... This is the usual large batch of DT updates. Lots and lots of smaller changes, some of the larger ones to point out are: - Rockchip veyron (Chromebook) support, as well as several other new boards - DRM support on Atmel AT91SAM9N12EK - USB additions on some Allwinner platforms - Mediatek MT6580 support - Freescale i.MX6UL support - cleanups for Renesas shmobile platforms - lots of added devices on LPC18xx - lots of added devices and boards on UniPhier There's also some dependent code added here, in particular some branches that are primarily merged through the clock tree" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (389 commits) ARM: tegra: Add gpio-ranges property ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114 ARM: tegra: Add Tegra124 PMU support ARM: tegra: jetson-tk1: Add GK20A GPU DT node ARM: tegra: venice2: Add GK20A GPU DT node ARM: tegra: Add IOMMU node to GK20A ARM: tegra: Add CPU regulator to the Jetson TK1 device tree ARM: tegra: Add entries for cpufreq on Tegra124 ARM: tegra: Enable the DFLL on the Jetson TK1 ARM: tegra: Add the DFLL to Tegra124 device tree ARM: dts: zynq: Add devicetree entry for Xilinx Zynq reset controller. ARM: dts: UniPhier: fix PPI interrupt CPU mask of timer nodes ARM: dts: rockchip: correct regulator power states for suspend ARM: dts: rockchip: correct regulator PM properties ARM: dts: vexpress: Use assigned-clock-parents for sp810 pinctrl: tegra: Only set the gpio range if needed arm: boot: dts: am4372: add ARM timers and SCU nodes ARM: dts: AM4372: Add the am4372-rtc compatible string ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain ... commit 102178108e2246cb4b329d3fb7872cd3d7120205 Merge: 50686e8 21815b9 Author: Linus Torvalds Date: Tue Sep 1 13:00:04 2015 -0700 Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC driver updates from Olof Johansson: "Some releases this branch is nearly empty, others we have more stuff. It tends to gather drivers that need SoC modification or dependencies such that they have to (also) go in through our tree. For this release, we have merged in part of the reset controller tree (with handshake that the parts we have merged in will remain stable), as well as dependencies on a few clock branches. In general, new items here are: - Qualcomm driver for SMM/SMD, which is how they communicate with the coprocessors on (some) of their platforms - memory controller work for ARM's PL172 memory controller - reset drivers for various platforms - PMU power domain support for Marvell platforms - Tegra support for T132/T210 SoCs: PMC, fuse, memory controller per-SoC support" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (49 commits) ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze() ARM: tegra: Disable cpuidle if PSCI is available soc/tegra: pmc: Use existing pclk reference soc/tegra: pmc: Remove unnecessary return statement soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile memory: tegra: Add Tegra210 support memory: tegra: Add support for a variable-size client ID bitfield clk: shmobile: rz: Add CPG/MSTP Clock Domain support clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support clk: shmobile: Add CPG/MSTP Clock Domain support ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets reset: reset-zynq: Adding support for Xilinx Zynq reset controller. docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings. MIPS: ath79: Add the reset controller to the AR9132 dtsi reset: Add a driver for the reset controller on the AR71XX/AR9XXX devicetree: Add bindings for the ATH79 reset controller reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property doc: dt: add documentation for lpc1850-rgu reset driver ... commit 972398fa0a5f47c6ee0bde4d6d24b29f90ec888d Author: Trond Myklebust Date: Tue Sep 1 12:03:56 2015 -0700 NFSv4.1/flexfiles: Fix freeing of mirrors Mirrors are now shared objects, so we should not be freeing them directly inside ff_layout_free_lseg(). We should already be doing the right thing in _ff_layout_free_lseg(), so just let it handle things. Also ensure that ff_layout_free_mirror() frees the RPC credential if it is set. Fixes: 28a0d72c6867 ("Add refcounting to struct nfs4_ff_layout_mirror") Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 50686e8a3aed2f5d295e9d2e79ff43df461c7b76 Merge: c5fc249 1ec6f70 Author: Linus Torvalds Date: Tue Sep 1 12:18:40 2015 -0700 Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC platform updates from Olof Johansson: "New or improved SoC support: - add support for Atmel's SAMA5D2 SoC - add support for Freescale i.MX6UL - improved support for TI's DM814x platform - misc fixes and improvements for RockChip platforms - Marvell MVEBU suspend/resume support A few driver changes that ideally would belong in the drivers branch are also here (acked by appropriate maintainers): - power key input driver for Freescale platforms (svns) - RTC driver updates for Freescale platforms (svns/mxc) - clk fixes for TI DM814/816X + a bunch of other changes for various platforms" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits) ARM: rockchip: pm: Fix PTR_ERR() argument ARM: imx: mach-imx6ul: Fix allmodconfig build clk: ti: fix for definition movement ARM: uniphier: drop v7_invalidate_l1 call at secondary entry memory: kill off set_irq_flags usage rtc: snvs: select option REGMAP_MMIO ARM: brcmstb: select ARCH_DMA_ADDR_T_64BIT for LPAE ARM: BCM: Enable ARM erratum 798181 for BRCMSTB ARM: OMAP2+: Fix power domain operations regression caused by 81xx ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend ARM: rockchip: set correct stabilization thresholds in suspend ARM: rockchip: rename osc_switch_to_32k variable ARM: imx6ul: add fec MAC refrence clock and phy fixup init ARM: imx6ul: add fec bits to GPR syscon definition rtc: mxc: add support of device tree dt-binding: document the binding for mxc rtc rtc: mxc: use a second rtc clock ARM: davinci: cp_intc: use IRQCHIP_SKIP_SET_WAKE instead of irq_set_wake callback soc: mediatek: Fix SCPSYS compilation ARM: at91/soc: add basic support for new sama5d2 SoC ... commit c5fc249862af862df027030188cc083e072ecd19 Merge: 00e3fcc 97a2482 Author: Linus Torvalds Date: Tue Sep 1 12:10:20 2015 -0700 Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC cleanups from Olof Johansson: "A large cleanup branch this release, with a healthy 10k negative line delta. Most of this is removal of legacy (non-DT) support of shmobile platforms. There is also removal of two non-DT platforms on OMAP, and the plat-samsung directory is cleaned out by moving most of the previously shared-location-but-not-actually-shared files from there to the appropriate mach directories instead. There are other sets of changes in here as well: - Rob Herring removed use of set_irq_flags under all platforms and moved to genirq alternatives - a series of timer API conversions to set-state interface - ep93xx, nomadik and ux500 cleanups from Linus Walleij - __init annotation fixes from Nicolas Pitre + a bunch of other changes that all add up to a nice set of cleanups" * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (108 commits) ARM/fb: ep93xx: switch framebuffer to use modedb only ARM: gemini: Setup timer3 as free running timer ARM: gemini: Use timer1 for clockevent ARM: gemini: Add missing register definitions for gemini timer ARM: ep93xx/timer: Migrate to new 'set-state' interface ARM: nomadik: push accelerometer down to boards ARM: nomadik: move l2x0 setup to device tree ARM: nomadik: selectively enable UART0 on boards ARM: nomadik: move hog code to use DT hogs ARM: shmobile: Fix mismerges ARM: ux500: simplify secondary CPU boot ARM: SAMSUNG: remove keypad-core header in plat-samsung ARM: SAMSUNG: local watchdog-reset header in mach-s3c64xx ARM: SAMSUNG: local onenand-core header in mach-s3c64xx ARM: SAMSUNG: local irq-uart header in mach-s3c64xx ARM: SAMSUNG: local backlight header in mach-s3c64xx ARM: SAMSUNG: local ata-core header in mach-s3c64xx ARM: SAMSUNG: local regs-usb-hsotg-phy header in mach-s3c64xx ARM: SAMSUNG: local spi-core header in mach-s3c24xx ARM: SAMSUNG: local nand-core header in mach-s3c24xx ... commit 00e3fcc221f6fe6a890bf3e0e71c6b9944e58233 Merge: 28dce7c 330349f Author: Linus Torvalds Date: Tue Sep 1 12:01:40 2015 -0700 Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC non-urgent fixes from Olof Johansson: "We normally collect non-urgent fixes during the release cycle and queue them for the merge window. This time around the list is short (in part because some have gone in other branches). - Maintainers addition for bcm2835 - IRQ number fix for orion5x (been present since 3.18) - DT fix for display on exynos3250 - Exynos fix to use of IOMEM_ERR_PTR properly" * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: orion5x: fix legacy orion5x IRQ numbers MAINTAINERS: Explicitly add linux-arm-kernel for bcm2835 MAINTAINERS: Add myself as a bcm2835 co-maintainer. ARM: EXYNOS: Use IOMEM_ERR_PTR when function returns iomem ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato commit 28dce7c7703fd6ec922fa63b1187cf9f43d1d1c4 Merge: 361f7d1 3d59265 Author: Linus Torvalds Date: Tue Sep 1 11:55:57 2015 -0700 Merge tag 'arc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC architecture updates from Vineet Gupta: "ARC updates for 4.3: - perf support for ARCv2 based cores (sampling interrupt, SMP) - leftovers for ARCv2 support - futex fixes" * tag 'arc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARCv2: entry: Fix reserved handler ARCv2: perf: Finally introduce HS perf unit ARCv2: perf: SMP support ARCv2: perf: implement exclusion of event counting in user or kernel mode ARCv2: perf: Support sampling events using overflow interrupts ARCv2: perf: implement "event_set_period" ARC: perf: cap the number of counters to hardware max of 32 ARC: Eliminate some ARCv2 specific code for ARCompact build ARC: add/fix some comments in code - no functional change ARC: change some branchs to jumps to resolve linkage errors ARC: ensure futex ops are atomic in !LLSC config ARC: Enable HAVE_FUTEX_CMPXCHG ARC: make futex_atomic_cmpxchg_inatomic() return bimodal ARC: futex cosmetics ARC: add barriers to futex code ARCv2: IOC: Allow boot time disable ARCv2: SLC: Allow boot time disable ARCv2: Support IO Coherency and permutations involving L1 and L2 caches ARC: Enable optimistic spinning for LLSC config MAINTAINERS: add git tree for the arc architecture commit f984a7ce58ea9a12eca7f960bdf68124c8589b60 Author: J. Bruce Fields Date: Tue Sep 1 13:40:53 2015 -0400 nfsd: return CLID_INUSE for unexpected SETCLIENTID_CONFIRM case Somebody with a Solaris client was hitting this case. We haven't figured out why yet, and don't have a reproducer. Meanwhile Frank noticed that RFC 7530 actually recommends CLID_INUSE for this case. Unlikely to help the original reporter, but may as well fix it. Reported-by: Frank Filz Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 361f7d175734a8e21bcd0585eca9be195c12c5c5 Merge: 25525be e971aa2 Author: Linus Torvalds Date: Tue Sep 1 10:33:31 2015 -0700 Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 core platform updates from Ingo Molnar: "The main changes are: - Intel Atom platform updates. (Andy Shevchenko) - modularity fixlets. (Paul Gortmaker) - x86 platform clockevents driver updates for lguest, uv and Xen. (Viresh Kumar) - Microsoft Hyper-V TSC fixlet. (Vitaly Kuznetsov)" * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/platform: Make atom/pmc_atom.c explicitly non-modular x86/hyperv: Mark the Hyper-V TSC as unstable x86/xen/time: Migrate to new set-state interface x86/uv/time: Migrate to new set-state interface x86/lguest/timer: Migrate to new set-state interface x86/pci/intel_mid_pci: Use proper constants for irq polarity x86/pci/intel_mid_pci: Make intel_mid_pci_ops static x86/pci/intel_mid_pci: Propagate actual return code x86/pci/intel_mid_pci: Work around for IRQ0 assignment x86/platform/iosf_mbi: Add Intel Tangier PCI id x86/platform/iosf_mbi: Source cleanup x86/platform/iosf_mbi: Remove NULL pointer checks for pci_dev_put() x86/platform/iosf_mbi: Check return value of debugfs_create properly x86/platform/iosf_mbi: Move to dedicated folder x86/platform/intel/pmc_atom: Move the PMC-Atom code to arch/x86/platform/atom x86/platform/intel/pmc_atom: Add Cherrytrail PMC interface x86/platform/intel/pmc_atom: Supply register mappings via PMC object x86/platform/intel/pmc_atom: Print index of device in loop x86/platform/intel/pmc_atom: Export accessors to PMC registers commit 25525bea46e7d5bc1f82cbc12de2f27b9c346a92 Merge: 2962156 2baa891 Author: Linus Torvalds Date: Tue Sep 1 10:07:40 2015 -0700 Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 mm updates from Ingo Molnar: "The dominant change in this cycle was the continued work to isolate kernel drivers from MTRR legacies: this tree gets rid of all kernel internal driver interfaces to MTRRs (mostly by rewriting it to proper PAT interfaces), the only access left is the /proc/mtrr ABI. This work was done by Luis R Rodriguez. There's also some related PCI interface additions for which I've Cc:-ed Bjorn" * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits) x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add() and mtrr_del() s390/io: Add pci_iomap_wc() and pci_iomap_wc_range() drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc() drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc() drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc() PCI: Add pci_iomap_wc() variants drivers/video/fbdev/gxt4500: Use pci_ioremap_wc_bar() to map framebuffer drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and pci_ioremap_wc_bar() drivers/video/fbdev/i740fb: Use arch_phys_wc_add() and pci_ioremap_wc_bar() PCI: Add pci_ioremap_wc_bar() x86/mm: Make kernel/check.c explicitly non-modular x86/mm/pat: Make mm/pageattr[-test].c explicitly non-modular x86/mm/pat: Add comments to cachemode translation tables arch/*/io.h: Add ioremap_uc() to all architectures drivers/video/fbdev/atyfb: Use arch_phys_wc_add() and ioremap_wc() drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC drivers/video/fbdev/atyfb: Clarify ioremap() base and length used drivers/video/fbdev/atyfb: Carve out framebuffer length fudging into a helper x86/mm, asm-generic: Add IOMMU ioremap_uc() variant default ... commit 2962156d5cc0e7f959353d3f5275da7cc3765f06 Merge: 6b2282a 9d87cd6 Author: Linus Torvalds Date: Tue Sep 1 10:05:44 2015 -0700 Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 irq fixlet from Ingo Molnar: "A single change that hides the 'HYP:' line in /proc/interrupts when it's unused" * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/irq: Hide 'HYP:' line in /proc/interrupts when not on Xen/Hyper-V commit 2ca495ac27d245513c11fed70591b1838250e240 Author: Keith Busch Date: Tue Sep 1 10:46:44 2015 -0600 blk: Fix bio_io_vec index when checking bvec gaps Corrects a coding error from earlier patch. Reported by: Sagi Grimberg Signed-off-by: Keith Busch Fixes: 03100aada96f ("block: Replace SG_GAPS with new queue limits mask") Signed-off-by: Jens Axboe block/blk-merge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a6ac3044f1504fe4521efa7334095c9c9ceecfd Author: Marc Zyngier Date: Tue Sep 1 10:08:53 2015 +0100 irqchip/GIC: Fix EOImode setting for non-DT/ACPI systems Non-DT/ACPI systems call directly into the GIC driver at init time. Turns out 0b996fd35957 ("irqchip/GIC: Convert to EOImode == 1") breaks old non firmware-driven platforms, as the driver only works out the capability of the platform on the DT/ACPI paths. Fix this thinko by forcing EOImode==0 on non-DT platforms, which are not capable of supporting a hypervisor anyway. Reported-and-tested-by: Guenter Roeck Signed-off-by: Marc Zyngier Cc: linux-arm-kernel@lists.infradead.org Cc: Jason Cooper Link: http://lkml.kernel.org/r/1441098533-31523-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit 7eba7d90d48217a97afc171a311b386bde965f39 Author: Naresh Kamboju Date: Mon Aug 31 17:11:56 2015 +0530 selftests/zram: Makefile fix Do not override run_tests, The default rule will just run TEST_PROGS Signed-off-by: Naresh Kamboju Acked-by: Michael Ellerman Signed-off-by: Shuah Khan tools/testing/selftests/zram/Makefile | 3 --- 1 file changed, 3 deletions(-) commit 2dfb28e3410d775a687d429f5cadf88e795e7eb6 Author: Naresh Kamboju Date: Mon Aug 31 17:11:55 2015 +0530 selftests/zram: must be run as root Adding new functionality check_prereqs() to check test must be run as root Signed-off-by: Naresh Kamboju Signed-off-by: Shuah Khan tools/testing/selftests/zram/zram.sh | 12 ++++++++++++ tools/testing/selftests/zram/zram01.sh | 1 + tools/testing/selftests/zram/zram02.sh | 1 + tools/testing/selftests/zram/zram_lib.sh | 10 ++++++++++ 4 files changed, 24 insertions(+) commit 6b2282aa372665c14ea1100b63ac0703051407e9 Merge: 0c0fee0 b1c599b Author: Linus Torvalds Date: Tue Sep 1 09:41:03 2015 -0700 Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 cpu updates from Ingo Molnar: "Two changes: a suspend/resume quirk and a new CPUID bit definition" * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/cpufeature: Add feature bit for Intel's Silicon Debug CPUID bit x86/cpu: Restore MSR_IA32_ENERGY_PERF_BIAS after resume commit 0c0fee018d14b585461b146bdeda8bab9a61c211 Merge: a0c0d985 4daa832 Author: Linus Torvalds Date: Tue Sep 1 09:33:26 2015 -0700 Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 init code fixlet from Ingo Molnar: "A single change: fix obsolete init code annotations" * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86: Drop bogus __ref / __refdata annotations commit a0c0d985ded583e52399b5158791bedc2815eefa Merge: 11e612d 16eefbd Author: Linus Torvalds Date: Tue Sep 1 09:32:37 2015 -0700 Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 build fixlet from Ingo Molnar: "A single change propagating CONFIG_JUMP_LABEL into the x86 defconfigs" * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/kconfig: Enable CONFIG_JUMP_LABEL in the defconfigs commit af4aeadd8c04303c0aa2d112145c3627e2ebd026 Author: Stephane Eranian Date: Tue Sep 1 11:30:14 2015 +0200 perf tools: Fix link time error with sample_reg_masks on non x86 This patch makes perf compile on non x86 platforms by defining a weak symbol for sample_reg_masks[] in util/perf_regs.c. The patch also moves the REG() and REG_END() macros into the util/per_regs.h header file. The macros are renamed to SMPL_REG/SMPL_REG_END to avoid clashes with other header files. Signed-off-by: Stephane Eranian Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441099814-26783-1-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/perf_regs.c | 44 +++++++++++++++++------------------- tools/perf/util/perf_regs.c | 4 ++++ tools/perf/util/perf_regs.h | 2 ++ 3 files changed, 27 insertions(+), 23 deletions(-) commit 11e612ddb4bc667d0b830bfaab3acdf8b86da845 Merge: 5778077 656bba3 Author: Linus Torvalds Date: Tue Sep 1 09:04:31 2015 -0700 Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 boot updates from Ingo Molnar: "The main x86 bootup related changes in this cycle were: - more boot time optimizations. (Len Brown) - implement hex output to allow the debugging of early bootup parameters. (Kees Cook) - remove obsolete MCA leftovers. (Paolo Pisati)" * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/smpboot: Remove APIC.wait_for_init_deassert and atomic init_deasserted x86/smpboot: Remove SIPI delays from cpu_up() x86/smpboot: Remove udelay(100) when polling cpu_callin_map x86/smpboot: Remove udelay(100) when polling cpu_initialized_map x86/boot: Obsolete the MCA sys_desc_table x86/boot: Add hex output for debugging commit 04aa90b529ee45c5ee88997bc214202e07b26979 Author: Wang Nan Date: Tue Sep 1 05:56:45 2015 +0000 perf build: Fix Intel PT instruction decoder dependency problem I hit following building error randomly: ... /bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c: No such file or directory ... LINK /path/to/kernel/buildperf/plugin_mac80211.so LINK /path/to/kernel/buildperf/plugin_kmem.so LINK /path/to/kernel/buildperf/plugin_xen.so LINK /path/to/kernel/buildperf/plugin_hrtimer.so In file included from util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0: util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such file or directory #include "inat-tables.c" ^ compilation terminated. make[4]: *** [/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error 1 make[4]: *** Waiting for unfinished jobs.... LINK /path/to/kernel/buildperf/plugin_function.so This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries to generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically but forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder directory. This patch fixes it by adding $(call rule_mkdir) like other similar rules. Signed-off-by: Wang Nan Acked-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1441087005-107540-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt-decoder/Build | 1 + 1 file changed, 1 insertion(+) commit 5778077d03cb25aac9b6a428e18970642fc019e3 Merge: 65a9959 7e01ebf Author: Linus Torvalds Date: Tue Sep 1 08:40:25 2015 -0700 Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 asm changes from Ingo Molnar: "The biggest changes in this cycle were: - Revamp, simplify (and in some cases fix) Time Stamp Counter (TSC) primitives. (Andy Lutomirski) - Add new, comprehensible entry and exit handlers written in C. (Andy Lutomirski) - vm86 mode cleanups and fixes. (Brian Gerst) - 32-bit compat code cleanups. (Brian Gerst) The amount of simplification in low level assembly code is already palpable: arch/x86/entry/entry_32.S | 130 +---- arch/x86/entry/entry_64.S | 197 ++----- but more simplifications are planned. There's also the usual laudry mix of low level changes - see the changelog for details" * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (83 commits) x86/asm: Drop repeated macro of X86_EFLAGS_AC definition x86/asm/msr: Make wrmsrl() a function x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer x86/asm: Add MONITORX/MWAITX instruction support x86/traps: Weaken context tracking entry assertions x86/asm/tsc: Add rdtscll() merge helper selftests/x86: Add syscall_nt selftest selftests/x86: Disable sigreturn_64 x86/vdso: Emit a GNU hash x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their TIF masks x86/entry/32: Migrate to C exit path x86/entry/32: Remove 32-bit syscall audit optimizations x86/vm86: Rename vm86->v86flags and v86mask x86/vm86: Rename vm86->vm86_info to user_vm86 x86/vm86: Clean up vm86.h includes x86/vm86: Move the vm86 IRQ definitions to vm86.h x86/vm86: Use the normal pt_regs area for vm86 x86/vm86: Eliminate 'struct kernel_vm86_struct' x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86' x86/vm86: Move vm86 fields out of 'thread_struct' ... commit 3b27d13940c3710a1128527c43719cb0bb05d73b Author: Wang Nan Date: Tue Sep 1 03:29:44 2015 +0000 perf dwarf: Fix potential array out of bounds access There is a problem in the dwarf-regs.c files for sh, sparc and x86 where it is possible to make an out-of-bounds array access when searching for register names. This patch fixes it by replacing '<=' to '<', so when register (number == XXX_MAX_REGS), get_arch_regstr() will return NULL. Signed-off-by: Wang Nan Reviewed-by: Matt Fleming Acked-by: Jiri Olsa Acked-by: Masami Hiramatsu Cc: David S. Miller Cc: Zefan Li Cc: pi3orama@huawei.com Link: http://lkml.kernel.org/r/1441078184-105038-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/sh/util/dwarf-regs.c | 2 +- tools/perf/arch/sparc/util/dwarf-regs.c | 2 +- tools/perf/arch/x86/util/dwarf-regs.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e625ccec1fa6c24620f38fd72d5b2fd62230ad2b Merge: 56963d9 404c2db 5021282 Author: Rafael J. Wysocki Date: Tue Sep 1 15:54:30 2015 +0200 Merge branches 'pm-tools' and 'powercap' * pm-tools: tools: cpupower: Fix error when running cpupower monitor tools/power turbostat: fix typo on DRAM column in Joules-mode cpupower: Do not change the frequency of offline cpu tools/power turbostat: fix parameter passing for forked command tools/power turbostat: dump CONFIG_TDP tools/power turbostat: cpu0 is no longer hard-coded, so update output tools/power turbostat: update turbostat(8) * powercap: powercap / RAPL: disable the 2nd power limit properly powercap / RAPL: Add support for Broadwell-H powercap / RAPL: Add support for Skylake H/S commit 56963d99b72ac52bb3185be7fe9832c1715c655a Merge: 5cf896b 2fd77ff 8bb6944 3fc147e Author: Rafael J. Wysocki Date: Tue Sep 1 15:54:20 2015 +0200 Merge branches 'pm-sleep', 'pm-domains' and 'pm-avs' * pm-sleep: PM / suspend: make sync() on suspend-to-RAM build-time optional PM / sleep: Allow devices without runtime PM to do direct-complete PM / autosleep: Use workqueue for user space wakeup sources garbage collector * pm-domains: PM / Domains: Fix typo in description of genpd_dev_pm_detach() PM / Domains: Remove unusable governor dummies PM / Domains: Make pm_genpd_init() available to modules PM / domains: Align column headers and data in pm_genpd_summary output PM / Domains: Return -EPROBE_DEFER if we fail to init or turn-on domain PM / Domains: Correct unit address in power-controller example PM / Domains: Remove intermediate states from the power off sequence * pm-avs: PM / AVS: rockchip-io: add io selectors and supplies for rk3368 PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS commit 5cf896b3c7842036ba37cc7057d74d5a2af159a7 Merge: ac2a29c 4c1ed5a 00dabd5 f4745a9 Author: Rafael J. Wysocki Date: Tue Sep 1 15:53:37 2015 +0200 Merge branches 'pm-cpuidle', 'pm-devfreq' and 'pm-clk' * pm-cpuidle: cpuidle/coupled: Remove redundant 'dev' argument of cpuidle_state_is_coupled() cpuidle/coupled: Remove cpuidle_device::safe_state_index intel_idle: Skylake Client Support intel_idle: allow idle states to be freeze-mode specific * pm-devfreq: PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding * pm-clk: PM / clk: don't return int on __pm_clk_enable() commit ac2a29c8a4a641574febccd10169b26138a5d656 Merge: 4ffe18c 50a3cb0 Author: Rafael J. Wysocki Date: Tue Sep 1 15:52:41 2015 +0200 Merge branch 'pm-opp' * pm-opp: PM / OPP: Drop unlikely before IS_ERR(_OR_NULL) PM / OPP: Fix static checker warning (broken 64bit big endian systems) PM / OPP: Free resources and properly return error on failure cpufreq-dt: make scaling_boost_freqs sysfs attr available when boost is enabled cpufreq: dt: Add support for turbo/boost mode cpufreq: dt: Add support for operating-points-v2 bindings cpufreq: Allow drivers to enable boost support after registering driver cpufreq: Update boost flag while initializing freq table from OPPs PM / OPP: add dev_pm_opp_is_turbo() helper PM / OPP: Add helpers for initializing CPU OPPs PM / OPP: Add support for opp-suspend PM / OPP: Add OPP sharing information to OPP library PM / OPP: Add clock-latency-ns support PM / OPP: Add support to parse "operating-points-v2" bindings PM / OPP: Break _opp_add_dynamic() into smaller functions PM / OPP: Allocate dev_opp from _add_device_opp() PM / OPP: Create _remove_device_opp() for freeing dev_opp PM / OPP: Relocate few routines PM / OPP: Create a directory for opp bindings PM / OPP: Update bindings to make opp-hz a 64 bit value commit 4ffe18c2556f2848c4e57457915b08a63dc00fd5 Merge: 4980125 72e624d Author: Rafael J. Wysocki Date: Tue Sep 1 15:52:35 2015 +0200 Merge branch 'pm-cpufreq' * pm-cpufreq: (53 commits) cpufreq: speedstep-lib: Use monotonic clock cpufreq: powernv: Increase the verbosity of OCC console messages cpufreq: sfi: use kmemdup rather than duplicating its implementation cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor() cpufreq: rename cpufreq_real_policy as cpufreq_user_policy cpufreq: remove redundant 'policy' field from user_policy cpufreq: remove redundant 'governor' field from user_policy cpufreq: update user_policy.* on success cpufreq: use memcpy() to copy policy cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event cpufreq: mediatek: Add MT8173 cpufreq driver dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings intel_pstate: append more Oracle OEM table id to vendor bypass list intel_pstate: Add SKY-S support intel_pstate: Fix possible overflow complained by Coverity cpufreq: Correct a freq check in cpufreq_set_policy() cpufreq: Lock CPU online/offline in cpufreq_register_driver() cpufreq: Replace recover_policy with new_policy in cpufreq_online() cpufreq: Separate CPU device registration from CPU online cpufreq: powernv: Restore cpu frequency to policy->cur on unthrottling ... commit 72e624de6e6f0d5a638fbc23842aa76ae048e9e7 Author: Abhilash Jindal Date: Tue Aug 11 12:01:22 2015 -0400 cpufreq: speedstep-lib: Use monotonic clock Wall time obtained from do_gettimeofday is susceptible to sudden jumps due to user setting the time or due to NTP. Monotonic time is constantly increasing time better suited for comparing two timestamps. Signed-off-by: Abhilash Jindal Signed-off-by: Rafael J. Wysocki drivers/cpufreq/speedstep-lib.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 309d0631cc329ca1051c631c89e0acc9b752cb4d Author: Shilpasri G Bhat Date: Thu Aug 27 14:41:44 2015 +0530 cpufreq: powernv: Increase the verbosity of OCC console messages Modify the OCC reset/load/active event message to make it clearer for the user to understand the event and effect of the event. Suggested-by: Stewart Smith Signed-off-by: Shilpasri G Bhat Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/powernv-cpufreq.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit a482e5562e48d89ea50f41f9fc6ed3a9768de2ff Author: Andrzej Hajda Date: Fri Aug 7 09:59:17 2015 +0200 cpufreq: sfi: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/sfi-cpufreq.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 36dfef23cd26a6d3b71dd86509e34d311f1cd906 Author: Viresh Kumar Date: Mon Aug 3 08:36:20 2015 +0530 cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor() Driver is guaranteed to be present on a call to cpufreq_parse_governor() and there is no need to check for !cpufreq_driver. Drop it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 4 ---- 1 file changed, 4 deletions(-) commit c7a7b418dd1991079dd7ef03fec7d1863ef96154 Author: Viresh Kumar Date: Mon Aug 3 08:36:19 2015 +0530 cpufreq: rename cpufreq_real_policy as cpufreq_user_policy Its all about caching min/max freq requested by userspace, and the name 'cpufreq_real_policy' doesn't fit that well. Rename it to cpufreq_user_policy. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki include/linux/cpufreq.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 88dc4384958759510db248bf9158434ac783d407 Author: Viresh Kumar Date: Mon Aug 3 08:36:18 2015 +0530 cpufreq: remove redundant 'policy' field from user_policy Its always same as policy->policy, and there is no need to keep another copy of it. Remove it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 10 +--------- include/linux/cpufreq.h | 1 - 2 files changed, 1 insertion(+), 10 deletions(-) commit e27f8bd248756310a6df8b67f96d41d5a693642c Author: Viresh Kumar Date: Mon Aug 3 08:36:17 2015 +0530 cpufreq: remove redundant 'governor' field from user_policy Its always same as policy->governor, and there is no need to keep another copy of it. Remove it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 7 ++----- include/linux/cpufreq.h | 1 - 2 files changed, 2 insertions(+), 6 deletions(-) commit 14ca0bdfdd6b422027b9b733abb0bf151811eaa7 Author: Viresh Kumar Date: Mon Aug 3 08:36:16 2015 +0530 cpufreq: update user_policy.* on success 'user_policy' caches properties of a policy that are set by userspace. And these must be updated only if cpufreq core was successful in updating them based on request from user space. In store_scaling_governor(), we are updating user_policy.policy and user_policy.governor even if cpufreq_set_policy() failed. That's incorrect. Fix this by updating user_policy.* only if we were successful in updating the properties. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 8fa5b631f32238a16ae3db0db5b354f7b9eb20cb Author: Viresh Kumar Date: Mon Aug 3 08:36:15 2015 +0530 cpufreq: use memcpy() to copy policy cpufreq_get_policy() is useful if the pointer to policy isn't available in advance. But if it is available, then there is no need to call cpufreq_get_policy(). Directly use memcpy() to copy the policy. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 6bfb7c7434f75d29241413dc7e784295ba56de98 Author: Viresh Kumar Date: Mon Aug 3 08:36:14 2015 +0530 cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event What's being done from CPUFREQ_INCOMPATIBLE, can also be done with CPUFREQ_ADJUST. There is nothing special with CPUFREQ_INCOMPATIBLE notifier. Kill CPUFREQ_INCOMPATIBLE and fix its usage sites. This also updates the numbering of notifier events to remove holes. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/cpu-freq/core.txt | 7 ++----- drivers/acpi/processor_perflib.c | 2 +- drivers/cpufreq/cpufreq.c | 4 ---- drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 4 ++-- drivers/video/fbdev/pxafb.c | 1 - drivers/video/fbdev/sa1100fb.c | 1 - include/linux/cpufreq.h | 9 ++++----- 7 files changed, 9 insertions(+), 19 deletions(-) commit 1453863fb02a18900c9079fa2e4f02710bf46507 Author: Pi-Cheng Chen Date: Wed Aug 19 10:05:06 2015 +0800 cpufreq: mediatek: Add MT8173 cpufreq driver Mediatek MT8173 is an ARMv8 based quad-core (2*Cortex-A53 and 2*Cortex-A72) SoC with duall clusters. For each cluster, two voltage inputs, Vproc and Vsram are supplied by two regulators. For the big cluster, two regulators come from different PMICs. In this case, when scaling voltage inputs of the cluster, the voltages of two regulator inputs need to be controlled by software explicitly under the SoC specific limitation: 100mV < Vsram - Vproc < 200mV which is called 'voltage tracking' mechanism. And when scaling the frequency of cluster clock input, the input MUX need to be parented to another "intermediate" stable PLL first and reparented to the original PLL once the original PLL is stable at the target frequency. This patch implements those mechanisms to enable CPU DVFS support for Mediatek MT8173 SoC. Signed-off-by: Pi-Cheng Chen Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/Kconfig.arm | 7 + drivers/cpufreq/Makefile | 1 + drivers/cpufreq/mt8173-cpufreq.c | 527 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 535 insertions(+) commit c9c96ae2c57d91ea2b73ef447fdd44c760a96d97 Author: Pi-Cheng Chen Date: Mon Aug 17 17:24:23 2015 +0800 dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings This patch adds the clock and regulator consumer properties part of document for CPU DVFS clocks on Mediatek MT8173 SoC. Signed-off-by: Pi-Cheng Chen Acked-by: Michael Turquette Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki .../devicetree/bindings/clock/mt8173-cpu-dvfs.txt | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) commit f212bd95a9f62b7929c59b16e1d3bbde2fb4081d Merge: 8c4de9b 0439de7 Author: Jiri Kosina Date: Tue Sep 1 15:38:33 2015 +0200 Merge branch 'for-4.3/microsoft' into for-linus Conflicts: drivers/hid/usbhid/hid-quirks.c commit 8c4de9bc2041229fb778e0c47e32585b6f6b1d09 Merge: 067e260 9a1d78a 29e2d6d d1c4803 3cb5ff0 c873d9a 070f63b 4b8a826 9a98b33 21589eb 824deff 5397df1 Author: Jiri Kosina Date: Tue Sep 1 15:37:30 2015 +0200 Merge branches 'for-4.3/chicony', 'for-4.3/cp2112', 'for-4.3/i2c-hid', 'for-4.3/lenovo', 'for-4.3/logitech', 'for-4.3/multitouch', 'for-4.3/picolcd', 'for-4.3/rmi', 'for-4.3/sensor-hub', 'for-4.3/sony' and 'for-4.3/wacom' into for-linus commit 067e2601d3c076abbf45db91261f9065eaa879b2 Merge: 3e097d1 931830a Author: Jiri Kosina Date: Tue Sep 1 15:35:24 2015 +0200 Merge branch 'for-4.3/gembird' into for-linus commit 3e097d1271ecdff2f251a54ddfc5eaa1f9821e96 Merge: 0be0171 c9b5772 Author: Jiri Kosina Date: Tue Sep 1 15:23:13 2015 +0200 Merge branches 'for-4.2/upstream-fixes-devm-fixed' and 'for-4.3/upstream' into for-linus commit c8fb70a3e8dd60e31c4422bae85783cf1733f038 Author: Grant Likely Date: Sun Aug 23 13:34:08 2015 -0700 MAINTAINERS: Add Frank Rowand as DT maintainer Frank has agreed to step up and help with DT core code maintainership. At the same time, Grant is taking a step back from active maintainership responsibilities. Add Frank to the device tree core code entry and shuffle Grant to the end of the list. In a few releases time Grant will be removed entirely. Signed-off-by: Grant Likely Signed-off-by: Rob Herring MAINTAINERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9d6f85d9fe422aa42f3f337872050fb2a30cd430 Author: Robert Jarzmik Date: Sun Aug 30 21:44:12 2015 +0200 mtd: nand: pxa3xx: add optional dma for pxa architecture The PXA architecture provides a DMA to pump data from the nand controller to memory and the other way around. Add it to the binding description. Signed-off-by: Robert Jarzmik Signed-off-by: Rob Herring Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt | 3 +++ 1 file changed, 3 insertions(+) commit 472204fe37083aa8f31aaf183b4072d432e7c5ea Author: Mugunthan V N Date: Mon Aug 31 11:51:29 2015 +0530 Documentation: DT: cpsw: document missing compatible CPSW driver has multiple compatibles for errata implementations but not documented, add necessary documentation. Signed-off-by: Mugunthan V N Signed-off-by: Rob Herring Documentation/devicetree/bindings/net/cpsw.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 51d2eeef1d958ef6834b24f548194f5acea0f499 Author: Sudip Mukherjee Date: Tue Sep 1 11:14:05 2015 +0530 ASoC: wm0010: fix memory leak We were aborting if the kzalloc of img_swap fails but without freeing the already allocated out. Similarly we were aborting if spi_sync fails without releasing out and img_swap. Signed-off-by: Sudip Mukherjee Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm0010.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit cc7da0ba9c96699592d0a69d7d146ac6adcc18e7 Author: Joe Thornber Date: Tue Sep 1 11:38:19 2015 +0100 dm cache: fix use after freeing migrations Both free_io_migration() and issue_discard() dereference a migration that was just freed. Fix those by saving off the migrations's cache object before freeing the migration. Also cleanup needless mg->cache dereferences now that the cache object is available directly. Fixes: e44b6a5a3c ("dm cache: move wake_waker() from free_migrations() to where it is needed") Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit f319cb8491e1b4cc44e7baeeb3ae7817dedf57fc Author: Axel Lin Date: Tue Sep 1 20:15:10 2015 +0800 reset: ath79: Fix missing spin_lock_init Signed-off-by: Axel Lin Acked-by: Alban Bedel Signed-off-by: Philipp Zabel drivers/reset/reset-ath79.c | 1 + 1 file changed, 1 insertion(+) commit 092b6dbe8a4a24c17f2ebfe86995dc994e61f420 Author: Christoph Hellwig Date: Mon Aug 17 10:09:26 2015 +0200 mmc: android-goldfish: remove incorrect __iomem annotation Make sparse happy: drivers/mmc/host/android-goldfish.c:535:56: sparse: incorrect type in argument 3 (different address spaces) Signed-off-by: Christoph Hellwig Signed-off-by: Ulf Hansson drivers/mmc/host/android-goldfish.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7b554088d56e9df3ee5dff8989b44903965bad95 Author: Vaishali Thakkar Date: Tue Aug 18 08:58:40 2015 +0530 video: fbdev: pxa168fb: Use devm_clk_get This patch introduces the use of managed resource function devm_clk_get instead of clk_get and removes corresponding calls to clk_put in the probe and remove functions. To be compatible with the change various gotos are replaced with direct returns, and unneeded label failed_put_clk is dropped. Signed-off-by: Vaishali Thakkar Signed-off-by: Tomi Valkeinen drivers/video/fbdev/pxa168fb.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit c4e6774de19f4638bb887a47a58ee21d6809360b Author: Julia Lawall Date: Sun Aug 23 02:11:15 2015 +0200 fbdev: ssd1307fb: fix error return code Propagate error code on failure. Also changed %ld to %d in dev_err to use ret variable rather than putting two calls to PTR_ERR. A simplified version of the semantic match that finds the first problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b4df20474ff76b4dbab7d991de271820383995b8 Author: Dan Carpenter Date: Mon Aug 24 22:54:21 2015 +0300 fbdev: fix snprintf() limit in show_bl_curve() The limit should be "PAGE_SIZE - len" instead of PAGE_SIZE. Also let's use scnprintf() because snprintf() returns the number of bytes which would have been printed if there were space and scnprintf() returns the number of bytes actually printed. I don't think we are ever going to actually hit this limit in real life. Signed-off-by: Dan Carpenter Signed-off-by: Tomi Valkeinen drivers/video/fbdev/core/fbsysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cf94eab8b309e8bcc78b41dd1561c75b537dd0b Author: Daniel Borkmann Date: Mon Aug 31 19:11:02 2015 +0200 netfilter: conntrack: use nf_ct_tmpl_free in CT/synproxy error paths Commit 0838aa7fcfcd ("netfilter: fix netns dependencies with conntrack templates") migrated templates to the new allocator api, but forgot to update error paths for them in CT and synproxy to use nf_ct_tmpl_free() instead of nf_conntrack_free(). Due to that, memory is being freed into the wrong kmemcache, but also we drop the per net reference count of ct objects causing an imbalance. In Brad's case, this leads to a wrap-around of net->ct.count and thus lets __nf_conntrack_alloc() refuse to create a new ct object: [ 10.340913] xt_addrtype: ipv6 does not support BROADCAST matching [ 10.810168] nf_conntrack: table full, dropping packet [ 11.917416] r8169 0000:07:00.0 eth0: link up [ 11.917438] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 12.815902] nf_conntrack: table full, dropping packet [ 15.688561] nf_conntrack: table full, dropping packet [ 15.689365] nf_conntrack: table full, dropping packet [ 15.690169] nf_conntrack: table full, dropping packet [ 15.690967] nf_conntrack: table full, dropping packet [...] With slab debugging, it also reports the wrong kmemcache (kmalloc-512 vs. nf_conntrack_ffffffff81ce75c0) and reports poison overwrites, etc. Thus, to fix the problem, export and use nf_ct_tmpl_free() instead. Fixes: 0838aa7fcfcd ("netfilter: fix netns dependencies with conntrack templates") Reported-by: Brad Jackson Signed-off-by: Daniel Borkmann Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_conntrack.h | 1 + net/netfilter/nf_conntrack_core.c | 3 ++- net/netfilter/nf_synproxy_core.c | 2 +- net/netfilter/xt_CT.c | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) commit 6fa2d197936ba0b8936e813d0adecefac160062b Author: Ander Conselvan de Oliveira Date: Mon Aug 31 11:23:28 2015 +0300 i915: Set ddi_pll_sel in DP MST path The DP MST encoder config function never sets ddi_pll_sel, even though its value is programmed in its ->pre_enable() hook. That used to work because a new pipe_config was kzalloc'ed at every modeset, and the value of zero selects the highest clock for the PLL. Starting with the commit below, the value of ddi_pll_sel is preserved through modesets, and since the correct value wasn't properly setup by the MST code, it could lead to warnings and blank screens. commit 8504c74c7ae48b4b8ed1f1c0acf67482a7f45c93 Author: Ander Conselvan de Oliveira Date: Fri May 15 11:51:50 2015 +0300 drm/i915: Preserve ddi_pll_sel when allocating new pipe_config Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91628 Cc: stable@vger.kernel.org # 7e6313a2516d drm/i915: Don't use link_bw for PLL setup Cc: stable@vger.kernel.org Cc: Timo Aaltonen Cc: Luciano Coelho Signed-off-by: Ander Conselvan de Oliveira Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_dp_mst.c | 5 +++++ drivers/gpu/drm/i915/intel_drv.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) commit 7e6313a2516dbcd168f4ae36f0abe1a9227106b5 Author: Ville Syrjälä Date: Tue Aug 11 20:21:46 2015 +0300 drm/i915: Don't use link_bw for PLL setup Use port_clock instead of link_bw when picking the PLL parameters for DP. link_bw may be zero with an eDP 1.4 sink that supports DP_LINK_RATE_SET so we shouldn't use it for anything other than feed it to the sink appropriately. v2: Fix typo in commit message (Sivakumar) Reviewed-by: Sivakumar Thulasimani Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter [Jani: cherry-picked from future.] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 11 ++++------ drivers/gpu/drm/i915/intel_dp.c | 44 ++++++++++++++++++++-------------------- 2 files changed, 26 insertions(+), 29 deletions(-) commit aa3469ce7afd86a670d22375a64f1b5a06707725 Author: Thomas Hellstrom Date: Thu Aug 27 10:06:24 2015 -0700 drm/vmwgfx: Allow dropped masters render-node like access on legacy nodes v2 Applications like gnome-shell may try to render after dropping master privileges. Since the driver should now be safe against this scenario, allow those applications to use their legacy node like a render node. v2: Add missing return statement. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 7 ++++++- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit c4749c9a4a9ddc16200ce46a19078357727bf4b1 Author: Maarten Lankhorst Date: Mon Aug 31 12:25:04 2015 +0200 drm/atomic: Fix bookkeeping with TEST_ONLY, v3. Commit ec9f932ed41622d120de52a5b525e4d77b9ef17e "drm/atomic: Cleanup on error properly in the atomic ioctl." cleaned up some error paths, but didn't fix the TEST_ONLY path. In the check only case plane->fb shouldn't be updated, and the vblank events should be cleared as on failure. Changes since v1: - Fix -EDEADLK handling of vblank events too. - Free state last with CHECK_ONLY. Changes since v2: - Add comment about freeing crtc_state->event with TEST_ONLY. (Daniel Stone) Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Jani Nikula drivers/gpu/drm/drm_atomic.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit 532026612455a4a6fd27c1b2e7111263f63218a2 Merge: 65a9959 bcc84ec Author: Ingo Molnar Date: Tue Sep 1 10:24:54 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Add ability to specify to select which registers to record, to reduce the size of perf.data files, and also allow printing the registers in 'perf script': (Stephane Eranian) # perf record --intr-regs=AX,SP usleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.016 MB perf.data (8 samples) ] # perf script -F ip,sym,iregs | tail -5 ffffffff8105f42a native_write_msr_safe AX:0xf SP:0xffff8802629c3c00 ffffffff8105f42a native_write_msr_safe AX:0xf SP:0xffff8802629c3c00 ffffffff81761ac0 _raw_spin_lock AX:0xffff8801bfcf8020 SP:0xffff8802629c3ce8 ffffffff81202bf8 __vma_adjust_trans_huge AX:0x7ffc75200000 SP:0xffff8802629c3b30 ffffffff8122b089 dput AX:0x101 SP:0xffff8802629c3c78 # Infrastructure changes: - Open event on evsel cpus and threads. (Kan Liang) - Add new bpf API to get name from a BPF object. (Wang Nan) Build fixes: - Fix build on powerpc broken by pt/bts. (Adrian Hunter) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 5bcd0b7f3c56c616abffd89e11c841834dd1528c Author: Axel Lin Date: Tue Sep 1 07:56:38 2015 +0800 reset: Add (devm_)reset_control_get stub functions So the drivers can be compiled with CONFIG_RESET_CONTROLLER disabled. Signed-off-by: Axel Lin Signed-off-by: Philipp Zabel include/linux/reset.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 69f92f67b68ab7028ffe15f0eea76b59f8859383 Author: Lukas Wunner Date: Wed Jul 15 13:57:35 2015 +0200 drm/i915: Preserve SSC earlier Commit 92122789b2d6 ("drm/i915: preserve SSC if previously set v3") added code to intel_modeset_gem_init to override the SSC status read from VBT with the SSC status set by BIOS. However, intel_modeset_gem_init is invoked *after* intel_modeset_init, which calls intel_setup_outputs, which *modifies* SSC status by way of intel_init_pch_refclk. So unlike advertised, intel_modeset_gem_init doesn't preserve the SSC status set by BIOS but whatever intel_init_pch_refclk decided on. This is a problem on dual gpu laptops such as the MacBook Pro which require either a handler to switch DDC lines, or the discrete gpu to proxy DDC/AUX communication: Both the handler and the discrete gpu may initialize after the i915 driver, and consequently, an LVDS connector may initially seem disconnected and the SSC therefore is disabled by intel_init_pch_refclk, but on reprobe the connector may turn out to be connected and the SSC must then be enabled. Due to 92122789b2d6 however, the SSC is not enabled on reprobe since it is assumed BIOS disabled it while in fact it was disabled by intel_init_pch_refclk. Also, because the SSC status is preserved so late, the preserved value only ever gets used on resume but not on panel initialization: intel_modeset_init calls intel_init_display which indirectly calls intel_panel_use_ssc via multiple subroutines, *before* the BIOS value overrides the VBT value in intel_modeset_gem_init (intel_panel_use_ssc is the sole user of dev_priv->vbt.lvds_use_ssc). Fix this by moving the code introduced by 92122789b2d6 from intel_modeset_gem_init to intel_modeset_init before the invocation of intel_setup_outputs and intel_init_display. Add a DRM_DEBUG_KMS as suggested way back by Jani: http://lists.freedesktop.org/archives/intel-gfx/2014-June/046666.html Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88861 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61115 Tested-by: Paul Hordiienko [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 -- work in progress] Fixes: 92122789b2d6 ("drm/i915: preserve SSC if previously set v3") Signed-off-by: Lukas Wunner Reviewed-by: Jesse Barnes Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 63b6c13dbb7d3e36f031629f7e4e86dacfcab8cf Author: Pravin B Shelar Date: Mon Aug 31 20:05:57 2015 -0700 tun_dst: Remove opts_size opts_size is only written and never read. Following patch removes this unused variable. Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller include/net/dst_metadata.h | 1 - net/core/dst.c | 1 - 2 files changed, 2 deletions(-) commit 2053aeb69a53224717296db31b13d5b45b4f1a0e Author: Marius Tomaschewski Date: Tue Sep 1 01:57:30 2015 +0200 ipv6: send only one NEWLINK when RA causes changes Signed-off-by: Marius Tomaschewski Signed-off-by: David S. Miller net/ipv6/ndisc.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 65a99597f044c083983f4274ab049c9ec3b9d764 Merge: 418c2e1 555ee95 Author: Linus Torvalds Date: Mon Aug 31 21:04:24 2015 -0700 Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull NOHZ updates from Ingo Molnar: "The main changes, mostly written by Frederic Weisbecker, include: - Fix some jiffies based cputime assumptions. (No real harm because the concerned code isn't used by full dynticks.) - Simplify jiffies <-> usecs conversions. Remove dead code. - Remove early hacks on nohz full code that avoided messing up idle nohz internals. Now nohz integrates well full and idle and such hack have become needless. - Restart nohz full tick from irq exit. (A simplification and a preparation for future optimization on scheduler kick to nohz full) - Code cleanups. - Tile driver isolation enhancement on top of nohz. (Chris Metcalf)" * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: nohz: Remove useless argument on tick_nohz_task_switch() nohz: Move tick_nohz_restart_sched_tick() above its users nohz: Restart nohz full tick from irq exit nohz: Remove idle task special case nohz: Prevent tilegx network driver interrupts alpha: Fix jiffies based cputime assumption apm32: Fix cputime == jiffies assumption jiffies: Remove HZ > USEC_PER_SEC special case commit 418c2e1f67658460533e4aaa7a0bcc64290ec951 Merge: a1d8561 dd9d384 Author: Linus Torvalds Date: Mon Aug 31 20:55:23 2015 -0700 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fix from Ingo Molnar: "This is a leftover scheduler fix from the v4.2 cycle" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched: Fix cpu_active_mask/cpu_online_mask race commit a1d8561172f369ba56d636df49a6b4d6d77e2123 Merge: 3959df1d ff277d4 Author: Linus Torvalds Date: Mon Aug 31 20:26:22 2015 -0700 Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler updates from Ingo Molnar: "The biggest change in this cycle is the rewrite of the main SMP load balancing metric: the CPU load/utilization. The main goal was to make the metric more precise and more representative - see the changelog of this commit for the gory details: 9d89c257dfb9 ("sched/fair: Rewrite runnable load and utilization average tracking") It is done in a way that significantly reduces complexity of the code: 5 files changed, 249 insertions(+), 494 deletions(-) and the performance testing results are encouraging. Nevertheless we need to keep an eye on potential regressions, since this potentially affects every SMP workload in existence. This work comes from Yuyang Du. Other changes: - SCHED_DL updates. (Andrea Parri) - Simplify architecture callbacks by removing finish_arch_switch(). (Peter Zijlstra et al) - cputime accounting: guarantee stime + utime == rtime. (Peter Zijlstra) - optimize idle CPU wakeups some more - inspired by Facebook server loads. (Mike Galbraith) - stop_machine fixes and updates. (Oleg Nesterov) - Introduce the 'trace_sched_waking' tracepoint. (Peter Zijlstra) - sched/numa tweaks. (Srikar Dronamraju) - misc fixes and small cleanups" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits) sched/deadline: Fix comment in enqueue_task_dl() sched/deadline: Fix comment in push_dl_tasks() sched: Change the sched_class::set_cpus_allowed() calling context sched: Make sched_class::set_cpus_allowed() unconditional sched: Fix a race between __kthread_bind() and sched_setaffinity() sched: Ensure a task has a non-normalized vruntime when returning back to CFS sched/numa: Fix NUMA_DIRECT topology identification tile: Reorganize _switch_to() sched, sparc32: Update scheduler comments in copy_thread() sched: Remove finish_arch_switch() sched, tile: Remove finish_arch_switch sched, sh: Fold finish_arch_switch() into switch_to() sched, score: Remove finish_arch_switch() sched, avr32: Remove finish_arch_switch() sched, MIPS: Get rid of finish_arch_switch() sched, arm: Remove finish_arch_switch() sched/fair: Clean up load average references sched/fair: Provide runnable_load_avg back to cfs_rq sched/fair: Remove task and group entity load when they are dead sched/fair: Init cfs_rq's sched_entity load average ... commit 3959df1dfb9538498ec3372a2d390bc7fbdbfac2 Merge: 41d859a 6c36dfe Author: Linus Torvalds Date: Mon Aug 31 20:20:30 2015 -0700 Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RAS updates from Ingo Molnar: "MCE handling updates, but also some generic drivers/edac/ changes to better organize the Kconfig space" * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/ras: Move AMD MCE injector to arch/x86/ras/ x86/mce: Add a wrapper around mce_log() for injection x86/mce: Rename rcu_dereference_check_mce() to mce_log_get_idx_check() RAS: Add a menuconfig option with descriptive text x86/mce: Reenable CMCI banks when swiching back to interrupt mode x86/mce: Clear Local MCE opt-in before kexec x86/mce: Remove unused function declarations x86/mce: Kill drain_mcelog_buffer() x86/mce: Avoid potential deadlock due to printk() in MCE context x86/mce: Remove the MCE ring for Action Optional errors x86/mce: Don't use percpu workqueues x86/mce: Provide a lockless memory pool to save error records x86/mce: Reuse one of the u16 padding fields in 'struct mce' commit 41d859a83c567a9c9f50a34082cc64aab0abb0cd Merge: 4658000 bac2e4a Author: Linus Torvalds Date: Mon Aug 31 19:49:05 2015 -0700 Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf updates from Ingo Molnar: "Main perf kernel side changes: - uprobes updates/fixes. (Oleg Nesterov) - Add PERF_RECORD_SWITCH to indicate context switches and use it in tooling. (Adrian Hunter) - Support BPF programs attached to uprobes and first steps for BPF tooling support. (Wang Nan) - x86 generic x86 MSR-to-perf PMU driver. (Andy Lutomirski) - x86 Intel PT, LBR and BTS updates. (Alexander Shishkin) - x86 Intel Skylake support. (Andi Kleen) - x86 Intel Knights Landing (KNL) RAPL support. (Dasaratharaman Chandramouli) - x86 Intel Broadwell-DE uncore support. (Kan Liang) - x86 hw breakpoints robustization (Andy Lutomirski) Main perf tooling side changes: - Support Intel PT in several tools, enabling the use of the processor trace feature introduced in Intel Broadwell processors: (Adrian Hunter) # dmesg | grep Performance # [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell events, full-width counters, Intel PMU driver. # perf record -e intel_pt//u -a sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.216 MB perf.data ] # perf script # then navigate in the tool output to some area, like this one: 184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main (/usr/lib64/ld-2.17.so) 185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10 _dl_new_object (/usr/lib64/ld-2.17.so) 186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90 strlen (/usr/lib64/ld-2.17.so) 187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen (/usr/lib64/ld-2.17.so) 188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c _dl_new_object (/usr/lib64/ld-2.17.so) 189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0 calloc@plt (/usr/lib64/ld-2.17.so) 190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc (/usr/lib64/ld-2.17.so) 191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt (/usr/lib64/ld-2.17.so) 192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc (/usr/lib64/ld-2.17.so) 193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) 194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) => 7f21ba675d50 __libc_memalign (/usr/lib64/ld-2.17.so) 195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20 __libc_memalign (/usr/lib64/ld-2.17.so) 196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73 __libc_memalign (/usr/lib64/ld-2.17.so) 197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18 __libc_memalign (/usr/lib64/ld-2.17.so) 198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9 __libc_memalign (/usr/lib64/ld-2.17.so) 199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f _dl_new_object (/usr/lib64/ld-2.17.so) 200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba678e70 memcpy (/usr/lib64/ld-2.17.so) 201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy (/usr/lib64/ld-2.17.so) - Add support for using several Intel PT features (CYC, MTC packets), the relevant documentation was updated in: tools/perf/Documentation/intel-pt.txt briefly describing those packets, its purposes, how to configure them in the event config terms and relevant external documentation for further reading. (Adrian Hunter) - Introduce support for probing at an absolute address, for user and kernel 'perf probe's, useful when one have the symbol maps on a developer machine but not on an embedded system. (Wang Nan) - Add Intel BTS support, with a call-graph script to show it and PT in use in a GUI using 'perf script' python scripting with postgresql and Qt. (Adrian Hunter) - Allow selecting the type of callchains per event, including disabling callchains in all but one entry in an event list, to save space, and also to ask for the callchains collected in one event to be used in other events. (Kan Liang) - Beautify more syscall arguments in 'perf trace': (Arnaldo Carvalho de Melo) * A bunch more translate file/pathnames from pointers to strings. * Convert numbers to strings for the 'keyctl' syscall 'option' arg. * Add missing 'clockid' entries. - Introduce 'srcfile' sort key: (Andi Kleen) # perf record -F 10000 usleep 1 # perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile # Overhead Source File 26.49% copy_page_64.S 5.49% signal.c 0.51% msr.h # It can be combined with other fields, for instance, experiment with '-s srcfile,symbol'. There are some oddities in some distros and with some specific DSOs, being investigated, so your mileage may vary. - Support per-event 'freq' term: (Namhyung Kim) $ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1 $ perf evlist -F cpu/instructions,freq=1234/: sample_freq=1234 cycles: sample_period=1000 $ - Deref sys_enter pointer args with contents from probe:vfs_getname, showing pathnames instead of pointers in many syscalls in 'perf trace'. (Arnaldo Carvalho de Melo) - Stop collecting /proc/kallsyms in perf.data files, saving about 4.5MB on a typical x86-64 system, use the the symbol resolution routines used in all the other tools (report, top, etc) now that we can ask libtraceevent to use perf's symbol resolution code. (Arnaldo Carvalho de Melo) - Allow filtering out of perf's PID via 'perf record --exclude-perf'. (Wang Nan) - 'perf trace' now supports syscall groups, like strace, i.e: $ trace -e file touch file Will expand 'file' into multiple, file related, syscalls. More work needed to add extra groups for other syscall groups, and also to complement what was added for the 'file' group, included as a proof of concept. (Arnaldo Carvalho de Melo) - Add lock_pi stresser to 'perf bench futex', to test the kernel code related to FUTEX_(UN)LOCK_PI. (Davidlohr Bueso) - Let user have timestamps with per-thread recording in 'perf record' (Adrian Hunter) - ... and tons of other changes, see the shortlog and the Git log for details" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (240 commits) perf evlist: Add backpointer for perf_env to evlist perf tools: Rename perf_session_env to perf_env perf tools: Do not change lib/api/fs/debugfs directly perf tools: Add tracing_path and remove unneeded functions perf buildid: Introduce sysfs/filename__sprintf_build_id perf evsel: Add a backpointer to the evlist a evsel is in perf trace: Add header with copyright and background info perf scripts python: Add new compaction-times script perf stat: Get correct cpu id for print_aggr tools lib traceeveent: Allow for negative numbers in print format perf script: Add --[no-]-demangle/--[no-]-demangle-kernel tracing/uprobes: Do not print '0x (null)' when offset is 0 perf probe: Support probing at absolute address perf probe: Fix error reported when offset without function perf probe: Fix list result when address is zero perf probe: Fix list result when symbol can't be found tools build: Allow duplicate objects in the object list perf tools: Remove export.h from MANIFEST perf probe: Prevent segfault when reading probe point with absolute address perf tools: Update Intel PT documentation ... commit 4658000955d1864b54890214434e171949c7f1c5 Merge: e10994f 69786cdb Author: Linus Torvalds Date: Mon Aug 31 19:16:36 2015 -0700 Merge branch 'mm-kasan-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86/kasan changes from Ingo Molnar: "These are two KASAN changes that factor out (and generalize) x86 specific KASAN code from x86 to mm" * 'mm-kasan-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/kasan, mm: Introduce generic kasan_populate_zero_shadow() x86/kasan: Define KASAN_SHADOW_OFFSET per architecture commit e10994ff38ded64e4cd2267a6e404a4c8632bcf5 Merge: 5757bd6 33fef66 Author: Linus Torvalds Date: Mon Aug 31 19:11:50 2015 -0700 Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull liblockdep fixes from Ingo Molnar: "Three liblockdep fixes left over from the v4.2 cycle" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tools/liblockdep: Use the rbtree header provided by common tools headers tools/liblockdep: Correct macro for WARN tools: Restore export.h commit 498012511a060575a56551d28a10bb392aa361b5 Merge: 5d2a1a9 4bf0118 Author: Rafael J. Wysocki Date: Tue Sep 1 03:45:05 2015 +0200 Merge branch 'device-properties' * device-properties: device property: check fwnode type in to_of_node() device property: attach 'else if' to the proper 'if' device property: fallback to pset when gettng one string device property: fix potential NULL pointer dereference commit 5d2a1a927d487d6bb60c87b837d82702d8ebcaad Merge: ef5f5de 5d0ddfe b00855a 02b771b 3277b4e Author: Rafael J. Wysocki Date: Tue Sep 1 03:41:19 2015 +0200 Merge branches 'acpi-pci', 'acpi-soc', 'acpi-ec' and 'acpi-osl' * acpi-pci: ACPI, PCI: Penalize legacy IRQ used by ACPI SCI * acpi-soc: ACPI / LPSS: Ignore 10ms delay for Braswell * acpi-ec: ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations * acpi-osl: ACPI / osl: replace custom implementation of readq / writeq commit ef5f5de069bd9081a7ddf6998269b58fc65e27ef Merge: 73990fc e91a398 Author: Rafael J. Wysocki Date: Tue Sep 1 03:38:43 2015 +0200 Merge branch 'acpi-pm' * acpi-pm: ACPI / bus: Move duplicate code to a separate new function mfd: Add support for Intel Sunrisepoint LPSS devices dmaengine: add a driver for Intel integrated DMA 64-bit mfd: make mfd_remove_devices() iterate in reverse order driver core: implement device_for_each_child_reverse() klist: implement klist_prev() Driver core: wakeup the parent device before trying probe ACPI / PM: Attach ACPI power domain only once PM / QoS: Make it possible to expose device latency tolerance to userspace ACPI / PM: Update the copyright notice and description of power.c commit 73990fc810bf84c5338d9596f8af8d70fe90ac72 Merge: 94f2bb9 1dcc3d3 b6fc607 1074261 Author: Rafael J. Wysocki Date: Tue Sep 1 03:38:22 2015 +0200 Merge branches 'acpi-scan', 'acpi-processor' and 'acpi-assorted' * acpi-scan: ACPI / bus: Move ACPI bus type registration ACPI / scan: Move bus operations and notification routines to bus.c ACPI / scan: Move device matching code to bus.c ACPI / scan: Move sysfs-related device code to a separate file * acpi-processor: PCC: Disable compilation by default ACPI: Decouple ACPI idle and ACPI processor drivers ACPI: Split out ACPI PSS from ACPI Processor driver PCC: Initialize PCC Mailbox earlier at boot ACPI / processor: remove leftover __refdata annotations * acpi-assorted: ACPI: fix acpi_debugfs_init prototype ACPI: Remove FSF mailing addresses commit 94f2bb9b599f8d6a3a1309d39b3b219da314470c Merge: 20a2000 cb4ff76 Author: Rafael J. Wysocki Date: Tue Sep 1 03:37:59 2015 +0200 Merge branch 'acpi-trace' * acpi-trace: ACPI / Documentation: Update method tracing documentation. ACPI / sysfs: Add support to allow leading "\" missing in trace_method_name. ACPI / sysfs: Update method tracing facility. ACPI / sysfs: Add ACPI_LV_REPAIR debug level. commit 20a200085f64cce4f33ab33ae262ff291dc5d6d0 Merge: c91c5b2 4305cd0 Author: Rafael J. Wysocki Date: Tue Sep 1 03:37:51 2015 +0200 Merge branch 'acpi-tools' * acpi-tools: tools/power/acpi: Enable build for EC userspace tool tools/power/acpi: Add descend support in ACPI tools Makefile commit 5757bd6157f523ff0d448a4ec93938523ca441a9 Merge: 7073bc6 accd0b9 Author: Linus Torvalds Date: Mon Aug 31 18:37:33 2015 -0700 Merge branch 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull inlining tuning from Ingo Molnar: "A handful of inlining optimizations inspired by x86 work but applicable in general" * 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: jiffies: Force inlining of {m,u}msecs_to_jiffies() x86/hweight: Force inlining of __arch_hweight{32,64}() linux/bitmap: Force inlining of bitmap weight functions commit c91c5b276bc1e60c0d65ff69e29b6edc5948430d Merge: 64291f7 b7a4f7f Author: Rafael J. Wysocki Date: Tue Sep 1 03:37:30 2015 +0200 Merge branch 'acpica' * acpica: (42 commits) ACPICA: Update version to 20150818 ACPICA: Debugger: Cleanup debugging outputs to dump name path without trailing underscores ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_verbose acpiexec usage ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_disasm ACPICA: Debugger: Split debugger initialization/termination APIs ACPICA: Header support to improve compatibility with MSVC ACPICA: Make the max-number-of-loops runtime configurable ACPICA: Debugger: Add option to display namespace summary/counts ACPICA: Add additional debug info/statements ACPICA: Table handling: Cleanup and update debug output for tools ACPICA: acpiexec/acpinames: Support very large number of ACPI tables ACPICA: acpinames: Add new options and wildcard support ACPICA: Headers: Fix some comments, no functional change ACPICA: Tables: Cleanup to reduce FACS globals ACPICA: Tables: Fix global table list issues by removing fixed table indexes ACPICA: Update info messages during ACPICA init ACPICA: Disassembler: Update for new listing mode ACPICA: Update parameter validation for data_table_region and load_table ACPICA: Disassembler: Remove duplicate code in _PLD processing. ACPICA: Correctly cleanup after a ACPI table load failure ... commit 7073bc66126e3ab742cce9416ad6b4be8b03c4f7 Merge: d4c9039 f612a7b Author: Linus Torvalds Date: Mon Aug 31 18:12:07 2015 -0700 Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RCU updates from Ingo Molnar: "The main RCU changes in this cycle are: - the combination of tree geometry-initialization simplifications and OS-jitter-reduction changes to expedited grace periods. These two are stacked due to the large number of conflicts that would otherwise result. - privatize smp_mb__after_unlock_lock(). This commit moves the definition of smp_mb__after_unlock_lock() to kernel/rcu/tree.h, in recognition of the fact that RCU is the only thing using this, that nothing else is likely to use it, and that it is likely to go away completely. - documentation updates. - torture-test updates. - misc fixes" * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits) rcu,locking: Privatize smp_mb__after_unlock_lock() rcu: Silence lockdep false positive for expedited grace periods rcu: Don't disable CPU hotplug during OOM notifiers scripts: Make checkpatch.pl warn on expedited RCU grace periods rcu: Update MAINTAINERS entry rcu: Clarify CONFIG_RCU_EQS_DEBUG help text rcu: Fix backwards RCU_LOCKDEP_WARN() in synchronize_rcu_tasks() rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN() rcu: Make rcu_is_watching() really notrace cpu: Wait for RCU grace periods concurrently rcu: Create a synchronize_rcu_mult() rcu: Fix obsolete priority-boosting comment rcu: Use WRITE_ONCE in RCU_INIT_POINTER rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT rcu: Add RCU-sched flavors of get-state and cond-sync rcu: Add fastpath bypassing funnel locking rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS rcu: Pull out wait_event*() condition into helper function documentation: Describe new expedited stall warnings rcu: Add stall warnings to synchronize_sched_expedited() ... commit d4c90396ed7ef9b4e4d221e008e54be8bea8307f Merge: f36fc04 bf43341 Author: Linus Torvalds Date: Mon Aug 31 17:38:39 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto updates from Herbert Xu: "Here is the crypto update for 4.3: API: - the AEAD interface transition is now complete. - add top-level skcipher interface. Drivers: - x86-64 acceleration for chacha20/poly1305. - add sunxi-ss Allwinner Security System crypto accelerator. - add RSA algorithm to qat driver. - add SRIOV support to qat driver. - add LS1021A support to caam. - add i.MX6 support to caam" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (163 commits) crypto: algif_aead - fix for multiple operations on AF_ALG sockets crypto: qat - enable legacy VFs MPI: Fix mpi_read_buffer crypto: qat - silence a static checker warning crypto: vmx - Fixing opcode issue crypto: caam - Use the preferred style for memory allocations crypto: caam - Propagate the real error code in caam_probe crypto: caam - Fix the error handling in caam_probe crypto: caam - fix writing to JQCR_MS when using service interface crypto: hash - Add AHASH_REQUEST_ON_STACK crypto: testmgr - Use new skcipher interface crypto: skcipher - Add top-level skcipher interface crypto: cmac - allow usage in FIPS mode crypto: sahara - Use dmam_alloc_coherent crypto: caam - Add support for LS1021A crypto: qat - Don't move data inside output buffer crypto: vmx - Fixing GHASH Key issue on little endian crypto: vmx - Fixing AES-CTR counter bug crypto: null - Add missing Kconfig tristate for NULL2 crypto: nx - Add forward declaration for struct crypto_aead ... commit 5d54b8cdeaf4679c51a510dea3f8921992d0b064 Merge: 70b33a7 1a7ccad Author: Dave Chinner Date: Tue Sep 1 10:30:11 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.3-4' into for-next commit f36fc04e4cdda9e4c72ee504e7dc638f9a168863 Merge: 26f8b7e ba30011 Author: Linus Torvalds Date: Mon Aug 31 17:26:48 2015 -0700 Merge tag 'clk-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk updates from Michael Turquette: "The clk framework changes for 4.3 are mostly updates to existing drivers and the addition of new clock drivers. Stephen Boyd has also done a lot of subsystem-wide driver clean-ups (thanks!). There are also fixes to the framework core and changes to better split clock provider drivers from clock consumer drivers" * tag 'clk-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (227 commits) clk: s5pv210: add missing call to samsung_clk_of_add_provider() clk: pistachio: correct critical clock list clk: pistachio: Fix PLL rate calculation in integer mode clk: pistachio: Fix override of clk-pll settings from boot loader clk: pistachio: Fix 32bit integer overflows clk: tegra: Fix some static checker problems clk: qcom: Fix MSM8916 prng clock enable bit clk: Add missing header for 'bool' definition to clk-conf.h drivers/clk: appropriate __init annotation for const data clk: rockchip: register pll mux before pll itself clk: add bindings for the Ux500 clocks clk/ARM: move Ux500 PRCC bases to the device tree clk: remove duplicated code with __clk_set_parent_after clk: Convert __clk_get_name(hw->clk) to clk_hw_get_name(hw) clk: Constify clk_hw argument to provider APIs clk: Hi6220: add stub clock driver dt-bindings: clk: Hi6220: Document stub clock driver dt-bindings: arm: Hi6220: add doc for SRAM controller clk: atlas7: fix pll missed divide NR in fraction mode clk: atlas7: fix bit field and its root clk for coresight_tpiu ... commit 26f8b7edc9eab56638274f5db90848a6df602081 Merge: edc837d 9ca678d Author: Linus Torvalds Date: Mon Aug 31 17:14:39 2015 -0700 Merge tag 'pci-v4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI updates from Bjorn Helgaas: "PCI changes for the v4.3 merge window: Enumeration: - Allocate ATS struct during enumeration (Bjorn Helgaas) - Embed ATS info directly into struct pci_dev (Bjorn Helgaas) - Reduce size of ATS structure elements (Bjorn Helgaas) - Stop caching ATS Invalidate Queue Depth (Bjorn Helgaas) - iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth (Bjorn Helgaas) - Move MPS configuration check to pci_configure_device() (Bjorn Helgaas) - Set MPS to match upstream bridge (Keith Busch) - ARM/PCI: Set MPS before pci_bus_add_devices() (Murali Karicheri) - Add pci_scan_root_bus_msi() (Lorenzo Pieralisi) - ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() (Lorenzo Pieralisi) Resource management: - Call pci_read_bridge_bases() from core instead of arch code (Lorenzo Pieralisi) PCI device hotplug: - pciehp: Remove unused interrupt events (Bjorn Helgaas) - pciehp: Remove ignored MRL sensor interrupt events (Bjorn Helgaas) - pciehp: Handle invalid data when reading from non-existent devices (Jarod Wilson) - pciehp: Simplify pcie_poll_cmd() (Yijing Wang) - Use "slot" and "pci_slot" for struct hotplug_slot and struct pci_slot (Yijing Wang) - Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem (Yijing Wang) - Hold pci_slot_mutex while searching bus->slots list (Yijing Wang) Power management: - Disable async suspend/resume for JMicron multi-function SATA/AHCI (Zhang Rui) Virtualization: - Add ACS quirks for Intel I219-LM/V (Alex Williamson) - Restore ACS configuration as part of pci_restore_state() (Alexander Duyck) MSI: - Add pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu) - x86: Implement pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu) - Add helpers to manage pci_dev->irq and pci_dev->irq_managed (Jiang Liu) - Free legacy IRQ when enabling MSI/MSI-X (Jiang Liu) - ARM/PCI: Remove msi_controller from struct pci_sys_data (Lorenzo Pieralisi) - Remove unused pcibios_msi_controller() hook (Lorenzo Pieralisi) Generic host bridge driver: - Remove dependency on ARM-specific struct hw_pci (Jayachandran C) - Build setup-irq.o for arm64 (Jayachandran C) - Add arm64 support (Jayachandran C) APM X-Gene host bridge driver: - Add APM X-Gene PCIe 64-bit prefetchable window (Duc Dang) - Add support for a 64-bit prefetchable memory window (Duc Dang) - Drop owner assignment from platform_driver (Krzysztof Kozlowski) Broadcom iProc host bridge driver: - Allow BCMA bus driver to be built as module (Hauke Mehrtens) - Delete unnecessary checks before phy calls (Markus Elfring) - Add arm64 support (Ray Jui) Synopsys DesignWare host bridge driver: - Don't complain missing *config* reg space if va_cfg0 is set (Murali Karicheri) TI DRA7xx host bridge driver: - Disable pm_runtime on get_sync failure (Kishon Vijay Abraham I) - Add PM support (Kishon Vijay Abraham I) - Clear MSE bit during suspend so clocks will idle (Kishon Vijay Abraham I) - Add support to make GPIO drive PERST# line (Kishon Vijay Abraham I) Xilinx AXI host bridge driver: - Check for MSI interrupt flag before handling as INTx (Russell Joyce) Miscellaneous: - Fix Intersil/Techwell TW686[4589] AV capture class code (Krzysztof Hałasa) - Use PCI_CLASS_SERIAL_USB instead of bare number (Bjorn Helgaas) - Fix generic NCR 53c810 class code quirk (Bjorn Helgaas) - Fix TI816X class code quirk (Bjorn Helgaas) - Remove unused "pci_probe" flags (Bjorn Helgaas) - Host bridge driver code simplifications (Fabio Estevam) - Add dev_flags bit to access VPD through function 0 (Mark Rustad) - Add VPD function 0 quirk for Intel Ethernet devices (Mark Rustad) - Kill off set_irq_flags() usage (Rob Herring) - Remove Intel Cherrytrail D3 delays (Srinidhi Kasagar) - Clean up pci_find_capability() (Wei Yang)" * tag 'pci-v4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (72 commits) PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI PCI: Set MPS to match upstream bridge PCI: Move MPS configuration check to pci_configure_device() PCI: Drop references acquired by of_parse_phandle() PCI/MSI: Remove unused pcibios_msi_controller() hook ARM/PCI: Remove msi_controller from struct pci_sys_data ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() PCI: Add pci_scan_root_bus_msi() ARM/PCI: Replace panic with WARN messages on failures PCI: generic: Add arm64 support PCI: Build setup-irq.o for arm64 PCI: generic: Remove dependency on ARM-specific struct hw_pci PCI: imx6: Simplify a trivial if-return sequence PCI: spear: Use BUG_ON() instead of condition followed by BUG() PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE() PCI: Remove pci_ats_enabled() PCI: Stop caching ATS Invalidate Queue Depth PCI: Move ATS declarations to linux/pci.h so they're all together PCI: Clean up ATS error handling PCI: Use pci_physfn() rather than looking up physfn by hand ... commit edc837da4b54a01ba6fa3c29b411e35d1a8430ca Merge: e5aeced 4d59ed8 Author: Linus Torvalds Date: Mon Aug 31 17:08:05 2015 -0700 Merge tag 'leds_for_4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds Pull LED updates from Jacek Anaszewski: "In this merge window we'd like to announce a change on the list of LED subsystem maintainers - Bryan Wu decided to step back and handed over the maintainership to me (Jacek Anaszewski), which entailed an update of LED subsystem git tree URL. Besides the changes in MAINTAINERS we have: - optimizations and improvements to existing LED class drivers - improvements to the common LEDs DT documentation - modifications of kirkwood-* dts files, to be in sync with patches for leds-ns2 driver, that move LEDs mode mapping outside of the driver" * tag 'leds_for_4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: leds: Export OF module alias information in missing drivers leds:lp55xx: use the private data instead of updating I2C device platform data leds: syscon: Correct check for syscon_node_to_regmap() errors leds: leds-fsg: Use devm_led_classdev_register MAINTAINERS: Change LED subsystem git tree URL leds/led-class: Add missing put_device() ARM: Kirkwood: add modes-map property to ns2-leds nodes leds: tlc591xx: Remove redundant I2C_FUNC_SMBUS_BYTE_DATA functionality check leds: leds-ns2: depends on MACH_ARMADA_370 leds: leds-ns2: handle can_sleep GPIOs leds: leds-ns2: move LED modes mapping outside of the driver leds: lp8860: Constify reg_default tables leds: Drop owner assignment from i2c_driver leds: Allow compile test of LEDS_AAT1290 and LEDS_KTD2692 if !GPIOLIB leds: Allow compile test of GPIO consumers if !GPIOLIB DT: leds: Improve description of flash LEDs related properties commit 07f081fb5057b2ea98baeca3a47bf0eb33e94aa1 Author: David Howells Date: Sun Aug 30 16:59:57 2015 +0100 PKCS#7: Add OIDs for sha224, sha284 and sha512 hash algos and use them Add OIDs for sha224, sha284 and sha512 hash algos and use them to select the hashing algorithm. Without this, something like the following error might get written to dmesg: [ 31.829322] PKCS7: Unknown OID: [32] 2.16.840.1.101.3.4.2.3 [ 31.829328] PKCS7: Unknown OID: [180] 2.16.840.1.101.3.4.2.3 [ 31.829330] Unsupported digest algo: 55 Where the 55 on the third line is OID__NR indicating an unknown OID. Reported-by: Valdis Kletnieks Signed-off-by: David Howells Tested-By: Valdis Kletnieks Signed-off-by: James Morris crypto/asymmetric_keys/mscode_parser.c | 9 +++++++++ crypto/asymmetric_keys/pkcs7_parser.c | 8 ++++++++ include/linux/oid_registry.h | 3 +++ 3 files changed, 20 insertions(+) commit e5aeced6bcec5a110e6dfcb78acc203dbe895b59 Merge: cf9d615 c5992f6 Author: Linus Torvalds Date: Mon Aug 31 15:55:49 2015 -0700 Merge tag 'spi-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi updates from Mark Brown: "A few core tweaks this time together with the usual collection of driver specific updates and fixes plus a larger than average selection of new device support: - fix DMA mapping of unaligned vmalloc() buffers - statistics tracking transfer volumes exposed via sysfs - new drivers for Freescale MPC5125, Intel Sunrise Point, Mediatek SoCs, and Netlogic XLP SoCs" * tag 'spi-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (66 commits) spi: sh-msiof: Fix FIFO size to 64 word from 256 word spi: fsl-(e)spi: Fix checking return value of devm_ioremap_resource spi: Add DT bindings documentation for Netlogic XLP SPI controller spi/xlp: SPI controller driver for Netlogic XLP SoCs spi: fsl-espi: add runtime PM spi: fsl-(e)spi: simplify cleanup code spi: fsl-(e)spi: migrate to using devm_ functions to simplify cleanup spi: mediatek: fix SPI_CMD_PAUSE_IE macro error spi: check bits_per_word in spi_setup spi: mediatek: replace *_time name spi: mediatek: add PM clk_prepare_enable fail flow spi: mediatek: replace int with u32, delete TAB and define MTK_SPI_PAUSE_INT_STATUS marco spi: mediatek: add linux/io.h include file spi/bcm63xx-hsspi: add support for dual spi read/write spi: dw: Allow interface drivers to limit data I/O to word sizes dt: snps,dw-apb-ssi: Document new I/O data register width property spi: Fall back to master maximum speed if no slave speed specified spi: mediatek: use BIT() to instead of SPI_CMD_*_OFFSET spi: medaitek: revise quirks compatibility style spi: mediatek: fix spi incorrect endian usage ... commit cf9d615f7f5842ca1ef0f28ed9f67a97d20cf6fc Merge: e270160 f5164b8 Author: Linus Torvalds Date: Mon Aug 31 15:49:19 2015 -0700 Merge tag 'regulator-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator updates from Mark Brown: "The biggest changes in the core this time around have been some refactorings that move us towards being able to drop the list of regulators maintained by the core and instead just use the driver model list maintained for the class devices for regulators which will make the code smaller and avoid some potential bugs. Otherwise another fairly quiet release for the regulator API, highlights include: - a new API for setting voltages based on a minimum, target, maximum triplet - support for continuous voltage ranges rather than tables of explicit steps in the PWM regulator, requiring less explicit configuration - new driver support for Dialog DA9215, Maxim 77843, Mediatek MT6311 and Qualcomm RPM" * tag 'regulator-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (70 commits) regulator: mt6311: fix platform_no_drv_owner.cocci warnings regulator: ltc3589: Remove unnecessary MODULE_ALIAS() regulator: ad5398: Remove unnecessary MODULE_ALIAS() regulator: pfuze100: Remove unnecessary MODULE_ALIAS() regulator: core: use debug level print in regulator_check_drms regulator: lp872x: handle error case regulator: lp872x: use the private data instead of updating I2C device platform data regulator: isl9305: Export OF module alias information regulators: max77693: register driver earlier to avoid deferred probe regulator: qcom_smd: Set n_voltages for pm8941_lnldo regulator: core: Use IS_ERR_OR_NULL() regulator: core: Define regulator_set_voltage_triplet() regulator: Regulator driver for the Qualcomm RPM regulator: pbias: Fix broken pbias disable functionality regulator: core: Spelling fix regulator: core: Use class device list for regulator_list in late init regulator: core: Move more deallocation into class unregister regulator: core: Reduce rdev locking region when releasing regulator Input: Remove the max77843 haptic driver Input: max77693: Add support for Maxim 77843 ... commit e2701603f72cd38e99c6b1da13c8e99bc27b2f34 Merge: 22629b6 ce14c58 Author: Linus Torvalds Date: Mon Aug 31 15:40:05 2015 -0700 Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6 Pull documentation updates from Jonathan Corbet: "There's been a fair amount going on in the docs tree this time around, including: - Support for reproducible document builds, from Ben Hutchings and company. - The ability to automatically generate cross-reference links within a single DocBook book and embedded descriptions for large structures. From Danilo Cesar Lemes de Paula. - A new document on how to add a system call from David Drysdale. - Chameleon bus documentation from Johannes Thumshirn. ...plus the usual collection of improvements, typo fixes, and more" * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (39 commits) Documentation, add kernel-parameters.txt entry for dis_ucode_ldr Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE Documentation/Intel-IOMMU.txt: Modify definition of DRHD docs: update HOWTO for 3.x -> 4.x versioning kernel-doc: ignore unneeded attribute information scripts/kernel-doc: Adding cross-reference links to html documentation. DocBook: Fix non-determinstic installation of duplicate man pages Documentation: minor typo fix in mailbox.txt Documentation: describe how to add a system call doc: Add more workqueue functions to the documentation ARM: keystone: add documentation for SoCs and EVMs scripts/kernel-doc Allow struct arguments documentation in struct body SubmittingPatches: remove stray quote character Revert "DocBook: Avoid building man pages repeatedly and inconsistently" Documentation: Minor changes to men-chameleon-bus.txt Doc: fix trivial typo in SubmittingPatches MAINTAINERS: Direct Documentation/DocBook/media properly Documentation: installed man pages don't need to be executable fix Evolution submenu name in email-clients.txt Documentation: Add MCB documentation ... commit 22629b6d9072c4e86e900306d7020ad722ae6536 Merge: c8192ba 1ed3216 Author: Linus Torvalds Date: Mon Aug 31 15:31:12 2015 -0700 Merge tag 'hwmon-for-linus-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon updates from Guenter Roeck: "Notable changes: - added support for LTM4675, LTC3886, LTC2980, LTM2987, LTC2975, LTC3887, LTC3882, MAX20751, ADM1293, and ADM1294 to PMBus drivers - added support for IT8732F to it87 driver - added support for AMD Carrizo to fam15h_power driver - added support for various new attributes to nct7802 driver - added support for F81866 and F71868 to f71882fg driver" * tag 'hwmon-for-linus-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (45 commits) hwmon: (fam15h_power) Add ratio of Tsample to the PTSC period hwmon: (fam15h_power) Add documentation for new processors support hwmon: (fam15h_power) Update running_avg_capture bit field to 28 hwmon: (fam15h_power) Rename fam15h_power_is_internal_node0 function hwmon: (fam15h_power) Add support for AMD Carrizo hwmon: (ltc2978) Add support for LTM4675 hwmon: (ltc2978) Add polling for chips requiring it hwmon: (pmbus) Enable PEC if the controller supports it hwmon: (pmbus) Use BIT macro hwmon: (ltc2978) Add support for LTC3886 hwmon: (ltc2978) Add support for LTC2980 and LTM2987 hwmon: (ltc2978) Add missing chip IDs for LTC2978 and LTC3882 hwmon: (ltc2978) Use correct ID mask to detect all chips hwmon: (ltc2978) Introduce helper functions for min and max values hwmon: (ltc2978) Introduce feature flags hwmon: (pmbus) Convert command register definitions to enum hwmon: (ltc2978) Add support for LTC2975 hwmon: (ltc2978) Add support for LTC3887 hwmon: (ltc2978) Add additional chip IDs for LTM4676 and LTM4676A hwmon: (ltc2978) Add support for LTC3882 ... commit c8192ba416397ad6ce493f186da40767ce086c3b Merge: 9c6a019 b68c316 Author: Linus Torvalds Date: Mon Aug 31 15:25:16 2015 -0700 Merge tag 'for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply and reset changes from Sebastian Reichel: - new reset driver for ZTE SoCs - add support for sama5d3 reset handling - overhaul of twl4030 charger driver - misc fixes and cleanups * tag 'for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (35 commits) bq2415x_charger: Allow to load and use driver even if notify device is not registered yet twl4030_charger: fix compile error when TWL4030_MADC not available. power: bq24190_charger: Fix charge type sysfs property power: Allow compile test of GPIO consumers if !GPIOLIB power: Export I2C module alias information in missing drivers twl4030_charger: Increase current carefully while watching voltage. twl4030_charger: add ac/mode to match usb/mode twl4030_charger: add software controlled linear charging mode. twl4030_charger: enable manual enable/disable of usb charging. twl4030_charger: allow max_current to be managed via sysfs. twl4030_charger: distinguish between USB current and 'AC' current twl4030_charger: allow fine control of charger current. twl4030_charger: split uA calculation into a function. twl4030_charger: trust phy to determine when USB power is available. twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node twl4030_charger: convert to module_platform_driver instead of ..._probe. twl4030_charger: use runtime_pm to keep usb phy active while charging. rx51-battery: Set name to rx51-battery MAINTAINERS: AVS is not maintained via power supply tree power: olpc_battery: clean up eeprom read function ... commit c42858eaf4926eb2f44f3e26731b276ab966ac28 Author: Eric Dumazet Date: Mon Aug 31 13:57:34 2015 -0700 gro_cells: remove spinlock protecting receive queues As David pointed out, spinlock are no longer needed to protect the per cpu queues used in gro cells infrastructure. Also use new napi_complete_done() API so that gro_flush_timeout tweaks have an effect. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/gro_cells.h | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit e704059272aae2aaa5e5ce7a76e4c27c492e947e Author: David Ward Date: Mon Aug 31 14:15:14 2015 -0400 net: qmi_wwan: Sierra Wireless MC73xx -> Sierra Wireless MC7304/MC7354 Other Sierra Wireless MC73xx devices exist, with different USB IDs. Cc: Bjørn Mork Signed-off-by: David Ward Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a394eef562d781f37a50d99cf1dfe596dc1ed96d Author: Marius Tomaschewski Date: Mon Aug 31 15:59:22 2015 +0200 ipv6: send NEWLINK on RA managed/otherconf changes The kernel is applying the RA managed/otherconf flags silently and forgets to send ifinfo notify to inform about their change when the router provides a zero reachable_time and retrans_timer as dnsmasq and many routers send it, which just means unspecified by this router and the host should continue using whatever value it is already using. Userspace may monitor the ifinfo notifications to activate dhcpv6. Signed-off-by: Marius Tomaschewski Signed-off-by: David S. Miller net/ipv6/ndisc.c | 5 +++++ 1 file changed, 5 insertions(+) commit 9c6a019c6edf8591e34ae9da51bac7684131d905 Merge: 7c01919 e4ec735 Author: Linus Torvalds Date: Mon Aug 31 15:11:53 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 updates from Martin Schwidefsky: "The big one is support for fake NUMA, splitting a really large machine in more manageable piece improves performance in some cases, e.g. for a KVM host. The FICON Link Incident handling has been improved, this helps the operator to identify degraded or non-operational FICON connections. The save and restore of floating point and vector registers has been overhauled to allow the future use of vector registers in the kernel. A few small enhancement, magic sys-requests for the vt220 console via SCLP, some more assembler code has been converted to C, the PCI error handling is improved. And the usual cleanup and bug fixing" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (59 commits) s390/jump_label: Use %*ph to print small buffers s390/sclp_vt220: support magic sysrequests s390/ctrlchar: improve handling of magic sysrequests s390/numa: remove superfluous ARCH_WANT defines s390/3270: redraw screen on unsolicited device end s390/dcssblk: correct out of bounds array indexes s390/mm: simplify page table alloc/free code s390/pci: move debug messages to debugfs s390/nmi: initialize control register 0 earlier s390/zcrypt: use msleep() instead of mdelay() s390/hmcdrv: fix interrupt registration s390/setup: fix novx parameter s390/uaccess: remove uaccess_primary kernel parameter s390: remove unneeded sizeof(void *) comparisons s390/facilities: remove transactional-execution bits s390/numa: re-add DIE sched_domain_topology_level s390/dasd: enhance CUIR scope detection s390/dasd: fix failing path verification s390/vdso: emit a GNU hash s390/numa: make core to node mapping data dynamic ... commit 7c01919130ef8b27306ed1faf1f2cc079621923c Merge: 7b8067d 650c919 Author: Linus Torvalds Date: Mon Aug 31 15:06:28 2015 -0700 Merge tag 'xtensa-20150830' of git://github.com/czankel/xtensa-linux Pull xtensa updates from Chris Zankel: "Xtensa fixes and improvements for 4.3: - reimplement DMA API using common helpers - implement counting and sampling perf events using hardware perf counters - add fake NMI support for hardware perf counters - fix THREADPTR register reloading on return to userspace - keep exception/interrupt stack continuous for debugger - improve vmlinux.lds.S post-processing" * tag 'xtensa-20150830' of git://github.com/czankel/xtensa-linux: xtensa: improve vmlinux.lds.S sed post-processing xtensa: drop unused irq_err_count xtensa: implement fake NMI xtensa: don't touch EXC_TABLE_FIXUP in _switch_to xtensa: fix kernel register spilling xtensa: reorganize irq flags tracing perf tools: xtensa: add DWARF register names xtensa: implement counting and sampling perf events xtensa: count software page fault perf events xtensa: add profiling IRQ type to xtensa_irq_map xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations xtensa: move oprofile stack tracing to stacktrace.c xtensa: keep exception/interrupt stack continuous xtensa: clean up Kconfig dependencies for custom cores xtensa: reimplement DMA API using common helpers xtensa: fix threadptr reload on return to userspace xtensa: ISS: add missing va_end into split_if_spec commit 7b8067d37058ec01889513e16033fb6de72a98ce Merge: 9551bf2 8f8dcb3 Author: Linus Torvalds Date: Mon Aug 31 15:01:08 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha Pull alpha update from Matt Turner: "A single patch for alpha, one that enables ARCH_USE_CMPXCHG_LOCKREF and offers around an 8% performance improvement on a little benchmark that you wrote" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha: alpha: select CONFIG_ARCH_USE_CMPXCHG_LOCKREF. commit 9551bf292d67e9070409b59685cdb8fc5437ec3a Merge: 4ff1204 1ecb406 Author: Linus Torvalds Date: Mon Aug 31 14:52:45 2015 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k Pull m68k updates from Geert Uytterhoeven. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k/bootinfo: Use kmemdup rather than duplicating its implementation m68k/defconfig: Update defconfigs for v4.2-rc1 m68k/defconfig: Disable experimental CONFIG_DM_CACHE commit 684511ac2eeb015b7a9a46c575543566e1b1fb7c Merge: 6ea3c9d5 bc0f4a8 Author: David S. Miller Date: Mon Aug 31 14:48:03 2015 -0700 Merge branch 'dsa-port-config' Andrew Lunn says: ==================== DSA port configuration and status This patchset allows various switch port settings to be configured and port status to be sampled. Some of these patches have been posted before. The first three patches provide infrastructure for configuring a switch ports link speed and duplex from a fixed_link phy. Patch four then uses this infrastructure to allow the CPU and DSA ports of a switch to be configured using a fixed-link property in the device tree. Patches five and six allow a phy-mode property to be specified in the device tree, and allow this to be used for configuring RGMII delays. Patches seven through nine allow link status, for example that of an SFP module, to be read from a gpio. Changes since v1: Rewrite 9/9 so that it hopefully does not regression on 868a4215be9a6d80 ("net: phy: fixed_phy: handle link-down case") ==================== Signed-off-by: David S. Miller commit bc0f4a87fc7e45642455682f281de2131cde9695 Author: Andrew Lunn Date: Mon Aug 31 15:56:54 2015 +0200 net: phy: fixed_phy: Set phy capabilities even when link down. What features a phy supports is masked in genphy_config_init() by looking at the PHYs BMSR register. If the link is down, fixed_phy_update_regs() will only set the auto- negotiation capable bit in BMSR. Thus genphy_config_init() comes to the conclusion the PHY can only perform 10/Half, and masks out the higher speed features. If however the link it up, BMSR is set to indicate the speed the PHY is capable of auto-negotiating, and genphy_config_init() does not mask out the high speed features. To fix this, when the link is down, have fixed_phy_update_regs() leave the link status, auto-negotiation complete, and link partner capabilities unset, but set all the local capabilities depending on the fixed phy speed. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 73 +++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 25 deletions(-) commit a5597008dbc230876db2d344561d634f4d52ea4a Author: Andrew Lunn Date: Mon Aug 31 15:56:53 2015 +0200 phy: fixed_phy: Add gpio to determine link up/down. An SFP module may have a link up/down status pin which can be connection to a GPIO line of the host. Add support for reading such an GPIO in the fixed_phy driver. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller .../devicetree/bindings/net/fixed-link.txt | 14 +++++++++++- Documentation/networking/stmmac.txt | 2 +- arch/m68k/coldfire/m5272.c | 2 +- arch/mips/ar7/platform.c | 5 +++-- arch/mips/bcm47xx/setup.c | 2 +- drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +- drivers/net/phy/fixed_phy.c | 26 +++++++++++++++++++--- drivers/of/of_mdio.c | 13 ++++++++--- include/linux/phy_fixed.h | 8 +++++-- 9 files changed, 59 insertions(+), 15 deletions(-) commit 8b59d19e749b8cb454b7912396c2a6a1b91b9d30 Author: Andrew Lunn Date: Mon Aug 31 15:56:52 2015 +0200 dsa: mv88e6xxx: Don't poll forced interfaces for state changes When polling for link status, don't consider ports which have a forced link. Such ports don't monitor their phy or may not even have a phy. Signed-off-by: Andrew Lunn Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 5 +++++ 1 file changed, 5 insertions(+) commit e7e72ac05acc357065a9448314dd14fff7c40d39 Author: Andrew Lunn Date: Mon Aug 31 15:56:51 2015 +0200 dsa: mv88e6xxx: Set the RGMII delay based on phy interface Some Marvell switches allow the RGMII Rx and Tx clock to be delayed when the port is using RGMII. Have the adjust_link function look at the phy interface type and enable this delay as requested. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 10 ++++++++++ drivers/net/dsa/mv88e6xxx.h | 2 ++ 2 files changed, 12 insertions(+) commit e44853466844c20d8b5b16de187f63ddc50710dd Author: Andrew Lunn Date: Mon Aug 31 15:56:50 2015 +0200 net: dsa: Allow DSA and CPU ports to have a phy-mode property It can be useful for DSA and CPU ports to have a phy-mode property, in particular to specify RGMII delays. Parse the property and set it in the fixed-link phydev. Signed-off-by: Andrew Lunn Acked-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/dsa.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 39b0c705195e9409dc8a40cc82b11d81405a4a4b Author: Andrew Lunn Date: Mon Aug 31 15:56:49 2015 +0200 net: dsa: Allow configuration of CPU & DSA port speeds/duplex By default, DSA and CPU ports are configured to the maximum speed the switch supports. However there can be use cases where the peer devices port is slower. Allow a fixed-link property to be used with the DSA and CPU port in the device tree, and use this information to configure the port. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/dsa.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 34b31da486a5e4eda9ff548ebf6dc3adc167bd0c Author: Andrew Lunn Date: Mon Aug 31 15:56:48 2015 +0200 phy: fixed_phy: Set supported speed in phydev Set the supported field of the phydev to indicate the speed features of the phy. If the phy is never attached to a netdev, but used in an adjust_link() function, the speed will be incorrectly evaluated to 10/half rather than the correct speed/duplex. Signed-off-by: Andrew Lunn Acked-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit dea870242a9c4ea74b3ca0f2da3f864c47484cff Author: Andrew Lunn Date: Mon Aug 31 15:56:47 2015 +0200 dsa: mv88e6xxx: Allow speed/duplex of port to be configured The current code sets user ports to perform auto negotiation using the phy. CPU and DSA ports are configured to full duplex and maximum speed the switch supports. There are however use cases where the CPU has a slower port, and when user ports have SFP modules with fixed speed. In these cases, port settings to be read from a fixed_phy devices. The switch driver then needs to implement the adjust_link op, so the port settings can be set. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/mv88e6123_61_65.c | 1 + drivers/net/dsa/mv88e6131.c | 1 + drivers/net/dsa/mv88e6171.c | 1 + drivers/net/dsa/mv88e6352.c | 1 + drivers/net/dsa/mv88e6xxx.c | 58 +++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 2 ++ 6 files changed, 64 insertions(+) commit 5a11dd7d9649149f336ca72069d56ce52b21567f Author: Florian Fainelli Date: Mon Aug 31 15:56:46 2015 +0200 net: phy: Allow PHY devices to identify themselves as Ethernet switches, etc. Some Ethernet MAC drivers using the PHY library require the hardcoding of link parameters when interfaced to a switch device, SFP module, switch to switch port, etc. This has typically lead to various ad-hoc implementations looking like this: - using a "fixed PHY" emulated device, which will provide link indication towards the Ethernet MAC driver and hardware - pretend there is no PHY and hardcode link parameters, ala mv643x_eth Based on that, it is desireable to have the PHY drivers advertise the correct link parameters, just like regular Ethernet PHYs towards their CPU Ethernet MAC drivers, however, Ethernet MAC drivers should be able to tell whether this link should be monitored or not. In the context of an Ethernet switch, SFP module, switch to switch link, we do not need to monitor this link since it should be always up. Signed-off-by: Florian Fainelli Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 1 + include/linux/phy.h | 12 ++++++++++++ 2 files changed, 13 insertions(+) commit 4ff12049d6b6cc79ad8ee092ae226434687062ec Merge: c207840 44840de Author: Linus Torvalds Date: Mon Aug 31 14:38:07 2015 -0700 Merge tag 'usb-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB updates from Greg KH: "Here's the big USB and PHY patchset for 4.3-rc1. As usual, the majority of the changes are in the USB gadget portion of the tree, lots of little changes all over the place for bugs and new hardware. Other than that, the normal mix of new hardware support and bugfixes. All have been in linux-next with no reported issues" * tag 'usb-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (261 commits) USB: qcserial: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module USB: ftdi_sio: Added custom PID for CustomWare products USB: usb_wwan: silence read errors on disconnect USB: option: silence interrupt errors USB: symbolserial: Correct transferred data size USB: symbolserial: Use usb_get_serial_port_data usb: misc: usbtest: format max packet size for iso transfer usb: host: ehci-sys: delete useless bus_to_hcd conversion Revert "usb: interface authorization: Declare authorized attribute" Revert "usb: interface authorization: Introduces the default interface authorization" Revert "usb: interface authorization: Control interface probing and claiming" Revert "usb: interface authorization: Introduces the USB interface authorization" Revert "usb: interface authorization: SysFS part of USB interface authorization" Revert "usb: interface authorization: Documentation part" Revert "usb: interface authorization: Use a flag for the default device authorization" usb: core: hub: Removed some warnings generated by checkpatch.pl USB: host: ohci-at91: merge loops in ohci_hcd_at91_drv_probe USB: host: ohci-at91: merge ohci_at91_of_init in ohci_hcd_at91_drv_probe USB: host: ohci-at91: depend on OF USB: host: ohci-at91: move at91_usbh_data definition in c file ... commit c2078402e479f963168bfcf7a8de78ab63748a98 Merge: 2f37d65 c868cbb Author: Linus Torvalds Date: Mon Aug 31 14:28:07 2015 -0700 Merge tag 'tty-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial driver updates from Greg KH: "Here is the big tty/serial driver update for 4.3-rc1. Not many major things, a number of driver updates and changes, and the 8250 driver got split up a bit to make it easier to work with by moving some functions to a new file. Full details are in the shortlog. All have been in linux-next with no reported issues" * tag 'tty-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (90 commits) serial: imx: save and restore context in the suspend path serial: imx: allow waking up on RTSD serial: imx: introduce serial_imx_enable_wakeup() serial: imx: remove unbalanced clk_prepare serial: 8250: move rx_running out of the bitfield tty: serial: 8250_omap: do not use RX DMA if pause is not supported serial:8250_dw: do not alter CTS and DCTS since AFE is enabled tty: serial: men_z135_uart.c: Don't initialize port->lock tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios() serial: 8250: bind to ALi Fast Infrared Controller (ALI5123) serial: 8250: don't bind to SMSC IrCC IR port serial: mxs-auart: fix baud rate range serial: mxs-auart: keep the AUART unit in reset state when not in use serial: mxs-auart: use a function name to reflect what it really does serial: 8250_pci: fix mode after S3/S4 resume for F81504/508/512 sc16is7xx: constify devtype sc16is7xx: support multiple devices sc16is7xx: save and use per-chip line number uart: pl011: Add support to ZTE ZX296702 uart uart: pl011: Improve LCRH register access decision ... commit bcc84ec65ad1bd9f777a1fade6f8e5e0c5808fa5 Author: Stephane Eranian Date: Mon Aug 31 18:41:12 2015 +0200 perf record: Add ability to name registers to record This patch modifies the -I/--int-regs option to enablepassing the name of the registers to sample on interrupt. Registers can be specified by their symbolic names. For instance on x86, --intr-regs=ax,si. The motivation is to reduce the size of the perf.data file and the overhead of sampling by only collecting the registers useful to a specific analysis. For instance, for value profiling, sampling only the registers used to passed arguements to functions. With no parameter, the --intr-regs still records all possible registers based on the architecture. To name registers, it is necessary to use the long form of the option, i.e., --intr-regs: $ perf record --intr-regs=si,di,r8,r9 ..... To record any possible registers: $ perf record -I ..... $ perf report --intr-regs ... To display the register, one can use perf report -D To list the available registers: $ perf record --intr-regs=\? available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15 Signed-off-by: Stephane Eranian Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441039273-16260-4-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 6 ++- tools/perf/builtin-record.c | 7 +++- tools/perf/perf.h | 2 +- tools/perf/util/Build | 1 + tools/perf/util/evsel.c | 2 +- tools/perf/util/parse-regs-options.c | 71 ++++++++++++++++++++++++++++++++ tools/perf/util/parse-regs-options.h | 5 +++ 7 files changed, 89 insertions(+), 5 deletions(-) commit c5e991ee9dff0f8136168ed2d0d1a8cc3620dac4 Author: Stephane Eranian Date: Mon Aug 31 18:41:11 2015 +0200 perf/x86: Add list of register names This patch adds a way to locate a register identifier (PERF_X86_REG_*) based on its name, e.g., AX. This will be used by a subsequent patch to improved flexibility of perf record. Signed-off-by: Stephane Eranian Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441039273-16260-3-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/Build | 1 + tools/perf/arch/x86/util/perf_regs.c | 30 ++++++++++++++++++++++++++++++ tools/perf/util/perf_regs.h | 7 +++++++ 3 files changed, 38 insertions(+) commit fc36f9485aee3a62b22be1f561543a31bce6d48e Author: Stephane Eranian Date: Mon Aug 31 18:41:10 2015 +0200 perf script: Enable printing of interrupted machine state This patch adds the output of the interrupted machine state (iregs) to perf script. It presents them as NAME:VALUE so this is easy to parse during post processing. To capture the interrupted machine state: $ perf record -I .... to display iregs, use the -F option: $ perf script -F ip,iregs 40afc2 AX:0x6c5770 BX:0x1e CX:0x5f4d80a DX:0x101010101010101 SI:0x1 Signed-off-by: Stephane Eranian Tested-by: Arnaldo Carvalho de Melo Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1441039273-16260-2-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-script.txt | 2 +- tools/perf/builtin-script.c | 31 ++++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) commit bdbf4a29ee5bbe5b6743ba47bc7b10ec2cba8b21 Author: Vladimir Zapolskiy Date: Wed Aug 26 23:59:33 2015 +0300 i2c: muxes: fix leaked i2c adapter device node references Every call of of_parse_phandle() increments user count of found device node, if OF_DYNAMIC is enabled. The change fixes all similar addressed cases in drivers/i2c. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 1 + drivers/i2c/muxes/i2c-mux-gpio.c | 1 + drivers/i2c/muxes/i2c-mux-pinctrl.c | 1 + drivers/i2c/muxes/i2c-mux-reg.c | 1 + 4 files changed, 4 insertions(+) commit 3fcbbd244ed1d20dc0eb7d48d729503992fa9b7d Author: Jeff Layton Date: Mon Aug 24 12:41:48 2015 -0400 nfsd: ensure that delegation stateid hash references are only put once It's possible that a DELEGRETURN could race with (e.g.) client expiry, in which case we could end up putting the delegation hash reference more than once. Have unhash_delegation_locked return a bool that indicates whether it was already unhashed. In the case of destroy_delegation we only conditionally put the hash reference if that returns true. The other callers of unhash_delegation_locked call it while walking list_heads that shouldn't yet be detached. If we find that it doesn't return true in those cases, then throw a WARN_ON as that indicates that we have a partially hashed delegation, and that something is likely very wrong. Tested-by: Andrew W Elble Tested-by: Anna Schumaker Signed-off-by: Jeff Layton Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) commit e85687393f3ee0a77ccca016f903d1558bb69258 Author: Jeff Layton Date: Mon Aug 24 12:41:47 2015 -0400 nfsd: ensure that the ol stateid hash reference is only put once When an open or lock stateid is hashed, we take an extra reference to it. When we unhash it, we drop that reference. The code however does not properly account for the case where we have two callers concurrently trying to unhash the stateid. This can lead to list corruption and the hash reference being put more than once. Fix this by having unhash_ol_stateid use list_del_init on the st_perfile list_head, and then testing to see if that list_head is empty before releasing the hash reference. This means that some of the unhashing wrappers now become bool return functions so we can test to see whether the stateid was unhashed before we put the reference. Reported-by: Andrew W Elble Tested-by: Andrew W Elble Reported-by: Anna Schumaker Tested-by: Anna Schumaker Signed-off-by: Jeff Layton Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 58 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 22 deletions(-) commit 051ac3848a94f21cfdec899cc9c65ce7f9f116fa Author: Pratyush Anand Date: Thu Aug 27 10:01:33 2015 +0530 net: sunrpc: fix tracepoint Warning: unknown op '->' `perf stat -e sunrpc:svc_xprt_do_enqueue true` results in Warning: unknown op '->' Warning: [sunrpc:svc_xprt_do_enqueue] unknown op '->' Similar warning for svc_handle_xprt as well. Actually TP_printk() should never dereference an address saved in the ring buffer that points somewhere in the kernel. There's no guarantee that that object still exists (with the exception of static strings). Therefore change all the arguments for TP_printk(), so that it references values existing in the ring buffer only. While doing that, also fix another possible bug when argument xprt could be NULL and TP_fast_assign() tries to access it's elements. Signed-off-by: Pratyush Anand Reviewed-by: Jeff Layton Acked-by: Steven Rostedt Cc: stable@vger.kernel.org Fixes: 83a712e0afef "sunrpc: add some tracepoints around ..." Signed-off-by: J. Bruce Fields include/trace/events/sunrpc.h | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 51a545685905c934237e640083bc3aa40b36dc14 Author: Jeff Layton Date: Thu Aug 20 07:17:01 2015 -0400 nfsd: allow more than one laundry job to run at a time We can potentially have several nfs4_laundromat jobs running if there are multiple namespaces running nfsd on the box. Those are effectively separated from one another though, so I don't see any reason to serialize them. Also, create_singlethread_workqueue automatically adds the WQ_MEM_RECLAIM flag. Since we run this job on a timer, it's not really involved in any reclaim paths. I see no need for a rescuer thread. Signed-off-by: Jeff Layton Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46cc8ba30445025f0ed3ed9f429aea573b301122 Author: Paul Gortmaker Date: Tue Aug 25 16:59:16 2015 -0400 nfsd: don't WARN/backtrace for invalid container deployment. These messages, combined with the backtrace they trigger, makes it seem like a serious problem, though a quick search shows distros marking it as a "won't fix" non-issue when the problem is reported by users. The backtrace is overkill, and only really manages to show that if you follow the code path, you can't really avoid it with bootargs or configuration settings in the container. Given that, lets tone it down a bit and get rid of the WARN severity, and the associated backtrace, so people aren't needlessly alarmed. Also, lets drop the split printk line, since they are grep unfriendly. Signed-off-by: Paul Gortmaker Signed-off-by: J. Bruce Fields fs/nfsd/nfs4recover.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit d988d5ee647861706bc7a391ddbc29429b50f00e Author: Kan Liang Date: Fri Aug 21 02:23:14 2015 -0400 perf evlist: Open event on evsel cpus and threads An evsel may have different cpus and threads than the evlist it is in. Use it's own cpus and threads, when opening the evsel in 'perf record'. Signed-off-by: Kan Liang Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1440138194-17001-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 2 +- tools/perf/util/evlist.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 7fadc59cc89f207ff6ca3d0951e11265fb4f806e Author: Randy Dunlap Date: Sun Aug 9 18:43:17 2015 -0700 fs: fix fs/locks.c kernel-doc warning Fix kernel-doc warnings in fs/locks.c: Warning(..//fs/locks.c:1577): No description found for parameter 'flags' Signed-off-by: Randy Dunlap Signed-off-by: Jeff Layton fs/locks.c | 1 + 1 file changed, 1 insertion(+) commit 1f65c17e15992193f1c3f735696872cb75191517 Author: J. Bruce Fields Date: Tue Aug 18 15:34:44 2015 -0400 nfsd: Add Jeff Layton as co-maintainer Jeff has been doing a lot of development (including much of the state-locking rewrite just as one example) plus lots of review and other miscellaneous nfsd work, so let's acknowledge the status quo. I'll continue to be the one to send regular pull requests but Jeff will should be available to cover there occasionally too. Signed-off-by: J. Bruce Fields MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 75976de6556f593f6c2a18bbbcfb1e594cc7598a Author: Kinglong Mee Date: Thu Jul 30 21:55:30 2015 +0800 NFSD: Return word2 bitmask if setting security label in OPEN/CREATE Security label can be set in OPEN/CREATE request, nfsd should set the bitmask in word2 if setting success. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 95 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 39 deletions(-) commit ead8fb8c24411722b92198b3dccd102a76cdd050 Author: Kinglong Mee Date: Thu Jul 30 21:55:02 2015 +0800 NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1 According to rfc5661 18.16.4, "If EXCLUSIVE4_1 was used, the client determines the attributes used for the verifier by comparing attrset with cva_attrs.attrmask;" So, EXCLUSIVE4_1 also needs those bitmask used to store the verifier. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4proc.c | 12 ++++++------ fs/nfsd/vfs.c | 6 ------ fs/nfsd/vfs.h | 6 ++++++ 3 files changed, 12 insertions(+), 12 deletions(-) commit 7d580722c9f353d19e255f929d341caa821060d6 Author: Kinglong Mee Date: Thu Jul 30 21:54:26 2015 +0800 nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL. The encode order should be as the bitmask defined order. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 6896f15aabde505b35888039af93d1d182a0108a Author: Kinglong Mee Date: Thu Jul 30 21:52:44 2015 +0800 nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug Currently we'll respond correctly to a request for either FS_LAYOUT_TYPES or LAYOUT_TYPES, but not to a request for both attributes simultaneously. Signed-off-by: Kinglong Mee Reviewed-by: Christoph Hellwig Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) commit acf860ae7c53cc8b0c5d372c218332aac3eeba4f Author: Wang Nan Date: Thu Aug 27 02:30:55 2015 +0000 bpf tools: New API to get name from a BPF object Before this patch there's no way to connect a loaded bpf object to its source file. However, during applying perf's '--filter' to BPF object, without this connection makes things harder, because perf loads all programs together, but '--filter' setting is for each object. The API of bpf_object__open_buffer() is changed to allow passing a name. Fortunately, at this time there's only one user of it (perf test LLVM), so we change it together. Signed-off-by: Wang Nan 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/1440742821-44548-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 25 ++++++++++++++++++++++--- tools/lib/bpf/libbpf.h | 4 +++- tools/perf/tests/llvm.c | 2 +- 3 files changed, 26 insertions(+), 5 deletions(-) commit dc9cee5db50afaf38506bc12eb479fb8ea536dba Author: Mike Snitzer Date: Mon Aug 31 15:41:34 2015 -0400 dm cache: small cleanups related to deferred prison cell cleanup Eliminate __cell_release() since it only had one caller that always released the cell holder. Switch cell_error_with_code() to using free_prison_cell() for the sake of consistency. Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 6ea3c9d5b042edf14eac1e21af21c41f81f3491e Author: Nikolay Aleksandrov Date: Mon Aug 31 10:44:19 2015 -0700 mpls: fix mpls_net_init memory leak Fix a memory leak in the mpls netns init function in case of failure. If register_net_sysctl fails then we need to free the ctl_table. Fixes: 7720c01f3f59 ("mpls: Add a sysctl to control the size of the mpls label table") Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/mpls/af_mpls.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f0fa6e529efbca3b97ab6286dbeb5910e33f6c53 Author: David Ahern Date: Mon Aug 31 09:57:12 2015 -0600 net: Add tos to validate source tracepoint TOS is another key aspect of the lookup passed to fib_validate_source. Add it to the tracepoint. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/trace/events/fib.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit dbb7ee0e474cc8221de55583f516275693c5b552 Author: Alexei Starovoitov Date: Mon Aug 31 08:57:10 2015 -0700 lib: move strncpy_from_unsafe() into mm/maccess.c To fix build errors: kernel/built-in.o: In function `bpf_trace_printk': bpf_trace.c:(.text+0x11a254): undefined reference to `strncpy_from_unsafe' kernel/built-in.o: In function `fetch_memory_string': trace_kprobe.c:(.text+0x11acf8): undefined reference to `strncpy_from_unsafe' move strncpy_from_unsafe() next to probe_kernel_read/write() which use the same memory access style. Reported-by: Fengguang Wu Reported-by: Guenter Roeck Fixes: 1a6877b9c0c2 ("lib: introduce strncpy_from_unsafe()") Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/strncpy_from_user.c | 41 ----------------------------------------- mm/maccess.c | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 41 deletions(-) commit 9dc30648f0708cf063e29470d83f63f8dc8fc430 Merge: 87583eb c3a8d94 Author: David S. Miller Date: Mon Aug 31 12:34:00 2015 -0700 Merge branch 'per-route-dctcp-receive-side' Daniel Borkmann says: ==================== tcp: receive-side per route dctcp handling Original cover letter: Currently, the following case doesn't use DCTCP, even if it should: - responder has f.e. cubic as system wide default - 'ip route congctl dctcp $src' was set Then, DCTCP is NOT used if a DCTCP sender attempts to connect from a host in the $src range: ECT(0) is set, but listen_sk is not dctcp, so we fail the INET_ECN_is_not_ect sanity check. We also have to examine the dst used for the SYN/ACK reply to make this case work. In order to minimize additional cost, store the 'ecn is must have' information is the dst_features field. The set targets -next instead of -net since this doesn't seem to be a serious bug and to give the change more soak time until it hits linus tree. v1 -> v2: - Addressed Dave's feedback, not exposing any bits to user space - Added patch 3 to reject incorrect configurations - Rest as is, rebased and retested ==================== Signed-off-by: David S. Miller commit c3a8d9474684d391b0afc3970d9b249add15ec07 Author: Daniel Borkmann Date: Mon Aug 31 15:58:47 2015 +0200 tcp: use dctcp if enabled on the route to the initiator Currently, the following case doesn't use DCTCP, even if it should: A responder has f.e. Cubic as system wide default, but for a specific route to the initiating host, DCTCP is being set in RTAX_CC_ALGO. The initiating host then uses DCTCP as congestion control, but since the initiator sets ECT(0), tcp_ecn_create_request() doesn't set ecn_ok, and we have to fall back to Reno after 3WHS completes. We were thinking on how to solve this in a minimal, non-intrusive way without bloating tcp_ecn_create_request() needlessly: lets cache the CA ecn option flag in RTAX_FEATURES. In other words, when ECT(0) is set on the SYN packet, set ecn_ok=1 iff route RTAX_FEATURES contains the unexposed (internal-only) DST_FEATURE_ECN_CA. This allows to only do a single metric feature lookup inside tcp_ecn_create_request(). Joint work with Florian Westphal. Signed-off-by: Daniel Borkmann Signed-off-by: Florian Westphal Signed-off-by: David S. Miller include/net/dst.h | 6 ++++++ include/net/tcp.h | 2 +- net/core/rtnetlink.c | 6 ++++++ net/ipv4/fib_semantics.c | 6 +++++- net/ipv4/tcp_cong.c | 9 ++++++--- net/ipv4/tcp_input.c | 7 +++++-- net/ipv6/route.c | 9 +++++++-- 7 files changed, 36 insertions(+), 9 deletions(-) commit b8d3e4163a3562d7cba486687904383e78e7dd6a Author: Daniel Borkmann Date: Mon Aug 31 15:58:46 2015 +0200 fib, fib6: reject invalid feature bits Feature bits that are invalid should not be accepted by the kernel, only the lower 4 bits may be configured, but not the remaining ones. Even from these 4, 2 of them are unused. Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller include/uapi/linux/rtnetlink.h | 11 +++++++---- net/ipv4/fib_semantics.c | 2 ++ net/ipv6/route.c | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) commit 1bb14807bc761a88bb9d319e7bf519eebf4c82ec Author: Daniel Borkmann Date: Mon Aug 31 15:58:45 2015 +0200 net: fib6: reduce identation in ip6_convert_metrics Reduce the identation a bit, there's no need to artificically have it increased. Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller net/ipv6/route.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 6cf9dfd3bd62edfff69f11c0f111bc261166e4c7 Author: Florian Westphal Date: Mon Aug 31 15:58:44 2015 +0200 net: fib: move metrics parsing to a helper fib_create_info() is already quite large, so before adding more code to the metrics section move that to a helper, similar to ip6_convert_metrics. Suggested-by: Daniel Borkmann Signed-off-by: Florian Westphal Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 71 ++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 30 deletions(-) commit 87583ebb9f6ea6dc7f8ef167b815656787e429fc Author: Philip Downey Date: Mon Aug 31 11:30:38 2015 +0100 IGMP: Document igmp_link_local_mcast_reports Document the addition of a new sysctl variable which controls the generation of IGMP reports for link local multicast groups in the 224.0.0.X range. IGMP reports for local multicast groups can now be optionally inhibited by setting the value to zero e.g.: echo 0 > /proc/sys/net/ipv4/igmp_link_local_mcast_reports To retain backwards compatibility the previous behaviour is retained by default on system boot or reverted by setting the value back to non-zero. Signed-off-by: Philip Downey Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 5 +++++ 1 file changed, 5 insertions(+) commit 4c22279848c531fc7f555d463daf3d0df963bd41 Author: Pravin B Shelar Date: Sun Aug 30 18:09:38 2015 -0700 ip-tunnel: Use API to access tunnel metadata options. Currently tun-info options pointer is used in few cases to pass options around. But tunnel options can be accessed using ip_tunnel_info_opts() API without using the pointer. Following patch removes the redundant pointer and consistently make use of API. Signed-off-by: Pravin B Shelar Acked-by: Thomas Graf Reviewed-by: Jesse Gross Signed-off-by: David S. Miller drivers/net/geneve.c | 9 ++---- drivers/net/vxlan.c | 4 +-- include/net/dst_metadata.h | 31 +++++++++---------- include/net/ip_tunnels.h | 67 +++++++++++++++++++----------------------- net/ipv4/ip_tunnel_core.c | 2 -- net/openvswitch/actions.c | 8 +++-- net/openvswitch/datapath.c | 3 +- net/openvswitch/datapath.h | 3 +- net/openvswitch/flow.c | 7 +++-- net/openvswitch/flow_netlink.c | 27 +++++++---------- net/openvswitch/flow_netlink.h | 3 +- net/openvswitch/vport-geneve.c | 5 ++-- net/openvswitch/vport-gre.c | 5 ++-- net/openvswitch/vport-vxlan.c | 4 +-- net/openvswitch/vport.c | 27 +++++++++-------- net/openvswitch/vport.h | 7 +++-- 16 files changed, 100 insertions(+), 112 deletions(-) commit 0a2050d744037158de773be5c6f1fc468a551bae Author: Kinglong Mee Date: Thu Jul 30 21:51:54 2015 +0800 NFSD: Store parent's stat in a separate value After commit ae7095a7c4 (nfsd4: helper function for getting mounted_on ino) we ignore the return value from get_parent_attributes(). Also, the following FATTR4_WORD2_LAYOUT_BLKSIZE uses stat.blksize, so to avoid overwriting that, use an independent value for the parent's attributes. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4xdr.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 9153df7405ae04c1b0466de720e0a685cfea1a3a Author: Joe Thornber Date: Mon Aug 31 18:20:08 2015 +0100 dm cache: fix leaking of deferred bio prison cells There were two cases where dm_cell_visit_release() was being called, which removes the cell from the prison's rbtree, but the callers didn't also return the cell to the mempool. Fix this by having them call free_prison_cell(). This leak manifested as the 'kmalloc-96' slab growing until OOM. Fixes: 651f5fa2a3 ("dm cache: defer whole cells") Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 4.1+ drivers/md/dm-cache-target.c | 4 ++++ 1 file changed, 4 insertions(+) commit f15f4d720088c140cdf1fee6aeab3549dbdddc41 Author: Heinz Mauelshagen Date: Tue Aug 25 17:15:41 2015 +0200 dm raid: document RAID 4/5/6 discard support For RAID 4/5/6 data integrity reasons 'discard_zeroes_data' must work properly. Signed-off-by: Heinz Mauelshagen Signed-off-by: Mike Snitzer Documentation/device-mapper/dm-raid.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 97db62062ac76e314c8bda4dc5b63f0ea906d15f Author: Adrian Hunter Date: Mon Aug 31 21:39:44 2015 +0300 perf tools: Fix build on powerpc broken by pt/bts It is theoretically possible to process perf.data files created on x86 and that contain Intel PT or Intel BTS data, on any other architecture, which is why it is possible for there to be build errors on powerpc caused by pt/bts. The errors were: util/intel-pt-decoder/intel-pt-insn-decoder.c: In function ‘intel_pt_insn_decoder’: util/intel-pt-decoder/intel-pt-insn-decoder.c:138:3: error: switch missing default case [-Werror=switch-default] switch (insn->immediate.nbytes) { ^ cc1: all warnings being treated as errors linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_synth_branch_sample': sources/linux-acme.git/tools/perf/util/intel-pt.c:871: undefined reference to `tsc_to_perf_time' linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_sample': sources/linux-acme.git/tools/perf/util/intel-pt.c:915: undefined reference to `tsc_to_perf_time' sources/linux-acme.git/tools/perf/util/intel-pt.c:962: undefined reference to `tsc_to_perf_time' linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function `intel_pt_process_event': sources/linux-acme.git/tools/perf/util/intel-pt.c:1454: undefined reference to `perf_time_to_tsc' Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Sukadev Bhattiprolu Cc: Wang Nan Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1441046384-28663-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/intel-pt-decoder/intel-pt-insn-decoder.c | 3 +++ 2 files changed, 4 insertions(+) commit 527afb4493c2892ce89fb74648e72a30b68ba120 Author: Tsutomu Itoh Date: Wed Aug 19 14:55:00 2015 +0900 Btrfs: cleanup: remove unnecessary check before btrfs_free_path is called We need not check path before btrfs_free_path() is called because path is checked in btrfs_free_path(). Signed-off-by: Tsutomu Itoh Reviewed-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/dev-replace.c | 3 +-- fs/btrfs/inode.c | 3 +-- fs/btrfs/tree-defrag.c | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) commit c6dd6ea55758cf403bdc07a51a06c2a1d474f906 Author: Qu Wenruo Date: Thu Aug 20 09:30:39 2015 +0800 btrfs: async_thread: Fix workqueue 'max_active' value when initializing At initializing time, for threshold-able workqueue, it's max_active of kernel workqueue should be 1 and grow if it hits threshold. But due to the bad naming, there is both 'max_active' for kernel workqueue and btrfs workqueue. So wrong value is given at workqueue initialization. This patch fixes it, and to avoid further misunderstanding, change the member name of btrfs_workqueue to 'current_active' and 'limit_active'. Also corresponding comment is added for readability. Reported-by: Alex Lyakas Signed-off-by: Qu Wenruo Signed-off-by: Chris Mason fs/btrfs/async-thread.c | 57 +++++++++++++++++++++++++++++-------------------- fs/btrfs/async-thread.h | 2 +- 2 files changed, 35 insertions(+), 24 deletions(-) commit 943c6e9925d90dc80207322b5799d95fb90ffec0 Author: Zhao Lei Date: Wed Aug 19 15:54:15 2015 +0800 btrfs: Add raid56 support for updating num_tolerated_disk_barrier_failures in btrfs_balance Code for updating fs_info->num_tolerated_disk_barrier_failures in btrfs_balance() lacks raid56 support. Reason: Above code was wroten in 2012-08-01, together with btrfs_calc_num_tolerated_disk_barrier_failures()'s first version. Then, btrfs_calc_num_tolerated_disk_barrier_failures() got updated later to support raid56, but code in btrfs_balance() was not updated together. Fix: Merge above similar code to a common function: btrfs_get_num_tolerated_disk_barrier_failures() and make it support both case. It can fix this bug with a bonus of cleanup, and make these code never in above no-sync state from now on. Suggested-by: Anand Jain Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 47 +++++++++++++++++++++++++---------------------- fs/btrfs/disk-io.h | 1 + fs/btrfs/volumes.c | 21 ++++----------------- 3 files changed, 30 insertions(+), 39 deletions(-) commit 2c4580454fffbf184fdb9292aa19ab1ffc224add Author: Zhao Lei Date: Thu Jul 16 15:00:46 2015 +0800 btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures 1: Use ARRAY_SIZE(types) to replace a static-value variant: int num_types = 4; 2: Use 'continue' on condition to reduce one level tab if (!XXX) { code; ... } -> if (XXX) continue; code; ... 3: Put setting 'num_tolerated_disk_barrier_failures = 2' to (num_tolerated_disk_barrier_failures > 2) condition to make make logic neat. if (num_tolerated_disk_barrier_failures > 0 && XXX) num_tolerated_disk_barrier_failures = 0; else if (num_tolerated_disk_barrier_failures > 1) { if (XXX) num_tolerated_disk_barrier_failures = 1; else if (XXX) num_tolerated_disk_barrier_failures = 2; -> if (num_tolerated_disk_barrier_failures > 0 && XXX) num_tolerated_disk_barrier_failures = 0; if (num_tolerated_disk_barrier_failures > 1 && XXX) num_tolerated_disk_barrier_failures = ; if (num_tolerated_disk_barrier_failures > 2 && XXX) num_tolerated_disk_barrier_failures = 2; 4: Remove comment of: num_mirrors - 1: if RAID1 or RAID10 is configured and more than 2 mirrors are used. which is not fit with code. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 73 ++++++++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 40 deletions(-) commit 8c204c9657c32ec5a259ebf852a767afe7efdafa Author: Zhao Lei Date: Wed Aug 19 15:02:40 2015 +0800 btrfs: Remove noused chunk_tree and chunk_objectid from scrub_enumerate_chunks and scrub_chunk These variables are not used from introduced version, remove them. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 7955323bdcab307bd8b1d5ef7a031e4a3d059da3 Author: Zhao Lei Date: Tue Aug 18 17:54:30 2015 +0800 btrfs: Update out-of-date "skip parity stripe" comment Because btrfs support scrub raid56 parity stripe now. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1bfc62591a0a5144dc380976e737fbbb4f40f4f Author: Madalin Bucur Date: Mon Aug 31 15:46:07 2015 +0300 ipv4: fix 32b build Address remaining issue after 80ec192. Signed-off-by: Madalin Bucur Signed-off-by: David S. Miller net/ipv4/af_inet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0050ae57cd02dbd4f171622d0269e2fb7029a23e Merge: a57e456 488ca7d Author: Ingo Molnar Date: Mon Aug 31 19:47:03 2015 +0200 Merge branch 'x86/cpufeature' into x86/urgent, because it's ready Signed-off-by: Ingo Molnar commit c3cce6cda162eb2b2960a85d9c8992f4f3be85d0 Author: NeilBrown Date: Fri Aug 14 12:47:33 2015 +1000 md/raid5: ensure device failure recorded before write request returns. When a write to one of the devices of a RAID5/6 fails, the failure is recorded in the metadata of the other devices so that after a restart the data on the failed drive wont be trusted even if that drive seems to be working again (maybe a cable was unplugged). Similarly when we record a bad-block in response to a write failure, we must not let the write complete until the bad-block update is safe. Currently there is no interlock between the write request completing and the metadata update. So it is possible that the write will complete, the app will confirm success in some way, and then the machine will crash before the metadata update completes. This is an extremely small hole for a racy to fit in, but it is theoretically possible and so should be closed. So: - set MD_CHANGE_PENDING when requesting a metadata update for a failed device, so we can know with certainty when it completes - queue requests that completed when MD_CHANGE_PENDING is set to only be processed after the metadata update completes - call raid_end_bio_io() on bios in that queue when the time comes. Signed-off-by: NeilBrown drivers/md/raid5.c | 24 +++++++++++++++++++++++- drivers/md/raid5.h | 3 +++ 2 files changed, 26 insertions(+), 1 deletion(-) commit 34a6f80e1639b124f24b5fadc1d45d69417cbace Author: NeilBrown Date: Fri Aug 14 12:07:57 2015 +1000 md/raid5: use bio_list for the list of bios to return. This will make it easier to splice two lists together which will be needed in future patch. Signed-off-by: NeilBrown drivers/md/raid5.c | 41 +++++++++++++++-------------------------- drivers/md/raid5.h | 2 +- 2 files changed, 16 insertions(+), 27 deletions(-) commit 95af587e95aacb9cfda4a9641069a5244a540dc8 Author: NeilBrown Date: Fri Aug 14 11:26:17 2015 +1000 md/raid10: ensure device failure recorded before write request returns. When a write to one of the legs of a RAID10 fails, the failure is recorded in the metadata of the other legs so that after a restart the data on the failed drive wont be trusted even if that drive seems to be working again (maybe a cable was unplugged). Currently there is no interlock between the write request completing and the metadata update. So it is possible that the write will complete, the app will confirm success in some way, and then the machine will crash before the metadata update completes. This is an extremely small hole for a racy to fit in, but it is theoretically possible and so should be closed. So: - set MD_CHANGE_PENDING when requesting a metadata update for a failed device, so we can know with certainty when it completes - queue requests that experienced an error on a new queue which is only processed after the metadata update completes - call raid_end_bio_io() on bios in that queue when the time comes. Signed-off-by: NeilBrown drivers/md/raid10.c | 29 ++++++++++++++++++++++++++++- drivers/md/raid10.h | 6 ++++++ 2 files changed, 34 insertions(+), 1 deletion(-) commit 55ce74d4bfe1b9444436264c637f39a152d1e5ac Author: NeilBrown Date: Fri Aug 14 11:11:10 2015 +1000 md/raid1: ensure device failure recorded before write request returns. When a write to one of the legs of a RAID1 fails, the failure is recorded in the metadata of the other leg(s) so that after a restart the data on the failed drive wont be trusted even if that drive seems to be working again (maybe a cable was unplugged). Similarly when we record a bad-block in response to a write failure, we must not let the write complete until the bad-block update is safe. Currently there is no interlock between the write request completing and the metadata update. So it is possible that the write will complete, the app will confirm success in some way, and then the machine will crash before the metadata update completes. This is an extremely small hole for a racy to fit in, but it is theoretically possible and so should be closed. So: - set MD_CHANGE_PENDING when requesting a metadata update for a failed device, so we can know with certainty when it completes - queue requests that experienced an error on a new queue which is only processed after the metadata update completes - call raid_end_bio_io() on bios in that queue when the time comes. Signed-off-by: NeilBrown drivers/md/md.c | 1 + drivers/md/raid1.c | 29 ++++++++++++++++++++++++++++- drivers/md/raid1.h | 5 +++++ 3 files changed, 34 insertions(+), 1 deletion(-) commit 18b9f67962eb890da0c053e04c3cf0e91871d4fa Author: NeilBrown Date: Fri Aug 14 10:22:00 2015 +1000 md-cluster: remove inappropriate try_module_get from join() md_setup_cluster already calls try_module_get(), so this try_module_get isn't needed. Also, there is no matching module_put (except in error patch), so this leaves an unbalanced module count. Signed-off-by: NeilBrown drivers/md/md-cluster.c | 4 ---- 1 file changed, 4 deletions(-) commit 6022e75bf0686799a6ecca3c33a669e6c70e9d26 Author: NeilBrown Date: Thu Aug 13 12:32:55 2015 +1000 md: extend spinlock protection in register_md_cluster_operations This code looks racy. The only possible race is if two modules try to register at the same time and that won't happen. But make the code look safe anyway. Signed-off-by: NeilBrown drivers/md/md.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit abb9b22ac948000ae156cd2d115c8632ec30a2ce Author: Guoqing Jiang Date: Fri Jul 10 17:01:22 2015 +0800 md-cluster: Read the disk bitmap sb and check if it needs recovery In gather_all_resync_info, we need to read the disk bitmap sb and check if it needs recovery. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit eece075cda38f55fc5829b5f9ec5fb919c561d81 Author: Guoqing Jiang Date: Fri Jul 10 17:01:21 2015 +0800 md-cluster: only call complete(&cinfo->completion) when node join cluster Introduce MD_CLUSTER_BEGIN_JOIN_CLUSTER flag to make sure complete(&cinfo->completion) is only be invoked when node join cluster. Otherwise node failure could also call the complete, and it doesn't make sense to do it. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 6e6d9f2cda47745a3abcb6609b1dee0e831161d8 Author: Guoqing Jiang Date: Fri Jul 10 17:01:20 2015 +0800 md-cluster: add missed lockres_free We also need to free the lock resource before goto out. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b2b9bfff0aa721a04a3924ed451c417d2bd9ed15 Author: Guoqing Jiang Date: Fri Jul 10 17:01:19 2015 +0800 md-cluster: remove the unused sb_lock The sb_lock is not used anywhere, so let's remove it. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 9 --------- 1 file changed, 9 deletions(-) commit 9e3072e373320b331512e24f6650efa0a09720af Author: Guoqing Jiang Date: Fri Jul 10 17:01:18 2015 +0800 md-cluster: init suspend_list and suspend_lock early in join If the node just join the cluster, and receive the msg from other nodes before init suspend_list, it will cause kernel crash due to NULL pointer dereference, so move the initializations early to fix the bug. md-cluster: Joined cluster 3578507b-e0cb-6d4f-6322-696cd7b1b10c slot 3 BUG: unable to handle kernel NULL pointer dereference at (null) ... ... ... Call Trace: [] process_recvd_msg+0x2e4/0x330 [md_cluster] [] recv_daemon+0x96/0x170 [md_cluster] [] md_thread+0x11d/0x170 [md_mod] [] kthread+0xb4/0xc0 [] ret_from_fork+0x7c/0xb0 ... ... ... RIP [] __remove_suspend_info+0x11/0xa0 [md_cluster] Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b5ef56789b808a57fcd07271ff509911662fd877 Author: Guoqing Jiang Date: Fri Jul 10 17:01:17 2015 +0800 md-cluster: add the error check if failed to get dlm lock In complicated cluster environment, it is possible that the dlm lock couldn't be get/convert on purpose, the related err info is added for better debug potential issue. For lockres_free, if the lock is blocking by a lock request or conversion request, then dlm_unlock just put it back to grant queue, so need to ensure the lock is free finally. Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) commit b83d51c0785c34d552111f38fbecbe00cd58b913 Author: Guoqing Jiang Date: Fri Jul 10 17:01:16 2015 +0800 md-cluster: init completion within lockres_init We should init completion within lockres_init, otherwise completion could be initialized more than one time during it's life cycle. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 66099bb0ee6c20f91ace3fa5f82202fbceb67d8e Author: Guoqing Jiang Date: Fri Jul 10 17:01:15 2015 +0800 md-cluster: fix deadlock issue on message lock There is problem with previous communication mechanism, and we got below deadlock scenario with cluster which has 3 nodes. Sender Receiver Receiver token(EX) message(EX) writes message downconverts message(CR) requests ack(EX) get message(CR) gets message(CR) reads message reads message requests EX on message requests EX on message To fix this problem, we do the following changes: 1. the sender downconverts MESSAGE to CW rather than CR. 2. and the receiver request PR lock not EX lock on message. And in case we failed to down-convert EX to CW on message, it is better to unlock message otherthan still hold the lock. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Lidong Zhong Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown Documentation/md-cluster.txt | 4 ++-- drivers/md/md-cluster.c | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) commit dc737d7c3d62d2cd2b62c7739aaa7604330c3dd8 Author: Guoqing Jiang Date: Fri Jul 10 16:54:04 2015 +0800 md-cluster: transfer the resync ownership to another node When node A stops an array while the array is doing a resync, we need to let another node B take over the resync task. To achieve the goal, we need the A send an explicit BITMAP_NEEDS_SYNC message to the cluster. And the node B which received that message will invoke __recover_slot to do resync. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 15 +++++++++++++++ drivers/md/md.c | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) commit 05cd0e51769a51f53c68e83976c83653f6ab1595 Author: Guoqing Jiang Date: Fri Jul 10 16:54:03 2015 +0800 md-cluster: split recover_slot for future code reuse Make recover_slot as a wraper to __recover_slot, since the logic of __recover_slot can be reused for the condition when other nodes need to take over the resync job. Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit b89f704a8ddf7be1a66af9aad350226ae283292f Author: Guoqing Jiang Date: Fri Jul 10 16:54:02 2015 +0800 md-cluster: use %pU to print UUIDs Reviewed-by: Goldwyn Rodrigues Signed-off-by: Guoqing Jiang Signed-off-by: NeilBrown drivers/md/md-cluster.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 25b2edfa3b6940b73180d2735cd19fdf58d0cf91 Author: Sasha Levin Date: Fri Jul 24 18:19:58 2015 -0400 md: setup safemode_timer before it's being used We used to set up the safemode_timer timer in md_run. If md_run would fail before the timer was set up we'd end up trying to modify a timer that doesn't have a callback function when we access safe_delay_store, which would trigger a BUG. neilb: delete init_timer() call as setup_timer() does that. Signed-off-by: Sasha Levin Signed-off-by: NeilBrown drivers/md/md.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 6cbd81487f7cfa30e22537bf7cd07f48c4e7164d Author: NeilBrown Date: Fri Jul 24 13:30:32 2015 +1000 md/raid5: handle possible race as reshape completes. It is possible (though unlikely) for a reshape to be interrupted between the time that end_reshape is called and the time when raid5_finish_reshape is called. This can leave conf->reshape_progress set to MaxSector, but mddev->reshape_position not. This combination confused reshape_request() when ->reshape_backwards. As conf->reshape_progress is so high, it seems the reshape hasn't really begun. But assuming MaxSector is a valid address only leads to sorrow. So ensure reshape_position and reshape_progress both agree, and add an extra check in reshape_request() just in case they don't. Signed-off-by: NeilBrown drivers/md/raid5.c | 5 +++++ 1 file changed, 5 insertions(+) commit 5ed1df2eacc0ba92c8c7e2499c97594b5ef928a8 Author: NeilBrown Date: Fri Jul 24 13:27:08 2015 +1000 md: sync sync_completed has correct value as recovery finishes. There can be a small window between the moment that recovery actually writes the last block and the time when various sysfs and /proc/mdstat attributes report that it has finished. During this time, 'sync_completed' can have the wrong value. This can confuse monitoring software. So: - don't set curr_resync_completed beyond the end of the devices, - set it correctly when resync/recovery has completed. Signed-off-by: NeilBrown drivers/md/md.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit c5e19d906a658f27fa858b09a95d9551b1a69bd0 Author: NeilBrown Date: Fri Jul 17 12:06:02 2015 +1000 md: be careful when testing resync_max against curr_resync_completed. While it generally shouldn't happen, it is not impossible for curr_resync_completed to exceed resync_max. This can particularly happen when reshaping RAID5 - the current status isn't copied to curr_resync_completed promptly, so when it is, it can exceed resync_max. This happens when the reshape is 'frozen', resync_max is set low, and reshape is re-enabled. Taking a difference between two unsigned numbers is always dangerous anyway, so add a test to behave correctly if curr_resync_completed > resync_max Signed-off-by: NeilBrown drivers/md/md.c | 3 ++- drivers/md/raid5.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit a4a3d26d8757a30ae21724d8b0d79e00e113c38d Author: NeilBrown Date: Fri Jul 17 11:57:30 2015 +1000 md: set MD_RECOVERY_RECOVER when starting a degraded array. This ensures that 'sync_action' will show 'recover' immediately the array is started. If there is no spare the status will change to 'idle' once that is detected. Clear MD_RECOVERY_RECOVER for a read-only array to ensure this change happens. This allows scripts which monitor status not to get confused - particularly my test scripts. Signed-off-by: NeilBrown drivers/md/md.c | 6 ++++++ 1 file changed, 6 insertions(+) commit c74c0d760e30f56f9699dc180036ca37993d1c58 Author: NeilBrown Date: Wed Jul 15 17:54:15 2015 +1000 md/raid5: remove incorrect "min_t()" when calculating writepos. This code is calculating: writepos, which is the furthest along address (device-space) that we *will* be writing to readpos, which is the earliest address that we *could* possible read from, and safepos, which is the earliest address in the 'old' section that we might read from after a crash when the reshape position is recovered from metadata. The first is a precise calculation, so clipping at zero doesn't make sense. As the reshape position is now guaranteed to always be a multiple of reshape_sectors and as we already BUG_ON when reshape_progress is zero, there is no point in this min_t() call. The readpos and safepos are worst case - actual value depends on precise geometry. That worst case could be negative, which is only a problem because we are storing the value in an unsigned. So leave the min_t() for those. Signed-off-by: NeilBrown drivers/md/raid5.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 05256d9884d3276f61537d3d7f5605dc21bd3477 Author: NeilBrown Date: Wed Jul 15 17:36:21 2015 +1000 md/raid5: strengthen check on reshape_position at run. When reshaping, we work in units of the largest chunk size. If changing from a larger to a smaller chunk size, that means we reshape more than one stripe at a time. So the required alignment of reshape_position needs to take into account both the old and new chunk size. This means that both 'here_new' and 'here_old' are calculated with respect to the same (maximum) chunk size, so testing if they are the same when delta_disks is zero becomes pointless. Signed-off-by: NeilBrown drivers/md/raid5.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) commit 3cb5edf45457948347b5ae8cc9650c000cef4391 Author: NeilBrown Date: Wed Jul 15 17:24:17 2015 +1000 md/raid5: switch to use conf->chunk_sectors in place of mddev->chunk_sectors where possible The chunk_sectors and new_chunk_sectors fields of mddev can be changed any time (via sysfs) that the reconfig mutex can be taken. So raid5 keeps internal copies in 'conf' which are stable except for a short locked moment when reshape stops/starts. So any access that does not hold reconfig_mutex should use the 'conf' values, not the 'mddev' values. Several don't. This could result in corruption if new values were written at awkward times. Also use min() or max() rather than open-coding. Signed-off-by: NeilBrown drivers/md/raid5.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 5cac6bcb9312a18a5091976fc374b4c7b9c4ae2e Author: NeilBrown Date: Fri Jul 17 12:17:50 2015 +1000 md/raid5: always set conf->prev_chunk_sectors and ->prev_algo These aren't really needed when no reshape is happening, but it is safer to have them always set to a meaningful value. The next patch will use ->prev_chunk_sectors without checking if a reshape is happening (because that makes the code simpler), and this patch makes that safe. Signed-off-by: NeilBrown drivers/md/raid5.c | 3 +++ 1 file changed, 3 insertions(+) commit 02ec50265b16493e4a62228727e9f774068123d2 Author: NeilBrown Date: Mon Jul 6 16:33:47 2015 +1000 md/raid10: fix a few typos in comments Signed-off-by: NeilBrown drivers/md/raid10.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 92140480ed59a006b245efd33a195fde62d1845f Author: NeilBrown Date: Mon Jul 6 12:28:45 2015 +1000 md/raid5: consider updating reshape_position at start of reshape. md/raid5 only updates ->reshape_position (which is stored in metadata and is authoritative) occasionally, but particularly when getting closed to ->resync_max as it must be correct when ->resync_max is reached. When mdadm tries to stop an array which is reshaping it will: - freeze the reshape, - set resync_max to where the reshape has reached. - unfreeze the reshape. When this happens, the reshape is aborted and then restarted. The restart doesn't check that resync_max is close, and so doesn't update ->reshape_position like it should. This results in the reshape stopping, but ->reshape_position being incorrect. So on that first call to reshape_request, make sure ->reshape_position is updated if needed. Signed-off-by: NeilBrown drivers/md/raid5.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 985ca973b68cac0adfa83497db231da7f99c6ed9 Author: NeilBrown Date: Mon Jul 6 12:26:57 2015 +1000 md: close some races between setting and checking sync_action. When checking sync_action in a script, we want to be sure it is as accurate as possible. As resync/reshape etc doesn't always start immediately (a separate thread is scheduled to do it), it is best if 'action_show' checks if MD_RECOVER_NEEDED is set (which it does) and in that case reports what is likely to start soon (which it only sometimes does). So: - report 'reshape' if reshape_position suggests one might start. - set MD_RECOVERY_RECOVER in raid1_reshape(), because that is very likely to happen next. Signed-off-by: NeilBrown drivers/md/md.c | 2 ++ drivers/md/raid1.c | 1 + 2 files changed, 3 insertions(+) commit f7851be736d58e7270f05a4ca84b16ce72734a18 Author: NeilBrown Date: Thu Jul 2 17:12:58 2015 +1000 md: Keep /proc/mdstat reporting recovery until fully DONE. Currently when a recovery completes, mdstat shows that it has finished before the new device is marked as a full member. Because of this it can appear to a script that the recovery finished but the array isn't in sync. So while MD_RECOVERY_DONE is still set, keep mdstat reporting "recovery". Once md_reap_sync_thread() completes, the spare will be active and then MD_RECOVERY_DONE will be cleared. To ensure this is race-free, set MD_RECOVERY_DONE before clearning curr_resync. Signed-off-by: NeilBrown drivers/md/md.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) commit 0e833e697bcf4c2f3f7fb9fce39d08cd4439e5d7 Author: Ard Biesheuvel Date: Wed Jul 1 12:19:56 2015 +1000 md/raid6: delta syndrome for ARM NEON This implements XOR syndrome calculation using NEON intrinsics. As before, the module can be built for ARM and arm64 from the same source. Relative performance on a Cortex-A57 based system: raid6: int64x1 gen() 905 MB/s raid6: int64x1 xor() 881 MB/s raid6: int64x2 gen() 1343 MB/s raid6: int64x2 xor() 1286 MB/s raid6: int64x4 gen() 1896 MB/s raid6: int64x4 xor() 1321 MB/s raid6: int64x8 gen() 1773 MB/s raid6: int64x8 xor() 1165 MB/s raid6: neonx1 gen() 1834 MB/s raid6: neonx1 xor() 1278 MB/s raid6: neonx2 gen() 2528 MB/s raid6: neonx2 xor() 1942 MB/s raid6: neonx4 gen() 2888 MB/s raid6: neonx4 xor() 2334 MB/s raid6: neonx8 gen() 2957 MB/s raid6: neonx8 xor() 2232 MB/s raid6: using algorithm neonx8 gen() 2957 MB/s raid6: .... xor() 2232 MB/s, rmw enabled Cc: Markus Stockhausen Cc: Neil Brown Signed-off-by: Ard Biesheuvel Signed-off-by: NeilBrown lib/raid6/neon.c | 13 ++++++++++++- lib/raid6/neon.uc | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) commit 2f37d65a6a5c360ba0c386a6aa0d2afcbda7060d Merge: 1af115d 415bcb5 Author: Linus Torvalds Date: Mon Aug 31 09:24:06 2015 -0700 Merge tag 'staging-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging driver updates from Greg KH: "Here is the big staging driver updates for 4.3-rc1. Lots of things all over the place, almost all of them trivial fixups and changes. The usual IIO updates and new drivers and we have added the MOST driver subsystem which is getting cleaned up in the tree. The ozwpan driver is finally being deleted as it is obviously abandoned and no one cares about it. Full details are in the shortlog, and all of these have been in linux-next with no reported issues" * tag 'staging-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (912 commits) staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr() staging: wilc1000: fix build warning with setup_timer() staging: wilc1000: remove DECLARE_WILC_BUFFER() staging: wilc1000: remove void function return statements that are not useful staging: wilc1000: coreconfigurator.c: fix kmalloc error check staging: wilc1000: coreconfigurator.c: use kmalloc instead of WILC_MALLOC staging: wilc1000: remove unused codes of gps8ConfigPacket staging: wilc1000: remove unnecessary void pointer cast staging: wilc1000: remove WILC_NEW and WILC_NEW_EX staging: wilc1000: use kmalloc instead of WILC_NEW staging: wilc1000: Process WARN, INFO options of debug levels from user staging: wilc1000: remove unneeded tstrWILC_MsgQueueAttrs typedef staging: wilc1000: delete wilc_osconfig.h staging: wilc1000: delete wilc_log.h staging: wilc1000: delete wilc_timer.h staging: wilc1000: remove WILC_TimerStart() staging: wilc1000: remove WILC_TimerCreate() staging: wilc1000: remove WILC_TimerDestroy() staging: wilc1000: remove WILC_TimerStop() staging: wilc1000: remove tstrWILC_TimerAttrs typedef ... commit 1af115d675f323afee1e64650277a9b170845b81 Merge: 1c00038 71db87b Author: Linus Torvalds Date: Mon Aug 31 08:47:40 2015 -0700 Merge tag 'driver-core-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core updates from Greg KH: "Here is the new patches for the driver core / sysfs for 4.3-rc1. Very small number of changes here, all the details are in the shortlog, nothing major happening at all this kernel release, which is nice to see" * tag 'driver-core-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: bus: subsys: update return type of ->remove_dev() to void driver core: correct device's shutdown order driver core: fix docbook for device_private.device selftests: firmware: skip timeout checks for kernels without user mode helper kernel, cpu: Remove bogus __ref annotations cpu: Remove bogus __ref annotation of cpu_subsys_online() firmware: fix wrong memory deallocation in fw_add_devm_name() sysfs.txt: update show method notes about sprintf/snprintf/scnprintf usage devres: fix devres_get() commit d8e19f99d3483adb01c6269dd5775ba8ecf1870a Author: Xiong Zhang Date: Thu Aug 13 18:00:12 2015 +0800 drm/i915/skl: Adding DDI_E power well domain From B spec, DDI_E port belong to PowerWell 2, but DDI_E share the powerwell_req/staus register bit with DDI_A which belong to DDI_A_E_POWER_WELL. In order to communicate with the connector on DDI-E, both DDI_A_E_POWER_WELL and POWER_WELL_2 must be enabled. Currently intel_dp_power_get(DDI_E) only enable DDI_A_E_POWER_WELL, this patch will not only enable DDI_a_E_POWER_WELL but also enable POWER_WELL_2. This patch also fix the DDI-E hotplug function. Signed-off-by: Xiong Zhang Reviewed-by: Rodrigo Vivi Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 2 ++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 3 ++- drivers/gpu/drm/i915/intel_runtime_pm.c | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) commit d76f41982f2fc88492efd96c7c3178044f32e125 Author: Anatol Pomozov Date: Mon Aug 31 08:24:23 2015 -0700 ASoC: Document snd-soc-dummy-dai purpose Signed-off-by: Anatol Pomozov Signed-off-by: Mark Brown sound/soc/soc-utils.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7040c399aea2b0213a9aefd73e507369a6d641d6 Author: Alex Deucher Date: Mon Aug 31 11:15:05 2015 -0400 drm/radeon/native: Send out the full AUX address AUX addresses are 20 bits long. Send out the entire address instead of just the low 16 bits. Port of: drm/radeon/atom: Send out the full AUX address to radeon non-atom aux path Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_dp_auxch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3f8340cc72c9a1a4b49bce7802afd7f248400ef5 Author: Ville Syrjälä Date: Thu Aug 27 17:23:31 2015 +0300 drm/radeon/atom: Send out the full AUX address AUX addresses are 20 bits long. Send out the entire address instead of just the low 16 bits. Cc: Alex Deucher Cc: "Christian König" Signed-off-by: Ville Syrjälä Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/atombios_dp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 477ec3283c324d16e8da07a8d8a4a367e31b6eab Author: Rodrigo Vivi Date: Thu Aug 6 15:51:39 2015 +0800 drm/i915: eDP can be present on DDI-E Enable eDP on DDI-E. Also let's remove duplicated definitions to avoid later confusion. Signed-off-by: Rodrigo Vivi Reviewed-by: Xiong Zhang Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_bios.h | 5 ----- drivers/gpu/drm/i915/intel_dp.c | 9 +++++---- 2 files changed, 5 insertions(+), 9 deletions(-) commit 1c00038c765561c08fd942d08579fa860e604f31 Merge: 44e98ed 672cfee Author: Linus Torvalds Date: Mon Aug 31 08:34:13 2015 -0700 Merge tag 'char-misc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver patches from Greg KH: "Here's the "big" char/misc driver update for 4.3-rc1. Not much really interesting here, just a number of little changes all over the place, and some nice consolidation of the nvmem drivers to a common framework. As usual, the mei drivers stand out as the largest "churn" to handle new devices and features in their hardware. All have been in linux-next for a while with no issues" * tag 'char-misc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (136 commits) auxdisplay: ks0108: initialize local parport variable extcon: palmas: Fix build break due to devm_gpiod_get_optional API change extcon: palmas: Support GPIO based USB ID detection extcon: Fix signedness bugs about break error handling extcon: Drop owner assignment from i2c_driver extcon: arizona: Simplify pdata symantics for micd_dbtime extcon: arizona: Declare 3-pole jack if we detect open circuit on mic extcon: Add exception handling to prevent the NULL pointer access extcon: arizona: Ensure variables are set for headphone detection extcon: arizona: Use gpiod inteface to handle micd_pol_gpio gpio extcon: arizona: Add basic microphone detection DT/ACPI bindings extcon: arizona: Update to use the new device properties API extcon: palmas: Remove the mutually_exclusive array extcon: Remove optional print_state() function pointer of struct extcon_dev extcon: Remove duplicate header file in extcon.h extcon: max77843: Clear IRQ bits state before request IRQ toshiba laptop: replace ioremap_cache with ioremap misc: eeprom: max6875: clean up max6875_read() misc: eeprom: clean up eeprom_read() misc: eeprom: 93xx46: clean up eeprom_93xx46_bin_read/write ... commit 2800e4c228b8961c4da1a4925cc20c16e623851b Author: Rodrigo Vivi Date: Fri Aug 7 17:35:21 2015 -0700 drm/i915/skl: Enable DDI-E There are OEMs using DDI-E out there, so let's enable it. Unfortunately there is no detection bit for DDI-E So we need to rely on VBT for that. I also need to give credits to Xiong since before seing his approach to check info->support_* I was creating an ugly vbt->ddie_sfuse_strap in order to propagate the ddi presence info v2: Rebased as last patch in the series. since all other patches in this series are needed for anything working propperly on DDI-E. Credits-to: "Zhang, Xiong Y" Cc: "Zhang, Xiong Y" Reviewed-by: Xiong Zhang Signed-off-by: Rodrigo Vivi Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_bios.c | 14 +++++++------- drivers/gpu/drm/i915/intel_bios.h | 2 ++ drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ 3 files changed, 18 insertions(+), 7 deletions(-) commit 44e98edcd11a48619b342d8f442d447b094ab2fc Merge: 64291f7 4d283ec Author: Linus Torvalds Date: Mon Aug 31 08:27:44 2015 -0700 Merge tag 'kvm-4.3-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull kvm updates from Paolo Bonzini: "A very small release for x86 and s390 KVM. - s390: timekeeping changes, cleanups and fixes - x86: support for Hyper-V MSRs to report crashes, and a bunch of cleanups. One interesting feature that was planned for 4.3 (emulating the local APIC in kernel while keeping the IOAPIC and 8254 in userspace) had to be delayed because Intel complained about my reading of the manual" * tag 'kvm-4.3-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (42 commits) x86/kvm: Rename VMX's segment access rights defines KVM: x86/vPMU: Fix unnecessary signed extension for AMD PERFCTRn kvm: x86: Fix error handling in the function kvm_lapic_sync_from_vapic KVM: s390: Fix assumption that kvm_set_irq_routing is always run successfully KVM: VMX: drop ept misconfig check KVM: MMU: fully check zero bits for sptes KVM: MMU: introduce is_shadow_zero_bits_set() KVM: MMU: introduce the framework to check zero bits on sptes KVM: MMU: split reset_rsvds_bits_mask_ept KVM: MMU: split reset_rsvds_bits_mask KVM: MMU: introduce rsvd_bits_validate KVM: MMU: move FNAME(is_rsvd_bits_set) to mmu.c KVM: MMU: fix validation of mmio page fault KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON KVM: s390: host STP toleration for VMs KVM: x86: clean/fix memory barriers in irqchip_in_kernel KVM: document memory barriers for kvm->vcpus/kvm->online_vcpus KVM: x86: remove unnecessary memory barriers for shared MSRs KVM: move code related to KVM_SET_BOOT_CPU_ID to x86 KVM: s390: log capability enablement and vm attribute changes ... commit 11c1b657c42f65c43f866b611956ef0a10bedafc Author: Xiong Zhang Date: Mon Aug 17 16:04:04 2015 +0800 drm/i915: Enable HDMI on DDI-E DDI-E doesn't have the correspondent GMBUS pin. We rely on VBT to tell us which one it being used instead. The DVI/HDMI on shared port couldn't exist. This patch isn't tested without hardware wchich has HDMI on DDI-E. v2: fix trailing whitespace v3: MISSING_CASE take place of BUG() Signed-off-by: Xiong Zhang Reviewed-by: Rodrigo Vivi Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 5 +++++ drivers/gpu/drm/i915/intel_bios.c | 25 +++++++++++++++++++++---- drivers/gpu/drm/i915/intel_hdmi.c | 21 +++++++++++++++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) commit 54875571bbfde00fc63741715c531cbb5246c3b2 Author: Imre Deak Date: Tue Jun 30 17:06:47 2015 +0300 drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pre GEN6 commit da2bc1b9db3351addd293e5b82757efe1f77ed1d Author: Imre Deak Date: Thu Oct 23 19:23:26 2014 +0300 drm/i915: add poweroff_late handler introduced a regression on old platforms during hibernation. A workaround was added in commit ab3be73fa7b43f4c3648ce29b5fd649ea54d3adb Author: Imre Deak Date: Mon Mar 2 13:04:41 2015 +0200 drm/i915: gen4: work around hang during hibernation using an explicit blacklist for the GENs/BIOS vendors where the issue was reported. Later there we had reports of the same failure on platforms not on this list. To my best knowledge the correct thing to do is still to put the device to PCI D3 state during hibernation, see [1] and [2] for the reasons. This also aligns with our future plans to unify more the runtime and system suspend/resume paths. Since an exact blacklist seems to be impractical (multiple GENs and BIOS vendors are affected) apply the workaround on everything pre GEN6. [1] http://lists.freedesktop.org/archives/intel-gfx/2015-February/060710.html [2] https://lkml.org/lkml/2015/6/22/274 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95061 Reported-by: Ilya Tumaykin Reported-by: Dirk Griesbach Reported-by: Pavel Machek Reported-by: Mikko Rapeli Tested-by: Mikko Rapeli Reported-by: Paul Bolle CC: stable@vger.kernel.org Signed-off-by: Imre Deak Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit d14e7b6d1d8747826cb900db852351c550e00fdd Author: Ville Syrjälä Date: Thu Aug 20 19:37:29 2015 +0300 drm/i915: Check DP link status on long hpd too We are no longer checkling the DP link status on long hpd. We used to do that from the .hot_plug() handler, but it was removed when MST got introduced. If there's no userspace we now fail to retrain the link if the sink power is toggled (or cable yanked and replugged), meaning the user is left staring at a blank screen. With the retraining put back that should be fixed. Also remove the leftover comment that referred to the old retraining from .hot_plug(). Fixes a regression introduced in: commit 0e32b39ceed665bfa4a77a4bc307b6652b991632 Author: Dave Airlie Date: Fri May 2 14:02:48 2014 +1000 drm/i915: add DP 1.2 MST support (v0.7) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89453 Tested-by: Palmer Dabbelt Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91407 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89461 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89594 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85641 Cc: Dave Airlie Cc: stable@vger.kernel.org Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 6bd3c6f75e0f9baddbf1196a7e3fceabb50c7e3c Author: Maciej S. Szmigiero Date: Mon Aug 31 17:07:12 2015 +0200 ASoC: fsl-asoc-card: put ASRC OF node in case of unknown device In case of unknown DT compatible device the ASRC OF node possibly acquired earlier by of_parse_phandle() has to be put before returning from probe method. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl-asoc-card.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f0a515780393dffbb363e6d1567da46af6f3c5f3 Author: Sasha Levin Date: Fri Aug 28 07:06:58 2015 -0400 tracing: Don't make assumptions about length of string on task rename While the dest comm string size is assured to be at least TASK_COMM_LEN long, doing a memcpy() also adds the assumption that the source is at least that long as well, which isn't assured, and isn't true in cases such as: set_task_comm(worker->task, "kworker/dying"); This leads to accessing invalid memory. Link: http://lkml.kernel.org/r/1440760018-1557-1-git-send-email-sasha.levin@oracle.com Signed-off-by: Sasha Levin Signed-off-by: Steven Rostedt include/trace/events/task.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d4fe182003bcde778e29e84c14c0c4bb70a452e Author: Leilk Liu Date: Mon Aug 31 21:18:58 2015 +0800 spi: Mediatek: Document devicetree bindings update for spi bus This patch updates spi bindings, fixs clock usage description. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-mt65xx.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit adcbcfea15d62fab5ba40ac28f9d2a590cc5e5e8 Author: Leilk Liu Date: Mon Aug 31 21:18:57 2015 +0800 spi: mediatek: fix spi clock usage error spi clock manages flow: CLK_TOP_SYSPLL3_D2 ---> CLK_TOP_SPI_SEL ---> CLK_PERI_SPI0 (source clock) (clock mux) (clock gate) spi driver should choose source clock by clock mux, then enable clock gate. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit ca9f26a27949ba3b295e4f0841c0bec9ef440141 Author: Leilk Liu Date: Mon Aug 31 21:18:56 2015 +0800 spi: mediatek: remove clk_disable_unprepare() This patch removes clk_disable_unprepare() in mtk_spi_remove(). clk_disable_prepare/unprepare must be balance, spi-clk is disabled in mtk_spi_probe, so not needs to disable again. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 1 - 1 file changed, 1 deletion(-) commit 08ceab9d875824f8b389530e830349d5d6c4e582 Merge: 22c103c 9193132 Author: Takashi Iwai Date: Mon Aug 31 16:25:22 2015 +0200 Merge tag 'asoc-v4.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for v4.3 Not many updates to the core here, but an awful lot of driver updates this time round: - Factoring out of AC'97 reset code into the core - New drivers for Cirrus CS4349, GTM601, InvenSense ICS43432, Realtek RT298 and ST STI controllers. - Machine drivers for Rockchip systems with MAX98090 and RT5645 and RT5650. - Initial driver support for Intel Skylake devices. - A large number of cleanups for Lars-Peter Clausen and Axel Lin. commit c5992f610f78e6c9d0a78e8fef1066ad640e17e8 Merge: c92ec7c f682c4f 98c7863 bf96283 Author: Mark Brown Date: Mon Aug 31 14:45:45 2015 +0100 Merge remote-tracking branches 'spi/topic/ti-qspi', 'spi/topic/xcomm' and 'spi/topic/xlp' into spi-next commit c92ec7c7ae99a371bbc69f0258888a0328ba4838 Merge: 2ca0a9d ed425dc 65598c1 fe78d0b 89a6356 eca2ebc Author: Mark Brown Date: Mon Aug 31 14:45:41 2015 +0100 Merge remote-tracking branches 'spi/topic/s3c64xx', 'spi/topic/sg', 'spi/topic/sh-msiof', 'spi/topic/spidev' and 'spi/topic/stats' into spi-next commit 2ca0a9d80c3a2cd3917b768080cce7f59b9bc490 Merge: 18c558e 1529332 757fe8d cb76b1c 99622f5 385a9c8 Author: Mark Brown Date: Mon Aug 31 14:45:36 2015 +0100 Merge remote-tracking branches 'spi/topic/mtk', 'spi/topic/pxa2xx', 'spi/topic/qspi', 'spi/topic/rockchip' and 'spi/topic/s3c24xx' into spi-next commit 18c558ec748b13048ae51681f7da8248ddcb7d1c Merge: 9d05943 c4fe57f 37c5db7 93e3a9e 1f2112a Author: Mark Brown Date: Mon Aug 31 14:45:32 2015 +0100 Merge remote-tracking branches 'spi/topic/dw', 'spi/topic/fsl-espi', 'spi/topic/img-spfi' and 'spi/topic/mpc512x-psc' into spi-next commit 9d05943e79cc54a9d8ef8196900d7cca9e5ca039 Merge: 8e42ac8 bdbbd38 ca861dd f4d8622 1b0838b Author: Mark Brown Date: Mon Aug 31 14:45:29 2015 +0100 Merge remote-tracking branches 'spi/topic/atmel', 'spi/topic/bcm2835', 'spi/topic/bcm63xx-hsspi' and 'spi/topic/davinci' into spi-next commit 8e42ac814c63dd5c5e39bbbfbc9c6578e19c765f Merge: bc64509 c37f45b Author: Mark Brown Date: Mon Aug 31 14:45:28 2015 +0100 Merge remote-tracking branch 'spi/topic/dma' into spi-next commit bc6450994976f26bbde656b1994f95b955bdabfc Merge: af21121 63ab645 Author: Mark Brown Date: Mon Aug 31 14:45:27 2015 +0100 Merge remote-tracking branch 'spi/topic/core' into spi-next commit af211211e39f59575854d5976a4e301c8c21d4bc Merge: c13dcf9 43a0da2 26a67ec 9176c66 5f74db1 38d6211 7434684 Author: Mark Brown Date: Mon Aug 31 14:45:23 2015 +0100 Merge remote-tracking branches 'spi/fix/bcm2835', 'spi/fix/bitbang', 'spi/fix/img-spfi', 'spi/fix/omap2-mcspi', 'spi/fix/orion' and 'spi/fix/xilinx' into spi-linus commit fe78d0b7691c02744004b15f6979b3f106464bc4 Author: Koji Matsuoka Date: Mon Jun 15 02:25:05 2015 +0900 spi: sh-msiof: Fix FIFO size to 64 word from 256 word The upper limit of Tx/Rx FIFO size is 64 word by the specification of H/W. This patch corrects to 64 word from 256 word. Signed-off-by: Koji Matsuoka Signed-off-by: Yoshihiro Kaneko Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-sh-msiof.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 17649c90ff4c5246bb4babf6260029968a6d119d Author: Sergey SENOZHATSKY Date: Mon Aug 31 18:54:58 2015 +0900 regmap: fix a NULL pointer dereference in __regmap_init __regmap_init() may receive a NULL `struct regmap_bus *bus' pointer, for example, from snd_hdac_regmap_init(), and it make sure that it does not NULL deference `bus`, except around ->max_raw_read and ->max_raw_write initialisation. Add missing check. Signed-off-by: Sergey Senozhatsky Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit d5b98eb12420ce856caaf57dc5256eedc56a3747 Author: Mark Brown Date: Fri Aug 28 20:04:53 2015 +0100 regmap: Support bulk reads for devices without raw formatting When doing a bulk read from a device which lacks raw I/O support we fall back to doing register at a time reads but we still use the raw formatters in order to render the data into the word size used by the device (since bulk reads still operate on the device word size rather than unsigned ints). This means that devices without raw formatting such as those that provide reg_read() are not supported. Provide handling for them by copying the values read into native endian values of the appropriate size. Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit 2d89a1d3c9ff8ceb115f001e66cff9788338ca47 Author: Trond Myklebust Date: Mon Aug 31 02:05:47 2015 -0700 NFSv4.1/pNFS: Don't request a minimal read layout beyond the end of file If we have a read layout, then sanity check the minimal layout length so that it does not extend beyond the end of file. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 21b874c873b5019db8bb4b4f6aa929c4bac0a398 Author: Trond Myklebust Date: Mon Aug 31 01:19:22 2015 -0700 NFSv4.1/pnfs: Handle LAYOUTGET return values correctly According to RFC5661 section 18.43.3, if the server cannot satisfy the loga_minlength argument to LAYOUTGET, there are 2 cases: 1) If loga_minlength == 0, it returns NFS4ERR_LAYOUTTRYLATER 2) If loga_minlength != 0, it returns NFS4ERR_BADLAYOUT Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 4ae93560b11cb2b57ea5732d442458694ab0c168 Author: Trond Myklebust Date: Mon Aug 31 01:25:11 2015 -0700 NFSv4.1/pnfs: Don't ask for a read layout for an empty file. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 3 +++ 1 file changed, 3 insertions(+) commit bac2e4a96d1c0bcce5e9654dcc902f75576b9b03 Merge: 02b643b 2c07144 Author: Ingo Molnar Date: Mon Aug 31 10:25:46 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvement and fixes from Arnaldo Carvalho de Melo: User visible changes: - Add new compaction-times python script. (Tony Jones) - Make the --[no-]-demangle/--[no-]-demangle-kernel command line options available in 'perf script' too. (Mark Drayton) - Allow for negative numbers in libtraceevent's print format, fixing up misformatting in some tracepoints. (Steven Rostedt) Infrastructure changes: - perf_env/perf_evlist changes to allow accessing the data structure with the environment where some perf data was collected in functions not necessarily related to perf.data file processing. (Kan Liang) - Cleanups for the tracepoint definition location paths routines. (Jiri Olsa) - Introduce sysfs/filename__sprintf_build_id, removing code duplication. (Masami Hiramatsu) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 02b643b643254ec79b5f9aaa143e10be68eabdab Merge: d1ee8bc 4c09e0d Author: Ingo Molnar Date: Mon Aug 31 10:25:26 2015 +0200 Merge branch 'perf/urgent' into perf/core, to pick up fixes Signed-off-by: Ingo Molnar commit 4c09e0d6ba65507a0ee0ca9abc5335e4f7bd7404 Merge: 64291f7 601083c Author: Ingo Molnar Date: Mon Aug 31 10:24:24 2015 +0200 Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fix from Arnaldo Carvalho de Melo: - Use index, not CPU id, to find core/pkg id in 'perf stat' (Kan Liang) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 71f8a4b81d040b3d094424197ca2f1bf811b1245 Author: Jialing Fu Date: Fri Aug 28 11:13:09 2015 +0800 mmc: core: fix race condition in mmc_wait_data_done The following panic is captured in ker3.14, but the issue still exists in latest kernel. --------------------------------------------------------------------- [ 20.738217] c0 3136 (Compiler) Unable to handle kernel NULL pointer dereference at virtual address 00000578 ...... [ 20.738499] c0 3136 (Compiler) PC is at _raw_spin_lock_irqsave+0x24/0x60 [ 20.738527] c0 3136 (Compiler) LR is at _raw_spin_lock_irqsave+0x20/0x60 [ 20.740134] c0 3136 (Compiler) Call trace: [ 20.740165] c0 3136 (Compiler) [] _raw_spin_lock_irqsave+0x24/0x60 [ 20.740200] c0 3136 (Compiler) [] __wake_up+0x1c/0x54 [ 20.740230] c0 3136 (Compiler) [] mmc_wait_data_done+0x28/0x34 [ 20.740262] c0 3136 (Compiler) [] mmc_request_done+0xa4/0x220 [ 20.740314] c0 3136 (Compiler) [] sdhci_tasklet_finish+0xac/0x264 [ 20.740352] c0 3136 (Compiler) [] tasklet_action+0xa0/0x158 [ 20.740382] c0 3136 (Compiler) [] __do_softirq+0x10c/0x2e4 [ 20.740411] c0 3136 (Compiler) [] irq_exit+0x8c/0xc0 [ 20.740439] c0 3136 (Compiler) [] handle_IRQ+0x48/0xac [ 20.740469] c0 3136 (Compiler) [] gic_handle_irq+0x38/0x7c ---------------------------------------------------------------------- Because in SMP, "mrq" has race condition between below two paths: path1: CPU0: static void mmc_wait_data_done(struct mmc_request *mrq) { mrq->host->context_info.is_done_rcv = true; // // If CPU0 has just finished "is_done_rcv = true" in path1, and at // this moment, IRQ or ICache line missing happens in CPU0. // What happens in CPU1 (path2)? // // If the mmcqd thread in CPU1(path2) hasn't entered to sleep mode: // path2 would have chance to break from wait_event_interruptible // in mmc_wait_for_data_req_done and continue to run for next // mmc_request (mmc_blk_rw_rq_prep). // // Within mmc_blk_rq_prep, mrq is cleared to 0. // If below line still gets host from "mrq" as the result of // compiler, the panic happens as we traced. wake_up_interruptible(&mrq->host->context_info.wait); } path2: CPU1: static int mmc_wait_for_data_req_done(... { ... while (1) { wait_event_interruptible(context_info->wait, (context_info->is_done_rcv || context_info->is_new_req)); static void mmc_blk_rw_rq_prep(... { ... memset(brq, 0, sizeof(struct mmc_blk_request)); This issue happens very coincidentally; however adding mdelay(1) in mmc_wait_data_done as below could duplicate it easily. static void mmc_wait_data_done(struct mmc_request *mrq) { mrq->host->context_info.is_done_rcv = true; + mdelay(1); wake_up_interruptible(&mrq->host->context_info.wait); } At runtime, IRQ or ICache line missing may just happen at the same place of the mdelay(1). This patch gets the mmc_context_info at the beginning of function, it can avoid this race condition. Signed-off-by: Jialing Fu Tested-by: Shawn Lin Fixes: 2220eedfd7ae ("mmc: fix async request mechanism ....") Signed-off-by: Shawn Lin Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 01e2dae991771adb1257eb5cd3cecfda1aa09ba9 Author: Linus Walleij Date: Mon Aug 31 08:56:04 2015 +0200 Revert "gpio: extraxfs: fix returnvar.cocci warnings" This reverts commit 5e22ec019823b0204720e1ad9a5866c638332b3a. drivers/gpio/gpio-etraxfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 80ec1927b102480f89436e7d7f961a263e916a44 Author: David S. Miller Date: Sun Aug 30 22:40:44 2015 -0700 ipv4: Fix 32-bit build. net/ipv4/af_inet.c: In function 'snmp_get_cpu_field64': >> net/ipv4/af_inet.c:1486:26: error: 'offt' undeclared (first use in this function) v = *(((u64 *)bhptr) + offt); ^ net/ipv4/af_inet.c:1486:26: note: each undeclared identifier is reported only once for each function it appears in net/ipv4/af_inet.c: In function 'snmp_fold_field64': >> net/ipv4/af_inet.c:1499:39: error: 'offct' undeclared (first use in this function) res += snmp_get_cpu_field(mib, cpu, offct, syncp_offset); ^ >> net/ipv4/af_inet.c:1499:10: error: too many arguments to function 'snmp_get_cpu_field' res += snmp_get_cpu_field(mib, cpu, offct, syncp_offset); ^ net/ipv4/af_inet.c:1455:5: note: declared here u64 snmp_get_cpu_field(void __percpu *mib, int cpu, int offt) ^ Reported-by: kbuild test robot Signed-off-by: David S. Miller net/ipv4/af_inet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0ef707700f1cef2357ce655fc86a4de5e41fa4b5 Author: Ken-ichirou MATSUZAWA Date: Mon Aug 31 07:54:49 2015 +0900 netlink: rx mmap: fix POLLIN condition Poll() returns immediately after setting the kernel current frame (ring->head) to SKIP from user space even though there is no new frame. And in a case of all frames is VALID, user space program unintensionally sets (only) kernel current frame to UNUSED, then calls poll(), it will not return immediately even though there are VALID frames. To avoid situations like above, I think we need to scan all frames to find VALID frames at poll() like netlink_alloc_skb(), netlink_forward_ring() finding an UNUSED frame at skb allocation. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: David S. Miller net/netlink/af_netlink.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit 793768f55c218a260015fe2029ae3d84676cae03 Merge: ef34c0f d77a238 Author: David S. Miller Date: Sun Aug 30 21:54:13 2015 -0700 Merge branch 'thunderx-features-fixes' Aleksey Makarov says: ==================== net: thunderx: New features and fixes v2: - The unused affinity_mask field of the structure cmp_queue has been deleted. (thanks to David Miller) - The unneeded initializers have been dropped. (thanks to Alexey Klimov) - The commit message "net: thunderx: Rework interrupt handling" has been fixed. (thanks to Alexey Klimov) ==================== Signed-off-by: David S. Miller commit d77a2384988fd397cf4f71417b9d971aa435758d Author: Sunil Goutham Date: Sun Aug 30 12:29:16 2015 +0300 net: thunderx: Support for internal loopback mode Support for setting VF's corresponding BGX LMAC in internal loopback mode. This mode can be used for verifying basic HW functionality such as packet I/O, RX checksum validation, CQ/RBDR interrupts, stats e.t.c. Useful when DUT has no external network connectivity. 'loopback' mode can be enabled or disabled via ethtool. Note: This feature is not supported when no of VFs enabled are morethan no of physical interfaces i.e active BGX LMACs Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 11 ++++++++ drivers/net/ethernet/cavium/thunder/nic_main.c | 21 +++++++++++++++ drivers/net/ethernet/cavium/thunder/nicvf_main.c | 30 ++++++++++++++++++++++ drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 31 +++++++++++++++++++++++ drivers/net/ethernet/cavium/thunder/thunder_bgx.h | 4 +++ 5 files changed, 97 insertions(+) commit 92dc87697e6a71675a9e9eec04ebecd8cf4837a3 Author: Sunil Goutham Date: Sun Aug 30 12:29:15 2015 +0300 net: thunderx: Support for upto 96 queues for a VF This patch adds support for handling multiple qsets assigned to a single VF. There by increasing no of queues from earlier 8 to max no of CPUs in the system i.e 48 queues on a single node and 96 on dual node system. User doesn't have option to assign which Qsets/VFs to be merged. Upon request from VF, PF assigns next free Qsets as secondary qsets. To maintain current behavior no of queues is kept to 8 by default which can be increased via ethtool. If user wants to unbind NICVF driver from a secondary Qset then it should be done after tearing down primary VF's interface. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: Robert Richter Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 42 ++++- drivers/net/ethernet/cavium/thunder/nic_main.c | 173 +++++++++++++++-- .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 134 +++++++++---- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 210 +++++++++++++++++++-- drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 30 ++- 5 files changed, 505 insertions(+), 84 deletions(-) commit 39ad6eea6c1a01b69abb1102a767697fb9349830 Author: Sunil Goutham Date: Sun Aug 30 12:29:14 2015 +0300 net: thunderx: Rework interrupt handling Rework interrupt handler to avoid checking IRQ affinity of CQ interrupts. Now separate handlers are registered for each IRQ including RBDR. Register interrupt handlers for only those which are being used. Add nicvf_dump_intr_status() and use it in irq handlers. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 1 + drivers/net/ethernet/cavium/thunder/nicvf_main.c | 172 ++++++++++++--------- drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 1 + 3 files changed, 102 insertions(+), 72 deletions(-) commit aa2e259b474a4f52ecc9f6e0d444547de0aac4b2 Author: Sunil Goutham Date: Sun Aug 30 12:29:13 2015 +0300 net: thunderx: Support for HW VLAN stripping This patch configures HW to strip 802.1Q header if found in a receiving packet. The stripped VLAN ID and TCI information is passed on to software via CQE_RX. Also sets netdev's 'vlan_features' so that other HW offload features can be used for tagged packets. This offload feature can be enabled or disabled via ethtool. Network stack normally ignores RPS for 802.1Q packets and hence low throughput. With this offload enabled throughput for tagged packets will be almost same as normal packets. Note: This patch doesn't enable HW VLAN insertion for transmit packets. Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic_main.c | 4 ++++ drivers/net/ethernet/cavium/thunder/nicvf_main.c | 28 +++++++++++++++++++--- drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 28 ++++++++++++++++++---- drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 2 ++ 4 files changed, 55 insertions(+), 7 deletions(-) commit 38bb5d4f4f988c98035fca003138dd84471432f2 Author: Sunil Goutham Date: Sun Aug 30 12:29:12 2015 +0300 net: thunderx: Receive hashing HW offload support Adding support for receive hashing HW offload by using RSS_ALG and RSS_TAG fields of CQE_RX descriptor. Also removed dependency on minimum receive queue count to configure RSS so that hash is always generated. This hash is used by RPS logic to distribute flows across multiple CPUs. Offload can be disabled via ethtool. Signed-off-by: Robert Richter Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 14 ++++----- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 35 ++++++++++++++++++++-- 2 files changed, 39 insertions(+), 10 deletions(-) commit 6051cba77c1c768d954cf9e423c44bcb85b9adb8 Author: Sunil Goutham Date: Sun Aug 30 12:29:11 2015 +0300 net: thunderx: mailboxes: remove code duplication Use the nicvf_send_msg_to_pf() function in the mailbox code. Signed-off-by: Sunil Goutham Signed-off-by: Robert Richter Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 3 +- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 44 ++++++------------------ 2 files changed, 11 insertions(+), 36 deletions(-) commit a2dc5dedbbb32d082a9b6edf8793734dbfd59315 Author: Sunil Goutham Date: Sun Aug 30 12:29:10 2015 +0300 net: thunderx: Add receive error stats reporting via ethtool Added ethtool support to dump receive packet error statistics reported in CQE. Also made some small fixes Signed-off-by: Sunil Goutham Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/nic.h | 36 +++++++-- .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 34 +++++++-- drivers/net/ethernet/cavium/thunder/nicvf_main.c | 26 ++++--- drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 86 +++++++--------------- drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 41 ----------- 5 files changed, 103 insertions(+), 120 deletions(-) commit 322e5cc5c6c03584ff9362357fc1448b5e442e9e Author: Aleksey Makarov Date: Sun Aug 30 12:29:09 2015 +0300 net: thunderx: fix MAINTAINERS The liquidio and thunder drivers have different maintainers. Signed-off-by: Aleksey Makarov Signed-off-by: David S. Miller MAINTAINERS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ef34c0f6c18b463e644929e300473c80d4157896 Merge: 06fb4e7 a3a7737 Author: David S. Miller Date: Sun Aug 30 21:48:59 2015 -0700 Merge branch 'snmp-stat-aggregation' Raghavendra K T says: ==================== Optimize the snmp stat aggregation for large cpus While creating 1000 containers, perf is showing lot of time spent in snmp_fold_field on a large cpu system. The current patch tries to improve by reordering the statistics gathering. Please note that similar overhead was also reported while creating veth pairs https://lkml.org/lkml/2013/3/19/556 Changes in V4: - remove 'item' variable and use IPSTATS_MIB_MAX to avoid sparse warning (Eric) also remove 'item' parameter (Joe) - add missing memset of padding. Changes in V3: - use memset to initialize temp buffer in leaf function. (David) - use memcpy to copy the buffer data to stat instead of unalign_pu (Joe) - Move buffer definition to leaf function __snmp6_fill_stats64() (Eric) - Changes in V2: - Allocate the stat calculation buffer in stack. (Eric) Setup: 160 cpu (20 core) baremetal powerpc system with 1TB memory 1000 docker containers was created with command docker run -itd ubuntu:15.04 /bin/bash in loop observation: Docker container creation linearly increased from around 1.6 sec to 7.5 sec (at 1000 containers) perf data showed, creating veth interfaces resulting in the below code path was taking more time. rtnl_fill_ifinfo -> inet6_fill_link_af -> inet6_fill_ifla6_attrs -> snmp_fold_field proposed idea: currently __snmp6_fill_stats64 calls snmp_fold_field that walks through per cpu data to of an item (iteratively for around 36 items). The patch tries to aggregate the statistics by going through all the items of each cpu sequentially which is reducing cache misses. Performance of docker creation improved by around more than 2x after the patch. before the patch: ================ 3f45ba571a42e925c4ec4aaee0e48d7610a9ed82a4c931f83324d41822cf6617 real 0m6.836s user 0m0.095s sys 0m0.011s perf record -a docker run -itd ubuntu:15.04 /bin/bash ======================================================= 50.73% docker [kernel.kallsyms] [k] snmp_fold_field 9.07% swapper [kernel.kallsyms] [k] snooze_loop 3.49% docker [kernel.kallsyms] [k] veth_stats_one 2.85% swapper [kernel.kallsyms] [k] _raw_spin_lock 1.37% docker docker [.] backtrace_qsort 1.31% docker docker [.] strings.FieldsFunc cache-misses: 2.7% after the patch: ============= 9178273e9df399c8290b6c196e4aef9273be2876225f63b14a60cf97eacfafb5 real 0m3.249s user 0m0.088s sys 0m0.020s perf record -a docker run -itd ubuntu:15.04 /bin/bash ======================================================= 10.57% docker docker [.] scanblock 8.37% swapper [kernel.kallsyms] [k] snooze_loop 6.91% docker [kernel.kallsyms] [k] snmp_get_cpu_field 6.67% docker [kernel.kallsyms] [k] veth_stats_one 3.96% docker docker [.] runtime_MSpan_Sweep 2.47% docker docker [.] strings.FieldsFunc cache-misses: 1.41 % Please let me know if you have suggestions/comments. Thanks Eric, Joe and David for the comments. ==================== Signed-off-by: David S. Miller commit a3a773726c9f9ba2e87fd8ad8e36feff5f6ffd8e Author: Raghavendra K T Date: Sun Aug 30 11:29:42 2015 +0530 net: Optimize snmp stat aggregation by walking all the percpu data at once Docker container creation linearly increased from around 1.6 sec to 7.5 sec (at 1000 containers) and perf data showed 50% ovehead in snmp_fold_field. reason: currently __snmp6_fill_stats64 calls snmp_fold_field that walks through per cpu data of an item (iteratively for around 36 items). idea: This patch tries to aggregate the statistics by going through all the items of each cpu sequentially which is reducing cache misses. Docker creation got faster by more than 2x after the patch. Result: Before After Docker creation time 6.836s 3.25s cache miss 2.7% 1.41% perf before: 50.73% docker [kernel.kallsyms] [k] snmp_fold_field 9.07% swapper [kernel.kallsyms] [k] snooze_loop 3.49% docker [kernel.kallsyms] [k] veth_stats_one 2.85% swapper [kernel.kallsyms] [k] _raw_spin_lock perf after: 10.57% docker docker [.] scanblock 8.37% swapper [kernel.kallsyms] [k] snooze_loop 6.91% docker [kernel.kallsyms] [k] snmp_get_cpu_field 6.67% docker [kernel.kallsyms] [k] veth_stats_one changes/ideas suggested: Using buffer in stack (Eric), Usage of memset (David), Using memcpy in place of unaligned_put (Joe). Signed-off-by: Raghavendra K T Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv6/addrconf.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit c4c6bc314618f60ba69b0cbf93e506e4c38a11d2 Author: Raghavendra K T Date: Sun Aug 30 11:29:41 2015 +0530 net: Introduce helper functions to get the per cpu data Signed-off-by: Raghavendra K T Signed-off-by: David S. Miller include/net/ip.h | 10 ++++++++++ net/ipv4/af_inet.c | 41 +++++++++++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 14 deletions(-) commit 06fb4e701b17e93366542e4cc57047e411136af7 Merge: 2573d78 f892a84 Author: David S. Miller Date: Sun Aug 30 21:45:01 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit 4a1e2feb9d246775dee0f78ed5b18826bae2b1c5 Author: Trond Myklebust Date: Sun Aug 30 18:37:59 2015 -0700 NFSv4.1: Fix a protocol issue with CLOSE stateids According to RFC5661 Section 18.2.4, CLOSE is supposed to return the zero stateid. This means that nfs_clear_open_stateid_locked() cannot assume that the result stateid will always match the 'other' field of the existing open stateid when trying to determine a race with a parallel OPEN. Instead, we look at the argument, and check for matches. Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 8f8dcb3f7fe4febbfa96e64d4ad47de958c5cc34 Author: Matt Turner Date: Tue Aug 4 14:35:05 2015 -0700 alpha: select CONFIG_ARCH_USE_CMPXCHG_LOCKREF. On Alpha we have spinlocks that are 32b in size and an efficient cmpxchg64 implementation, so we qualify to make use of cmpxchg backed lockrefs. Select the ARCH_USE_CMPXCHG_LOCKREF Kconfig symbol and provide a trivial implementation of arch_spin_value_unlocked to satisfy the lockref code. Using Linus' simple testcase from http://article.gmane.org/gmane.linux.file-systems/77466 on a dual CPU ES47 system I see around an 8% gain: N Min Max Median Avg Stddev x 30 6194580 6295654 6272504 6272514 17694.232 + 30 6731164 6786334 6767982 6764274 13738.863 Difference at 95.0% confidence 491760 +/- 8188.17 7.83992% +/- 0.130541% (Student's t, pooled s = 15840.5) Signed-off-by: Matt Turner arch/alpha/Kconfig | 1 + arch/alpha/include/asm/spinlock.h | 5 +++++ 2 files changed, 6 insertions(+) commit 879a37d00f1882b1e56a66e626af4194d592d257 Merge: 701078d 50002d4 Author: Dave Airlie Date: Mon Aug 31 10:25:45 2015 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next This is a second pull-request which adds last part of atomic modeset/pageflip support, render node support, clean-up, and fix-up. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: fix build warning to exynos_drm_gem.c drm/exynos: Properly report supported formats for each device drm/exynos: add render node support drm/exynos: implement atomic_{begin/flush} of DECON drm/exynos: remove legacy ->suspend()/resume() drm/exynos: Enable atomic modesetting feature drm/exynos: remove wait queue for pending page flip drm/exynos: wait all planes updates to finish drm/exynos: add atomic asynchronous commit drm/exynos: fimd: only finish update if START == START_S drm/exynos: add macro to get the address of START_S reg drm/exynos: check for pending fb before finish update drm/exynos: fimd: move window protect code to prepare/cleanup_plane drm/exynos: add prepare and cleanup phases for planes drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip() drm/exynos: don't track enabled state at exynos_crtc commit 701078d538e5b2bec95cbbc53cca71c120cd063f Merge: d3e8ea5 26951ca Author: Dave Airlie Date: Mon Aug 31 10:06:22 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-08-28' of git://anongit.freedesktop.org/drm-intel into drm-next Some i915 fixes headed for v4.3. SKL DDI-E is a wip, but here's the first in a series. * tag 'drm-intel-next-fixes-2015-08-28' of git://anongit.freedesktop.org/drm-intel: drm/i915/skl: enable DDI-E hotplug drm/i915: Fix build warning on 32-bit drm/i915/skl: Update DDI buffer translation programming. drm/i915: Allow parsing of variable size child device entries from VBT drm/i915: fix link rates reported for SKL drm/i915: fix VBT parsing for SDVO child device mapping commit d3e8ea50922d90aea473474bdcede34ce743e1a5 Merge: 92cffd5 2497ee7 Author: Dave Airlie Date: Mon Aug 31 10:05:37 2015 +1000 Merge tag 'drm-amdkfd-next-fixes-2015-08-30' of git://people.freedesktop.org/~gabbayo/linux into drm-next Just one small fix before 4.3 merge window: - Use linux/mman.h instead of uapi's mman-common.h inside the driver. * tag 'drm-amdkfd-next-fixes-2015-08-30' of git://people.freedesktop.org/~gabbayo/linux: amdkfd: use instead of commit e1c30298ccab87151a0c4241fc5985c591598361 Author: Yishai Hadas Date: Thu Aug 13 18:32:07 2015 +0300 IB/ucma: HW Device hot-removal support Currently, IB/cma remove_one flow blocks until all user descriptor managed by IB/ucma are released. This prevents hot-removal of IB devices. This patch allows IB/cma to remove devices regardless of user space activity. Upon getting the RDMA_CM_EVENT_DEVICE_REMOVAL event we close all the underlying HW resources for the given ucontext. The ucontext itself is still alive till its explicit destroying by its creator. Running applications at that time will have some zombie device, further operations may fail. Signed-off-by: Yishai Hadas Signed-off-by: Shachar Raindel Reviewed-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/ucma.c | 140 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 129 insertions(+), 11 deletions(-) commit ae184ddeca5db6d60ba9067ba1c9e940fa01d400 Author: Yishai Hadas Date: Thu Aug 13 18:32:06 2015 +0300 IB/mlx4_ib: Disassociate support Implements the IB core disassociate_ucontext API. The driver detaches the HW resources for a given user context to prevent a dependency between application termination and device disconnecting. This is done by managing the VMAs that were mapped to the HW bars such as door bell and blueflame. When need to detach remap them to an arbitrary kernel page returned by the zap API. Signed-off-by: Yishai Hadas Signed-off-by: Jack Morgenstein Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 139 ++++++++++++++++++++++++++++++++++- drivers/infiniband/hw/mlx4/mlx4_ib.h | 13 ++++ 2 files changed, 150 insertions(+), 2 deletions(-) commit 036b10635739ffd030246eedde3d67f724800177 Author: Yishai Hadas Date: Thu Aug 13 18:32:05 2015 +0300 IB/uverbs: Enable device removal when there are active user space applications Enables the uverbs_remove_one to succeed despite the fact that there are running IB applications working with the given ib device. This functionality enables a HW device to be unbind/reset despite the fact that there are running user space applications using it. It exposes a new IB kernel API named 'disassociate_ucontext' which lets a driver detaching its HW resources from a given user context without crashing/terminating the application. In case a driver implemented the above API and registered with ib_uverb there will be no dependency between its device to its uverbs_device. Upon calling remove_one of ib_uverbs the call should return after disassociating the open HW resources without waiting to clients disconnecting. In case driver didn't implement this API there will be no change to current behaviour and uverbs_remove_one will return only when last client has disconnected and reference count on uverbs device became 0. In case the lower driver device was removed any application will continue working over some zombie HCA, further calls will ended with an immediate error. Signed-off-by: Yishai Hadas Signed-off-by: Shachar Raindel Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs.h | 9 +- drivers/infiniband/core/uverbs_main.c | 360 +++++++++++++++++++++++++++------- include/rdma/ib_verbs.h | 1 + 3 files changed, 302 insertions(+), 68 deletions(-) commit 057aec0d23f750b27f0bb92d2606871f60417e0a Author: Yishai Hadas Date: Thu Aug 13 18:32:04 2015 +0300 IB/uverbs: Explicitly pass ib_dev to uverbs commands Done in preparation for deploying RCU for the device removal flow. Allows isolating the RCU handling to the uverb_main layer and keeping the uverbs_cmd code as is. Signed-off-by: Yishai Hadas Signed-off-by: Shachar Raindel Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs.h | 3 + drivers/infiniband/core/uverbs_cmd.c | 103 +++++++++++++++++++++++----------- drivers/infiniband/core/uverbs_main.c | 21 +++++-- 3 files changed, 88 insertions(+), 39 deletions(-) commit 35d4a0b63dc0c6d1177d4f532a9deae958f0662c Author: Yishai Hadas Date: Thu Aug 13 18:32:03 2015 +0300 IB/uverbs: Fix race between ib_uverbs_open and remove_one Fixes: 2a72f212263701b927559f6850446421d5906c41 ("IB/uverbs: Remove dev_table") Before this commit there was a device look-up table that was protected by a spin_lock used by ib_uverbs_open and by ib_uverbs_remove_one. When it was dropped and container_of was used instead, it enabled the race with remove_one as dev might be freed just after: dev = container_of(inode->i_cdev, struct ib_uverbs_device, cdev) but before the kref_get. In addition, this buggy patch added some dead code as container_of(x,y,z) can never be NULL and so dev can never be NULL. As a result the comment above ib_uverbs_open saying "the open method will either immediately run -ENXIO" is wrong as it can never happen. The solution follows Jason Gunthorpe suggestion from below URL: https://www.mail-archive.com/linux-rdma@vger.kernel.org/msg25692.html cdev will hold a kref on the parent (the containing structure, ib_uverbs_device) and only when that kref is released it is guaranteed that open will never be called again. In addition, fixes the active count scheme to use an atomic not a kref to prevent WARN_ON as pointed by above comment from Jason. Signed-off-by: Yishai Hadas Signed-off-by: Shachar Raindel Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs.h | 3 ++- drivers/infiniband/core/uverbs_main.c | 43 ++++++++++++++++++++++++----------- 2 files changed, 32 insertions(+), 14 deletions(-) commit 03c40442a0e66fa52aec6733ea88804fe7d12c77 Author: Yishai Hadas Date: Thu Aug 13 18:32:02 2015 +0300 IB/uverbs: Fix reference counting usage of event files Fix the reference counting usage to be handled in the event file creation/destruction function, instead of being done by the caller. This is done for both async/non-async event files. Based on Jason Gunthorpe report at https://www.mail-archive.com/ linux-rdma@vger.kernel.org/msg24680.html: "The existing code for this is broken, in ib_uverbs_get_context all the error paths between ib_uverbs_alloc_event_file and the kref_get(file->ref) are wrong - this will result in fput() which will call ib_uverbs_event_close, which will try to do kref_put and ib_unregister_event_handler - which are no longer paired." Signed-off-by: Yishai Hadas Signed-off-by: Shachar Raindel Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs.h | 1 + drivers/infiniband/core/uverbs_cmd.c | 11 +-------- drivers/infiniband/core/uverbs_main.c | 44 ++++++++++++++++++++++++++++++----- 3 files changed, 40 insertions(+), 16 deletions(-) commit 7dd78647a2c2c224e376fc72797d411a3a0bb047 Author: Jason Gunthorpe Date: Wed Aug 5 14:34:31 2015 -0600 IB/core: Make ib_dealloc_pd return void The majority of callers never check the return value, and even if they did, they can't do anything about a failure. All possible failure cases represent a bug in the caller, so just WARN_ON inside the function instead. This fixes a few random errors: net/rd/iw.c infinite loops while it fails. (racing with EBUSY?) This also lays the ground work to get rid of error return from the drivers. Most drivers do not error, the few that do are broken since it cannot be handled. Since uverbs can legitimately make use of EBUSY, open code the check. Signed-off-by: Jason Gunthorpe Reviewed-by: Chuck Lever Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 22 ++++++++++++++++------ drivers/infiniband/core/verbs.c | 26 ++++++++++++++++++++------ drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 4 +--- drivers/infiniband/ulp/iser/iser_verbs.c | 2 +- include/rdma/ib_verbs.h | 6 +----- net/rds/iw.c | 5 +---- net/sunrpc/xprtrdma/verbs.c | 2 +- 7 files changed, 41 insertions(+), 26 deletions(-) commit 03f6fb93fde24f01a940283bdf55024e576ee87d Author: Bart Van Assche Date: Mon Aug 10 17:09:36 2015 -0700 IB/srp: Create an insecure all physical rkey only if needed The SRP initiator only needs this if the insecure register_always=N performance optimization is enabled, or if FRWR/FMR is not supported in the driver. Do not create an all physical MR unless it is needed to support either of those modes. Default register_always to true so the out of the box configuration does not create an insecure all physical MR. Signed-off-by: Jason Gunthorpe [bvanassche: reworked and rebased this patch] Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 40 +++++++++++++++++++++---------------- drivers/infiniband/ulp/srp/ib_srp.h | 4 ++-- 2 files changed, 25 insertions(+), 19 deletions(-) commit 330179f2fa93c1c6c41a90c7deabc98e363018e5 Author: Bart Van Assche Date: Mon Aug 10 17:09:05 2015 -0700 IB/srp: Register the indirect data buffer descriptor Instead of always using the global rkey for the indirect data buffer descriptor, register that descriptor with the HCA if the kernel module parameter register_always has been set to Y. Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 57 +++++++++++++++++++++++++++++++++++-- drivers/infiniband/ulp/srp/ib_srp.h | 4 +++ 2 files changed, 58 insertions(+), 3 deletions(-) commit 002f15674c84fb4c38ed5237c1e7235e09c033f0 Author: Bart Van Assche Date: Mon Aug 10 17:08:44 2015 -0700 IB/srp: Introduce srp_device.use_fmr Introduce the variable srp_device.use_fmr. Leave out the dev->has_fr / dev->has_fmr and ch->fr_pool / ch->fmr_pool checks since these are redundant. This patch does not change any functionality but makes the source code easier to read. Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 22 +++++++++++----------- drivers/infiniband/ulp/srp/ib_srp.h | 1 + 2 files changed, 12 insertions(+), 11 deletions(-) commit 3ae95da8831e7bcf7b6da2b31cb4b50b3058f14e Author: Bart Van Assche Date: Mon Aug 10 17:08:18 2015 -0700 IB/srp: Remove use_mr argument from srp_map_sg_entry() Move the srp_map_desc() call from inside srp_map_sg_entry() to srp_map_sg() such that the use_mr argument can be removed from srp_map_sg_entry(). Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) commit 0e0d3a480090d03f29e58dfd717960776f3416d9 Author: Bart Van Assche Date: Mon Aug 10 17:07:46 2015 -0700 IB/srp: Remove the memory registration backtracking code Mapping a discontiguous sg-list requires multiple memory regions and hence can exhaust the memory region pool. The SRP initiator already handles this by temporarily reducing the queue depth. This means that it is safe to remove the memory registration backtracking code. This patch has been tested with direct I/O sizes up to 256 MB. Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 62 ++++++++----------------------------- drivers/infiniband/ulp/srp/ib_srp.h | 6 ---- 2 files changed, 13 insertions(+), 55 deletions(-) commit f731ed62934ace0d3f5aa9ec557349171711be05 Author: Bart Van Assche Date: Mon Aug 10 17:07:27 2015 -0700 IB/srp: Add memory descriptor array pointer range checking Although most paths through which a request is submitted check block layer parameters like the max_segments limit, these are not checked when an SG_IO or direct I/O request is submitted. Hence add a range check for the memory descriptor array pointer. Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 16 ++++++++++++---- drivers/infiniband/ulp/srp/ib_srp.h | 10 ++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) commit 7e85c91970125cb16399c7d1cfedc943266eee49 Author: Bart Van Assche Date: Mon Aug 10 17:06:57 2015 -0700 IB/srp: Use multiple registrations for large memory regions Instead of using the global rkey for large memory regions, use multiple registrations. See also the while (dma_len) loop further down in srp_map_sg_entry(). Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 10 ---------- 1 file changed, 10 deletions(-) commit 186fbc6689a368364b7c9eb9d42d6f84b3079f65 Author: Bart Van Assche Date: Mon Aug 10 17:06:29 2015 -0700 IB/srp: Re-enable FMR for non-page aligned buffers During a discussion in 2011 nobody recalled why FMR was not used for non-page aligned buffers (see also http://thread.gmane.org/gmane.linux.drivers.rdma/7149). Re-enable FMR for such buffers. For the reason why the srp_map_fmr() function needs to be modified, see also patch "IB/srp: rework mapping engine to use multiple FMR entries" (commit ID 8f26c9ff9cd0; January 2011). Signed-off-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit e5580242aa8fab292579a1661463f7479275f7ff Author: Jason Gunthorpe Date: Thu Jul 30 17:22:26 2015 -0600 rds/ib: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford net/rds/ib.c | 8 -------- net/rds/ib.h | 2 -- net/rds/ib_cm.c | 4 +--- net/rds/ib_recv.c | 6 +++--- net/rds/ib_send.c | 8 ++++---- 5 files changed, 8 insertions(+), 20 deletions(-) commit 2f31fa881fbe70808b945a6d23cae1ca8eadf1b3 Author: Jason Gunthorpe Date: Thu Jul 30 17:22:25 2015 -0600 net/9p: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Tested-by: Dominique Martinet Signed-off-by: Doug Ledford net/9p/trans_rdma.c | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) commit 5a783956c2b90179b852dd58a2ee668f16dfe980 Author: Jason Gunthorpe Date: Thu Jul 30 17:22:24 2015 -0600 ib_srpt: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/srpt/ib_srpt.c | 15 ++++----------- drivers/infiniband/ulp/srpt/ib_srpt.h | 1 - 2 files changed, 4 insertions(+), 12 deletions(-) commit e6bf5f48d2adc443689c5e627bcd559b00201e5c Author: Jason Gunthorpe Date: Thu Jul 30 17:22:22 2015 -0600 IB/srp: Use pd->local_dma_lkey Replace all leys with pd->local_dma_lkey. This driver does not support iWarp, so this is safe. The insecure use of ib_get_dma_mr is thus isolated to an rkey, and will have to be fixed separately. Signed-off-by: Jason Gunthorpe Reviewed-by: Sagi Grimberg Reviewed-by: Bart Van Assche Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 34efc7dfbd88e4a232b1efa31c5e900606c84fca Author: Jason Gunthorpe Date: Thu Jul 30 17:22:21 2015 -0600 iser-target: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/isert/ib_isert.c | 33 +++++++++++---------------------- drivers/infiniband/ulp/isert/ib_isert.h | 1 - 2 files changed, 11 insertions(+), 23 deletions(-) commit 256b7ad27316525711dfa98b67e7c40cb28b1711 Author: Jason Gunthorpe Date: Thu Jul 30 17:22:20 2015 -0600 IB/iser: Use pd->local_dma_lkey Replace all leys with pd->local_dma_lkey. This driver does not support iWarp, so this is safe. The insecure use of ib_get_dma_mr is thus isolated to an rkey, and this looks trivially fixed by forcing the use of registration in a future patch. Signed-off-by: Jason Gunthorpe Reviewed-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 2 +- drivers/infiniband/ulp/iser/iser_initiator.c | 4 ++-- drivers/infiniband/ulp/iser/iser_memory.c | 2 +- drivers/infiniband/ulp/iser/iser_verbs.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit b37c788f595cd578524fb8f50d3bd2fff8b62bc3 Author: Jason Gunthorpe Date: Thu Jul 30 17:22:19 2015 -0600 IB/mlx5: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 13 ------------- drivers/infiniband/hw/mlx5/mlx5_ib.h | 1 - drivers/infiniband/hw/mlx5/mr.c | 5 ++--- 3 files changed, 2 insertions(+), 17 deletions(-) commit 7dd975762825e4c2b95df5e24759a9d6ad915c79 Author: Jason Gunthorpe Date: Thu Jul 30 17:22:18 2015 -0600 IB/mlx4: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mad.c | 23 ++++------------------- drivers/infiniband/hw/mlx4/mlx4_ib.h | 1 - 2 files changed, 4 insertions(+), 20 deletions(-) commit 77b1f99660ed60694e1d0e3a63096c1f252debfd Author: Jason Gunthorpe Date: Thu Jul 30 17:22:17 2015 -0600 IB/ipoib: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib.h | 1 - drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 18 +++--------------- 3 files changed, 4 insertions(+), 17 deletions(-) commit 4be90bc60df47f6268b594c4fb6c90f0ff2f519f Author: Jason Gunthorpe Date: Thu Jul 30 17:22:16 2015 -0600 IB/mad: Remove ib_get_dma_mr calls The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/mad.c | 26 +++----------------------- drivers/infiniband/core/mad_priv.h | 1 - include/rdma/ib_mad.h | 1 - 3 files changed, 3 insertions(+), 25 deletions(-) commit 96249d70dd70496084c7ec1465ec449cd032955a Author: Jason Gunthorpe Date: Wed Aug 5 14:14:45 2015 -0600 IB/core: Guarantee that a local_dma_lkey is available Every single ULP requires a local_dma_lkey to do anything with a QP, so let us ensure one exists for every PD created. If the driver can supply a global local_dma_lkey then use that, otherwise ask the driver to create a local use all physical memory MR associated with the new PD. Signed-off-by: Jason Gunthorpe Reviewed-by: Sagi Grimberg Acked-by: Christoph Hellwig Reviewed-by: Steve Wise Reviewed-by: Ira Weiny Tested-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/uverbs_cmd.c | 1 + drivers/infiniband/core/verbs.c | 47 ++++++++++++++++++++++++++++++++---- include/rdma/ib_verbs.h | 9 ++----- 3 files changed, 45 insertions(+), 12 deletions(-) commit 7332bed085c68fc76462583a1003c6dca2c31e11 Author: Sagi Grimberg Date: Thu Aug 6 18:33:06 2015 +0300 IB/iser: Chain all iser transaction send work requests Chaning of send work requests benefits performance by reducing the send queue lock contention (acquired in ib_post_send) and saves us HW doorbells which is posted only once. Currently, in normal IO flows iser does not chain the CDB send work request with the registration work request. Also in PI flows, signature work requests are not chained as well. Lets chain those and post only once. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 1 + drivers/infiniband/ulp/iser/iscsi_iser.h | 34 +++++++++ drivers/infiniband/ulp/iser/iser_memory.c | 120 +++++++++++++----------------- drivers/infiniband/ulp/iser/iser_verbs.c | 21 +++--- 4 files changed, 99 insertions(+), 77 deletions(-) commit 1b16c9894b63c8dfbc578ecf1186be4508b2c49e Author: Sagi Grimberg Date: Thu Aug 6 18:33:05 2015 +0300 IB/iser: Add debug prints to the various memory registration methods Easier to debug when we have the registration details. This patch does not change any functionality. Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_memory.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit df749cdc45d9f97cb0a5e6ceab80e2e00ee9bf85 Author: Sagi Grimberg Date: Thu Aug 6 18:33:04 2015 +0300 IB/iser: Support up to 8MB data transfer in a single command iser support up to 512KB data transfer in a single scsi command. This means that larger IOs will split to different request. While iser can easily saturate FDR/EDR wires, some arrays are fine tuned for 1MB (or larger) IO sizes, hence add an option to support larger transfers (up to 8MB) if the device allows it. Given that a few target implementations don't support data transfers of more than 512KB by default and the fact that larger IO sizes require more resources, we introduce a module parameter to determine the maximum number of 512B sectors in a single scsi command. Users that are interested in larger transfers can change this value given that the target supports larger transfers. At the moment, iser works in 4K pages granularity, In a later stage we will get it to work with system page size instead. IO operations that consists of N pages will need a page vector of size N+1 in case the first SG element contains an offset. Given that some devices allocates memory regions in powers of 2, this means that allocating a region with N+1 pages, will result in region resources allocation of the next power of 2. Since we don't want that to happen, in case we are in the limit of IO size supported and the first SG element has an offset, we align the SG list using a bounce buffer (which is OK given that this is not likely to happen a lot). Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 10 ++++++++-- drivers/infiniband/ulp/iser/iscsi_iser.h | 14 ++++++++++++-- drivers/infiniband/ulp/iser/iser_initiator.c | 2 +- drivers/infiniband/ulp/iser/iser_memory.c | 14 ++++++++++++-- drivers/infiniband/ulp/iser/iser_verbs.c | 27 +++++++++++++++++++++++++++ 5 files changed, 60 insertions(+), 7 deletions(-) commit f8db651da29bcad213d43328ebf8ce8459f526a7 Author: Sagi Grimberg Date: Thu Aug 6 18:33:03 2015 +0300 IB/iser: Pass registration pool a size parameter Hard coded for now. This will allow to allocate different sized MRs depending on the IO size needed (and device capabilities). This patch does not change any functionality. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 11 +++++-- drivers/infiniband/ulp/iser/iser_initiator.c | 3 +- drivers/infiniband/ulp/iser/iser_verbs.c | 47 +++++++++++++++------------- 3 files changed, 36 insertions(+), 25 deletions(-) commit 32467c420bb68776ebaa53ddf6712e1dba7bb5da Author: Sagi Grimberg Date: Thu Aug 6 18:33:02 2015 +0300 IB/iser: Unify fast memory registration flows iser_reg_rdma_mem_[fastreg|fmr] share a lot of code, and logically do the same thing other than the buffer registration method itself (iser_fast_reg_mr vs. iser_fast_reg_fmr). The DIF logic is not implemented in the FMR flow as there is no existing device that supports FMRs and Signature feature. This patch unifies the flow in a single routine iser_reg_rdma_mem and just split to fmr/frwr for the buffer registration itself. Also, for symmetry reasons, unify iser_unreg_rdma_mem (which will call the relevant device specific unreg routine). Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 23 +-- drivers/infiniband/ulp/iser/iser_initiator.c | 11 +- drivers/infiniband/ulp/iser/iser_memory.c | 210 ++++++++++++--------------- 3 files changed, 113 insertions(+), 131 deletions(-) commit 81722909c8f78ee2db62373a74ec2ecb709c112e Author: Sagi Grimberg Date: Thu Aug 6 18:33:01 2015 +0300 IB/iser: Make reg_desc_get a per device routine As for fmrs we will hold a single registration descriptor as no need for multiple like in the frwr mode (descriptor for each task). This change helps unifying the duplicate registration code paths. Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 16 ++++++++++--- drivers/infiniband/ulp/iser/iser_memory.c | 38 +++++++++++++++++++++++-------- 2 files changed, 41 insertions(+), 13 deletions(-) commit 7d0483c927f429c7aece47e730eaa91007577d99 Author: Sagi Grimberg Date: Thu Aug 6 18:33:00 2015 +0300 IB/iser: Rename iser_reg_page_vec to iser_fast_reg_fmr Also, change a name of a local variable. This patch does not change any functionality. Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_memory.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 2b3bf958103899a96d230c9f2e0d87606f08a7be Author: Adir Lev Date: Thu Aug 6 18:32:59 2015 +0300 IB/iser: Maintain connection fmr_pool under a single registration descriptor This will allow us to unify the memory registration code path between the various methods which vary by the device capabilities. This change will make it easier and less intrusive to remove fmr_pools from the code when we'd want to. The reason we use a single descriptor is to avoid taking a redundant spinlock when working with FMRs. We also change the signature of iser_reg_page_vec to make it match iser_fast_reg_mr (and the future indirect registration method). Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 38 +++++++++------------ drivers/infiniband/ulp/iser/iser_memory.c | 28 +++++++++------- drivers/infiniband/ulp/iser/iser_verbs.c | 56 ++++++++++++++++++++----------- 3 files changed, 68 insertions(+), 54 deletions(-) commit 385ad87d4b637c1ebdb54bc93274fc2c267dfc16 Author: Sagi Grimberg Date: Thu Aug 6 18:32:58 2015 +0300 IB/iser: Introduce iser registration pool struct Instead of having it a part of the connection structure, have it be under a dedicated (embedded) structure in the connection. A logical separation of the registration pool and the connection structure. Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 49 ++++++++++++++----------- drivers/infiniband/ulp/iser/iser_memory.c | 32 +++++++++-------- drivers/infiniband/ulp/iser/iser_verbs.c | 60 ++++++++++++++++++------------- 3 files changed, 82 insertions(+), 59 deletions(-) commit eb6ea8c36c90f022dd9603530286e0707a9c467b Author: Sagi Grimberg Date: Thu Aug 6 18:32:57 2015 +0300 IB/iser: Move fastreg descriptor allocation to iser_create_fastreg_desc Don't have the caller allocate the structure and worry about freeing it in case the routine failed. This patch does not change any functionality. Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_verbs.c | 38 ++++++++++++++------------------ 1 file changed, 17 insertions(+), 21 deletions(-) commit 48afbff673d3d2ff6c52342574392db504dae301 Author: Sagi Grimberg Date: Thu Aug 6 18:32:56 2015 +0300 IB/iser: Introduce iser_reg_ops Move all the per-device function pointers to an easy extensible iser_reg_ops structure that contains all the iser registration operations. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 39 ++++++++++++++++++---------- drivers/infiniband/ulp/iser/iser_initiator.c | 16 ++++++------ drivers/infiniband/ulp/iser/iser_memory.c | 35 +++++++++++++++++++++++++ drivers/infiniband/ulp/iser/iser_verbs.c | 30 +++++---------------- 4 files changed, 75 insertions(+), 45 deletions(-) commit 8c18ed03a95cb6c3543b0a9e0df5e9366baea5df Author: Sagi Grimberg Date: Thu Aug 6 18:32:55 2015 +0300 IB/iser: Remove dead code in fmr_pool alloc/free In the past the we always tried to allocate an fmr_pool and if it failed on ENOSYS (not supported) then we continued with dma mr. This is not the case anymore and if we tried to allocate an fmr_pool then it is supported and we expect to succeed. Also, the check if fmr_pool is allocated when free is called is redundant as well as we are guaranteed it exists. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_verbs.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 5190cc2664972f2c51502e928fcb7a608dddab5f Author: Sagi Grimberg Date: Thu Aug 6 18:32:54 2015 +0300 IB/iser: Rename struct fast_reg_descriptor -> iser_fr_desc Avoid struct names without iser_ prefix. This patch does not change any functionality. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 8 ++++---- drivers/infiniband/ulp/iser/iser_memory.c | 10 +++++----- drivers/infiniband/ulp/iser/iser_verbs.c | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) commit d711d81d6463ecf566b93810e16949f2d159aa50 Author: Sagi Grimberg Date: Thu Aug 6 18:32:53 2015 +0300 IB/iser: Introduce struct iser_reg_resources Have fast_reg_descriptor hold struct iser_reg_resources (mr, frpl, valid flag). This will be useful when the actual buffer registration routines will be passed with the needed registration resources (i.e. iser_reg_resources) without being aware of their nature (i.e. data or protection). In order to achieve this, we remove reg_indicators flags container and place specific flags (mr_valid) within iser_reg_resources struct. We also place the sig_mr_valid and sig_protcted flags in iser_pi_context. This patch also modifies iser_fast_reg_mr to receive the reg_resources instead of the fast_reg_descriptor and a data/protection indicator. Signed-off-by: Sagi Grimberg Signed-off-by: Adir Lev Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.h | 36 ++++++----- drivers/infiniband/ulp/iser/iser_memory.c | 35 +++++------ drivers/infiniband/ulp/iser/iser_verbs.c | 101 +++++++++++++++++------------- 3 files changed, 91 insertions(+), 81 deletions(-) commit ea18f5d7777dc4fa9c18c4919281301cf4fd921a Author: Sagi Grimberg Date: Thu Aug 6 18:32:52 2015 +0300 IB/iser: Remove an unneeded print for unaligned memory We can do it in iser_aligned_data_len instead and it will save us an argument that is passed to fall_to_counce_buf just for the print. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_memory.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit b9abd8d21d3a04903aefcb7742efe3390f2fac57 Author: Sagi Grimberg Date: Thu Aug 6 18:32:51 2015 +0300 IB/iser: Remove a redundant always-false condition We always call iser_initialize_task_headers() and set the header tx_sg.lkey to the device mr lkey, so no point in checking it in iser_create_send_desc(). Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_initiator.c | 6 ------ 1 file changed, 6 deletions(-) commit 8d5944d80359e645feb2ebd069a6f4caf7825e40 Author: Sagi Grimberg Date: Thu Aug 6 18:32:50 2015 +0300 IB/iser: Fix possible bogus DMA unmapping If iser_initialize_task_headers() routine failed before dma mapping, we should not attempt to unmap in cleanup_task(). Fixes: 7414dde0a6c3a958e (IB/iser: Fix race between iser connection ...) Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 12 ++++++++---- drivers/infiniband/ulp/iser/iscsi_iser.h | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) commit 02816a8b8881f9dea68883c9b72672e87cb91d36 Author: Sagi Grimberg Date: Thu Aug 6 18:32:49 2015 +0300 IB/iser: Get rid of un-maintained counters We don't update those anywhere in the code and they seem pretty useless (no one seem to care about those). qp_tx_queue_full: We never should get this fmr_map_not_avail: We can never get to this eh_abort_cnt: We don't monitor aborts Go ahead and remove them. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit d16739055bd1f562ae4d83e69f7f7f1cefcfbe16 Author: Sagi Grimberg Date: Thu Aug 6 18:32:48 2015 +0300 IB/iser: Fix missing return status check in iser_send_data_out Since commit "IB/iser: Fix race between iser connection teardown..." iser_initialize_task_headers() might fail, so we need to check that. Fixes: 7414dde0a6c3a958e (IB/iser: Fix race between iser connection ...) Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_initiator.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 1156cc80f8fc31f8c52740a9c8051afd8d70faf3 Author: Sagi Grimberg Date: Thu Aug 6 18:32:47 2015 +0300 IB/iser: Remove '.' from log message Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 74ce897b7c9be9f5913bbffafcac10f0871c503b Author: Sagi Grimberg Date: Thu Aug 6 18:32:46 2015 +0300 IB/iser: Change minor assignments and logging prints Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit db0a6cbd21d6ece6587c157b3d183521bc8a2781 Author: Jenny Falkovich Date: Thu Aug 6 18:32:45 2015 +0300 IB/iser: Change some module parameters to be RO While we're at it, use permission defines instead of octal values and rearrange a little bit. Signed-off-by: Jenny Derzhavetz Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) commit 2ca546b92a024d07adedd15b4c262b1c2c0786ec Author: Kaike Wan Date: Fri Aug 14 08:52:09 2015 -0400 IB/sa: Route SA pathrecord query through netlink This patch routes a SA pathrecord query to netlink first and processes the response appropriately. If a failure is returned, the request will be sent through IB. The decision whether to route the request to netlink first is determined by the presence of a listener for the local service netlink multicast group. If the user-space local service netlink multicast group listener is not present, the request will be sent through IB, just like what is currently being done. Signed-off-by: Kaike Wan Signed-off-by: John Fleck Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/sa_query.c | 501 ++++++++++++++++++++++++++++++++++++- 1 file changed, 500 insertions(+), 1 deletion(-) commit 5d2657708ec25b9fb3dd174443b1f647babcbe62 Author: Kaike Wan Date: Fri Aug 14 08:52:08 2015 -0400 IB/sa: Allocate SA query with kzalloc Replace kmalloc with kzalloc so that all uninitialized fields in SA query will be zero-ed out to avoid unintentional consequence. This prepares the SA query structure to accept new fields in the future. Signed-off-by: Kaike Wan Signed-off-by: John Fleck Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/sa_query.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bc10ed7d3d19ff61427007b4d7bf98d3e57bb333 Author: Kaike Wan Date: Fri Aug 14 08:52:07 2015 -0400 IB/core: Add rdma netlink helper functions This patch adds a function to check if listeners for a netlink multicast group are present. It also adds a function to receive netlink response messages. Signed-off-by: Kaike Wan Signed-off-by: John Fleck Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/netlink.c | 55 +++++++++++++++++++++++++++++++++++++++ include/rdma/rdma_netlink.h | 7 +++++ 2 files changed, 62 insertions(+) commit 6431eb87065ffd24dfc7c0b6954e80a4eb74e177 Author: Kaike Wan Date: Fri Aug 14 08:52:06 2015 -0400 IB/netlink: Add defines for local service requests through netlink This patch adds netlink defines for local service client, local service group, local service operations, and related attributes. Signed-off-by: Kaike Wan Signed-off-by: John Fleck Signed-off-by: Ira Weiny Signed-off-by: Doug Ledford include/uapi/rdma/rdma_netlink.h | 82 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) commit bc44bd1d864664f3658352c6aaaa02557d49165d Author: Bart Van Assche Date: Fri Aug 14 11:01:09 2015 -0700 IB/srp: Stop the scsi_eh_ and scsi_tmf_ threads if login fails scsi_host_alloc() not only allocates memory for a SCSI host but also creates the scsi_eh_ kernel thread and the scsi_tmf_ workqueue. Stop these threads if login fails by calling scsi_host_put(). Reported-by: Konstantin Krotov Fixes: fb49c8bbaae7 ("Remove an extraneous scsi_host_put() from an error path") Signed-off-by: Bart Van Assche Cc: Sagi Grimberg Cc: Sebastian Parschauer Cc: #v3.19 Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 713ef24e41757561c7f0bfc9bf4436f7e4a5b527 Author: Bart Van Assche Date: Fri Jul 31 14:13:52 2015 -0700 IB/srp: Bump driver version and release date Since version 1.0 e.g. scsi-mq has been added. Since this is a significant change, bump the driver version and release date. Signed-off-by: Bart Van Assche Cc: Sagi Grimberg Cc: Sebastian Parschauer Cc: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c257ea6f9f9aed0b173e0c2932bb8dac5612cdc6 Author: Bart Van Assche Date: Fri Jul 31 14:13:22 2015 -0700 IB/srp: Handle partial connection success correctly Avoid that the following kernel warning is reported if the SRP target system accepts fewer channels per connection than what was requested by the initiator system: WARNING: at drivers/infiniband/ulp/srp/ib_srp.c:617 srp_destroy_qp+0xb1/0x120 [ib_srp]() Call Trace: [] warn_slowpath_common+0x7f/0xc0 [] warn_slowpath_null+0x1a/0x20 [] srp_destroy_qp+0xb1/0x120 [ib_srp] [] srp_create_ch_ib+0x19b/0x420 [ib_srp] [] srp_create_target+0x7d7/0xa94 [ib_srp] [] dev_attr_store+0x20/0x30 [] sysfs_write_file+0xef/0x170 [] vfs_write+0xb4/0x130 [] sys_write+0x5f/0xa0 [] system_call_fastpath+0x16/0x1b Signed-off-by: Bart Van Assche Cc: Sagi Grimberg Cc: Sebastian Parschauer Cc: Christoph Hellwig Cc: stable@vger.kernel.org Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e6300cbd9b09e7bf12f5f7b79e77b58d62b9d990 Author: Bart Van Assche Date: Fri Jul 31 14:12:48 2015 -0700 IB/srp: Constify a function argument This patch does not change any functionality. Signed-off-by: Bart Van Assche Cc: Sagi Grimberg Cc: Sebastian Parschauer Cc: Christoph Hellwig Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 799cdaf8a98f13d4fba3162e21e1e63f21045010 Author: Ariel Nahum Date: Sun Aug 9 11:16:27 2015 +0300 IB/mlx4: Fix incorrect cq flushing in error state When handling a device internal error, the driver is responsible to drain the completion queue with flush errors. In case a completion queue was assigned to multiple send queues, the driver iterates over the send queues and generates flush errors of inflight wqes. The driver must correctly pass the wc array with an offset as a result of the previous send queue iteration. Not doing so will overwrite previously set completions and return a wrong number of polled completions which includes ones which were not correctly set. Fixes: 35f05dabf95a (IB/mlx4: Reset flow support for IB kernel ULPs) Signed-off-by: Ariel Nahum Signed-off-by: Sagi Grimberg Cc: Yishai Hadas Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/cq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e99b139f1b68acd65e36515ca347b03856dfb5a Author: Noa Osherovich Date: Thu Jul 30 17:34:24 2015 +0300 IB/mlx4: Use correct SL on AH query under RoCE The mlx4 IB driver implementation for ib_query_ah used a wrong offset (28 instead of 29) when link type is Ethernet. Fixed to use the correct one. Fixes: fa417f7b520e ('IB/mlx4: Add support for IBoE') Signed-off-by: Shani Michaeli Signed-off-by: Noa Osherovich Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/ah.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2b135db3e81301d0452e6aa107349abe67b097d6 Author: Jack Morgenstein Date: Thu Jul 30 17:34:23 2015 +0300 IB/mlx4: Forbid using sysfs to change RoCE pkeys The pkey mapping for RoCE must remain the default mapping: VFs: virtual index 0 = mapped to real index 0 (0xFFFF) All others indices: mapped to a real pkey index containing an invalid pkey. PF: virtual index i = real index i. Don't allow users to change these mappings using files found in sysfs. Fixes: c1e7e466120b ('IB/mlx4: Add iov directory in sysfs under the ib device') Signed-off-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/sysfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2cb8e7f86e8cabd1e8aa608fc2a44e5bfa1d81ca Author: Jack Morgenstein Date: Thu Jul 30 17:34:22 2015 +0300 IB/mlx4: Demote mcg message from warning to debug The mcg "too many pending requests" warning message fills the log when OpenSM is downed. Demote the message from warning level to debug level. Signed-off-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mcg.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 90c1d8b6350cca9d8a234f03c77a317a7613bcee Author: Jack Morgenstein Date: Thu Jul 30 17:34:21 2015 +0300 IB/mlx4: Fix potential deadlock when sending mad to wire send_mad_to_wire takes the same spinlock that is taken in the interrupt context. Therefore, it needs irqsave/restore. Fixes: b9c5d6a64358 ('IB/mlx4: Add multicast group (MCG) paravirtualization for SR-IOV') Signed-off-by: Jack Morgenstein Signed-off-by: Or Gerlitz Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/mcg.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit b8071ad893841aba967b7c54e712179864cdf5c3 Author: Doug Ledford Date: Sat Aug 15 10:16:14 2015 -0400 IB/core: Remove needless bracketization Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit cc36929e736a30a291ab543b633046eb57d67e68 Author: Somnath Kotur Date: Thu Jul 30 18:33:31 2015 +0300 RDMA/ocrdma: Incorporate the moving of GID Table mgmt to IB/Core 1.Change query_gid hook to return value from IB/Core GID management APIs. 2.Get rid of all the netdev notifier chain subscription code as well as maintenance of SGID Table in memory. 3.Implement get_netdev hook in driver. Signed-off-by: Somnath Kotur Signed-off-by: Devesh Sharma Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma.h | 1 - drivers/infiniband/hw/ocrdma/ocrdma_main.c | 234 +--------------------------- drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 2 + drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 45 +++++- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 11 ++ 5 files changed, 60 insertions(+), 233 deletions(-) commit 5070cd2239bd4b382c55c212f10b845ec2de31fc Author: Moni Shoua Date: Thu Jul 30 18:33:30 2015 +0300 IB/mlx4: Replace mechanism for RoCE GID management Manage RoCE gid table with logic in IB/core, which is common to all vendors, and remove the mechanism from the mlx4 IB driver. Since management of the GID cache may lead to index mismatch with the hardware GID table, a translation between indexes is required when modifying a QP or creating an address handle. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/ah.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 513 ++--------------------------------- drivers/infiniband/hw/mlx4/mlx4_ib.h | 4 - drivers/infiniband/hw/mlx4/qp.c | 10 +- 4 files changed, 35 insertions(+), 494 deletions(-) commit e26be1bfef81a2314a075f54dd8930cf5e8656df Author: Moni Shoua Date: Thu Jul 30 18:33:29 2015 +0300 IB/mlx4: Implement ib_device callbacks get_netdev: get the net_device on the physical port of the IB transport port. In port aggregation mode it is required to return the netdev of the active port. modify_gid: note for a change in the RoCE gid cache. Handle this by writing to the harsware GID table. It is possible that indexes in cahce and hardware tables won't match so a translation is required when modifying a QP or creating an address handle. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 3 +- drivers/infiniband/hw/mlx4/main.c | 236 ++++++++++++++++++++++++++++++++++- drivers/infiniband/hw/mlx4/mlx4_ib.h | 17 +++ include/linux/mlx4/device.h | 3 +- include/rdma/ib_verbs.h | 2 + 5 files changed, 257 insertions(+), 4 deletions(-) commit 79857cd31fe70145ff007d4e968557af342c8ccd Author: Moni Shoua Date: Thu Jul 30 18:33:28 2015 +0300 net/mlx4: Postpone the registration of net_device The mlx4 network driver was registered in the context of the 'add' function of the core driver (called when HW should be registered). This makes the netdev event NETDEV_REGISTER to be sent in a context where the answer to get_protocol_dev() callback returns NULL. This may be confusing to listeners of netdev events. This patch is a preparation to the patch that implements the get_netdev() callback in the IB/mlx4 driver. Signed-off-by: Moni Shoua Signed-off-by: Doug Ledford drivers/net/ethernet/mellanox/mlx4/en_main.c | 36 ++++++++++++++++------------ drivers/net/ethernet/mellanox/mlx4/intf.c | 3 +++ include/linux/mlx4/driver.h | 1 + 3 files changed, 25 insertions(+), 15 deletions(-) commit 238fdf48f2b54a01cedb5774c3a1e81c94e1a3a0 Author: Matan Barak Date: Thu Jul 30 18:33:27 2015 +0300 IB/core: Add RoCE table bonding support Handling bonding and other devices require us to all all GIDs of the net-devices which are upper-devices of the RoCE port related net-device. Active-backup configurations imposes even more challenges as the default GID should only be set on the active devices (this is necessary as otherwise the same MAC could be used for several slaves and thus several slaves will have identical GIDs). Managing these configurations are done by listening to: (a) NETDEV_CHANGEUPPER event (1) if a related net-device is linked, delete all inactive slaves default GIDs and add the upper device GIDs. (2) if a related net-device is unlinked, delete all upper GIDs and add the default GIDs. (b) NETDEV_BONDING_FAILOVER: (1) delete the bond GIDs from inactive slaves (2) delete the inactive slave's default GIDs (3) Add the bond GIDs to the active slave. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/roce_gid_mgmt.c | 305 +++++++++++++++++++++++++++++--- 1 file changed, 285 insertions(+), 20 deletions(-) commit 98d25afa970d134024d8652360569e3bd74782b3 Author: Dan Carpenter Date: Tue Aug 18 12:22:10 2015 +0300 IB/core: missing curly braces in ib_find_gid() Smatch says that, based on the indenting, we should probably add curly braces here. Fixes: 03db3a2d81e6 ('IB/core: Add RoCE GID table management') Signed-off-by: Dan Carpenter Reviewed-by: Ira Weiny Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 03db3a2d81e6e84f3ed3cb9e087cae17d762642b Author: Matan Barak Date: Thu Jul 30 18:33:26 2015 +0300 IB/core: Add RoCE GID table management RoCE GIDs are based on IP addresses configured on Ethernet net-devices which relate to the RDMA (RoCE) device port. Currently, each of the low-level drivers that support RoCE (ocrdma, mlx4) manages its own RoCE port GID table. As there's nothing which is essentially vendor specific, we generalize that, and enhance the RDMA core GID cache to do this job. In order to populate the GID table, we listen for events: (a) netdev up/down/change_addr events - if a netdev is built onto our RoCE device, we need to add/delete its IPs. This involves adding all GIDs related to this ndev, add default GIDs, etc. (b) inet events - add new GIDs (according to the IP addresses) to the table. For programming the port RoCE GID table, providers must implement the add_gid and del_gid callbacks. RoCE GID management requires us to state the associated net_device alongside the GID. This information is necessary in order to manage the GID table. For example, when a net_device is removed, its associated GIDs need to be removed as well. RoCE mandates generating a default GID for each port, based on the related net-device's IPv6 link local. In contrast to the GID based on the regular IPv6 link-local (as we generate GID per IP address), the default GID is also available when the net device is down (in order to support loopback). Locking is done as follows: The patch modify the GID table code both for new RoCE drivers implementing the add_gid/del_gid callbacks and for current RoCE and IB drivers that do not. The flows for updating the table are different, so the locking requirements are too. While updating RoCE GID table, protection against multiple writers is achieved via mutex_lock(&table->lock). Since writing to a table requires us to find an entry (possible a free entry) in the table and then modify it, this mutex protects both the find_gid and write_gid ensuring the atomicity of the action. Each entry in the GID cache is protected by rwlock. In RoCE, writing (usually results from netdev notifier) involves invoking the vendor's add_gid and del_gid callbacks, which could sleep. Therefore, an invalid flag is added for each entry. Updates for RoCE are done via a workqueue, thus sleeping is permitted. In IB, updates are done in write_lock_irq(&device->cache.lock), thus write_gid isn't allowed to sleep and add_gid/del_gid are not called. When passing net-device into/out-of the GID cache, the device is always passed held (dev_hold). The code uses a single work item for updating all RDMA devices, following a netdev or inet notifier. The patch moves the cache from being a client (which was incorrect, as the cache is part of the IB infrastructure) to being explicitly initialized/freed when a device is registered/removed. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/infiniband/core/Makefile | 3 +- drivers/infiniband/core/cache.c | 765 ++++++++++++++++++++++++++++---- drivers/infiniband/core/core_priv.h | 51 ++- drivers/infiniband/core/device.c | 96 +++- drivers/infiniband/core/roce_gid_mgmt.c | 465 +++++++++++++++++++ include/rdma/ib_verbs.h | 66 ++- 6 files changed, 1338 insertions(+), 108 deletions(-) commit 55aeed06544f675f25aef06a8c47b0b6b8850f4f Author: Jason Gunthorpe Date: Tue Aug 4 15:23:34 2015 -0600 IB/core: Make ib_alloc_device init the kobject This gets rid of the weird in-between state where struct ib_device was allocated but the kobject didn't work. Consequently ib_device_release is now guaranteed to be called in all situations and we needn't duplicate its kfrees on error paths. Signed-off-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 9 ++-- drivers/infiniband/core/core_priv.h | 3 -- drivers/infiniband/core/device.c | 92 ++++++++++++++++++++++++------------- drivers/infiniband/core/sysfs.c | 51 ++------------------ 4 files changed, 68 insertions(+), 87 deletions(-) commit e999869548b9ab97b7dffa053ba2fee81c31d069 Author: Matan Barak Date: Thu Jul 30 18:33:24 2015 +0300 net/bonding: Export bond_option_active_slave_get_rcu Some consumers of the netdev events API would like to know who is the active slave when a NETDEV_CHANGEUPPER or NETDEV_BONDING_FAILOVER events occur. For example, when managing RoCE GIDs, GIDs based on the bond's ips should only be set on the port which corresponds to active slave netdevice. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford drivers/net/bonding/bond_options.c | 13 ------------- include/net/bonding.h | 7 +++++++ 2 files changed, 7 insertions(+), 13 deletions(-) commit 816dd19b3d191da88bc034fb85e21ed09a3ed320 Author: Matan Barak Date: Thu Jul 30 18:33:23 2015 +0300 net: Add info for NETDEV_CHANGEUPPER event Some consumers of NETDEV_CHANGEUPPER event would like to know which upper device was linked/unlinked and what operation was carried. Add information in the notifier info block for that purpose. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford include/linux/netdevice.h | 14 ++++++++++++++ net/core/dev.c | 12 ++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) commit 399e6f95811bd36fb64b3d30cf8529d633884b4c Author: Matan Barak Date: Thu Jul 30 18:33:22 2015 +0300 net/ipv6: Export addrconf_ifid_eui48 For loopback purposes, RoCE devices should have a default GID in the port GID table, even when the interface is down. In order to do so, we use the IPv6 link local address which would have been genenrated for the related Ethernet netdevice when it goes up as a default GID. addrconf_ifid_eui48 is used to gernerate this address, export it. Signed-off-by: Matan Barak Signed-off-by: Doug Ledford include/net/addrconf.h | 31 +++++++++++++++++++++++++++++++ net/ipv6/addrconf.c | 31 ------------------------------- 2 files changed, 31 insertions(+), 31 deletions(-) commit d9f272c523db47a56a64942eb6f25361c400de66 Author: Sagi Grimberg Date: Thu Jul 30 10:32:48 2015 +0300 IB/core: Drop ib_alloc_fast_reg_mr Fully replaced by a more generic and suitable ib_alloc_mr. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/verbs.c | 32 +++----------------------------- include/rdma/ib_verbs.h | 11 ----------- 2 files changed, 3 insertions(+), 40 deletions(-) commit d9fe6dd7afaff529124dd7f49c2da89ef789a56f Author: Mike Marciniszyn Date: Fri Aug 7 10:51:25 2015 -0400 IB/hfi1: Support ib_alloc_mr verb Ported from upstream qib commit 68c02e232b8a ("qib: Support ib_alloc_mr verb") Tested-by: Jubin John Reviewed-by: Jubin John Signed-off-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/mr.c | 9 +++++++-- drivers/staging/rdma/hfi1/verbs.c | 1 + drivers/staging/rdma/hfi1/verbs.h | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) commit 1302f8452bfbede92c5e984afd64d91eb5459ee7 Author: Sagi Grimberg Date: Thu Jul 30 10:32:47 2015 +0300 qib: Support ib_alloc_mr verb Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_mr.c | 9 +++++++-- drivers/infiniband/hw/qib/qib_verbs.c | 2 +- drivers/infiniband/hw/qib/qib_verbs.h | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) commit e02e4d554d2b0c20b1f191c5d98bbf5da500a285 Author: Sagi Grimberg Date: Thu Jul 30 10:32:46 2015 +0300 nes: Support ib_alloc_mr verb Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/nes/nes_verbs.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit f683d3bdbb37baa49510e32789164e5d33d76ba1 Author: Sagi Grimberg Date: Thu Jul 30 10:32:45 2015 +0300 cxgb3: Support ib_alloc_mr verb Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb3/iwch_provider.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit a21640347a01ba2f96dfc887b8e33cce462780fd Author: Sagi Grimberg Date: Thu Jul 30 10:32:44 2015 +0300 iw_cxgb4: Support ib_alloc_mr verb Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 4 +++- drivers/infiniband/hw/cxgb4/mem.c | 12 +++++++++--- drivers/infiniband/hw/cxgb4/provider.c | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) commit cacb7d59bed3fd9f65d6ba1a4ea948ce8baa9126 Author: Sagi Grimberg Date: Thu Jul 30 10:32:43 2015 +0300 ocrdma: Support ib_alloc_mr verb Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 11 ++++++++--- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 4 +++- 3 files changed, 12 insertions(+), 5 deletions(-) commit 679e34d1d050fc67f2ab157ebf8553dddc216c55 Author: Sagi Grimberg Date: Thu Jul 30 10:32:42 2015 +0300 mlx4: Support ib_alloc_mr verb Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 2 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 5 +++-- drivers/infiniband/hw/mlx4/mr.c | 11 ++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) commit b3778ba8ded0aafbd820b68be0686ff0c6026eff Author: Sagi Grimberg Date: Thu Jul 30 10:32:41 2015 +0300 mlx5: Drop mlx5_ib_alloc_fast_reg_mr Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 1 - drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 -- drivers/infiniband/hw/mlx5/mr.c | 44 ------------------------------------ 3 files changed, 47 deletions(-) commit fc27995942960c894bc4725435dce8750e44cd64 Author: Sagi Grimberg Date: Thu Jul 30 10:32:40 2015 +0300 RDS: Convert to ib_alloc_mr Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford net/rds/iw_rdma.c | 5 +++-- net/rds/iw_send.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 9ac07501e1918b8d1140adcc360e8d8c7f5a2f7c Author: Steve Wise Date: Fri Aug 7 11:11:20 2015 -0500 svcrdma: limit FRMR page list lengths to device max Svcrdma was incorrectly allocating fastreg MRs and page lists using RPCSVC_MAXPAGES, which can exceed the device capabilities. So limit the depth to the minimum of RPCSVC_MAXPAGES and xprt->sc_frmr_pg_list_len. Signed-off-by: Steve Wise Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/svc_rdma_transport.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 0410e38eca85e042f5d5a281dbcc792db701ed44 Author: Sagi Grimberg Date: Thu Jul 30 10:32:39 2015 +0300 xprtrdma, svcrdma: Convert to ib_alloc_mr Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford net/sunrpc/xprtrdma/frwr_ops.c | 6 +++--- net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 563b67c5f90abeae1038008e6c9c187fb36ad35c Author: Sagi Grimberg Date: Thu Jul 30 10:32:38 2015 +0300 IB/srp: Convert to ib_alloc_mr Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/srp/ib_srp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a89be2cc51f6602e803f2f9a9c8c4f59a0bd58b3 Author: Sagi Grimberg Date: Thu Jul 30 10:32:37 2015 +0300 iser-target: Convert to ib_alloc_mr Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/isert/ib_isert.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 34780f012ceeb41ec6d44b3877396042e750862c Author: Sagi Grimberg Date: Thu Jul 30 10:32:36 2015 +0300 IB/iser: Convert to ib_alloc_mr Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iser_verbs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9bee178b4f6b3e122ed8eda990450a638706e271 Author: Sagi Grimberg Date: Thu Jul 30 10:32:35 2015 +0300 IB: Modify ib_create_mr API Use ib_alloc_mr with specific parameters. Change the existing callers. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/verbs.c | 31 ++++++++++++++++++++------ drivers/infiniband/hw/mlx5/main.c | 2 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 5 +++-- drivers/infiniband/hw/mlx5/mr.c | 17 ++++++++++----- drivers/infiniband/ulp/iser/iser_verbs.c | 6 ++---- drivers/infiniband/ulp/isert/ib_isert.c | 6 +----- include/rdma/ib_verbs.h | 37 +++++++++++++------------------- 7 files changed, 58 insertions(+), 46 deletions(-) commit 8b91ffc1cf67d3f0834197c80c5182890c8d508d Author: Sagi Grimberg Date: Thu Jul 30 10:32:34 2015 +0300 IB/core: Get rid of redundant verb ib_destroy_mr This was added in a thought of uniting all mr allocation and deallocation routines but the fact is we have a single deallocation routine already, ib_dereg_mr. And, move mlx5_ib_destroy_mr specific logic into mlx5_ib_dereg_mr (includes only signature stuff for now). And, fixup the only callers (iser/isert) accordingly. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/core/verbs.c | 17 ------------- drivers/infiniband/hw/mlx5/main.c | 1 - drivers/infiniband/hw/mlx5/mlx5_ib.h | 1 - drivers/infiniband/hw/mlx5/mr.c | 43 ++++++++++---------------------- drivers/infiniband/ulp/iser/iser_verbs.c | 2 +- drivers/infiniband/ulp/isert/ib_isert.c | 2 +- include/rdma/ib_verbs.h | 10 -------- 7 files changed, 15 insertions(+), 61 deletions(-) commit be688195bd08b1c045f89d72c07c7e3ef6516f38 Author: Haggai Eran Date: Thu Aug 27 15:55:15 2015 +0300 IB/cma: Fix net_dev reference leak with failed requests When no matching listening ID is found for a given request, the net_dev that was used to find the request isn't released. Fixes: 0b3ca768fcb0 ("IB/cma: Use found net_dev for passive connections") Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 4 ++++ 1 file changed, 4 insertions(+) commit 90816d1ddacfb5a8b783f67e2c1a1bc77dc50ff4 Author: Trond Myklebust Date: Sun Aug 30 09:53:06 2015 -0700 NFSv4.1/flexfiles: Don't mark the entire deviceid as bad for file errors If the file was fenced and/or has been deleted on the DS, then we want to retry pNFS after a layoutreturn with error report. If the server cannot fix the problem, then we rely on it to tell us so in the response to the LAYOUTGET. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 1ab36387ea4face01aac3560b396b1e2ce07c4ff Author: David Dueck Date: Tue Jul 28 09:48:16 2015 +0200 pinctrl: at91: fix null pointer dereference Not all gpio banks are necessarily enabled, in the current code this can lead to null pointer dereferences. [ 51.130000] Unable to handle kernel NULL pointer dereference at virtual address 00000058 [ 51.130000] pgd = dee04000 [ 51.130000] [00000058] *pgd=3f66d831, *pte=00000000, *ppte=00000000 [ 51.140000] Internal error: Oops: 17 [#1] ARM [ 51.140000] Modules linked in: [ 51.140000] CPU: 0 PID: 1664 Comm: cat Not tainted 4.1.1+ #6 [ 51.140000] Hardware name: Atmel SAMA5 [ 51.140000] task: df6dd880 ti: dec60000 task.ti: dec60000 [ 51.140000] PC is at at91_pinconf_get+0xb4/0x200 [ 51.140000] LR is at at91_pinconf_get+0xb4/0x200 [ 51.140000] pc : [] lr : [] psr: 600f0013 sp : dec61e48 ip : 600f0013 fp : df522538 [ 51.140000] r10: df52250c r9 : 00000058 r8 : 00000068 [ 51.140000] r7 : 00000000 r6 : df53c910 r5 : 00000000 r4 : dec61e7c [ 51.140000] r3 : 00000000 r2 : c06746d4 r1 : 00000000 r0 : 00000003 [ 51.140000] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 51.140000] Control: 10c53c7d Table: 3ee04059 DAC: 00000015 [ 51.140000] Process cat (pid: 1664, stack limit = 0xdec60208) [ 51.140000] Stack: (0xdec61e48 to 0xdec62000) [ 51.140000] 1e40: 00000358 00000000 df522500 ded15f80 c05a9d08 ded15f80 [ 51.140000] 1e60: 0000048c 00000061 df522500 ded15f80 c05a9d08 c01e7304 ded15f80 00000000 [ 51.140000] 1e80: c01e6008 00000060 0000048c c01e6034 c01e5f6c ded15f80 dec61ec0 00000000 [ 51.140000] 1ea0: 00020000 ded6f280 dec61f80 00000001 00000001 c00ae0b8 b6e80000 ded15fb0 [ 51.140000] 1ec0: 00000000 00000000 df4bc974 00000055 00000800 ded6f280 b6e80000 ded6f280 [ 51.140000] 1ee0: ded6f280 00020000 b6e80000 00000000 00020000 c0090dec c0671e1c dec61fb0 [ 51.140000] 1f00: b6f8b510 00000001 00004201 c000924c 00000000 00000003 00000003 00000000 [ 51.140000] 1f20: df4bc940 00022000 00000022 c066e188 b6e7f000 c00836f4 000b6e7f ded6f280 [ 51.140000] 1f40: ded6f280 b6e80000 dec61f80 ded6f280 00020000 c0091508 00000000 00000003 [ 51.140000] 1f60: 00022000 00000000 00000000 ded6f280 ded6f280 00020000 b6e80000 c0091d9c [ 51.140000] 1f80: 00000000 00000000 ffffffff 00020000 00020000 b6e80000 00000003 c000f124 [ 51.140000] 1fa0: dec60000 c000efa0 00020000 00020000 00000003 b6e80000 00020000 000271c4 [ 51.140000] 1fc0: 00020000 00020000 b6e80000 00000003 7fffe000 00000000 00000000 00020000 [ 51.140000] 1fe0: 00000000 bef50b64 00013835 b6f29c76 400f0030 00000003 00000000 00000000 [ 51.140000] [] (at91_pinconf_get) from [] (at91_pinconf_dbg_show+0x18/0x2c0) [ 51.140000] [] (at91_pinconf_dbg_show) from [] (pinconf_pins_show+0xc8/0xf8) [ 51.140000] [] (pinconf_pins_show) from [] (seq_read+0x1a0/0x464) [ 51.140000] [] (seq_read) from [] (__vfs_read+0x20/0xd0) [ 51.140000] [] (__vfs_read) from [] (vfs_read+0x7c/0x108) [ 51.140000] [] (vfs_read) from [] (SyS_read+0x40/0x94) [ 51.140000] [] (SyS_read) from [] (ret_fast_syscall+0x0/0x3c) [ 51.140000] Code: eb010ec2 e30a0d08 e34c005a eb0ae5a7 (e5993000) [ 51.150000] ---[ end trace fb3c370da3ea4794 ]--- Fixes: a0b957f306fa ("pinctrl: at91: allow to have disabled gpio bank") Cc: stable@vger.kernel.org # 3.18 Signed-off-by: David Dueck Acked-by: Ludovic Desroches Acked-by: Alexandre Belloni Acked-by: Nicolas Ferre Cc: Boris Brezillon Cc: Jean-Christophe PLAGNIOL-VILLARD Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 73fec7fd04a2ad6c879c93881cba9a40d551b3fd Author: Haggai Eran Date: Thu Jul 30 17:50:26 2015 +0300 IB/cm: Remove compare_data checks Now that there are no ib_cm clients using the compare_data feature for matching IB CM requests' private data, remove the compare_data parameter of ib_cm_listen and remove the code implementing the feature. Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 109 ++++++-------------------------- drivers/infiniband/core/ucm.c | 3 +- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 2 +- include/rdma/ib_cm.h | 14 +--- 5 files changed, 23 insertions(+), 107 deletions(-) commit 51efe394bcab3a0c511634f7ae58bb88b1686983 Author: Haggai Eran Date: Thu Jul 30 17:50:25 2015 +0300 IB/cma: Share ib_cm_ids between rdma_cm_ids Use ib_cm_insert_listen to create listening IB CM IDs or share existing ones if needed. When given a request on a specific CM ID, the code now matches the request to the RDMA CM ID based on the request parameters, so it no longer needs to rely on the ib_cm's private data matching capabilities. Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 59 +++---------------------------------------- 1 file changed, 4 insertions(+), 55 deletions(-) commit 0b3ca768fcb07338c99df5e3ccec99119435e321 Author: Haggai Eran Date: Thu Jul 30 17:50:24 2015 +0300 IB/cma: Use found net_dev for passive connections When receiving a new connection in cma_req_handler, we actually already know the net_dev that is used for the connection's creation. Instead of calling cma_translate_addr to resolve the new connection id's source address, just use the net_dev that was found. Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 76 ++++++++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 27 deletions(-) commit f887f2ac87c25124a90adf97d76b258eba6295cb Author: Haggai Eran Date: Thu Jul 30 17:50:23 2015 +0300 IB/cma: Validate routing of incoming requests Pass incoming request parameters through the relevant IPv4/IPv6 routing tables and make sure the network stack is configured to handle such requests. Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 95 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 92 insertions(+), 3 deletions(-) commit 4c21b5bcef73e6649429c1d9b39f5065e756d857 Author: Haggai Eran Date: Thu Jul 30 17:50:22 2015 +0300 IB/cma: Add net_dev and private data checks to RDMA CM Instead of relying on a the ib_cm module to check an incoming CM request's private data header, add these checks to the RDMA CM module. This allows a following patch to to clean up the ib_cm interface and remove the code that looks into the private headers. It will also allow supporting namespaces in RDMA CM by making these checks namespace aware later on. Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 188 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 185 insertions(+), 3 deletions(-) commit 24cad9a7e8bfd4cf1ace7ac2a2b3f696a0e70420 Author: Haggai Eran Date: Thu Jul 30 17:50:21 2015 +0300 IB/cm: Expose BTH P_Key in CM and SIDR request events The rdma_cm module will later use the P_Key from the BTH to de-mux requests. See discussion at: http://www.spinics.net/lists/netdev/msg336067.html Cc: Jason Gunthorpe Cc: Liran Liss Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 20 ++++++++++++++++++++ include/rdma/ib_cm.h | 6 ++++++ 2 files changed, 26 insertions(+) commit aac978e15230fccb7a3e9190eb58732925019300 Author: Haggai Eran Date: Thu Jul 30 17:50:20 2015 +0300 IB/cma: Helper functions to access port space IDRs Add helper functions to access the IDRs by port-space and port number. Pass around the port-space enum in cma.c instead of using pointers to port-space IDRs. Signed-off-by: Haggai Eran Signed-off-by: Yotam Kenneth Signed-off-by: Shachar Raindel Signed-off-by: Guy Shapiro Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 81 ++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 21 deletions(-) commit 0c505f70a28d943e15a6702ca75bea4f332a03ed Author: Haggai Eran Date: Thu Jul 30 17:50:19 2015 +0300 IB/cma: Refactor RDMA IP CM private-data parsing code When receiving a connection request, rdma_cm needs to associate the request with a network device, in order to disambiguate requests. To do this, it needs to know the request's destination IP. For this the module needs to allow getting this information from the private data in the request packet, instead of relying on the information already being in the listening RDMA CM ID. When creating a new incoming connection ID, the code in cma_save_ip{4,6}_info can no longer rely on the listener's private data to find the port number, so it reads it from the requested service ID. Signed-off-by: Guy Shapiro Signed-off-by: Haggai Eran Signed-off-by: Yotam Kenneth Signed-off-by: Shachar Raindel Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 170 ++++++++++++++++++++++++++---------------- 1 file changed, 105 insertions(+), 65 deletions(-) commit 067b171b8679f99e170feae2e1d2eae319736420 Author: Haggai Eran Date: Thu Jul 30 17:50:18 2015 +0300 IB/cm: Share listening CM IDs Enabling network namespaces for RDMA CM will allow processes on different namespaces to listen on the same port. In order to leave namespace support out of the CM layer, this requires that multiple RDMA CM IDs will be able to share a single CM ID. This patch adds infrastructure to retrieve an existing listening ib_cm_id, based on its device and service ID, or create a new one if one does not already exist. It also adds a reference count for such instances (cm_id_private.listen_sharecount), and prevents cm_destroy_id from destroying a CM if it is still shared. See the relevant discussion [1]. [1] Re: [PATCH v3 for-next 05/13] IB/cm: Reference count ib_cm_ids http://www.spinics.net/lists/netdev/msg328860.html Reviewed-by: Jason Gunthorpe Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 122 ++++++++++++++++++++++++++++++++++++++++--- include/rdma/ib_cm.h | 4 ++ 2 files changed, 120 insertions(+), 6 deletions(-) commit 15865e7dab62a58407f1b7decdafd89dd0a8b063 Author: Haggai Eran Date: Thu Jul 30 17:50:17 2015 +0300 IB/cm: Expose service ID in request events Expose the service ID on an incoming CM or SIDR request to the event handler. This will allow the RDMA CM module to de-multiplex connection requests based on the information encoded in the service ID. Acked-by: Sean Hefty Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cm.c | 3 +++ include/rdma/ib_cm.h | 1 + 2 files changed, 4 insertions(+) commit ddde896e561a51ae5023e531d66dc6a140a95ec3 Author: Guy Shapiro Date: Thu Jul 30 17:50:16 2015 +0300 IB/ipoib: Return IPoIB devices matching connection parameters Implement the get_net_device_by_port_pkey_ip callback that returns network device to ib_core according to connection parameters. Check the ipoib device and iterate over all child devices to look for a match. For each IPoIB device we iterate through all upper devices when searching for a matching IP, in order to support bonding. Signed-off-by: Guy Shapiro Signed-off-by: Haggai Eran Signed-off-by: Yotam Kenneth Signed-off-by: Shachar Raindel Signed-off-by: Doug Ledford drivers/infiniband/ulp/ipoib/ipoib_main.c | 229 +++++++++++++++++++++++++++++- 1 file changed, 228 insertions(+), 1 deletion(-) commit 9268f72dcb24348c8b4cf9bcf8afeb24035157a5 Author: Yotam Kenneth Date: Thu Jul 30 17:50:15 2015 +0300 IB/core: Find the network device matching connection parameters In the case of IPoIB, and maybe in other cases, the network device is managed by an upper-layer protocol (ULP). In order to expose this network device to other users of the IB device, let ULPs implement a callback that returns network device according to connection parameters. The IB device and port, together with the P_Key and the GID should be enough to uniquely identify the ULP net device. However, in current kernels there can be multiple IPoIB interfaces created with the same GID. Furthermore, such configuration may be desireable to support ipvlan-like configurations for RDMA CM with IPoIB. To resolve the device in these cases the code will also take the IP address as an additional input. Reviewed-by: Jason Gunthorpe Signed-off-by: Haggai Eran Signed-off-by: Yotam Kenneth Signed-off-by: Shachar Raindel Signed-off-by: Guy Shapiro Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 46 ++++++++++++++++++++++++++++++++++++++++ include/rdma/ib_verbs.h | 27 +++++++++++++++++++++++ 2 files changed, 73 insertions(+) commit 7c1eb45a22d76bb99236e7485958f87ef7c449cf Author: Haggai Eran Date: Thu Jul 30 17:50:14 2015 +0300 IB/core: lock client data with lists_rwsem An ib_client callback that is called with the lists_rwsem locked only for read is protected from changes to the IB client lists, but not from ib_unregister_device() freeing its client data. This is because ib_unregister_device() will remove the device from the device list with lists_rwsem locked for write, but perform the rest of the cleanup, including the call to remove() without that lock. Mark client data that is undergoing de-registration with a new going_down flag in the client data context. Lock the client data list with lists_rwsem for write in addition to using the spinlock, so that functions calling the callback would be able to lock only lists_rwsem for read and let callbacks sleep. Since ib_unregister_client() now marks the client data context, no need for remove() to search the context again, so pass the client data directly to remove() callbacks. Reviewed-by: Jason Gunthorpe Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/cache.c | 2 +- drivers/infiniband/core/cm.c | 7 ++-- drivers/infiniband/core/cma.c | 7 ++-- drivers/infiniband/core/device.c | 53 +++++++++++++++++++++++++------ drivers/infiniband/core/mad.c | 2 +- drivers/infiniband/core/multicast.c | 7 ++-- drivers/infiniband/core/sa_query.c | 6 ++-- drivers/infiniband/core/ucm.c | 6 ++-- drivers/infiniband/core/user_mad.c | 6 ++-- drivers/infiniband/core/uverbs_main.c | 6 ++-- drivers/infiniband/ulp/ipoib/ipoib_main.c | 7 ++-- drivers/infiniband/ulp/srp/ib_srp.c | 6 ++-- drivers/infiniband/ulp/srpt/ib_srpt.c | 5 ++- include/rdma/ib_verbs.h | 4 ++- net/rds/ib.c | 5 ++- net/rds/iw.c | 5 ++- 16 files changed, 82 insertions(+), 52 deletions(-) commit 5aa44bb90f047662c12c44be1b6de454658632d0 Author: Haggai Eran Date: Thu Jul 30 17:50:13 2015 +0300 IB/core: Add rwsem to allow reading device list or client list Currently the RDMA subsystem's device list and client list are protected by a single mutex. This prevents adding user-facing APIs that iterate these lists, since using them may cause a deadlock. The patch attempts to solve this problem by adding a read-write semaphore to protect the lists. Readers now don't need the mutex, and are safe just by read-locking the semaphore. The ib_register_device, ib_register_client, ib_unregister_device, and ib_unregister_client functions are modified to lock the semaphore for write during their respective list modification. Also, in order to make sure client callbacks are called only between add() and remove() calls, the code is changed to only add items to the lists after the add() calls and remove from the lists before the remove() calls. This patch attempts to solve a similar need [1] that was seen in the RoCE v2 patch series. [1] http://www.spinics.net/lists/linux-rdma/msg24733.html Reviewed-by: Jason Gunthorpe Cc: Matan Barak Signed-off-by: Haggai Eran Signed-off-by: Doug Ledford drivers/infiniband/core/device.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) commit 50002d4c2176da6b2ed5a2529a2367c05f0fd73b Author: Inki Dae Date: Mon Aug 31 01:11:53 2015 +0900 drm/exynos: fix build warning to exynos_drm_gem.c Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fbbb1e1a7f170cb560224d9694f1afd851bcf47f Author: Marek Szyprowski Date: Mon Aug 31 00:53:57 2015 +0900 drm/exynos: Properly report supported formats for each device Exynos DRM reported that all planes for all supported sub-devices supports only three pixel formats: XRGB24, ARGB24 and NV12. This patch lets each Exynos DRM sub-drivers to provide the list of supported pixel formats and registers this list to DRM core. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 10 ++++++++- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 15 +++++++++++++- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 11 +++++++++- drivers/gpu/drm/exynos/exynos_drm_plane.c | 11 +++------- drivers/gpu/drm/exynos/exynos_drm_plane.h | 1 + drivers/gpu/drm/exynos/exynos_drm_vidi.c | 9 +++++++- drivers/gpu/drm/exynos/exynos_mixer.c | 30 +++++++++++++++++++++++++-- 7 files changed, 73 insertions(+), 14 deletions(-) commit 74f230d2a7e36c27fde38db20ebfb7ddb9c4a116 Author: Joonyoung Shim Date: Mon Aug 31 00:45:56 2015 +0900 drm/exynos: add render node support This patch allows clients who want to use render node to access rendering relevant ioctls - g2d, post processor and gem allocation. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 38 ++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit cc5a7b35799459ec1d0b0e538f4d810aef704217 Author: Hyungwon Hwang Date: Thu Aug 27 18:21:14 2015 +0900 drm/exynos: implement atomic_{begin/flush} of DECON Each CRTC's atomic_{begin/flush} must stop/start the update of shadow registers to active register in the functions. This patch achieves these purpose by moving the setting of protection bits to those functions from decon_update_plane. v2: rebased to the branch exynos-drm-next Signed-off-by: Hyungwon Hwang Reviewed-by: Daniel Stone Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 34 +++++++++++++++++++++------ drivers/gpu/drm/exynos/exynos7_drm_decon.c | 30 ++++++++++++++++++----- 2 files changed, 51 insertions(+), 13 deletions(-) commit e7fefb1d5af5d90baec5204d9096e8c4db8c93bd Author: Gustavo Padovan Date: Mon Aug 31 00:33:57 2015 +0900 drm/exynos: remove legacy ->suspend()/resume() These legacy helpers should only be used by shadow-attaching drivers. KMS drivers has its own way to handle suspend/resume and don't need to use these two helpers. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 2 -- 1 file changed, 2 deletions(-) commit c8c38ccff9308a706b5314ca1cf157713a40f6b5 Author: Gustavo Padovan Date: Mon Aug 24 20:52:19 2015 +0900 drm/exynos: Enable atomic modesetting feature From: Gustavo Padovan Now that atomic modesetting is implemented for exynos enable the DRIVER_ATOMIC flag on the driver's features. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7cf23eaf0d8e6f34f3bc89141efc96b2502b290c Author: Gustavo Padovan Date: Sat Aug 15 13:26:19 2015 -0300 drm/exynos: remove wait queue for pending page flip Exynos atomic commit procedures already does this job of waiting for pending updates to finish, that means using pending_flip_queue is pointless now because the disable CRTC procedure will never happen during a page_flip. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 11 +---------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 - 2 files changed, 1 insertion(+), 11 deletions(-) commit c4533665d819271dad890440b887776ac3d5f265 Author: Gustavo Padovan Date: Sat Aug 15 13:26:18 2015 -0300 drm/exynos: wait all planes updates to finish Add infrastructure to wait for all planes updates to finish by using an atomic_t variable to track how many pending updates we are waiting plus a wait_queue for the wait part. It also changes vblank behaviour and keeps it enabled for all types of updates Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 18 +++++++++---- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 1 + drivers/gpu/drm/exynos/exynos_drm_drv.c | 44 +++++++++++++++++++++++++++++++- drivers/gpu/drm/exynos/exynos_drm_drv.h | 4 +++ 4 files changed, 61 insertions(+), 6 deletions(-) commit a379df19356de97afdca37c4e8f5e8729215d6ea Author: Gustavo Padovan Date: Sat Aug 15 13:26:17 2015 -0300 drm/exynos: add atomic asynchronous commit The atomic modesetting interfaces supports async commits that should be implemented by the drivers. If drm core requests an async commit exynos_atomic_commit() will now schedule a work task to run the update later. It also serializes commits that needs to run on the same crtc, putting the following commit to wait until the current one is finished. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 113 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_drv.h | 11 ++++ drivers/gpu/drm/exynos/exynos_drm_fb.c | 35 ---------- 3 files changed, 124 insertions(+), 35 deletions(-) commit cb11b3f18957f90f8adeb95adf694f52581416b3 Author: Gustavo Padovan Date: Sat Aug 15 13:26:16 2015 -0300 drm/exynos: fimd: only finish update if START == START_S fimd_update_plane() programs BUF_START[win] and during the update BUF_START[win] is copied to BUF_START_S[win] (its shadow register) and starts scanning out, then it raises a irq. The fimd_irq_handler, in the case we have a pending_fb, will check the fb value was copied to START_S register and finish the update in case of success. Based on patch from Daniel Kurtz Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 44205083751cdcfdbd3f8607694ee1a5a9b161c7 Author: Gustavo Padovan Date: Sat Aug 15 13:26:15 2015 -0300 drm/exynos: add macro to get the address of START_S reg This macro is need to get the value of the START shadow register, that will tell if an framebuffer is currently displayed on the screen or not. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae include/video/samsung_fimd.h | 1 + 1 file changed, 1 insertion(+) commit 822f6dfd714c961e3c5648b1d4a5ac10f807d592 Author: Gustavo Padovan Date: Sat Aug 15 13:26:14 2015 -0300 drm/exynos: check for pending fb before finish update The current code was ignoring the end of update for all overlay planes, caring only for the primary plane update in case of pageflip. This change adds a change to start to check for pending updates for all planes through exynos_plane->pending_fb. At the start of plane update the pending_fb is set with the fb to be shown on the screen. Then only when to fb is already presented in the screen we set pending_fb to NULL to signal that the update was finished. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae fixup! drm/exynos: check for pending fb before finish update drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 10 +++++++++- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 10 +++++++++- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 7 ++++--- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 3 ++- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 + drivers/gpu/drm/exynos/exynos_drm_fimd.c | 10 +++++++++- drivers/gpu/drm/exynos/exynos_drm_plane.c | 2 ++ drivers/gpu/drm/exynos/exynos_drm_vidi.c | 10 +++++++++- drivers/gpu/drm/exynos/exynos_mixer.c | 10 +++++++++- 9 files changed, 54 insertions(+), 9 deletions(-) commit ce3ff36be91a85d87f138794dbbd704fb99320c2 Author: Gustavo Padovan Date: Sat Aug 15 13:26:13 2015 -0300 drm/exynos: fimd: move window protect code to prepare/cleanup_plane Only set/clear the update bit in the CRTC's .atomic_begin()/flush() so all planes are really committed at the same time. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 57 +++++++++++++++++++------------- 1 file changed, 34 insertions(+), 23 deletions(-) commit d9220d4733d1ea1ae375bd76dd2c961969a6795c Author: Gustavo Padovan Date: Mon Aug 24 20:36:59 2015 +0900 drm/exynos: add prepare and cleanup phases for planes From: Gustavo Padovan .prepare_plane() and .cleanup_plane() allows to perform extra operations before and after the update of planes. For FIMD for example this will be used to enable disable the shadow protection bit. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 19 +++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_drv.h | 6 ++++++ 2 files changed, 25 insertions(+) commit fc75f7107a8de47e135cf3b9fec62f99c184a2c8 Author: Gustavo Padovan Date: Sat Aug 15 13:26:11 2015 -0300 drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip() Unify handling of finished plane update to prepare for a following patch that will check for the START and START_S regs to really make sure that the plane was updated. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit bb0fa93523b8d7f89b6ee61ab8e9b926ff7a9779 Author: Gustavo Padovan Date: Sat Aug 15 13:26:10 2015 -0300 drm/exynos: don't track enabled state at exynos_crtc struct drm_crtc already stores the enabled state of the crtc thus we don't need to replicate enabled in exynos_drm_crtc. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 16 ---------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 - 2 files changed, 17 deletions(-) commit 91931320cfbbcc1dd874c2d0aef62e7d90f07f70 Merge: 02dc14d ca94085 d32e03f 534dcd7 Author: Mark Brown Date: Sun Aug 30 15:59:18 2015 +0100 Merge remote-tracking branches 'asoc/topic/wm8996', 'asoc/topic/xtensa' and 'asoc/topic/zx296702' into asoc-next commit 02dc14d66e2047ca2d1bc7ed8ebef7f3415cf476 Merge: 384ea79 84eac61 b970499 779ea47 3176bf2 85e7118 Author: Mark Brown Date: Sun Aug 30 15:58:56 2015 +0100 Merge remote-tracking branches 'asoc/topic/wm8741', 'asoc/topic/wm8753', 'asoc/topic/wm8904', 'asoc/topic/wm8960' and 'asoc/topic/wm8983' into asoc-next commit 384ea7936cc987ee771690f624593f6dd8ca15a2 Merge: c009d37 030e6ee efc04ca dc606e05 c8a6b92 f611cdd Author: Mark Brown Date: Sun Aug 30 15:58:36 2015 +0100 Merge remote-tracking branches 'asoc/topic/wm0010', 'asoc/topic/wm5100', 'asoc/topic/wm5110', 'asoc/topic/wm8004' and 'asoc/topic/wm8731' into asoc-next commit c009d370dd35eb29a8c14f6eb50a4da4276db3f1 Merge: 428157c 95e3c23 ef3355d 4313489 0a3dcb5 Author: Mark Brown Date: Sun Aug 30 15:58:18 2015 +0100 Merge remote-tracking branches 'asoc/topic/txx9', 'asoc/topic/uda134x', 'asoc/topic/ux500' and 'asoc/topic/width' into asoc-next commit 428157c1e8c9eaf0029430ae82ec0df8578de46b Merge: 0a5ff07 82cf77a 9425e9d f57ddcd 2e45a25 1a3232d Author: Mark Brown Date: Sun Aug 30 15:57:34 2015 +0100 Merge remote-tracking branches 'asoc/topic/tas2552', 'asoc/topic/tas5086', 'asoc/topic/tegra', 'asoc/topic/tlv' and 'asoc/topic/topology' into asoc-next commit 0a5ff077572d058d3023d243ba97a7e98d111f4c Merge: cfed47d 601e457 97a7471 e129091 601b9d9 Author: Mark Brown Date: Sun Aug 30 15:57:13 2015 +0100 Merge remote-tracking branches 'asoc/topic/ssm2518', 'asoc/topic/sta529', 'asoc/topic/sti' and 'asoc/topic/sti-sas' into asoc-next commit cfed47d7b5abd5ce9c010169cce9c2754394a02d Merge: a8f1d97 7d4d443 e8de871 e225797 8e2175d 2c3f4b9 Author: Mark Brown Date: Sun Aug 30 15:56:44 2015 +0100 Merge remote-tracking branches 'asoc/topic/rt5677', 'asoc/topic/sh', 'asoc/topic/simple', 'asoc/topic/sirf-codec' and 'asoc/topic/spear' into asoc-next commit a8f1d97bfa986f00835d2669a970e19f6dd9b9d8 Merge: 532161e 5efe58c 818454d 469444f 387ad57 Author: Mark Brown Date: Sun Aug 30 15:56:27 2015 +0100 Merge remote-tracking branches 'asoc/topic/rt298', 'asoc/topic/rt5640', 'asoc/topic/rt5651' and 'asoc/topic/rt5670' into asoc-next commit 532161e6ccbd1c5ac3a2ea9dc60c8e253cd22fa5 Merge: d781c23 1af2cc6 41a5fefe ac1125d 1c0beb2 a5afdc5 Author: Mark Brown Date: Sun Aug 30 15:55:54 2015 +0100 Merge remote-tracking branches 'asoc/topic/rcar', 'asoc/topic/reg-default', 'asoc/topic/rl6231', 'asoc/topic/rockchip' and 'asoc/topic/rt286' into asoc-next commit d781c23e9b46f33c1c6c07febae36f37a11f9d4d Merge: acb47ad 42d1b8c 637c4497 618718d Author: Mark Brown Date: Sun Aug 30 15:55:41 2015 +0100 Merge remote-tracking branches 'asoc/topic/pm-ops', 'asoc/topic/pxa' and 'asoc/topic/qcom' into asoc-next commit acb47ad5023fbd29a2c9a681c28b33968c9dcc9e Merge: 1d1ed2c 775b07d 0643558 d5f1117 5e3cdaa 7d40acc Author: Mark Brown Date: Sun Aug 30 15:55:21 2015 +0100 Merge remote-tracking branches 'asoc/topic/mediatek', 'asoc/topic/mtk', 'asoc/topic/nuc900', 'asoc/topic/of-name' and 'asoc/topic/omap' into asoc-next commit 1d1ed2c23e6fac1c9a11df846536553754ac9780 Merge: 373e515 62d6d47 5549ce8 4ab0c591 623436a 6eb1c2a Author: Mark Brown Date: Sun Aug 30 15:54:57 2015 +0100 Merge remote-tracking branches 'asoc/topic/max98090', 'asoc/topic/max98095', 'asoc/topic/max98357a', 'asoc/topic/max9877' and 'asoc/topic/max98925' into asoc-next commit 373e515d655086d4c05aae3b098bd48fe1f0c382 Merge: 246647e e1d46d3 c4a4291 6f43979 04b5cbd f102aa1 Author: Mark Brown Date: Sun Aug 30 15:54:38 2015 +0100 Merge remote-tracking branches 'asoc/topic/intel', 'asoc/topic/kirkwood', 'asoc/topic/lm49453', 'asoc/topic/max9768' and 'asoc/topic/max98088' into asoc-next commit 246647ee3e7533362e2c291eebaa7409b8565376 Merge: bb85d37 89e0e25 dce0332 2002e90 b37bfda bf08f39 Author: Mark Brown Date: Sun Aug 30 15:54:15 2015 +0100 Merge remote-tracking branches 'asoc/topic/fsl-spdif', 'asoc/topic/fsl-ssi', 'asoc/topic/gtm601', 'asoc/topic/ics43432' and 'asoc/topic/ids' into asoc-next commit bb85d37358bbca1bbd0fffda87bb38e7c9b69364 Merge: 7c00313 be9ae23 dcfcf2c fa3be920 50e0ee0 9b7493d Author: Mark Brown Date: Sun Aug 30 15:53:56 2015 +0100 Merge remote-tracking branches 'asoc/topic/fsi', 'asoc/topic/fsl', 'asoc/topic/fsl-asrc', 'asoc/topic/fsl-card' and 'asoc/topic/fsl-sai' into asoc-next commit 7c0031360bd721254a52c56bd1c2e90b6d9df57b Merge: 3999622 508a43f 553de19 628536e c5b8540 Author: Mark Brown Date: Sun Aug 30 15:53:39 2015 +0100 Merge remote-tracking branches 'asoc/topic/davinci', 'asoc/topic/davinci-vcif', 'asoc/topic/doc' and 'asoc/topic/dpcm' into asoc-next commit 399962239c07ab00adbfda72064b045c9c2c7b40 Merge: b18fec9 7f325bf fbf917e f755d11 a01da00 Author: Mark Brown Date: Sun Aug 30 15:53:22 2015 +0100 Merge remote-tracking branches 'asoc/topic/cs42l56', 'asoc/topic/cs42l73', 'asoc/topic/cs4349' and 'asoc/topic/da732x' into asoc-next commit b18fec9fe42846784e1744e6bd6c754751e1d172 Merge: 48997b9 6479304 c176330 80deaf0 4caae95 Author: Mark Brown Date: Sun Aug 30 15:52:59 2015 +0100 Merge remote-tracking branches 'asoc/topic/const', 'asoc/topic/cs35l32', 'asoc/topic/cs4265' and 'asoc/topic/cs42l52' into asoc-next commit 48997b9c03a80cadd14e0ed097f9594ff8454039 Merge: 21af109 fd63542 054bc83 c4d2ab0 54d8697 Author: Mark Brown Date: Sun Aug 30 15:52:41 2015 +0100 Merge remote-tracking branches 'asoc/topic/au1x', 'asoc/topic/bcm2835', 'asoc/topic/blackfin' and 'asoc/topic/card' into asoc-next commit 21af1094385186a078a044f886a312511dcca04f Merge: 28becbd 93ec3a1 310398f f8ea6ce d90c6cc 56113f6 Author: Mark Brown Date: Sun Aug 30 15:52:21 2015 +0100 Merge remote-tracking branches 'asoc/topic/88pm860x', 'asoc/topic/ac97', 'asoc/topic/ak4542', 'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next commit 28becbd59c89cccf26b7539684105437fa77210e Merge: cb42e0f dbe71b9 Author: Mark Brown Date: Sun Aug 30 15:52:16 2015 +0100 Merge remote-tracking branch 'asoc/topic/ssm4567' into asoc-next commit cb42e0f709a73caf4d631be32189bb1ca513ad25 Merge: ca945cf f2988af Author: Mark Brown Date: Sun Aug 30 15:52:12 2015 +0100 Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next commit ca945cf9fb887ff64e63f324a9098a1bd848c58f Merge: 4253f3a 48f403b Author: Mark Brown Date: Sun Aug 30 15:52:08 2015 +0100 Merge remote-tracking branch 'asoc/topic/pcm1681' into asoc-next commit 4253f3a8f4c7835a95dbdef232ad81d0af88fab3 Merge: 24ecc23 6e588a0 Author: Mark Brown Date: Sun Aug 30 15:51:57 2015 +0100 Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next commit 24ecc23cf62a48ae47ccc40f0f226d45c962512e Merge: a178065 abd31b3 Author: Mark Brown Date: Sun Aug 30 15:51:52 2015 +0100 Merge remote-tracking branch 'asoc/topic/core' into asoc-next commit a1780653b906ca342f20812570e1f07edb35b907 Merge: 1931553 9d83528 0e76597 e5b9408 9b850ca 14a500f e134cb2 Author: Mark Brown Date: Sun Aug 30 15:51:20 2015 +0100 Merge remote-tracking branches 'asoc/fix/adav80x', 'asoc/fix/arizona', 'asoc/fix/max98090', 'asoc/fix/rt5640', 'asoc/fix/samsung' and 'asoc/fix/wm8994' into asoc-linus commit 19315532b6d46142e401db4dce3cd52cd5c60577 Merge: c13dcf9 c171348 Author: Mark Brown Date: Sun Aug 30 15:51:15 2015 +0100 Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus commit 534dcd7ea60cebc41816eff0c290700acb2cc43e Author: Axel Lin Date: Sat Aug 29 23:09:30 2015 +0800 ASoC: zx296702-i2s: Fix resource leak when unload module Use devm_* API to fix leaks in current code. 1. Use devm_kzalloc to fix memory leak for zx_i2s when unload the module. 2. Use devm_snd_soc_register_component to ensure component is unregistered when unload the module. Signed-off-by: Axel Lin Reviewed-by: Jun Nie Signed-off-by: Mark Brown sound/soc/zte/zx296702-i2s.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f5164b8833498825b3197cb34150b142a9fc5bbf Merge: aaa9b64 a70f0d0 Author: Mark Brown Date: Sun Aug 30 14:40:29 2015 +0100 Merge remote-tracking branch 'regulator/topic/tps6586x' into regulator-next commit aaa9b649d0868725cd7536bc9017fe3956ad5393 Merge: 3e68312 5a286aa e2adfac a13eaf0 5127e31 30f93ca Author: Mark Brown Date: Sun Aug 30 14:40:11 2015 +0100 Merge remote-tracking branches 'regulator/topic/qcom-smd', 'regulator/topic/qcom-spmi', 'regulator/topic/rk808', 'regulator/topic/stub' and 'regulator/topic/tol' into regulator-next commit 3e683126f4b42bd29ac5adff1eb178880aa7706a Merge: 176175b 6d73aef 3a003ba a807a6c a02daad 60cb65e Author: Mark Brown Date: Sun Aug 30 14:39:48 2015 +0100 Merge remote-tracking branches 'regulator/topic/mt6311', 'regulator/topic/ocp', 'regulator/topic/owner', 'regulator/topic/pfuze100' and 'regulator/topic/pwm' into regulator-next commit 176175b613cb560a33839838c3baa817c9e218ca Merge: 11f2482 804486b 6cb6e6b ee3010d b10c7f3 Author: Mark Brown Date: Sun Aug 30 14:39:34 2015 +0100 Merge remote-tracking branches 'regulator/topic/lp872x', 'regulator/topic/ltc3589', 'regulator/topic/max77693' and 'regulator/topic/max8973' into regulator-next commit 11f24823667400983a05e6099d645f523d1989ef Merge: 08aad16 4245746 7bd3935 e80c47b 5b87af4 609ca5f Author: Mark Brown Date: Sun Aug 30 14:39:14 2015 +0100 Merge remote-tracking branches 'regulator/topic/da9210', 'regulator/topic/da9211', 'regulator/topic/fan53555', 'regulator/topic/isl9305' and 'regulator/topic/list' into regulator-next commit 08aad16c80f22d2c34407dc2f8cfe0eb57750db6 Merge: eaf018e bf1fc23 ce31751 d4ea7d8 736050c Author: Mark Brown Date: Sun Aug 30 14:38:50 2015 +0100 Merge remote-tracking branches 'regulator/topic/88pm800', 'regulator/topic/ad5398', 'regulator/topic/axp20x' and 'regulator/topic/da9062' into regulator-next commit eaf018e170cef4a5a4378c984b70d768dd30048d Merge: e616e2f 099982f Author: Mark Brown Date: Sun Aug 30 14:38:46 2015 +0100 Merge remote-tracking branch 'regulator/topic/core' into regulator-next commit e616e2f11b2776cbc24035fd14df4773a57b4b6a Merge: c13dcf9 c329061 Author: Mark Brown Date: Sun Aug 30 14:38:37 2015 +0100 Merge remote-tracking branch 'regulator/fix/pbias' into regulator-linus commit 6d73aef11760017c37e448d84595dcb44e1c3827 Author: kbuild test robot Date: Sun Aug 30 20:20:42 2015 +0800 regulator: mt6311: fix platform_no_drv_owner.cocci warnings drivers/regulator/mt6311-regulator.c:169:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown drivers/regulator/mt6311-regulator.c | 1 - 1 file changed, 1 deletion(-) commit 6cb6e6be41b5b42370e9028d7b691803295b097e Author: Javier Martinez Canillas Date: Sat Aug 29 13:56:11 2015 +0200 regulator: ltc3589: Remove unnecessary MODULE_ALIAS() The driver has a I2C device id table that is used to create the modaliases and already contains a "ltc3589" device id. So the modalias is unnecessary. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/ltc3589.c | 1 - 1 file changed, 1 deletion(-) commit ce317515b43f3e0b789b41df9b54e1608c783c5d Author: Javier Martinez Canillas Date: Sat Aug 29 13:56:10 2015 +0200 regulator: ad5398: Remove unnecessary MODULE_ALIAS() The driver has a I2C device id table that is used to create the modaliases and also "ad5398-regulator" is not a supported I2C id, so it's never used. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/ad5398.c | 1 - 1 file changed, 1 deletion(-) commit e12909107c30efccf570ac67802df5d2eec4cabd Author: Axel Lin Date: Sat Aug 29 23:06:32 2015 +0800 ASoC: sti_uniperif: Ensure component is unregistered when unload module Use devm_snd_soc_register_component to ensure component is unregistered when unload the module. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/sti/sti_uniperif.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1cfa8de2880e5512f9037c7804ea47a79cc8232c Author: Maciej W. Rozycki Date: Sun May 3 10:36:19 2015 +0100 MIPS: pgtable-bits.h: Correct _PAGE_GLOBAL_SHIFT build failure Correct a build failure introduced by be0c37c9 [MIPS: Rearrange PTE bits into fixed positions.]: In file included from ./arch/mips/include/asm/io.h:27:0, from ./arch/mips/include/asm/page.h:176, from include/linux/mm_types.h:15, from include/linux/sched.h:27, from include/linux/ptrace.h:5, from arch/mips/kernel/cpu-probe.c:16: ./arch/mips/include/asm/pgtable-bits.h:164:0: error: "_PAGE_GLOBAL_SHIFT" redefined [-Werror] #define _PAGE_GLOBAL_SHIFT (_PAGE_MODIFIED_SHIFT + 1) ^ ./arch/mips/include/asm/pgtable-bits.h:141:0: note: this is the location of the previous definition #define _PAGE_GLOBAL_SHIFT (_PAGE_SPLITTING_SHIFT + 1) ^ cc1: all warnings being treated as errors make[2]: *** [arch/mips/kernel/cpu-probe.o] Error 1 for 64BIT/CPU_MIPSR1/MIPS_HUGE_TLB_SUPPORT configurations. Remove the scattered double `_PAGE_NO_EXEC_SHIFT' and `_PAGE_GLOBAL_SHIFT' macro definitions and rearrange them so that the respective macros these definitions are based on are also those used for guarding conditionals. [ralf@linux-mips.org: resolved conflicts and updated commments.] Signed-off-by: Maciej W. Rozycki Cc: Steven J. Hill Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/9960/ Signed-off-by: Ralf Baechle arch/mips/include/asm/pgtable-bits.h | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) commit fd63542fc5492b86158dbd53ce5de764f171b1b6 Author: Axel Lin Date: Sun Aug 30 11:09:49 2015 +0800 ASoC: au1x: psc-i2s: Convert to use devm_ioremap_resource Use devm_ioremap_resource() instead of open code. Signed-off-by: Axel Lin Acked-by: Manuel Lauss Signed-off-by: Mark Brown sound/soc/au1x/psc-i2s.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit e8de871e19668257972b167aabd56bb5faae784c Author: Axel Lin Date: Sun Aug 30 11:07:33 2015 +0800 ASoC: sh: dma-sh7760: Convert to devm_snd_soc_register_platform Signed-off-by: Axel Lin Acked-by: Manuel Lauss Signed-off-by: Mark Brown sound/soc/sh/dma-sh7760.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 37c5db7938093cada165146ee99bd57c97baf6a3 Author: Axel Lin Date: Sun Aug 30 18:35:51 2015 +0800 spi: fsl-(e)spi: Fix checking return value of devm_ioremap_resource devm_ioremap_resource() returns ERR_PTR on error. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 4 ++-- drivers/spi/spi-fsl-spi.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 2c3f4b97eea5ce405baf2591715445da6ed05851 Author: Axel Lin Date: Sun Aug 30 08:08:15 2015 +0800 ASoC: spear_pcm: Use devm_snd_dmaengine_pcm_register to fix resource leak All the callers assume devm_spear_pcm_platform_register is a devm_ API, so use devm_snd_dmaengine_pcm_register in devm_spear_pcm_platform_register. Fixes: e1771bcf99b0 ("ASoC: SPEAr: remove custom DMA alloc compat function") Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/spear/spear_pcm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2497ee721524be80a7690dac0956d04c0ee954f0 Author: Christoph Hellwig Date: Fri Aug 28 09:27:16 2015 +0200 amdkfd: use instead of The latter is a default version of and not for driver use. Signed-off-by: Christoph Hellwig Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 29332534e2b68b5889a40ccb6606ba0d06750a69 Author: Markus Pargmann Date: Sun Aug 30 09:33:56 2015 +0200 regmap-i2c: Add smbus i2c block support This allows to read/write up to 32 bytes of data and is to be prefered if supported before the register read/write smbus support. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap-i2c.c | 49 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit c335931ed9d22c30017cf957518262c2fe6502ce Author: Markus Pargmann Date: Sun Aug 30 09:33:55 2015 +0200 regmap: Add raw_write/read checks for max_raw_write/read sizes Check in regmap_raw_read() and regmap_raw_write() for correct maximum sizes of the operations. Return -E2BIG if this size is not supported because it is too big. Also this patch causes an uninitialized variable warning so it initializes ret (although not necessary). Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 6 ++++++ 1 file changed, 6 insertions(+) commit f50c9eb4e9304cf555206c93152f580c0e7213b2 Author: Markus Pargmann Date: Sun Aug 30 09:33:54 2015 +0200 regmap: regmap max_raw_read/write getter functions Add functions to access the maximum size we can read/write using regmap_raw_read/write(). This helps drivers that need to know how much they can write with the raw functions without problems. There are some devices (e.g. bmc150) that have fifos as registers which need to be read in specific chunks otherwise samples are dropped. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 22 ++++++++++++++++++++++ include/linux/regmap.h | 2 ++ 2 files changed, 24 insertions(+) commit adaac459759db4a1fd35baddbe47bac700095496 Author: Markus Pargmann Date: Sun Aug 30 09:33:53 2015 +0200 regmap: Introduce max_raw_read/write for regmap_bulk_read/write There are some buses which have a limit on the maximum number of bytes that can be send/received. An example for this is I2C_FUNC_SMBUS_I2C_BLOCK which does not support any reads/writes of more than 32 bytes. The regmap_bulk operations should still be able to utilize the full 32 bytes in this case. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/internal.h | 4 ++ drivers/base/regmap/regmap.c | 85 ++++++++++++++++++++++++++++++++++-------- include/linux/regmap.h | 4 ++ 3 files changed, 78 insertions(+), 15 deletions(-) commit 10524612e8aa98804190ec7d0b380cf99c3bdbd7 Merge: c13dcf9 9a16ea9 9c9f7f6 07ea400 c5f58f2 Author: Mark Brown Date: Sun Aug 30 10:19:11 2015 +0100 Merge branches 'fix/raw', 'topic/core', 'topic/i2c', 'topic/raw' and 'topic/doc' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regmap-smbus-block commit 390fd5929f52bdfb9dfcc03820041ba556780f4a Author: Philippe Bergheaud Date: Fri Aug 28 09:37:36 2015 +0200 cxl: Set up and enable PSL Timebase This patch configures the PSL Timebase function and enables it, after the CAPP has been initialized by OPAL. Acked-by: Ian Munsie Signed-off-by: Philippe Bergheaud Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 5 +++++ drivers/misc/cxl/pci.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) commit 55e07668fbba9466e6a9ef7650718356cda38406 Author: Ian Munsie Date: Thu Aug 27 19:50:19 2015 +1000 cxl: Fix force unmapping mmaps of contexts allocated through the kernel api The cxl user api uses the address_space associated with the file when we need to force unmap all cxl mmap regions (e.g. on eeh, driver detach, etc). Currently, contexts allocated through the kernel api do not do this and instead skip the mmap invalidation, potentially allowing them to poke at the hardware after such an event, which may cause all sorts of trouble. This patch allocates an address_space for cxl contexts allocated through the kernel api so that the same invalidate path will for these contexts as well. We don't use the anonymous inode's address_space, as doing so could invalidate any mmaps of completely unrelated drivers using anonymous file descriptors. This patch also introduces a kernelapi flag, so we know when freeing the context if the address_space was allocated by us and needs to be freed. Signed-off-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 33 ++++++++++++++++++++++++++++++--- drivers/misc/cxl/context.c | 2 ++ drivers/misc/cxl/cxl.h | 1 + 3 files changed, 33 insertions(+), 3 deletions(-) commit af2a50bb0ce1ca7a9c4784813419c922bf2285df Author: Ian Munsie Date: Thu Aug 27 19:50:18 2015 +1000 cxl: Fix + cleanup error paths in cxl_dev_context_init If the cxl_context_alloc() call fails, we return immediately without releasing the reference on the AFU device, allowing it to leak. This patch switches to using goto style error handling so that the device is released in common code for both error paths, and will also simplify things if we add additional initialisation in this function in the future. Signed-off-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 099392048cd443349c50310f7fdc96070e40f4e7 Author: Trond Myklebust Date: Sat Aug 29 19:11:21 2015 -0700 SUNRPC: Prevent SYN+SYNACK+RST storms Add a shutdown() call before we release the socket in order to ensure the reset is sent before we try to reconnect. Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 2 ++ 1 file changed, 2 insertions(+) commit 2573d78872f242a05b842e9c553da45a3d9924e5 Merge: 8e816df a581b96 Author: David S. Miller Date: Sat Aug 29 19:07:16 2015 -0700 Merge branch 'ovs-vport-cleanup' Pravin B Shelar says: ==================== openvswitch: Cleanup post vport conversion. After converting all vport to netdev implmentations there is no need for some of vport functionality. ==================== Signed-off-by: David S. Miller commit a581b96dbfc52b6b498552525ec929aa635680ed Author: Pravin B Shelar Date: Sat Aug 29 17:44:08 2015 -0700 openvswitch: Remove vport-net This structure is not used anymore. Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/datapath.h | 2 -- net/openvswitch/flow.c | 3 ++- net/openvswitch/vport.h | 4 ---- 3 files changed, 2 insertions(+), 7 deletions(-) commit 8c876639c98501b049269b554bf4ecbb8f9c012f Author: Pravin B Shelar Date: Sat Aug 29 17:44:07 2015 -0700 openvswitch: Remove vport stats. Since all vport types are now backed by netdev, we can directly use netdev stats. Following patch removes redundant stat from vport. Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/vport-internal_dev.c | 57 ++++++++---------- net/openvswitch/vport-netdev.c | 22 +++---- net/openvswitch/vport-netdev.h | 2 +- net/openvswitch/vport.c | 109 ++++------------------------------- net/openvswitch/vport.h | 36 ++++-------- 5 files changed, 56 insertions(+), 170 deletions(-) commit 3eedb41fb43461b5fde3f72fd00a7706f0b90103 Author: Pravin B Shelar Date: Sat Aug 29 17:44:06 2015 -0700 openvswitch: Remove egress_tun_info. tun info is passed using skb-dst pointer. Now we have converted all vports to netdev based implementation so Now we can remove redundant pointer to tun-info from OVS_CB. Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 5 ----- net/openvswitch/datapath.c | 1 - net/openvswitch/datapath.h | 3 --- net/openvswitch/vport-geneve.c | 3 +-- net/openvswitch/vport-gre.c | 3 +-- net/openvswitch/vport-vxlan.c | 3 +-- net/openvswitch/vport.c | 6 +++--- net/openvswitch/vport.h | 3 +-- 8 files changed, 7 insertions(+), 20 deletions(-) commit 24d43f32d86026a0e318fee736380e164d85eefa Author: Pravin B Shelar Date: Sat Aug 29 17:44:05 2015 -0700 openvswitch: Remove vport get_name() Remove unused get_name() function pointer from vport ops. Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/vport.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 650c919798c71fb34b77a6f2ba03a06907f06a76 Merge: 895fb31 64291f7 Author: Chris Zankel Date: Sat Aug 29 23:55:58 2015 +0000 Merge tag 'v4.2' into for_next Linux 4.2 commit 8e816df87997bb0c40122d5df621423b445c4fe6 Author: Jesse Gross Date: Fri Aug 28 16:54:40 2015 -0700 geneve: Use GRO cells infrastructure. Geneve can benefit from GRO at the device level in a manner similar to other tunnels, especially as hardware offloads are still emerging. After this patch, aggregated frames are seen on the tunnel interface. Single stream throughput nearly doubles in ideal circumstances (on old hardware). Signed-off-by: Jesse Gross Signed-off-by: David S. Miller drivers/net/geneve.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 0c78789e3a030615c6650fde89546cadf40ec2cc Author: Trond Myklebust Date: Sat Aug 29 13:36:30 2015 -0700 SUNRPC: xs_reset_transport must mark the connection as disconnected In case the reconnection attempt fails. Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 1 + 1 file changed, 1 insertion(+) commit c30da497893718abc6cec4f1d34d35875200edee Author: Simon Horman Date: Sat Aug 29 09:02:21 2015 +0900 openvswitch: retain parsed IPv6 header fields in flow on error skipping extension headers When an error occurs skipping IPv6 extension headers retain the already parsed IP protocol and IPv6 addresses in the flow. Also assume that the packet is not a fragment in the absence of information to the contrary; that is always use the frag_off value set by ipv6_skip_exthdr(). This allows matching on the IP protocol and IPv6 addresses of packets with malformed extension headers. Signed-off-by: Simon Horman Signed-off-by: David S. Miller net/openvswitch/flow.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit f5004a14fac0a71656340544c48a14c80a3afddf Merge: 6d74232 917522a Author: David S. Miller Date: Sat Aug 29 13:15:03 2015 -0700 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next Johan Hedberg says: ==================== pull request: bluetooth-next 2015-08-28 One more bunch of Bluetooth patches for 4.3: - Crash fix for hci_bcm driver - Enhancements to hci_intel driver (e.g. baudrate configuration) - Fix for SCO link type after multiple connect attempts - Cleanups & minor fixes in a few other places Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit f892a84cc890aaaba7bc42daf2e2ee86b0961884 Author: Tony Lindgren Date: Fri Aug 28 11:50:15 2015 -0700 net/smsc911x: Fix deferred probe for interrupt The interrupt handler may not be available when smsc911x probes if the interrupt handler is a GPIO controller for example. Let's fix that by adding handling for -EPROBE_DEFER. Cc: Steve Glendinning Signed-off-by: Tony Lindgren Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smsc911x.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 6d74232410a9f3ed0e1fc0f5e538598f21e93982 Merge: f6d3c19 a43a9ef Author: David S. Miller Date: Sat Aug 29 13:07:55 2015 -0700 Merge branch 'tnl-ipv4-ipv6' Jiri Benc says: ==================== tunnels: fix incorrect IPv4/v6 headers interpretation With tunneling, it is currently possible to get an IPv6 header and interpret it as an IPv4 header, or to interpret an IPv6 address as an IPv4 address (and vice versa). This leads to things like sending packets to incorrect address, IPv6 flow label being interpreted as IP packet length, etc. Fix several places where this can happen. Most of this is net-next only. The third patch affects net, too, but it doesn't seem there's anything in user space that sets the attribute at all currently, thus net-next is fine. Changelog: v2: fixed geneve after incorrect rebase on top of Pravin's patches ==================== Signed-off-by: David S. Miller commit a43a9ef6a2e510fec61176ff2c34fab3e7d581da Author: Jiri Benc Date: Fri Aug 28 20:48:22 2015 +0200 vxlan: do not receive IPv4 packets on IPv6 socket By default (subject to the sysctl settings), IPv6 sockets listen also for IPv4 traffic. Vxlan is not prepared for that and expects IPv6 header in packets received through an IPv6 socket. In addition, it's currently not possible to have both IPv4 and IPv6 vxlan tunnel on the same port (unless bindv6only sysctl is enabled), as it's not possible to create and bind both IPv4 and IPv6 vxlan interfaces and there's no way to specify both IPv4 and IPv6 remote/group IP addresses. Set IPV6_V6ONLY on vxlan sockets to fix both of these issues. This is not done globally in udp_tunnel, as l2tp and tipc seems to work okay when receiving IPv4 packets on IPv6 socket and people may rely on this behavior. The other tunnels (geneve and fou) do not support IPv6. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller drivers/net/vxlan.c | 1 + include/net/udp_tunnel.h | 3 ++- net/ipv6/ip6_udp_tunnel.c | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) commit b9b6695cf0e1afebc207e28c7e9350c90547a426 Author: Jiri Benc Date: Fri Aug 28 20:48:21 2015 +0200 fou: reject IPv6 config fou does not really support IPv6 encapsulation. After an UDP socket is created in fou_create, the encap_rcv callback is set either to fou_udp_recv or to gue_udp_recv. Both of those unconditionally assume that the received packet has an IPv4 header and access the data at network_header as it was an IPv4 header. This leads to IPv6 flow label being interpreted as IP packet length, etc. Disallow fou tunnel to be configured as IPv6 until real IPv6 support is added to fou. CC: Tom Herbert Signed-off-by: Jiri Benc Signed-off-by: David S. Miller net/ipv4/fou.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f9562a1f405306eacb97f95d78cb996e33f27f5 Author: Jiri Benc Date: Fri Aug 28 20:48:20 2015 +0200 ip_tunnels: record IP version in tunnel info There's currently nothing preventing directing packets with IPv6 encapsulation data to IPv4 tunnels (and vice versa). If this happens, IPv6 addresses are incorrectly interpreted as IPv4 ones. Track whether the given ip_tunnel_key contains IPv4 or IPv6 data. Store this in ip_tunnel_info. Reject packets at appropriate places if they are supposed to be encapsulated into an incompatible protocol. Signed-off-by: Jiri Benc Acked-by: Alexei Starovoitov Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller drivers/net/geneve.c | 2 ++ drivers/net/vxlan.c | 2 ++ include/net/dst_metadata.h | 1 + include/net/ip_tunnels.h | 10 ++++++++++ net/core/filter.c | 2 ++ net/ipv4/ip_gre.c | 3 ++- net/ipv4/ip_tunnel_core.c | 2 +- net/openvswitch/flow.c | 2 ++ net/openvswitch/vport.c | 2 ++ 9 files changed, 24 insertions(+), 2 deletions(-) commit 46fa062ad63146dd138ec0f017e71224471e8ea5 Author: Jiri Benc Date: Fri Aug 28 20:48:19 2015 +0200 ip_tunnels: convert the mode field of ip_tunnel_info to flags The mode field holds a single bit of information only (whether the ip_tunnel_info struct is for rx or tx). Change the mode field to bit flags. This allows more mode flags to be added. Signed-off-by: Jiri Benc Acked-by: Alexei Starovoitov Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller drivers/net/geneve.c | 2 +- drivers/net/vxlan.c | 2 +- include/net/dst_metadata.h | 1 - include/net/ip_tunnels.h | 9 ++------- net/ipv4/ip_gre.c | 2 +- net/ipv4/route.c | 2 +- net/ipv6/route.c | 2 +- 7 files changed, 7 insertions(+), 13 deletions(-) commit f6d3c19274c74ff17174df8078e0a14df003667f Author: David Ahern Date: Fri Aug 28 08:42:09 2015 -0700 net: FIB tracepoints A few useful tracepoints developing VRF driver. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/trace/events/fib.h | 111 +++++++++++++++++++++++++++++++++++++++++++++ net/core/net-traces.c | 1 + net/ipv4/fib_frontend.c | 3 ++ net/ipv4/fib_trie.c | 5 ++ 4 files changed, 120 insertions(+) commit a02daad70214a820988c045494a15dea047c16d4 Author: Javier Martinez Canillas Date: Sat Aug 29 02:35:13 2015 +0200 regulator: pfuze100: Remove unnecessary MODULE_ALIAS() The driver has a I2C device id table that is used to create the modaliases and also "pfuze100-regulator" is not a supported I2C id, so is never used. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/pfuze100-regulator.c | 1 - 1 file changed, 1 deletion(-) commit 22c103cd3dfadff340b3b639e477a3c161cb2104 Author: Takashi Sakamoto Date: Sat Aug 29 10:38:46 2015 +0900 ALSA: fireworks/bebob/dice/oxfw: fix substreams counting at vmalloc failure In PCM core, when hw_params() in each driver returns error, the state of PCM substream is kept as 'open'. In this case, current drivers for sound units on IEEE 1394 bus doesn't decrement substream counter in hw_free() correctly. This causes these drivers to keep streams even if not required. This commit fixes this bug. When snd_pcm_lib_alloc_vmalloc_buffer() fails, hw_params function in each driver returns without incrementing the counter. Reported-by: Takashi Iwai Signed-off-by: Takashi Sakamoto Acked-by: Clemens Ladisch Signed-off-by: Takashi Iwai sound/firewire/bebob/bebob_pcm.c | 20 ++++++++++++++++---- sound/firewire/dice/dice-pcm.c | 18 ++++++++++++++---- sound/firewire/fireworks/fireworks_pcm.c | 18 ++++++++++++++---- sound/firewire/oxfw/oxfw-pcm.c | 17 +++++++++++++---- 4 files changed, 57 insertions(+), 16 deletions(-) commit 73e6742027f5cb5a7c747d9abab5351b01fd4c74 Author: Vlad Yasevich Date: Fri Aug 28 21:23:39 2015 -0400 sctp: Do not try to search for the transport twice When removing an non-primary transport during ASCONF processing, we end up traversing the transport list twice: once in sctp_cmd_del_non_primary, and once in sctp_assoc_del_peer. We can avoid the second search and call sctp_assoc_rm_peer() instead. Found by code inspection during code reviews. Signed-off-by: Vladislav Yasevich Signed-off-by: David S. Miller net/sctp/sm_sideeffect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b0d4943eec9a42c7ba2065f6cfa949894204dd4a Author: Nikolay Aleksandrov Date: Fri Aug 28 15:05:32 2015 -0700 bonding: fix bond_poll_controller bh_enable warning The problem is rcu_read_unlock_bh() which triggers a warning when irqs are disabled. ndo_poll_controller should run with irqs disabled always so we can drop the rcu_read_lock_bh. [ 98.502922] bond0: making interface eth1 the new active one [ 98.503039] ------------[ cut here ]------------ [ 98.503039] WARNING: CPU: 0 PID: 1744 at kernel/softirq.c:150 __local_bh_enable_ip+0x96/0xc0() [ 98.503039] Modules linked in: bonding(OE) rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache netconsole ppdev joydev parport_pc serio_raw parport i2c_piix4 video acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc virtio_net e1000 ata_generic pcnet32 mii virtio_pci virtio_ring virtio pata_acpi [ 98.503039] CPU: 0 PID: 1744 Comm: ifenslave Tainted: G OE 4.2.0-rc7+ #56 [ 98.503039] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 [ 98.503039] 0000000000000000 00000000e96ba230 ffff880020c236b8 ffffffff8183f105 [ 98.503039] 0000000000000000 0000000000000000 ffff880020c236f8 ffffffff810a9496 [ 98.503039] ffff88002ea99e08 0000000000000200 ffffffffa02a8e06 ffff88002ea99e08 [ 98.503039] Call Trace: [ 98.503039] [] dump_stack+0x4c/0x65 [ 98.503039] [] warn_slowpath_common+0x86/0xc0 [ 98.503039] [] ? bond_poll_controller+0x146/0x250 [bonding] [ 98.503039] [] warn_slowpath_null+0x1a/0x20 [ 98.503039] [] __local_bh_enable_ip+0x96/0xc0 [ 98.503039] [] bond_poll_controller+0x16f/0x250 [bonding] [ 98.503039] [] ? bond_poll_controller+0x33/0x250 [bonding] [ 98.503039] [] ? trace_hardirqs_off+0xd/0x10 [ 98.503039] [] ? _raw_spin_unlock_irqrestore+0x5b/0x60 [ 98.503039] [] netpoll_poll_dev+0x6e/0x350 [ 98.503039] [] ? netpoll_start_xmit+0x137/0x1d0 [ 98.503039] [] ? __alloc_skb+0x5b/0x210 [ 98.503039] [] netpoll_send_skb_on_dev+0x12d/0x2a0 [ 98.503039] [] netpoll_send_udp+0x2ce/0x430 [ 98.503039] [] write_msg+0xb0/0xf0 [netconsole] [ 98.503039] [] call_console_drivers.constprop.25+0x133/0x260 [ 98.503039] [] console_unlock+0x2f4/0x580 [ 98.503039] [] ? vprintk_emit+0x2e5/0x630 [ 98.503039] [] vprintk_emit+0x325/0x630 [ 98.503039] [] vprintk_default+0x29/0x40 [ 98.503039] [] printk+0x55/0x6b [ 98.503039] [] __netdev_printk+0x16c/0x260 [ 98.503039] [] netdev_info+0x62/0x80 [ 98.503039] [] bond_change_active_slave+0x134/0x6a0 [bonding] [ 98.503039] [] bond_select_active_slave+0xc5/0x310 [bonding] [ 98.503039] [] bond_enslave+0x1088/0x10c0 [bonding] [ 98.503039] [] bond_do_ioctl+0x37b/0x400 [bonding] [ 98.503039] [] ? trace_hardirqs_on+0xd/0x10 [ 98.503039] [] ? rtnl_lock+0x17/0x20 [ 98.503039] [] dev_ifsioc+0x331/0x3e0 [ 98.503039] [] dev_ioctl+0xec/0x6c0 [ 98.503039] [] sock_do_ioctl+0x4a/0x60 [ 98.503039] [] sock_ioctl+0x1c0/0x250 [ 98.503039] [] do_vfs_ioctl+0x2ee/0x540 [ 98.503039] [] ? up_read+0x23/0x40 [ 98.503039] [] ? __do_page_fault+0x1d3/0x420 [ 98.503039] [] ? __fget_light+0x66/0x90 [ 98.503039] [] SyS_ioctl+0x79/0x90 [ 98.503039] [] entry_SYSCALL_64_fastpath+0x12/0x76 [ 98.503039] ---[ end trace 00cfa804b0670051 ]--- Fixes: 616f45416ca0 ("bonding: implement bond_poll_controller()") Signed-off-by: Nikolay Aleksandrov Acked-by: Mahesh Bandewar Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 2 -- 1 file changed, 2 deletions(-) commit 7a468ac624c80bda76957d8cbc28024f4f68e316 Author: Sergei Shtylyov Date: Fri Aug 28 16:56:01 2015 +0300 sh_eth: propagate platform_get_irq() error upstream The driver overrides the error returned by platform_get_irq() with -ENODEV which e.g. precludes the deferred probing from working. Propagate the real error code to the driver core instead. Signed-off-by: Sergei Shtylyov Acked-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/ethernet/renesas/sh_eth.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit f375339e497582ea0bc8806a0552add1cabb6d4e Author: Sergei Shtylyov Date: Fri Aug 28 16:55:10 2015 +0300 ravb: propagate platform_get_irq() error upstream The driver overrides the error returned by platform_get_irq() with -ENODEV which e.g. precludes the deferred probing from working. Propagate the real error code to the driver core instead. Signed-off-by: Sergei Shtylyov Acked-by: Geert Uytterhoeven Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c5a9461812b21e1a1b7a09a83e97530b8867459 Author: lucien Date: Fri Aug 28 17:45:58 2015 +0800 sctp: ASCONF-ACK with Unresolvable Address should be sent RFC 5061: This is an opaque integer assigned by the sender to identify each request parameter. The receiver of the ASCONF Chunk will copy this 32-bit value into the ASCONF Response Correlation ID field of the ASCONF-ACK response parameter. The sender of the ASCONF can use this same value in the ASCONF-ACK to find which request the response is for. Note that the receiver MUST NOT change this 32-bit value. Address Parameter: TLV This field contains an IPv4 or IPv6 address parameter, as described in Section 3.3.2.1 of [RFC4960]. ASCONF chunk with Error Cause Indication Parameter (Unresolvable Address) should be sent if the Delete IP Address is not part of the association. Endpoint A Endpoint B (ESTABLISHED) (ESTABLISHED) ASCONF -----------------> (Delete IP Address) <----------------- ASCONF-ACK (Unresolvable Address) Signed-off-by: Xin Long Acked-by: Vlad Yasevich Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/sm_make_chunk.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 7084a315897715776d1764f5fd9250609e515beb Author: Ken-ichirou MATSUZAWA Date: Fri Aug 28 16:05:20 2015 +0900 netlink: mmap: fix lookup frame position __netlink_lookup_frame() was always called with the same "pos" value in netlink_forward_ring(). It will look at the same ring entry header over and over again, every time through this loop. Then cycle through the whole ring, advancing ring->head, not "pos" until it equals the "ring->head != head" loop test fails. Signed-off-by: Ken-ichirou MATSUZAWA Signed-off-by: David S. Miller net/netlink/af_netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a6a3a23ea6efde079a5b77688541a98bf202721 Author: Christophe Ricard Date: Fri Aug 28 07:07:48 2015 +0200 netlink: add NETLINK_CAP_ACK socket option Since commit c05cdb1b864f ("netlink: allow large data transfers from user-space"), the kernel may fail to allocate the necessary room for the acknowledgment message back to userspace. This patch introduces a new socket option that trims off the payload of the original netlink message. The netlink message header is still included, so the user can guess from the sequence number what is the message that has triggered the acknowledgment. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Christophe Ricard Signed-off-by: David S. Miller include/uapi/linux/netlink.h | 1 + net/netlink/af_netlink.c | 27 ++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) commit 0d5cdef8d5dd0a6819fd85305adb448f5ba56f24 Author: Joe Stringer Date: Fri Aug 28 19:22:11 2015 -0700 openvswitch: Fix conntrack compilation without mark. Fix build with !CONFIG_NF_CONNTRACK_MARK && CONFIG_OPENVSWITCH_CONNTRACK Fixes: 182e304 ("openvswitch: Allow matching on conntrack mark") Reported-by: Simon Horman Signed-off-by: Joe Stringer Tested-by: Simon Horman Signed-off-by: David S. Miller net/openvswitch/conntrack.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 004f1afbe199e6ab20805b95aefd83ccd24bc5c7 Author: Dan Williams Date: Mon Aug 24 19:20:23 2015 -0400 libnvdimm, pmem: direct map legacy pmem by default The expectation is that the legacy / non-standard pmem discovery method (e820 type-12) will only ever be used to describe small quantities of persistent memory. Larger capacities will be described via the ACPI NFIT. When "allocate struct page from pmem" support is added this default policy can be overridden by assigning a legacy pmem namespace to a pfn device, however this would be only be necessary if a platform used the legacy mechanism to define a very large range. Cc: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/e820.c | 1 + drivers/nvdimm/namespace_devs.c | 35 ++++++++++++++++++++++++++++++----- drivers/nvdimm/nd.h | 2 ++ drivers/nvdimm/pmem.c | 15 ++++++++++++--- drivers/nvdimm/region_devs.c | 1 + include/linux/libnvdimm.h | 4 ++++ 6 files changed, 50 insertions(+), 8 deletions(-) commit 32ab0a3f51701cb37ab960635254d5f84ec3de0a Author: Dan Williams Date: Sat Aug 1 02:16:37 2015 -0400 libnvdimm, pmem: 'struct page' for pmem Enable the pmem driver to handle PFN device instances. Attaching a pmem namespace to a pfn device triggers the driver to allocate and initialize struct page entries for pmem. Memory capacity for this allocation comes exclusively from RAM for now which is suitable for low PMEM to RAM ratios. This mechanism will be expanded later for setting an "allocate from PMEM" policy. Cc: Boaz Harrosh Cc: Ross Zwisler Cc: Christoph Hellwig Signed-off-by: Dan Williams drivers/nvdimm/Kconfig | 1 + drivers/nvdimm/nd.h | 6 ++ drivers/nvdimm/pfn_devs.c | 9 +- drivers/nvdimm/pmem.c | 203 +++++++++++++++++++++++++++++++++++--- tools/testing/nvdimm/Kbuild | 1 + tools/testing/nvdimm/test/iomap.c | 13 +++ 6 files changed, 216 insertions(+), 17 deletions(-) commit e1455744b27c9e6115c3508a7b2902157c2c4347 Author: Dan Williams Date: Thu Jul 30 17:57:47 2015 -0400 libnvdimm, pfn: 'struct page' provider infrastructure Implement the base infrastructure for libnvdimm PFN devices. Similar to BTT devices they take a namespace as a backing device and layer functionality on top. In this case the functionality is reserving space for an array of 'struct page' entries to be handed out through pfn_to_page(). For now this is just the basic libnvdimm-device-model for configuring the base PFN device. As the namespace claiming mechanism for PFN devices is mostly identical to BTT devices drivers/nvdimm/claim.c is created to house the common bits. Cc: Ross Zwisler Signed-off-by: Dan Williams drivers/nvdimm/Kconfig | 22 +++ drivers/nvdimm/Makefile | 2 + drivers/nvdimm/btt.c | 6 +- drivers/nvdimm/btt_devs.c | 172 +------------------- drivers/nvdimm/claim.c | 201 ++++++++++++++++++++++++ drivers/nvdimm/namespace_devs.c | 34 +++- drivers/nvdimm/nd-core.h | 9 ++ drivers/nvdimm/nd.h | 56 ++++++- drivers/nvdimm/pfn.h | 35 +++++ drivers/nvdimm/pfn_devs.c | 336 ++++++++++++++++++++++++++++++++++++++++ drivers/nvdimm/region.c | 2 + drivers/nvdimm/region_devs.c | 19 +++ tools/testing/nvdimm/Kbuild | 2 + 13 files changed, 719 insertions(+), 177 deletions(-) commit 3403051ebbd486a342272a404f16e7f1aca8758e Author: Steve Wise Date: Mon Jul 27 18:10:18 2015 -0500 RDMA/Core: remove rdma_cap_read_multi_sge() helper This functionality already exists via the max_sge_rd device capability. Signed-off-by: Steve Wise Signed-off-by: Doug Ledford include/rdma/ib_verbs.h | 28 ---------------------------- 1 file changed, 28 deletions(-) commit bc3fe2e3769874dfa8674791e84c4a901ba9e48b Author: Steve Wise Date: Mon Jul 27 18:10:12 2015 -0500 svcrdma: Use max_sge_rd for destination read depths Signed-off-by: Steve Wise Signed-off-by: Doug Ledford include/linux/sunrpc/svc_rdma.h | 1 + net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 12 +----------- net/sunrpc/xprtrdma/svc_rdma_transport.c | 4 ++++ 3 files changed, 6 insertions(+), 11 deletions(-) commit aaae91f4f05c39f02e36e89b00ad84465f8eb02b Author: Steve Wise Date: Mon Jul 27 18:10:07 2015 -0500 ipath,qib: Expose max_sge_rd correctly Applications must not assume that max_sge and max_sge_rd are the same, Hence expose max_sge_rd correctly as well. Signed-off-by: Steve Wise Acked-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_verbs.c | 1 + drivers/staging/rdma/ipath/ipath_verbs.c | 1 + 2 files changed, 2 insertions(+) commit 18ebd40773bf500054a5e079e71cd13aafd1b6eb Author: Sagi Grimberg Date: Mon Jul 27 18:10:01 2015 -0500 mlx4, mlx5, mthca: Expose max_sge_rd correctly Applications must not assume that max_sge and max_sge_rd are the same, Hence expose max_sge_rd correctly as well. Reported-by: Steve Wise Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx4/main.c | 1 + drivers/infiniband/hw/mlx5/main.c | 1 + drivers/infiniband/hw/mthca/mthca_provider.c | 1 + 3 files changed, 3 insertions(+) commit a724648e8a8f7ff874f0d58491b39517718c7237 Author: Jeff Becker Date: Fri Aug 21 12:26:22 2015 -0700 staging/hfi1: replace indent spaces with tabs Running checkpatch.pl on mad.c produces several "ERROR: code indent should use tabs where possible" messages. This patch fixes these. Signed-off-by: Jeff Becker Signed-off-by: Doug Ledford drivers/staging/rdma/hfi1/mad.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7724105686e718ac476a6ad3304fea2fbcfcffde Author: Mike Marciniszyn Date: Thu Jul 30 15:17:43 2015 -0400 IB/hfi1: add driver files Signed-off-by: Andrew Friedley Signed-off-by: Arthur Kepner Signed-off-by: Brendan Cunningham Signed-off-by: Brian Welty Signed-off-by: Caz Yokoyama Signed-off-by: Dean Luick Signed-off-by: Dennis Dalessandro Signed-off-by: Easwar Hariharan Signed-off-by: Harish Chegondi Signed-off-by: Ira Weiny Signed-off-by: Jim Snow Signed-off-by: John Gregor Signed-off-by: Jubin John Signed-off-by: Kaike Wan Signed-off-by: Kevin Pine Signed-off-by: Kyle Liddell Signed-off-by: Mike Marciniszyn Signed-off-by: Mitko Haralanov Signed-off-by: Ravi Krishnaswamy Signed-off-by: Sadanand Warrier Signed-off-by: Sanath Kumar Signed-off-by: Sudeep Dutt Signed-off-by: Vlad Danushevsky Signed-off-by: Doug Ledford Documentation/infiniband/sysfs.txt | 20 + MAINTAINERS | 6 + drivers/staging/rdma/Kconfig | 2 + drivers/staging/rdma/Makefile | 1 + drivers/staging/rdma/hfi1/Kconfig | 37 + drivers/staging/rdma/hfi1/Makefile | 19 + drivers/staging/rdma/hfi1/TODO | 6 + drivers/staging/rdma/hfi1/chip.c | 10798 ++++++++++++++++++++++++++ drivers/staging/rdma/hfi1/chip.h | 1035 +++ drivers/staging/rdma/hfi1/chip_registers.h | 1289 +++ drivers/staging/rdma/hfi1/common.h | 415 + drivers/staging/rdma/hfi1/cq.c | 558 ++ drivers/staging/rdma/hfi1/debugfs.c | 899 +++ drivers/staging/rdma/hfi1/debugfs.h | 78 + drivers/staging/rdma/hfi1/device.c | 142 + drivers/staging/rdma/hfi1/device.h | 61 + drivers/staging/rdma/hfi1/diag.c | 1873 +++++ drivers/staging/rdma/hfi1/dma.c | 186 + drivers/staging/rdma/hfi1/driver.c | 1241 +++ drivers/staging/rdma/hfi1/eprom.c | 475 ++ drivers/staging/rdma/hfi1/eprom.h | 55 + drivers/staging/rdma/hfi1/file_ops.c | 2140 +++++ drivers/staging/rdma/hfi1/firmware.c | 1620 ++++ drivers/staging/rdma/hfi1/hfi.h | 1821 +++++ drivers/staging/rdma/hfi1/init.c | 1722 ++++ drivers/staging/rdma/hfi1/intr.c | 207 + drivers/staging/rdma/hfi1/iowait.h | 186 + drivers/staging/rdma/hfi1/keys.c | 411 + drivers/staging/rdma/hfi1/mad.c | 4257 ++++++++++ drivers/staging/rdma/hfi1/mad.h | 325 + drivers/staging/rdma/hfi1/mmap.c | 192 + drivers/staging/rdma/hfi1/mr.c | 546 ++ drivers/staging/rdma/hfi1/opa_compat.h | 129 + drivers/staging/rdma/hfi1/pcie.c | 1253 +++ drivers/staging/rdma/hfi1/pio.c | 1771 +++++ drivers/staging/rdma/hfi1/pio.h | 224 + drivers/staging/rdma/hfi1/pio_copy.c | 858 ++ drivers/staging/rdma/hfi1/platform_config.h | 286 + drivers/staging/rdma/hfi1/qp.c | 1687 ++++ drivers/staging/rdma/hfi1/qp.h | 235 + drivers/staging/rdma/hfi1/qsfp.c | 546 ++ drivers/staging/rdma/hfi1/qsfp.h | 222 + drivers/staging/rdma/hfi1/rc.c | 2426 ++++++ drivers/staging/rdma/hfi1/ruc.c | 948 +++ drivers/staging/rdma/hfi1/sdma.c | 2962 +++++++ drivers/staging/rdma/hfi1/sdma.h | 1123 +++ drivers/staging/rdma/hfi1/srq.c | 397 + drivers/staging/rdma/hfi1/sysfs.c | 739 ++ drivers/staging/rdma/hfi1/trace.c | 221 + drivers/staging/rdma/hfi1/trace.h | 1409 ++++ drivers/staging/rdma/hfi1/twsi.c | 518 ++ drivers/staging/rdma/hfi1/twsi.h | 68 + drivers/staging/rdma/hfi1/uc.c | 585 ++ drivers/staging/rdma/hfi1/ud.c | 885 +++ drivers/staging/rdma/hfi1/user_pages.c | 156 + drivers/staging/rdma/hfi1/user_sdma.c | 1444 ++++ drivers/staging/rdma/hfi1/user_sdma.h | 89 + drivers/staging/rdma/hfi1/verbs.c | 2142 +++++ drivers/staging/rdma/hfi1/verbs.h | 1149 +++ drivers/staging/rdma/hfi1/verbs_mcast.c | 385 + 60 files changed, 57480 insertions(+) commit d4ab347005fb26f414b98b2c8d5ef6de5778c3dc Author: Dennis Dalessandro Date: Thu Jul 30 15:17:32 2015 -0400 IB/core: Add core header changes needed for OPA This patch adds the value of the CNP opcode to the existing list of enumerated opcodes in ib_pack.h Add common OPA header definitions for driver build: - opa_port_info.h - opa_smi.h - hfi1_user.h Additionally, ib_mad.h, has additional definitions that are common to ib_drivers including: - trap support - cca support The qib driver has the duplication removed in favor those in ib_mad.h Reviewed-by: Mike Marciniszyn Reviewed-by: John, Jubin Signed-off-by: Ira Weiny Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_mad.h | 147 +----------- include/rdma/ib_mad.h | 138 ++++++++++++ include/rdma/ib_pack.h | 2 + include/rdma/opa_port_info.h | 433 ++++++++++++++++++++++++++++++++++++ include/rdma/opa_smi.h | 47 ++++ include/uapi/rdma/hfi/hfi1_user.h | 427 +++++++++++++++++++++++++++++++++++ 6 files changed, 1055 insertions(+), 139 deletions(-) commit 072bf1f7e4b5963034df35460f5f311396347a36 Author: Steve Wise Date: Wed Jul 29 09:44:14 2015 -0500 RDMA/amso1100: Deprecate the amso1100 driver and move to staging The HW hasn't been sold since 2005, and the SW has definite bit rot. Its time to remove it. So move it to staging for a few releases and then remove it after that. Signed-off-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/Kconfig | 1 - drivers/infiniband/hw/Makefile | 1 - drivers/infiniband/hw/amso1100/Kbuild | 6 - drivers/infiniband/hw/amso1100/Kconfig | 15 - drivers/infiniband/hw/amso1100/c2.c | 1241 --------------------- drivers/infiniband/hw/amso1100/c2.h | 547 --------- drivers/infiniband/hw/amso1100/c2_ae.c | 327 ------ drivers/infiniband/hw/amso1100/c2_ae.h | 108 -- drivers/infiniband/hw/amso1100/c2_alloc.c | 142 --- drivers/infiniband/hw/amso1100/c2_cm.c | 461 -------- drivers/infiniband/hw/amso1100/c2_cq.c | 440 -------- drivers/infiniband/hw/amso1100/c2_intr.c | 219 ---- drivers/infiniband/hw/amso1100/c2_mm.c | 377 ------- drivers/infiniband/hw/amso1100/c2_mq.c | 174 --- drivers/infiniband/hw/amso1100/c2_mq.h | 106 -- drivers/infiniband/hw/amso1100/c2_pd.c | 90 -- drivers/infiniband/hw/amso1100/c2_provider.c | 912 ---------------- drivers/infiniband/hw/amso1100/c2_provider.h | 182 --- drivers/infiniband/hw/amso1100/c2_qp.c | 1024 ----------------- drivers/infiniband/hw/amso1100/c2_rnic.c | 655 ----------- drivers/infiniband/hw/amso1100/c2_status.h | 158 --- drivers/infiniband/hw/amso1100/c2_user.h | 82 -- drivers/infiniband/hw/amso1100/c2_vq.c | 260 ----- drivers/infiniband/hw/amso1100/c2_vq.h | 63 -- drivers/infiniband/hw/amso1100/c2_wr.h | 1520 -------------------------- 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 | 1241 +++++++++++++++++++++ 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 | 461 ++++++++ drivers/staging/rdma/amso1100/c2_cq.c | 440 ++++++++ drivers/staging/rdma/amso1100/c2_intr.c | 219 ++++ drivers/staging/rdma/amso1100/c2_mm.c | 377 +++++++ drivers/staging/rdma/amso1100/c2_mq.c | 174 +++ drivers/staging/rdma/amso1100/c2_mq.h | 106 ++ drivers/staging/rdma/amso1100/c2_pd.c | 90 ++ drivers/staging/rdma/amso1100/c2_provider.c | 912 ++++++++++++++++ drivers/staging/rdma/amso1100/c2_provider.h | 182 +++ drivers/staging/rdma/amso1100/c2_qp.c | 1024 +++++++++++++++++ drivers/staging/rdma/amso1100/c2_rnic.c | 655 +++++++++++ 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 ++++++++++++++++++++++++++ 51 files changed, 9116 insertions(+), 9111 deletions(-) commit 6f9b38903c06c159d167344821cd7b4bae864380 Author: Dennis Dalessandro Date: Thu Jul 30 09:25:42 2015 -0400 IB/ipath: Deprecate ipath driver and move to staging. It is now time for the ipath driver to begin to be phased out of the kernel. This patch moves the ipath driver from the Infiniband sub tree to the staging area where it will remain until the code is removed from the kernel in a few releases. Reviewed-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford MAINTAINERS | 2 +- drivers/infiniband/Kconfig | 1 - drivers/infiniband/hw/Makefile | 1 - drivers/infiniband/hw/ipath/Kconfig | 14 - drivers/infiniband/hw/ipath/Makefile | 37 - drivers/infiniband/hw/ipath/ipath_common.h | 851 ------- drivers/infiniband/hw/ipath/ipath_cq.c | 483 ---- drivers/infiniband/hw/ipath/ipath_debug.h | 99 - drivers/infiniband/hw/ipath/ipath_diag.c | 551 ----- drivers/infiniband/hw/ipath/ipath_dma.c | 179 -- drivers/infiniband/hw/ipath/ipath_driver.c | 2789 ----------------------- drivers/infiniband/hw/ipath/ipath_eeprom.c | 1183 ---------- drivers/infiniband/hw/ipath/ipath_file_ops.c | 2620 --------------------- drivers/infiniband/hw/ipath/ipath_fs.c | 422 ---- drivers/infiniband/hw/ipath/ipath_iba6110.c | 1940 ---------------- drivers/infiniband/hw/ipath/ipath_init_chip.c | 1066 --------- drivers/infiniband/hw/ipath/ipath_intr.c | 1273 ----------- drivers/infiniband/hw/ipath/ipath_kernel.h | 1373 ----------- drivers/infiniband/hw/ipath/ipath_keys.c | 270 --- drivers/infiniband/hw/ipath/ipath_mad.c | 1521 ------------ drivers/infiniband/hw/ipath/ipath_mmap.c | 174 -- drivers/infiniband/hw/ipath/ipath_mr.c | 425 ---- drivers/infiniband/hw/ipath/ipath_qp.c | 1080 --------- drivers/infiniband/hw/ipath/ipath_rc.c | 1969 ---------------- drivers/infiniband/hw/ipath/ipath_registers.h | 512 ----- drivers/infiniband/hw/ipath/ipath_ruc.c | 734 ------ drivers/infiniband/hw/ipath/ipath_sdma.c | 818 ------- drivers/infiniband/hw/ipath/ipath_srq.c | 380 --- drivers/infiniband/hw/ipath/ipath_stats.c | 347 --- drivers/infiniband/hw/ipath/ipath_sysfs.c | 1238 ---------- drivers/infiniband/hw/ipath/ipath_uc.c | 547 ----- drivers/infiniband/hw/ipath/ipath_ud.c | 580 ----- drivers/infiniband/hw/ipath/ipath_user_pages.c | 229 -- drivers/infiniband/hw/ipath/ipath_user_sdma.c | 875 ------- drivers/infiniband/hw/ipath/ipath_user_sdma.h | 52 - drivers/infiniband/hw/ipath/ipath_verbs.c | 2364 ------------------- drivers/infiniband/hw/ipath/ipath_verbs.h | 939 -------- drivers/infiniband/hw/ipath/ipath_verbs_mcast.c | 364 --- drivers/infiniband/hw/ipath/ipath_wc_ppc64.c | 49 - drivers/infiniband/hw/ipath/ipath_wc_x86_64.c | 144 -- 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 | 2789 +++++++++++++++++++++++ drivers/staging/rdma/ipath/ipath_eeprom.c | 1183 ++++++++++ drivers/staging/rdma/ipath/ipath_file_ops.c | 2620 +++++++++++++++++++++ drivers/staging/rdma/ipath/ipath_fs.c | 422 ++++ drivers/staging/rdma/ipath/ipath_iba6110.c | 1940 ++++++++++++++++ drivers/staging/rdma/ipath/ipath_init_chip.c | 1066 +++++++++ drivers/staging/rdma/ipath/ipath_intr.c | 1273 +++++++++++ drivers/staging/rdma/ipath/ipath_kernel.h | 1373 +++++++++++ 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 | 425 ++++ drivers/staging/rdma/ipath/ipath_qp.c | 1080 +++++++++ drivers/staging/rdma/ipath/ipath_rc.c | 1969 ++++++++++++++++ drivers/staging/rdma/ipath/ipath_registers.h | 512 +++++ drivers/staging/rdma/ipath/ipath_ruc.c | 734 ++++++ 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 | 1238 ++++++++++ drivers/staging/rdma/ipath/ipath_uc.c | 547 +++++ drivers/staging/rdma/ipath/ipath_ud.c | 580 +++++ drivers/staging/rdma/ipath/ipath_user_pages.c | 229 ++ drivers/staging/rdma/ipath/ipath_user_sdma.c | 875 +++++++ drivers/staging/rdma/ipath/ipath_user_sdma.h | 52 + drivers/staging/rdma/ipath/ipath_verbs.c | 2364 +++++++++++++++++++ drivers/staging/rdma/ipath/ipath_verbs.h | 939 ++++++++ drivers/staging/rdma/ipath/ipath_verbs_mcast.c | 364 +++ drivers/staging/rdma/ipath/ipath_wc_ppc64.c | 49 + drivers/staging/rdma/ipath/ipath_wc_x86_64.c | 144 ++ 80 files changed, 30502 insertions(+), 30494 deletions(-) commit 2dfcad3adea961916f013387889bc418c65421cd Author: Doug Ledford Date: Thu Aug 27 14:18:57 2015 -0400 Staging: Add staging/rdma directory and update MAINTAINERS Create the rdma directory in the staging area for use as we deprecate some older drivers and as we bring in some new drivers that are in need of work. Update the MAINTAINERS file so that updates to these files go to linux-rdma@vger.kernel.org. Expected lifespan of this directory is three releases for any deprecated drivers moved here and an unknown, but theoretically bounded amount of time for the new drivers as a new core RDMA transfer library needs to be written and the drivers modified to use it in order for them to move out of this directory. Signed-off-by: Doug Ledford MAINTAINERS | 1 + drivers/staging/Kconfig | 2 ++ drivers/staging/Makefile | 1 + drivers/staging/rdma/Kconfig | 25 +++++++++++++++++++++++++ drivers/staging/rdma/Makefile | 1 + 5 files changed, 30 insertions(+) commit 84cc6ac62d4386f5b6d9ccf2900686b5648e230f Author: Hariprasad S Date: Tue Aug 25 14:08:23 2015 +0530 iw_cxgb4: Add support for clip Add support for ipv6 address handling clip api provided by lld Signed-off-by: Hariprasad Shenai Acked-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/cm.c | 76 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 4 deletions(-) commit 6c26a77124ff94102ea59ac23a54cdad2c49e644 Author: Spencer Baugh Date: Thu Aug 13 12:19:10 2015 -0700 RDMA/cma: fix IPv6 address resolution Resolving a link-local IPv6 address with an unspecified source address was broken by commit 5462eddd7a, which prevented the IPv6 stack from learning the scope id of the link-local IPv6 address, causing random failures as the IP stack chose a random link to resolve the address on. This commit 5462eddd7a made us bail out of cma_check_linklocal early if the address passed in was not an IPv6 link-local address. On the address resolution path, the address passed in is the source address; if the source address is the unspecified address, which is not link-local, we will bail out early. This is mostly correct, but if the destination address is a link-local address, then we will be following a link-local route, and we'll need to tell the IPv6 stack what the scope id of the destination address is. This used to be done by last line of cma_check_linklocal, which is skipped when bailing out early: dev_addr->bound_dev_if = sin6->sin6_scope_id; (In cma_bind_addr, the sin6_scope_id of the source address is set to the sin6_scope_id of the destination address, so this is correct) This line is required in turn for the following line, L279 of addr6_resolve, to actually inform the IPv6 stack of the scope id: fl6.flowi6_oif = addr->bound_dev_if; Since we can only know we are in this failure case when we have access to both the source IPv6 address and destination IPv6 address, we have to deal with this further up the stack. So detect this failure case in cma_bind_addr, and set bound_dev_if to the destination address scope id to correct it. Signed-off-by: Spencer Baugh Signed-off-by: Doug Ledford drivers/infiniband/core/cma.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 7e967fd0b84a843b2475acc67a5a8df138c5f5c0 Author: Jason Gunthorpe Date: Tue Aug 4 17:13:32 2015 -0600 IB/ucma: Fix theoretical user triggered use-after-free Something like this: CPU A CPU B Acked-by: Sean Hefty ======================== ================================ ucma_destroy_id() wait_for_completion() .. anything ucma_put_ctx() complete() .. continues ... ucma_leave_multicast() mutex_lock(mut) atomic_inc(ctx->ref) mutex_unlock(mut) ucma_free_ctx() ucma_cleanup_multicast() mutex_lock(mut) kfree(mc) rdma_leave_multicast(mc->ctx->cm_id,.. Fix it by latching the ref at 0. Once it goes to 0 mc and ctx cannot leave the mutex(mut) protection. The other atomic_inc in ucma_get_ctx is OK because mutex(mut) protects it from racing with ucma_destroy_id. Signed-off-by: Jason Gunthorpe Acked-by: Sean Hefty Signed-off-by: Doug Ledford drivers/infiniband/core/ucma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b8ac3112462900a55a45df8e6098c67a139d8c2d Author: Hariprasad S Date: Mon Jul 27 14:08:52 2015 +0530 iw_cxgb4: set the default MPA version to 2 This enables ORD/IRD negotiation and its about time to enable it by default Signed-off-by: Steve Wise Signed-off-by: Hariprasad Shenai Signed-off-by: Doug Ledford drivers/infiniband/hw/cxgb4/cm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7854550ae6d89bb90980b9885c7a71e471820bf2 Author: Steve Wise Date: Tue Jul 28 09:13:52 2015 -0500 RDMA/iser: Limit sgs to the device fastreg depth Currently the sg tablesize, which dictates fast register page list depth to use, does not take into account the limits of the rdma device. So adjust it once we discover the device fastreg max depth limit. Also adjust the max_sectors based on the resulting sg tablesize. Signed-off-by: Steve Wise Signed-off-by: Doug Ledford drivers/infiniband/ulp/iser/iscsi_iser.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit d6c7276be180fbd0a30cda8fac5c82d483be47b6 Author: Roland Dreier Date: Mon Jul 27 14:43:23 2015 -0700 IB/mlx5: Remove dead code from alloc_cached_mr() The only place that assigns mr inside the loop already does a break. So "if (mr)" will never be true here since the function initializes mr to NULL at the top. We can just drop the extra if and break here. Signed-off-by: Roland Dreier Acked-by: Eli Cohen Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/mr.c | 3 --- 1 file changed, 3 deletions(-) commit d6f1c17e162b2a11e708f28fa93f2f79c164b442 Author: Mike Marciniszyn Date: Tue Jul 21 08:36:07 2015 -0400 IB/qib: Change lkey table allocation to support more MRs The lkey table is allocated with with a get_user_pages() with an order based on a number of index bits from a module parameter. The underlying kernel code cannot allocate that many contiguous pages. There is no reason the underlying memory needs to be physically contiguous. This patch: - switches the allocation/deallocation to vmalloc/vfree - caps the number of bits to 23 to insure at least 1 generation bit o this matches the module parameter description Cc: stable@vger.kernel.org Reviewed-by: Vinit Agnihotri Signed-off-by: Mike Marciniszyn Signed-off-by: Doug Ledford drivers/infiniband/hw/qib/qib_keys.c | 4 ++++ drivers/infiniband/hw/qib/qib_verbs.c | 14 ++++++++++---- drivers/infiniband/hw/qib/qib_verbs.h | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) commit e0238a6a369eaa2e41b2c0321453272fb859f618 Author: Sagi Grimberg Date: Tue Jul 21 14:40:12 2015 +0300 mlx5: Expose correct page_size_cap in device attributes Should be all the page sizes that are supported by the device. Reported-by: Jason Gunthorpe Signed-off-by: Sagi Grimberg Reviewed-by: Jason Gunthorpe Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a3c874200cbcd95ed914ba84f33f571a0ef7adfa Author: Sagi Grimberg Date: Mon Jul 20 19:54:36 2015 +0300 mlx5: Fix missing device local_dma_lkey The mlx5 driver exposes device capability IB_DEVICE_LOCAL_DMA_LKEY but does not set the the device local_dma_lkey. This breaks rpcrdma drivers. Query and set this lkey when creating the device resources. Signed-off-by: Sagi Grimberg Signed-off-by: Doug Ledford drivers/infiniband/hw/mlx5/main.c | 9 ++++++++- drivers/net/ethernet/mellanox/mlx5/core/fw.c | 22 ++++++++++++++++++++++ include/linux/mlx5/device.h | 11 +++++++++++ include/linux/mlx5/driver.h | 1 + 4 files changed, 42 insertions(+), 1 deletion(-) commit d6f5aef298b5e5bd12e5d3ef111a4d0fc727ca70 Author: Javier Martinez Canillas Date: Fri Aug 28 17:30:46 2015 -0700 Input: max8997_haptic - fix module alias The driver is a platform driver and not a I2C driver so its modalias should be exported with MODULE_DEVICE_TABLE(platform,...) instead of MODULE_DEVICE_TABLE(i2c,...). Also, remove the unnecessary MODULE_ALIAS("platform:max8997-haptic") now that the correct module alias is created. Signed-off-by: Javier Martinez Canillas Signed-off-by: Dmitry Torokhov drivers/input/misc/max8997_haptic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 742f452b9b60c228a33e8d35fd2c74cd15bdaa29 Author: Benson Leung Date: Fri Aug 28 17:30:16 2015 -0700 Input: elan_i2c - fix typos for validpage_count Search for "vaildpage_count" and replace with "validpage_count". Signed-off-by: Benson Leung Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 8bb6944e5aabaf9b7977502667a6981733564f85 Author: Jon Hunter Date: Thu Aug 27 10:17:00 2015 +0100 PM / Domains: Fix typo in description of genpd_dev_pm_detach() The function genpd_dev_pm_detach() detaches a device from a PM domain, however, in the description, the "dev" argument for the function is described as the device to "attach" instead of "detach". Correct this. Signed-off-by: Jon Hunter Acked-by: Geert Uytterhoeven Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad440bf40e2846966da44e885bb7d8a1f8384fa6 Author: Geert Uytterhoeven Date: Tue Aug 18 13:38:02 2015 +0200 PM / Domains: Remove unusable governor dummies The governor dummies for the !CONFIG_PM_GENERIC_DOMAINS case are unusable, as a governors is always referred to by taking its address, which you can't do with a literal NULL pointer. I.e. pm_genpd_init(genpd, &simple_qos_governor, false); fails to compile with: error: lvalue required as unary '&' operand Hence just remove the governor dummies. Signed-off-by: Geert Uytterhoeven Acked-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki include/linux/pm_domain.h | 2 -- 1 file changed, 2 deletions(-) commit be5ed55de011bddbb8ef7b3453edf07a26865beb Author: Rajendra Nayak Date: Thu Aug 13 11:51:57 2015 +0530 PM / Domains: Make pm_genpd_init() available to modules Export symbol pm_genpd_init so it can be used in loadable kernel modules Signed-off-by: Rajendra Nayak Reported-by: Stephen Rothwell Acked-by: Geert Uytterhoeven Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 1 + 1 file changed, 1 insertion(+) commit 15dec67ae3ddb222fe6907db299229906ede8143 Author: Geert Uytterhoeven Date: Tue Aug 11 14:50:49 2015 +0200 PM / domains: Align column headers and data in pm_genpd_summary output "domain": header is indented by 4, data by 0 spaces => 0 spaces "/device": header is indented by 11, data by 4 spaces => 4 spaces "slaves": header is indented by 47, data by 49 spaces => 48 spaces Ruler: 1234567890123456789012345678901234567890123456789012345678901234567890 Before: domain status slaves /device runtime status ---------------------------------------------------------------------- a3sp on a2us /devices/platform/e60b0000.i2c suspended After: domain status slaves /device runtime status ---------------------------------------------------------------------- a3sp on a2us /devices/platform/e60b0000.i2c suspended Signed-off-by: Geert Uytterhoeven Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5021282cc483d4126c1704942adb74806f7d15d6 Author: Seiichi Ikarashi Date: Wed Aug 19 14:26:03 2015 +0900 powercap / RAPL: disable the 2nd power limit properly Let rapl_unregister_powercap() disable the second power limit only if it exists. Intel64 SDM Vol.3 14.9 says that the package domain has it but neither the power plane domain nor the DRAM domain has it. Signed-off-by: Seiichi Ikarashi Signed-off-by: Rafael J. Wysocki drivers/powercap/intel_rapl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 404c2db635b0e41697eed165b045cb47fd729dd0 Author: Shreyas B. Prabhu Date: Mon Aug 3 11:46:00 2015 +0530 tools: cpupower: Fix error when running cpupower monitor get_cpu_topology() tries to get topology info from all cpus by reading files in the topology sysfs dir. If a cpu is offlined, since it doesn't have topology dir, this function fails and returns -1. This causes functions relying on get_cpu_topology() to fail. For example- $ cpupower monitor Cannot read number of available processors Fix this by skipping fetching topology info for offline cpus. Signed-off-by: Shreyas B. Prabhu Reported-by: Pavaman Subramaniyam Acked-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/helpers/topology.c | 2 ++ 1 file changed, 2 insertions(+) commit 581a5f2a6111e3d3b22f31a7d93b6bae2627e83a Merge: cc7acad 851345c Author: David S. Miller Date: Fri Aug 28 16:29:59 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next Pablo Neira Ayuso says: ==================== Netfilter updates for net-next The following patchset contains Netfilter/IPVS updates for your net-next tree. In sum, patches to address fallout from the previous round plus updates from the IPVS folks via Simon Horman, they are: 1) Add a new scheduler to IPVS: The weighted overflow scheduling algorithm directs network connections to the server with the highest weight that is currently available and overflows to the next when active connections exceed the node's weight. From Raducu Deaconu. 2) Fix locking ordering in IPVS, always take rtnl_lock in first place. Patch from Julian Anastasov. 3) Allow to indicate the MTU to the IPVS in-kernel state sync daemon. From Julian Anastasov. 4) Enhance multicast configuration for the IPVS state sync daemon. Also from Julian. 5) Resolve sparse warnings in the nf_dup modules. 6) Fix a linking problem when CONFIG_NF_DUP_IPV6 is not set. 7) Add ICMP codes 5 and 6 to IPv6 REJECT target, they are more informative subsets of code 1. From Andreas Herz. 8) Revert the jumpstack size calculation from mark_source_chains due to chain depth miscalculations, from Florian Westphal. 9) Calm down more sparse warning around the Netfilter tree, again from Florian Westphal. ==================== Signed-off-by: David S. Miller commit cc7acad135b7228b56977867afb07d3d54f0cdd3 Merge: c9fd56b 8d3b7dc Author: David S. Miller Date: Fri Aug 28 16:27:28 2015 -0700 Merge branch 'bpf_trace_printk-percent-s' Alexei Starovoitov says: ==================== support for '%s' in bpf_trace_printk v2->v3: fix the comment to mention that strncpy_from_unsafe() returns the length of the string including the trailing NUL. v1->v2: patch 1: generalize FETCH_FUNC_NAME(memory, string) into strncpy_from_unsafe() patch 2: use it in bpf_trace_printk ==================== Signed-off-by: David S. Miller commit 8d3b7dce8622919da5c5822ef7338d6604c9fe6e Author: Alexei Starovoitov Date: Fri Aug 28 15:56:23 2015 -0700 bpf: add support for %s specifier to bpf_trace_printk() %s specifier makes bpf program and kernel debugging easier. To make sure that trace_printk won't crash the unsafe string is copied into stack and unsafe pointer is substituted. The following C program: #include int foo(struct pt_regs *ctx, struct filename *filename) { void *name = 0; bpf_probe_read(&name, sizeof(name), &filename->name); bpf_trace_printk("executed %s\n", name); return 0; } when attached to kprobe do_execve() will produce output in /sys/kernel/debug/tracing/trace_pipe : make-13492 [002] d..1 3250.997277: : executed /bin/sh sh-13493 [004] d..1 3250.998716: : executed /usr/bin/gcc gcc-13494 [002] d..1 3250.999822: : executed /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 gcc-13495 [002] d..1 3251.006731: : executed /usr/bin/as gcc-13496 [002] d..1 3251.011831: : executed /usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 collect2-13497 [000] d..1 3251.012941: : executed /usr/bin/ld Suggested-by: Brendan Gregg Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/trace/bpf_trace.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) commit 1a6877b9c0c2ad901d4335d909432d3bb6d3a330 Author: Alexei Starovoitov Date: Fri Aug 28 15:56:22 2015 -0700 lib: introduce strncpy_from_unsafe() generalize FETCH_FUNC_NAME(memory, string) into strncpy_from_unsafe() and fix sparse warnings that were present in original implementation. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/uaccess.h | 2 ++ kernel/trace/trace_kprobe.c | 20 ++++---------------- lib/strncpy_from_user.c | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 16 deletions(-) commit c9fd56b34efd06a031cbc918d288f09e38173ff9 Author: Nikolay Aleksandrov Date: Fri Aug 28 15:44:25 2015 -0700 netpoll: warn on netpoll_send_udp users who haven't disabled irqs Make sure we catch future netpoll_send_udp users who use it without disabling irqs and also as a hint for poll_controller users. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/core/netpoll.c | 2 ++ 1 file changed, 2 insertions(+) commit a9de9777d613500b089a7416f936bf3ae5f070d2 Author: Pablo Neira Ayuso Date: Fri Aug 28 21:01:43 2015 +0200 netfilter: nfnetlink: work around wrong endianess in res_id field The convention in nfnetlink is to use network byte order in every header field as well as in the attribute payload. The initial version of the batching infrastructure assumes that res_id comes in host byte order though. The only client of the batching infrastructure is nf_tables, so let's add a workaround to address this inconsistency. We currently have 11 nfnetlink subsystems according to NFNL_SUBSYS_COUNT, so we can assume that the subsystem 2560, ie. htons(10), will not be allocated anytime soon, so it can be an alias of nf_tables from the nfnetlink batching path when interpreting the res_id field. Based on original patch from Florian Westphal. Reported-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nfnetlink.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 96be5f2806cd65a2ebced3bfcdf7df0116e6c4a6 Author: Elad Raz Date: Sat Aug 22 08:44:11 2015 +0300 netfilter: ipset: Fixing unnamed union init In continue to proposed Vinson Lee's post [1], this patch fixes compilation issues founded at gcc 4.4.7. The initialization of .cidr field of unnamed unions causes compilation error in gcc 4.4.x. References Visible links [1] https://lkml.org/lkml/2015/7/5/74 Signed-off-by: Elad Raz Signed-off-by: Pablo Neira Ayuso net/netfilter/ipset/ip_set_hash_netnet.c | 20 ++++++++++++++++++-- net/netfilter/ipset/ip_set_hash_netportnet.c | 20 ++++++++++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) commit 55cc051915fd066f46c56ebd60ba486ad11e0e29 Merge: c1b3b19 ef899c0 Author: David S. Miller Date: Fri Aug 28 14:15:25 2015 -0700 Merge branch 'phylib-simplifications' Sergei Shtylyov says: ==================== Some phylib simplifications Here's 2 patches against DaveM's 'net-next.git' repo. We simplify a bogus string of type casts in the 1st patch and make the code respect some coding standards of the networking code in the 2nd one. I may follow with fixing of checkpatch.pl's complaints. if I have time.. ==================== Signed-off-by: David S. Miller commit ef899c0778a39063816e19d749a688c06a6ac78e Author: Sergei Shtylyov Date: Fri Aug 28 21:35:14 2015 +0300 phylib: simplify NULL checks Fix scripts/checkpatch.pl's messages like: CHECK: Comparison to NULL could be written "!phydrv->read_mmd_indirect" BTW, it doesn't detect the reversed comparisons (which I've fixed as well). Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/phy/phy.c | 4 ++-- drivers/net/phy/phy_device.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit d3765f08d6f32f17ac898ec1f19957b322d4157f Author: Sergei Shtylyov Date: Fri Aug 28 21:34:34 2015 +0300 phylib: simplify bogus phy_device_create() result Get rid of the bogus string of type casts where ERR_PTR() is enough. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/phy/phy_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c1b3b19923a371c9e099c30372d376b02fe66088 Author: Daniel Borkmann Date: Fri Aug 28 18:46:39 2015 +0200 net: sched: don't break line in tc_classify loop notification Just some minor noise follow-up to address some stylistic issues of commit 3b3ae880266d ("net: sched: consolidate tc_classify{,_compat}"). Accidentally v1 instead of v2 of that commit got applied, so this patch adds the relative diff. Suggested-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/sched/sch_api.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit b0fbdae127a3968688ff7b474e9164dc4bf30dd5 Author: Shradha Shah Date: Fri Aug 28 10:55:42 2015 +0100 sfc: Allow driver to cope with a lower number of VIs than it needs for RSS Previously, the driver would refuse to load if it couldn't secure enough VIs from the MC to fulfill its RSS requirements. This was causing probe to fail on later functions in configurations where we'd run out of VIs, such as having many VFs. This change allows the driver to load with fewer VIs, down to a minimum of 2. A warning will be printed saying that RSS requirements were not met, possibly affecting performance. efx->max_tx_channels needs to be set to avoid going down the failure path in efx_probe_nic() immediately in the loop after the probe() NIC-type function. Also, Set rc=ENOSPC when bombing out of efx_probe_nic due to lack of VIs. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 39 ++++++++++++++++++------ drivers/net/ethernet/sfc/efx.c | 57 ++++++++++++++++++++++++----------- drivers/net/ethernet/sfc/efx.h | 1 + drivers/net/ethernet/sfc/falcon.c | 1 + drivers/net/ethernet/sfc/net_driver.h | 1 + drivers/net/ethernet/sfc/siena.c | 1 + 6 files changed, 72 insertions(+), 28 deletions(-) commit 9ca678d1dff610f7df6ac9b31fd9152c4426f815 Merge: 2fc32c9 27d868b 91f15fb Author: Bjorn Helgaas Date: Fri Aug 28 15:53:08 2015 -0500 Merge branches 'pci/enumeration' and 'pci/misc' into next * pci/enumeration: PCI: Set MPS to match upstream bridge PCI: Move MPS configuration check to pci_configure_device() PCI: Drop references acquired by of_parse_phandle() PCI/MSI: Remove unused pcibios_msi_controller() hook ARM/PCI: Remove msi_controller from struct pci_sys_data ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() PCI: Add pci_scan_root_bus_msi() ARM/PCI: Replace panic with WARN messages on failures PCI: generic: Add arm64 support PCI: Build setup-irq.o for arm64 PCI: generic: Remove dependency on ARM-specific struct hw_pci ARM/PCI: Set MPS before pci_bus_add_devices() * pci/misc: PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI commit a69265e9f65a6747c27b01b4030ad85d71aa11ba Author: Hariprasad Shenai Date: Fri Aug 28 11:17:12 2015 +0530 cxgb4: Force uninitialized state if FW in adapter is unsupported Forcing uninitialized state allows us to upgrade and reinitialize the adapter. FW_VERSION_T4 = 1.4.0.0 FW_VERSION_T5 = 0.0.0.0 FW_VERSION_T6 = 0.0.0.0 At this point driver supports above and greater than above version. If FW in adapter < min FW_VERSION driver supports tries to upgrade the FW If FW in adapter >= FW_VERSION driver supports then it follows normal path Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 1 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 4 ++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 56 +++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4fw_version.h | 11 +++++ 4 files changed, 72 insertions(+) commit 8b72ca67fed39816b732b0cf53a1c7f2efc6400d Merge: 9723e6a ed29266 Author: David S. Miller Date: Fri Aug 28 13:43:33 2015 -0700 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - code beautification - remove obsolete 'deleted' attribute for bat-gw node - increase internal version number - prevent potential access to netdev object after deregistration - set needed_head/tail_room for batman virtual interface ==================== Signed-off-by: David S. Miller commit 9723e6abc70a472c726d5d5ac6402a2d1bb10882 Author: Valentin Rothberg Date: Fri Aug 28 10:39:56 2015 +0200 openswitch: fix typo CONFIG_NF_CONNTRACK_LABEL Fix typo in conntrack.c s/CONFIG_NF_CONNTRACK_LABEL/CONFIG_NF_CONNTRACK_LABELS/ Signed-off-by: Valentin Rothberg Signed-off-by: David S. Miller net/openvswitch/conntrack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe55565ef251d486c2c97779512ad22faf57384c Merge: 8f58336 192132b Author: David S. Miller Date: Fri Aug 28 13:32:37 2015 -0700 Merge branch 'vrf-inetpeer' David Ahern says: ==================== net: Refactor inetpeer cache and add support for VRFs Per Dave's comment on the version 1 patch adding VRF support to inetpeer cache by explicitly making the address + index a key. Refactored the inetpeer code in the process; mostly impacts the use by tcp_metrics. ==================== Signed-off-by: David S. Miller commit 192132b9a034d87566294be0fba5f8f75c2cf16b Author: David Ahern Date: Thu Aug 27 16:07:03 2015 -0700 net: Add support for VRFs to inetpeer cache inetpeer caches based on address only, so duplicate IP addresses within a namespace return the same cached entry. Enhance the ipv4 address key to contain both the IPv4 address and VRF device index. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/inetpeer.h | 17 ++++++++++++----- net/ipv4/icmp.c | 3 ++- net/ipv4/ip_fragment.c | 3 ++- net/ipv4/route.c | 7 +++++-- 4 files changed, 21 insertions(+), 9 deletions(-) commit 5345c2e12d41f815c1009c9dee72f3d5fcfd4282 Author: David Ahern Date: Thu Aug 27 16:07:02 2015 -0700 net: Refactor inetpeer address struct Move the inetpeer_addr_base union to inetpeer_addr and drop inetpeer_addr_base. Both the a6 and in6_addr overlays are not needed; drop the __be32 version and rename in6 to a6 for consistency with ipv4. Add a new u32 array to the union which removes the need for the typecast in the compare function and the use of a consistent arg for both ipv4 and ipv6 addresses which makes the compare function more readable. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/inetpeer.h | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit d39d14ffa24cca9f0e44aa4a63315f4c44c56a93 Author: David Ahern Date: Thu Aug 27 16:07:01 2015 -0700 net: Add helper function to compare inetpeer addresses tcp_metrics and inetpeer both have functions to compare inetpeer addresses. Consolidate into 1 version. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/inetpeer.h | 16 ++++++++++++++++ net/ipv4/inetpeer.c | 20 ++------------------ net/ipv4/tcp_metrics.c | 6 +----- 3 files changed, 19 insertions(+), 23 deletions(-) commit 3abef286cf2f138de353fb0b54453621de961043 Author: David Ahern Date: Thu Aug 27 16:07:00 2015 -0700 net: Add set,get helpers for inetpeer addresses Use inetpeer set,get helpers in tcp_metrics rather than peeking into the inetpeer_addr struct. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/inetpeer.h | 23 ++++++++++++++++++ net/ipv4/tcp_metrics.c | 65 +++++++++++++++++++++----------------------------- 2 files changed, 50 insertions(+), 38 deletions(-) commit 72afa352d6a3d4da7783b5ddee02b94be49e051a Author: David Ahern Date: Thu Aug 27 16:06:59 2015 -0700 net: Introduce ipv4_addr_hash and use it for tcp metrics Refactors a common line into helper function. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/ip.h | 5 +++++ net/ipv4/tcp_metrics.c | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) commit 8f58336d3f78aef61c8023c18546155f5fdf3224 Author: David Ahern Date: Thu Aug 27 10:10:50 2015 -0700 net: Add ethernet header for pass through VRF device The change to use a custom dst broke tcpdump captures on the VRF device: $ tcpdump -n -i vrf10 ... 05:32:29.009362 IP 10.2.1.254 > 10.2.1.2: ICMP echo request, id 21989, seq 1, length 64 05:32:29.009855 00:00:40:01:8d:36 > 45:00:00:54:d6:6f, ethertype Unknown (0x0a02), length 84: 0x0000: 0102 0a02 01fe 0000 9181 55e5 0001 bd11 ..........U..... 0x0010: da55 0000 0000 bb5d 0700 0000 0000 1011 .U.....]........ 0x0020: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0030: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0040: 3233 3435 3637 234567 Local packets going through the VRF device are missing an ethernet header. Fix by adding one and then stripping it off before pushing back to the IP stack. With this patch you get the expected dumps: ... 05:36:15.713944 IP 10.2.1.254 > 10.2.1.2: ICMP echo request, id 23795, seq 1, length 64 05:36:15.714160 IP 10.2.1.2 > 10.2.1.254: ICMP echo reply, id 23795, seq 1, length 64 ... Signed-off-by: David Ahern Signed-off-by: David S. Miller drivers/net/vrf.c | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) commit 274b045509175db0405c784be85e8cce116e6f7d Author: Chas Williams <3chas3@gmail.com> Date: Thu Aug 27 12:28:46 2015 -0400 net/xen-netfront: only napi_synchronize() if running If an interface isn't running napi_synchronize() will hang forever. [ 392.248403] rmmod R running task 0 359 343 0x00000000 [ 392.257671] ffff88003760fc88 ffff880037193b40 ffff880037193160 ffff88003760fc88 [ 392.267644] ffff880037610000 ffff88003760fcd8 0000000100014c22 ffffffff81f75c40 [ 392.277524] 0000000000bc7010 ffff88003760fca8 ffffffff81796927 ffffffff81f75c40 [ 392.287323] Call Trace: [ 392.291599] [] schedule+0x37/0x90 [ 392.298553] [] schedule_timeout+0x14b/0x280 [ 392.306421] [] ? irq_free_descs+0x69/0x80 [ 392.314006] [] ? internal_add_timer+0xb0/0xb0 [ 392.322125] [] msleep+0x37/0x50 [ 392.329037] [] xennet_disconnect_backend.isra.24+0xda/0x390 [xen_netfront] [ 392.339658] [] xennet_remove+0x2c/0x80 [xen_netfront] [ 392.348516] [] xenbus_dev_remove+0x59/0xc0 [ 392.356257] [] __device_release_driver+0x87/0x120 [ 392.364645] [] driver_detach+0xb8/0xc0 [ 392.371989] [] bus_remove_driver+0x59/0xe0 [ 392.379883] [] driver_unregister+0x30/0x70 [ 392.387495] [] xenbus_unregister_driver+0x12/0x20 [ 392.395908] [] netif_exit+0x10/0x775 [xen_netfront] [ 392.404877] [] SyS_delete_module+0x1d8/0x230 [ 392.412804] [] system_call_fastpath+0x12/0x71 Signed-off-by: Chas Williams <3chas3@gmail.com> Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit df2cf4a78e488d26728590cb3c6b4fe4c4862c77 Author: Philip Downey Date: Thu Aug 27 16:46:26 2015 +0100 IGMP: Inhibit reports for local multicast groups The range of addresses between 224.0.0.0 and 224.0.0.255 inclusive, is reserved for the use of routing protocols and other low-level topology discovery or maintenance protocols, such as gateway discovery and group membership reporting. Multicast routers should not forward any multicast datagram with destination addresses in this range, regardless of its TTL. Currently, IGMP reports are generated for this reserved range of addresses even though a router will ignore this information since it has no purpose. However, the presence of reserved group addresses in an IGMP membership report uses up network bandwidth and can also obscure addresses of interest when inspecting membership reports using packet inspection or debug messages. Although the RFCs for the various version of IGMP (e.g.RFC 3376 for v3) do not specify that the reserved addresses be excluded from membership reports, it should do no harm in doing so. In particular there should be no adverse effect in any IGMP snooping functionality since 224.0.0.x is specifically excluded as per RFC 4541 (IGMP and MLD Snooping Switches Considerations) section 2.1.2. Data Forwarding Rules: 2) Packets with a destination IP (DIP) address in the 224.0.0.X range which are not IGMP must be forwarded on all ports. IGMP reports for local multicast groups can now be optionally inhibited by means of a system control variable (by setting the value to zero) e.g.: echo 0 > /proc/sys/net/ipv4/igmp_link_local_mcast_reports To retain backwards compatibility the previous behaviour is retained by default on system boot or reverted by setting the value back to non-zero e.g.: echo 1 > /proc/sys/net/ipv4/igmp_link_local_mcast_reports Signed-off-by: Philip Downey Signed-off-by: David S. Miller include/linux/igmp.h | 1 + net/ipv4/igmp.c | 26 +++++++++++++++++++++++++- net/ipv4/sysctl_net_ipv4.c | 7 +++++++ 3 files changed, 33 insertions(+), 1 deletion(-) commit d7d2d89d4b0afa8f4c2b169475a0c6e43553c146 Author: Corinna Vinschen Date: Thu Aug 27 17:11:48 2015 +0200 r8169: Add software counter for multicast packages The multicast hardware counter on 8168/8111 chips is only 32 bit while the statistics in struct rtnl_link_stats64 are 64 bit. Given that statistics are requested on an irregular basis, an overflow of the hardware counter can go unnoticed. To count even very large numbers of multicast packets reliably, add a software counter and remove previously applied code to fill the multicast field requested by @rtl8169_get_stats64 with the values read from the rx_multicast hardware counter. Signed-off-by: Corinna Vinschen Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 710105fda7a7f350c9fb22e7f61f74c3dc0fe514 Author: Hannes Reinecke Date: Thu Aug 27 14:17:02 2015 +0200 scsi_dh: return SCSI_DH_NOTCONN in scsi_dh_activate() When calling scsi_dh_activate() we should be returning SCSI_DH_NOTCONN if the device handler couldn't be attached. Reviewed-by: Bart van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_dh.c | 1 + 1 file changed, 1 insertion(+) commit d44227749500d8b88a1c079bc04f69187eaf8747 Author: Christoph Hellwig Date: Thu Aug 27 14:17:01 2015 +0200 scsi_dh: don't allow to detach device handlers at runtime The I/O submission and completion paths call into the device handler without any synchronization agains detachment. So disallow detaching device handlers at runtime. Signed-off-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_dh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e959ed9a44c5239863ca6db42cb37130bee3c7a3 Author: Christoph Hellwig Date: Thu Aug 27 14:17:00 2015 +0200 scsi_dh: add a common helper to get a scsi_device from a request_queue And cleanup the various messy opencoded versions of this. Note that this moves the sdev_state checks outside the queue_lock coverage, but as we don't hold the lock over the activation they are only advisory anyway. Signed-off-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_dh.c | 99 +++++++++++++++++++++++--------------------------- 1 file changed, 46 insertions(+), 53 deletions(-) commit ee14c674e8fc57251223054fb52dc0ecfe711028 Author: Christoph Hellwig Date: Thu Aug 27 14:16:59 2015 +0200 scsi_dh: kill struct scsi_dh_data Add a ->handler and a ->handler_data field to struct scsi_device and kill this indirection. Also move struct scsi_device_handler to scsi_dh.h so that changes to it don't require rebuilding every SCSI LLDD. Signed-off-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/device_handler/scsi_dh_alua.c | 25 ++++------ drivers/scsi/device_handler/scsi_dh_emc.c | 29 +++++------ drivers/scsi/device_handler/scsi_dh_hp_sw.c | 25 ++++------ drivers/scsi/device_handler/scsi_dh_rdac.c | 30 +++++------- drivers/scsi/scsi_dh.c | 75 +++++++++++------------------ drivers/scsi/scsi_error.c | 6 +-- drivers/scsi/scsi_lib.c | 6 +-- include/scsi/scsi_device.h | 25 ++-------- include/scsi/scsi_dh.h | 17 +++++++ 9 files changed, 98 insertions(+), 140 deletions(-) commit d95dbff2a41e934cd8789734b34dc591e78ba11c Author: Christoph Hellwig Date: Thu Aug 27 14:16:58 2015 +0200 scsi_dh: move device matching to the core code Add a single list of devices that need non-ALUA device handlers to the core scsi_dh code so that we can autoload the modules for them at probe time. While this is a little ugly in terms of architecture it actually significantly simplifies the code in addition to the new autoloading functionality. Signed-off-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Acked-by: Mike Snitzer Signed-off-by: James Bottomley drivers/scsi/device_handler/scsi_dh_alua.c | 6 --- drivers/scsi/device_handler/scsi_dh_emc.c | 29 ---------- drivers/scsi/device_handler/scsi_dh_hp_sw.c | 30 ----------- drivers/scsi/device_handler/scsi_dh_rdac.c | 50 ----------------- drivers/scsi/scsi_dh.c | 84 ++++++++++++++++++++++------- include/scsi/scsi_device.h | 1 - 6 files changed, 66 insertions(+), 134 deletions(-) commit 086b91d052ebe4ead5d28021afe3bdfd70af15bf Author: Christoph Hellwig Date: Thu Aug 27 14:16:57 2015 +0200 scsi_dh: integrate into the core SCSI code Stop building scsi_dh as a separate module and integrate it fully into the core SCSI code with explicit callouts at bus scan time. For now the callouts are placed at the same point as the old bus notifiers were called, but in the future we will be able to look at ALUA INQUIRY data earlier on. Note that this also means that the device handler modules need to be loaded by the time we scan the bus. The next patches will add support for autoloading device handlers at bus scan time to make sure they are always loaded if they are enabled in the kernel config. Signed-off-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Acked-by: Mike Snitzer Signed-off-by: James Bottomley drivers/scsi/Makefile | 1 + drivers/scsi/device_handler/Kconfig | 2 +- drivers/scsi/device_handler/Makefile | 1 - drivers/scsi/scsi_dh.c | 183 +++-------------------------------- drivers/scsi/scsi_priv.h | 9 ++ drivers/scsi/scsi_sysfs.c | 10 ++ include/scsi/scsi_dh.h | 2 +- 7 files changed, 34 insertions(+), 174 deletions(-) commit daaa858b7a6bb497f11c2aae555053b9c047824b Author: Christoph Hellwig Date: Thu Aug 27 14:16:56 2015 +0200 scsi_dh: move to drivers/scsi Prepare for building scsi_dh.c into the core SCSI module by moving it to drivers/scsi. Signed-off-by: Christoph Hellwig Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/device_handler/scsi_dh.c | 571 ---------------------------------- drivers/scsi/scsi_dh.c | 571 ++++++++++++++++++++++++++++++++++ 2 files changed, 571 insertions(+), 571 deletions(-) commit 566079c849cfe538e908c44ac11a9c4638db8f91 Author: Christoph Hellwig Date: Thu Aug 27 14:16:55 2015 +0200 dm-mpath, scsi_dh: request scsi_dh modules in scsi_dh, not dm-mpath This way we can reused the same code any attachment method, not just those requested from dm-mpath. [jejb: fixup checkpatch error] Signed-off-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Reviewed-by: Hannes Reinecke Acked-by: Mike Snitzer Signed-off-by: James Bottomley drivers/md/dm-mpath.c | 6 ------ drivers/scsi/device_handler/scsi_dh.c | 36 ++++++++++++++++++----------------- include/scsi/scsi_dh.h | 5 ----- 3 files changed, 19 insertions(+), 28 deletions(-) commit 1bab0de0274fbe8c8ac92179e6705584c55ed169 Author: Christoph Hellwig Date: Thu Aug 27 14:16:54 2015 +0200 dm-mpath, scsi_dh: don't let dm detach device handlers While allowing dm-mpath to attach device handlers is a functionality we need for backwards compatibility reason there is no reason to reference count them and detach them if dm-mpath stops using the device for some reason. If the device handler works for the given device it can just stay attached, and we can take the retain_hw_handler codepath. Signed-off-by: Christoph Hellwig Acked-by: Mike Snitzer Acked-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/md/dm-mpath.c | 21 +++----- drivers/scsi/device_handler/scsi_dh.c | 96 ++++++++--------------------------- include/scsi/scsi_device.h | 1 - include/scsi/scsi_dh.h | 5 -- 4 files changed, 28 insertions(+), 95 deletions(-) commit 36dd5acd196574d41de3e81d8264df475bbb7123 Author: Hannes Reinecke Date: Mon Jul 6 13:07:58 2015 +0200 aic94xx: Skip reading user settings if flash is not found If no user settings are found it's pointless trying to read them from flash. So skip that step. This also fixes a compilation warning about uninitialized variables in aic94xx. Signed-off-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: James Bottomley drivers/scsi/aic94xx/aic94xx_sds.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit e35d7f27fbd51a09a41a5439e39f22a3d102c00b Author: Gabriel Krisman Bertazi Date: Wed Aug 19 11:47:06 2015 -0300 ipr: Enable SIS pipe commands for SIS-32 devices. Remove unnecessary check that disabled SIS pipe commands for SIS-32 devices. This change was sufficient to enable raw mode and send SIS pipe commands for a 57B3 device. Fixes: f8ee25d7d239 ("ipr: AF DASD raw mode implementation in ipr driver") Signed-off-by: Gabriel Krisman Bertazi Reviewed-by: Wen Xiong Acked-by: Brian King Signed-off-by: James Bottomley drivers/scsi/ipr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3cb4fc1fcae9647c594bc2b8fda1b818f4fb757f Author: Gabriel Krisman Bertazi Date: Wed Aug 19 11:47:05 2015 -0300 ipr: Inhibit underlength data check for AFDASD in raw mode. Disable underlength error verification based on count of bytes actually transferred for AF DASD devices when SIS pipe mode is enabled. This avoids unexpected underlength errors when issuing some commands in raw mode. Signed-off-by: Gabriel Krisman Bertazi Reviewed-by: Wen Xiong Acked-by: Brian King Signed-off-by: James Bottomley drivers/scsi/ipr.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 917522aae169ad02010dcee6ae42c16155bcd285 Author: Frederic Danis Date: Fri Aug 28 15:44:00 2015 +0200 Bluetooth: hci_bcm: Fix crash on suspend If bcm_suspend is called whithout device opened there is a crash as it tries to use bdev->hu which is NULL. Rename bcm_device_list_lock to bcm_device_lock as it does not only apply to bcm_device_list. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) commit 6e7a3840745c950c37d37cbb0af2e753a765d4ec Author: Chunming Zhou Date: Thu Aug 27 13:46:09 2015 +0800 drm/amdgpu: use IB for fill_buffer instead of direct command Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 12 ++++++------ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 12 ++++++------ drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 12 ++++++------ 4 files changed, 20 insertions(+), 20 deletions(-) commit 8f8202f771c182a7244caa5880f50def1bedd713 Author: Christian König Date: Thu May 7 15:19:25 2015 +0200 drm/amdgpu: stop trying to suspend UVD sessions v2 Saving the current UVD state on suspend and restoring it on resume just doesn't work reliable. Just close cleanup all sessions on suspend. Ported from radeon commit "12e49feadff6d7b7ebbe852b36943a71524d8d34". v2: rebased Signed-off-by: Christian König Reviewed-by: Alex Deucher (v1) drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 42 +++++++++++++++------------------ 2 files changed, 19 insertions(+), 24 deletions(-) commit e61235db62c5e68e56e59bea62b88f9f3d7a3cf5 Author: Christian König Date: Tue Aug 25 11:05:36 2015 +0200 drm/amdgpu: add scheduler dependency callback v2 This way the scheduler doesn't wait in it's work thread any more. v2: fix race conditions Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 7 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 22 ++++++++++++++++++++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 22 ++++++++++++++++++++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 3 +++ 5 files changed, 55 insertions(+) commit 69bd5bf13a8eccb4db5f26de608556416a56d973 Author: Christian König Date: Wed Aug 26 11:31:23 2015 +0200 drm/amdgpu: let the scheduler work more with jobs v2 v2: fix another race condition Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 61 ++++++++++++++++----------- 1 file changed, 37 insertions(+), 24 deletions(-) commit 86b7709d48f0df8796bddd7e1ce45c6fb7a7c6ec Author: Alex Deucher Date: Thu Aug 27 09:52:22 2015 -0400 drm/radeon: fix HDMI quantization_range for pre-DCE5 asics Support for output_csc is only available on DCE5 and newer so don't mess with the HDMI quantization_range on pre-DCE5 asics. bug: https://bugs.freedesktop.org/show_bug.cgi?id=83226 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_audio.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 851345c5bbb4644911f7c351c042559a71f57d19 Author: Florian Westphal Date: Fri Aug 28 00:16:21 2015 +0200 netfilter: reduce sparse warnings bridge/netfilter/ebtables.c:290:26: warning: incorrect type in assignment (different modifiers) -> remove __pure annotation. ipv6/netfilter/ip6t_SYNPROXY.c:240:27: warning: cast from restricted __be16 -> switch ntohs to htons and vice versa. netfilter/core.c:391:30: warning: symbol 'nfq_ct_nat_hook' was not declared. Should it be static? -> delete it, got removed net/netfilter/nf_synproxy_core.c:221:48: warning: cast to restricted __be32 -> Use __be32 instead of u32. Tested with objdiff that these changes do not affect generated code. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/bridge/netfilter/ebtables.c | 2 +- net/ipv6/netfilter/ip6t_SYNPROXY.c | 2 +- net/netfilter/core.c | 3 --- net/netfilter/nf_synproxy_core.c | 6 +++--- 4 files changed, 5 insertions(+), 8 deletions(-) commit 98dbbfc3f1a555194e784304d930d2aafde3e2a3 Author: Florian Westphal Date: Wed Aug 26 23:20:51 2015 +0200 Revert "netfilter: xtables: compute exact size needed for jumpstack" This reverts commit 98d1bd802cdbc8f56868fae51edec13e86b59515. mark_source_chains will not re-visit chains, so *filter :INPUT ACCEPT [365:25776] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [217:45832] :t1 - [0:0] :t2 - [0:0] :t3 - [0:0] :t4 - [0:0] -A t1 -i lo -j t2 -A t2 -i lo -j t3 -A t3 -i lo -j t4 # -A INPUT -j t4 # -A INPUT -j t3 # -A INPUT -j t2 -A INPUT -j t1 COMMIT Will compute a chain depth of 2 if the comments are removed. Revert back to counting the number of chains for the time being. Reported-by: Cong Wang Reported-by: Hannes Frederic Sowa Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/arp_tables.c | 19 +++++++------------ net/ipv4/netfilter/ip_tables.c | 28 ++++++++++------------------ net/ipv6/netfilter/ip6_tables.c | 23 ++++++++--------------- 3 files changed, 25 insertions(+), 45 deletions(-) commit 618353b1f34947b3a399d6f51934f10df40e42ff Author: Kuba Pawlak Date: Fri Aug 28 13:05:22 2015 +0100 Bluetooth: Fix SCO link type handling on connection complete Synchronous connections are initially created with type eSCO. Link manager may reject proposed link parameters, which triggers connection setup retry with a different set. Link type embedded in responses should be disregarded until Synchronous Connect Complete returns Success (0x00). Current code updates link type every time which creates an issue when link type changes to SCO and back to eSCO on further attepts. Issue happens with BlackBerry 9100 and 9700 with Intel WilkinsPeak on third connection setup attept 2015-05-18 01:27:57.332242 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17 handle 256 voice setting 0x0060 ptype 0x0380 2015-05-18 01:27:57.333604 > HCI Event: Command Status (0x0f) plen 4 Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1 2015-05-18 01:27:57.334614 > HCI Event: Synchronous Connect Complete (0x2c) plen 17 status 0x1a handle 0 bdaddr 30:7C:30:B3:A8:86 type SCO Error: Unsupported Remote Feature / Unsupported LMP Feature 2015-05-18 01:27:57.334895 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17 handle 256 voice setting 0x0060 ptype 0x0380 2015-05-18 01:27:57.335601 > HCI Event: Command Status (0x0f) plen 4 Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1 2015-05-18 01:27:57.336610 > HCI Event: Synchronous Connect Complete (0x2c) plen 17 status 0x1a handle 0 bdaddr 30:7C:30:B3:A8:86 type SCO Error: Unsupported Remote Feature / Unsupported LMP Feature 2015-05-18 01:27:57.336685 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17 handle 256 voice setting 0x0060 ptype 0x03c8 2015-05-18 01:27:57.337603 > HCI Event: Command Status (0x0f) plen 4 Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1 2015-05-18 01:27:57.342608 > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 1 2015-05-18 01:27:57.377631 > HCI Event: Synchronous Connect Complete (0x2c) plen 17 status 0x00 handle 257 bdaddr 30:7C:30:B3:A8:86 type eSCO Air mode: CVSD Signed-off-by: Kuba Pawlak Signed-off-by: Marcel Holtmann net/bluetooth/hci_event.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 1ab1f239bf17e91b183a0f18fbb22722ff16d164 Author: Loic Poulain Date: Thu Aug 27 07:21:51 2015 +0200 Bluetooth: hci_intel: Add support for platform driver A platform device can be used to provide some specific resources in order to manage the controller. In this first patch we retrieve the reset gpio which is used to power on/off the controller. The main issue is to match the current tty with the correct pdev. In case of ACPI, we can easily find the right tty/pdev pair because they are both child of the same UART port. If controller is powered-on from the driver, we need to wait for a HCI boot event before being able to send any command. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_intel.c | 202 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 189 insertions(+), 13 deletions(-) commit 0ed97e829458496cc41ff8c39eb330d5a2247191 Author: Marcel Holtmann Date: Thu Aug 27 08:57:39 2015 +0200 Bluetooth: btintel: Add MODULE_FIRMWARE entries for iBT 3.0 controllers The iBT 3.0 controllers need intel/ibt-11-5.sfi and intel/ibt-11-5.ddc firmware files from linux-firmware repository. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btintel.c | 2 ++ 1 file changed, 2 insertions(+) commit 5075edae086ff1c09e66699b7a27e1589ca75a3f Author: Minjune Kim Date: Thu Aug 27 13:21:52 2015 +0900 Bluetooth: btusb: Correct typos based on checkpatch.pl Signed-off-by: Minjune Kim Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ff2895592f0fccc59332d5c7d4917ccbecd7468e Author: Loic Poulain Date: Tue Aug 25 17:55:44 2015 +0200 Bluetooth: hci_intel: Add Intel baudrate configuration support Implement the set_baudrate callback for hci_intel. - Controller requires a read Intel version command before updating its baudrate. - The operation consists in an async cmd since the controller does not respond at the same speed. - Wait 100ms to let the controller change its baudrate. - Clear RTS until we change our own UART speed Manage speed change in the setup function, we need to restore the oper speed once chip has booted on patched firmware. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_intel.c | 119 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) commit e54991677e1c8060ba5642472cbd9a0954298d01 Author: Loic Poulain Date: Mon Aug 24 18:57:57 2015 +0200 Bluetooth: hci_uart: Fix zero len data packet reception issue Packets with a variable length value equal to zero were not received. Since no more data expected (and input buffer entirely consumed), we need to complete/forward the packet immediately instead of waiting for more data. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_h4.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 4e1795de10903ae561872c54a72fa1bcf78f49cd Author: Stefan Schmidt Date: Thu Aug 20 12:09:47 2015 +0200 nl802154: stricter input checking for boolean inputs So far we handled boolean input by forcing them with !! and assigning them into a bool. This allowed userspace to send values > 1 which were used as 1. We should be stricter here and return -EINVAL for all but 0 or 1. Signed-off-by: Stefan Schmidt Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/nl802154.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit df945360ce07ca592464e44fdd2ce61ee1536e1e Author: Nicholas Krause Date: Tue Aug 18 21:23:01 2015 -0400 Bluetooth: Make the function sco_conn_del have a return type of void This makes the function sco_conn_del have a return type of void now due to this function always running successfully and thus never needing to signal its caller when a non recoverable internal failure occurs by returning a error code to its respective caller. Signed-off-by: Nicholas Krause Signed-off-by: Marcel Holtmann net/bluetooth/sco.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d4902632ffe5d6958bd267a6712575e3a312a6e2 Author: Shengzhen Li Date: Wed Aug 19 03:12:19 2015 -0700 Bluetooth: btmrvl: change device pointer passed to dev_coredumpv This change ensures we will get driver name as 'btmrvl_sdio' in udev event. Signed-off-by: Shengzhen Li Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann drivers/bluetooth/btmrvl_sdio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5397df15fd993acd23d9590dbb29d39219d80e3d Author: Jiri Kosina Date: Fri Aug 28 20:46:42 2015 +0200 HID: wacom: wacom_setup_numbered_buttons is local to wacom_wac wacom_setup_numbered_buttons() is not used outside of wacom_wac.c, make it static. Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72b236d60218fe211a8e1210be31c31e81684b86 Author: Aaron Skomra Date: Thu Aug 20 16:05:17 2015 -0700 HID: wacom: Add support for Express Key Remote. This device is pad (buttons) only, there is no stylus or touch. Up to five remotes can pair with the device's associated USB dongle. Signed-off-by: Aaron Skomra Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina Documentation/ABI/testing/sysfs-driver-wacom | 19 +++ drivers/hid/wacom.h | 7 +- drivers/hid/wacom_sys.c | 195 +++++++++++++++++++++++++++ drivers/hid/wacom_wac.c | 144 ++++++++++++++++++++ drivers/hid/wacom_wac.h | 7 +- 5 files changed, 370 insertions(+), 2 deletions(-) commit 70ee06c5f447b9d50747b29d3e8d48ae7ef1cabe Author: Aaron Skomra Date: Thu Aug 20 16:05:16 2015 -0700 HID: wacom: Set button bits based on a new numbered_buttons Prior to this commit, numbered button bit setting was done separately for each device type in wacom_setup_pad_capabilities(). Here we add a numbered_buttons property to the wacom_features struct and extract the repeated bit setting code to a new function: wacom_settup_numbered_buttons(). Signed-off-by: Aaron Skomra Reviewed-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 175 +++++++++++++++++------------------------------- drivers/hid/wacom_wac.h | 1 + 2 files changed, 61 insertions(+), 115 deletions(-) commit 628b3198ccc235e387c0b8ee200c10c883e86644 Author: Michael Powell Date: Sun Aug 2 22:59:29 2015 +0000 acer-wmi: No rfkill on HP Omen 15 wifi Prevents acer-wmi from blocking wifi on HP Omen 15 laptops Signed-off-by: Michael Powell [david.ward@ll.mit.edu: Resubmitted clean patch] Signed-off-by: Darren Hart drivers/platform/x86/acer-wmi.c | 1 + 1 file changed, 1 insertion(+) commit 628536ea0627e71da654bd34b1942c85832dbdba Author: Jonathan Corbet Date: Tue Aug 25 01:14:48 2015 -0600 ASoC: Clean up docbook warnings A number of functions and structures in the sound subsystem had incomplete and/or obsolete DocBook comments, leading to warnings when the docs were built. Correct those comments so that we can enjoy our audio in the absence of warning noise. Signed-off-by: Jonathan Corbet Signed-off-by: Mark Brown Documentation/DocBook/alsa-driver-api.tmpl | 2 +- include/sound/soc.h | 11 +++++++---- sound/soc/soc-core.c | 13 +++++++++---- sound/soc/soc-dapm.c | 2 +- 4 files changed, 18 insertions(+), 10 deletions(-) commit 2c07144dfce366e21465cc7b0ada9f0b6dc7b7ed Author: Kan Liang Date: Fri Aug 28 05:48:05 2015 -0400 perf evlist: Add backpointer for perf_env to evlist Add backpointer to perf_env in evlist, so we can easily access env when processing something where we have a evsel or evlist. Suggested-by: Arnaldo Carvalho de Melo Signed-off-by: Kan Liang Cc: Adrian Hunter Cc: Andi Kleen Cc: Andy Lutomirski Cc: Jiri Olsa Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1440755289-30939-5-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.h | 1 + tools/perf/util/header.c | 1 + 2 files changed, 2 insertions(+) commit ce80d3bef9ff97638ca57a5659ef6ad356f35047 Author: Kan Liang Date: Fri Aug 28 05:48:04 2015 -0400 perf tools: Rename perf_session_env to perf_env As it is not necessarily tied to a perf.data file and needs using in places where a perf_session is not required. Suggested-by: Arnaldo Carvalho de Melo Signed-off-by: Kan Liang Cc: Adrian Hunter Cc: Andi Kleen Cc: Andy Lutomirski Cc: Jiri Olsa Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1440755289-30939-4-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/common.c | 4 ++-- tools/perf/arch/common.h | 2 +- tools/perf/ui/browser.h | 4 ++-- tools/perf/ui/browsers/header.c | 2 +- tools/perf/ui/browsers/hists.c | 12 ++++++------ tools/perf/util/header.h | 4 ++-- tools/perf/util/hist.h | 4 ++-- tools/perf/util/session.c | 2 +- tools/perf/util/symbol.c | 4 ++-- tools/perf/util/symbol.h | 4 ++-- 10 files changed, 21 insertions(+), 21 deletions(-) commit 9f30fffc78ca35c862f74f34cc597c7fdddc8793 Author: Jiri Olsa Date: Wed Aug 26 15:46:45 2015 +0200 perf tools: Do not change lib/api/fs/debugfs directly The tracing_events_path is the variable we want to change via --debugfs-dir option, not the debugfs_mountpoint. Signed-off-by: Jiri Olsa Reviewed-by: Matt Fleming Cc: Raphael Beamonte Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1440596813-12844-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/perf.c | 2 +- tools/perf/util/util.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 9f44f0cc1c32f1542071447a9493652bbc03facb Author: Jiri Olsa Date: Wed Aug 26 15:46:44 2015 +0200 perf tools: Add tracing_path and remove unneeded functions There's no need for find_tracing_dir, because perf already searches for debugfs/tracefs mount on start and populate tracing_events_path. Adding tracing_path to carry tracing dir string to be used in get_tracing_file instead of calling find_tracing_dir. Signed-off-by: Jiri Olsa Cc: Raphael Beamonte Cc: David Ahern Cc: Matt Fleming Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1440596813-12844-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/util.c | 56 ++++---------------------------------------------- tools/perf/util/util.h | 2 +- 2 files changed, 5 insertions(+), 53 deletions(-) commit 0b5a7935f3b5b7d40293b02c3e552f3d67af208b Author: Masami Hiramatsu Date: Sat Aug 15 20:42:59 2015 +0900 perf buildid: Introduce sysfs/filename__sprintf_build_id Introduce sysfs/filename__sprintf_build_id for consolidating similar code. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Borislav Petkov Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150815114259.13642.34685.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-buildid-cache.c | 14 ++------------ tools/perf/builtin-buildid-list.c | 24 ++++++++++-------------- tools/perf/util/build-id.c | 32 ++++++++++++++++++++++++++++++++ tools/perf/util/build-id.h | 3 +++ 4 files changed, 47 insertions(+), 26 deletions(-) commit d49e4695077278ee3016cd242967de23072ec331 Author: Arnaldo Carvalho de Melo Date: Thu Aug 27 08:07:40 2015 -0400 perf evsel: Add a backpointer to the evlist a evsel is in So that functions that deal primarily with an evsel to access information that concerns the whole evlist it is in. Cc: Adrian Hunter Cc: Andi Kleen Cc: Andy Lutomirski Cc: Jiri Olsa Cc: Kan Liang Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1440677263-21954-5-git-send-email-kan.liang@intel.com Signed-off-by: Kan Liang Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 2 ++ tools/perf/util/evsel.c | 2 ++ tools/perf/util/evsel.h | 4 ++++ 3 files changed, 8 insertions(+) commit a598bb5e3558509cbb8aa1d422071ef61fda9d77 Author: Arnaldo Carvalho de Melo Date: Fri Aug 28 12:02:37 2015 -0300 perf trace: Add header with copyright and background info Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-5yqtfs728r1j1u8zmg8ufxwm@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 84e5d89a777cca26cc513264752b439874702dd6 Author: Tony Jones Date: Mon Aug 17 12:48:52 2015 -0700 perf scripts python: Add new compaction-times script This patch creates a new script (compaction-times) to report time spent in mm compaction. It is possible to report times in nanoseconds (default) or microseconds (-u). The option -p will break down results by process id, -pv will further decompose by each compaction entry/exit. For each compaction entry/exit what is reported is controlled by the options: -t report only timing -m report migration stats -ms report migration scanner stats -fs report free scanner stats The default is to report all. Entries may be further filtered by pid, pid-range or comm (regex). The script is useful when analysing workloads that compact memory. The most common example will be THP allocations on systems with a lot of uptime that has fragmented memory. This is an example of using the script to analyse a thpscale from mmtests which deliberately fragments memory and allocates THP in 4 separate threads # Recording step, one of the following; $ perf record -e 'compaction:mm_compaction_*' ./workload # or: $ perf script record compaction-times # Reporting: basic total: 2444505743ns migration: moved=357738 failed=39275 free_scanner: scanned=2705578 isolated=387875 migration_scanner: scanned=414426 isolated=397013 # Reporting: Per task stall times $ perf script report compaction-times -- -t -p total: 2444505743ns 6384[thpscale]: 740800017ns 6385[thpscale]: 274119512ns 6386[thpscale]: 832961337ns 6383[thpscale]: 596624877ns # Reporting: Per-compaction attempts for task 6385 $ perf script report compaction-times -- -m -pv 6385 total: 274119512ns migration: moved=14893 failed=24285 6385[thpscale]: 274119512ns migration: moved=14893 failed=24285 6385[thpscale].1: 3033277ns migration: moved=511 failed=1 6385[thpscale].2: 9592094ns migration: moved=1524 failed=12 6385[thpscale].3: 2495587ns migration: moved=512 failed=0 6385[thpscale].4: 2561766ns migration: moved=512 failed=0 6385[thpscale].5: 2523521ns migration: moved=512 failed=0 ..... output continues ... Changes since v1: - report stats for isolate_migratepages and isolate_freepages (Vlastimil Babka) - refactor code to achieve above - add help text - output to stdout/stderr explicitly Signed-off-by: Tony Jones Cc: Mel Gorman Cc: Vlastimil Babka Link: http://lkml.kernel.org/r/1439840932-8933-1-git-send-email-tonyj@suse.com Signed-off-by: Arnaldo Carvalho de Melo .../scripts/python/bin/compaction-times-record | 2 + .../scripts/python/bin/compaction-times-report | 4 + tools/perf/scripts/python/compaction-times.py | 311 +++++++++++++++++++++ 3 files changed, 317 insertions(+) commit efd85cf86a56898686187397adfd52dfac79aff2 Author: Joe Perches Date: Wed Aug 26 11:13:38 2015 -0700 thinkpad_acpi: Remove side effects from vdbg_printk -> no_printk macro vdbg_printk when not using CONFIG_THINKPAD_ACPI_DEBUG uses no_printk which produces no logging output but always evaluates arguments. Change the macro to surround the no_printk call with do { if (0) no_printk(...); } while (0) to avoid the unnecessary argument evaluations. $ size drivers/platform/x86/thinkpad_acpi.o* text data bss dec hex filename 60918 6184 824 67926 10956 drivers/platform/x86/thinkpad_acpi.o.new 60927 6184 824 67935 1095f drivers/platform/x86/thinkpad_acpi.o.old Signed-off-by: Joe Perches Acked-by: Henrique de Moraes Holschuh Signed-off-by: Darren Hart drivers/platform/x86/thinkpad_acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 099982fac0f3e884ed4af2178d4dcded69e0042e Author: Archit Taneja Date: Fri Aug 28 16:22:18 2015 +0530 regulator: core: use debug level print in regulator_check_drms When calling regulator_set_load, regulator_check_drms prints and returns an error if the regulator device's flag REGULATOR_CHANGE_DRMS isn't set. drms_uA_update, however, bails out without reporting an error. Replace the error print with a debug level print so that we don't get such prints when the underlying regulator doesn't support DRMS. Signed-off-by: Archit Taneja Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39d9b85a4d4fa1642663ca0d208b5c246a3d6f50 Author: Gary Wang Date: Fri Aug 28 16:40:34 2015 +0800 drm/i915: set CDCLK if DPLL0 enabled during resuming from S3 Since BIOS RC 1.4 it would enable CDCLK PLL during BIOS S3 resume, then driver needs to set CDCLK to avoid display corruption if DPLL0 enabled. References: https://bugs.freedesktop.org/show_bug.cgi?id=91697 Reviewed-by: Rodrigo Vivi Reviewed-by: Damien Lespiau Reviewed-by: Cooper Chiou Reviewed-by: Wei Shun Chang Tested-by: Gary Wang Cc: Daniel Vetter Cc: Gavin Hindman Cc: Chris Wilson Cc: Xiong Y Zhang Signed-off-by: Gary Wang Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit bf9628373418328daf67b6508fc3713fc6f5067d Author: Kamlakant Patel Date: Thu Aug 27 17:49:29 2015 +0530 spi: Add DT bindings documentation for Netlogic XLP SPI controller Add DT bindings documentation for SPI controller driver used by Netlogic XLP MIPS64 SoCs. Signed-off-by: Kamlakant Patel Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-xlp.txt | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit d8c80d49cfa08b83841a3e315fa13dd310bec006 Author: Kamlakant Patel Date: Thu Aug 27 17:49:28 2015 +0530 spi/xlp: SPI controller driver for Netlogic XLP SoCs Add SPI Master controller driver for the SPI interface on XLP8XX, XLP3XX, XLP2XX, XLP9XX and XLP5XX family of Netlogic XLP MIPS64 processors. Signed-off-by: Kamlakant Patel Signed-off-by: Mark Brown drivers/spi/Kconfig | 11 ++ drivers/spi/Makefile | 1 + drivers/spi/spi-xlp.c | 456 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 468 insertions(+) commit e9abb4db8d108624c293f06dce06b2978e626a13 Author: Heiner Kallweit Date: Wed Aug 26 21:21:55 2015 +0200 spi: fsl-espi: add runtime PM Add runtime PM and use autosuspend instead of suspending the SPI controller after each transfer. Signed-off-by: Heiner Kallweit Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 71 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 17 deletions(-) commit 3c5395b66ff69d8d568d0b9ff8b1077e044def5b Author: Heiner Kallweit Date: Wed Aug 26 21:21:53 2015 +0200 spi: fsl-(e)spi: simplify cleanup code Now that most cleanup is done automatically the remove functions can be significantly simplified. Signed-off-by: Heiner Kallweit Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 6 ------ drivers/spi/spi-fsl-lib.c | 15 --------------- drivers/spi/spi-fsl-lib.h | 3 --- drivers/spi/spi-fsl-spi.c | 18 +++++++----------- 4 files changed, 7 insertions(+), 35 deletions(-) commit 4178b6b1b595003cd6e04711b449797a582e44f5 Author: Heiner Kallweit Date: Wed Aug 26 21:21:50 2015 +0200 spi: fsl-(e)spi: migrate to using devm_ functions to simplify cleanup Migrate fsl-espi and fsl-spi to using the managed devm_ functions for resource handling. This simplifies the cleanup. Signed-off-by: Heiner Kallweit Signed-off-by: Mark Brown drivers/spi/spi-fsl-espi.c | 20 +++++--------------- drivers/spi/spi-fsl-lib.c | 4 ---- drivers/spi/spi-fsl-spi.c | 21 ++++++++------------- 3 files changed, 13 insertions(+), 32 deletions(-) commit 54d71856428961124be26301b7997f2ad23be520 Author: Chao Yu Date: Fri Aug 28 18:18:57 2015 +0800 f2fs: avoid accessing NULL pointer in f2fs_drop_largest_extent If extent cache is disable, we will encounter oops when triggering direct IO as below: BUG: unable to handle kernel NULL pointer dereference at 0000000c IP: [] f2fs_drop_largest_extent+0xe/0x30 [f2fs] *pdpt = 000000002bb9a001 *pde = 0000000000000000 Oops: 0000 [#1] SMP Modules linked in: f2fs(O) fuse bnep rfcomm bluetooth nfsd dm_crypt nfs_acl auth_rpcgss oid_registry nfs binfmt_misc fscache lockd sunrpc grace snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device snd soundcore joydev psmouse hid_generic i2c_piix4 serio_raw ppdev mac_hid parport_pc lp parport ext4 jbd2 mbcache usbhid hid e1000 CPU: 3 PID: 3608 Comm: dd Tainted: G O 4.2.0-rc4 #12 Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 task: ef161600 ti: ebd5e000 task.ti: ebd5e000 EIP: 0060:[] EFLAGS: 00010202 CPU: 3 EIP is at f2fs_drop_largest_extent+0xe/0x30 [f2fs] EAX: 00000000 EBX: ddebc000 ECX: 00000000 EDX: 00000000 ESI: ebd5fdf8 EDI: 00000000 EBP: ebd5fd58 ESP: ebd5fd58 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 CR0: 80050033 CR2: 0000000c CR3: 2c24ee40 CR4: 000006f0 Stack: ebd5fda4 f0b8c005 00000000 00000001 00000000 f0b8c430 c816cd68 ddebc000 ddebc088 00001000 00000555 00000555 ffffffff c160bb00 00055501 00000000 00000000 00000100 00000000 ebd5fe20 f0b8c430 00000046 ef161600 00001000 Call Trace: [] __allocate_data_block+0x1a5/0x260 [f2fs] [] ? f2fs_direct_IO+0x370/0x440 [f2fs] [] ? down_read+0x30/0x50 [] f2fs_direct_IO+0x370/0x440 [f2fs] [] generic_file_direct_write+0xa5/0x260 [] ? current_fs_time+0x18/0x50 [] __generic_file_write_iter+0xbb/0x210 [] ? generic_file_write_iter+0x2f/0x320 [] generic_file_write_iter+0x15c/0x320 [] f2fs_file_write_iter+0x39/0x80 [f2fs] [] __vfs_write+0xa9/0xe0 [] vfs_write+0x97/0x180 [] SyS_write+0x5b/0xd0 [] sysenter_do_call+0x12/0x12 Code: 10 8b 50 1c 89 53 14 eb ca 8d 74 26 00 85 f6 74 86 eb a6 0f 0b 90 8d b4 26 00 00 00 00 55 89 e5 3e 8d 74 26 00 8b 80 d4 02 00 00 <8b> 48 0c 39 d1 77 0e 03 48 14 39 ca 73 07 c7 40 14 00 00 00 00 EIP: [] f2fs_drop_largest_extent+0xe/0x30 [f2fs] SS:ESP 0068:ebd5fd58 CR2: 000000000000000c ---[ end trace a38c07026a1afffd ]--- This is because when extent cache is disable, extent_tree pointer in struct f2fs_inode_info should be NULL, but in f2fs_drop_largest_extent we access this NULL pointer directly without checking state of extent cache, then, the oops occurs. Let's fix it by checking state of extent cache before accessing. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 95e3c2305b79e9c0e5f2cb0090efca397249b51f Author: Axel Lin Date: Thu Aug 27 09:14:50 2015 +0800 ASoC: txx9: Convert to devm_snd_soc_register_platform Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/txx9/txx9aclc.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 637c4497bbf0c9a4e00d6be2731bd560bf609f6b Author: Axel Lin Date: Thu Aug 27 09:13:46 2015 +0800 ASoC: pxa: Convert to devm_snd_soc_register_platform Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/pxa/mmp-pcm.c | 9 +-------- sound/soc/pxa/pxa2xx-pcm.c | 9 +-------- 2 files changed, 2 insertions(+), 16 deletions(-) commit d5f1117ff60d1e314b15e3a85b7705db3421d7d4 Author: Axel Lin Date: Thu Aug 27 09:12:17 2015 +0800 ASoC: nuc900: Convert to devm_snd_soc_register_platform Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/nuc900/nuc900-pcm.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit c4d2ab0d59f53a1534e6817b5dbd28719f667c39 Author: Axel Lin Date: Thu Aug 27 09:11:13 2015 +0800 ASoC: blackfin: Convert to devm_snd_soc_register_platform Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/blackfin/bf5xx-ac97-pcm.c | 10 ++-------- sound/soc/blackfin/bf5xx-i2s-pcm.c | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) commit edd98a1a2d163cef6d91226bf42ca002ced6ff16 Author: Axel Lin Date: Thu Aug 27 09:09:29 2015 +0800 ASoC: au1x: Convert to devm_snd_soc_register_platform Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/au1x/dbdma2.c | 11 ++--------- sound/soc/au1x/dma.c | 11 ++--------- 2 files changed, 4 insertions(+), 18 deletions(-) commit 6fe7ccfd77415a6ba250c10c580eb3f9acf79753 Author: Jozsef Kadlecsik Date: Tue Aug 25 11:17:51 2015 +0200 netfilter: ipset: Out of bound access in hash:net* types fixed Dave Jones reported that KASan detected out of bounds access in hash:net* types: [ 23.139532] ================================================================== [ 23.146130] BUG: KASan: out of bounds access in hash_net4_add_cidr+0x1db/0x220 at addr ffff8800d4844b58 [ 23.152937] Write of size 4 by task ipset/457 [ 23.159742] ============================================================================= [ 23.166672] BUG kmalloc-512 (Not tainted): kasan: bad access detected [ 23.173641] ----------------------------------------------------------------------------- [ 23.194668] INFO: Allocated in hash_net_create+0x16a/0x470 age=7 cpu=1 pid=456 [ 23.201836] __slab_alloc.constprop.66+0x554/0x620 [ 23.208994] __kmalloc+0x2f2/0x360 [ 23.216105] hash_net_create+0x16a/0x470 [ 23.223238] ip_set_create+0x3e6/0x740 [ 23.230343] nfnetlink_rcv_msg+0x599/0x640 [ 23.237454] netlink_rcv_skb+0x14f/0x190 [ 23.244533] nfnetlink_rcv+0x3f6/0x790 [ 23.251579] netlink_unicast+0x272/0x390 [ 23.258573] netlink_sendmsg+0x5a1/0xa50 [ 23.265485] SYSC_sendto+0x1da/0x2c0 [ 23.272364] SyS_sendto+0xe/0x10 [ 23.279168] entry_SYSCALL_64_fastpath+0x12/0x6f The bug is fixed in the patch and the testsuite is extended in ipset to check cidr handling more thoroughly. Signed-off-by: Jozsef Kadlecsik net/netfilter/ipset/ip_set_hash_gen.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 618718dc56a49321a12f231b34f6c43f44c3c374 Author: Axel Lin Date: Fri Aug 28 10:53:31 2015 +0800 ASoC: qcom: Constify asoc_qcom_lpass_cpu_dai_ops asoc_qcom_lpass_cpu_dai_ops is exported and used by multiple drivers, make it const to prevent modifying it at run time. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/qcom/lpass-cpu.c | 2 +- sound/soc/qcom/lpass.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 92eca20bbeaa4ec1908bad8aeefcaa2d98e302ff Author: Axel Lin Date: Fri Aug 28 10:50:53 2015 +0800 ASoC: sh: ssi: Convert to devm_snd_soc_register_component Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/sh/ssi.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 2cf32b7b338086e9b85bb9fdd8aa398e89d83e9e Author: Axel Lin Date: Fri Aug 28 10:49:44 2015 +0800 ASoC: pxa2xx-i2s: Convert to devm_snd_soc_register_component Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/pxa/pxa2xx-i2s.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 637ce53a1b1c489ff0e92aa00b8376464f697dc5 Author: Axel Lin Date: Fri Aug 28 10:48:35 2015 +0800 ASoC: pxa-ssp: Convert to devm_snd_soc_register_component Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/pxa/pxa-ssp.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit b37bfdaac914f4886b8be803703b12177eb873f6 Author: Ricard Wanderlof Date: Fri Aug 28 12:11:48 2015 +0200 ASoC: ics43432: Fix build errors Fix build errors Signed-off-by: Ricard Wanderlof Signed-off-by: Mark Brown sound/soc/codecs/ics43432.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f38bc8829b83aed3e2c5e6d43a430d39f1b0e1d Author: Axel Lin Date: Fri Aug 28 11:23:05 2015 +0800 ASoC: ics43432: Fix module license Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/ics43432.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 11d932416ecada27ca7576dca7e74e23477df7ef Author: kbuild test robot Date: Fri Aug 28 10:04:03 2015 +0800 ASoC: ics43432: fix platform_no_drv_owner.cocci warnings sound/soc/codecs/ics43432.c:66:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Ricard Wanderlof Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/ics43432.c | 1 - 1 file changed, 1 deletion(-) commit 5bbb9f753afe213aebc8dba30c7e2dbb73616b79 Author: Rasmus Villemoes Date: Thu Aug 20 11:53:30 2015 +0200 scripts: add stackdelta script This adds a simple perl script for reading two files as produced by the stackusage script and computing the changes in stack usage. For example: $ scripts/stackusage -o /tmp/old.su CC=gcc-4.7 -j8 fs/ext4/ $ scripts/stackusage -o /tmp/new.su CC=gcc-5.0 -j8 fs/ext4/ $ scripts/stackdelta /tmp/{old,new}.su | sort -k5,5g shows that gcc 5.0 generally produces less stack-hungry code than gcc 4.7. Obviously, the script can also be used for measuring the effect of commits, .config tweaks or whatnot. Signed-off-by: Rasmus Villemoes Signed-off-by: Michal Marek scripts/stackdelta | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit d523b255de60880304038006de5f93f2db612ad6 Author: Rasmus Villemoes Date: Thu Aug 20 11:53:29 2015 +0200 kbuild: remove *.su files generated by -fstack-usage Make sure 'make clean' removes *.su files generated by the gcc option -fstack-usage. Signed-off-by: Rasmus Villemoes Signed-off-by: Michal Marek Makefile | 1 + 1 file changed, 1 insertion(+) commit e25572878a70d9cd84020f577b7c45583b9d42ae Author: Rasmus Villemoes Date: Thu Aug 20 11:53:28 2015 +0200 .gitignore: add *.su pattern Ignore the *.su files generated by using the gcc option -fstack-usage. Signed-off-by: Rasmus Villemoes Signed-off-by: Michal Marek .gitignore | 1 + 1 file changed, 1 insertion(+) commit 56d4a3814690a62a3fd9724844e23ea152ce938c Author: Rasmus Villemoes Date: Thu Aug 20 11:53:27 2015 +0200 scripts: add stackusage script The current checkstack.pl script has a few problems, stemming from the overly simplistic attempt at parsing objdump output with regular expressions: For example, on x86_64 it doesn't take the push instruction into account, making it consistently underestimate the real stack use, and it also doesn't capture stack pointer adjustments of exactly 128 bytes [1]. Since newer gcc (>= 4.6) knows about -fstack-usage, we might as well take the information straight from the horse's mouth. This patch introduces scripts/stackusage, which is a simple wrapper for running make with KCFLAGS set to -fstack-usage. Example use is scripts/stackusage -o out.su -j8 lib/ The script understands "-o foo" for writing to 'foo' and -h for a trivial help text; anything else is passed to make. Afterwards, we find all newly created .su files, massage them a little, sort by stack use and write the result to a single output file. Note that the function names printed by (at least) gcc 4.7 are sometimes useless. For example, the first three lines of out.su generated above are ./lib/decompress_bunzip2.c:155 get_next_block 448 static ./lib/decompress_unlzma.c:537 unlzma 336 static ./lib/vsprintf.c:616 8 304 static That function '8' is really the static symbol_string(), but it has been subject to 'interprocedural scalar replacement of aggregates', so its name in the object file is 'symbol_string.isra.8'. gcc 5.0 doesn't have this problem; it uses the full name as seen in the object file. [1] Since gcc encodes that by 48 83 c4 80 add $0xffffffffffffff80,%rsp and not 48 81 ec 80 00 00 00 sub $0x80,%rsp since -128 fits in an imm8. Signed-off-by: Rasmus Villemoes Signed-off-by: Michal Marek scripts/stackusage | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 601083cffb7cabdcc55b8195d732f0f7028570fa Author: Kan Liang Date: Thu Jul 2 03:08:43 2015 -0400 perf stat: Get correct cpu id for print_aggr print_aggr() fails to print per-core/per-socket statistics after commit 582ec0829b3d ("perf stat: Fix per-socket output bug for uncore events") if events have differnt cpus. Because in print_aggr(), aggr_get_id needs index (not cpu id) to find core/pkg id. Also, evsel cpu maps should be used to get aggregated id. Here is an example: Counting events cycles,uncore_imc_0/cas_count_read/. (Uncore event has cpumask 0,18) $ perf stat -e cycles,uncore_imc_0/cas_count_read/ -C0,18 --per-core sleep 2 Without this patch, it failes to get CPU 18 result. Performance counter stats for 'CPU(s) 0,18': S0-C0 1 7526851 cycles S0-C0 1 1.05 MiB uncore_imc_0/cas_count_read/ S1-C0 0 cycles S1-C0 0 MiB uncore_imc_0/cas_count_read/ With this patch, it can get both CPU0 and CPU18 result. Performance counter stats for 'CPU(s) 0,18': S0-C0 1 6327768 cycles S0-C0 1 0.47 MiB uncore_imc_0/cas_count_read/ S1-C0 1 330228 cycles S1-C0 1 0.29 MiB uncore_imc_0/cas_count_read/ Signed-off-by: Kan Liang Acked-by: Jiri Olsa Acked-by: Stephane Eranian Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Fixes: 582ec0829b3d ("perf stat: Fix per-socket output bug for uncore events") Link: http://lkml.kernel.org/r/1435820925-51091-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 1d945012d1381f0232ea2d66e32b06182eedb476 Author: Steven Rostedt Date: Thu Aug 27 09:46:01 2015 -0400 tools lib traceeveent: Allow for negative numbers in print format It was reported that "%-8s" does not parse well when used in the printk format. The '-' is what is throwing it off. Allow that to be included. Reporter note: Example before: transhuge-stres-10730 [004] 5897.713989: mm_compaction_finished: node=0 zone=>-<8s order=-2119871790 ret= Example after: transhuge-stres-4235 [000] 453.149280: mm_compaction_finished: node=0 zone=ffffffff81815d7a order=9 ret= (I will send patches to fix the string handling in the tracepoints so it's on par with in-kernel printing via trace_pipe:) transhuge-stres-10921 [007] ...1 6307.140205: mm_compaction_finished: node=0 zone=Normal order=9 ret=partial Reported-by: Vlastimil Babka Signed-off-by: Steven Rostedt Tested-by: Vlastimil Babka Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20150827094601.46518bcc@gandalf.local.home Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 1 + 1 file changed, 1 insertion(+) commit 77e0070da41f76e1ebd15291fb0254b0c174adfa Author: Mark Drayton Date: Wed Aug 26 12:18:15 2015 -0700 perf script: Add --[no-]-demangle/--[no-]-demangle-kernel Sometimes when post-processing output from `perf script` one does not want to demangle C++ symbol names. Add an option to allow this. Also add --[no-]demangle-kernel to be consistent with top/report/probe. Signed-off-by: Mark Drayton Cc: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1440616695-32340-1-git-send-email-scientist@fb.com Signed-off-by: Yannick Brosseau Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-script.txt | 7 +++++++ tools/perf/builtin-script.c | 5 +++++ 2 files changed, 12 insertions(+) commit 50a3cb04a5f9cd5323a76db9ee409a7f3004259a Author: Viresh Kumar Date: Wed Aug 12 15:59:39 2015 +0530 PM / OPP: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. Acked-by: Pavel Machek Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 68fa9f0ab1b61cfc7deee699da8b5b5cb12f7a58 Author: Viresh Kumar Date: Mon Aug 17 19:20:20 2015 +0530 PM / OPP: Fix static checker warning (broken 64bit big endian systems) Dan Carpenter reported (generated with static checker): drivers/base/power/opp.c:949 _opp_add_static_v2() warn: passing casted pointer '&new_opp->clock_latency_ns' to 'of_property_read_u32()' 64 vs 32. This code will break on 64 bit, big endian machines. Fix this by reading the value in a u32 type variable first and then assigning it to the unsigned long variable. Reported-by: Dan Carpenter Suggested-by: Stephen Boyd Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4c1ed5a6079078699128064664913ae7b079648f Author: Xunlei Pang Date: Tue Aug 4 13:48:56 2015 +0800 cpuidle/coupled: Remove redundant 'dev' argument of cpuidle_state_is_coupled() For cpuidle_state_is_coupled(), 'dev' is not used, so remove it. Signed-off-by: Xunlei Pang Signed-off-by: Rafael J. Wysocki drivers/cpuidle/coupled.c | 4 +--- drivers/cpuidle/cpuidle.c | 4 ++-- drivers/cpuidle/cpuidle.h | 7 +++---- 3 files changed, 6 insertions(+), 9 deletions(-) commit ba6a860d41ed3a377d61d59d7c7b08dd7455c686 Author: Xunlei Pang Date: Tue Aug 4 13:48:55 2015 +0800 cpuidle/coupled: Remove cpuidle_device::safe_state_index cpuidle_device::safe_state_index need to be initialized before use, it should be the same as cpuidle_driver::safe_state_index. We tackled this issue by removing the safe_state_index from the cpuidle_device structure and use the one in the cpuidle_driver structure instead. Suggested-by: Daniel Lezcano Signed-off-by: Xunlei Pang Signed-off-by: Rafael J. Wysocki drivers/cpuidle/coupled.c | 4 ++-- include/linux/cpuidle.h | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) commit ce14c5831364118324b10c0355dead062b9ddd40 Author: Prarit Bhargava Date: Tue Aug 25 13:34:53 2015 -0400 Documentation, add kernel-parameters.txt entry for dis_ucode_ldr dis_ucode_ldr was introduced in 65cef13 ("x86, microcode: Add a disable chicken bit") and will disable microcode loading on x86. This kernel parameter is buried in the code and should be added to the Documentation. Signed-off-by: Prarit Bhargava Signed-off-by: Jonathan Corbet Documentation/kernel-parameters.txt | 2 ++ 1 file changed, 2 insertions(+) commit 4d59ed85451befda203d72462f1b7ead0fde3267 Author: Javier Martinez Canillas Date: Tue Aug 25 08:31:16 2015 +0200 leds: Export OF module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c:" regardless of the mechanism that was used to register the device (i.e: OF or board code) and the table that is used later to match the driver with the device (i.e: I2C id table or OF match table). So drivers needs to export the I2C id table and this be built into the module or udev won't have the necessary information to autoload the needed driver module when the device is added. But this means that OF-only drivers needs to have both OF and I2C id tables that have to be kept in sync and also the dev node compatible manufacturer prefix is stripped when reporting the MODALIAS. Which can lead to issues if two vendors use the same I2C device name for example. To avoid the above, the I2C core behavior may be changed in the future to not require an SPI device table for OF-only drivers and report the OF module alias. So, it's better to also export the OF table even when is unused now to prevent breaking module loading when the core changes. Signed-off-by: Javier Martinez Canillas Signed-off-by: Jacek Anaszewski drivers/leds/leds-pca963x.c | 1 + drivers/leds/leds-tca6507.c | 1 + 2 files changed, 2 insertions(+) commit ed133352047e46687afd98c299ec8ce7f6ea07bd Author: Milo Kim Date: Mon Aug 24 16:09:55 2015 +0900 leds:lp55xx: use the private data instead of updating I2C device platform data Currently, lp55xx_of_populate_pdata() allocates lp55xx_platform_data if it's null. And it parses the DT and copies values into the 'client->dev.platform_data'. This may have architectural issue. Platform data is configurable through the DT or I2C board info inside the platform area. However, lp55xx common driver changes this configuration when it is loaded. So 'client->dev.platform_data' is not null anymore. Eventually, the driver initialization is not identical when it's unloaded and loaded again. The lp55xx common driver should use the private data, 'lp55xx_chip->pdata' instead of changing the original platform data. So, lp55xx_of_populate_pdata() is modified as follows. * Do not update 'dev->platform_data'. Return the pointer of new allocated lp55xx_platform_data. Then the driver points it to private data, 'lp55xx_chip->pdata'. * Each lp55xx driver checks the pointer and handles an error case. Then, original platform data configuration will be kept regardless of loading or unloading the driver. The driver allocates the memory and copies them from the DT if it's NULL. After the driver is loaded again, 'client->dev.platform_data' is same as initial load, so the driver is initialized identically. Cc: Toshi Kikuchi Cc: linux-leds@vger.kernel.org Signed-off-by: Milo Kim Signed-off-by: Jacek Anaszewski drivers/leds/leds-lp5521.c | 11 +++++------ drivers/leds/leds-lp5523.c | 11 +++++------ drivers/leds/leds-lp5562.c | 11 +++++------ drivers/leds/leds-lp55xx-common.c | 13 ++++++------- drivers/leds/leds-lp55xx-common.h | 4 ++-- drivers/leds/leds-lp8501.c | 11 +++++------ 6 files changed, 28 insertions(+), 33 deletions(-) commit 991a3f61fa93c1752a47ae157a8238395850c730 Author: Bjorn Andersson Date: Tue Aug 18 12:25:26 2015 -0700 leds: syscon: Correct check for syscon_node_to_regmap() errors syscon_node_to_regmap() returns a regmap or an ERR_PTR(). Signed-off-by: Bjorn Andersson Signed-off-by: Jacek Anaszewski drivers/leds/leds-syscon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c2d4af9370b1757714b895f005479393e4ec14b8 Author: Vaishali Thakkar Date: Tue Aug 18 19:50:16 2015 +0530 leds: leds-fsg: Use devm_led_classdev_register Use resource-managed function devm_led_classdev_register instead of led_classdev_register to make the error-path simpler. To be compatible with the change, various gotos are replaced with direct returns and unneeded labels are dropped. Also, remove fsg_led_remove as it is now redundant. Signed-off-by: Vaishali Thakkar Signed-off-by: Jacek Anaszewski drivers/leds/leds-fsg.c | 52 ++++++++++++------------------------------------- 1 file changed, 12 insertions(+), 40 deletions(-) commit b8926ba0d7fd74e140d408f6dfeff5f5b9c2afae Author: Jacek Anaszewski Date: Thu Aug 20 08:59:35 2015 +0200 MAINTAINERS: Change LED subsystem git tree URL This patch removes Bryan Wu from the list of LED subsystem maintainers and replaces related git tree URL with the one maintained by Jacek Anaszewski. Signed-off-by: Jacek Anaszewski Cc: Richard Purdie Acked-by: Bryan Wu MAINTAINERS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e5b5a61fcb3743f1dacf9e20d28f48423cecf0c1 Author: Ricardo Ribalda Delgado Date: Fri Jul 31 13:36:21 2015 +0200 leds/led-class: Add missing put_device() Devices found by class_find_device must be freed with put_device(). Otherwise the reference count will not work properly. Fixes: a96aa64cb572 ("leds/led-class: Handle LEDs with the same name") Reported-by: Alan Tull Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Jacek Anaszewski drivers/leds/led-class.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 4fc5af86837d983d7b1dd4edad245454e1874fa0 Author: Vincent Donnefort Date: Thu Jul 2 19:56:41 2015 +0200 ARM: Kirkwood: add modes-map property to ns2-leds nodes Since the LED modes mapping is no longer hardcoded inside the leds-ns2 driver, then it must be provided through the modes-map property in the ns2-leds nodes. Signed-off-by: Vincent Donnefort Acked-by: Gregory CLEMENT Signed-off-by: Jacek Anaszewski arch/arm/boot/dts/kirkwood-d2net.dts | 5 +++++ arch/arm/boot/dts/kirkwood-is2.dts | 5 +++++ arch/arm/boot/dts/kirkwood-ns2.dts | 5 +++++ arch/arm/boot/dts/kirkwood-ns2max.dts | 5 +++++ arch/arm/boot/dts/kirkwood-ns2mini.dts | 5 +++++ 5 files changed, 25 insertions(+) commit f3a2a097a37acfb7c28da171248d15b9bb2e657b Author: Axel Lin Date: Sun Jul 26 12:05:16 2015 +0800 leds: tlc591xx: Remove redundant I2C_FUNC_SMBUS_BYTE_DATA functionality check This checking is done by regmap_get_i2c_bus() which is called in devm_regmap_init_i2c(). Signed-off-by: Axel Lin Reviewed-by: Andrew Lunn Signed-off-by: Jacek Anaszewski drivers/leds/leds-tlc591xx.c | 4 ---- 1 file changed, 4 deletions(-) commit 259f5ba308ee46c616ced3d336d7ab8e06f5a6ce Author: Simon Guinot Date: Thu Jul 2 19:56:43 2015 +0200 leds: leds-ns2: depends on MACH_ARMADA_370 The leds-ns2 driver is also used by the n090401 board (Seagate NAS 4-Bay), which is based on the Marvell Armada-370 SoC. Then this patch allows to select the leds-ns2 driver if MACH_ARMADA_370 is enabled. Additionally, this also updates the Kconfig help message. Signed-off-by: Simon Guinot Signed-off-by: Jacek Anaszewski drivers/leds/Kconfig | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 4b90432dc1edca6cfc0bb338794beed46af3a472 Author: Simon Guinot Date: Thu Jul 2 19:56:42 2015 +0200 leds: leds-ns2: handle can_sleep GPIOs On the board n090401 (Seagate NAS 4-Bay), some of the LEDs are handled by the leds-ns2 driver. This LEDs are connected to an I2C GPIO expander (PCA95554PW) which means that GPIO access may sleep. This patch makes leds-ns2 compatible with such GPIOs by using the *_cansleep() variant of the GPIO functions. As a drawback this functions can't be used safely in a timer context (with the timer LED trigger for example). To fix this issue, a workqueue mechanism (copied from the leds-gpio driver) is used. Note that this patch also updates slightly the ns2_led_sata_store function. The LED state is now retrieved from cached values instead of reading the GPIOs previously. This prevents ns2_led_sata_store from working with a stale LED state (which may happen when a delayed work is pending). Signed-off-by: Simon Guinot Signed-off-by: Vincent Donnefort Signed-off-by: Jacek Anaszewski drivers/leds/leds-ns2.c | 75 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 24 deletions(-) commit f7fafd083ccc340502448903aaddc76f10785c8c Author: Vincent Donnefort Date: Thu Jul 2 19:56:40 2015 +0200 leds: leds-ns2: move LED modes mapping outside of the driver On the board n090401 (Seagate NAS 4-Bay), the LED mode mapping (GPIO values to LED mode) is different from the one used on other boards supported by the leds-ns2 driver. With this patch the hardcoded mapping is removed from leds-ns2. Now, it must be defined either in the platform data (if an old-fashion board setup file is used) or in the DT node. In order to allow the later, this patch also introduces a modes-map property for the leds-ns2 DT binding. Signed-off-by: Vincent Donnefort Signed-off-by: Jacek Anaszewski .../devicetree/bindings/leds/leds-ns2.txt | 9 ++ drivers/leds/leds-ns2.c | 102 +++++++++++---------- include/dt-bindings/leds/leds-ns2.h | 8 ++ include/linux/platform_data/leds-kirkwood-ns2.h | 14 +++ 4 files changed, 85 insertions(+), 48 deletions(-) commit de88e71a91ed7c8de321b44882e0805f0b24d734 Author: Axel Lin Date: Wed Jul 8 10:43:26 2015 +0800 leds: lp8860: Constify reg_default tables These reg_default tables are not modified after initialized, so make them const. Signed-off-by: Axel Lin Signed-off-by: Jacek Anaszewski drivers/leds/leds-lp8860.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 44ab901f91b22dcfc7d03d6f0da15c5354042367 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:00:52 2015 +0900 leds: Drop owner assignment from i2c_driver i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Jacek Anaszewski drivers/leds/leds-lm3530.c | 1 - drivers/leds/leds-lm355x.c | 1 - drivers/leds/leds-lm3642.c | 1 - drivers/leds/leds-pca955x.c | 1 - drivers/leds/leds-pca963x.c | 1 - drivers/leds/leds-tca6507.c | 1 - 6 files changed, 6 deletions(-) commit 6e3956cd532d8c263e68ebae1252828e297aac4d Author: Geert Uytterhoeven Date: Mon Jul 6 15:42:34 2015 +0200 leds: Allow compile test of LEDS_AAT1290 and LEDS_KTD2692 if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. If COMPILE_TEST is enabled, relax the dependency on GPIOLIB for the recently introduced symbols LEDS_AAT1290 and LEDS_KTD2692. Signed-off-by: Geert Uytterhoeven Signed-off-by: Jacek Anaszewski drivers/leds/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 823227419588001f2d4accf3c5660cd99442a0f8 Author: Geert Uytterhoeven Date: Tue May 5 18:32:25 2015 +0200 leds: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Cc: Richard Purdie Cc: linux-leds@vger.kernel.org Signed-off-by: Jacek Anaszewski drivers/leds/Kconfig | 2 +- drivers/leds/trigger/Kconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit aa14318aa02f14044acf81f418e1a1cbda29fcfc Author: Jacek Anaszewski Date: Fri Apr 10 10:36:56 2015 +0200 DT: leds: Improve description of flash LEDs related properties 1. Since max-microamp property has had no users so far, then rename it to more descriptive led-max-microamp. 2. Since flash-timeout-us property has had no users so far, then rename it to more accurate flash-max-timeout-us. 3. Describe led-max-microamp property as mandatory for specific board configurations. 4. Make flash-max-microamp and flash-max-timeout-us properties mandatory for devices with configurable flash current and flash timeout settings respectively. Signed-off-by: Jacek Anaszewski Cc: Richard Purdie Cc: Pavel Machek Cc: devicetree@vger.kernel.org Acked-by: Sakari Ailus Acked-by: Sylwester Nawrocki Documentation/devicetree/bindings/leds/common.txt | 27 +++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) commit 92cffd56b21c825579f3b37bc7803e4c37073076 Author: Dave Airlie Date: Fri Aug 28 20:33:58 2015 +1000 drm/nouveau/dispnv04: fix build on powerpc align with mask code in overlay.c, Ben can clean the naming up later if necessary. Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/dispnv04/dfp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 90996511187d6282db6d02d3f97006b4dbb5c457 Author: Paul Burton Date: Wed Aug 5 15:42:35 2015 -0700 MIPS: CPS: use 32b accesses to GCRs Commit b677bc03d757 ("MIPS: cps-vec: Use macros for various arithmetics and memory operations") replaced various load & store instructions through cps-vec.S with the PTR_L & PTR_S macros. However it was somewhat overzealous in doing so for CM GCR accesses, since the bit width of the CM doesn't necessarily match that of the CPU. The registers accessed (GCR_CL_COHERENCE & GCR_CL_ID) should be safe to simply always access using 32b instructions, so do so in order to avoid issues when using a 32b CM with a 64b CPU. Signed-off-by: Paul Burton Cc: Markos Chandras Cc: # 3.16+ Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: James Hogan Patchwork: https://patchwork.linux-mips.org/patch/10864/ Signed-off-by: Ralf Baechle arch/mips/kernel/cps-vec.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6aa6925cad06159dc6e25857991bbc4960821242 Author: Yao-Wen Mao Date: Fri Aug 28 16:33:25 2015 +0800 ALSA: usb-audio: correct the value cache check. The check of cval->cached should be zero-based (including master channel). Signed-off-by: Yao-Wen Mao Cc: Signed-off-by: Takashi Iwai sound/usb/mixer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a47d4576cd1c58157a2d8cfffa93aa7ca375eede Author: Thomas Gleixner Date: Fri Aug 28 10:30:15 2015 +0200 x86/irq: Do not dereference irq descriptor before checking it Having the IS_NULL_OR_ERR() check after dereferencing the pointer is not really working well. Move the dereference after the check. Fixes: a782a7e46bb5 'x86/irq: Store irq descriptor in vector array' Reported-and-tested-by: Ingo Molnar Signed-off-by: Thomas Gleixner arch/x86/kernel/irq_32.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4b9e78bd9f0efcf9e82b4886de7a4289dbf3cffe Author: Dave Airlie Date: Fri Aug 28 18:18:10 2015 +1000 nouveau: fix powerpc build Reported-by: Ilia Mirkin on irc. Signed-off-by: Dave Airlie drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2baa891e42d84159b693eadd44f6fe1486285bdc Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:33 2015 -0700 x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add() and mtrr_del() The effort to replace mtrr_add() with architecture agnostic arch_phys_wc_add() is complete, this will ensure write-combining implementations (PAT on x86) is taken advantage instead of using MTRR. With the effort done now, hide direct MTRR access for drivers. The legacy user-space /proc/mtrr ABI is not affected. Update x86 documentation on MTRR to reflect the completion of the phasing out of direct access to MTRR, also add a note on platform firmware code use of MTRRs based on the obituary discussion of MTRRs on Linux [0]. [0] http://lkml.kernel.org/r/1438991330.3109.196.camel@hp.com Signed-off-by: Luis R. Rodriguez Cc: Cc: Andy Lutomirski Cc: Andy Walls Cc: Antonino Daplas Cc: Borislav Petkov Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Davidlohr Bueso Cc: Doug Ledford Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: mst@redhat.com Cc: netdev@vger.kernel.org Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-12-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar Documentation/x86/mtrr.txt | 20 ++++++++++++++++---- arch/x86/kernel/cpu/mtrr/main.c | 2 -- 2 files changed, 16 insertions(+), 6 deletions(-) commit d1ee8bc195ffedbf91af0245a2406d6ebd2578f8 Merge: 0e53909 a2fb338 Author: Ingo Molnar Date: Fri Aug 28 08:22:02 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Add support for using several Intel PT features (CYC, MTC packets), the relevant documentation was updated: tools/perf/Documentation/intel-pt.txt, briefly describing those packets, its purposes, how to configure them in the event config terms and relevant external documentation for further reading. (Adrian Hunter) - Introduce support for probing at an absolute address, for user and kernel 'perf probe's, useful when one have the symbol maps on a developer machine but not on an embedded system. (Wang Nan) - Fix 'perf probe' list results when a symbol can't be found or the address is zero and when an offset is provided without a function (Wang Nan) - Do not print '0x (null)' in uprobes when offset is zero (Wang Nan) - Clear the progress bar at the end of a ordered_events flush, fixing an UI artifact when, after ordering the events the screen doesn't get completely redraw, for instance, when an error window covers just the center of the screen and waits for user input. (Arnaldo Carvalho de Melo) - Fix 'annotate' segfault by resetting the dso find_symbol cache when removing symbols. (Arnaldo Carvalho de Melo) Infrastructure changes: - Allow duplicate objects in the object list, just like it is possible to have things like this, in the kernel: drivers/Makefile:obj-$(CONFIG_PCI) += usb/ drivers/Makefile:obj-$(CONFIG_USB_GADGET) += usb/ (Jiri Olsa) - Fix Intel PT 'instructions' sample period. (Adrian Hunter) - Prevent segfault when reading probe point with absolute address. (Wang Nan) Build fixes: - Fix tarball build broken by pt/bts. (Adrian Hunter) - Remove export.h from MANIFEST, fixing the perf tarball make target. (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit ee03c5868e74847ba0bd1e6dccbbe26e6504466d Author: Luis R. Rodriguez Date: Wed Aug 26 16:34:10 2015 -0700 s390/io: Add pci_iomap_wc() and pci_iomap_wc_range() The following commit: 1b3d4200c1e0 ("PCI: Add pci_iomap_wc() variants") Introduced pci_iomap_wc() variants but broke the s390 build, because s390 requires its own implementation of pcio_iomap*() calls. The reason for that is that: "BAR spaces are not disjunctive on s390 so we need the bar parameter of pci_iomap to find the corresponding device and create the mapping cookie" so it has its own lookup/lock solution and it does not include asm-generic/pci_iomap.h. Since it currenty maps ioremap_wc() to ioremap_nocache() and that's the architecture default we can easily just map the wc calls to the default calls as well. Reported-by: kbuild test robot Signed-off-by: Luis R. Rodriguez Cc: Andrew Morton Cc: Borislav Petkov Cc: Fengguang Wu Cc: Frank Blaschka Cc: Guenter Roeck Cc: Heiko Carstens Cc: Jean-Christophe Plagniol-Villard Cc: Linus Torvalds Cc: Martin Schwidefsky Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thierry Reding Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Will Deacon Cc: linux-fbdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-s390@vger.kernel.org Cc: linux390@de.ibm.com Link: http://lkml.kernel.org/r/1440632050-23648-1-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar arch/s390/include/asm/io.h | 2 ++ 1 file changed, 2 insertions(+) commit 7e01ebffffedec22cea86ebe94802f909e4579ca Author: Huang Rui Date: Thu Aug 27 18:04:04 2015 +0800 x86/asm: Drop repeated macro of X86_EFLAGS_AC definition We just need one macro of X86_EFLAGS_AC_BIT and X86_EFLAGS_AC. Signed-off-by: Huang Rui Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Fengguang Wu Cc: Fenghua Yu Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Li Cc: Tony Luck Link: http://lkml.kernel.org/r/1440669844-21535-1-git-send-email-ray.huang@amd.com Signed-off-by: Ingo Molnar arch/x86/include/uapi/asm/processor-flags.h | 2 -- 1 file changed, 2 deletions(-) commit 1a7ccad88d1bcebabc011b54a2f8615175e523fc Author: Eric Sandeen Date: Fri Aug 28 14:51:10 2015 +1000 xfs: fix error gotos in xfs_setattr_nonsize As the code stands today, if xfs_trans_reserve() fails, we goto out_dqrele, which does not free the allocated transaction. Fix up the goto targets to undo everything properly. Addresses-Coverity-Id: 145571 Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_iops.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8774cf8bacd4e79b7c65cdf1208da264a9d436d2 Author: Lucas Stach Date: Fri Aug 28 14:50:56 2015 +1000 xfs: add mssing inode cache attempts counter increment Increasing the inode cache attempt counter was apparently dropped while refactoring the cache code and so stayed at the initial 0 value. Add the increment back to make the runtime stats more useful. Signed-off-by: Lucas Stach Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_icache.c | 2 ++ 1 file changed, 2 insertions(+) commit c9eb256eda4420c06bb10f5e8fbdbe1a34bc98e0 Author: David Jeffery Date: Fri Aug 28 14:50:45 2015 +1000 xfs: return errors from partial I/O failures to files There is an issue with xfs's error reporting in some cases of I/O partially failing and partially succeeding. Calls like fsync() can report success even though not all I/O was successful in partial-failure cases such as one disk of a RAID0 array being offline. The issue can occur when there are more than one bio per xfs_ioend struct. Each call to xfs_end_bio() for a bio completing will write a value to ioend->io_error. If a successful bio completes after any failed bio, no error is reported do to it writing 0 over the error code set by any failed bio. The I/O error information is now lost and when the ioend is completed only success is reported back up the filesystem stack. xfs_end_bio() should only set ioend->io_error in the case of BIO_UPTODATE being clear. ioend->io_error is initialized to 0 at allocation so only needs to be updated by a failed bio. Also check that ioend->io_error is 0 so that the first error reported will be the error code returned. Cc: stable@vger.kernel.org Signed-off-by: David Jeffery Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_aops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit dfdd4ac66c2f921ecec730a2b24b0b13e10346b2 Author: Darrick J. Wong Date: Fri Aug 28 14:50:03 2015 +1000 libxfs: bad magic number should set da block buffer error If xfs_da3_node_read_verify() doesn't recognize the magic number of a buffer it's just read, set the buffer error to -EFSCORRUPTED so that the error can be sent up to userspace. Without this patch we'll notice the bad magic eventually while trying to traverse or change the block, but we really ought to fail early in the verifier. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_da_btree.c | 1 + 1 file changed, 1 insertion(+) commit 0d36938bb82a7775c21ce0a7429f08ba13d025b6 Merge: 55f14da 4941b8f Author: David S. Miller Date: Thu Aug 27 21:45:31 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit ab98193dace971f4742eebb5103212e23bb392f5 Author: Dave Jiang Date: Wed Aug 26 14:16:27 2015 -0700 dmaengine: ioatdma: add Broadwell EP ioatdma PCI dev IDs Adding the Broadwell Xeon ioatdma PCI device IDs and related bits. This is still IOATDMA 3.2 based hw. Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/hw.h | 11 +++++++++++ drivers/dma/ioat/init.c | 32 +++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) commit 6ef41cf6f721573d286a06ca35a9f1e370637d51 Author: yalin wang Date: Tue Aug 25 16:15:13 2015 +0800 dmaengine :ipu: change ipu_irq_handler() to remove compile warning Change ipu_irq_handler() to avoid gcc warning: drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used uninitialized in this function [-Wmaybe-uninitialized] generic_handle_irq(irq); Signed-off-by: yalin wang Signed-off-by: Vinod Koul drivers/dma/ipu/ipu_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 259800135c654a098d9f0adfdd3d1f20eef1f231 Author: Gavin Shan Date: Fri Aug 28 11:57:00 2015 +1000 powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail() The config space of some PCI devices can't be accessed when their PEs are in frozen state. Otherwise, fenced PHB might be seen. Those PEs are identified with flag EEH_PE_CFG_RESTRICTED, meaing EEH_PE_CFG_BLOCKED is set automatically when the PE is put to frozen state (EEH_PE_ISOLATED). eeh_slot_error_detail() restores PCI device BARs with eeh_pe_restore_bars(), which then calls eeh_ops->restore_config() to reinitialize the PCI device in (OPAL) firmware. eeh_ops->restore_config() produces PCI config access that causes fenced PHB. The problem was reported on below adapter: 0001:01:00.0 0200: 14e4:168e (rev 10) 0001:01:00.0 Ethernet controller: Broadcom Corporation \ NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10) This fixes the issue by skipping eeh_pe_restore_bars() in eeh_slot_error_detail() when EEH_PE_CFG_BLOCKED is set for the PE. Fixes: b6541db1 ("powerpc/eeh: Block PCI config access upon frozen PE") Cc: stable@vger.kernel.org # v4.0+ Reported-by: Manvanthara B. Puttashankar Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit 3439633a85891626abf124a52f2c3e3e83cca9d0 Merge: d7b27368 a3c1ff8 Author: Dave Airlie Date: Fri Aug 28 13:20:09 2015 +1000 Merge branch 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next Rather large pull request this time around, due to the long-pending cleanup of the kernel driver being here. There's a stupidly large number of commits for that, as I wanted to have the series be bisectable at a fairly fine-grained level. That said, a very large portion of the churn in the rework was automated, and a very large number of boards from right across the whole range we support have been tested. I'm fairly confident there shouldn't be (too many) issues from this. Beyond correcting some not-so-great design decisions and making the code a lot easier to work with, there's not much exciting (lower memory usage, GPU VM should be a lot faster, etc) to be gained by the end-user as a result of the cleanup, it mostly lays the groundwork for future improvements. A big thanks goes to Alexandre Courbot for testing/debugging the GK20A codepaths for me :) Highlights: - A heap of perfmon work, providing a more useful userspace interface and specifying counters for a bunch of boards - Support for GT200 reclocking + other misc pm improvements - Initial patches towards supporting GM20B (Tegra X1) - Maxwell DisplayPort fixes - Cleanup of the kernel driver - The usual collection of random fixes * 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (312 commits) drm/nouveau: bump driver version for release drm/nouveau/tegra: merge platform setup from nouveau drm drm/nouveau/pci: merge agp handling from nouveau drm drm/nouveau/device: remove pci/platform_device from common struct drm/nouveau/device: import pciid list and integrate quirks with it drm/nouveau/device: cleaner abstraction for device resource functions drm/nouveau/mc: move device irq handling to platform-specific code drm/nouveau/mc/gf100-: handle second interrupt tree drm/nouveau/mc: abstract interface to master intr registers drm/nouveau/pci: new subdev drm/nouveau/object: merge with handle drm/nouveau/core: remove the remainder of the previous style drm/nouveau/mpeg: convert to new-style nvkm_engine drm/nouveau/sw: convert to new-style nvkm_engine drm/nouveau/pm: convert to new-style nvkm_engine drm/nouveau/gr: convert to new-style nvkm_engine drm/nouveau/fifo: convert to new-style nvkm_engine drm/nouveau/disp: convert to new-style nvkm_engine drm/nouveau/dma: convert to new-style nvkm_engine drm/nouveau/cipher: convert to new-style nvkm_engine ... commit a3c1ff87cfe27f99de58c153eb9d42dcfdbfa59b Author: Ben Skeggs Date: Thu Aug 20 14:54:23 2015 +1000 drm/nouveau: bump driver version for release Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_drm.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 43a70661eaa64aa4e36e421eee3b9ded3190837b Author: Ben Skeggs Date: Thu Aug 20 14:54:23 2015 +1000 drm/nouveau/tegra: merge platform setup from nouveau drm The copyright header in nvkm/engine/device/platform.c has been replaced with the NVIDIA one from drm/nouveau_platform.c, as most of the actual code is now theirs. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/os.h | 3 + drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 2 - drivers/gpu/drm/nouveau/include/nvkm/core/tegra.h | 20 ++ drivers/gpu/drm/nouveau/nouveau_platform.c | 224 +-------------------- drivers/gpu/drm/nouveau/nouveau_platform.h | 37 +--- drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 181 ++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 8 +- .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c | 11 +- 9 files changed, 221 insertions(+), 285 deletions(-) commit 340b0e7c500a0ac8fb649c58cf8528550642c1d8 Author: Ben Skeggs Date: Thu Aug 20 14:54:23 2015 +1000 drm/nouveau/pci: merge agp handling from nouveau drm This commit reinstates the pre-DEVINIT AGP fiddling that was broken in an earlier commit. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/Kbuild | 1 - drivers/gpu/drm/nouveau/include/nvif/device.h | 1 + drivers/gpu/drm/nouveau/include/nvif/os.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/core/option.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 11 ++ drivers/gpu/drm/nouveau/nouveau_abi16.c | 2 +- drivers/gpu/drm/nouveau/nouveau_agp.c | 198 --------------------- drivers/gpu/drm/nouveau/nouveau_agp.h | 10 -- drivers/gpu/drm/nouveau/nouveau_bo.c | 17 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 4 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 11 -- drivers/gpu/drm/nouveau/nouveau_drm.h | 7 +- drivers/gpu/drm/nouveau/nouveau_ttm.c | 12 +- drivers/gpu/drm/nouveau/nvkm/core/option.c | 18 ++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.c | 171 ++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.h | 18 ++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c | 26 +++ 18 files changed, 271 insertions(+), 239 deletions(-) commit 26c9e8effebb9166eb1cfba2d164676e98c505c7 Author: Ben Skeggs Date: Thu Aug 20 14:54:23 2015 +1000 drm/nouveau/device: remove pci/platform_device from common struct Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 40 ++++++---------------- drivers/gpu/drm/nouveau/nouveau_abi16.c | 6 ++-- drivers/gpu/drm/nouveau/nouveau_acpi.c | 4 +-- drivers/gpu/drm/nouveau/nouveau_acpi.h | 4 +-- drivers/gpu/drm/nouveau/nouveau_agp.c | 7 ++-- drivers/gpu/drm/nouveau/nouveau_bo.c | 18 +++++----- drivers/gpu/drm/nouveau/nouveau_sysfs.c | 4 +-- drivers/gpu/drm/nouveau/nouveau_ttm.c | 2 +- drivers/gpu/drm/nouveau/nv50_display.c | 8 ++--- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 14 ++------ drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 7 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 5 +-- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 24 ++++++++----- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 6 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 2 +- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c | 6 ++-- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 18 ++++++++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 9 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 9 +++-- .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 4 +-- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 5 +-- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 2 +- 27 files changed, 106 insertions(+), 108 deletions(-) commit c7af0ff0e89327918743052d12bf5536e34c7f1a Author: Ben Skeggs Date: Thu Aug 20 14:54:23 2015 +1000 drm/nouveau/device: import pciid list and integrate quirks with it PCI IDs taken from the NVIDIA binary driver, with permission. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 12 +- drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 11 +- drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 1570 +++++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 6 +- 5 files changed, 1577 insertions(+), 26 deletions(-) commit 7e8820fed712c6de1933dcc91edbf08dcec74925 Author: Ben Skeggs Date: Thu Aug 20 14:54:23 2015 +1000 drm/nouveau/device: cleaner abstraction for device resource functions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 8 ++--- drivers/gpu/drm/nouveau/nouveau_bo.c | 7 +++-- drivers/gpu/drm/nouveau/nouveau_chan.c | 3 +- drivers/gpu/drm/nouveau/nouveau_display.c | 3 +- drivers/gpu/drm/nouveau/nouveau_ttm.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 34 ++-------------------- drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 16 ++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 27 +++++++++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 4 +-- .../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 4 +-- .../gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h | 4 +-- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 6 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 2 +- 18 files changed, 71 insertions(+), 62 deletions(-) commit 2b700825e7a7702fb862edba1262c98040dc1bf6 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/mc: move device irq handling to platform-specific code Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/core/tegra.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 9 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 72 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 46 ++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild | 4 - drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 99 +++++----------------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g94.c | 40 --------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 7 -- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf106.c | 41 --------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c | 46 ---------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv4c.c | 39 --------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 8 -- drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 3 - drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c | 80 ++++++++++++++++- 19 files changed, 182 insertions(+), 324 deletions(-) commit ae0a5b2dd2f54584d677701d989732b464b6d8c9 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/mc/gf100-: handle second interrupt tree Doesn't fix any known issue, but best be safe in case control is handed to us from firmware with these left enabled. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 32 +++++++++++++++++++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf106.c | 6 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c | 6 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 3 +++ 4 files changed, 38 insertions(+), 9 deletions(-) commit d4c4cc8373806d0f822f8847f8bcda64f36cb73f Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/mc: abstract interface to master intr registers Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 32 ++++++++++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g94.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf106.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c | 24 ++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv4c.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 9 +++++++ 13 files changed, 84 insertions(+), 11 deletions(-) commit 0a34fb3149c3001f9c1b2bd0f98f94d63e74cb85 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/pci: new subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 3 + drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 21 ++++ drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 124 ++++++++++++++++----- drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/Kbuild | 1 + .../gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c | 17 +-- drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 6 + drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c | 82 ++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.c | 44 ++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv04.c | 58 ++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv40.c | 65 +++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv4c.c | 37 ++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv50.c | 51 +++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h | 19 ++++ 15 files changed, 491 insertions(+), 39 deletions(-) commit fbd58ebda9c8572ca6285b88e3348c7712f125ec Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/object: merge with handle Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 23 +-- drivers/gpu/drm/nouveau/include/nvkm/core/handle.h | 34 ---- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 23 ++- drivers/gpu/drm/nouveau/nouveau_abi16.c | 1 + drivers/gpu/drm/nouveau/nouveau_chan.c | 34 ++-- drivers/gpu/drm/nouveau/nouveau_drm.c | 10 +- drivers/gpu/drm/nouveau/nvkm/core/Kbuild | 1 - drivers/gpu/drm/nouveau/nvkm/core/client.c | 59 +++--- drivers/gpu/drm/nouveau/nvkm/core/handle.c | 139 -------------- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 99 ++++------ drivers/gpu/drm/nouveau/nvkm/core/object.c | 213 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/core/oproxy.c | 18 +- .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 1 - 18 files changed, 219 insertions(+), 442 deletions(-) commit 68f3f702b6a430a8d1e909455a60d26c0f2da530 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/core: remove the remainder of the previous style Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 6 +- drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 110 ++++------ drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 52 +---- drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 37 +--- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 88 +------- drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 51 +---- drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 2 +- drivers/gpu/drm/nouveau/nvkm/core/engine.c | 79 +------ drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 93 -------- drivers/gpu/drm/nouveau/nvkm/core/object.c | 167 +------------- drivers/gpu/drm/nouveau/nvkm/core/oproxy.c | 2 - drivers/gpu/drm/nouveau/nvkm/core/ramht.c | 45 ++-- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 223 ++++--------------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild | 10 - drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 241 +++++---------------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 53 ----- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 51 ----- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 67 ------ drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 39 ---- drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 51 ----- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 43 ---- drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 45 ---- drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 67 ------ drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 63 ------ drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 10 - drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 8 +- .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c | 105 +++++---- .../gpu/drm/nouveau/nvkm/engine/fifo/changf100.h | 2 +- .../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 2 +- .../gpu/drm/nouveau/nvkm/engine/fifo/channv04.h | 2 +- .../gpu/drm/nouveau/nvkm/engine/fifo/channv50.c | 34 +-- .../gpu/drm/nouveau/nvkm/engine/fifo/channv50.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c | 34 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 50 ++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 34 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 36 +-- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 34 ++- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 22 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.c | 12 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c | 14 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c | 6 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gt215.c | 10 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.c | 32 +-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 40 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 26 +-- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 26 +-- 68 files changed, 496 insertions(+), 1856 deletions(-) commit 7624fc011e56902a83e409b14d6c1efa75aa4a58 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/mpeg: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 2 - drivers/gpu/drm/nouveau/include/nvkm/engine/mpeg.h | 39 +------ drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 54 ++++----- drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/g84.c | 34 +----- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 130 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h | 11 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 57 +-------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 79 ++++--------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 85 ++++---------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/priv.h | 7 ++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 4 +- 14 files changed, 166 insertions(+), 363 deletions(-) commit 6f41c7c56929b3a2ad943d5b6dd4d66d716e74d7 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/sw: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h | 29 +---- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 136 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 7 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c | 25 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 18 +-- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 35 +----- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 29 +---- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 39 ++---- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.h | 15 --- drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c | 9 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/priv.h | 3 + 19 files changed, 115 insertions(+), 292 deletions(-) commit 97070f23c60869830039b216ff88230f54ef7107 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/pm: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 23 +++--- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 88 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 --- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 6 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 ---- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 ---- drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild | 1 - drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 80 +++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 69 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 15 +--- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf108.c | 23 +++--- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf117.c | 23 +++--- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c | 23 +++--- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk110.c | 51 ------------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gt200.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/gt215.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 69 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.h | 16 +--- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 29 ++----- 21 files changed, 219 insertions(+), 400 deletions(-) commit c85ee6ca79590cd51356bf24fb8936bc352138cf Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/gr: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 94 ++--- drivers/gpu/drm/nouveau/nouveau_abi16.c | 2 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 3 +- drivers/gpu/drm/nouveau/nvkm/core/engine.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 +++---- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 - drivers/gpu/drm/nouveau/nvkm/engine/gr/Kbuild | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/base.c | 82 +++- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/g84.c | 196 +++++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 455 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 71 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf104.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf117.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf119.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 67 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110b.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk208.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 165 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.h | 35 -- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 37 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 36 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm206.c | 21 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gt200.c | 47 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/gt215.c | 48 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp79.c | 46 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp89.c | 48 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 122 +++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 221 +++------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.h | 13 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv15.c | 59 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv17.c | 59 +++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 159 ++++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.h | 22 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 43 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 43 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 115 ++---- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 43 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 43 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 210 ++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.h | 13 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv44.c | 108 +++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 372 +++-------------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.h | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/priv.h | 23 ++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 14 +- 60 files changed, 1763 insertions(+), 1866 deletions(-) commit 13de7f462902d1a452d501cdb2d06ef02cabbfff Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/fifo: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 83 ++------- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 136 +++++++------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 7 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 128 ++++++++++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c | 8 +- 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/g84.c | 71 ++------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 162 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 198 +++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 24 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.c | 30 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.c | 30 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c | 32 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm20b.c | 30 ++-- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 1 + .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 92 ++++------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 45 ++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 57 ++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 59 ++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 103 ++++++----- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h | 19 ++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 4 +- 56 files changed, 640 insertions(+), 801 deletions(-) commit 70aa8670e5229766f12c4b818a68aa61913df0b6 Author: Ben Skeggs Date: Thu Aug 20 14:54:22 2015 +1000 drm/nouveau/disp: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 30 +-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 134 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 113 ++++++--- .../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 73 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 75 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 134 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 71 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 71 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 71 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c | 73 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 73 ++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 79 ++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 65 ++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 262 ++++++++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 91 +++++-- .../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 49 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c | 8 +- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 32 +-- 32 files changed, 696 insertions(+), 890 deletions(-) commit bd70563f015a5204c62a52a87a35c32377940187 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/dma: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 10 +- drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h | 15 +-- drivers/gpu/drm/nouveau/nv50_display.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/dma/Kbuild | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c | 30 ++--- drivers/gpu/drm/nouveau/nvkm/engine/dma/gf100.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/engine/dma/gf110.c | 37 ------ drivers/gpu/drm/nouveau/nvkm/engine/dma/gf119.c | 36 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/nv04.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/engine/dma/nv50.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/engine/dma/priv.h | 19 ++- drivers/gpu/drm/nouveau/nvkm/engine/dma/user.h | 2 +- .../gpu/drm/nouveau/nvkm/engine/dma/usergf110.c | 131 ------------------- .../gpu/drm/nouveau/nvkm/engine/dma/usergf119.c | 131 +++++++++++++++++++ 24 files changed, 304 insertions(+), 384 deletions(-) commit 14d74acafb15fd3fac16eef89de7643cddd01775 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/cipher: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/cipher.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 68 +++++++--------------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 12 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 6 -- 4 files changed, 27 insertions(+), 61 deletions(-) commit e5b31ca63249f03e56529dcd4260b23196ce2c28 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/ce: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 122 ++++---------------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 123 +++------------------ drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/priv.h | 7 ++ drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 62 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 22 ---- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 10 -- 9 files changed, 86 insertions(+), 278 deletions(-) commit 98b20c9ab88ff4dbe5f3e239efa5a6b7818c1da7 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/xtensa: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/bsp.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/engine/vp.h | 2 +- .../gpu/drm/nouveau/include/nvkm/engine/xtensa.h | 26 ++----- drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.c | 38 ++------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 24 +++--- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 12 --- drivers/gpu/drm/nouveau/nvkm/engine/vp/g84.c | 38 ++------- drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 90 +++++++++++----------- 8 files changed, 84 insertions(+), 148 deletions(-) commit 53e60da43aee440d3f75000cdd269bd1324a8ad4 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/falcon: convert to new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 5 +- .../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 43 ++-- .../gpu/drm/nouveau/include/nvkm/engine/mspdec.h | 9 +- .../gpu/drm/nouveau/include/nvkm/engine/msppp.h | 7 +- .../gpu/drm/nouveau/include/nvkm/engine/msvld.h | 10 +- drivers/gpu/drm/nouveau/include/nvkm/engine/sec.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 109 +++-------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 43 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 216 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 40 ---- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 21 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 28 --- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 114 ++++++----- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/mspdec/base.c | 32 +++ drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.c | 52 ++--- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.c | 49 +---- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.c | 53 +---- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gt215.c | 43 ++++ drivers/gpu/drm/nouveau/nvkm/engine/mspdec/priv.h | 11 ++ drivers/gpu/drm/nouveau/nvkm/engine/msppp/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/msppp/base.c | 31 +++ drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c | 50 +---- drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c | 49 +---- drivers/gpu/drm/nouveau/nvkm/engine/msppp/gt215.c | 43 ++++ drivers/gpu/drm/nouveau/nvkm/engine/msppp/priv.h | 9 + drivers/gpu/drm/nouveau/nvkm/engine/msvld/Kbuild | 3 + drivers/gpu/drm/nouveau/nvkm/engine/msvld/base.c | 31 +++ drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.c | 51 +---- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.c | 49 +---- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.c | 53 +---- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gt215.c | 43 ++++ drivers/gpu/drm/nouveau/nvkm/engine/msvld/mcp89.c | 43 ++++ drivers/gpu/drm/nouveau/nvkm/engine/msvld/priv.h | 11 ++ drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 43 ++-- 36 files changed, 640 insertions(+), 771 deletions(-) commit 437b2296ced574eada632b11346e22f6b0103e17 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/volt: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h | 46 +------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 92 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 117 +++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c | 55 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.c | 31 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/volt/priv.h | 20 ++++ 12 files changed, 161 insertions(+), 253 deletions(-) commit 31649ecf47a44e02e73bffc5680c8f56d6cf587a Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/tmr: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/timer.h | 54 ++--- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 ++++++------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/timer/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 127 +++++++++++- drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.c | 45 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 227 ++++++--------------- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.h | 25 --- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv40.c | 88 ++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv41.c | 85 ++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/timer/priv.h | 22 ++ .../gpu/drm/nouveau/nvkm/subdev/timer/regsnv04.h | 7 + 27 files changed, 501 insertions(+), 427 deletions(-) commit 57113c0170b9efeacb3e3e9d4c2178c30d9cd991 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/therm: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- .../gpu/drm/nouveau/include/nvkm/subdev/therm.h | 104 ++++++---- drivers/gpu/drm/nouveau/nouveau_hwmon.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 94 ++++----- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/subdev/therm/Kbuild | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 212 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 70 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c | 32 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c | 21 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c | 127 +++++------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf110.c | 175 ----------------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c | 153 +++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c | 48 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c | 66 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c | 74 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c | 64 ++----- drivers/gpu/drm/nouveau/nvkm/subdev/therm/priv.h | 86 +++------ drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 74 +++---- 25 files changed, 634 insertions(+), 841 deletions(-) commit e2ca4e7d6e56cb73a068708f0b0c9bd62ab9e02c Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/pmu: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/pmu.h | 29 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 46 +- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/Kbuild | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 84 +- .../gpu/drm/nouveau/nvkm/subdev/pmu/fuc/gf110.fuc4 | 70 - .../drm/nouveau/nvkm/subdev/pmu/fuc/gf110.fuc4.h | 1795 -------------------- .../gpu/drm/nouveau/nvkm/subdev/pmu/fuc/gf119.fuc4 | 70 + .../drm/nouveau/nvkm/subdev/pmu/fuc/gf119.fuc4.h | 1795 ++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf100.c | 19 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf110.c | 40 - drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf119.c | 39 + drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 25 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.c | 25 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk208.c | 19 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 62 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm107.c | 41 + drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.c | 26 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/priv.h | 30 +- 24 files changed, 2115 insertions(+), 2147 deletions(-) commit a4f7bd360893ab4f6bbc1ae4ef617c68bf987f3d Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/mxm: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mxm.h | 30 +--------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 66 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 --- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 --- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 ----- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 18 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c | 23 ++------ drivers/gpu/drm/nouveau/nvkm/subdev/mxm/priv.h | 15 +++++ 11 files changed, 66 insertions(+), 123 deletions(-) commit c9582455ab74246ec9f5986db3821b33058de585 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/mmu: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 71 +++------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 140 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 143 ++++++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 62 ++++----- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 85 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.h | 13 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 84 +++++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 79 +++++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 72 +++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/priv.h | 39 ++++++ 21 files changed, 387 insertions(+), 478 deletions(-) commit 54dcadd5b65e12f851ff80af4afef606040ad8b9 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/mc: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 31 +++-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 83 +++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mc/g94.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf106.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c | 42 ++----- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.h | 16 --- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c | 29 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv4c.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 28 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 35 +++--- 28 files changed, 265 insertions(+), 381 deletions(-) commit 70bc7182cbf1bb07e414bbb553890ddf1b540264 Author: Ben Skeggs Date: Thu Aug 20 14:54:21 2015 +1000 drm/nouveau/ltc: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h | 35 +++--- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 42 +++---- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c | 126 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 124 ++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.c | 34 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 101 +++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h | 76 +++---------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 4 +- 13 files changed, 235 insertions(+), 342 deletions(-) commit b7a2bc1886d00f5f1358079e1e6f4979006a4ed6 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/imem: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 35 ++---- drivers/gpu/drm/nouveau/nvkm/core/memory.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 91 +++++++++----- .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 54 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 75 ++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 122 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 47 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h | 29 ++--- 21 files changed, 285 insertions(+), 391 deletions(-) commit 8de65bd0901e2ee7a485a158bfe9e4631cc00644 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/devinit: run devinit scripts right after preinit This ensures we have a valid mask of disabled engines before we start trying to execute fini()/init() on the subdevs, potentially touching devices that don't exist. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/devinit.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 4 +++- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c | 21 +++++++++++---------- 3 files changed, 15 insertions(+), 11 deletions(-) commit 551d341755e2ade4a915d889524a4187f2cd210e Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/ibus: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h | 30 +------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 42 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 --- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 9 --- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c | 62 ++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c | 88 +++++++++------------- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c | 58 +++++--------- 9 files changed, 101 insertions(+), 209 deletions(-) commit 49bd8da5130aa2de1c891c71163a033254eaf932 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/i2c: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h | 26 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 134 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 113 +++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c | 41 ------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.c | 40 ++++++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h | 30 +---- 24 files changed, 231 insertions(+), 358 deletions(-) commit 2ea7249fe2d4815fc6d0b50021bcbd8bb72b8437 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/gpio: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/dac.c | 12 +- drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 16 +-- drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/gpio.h | 29 ++--- drivers/gpu/drm/nouveau/nouveau_connector.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 130 +++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/Kbuild | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 139 +++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/gpio/g94.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf110.c | 87 ------------- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf119.c | 86 +++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.c | 25 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.c | 19 ++- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.c | 21 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/priv.h | 37 ++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 16 ++- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.c | 10 +- 31 files changed, 322 insertions(+), 440 deletions(-) commit c5fcafa528463b207108cd606e0d41741fb7dc50 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/fuse: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/fuse.h | 29 ++------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 70 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 --- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 --- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 ----- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c | 34 +++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.c | 56 ++++------------- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c | 30 ++-------- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.c | 52 ++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/fuse/priv.h | 9 ++- drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c | 6 +- 12 files changed, 100 insertions(+), 221 deletions(-) commit 03c8952fb36b58e451b8a93a1a2abd59e09ddf7b Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/fb: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 74 +++++------ drivers/gpu/drm/nouveau/nouveau_bo.c | 12 +- drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 134 +++++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/g84.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 68 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.h | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c | 48 ++----- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gt215.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp77.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp89.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.c | 54 ++------ drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.h | 49 -------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.c | 25 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.c | 25 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.c | 27 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.c | 25 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c | 47 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.c | 41 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.c | 41 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.c | 38 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 127 ++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.h | 14 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h | 77 ++++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramfuc.h | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 5 +- 47 files changed, 648 insertions(+), 812 deletions(-) commit 151abd44c27c1562f348a99c176b078a876ebe93 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/devinit: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs .../drm/nouveau/include/nvkm/subdev/bios/init.h | 1 + .../gpu/drm/nouveau/include/nvkm/subdev/devinit.h | 40 +++--- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 134 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c | 112 +++++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.c | 24 ++-- .../gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c | 44 ++----- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c | 24 ++-- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c | 29 +++-- .../gpu/drm/nouveau/nvkm/subdev/devinit/gt215.c | 30 ++--- .../gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c | 78 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.h | 16 +-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv1a.c | 24 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 82 ++++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h | 13 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/priv.h | 33 ++--- 32 files changed, 424 insertions(+), 466 deletions(-) commit 6625f55c080f888ccf51b6881f0bad13f5762d15 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/clk: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/clk.h | 68 ++------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 132 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/subdev/clk/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 105 ++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/clk/g84.c | 41 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 97 ++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 83 +++++------ drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 105 ++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 87 +++++------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 109 +++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.c | 47 ++----- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c | 75 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 153 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.h | 22 +-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/priv.h | 26 ++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 6 +- 31 files changed, 537 insertions(+), 706 deletions(-) commit bb23f9d7919311ebc696bc540e41c908168f9cb5 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/bus: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h | 42 ++----- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 138 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/subdev/bus/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.c | 64 ++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.c | 22 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.c | 37 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c | 27 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c | 51 +++----- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.h | 17 --- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c | 37 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c | 37 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/bus/priv.h | 18 +++ 22 files changed, 246 insertions(+), 318 deletions(-) commit 46484438ab7dbab6ed29cf647d029e0b1ef3d9d8 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/bios: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/disp.h | 2 +- drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/bios.h | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 137 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 7 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 3 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 8 -- drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 5 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 16 --- drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 --- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 60 +++------ drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 16 +-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 11 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 2 +- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c | 2 +- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c | 2 +- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllnv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 2 +- 42 files changed, 158 insertions(+), 249 deletions(-) commit 3293228174e4d44cca56d809cc8409c3f88f8b90 Author: Ben Skeggs Date: Thu Aug 20 14:54:20 2015 +1000 drm/nouveau/bar: convert to new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h | 22 ++- drivers/gpu/drm/nouveau/nouveau_bo.c | 9 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 70 ++++----- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 9 -- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 14 -- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 58 ++++++-- drivers/gpu/drm/nouveau/nvkm/subdev/bar/g84.c | 56 +++++++ drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 143 ++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.h | 23 +++ drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.c | 40 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 165 ++++++++------------- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.h | 26 ++++ drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h | 30 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 2 +- 23 files changed, 354 insertions(+), 342 deletions(-) commit ef8bc5760b51d69741ed5f42224f1fdd2935541a Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/core: kill some (now) dead code Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h | 48 ------ drivers/gpu/drm/nouveau/include/nvkm/core/parent.h | 51 ------- drivers/gpu/drm/nouveau/nvkm/core/Kbuild | 2 - drivers/gpu/drm/nouveau/nvkm/core/engctx.c | 166 --------------------- drivers/gpu/drm/nouveau/nvkm/core/handle.c | 22 +-- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 120 --------------- drivers/gpu/drm/nouveau/nvkm/core/parent.c | 139 ----------------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 46 ------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 81 ---------- 10 files changed, 1 insertion(+), 675 deletions(-) commit 07b9e6cc957195bd1e6908612d67a92ba0ed2cb6 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/sw: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c | 43 ++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c | 46 +++++++----- drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h | 25 +++---- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 81 +++++++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 72 +++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 51 +++++--------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 89 ++++++++++-------------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.h | 14 +--- drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c | 50 +++++++------ drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.h | 21 ++++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/priv.h | 13 ++++ 12 files changed, 277 insertions(+), 229 deletions(-) commit 5ffeb84b8eba71b4f88af6997db843ddf68149e0 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/pm: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 225 ++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/pm/gk110.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 22 +-- 6 files changed, 132 insertions(+), 131 deletions(-) commit 218f978d43296a9ac142a63361e25f517df3d318 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/mpeg: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 3 + drivers/gpu/drm/nouveau/include/nvkm/engine/mpeg.h | 24 --- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/g84.c | 46 ++--- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 206 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 27 ++- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 138 ++++++++------ drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 110 +++-------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/priv.h | 9 + 9 files changed, 249 insertions(+), 333 deletions(-) commit 27f3d6cf80324940edd29be7758f81145e73d1ff Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/gr: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 1 - drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 37 +-- drivers/gpu/drm/nouveau/nvkm/core/client.c | 10 - drivers/gpu/drm/nouveau/nvkm/engine/gr/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/base.c | 84 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 63 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h | 39 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf104.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c | 29 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf110.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c | 53 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf119.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c | 57 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110b.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk208.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c | 71 ++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm204.c | 39 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm206.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.h | 2 - drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 204 +++++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 27 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf104.c | 17 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.c | 30 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.c | 32 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf117.c | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf119.c | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110b.c | 17 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk208.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm206.c | 17 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.c | 25 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 265 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 319 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 238 +++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.h | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 184 ++++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 144 ++++++---- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 182 ++++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 182 ++++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 182 ++++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 259 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.h | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 249 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.h | 24 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/priv.h | 15 + 55 files changed, 1760 insertions(+), 1738 deletions(-) commit b3c981504721a5765641a21d521eb04f7d23e065 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/cipher: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 93 ++++++++++-------------- 2 files changed, 38 insertions(+), 58 deletions(-) commit e5ff112781667dbe641aee2adf6189d8023cb27f Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/ce: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 54 +++++++------------------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 54 +++++++------------------- 3 files changed, 28 insertions(+), 82 deletions(-) commit c79a191b2799fb36a7b64c0f9ddc20383ed0dcdb Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/xtensa: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 4 ++ drivers/gpu/drm/nouveau/include/nvkm/engine/bsp.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/engine/vp.h | 2 +- .../gpu/drm/nouveau/include/nvkm/engine/xtensa.h | 13 +++--- drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.c | 41 ++++--------------- drivers/gpu/drm/nouveau/nvkm/engine/vp/g84.c | 41 ++++--------------- drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 47 ++++++++++++++++------ 7 files changed, 63 insertions(+), 87 deletions(-) commit 9d498e0f7a5ece8f61c8a174b40668a2621a82e3 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/falcon: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 22 +++++++ .../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 26 +------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 69 ++++++---------------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 38 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 36 +++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.c | 39 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.c | 37 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.c | 37 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c | 39 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c | 37 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.c | 41 +++---------- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.c | 37 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.c | 37 ++---------- drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 37 ++---------- 14 files changed, 132 insertions(+), 400 deletions(-) commit 8f0649b5c6e70ec18122255690e39f010c12a614 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/fifo: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h | 3 - drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/core/handle.h | 1 - drivers/gpu/drm/nouveau/include/nvkm/core/namedb.h | 52 --- drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 60 +-- drivers/gpu/drm/nouveau/nv84_fence.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/Kbuild | 1 - drivers/gpu/drm/nouveau/nvkm/core/engctx.c | 75 +--- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 10 + drivers/gpu/drm/nouveau/nvkm/core/handle.c | 52 +-- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/namedb.c | 201 --------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 7 +- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c | 106 +---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 108 +++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 477 +++++++++++++++++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.h | 44 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c | 327 ++++++++------ .../gpu/drm/nouveau/nvkm/engine/fifo/changf100.h | 25 +- .../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 32 +- .../gpu/drm/nouveau/nvkm/engine/fifo/channv04.h | 24 +- .../gpu/drm/nouveau/nvkm/engine/fifo/channv50.c | 293 +++++++------ .../gpu/drm/nouveau/nvkm/engine/fifo/channv50.h | 47 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c | 102 ++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c | 216 ++++------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c | 61 ++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c | 64 ++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c | 240 ++++++----- drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c | 88 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 13 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 61 ++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.h | 5 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 114 +++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 42 ++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c | 10 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c | 90 ++-- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 374 ++++++++-------- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 407 ++++++++---------- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogm204.c | 10 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c | 76 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 40 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h | 9 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 27 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 27 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 24 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 10 +- 61 files changed, 2025 insertions(+), 2121 deletions(-) commit 9a65a38c456ebac97f0498e85fe26f6d26fe3936 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/fifo: split user classes out from engine implementations Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 24 -- drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 17 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 194 ++------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c | 162 +++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.h | 28 ++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c | 231 ++++++++++ .../gpu/drm/nouveau/nvkm/engine/fifo/changf100.h | 23 + .../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 27 ++ .../gpu/drm/nouveau/nvkm/engine/fifo/channv04.h | 24 ++ .../gpu/drm/nouveau/nvkm/engine/fifo/channv50.c | 259 +++++++++++ .../gpu/drm/nouveau/nvkm/engine/fifo/channv50.h | 42 ++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmag84.c | 127 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv04.c | 282 ++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv10.c | 102 +++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv17.c | 104 +++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv40.c | 225 ++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/dmanv50.c | 115 +++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 424 +----------------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 473 ++++---------------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.h | 26 ++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 403 +---------------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 39 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c | 9 +- .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifog84.c | 122 ++++++ .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 304 +++++++++++++ .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 357 ++++++++++++++++ .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogm204.c | 32 ++ .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifonv50.c | 110 +++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 329 ++------------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h | 146 +------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 92 +--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 138 ++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 258 ++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 475 ++------------------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h | 30 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/priv.h | 8 + .../gpu/drm/nouveau/nvkm/engine/fifo/regsnv04.h | 132 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 1 + 45 files changed, 3147 insertions(+), 2754 deletions(-) commit 0ce41e3c66ca8958dec427f1c46f64efdda90f30 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/disp: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/oproxy.h | 22 ++ drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 8 + drivers/gpu/drm/nouveau/nvkm/core/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/core/oproxy.c | 198 +++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 16 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 68 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/baseg84.c | 19 +- .../gpu/drm/nouveau/nvkm/engine/disp/basegf119.c | 28 +-- .../gpu/drm/nouveau/nvkm/engine/disp/basegk104.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/basegk110.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/basegt200.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/basegt215.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 90 ++++---- .../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 184 +++++++++++----- .../gpu/drm/nouveau/nvkm/engine/disp/channv50.h | 128 ++++++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg84.c | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg94.c | 19 +- .../gpu/drm/nouveau/nvkm/engine/disp/coregf119.c | 60 +++--- .../gpu/drm/nouveau/nvkm/engine/disp/coregk104.c | 19 +- .../gpu/drm/nouveau/nvkm/engine/disp/coregk110.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/coregm107.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/coregm204.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/coregt200.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/coregt215.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/corenv50.c | 110 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/cursg84.c | 37 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/cursgf119.c | 20 +- .../gpu/drm/nouveau/nvkm/engine/disp/cursgk104.c | 37 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/cursgt215.c | 37 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 43 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c | 55 ++--- .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c | 237 ++++++++++++++------- .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.h | 95 +++++++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 43 +--- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 84 +------- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 59 +---- drivers/gpu/drm/nouveau/nvkm/engine/disp/oimmg84.c | 37 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/oimmgf119.c | 20 +- .../gpu/drm/nouveau/nvkm/engine/disp/oimmgk104.c | 37 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/oimmgt215.c | 37 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 43 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h | 18 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlyg84.c | 19 +- .../gpu/drm/nouveau/nvkm/engine/disp/ovlygf119.c | 28 +-- .../gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c | 19 +- .../gpu/drm/nouveau/nvkm/engine/disp/ovlygt200.c | 19 +- .../gpu/drm/nouveau/nvkm/engine/disp/ovlygt215.c | 38 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 92 ++++---- .../gpu/drm/nouveau/nvkm/engine/disp/piocgf119.c | 34 ++- .../gpu/drm/nouveau/nvkm/engine/disp/piocnv50.c | 49 ++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg84.c | 39 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg94.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c | 79 ++++--- .../gpu/drm/nouveau/nvkm/engine/disp/rootgk104.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgk110.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgm107.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgm204.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgt200.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootgt215.c | 39 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 48 +++-- .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 193 +++++++++++------ .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 57 ++--- 73 files changed, 2346 insertions(+), 1053 deletions(-) commit 2a7909c0ade08c66690e6115ae49765dc47873e6 Author: Ben Skeggs Date: Thu Aug 20 14:54:19 2015 +1000 drm/nouveau/disp: split user classes out from engine implementations Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 6 - drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 51 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/baseg84.c | 65 + .../gpu/drm/nouveau/nvkm/engine/disp/basegf119.c | 114 ++ .../gpu/drm/nouveau/nvkm/engine/disp/basenv50.c | 127 ++ .../gpu/drm/nouveau/nvkm/engine/disp/changf119.c | 49 + .../gpu/drm/nouveau/nvkm/engine/disp/channv50.c | 229 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/channv50.h | 103 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg84.c | 102 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/coreg94.c | 48 + .../gpu/drm/nouveau/nvkm/engine/disp/coregf119.c | 246 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/coregk104.c | 117 ++ .../gpu/drm/nouveau/nvkm/engine/disp/corenv50.c | 250 ++++ .../gpu/drm/nouveau/nvkm/engine/disp/cursgf119.c | 37 + .../gpu/drm/nouveau/nvkm/engine/disp/cursnv50.c | 73 ++ .../gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c | 113 ++ .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.c | 163 +++ .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.h | 24 + drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 200 +-- drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 60 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 1361 -------------------- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 586 +++++++++ drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 210 +-- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 45 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 45 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c | 46 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 76 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 31 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf110.c | 83 -- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 83 ++ .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf110.c | 80 -- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf119.c | 80 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 99 -- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 1261 +----------------- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 136 +- .../gpu/drm/nouveau/nvkm/engine/disp/oimmgf119.c | 37 + .../gpu/drm/nouveau/nvkm/engine/disp/oimmnv50.c | 73 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlyg84.c | 62 + .../gpu/drm/nouveau/nvkm/engine/disp/ovlygf119.c | 101 ++ .../gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c | 88 ++ .../gpu/drm/nouveau/nvkm/engine/disp/ovlygt200.c | 65 + .../gpu/drm/nouveau/nvkm/engine/disp/ovlynv50.c | 115 ++ .../gpu/drm/nouveau/nvkm/engine/disp/piocgf119.c | 85 ++ .../gpu/drm/nouveau/nvkm/engine/disp/piocnv50.c | 104 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg84.c | 43 + drivers/gpu/drm/nouveau/nvkm/engine/disp/rootg94.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgf119.c | 176 +++ .../gpu/drm/nouveau/nvkm/engine/disp/rootgk104.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgk110.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgm107.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgm204.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgt200.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgt215.c | 43 + .../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 119 ++ .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 328 +++++ .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 36 + .../gpu/drm/nouveau/nvkm/engine/disp/sorgf110.c | 117 -- .../gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 117 ++ .../gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 6 +- 62 files changed, 4591 insertions(+), 3787 deletions(-) commit 0710cc31482ae3711367c42e61580126c50c8ec0 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/dma: convert user classes to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h | 21 ++- drivers/gpu/drm/nouveau/nvkm/core/client.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 27 ++- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 31 ++-- drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c | 195 ++++++++++++++++----- drivers/gpu/drm/nouveau/nvkm/engine/dma/gf100.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/gf110.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/nv04.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/nv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/priv.h | 3 + drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c | 49 ++++-- drivers/gpu/drm/nouveau/nvkm/engine/dma/user.h | 35 ++-- .../gpu/drm/nouveau/nvkm/engine/dma/usergf100.c | 58 +++--- .../gpu/drm/nouveau/nvkm/engine/dma/usergf110.c | 54 +++--- drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c | 60 +++---- drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c | 59 +++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 20 +-- 18 files changed, 362 insertions(+), 264 deletions(-) commit 19fef52d93518cc01fd284b55ee93c0a9967634f Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/dma: split user classes out from engine implementations Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h | 26 +++ .../gpu/drm/nouveau/include/nvkm/engine/dmaobj.h | 26 --- drivers/gpu/drm/nouveau/nvkm/engine/Kbuild | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/dma/Kbuild | 11 ++ drivers/gpu/drm/nouveau/nvkm/engine/dma/base.c | 110 +++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/gf100.c | 38 ++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/gf110.c | 38 ++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/nv04.c | 38 ++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/nv50.c | 38 ++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/priv.h | 18 ++ drivers/gpu/drm/nouveau/nvkm/engine/dma/user.c | 121 ++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/user.h | 29 +++ .../gpu/drm/nouveau/nvkm/engine/dma/usergf100.c | 155 ++++++++++++++++ .../gpu/drm/nouveau/nvkm/engine/dma/usergf110.c | 137 ++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.c | 141 ++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.c | 161 ++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/Kbuild | 5 - drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c | 205 --------------------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf100.c | 168 ----------------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf110.c | 150 --------------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c | 154 ---------------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c | 174 ----------------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/priv.h | 28 --- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 8 +- 28 files changed, 1070 insertions(+), 923 deletions(-) commit 0e29998a89a6254f5ca9f78167f9ce790d01da45 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/device: convert ctrl class to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 6 ++ drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 74 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.h | 12 ++++ drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 24 +++---- 5 files changed, 73 insertions(+), 45 deletions(-) commit 2a9f847f5d43d15c0401d050cdd77fb4cbe7da06 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/device: convert user class to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 4 +- drivers/gpu/drm/nouveau/nvkm/core/client.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 233 ++++++++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 2 +- 7 files changed, 180 insertions(+), 88 deletions(-) commit 24bd0930bedea1182aaadc52757897d2b9b3ca99 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/client: convert to new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/client.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 36 +++++------ drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h | 1 + drivers/gpu/drm/nouveau/nvkm/core/client.c | 72 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/core/handle.c | 1 + drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 1 + 9 files changed, 70 insertions(+), 52 deletions(-) commit 6157091177102638c7d94ffc159c0b157a1c9b56 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/sw: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 27 ------ drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 33 +------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 33 +------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 59 ++++-------- drivers/gpu/drm/nouveau/nvkm/engine/sw/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c | 64 ++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c | 27 +++++- drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h | 16 ++- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 107 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 50 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 23 ++--- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 101 ++++++------------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.h | 2 + 15 files changed, 251 insertions(+), 301 deletions(-) commit 590801c1a3b19883b0d0e4c60241cbed8a916d47 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/mpeg: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 76 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h | 3 + drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 25 +++---- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 90 +++++++++++++++++++------ 4 files changed, 118 insertions(+), 76 deletions(-) commit a65955e19e769e92a0e29cccdc29aea0b19f3809 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/gr: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 81 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 2 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 787 ++++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 104 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 21 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 59 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 34 +- 15 files changed, 593 insertions(+), 533 deletions(-) commit 6ca307b0c9c7878eb1b2b42982c05671f0591229 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/fifo: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 34 ++++++++++------------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 35 ++++++++++-------------- 2 files changed, 28 insertions(+), 41 deletions(-) commit 35acf3d72cf273e164c9a8bbf30610b95e2a4c84 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/cipher: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit a83d8872fc8a482e47f7375ab66006e1f8c1fd59 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/falcon: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 4 +- .../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 20 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 15 +++--- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 54 +++++++-------------- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 27 +++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.c | 8 +++- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c | 8 +++- drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.c | 8 +++- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 55 ++++++++-------------- 14 files changed, 131 insertions(+), 113 deletions(-) commit 344c2d429dd86b1b0113177e18f15adb74e9d936 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/fb: remove dependence on namedb/engctx lookup Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 8 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 41 ++++++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 162 +++++++++------------ 7 files changed, 125 insertions(+), 92 deletions(-) commit 898a2b32138da26ed8f7abc0cc8232741ca03de7 Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/sw: turn flip completion into an event Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h | 22 ------- drivers/gpu/drm/nouveau/nouveau_chan.c | 5 -- drivers/gpu/drm/nouveau/nouveau_display.c | 15 +++-- drivers/gpu/drm/nouveau/nouveau_drm.c | 15 +++-- drivers/gpu/drm/nouveau/nouveau_drm.h | 1 + drivers/gpu/drm/nouveau/nouveau_fence.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/Kbuild | 4 ++ drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.c | 76 ++++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/sw/chan.h | 25 ++++++++ drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 11 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 11 ++-- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 9 ++- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.c | 74 +++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/sw/nvsw.h | 10 ++++ drivers/gpu/drm/nouveau/nvkm/engine/sw/priv.h | 5 ++ 18 files changed, 240 insertions(+), 53 deletions(-) commit cd459e7776c2c08e3771e20fca7de96272f2c9cd Author: Ben Skeggs Date: Thu Aug 20 14:54:18 2015 +1000 drm/nouveau/sw/nv04: replace direct context access with GetRef method Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 12 +++++ drivers/gpu/drm/nouveau/include/nvif/device.h | 1 - drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 1 - drivers/gpu/drm/nouveau/nv04_fence.c | 6 ++- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 55 +++++++++++++++++++--- 5 files changed, 65 insertions(+), 10 deletions(-) commit 1d2a1e53865266a67fb569705eba3ec992682721 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/ramht: remove dependence on namedb Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/ramht.h | 28 ++-- drivers/gpu/drm/nouveau/nvkm/core/ramht.c | 157 +++++++++++++++------ drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 11 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 12 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 5 +- 11 files changed, 162 insertions(+), 82 deletions(-) commit f027f49166171c98d5945af12ac3ee9bc9f9bf4c Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/gpuobj: separate allocation from nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 24 +- .../gpu/drm/nouveau/include/nvkm/engine/dmaobj.h | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 6 +- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 358 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c | 52 ++- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf100.c | 19 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf110.c | 26 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c | 23 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c | 31 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/priv.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 53 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 28 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 35 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 27 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 6 +- 20 files changed, 373 insertions(+), 379 deletions(-) commit 227c95d90a3c50defbc7b4f98605e13af4e6214c Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/gr: directly use instmem where currently possible Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 27 +++++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 48 ++++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 10 +++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 8 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 7 +++- 15 files changed, 87 insertions(+), 63 deletions(-) commit 358ce601ae5de59bf6f08f79455c5b3cb7d359d4 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/fifo: directly use instmem for runlists and polling areas Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 1 - drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 16 -------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 9 +++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 41 +++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 44 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 17 +++++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h | 2 +- 7 files changed, 64 insertions(+), 66 deletions(-) commit faf468981e3a50ce088460595bd10812af9be7f8 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/xtensa: directly use instmem for ucode image Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/xtensa.h | 3 +-- drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) commit 406ca8c714825c2d9e2c866787150eae4e1a1cc3 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/falcon: directly use instmem for ucode image Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/falcon.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) commit 5b1ab0c2c79c3556c4350f4f47d11745fdffad8f Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/imem/nv04-nv40: directly use instmem for vbios/ramfc/ramro Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 6 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 49 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h | 3 -- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 20 +++------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 32 ++++++------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 52 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 14 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 14 +++--- 8 files changed, 91 insertions(+), 99 deletions(-) commit adb53d2773a7b0e95bb47e092c71906c7d989366 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/bar/gf100: directly use instmem for channel descriptors Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit d0659d3277cd7bf50e45d48f4692a7fbb11e5957 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/mmu: directly use instmem for page tables Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 11 +++--- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 8 ++--- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 39 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 12 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 16 ++++----- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 17 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 22 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 18 +++++----- 12 files changed, 75 insertions(+), 76 deletions(-) commit d8e83994aaf6749b7124a219f5b46bd1329e2a08 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/imem: improve management of instance memory Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 33 +-- drivers/gpu/drm/nouveau/include/nvkm/core/memory.h | 53 +++++ drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h | 9 +- .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 27 +-- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 1 + drivers/gpu/drm/nouveau/nouveau_bo.c | 6 +- drivers/gpu/drm/nouveau/nvkm/core/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 133 ++++++----- drivers/gpu/drm/nouveau/nvkm/core/memory.c | 64 ++++++ drivers/gpu/drm/nouveau/nvkm/core/ramht.c | 8 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 9 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 11 - drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 3 - drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 90 -------- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 43 +--- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 32 +-- drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h | 3 - drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 244 ++++++++++++++++----- .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 214 ++++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 160 ++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.h | 36 --- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 146 +++++++++++- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 198 ++++++++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h | 31 +-- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 19 ++ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 4 - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 4 - 34 files changed, 968 insertions(+), 656 deletions(-) commit 1de68568d69ac518db076cc6118af91e930b5f90 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/mmu: protect each vm with its own mutex An upcoming commit requires being able to modify the PRAMIN BAR page tables while already holding the MMU subdev mutex. To solve this issue, each VM has been given its own mutex. As a nice side-effect, this also allows separate VMs to be updated concurrently. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 11 ++++-- drivers/gpu/drm/nouveau/nouveau_drm.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 11 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 6 ++- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c | 46 +++++++++-------------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 6 +-- 10 files changed, 46 insertions(+), 50 deletions(-) commit 524bdbf2025d44cdea672511d21012a52b427374 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/core: prepare for new-style objects Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 11 +- drivers/gpu/drm/nouveau/include/nvkm/core/handle.h | 2 +- drivers/gpu/drm/nouveau/nvkm/core/client.c | 3 +- drivers/gpu/drm/nouveau/nvkm/core/engctx.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/handle.c | 48 ++++----- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 111 ++++++++++++++++++--- drivers/gpu/drm/nouveau/nvkm/core/namedb.c | 8 +- 7 files changed, 135 insertions(+), 50 deletions(-) commit 6cf813fb26640ef539051fb7f965af8c9ff10d92 Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/device: prepare for new-style subdevs Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 50 +- drivers/gpu/drm/nouveau/nvkm/core/engine.c | 10 + drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 25 +- drivers/gpu/drm/nouveau/nvkm/core/object.c | 48 +- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 39 +- drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2251 +++++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 41 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 40 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 36 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 19 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 26 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 23 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 24 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 39 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 48 - drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 36 + drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 4 +- 28 files changed, 2378 insertions(+), 437 deletions(-) commit 7974dd1bdb43aaf5b45a915c6b439d11733450fc Author: Ben Skeggs Date: Thu Aug 20 14:54:17 2015 +1000 drm/nouveau/device: separate construction of pci/tegra devices Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/os.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 4 +- drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 30 +++--- drivers/gpu/drm/nouveau/include/nvkm/core/pci.h | 14 +++ drivers/gpu/drm/nouveau/include/nvkm/core/tegra.h | 14 +++ drivers/gpu/drm/nouveau/nouveau_drm.c | 15 ++- drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 104 ++++++++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 100 ++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 9 ++ drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 66 +++++++++++++ 11 files changed, 307 insertions(+), 54 deletions(-) commit 168c2e213d3a9b605856d3676d9e93733c8b37d3 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/engine: implement support for new-style nvkm_engine Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 37 ++++++ drivers/gpu/drm/nouveau/nvkm/core/engine.c | 127 +++++++++++++++++++++ 2 files changed, 164 insertions(+) commit f0290215c44370ff5d55c01a13dc5a44a1f86efa Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/subdev: implement support for new-style nvkm_subdev Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 3 - drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 30 +++- drivers/gpu/drm/nouveau/nvkm/core/engctx.c | 8 +- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 189 ++++++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 2 +- 6 files changed, 217 insertions(+), 17 deletions(-) commit cbea21e2ab658ca1256bfe5f4c535b2b1b9e4060 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/object: implement support for new-style nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 8 +- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 62 +++++- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 8 +- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 17 +- drivers/gpu/drm/nouveau/nvkm/core/object.c | 227 +++++++++++++++++---- drivers/gpu/drm/nouveau/nvkm/core/ramht.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 2 +- 10 files changed, 271 insertions(+), 65 deletions(-) commit 89c651e2213a148d19407109051abbf81328a4a8 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/engine: rename some functions to avoid upcoming conflicts Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/engine/mpeg.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 4 ++-- 10 files changed, 19 insertions(+), 19 deletions(-) commit 3a8c3400f3e74638bedd0d2410416aa8b794c0fd Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/subdev: rename some functions to avoid upcoming conflicts Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/mxm.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/timer.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h | 2 +- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 10 ++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 2 +- 24 files changed, 48 insertions(+), 46 deletions(-) commit aa35888ff024b18c7b6b29eb773a221f642987f7 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/object: rename some functions to avoid upcoming conflicts Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 4 ++-- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 6 +++--- drivers/gpu/drm/nouveau/include/nvkm/core/parent.h | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 10 +++++----- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/core/object.c | 10 +++++----- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/priv.h | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 2 +- 22 files changed, 51 insertions(+), 51 deletions(-) commit d61f4c178cb36a7b15871fcc60814f1f94a5044d Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: device time mthd Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 7 +++++++ drivers/gpu/drm/nouveau/include/nvif/device.h | 1 - drivers/gpu/drm/nouveau/nvif/device.c | 6 +++++- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 21 +++++++++++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) commit 159045cdc460794df27e2cc624a9641be5c54b23 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: replace pushbuf with vm in fermi/kepler gpfifo class args Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 21 ++++++++++++++- drivers/gpu/drm/nouveau/nouveau_chan.c | 16 +++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 34 +++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 6 ++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 11 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 9 ++++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 6 ++++- 11 files changed, 77 insertions(+), 34 deletions(-) commit 22827fa42b0baa9287ea56691f26dc45fecea049 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: return chipset/board names from device info method Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 2 ++ drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 2 ++ 2 files changed, 4 insertions(+) commit d56241794c293ff7341d373d853e5a4e2f5de244 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: add supported engines query to kepler gpfifo class Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) commit 41a634064db489713945e228e216336080ba57f8 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: return min/max versions for supported object classes Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 6 ++- drivers/gpu/drm/nouveau/include/nvif/object.h | 9 +++- drivers/gpu/drm/nouveau/include/nvkm/core/parent.h | 2 +- drivers/gpu/drm/nouveau/nouveau_abi16.c | 21 +++++---- drivers/gpu/drm/nouveau/nouveau_drm.c | 11 +++-- drivers/gpu/drm/nouveau/nv50_display.c | 13 +++--- drivers/gpu/drm/nouveau/nvif/object.c | 53 ++++++++++++++++------ drivers/gpu/drm/nouveau/nvkm/core/parent.c | 19 ++++++-- 8 files changed, 92 insertions(+), 42 deletions(-) commit f58ddf9581655d3fea51465f06f292d365af9c87 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: assign internal class identifiers to sw classes Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 4 ++ drivers/gpu/drm/nouveau/include/nvkm/core/namedb.h | 2 +- drivers/gpu/drm/nouveau/nouveau_abi16.c | 76 +++++++++++++++++----- drivers/gpu/drm/nouveau/nouveau_abi16.h | 2 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 4 +- drivers/gpu/drm/nouveau/nvkm/core/namedb.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 3 +- 12 files changed, 87 insertions(+), 26 deletions(-) commit 315a8b2edf51711857795ba6e02b843d7792b59c Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: use negative oclass identifier for internal classes Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 2 +- drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 10 +++++----- drivers/gpu/drm/nouveau/include/nvif/object.h | 6 +++--- drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 11 +---------- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/parent.h | 4 ++-- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- drivers/gpu/drm/nouveau/nv50_display.c | 18 +++++++++--------- drivers/gpu/drm/nouveau/nvif/device.c | 2 +- drivers/gpu/drm/nouveau/nvif/object.c | 5 ++--- drivers/gpu/drm/nouveau/nvkm/core/parent.c | 4 ++-- 12 files changed, 29 insertions(+), 39 deletions(-) commit 5c15bf709eb6fb52c5bcb95d545250dde22f9625 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: return success from sclass even for objects without children Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 99d4d36ad673c2b4fea364f6d456718f0f701ce4 Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: extend nop ioctl to return nvif version identifier Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/client.h | 1 + drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 5 ++++- drivers/gpu/drm/nouveau/nvif/client.c | 9 +++++++++ drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 7 ++++--- 4 files changed, 18 insertions(+), 4 deletions(-) commit bf81df9be28657eea4aca8c6ab4ed3e69f8a051c Author: Ben Skeggs Date: Thu Aug 20 14:54:16 2015 +1000 drm/nouveau/nvif: replace path-based object identification Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 23 +++++----- drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 12 ++--- drivers/gpu/drm/nouveau/include/nvif/object.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 6 +++ drivers/gpu/drm/nouveau/include/nvkm/core/handle.h | 5 ++- drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 3 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 6 +-- drivers/gpu/drm/nouveau/nv50_display.c | 4 +- drivers/gpu/drm/nouveau/nvif/client.c | 2 - drivers/gpu/drm/nouveau/nvif/object.c | 17 +++----- drivers/gpu/drm/nouveau/nvkm/core/client.c | 50 +++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/core/handle.c | 22 ++-------- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 51 ++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 27 +++++++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 17 +++++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 4 +- 24 files changed, 152 insertions(+), 116 deletions(-) commit a01ca78c8f118e5a24f1527ecf078ab56ddd4805 Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/nvif: simplify and tidy library interfaces A variety of tweaks to the NVIF library interfaces, mostly ripping out things that turned out to be not so useful. - Removed refcounting from nvif_object, callers are expected to not be stupid instead. - nvif_client is directly reachable from anything derived from nvif_object, removing the need for heuristics to locate it - _new() versions of interfaces, that allocate memory for the object they construct, have been removed. The vast majority of callers used the embedded _init() interfaces. - No longer storing constructor arguments (and the data returned from nvkm) inside nvif_object, it's more or less unused and just wastes memory. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/arb.c | 2 +- drivers/gpu/drm/nouveau/dispnv04/dac.c | 15 +-- drivers/gpu/drm/nouveau/dispnv04/dfp.c | 2 +- drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +- drivers/gpu/drm/nouveau/dispnv04/hw.c | 22 ++--- drivers/gpu/drm/nouveau/dispnv04/hw.h | 26 ++--- drivers/gpu/drm/nouveau/dispnv04/overlay.c | 13 +-- drivers/gpu/drm/nouveau/dispnv04/tvnv17.h | 4 +- drivers/gpu/drm/nouveau/include/nvif/client.h | 26 ++--- drivers/gpu/drm/nouveau/include/nvif/device.h | 24 ++--- drivers/gpu/drm/nouveau/include/nvif/notify.h | 12 +-- drivers/gpu/drm/nouveau/include/nvif/object.h | 57 +++++------ drivers/gpu/drm/nouveau/nouveau_abi16.c | 134 +++++++++++-------------- drivers/gpu/drm/nouveau/nouveau_abi16.h | 2 +- drivers/gpu/drm/nouveau/nouveau_agp.c | 2 +- drivers/gpu/drm/nouveau/nouveau_backlight.c | 22 ++--- drivers/gpu/drm/nouveau/nouveau_bios.c | 11 ++- drivers/gpu/drm/nouveau/nouveau_bo.c | 4 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 55 +++++------ drivers/gpu/drm/nouveau/nouveau_chan.h | 2 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 4 +- drivers/gpu/drm/nouveau/nouveau_display.c | 6 +- drivers/gpu/drm/nouveau/nouveau_dma.c | 10 +- drivers/gpu/drm/nouveau/nouveau_dma.h | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 18 ++-- drivers/gpu/drm/nouveau/nouveau_fence.c | 15 ++- drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +- drivers/gpu/drm/nouveau/nouveau_sysfs.c | 4 +- drivers/gpu/drm/nouveau/nouveau_vga.c | 9 +- drivers/gpu/drm/nouveau/nv04_fbcon.c | 12 +-- drivers/gpu/drm/nouveau/nv04_fence.c | 2 +- drivers/gpu/drm/nouveau/nv10_fence.c | 2 +- drivers/gpu/drm/nouveau/nv17_fence.c | 4 +- drivers/gpu/drm/nouveau/nv50_display.c | 110 +++++++++++---------- drivers/gpu/drm/nouveau/nv50_fbcon.c | 2 +- drivers/gpu/drm/nouveau/nv50_fence.c | 4 +- drivers/gpu/drm/nouveau/nv84_fence.c | 2 +- drivers/gpu/drm/nouveau/nvc0_fbcon.c | 2 +- drivers/gpu/drm/nouveau/nvif/client.c | 61 +++--------- drivers/gpu/drm/nouveau/nvif/device.c | 45 ++------- drivers/gpu/drm/nouveau/nvif/notify.c | 49 ++-------- drivers/gpu/drm/nouveau/nvif/object.c | 135 ++++++++------------------ 42 files changed, 365 insertions(+), 574 deletions(-) commit 4e7e62d607a711bc8e8576a0fc7d8f242d25c9b3 Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/client: store default device by handle, not reference Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 2 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/client.c | 11 ++--------- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 10 +++++----- 4 files changed, 9 insertions(+), 16 deletions(-) commit 102b49da15834c1d2ba508457fdf69b3d07c6fee Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/parent: remove some (now) unnecessary special-case handling Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/parent.h | 8 +--- drivers/gpu/drm/nouveau/nvkm/core/parent.c | 55 +++++----------------- 2 files changed, 14 insertions(+), 49 deletions(-) commit 493f189dc0cbbe9bde8074fb49ca777ba1ef292c Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/object: store object type data outside of handle Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 6 +++--- drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 2 +- drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 2 +- drivers/gpu/drm/nouveau/nvkm/core/object.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) commit a1e88736221d2e971726931c449ed7d0af31755b Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/device: decouple from engine machinery Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 8 +++- drivers/gpu/drm/nouveau/nvkm/core/client.c | 11 +++-- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 9 +--- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 37 +++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 2 - drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 53 +++++++++++++++++++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 28 ++++++------ drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 4 +- 10 files changed, 104 insertions(+), 59 deletions(-) commit a1bfb29a33521efa6b1714589bf68cb4afebacb1 Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/device: split user device implementation out on its own Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 226 +------------------- drivers/gpu/drm/nouveau/nvkm/engine/device/priv.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 247 ++++++++++++++++++++++ 4 files changed, 254 insertions(+), 223 deletions(-) commit 0ac9d210a13c6eaa5492bdd27eb0add952238b8c Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/device: simplify subdev construction Replaces the piece-by-piece (in response to NV_DEVICE ctor args) device contruction with a once-off all-or-nothing approach, eliminating some tricky refcounting issues. The partial device init capability was only required by some tools, and has been moved to probe time instead. Temporarily removes a workaround for some boards where we need to fiddle with AGP registers before executing the DEVINIT scripts. A later commit in this series reinstates it. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 23 - drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 1 + drivers/gpu/drm/nouveau/nouveau_drm.c | 32 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 501 +++++++++------------ 4 files changed, 218 insertions(+), 339 deletions(-) commit c813d8e048740ca82b88a9d3f639bbd8095b24ac Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/bin: punt client/device argument handling into a common helper Signed-off-by: Ben Skeggs commit e781dc8f6cebf69bd410eb652a13e0a3797d71fe Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/device: tidy ctor/dtor interfaces Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 10 ++--- drivers/gpu/drm/nouveau/nouveau_drm.c | 22 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 49 +++++++++++----------- 3 files changed, 40 insertions(+), 41 deletions(-) commit 76ecea5b4b9383edde2bfe49e59e76fec4e21aa4 Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/client: tidy ctor/dtor interfaces Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 13 +-- drivers/gpu/drm/nouveau/nouveau_drm.c | 4 +- drivers/gpu/drm/nouveau/nouveau_nvif.c | 8 +- drivers/gpu/drm/nouveau/nvkm/core/client.c | 104 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 +- 5 files changed, 64 insertions(+), 67 deletions(-) commit 47b2505efb2d951f16c3a229d93450b463d925e5 Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/platform: remove subclassing of nvkm_device Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 2 ++ drivers/gpu/drm/nouveau/nouveau_drm.c | 14 +++++++------- drivers/gpu/drm/nouveau/nouveau_drm.h | 5 +---- drivers/gpu/drm/nouveau/nouveau_platform.c | 6 +++--- drivers/gpu/drm/nouveau/nouveau_platform.h | 10 ---------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 5 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 13 ++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c | 10 ++++------ 8 files changed, 25 insertions(+), 40 deletions(-) commit f2c906fc0cf1657e4164e09ae6061534eebd5430 Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/disp: transition outp/conn away from being based on nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 21 ++- drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 166 ++++++++++++++++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.c | 114 +++++--------- drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.h | 61 +++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 12 ++ drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c | 60 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c | 11 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 21 ++- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c | 123 +++++---------- drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h | 74 ++++----- drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.c | 156 ++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h | 59 ++++---- .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 160 ++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 21 ++- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 62 +++++--- .../gpu/drm/nouveau/nvkm/engine/disp/sorgf110.c | 29 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c | 36 ++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 12 ++ 28 files changed, 629 insertions(+), 635 deletions(-) commit 2aa5eac5163fedf09f2d61992cb5ea4d75bec9db Author: Ben Skeggs Date: Thu Aug 20 14:54:15 2015 +1000 drm/nouveau/i2c: transition pad/ports away from being based on nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/dfp.c | 11 +- drivers/gpu/drm/nouveau/dispnv04/disp.c | 4 +- drivers/gpu/drm/nouveau/dispnv04/tvnv04.c | 16 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h | 125 ++-- drivers/gpu/drm/nouveau/nouveau_bios.c | 1 - drivers/gpu/drm/nouveau/nouveau_connector.c | 26 +- drivers/gpu/drm/nouveau/nouveau_dp.c | 17 +- drivers/gpu/drm/nouveau/nouveau_encoder.h | 4 +- drivers/gpu/drm/nouveau/nv50_display.c | 32 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.c | 54 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h | 2 + .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 76 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild | 28 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c | 376 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c | 151 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h | 30 + drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c | 181 ++++++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm204.c | 181 ++++++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 669 +++++++-------------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.c | 149 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c | 245 ++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.h | 37 ++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.c | 95 +++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.c | 96 +++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.c | 86 +++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.c | 113 ++++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c | 221 +------ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c | 75 +-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c | 191 +----- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c | 91 +-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c | 87 +-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c | 107 +--- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.h | 28 - drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.c | 119 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.h | 109 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padg94.c | 89 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.c | 51 ++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm204.c | 89 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.c | 18 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv4e.c | 36 ++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv50.c | 36 ++ drivers/gpu/drm/nouveau/nvkm/subdev/i2c/port.h | 14 - drivers/gpu/drm/nouveau/nvkm/subdev/i2c/priv.h | 37 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c | 32 +- 52 files changed, 2293 insertions(+), 2021 deletions(-) commit d36a99d2da22bdffebf644e4a5f811e8eff82360 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/fb: transition nvkm_ram away from being based on nvkm_object Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/mm.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 63 +++-- drivers/gpu/drm/nouveau/nouveau_ttm.c | 39 +-- drivers/gpu/drm/nouveau/nvkm/core/mm.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 72 +---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/g84.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.h | 11 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gt215.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp77.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp89.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.h | 14 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.h | 8 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h | 38 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c | 100 +++++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.h | 50 ++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 295 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 170 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.c | 37 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 186 ++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c | 100 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.c | 51 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.c | 36 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 34 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.c | 46 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 91 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.h | 14 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.c | 46 +--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.c | 41 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.c | 46 +--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.c | 34 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 204 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 18 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h | 2 +- 59 files changed, 872 insertions(+), 1092 deletions(-) commit a8dae9fe0e8ad94de1bb2bfda90d288c1b9eb6e6 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/vga: require nvkm_device pointer in accessor functions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/vga.h | 26 ++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.c | 105 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 14 +-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c | 21 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c | 20 ++-- 9 files changed, 98 insertions(+), 102 deletions(-) commit 95cf469cc3b266324cd9129f93a2d44b85ea27ed Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/imem: use object accessor function for suspend/resume Very much not ideal, but this will be improved later. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 47 ---------------------- .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 14 ++++--- 3 files changed, 10 insertions(+), 53 deletions(-) commit cfdc4c44b4388bb8e697882cddd966333e4ab7b0 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/core: wrap direct use of object accessor functions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 7 +++ drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 59 +++++++----------- drivers/gpu/drm/nouveau/nvkm/core/object.c | 69 ++++++++++++++++++++++ 3 files changed, 97 insertions(+), 38 deletions(-) commit 572fb13db2a9dc5336a4b769d60428bc9cff0af6 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/mpeg: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 10 ++++++---- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 4 +++- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 19 +++++++++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) commit 142ea05f49b9517929f8b27ee800160e7ebf3a02 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/gr: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 37 +++++---- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.c | 10 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.h | 11 ++- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 47 +++++++----- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 45 ++++++----- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 84 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 92 ++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 74 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 88 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 86 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 86 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 10 ++- 14 files changed, 385 insertions(+), 317 deletions(-) commit 5444e770e3991ddb5a9583d622fc18bbf414b551 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/fifo: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 92 +++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 71 ++++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 67 ++++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 18 +++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 10 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 10 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 20 ++++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 90 ++++++++++++----------- 8 files changed, 220 insertions(+), 158 deletions(-) commit 3f532ef1e23395d7abb0eed316dd31123f87f448 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/dma: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf100.c | 16 +++++++++------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf110.c | 14 ++++++++------ drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c | 14 +++++++++----- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c | 16 +++++++++------- 4 files changed, 35 insertions(+), 25 deletions(-) commit 6d06fd68cb8d3c8be819d96bffb0a342d01b5e22 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/cipher: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit edb1dc51de2f93905f49ba693c1777d6497a5cae Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/xtensa: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9cc264a3aac2ca62d8a2e13c8f13c8ef8567550b Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/falcon: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit cd821077aa7f180f83f3a5d60ec47cb75d56fd37 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/mmu: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 24 +++++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 14 +++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 8 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 36 ++++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 24 +++++++++++------ 5 files changed, 68 insertions(+), 38 deletions(-) commit 1918707556986e9460682845a2bf4055c43a8b65 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/bar: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 10 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 32 ++++++++++++++----------- 2 files changed, 24 insertions(+), 18 deletions(-) commit 45ea503161af6e94d593a59e8cca8981d0435d5c Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/core: switch to gpuobj accessor macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 8 ++++++-- drivers/gpu/drm/nouveau/nvkm/core/ramht.c | 22 +++++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) commit 384af9aceaf8ee1e2d3791cc89a32c161d67bb57 Author: Ben Skeggs Date: Thu Aug 20 14:54:14 2015 +1000 drm/nouveau/gpuobj: type-safe accessor macros These require an explicit struct nvkm_gpuobj pointer, unlike the previous macros which take a void *, and work with any nvkm_object. New semantics require acquiring/releasing a gpuobj before accessing them, which will be made use of in later patches to greatly reduce the overhead of accesses, particularly when a direct mmio mapping of the object is not available (suspend/resume, out of ioremap() space, and on GK20A). Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 9ccdc76006e3b6ca46c8dbc446bc2e3f6d8d95cb Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/xtensa: remove object accessor functions Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/xtensa.h | 2 - drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/vp/g84.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 58 +++++++++------------- 4 files changed, 24 insertions(+), 40 deletions(-) commit 63902181a7ce9177c476103694cbdf45ee5c0578 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/falcon: remove object accessor functions Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 2 - drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 9 +-- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 26 +++---- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 85 ++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 2 - 13 files changed, 55 insertions(+), 85 deletions(-) commit a47474261e77b148480daff855e516dc60e80b48 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/imem: remove object accessor functions Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 7 +++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 24 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 18 ++++++++++------ 6 files changed, 40 insertions(+), 23 deletions(-) commit 7e24c1145a9176fb9c9b81b3a0f0703598b1445c Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/fuse: remove object accessor functions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/fuse.h | 5 +++++ drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.c | 10 +++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c | 9 ++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.c | 10 +++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c | 4 ++-- 5 files changed, 27 insertions(+), 11 deletions(-) commit 7f5f518fd70b1b72ca4cf8249ca3306846383ed4 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/bios: remove object accessor functions Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 14 - drivers/gpu/drm/nouveau/include/nvkm/subdev/bios.h | 5 + .../gpu/drm/nouveau/include/nvkm/subdev/bios/bmp.h | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.c | 26 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 80 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c | 28 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.c | 30 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.c | 26 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c | 32 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.c | 36 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c | 78 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.c | 18 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.c | 30 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.c | 48 +-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 416 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.c | 28 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c | 88 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 150 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 34 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 180 ++++----- drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 82 +--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c | 28 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.c | 98 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c | 40 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.c | 52 +-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/xpio.c | 26 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf110.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 2 +- 45 files changed, 881 insertions(+), 970 deletions(-) commit 53003941067534b1071b0f7b71f4700c16d97b28 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/core: remove last printks Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/debug.h | 9 +- drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/gpuobj.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/namedb.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/object.h | 12 +-- drivers/gpu/drm/nouveau/include/nvkm/core/parent.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/core/printk.h | 29 ------ drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 3 +- .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 3 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 3 - drivers/gpu/drm/nouveau/nvkm/core/Kbuild | 1 - drivers/gpu/drm/nouveau/nvkm/core/client.c | 28 +++--- drivers/gpu/drm/nouveau/nvkm/core/engctx.c | 12 +-- drivers/gpu/drm/nouveau/nvkm/core/engine.c | 9 +- drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c | 4 +- drivers/gpu/drm/nouveau/nvkm/core/handle.c | 3 +- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 102 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/core/object.c | 92 ++---------------- drivers/gpu/drm/nouveau/nvkm/core/option.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/printk.c | 103 --------------------- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 9 +- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 17 ++-- drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.c | 22 ++--- drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 16 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 5 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf110.c | 5 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 10 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf110.c | 10 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 10 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 11 ++- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 69 +++++++------- .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf100.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf110.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 18 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 18 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 42 ++++----- 50 files changed, 294 insertions(+), 514 deletions(-) commit 9ad97ede4b1b257ccc867d5a1e865049e1f09166 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau: use dev_* for logging Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_abi16.c | 2 +- drivers/gpu/drm/nouveau/nouveau_bios.c | 7 +++-- drivers/gpu/drm/nouveau/nouveau_chan.c | 8 ++--- drivers/gpu/drm/nouveau/nouveau_drm.c | 18 +++++++----- drivers/gpu/drm/nouveau/nouveau_drm.h | 13 ++++++--- drivers/gpu/drm/nouveau/nouveau_gem.c | 52 ++++++++++++++++----------------- drivers/gpu/drm/nouveau/nv50_display.c | 2 +- 7 files changed, 55 insertions(+), 47 deletions(-) commit 9e3911e5b244c01886f25ce1cb453dd9c5334853 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/sec: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/enum.h | 1 - drivers/gpu/drm/nouveau/nvkm/core/enum.c | 11 ----------- drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 14 ++++++++------ 3 files changed, 8 insertions(+), 18 deletions(-) commit 476901ff6c611620daab3af6cea940be91d97420 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/pm: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit b835c09bc6b87318fd06bfcb9ac4bb59eaa48f57 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/mpeg: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 12 +++++++----- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 10 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 15 ++++++++------- 4 files changed, 21 insertions(+), 18 deletions(-) commit 109c2f2f1c42c16a4b265e796dee6ae4ada78417 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/gr: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/enum.h | 1 - drivers/gpu/drm/nouveau/nvkm/core/enum.c | 16 -- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 233 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 27 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 29 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 26 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 277 +++++++++++++--------- 10 files changed, 339 insertions(+), 302 deletions(-) commit e5c5e4f5d319799fe67dc67531e41ba0b7ed15e6 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/fifo: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 114 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 148 +++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 46 +++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 7 +- 6 files changed, 162 insertions(+), 165 deletions(-) commit 84407824e97d87161f5ef09ba43a1ac6ec10f479 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/disp: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 74 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 93 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.c | 10 +-- 7 files changed, 102 insertions(+), 88 deletions(-) commit e37f543370b86de9eefd86896adb171b7c45a451 Author: Ben Skeggs Date: Thu Aug 20 14:54:13 2015 +1000 drm/nouveau/device: switch to dev_printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 11 +++-------- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv04.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv10.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv20.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv30.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 1 - 10 files changed, 3 insertions(+), 17 deletions(-) commit 65850a3b407b065f4b0db0264796d2981feb85aa Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/cipher: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 1eed206fa29a98df728dd6e67ac02e135645029f Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/ce: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 3 +-- drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 3 +-- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 14 ++++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) commit 7108bfe4086862fa29ba1cf82f4dee66be314619 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/xtensa: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 64b5ce1fe9ab0949c6387f5df57aaf0527567e08 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/falcon: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) commit 185eda33394af09dbb0c9d330811718e84c0b070 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/volt: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 15 +++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c | 17 ++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.c | 5 +++-- 3 files changed, 22 insertions(+), 15 deletions(-) commit 9d7b9d9f1140e56ad14111fd9576e7333412dc12 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/tmr: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.c | 7 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 13 deletions(-) commit b3c418bb48228a206a8c421adaf269cdc83c3c52 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/therm: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 13 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 21 ++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c | 22 +++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf110.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c | 8 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c | 17 +++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c | 4 ++- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 32 ++++++++++++++--------- 8 files changed, 72 insertions(+), 50 deletions(-) commit c19e329d663715014b367c4fedb217e0378342bf Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/pmu: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 27 +++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 19 ++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c | 28 +++++++++++++------------ 4 files changed, 42 insertions(+), 34 deletions(-) commit 27cc60a17512055c63f05a27eb6687051ade5257 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/mxm: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 34 ++++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.c | 26 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c | 12 +++++---- 3 files changed, 39 insertions(+), 33 deletions(-) commit 85ae830f5ac177244892b934953106d11cd5a679 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/mmu: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) commit c47a48a544ba47eb26ff922203fa0f99c0306907 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/mc: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 59e1a2f1a665c6defc0050060846ed3d89291e8c Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/ltc: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 9 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) commit 00c5550710184bad189d2cfe6b1880c0e9331bae Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/imem: switch to subdev printk macros Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 26 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 4 ++-- 2 files changed, 17 insertions(+), 13 deletions(-) commit 18019e95de4ffdfb020d61197b8da2af1a442c8e Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/ibus: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c | 15 +++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c | 15 +++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c | 2 +- 3 files changed, 19 insertions(+), 13 deletions(-) commit 1cb57d25b6b62b39f07c4ff4370c2c48803000e9 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/i2c: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.c | 8 +++++--- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 17 ++++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c | 20 +++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c | 20 +++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.h | 8 +++++--- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/port.h | 5 +++-- 6 files changed, 45 insertions(+), 33 deletions(-) commit 3ecd329b6445efdcad26e94edd57f0fd5ccd080b Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/fb: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 18 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 5 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 52 ++++++++--------------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 37 +++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 23 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 45 +++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 41 ++++++++++-------- 9 files changed, 116 insertions(+), 112 deletions(-) commit aa860e4bbe16d5756d6845022a6e94d6cb200df9 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/devinit: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c | 9 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gt215.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c | 8 +++++--- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.c | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 12 +++++++----- 8 files changed, 29 insertions(+), 22 deletions(-) commit b907649e7be734a4911f83b67a14e3425fa8a2a1 Author: Ben Skeggs Date: Thu Aug 20 14:54:12 2015 +1000 drm/nouveau/clk: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 42 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 5 +-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 5 +-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 40 ++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 7 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 37 ++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c | 5 +-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 17 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllgt215.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllnv04.c | 2 +- 10 files changed, 93 insertions(+), 69 deletions(-) commit a699a85addc747068a9ac1b2046f4313eb499bc2 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/bus: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.c | 18 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c | 17 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c | 15 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c | 26 +++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c | 18 ++++++++--------- 5 files changed, 49 insertions(+), 45 deletions(-) commit 60b29d2071795d322221cfcfe377e6778b09ca90 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/bios: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 15 ++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c | 11 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 9 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.c | 13 ++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 5 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 29 +++++++++++++--------- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c | 11 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c | 6 ++--- 13 files changed, 70 insertions(+), 54 deletions(-) commit 0df18e6d52fab22e841e734c384c86f3b7b762b8 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/bar: switch to subdev printk macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6594363b9f765e569feb6222d7d07e19db3fa460 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/core: type-safe printk macros These require an explicit pointers to nvkm_object/nvkm_subdev/nvkm_device, depending on which macros are used. This is unlike the previous macros which take a void *, and work for anything derived from nvkm_object (by way of some awful heuristics). The output will be a bit confused until everything has been transitioned, as the logging format used is a more standard style that previously. In addition, usage of pr_cont(), which doesn't work correctly with the dev_*() printk functions (and was potentially racy to begin with), will be replaced. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 12 ++++++++++++ drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 15 +++++++++++++++ drivers/gpu/drm/nouveau/include/nvkm/core/enum.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 19 ++++++++++++++----- drivers/gpu/drm/nouveau/nvkm/core/enum.c | 17 +++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 1 + 6 files changed, 60 insertions(+), 5 deletions(-) commit 5444204036b2e3a4aeeef6265897df3a9976bf97 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/dac.c | 24 +++++++++-------- drivers/gpu/drm/nouveau/dispnv04/hw.c | 11 +++++--- drivers/gpu/drm/nouveau/include/nvif/device.h | 2 -- .../gpu/drm/nouveau/include/nvkm/subdev/timer.h | 30 ---------------------- drivers/gpu/drm/nouveau/nv50_display.c | 16 +++++++++--- 5 files changed, 35 insertions(+), 48 deletions(-) commit 37eabb030c03539996bff662e4adb078a7f8b2a6 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/mpeg: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 5 ++++- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) commit c4584adc37720b65ae44a84c660d47b3ebcf7dfb Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/gr: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 23 ++++++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 61 ++++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 12 ++++- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 15 ++++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 5 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 6 ++- 7 files changed, 87 insertions(+), 40 deletions(-) commit af3082b3c621e75371dc6d11fac5a2dc2b19b1bc Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/fifo: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 5 ++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 5 ++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 5 ++++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 8 +++++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 5 ++++- 5 files changed, 21 insertions(+), 7 deletions(-) commit 3a020b4dfc3a6c79f144b2c6786d86b33cda64d9 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/disp: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 20 ++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 38 ++++++++++++++----- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf110.c | 12 +++++- .../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 12 +++++- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 43 +++++++++++++++++----- .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 10 ++++- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 5 ++- .../gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 16 ++++++-- 9 files changed, 127 insertions(+), 34 deletions(-) commit 6ed5c1682425e29913785977cccca67ff3dec5f1 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/falcon: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit dd4bb3eccc806e78baee3009aa466466daae0f29 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/pmu: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 26 ++++++++++++++++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 11 +++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.c | 5 ++++- 3 files changed, 32 insertions(+), 10 deletions(-) commit 909604d444eb26ed37860268cfc6a68d4a5f28cb Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/mmu: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 16 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 6 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 5 ++++- 4 files changed, 20 insertions(+), 15 deletions(-) commit 1302bcbb8229b0575401be87765277629330384a Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/ltc: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 10 ++++++++-- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) commit 63bb5c390bf2f975f0936b6523af6784af811b49 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/ibus: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit cf07d861ce3c4bfd9d45f9e66f30cbfb56dca3a0 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/fb: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 6979c6303a4abf263753cd9d577d79f05c6e8c47 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/clk: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 16 +++++++++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 16 +++++++++++++--- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 24 +++++++++++++++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 8 +++++--- 5 files changed, 54 insertions(+), 18 deletions(-) commit 4f31c84ebafd7b3940c2fe109fe173c62d097080 Author: Ben Skeggs Date: Thu Aug 20 14:54:11 2015 +1000 drm/nouveau/bus: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.c | 8 +++++++- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) commit 4dd308f446c31e8f4a2b5033ba2de6f53f015114 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/bar: switch to new-style timer macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 56f67dc19623b6cd4db57ee07d6f0cad32bcd5af Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/tmr: type-safe PTIMER-based delay/wait macros These require an explicit struct nvkm_device pointer, unlike the previous macros which take a void *, and work for (almost) anything derived from nvkm_object by using some heuristics. These macros are more general than the previous ones, and can be used to handle PTIMER-based busy-waits (will be used in later devinit fixes) as well as more complicated wait conditions. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/device.h | 22 +++++++++ .../gpu/drm/nouveau/include/nvkm/subdev/timer.h | 57 ++++++++++++++++++++-- drivers/gpu/drm/nouveau/nouveau_abi16.c | 3 +- drivers/gpu/drm/nouveau/nvif/device.c | 6 +++ drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 57 ---------------------- 5 files changed, 83 insertions(+), 62 deletions(-) commit 2ebfa1bc6ff1a7cded8b662f507d34574ffcc2c6 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/kms/nv04: fix incorrect use of register accessors Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/dfp.c | 8 +-- drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 14 ++--- drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 60 ---------------------- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 11 ++-- 5 files changed, 17 insertions(+), 77 deletions(-) commit 01d64afc2e3238cf1658184427fa2563963c8708 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/sw: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 18 ++++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 15 ++++++++------- 3 files changed, 19 insertions(+), 16 deletions(-) commit b8ad561e5541e6e6fe5c60ef33fec50ec211c92b Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/sec: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 846e831d953fd01cb78b9ed92495baee142bed37 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/pm: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 6 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 43 ++++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 21 +++++++------ 3 files changed, 40 insertions(+), 30 deletions(-) commit f2d85ad1a63130ba31434d042b6c76f24f6b9673 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/msvld: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) commit 320ca25131758a445e351f701daf91d8aa5be096 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/msppp: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 54118c74fb4b4fdb032a6c4dfc59bb856bc6fc48 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/mspdec: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.c | 9 +++++---- 3 files changed, 11 insertions(+), 8 deletions(-) commit 636e37aa978b4904189710b5b501299bd7404ad5 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/mpeg: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 68 +++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 26 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 37 +++++++------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 49 +++++++++--------- 4 files changed, 96 insertions(+), 84 deletions(-) commit 276836d46e535c8ca299a1ea8302879dbdd3e93a Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/gr: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 76 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c | 13 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c | 50 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c | 13 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c | 32 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm204.c | 36 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 480 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 121 +++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 62 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 118 +++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 129 +++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.c | 24 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 107 ++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 248 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 172 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 85 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 202 ++++----- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 261 ++++++------ 22 files changed, 1181 insertions(+), 1089 deletions(-) commit 8774440390cdfe37c5d003f850847c9fd67cdf61 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/fifo: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 18 ++- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 159 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 164 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 170 ++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 23 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 51 +++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 49 ++++--- 7 files changed, 345 insertions(+), 289 deletions(-) commit 2fde1f1c343030d169945aa67a0e485b568f1393 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/disp: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 12 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 233 ++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c | 3 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf110.c | 15 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 13 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 45 ++-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf110.c | 29 +-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 31 +-- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 45 ++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 30 +-- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 252 +++++++++++---------- .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 28 ++- .../gpu/drm/nouveau/nvkm/engine/disp/sorgf110.c | 27 ++- .../gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c | 34 +-- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.c | 25 +- 20 files changed, 457 insertions(+), 380 deletions(-) commit f9793bb7ed4d83c1b72661c1cca2949a343df231 Author: Ben Skeggs Date: Thu Aug 20 14:54:10 2015 +1000 drm/nouveau/device: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit b958bf916d34f35639048361f7d87334770ebf4d Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/cipher: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 29e9f51094316879c4602795167e9635e18a3c8b Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/ce: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) commit 2ef770f743c55ee2e7efb8e750c6e2d2eae9f74e Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/xtensa: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 96975248ee45cd50101b4bdf0eaf8c2d9e6cfa73 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/falcon: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c44c049f28dbebfb95aca3847fd4996ca3503b0c Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/tmr: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 6 ++- drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.c | 5 ++- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 48 ++++++++++++----------- 3 files changed, 33 insertions(+), 26 deletions(-) commit 5718ea3257f5fb945a8625dd17d0d753c9dbec34 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/therm: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c | 44 +++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf110.c | 42 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c | 12 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c | 16 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c | 44 +++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c | 34 ++++++++++-------- 6 files changed, 110 insertions(+), 82 deletions(-) commit bef002e87f1accc12a7fc7c98b80354c136c199e Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/pmu: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 107 +++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 64 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.c | 29 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 17 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c | 31 +++---- 6 files changed, 133 insertions(+), 120 deletions(-) commit 83f56106ead017a07868176279746d73bc7a7060 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/mmu: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 11 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 14 +++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 28 +++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 5 +++-- 4 files changed, 32 insertions(+), 26 deletions(-) commit 25e3a463fc1bd39c01cc6d19d2c8b4c4725699b9 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/mc: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 20 ++++++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c | 5 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c | 13 +++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 5 +++-- 6 files changed, 28 insertions(+), 21 deletions(-) commit 99336ed363f49f484b4d93600c4dfec1f2ebb84a Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/ltc: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 51 ++++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.c | 11 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 49 ++++++++++++++---------- 3 files changed, 63 insertions(+), 48 deletions(-) commit d5c5bcf693e7c72f2f853066858f3d40a42ba942 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/imem: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 10 ++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 6 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 10 ++++++---- 4 files changed, 17 insertions(+), 11 deletions(-) commit fef5cc0f258d68d3a9ead1058461bf5f2e2796da Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/ibus: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c | 38 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c | 53 +++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c | 24 ++++++----- 3 files changed, 63 insertions(+), 52 deletions(-) commit 6f2274991043a3db2ab84b5d9462a085d38f1fb1 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/i2c: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c | 59 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c | 6 ++- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.c | 12 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c | 47 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c | 12 +++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c | 15 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padg94.c | 10 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm204.c | 10 ++-- 8 files changed, 98 insertions(+), 73 deletions(-) commit 4de93a086eb0315f0bd8e1d6da40186842670b57 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/gpio: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/gpio/g94.c | 22 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf110.c | 15 +++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.c | 22 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.c | 22 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.c | 23 ++++++++++++++--------- 5 files changed, 60 insertions(+), 44 deletions(-) commit 2bdb4995fd9629840ed80305f2a9f046071881d7 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/fuse: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.c | 11 ++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c | 3 ++- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.c | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) commit 6758745b2821bddcec1aae0c4cffaa9608aeda59 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/fb: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 8 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.c | 11 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c | 13 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.c | 14 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.c | 14 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 13 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramfuc.h | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 51 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 61 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 66 ++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c | 18 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 64 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.c | 9 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 31 ++++++----- 25 files changed, 236 insertions(+), 196 deletions(-) commit 8ac3f64f75b6b7dbe5917e5c65344915415f58e1 Author: Ben Skeggs Date: Thu Aug 20 14:54:09 2015 +1000 drm/nouveau/devinit: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.c | 8 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c | 22 ++-- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c | 8 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c | 47 ++++---- .../gpu/drm/nouveau/nvkm/subdev/devinit/gt215.c | 33 +++--- .../gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c | 125 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c | 34 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.c | 17 ++- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 40 +++---- 12 files changed, 185 insertions(+), 175 deletions(-) commit 822ad79fa40070fc36cae2ad929ab0c409919080 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/clk: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 51 ++++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 66 ++++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 78 ++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 89 ++++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 54 ++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c | 24 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 53 ++++++++------- 7 files changed, 234 insertions(+), 181 deletions(-) commit 14caba447c9a22ceb0400e964f585e5ffff5f0b8 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/bus: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.c | 13 ++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.c | 18 ++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h | 3 ++- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c | 14 +++++++----- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c | 20 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c | 29 ++++++++++++++----------- 6 files changed, 54 insertions(+), 43 deletions(-) commit d8f266a353cb397aa792b59d5aa16ea09579f9ac Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/bios: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 11 ++++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 7 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.c | 2 +- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c | 25 ++++++++++++---------- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c | 23 ++++++++++---------- 5 files changed, 38 insertions(+), 30 deletions(-) commit 9155c16214631e064d0d1edcd60a62347f823c80 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/bar: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 9 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 14 deletions(-) commit 94bab102233e30d08fcb33a424ec56520b22eb1b Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/core: switch to device pri macros Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit dd64694208d7c902ba7a5bcd2bf012c1087ba0f0 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/device: type-safe register accessor macros These require an explit struct nvkm_device pointer, unlike the previous macros which take a void *, and assume it's any old nvkm_subdev. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 8699745a2bc143eee429c556d631e8e5be5dc009 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/vp: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/vp/g84.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 226dcefe706ff8854bca1bb75ae7bfd2fe3296c5 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/sw: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/sw.h | 8 +++---- drivers/gpu/drm/nouveau/nvkm/engine/sw/gf100.c | 20 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv04.c | 28 ++++++++-------------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv10.c | 28 ++++++++-------------- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 30 ++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.h | 4 ---- 6 files changed, 49 insertions(+), 69 deletions(-) commit c0e297dc61f8d4453e07afbea1fa8d0e67cd4a34 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/sec: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/nvkm/engine/sec/fuc/g98.fuc0s | 6 +-- .../drm/nouveau/nvkm/engine/sec/fuc/g98.fuc0s.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 48 ++++++++++------------ 3 files changed, 27 insertions(+), 31 deletions(-) commit 8c1aeaa13954585e8482866457abacb5c094db35 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/pm: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 151 ++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 67 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 4 - drivers/gpu/drm/nouveau/nvkm/engine/pm/gk110.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 43 +++---- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.h | 2 +- 7 files changed, 135 insertions(+), 144 deletions(-) commit 74137ffcd1dfd6537bbfdd1d1149942412280e9e Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/msvld: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.c | 24 +++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.c | 26 ++++++++++------------- drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.c | 26 ++++++++++------------- 3 files changed, 32 insertions(+), 44 deletions(-) commit fd507a53abda54697bcae2f60cfaf41932634d68 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/msppp: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.c | 24 +++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.c | 26 ++++++++++------------- 2 files changed, 21 insertions(+), 29 deletions(-) commit 11271f9f8ff3755bf9a413d157dc7cb7c36856b1 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/mspdec: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 8 +++---- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.c | 24 +++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.c | 26 +++++++++------------- drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.c | 26 +++++++++------------- 4 files changed, 36 insertions(+), 48 deletions(-) commit b19de4f3d787947224e89447505dd3c99b304d7b Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/mpeg: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/mpeg.h | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/g84.c | 18 ++-- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 112 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c | 44 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 60 ++++++----- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.c | 78 +++++++------- 7 files changed, 155 insertions(+), 167 deletions(-) commit bfee3f3d97db88bfb732735eb4955ad3381ac758 Author: Ben Skeggs Date: Thu Aug 20 14:54:08 2015 +1000 drm/nouveau/gr: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/Kbuild | 35 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 214 ++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h | 42 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.c | 26 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c | 60 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c | 104 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c | 42 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c | 90 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm204.c | 90 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c | 60 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 928 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 162 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 150 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 164 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 170 ++-- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.c | 26 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 192 ++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 478 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 222 +++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 114 +-- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 264 +++--- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 440 +++++----- 30 files changed, 2092 insertions(+), 2095 deletions(-) commit 6189f1b0938dc0621c27494031b83ffae566e318 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/fifo: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 6 +- drivers/gpu/drm/nouveau/nv84_fence.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 58 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.c | 46 +-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c | 352 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 394 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 316 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 38 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 68 ++-- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 122 +++---- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.c | 112 +++--- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/sec/g98.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 12 +- 25 files changed, 800 insertions(+), 788 deletions(-) commit a317aa21be51f869d5ab0198fad94a4570af9ddb Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/dma: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/dmaobj.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf100.c | 48 +++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf110.c | 28 +++++------ drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c | 56 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c | 48 +++++++++---------- 5 files changed, 91 insertions(+), 91 deletions(-) commit fd166a1832db138f22ad95eacd0879af30742f57 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/disp: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/base.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dacnv50.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/dport.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.c | 36 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.c | 36 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 416 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 34 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 34 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 34 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm204.c | 36 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c | 36 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.c | 38 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagf110.c | 18 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmig84.c | 44 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigf110.c | 28 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigk104.c | 30 +- .../gpu/drm/nouveau/nvkm/engine/disp/hdmigt215.c | 44 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 54 +-- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 535 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 10 +- .../gpu/drm/nouveau/nvkm/engine/disp/piornv50.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 44 +- .../gpu/drm/nouveau/nvkm/engine/disp/sorgf110.c | 32 +- .../gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c | 46 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sornv50.c | 8 +- drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 6 +- 28 files changed, 826 insertions(+), 833 deletions(-) commit e2f1cf253e0cf5b64fa6fee439aeeda49c6f09d8 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/cipher: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.c | 44 +++++++++++------------- 1 file changed, 20 insertions(+), 24 deletions(-) commit d9261a68374fbeda5a180fbba926aaba29321a75 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/ce: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/falcon.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/fuc/com.fuc | 8 ++-- .../drm/nouveau/nvkm/engine/ce/fuc/gf100.fuc3.h | 4 +- .../drm/nouveau/nvkm/engine/ce/fuc/gt215.fuc3.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 54 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.c | 56 ++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 56 ++++++++++------------ drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 26 +++++----- 8 files changed, 97 insertions(+), 113 deletions(-) commit d8c304b504bc2709eaec742be1b30d5e53e47449 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/bsp: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit f0961867b817e3aca45dca7e1885a7ec99a260ed Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/xtensa: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/xtensa.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit b26ada6fedeb7cf6dacb1275a8ea08f4e39b53d2 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/falcon: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/falcon.h | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit 6052dc5775ac0be49db3e25d2719c72a250189a2 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/volt: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c | 70 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.c | 10 +--- 4 files changed, 40 insertions(+), 46 deletions(-) commit cb8bb9cedb6015eafd56ef9e9c5b2c216e8e7960 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/tmr: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/dac.c | 8 +- drivers/gpu/drm/nouveau/dispnv04/hw.c | 6 +- .../gpu/drm/nouveau/include/nvkm/subdev/timer.h | 8 +- drivers/gpu/drm/nouveau/nouveau_abi16.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 18 +-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.c | 16 +-- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 147 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.h | 2 +- 13 files changed, 121 insertions(+), 122 deletions(-) commit da06b46b720687117178d3ee85a601762f1c36b5 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/therm: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/therm.h | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 232 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.c | 122 +++++------ drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c | 65 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.c | 84 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.c | 67 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf110.c | 44 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c | 26 +-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c | 44 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c | 32 ++- drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c | 32 ++- drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.c | 112 +++++----- 15 files changed, 440 insertions(+), 466 deletions(-) commit 5a7d1e22feedd3cfab5a94bba5f26ab61610bc62 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/pmu: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/pmu.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 86 +++++++++++------------ 3 files changed, 45 insertions(+), 47 deletions(-) commit 2d9d5889e8848501ffe71b4e99c639a29a1fe10f Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/mxm: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mxm.h | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c | 14 +++++--------- 2 files changed, 8 insertions(+), 12 deletions(-) commit 1f5bffca226929a834c7d631464d420e78cbe5f1 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/mmu: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h | 8 +- drivers/gpu/drm/nouveau/nouveau_ttm.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.c | 57 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 54 ++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.h | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 64 ++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 92 +++++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c | 48 ++++++------ 9 files changed, 162 insertions(+), 173 deletions(-) commit 2ca0ddbc03917f94c6d34820f91d0c920c057df2 Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/mc: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 80 ++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 9 ++- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c | 14 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.h | 4 -- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv40.c | 5 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c | 16 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 10 +-- 8 files changed, 67 insertions(+), 73 deletions(-) commit c7750cfbc150460a507deb27b8eed93fcf60ea8d Author: Ben Skeggs Date: Thu Aug 20 14:54:07 2015 +1000 drm/nouveau/ltc: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c | 74 ++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 124 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.c | 14 +-- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 84 +++++++-------- 5 files changed, 149 insertions(+), 149 deletions(-) commit c44c06aeebf481fb69c665a21090f2f0aac878c5 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/imem: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c | 18 +-- .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 156 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c | 78 +++++------ drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.h | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c | 60 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 54 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h | 10 +- 12 files changed, 194 insertions(+), 198 deletions(-) commit ac51596f27d5cece39cb63b857e6ebbffa05ca33 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/ibus: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h | 8 +-- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c | 66 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c | 84 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk20a.c | 48 ++++++------- 4 files changed, 97 insertions(+), 109 deletions(-) commit 5b920d926422fdc5b40b703d72344d5e20b3872a Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/i2c: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/i2c.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf110.c | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm204.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.c | 24 ++++++++++------------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.c | 20 ++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.c | 20 +++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.h | 4 ---- 9 files changed, 38 insertions(+), 50 deletions(-) commit e7d65181045898a6da80add0392765e253b0023c Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/gpio: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/gpio.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit ce7b4f60a84cfb1533f217198b01758aab05f4dc Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/fuse: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/fuse.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.c | 13 ++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.c | 26 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c | 14 +++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.c | 22 +++++++++--------- 5 files changed, 34 insertions(+), 43 deletions(-) commit b1e4553cb1f9deddbd8c13d95e9cef81967a3f41 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/fb: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 2 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 20 +-- drivers/gpu/drm/nouveau/nouveau_gem.c | 4 +- drivers/gpu/drm/nouveau/nouveau_ttm.c | 20 +-- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 64 ++++---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 56 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.c | 24 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.h | 4 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.c | 26 ++-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c | 36 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.c | 18 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.c | 20 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 52 +++---- drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramfuc.h | 18 +-- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 118 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 169 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 170 +++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.c | 50 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 88 +++++------ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.c | 16 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 125 ++++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 18 +-- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 4 +- 51 files changed, 649 insertions(+), 663 deletions(-) commit 266f8b5ee6e98979f3251efc81451a2a2cbf2a28 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/devinit: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/subdev/devinit.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c | 34 ++++----- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.c | 6 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gf100.c | 26 +++---- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c | 6 +- .../gpu/drm/nouveau/nvkm/subdev/devinit/gm204.c | 84 +++++++++++----------- .../gpu/drm/nouveau/nvkm/subdev/devinit/gt215.c | 28 ++++---- .../gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.c | 80 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.c | 38 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.c | 18 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.c | 18 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c | 54 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h | 2 +- 16 files changed, 205 insertions(+), 205 deletions(-) commit 3eca809b3c05ea6918c1d13da478abdae5e712ba Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/clk: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/clk.h | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 235 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 242 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 252 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 234 ++++++++++---------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.h | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 193 +++++++++-------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c | 116 +++++----- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 227 ++++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.h | 2 +- 12 files changed, 765 insertions(+), 776 deletions(-) commit 01d6b95605ad5c5be9ce0c7bf37b1a6d51cbb9e4 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/bus: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h | 8 ++--- drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.c | 17 +++++---- drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.c | 26 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c | 26 +++++++------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h | 4 +-- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.c | 34 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.h | 4 --- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.c | 32 ++++++++--------- drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.c | 43 +++++++++++------------ 9 files changed, 94 insertions(+), 100 deletions(-) commit a00014e3963642e7cf7206a9fa814b547d642a72 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/bios: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bios.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 5b0c189fcb232daa1cabac8892e42cdee57254bd Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/bar: cosmetic changes This is purely preparation for upcoming commits, there should be no code changes here. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bar.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 86 ++++++------ drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 156 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h | 4 +- 5 files changed, 127 insertions(+), 135 deletions(-) commit 9ace404b1098221021b01c2ba0eeea0c257fa4a5 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/device: include core/device.h automatically for subdevs/engines Pretty much every subdev/engine is going to need access to nvkm_device shortly to touch registers and/or output messages. The odd placement of the includes is necessary to work around some inter-dependencies that currently exist. This will be fixed later. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 60 +++++++++++++++++++++ drivers/gpu/drm/nouveau/include/nvkm/core/devidx.h | 62 ---------------------- drivers/gpu/drm/nouveau/include/nvkm/core/engine.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/vga.h | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.c | 2 - drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/falcon.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.h | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/sw/nv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 1 - .../gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c | 2 - .../gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c | 1 - .../gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 2 - .../gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c | 2 - .../gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.c | 1 - .../gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.c | 1 - .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf110.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.c | 2 - drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.c | 2 - 78 files changed, 65 insertions(+), 159 deletions(-) commit 6d0d40e7a577bbc7497ee7fbfeb2315d46a872a6 Author: Ben Skeggs Date: Thu Aug 20 14:54:06 2015 +1000 drm/nouveau/device: add direct pointer to struct device A future commit will hide the platform/pci specifics from nvkm_device, but it's still very useful in a lot of places to have access to the Linux device struct. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 ++ 2 files changed, 3 insertions(+) commit 741d778ea0dde26a345717f1843407760f02fe03 Author: Ben Skeggs Date: Thu Aug 20 14:54:05 2015 +1000 drm/nouveau/device: add direct pointers to subdevs from nvkm_device Will be used in upcoming commits to remove the need for lookup/runtime type-checking functions when accessing foreign subdevs. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 40 ++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 63 +++++++++++++++++++--- 2 files changed, 96 insertions(+), 7 deletions(-) commit d351b8569e3c57bf5dc3dd5a1295974a9e04316e Author: Ben Skeggs Date: Thu Aug 20 14:54:05 2015 +1000 drm/nouveau/subdev: add direct pointer to nvkm_device Will be utilised in upcoming commits to remove the need for heuristics to lookup the device a subdev belongs to. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 8 ++++---- drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 3 +-- drivers/gpu/drm/nouveau/include/nvkm/core/subdev.h | 3 +++ drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 3 +++ drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 3 ++- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 5 ++--- 6 files changed, 15 insertions(+), 10 deletions(-) commit 0d5dd3f301bbc66c41b219f50fa97a6df1965cfe Author: Ben Skeggs Date: Thu Aug 20 14:54:05 2015 +1000 drm/nouveau/lib: various tweaks Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 205877f9156daebb975fb46205488da6fdf5b3f5 Author: Ben Skeggs Date: Thu Aug 27 17:33:19 2015 +1000 drm/nouveau/pmu/gk104: implement a hackish workaround for a hw bug Only a handful of machines have this enabled by default, where it's been proven to work. The workaround can be explicitly enabled with a module option also. Still waiting on feedback from NVIDIA for a proper idea of exactly what this fix is doing, and how to implement it properly. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 51 +++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 2a89359415da2fc1250b4c205de3c384bd781f54 Author: Ben Skeggs Date: Fri Aug 21 13:38:31 2015 +1000 drm/nouveau/disp/dp: gm1xx appears to have same dp lane ordering as gm2xx Fixes 2-lane DP on Quadro K620. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 7 +++++-- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf110.c | 9 +-------- 3 files changed, 7 insertions(+), 10 deletions(-) commit fe0f5d08806dcf7fd51092dfc6ea666ea2392692 Author: Ben Skeggs Date: Fri Aug 21 12:50:07 2015 +1000 drm/nouveau/disp/dp: fix some tx_pu mishandling We only need to mask 0x0f on GM2xx, and want to keep the higher bits on earlier cards. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/disp/sorg94.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf110.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm204.c | 7 ++++--- drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) commit f10956d4455fcb24ecbdca30e6d9d88c95dc2588 Author: Ben Skeggs Date: Fri Aug 21 13:19:13 2015 +1000 drm/nouveau/bios/dp: use alternate set of drvctl values where necessary Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 7c11c99b3c66a8e03494e56ce6e6c5303ee85934 Author: Ben Skeggs Date: Fri Aug 21 10:52:54 2015 +1000 drm/nouveau/bios/dcb: accept "maxwell" lane count values for dcb 4.0 We previously assumed that the values "2" and "4" were new in DCB 4.1, however, there's at least one GM107 DCB 4.0 board (Quadro K620) that uses the newer values. Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_bios.c | 25 ++++++++++++------------ drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.c | 27 +++++++++++++------------- 2 files changed, 25 insertions(+), 27 deletions(-) commit 895fb8e6f77589b9c50ff1f231b5025935d1d59f Author: Ilia Mirkin Date: Mon Aug 17 19:37:34 2015 -0400 drm/nouveau/fb/sddr3: add WR/CWL values seen on a GK208 Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a363e85cdafbceeee6a49b91c604d0d4d070dc7 Author: Hans de Goede Date: Thu Jul 23 17:20:12 2015 +0200 drm/nouveau/nv46: Change mc subdev oclass from nv44 to nv4c MSI interrupts appear to not work for nv46 based cards. Change the mc subdev oclass for these cards from nv44 to nv4c, the nv4c mc code is identical to the nv44 mc code except that it does not use msi (it does not define a msi_rearm callback). BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90435 Signed-off-by: Hans de Goede Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/nv40.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2df0bf57f89cfa6e6adafb44d666ecc4a228a731 Author: Samuel Pitoiset Date: Tue Aug 4 23:58:15 2015 +0200 drm/nouveau/pm/gf100: only use PBFB_BROADCAST.PM_UNK100 for PBFB signals High level hardware events related to PBFB will monitor all partitions. While we are at it, fix bitfield for this mux. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 21 ++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf108.c | 25 ++++--------------------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf117.c | 21 ++------------------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c | 4 ++-- 5 files changed, 19 insertions(+), 54 deletions(-) commit 8feece04db884e04c31c008b76a7610849757720 Author: Samuel Pitoiset Date: Tue Aug 4 23:58:14 2015 +0200 drm/nouveau/pm/gf100: remove multiple definitions of GPC_DOM signal 0x0e Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 9b4dc66d4772a432f271e1ebafd70aafe2b9bb27 Author: Samuel Pitoiset Date: Tue Aug 4 23:58:13 2015 +0200 drm/nouveau/pm/gf100: remove undefined TEX.PM_UNKC8 mux This mux only exists on GF108+ (except for GF110 one), but since it is not used by the userspace we can drop it for now. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 4 ---- 1 file changed, 4 deletions(-) commit 7fe882eb90844f79acd9cdd3ccd5d3459c27cf3f Author: Samuel Pitoiset Date: Tue Aug 4 23:58:12 2015 +0200 drm/nouveau/pm: allow zeroed signals to enable sources Hardware signals index 0x00 are defined for some domains and they have to be allowed to enable sources like the others. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5a23936129b87833e3f3e90a610c65f73c7bbeaa Author: Samuel Pitoiset Date: Sun Jul 26 11:30:08 2015 +0200 drm/nouveau/pm/nv50: TPC[0x3] must be used for PGRAPH muxs on G80 I thought that using TPC[0x0] like for G84:GT215 was sufficient on G80, but it's actually not the case. According to NVIDIA PerfKit on Windows, we have to configure PGRAPH related muxs on TPC[0x3] for this chipset. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c | 25 +++++++++++++++++-------- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c | 22 +++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 1 - 3 files changed, 28 insertions(+), 20 deletions(-) commit a4650ed9bd6564b5135ccebf8a5b108ed16abbac Author: Samuel Pitoiset Date: Sun Jul 26 11:30:07 2015 +0200 drm/nouveau/pm/nv50: fix wrong addr for ZCULL source on G80:GT215 Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bacbad17fbc636125bf472240860a58a54ad62db Author: Ilia Mirkin Date: Fri Jun 19 02:51:23 2015 -0400 drm/nouveau/bios: add opcodes 0x73 and 0x77 No known VBIOSes use these, but they are present in the actual VBIOS table parsing logic. No harm in adding these too. Signed-off-by: Ilia Mirkin Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 970fee29d036eda3ea869033d6b0b7b42238b22a Author: Alexandre Courbot Date: Tue Jun 23 15:16:06 2015 +0900 drm/nouveau/platform: recognize GM20B Allow the platform driver to recognize GM20B. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nouveau_platform.c | 1 + 1 file changed, 1 insertion(+) commit d10ae271301803c2720b8ad53d6a90b5620ea439 Author: Alexandre Courbot Date: Tue Jun 23 15:16:05 2015 +0900 drm/nouveau/device: recognize GM20B Recognize GM20B and assign the right engines and subdevs. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit a032fb9da665ed6e6a36fa6788eff1db43ba2703 Author: Alexandre Courbot Date: Tue Jun 23 15:16:04 2015 +0900 drm/nouveau/gr: add GM20B support Add support for GM20B's graphics engine, based on GK20A. Note that this code alone will not allow the engine to initialize on released devices which require PMU-assisted secure boot. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h | 7 ++ drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm204.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.c | 110 ++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 6 ++ drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.c | 84 +++++++++++++++++ 10 files changed, 217 insertions(+), 6 deletions(-) commit 3326060a17f6ef8ca3d3f785b1ae31ff76f713f6 Author: Alexandre Courbot Date: Tue Jun 23 15:16:03 2015 +0900 drm/nouveau/fifo: add GM20B fifo GM20B has a 512-channels FIFO similar to GK104. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 4 +++ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm20b.c | 34 ++++++++++++++++++++++ 5 files changed, 41 insertions(+), 1 deletion(-) commit c4d0f8f6f8c8dc09cd32e7fdb31e3d1a65a0f8f1 Author: Alexandre Courbot Date: Tue Jun 23 15:16:02 2015 +0900 drm/nouveau/gr/gk20a: use same initialization sequence as nvgpu GK20A's initialization was based on GK104, but differences exist in the way the initial context is built and the initialization process itself. This patch follows the same initialization sequence as nvgpu performs to avoid bad surprises. Since the register bundles initialization also differ considerably from GK104, the register packs are now loaded from firmware files, again similarly to what is done with nvgpu. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.c | 65 ++++- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 3 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 12 + drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 336 +++++++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.h | 35 +++ 5 files changed, 421 insertions(+), 30 deletions(-) commit 8539b37acef73949861a16808b60cb8b5b9b3bab Author: Alexandre Courbot Date: Tue Jun 23 15:16:01 2015 +0900 drm/nouveau/gr: use NVIDIA-provided external firmwares NVIDIA will officially start providing GR firmwares through linux-firmware for GPUs that require it. Change the GR firmware lookup function to use these files. Signed-off-by: Alexandre Courbot Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 31 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 12 deletions(-) commit 13cffadced770954fc647e1aee8c959a99ecf0f4 Author: Samuel Pitoiset Date: Fri Jun 19 17:37:18 2015 +0200 drm/nouveau/pm/gk104: add compute signals/sources These signals and sources have been reverse engineered from CUPTI (Linux). Graphics signals exposed by PerfKit (Windows only) will be added later. I need to reverse engineer them and it's a bit painful. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/pm/gf117.c | 8 ++- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c | 85 ++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) commit 1914f673ec8b440a03ed56e0a1f42e3565c405c7 Author: Samuel Pitoiset Date: Fri Jun 19 17:37:17 2015 +0200 drm/nouveau/pm/gk104: re-use gf100_pm_ctor() gk104_pm_ctor() is equal to gf100_pm_ctor(). Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 8 +-- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c | 60 ++++------------------ 3 files changed, 14 insertions(+), 56 deletions(-) commit 261d678d10d9ba866e279e0da0415267f1e6e561 Author: Samuel Pitoiset Date: Fri Jun 19 17:36:38 2015 +0200 drm/nouveau/pm/nv40: rename pcounter domains to 'pc' instead of 'pm' This trivial patch makes thing more consistent since hardware signals names are prefixed by 'pcXX'. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df0b37ee1aa19fc1b948099bf449fdd94f36036c Author: Samuel Pitoiset Date: Fri Jun 19 17:36:37 2015 +0200 drm/nouveau/pm: expose name of domains This is going to be very useful for GF100+ because each GPC can have its own domain of counters. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 1 + 2 files changed, 2 insertions(+) commit 85fa319d8a5240bab2e4123cfc9178bff55694ca Author: Wei Ni Date: Tue Jun 16 17:35:12 2015 +0800 drm/nouveau/drm/nouveau/clk: fix tstate to pstate calculation According to the tstate calculation in nvkm_clk_tstate(), the range of tstate is from -(clk->state_nr - 1) to 0, it mean the tstate is negative value. But in nvkm_pstate_work(), it use (clk->state_nr - 1 - clk->tstate) to limit pstate, it's not correct. This patch fix it to use (clk->state_nr - 1 + clk->tstate) to limit pstate. Signed-off-by: Wei Ni Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4a312dc90a7c1079133b038aec0120ee9e3d0ce Author: Samuel Pitoiset Date: Sun Jun 14 13:50:06 2015 +0200 drm/nouveau/pm: some fixes related to sources Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit eb94345a93204f0d7d7e0809dde329977522aec0 Author: Samuel Pitoiset Date: Sun Jun 14 13:50:05 2015 +0200 drm/nouveau/pm: fix signals/sources for GT200+ Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/gt200.c | 8 ++++---- drivers/gpu/drm/nouveau/nvkm/engine/pm/gt215.c | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) commit 94a2ef69aa0c3612577ab1a6f5c248b206118e68 Author: Samuel Pitoiset Date: Sun Jun 14 13:33:55 2015 +0200 drm/nouveau/pm/gf100: add compute signals/sources These signals and sources have been reverse engineered from CUPTI (Linux). Graphics signals exposed by PerfKit (Windows only) will be added later. I need to reverse engineer them and it's a bit painful. This commit also adds a new class for GF108 and GF117. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 96 +++++++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 5 ++ drivers/gpu/drm/nouveau/nvkm/engine/pm/gf108.c | 84 +++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/pm/gf117.c | 92 +++++++++++++++++++++ 7 files changed, 282 insertions(+), 5 deletions(-) commit 060f50e3b100b8f51fbf165de48c2ea097ff7390 Author: Samuel Pitoiset Date: Sun Jun 14 13:33:54 2015 +0200 drm/nouveau/pm/gf100: allow to share GPC, HUB and PART domains Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/gf100.c | 18 +++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 22 +++++++++++++--------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.h | 11 +++++++++++ 4 files changed, 34 insertions(+), 19 deletions(-) commit f21950ea35c86be79c293b199fe48b5152ec8311 Author: Ben Skeggs Date: Sun Jun 14 12:20:37 2015 +1000 drm/nouveau/pm: stack perfdom class under perfmon Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 38 ++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 7 deletions(-) commit 2d4b94b95f30b0a4244fce4866583094d991c0ec Author: Ben Skeggs Date: Sun Jun 14 12:10:59 2015 +1000 drm/nouveau/pm: swap perfmon/perfdom code to avoid forward decl in next commit Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 350 +++++++++++++------------- 1 file changed, 175 insertions(+), 175 deletions(-) commit 06b7972dc915e60051cd6531d988a7c72645d00a Author: Samuel Pitoiset Date: Sun Jun 7 22:40:28 2015 +0200 drm/nouveau/pm/nv50: add compute and graphics signals/sources These signals and sources have been reverse engineered from NVIDIA PerfKit (Windows) and CUPTI (Linux), they will be used to build complex hardware events from the userspace. This commit also adds a new class for GT200. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/pm/g84.c | 101 +++++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/pm/gt200.c | 163 ++++++++++++++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/pm/gt215.c | 84 ++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv50.c | 136 +++++++++++++++++- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 8 ++ 8 files changed, 485 insertions(+), 11 deletions(-) commit 6137b5a7c2aeca9f72229c120504f5d083fa9127 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:27 2015 +0200 drm/nouveau/pm: allow the userspace to configure sources Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 102 +++++++++++++++++++++++--- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 2 + 3 files changed, 95 insertions(+), 10 deletions(-) commit 0f3804360dd4f88332b9c0b2d7cb4c1f30893cc7 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:26 2015 +0200 drm/nouveau/pm: allow to configure domains instead of simple counters Configuring counters from the userspace require the kernel to handle some logic related to performance counters. Basically, it has to find a free slot to assign a counter, to handle extra counting modes like B4/B6 and it must return and error when it can't configure a counter. In my opinion, the kernel should not handle all of that logic but it should only write the configuration sent by the userspace without checking anything. In other words, it should overwrite the configuration even if it's already counting and do not return any errors. This patch allows the userspace to configure a domain instead of separate counters. This has the advantage to move all of the logic to the userspace. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 30 ++-- drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 208 ++++++++++++++----------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 10 +- 6 files changed, 146 insertions(+), 124 deletions(-) commit 3bfdde178a959cb5e490e4a3a2433c95a9a1af26 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:25 2015 +0200 drm/nouveau/pm: allow the userspace to schedule hardware counters This adds a new method NVIF_PERFCTR_V0_INIT which starts a batch of hardware counters for sampling. This will allow the userspace to start a monitoring session using the INIT method and to stop it with SAMPLE, for example before and after a frame is rendered. This commit temporarily breaks nv_perfmon but this is going to be fixed with the upcoming patch. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 8 +++- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 64 +++++++++++++++++---------- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 1 + 3 files changed, 48 insertions(+), 25 deletions(-) commit 6f99c84873f455a76a0356061b276bc0c89b5d92 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:24 2015 +0200 drm/nouveau/pm: implement NVIF_PERFMON_V0_QUERY_SOURCE method This allows to query the ID, the mask and the user-readable name of sources for each signal. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 12 +++++ drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 77 +++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) commit 50d138d7528c3370ebf3a54079091a35a60a23be Author: Samuel Pitoiset Date: Sun Jun 7 22:40:23 2015 +0200 drm/nouveau/pm: allow to query the number of sources for a signal Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 3 ++- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) commit e82661e23c60fc41424ca138820d729d8e4a2226 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:22 2015 +0200 drm/nouveau/pm: add concept of sources A source (or multiplexer) is a tuple addr+mask+shift which allows to control a block of signals. The maximum number of sources that a signal can define is arbitrary limited to 8 and this should be large enough. This patch allows to define multi-level of sources for a signal. Each different sources are stored to a global list and will be exposed to the userspace through the nvif interface in order to avoid conflicts. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 82 ++++++++++++++++++++++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 24 +++++++ 3 files changed, 103 insertions(+), 4 deletions(-) commit 40a3b22c92ac3dad5adc818a84671bfb00303731 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:21 2015 +0200 drm/nouveau/pm: allow to monitor hardware signal index 0x00 This signal index must be always allowed even if it's not clearly defined in a domain in order to monitor a counter like 0x03020100 because it's the default value of signals. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 4 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 6 ++++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/nv40.c | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) commit 10a4d2b2489394e32f17afc6cc63ccdfc1b6050b Author: Samuel Pitoiset Date: Sun Jun 7 22:40:20 2015 +0200 drm/nouveau/pm: use hardware signals indexes instead of user-readable names Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 11 +++--- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 52 +++++++-------------------- 2 files changed, 19 insertions(+), 44 deletions(-) commit e4047599aede7a7aca97ace770002c4e29e403d2 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:19 2015 +0200 drm/nouveau/pm: change signal iter to u16 16 bits is large enough to store the maximum number of signals available for one domain (i.e. 256). Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 7 ++++--- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 10 +++++----- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) commit 3e1b33571ab4937cbd400976a115e4922797559a Author: Samuel Pitoiset Date: Sun Jun 7 22:40:18 2015 +0200 drm/nouveau/pm: allow to query signals by domain This will allow to configure performance counters with hardware signal indexes instead of user-readable names in an upcoming patch. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 3 ++- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 36 +++++++++------------------ 2 files changed, 14 insertions(+), 25 deletions(-) commit 45f0f94db285009a41a94e069618ea9bb269af84 Author: Samuel Pitoiset Date: Sun Jun 7 22:40:17 2015 +0200 drm/nouveau/pm: implement NVIF_PERFMON_V0_QUERY_DOMAIN method This allows to query the number of available domains, including the number of hardware counter and the number of signals per domain. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 11 +++- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 86 +++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) commit 44d9de58ea5633e4f2d062e718016383b28b4eed Author: Samuel Pitoiset Date: Sun Jun 7 22:40:16 2015 +0200 drm/nouveau/pm: prevent creating a perfctr object when signals are not found Since a new class has been introduced to query signals, we can now return an error when the userspace wants to monitor unknown signals. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5a0bc4b5aeba3bb32eb7da6a98108e93bbd64f7e Author: Samuel Pitoiset Date: Sun Jun 7 22:40:15 2015 +0200 drm/nouveau/pm: reorganize the nvif interface This commit introduces the NVIF_IOCTL_NEW_V0_PERFMON class which will be used in order to query domains, signals and sources. This separates the querying and the counting interface. Signed-off-by: Samuel Pitoiset Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvif/class.h | 26 +++++++++++------- drivers/gpu/drm/nouveau/include/nvif/ioctl.h | 5 ++-- drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 38 ++++++++++++++++++++++----- 3 files changed, 51 insertions(+), 18 deletions(-) commit a78ce96f96d76311fd165207a6ffb64b0ebd85cc Author: Samuel Pitoiset Date: Sun Jun 7 22:40:14 2015 +0200 drm/nouveau/pm: remove unused nvkm_perfsig_wrap() function Signed-off-by: Samuel Pitoiset Reviewed-by: Martin Peres Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 20 -------------------- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 4 ---- 2 files changed, 24 deletions(-) commit 0b7515c035d26faee91b6c3023622385c109b99e Author: Samuel Pitoiset Date: Sun Jun 7 22:40:13 2015 +0200 drm/nouveau/pm: remove pmu signals PDAEMON signals don't have to be exposed by the perfmon engine. Signed-off-by: Samuel Pitoiset Reviewed-by: Martin Peres Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/engine/pm.h | 4 - drivers/gpu/drm/nouveau/nvkm/engine/pm/Kbuild | 1 - drivers/gpu/drm/nouveau/nvkm/engine/pm/daemon.c | 108 ----------------------- drivers/gpu/drm/nouveau/nvkm/engine/pm/gf100.c | 5 -- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk104.c | 6 -- drivers/gpu/drm/nouveau/nvkm/engine/pm/gk110.c | 4 - drivers/gpu/drm/nouveau/nvkm/engine/pm/gt215.c | 20 +---- drivers/gpu/drm/nouveau/nvkm/engine/pm/priv.h | 4 - 8 files changed, 1 insertion(+), 151 deletions(-) commit 087cd0db87a79b03d35567a32d4a29bee179ad9e Author: Roy Spliet Date: Sun May 24 10:44:02 2015 +0200 drm/nouveau/clk/nv50: Enable user reclocking for NVA0 Tested on a few cards. Probably works quite well for most, given they should all be GDDR3. Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 852c619b6e6e33509b405a5ad7400255e02ba8ec Author: Roy Spliet Date: Sun May 24 10:44:01 2015 +0200 drm/nouveau/fb/gddr3: Add a few CL and WR entries observed on GTX260 Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 82a74fd2936afd97e83cf195c41dc372ebe9fc84 Author: Roy Spliet Date: Sun May 24 10:44:00 2015 +0200 drm/nouveau/fb/ramnv50: GDDR3 script for NVA0 This looks surprisingly similar to scripts on earlier cards as well but they don't seem to work just yet. That... and I don't have any, which makes it a tough job to reverse engineer. Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 129 ++++++++++++++++++----- 1 file changed, 104 insertions(+), 25 deletions(-) commit c25bf7b6155cb1e737c39ab76c844469deed3c98 Author: Roy Spliet Date: Sun May 24 10:43:59 2015 +0200 drm/nouveau/bios/ramcfg: Separate out RON pull value Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 3 ++- drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.c | 2 ++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 6 ++++-- 4 files changed, 9 insertions(+), 3 deletions(-) commit 2813e19f13035e5971b6f4001782135cfc0909e0 Author: Roy Spliet Date: Sat May 23 10:37:47 2015 +0200 drm/nouveau/bios/rammap: Parse perf mode as if it's a rammap entry Some of the bits in there are similar to the bits in the gt215 rammap. Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h | 5 +++++ drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/rammap.h | 2 ++ drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 15 +++++++++++++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 2 ++ 4 files changed, 24 insertions(+) commit 35fe024acffc2c29bade5a68a09962bf7ea3c8ed Author: Roy Spliet Date: Sat May 23 10:37:46 2015 +0200 drm/nouveau/fb/ramnv50: Ressurect timing code, use proper timing/rammap handlers Might need some generalisation to < GT200. For those: use at your own risk! Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs .../drm/nouveau/include/nvkm/subdev/bios/ramcfg.h | 16 ++ .../drm/nouveau/include/nvkm/subdev/bios/rammap.h | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 29 ++++ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 168 +++++++++++++++++---- 4 files changed, 182 insertions(+), 33 deletions(-) commit 3b582bed907a26b30e511c83c24254c0ae987f47 Author: Roy Spliet Date: Sat May 23 10:37:45 2015 +0200 drm/nouveau/fb/ramgt215: No need to cuss like that Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4cc5f0c2aea8350fe07a87cd312ca6a8f1f3129 Author: Roy Spliet Date: Sat May 23 10:37:44 2015 +0200 drm/nouveau/fb/ramnv50: Make 0x100da0 per-partition Like on GT215 Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit 7164f4c5b2cfe9aa59d290ea71268022f8950eba Author: Roy Spliet Date: Sat May 23 10:37:43 2015 +0200 drm/nouveau/bios/rammap: Pull DLLoff bit out of version 0x10 struct In preparation of NV50 reclocking, where there is no version Signed-off-by: Roy Spliet Signed-off-by: Ben Skeggs drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 6 +++--- drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) commit 4a68ccc8e49854e071e14995de2a35016b240131 Author: Ben Skeggs Date: Wed Apr 29 10:28:17 2015 +1000 remove unnecessary include This was merged with core/device.h in an earlier commit, but somehow never got removed. Signed-off-by: Ben Skeggs .../gpu/drm/nouveau/include/nvkm/engine/device.h | 30 ---------------------- 1 file changed, 30 deletions(-) commit 1f821ed7afaa7ed689322ee2369f270e374a6350 Author: Viresh Kumar Date: Wed Aug 12 16:30:18 2015 +0530 PM / OPP: Free resources and properly return error on failure _of_init_opp_table_v2() isn't freeing up resources on some errors and the error values returned are also not correct always. This fixes following problems: - Return -ENOENT, if no entries are found in the table. - Use IS_ERR() to properly check return value of _find_device_opp(). - Return error value with PTR_ERR() in above case. - Free table if _find_device_opp() fails. Reported-by: Dan Carpenter Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) commit ea0f8acf4d44727f7d3a38072566029bf5e17b44 Author: Gavin Shan Date: Thu Aug 27 14:12:37 2015 +1000 powerpc/pseries: Cleanup on pci_dn_reconfig_notifier() This applies cleanup on pci_dn_reconfig_notifier(), no functional changes: * Rename variable "pci" to "pdn" to indicate its purpose clearly. * The parent node can be released at any time. So it should be hold with of_get_parent() before accessing it. * The device node doesn't have to have parent node in theory. More check on this. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/setup.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit 590c7567a2895f939525ead57b0334c6d47986f0 Author: Gavin Shan Date: Thu Aug 27 14:12:36 2015 +1000 powerpc/pseries: Fix corrupted pdn list Commit cca87d30 ("powerpc/pci: Refactor pci_dn") introduced pdn list for SRIOV VFs. It means the pdn is be put into the child list of its parent pdn when the pdn is created. When doing PCI hot unplugging on pSeries, the PCI device node as well as its pdn are released through procfs entry "powerpc/ofdt". Some one else grabs the memory chunk of the pdn and update it accordingly. At the same time, the pdn is still tracked in the child list of parent pdn. It leads to corrupted child list in the parent pdn. This fixes above issue by removing the pdn from the child list of its parent pdn when the device node is detached from the system. Note the pdn is free'd when the device node is released if the device node is dynamic one. Otherwise, the device node as well as the pdn won't be released. Fixes: cca87d30 ("powerpc/pci: Refactor pci_dn") Cc: stable@vger.kernel.org # 4.1+ Reported-by: Santwana Samantray Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/setup.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6669cb8bed02ec1b60e80f2e1e317afc28544207 Author: Trond Myklebust Date: Thu Aug 27 20:43:20 2015 -0400 NFSv4.1/pnfs: Ensure layoutreturn reserves space for the opaque payload The "FIXME" is outdated. Flexfiles does add a payload. Signed-off-by: Trond Myklebust fs/nfs/nfs4xdr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d13549074cf066d6d5bb29903d044beffea342d3 Author: Trond Myklebust Date: Thu Aug 27 20:37:39 2015 -0400 NFSv4.1/flexfiles: Fix a protocol error in layoutreturn According to the flexfiles protocol, the layoutreturn should specify an array of errors in the following format: struct ff_ioerr4 { offset4 ffie_offset; length4 ffie_length; stateid4 ffie_stateid; device_error4 ffie_errors<>; }; This patch fixes up the code to ensure that our ffie_errors is indeed encoded as an array (albeit with only a single entry). Reported-by: Tom Haynes Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayoutdev.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 55f14da66954083b621debbdbf62c7fc429291e8 Merge: 69dba9b 3e692f2 Author: David S. Miller Date: Thu Aug 27 17:14:30 2015 -0700 Merge branch 'iff_no_queue_fixups' Phil Sutter says: ==================== fixup IFF_NO_QUEUE conversion This series serves two purposes: On one hand it fixes a quite embarrassing bug around the warning I added for drivers still setting tx_queue_len = 0 to achieve noqueue operation. It turned out to be quite useless as due to using alloc_netdev(), many in-kernel drivers fell into the trap by accident, as well. Instead this place serves pretty well as a sanitizing point to set IFF_NO_QUEUE for drivers not initializing tx_queue_len, which in turn allows to drop all special treatment of the latter being zero since that can not happen anymore without IFF_NO_QUEUE being set. On the other hand, it provides a better solution for Eric Dumazet's concern regarding how to assign noqueue to an interface which does not default to it already. In order to make this possible, noqueue is being registered so users can 'tc qd add dev eth0 root noqueue'. In addition, it resolves the ugly situation of 'tc qd show' not showing noqueue. Finally, the former changes allow for some code cleanup. ==================== Signed-off-by: David S. Miller commit 3e692f21532a54eeb5e6fc0ccc214cfa56fe23d3 Author: Phil Sutter Date: Thu Aug 27 21:21:39 2015 +0200 net: sched: simplify attach_one_default_qdisc() Now that noqueue qdisc can be attached just like any other qdisc, no special treatment is necessary anymore when attaching it as default qdisc. This change has the added benefit that 'tc qdisc show' prints noqueue instead of nothing for devices defaulting to noqueue. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/sched/sch_generic.c | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) commit d66d6c3152e8d5a6db42a56bf7ae1c6cae87ba48 Author: Phil Sutter Date: Thu Aug 27 21:21:38 2015 +0200 net: sched: register noqueue qdisc This way users can attach noqueue just like any other qdisc using tc without having to mess with tx_queue_len first. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller include/net/sch_generic.h | 1 + net/sched/sch_api.c | 1 + net/sched/sch_generic.c | 12 +++++++++++- 3 files changed, 13 insertions(+), 1 deletion(-) commit db4094bca7a5746bc8e36db0557e8732963e88f0 Author: Phil Sutter Date: Thu Aug 27 21:21:37 2015 +0200 net: sched: ignore tx_queue_len when assigning default qdisc Since alloc_netdev_mqs() sets IFF_NO_QUEUE for drivers not initializing tx_queue_len, it is safe to assume that if tx_queue_len is zero, dev->priv flags always contains IFF_NO_QUEUE. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/sched/sch_generic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f84bb1eac0275283ccd76455e20f926e186ea8c8 Author: Phil Sutter Date: Thu Aug 27 21:21:36 2015 +0200 net: fix IFF_NO_QUEUE for drivers using alloc_netdev Printing a warning in alloc_netdev_mqs() if tx_queue_len is zero and IFF_NO_QUEUE not set is not appropriate since drivers may use one of the alloc_netdev* macros instead of alloc_etherdev*, thereby not intentionally leaving tx_queue_len uninitialized. Instead check here if tx_queue_len is zero and set IFF_NO_QUEUE, so the value of tx_queue_len can be ignored in net/sched_generic.c. Fixes: 906470c ("net: warn if drivers set tx_queue_len = 0") Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/core/dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69dba9bbc50609f19ee89d62d5199c81fcbc74b2 Author: Jean Sacren Date: Thu Aug 27 18:05:49 2015 -0600 sock: fix kernel doc error The symbol '__sk_reclaim' is not present in the current tree. Apparently '__sk_reclaim' was meant to be '__sk_mem_reclaim', so fix it with the right symbol name for the kernel doc. Signed-off-by: Jean Sacren Cc: Hideo Aoki Signed-off-by: David S. Miller net/core/sock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5334c5bdac926c5f8d89729beccb46fe88eda9e7 Author: Kinglong Mee Date: Wed Aug 26 21:13:37 2015 +0800 NFS: Send attributes in OPEN request for NFS4_CREATE_EXCLUSIVE4_1 Client sends a SETATTR request after OPEN for updating attributes. For create file with S_ISGID is set, the S_ISGID in SETATTR will be ignored at nfs server as chmod of no PERMISSION. v3, same as v2. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 18 ++++++++++++++---- fs/nfs/nfs4xdr.c | 26 ++++++++++++++++++-------- include/linux/nfs_xdr.h | 2 +- 3 files changed, 33 insertions(+), 13 deletions(-) commit 8c61282ff61c28d5a12bb53f0eaa221d30fd3ae1 Author: Kinglong Mee Date: Wed Aug 26 21:12:58 2015 +0800 NFS: Get suppattr_exclcreat when getting server capabilities Create file with attributs as NFS4_CREATE_EXCLUSIVE4_1 mode depends on suppattr_exclcreat attribut. v3, same as v2. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 14 +++++++++++++- fs/nfs/nfs4xdr.c | 26 +++++++++++++++++++++----- include/linux/nfs_fs_sb.h | 5 +++++ include/linux/nfs_xdr.h | 2 ++ 4 files changed, 41 insertions(+), 6 deletions(-) commit 5153aacfb8e2744af68e7b84ccd3f02aeefe4f48 Author: Kinglong Mee Date: Wed Aug 26 21:12:15 2015 +0800 NFS: Update NFS4_BITMAP_SIZE v4.1/v4.2 have define attributes at word2, nfs client also support security label now. v3, same as v2. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust include/uapi/linux/nfs4.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5c3fb5f975a8bcc42cd039b83d9a4729ce489bb Author: Kinglong Mee Date: Wed Aug 26 21:11:39 2015 +0800 NFS: Make opened as optional argument in _nfs4_do_open Check opened, only update it when non-NULL. It's not needs define an unused value for the opened when calling _nfs4_do_open. v3, same as v2. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4file.c | 3 +-- fs/nfs/nfs4proc.c | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) commit ae57ca0f4fce219ef34c28f0edc210598c465a4d Author: Kinglong Mee Date: Wed Aug 26 21:10:55 2015 +0800 NFS: Check size by inode_newsize_ok in nfs_setattr Set rlimit for NFS's files is useless right now. For local process's rlimit, it should be checked by nfs client. The same, CIFS also call inode_change_ok checking rlimit at its client in cifs_setattr_nounix() and cifs_setattr_unix(). v3, fix bad using of error Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/inode.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 96601adb745186ccbcf5b078d4756f13381ec2af Author: Dan Williams Date: Mon Aug 24 18:29:38 2015 -0400 x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB Given that a write-back (WB) mapping plus non-temporal stores is expected to be the most efficient way to access PMEM, update the definition of ARCH_HAS_PMEM_API to imply arch support for WB-mapped-PMEM. This is needed as a pre-requisite for adding PMEM to the direct map and mapping it with struct page. The above clarification for X86_64 means that memcpy_to_pmem() is permitted to use the non-temporal arch_memcpy_to_pmem() rather than needlessly fall back to default_memcpy_to_pmem() when the pcommit instruction is not available. When arch_memcpy_to_pmem() is not guaranteed to flush writes out of cache, i.e. on older X86_32 implementations where non-temporal stores may just dirty cache, ARCH_HAS_PMEM_API is simply disabled. The default fall back for persistent memory handling remains. Namely, map it with the WT (write-through) cache-type and hope for the best. arch_has_pmem_api() is updated to only indicate whether the arch provides the proper helpers to meet the minimum "writes are visible outside the cache hierarchy after memcpy_to_pmem() + wmb_pmem()". Code that cares whether wmb_pmem() actually flushes writes to pmem must now call arch_has_wmb_pmem() directly. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Reviewed-by: Ross Zwisler [hch: set ARCH_HAS_PMEM_API=n on x86_32] Reviewed-by: Christoph Hellwig [toshi: x86_32 compile fixes] Signed-off-by: Toshi Kani Signed-off-by: Dan Williams arch/x86/Kconfig | 2 +- arch/x86/include/asm/pmem.h | 9 +-------- drivers/acpi/nfit.c | 3 ++- drivers/nvdimm/pmem.c | 2 +- include/linux/pmem.h | 36 ++++++++++++++++++++++-------------- 5 files changed, 27 insertions(+), 25 deletions(-) commit 41e94a851304f7acac840adec4004f8aeee53ad4 Author: Christoph Hellwig Date: Mon Aug 17 16:00:35 2015 +0200 add devm_memremap_pages This behaves like devm_memremap except that it ensures we have page structures available that can back the region. Signed-off-by: Christoph Hellwig [djbw: catch attempts to remap RAM, drop flags] Signed-off-by: Dan Williams include/linux/io.h | 20 ++++++++++++++++++++ kernel/memremap.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) commit 033fbae988fcb67e5077203512181890848b8e90 Author: Dan Williams Date: Sun Aug 9 15:29:06 2015 -0400 mm: ZONE_DEVICE for "device memory" While pmem is usable as a block device or via DAX mappings to userspace there are several usage scenarios that can not target pmem due to its lack of struct page coverage. In preparation for "hot plugging" pmem into the vmemmap add ZONE_DEVICE as a new zone to tag these pages separately from the ones that are subject to standard page allocations. Importantly "device memory" can be removed at will by userspace unbinding the driver of the device. Having a separate zone prevents allocation and otherwise marks these pages that are distinct from typical uniform memory. Device memory has different lifetime and performance characteristics than RAM. However, since we have run out of ZONES_SHIFT bits this functionality currently depends on sacrificing ZONE_DMA. Cc: H. Peter Anvin Cc: Ingo Molnar Cc: Dave Hansen Cc: Rik van Riel Cc: Mel Gorman Cc: Jerome Glisse [hch: various simplifications in the arch interface] Signed-off-by: Christoph Hellwig Signed-off-by: Dan Williams arch/ia64/mm/init.c | 4 ++-- arch/powerpc/mm/mem.c | 4 ++-- arch/s390/mm/init.c | 2 +- arch/sh/mm/init.c | 5 +++-- arch/tile/mm/init.c | 2 +- arch/x86/mm/init_32.c | 4 ++-- arch/x86/mm/init_64.c | 4 ++-- include/linux/memory_hotplug.h | 5 +++-- include/linux/mmzone.h | 23 +++++++++++++++++++++++ mm/Kconfig | 17 +++++++++++++++++ mm/memory_hotplug.c | 14 +++++++++++--- mm/page_alloc.c | 3 +++ 12 files changed, 70 insertions(+), 17 deletions(-) commit 012dcef3f058385268630c0003e9b7f8dcafbeb4 Author: Christoph Hellwig Date: Fri Aug 7 17:41:01 2015 -0400 mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h Three architectures already define these, and we'll need them genericly soon. Signed-off-by: Christoph Hellwig Signed-off-by: Dan Williams arch/arm/include/asm/memory.h | 6 ------ arch/arm64/include/asm/memory.h | 6 ------ arch/unicore32/include/asm/memory.h | 6 ------ include/asm-generic/memory_model.h | 6 ++++++ 4 files changed, 6 insertions(+), 18 deletions(-) commit cb389b9c0e00c30c9daf20287f7d91e2466edbb1 Author: Dan Williams Date: Fri Aug 7 17:41:00 2015 -0400 dax: drop size parameter to ->direct_access() None of the implementations currently use it. The common bdev_direct_access() entry point handles all the size checks before calling ->direct_access(). Signed-off-by: Christoph Hellwig Signed-off-by: Dan Williams arch/powerpc/sysdev/axonram.c | 2 +- drivers/block/brd.c | 6 +----- drivers/nvdimm/pmem.c | 2 +- drivers/s390/block/dcssblk.c | 4 ++-- fs/block_dev.c | 2 +- include/linux/blkdev.h | 2 +- 6 files changed, 7 insertions(+), 11 deletions(-) commit b0f6446377e72bcabafe83d29bf6a2f6dd19d0b0 Author: Carol L Soto Date: Thu Aug 27 14:43:26 2015 -0500 net/mlx4_core: Fix unintialized variable used in error path The uninitialized value name in mlx4_en_activate_cq was used in order to print an error message. Fixing it by replacing it with cq->vector. Signed-off-by: Matan Barak Signed-off-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_cq.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 4a9bf88a5caa8495b5eb2b738d5fb40924bbc538 Merge: a06a757 67a3e8f Author: Dan Williams Date: Thu Aug 27 19:40:26 2015 -0400 Merge branch 'pmem-api' into libnvdimm-for-next commit 9293267a3e2a7a2555d8ddc8f9301525e5b03b1b Author: Carol L Soto Date: Thu Aug 27 14:43:25 2015 -0500 net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX We currently manage IRQs in pool_bm which is a bit field of MAX_MSIX bits. Thus, allocating more than MAX_MSIX interrupts can't be managed in pool_bm. Fixing this by capping number of requested MSIXs to MAX_MSIX. Signed-off-by: Matan Barak Signed-off-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit b22fbf22f8469d8cacb6fcf5d266426826e1137d Author: Nikolay Aleksandrov Date: Thu Aug 27 14:19:20 2015 -0700 bridge: fdb: rearrange net_bridge_fdb_entry While looking into fixing the local entries scalability issue I noticed that the structure is badly arranged because vlan_id would fall in a second cache line while keeping rcu which is used only when deleting in the first, so re-arrange the structure and push rcu to the end so we can get 16 bytes which can be used for other fields (by pushing rcu fully in the second 64 byte chunk). With this change all the core necessary information when doing fdb lookups will be available in a single cache line. pahole before (note vlan_id): struct net_bridge_fdb_entry { struct hlist_node hlist; /* 0 16 */ struct net_bridge_port * dst; /* 16 8 */ struct callback_head rcu; /* 24 16 */ long unsigned int updated; /* 40 8 */ long unsigned int used; /* 48 8 */ mac_addr addr; /* 56 6 */ unsigned char is_local:1; /* 62: 7 1 */ unsigned char is_static:1; /* 62: 6 1 */ unsigned char added_by_user:1; /* 62: 5 1 */ unsigned char added_by_external_learn:1; /* 62: 4 1 */ /* XXX 4 bits hole, try to pack */ /* XXX 1 byte hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) --- */ __u16 vlan_id; /* 64 2 */ /* size: 72, cachelines: 2, members: 11 */ /* sum members: 65, holes: 1, sum holes: 1 */ /* bit holes: 1, sum bit holes: 4 bits */ /* padding: 6 */ /* last cacheline: 8 bytes */ } pahole after (note vlan_id): struct net_bridge_fdb_entry { struct hlist_node hlist; /* 0 16 */ struct net_bridge_port * dst; /* 16 8 */ long unsigned int updated; /* 24 8 */ long unsigned int used; /* 32 8 */ mac_addr addr; /* 40 6 */ __u16 vlan_id; /* 46 2 */ unsigned char is_local:1; /* 48: 7 1 */ unsigned char is_static:1; /* 48: 6 1 */ unsigned char added_by_user:1; /* 48: 5 1 */ unsigned char added_by_external_learn:1; /* 48: 4 1 */ /* XXX 4 bits hole, try to pack */ /* XXX 7 bytes hole, try to pack */ struct callback_head rcu; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ /* size: 72, cachelines: 2, members: 11 */ /* sum members: 65, holes: 1, sum holes: 7 */ /* bit holes: 1, sum bit holes: 4 bits */ /* last cacheline: 8 bytes */ } Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_private.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 67a3e8fe90156d41cd480d3dfbb40f3bc007c262 Author: Ross Zwisler Date: Thu Aug 27 13:14:20 2015 -0600 nd_blk: change aperture mapping from WC to WB This should result in a pretty sizeable performance gain for reads. For rough comparison I did some simple read testing using PMEM to compare reads of write combining (WC) mappings vs write-back (WB). This was done on a random lab machine. PMEM reads from a write combining mapping: # dd of=/dev/null if=/dev/pmem0 bs=4096 count=100000 100000+0 records in 100000+0 records out 409600000 bytes (410 MB) copied, 9.2855 s, 44.1 MB/s PMEM reads from a write-back mapping: # dd of=/dev/null if=/dev/pmem0 bs=4096 count=1000000 1000000+0 records in 1000000+0 records out 4096000000 bytes (4.1 GB) copied, 3.44034 s, 1.2 GB/s To be able to safely support a write-back aperture I needed to add support for the "read flush" _DSM flag, as outlined in the DSM spec: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf This flag tells the ND BLK driver that it needs to flush the cache lines associated with the aperture after the aperture is moved but before any new data is read. This ensures that any stale cache lines from the previous contents of the aperture will be discarded from the processor cache, and the new data will be read properly from the DIMM. We know that the cache lines are clean and will be discarded without any writeback because either a) the previous aperture operation was a read, and we never modified the contents of the aperture, or b) the previous aperture operation was a write and we must have written back the dirtied contents of the aperture to the DIMM before the I/O was completed. In order to add support for the "read flush" flag I needed to add a generic routine to invalidate cache lines, mmio_flush_range(). This is protected by the ARCH_HAS_MMIO_FLUSH Kconfig variable, and is currently only supported on x86. Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams arch/x86/Kconfig | 1 + arch/x86/include/asm/cacheflush.h | 2 ++ arch/x86/include/asm/io.h | 2 -- arch/x86/include/asm/pmem.h | 2 ++ drivers/acpi/Kconfig | 1 + drivers/acpi/nfit.c | 55 ++++++++++++++++++++++----------------- drivers/acpi/nfit.h | 16 ++++++++---- lib/Kconfig | 3 +++ tools/testing/nvdimm/Kbuild | 2 ++ tools/testing/nvdimm/test/iomap.c | 30 +++++++++++++++++++-- tools/testing/nvdimm/test/nfit.c | 10 ++++--- 11 files changed, 88 insertions(+), 36 deletions(-) commit d3a730971b90dd150e43c924b1b4dec8197fccad Merge: c4d3e22 7b85b4d Author: David S. Miller Date: Thu Aug 27 16:35:51 2015 -0700 Merge branch 'ovs-v6-build-err' Joe Stringer says: ==================== OPENVSWITCH && !NETFILTER build fix. Fix issues reported by kbuild test robot: All error/warnings (new ones prefixed by >>): net/openvswitch/actions.c: In function 'ovs_fragment': >> net/openvswitch/actions.c:705:16: error: implicit declaration of function 'nf_get_ipv6_ops' [-Werror=implicit-function-declaration] const struct nf_ipv6_ops *v6ops = nf_get_ipv6_ops(); ^ >> net/openvswitch/actions.c:705:37: warning: initialization makes pointer from integer without a cast const struct nf_ipv6_ops *v6ops = nf_get_ipv6_ops(); ^ >> net/openvswitch/actions.c:707:19: error: storage size of 'ovs_rt' isn't known struct rt6_info ovs_rt; ^ >> net/openvswitch/actions.c:724:8: error: dereferencing pointer to incomplete type v6ops->fragment(skb->sk, skb, ovs_vport_output); ^ >> net/openvswitch/actions.c:707:19: warning: unused variable 'ovs_rt' [-Wunused-variable] struct rt6_info ovs_rt; ^ cc1: some warnings being treated as errors ==================== Signed-off-by: David S. Miller commit 7b85b4dff2caa5e52726093fd058f87bbc14f156 Author: Joe Stringer Date: Thu Aug 27 15:25:46 2015 -0700 openvswitch: Include ip6_fib.h. kbuild test robot reports that certain configurations will not automatically pick up on the "struct rt6_info" definition, so explicitly include the header for this structure. Fixes: 7f8a436 "openvswitch: Add conntrack action" Signed-off-by: Joe Stringer Signed-off-by: David S. Miller net/openvswitch/actions.c | 1 + 1 file changed, 1 insertion(+) commit 2e4cfae2a8e3f9ce3925c9b6e9e865fe8476fc4f Author: Joe Stringer Date: Thu Aug 27 15:25:45 2015 -0700 netfilter: Define v6ops in !CONFIG_NETFILTER case. When CONFIG_OPENVSWITCH is set, and CONFIG_NETFILTER is not set, the openvswitch IPv6 fragmentation handling cannot refer to ipv6_ops because it isn't defined. Add a dummy version to avoid #ifdefs in source files. Fixes: 7f8a436 "openvswitch: Add conntrack action" Signed-off-by: Joe Stringer Signed-off-by: David S. Miller include/linux/netfilter_ipv6.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit a06a7576526e10a99ea7721533e7f2df3e26baad Author: yalin wang Date: Thu Aug 27 19:35:48 2015 -0400 nvdimm: change to use generic kvfree() Signed-off-by: yalin wang Reviewed-by: Ross Zwisler Signed-off-by: Dan Williams drivers/nvdimm/dimm_devs.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit c4d3e22438d405b84c00710aad177184d789353f Merge: ec5d165 1e81779 Author: David S. Miller Date: Thu Aug 27 16:31:17 2015 -0700 Merge branch 'mlxsw-small-updates' Jiri Pirko says: ==================== mlxsw: small driver update Ido Schimmel (2): mlxsw: Remove duplicate included header mlxsw: Make mailboxes 4KB aligned Jiri Pirko (1): mlxsw: adjust transmit fail log message level in __mlxsw_emad_transmit ==================== Signed-off-by: David S. Miller commit 1e81779ae41e5d14174ce5e61790ace34914ade0 Author: Ido Schimmel Date: Thu Aug 27 17:59:57 2015 +0200 mlxsw: Make mailboxes 4KB aligned The HW-SW contract requires mailboxes passed to the firmware to be 4KB aligned. Previously, these mailboxes were mapped using streaming DMA routines, which do not guarantee the bus addresses to be 4KB aligned. Under certain conditions this constraint was indeed violated and errors were observed. By using consistent DMA mapping routines together with a mailbox size of 4KB we are guaranteed not to violate the constraint. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 83 +++++++++++++++++++------------ 1 file changed, 50 insertions(+), 33 deletions(-) commit 262df6919edd837c0745fc2a751364af671feaf7 Author: Jiri Pirko Date: Thu Aug 27 17:59:56 2015 +0200 mlxsw: adjust transmit fail log message level in __mlxsw_emad_transmit When transmit fails, it is an error, not a warning. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: Elad Raz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a585dabd96f3ccb4ada36cf616ab4477873b506c Author: Ido Schimmel Date: Thu Aug 27 17:59:55 2015 +0200 mlxsw: Remove duplicate included header Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: Elad Raz Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 1 - 1 file changed, 1 deletion(-) commit 718e38b4d96085b4dab08d3d32e5e033aa1ba6e9 Author: Roger Quadros Date: Wed Jul 8 14:50:19 2015 +0300 mtd: mtd_oobtest: Fix the address offset with vary_offset case When vary_offset is set (e.g. test case 3), the offset is not always zero so memcmpshow() will show the wrong offset in the print message. To fix this we introduce a new function memcmpshowoffset() which takes offset as a parameter and displays the right offset and use it in the case where offset is non zero. The old memcmpshow() functionality is preserved by converting it into a macro with offset preset to 0. Signed-off-by: Roger Quadros Signed-off-by: Brian Norris drivers/mtd/tests/oobtest.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit ec5d165555ea02ac9b69bbed8ff8f1de7c782f66 Merge: 547c890 686ed30 Author: David S. Miller Date: Thu Aug 27 16:28:35 2015 -0700 Merge branch 'rocker-master-change' Jiri Pirko says: ==================== rocker: make master change handling nicer Jiri Pirko (6): net: introduce change upper device notifier change info net: add netif_is_bridge_master helper net: add netif_is_ovs_master helper with IFF_OPENVSWITCH private flag net: kill long time unused bonding private flags rocker: use new helper to figure out master kind rocker: use change upper info ==================== Signed-off-by: David S. Miller commit 686ed3047e8727fe3c7eb5a3c63a5e9b1556bbbb Author: Jiri Pirko Date: Thu Aug 27 09:31:23 2015 +0200 rocker: use change upper info Since now information about changed upper is passed along, benefit from that and use this info directly. This also fixes possible issues that could happen when non-master device is added (current code does not distinguish between master and non-master upper device). Signed-off-by: Jiri Pirko Acked-by: Scott Feldman drivers/net/ethernet/rocker/rocker.c | 61 ++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 23 deletions(-) commit fb4bf214346e37778bcf00a89bfb90112859b23c Author: Jiri Pirko Date: Thu Aug 27 09:31:22 2015 +0200 rocker: use new helper to figure out master kind Looking at rtnl kind string is kind of ugly. So use new helpers to do this in nicer way. Signed-off-by: Jiri Pirko Acked-by: Scott Feldman drivers/net/ethernet/rocker/rocker.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 0dc1549bfd67053181415a3f7544628a6bcd2a08 Author: Jiri Pirko Date: Thu Aug 27 09:31:21 2015 +0200 net: kill long time unused bonding private flags We don't use them for years, just kill them now. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 57 +++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 36 deletions(-) commit 35d4e1725202e6656fcfa8b88447327ad3ae0c0c Author: Jiri Pirko Date: Thu Aug 27 09:31:20 2015 +0200 net: add netif_is_ovs_master helper with IFF_OPENVSWITCH private flag Add this helper so code can easily figure out if netdev is openswitch. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 8 ++++++++ net/openvswitch/vport-internal_dev.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit 0894ae3f0a587bda9733ec4a4b67af7ded3a9498 Author: Jiri Pirko Date: Thu Aug 27 09:31:19 2015 +0200 net: add netif_is_bridge_master helper Add this helper so code can easily figure out if netdev is a bridge. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 5 +++++ 1 file changed, 5 insertions(+) commit 0e4ead9d7b3655d76371604abb9b0dcc4e79bb7d Author: Jiri Pirko Date: Thu Aug 27 09:31:18 2015 +0200 net: introduce change upper device notifier change info Add info that is passed along with NETDEV_CHANGEUPPER event. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 7 +++++++ net/core/dev.c | 16 ++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit 0bdb8fa6ecb4a356f26c6874db51b5488706e088 Author: Trond Myklebust Date: Thu Aug 27 19:17:33 2015 -0400 NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return must notify of layout return It's not sufficient to just mark the layout segment for layout return. We also need to set the NFS_LAYOUT_RETURN_BEFORE_CLOSE flag in the layout header. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 2 ++ 1 file changed, 2 insertions(+) commit 547c890cfd26010e01b3faf98f29ca9b2252c8d8 Author: Jason Wang Date: Thu Aug 27 14:53:06 2015 +0800 virtio-net: avoid unnecessary sg initialzation Usually an skb does not have up to MAX_SKB_FRAGS frags. So no need to initialize the unuse part of sg. This patch initialize the sg based on the real number it will used: - during xmit, it could be inferred from nr_frags and can_push. - for small receive buffer, it will also be 2. Cc: Michael S. Tsirkin Signed-off-by: Jason Wang Signed-off-by: David S. Miller drivers/net/virtio_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e0aa59728854837a7256e21644596f21a16ce0f Merge: d2d427b 66d4700 Author: David S. Miller Date: Thu Aug 27 15:42:48 2015 -0700 Merge branch 'geneve-consolidation' Pravin B Shelar says: ==================== Geneve: Add support for tunnel metadata mode Following patches adds support for Geneve tunnel metadata mode. OVS can make use of Geneve net-device with tunnel metadata API from kernel. This also allows us to consolidate Geneve implementation from two kernel modules geneve_core and geneve to single geneve module. geneve_core module was targeted to share Geneve encap and decap code between Geneve netdevice and OVS Geneve tunnel implementation, Since OVS no longer needs these API, Geneve code can be consolidated into single geneve module. v3-v4: - Drop NETIF_F_NETNS_LOCAL feature. - Fix geneve device newlink check v2-v3: - make tunnel medata device and regular device mutually exclusive. - Fix Kconfig dependency for Geneve. - Fix dst-port netlink encoding. - drop changelink patch. v1-v2: - Replaced per hash table tunnel pointer (metadata enabled) with flag. - Added support for changelink. - Improve geneve device route lookup with more parameters. ==================== Signed-off-by: David S. Miller commit 66d47003f7c1034d66776ab869030f73f6c9ce81 Author: Pravin B Shelar Date: Wed Aug 26 23:46:55 2015 -0700 geneve: Move device hash table to geneve socket. This change simplifies Geneve Tunnel hash table management. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Reviewed-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) commit 371bd1061d29562e6423435073623add8c475ee2 Author: Pravin B Shelar Date: Wed Aug 26 23:46:54 2015 -0700 geneve: Consolidate Geneve functionality in single module. geneve_core module handles send and receive functionality. This way OVS could use the Geneve API. Now with use of tunnel meatadata mode OVS can directly use Geneve netdevice. So there is no need for separate module for Geneve. Following patch consolidates Geneve protocol processing in single module. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: John W. Linville Signed-off-by: David S. Miller drivers/net/Kconfig | 4 +- drivers/net/geneve.c | 507 ++++++++++++++++++++++++++++++++++++++++--------- include/net/geneve.h | 34 ---- net/ipv4/Kconfig | 14 -- net/ipv4/Makefile | 1 - net/ipv4/geneve_core.c | 447 ------------------------------------------- 6 files changed, 421 insertions(+), 586 deletions(-) commit 6b001e682e90d7edf21f93687f5c3b39d412ad6c Author: Pravin B Shelar Date: Wed Aug 26 23:46:53 2015 -0700 openvswitch: Use Geneve device. With help of tunnel metadata mode OVS can directly use Geneve devices to implement Geneve tunnels. This patch removes all of the OVS specific Geneve code and make OVS use a Geneve net_device. Basic geneve vport is still there to handle compatibility with current userspace application. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/Kconfig | 2 +- net/openvswitch/vport-geneve.c | 179 ++++++++--------------------------------- 2 files changed, 33 insertions(+), 148 deletions(-) commit e305ac6cf5a1e1386aedce7ef9cb773635d5845c Author: Pravin B Shelar Date: Wed Aug 26 23:46:52 2015 -0700 geneve: Add support to collect tunnel metadata. Following patch create new tunnel flag which enable tunnel metadata collection on given device. These devices can be used by tunnel metadata based routing or by OVS. Geneve Consolidation patch get rid of collect_md_tun to simplify tunnel lookup further. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/geneve.c | 356 ++++++++++++++++++++++++++++++++----------- include/net/geneve.h | 3 + include/uapi/linux/if_link.h | 1 + 3 files changed, 275 insertions(+), 85 deletions(-) commit cd7918b35f0ee0106bbe2ce4a14b5a8c9763deb8 Author: Pravin B Shelar Date: Wed Aug 26 23:46:51 2015 -0700 geneve: Make dst-port configurable. Add netlink interface to configure Geneve UDP port number. So that user can configure it for a Gevene device. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: Thomas Graf Acked-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 25 +++++++++++++++++++++---- include/uapi/linux/if_link.h | 1 + 2 files changed, 22 insertions(+), 4 deletions(-) commit c29a70d2cadfea443c027d23481f820530b70057 Author: Pravin B Shelar Date: Wed Aug 26 23:46:50 2015 -0700 tunnel: introduce udp_tun_rx_dst() Introduce function udp_tun_rx_dst() to initialize tunnel dst on receive path. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 29 +++------------------- include/net/dst_metadata.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++ include/net/udp_tunnel.h | 4 +++ net/ipv4/ip_gre.c | 21 ++++------------ net/ipv4/udp_tunnel.c | 25 ++++++++++++++++++- 5 files changed, 97 insertions(+), 43 deletions(-) commit 980c394c53e420f7e5484d011378a4bec861ec7a Author: Pravin B Shelar Date: Wed Aug 26 23:46:49 2015 -0700 geneve: Use skb mark and protocol to lookup route. On packet transmit path geneve need to lookup route. Following patch improves route lookup using more parameters. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: Thomas Graf Acked-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 3 +++ 1 file changed, 3 insertions(+) commit 87cd3dcaf4bd135e44ee187baf788deeb011e58d Author: Pravin B Shelar Date: Wed Aug 26 23:46:48 2015 -0700 geneve: Initialize ethernet address in device setup. Signed-off-by: Pravin B Shelar Reviewed-by: Jesse Gross Acked-by: Thomas Graf Acked-by: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d2d427b3927bd7a0348fc7f323d0e291f79a2779 Author: Toshiaki Makita Date: Thu Aug 27 15:32:26 2015 +0900 bridge: Add netlink support for vlan_protocol attribute This enables bridge vlan_protocol to be configured through netlink. When CONFIG_BRIDGE_VLAN_FILTERING is disabled, kernel behaves the same way as this feature is not implemented. Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller include/uapi/linux/if_link.h | 1 + net/bridge/br_netlink.c | 34 ++++++++++++++++++++++++++++++++++ net/bridge/br_private.h | 1 + net/bridge/br_vlan.c | 35 +++++++++++++++++++++-------------- 4 files changed, 57 insertions(+), 14 deletions(-) commit 9c9a6524b5fdf6cb57c9ff627b7f242a6a4e0b00 Author: Yuval Mintz Date: Thu Aug 27 08:03:08 2015 +0300 bnx2x: Add new device ids under the Qlogic vendor This adds support for 3 new PCI device combinations - 1077:16a1, 1077:16a4 and 1077:16ad. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 3 +++ 1 file changed, 3 insertions(+) commit 9fae100cbd1049057bbc3e3180a6de339b9b73a9 Author: Bamvor Jian Zhang Date: Fri Aug 14 21:43:38 2015 +0800 selftests: breakpoints: fix installing error on the architecture except x86 Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/breakpoints/Makefile | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit a7d0f078892ee5e737cbe79541353c630bc71651 Author: Bamvor Jian Zhang Date: Fri Aug 14 21:43:35 2015 +0800 selftests: check before install When the test cases is not supported by the current architecture the install files(TEST_PROGS, TEST_PROGS_EXTENDED and TEST_FILES) will be empty. Check it before installation to dismiss a failure reported by install program. Signed-off-by: Bamvor Jian Zhang Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 1 - tools/testing/selftests/lib.mk | 13 ++++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) commit f21fb798fe38cf87b177d45820991f0e315c0ba8 Author: Naresh Kamboju Date: Tue Aug 18 12:31:59 2015 +0530 selftests/zram: Adding zram tests zram: Compressed RAM based block devices ---------------------------------------- The zram module creates RAM based block devices named /dev/zram ( = 0, 1, ...). Pages written to these disks are compressed and stored in memory itself. These disks allow very fast I/O and compression provides good amounts of memory savings. Some of the usecases include /tmp storage, use as swap disks, various caches under /var and maybe many more :) Statistics for individual zram devices are exported through sysfs nodes at /sys/block/zram/ This patch is to validate the zram functionality. Test interacts with block device /dev/zram and sysfs nodes /sys/block/zram/ zram.sh: sanity check of CONFIG_ZRAM and to run zram01 and zram02 tests zram01.sh: creates general purpose ram disks with different filesystems zram02.sh: creates block device for swap zram_lib.sh: create library with initialization/cleanup functions README: ZRAM introduction and Kconfig required. Makefile: To run zram tests zram test output ----------------- ./zram.sh -------------------- running zram tests -------------------- /dev/zram0 device file found: OK set max_comp_streams to zram device(s) /sys/block/zram0/max_comp_streams = '2' (1/1) zram max streams: OK test that we can set compression algorithm supported algs: [lzo] lz4 /sys/block/zram0/comp_algorithm = 'lzo' (1/1) zram set compression algorithm: OK set disk size to zram device(s) /sys/block/zram0/disksize = '2097152' (1/1) zram set disksizes: OK set memory limit to zram device(s) /sys/block/zram0/mem_limit = '2M' (1/1) zram set memory limit: OK make ext4 filesystem on /dev/zram0 zram mkfs.ext4: OK mount /dev/zram0 zram mount of zram device(s): OK fill zram0... zram0 can be filled with '1932' KB zram used 3M, zram disk sizes 2097152M zram compression ratio: 699050.66:1: OK zram cleanup zram01 : [PASS] /dev/zram0 device file found: OK set max_comp_streams to zram device(s) /sys/block/zram0/max_comp_streams = '2' (1/1) zram max streams: OK set disk size to zram device(s) /sys/block/zram0/disksize = '1048576' (1/1) zram set disksizes: OK set memory limit to zram device(s) /sys/block/zram0/mem_limit = '1M' (1/1) zram set memory limit: OK make swap with zram device(s) done with /dev/zram0 zram making zram mkswap and swapon: OK zram swapoff: OK zram cleanup zram02 : [PASS] CC: Shuah Khan CC: Tyler Baker CC: Milosz Wasilewski CC: Alexey Kodanev Signed-off-by: Naresh Kamboju Signed-off-by: Alexey Kodanev Reviewed-By: Tyler Baker Signed-off-by: Shuah Khan tools/testing/selftests/Makefile | 1 + tools/testing/selftests/zram/Makefile | 12 ++ tools/testing/selftests/zram/README | 40 ++++++ tools/testing/selftests/zram/zram.sh | 23 ++++ tools/testing/selftests/zram/zram01.sh | 98 ++++++++++++++ tools/testing/selftests/zram/zram02.sh | 53 ++++++++ tools/testing/selftests/zram/zram_lib.sh | 222 +++++++++++++++++++++++++++++++ 7 files changed, 449 insertions(+) commit 3f1d44ae640172482a8c0125efe9ca93331b056b Author: David Howells Date: Thu Aug 27 11:13:36 2015 +0100 Documentation/Changes: Now need OpenSSL devel packages for module signing The module signing script (sign-file) used to be a wrapper around the openssl program. It has now been replaced by a C program that uses the crypto library from the OpenSSL package meaning that the OpenSSL devel packages are necessary to provide the devel library link and the header files. This would be openssl-devel on Fedora and libssl-dev on Debian. Reported-by: Stephen Rothwell Signed-off-by: David Howells Acked-by: Stephen Rothwell Signed-off-by: James Morris Documentation/Changes | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 31cb5c9e69cedd4bdd7bb7b442582914ceae8c2b Author: Guenter Roeck Date: Wed Aug 26 20:27:05 2015 -0700 smsc911x: Ignore error return from device_get_phy_mode() Commit 62ee783bf1f8 ("smsc911x: Fix crash seen if neither ACPI nor OF is configured or used") introduces an error check for the return value from device_get_phy_mode() and bails out if there is an error. Unfortunately, there are configurations where no phy is configured. Those configurations now fail. To fix the problem, accept error returns from device_get_phy_mode(), and use the return value from device_property_read_u32() to determine if there is a suitable firmware interface to read the configuration. Fixes: 62ee783bf1f8 ("smsc911x: Fix crash seen if neither ACPI nor OF is configured or used") Tested-by: Tony Lindgren Signed-off-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smsc911x.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 4fa7508e9f1c64ae39516e40ee5495aaa4616ad7 Author: Guenter Roeck Date: Wed Aug 26 20:27:04 2015 -0700 device property: Return -ENXIO if there is no suitable FW interface Return -ENXIO if device property array access functions don't find a suitable firmware interface. This lets drivers decide if they should use available platform data instead. Cc: Rafael J. Wysocki Signed-off-by: Guenter Roeck Tested-by: Jeremy Linton Signed-off-by: David S. Miller drivers/base/property.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 3b3ae880266d148bf73a573a766bc9b78c08d805 Author: Daniel Borkmann Date: Wed Aug 26 23:00:06 2015 +0200 net: sched: consolidate tc_classify{,_compat} For classifiers getting invoked via tc_classify(), we always need an extra function call into tc_classify_compat(), as both are being exported as symbols and tc_classify() itself doesn't do much except handling of reclassifications when tp->classify() returned with TC_ACT_RECLASSIFY. CBQ and ATM are the only qdiscs that directly call into tc_classify_compat(), all others use tc_classify(). When tc actions are being configured out in the kernel, tc_classify() effectively does nothing besides delegating. We could spare this layer and consolidate both functions. pktgen on single CPU constantly pushing skbs directly into the netif_receive_skb() path with a dummy classifier on ingress qdisc attached, improves slightly from 22.3Mpps to 23.1Mpps. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/net/pkt_sched.h | 4 +--- net/core/dev.c | 2 +- net/sched/sch_api.c | 55 ++++++++++++++++++++++-------------------------- net/sched/sch_atm.c | 2 +- net/sched/sch_cbq.c | 2 +- net/sched/sch_choke.c | 2 +- net/sched/sch_drr.c | 2 +- net/sched/sch_dsmark.c | 2 +- net/sched/sch_fq_codel.c | 2 +- net/sched/sch_hfsc.c | 2 +- net/sched/sch_htb.c | 2 +- net/sched/sch_multiq.c | 2 +- net/sched/sch_prio.c | 2 +- net/sched/sch_qfq.c | 2 +- net/sched/sch_sfb.c | 2 +- net/sched/sch_sfq.c | 2 +- 16 files changed, 40 insertions(+), 47 deletions(-) commit fe2188236ad04618b25978c44d896c16613de9aa Merge: 0118e01 bf41846 Author: David S. Miller Date: Thu Aug 27 14:06:09 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-08-26 This series contains updates to i40e and i40evf only. Anjali provides a fix for i40e where the part is not receiving multicast or VLAN tagged packets when in promiscuous mode. This can occur when a software bridge is created on top of the device. Fixed the legacy and MSI interrupt mode in the driver, which was non-existent before since we were assuming MSIX was the only mode that the driver ran in. Fixed the i40evf driver, where the wrong defines were getting used in the VF driver. Mitch fixes a sparse warning about comparing __le16 to u16 so use le16_to_cpu() to resolve the warning. Also fixed a dyslexic spelling of invalid. Shannon adds port.crc_errors to receive CRC error counter, since it is a receive counter. Catherine provides a fix to move the stopping of the service task and flow director to i40e_shutdown() instead of i40e_suspend(). Greg fixes the ethtool offline diagnostic with netqueues, which just need to be treated the same as virtual functions when someone wants to run the ethtool offline diagnostic test. Also fixed up code comments for the i40e ethtool diagnostic test function. Cleans up redundant and unneeded messages, since the kernel notifies all VXLAN capable registered drivers, so no need to log this. Neerav adds the ability to update statistics per VEB per traffic class and dump it via ethtool. Jingjing adds support for virtual channel offload to support receive polling mode in the VF driver. v2: dropped patch which added helper functions into a header, feedback from David Miller was to make the functions constant to reduce the driver footprint, so remove the patch while Anjali works on making the requested changes. ==================== Signed-off-by: David S. Miller commit 0118e01935cae83261f1c52f1c88c6514ef330f6 Author: Joe Perches Date: Wed Aug 26 11:49:35 2015 -0700 smsc9194: Remove uncompilable #if 0'd use of pr_dbg No pr_dbg method exists. While this code is #if 0'd, it'd be nicer to use the generic hex_dump, so use it instead. Signed-off-by: Joe Perches Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smc9194.c | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) commit 763a32bd0fea2893d4b87f20f9f9c278d776fbf6 Merge: 21c721f 9b00eb4 Author: David S. Miller Date: Thu Aug 27 13:51:38 2015 -0700 Merge branch 'xgene-tso' Iyappan Subramanian says: ==================== drivers: net: xgene: Add TSO support Adding TSO support for 10GbE iperf Tx data rate without TSO: 3.42 Gbps with TSO: 9.41 Gbps v2: Address review comments from v1 - skb_linearize() if headers doesn't fit in 3 hardware buffers v1: * Initial version ==================== Signed-off-by: Iyappan Subramanian commit 9b00eb494dc7c19ee69afef46e864f842cc1824f Author: Iyappan Subramanian Date: Wed Aug 26 11:48:06 2015 -0700 drivers: net: xgene: Adding support for TSO Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 16 +- drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 249 ++++++++++++++++++++-- drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 11 + drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c | 8 +- drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h | 2 + 5 files changed, 262 insertions(+), 24 deletions(-) commit 949c40bb16bcf5f9584ce585f8a477481ab6aa80 Author: Iyappan Subramanian Date: Wed Aug 26 11:48:05 2015 -0700 drivers: net: xgene: Preparatory patch for TSO support - Rearranged descriptor writes - Moved increment command write to xgene_enet_setup_tx_desc Signed-off-by: Iyappan Subramanian Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 29 ++++++++++++++++++------ drivers/net/ethernet/apm/xgene/xgene_enet_main.h | 1 + 2 files changed, 23 insertions(+), 7 deletions(-) commit 152933244a1a3232b32d2e973754d03321a5b0c6 Author: Leilk Liu Date: Thu Aug 27 21:09:04 2015 +0800 spi: mediatek: fix SPI_CMD_PAUSE_IE macro error enable pause interrupt should use SPI_CMD_PAUSE_IE MACRO, so fix it. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2002e90412df17ef7f714be62ed96a3c80b2f907 Merge: 02a9547 3b7ce99 Author: Mark Brown Date: Thu Aug 27 20:30:46 2015 +0100 Merge branch 'topic/ics43432' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-gtm601 commit d6aa1db3eac37cc92d67c3f66eab1b46d5bb9f7b Merge: 3b7ce99 02a9547 Author: Mark Brown Date: Thu Aug 27 20:29:18 2015 +0100 Merge branch 'topic/gtm601' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-ics43432 commit 054bc835d27b558393541c32a209c01d89cda75a Author: Luis de Bethencourt Date: Thu Aug 27 17:04:01 2015 +0200 ASoC: bcm2835-i2s: Fix module autoload for OF platform drivers These platform drivers have a OF device ID table but the OF module alias information is not created so module autoloading won't work. Signed-off-by: Luis de Bethencourt Signed-off-by: Mark Brown sound/soc/bcm/bcm2835-i2s.c | 2 ++ 1 file changed, 2 insertions(+) commit f2988afedf2c19880a3c65d79dfc7939e1b53d8a Author: Oder Chiou Date: Thu Aug 27 15:14:51 2015 +0800 ASoC: rt5645: Prevent the pop sound of the headphone while rebooting or shutdowning Add i2c shutdown function to prevent the pop sound of the headphone while the system is rebooting or shutdowning. It de-initials the jack detection function, and it cannot be turned off in _BIAS_OFF. If we don't de-initial it, the pop sound will be heard in the situation of powering off. And replace the related register settings from magic number to meaningful defined name. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 35 ++++++++++++++++++++++++----------- sound/soc/codecs/rt5645.h | 1 + 2 files changed, 25 insertions(+), 11 deletions(-) commit ba30011577330b7e29ecb5916d89c6db9fbc5b3d Author: Marek Szyprowski Date: Wed Aug 12 10:58:22 2015 +0200 clk: s5pv210: add missing call to samsung_clk_of_add_provider() Commit d5e136a21b2028fb1f45143ea7112d5869bfc6c7 ("clk: samsung: Register clk provider only after registering its all clocks", merged to v3.17-rc1) modified a way that driver registers registers to core framework. This change has not been applied to s5pv210 clocks driver, which has been merged in parallel to that commit. This patch adds a missing call to samsung_clk_of_add_provider(), so the driver is operational again. Signed-off-by: Marek Szyprowski CC: stable@vger.kernel.org # v3.17+ Acked-by: Tomasz Figa Signed-off-by: Michael Turquette drivers/clk/samsung/clk-s5pv210.c | 2 ++ 1 file changed, 2 insertions(+) commit 21c721fd0b991b1871ea5dd517be1b5375c5f8f7 Merge: 538e456 cae3a26 Author: David S. Miller Date: Thu Aug 27 11:40:44 2015 -0700 Merge branch 'ovs-conntrack' Joe Stringer says: ==================== OVS conntrack support The goal of this series is to allow OVS to send packets through the Linux kernel connection tracker, and subsequently match on fields populated by conntrack. This functionality is enabled through a new CONFIG_OPENVSWITCH_CONNTRACK option. This version addresses the feedback from v5, primarily checking the behaviour is correct with different configurations such as disabling CONFIG_OPENVSWITCH_CONNTRACK or disabling individual conntrack features like connlabels. The branch below has been updated with the corresponding userspace pieces: https://github.com/joestringer/ovs dev/ct_20150818 ==================== Signed-off-by: David S. Miller commit cae3a2627520c3795b54533c5328b77af3405dbe Author: Joe Stringer Date: Wed Aug 26 11:31:53 2015 -0700 openvswitch: Allow attaching helpers to ct action Add support for using conntrack helpers to assist protocol detection. The new OVS_CT_ATTR_HELPER attribute of the CT action specifies a helper to be used for this connection. If no helper is specified, then helpers will be automatically applied as per the sysctl configuration of net.netfilter.nf_conntrack_helper. The helper may be specified as part of the conntrack action, eg: ct(helper=ftp). Initial packets for related connections should be committed to allow later packets for the flow to be considered established. Example ovs-ofctl flows allowing FTP connections from ports 1->2: in_port=1,tcp,action=ct(helper=ftp,commit),2 in_port=2,tcp,ct_state=-trk,action=ct(recirc) in_port=2,tcp,ct_state=+trk-new+est,action=1 in_port=2,tcp,ct_state=+trk+rel,action=1 Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 3 ++ net/openvswitch/conntrack.c | 109 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 110 insertions(+), 2 deletions(-) commit c2ac667358708d7cce64c78f58af6adf4c1e848b Author: Joe Stringer Date: Wed Aug 26 11:31:52 2015 -0700 openvswitch: Allow matching on conntrack label Allow matching and setting the ct_label field. As with ct_mark, this is populated by executing the CT action. The label field may be modified by specifying a label and mask nested under the CT action. It is stored as metadata attached to the connection. Label modification occurs after lookup, and will only persist when the conntrack entry is committed by providing the COMMIT flag to the CT action. Labels are currently fixed to 128 bits in size. Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 10 +++ net/openvswitch/actions.c | 1 + net/openvswitch/conntrack.c | 128 ++++++++++++++++++++++++++++++++++++++- net/openvswitch/conntrack.h | 11 +++- net/openvswitch/datapath.c | 18 +++--- net/openvswitch/datapath.h | 3 + net/openvswitch/flow.c | 4 +- net/openvswitch/flow.h | 3 +- net/openvswitch/flow_netlink.c | 46 +++++++++----- net/openvswitch/flow_netlink.h | 9 +-- 10 files changed, 199 insertions(+), 34 deletions(-) commit 86ca02e77408bb58ba596c1a411ec7f631733690 Author: Joe Stringer Date: Wed Aug 26 11:31:51 2015 -0700 netfilter: connlabels: Export setting connlabel length Add functions to change connlabel length into nf_conntrack_labels.c so they may be reused by other modules like OVS and nftables without needing to jump through xt_match_check() hoops. Suggested-by: Florian Westphal Signed-off-by: Joe Stringer Acked-by: Florian Westphal Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/netfilter/nf_conntrack_labels.h | 4 ++++ net/netfilter/nf_conntrack_labels.c | 32 +++++++++++++++++++++++++++++ net/netfilter/xt_connlabel.c | 16 ++++----------- 3 files changed, 40 insertions(+), 12 deletions(-) commit 55e5713f2b5cefed98e3674017e994d688e47b85 Author: Joe Stringer Date: Wed Aug 26 11:31:50 2015 -0700 netfilter: Always export nf_connlabels_replace() The following patches will reuse this code from OVS. Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller net/netfilter/nf_conntrack_labels.c | 2 -- 1 file changed, 2 deletions(-) commit 182e3042e15de759e81618d11fe4f62f5259d982 Author: Joe Stringer Date: Wed Aug 26 11:31:49 2015 -0700 openvswitch: Allow matching on conntrack mark Allow matching and setting the ct_mark field. As with ct_state and ct_zone, these fields are populated when the CT action is executed. To write to this field, a value and mask can be specified as a nested attribute under the CT action. This data is stored with the conntrack entry, and is executed after the lookup occurs for the CT action. The conntrack entry itself must be committed using the COMMIT flag in the CT action flags for this change to persist. Signed-off-by: Justin Pettit Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 5 +++ net/openvswitch/actions.c | 1 + net/openvswitch/conntrack.c | 67 ++++++++++++++++++++++++++++++++++++++-- net/openvswitch/conntrack.h | 1 + net/openvswitch/flow.h | 1 + net/openvswitch/flow_netlink.c | 12 ++++++- 6 files changed, 83 insertions(+), 4 deletions(-) commit 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536 Author: Joe Stringer Date: Wed Aug 26 11:31:48 2015 -0700 openvswitch: Add conntrack action Expose the kernel connection tracker via OVS. Userspace components can make use of the CT action to populate the connection state (ct_state) field for a flow. This state can be subsequently matched. Exposed connection states are OVS_CS_F_*: - NEW (0x01) - Beginning of a new connection. - ESTABLISHED (0x02) - Part of an existing connection. - RELATED (0x04) - Related to an established connection. - INVALID (0x20) - Could not track the connection for this packet. - REPLY_DIR (0x40) - This packet is in the reply direction for the flow. - TRACKED (0x80) - This packet has been sent through conntrack. When the CT action is executed by itself, it will send the packet through the connection tracker and populate the ct_state field with one or more of the connection state flags above. The CT action will always set the TRACKED bit. When the COMMIT flag is passed to the conntrack action, this specifies that information about the connection should be stored. This allows subsequent packets for the same (or related) connections to be correlated with this connection. Sending subsequent packets for the connection through conntrack allows the connection tracker to consider the packets as ESTABLISHED, RELATED, and/or REPLY_DIR. The CT action may optionally take a zone to track the flow within. This allows connections with the same 5-tuple to be kept logically separate from connections in other zones. If the zone is specified, then the "ct_zone" match field will be subsequently populated with the zone id. IP fragments are handled by transparently assembling them as part of the CT action. The maximum received unit (MRU) size is tracked so that refragmentation can occur during output. IP frag handling contributed by Andy Zhou. Based on original design by Justin Pettit. Signed-off-by: Joe Stringer Signed-off-by: Justin Pettit Signed-off-by: Andy Zhou Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller include/uapi/linux/openvswitch.h | 40 ++++ net/openvswitch/Kconfig | 11 + net/openvswitch/Makefile | 2 + net/openvswitch/actions.c | 175 ++++++++++++++- net/openvswitch/conntrack.c | 454 +++++++++++++++++++++++++++++++++++++++ net/openvswitch/conntrack.h | 78 +++++++ net/openvswitch/datapath.c | 66 ++++-- net/openvswitch/datapath.h | 6 + net/openvswitch/flow.c | 2 + net/openvswitch/flow.h | 6 + net/openvswitch/flow_netlink.c | 69 ++++-- net/openvswitch/flow_netlink.h | 4 +- net/openvswitch/vport.c | 1 + 13 files changed, 877 insertions(+), 37 deletions(-) commit e79e259588a414589a016edc428ee8dd308f81ad Author: Joe Stringer Date: Wed Aug 26 11:31:47 2015 -0700 dst: Add __skb_dst_copy() variation This variation on skb_dst_copy() doesn't require two skbs. Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/dst.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 5b490047240f7b986228de968334ddd7a341e1fe Author: Joe Stringer Date: Wed Aug 26 11:31:46 2015 -0700 ipv6: Export nf_ct_frag6_gather() Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/ipv6/netfilter/nf_conntrack_reasm.c | 1 + 1 file changed, 1 insertion(+) commit be26b9a88fcee570796c67701f50800039e25aec Author: Joe Stringer Date: Wed Aug 26 11:31:45 2015 -0700 openvswitch: Move MASKED* macros to datapath.h This will allow the ovs-conntrack code to reuse these macros. Signed-off-by: Joe Stringer Acked-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 52 ++++++++++++++++++++++------------------------ net/openvswitch/datapath.h | 4 ++++ 2 files changed, 29 insertions(+), 27 deletions(-) commit 8e2fed1c0cfbb29995a4301060acc0ef4ee84420 Author: Joe Stringer Date: Wed Aug 26 11:31:44 2015 -0700 openvswitch: Serialize acts with original netlink len Previously, we used the kernel-internal netlink actions length to calculate the size of messages to serialize back to userspace. However,the sw_flow_actions may not be formatted exactly the same as the actions on the wire, so store the original actions length when de-serializing and re-use the original length when serializing. Signed-off-by: Joe Stringer Acked-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/datapath.c | 2 +- net/openvswitch/flow.h | 1 + net/openvswitch/flow_netlink.c | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) commit 538e4563198cd3d1a8e74c47fee3e49dc93e4a95 Author: Rafał Miłecki Date: Wed Aug 26 17:53:45 2015 +0200 bgmac: support up to 3 cores (devices) on a bus Broadcom buses may have more than 1 Ethernet device. This is used e.g. to have few interfaces connected to different switch ports. So far we saw chipsets with only 2 devices (e.g. BCM4706) but recent ones have up to 3 (e.g. Netgear R8000 uses 3rd interface for most of switch traffic, lower interfaces are for some kind of offloading). Signed-off-by: Rafał Miłecki Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bgmac.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) commit 395250e483d492e9ec5e36a6b78fb142affddee2 Merge: 1dd34b5 0ba3ac0 Author: David S. Miller Date: Thu Aug 27 11:25:56 2015 -0700 Merge tag 'wireless-drivers-next-for-davem-2015-08-26' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== Major changes: iwlwifi: * new Tx power firmware API * bump max firmware API to 17 * fix bug in debug prints * static checker fix * fix unused defines * fix command list on newest firmware brcmfmac: * support NVRAM loading for bcm47xx platform * new debugfs entry for msgbuf protocol layer used with PCIe devices ath10k: * add spectral scan support for qca99x0 * add qca6164 support ==================== Signed-off-by: David S. Miller commit ed29266347025a19ee689807b07d121f0a7441f1 Author: Marek Lindner Date: Tue Aug 4 23:31:44 2015 +0800 batman-adv: turn batadv_neigh_node_get() into local function commit c214ebe1eb29 ("batman-adv: move neigh_node list add into batadv_neigh_node_new()") removed external calls to batadv_neigh_node_get(). Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 72 ++++++++++++++++++++++----------------------- net/batman-adv/originator.h | 4 --- 2 files changed, 36 insertions(+), 40 deletions(-) commit 7bca68c7844b1642868809a5ef4387c1f099ab1d Author: Sven Eckelmann Date: Fri Aug 7 19:28:42 2015 +0200 batman-adv: Add lower layer needed_(head|tail)room to own ones The maximum of hard_header_len and maximum of all needed_(head|tail)room of all slave interfaces of a batman-adv device must be used to define the batman-adv device needed_(head|tail)room. This is required to avoid too small buffer problems when these slave devices try to send the encapsulated packet in a tx path without the possibility to resize the skbuff. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/hard-interface.c | 41 +++++++++++++++++++++++++++++++++++++++++ net/batman-adv/soft-interface.c | 2 -- 2 files changed, 41 insertions(+), 2 deletions(-) commit a5256f7e74d85d7ae60ac3bd557d5fe3444be810 Author: Antonio Quartulli Date: Tue Aug 4 22:26:19 2015 +0200 batman-adv: don't access unregistered net_device object In batadv_hardif_disable_interface() there is a call to batadv_softif_destroy_sysfs() which in turns invokes unregister_netdevice() on the soft_iface. After this point we cannot rely on the soft_iface object anymore because it might get free'd by the netdev periodic routine at any time. For this reason the netdev_upper_dev_unlink(.., soft_iface) call is moved before the invocation of batadv_softif_destroy_sysfs() so that we can be sure that the soft_iface object is still valid. Signed-off-by: Antonio Quartulli Signed-off-by: Marek Lindner net/batman-adv/hard-interface.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 07c48eca1661decbd52393ef535f0c97e5313c4e Author: Simon Wunderlich Date: Tue Aug 4 14:43:16 2015 +0200 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 1e3b4669e79253748073b0ee95270f92f0372b20 Author: Simon Wunderlich Date: Tue Aug 4 15:44:06 2015 +0200 batman-adv: fix gateway client style issues commit 0511575c4d03 ("batman-adv: remove obsolete deleted attribute for gateway node") incorrectly added an empy line and forgot to remove an include. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_client.c | 2 -- 1 file changed, 2 deletions(-) commit 3f32f8a6874ae2515c8894588a5c60dd65ecc7e5 Author: Marek Lindner Date: Sun Jul 26 04:59:15 2015 +0800 batman-adv: rearrange batadv_neigh_node_new() arguments to follow convention Signed-off-by: Marek Lindner Acked-by: Simon Wunderlich Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 2 +- net/batman-adv/originator.c | 7 ++++--- net/batman-adv/originator.h | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) commit bd3524c14bd02f94a4fa33e700883e01182f5ed5 Author: Simon Wunderlich Date: Mon Aug 3 19:13:58 2015 +0200 batman-adv: remove obsolete deleted attribute for gateway node With rcu, the gateway node deleted attribute is not needed anymore. In fact, it may delay the free of the gateway node and its referenced structures. Therefore remove it altogether and simplify purging as well. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_client.c | 48 +++++++++++------------------------------ net/batman-adv/gateway_client.h | 2 +- net/batman-adv/main.c | 2 +- net/batman-adv/originator.c | 1 - net/batman-adv/types.h | 2 -- 5 files changed, 14 insertions(+), 41 deletions(-) commit 741aa06bfb0ab731086d258a1838152fe2502b5f Author: Marek Lindner Date: Sun Jul 26 04:57:43 2015 +0800 batman-adv: move neigh_node list add into batadv_neigh_node_new() All batadv_neigh_node_* functions expect the neigh_node list item to be part of the orig_node->neigh_list, therefore the constructor of said list item should be adding the newly created neigh_node to the respective list. Signed-off-by: Marek Lindner Acked-by: Simon Wunderlich Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 21 +-------------------- net/batman-adv/originator.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 20 deletions(-) commit 39bf7618f038474a0ccbeb0be173f11e147bd083 Author: Marek Lindner Date: Sun Jul 26 04:37:47 2015 +0800 batman-adv: remove redundant hard_iface assignment The batadv_neigh_node_new() function already sets the hard_iface pointer. Signed-off-by: Marek Lindner Acked-by: Simon Wunderlich Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 1 - 1 file changed, 1 deletion(-) commit f729dc70dafec281e524f51ae496a72ea4f8e319 Author: Marek Lindner Date: Sun Jul 26 04:37:15 2015 +0800 batman-adv: move hardif refcount inc to batadv_neigh_node_new() The batadv_neigh_node cleanup function 'batadv_neigh_node_free_rcu()' takes care of reducing the hardif refcounter, hence it's only logical to assume the creating function of that same object 'batadv_neigh_node_new()' takes care of increasing the same refcounter. Signed-off-by: Marek Lindner Acked-by: Simon Wunderlich Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 6 ------ net/batman-adv/originator.c | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) commit c75683ca13d12a700531864bcd3118e94bc9eaa0 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:06 2015 +0530 mpt3sas : Bump mpt3sas driver version to 9.100.00.00 Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit df838f92f3f5240dca54e1629e8547818e8ea646 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:05 2015 +0530 mpt3sas: When device is blocked followed by unblock fails, unfreeze the I/Os Issue: When the disks are getting discovered and assigned device handles by the kernel, a device block followed by an unblock (due to broadcast primitives) issued by the driver is interspersed by the kernel changing the state of the device. Therefore the unblock by the driver results in a no operation within the kernel API. To fix this one, the below patch checks the return of the unblock API and performs a block followed by an unblock to unfreeze the block layer's I/O queue. Sufficient checks and prints are also added in the driver to identify this condition caused by the kernel. Signed-off-by: Sreekanth Reddy Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_scsih.c | 89 ++++++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 14 deletions(-) commit 36814028ad720165a6febcf9ddd7de20833fd240 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:04 2015 +0530 mpt3sas: Call dma_mapping_error() API after mapping an address with dma_map_single() API Added dma_mapping_error() API after mapping an address with dma_map_single() API. Otherwise when CONFIG_DMA_API_DEBUG is enabled in the kernel, then it complains about mpt3sas driver not calling dma_mapping_error after mapping an address with dma_map_single Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_transport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bdff785e4f593218816fa3677e043aae1481aa98 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:03 2015 +0530 mpt3sas: Use alloc_ordered_workqueue() API instead of create_singlethread_workqueue() API Created a thread using alloc_ordered_workqueue() API in order to process the works from firmware Work-queue sequentially instead of create_singlethread_workqueue() API. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Joe Lawrence Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d8eb4a47c70b4bab34b938d2f682044687f53c64 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:02 2015 +0530 mpt3sas: Added support for customer specific branding "VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID" Cisco Branding String 0x1000 0x97 0x1137 0x154 Cisco 9300-8i 12Gbps SAS HBA 0x1000 0x97 0x1137 0x155 Cisco 12G Modular SAS Pass through Controller 0x1000 0x97 0x1137 0x156 UCS C3X60 12G SAS Pass through Controller Signed-off-by: Sreekanth Reddy Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 29 +++++++++++++++++++++++++++-- drivers/scsi/mpt3sas/mpt3sas_base.h | 16 ++++++++++++---- 2 files changed, 39 insertions(+), 6 deletions(-) commit 62f5c74c97037c7c00fdefb69dcfe39810c34a05 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:01 2015 +0530 mpt3sas: Return host busy error status to SML when DMA mapping of scatter gather list fails for a SCSI command scsi_dma_map API will return a negative value (i.e. -ENOMEM) if DMA mapping of sg lists fails and zero if the sg list in the SCSI cmd is NULL. But drivers doesn't handled sg list DMA mapping failure case properly. So, Updated the code to return host busy error status to SCSI MID Layer(SML), when DMA mapping of scatter gather list fails for a SCSI command. So that SML will retry this SCSI cmd after some time. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3898f08e8ccfc8b7b4c297960ecdde970869e950 Author: Sreekanth Reddy Date: Tue Jun 30 12:25:00 2015 +0530 mpt3sas: Complete the SCSI command with DID_RESET status for log_info value 0x0x32010081 For any SCSI command, if the driver receives IOC status = SCSI_IOC_TERMINATED and log info = 0x32010081 then that command will be completed with DID_RESET host status. The definition of this log info value is "Virtual IO has failed and has to be retried". Firmware will provide this log info value with IOC Status "SCSI_IOC_TERMINATED", whenever a drive (with is a part of a volume) is pulled and pushed back within some minimal delay. With this log info value, firmware informs the driver to retry the failed IO command infinite times, so to provide some time for the firmware to discover the reinserted drive successfully instated of just retrying failed command for five times(doesn't giving enough time for firmware to complete the drive discovery) and failing the IO permanently even though drive came back successfully. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.h | 2 ++ drivers/scsi/mpt3sas/mpt3sas_scsih.c | 3 +++ 2 files changed, 5 insertions(+) commit a6f84009b9d7ca97c400ca929f9d58f43b0ece9d Author: Sreekanth Reddy Date: Tue Jun 30 12:24:59 2015 +0530 mpt3sas: MPI 2.5 Rev K (2.5.6) specifications Below are the new changes to MPI 2.5 Rev K(2.5.6) specification and 2.00.35 header files 1) Added a minimum size requirement for target mode command buffers. 2) Added MinMSIxIndex and MaxMSIxIndex fields to CommandBufferPostBase Request. 3) For BIOS Page 1, added SSUTimeout field, and added Product Name String Format bits to the BiosOptions field Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpi/mpi2.h | 5 +++-- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) commit 2b89669ae4addfa68a58e0fc16afdd24739720d8 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:58 2015 +0530 mpt3sas: Bump mpt3sas driver version to v6.100.00.00 Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 38e4141ecb0e59c93d85ec5948f98d1f1e331a88 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:57 2015 +0530 mpt3sas: Add branding string support for OEM custom HBA Add the following OEM's branding to the mpt3sas driver. "VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID" Cisco Branding String 0x1000 0x97 SVID = 0x1137 0x014C Cisco 9300-8E 12G SAS HBA Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 34 ++++++++++++++++++++++++++++++++++ drivers/scsi/mpt3sas/mpt3sas_base.h | 11 +++++++++++ 2 files changed, 45 insertions(+) commit fb84dfc44718ef4099a827d147f738e428828d02 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:56 2015 +0530 mpt3sas: Add branding string support for OEM's HBA Added the following Dell branding to the mpt3sas driver. "VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID" Dell Branding String 0x1000 0x0097 0x1028 0x1F46 DELL 12Gbps HBA Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 36 ++++++++++++++++++++++++++++++++++++ drivers/scsi/mpt3sas/mpt3sas_base.h | 11 +++++++++++ 2 files changed, 47 insertions(+) commit 35c319b47884e49d9d0a84779097916ccb173947 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:55 2015 +0530 mpt3sas: MPI 2.5 Rev J (2.5.5) specification and 2.00.34 header files Following is the change set, 1. Added more defines for the BiosOptions field of MPI2_CONFIG_PAGE_BIOS_1. 2. Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC definition. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpi/mpi2.h | 5 +++-- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 14 ++++++++++++-- drivers/scsi/mpt3sas/mpi/mpi2_tool.h | 4 +++- 3 files changed, 18 insertions(+), 5 deletions(-) commit 2e26c3853206ba166c3434e5f2ca4c82078ad84e Author: Sreekanth Reddy Date: Tue Jun 30 12:24:54 2015 +0530 mpt3sas: Update MPI2 strings to MPI2.5 Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 3 +-- drivers/scsi/mpt3sas/mpt3sas_base.h | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) commit f9d81cfc23151eb6e9e498663c9784c351646d0e Author: Sreekanth Reddy Date: Tue Jun 30 12:24:53 2015 +0530 mpt3sas: Bump mpt3sas Driver version to v5.100.00.00 Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e6d45e3e7e6582fa206ef84631639ce70d50e5c5 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:52 2015 +0530 mpt3sas: Provides the physical location of sas drives This Patch will provide more details of the devices such as slot number, enclosure logical id, enclosure level & connector name in the following scenarios, - When end device is added in the topology, - When the end device is removed from the setup, - When the SCSI mid layer issues TASK ABORT/ DEVICE RESET/ TARGET RESET during error handling, - When any command to the device fails with Sense key Hardware error or Medium error or Unit Attention, - When firmware returns device error or device not ready status for the end device, - When a Predicted fault is detected on an end device. This information can be used by the user to identify the location of the desired drive in the topology. Driver will get these information by reading the sas device page0. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.h | 2 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 240 +++++++++++++++++++++++++++++------ 2 files changed, 203 insertions(+), 39 deletions(-) commit a94bea343c2f747c62ef66b52d2430e6aeb75434 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:51 2015 +0530 mpt3sas: MPI 2.5 Rev I (2.5.4) specifications. Update MPI 2.5 Release: MPI 2.5 Rev I (2.5.4) specification and 2.00.33 header files Below is the change set from the MPI specification for I Rev 1) Added Base Enclosure Level bit to the Flags field of Manufacturing Page 7. 2) Updated description of the MaxTargetPortConnectTime field of SAS IO Unit Page 1. 3) Added EnclosureLevel and ConnectorName fields to SAS Device Page 0. Also, added EnclosureLevel and ConnectorName Valid bit to the Flags field. 4) Added EnclosureLevel field to SAS Enclosure Page 0. Also, added EnclosureLevel Valid bit to the Flags field. 5) Added value for BIOS image to HashImageType. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpi/mpi2.h | 6 ++++-- drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 27 +++++++++++++++++++++------ drivers/scsi/mpt3sas/mpi/mpi2_ioc.h | 4 +++- 3 files changed, 28 insertions(+), 9 deletions(-) commit 580d4e3153f0d7a9a9235b675b0b7b13e2185a8b Author: Sreekanth Reddy Date: Tue Jun 30 12:24:50 2015 +0530 mpt3sas: Remove redundancy code while freeing the controller resources. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 57 +++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 25 deletions(-) commit e4bc7f5c21a18cab9acd30940df0ee791fcd7b9e Author: Sreekanth Reddy Date: Tue Jun 30 12:24:49 2015 +0530 mpt3sas: Don't block the drive when drive addition under the control of SML During hot-plugging of a disk(having a flaky link), the disk addition stops and any further disk addition or removal doesn't happen on that controller. This is because, when driver receives DELAY_NOT_RESPONDING event for a disk while it is undergoing addition at the SCSI Transport layer, the driver would block the I/O to that disk resulting in a deadlock. i.e the disk addition work couldn't be completed at the SCSI Transport Layer as it can't send any I/Os (such as Inquiry, Report LUNs etc) to the disk as I/Os are blocked to this drive. Also any subsequent device removal (TARGET_NOT_RESPONDING) or link update(RC_PHY_CHANGED) event couldn't be processed as they are in the queue to get processed after disk addition event. Description of Change: Don't block the drive when drive addition is under the control of SML. So that SML won't be blocked of issuing the device dicovery commands (such as Inquiry, Report LUNs etc). Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.h | 4 +++- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 7 +++++++ drivers/scsi/mpt3sas/mpt3sas_transport.c | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) commit 4dc8c8087f0304ff8d06f862520406b11aac4a66 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:48 2015 +0530 mpt3sas: Get IOC_FACTS information using handshake protocol only after HBA card gets into READY or Operational state. Driver initialization fails if driver tries to send IOC facts request message when the IOC is in reset or in a fault state. This patch will make sure that 1.Driver to send IOC facts request message only if HBA is in operational or ready state. 2.If IOC is in fault state, a diagnostic reset would be issued. 3.If IOC is in reset state then driver will wait for 10 seconds to exit out of reset state. If the HBA continues to be in reset state, then the HBA wouldn't be claimed by the driver. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 68 +++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit fb77bb5376a55f4e6c8d9243249e82831a276ee5 Author: Sreekanth Reddy Date: Tue Jun 30 12:24:47 2015 +0530 mpt3sas: Added Combined Reply Queue feature to extend up-to 96 MSIX vector support In this patch, increased the number of MSIX vector support for SAS3 C0 HBAs to up-to 96. Following are changes that are done in this patch 1. This feature is enabled only for SAS3 C0 and higher revision cards and also only when reply post free queue count is greater than 8. 2. To support this feature 12 SupplementalReplyPostHostIndex system interfaces are used. MSI-X index numbered from 0 to 7 use the first SupplementalReplyPostHostIndex system interface to update its corresponding ReplyPostHostIndex values, MSI-X index numbered from 8 to 15 will use the second SupplementalReplyPostHostIndex system interface and so on. These 12 SuppementalReplyPostHostIndex system interfaces address are saved in the array replyPostRegisterIndex[]. 3. As each SupplementalReplyPostHostIndex register supports 8 MSI-X vectors. So MSIxIndex field in these register must contain a value between 0 and 7. 4. After processing the reply descriptors from a reply post free queues then update the new reply post host index value in ReplyPostHostIndex field and (msix_index mod 8) value in MSIxIndex field of SupplementalReplyPostHostIndex register. The Address of this SupplementalReplyPostHostIndex register is retrived from (msix_index/8)th entry of replyPostRegisterIndex[] array. Signed-off-by: Sreekanth Reddy Reviewed-by: Martin K. Petersen Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/mpt3sas/mpt3sas_base.c | 93 +++++++++++++++++++++++++++++++++---- drivers/scsi/mpt3sas/mpt3sas_base.h | 14 +++++- 2 files changed, 98 insertions(+), 9 deletions(-) commit b00855aecbb166428c67b26e1bfeb675463a0212 Author: Srinidhi Kasagar Date: Thu Aug 27 21:30:55 2015 +0530 ACPI / LPSS: Ignore 10ms delay for Braswell LPSS devices in Braswell does not need the default 10ms d3_delay imposed by PCI specification. Removing this unnecessary delay significantly reduces the resume time approximately upto 200ms on this platform. Signed-off-by: Srinidhi Kasagar Acked-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_lpss.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) commit 3b7ce99748f0d006f9d1aa85709872e7b46787f7 Author: Ricard Wanderlof Date: Thu Aug 27 11:35:20 2015 +0200 ASoC: ics43432: Add codec driver for InvenSense ICS-43432 Add support for the InvenSense ICS-43432 I2S MEMS microphone. This is a non-software-configurable MEMS microphone with I2S output. Tested on a setup with a single ICS-43432 (the device itself supports stereo operation using a hardware pin controlling left vs. right channel output). Signed-off-by: Ricard Wanderlof Signed-off-by: Mark Brown .../devicetree/bindings/sound/ics43432.txt | 17 +++++ .../devicetree/bindings/vendor-prefixes.txt | 1 + sound/soc/codecs/Kconfig | 4 ++ sound/soc/codecs/Makefile | 2 + sound/soc/codecs/ics43432.c | 77 ++++++++++++++++++++++ 5 files changed, 101 insertions(+) commit 8d03bc56cc27ddd93f70a630686ef06289787c78 Author: Chris Metcalf Date: Wed Aug 26 13:09:28 2015 -0400 tile: correct some typos in opcode type names These particular opcode names are not used in the kernel directly, so updating them just has the effect of making downstream consumers more likely to end up using better names; this was reported from the qemu community. Reported-by: Richard Henderson Signed-off-by: Chris Metcalf arch/tile/include/uapi/arch/opcode_tilegx.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 01f779f4862b53810ba4eb247f57bd1ad31d1c18 Author: Marc Zyngier Date: Wed Aug 26 17:00:45 2015 +0100 irqchip/GIC: Don't deactivate interrupts forwarded to a guest Commit 0a4377de3056 ("genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU") added just what we needed at the lowest level to allow an interrupt to be deactivated by a guest. When such a request reaches the GIC, it knows it doesn't need to perform the deactivation anymore, and can safely leave the guest do its magic. This of course requires additional support in both VFIO and KVM. Signed-off-by: Marc Zyngier Reviewed-and-tested-by: Eric Auger Cc: Christoffer Dall Cc: Jiang Liu Cc: Cc: kvmarm@lists.cs.columbia.edu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1440604845-28229-5-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) commit 0b996fd35957a30568cddbce05b917c1897966e0 Author: Marc Zyngier Date: Wed Aug 26 17:00:44 2015 +0100 irqchip/GIC: Convert to EOImode == 1 So far, GICv2 has been used with EOImode == 0. The effect of this mode is to perform the priority drop and the deactivation of the interrupt at the same time. While this works perfectly for Linux (we only have a single priority), it causes issues when an interrupt is forwarded to a guest, and when we want the guest to perform the EOI itself. For this case, the GIC architecture provides EOImode == 1, where: - A write to the EOI register drops the priority of the interrupt and leaves it active. Other interrupts at the same priority level can now be taken, but the active interrupt cannot be taken again - A write to the DIR marks the interrupt as inactive, meaning it can now be taken again. We only enable this feature when booted in HYP mode and that the device-tree reported a suitable CPU interface. Observable behaviour should remain unchanged. Signed-off-by: Marc Zyngier Reviewed-and-tested-by: Eric Auger Cc: Christoffer Dall Cc: Jiang Liu Cc: Cc: kvmarm@lists.cs.columbia.edu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1440604845-28229-4-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic.c | 71 +++++++++++++++++++++++++++++++++++++++-- include/linux/irqchip/arm-gic.h | 4 +++ 2 files changed, 72 insertions(+), 3 deletions(-) commit 530bf353e4eb06bcba5078390c949650cd26a7c7 Author: Marc Zyngier Date: Wed Aug 26 17:00:43 2015 +0100 irqchip/GICv3: Don't deactivate interrupts forwarded to a guest Commit 0a4377de3056 ("genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU") added just what we needed at the lowest level to allow an interrupt to be deactivated by a guest. When such a request reaches the GIC, it knows it doesn't need to perform the deactivation anymore, and can safely leave the guest do its magic. This of course requires additional support in both VFIO and KVM. Signed-off-by: Marc Zyngier Reviewed-and-tested-by: Eric Auger Cc: Christoffer Dall Cc: Jiang Liu Cc: Cc: kvmarm@lists.cs.columbia.edu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1440604845-28229-3-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit 0b6a3da9617a08e13afc09cb7e148470ed0eb280 Author: Marc Zyngier Date: Wed Aug 26 17:00:42 2015 +0100 irqchip/GICv3: Convert to EOImode == 1 So far, GICv3 has been used in with EOImode == 0. The effect of this mode is to perform the priority drop and the deactivation of the interrupt at the same time. While this works perfectly for Linux (we only have a single priority), it causes issues when an interrupt is forwarded to a guest, and when we want the guest to perform the EOI itself. For this case, the GIC architecture provides EOImode == 1, where: - A write to ICC_EOIR1_EL1 drops the priority of the interrupt and leaves it active. Other interrupts at the same priority level can now be taken, but the active interrupt cannot be taken again - A write to ICC_DIR_EL1 marks the interrupt as inactive, meaning it can now be taken again. This patch converts the driver to be able to use this new mode, depending on whether or not the kernel can behave as a hypervisor. No feature change. Signed-off-by: Marc Zyngier Reviewed-and-tested-by: Eric Auger Cc: Christoffer Dall Cc: Jiang Liu Cc: Cc: kvmarm@lists.cs.columbia.edu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1440604845-28229-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3.c | 68 ++++++++++++++++++++++++++++++++++---- include/linux/irqchip/arm-gic-v3.h | 9 +++++ 2 files changed, 71 insertions(+), 6 deletions(-) commit 1ed32160dba643e61504b334f45b002198c88254 Author: Huang Rui Date: Thu Aug 27 16:07:38 2015 +0800 hwmon: (fam15h_power) Add ratio of Tsample to the PTSC period This patch adds a member (cpu_pwr_sample_ratio) of fam15h_power_data, that represents the ratio of compute unit power accumulator sample period to the PTSC counter period. Tsample: compute unit power accumulator sample period Tref: the performance timestamp counter period PTSC: performance timestamp counter Signed-off-by: Huang Rui Signed-off-by: Guenter Roeck drivers/hwmon/fam15h_power.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 5aeb5d205e122b70742df94a7d51a3502f1a8277 Author: Huang Rui Date: Thu Aug 27 16:07:37 2015 +0800 hwmon: (fam15h_power) Add documentation for new processors support This patch updates description of fam15h_power driver, its scope is extended to family 16h processsors. Signed-off-by: Huang Rui Signed-off-by: Guenter Roeck Documentation/hwmon/fam15h_power | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit e9cd4d55d16f880ddf436fbae8c0c82ce0a928d5 Author: Huang Rui Date: Thu Aug 27 16:07:35 2015 +0800 hwmon: (fam15h_power) Update running_avg_capture bit field to 28 On Carrizo and later platforms, running_avg_capture bit field is extended to 4:31 (28 bits) from 4:25. Signed-off-by: Huang Rui Signed-off-by: Guenter Roeck drivers/hwmon/fam15h_power.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit b3a5bbfd780d9e9291f5f257be06e9ad6db11657 Author: Bob Peterson Date: Thu Aug 27 09:34:47 2015 -0500 dlm: print error from kernel_sendpage Print a dlm-specific error when a socket error occurs when sending a dlm message. Signed-off-by: Bob Peterson Signed-off-by: David Teigland fs/dlm/lowcomms.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit d83e92b3af602c6ebb6d25d5232ecba73201a0e5 Author: Huang Rui Date: Thu Aug 27 16:07:33 2015 +0800 hwmon: (fam15h_power) Rename fam15h_power_is_internal_node0 function We rename fam15h_power_is_internal_node0() function to should_load_on_this_node(), because it may not be node0 from KV and on, and they are single-node processors. Signed-off-by: Huang Rui Signed-off-by: Guenter Roeck drivers/hwmon/fam15h_power.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5dc087254acf12bf6908a924539fb624891e8b24 Author: Huang Rui Date: Thu Aug 27 16:07:32 2015 +0800 hwmon: (fam15h_power) Add support for AMD Carrizo AMD Carrizo(Fam15h, M60h) processors can report power1_crit (ProcessorPwrWatts) and power1_input (CurrPwrWatts) values. And this patch adds support for CZ. Signed-off-by: Huang Rui Signed-off-by: Guenter Roeck drivers/hwmon/fam15h_power.c | 1 + 1 file changed, 1 insertion(+) commit 987e05c9c3fbffba81104b8ae9a0dde9c73758e9 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:07 2015 +0530 mmc: host: omap_hsmmc: remove CONFIG_REGULATOR check Now that support for platforms which have optional regulator is added, remove CONFIG_REGULATOR check in omap_hsmmc. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) commit 1d17f30bd87bf4857478b2a68dadf0096ca1cb40 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:06 2015 +0530 mmc: host: omap_hsmmc: use ios->vdd for setting vmmc voltage vdd voltage is set in mmc core to ios->vdd and vmmc should actually be set to this voltage. Modify omap_hsmmc_enable_supply to not take vdd as argument since now it's directly set to the voltage in ios->vdd. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit c55d7a0553643a7e8f120688b82b594471084d3c Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:05 2015 +0530 mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status Use regulator_is_enabled of pbias regulator to find pbias regulator status instead of maintaining a custom bookkeeping pbias_enabled variable. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 3f77f702389b7fbc955ec95721ce3861e40697fc Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:04 2015 +0530 mmc: host: omap_hsmmc: enable/disable vmmc_aux regulator based on previous state enable vmmc_aux regulator only if it is in disabled state and disable vmmc_aux regulator only if it is in enabled state. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit c8518efa6de999bcbd638702c2a2d72fe83431e4 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:03 2015 +0530 mmc: host: omap_hsmmc: don't use ->set_power to set initial regulator state If the regulator is enabled on boot (checked using regulator_is_enabled), invoke regulator_enable() so that the usecount reflects the correct state of the regulator and then disable the regulator so that the initial state of the regulator is disabled. Avoid using ->set_power, since set_power also takes care of setting the voltages which is not needed at this point. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 66 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 10 deletions(-) commit 97fe7e5ab6318ea5716f86be3b4ca8776a9e609c Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:02 2015 +0530 mmc: host: omap_hsmmc: avoid pbias regulator enable on power off Fix omap_hsmmc_set_power so that pbias regulator is not enabled during power off. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ec85c95e8ce5df18608ee9aa6a2626d903f548af Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:01 2015 +0530 mmc: host: omap_hsmmc: add separate function to set pbias No functional change. Cleanup omap_hsmmc_set_power by adding separate functions to set pbias and invoke it from omap_hsmmc_set_power. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 78 ++++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 30 deletions(-) commit 2a17f84442e22cd1522400fcc0356c4a36b38361 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:44:00 2015 +0530 mmc: host: omap_hsmmc: add separate functions for enable/disable supply No functional change. Cleanup omap_hsmmc_set_power by adding separate functions for enable/disable supply and invoke it from omap_hsmmc_set_power. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 101 +++++++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 35 deletions(-) commit 229f329265d6d2a738fc861b7b9b6144980580f6 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:59 2015 +0530 mmc: host: omap_hsmmc: return error if any of the regulator APIs fail Return error if any of the regulator APIs (regulator_enable, regulator_disable, regulator_set_voltage) fails in omap_hsmmc_set_power to avoid undefined behavior. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 52 +++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 12 deletions(-) commit ef62b8bc2c740a7f72525a4797aa45056c833e3d Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:58 2015 +0530 mmc: host: omap_hsmmc: remove unnecessary pbias set_voltage Remove the unnecessary pbias regulator_set_voltage done after pbias regulator_disable in omap_hsmmc_set_power. Signed-off-by: Kishon Vijay Abraham I Reviewed-by: Roger Quadros Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 1 - 1 file changed, 1 deletion(-) commit aa9a68014bb6c6e1052d79561815885b797d15ea Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:57 2015 +0530 mmc: host: omap_hsmmc: use mmc_host's vmmc and vqmmc No functional change. Instead of using omap_hsmmc_host's vcc and vcc_aux members, use vmmc and vqmmc present in mmc_host which is present for the same purpose. Signed-off-by: Kishon Vijay Abraham I Reviewed-by: Roger Quadros Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 63 +++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 35 deletions(-) commit b49069fc0b96de5dd508ccba0a1417e524734712 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:56 2015 +0530 mmc: host: omap_hsmmc: use the ocrmask provided by the vmmc regulator If the vmmc regulator provides a valid ocrmask, use it. By this even if the pdata has a valid ocrmask, it will be overwritten with the ocrmask of the vmmc regulator. Also remove the unnecessary compatibility check between the ocrmask in the pdata and the ocrmask from the vmmc regulator. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit c299dc39883ca5596905507cc945332fa4bae8bd Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:55 2015 +0530 mmc: host: omap_hsmmc: cleanup omap_hsmmc_reg_get() No functional change. Instead of using a local regulator variable in omap_hsmmc_reg_get() for holding the return value of devm_regulator_get_optional() and then assigning to omap_hsmmc_host regulator members: vcc, vcc_aux and pbias, directly use the omap_hsmmc_host regulator members. Signed-off-by: Kishon Vijay Abraham I Reviewed-by: Roger Quadros Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) commit 6a9b2ff07d0415ad19fb07b9a141863fb86c3497 Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:54 2015 +0530 mmc: host: omap_hsmmc: return on fatal errors from omap_hsmmc_reg_get Now return error only if the return value of devm_regulator_get_optional() is not the same as -ENODEV, since with -EPROBE_DEFER, the regulator can be obtained later and all other errors are fatal. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) commit 7d607f917008218564ae44ca3ef47076a9b36e8f Author: Kishon Vijay Abraham I Date: Thu Aug 27 14:43:53 2015 +0530 mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc Since vmmc can be optional for some platforms, use devm_regulator_get_optional() for vmmc. Now return error only if the return value of devm_regulator_get_optional() is not the same as -ENODEV, since with -EPROBE_DEFER, the regulator can be obtained later and all other errors are fatal. Signed-off-by: Kishon Vijay Abraham I Tested-by: Tony Lindgren Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 5f2b3eab3fade514f9647e88356d29c7795ed7ef Author: kbuild test robot Date: Tue Aug 25 16:13:29 2015 +0200 mmc: sdhci-of-at91: fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: ludovic.desroches@atmel.com Signed-off-by: Fengguang Wu Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-at91.c | 1 - 1 file changed, 1 deletion(-) commit 5afc30fc666165c1c37c246e08b4282bc8c31d98 Author: Koji Matsuoka Date: Sun Aug 23 21:58:08 2015 +0900 mmc: sh_mmcif: Fix suspend process The clock should be enable when SDHI registers are accessed. Signed-off-by: Koji Matsuoka Signed-off-by: Yoshihiro Kaneko Signed-off-by: Ulf Hansson drivers/mmc/host/sh_mmcif.c | 2 ++ 1 file changed, 2 insertions(+) commit 3b1cac4d9f915758d0d755f11bb8fd4373cf653b Author: Julia Lawall Date: Sun Aug 23 02:11:17 2015 +0200 mmc: usdhi6rol0: fix error return code Propagate error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Signed-off-by: Ulf Hansson drivers/mmc/host/usdhi6rol0.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 38276a912c9bb6dc48e21dc23a92b6286ca00962 Author: Julia Lawall Date: Sun Aug 23 02:11:12 2015 +0200 mmc: omap: fix error return code Return a negative error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Signed-off-by: Ulf Hansson drivers/mmc/host/omap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3fe95db19be6a98bcb45d2780c6a90d1e96bfcc9 Author: Rabin Vincent Date: Wed Aug 19 15:41:36 2015 +0200 mmc: usdhi6rol0: fix ack register write The intent appears to be to clear only the bits which are set in status (by setting them to zero in the ack write), like in the other interrupt handlers, and not to always clear everything (by always writing zero). Use the correct not operator. Signed-off-by: Rabin Vincent Signed-off-by: Ulf Hansson drivers/mmc/host/usdhi6rol0.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bb08a7d489bd22a9b6e489f8c8449b0bc92594d0 Author: Rabin Vincent Date: Wed Aug 19 15:41:35 2015 +0200 mmc: usdhi6rol0: fix NULL pointer deref in debug print host->sg is only set when we're transferring multiple blocks. Check for its availibility before dereferencing it in the timeout work debug print. Signed-off-by: Rabin Vincent Signed-off-by: Ulf Hansson drivers/mmc/host/usdhi6rol0.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 767264725d6c0c8e2a42f14ded88c8f05fec5863 Author: Rabin Vincent Date: Wed Aug 19 15:41:34 2015 +0200 mmc: usdhi6rol0: handle probe deferral for regulator We ignore errors from mmc_regulator_get_supply() because the usage of the regulators is optional for the driver, but we still need to check for and handle EPROBE_DEFER, like it's done in for example dw_mmc. Otherwise we might end up not using the specified regulators just because of probe order. Signed-off-by: Rabin Vincent Signed-off-by: Ulf Hansson drivers/mmc/host/usdhi6rol0.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit da795ec26e2542f1e306598a1d7a31c0762f2bd7 Author: Shawn Lin Date: Tue Aug 11 15:57:05 2015 +0800 mmc: sdhci-of-arasan: Add the support for sdhci-5.1 This patch adds the compatible string in sdhci-of-arasan.c to support sdhci-arasan5.1 version of controller. No documented controller IP version is found in the TRM, so we use ths version of command queueing engine integrated into this controller by arasan to specify our controller. Signed-off-by: Shawn Lin Acked-by: Michal Simek Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/arasan,sdhci.txt | 2 +- drivers/mmc/host/sdhci-of-arasan.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 0dafa60eb2506617e6968b97cc5a44914a7fb1a6 Author: Jisheng Zhang Date: Tue Aug 18 16:21:39 2015 +0800 mmc: sdhci: also get preset value and driver type for MMC_DDR52 commit bb8175a8aa42 ("mmc: sdhci: clarify DDR timing mode between SD-UHS and eMMC") added MMC_DDR52 as eMMC's DDR mode to be distinguished from SD-UHS, but it missed setting driver type for MMC_DDR52 timing mode. So sometimes we get the following error on Marvell BG2Q DMP board: [ 1.559598] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00 [ 1.569314] mmcblk0: retrying using single block read [ 1.575676] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0 [ 1.585202] blk_update_request: I/O error, dev mmcblk0, sector 2 [ 1.591818] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0 [ 1.601341] blk_update_request: I/O error, dev mmcblk0, sector 3 This patches fixes this by adding the missing driver type setting. Fixes: bb8175a8aa42 ("mmc: sdhci: clarify DDR timing mode ...") Signed-off-by: Jisheng Zhang Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f912632b6086d4464af2443dee0c6f4055cf5159 Author: Alexandre Belloni Date: Mon Aug 10 16:26:48 2015 +0200 mmc: atmel-mci: remove useless include Definitions from linux/platform_data/atmel.h are not used, remove the include. Signed-off-by: Alexandre Belloni Acked-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/atmel-mci.c | 1 - 1 file changed, 1 deletion(-) commit 7bb9c244356d2d45ac03cf65e55b035c5954d7de Author: Michal Suchanek Date: Wed Aug 12 15:29:31 2015 +0200 mmc: sunxi: fix timeout in sunxi_mmc_oclk_onoff The 250ms timeout is too short. On my system enabling the oclk takes under 50ms and disabling slightly over 100ms when idle. Under load disabling the clock can take over 350ms. This does not make mmc clock gating look like good option to have on sunxi but the system should not crash with mmc clock gating enabled nonetheless. This patch sets the timeout to 750ms. Signed-off-by: Michal Suchanek Acked-by: Hans de Goede Signed-off-by: Ulf Hansson drivers/mmc/host/sunxi-mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1880d8f6fbb01a16404dee7167621dc09b5f1d35 Author: Barry Song Date: Wed Aug 12 06:59:33 2015 +0000 mmc: sdhci-sirf: corrent quirk according to real chips the current quirk set is for an old FPGA, and this patch corrects quirks according to real SoC. Signed-off-by: Barry Song Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-sirf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b5b4ff0a633910b2b9dca7915fd6ab17aa10dc3e Author: Shawn Lin Date: Wed Aug 12 13:08:32 2015 +0800 mmc: block: skip trim for some kingston eMMCs For some mass production of kingston eMMCs which adopt Phison's firmware will meet an unrecoverable data conrruption occasionally if performing trim due to a firmware bug confirmed by vendor. We found it on Intel-C3230RK platform. So we add fixup of broken trim for it. Signed-off-by: Shawn Lin Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 10 ++++++++++ drivers/mmc/core/core.c | 3 ++- include/linux/mmc/card.h | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) commit e31e67cf2578bd05e99afabb22403542306d6bed Author: Haibo Chen Date: Tue Aug 11 19:38:31 2015 +0800 mmc: sdhci-esdhc-imx: change default watermark level and burst length By default, for all imx SoC types, the watermark level is 16, and the burst length is 8. But if the SDIO/SD/MMC I/O speed is fast enough, this default watermark level and burst length will be the performance bottleneck. For example, i.MX7D support eMMC HS400 mode, this mode can run in 8 bit, 200MHZ DDR mode. So the I/O speed improve a lot compare to SD3.0. The default burst length is 8, if we don't change this value, in HS400 mode, when we do eMMC read operation, we can find that the clock signal will stop for a period of time. This means the speed of data moving on AHB bus is slower than I/O speed. So we should improve the speed of data moving on AHB bus. This patch set the default burst length as 16, and set the default watermark level as 64. The test result is the clock signal has no stop during the eMMC HS400 operation. Signed-off-by: Haibo Chen Acked-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fd44954e77b436673eb5221e5485a32ea6550128 Author: Haibo Chen Date: Tue Aug 11 19:38:30 2015 +0800 mmc: sdhci-esdhc-imx: set back the burst_length_enable bit to 1 Currently we find that if a usdhc is choosed to boot system, then ROM code will set the burst length enable bit of this usdhc as 0. This will make performance drop a lot if this usdhc's burst length is configed. So this patch set back the burst_length_enable bit as 1, which is the default value, and means burst length is enabled for INCR. Signed-off-by: Haibo Chen Acked-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit d407e30ba614b1542c8ac032f8fb2332b8071efe Author: Haibo Chen Date: Tue Aug 11 19:38:27 2015 +0800 mmc: sdhci-esdhc-imx: add tuning-step setting support tuning-step is the delay cell steps in tuning procedure. The default value of tuning-step is 1. Some boards or cards need another value to pass the tuning procedure. For example, imx7d-sdb board need the tuning-step value as 2, otherwise it can't pass the tuning procedure. So this patch add the tuning-step setting in driver, so that user can set the tuning-step value in dts. Signed-off-by: Haibo Chen Acked-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 9 +++++++++ include/linux/platform_data/mmc-esdhc-imx.h | 1 + 2 files changed, 10 insertions(+) commit 28b07674f287092f3b63a7d5e5c7e68bdeed0247 Author: Haibo Chen Date: Tue Aug 11 19:38:26 2015 +0800 mmc: sdhci-esdhc-imx: add imx7d support and support HS400 The imx7d usdhc is derived from imx6sx, the difference is that imx7d support HS400. So introduce a new compatible string for imx7d and add HS400 support for imx7d usdhc. Signed-off-by: Haibo Chen Acked-by: Dong Aisheng Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc-imx.c | 86 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) commit 2a2a7ea7c0126d388c14c28927cdba429b4858dd Author: Haibo Chen Date: Tue Aug 11 19:38:28 2015 +0800 mmc: sdhci-esdhc-imx: Document new DT bindings for imx7d support Add a required property "fsl,imx7d-usdhc" in binding doc. Add an optional property "fsl,tuning-step" in binding doc. Signed-off-by: Haibo Chen Acked-by: Dong Aisheng Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 77bd2f6f6c65b4ad259394d416855ed561f21e8f Author: Yangbo Lu Date: Tue Aug 11 10:53:34 2015 +0800 mmc: sdhci-of-esdhc: add workaround for pre divider initial value For eSDHC(version < 2.3), the pre divider only could divide base clock by 2 at least. Add workaround for this to avoid unexpected issue. Signed-off-by: Yangbo Lu Acked-by: Joakim Tjernlund Fixes: bd455029d01c ("mmc: sdhci-of-esdhc: Pre divider starts at 1") Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-esdhc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit d31911b9374a76560d2c8ea4aa6ce5781621e81d Author: Haibo Chen Date: Tue Aug 25 10:02:11 2015 +0800 mmc: sdhci: fix dma memory leak in sdhci_pre_req() Currently one mrq->data maybe execute dma_map_sg() twice when mmc subsystem prepare over one new request, and the following log show up: sdhci[sdhci_pre_dma_transfer] invalid cookie: 24, next-cookie 25 In this condition, mrq->date map a dma-memory(1) in sdhci_pre_req for the first time, and map another dma-memory(2) in sdhci_prepare_data for the second time. But driver only unmap the dma-memory(2), and dma-memory(1) never unmapped, which cause the dma memory leak issue. This patch use another method to map the dma memory for the mrq->data which can fix this dma memory leak issue. Fixes: 348487cb28e6 ("mmc: sdhci: use pipeline mmc requests to improve performance") Reported-and-tested-by: Jiri Slaby Signed-off-by: Haibo Chen Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 67 ++++++++++++++++++------------------------------ drivers/mmc/host/sdhci.h | 8 +++--- 2 files changed, 29 insertions(+), 46 deletions(-) commit 90614cd9045dc7003913ee58cbc77950351485a0 Author: Sergei Shtylyov Date: Fri Aug 7 01:06:48 2015 +0300 mmc: host: use of_property_read_bool() Use more compact of_property_read_bool() calls instead of the of_find_property() calls. Signed-off-by: Sergei Shtylyov Signed-off-by: Ulf Hansson drivers/mmc/core/host.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit 143b648ddf1583905fa15d32be27a31442fc7933 Author: Adam Lee Date: Mon Aug 3 14:33:28 2015 +0800 mmc: sdhci-pci: set the clear transfer mode register quirk for O2Micro This patch fixes MMC not working issue on O2Micro/BayHub Host, which requires transfer mode register to be cleared when sending no DMA command. Signed-off-by: Peter Guo Signed-off-by: Adam Lee Cc: stable Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-pci.c | 1 + 1 file changed, 1 insertion(+) commit 22d7e85ff8e5826845e9a4fa34b4723e5a97ee9b Author: Robin van der Gracht Date: Tue Aug 4 08:58:33 2015 +0200 mmc: core: Fixed bug in one erase-group budget TRIM When requesting a trim for several bytes, everything up to the next erase-group is erased. This causes data corruption. Signed-off-by: Robin van der Gracht Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 0c9fc10df211e0c931787a51c58caf487035f74e Author: Linus Walleij Date: Thu Aug 27 14:05:26 2015 +0200 gpio: tc3589x: use static container helper There is a helper function to do the container_of() magic for the tc3589x GPIO, so use it. Signed-off-by: Linus Walleij drivers/gpio/gpio-tc3589x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3d5926599a6bc551efc0c8b244469a711f0d0166 Author: Vineet Gupta Date: Thu Aug 27 16:25:07 2015 +0530 ARCv2: entry: Fix reserved handler Signed-off-by: Vineet Gupta arch/arc/kernel/entry-arcv2.S | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 96983515657bfd532f4d2599df16c9d756de17ea Merge: d690740 4524cd0 Author: Michael Ellerman Date: Thu Aug 27 20:13:12 2015 +1000 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next Freescale updates from Scott: "Highlights include 32-bit memcpy/memset optimizations, checksum optimizations, 85xx config fragments and updates, device tree updates, e6500 fixes for non-SMP, and misc cleanup and minor fixes." commit d690740f22f6520873f96e66aae7119ec2215755 Author: Vasant Hegde Date: Thu Aug 27 11:34:10 2015 +0530 powerpc/powernv: Enable LEDS support Commit 84ad6e5c added LEDS support for PowerNV platform. Lets update ppc64_defconfig to pick LEDS driver. PowerNV LEDS driver looks for "/ibm,opal/leds" node in device tree and loads if this node exists. Hence added it as 'm'. Also note that powernv LEDS driver needs NEW_LEDS and LEDS_CLASS as well. Hence added them to config file. mpe: Also add them to pseries_defconfig, which is currently also used for powernv systems. Suggested-by: Michael Ellerman Signed-off-by: Vasant Hegde Cc: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/configs/ppc64_defconfig | 3 +++ arch/powerpc/configs/pseries_defconfig | 3 +++ 2 files changed, 6 insertions(+) commit 0e1ffef02cf94e46f95957af0f822531fecf741c Author: Alexey Kardashevskiy Date: Thu Aug 27 16:01:16 2015 +1000 powerpc/iommu: Set default DMA offset in dma_dev_setup Commit e91c25111aa3 "powerpc/iommu: Cleanup setting of DMA base/offset" expects that the default DMA offset is set from pnv_ioda_setup_bus_dma() which is correct unless it is SRIOV where the code flow is different - at the moment when pnv_ioda_setup_bus_dma() is called, PCI devices for VFs are not created yet. This adds missing set_dma_offset() to pnv_pci_ioda_dma_dev_setup() to cover the case of SRIOV. Note that we still need set_dma_offset() in pnv_ioda_setup_bus_dma() as at the boot time pnv_pci_ioda_dma_dev_setup() is called when no PE was created yet, this happens at the PHB fixup stage. Fixes: e91c25111aa3 ("powerpc/iommu: Cleanup setting of DMA base/offset") Signed-off-by: Alexey Kardashevskiy Reviewed-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 1 + 1 file changed, 1 insertion(+) commit 9b28829d6da391f67a76dbba07a167e2b554bd10 Author: Vineet Gupta Date: Tue Nov 18 17:36:11 2014 +0530 ARCv2: perf: Finally introduce HS perf unit With all features in place, the ARC HS pct block can now be effectively allowed to be probed/used Acked-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta Documentation/devicetree/bindings/arc/archs-pct.txt | 17 +++++++++++++++++ MAINTAINERS | 2 +- arch/arc/include/asm/perf_event.h | 5 ++++- arch/arc/kernel/perf_event.c | 3 ++- 4 files changed, 24 insertions(+), 3 deletions(-) commit e525c37f8413b19130d0499c7467fed45a94579b Author: Alexey Brodkin Date: Mon Aug 24 14:03:30 2015 +0300 ARCv2: perf: SMP support * split off pmu info into singleton and per-cpu bits * setup PMU on all cores Acked-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/kernel/perf_event.c | 69 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 15 deletions(-) commit e6b1d126bb748103824087189e30febc88c4db73 Author: Alexey Brodkin Date: Mon Aug 24 13:53:36 2015 +0300 ARCv2: perf: implement exclusion of event counting in user or kernel mode Acked-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/include/asm/perf_event.h | 3 +++ arch/arc/kernel/perf_event.c | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) commit 36481cf7fbcc666699d54cb267088d2b415ff164 Author: Alexey Brodkin Date: Mon Aug 24 13:48:06 2015 +0300 ARCv2: perf: Support sampling events using overflow interrupts In times of ARC 700 performance counters didn't have support of interrupt an so for ARC we only had support of non-sampling events. Put simply only "perf stat" was functional. Now with ARC HS we have support of interrupts in performance counters which this change introduces support of. ARC performance counters act in the following way in regard of interrupts generation. [1] A counter counts starting from value set in PCT_COUNT register pair [2] Once counter reaches value set in PCT_INT_CNT interrupt is raised Basic setup look like this: [1] PCT_COUNT = 0; [2] PCT_INT_CNT = __limit_value__; [3] Enable interrupts for that counter and let it run [4] Let counter reach its limit [5] Handle interrupt when it happens Note that PCT HW block is build in CPU core and so ints interrupt line (which is basically OR of all counters IRQs) is wired directly to top-level IRQC. That means do de-assert PCT interrupt it's required to reset IRQs from all counters that have reached their limit values. Acked-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/include/asm/perf_event.h | 8 ++- arch/arc/kernel/perf_event.c | 128 +++++++++++++++++++++++++++++++++++--- 2 files changed, 126 insertions(+), 10 deletions(-) commit 1fe8bfa5ff3b2e97f26add89b20768fb7c4188c0 Author: Alexey Brodkin Date: Mon Aug 24 13:42:27 2015 +0300 ARCv2: perf: implement "event_set_period" This generalization prepares for support of overflow interrupts. Hardware event counters on ARC work that way: Each counter counts from programmed start value (set in ARC_REG_PCT_COUNT) to a limit value (set in ARC_REG_PCT_INT_CNT) and once limit value is reached this timer generates an interrupt. Even though this hardware implementation allows for more flexibility, in Linux kernel we decided to mimic behavior of other architectures this way: [1] Set limit value as half of counter's max value (to allow counter to run after reaching it limit, see below for more explanation): ---------->8----------- arc_pmu->max_period = (1ULL << counter_size) / 2 - 1ULL; ---------->8----------- [2] Set start value as "arc_pmu->max_period - sample_period" and then count up to the limit Our event counters don't stop on reaching max value (the one we set in ARC_REG_PCT_INT_CNT) but continue to count until kernel explicitly stops each of them. And setting a limit as half of counter capacity is done to allow capturing of additional events in between moment when interrupt was triggered until we're actually processing PMU interrupts. That way we're trying to be more precise. For example if we count CPU cycles we keep track of cycles while running through generic IRQ handling code: [1] We set counter period as say 100_000 events of type "crun" [2] Counter reaches that limit and raises its interrupt [3] Once we get in PMU IRQ handler we read current counter value from ARC_REG_PCT_SNAP ans see there something like 105_000. If counters stop on reaching a limit value then we would miss additional 5000 cycles. Acked-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/kernel/perf_event.c | 79 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 16 deletions(-) commit fb7c57255168d34ae34300bcf78f50aebdeae4dc Author: Vineet Gupta Date: Mon Aug 24 13:37:01 2015 +0300 ARC: perf: cap the number of counters to hardware max of 32 The number of counters in PCT can never be more than 32 (while countable conditions could be 100+) for both ARCompact and ARCv2 And while at it update copyright dates. Acked-by: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Signed-off-by: Vineet Gupta arch/arc/include/asm/perf_event.h | 5 +++-- arch/arc/kernel/perf_event.c | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) commit 674c242c9323d3c293fc4f9a3a3a619fe3063290 Author: Ard Biesheuvel Date: Thu Aug 27 07:12:33 2015 +0100 arm64: flush FP/SIMD state correctly after execve() When a task calls execve(), its FP/SIMD state is flushed so that none of the original program state is observeable by the incoming program. However, since this flushing consists of setting the in-memory copy of the FP/SIMD state to all zeroes, the CPU field is set to CPU 0 as well, which indicates to the lazy FP/SIMD preserve/restore code that the FP/SIMD state does not need to be reread from memory if the task is scheduled again on CPU 0 without any other tasks having entered userland (or used the FP/SIMD in kernel mode) on the same CPU in the mean time. If this happens, the FP/SIMD state of the old program will still be present in the registers when the new program starts. So set the CPU field to the invalid value of NR_CPUS when performing the flush, by calling fpsimd_flush_task_state(). Cc: Reported-by: Chunyan Zhang Reported-by: Janet Liu Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/fpsimd.c | 1 + 1 file changed, 1 insertion(+) commit e4ec73510812f24087a28ac8cbf1f77c9fb262e5 Author: Alexander Kuleshov Date: Thu Aug 27 01:17:46 2015 +0600 s390/jump_label: Use %*ph to print small buffers printk() supports %*ph format specifier for printing a small buffers, let's use it intead of %02x %02x... Signed-off-by: Alexander Kuleshov Signed-off-by: Martin Schwidefsky arch/s390/kernel/jump_label.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 13a3cf08fa1e4b3a252f24202d47a556242aea03 Author: Andy Grover Date: Mon Aug 24 10:26:06 2015 -0700 target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage It appears to be what the rest of the kernel does, so let's do it too. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 4 ++-- drivers/target/iscsi/iscsi_target.c | 8 ++++---- drivers/target/iscsi/iscsi_target.h | 4 ++-- drivers/target/iscsi/iscsi_target_configfs.c | 4 ++-- drivers/target/iscsi/iscsi_target_login.c | 6 +++--- drivers/target/iscsi/iscsi_target_login.h | 4 ++-- drivers/target/iscsi/iscsi_target_tpg.c | 4 ++-- drivers/target/iscsi/iscsi_target_tpg.h | 2 +- include/target/iscsi/iscsi_target_core.h | 6 +++--- include/target/iscsi/iscsi_target_stat.h | 2 +- include/target/iscsi/iscsi_transport.h | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) commit dc58f760e2e1f8f2265b581d35f211415c4fee0c Author: Andy Grover Date: Mon Aug 24 10:26:05 2015 -0700 target/iscsi: Replace conn->login_ip with login_sockaddr Very similar to how it went with local_sockaddr. It was embedded in iscsi_login_stats so some changes there, and we needed to copy in a sockaddr_storage comparison function. Hopefully the kernel will get a standard one soon, our implementation makes the 3rd. isert_set_conn_info() became much smaller. IPV6_ADDRESS_SPACE define goes away, had to modify a call to in6_pton(), can just use -1 since we are sure string is null-terminated. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 21 ++--------------- drivers/target/iscsi/iscsi_target_configfs.c | 4 ++-- drivers/target/iscsi/iscsi_target_login.c | 35 ++++++++++++++-------------- drivers/target/iscsi/iscsi_target_stat.c | 2 +- drivers/target/iscsi/iscsi_target_util.c | 32 ++++++++++++++++++++++--- include/target/iscsi/iscsi_target_core.h | 3 +-- include/target/iscsi/iscsi_target_stat.h | 2 +- 7 files changed, 53 insertions(+), 46 deletions(-) commit 69d755747d31c07a416064f251c2f408938fb67a Author: Andy Grover Date: Mon Aug 24 10:26:04 2015 -0700 target/iscsi: Keep local_ip as the actual sockaddr This is a more natural format that lets us format it with the appropriate printk specifier as needed. This also lets us handle v4-mapped ipv6 addresses a little more nicely, by storing the addr as an actual v4 sockaddr in conn->local_sockaddr. Finally, we no longer need to maintain variables for port, since this is contained in sockaddr. Remove iscsi_np.np_port and iscsi_conn.local_port. Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/infiniband/ulp/isert/ib_isert.c | 8 ++--- drivers/target/iscsi/iscsi_target.c | 46 +++++++++++----------------- drivers/target/iscsi/iscsi_target_configfs.c | 4 +-- drivers/target/iscsi/iscsi_target_login.c | 43 +++++++++++++------------- drivers/target/iscsi/iscsi_target_tpg.c | 8 ++--- include/target/iscsi/iscsi_target_core.h | 4 +-- 6 files changed, 48 insertions(+), 65 deletions(-) commit 76c28f1fcfeb42b47f798fe498351ee1d60086ae Author: Andy Grover Date: Mon Aug 24 10:26:03 2015 -0700 target/iscsi: Fix np_ip bracket issue by removing np_ip Revert commit 1997e6259, which causes double brackets on ipv6 inaddr_any addresses. Since we have np_sockaddr, if we need a textual representation we can use "%pISc". Change iscsit_add_network_portal() and iscsit_add_np() signatures to remove *ip_str parameter. Fix and extend some comments earlier in the function. Tested to work for :: and ::1 via iscsiadm, previously :: failed, see https://bugzilla.redhat.com/show_bug.cgi?id=1249107 . CC: stable@vger.kernel.org Signed-off-by: Andy Grover Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 33 ++++++++++++++-------------- drivers/target/iscsi/iscsi_target.h | 2 +- drivers/target/iscsi/iscsi_target_configfs.c | 14 ++++++------ drivers/target/iscsi/iscsi_target_login.c | 8 +++---- drivers/target/iscsi/iscsi_target_tpg.c | 15 ++++++------- drivers/target/iscsi/iscsi_target_tpg.h | 2 +- include/target/iscsi/iscsi_target_core.h | 1 - 7 files changed, 36 insertions(+), 39 deletions(-) commit 9f55bca2b82a77a3cc3204900db2fc40ab30019e Author: Dan Carpenter Date: Tue Aug 18 12:20:29 2015 +0300 aic94xx: set an error code on failure We recently did some cleanup here and now the static checkers notice that there is a missing error code when ioremap() fails. Let's set it to -ENOMEM. Signed-off-by: Dan Carpenter Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/aic94xx/aic94xx_init.c | 1 + 1 file changed, 1 insertion(+) commit 111f2d15b543e15c1e0ee89745fae84e3eb91932 Author: K. Y. Srinivasan Date: Thu Aug 13 08:43:52 2015 -0700 storvsc: Set the error code correctly in failure conditions In the function storvsc_channel_init(), error code was not getting set correctly in some of the failure cases. Fix this issue. Signed-off-by: K. Y. Srinivasan Reported-by: Dan Carpenter Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit b95f5be09069526cf53705acbc1e22600f3f550b Author: Keith Mange Date: Thu Aug 13 08:43:51 2015 -0700 storvsc: Allow write_same when host is windows 10 Allow WRITE_SAME for Windows10 and above hosts. Tested-by: Alex Ng Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit e6c4bc66842752110a66746e2d044fafc01e4800 Author: Keith Mange Date: Thu Aug 13 08:43:50 2015 -0700 storvsc: use storage protocol version to determine storage capabilities Use storage protocol version instead of vmbus protocol version when determining storage capabilities. Tested-by: Alex Ng Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit cb11feada9c049bc633831d3a5dcc50163f13b5e Author: Keith Mange Date: Thu Aug 13 08:43:49 2015 -0700 storvsc: use correct defaults for values determined by protocol negotiation Use correct defaults for values determined by protocol negotiation, instead of resetting them with every scsi controller. Tested-by: Alex Ng Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) commit 1a3631081d88180f5cc421711e40b4aecff8618e Author: Keith Mange Date: Thu Aug 13 08:43:48 2015 -0700 storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. Currently we are making decisions based on vmbus protocol versions that have been negotiated; use storage potocol versions instead. [jejb: fold ARRAY_SIZE conversion suggested by Johannes Thumshirn make vmstor_protocol static] Tested-by: Alex Ng Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 108 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 86 insertions(+), 22 deletions(-) commit 2492fd7a60270b81b7ed491745fd595a26841a45 Author: Keith Mange Date: Thu Aug 13 08:43:47 2015 -0700 storvsc: Use a single value to track protocol versions Use a single value to track protocol versions to simplify comparisons and to be consistent with vmbus version tracking. Tested-by: Alex Ng Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit 6ee5c61535a2df807069145970d3e7fa492a3fac Author: Keith Mange Date: Thu Aug 13 08:43:46 2015 -0700 storvsc: Rather than look for sets of specific protocol versions, make decisions based on ranges. Rather than look for sets of specific protocol versions, make decisions based on ranges. This will be safer and require fewer changes going forward as we add more storage protocol versions. Tested-by: Alex Ng Signed-off-by: Keith Mange Signed-off-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 9d8e27673c45927fee9e7d8992ffb325a6b0b0e4 Author: Daniel Axtens Date: Fri Aug 21 17:25:15 2015 +1000 cxl: Remove racy attempt to force EEH invocation in reset cxl_reset currently PERSTs the slot, and then repeatedly tries to read MMIO space in order to kick off EEH. There are 2 problems with this: it's unnecessary, and it's racy. It's unnecessary because the PERST will bring down the PHB link. That will be picked up by the CAPP, which will send out an HMI. Skiboot, noticing an HMI from the CAPP, will send an OPAL notification to the kernel, which will trigger EEH recovery. It's also racy: the EEH recovery triggered by the CAPP will eventually cause the MMIO space to have its mapping invalidated and the pointer NULLed out. This races with our attempt to read the MMIO space. This is causing OOPSes in testing. Simply drop all the attempts to force EEH detection, and trust that Skiboot will send the notification and that we'll act on it. The Skiboot code to send the EEH notification has been in Skiboot for as long as CAPP recovery has been supported, so we don't need to worry about breaking obscure setups with ancient firmware. Cc: Ryan Grimm Cc: stable@vger.kernel.org Fixes: 62fa19d4b4fd ("cxl: Add ability to reset the card") Signed-off-by: Daniel Axtens Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 16 ---------------- 1 file changed, 16 deletions(-) commit a6897f39660cc07fa78b4459d82f12b07abb50b1 Author: Vaibhav Jain Date: Tue Aug 25 11:04:48 2015 +0530 cxl: Release irqs if memory allocation fails This minor patch plugs a potential irq leak in case of a memory allocation failure inside function the afu_allocate_irqs. Presently the irqs allocated to the context gets leaked if allocation of either one of context irq_bitmap or irq_names fails. Signed-off-by: Vaibhav Jain Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/irq.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit d7b273685fedba5359a4ba0ae4f542e3ece28153 Merge: 3160779 6dc2e1b Author: Dave Airlie Date: Thu Aug 27 13:01:57 2015 +1000 Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next Here are some development updates for the Synopsis Designware HDMI driver, which clean up some of the code, and start preparing to add audio support to the driver. This series of patches are based on a couple of dependent commits from the ALSA tree. Briefly, the updates are: - move comments which should have moved with the phy values to the IMX part of the driver. - clean up the phy configuration: to all lookups before starting to program the phy. - clean up the HDMI clock regenerator code - use the drm_hdmi_avi_infoframe_from_display_mode() helper which allows the code to be subsequently simplified - remove the unused 'regmap' pointer in struct dw_hdmi - use the bridge drm device rather than the connector (we're the bridge code) - remove private hsync/vsync/interlaced flags, getting them from the DRM mode structure instead. - implement interface functions to support audio - setting the audio sample rate, and enabling the audio clocks. - removal of broken pixel repetition support - cleanup DVI vs HDMI sink handling - enable audio only if connected device supports audio - avoid double-enabling bridge in the sink path (once in mode_set, and again in commit) - rename mis-named dw_hdmi_phy_enable_power() - fix bridge enable/disable handing, so a plug-in event doesn't reconfigure the bridge if DRM has disabled the output - fix from Vladimir Zapolskiy for the I2CM_ADDRESS macro name These are primerily preparitory patches for the AHB audio driver and the I2S audio driver (from Rockchip) for this IP. * 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: drm: bridge/dw_hdmi: fix register I2CM_ADDRESS register name drm: bridge/dw_hdmi: fix phy enable/disable handling drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power() drm: bridge/dw_hdmi: avoid enabling interface in mode_set drm: bridge/dw_hdmi: enable audio only if sink supports audio drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling drm: bridge/dw_hdmi: don't support any pixel doubled modes drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio drm: bridge/dw_hdmi: introduce interface to setting sample rate drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced drm: bridge/dw_hdmi: use our own drm_device drm: bridge/dw_hdmi: remove unused 'regmap' struct member drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode() drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator() drm: bridge/dw_hdmi: clean up phy configuration drm: imx/dw_hdmi: move phy comments drm/edid: add function to help find SADs commit 31607793ee81da3f1024df9560f0dec49abde37f Merge: 40b2dff 36d4e87 Author: Dave Airlie Date: Thu Aug 27 13:01:23 2015 +1000 Merge tag 'vmwgfx-next-15-08-21' of git://people.freedesktop.org/~thomash/linux into drm-next Pull request of 15-08-21 The third pull request for 4.3. Contains two fixes for regressions introduced with previous pull requests. * tag 'vmwgfx-next-15-08-21' of git://people.freedesktop.org/~thomash/linux: drm/vmwgfx: Remove duplicate ttm_bo_device_release drm/vmwgfx: Fix a circular locking dependency in the fbdev code commit 40b2dffbcc67e92d5df97785dffc68fe88605bfa Merge: db56176 c2b6bd7 Author: Dave Airlie Date: Thu Aug 27 13:00:28 2015 +1000 Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next - DP fixes for radeon and amdgpu - IH ring fix for tonga and fiji - Lots of GPU scheduler fixes - Misc additional fixes * 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (42 commits) drm/amdgpu: fix wait queue handling in the scheduler drm/amdgpu: remove extra parameters from scheduler callbacks drm/amdgpu: wake up scheduler only when neccessary drm/amdgpu: remove entity idle timeout v2 drm/amdgpu: fix postclose order drm/amdgpu: use IB for copy buffer of eviction drm/amdgpu: adjust the judgement of removing fence callback drm/amdgpu: fix no sync_wait in copy_buffer drm/amdgpu: fix last_vm_update fence is not effetive for sched fence drm/amdgpu: add priv data to sched drm/amdgpu: add owner for sched fence drm/amdgpu: remove entity reference from sched fence drm/amdgpu: fix and cleanup amd_sched_entity_push_job drm/amdgpu: remove amdgpu_bo_list_clone drm/amdgpu: remove the context from amdgpu_job drm/amdgpu: remove unused parameters to amd_sched_create drm/amdgpu: remove sched_lock drm/amdgpu: remove prepare_job callback drm/amdgpu: cleanup a scheduler function name drm/amdgpu: reorder scheduler functions ... commit 89576205de8a5b6c19a4b3bb25bd16484a567b4e Author: Matthew R. Ochs Date: Wed Aug 26 18:36:12 2015 -0500 cxlflash: Remove unused variable from queuecommand The queuecommand routine has a local dev pointer used for the dev_* prints. The two prints that currently exist are tucked under a debug define and thus can be left out. Use the actual location instead of a local to avoid this warning. This patch is intended to be applied after the "CXL Flash Error Recovery and Superpipe" series. Signed-off-by: Matthew R. Ochs Signed-off-by: Manoj N. Kumar Reported-by: kbuild test robot Signed-off-by: James Bottomley drivers/scsi/cxlflash/main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4da74db0d9a6ffe053d3a3efa756906e0afc4cf7 Author: Dan Carpenter Date: Tue Aug 18 11:57:43 2015 +0300 cxlflash: shift wrapping bug in afu_link_reset() "port_sel" is a u64 so the shifting should also be a 64 bit shift. Fixes: c21e0bbfc485 ('cxlflash: Base support for IBM CXL Flash Adapter') Signed-off-by: Dan Carpenter Reviewed-by: Johannes Thumshirn Acked-by: Matthew R. Ochs Signed-off-by: James Bottomley drivers/scsi/cxlflash/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 46c6d45d7875a0328258a574e376ae75f7b2a64b Author: Dan Carpenter Date: Fri Aug 14 23:35:25 2015 +0300 cxlflash: off by one bug in cxlflash_show_port_status() The > should be >= or we read one element past the end of the array. Fixes: c21e0bbfc485 ('cxlflash: Base support for IBM CXL Flash Adapter') Signed-off-by: Dan Carpenter Acked-by: Matthew R. Ochs Signed-off-by: James Bottomley drivers/scsi/cxlflash/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2cb79266d6b229dbebd31fe114af1bdab25c8076 Author: Matthew R. Ochs Date: Thu Aug 13 21:47:53 2015 -0500 cxlflash: Virtual LUN support Add support for physical LUN segmentation (virtual LUNs) to device driver supporting the IBM CXL Flash adapter. This patch allows user space applications to virtually segment a physical LUN into N virtual LUNs, taking advantage of the translation features provided by this adapter. Signed-off-by: Matthew R. Ochs Signed-off-by: Manoj N. Kumar Reviewed-by: Michael Neuling Reviewed-by: Wen Xiong Signed-off-by: James Bottomley Documentation/powerpc/cxlflash.txt | 63 +- drivers/scsi/cxlflash/Makefile | 2 +- drivers/scsi/cxlflash/common.h | 4 + drivers/scsi/cxlflash/lunmgt.c | 3 + drivers/scsi/cxlflash/main.c | 13 + drivers/scsi/cxlflash/sislite.h | 20 +- drivers/scsi/cxlflash/superpipe.c | 82 ++- drivers/scsi/cxlflash/superpipe.h | 17 +- drivers/scsi/cxlflash/vlun.c | 1243 ++++++++++++++++++++++++++++++++++++ drivers/scsi/cxlflash/vlun.h | 86 +++ include/uapi/scsi/cxlflash_ioctl.h | 34 + 11 files changed, 1550 insertions(+), 17 deletions(-) commit 65be2c79acc3aa0f9c0e8d4871f5a451d854465a Author: Matthew R. Ochs Date: Thu Aug 13 21:47:43 2015 -0500 cxlflash: Superpipe support Add superpipe supporting infrastructure to device driver for the IBM CXL Flash adapter. This patch allows userspace applications to take advantage of the accelerated I/O features that this adapter provides and bypass the traditional filesystem stack. Signed-off-by: Matthew R. Ochs Signed-off-by: Manoj N. Kumar Reviewed-by: Michael Neuling Reviewed-by: Wen Xiong Reviewed-by: Brian King Signed-off-by: James Bottomley Documentation/ioctl/ioctl-number.txt | 1 + Documentation/powerpc/cxlflash.txt | 257 +++++ drivers/scsi/cxlflash/Makefile | 2 +- drivers/scsi/cxlflash/common.h | 19 + drivers/scsi/cxlflash/lunmgt.c | 263 +++++ drivers/scsi/cxlflash/main.c | 38 +- drivers/scsi/cxlflash/sislite.h | 5 +- drivers/scsi/cxlflash/superpipe.c | 2014 ++++++++++++++++++++++++++++++++++ drivers/scsi/cxlflash/superpipe.h | 132 +++ include/uapi/scsi/Kbuild | 1 + include/uapi/scsi/cxlflash_ioctl.h | 140 +++ 11 files changed, 2868 insertions(+), 4 deletions(-) commit 5cdac81a870f3bb65c50d3f5566a86fb086118d2 Author: Matthew R. Ochs Date: Thu Aug 13 21:47:34 2015 -0500 cxlflash: Base error recovery support Introduce support for enhanced I/O error handling. A device state is added to track 3 possible states of the device: Normal - the device is operating normally and is fully operational Limbo - the device is in a reset/recovery scenario and its operational status is paused Failed/terminating - the device has either failed to be reset/recovered or is being terminated (removed); it is no longer operational All operations are allowed when the device is operating normally. When the device transitions to limbo state, I/O must be paused. To help accomplish this, a wait queue is introduced where existing and new threads can wait until the device is no longer in limbo. When coming out of limbo, threads need to check the state and error out gracefully when encountering the failed state. When the device transitions to the failed/terminating state, normal operations are no longer allowed. Only specially designated operations related to graceful cleanup are permitted. Signed-off-by: Matthew R. Ochs Signed-off-by: Manoj N. Kumar Reviewed-by: Daniel Axtens Reviewed-by: Michael Neuling Reviewed-by: Wen Xiong Reviewed-by: Brian King Signed-off-by: James Bottomley drivers/scsi/cxlflash/Kconfig | 2 +- drivers/scsi/cxlflash/common.h | 11 ++- drivers/scsi/cxlflash/main.c | 174 +++++++++++++++++++++++++++++++++++++--- drivers/scsi/cxlflash/main.h | 6 +- drivers/scsi/cxlflash/sislite.h | 0 5 files changed, 177 insertions(+), 16 deletions(-) commit ef2a388dfce6ddc2fd0d1d798a8974396f6b6a22 Author: Himanshu Madhani Date: Tue Aug 4 13:38:04 2015 -0400 qla2xxx: Update driver version to 8.07.00.26-k Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b48992f656e109b9d7357cedc0406b50ec82c22 Author: Sawan Chandak Date: Tue Aug 4 13:38:03 2015 -0400 qla2xxx: Add pci device id 0x2261. Signed-off-by: Sawan Chandak Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_def.h | 7 +++++-- drivers/scsi/qla2xxx/qla_os.c | 11 ++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) commit a1d0285ecb61800a9e6808f716b880eae95f14bc Author: Arun Easi Date: Tue Aug 4 13:38:02 2015 -0400 qla2xxx: Fix missing device login retries. On certain conditions, login failures will just invoke qla2x00_mark_device_lost() with the intend to do login again; but if login_retry has been set already, that would fail to set the relogin needed flag which is required to wakeup the DPC to retry. Signed-off-by: Arun Easi Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_os.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 63e322aaa6a00536055558ac1307b2919ee57aef Author: Himanshu Madhani Date: Tue Aug 4 13:38:01 2015 -0400 qla2xxx: do not clear slot in outstanding cmd array Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_os.c | 6 ------ 1 file changed, 6 deletions(-) commit 96219424f2c7b767e42ccf203df40d7df677a5e3 Author: Chad Dupuis Date: Tue Aug 4 13:38:00 2015 -0400 qla2xxx: Remove decrement of sp reference count in abort handler. Fix for memory leak when command is not found by firmware due to mismatch in sp reference count. Signed-off-by: Chad Dupuis Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_os.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 03aa868c1b7b2633a4faa97b28c40e64c91a8e7f Author: Sawan Chandak Date: Tue Aug 4 13:37:59 2015 -0400 qla2xxx: Add support to show MPI and PEP FW version for ISP27xx. Signed-off-by: Sawan Chandak Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_attr.c | 19 ++++++++++++++++++- drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_mbx.c | 13 ++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) commit fd49a540ead94ce5769f6eb2028e97577739e24b Author: Chad Dupuis Date: Tue Aug 4 13:37:58 2015 -0400 qla2xxx: Do not reset ISP for error entry with an out of range handle. Instead of resetting the adapter wait for the login to timeout and retry. Resetting the adapter can cause extended path recovery times. Signed-off-by: Chad Dupuis Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_isr.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit c7bc4cae0d5c9703d8b15fcc0fd53b86b135bde8 Author: Chad Dupuis Date: Tue Aug 4 13:37:57 2015 -0400 qla2xxx: Do not reset adapter if SRB handle is in range. If an SRB is NULL but the handle is in range just drop the command instead of also resetting the adapter. If the handle is in range then the command was valid at some point and may have been aborted. Resetting the adapter can lead to extended recovery times in this case. Signed-off-by: Chad Dupuis Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_isr.c | 20 ++++++++++++-------- drivers/scsi/qla2xxx/qla_os.c | 4 ++-- 3 files changed, 15 insertions(+), 11 deletions(-) commit 8fbdac8c70d378016f568106f09fb3ff153a47c3 Author: Hiral Patel Date: Tue Aug 4 13:37:56 2015 -0400 qla2xxx: Do not crash system for sp ref count zero Aovid crashing the system in the scenario where firmware just completes the command and it can not find the command during abort mailbox processing. This scenario can lead to sp reference counter being zero. Instead of crashing the system, use WARN_ON to print warning in log file. Signed-off-by: Hiral Patel Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_os.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6b9b42b49518c30df9de92ce499f005d336e97b Author: Saurav Kashyap Date: Tue Aug 4 13:37:55 2015 -0400 qla2xxx: Add adapter checks for FAWWN functionality. Signed-off-by: Saurav Kashyap Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_def.h | 1 + drivers/scsi/qla2xxx/qla_mbx.c | 30 ++++++++++++++++-------------- 2 files changed, 17 insertions(+), 14 deletions(-) commit 8dd7e3a55949f17fecba4aedb2cb943b153e5e55 Author: Joe Carnuccio Date: Tue Aug 4 13:37:54 2015 -0400 qla2xxx: Pause risc before manipulating risc semaphore. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_init.c | 3 +++ 1 file changed, 3 insertions(+) commit cc790764391a68511cf6a7e4dd18eeb6e7640233 Author: Joe Carnuccio Date: Tue Aug 4 13:37:53 2015 -0400 qla2xxx: Use ssdid to gate semaphore manipulation. Execute qla25xx_manipulate_risc_semaphore() only for ssdid 0x0175 and 0x0240. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 17cac3a175a02cd1ae21f9183b09f30a719832df Author: Joe Carnuccio Date: Tue Aug 4 13:37:52 2015 -0400 qla2xxx: Handle AEN8014 incoming port logout. When we get logged out, mark the port lost and set dpc flag for relogin. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_isr.c | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) commit 1dd34b5ad8aebaff17b625fc0126e18243008a3f Author: Alexei Starovoitov Date: Wed Aug 26 15:57:38 2015 -0700 bpf: fix bpf_skb_set_tunnel_key() helper Make sure to indicate to tunnel driver that key.tun_id is set, otherwise gre won't recognize the metadata. Fixes: d3aa45ce6b94 ("bpf: add helpers to access tunnel metadata") Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller net/core/filter.c | 1 + 1 file changed, 1 insertion(+) commit f299c7c2ab5df78e3201af34e596e8a3ba4d2791 Author: Joe Carnuccio Date: Tue Aug 4 13:37:51 2015 -0400 qla2xxx: Add serdes register read/write support for ISP25xx. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_mbx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 709c75b5a2411c31e5a649a2cd6d4866dd11f456 Author: jiang.biao2@zte.com.cn Date: Fri Jul 31 17:52:10 2015 +0800 scsi_error: should not get sense for timeout IO in scsi error handler scsi_error: should not get sense for timeout IO in scsi error handler When an IO timeout occurs, the IO will be aborted in scsi_abort_command() and SCSI_EH_ABORT_SCHEDULED will be set. Because of that, the SCSI_EH_CANCEL_CMD will be clear in scsi_eh_scmd_add(). So when scsi error handler starts, it will get sense for this timeout IO and the scmd of the IO request will be reused. In that case, the scmd may be double released when racing with io_done(), which will result in crash. SO SCSI_EH_ABORT_SCHEDULED should also be checked when getting sense. The bug maybe reproduced when the link between host and disk is unstable. Signed-off-by: Jiang Biao Signed-off-by: Long Chun Reviewed-by: Tan Hu Reviewed-by: Chen Donghai Reviewed-by: Cai Qu Signed-off-by: James Bottomley drivers/scsi/scsi_error.c | 5 +++++ 1 file changed, 5 insertions(+) commit 1cd129918f14f42f8b1940096dba629ce7e7a243 Author: Viswas G Date: Tue Aug 11 15:06:32 2015 +0530 pm80xx: Bump pm80xx driver version to 0.1.38 Bump pm80xx driver version to 0.1.38. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_sas.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27ecfa5e79bfc2e4efca67a6077080acab546a4a Author: Viswas G Date: Tue Aug 11 15:06:31 2015 +0530 pm80xx: Handling Invalid SSP Response frame The request has to be retried incase if the length of the SSP Response IU is invalid. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm80xx_hwi.c | 7 +++++++ drivers/scsi/pm8001/pm80xx_hwi.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 8414cd8057c29f60cda241aa489b33e4db6652f2 Author: Viswas G Date: Tue Aug 11 15:06:30 2015 +0530 pm80xx: Add PORT RECOVERY TIMEOUT support PORT RECOVERY TIMEOUT is the maximum time between the controller's detection of the PHY down until the receipt of the ID_Frame (from the same remote SAS port). If the time expires before the ID_FRAME is received, the port is considered INVALID and can be removed. The IOP_EVENT_PORT_RECOVERY_TIMER_TMO event is reported following the IOP_EVENT_ PHY_DOWN event when the PHY/port does not recover after Port Recovery Time. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_sas.h | 2 +- drivers/scsi/pm8001/pm80xx_hwi.c | 83 ++++++++++++++++++++++++++++++++-------- 2 files changed, 68 insertions(+), 17 deletions(-) commit 3b77894b2c32ed3326c47b550f30684beb64abd3 Author: Viswas G Date: Tue Aug 11 15:06:29 2015 +0530 pm80xx: Remove unnecessary phy disconnect while link error If the link error happens, we don't need to disconnect the phy, which will remove the drive. Instead acknowledging the controller and logging the error will be enough. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm80xx_hwi.c | 12 ------------ 1 file changed, 12 deletions(-) commit 3b700e341144f278b8248418991c086d09b7137b Author: Viswas G Date: Tue Aug 11 15:06:28 2015 +0530 pm80xx: Fix for Incorrect DMA Unmapping of SG List In pm8001_ccb_task_free(), the dma unmapping is done based on ccb->n_elem value. This should be initialized to zero in the task_abort(). Otherwise, pm8001_ccb_task_free() will try for dma_unmap_sg() which is invalid for task abort and can lead to kernel crash. Changes From V1: None Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_sas.c | 1 + 1 file changed, 1 insertion(+) commit 842784e0d15bc21b31ce69f8f3518a8cf86084e3 Author: Viswas G Date: Tue Aug 11 15:06:27 2015 +0530 pm80xx: Update For Thermal Page Code Thermal page code has been changed to 7 for the 12G controllers. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm80xx_hwi.c | 9 ++++++++- drivers/scsi/pm8001/pm80xx_hwi.h | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) commit 3a1ae967741c301a5ad26665dcfb184082b969b2 Author: Viswas G Date: Tue Aug 11 15:06:26 2015 +0530 pm80xx: Corrected device state changes in I_T_Nexus_Reset. In Nexus reset the device state request are not needed. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Acked-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_sas.c | 18 +++++++++++++----- drivers/scsi/pm8001/pm8001_sas.h | 8 ++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) commit b093d590367f6eafbec89243fabb12d4b96a9997 Author: Viswas G Date: Tue Aug 11 15:06:25 2015 +0530 pm80xx: Updated link rate Updated 12G linkrate to libsas. Signed-off-by: Viswas G Reviewed-by: Suresh Thiagarajan Reviewed-by: Hannes Reinecke Reviewed-by: Jack Wang Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_defs.h | 1 + drivers/scsi/pm8001/pm8001_hwi.c | 4 ++++ 2 files changed, 5 insertions(+) commit d32477e2a72cf9b99bb174e0f11e1b1c7834b76f Author: Jack Wang Date: Wed Jul 29 12:02:50 2015 +0200 MAINTAINERS: update email for pm8001 Company has policy to use company email address, so update my email address to company address. Signed-off-by: Jack Wang Signed-off-by: James Bottomley MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b103918a5f21a51d12018a09919617687e584384 Author: Sebastian Herbszt Date: Wed Jul 22 10:53:22 2015 +0200 lpfc: Use && instead of & for boolean expression Use logical instead of bitwise AND. Signed-off-by: Sebastian Herbszt Reviewed-by: James Smart Signed-off-by: James Bottomley drivers/scsi/lpfc/lpfc_hbadisc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5155ce5f8395730f681fe48cdc8867838e3a3f2c Author: Dilip Kumar Uppugandla Date: Tue Jul 21 15:07:55 2015 -0700 qla2xxx: Return the fabric command state for non-task management requests Invoking get_cmd_state for qla2xxx always returns 0. Instead change it to return the actual fabric state from qla_tgt_cmd. This will help with debugging. Signed-off-by: Dilip Kumar Uppugandla Signed-off-by: Spencer Baugh Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/tcm_qla2xxx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2d041306b669e281427de7dd398e74335c9f5042 Author: Don Brace Date: Sat Jul 18 11:13:15 2015 -0500 hpsa: fix rmmod issues The driver is calling hpsa_shutdown before calling scsi_remove_host. hpsa_shutdown is disabling interrupts. scsi_remove_host can trigger I/O operations, such as SYNCHRONIZE CACHE when multipath is enabled which hang the system. Call scsi_remove_host before calling hpsa_shutdown. Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 9a4178b76a973684750d20b684bae4f57ab9a355 Author: shane.seymour Date: Sat Jul 18 11:13:09 2015 -0500 hpsa: fix issues with multilun devices A regression was introduced into the hpsa driver a while back so non-zero LUNs of multi-LUN devices may no longer be presented via a SAS based Smart Array. I have not done a bisection to discover the change that caused it. The CISS firmware specification (available on sourceforge) defines an 8 byte lunid that describes devices that the Smart Array can see/present to the system. The current code in the hpsa driver attempts to find matches for non-zero LUNs with LUN 0 for a bus/target by zeroing out byte 4 of the lunid and find a match. This method is sufficient for SCSI based Smart Arrays because byte 5 is always 0. For SAS based Smart arrays byte 5 of the lunid contains the path number for a multipath device and either one or two bits (the documentation does not define how many bits are used but it appears it may be one only) that indicate if the given path number in byte 5 must always be used to access that device. Byte 5 may not always be zero. The following are lunids (spaces added for clarity) for a MSL2024 single drive library connected via a H241 Smart Array: 00 00 00 00 01 00 00 01 (changer) 00 00 00 00 00 80 00 01 (tape) In the 4th byte (counting from 0) you can see that the tape is LUN 0 and the changer is LUN 1. The 0x80 set in the 5th byte for the tape drive means the driver should force access to path 0 (the library in this case was connected to one path only anyway). After the changes we can see the following in the dmesg output: scsi 0:3:0:0: RAID HP H241 1.18 \ PQ: 0 ANSI: 5 scsi 0:2:0:0: Sequential-Access HP Ultrium 6-SCSI 354W \ PQ: 0 ANSI: 6 scsi 0:2:0:1: Medium Changer HP MSL G3 Series 8.70 \ PQ: 0 ANSI: 5 Showing that the changer is correctly identified as LUN 1 of bus 2 target 0. Before the change the changer device is not seen. Suggested-by: shane.seymour Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5ca0120447ae8d485e2ee5100f25b6645e3e320f Author: Scott Benesh Date: Sat Jul 18 11:13:04 2015 -0500 hpsa: add in new offline mode prevent adding volumes that are not available. Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Justin Lindley Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 15 +++++++++++---- drivers/scsi/hpsa_cmd.h | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) commit b9092b79ccaf4404509d6aeb2c76eb7cbfa57bf1 Author: Kevin Barnett Date: Sat Jul 18 11:12:59 2015 -0500 Change how controllers in mixed mode are handled. Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 97 ++++++----------------------------------------------- drivers/scsi/hpsa.h | 2 -- 2 files changed, 11 insertions(+), 88 deletions(-) commit cbb47dcbb405d4a694801e6ad6d63c2992f83bb4 Author: Don Brace Date: Sat Jul 18 11:12:54 2015 -0500 hpsa: add in new controllers Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Signed-off-by: Don Brace Reviewed-by: Tomas Henzl Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 9384950809d96ee08dcd7bb2eadc9628b99d0474 Author: Don Brace Date: Sat Jul 18 11:12:49 2015 -0500 hpsa: cleanup update scsi devices showing that tables have been updated unnecessarily. Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8270b8624365887a716615294d0ac28af07c9287 Author: Joe Handzik Date: Sat Jul 18 11:12:43 2015 -0500 hpsa: add sysfs entry path_info to show box and bay information host no, bus, target, lun, scsi_device_type for hba mode add: box and bay information report if the path is active/inactive Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/hpsa.h | 5 +++ 2 files changed, 127 insertions(+) commit 1358f6dc5875f5cef06eeeeb4532f382aaff8483 Author: Don Brace Date: Sat Jul 18 11:12:38 2015 -0500 hpsa: add PMC to copyright need to add PMC to copyright notice and update the Hewlett-Packard copyright notification. Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Justin Lindley Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 9 +++------ drivers/scsi/hpsa.h | 9 +++------ drivers/scsi/hpsa_cmd.h | 9 +++------ 3 files changed, 9 insertions(+), 18 deletions(-) commit 7ef7323f4bf467ce9fe51177301ad8cbb7dc2631 Author: Don Brace Date: Sat Jul 18 11:12:33 2015 -0500 hpsa: correct static checker warnings on driver init cleanup Reported-by: Dan Carpenter Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 81c275576bcee1a80e046117c7923586216a2dd4 Author: Don Brace Date: Sat Jul 18 11:12:28 2015 -0500 hpsa: correct decode sense data Reported-by: Dan Carpenter Reviewed-by: Kevin Barnett Reviewed-by: Scott Teel Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77678d3a35455d7b7c4da4e56b20de17ee63cec1 Author: Don Brace Date: Sat Jul 18 11:12:22 2015 -0500 hpsa: Correct double unlock of mutex Reported-by: Dan Carpenter Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Reviewed-by: Tomas Henzl Signed-off-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 5d0ddfebb93069061880fc57ee4ba7246bd1e1ee Author: Jiang Liu Date: Fri Aug 21 15:36:23 2015 +0800 ACPI, PCI: Penalize legacy IRQ used by ACPI SCI Nick Meier reported a regression with HyperV that " After rebooting the VM, the following messages are logged in syslog when trying to load the tulip driver: tulip: Linux Tulip drivers version 1.1.15 (Feb 27, 2007) tulip: 0000:00:0a.0: PCI INT A: failed to register GSI tulip: Cannot enable tulip board #0, aborting tulip: probe of 0000:00:0a.0 failed with error -16 Errors occur in 3.19.0 kernel Works in 3.17 kernel. " According to the ACPI dump file posted by Nick at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072 The ACPI MADT table includes an interrupt source overridden entry for ACPI SCI: [236h 0566 1] Subtable Type : 02 [237h 0567 1] Length : 0A [238h 0568 1] Bus : 00 [239h 0569 1] Source : 09 [23Ah 0570 4] Interrupt : 00000009 [23Eh 0574 2] Flags (decoded below) : 000D Polarity : 1 Trigger Mode : 3 And in DSDT table, we have _PRT method to define PCI interrupts, which eventually goes to: Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12,14,15} }) Name (PRSB, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12,14,15} }) Name (PRSC, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12,14,15} }) Name (PRSD, ResourceTemplate () { IRQ (Level, ActiveLow, Shared, ) {3,4,5,7,9,10,11,12,14,15} }) According to the MADT and DSDT tables, IRQ 9 may be used for: 1) ACPI SCI in level, high mode 2) PCI legacy IRQ in level, low mode So there's a conflict in polarity setting for IRQ 9. Prior to commit cd68f6bd53cf ("x86, irq, acpi: Get rid of special handling of GSI for ACPI SCI"), ACPI SCI is handled specially and there's no check for conflicts between ACPI SCI and PCI legagy IRQ. And it seems that the HyperV hypervisor doesn't make use of the polarity configuration in IOAPIC entry, so it just works. Commit cd68f6bd53cf gets rid of the specially handling of ACPI SCI, and then the pin attribute checking code discloses the conflicts between ACPI SCI and PCI legacy IRQ on HyperV virtual machine, and rejects the request to assign IRQ9 to PCI devices. So penalize legacy IRQ used by ACPI SCI and mark it unusable if ACPI SCI attributes conflict with PCI IRQ attributes. Please refer to following links for more information: https://bugzilla.kernel.org/show_bug.cgi?id=101301 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072 Fixes: cd68f6bd53cf ("x86, irq, acpi: Get rid of special handling of GSI for ACPI SCI") Reported-and-tested-by: Nick Meier Acked-by: Thomas Gleixner Cc: 3.19+ # 3.19+ Signed-off-by: Jiang Liu Signed-off-by: Rafael J. Wysocki arch/x86/kernel/acpi/boot.c | 1 + drivers/acpi/pci_link.c | 16 ++++++++++++++++ include/linux/acpi.h | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) commit bf41846edf5b1618a37f8ec830251b31d8ed6ab3 Author: Catherine Sullivan Date: Fri Jul 10 19:36:10 2015 -0400 i40e/i40evf: Bump i40e to 1.3.9 and i40evf to 1.3.5 Bump version and update the copyright year for i40evf. Change-ID: Iddb81b9dba09f0dc57ab54937b5821ecdd721ff6 Signed-off-by: Catherine Sullivan 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 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 9fffa3f34dff2585ae86cd5b59c68ad2d4172f25 Author: Neerav Parikh Date: Fri Jul 10 19:36:09 2015 -0400 i40e/i40evf: Cache the CEE TLV status returned from firmware Store the CEE TLV status returned by firmware to allow drivers to dump that for debug purposes. Change-ID: Ie3c4cf8cebabee4f15e1e3fdc4fc8a68bbca40ee Signed-off-by: Neerav Parikh Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_dcb.c | 4 ++++ drivers/net/ethernet/intel/i40e/i40e_type.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 + 3 files changed, 6 insertions(+) commit b8262a6dfad8825e0b117fe5e3a1715a585bbd79 Author: Anjali Singhai Jain Date: Fri Jul 10 19:36:08 2015 -0400 i40e/i40evf: add VIRTCHNL_VF_OFFLOAD flag Add virtual channel offload capability to support RX polling mode in the VF. Change-ID: Ib643ae2a7506dfc75fc489fc207493fabefa4832 Signed-off-by: Jingjing Wu Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_register.h | 7 +++++++ drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 1 + drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 12 ++++++++++++ drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 1 + 4 files changed, 21 insertions(+) commit 2b20c88397fde2902c7834bb9e3ef8afc0237306 Author: Greg Rose Date: Fri Jul 10 19:36:07 2015 -0400 i40e: Remove redundant and unneeded messages The kernel notifies all VXLAN capable registered drivers, i.e. any driver that implements ndo_add_vxlan_port(), of the addition of a port so that the driver can track which ports are in use. There's no need to log this - it just fills the system log with useless and irksome noise. Also, when failing to init SR-IOV interfaces the driver was printing the same message twice. Just remove the inner printk and let the outer message catch enable as well as the other failures. Change-ID: Id5ecb1d425c2a357ee2bc1635dab24553831dade Signed-off-by: Greg Rose Signed-off-by: Jesse Brandeburg Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 -- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 -- 2 files changed, 4 deletions(-) commit e02a7f83d84d0580a62df8d4c4e95cd8791c6645 Author: Anjali Singhai Jain Date: Fri Jul 10 19:36:06 2015 -0400 i40evf: Remove PF specific register definitions from the VF There were quite a few issues when the wrong defines were getting used in the VF driver. This patch fixes the code where PF driver registers were getting used for VF driver, and also removes the registers that are not being used from the VF register file. Change-ID: If116a9730112950d006eb8ec763998fc914cc839 Signed-off-by: Anjali Singhai Jain Acked-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40e_adminq.c | 17 +- drivers/net/ethernet/intel/i40evf/i40e_common.c | 2 +- drivers/net/ethernet/intel/i40evf/i40e_register.h | 3093 --------------------- 3 files changed, 4 insertions(+), 3108 deletions(-) commit b1f3366b86a9e99f4d4d557b02e0f53fa7ccd72c Author: Anjali Singhai Jain Date: Fri Jul 10 19:36:05 2015 -0400 i40evf: Use the correct defines to match the VF registers Use CTLN1 instead of CTLN for the VF relative register space. Change-ID: Iefba63faf0307af55fec8dbb64f26059f7d91318 Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 28 +++++++++--------- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 38 ++++++++++++------------- 2 files changed, 33 insertions(+), 33 deletions(-) commit cd494fb4c2ba56dd9bb3919dc55565c2cc1551b6 Author: Mitch Williams Date: Fri Jul 10 19:36:04 2015 -0400 i40e: correct spelling error Turns out that 'inavlid' is an inavlid spelling for 'invalid'. Change-ID: Ie1fe2d0f8d1ba75ab880594875ec2e4152a76f61 Signed-off-by: Mitch Williams 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 b4e53f02d7356809acbab673e6c20773cf56dbd6 Author: Greg Rose Date: Fri Jul 10 19:36:03 2015 -0400 i40e: Fix comment for ethtool diagnostic link test The existing comment is incorrect. Add new comment to point out that the PF reset does not affect link but if the reset is changed to a different type that does affect link then the link test would need to be moved to before the reset. Change-ID: I28d786f46e9465860babdee61c1dba51016464df Reported-by: Jeremiah Kyle Signed-off-by: Greg Rose Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit fe860afb4638f5e62e7d861bfc35a1580fb633bb Author: Neerav Parikh Date: Fri Jul 10 19:36:02 2015 -0400 i40e/i40evf: Add capability to gather VEB per TC stats This patch adds capability to update per VEB per TC statistics and dump it via ethtool. It also adds a structure to hold VEB per TC statistics. The fields can be filled by reading the GLVEBTC_* counters. Change-ID: I28b4759b9ab6ad5a61f046a1bc9ef6b16fe31538 Signed-off-by: Neerav Parikh 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 | 23 ++++++++++++++++++++- drivers/net/ethernet/intel/i40e/i40e_main.c | 28 +++++++++++++++++++++++++- drivers/net/ethernet/intel/i40e/i40e_type.h | 8 ++++++++ drivers/net/ethernet/intel/i40evf/i40e_type.h | 8 ++++++++ 5 files changed, 67 insertions(+), 2 deletions(-) commit c2b6bd7e91aad8440a2f55bdbde6f5a8ae19fac5 Author: Christian König Date: Tue Aug 25 21:39:31 2015 +0200 drm/amdgpu: fix wait queue handling in the scheduler Freeing up a queue after signalling it isn't race free. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 16 ++++++++-------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) commit bd755d08709f05a81104e8f81d721b5cc353a2b3 Author: Christian König Date: Mon Aug 24 14:57:26 2015 +0200 drm/amdgpu: remove extra parameters from scheduler callbacks Signed-off-by: Christian König Acked-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 11 ++++------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 4 ++-- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 7 ++----- 3 files changed, 8 insertions(+), 14 deletions(-) commit 510efb2682b35790b2274639ab985fe385bb526a Author: Greg Rose Date: Fri Jul 10 19:36:01 2015 -0400 i40e: Fix ethtool offline diagnostic with netqueues Treat netqueues the same way we do virtual functions when someone wants to run the ethtool offline diagnostic test. Change-ID: Id48d2b933f1fd0db7be06305a93c6ebe3dc821f5 Signed-off-by: Greg Rose Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 88079006dc412c5d1676f9f6e9c4d72a209eb556 Author: Christian König Date: Mon Aug 24 14:29:40 2015 +0200 drm/amdgpu: wake up scheduler only when neccessary Signed-off-by: Christian König Acked-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 062c7fb3ebb42d2a50d4644b3e49e731361e6951 Author: Christian König Date: Fri Aug 21 15:46:43 2015 +0200 drm/amdgpu: remove entity idle timeout v2 Removing the entity from scheduling can deadlock the whole system. Wait forever till the remaining IBs are scheduled. v2: fix comment as well Signed-off-by: Christian König Acked-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou (v1) drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 18 +++++------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 6 ++---- 2 files changed, 7 insertions(+), 17 deletions(-) commit 02537d63623ce5281c20d76f1b61797a7836acf4 Author: Christian König Date: Tue Aug 25 15:05:20 2015 +0200 drm/amdgpu: fix postclose order The context needs to finish before everything else. Signed-off-by: Christian König Acked-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 26cdc443fd8fccccdfb17fd2845cf9233a995325 Author: Anjali Singhai Jain Date: Fri Jul 10 19:36:00 2015 -0400 i40e: Fix legacy interrupt mode in the driver This patch fixes the driver flow to take into account legacy interrupts. Over time we added code that assumes MSIX is the only mode that the driver runs in. It also enables a legacy workaround to trigger SWINT when the TX ring has non-cache aligned descriptors pending and interrupts are disabled. We work with a single vector in MSI mode too, so apply the same restrictions as Legacy. Change-ID: I826ddff1f9bd45d2dbe11f56a3ddcef0dbf42563 Signed-off-by: Anjali Singhai Jain Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit c7ae72c01be10f539f385f624713f8ba0aa11a8f Author: Chunming Zhou Date: Tue Aug 25 17:23:45 2015 +0800 drm/amdgpu: use IB for copy buffer of eviction This aids handling buffers moves with the scheduler. Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 8 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 12 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 77 ++++++++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 16 +++--- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 18 +++---- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 18 +++---- 8 files changed, 81 insertions(+), 79 deletions(-) commit 113cd9dacbad4906e1c8db09233b9fdcb002f80d Author: Junwei Zhang Date: Wed Aug 26 09:34:59 2015 +0800 drm/amdgpu: adjust the judgement of removing fence callback The fence in the array may be skipped if wait_all is false, thus the related callback is not initialized with list head. So removing this kind callback will cause NULL pointer reference. Signed-off-by: Junwei Zhang Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02b42498f383a6c24f7c751d4fe89a911a249242 Author: Catherine Sullivan Date: Fri Jul 10 19:35:59 2015 -0400 i40e: Move function calls to i40e_shutdown instead of i40e_suspend We should be stopping the service task and flow director on shutdown not on suspension. Signed-off-by: Catherine Sullivan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 9f7c94487197df9aaca172027419af57e5dc7d6f Author: Shannon Nelson Date: Fri Jul 10 19:35:57 2015 -0400 i40e: add RX to port CRC errors label The port.crc_errors is really an RX counter, so let's mark it as such. Change-ID: I179afd3f8a95d45229bb4163a6aeb01f0d2d250b Signed-off-by: Shannon Nelson 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 ecbb44e8f81b860ef279b0f176a878da9ebd614e Author: Mitch Williams Date: Fri Jul 10 19:35:56 2015 -0400 i40e: don't degrade __le16 Sparse cries when we compare an __le16 to a u16, almost like it cares about architectures other than x86. Weird. Use the le16_to_cpu macro to make it stop crying. Change-ID: Id068f4d7868a2d3df234a791a76d15938f37db35 Signed-off-by: Mitch Williams Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 ++ drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) commit 66bc2f51ef7deabc8b8f3baa98ae64b65e5e973a Author: Stefan Assmann Date: Wed Aug 26 13:11:49 2015 -0700 Input: psmouse - add small delay for IBM trackpoint pass-through mode There are trackpoint devices that fail to respond to the PS2 command PSMOUSE_CMD_GETID if immediately queried after the parent device is deactivated. Add a small delay for the hardware to get in a sane state before sending any PS2 commands. One example of such a system is: Lenovo ThinkPad X120e, model 30515QG synaptics: Touchpad model: 1, fw: 8.0, id: 0x1e2b1, caps: 0xd001a3/0x940300/0x121c00, board id: 1811, fw id: 797391 Signed-off-by: Stefan Assmann Signed-off-by: Dmitry Torokhov drivers/input/mouse/psmouse-base.c | 4 ++++ 1 file changed, 4 insertions(+) commit a5e090acbf545c0a3b04080f8a488b17ec41fe02 Author: Russell King Date: Wed Aug 19 20:40:41 2015 +0100 ARM: software-based priviledged-no-access support Provide a software-based implementation of the priviledged no access support found in ARMv8.1. Userspace pages are mapped using a different domain number from the kernel and IO mappings. If we switch the user domain to "no access" when we enter the kernel, we can prevent the kernel from touching userspace. However, the kernel needs to be able to access userspace via the various user accessor functions. With the wrapping in the previous patch, we can temporarily enable access when the kernel needs user access, and re-disable it afterwards. This allows us to trap non-intended accesses to userspace, eg, caused by an inadvertent dereference of the LIST_POISON* values, which, with appropriate user mappings setup, can be made to succeed. This in turn can allow use-after-free bugs to be further exploited than would otherwise be possible. Signed-off-by: Russell King arch/arm/Kconfig | 15 +++++++++++++++ arch/arm/include/asm/assembler.h | 30 ++++++++++++++++++++++++++++++ arch/arm/include/asm/domain.h | 21 +++++++++++++++++++-- arch/arm/include/asm/uaccess.h | 14 ++++++++++++++ arch/arm/kernel/process.c | 36 ++++++++++++++++++++++++++++++------ arch/arm/kernel/swp_emulate.c | 3 +++ arch/arm/lib/csumpartialcopyuser.S | 14 ++++++++++++++ 7 files changed, 125 insertions(+), 8 deletions(-) commit 2190fed67ba6f3e8129513929f2395843645e928 Author: Russell King Date: Thu Aug 20 10:32:02 2015 +0100 ARM: entry: provide uaccess assembly macro hooks Provide hooks into the kernel entry and exit paths to permit control of userspace visibility to the kernel. The intended use is: - on entry to kernel from user, uaccess_disable will be called to disable userspace visibility - on exit from kernel to user, uaccess_enable will be called to enable userspace visibility - on entry from a kernel exception, uaccess_save_and_disable will be called to save the current userspace visibility setting, and disable access - on exit from a kernel exception, uaccess_restore will be called to restore the userspace visibility as it was before the exception occurred. These hooks allows us to keep userspace visibility disabled for the vast majority of the kernel, except for localised regions where we want to explicitly access userspace. Signed-off-by: Russell King arch/arm/include/asm/assembler.h | 17 +++++++++++++++++ arch/arm/kernel/entry-armv.S | 30 ++++++++++++++++++++++-------- arch/arm/kernel/entry-common.S | 2 ++ arch/arm/kernel/entry-header.S | 3 +++ arch/arm/mm/abort-ev4.S | 1 + arch/arm/mm/abort-ev5t.S | 1 + arch/arm/mm/abort-ev5tj.S | 1 + arch/arm/mm/abort-ev6.S | 7 ++++--- arch/arm/mm/abort-ev7.S | 1 + arch/arm/mm/abort-lv4t.S | 2 ++ arch/arm/mm/abort-macro.S | 1 + 11 files changed, 55 insertions(+), 11 deletions(-) commit aa06e5c1f9c2b466712be904cc5b56a813e24cfd Author: Russell King Date: Wed Aug 26 20:07:25 2015 +0100 ARM: entry: get rid of multiple macro definitions The following structure is just asking for trouble: #ifdef CONFIG_symbol .macro foo ... .endm .macro bar ... .endm .macro baz ... .endm #else .macro foo ... .endm .macro bar ... .endm #ifdef CONFIG_symbol2 .macro baz ... .endm #else .macro baz ... .endm #endif #endif such as one defintion being updated, but the other definitions miss out. Where the contents of a macro needs to be conditional, the hint is in the first clause of this very sentence. "contents" "conditional". Not multiple separate definitions, especially not when much of the macro is the same between different configs. This patch fixes this bad style, which had caused the Thumb2 code to miss-out on the uaccess updates. Signed-off-by: Russell King arch/arm/kernel/entry-header.S | 109 +++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 65 deletions(-) commit 19b2c30d3cce928010138cae4b9e57c388aa065c Author: Chao Yu Date: Wed Aug 26 20:34:48 2015 +0800 f2fs: update extent tree in batches This patch introduce a new helper f2fs_update_extent_tree_range which can do extent mapping update at a specified range. The main idea is: 1) punch all mapping info in extent node(s) which are at a specified range; 2) try to merge new extent mapping with adjacent node, or failing that, insert the mapping into extent tree as a new node. In order to see the benefit, I add a function for stating time stamping count as below: uint64_t rdtsc(void) { uint32_t lo, hi; __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)); return (uint64_t)hi << 32 | lo; } My test environment is: ubuntu, intel i7-3770, 16G memory, 256g micron ssd. truncation path: update extent cache from truncate_data_blocks_range non-truncataion path: update extent cache from other paths total: all update paths a) Removing 128MB file which has one extent node mapping whole range of file: 1. dd if=/dev/zero of=/mnt/f2fs/128M bs=1M count=128 2. sync 3. rm /mnt/f2fs/128M Before: total count average truncation: 7651022 32768 233.49 Patched: total count average truncation: 3321 33 100.64 b) fsstress: fsstress -d /mnt/f2fs -l 5 -n 100 -p 20 Test times: 5 times. Before: total count average truncation: 5812480.6 20911.6 277.95 non-truncation: 7783845.6 13440.8 579.12 total: 13596326.2 34352.4 395.79 Patched: total count average truncation: 1281283.0 3041.6 421.25 non-truncation: 7355844.4 13662.8 538.38 total: 8637127.4 16704.4 517.06 1) For the updates in truncation path: - we can see updating in batches leads total tsc and update count reducing explicitly; - besides, for a single batched updating, punching multiple extent nodes in a loop, result in executing more operations, so our average tsc increase intensively. 2) For the updates in non-truncation path: - there is a little improvement, that is because for the scenario that we just need to update in the head or tail of extent node, new interface optimize to update info in extent node directly, rather than removing original extent node for updating and then inserting that updated one into cache as new node. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 217 +++++++++++++++++++++++++++++++++++-------------- fs/f2fs/f2fs.h | 2 + fs/f2fs/file.c | 12 ++- 3 files changed, 170 insertions(+), 61 deletions(-) commit 1b383bf912b25029fb180cf2cf8f33f90d6cf97f Merge: 1afe839 d332881 Author: Pablo Neira Ayuso Date: Wed Aug 26 20:33:58 2015 +0200 Merge tag 'ipvs2-for-v4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs-next Simon Horman says: ==================== Second Round of IPVS Updates for v4.3 I realise these are a little late in the cycle, so if you would prefer me to repost them for v4.4 then just let me know. The updates include: * A new scheduler from Raducu Deaconu * Enhanced configurability of the sync daemon from Julian Anastasov ==================== Signed-off-by: Pablo Neira Ayuso commit d31ff5f7f3b142b8d1ebb3da89187c54cdf2bc71 Author: Damien.Horsley Date: Wed Aug 26 17:11:40 2015 +0100 clk: pistachio: correct critical clock list Current critical clock list for pistachio enables only mips and sys clocks by default but there are also other clocks that are not claimed by anyone and needs to be enabled by default. This patch updates the critical clocks that need to be enabled by default. Add a separate struct to distinguish the critical clocks as listed: 1.) core clocks: a.) mips clock 2.) peripheral system clocks: a.) sys clock b.) sys_bus clock c.) DDR clock d.) ROM clock Fixes: b35d7c33419c("CLK: Pistachio: Register core clocks") Cc: # 4.1 Reviewed-by: Andrew Bresticker Signed-off-by: Ezequiel Garcia Signed-off-by: Damien.Horsley Signed-off-by: Govindraj Raja Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pistachio.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 7937c6c57e0da7bffa7b10bac23f230c77523e35 Author: Zdenko Pulitika Date: Wed Aug 26 17:11:39 2015 +0100 clk: pistachio: Fix PLL rate calculation in integer mode .recalc_rate callback for the fractional PLL doesn't take operating mode into account when calculating PLL rate. This results in the incorrect PLL rates when PLL is operating in integer mode. Operating mode of fractional PLL is based on the value of the fractional divider. Currently it assumes that the PLL will always be configured in fractional mode which may not be the case. This may result in the wrong output frequency. Also vco was calculated based on the current operating mode which makes no sense because .set_rate is setting operating mode. Instead, vco should be calculated using PLL settings that are about to be set. Fixes: 43049b0c83f17("CLK: Pistachio: Add PLL driver") Cc: # 4.1 Reviewed-by: Andrew Bresticker Signed-off-by: Zdenko Pulitika Signed-off-by: Govindraj Raja Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pll.c | 48 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) commit e53f21c761d141bbcbce06e9ddab3b4e0a828f2c Author: Zdenko Pulitika Date: Wed Aug 26 17:11:38 2015 +0100 clk: pistachio: Fix override of clk-pll settings from boot loader PLL enable callbacks are overriding PLL mode (int/frac) and Noise reduction (on/off) settings set by the boot loader which results in the incorrect clock rate. PLL mode and noise reduction are defined by the DSMPD and DACPD bits of the PLL control register. PLL .enable() callbacks enable PLL by deasserting all power-down bits of the PLL control register, including DSMPD and DACPD bits, which is not necessary since these bits don't actually enable/disable PLL. This commit fixes the problem by removing DSMPD and DACPD bits from the "PLL enable" mask. Fixes: 43049b0c83f17("CLK: Pistachio: Add PLL driver") Cc: # 4.1 Reviewed-by: Andrew Bresitcker Signed-off-by: Zdenko Pulitika Signed-off-by: Govindraj Raja Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pll.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 093affb009a3d87848e51217cd1a06ce1135633f Author: Zdenko Pulitika Date: Wed Aug 26 17:11:37 2015 +0100 clk: pistachio: Fix 32bit integer overflows This commit fixes 32bit integer overflows throughout the pll driver (i.e. wherever the result of integer multiplication may exceed the range of u32). One of the functions affected by this problem is .recalc_rate. It returns incorrect rate for some pll settings (not for all though) which in turn results in the incorrect rate setup of pll's child clocks. Fixes: 43049b0c83f17("CLK: Pistachio: Add PLL driver") Cc: # 4.1 Reviewed-by: Andrew Bresticker Signed-off-by: Zdenko Pulitika Signed-off-by: Govindraj Raja Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk-pll.c | 26 ++++++++++++-------------- drivers/clk/pistachio/clk.h | 14 +++++++------- 2 files changed, 19 insertions(+), 21 deletions(-) commit 1afe839e6b31a85fc53adbf8757d6373908d414d Author: Andreas Herz Date: Fri Aug 21 11:31:32 2015 +0200 netfilter: ip6t_REJECT: added missing icmpv6 codes RFC 4443 added two new codes values for ICMPv6 type 1: 5 - Source address failed ingress/egress policy 6 - Reject route to destination And RFC 7084 states in L-14 that IPv6 Router MUST send ICMPv6 Destination Unreachable with code 5 for packets forwarded to it that use an address from a prefix that has been invalidated. Codes 5 and 6 are more informative subsets of code 1. Signed-off-by: Andreas Herz Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h | 4 +++- net/ipv6/netfilter/ip6t_REJECT.c | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) commit 8c5bbe77d4cd012668cdaf501bbd1cbfb9ad1d24 Merge: dc8242f cff8245 Author: David S. Miller Date: Wed Aug 26 11:01:45 2015 -0700 Merge branch 'act_bpf_lockless' Alexei Starovoitov says: ==================== act_bpf: remove spinlock in fast path v1 version had a race condition in cleanup path of bpf_prog. I tried to fix it by adding new callback 'cleanup_rcu' to 'struct tcf_common' and call it out of act_api cleanup path, but Daniel noticed (thanks for the idea!) that most of the classifiers already do action cleanup out of rcu callback. So instead this set of patches converts tcindex and rsvp classifiers to call tcf_exts_destroy() after rcu grace period and since action cleanup logic in __tcf_hash_release() is only called when bind and refcnt goes to zero, it's guaranteed that cleanup() callback is called from rcu callback. More specifically: patches 1 and 2 - simple fixes patches 2 and 3 - convert tcf_exts_destroy in tcindex and rsvp to call_rcu patch 5 - removes spin_lock from act_bpf The cleanup of actions is now universally done after rcu grace period and in the future we can drop (now unnecessary) call_rcu from tcf_hash_destroy() patch 5 is using synchronize_rcu() in act_bpf replacement path, since it's very rare and alternative of dynamically allocating 'struct tcf_bpf_cfg' just to pass it to call_rcu looks even less appealing. ==================== Signed-off-by: David S. Miller commit cff82457c5584f6a96d2b85d1a88b81ba304a330 Author: Alexei Starovoitov Date: Tue Aug 25 20:06:35 2015 -0700 net_sched: act_bpf: remove spinlock in fast path Similar to act_gact/act_mirred, act_bpf can be lockless in packet processing with extra care taken to free bpf programs after rcu grace period. Replacement of existing act_bpf (very rare) is done with synchronize_rcu() and final destruction is done from tc_action_ops->cleanup() callback that is called from tcf_exts_destroy()->tcf_action_destroy()->__tcf_hash_release() when bind and refcnt reach zero which is only possible when classifier is destroyed. Previous two patches fixed the last two classifiers (tcindex and rsvp) to call tcf_exts_destroy() from rcu callback. Similar to gact/mirred there is a race between prog->filter and prog->tcf_action. Meaning that the program being replaced may use previous default action if it happened to return TC_ACT_UNSPEC. act_mirred race betwen tcf_action and tcfm_dev is similar. In all cases the race is harmless. Long term we may want to improve the situation by replacing the whole tc_action->priv as single pointer instead of updating inner fields one by one. Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/net/tc_act/tc_bpf.h | 2 +- net/sched/act_bpf.c | 36 +++++++++++++++++++----------------- 2 files changed, 20 insertions(+), 18 deletions(-) commit 9e528d89154b602209fda2fb92e89927bbffc976 Author: Alexei Starovoitov Date: Tue Aug 25 20:06:34 2015 -0700 net_sched: convert rsvp to call tcf_exts_destroy from rcu callback Adjust destroy path of cls_rsvp to call tcf_exts_destroy() after rcu grace period. Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/sched/cls_rsvp.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit ed7aa879ce1a0ff6468c5a6d3eb4e31169b95c4a Author: Alexei Starovoitov Date: Tue Aug 25 20:06:33 2015 -0700 net_sched: convert tcindex to call tcf_exts_destroy from rcu callback Adjust destroy path of cls_tcindex to call tcf_exts_destroy() after rcu grace period. Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/sched/cls_tcindex.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit faa54be4c78da6aa2148c539659867afdecd3e8d Author: Alexei Starovoitov Date: Tue Aug 25 20:06:32 2015 -0700 net_sched: act_bpf: remove unnecessary copy Fix harmless typo and avoid unnecessary copy of empty 'prog' into unused 'strcut tcf_bpf_cfg old'. Fixes: f4eaed28c783 ("act_bpf: fix memory leaks when replacing bpf programs") Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller net/sched/act_bpf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c645621b79828be7a46fb2694eb423b343b4bbe Author: Alexei Starovoitov Date: Tue Aug 25 20:06:31 2015 -0700 net_sched: make tcf_hash_destroy() static tcf_hash_destroy() used once. Make it static. Signed-off-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/net/act_api.h | 1 - net/sched/act_api.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit 30b139dfe0bfa8727ceec2a1d5294766943dcdc8 Author: Paul Gortmaker Date: Wed Aug 26 14:36:46 2015 +0100 scripts: add extract-cert and sign-file to .gitignore ...so "git status" doesn't nag us about them. Cc: David Woodhouse Signed-off-by: Paul Gortmaker Signed-off-by: David Howells Signed-off-by: James Morris scripts/.gitignore | 2 ++ 1 file changed, 2 insertions(+) commit f57ddcdfa146636dbdcd6ac0a6d22c15d47b08c8 Author: Axel Lin Date: Sun Aug 23 23:32:14 2015 +0800 ASoC: tegra: Use devm_ioremap_resource instead of open code Use devm_ioremap_resource() to simplify the code. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/tegra/tegra20_das.c | 23 ++++------------------ sound/soc/tegra/tegra20_i2s.c | 23 ++++------------------ sound/soc/tegra/tegra20_spdif.c | 22 ++++----------------- sound/soc/tegra/tegra30_ahub.c | 43 +++++++---------------------------------- sound/soc/tegra/tegra30_i2s.c | 23 ++++------------------ 5 files changed, 23 insertions(+), 111 deletions(-) commit 63ab645f4d8b2dc1351c41751e7ebb1b3f1c99d3 Author: Stefan Brüns Date: Sun Aug 23 16:06:30 2015 +0200 spi: check bits_per_word in spi_setup This allows drivers for devices connected via SPI to check if the controller supports a given bits_per_word value during setup. Currently any BPW value is accepted durings setup, and transfers are rejected later. Signed-off-by: Stefan Brüns Signed-off-by: Mark Brown drivers/spi/spi.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit 5aeeb78aeb4c8607cbda54a7b0dc7315171e214f Author: Sreekanth Reddy Date: Wed Jul 15 10:19:56 2015 +0530 mpt2sas, mpt3sas: Abort initialization if no memory I/O resources detected Driver crashes if the BIOS do not set up at least one memory I/O resource. This failure can happen if the device is too slow to respond during POST and is missed by the BIOS, but Linux then detects the device later in the boot process. Based on a patch from Timothy Pearson Signed-off-by: Sreekanth Reddy Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/mpt2sas/mpt2sas_base.c | 16 +++++++++------- drivers/scsi/mpt3sas/mpt3sas_base.c | 16 +++++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) commit 7d40acc38be55abb095f517e4e3a634818bc5253 Author: Jyri Sarha Date: Wed Aug 26 16:11:40 2015 +0300 ASoC: omap-hdmi-audio: Set buffer bytes step constraint to 128 Set buffer bytes step constraint to 128. A matching constraint has already been set to period size. This helps PCM setup to tolerate ALSA clients that set the PCM hw params in unusual order. Signed-off-by: Jyri Sarha Signed-off-by: Mark Brown sound/soc/omap/omap-hdmi-audio.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit dc8242f704fee4fddcbebfcc5a4d08526951444a Author: Valentin Rothberg Date: Wed Aug 26 15:36:12 2015 +0200 lib/Makefile: remove CONFIG_AVERAGE build rule The Kconfig option AVERAGE and its implementation has been removed by commit f4e774f55fe0 ("average: remove out-of-line implementation"). Remove the dead build rule in lib/Makefile. Signed-off-by: Valentin Rothberg Reviewed-by: Johannes Berg Signed-off-by: David S. Miller lib/Makefile | 2 -- 1 file changed, 2 deletions(-) commit 8d16366b5f23e928e5fd22eaeaceeb0356921fc0 Author: Bart Van Assche Date: Thu Jul 9 07:25:46 2015 -0700 qla2xxx: Avoid that sparse complains about context imbalances Surround conditional locking statements with "#ifndef __CHECKER__" / "#endif" to hide these for the sparse static source code analysis tool. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_dbg.c | 36 ++++++++++++++++++++++++++++++++++++ drivers/scsi/qla2xxx/qla_nx.c | 8 ++++++++ drivers/scsi/qla2xxx/qla_target.c | 4 ++++ drivers/scsi/qla2xxx/qla_tmpl.c | 4 ++++ 4 files changed, 52 insertions(+) commit 8a318fe16096a45c03e8c9a39449d1f750fafd27 Author: Bart Van Assche Date: Thu Jul 9 07:25:25 2015 -0700 qla2xxx: Remove dead code The "return QLA_SUCCESS" statement just above the "fw_load_failed" label cannot be reached, hence remove it. Additionally remove the "else" keyword since the code block below the if-statement ends with a return statement. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_nx.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 82e6afd49d9a5da8cdb648cb66e54432173298d7 Author: Bart Van Assche Date: Thu Jul 9 07:25:07 2015 -0700 qla2xxx: Remove a superfluous test Avoid that smatch reports the following warning: drivers/scsi/qla2xxx/qla_attr.c:1081: qla2x00_model_desc_show() warn: this array is probably non-NULL. 'vha->hw->model_desc' Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_attr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 8dfa4b5a9b44714d7710f9f452f65763629f10df Author: Bart Van Assche Date: Thu Jul 9 07:24:50 2015 -0700 qla2xxx: Fix sparse annotations This patch removes 21 casts between an __iomem pointer type and another data type but also introduces five new casts (see also the casts with "__force"). Although this patch does not change any functionality, IMHO the code with __force casts needs further review. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_def.h | 6 +-- drivers/scsi/qla2xxx/qla_iocb.c | 12 ++--- drivers/scsi/qla2xxx/qla_mbx.c | 2 +- drivers/scsi/qla2xxx/qla_mr.c | 6 +-- drivers/scsi/qla2xxx/qla_nx.c | 107 +++++++++++++++++++--------------------- drivers/scsi/qla2xxx/qla_tmpl.c | 20 ++++---- 6 files changed, 71 insertions(+), 82 deletions(-) commit 118e2ef9df2297147706d21d2a1dfeefea878c5a Author: Bart Van Assche Date: Thu Jul 9 07:24:27 2015 -0700 qla2xxx: Avoid that sparse complains about duplicate [noderef] attributes Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_dbg.c | 2 +- drivers/scsi/qla2xxx/qla_init.c | 2 +- drivers/scsi/qla2xxx/qla_iocb.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit ad950360eebb5f5f7610b13cfd08c0185ca3f146 Author: Bart Van Assche Date: Thu Jul 9 07:24:08 2015 -0700 qla2xxx: Remove __constant_ prefix Whether htonl() or __constant_htonl() is used, if the argument is a constant the conversion happens at compile time. Hence leave out the __constant_ prefix for this and other endianness conversion functions. This improves source code readability. [jejb: checkpatch fixes] Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_dbg.c | 36 +++++----- drivers/scsi/qla2xxx/qla_gs.c | 52 +++++++------- drivers/scsi/qla2xxx/qla_init.c | 143 ++++++++++++++++++-------------------- drivers/scsi/qla2xxx/qla_iocb.c | 88 ++++++++++------------- drivers/scsi/qla2xxx/qla_isr.c | 2 +- drivers/scsi/qla2xxx/qla_mbx.c | 25 ++++--- drivers/scsi/qla2xxx/qla_mr.c | 2 +- drivers/scsi/qla2xxx/qla_nx.c | 6 +- drivers/scsi/qla2xxx/qla_sup.c | 14 ++-- drivers/scsi/qla2xxx/qla_target.c | 116 +++++++++++++++---------------- 10 files changed, 231 insertions(+), 253 deletions(-) commit df3f4cd0defd5f832a806ca1f0dd6638a2df17a5 Author: Bart Van Assche Date: Thu Jul 9 07:23:46 2015 -0700 qla2xxx: Replace two macros with an inline function Replace the QLA82XX_ADDR_IN_RANGE() and QLA8044_ADDR_IN_RANGE() macros with the inline function addr_in_range(). This avoids that the compiler reports the following warning when building with W=1: comparison of unsigned expression >= 0 is always true. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_nx.c | 21 +++++++++------------ drivers/scsi/qla2xxx/qla_nx2.c | 4 ++-- drivers/scsi/qla2xxx/qla_nx2.h | 6 ++++-- 3 files changed, 15 insertions(+), 16 deletions(-) commit 52c82823cc686d4faf9e9bc4feec4bf48c36fded Author: Bart Van Assche Date: Thu Jul 9 07:23:26 2015 -0700 qla2xxx: Remove set-but-not-used variables Detected these variables by building with W=1. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_attr.c | 2 -- drivers/scsi/qla2xxx/qla_bsg.c | 5 ----- drivers/scsi/qla2xxx/qla_dbg.c | 24 ++++++------------------ drivers/scsi/qla2xxx/qla_init.c | 10 ++++------ drivers/scsi/qla2xxx/qla_iocb.c | 24 +++--------------------- drivers/scsi/qla2xxx/qla_isr.c | 3 +-- drivers/scsi/qla2xxx/qla_mbx.c | 4 ---- drivers/scsi/qla2xxx/qla_mid.c | 3 +-- drivers/scsi/qla2xxx/qla_mr.c | 10 +++------- drivers/scsi/qla2xxx/qla_nx.c | 9 +++------ drivers/scsi/qla2xxx/qla_nx2.c | 12 ++++-------- drivers/scsi/qla2xxx/qla_os.c | 6 ++---- drivers/scsi/qla2xxx/qla_target.c | 19 ++++--------------- drivers/scsi/qla2xxx/qla_tmpl.c | 3 +-- 14 files changed, 32 insertions(+), 102 deletions(-) commit 2374dd238c287fb7a370b53aad2dbc4c8f0c241c Author: Bart Van Assche Date: Thu Jul 9 07:23:02 2015 -0700 qla2xxx: Declare local functions static Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_bsg.c | 2 +- drivers/scsi/qla2xxx/qla_iocb.c | 4 ++-- drivers/scsi/qla2xxx/qla_nx.c | 2 +- drivers/scsi/qla2xxx/qla_nx2.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit c3ff356d08275960b4a36471a81d5b2685a4074e Author: Bart Van Assche Date: Thu Jul 9 07:22:38 2015 -0700 qla2xxx: Report both rsp_info and rsp_info_len Let the debug statement in qlafx00_tm_iocb_entry() report both rsp_info and rsp_info_len instead of reporting rsp_info_len twice. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_mr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e51e38494a8ecc18650efb0c840600637891de2c Author: Dmitry Torokhov Date: Thu Aug 20 14:28:48 2015 -0700 Input: synaptics - fix handling of disabling gesture mode Bit 2 of the mode byte has dual meaning: it can disable reporting of gestures when touchpad works in Relative mode or normal Absolute mode, or it can enable so called Extended W-Mode when touchpad uses enhanced Absolute mode (W-mode). The extended W-Mode confuses our driver and causes missing button presses on some Thinkpads (x250, T450s), so let's make sure we do not enable it. Also, according to the spec W mode "... bit is defined only in Absolute mode on pads whose capExtended capability bit is set. In Relative mode and in TouchPads without this capability, the bit is reserved and should be left at 0.", so let's make sure we respect this requirement as well. Reported-by: Nick Bowler Suggested-by: Gabor Balla Tested-by: Gabor Balla Tested-by: Nick Bowler Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov drivers/input/mouse/synaptics.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3fffd12839273429a185d68431f117f0a3654b07 Author: Dmitry Torokhov Date: Mon Aug 17 23:52:51 2015 -0700 i2c: allow specifying separate wakeup interrupt in device tree Instead of having each i2c driver individually parse device tree data in case it or platform supports separate wakeup interrupt, and handle enabling and disabling wakeup interrupts in their power management routines, let's have i2c core do that for us. Platforms wishing to specify separate wakeup interrupt for the device should use named interrupt syntax in their DTSes: interrupt-parent = <&intc1>; interrupts = <5 0>, <6 0>; interrupt-names = "irq", "wakeup"; This patch is inspired by work done by Vignesh R for pixcir_i2c_ts driver. Note that the original code tried to preserve any existing wakeup settings from userspace but was not quite right in that regard: it would preserve wakeup flag set by userspace upon driver rebinding; but it would re-arm the wakeup flag if it was disabled by userspace. We think that resetting the flag upon re-binding the driver is proper behavior as the driver is responsible for setting up and handling wakeups. Signed-off-by: Dmitry Torokhov Tested-by: Vignesh R [wsa: updated the commit message] Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c.txt | 16 +++++++-- drivers/i2c/i2c-core.c | 51 ++++++++++++++++++++++----- 2 files changed, 56 insertions(+), 11 deletions(-) commit 6602c452caf532893c1bde50aacda0bd17f958aa Author: Dmitry Torokhov Date: Tue Aug 25 17:04:02 2015 -0700 of/irq: export of_get_irq_byname() Similarly to of_get_irq(), let's export of_irq_get_byname(), so if a bus core can be compiled as a module (such as I2C) it can have access to the symbol. Reported-by: Stephen Rothwell Reported-by: kbuild test robot Signed-off-by: Dmitry Torokhov Acked-by: Rob Herring Signed-off-by: Wolfram Sang drivers/of/irq.c | 1 + 1 file changed, 1 insertion(+) commit 1d3f9094c6fdb5680fd3b19a5b153308d53a70ee Author: Hendrik Brueckner Date: Mon Aug 17 16:13:41 2015 +0200 s390/sclp_vt220: support magic sysrequests Implement magic sysrequest handling for the VT220 terminal (also known as the Integrated ASCII console on the HMC/SE). To invoke a "magic sysrequest" function, press "Ctrl+o" followed by a second character that designates the debugging function. The handling of the sysrq is scheduled away from the SCLP IRQ context; because large amounts of sysrq output might fill up the console buffers. The console might deadlock because it cannot empty the buffers while still in the receiving IRQ context. This behavior is the same as for the SCLP console. Reported-by: Horst Weber Signed-off-by: Hendrik Brueckner Reviewed-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/char/sclp_vt220.c | 52 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) commit ab7373bf235ede864a72f0d2f8f9a21a1748c4a2 Author: Hendrik Brueckner Date: Tue Aug 18 17:42:39 2015 +0200 s390/ctrlchar: improve handling of magic sysrequests Extract the sysrq handling from the ctrlchar_handle() into a separate function that can be directly used by other users. Introduce a new sysrq_work structure to embed the work_struct and to specify the magic sysrq function to be invoked. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky drivers/s390/char/ctrlchar.c | 16 +++++++++++----- drivers/s390/char/ctrlchar.h | 12 ++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) commit de9c35f32410c225c585535a321ce591ea001645 Author: Michael Holzheu Date: Fri Aug 21 19:29:33 2015 +0200 s390/numa: remove superfluous ARCH_WANT defines The NUMA system call "__ARCH_WANT" defines are not used by the Linux kernel, therefore remove them. Fixes: 9df62adffeb0 ("s390/numa: add core infrastructure") Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/include/asm/unistd.h | 7 ------- 1 file changed, 7 deletions(-) commit 05bfd70bcdd3cd12c061cb77b73a11ba6f87379d Author: Martin Schwidefsky Date: Wed Aug 19 16:50:10 2015 +0200 s390/3270: redraw screen on unsolicited device end If a 3270 terminal is disconnected and later reconnected again, it gets an unsolicited device end. This is currently ignored and you have to hit the clear key to get the screen redrawn. Add an automatic full redraw of the screen for this case. Signed-off-by: Martin Schwidefsky drivers/s390/char/con3270.c | 4 ++++ drivers/s390/char/tty3270.c | 4 ++++ 2 files changed, 8 insertions(+) commit e19b127f5b76ec03b9c52b64f117dc75bb39eda1 Author: Alok Pandey Date: Wed Aug 26 08:56:14 2015 -0600 NVMe: Using PRACT bit to generate and verify PI by controller This patch enables the PRCHK and reftag support when PRACT bit is set, and block layer integrity is disabled. Signed-off-by: Alok Pandey Reviewed-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 2d3a5d215e24d9bfb822ae82c6c2c5d333be076d Author: Johannes Thumshirn Date: Wed Jul 8 17:24:01 2015 +0200 st: Destroy st_index_idr on module exit Destroy st_index_idr on module exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Acked-by: Kai Mäkisara Signed-off-by: James Bottomley drivers/scsi/st.c | 1 + 1 file changed, 1 insertion(+) commit da0dc9fb4e6b0ad5a947c27a3c48985f6a2377eb Author: Bjorn Helgaas Date: Tue Jul 7 15:52:45 2015 -0500 megaraid_sas: fix whitespace errors Fix whitespace and indentation errors. No code change. [jejb: checkpatch fixes] Signed-off-by: Bjorn Helgaas Reviewed-by: Hannes Reinecke Acked-by: Sumit Saxena Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 244 +++++++++++++++--------------- 1 file changed, 118 insertions(+), 126 deletions(-) commit 1be1825453f6d75ea9c9ea0c8549ca481d94a7ab Author: Bjorn Helgaas Date: Tue Jul 7 15:52:34 2015 -0500 megaraid_sas: use dev_printk when possible Use dev_printk() when possible to make messages more useful. Signed-off-by: Bjorn Helgaas Reviewed-by: Hannes Reinecke Acked-by: Sumit Saxena Signed-off-by: James Bottomley drivers/scsi/megaraid/megaraid_sas_base.c | 304 ++++++++++++++-------------- drivers/scsi/megaraid/megaraid_sas_fusion.c | 95 +++++---- 2 files changed, 196 insertions(+), 203 deletions(-) commit 3b8a1ba378b7502c7206ab3da5ea484a132ad30c Author: Bjorn Helgaas Date: Tue Jul 7 15:52:25 2015 -0500 megaraid : use dev_printk when possible Use dev_printk() when possible to make messages more useful. Signed-off-by: Bjorn Helgaas Reviewed-by: Hannes Reinecke Acked-by: Sumit Saxena Signed-off-by: James Bottomley drivers/scsi/megaraid.c | 140 +++++++++++++++++++++++------------------------- 1 file changed, 66 insertions(+), 74 deletions(-) commit 14c3e677df9fa2e4bf87b9de683452fc140934b2 Author: Hannes Reinecke Date: Mon Jul 6 13:41:53 2015 +0200 scsi: Add ALUA state change UA handling Log the ALUA state change unit attention correctly with the message log and emit an event to allow user-space tools to react to it. Signed-off-by: Hannes Reinecke Reviewed-by: Ewan D. Milne Reviewed-by: Bart Van Assche Signed-off-by: James Bottomley drivers/scsi/scsi_error.c | 4 ++++ drivers/scsi/scsi_lib.c | 4 ++++ include/scsi/scsi_device.h | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) commit 0662292aec0528363df037ad7c66bf9949c7ce46 Author: Takashi Iwai Date: Wed Aug 26 10:23:26 2015 +0200 ALSA: usb-audio: Handle normal and auto-suspend equally In theory, the device may get suspended even at runtime PM suspend. Currently we don't save the mixer state for autopm, and it may bring inconsistency. This patch removes the special handling for autosuspend. Signed-off-by: Takashi Iwai sound/usb/card.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) commit e819cdb198319cccf4af4fc12ac4d796109d8c23 Author: Dan Carpenter Date: Fri Jul 3 11:53:03 2015 +0300 mptfusion: prevent some memory corruption These are signed values the come from the user, we put a cap on the upper bounds but not on the lower bounds. We use "karg.dataSgeOffset" to calculate "sz". We verify "sz" and proceed as if that means that "karg.dataSgeOffset" is correct but this fails to consider that the "sz" calculations can have integer overflows. Signed-off-by: Dan Carpenter Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/message/fusion/mptctl.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit a2fb3382edbea83c6f2bf6ac15e3673b2e254aad Author: Wang Nan Date: Wed Aug 26 10:57:46 2015 +0000 tracing/uprobes: Do not print '0x (null)' when offset is 0 When manually added uprobe point with zero address, 'uprobe_events' output '(null)' instead of 0x00000000: # echo p:probe_libc/abs_0 /path/to/lib.bin:0x0 arg1=%ax > \ /sys/kernel/debug/tracing/uprobe_events # cat /sys/kernel/debug/tracing/uprobe_events p:probe_libc/abs_0 /path/to/lib.bin:0x (null) arg1=%ax This patch fixes this behavior: # cat /sys/kernel/debug/tracing/uprobe_events p:probe_libc/abs_0 /path/to/lib.bin:0x0000000000000000 Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1440586666-235233-8-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo kernel/trace/trace_uprobe.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit da15bd9df4afd2f9f78cf29f85f013e3a38402b5 Author: Wang Nan Date: Wed Aug 26 10:57:45 2015 +0000 perf probe: Support probing at absolute address It should be useful to allow 'perf probe' probe at absolute offset of a target. For example, when (u)probing at a instruction of a shared object in a embedded system where debuginfo is not avaliable but we know the offset of that instruction by manually digging. This patch enables following perf probe command syntax: # perf probe 0xffffffff811e6615 And # perf probe /lib/x86_64-linux-gnu/libc-2.19.so 0xeb860 In the above example, we don't need a anchor symbol, so it is possible to compute absolute addresses using other methods and then use 'perf probe' to create the probing points. v1 -> v2: Drop the leading '+' in cmdline; Allow uprobing at offset 0x0; Improve 'perf probe -l' result when uprobe at area without debuginfo. v2 -> v3: Split bugfix to a separated patch. Test result: # perf probe 0xffffffff8119d175 %ax # perf probe sys_write %ax # perf probe /lib64/libc-2.18.so 0x0 %ax # perf probe /lib64/libc-2.18.so 0x5 %ax # perf probe /lib64/libc-2.18.so 0xd8e40 %ax # perf probe /lib64/libc-2.18.so __write %ax # perf probe /lib64/libc-2.18.so 0xd8e49 %ax # cat /sys/kernel/debug/tracing/uprobe_events p:probe_libc/abs_0 /lib64/libc-2.18.so:0x (null) arg1=%ax p:probe_libc/abs_5 /lib64/libc-2.18.so:0x0000000000000005 arg1=%ax p:probe_libc/abs_d8e40 /lib64/libc-2.18.so:0x00000000000d8e40 arg1=%ax p:probe_libc/__write /lib64/libc-2.18.so:0x00000000000d8e40 arg1=%ax p:probe_libc/abs_d8e49 /lib64/libc-2.18.so:0x00000000000d8e49 arg1=%ax # cat /sys/kernel/debug/tracing/kprobe_events p:probe/abs_ffffffff8119d175 0xffffffff8119d175 arg1=%ax p:probe/sys_write _text+1692016 arg1=%ax # perf probe -l Failed to find debug information for address 5 probe:abs_ffffffff8119d175 (on sys_write+5 with arg1) probe:sys_write (on sys_write with arg1) probe_libc:__write (on @unix/syscall-template.S:81 in /lib64/libc-2.18.so with arg1) probe_libc:abs_0 (on 0x0 in /lib64/libc-2.18.so with arg1) probe_libc:abs_5 (on 0x5 in /lib64/libc-2.18.so with arg1) probe_libc:abs_d8e40 (on @unix/syscall-template.S:81 in /lib64/libc-2.18.so with arg1) probe_libc:abs_d8e49 (on __GI___libc_write+9 in /lib64/libc-2.18.so with arg1) Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1440586666-235233-7-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 162 +++++++++++++++++++++++++++++++++++++++-- tools/perf/util/probe-event.h | 4 + tools/perf/util/probe-finder.c | 21 +----- 3 files changed, 163 insertions(+), 24 deletions(-) commit 6c6e024f0a62a6a08c06002fd3caa2307cc54fd0 Author: Wang Nan Date: Wed Aug 26 10:57:44 2015 +0000 perf probe: Fix error reported when offset without function This patch fixes a bug that, when offset is provided but function is lost, parse_perf_probe_point() will give a "" string as function name, so the checking code at the end of parse_perf_probe_point() become useless. For example: # perf probe +0x1234 Failed to find symbol in kernel Error: Failed to add events. After this patch: # perf probe +0x1234 Semantic error :Offset requires an entry function. Error: Command Parse Error. Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1440586666-235233-6-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit a6da499b76b1a75412f047ac388e9ffd69a5c55b Author: Takashi Iwai Date: Wed Aug 26 10:20:59 2015 +0200 ALSA: usb-audio: Replace probing flag with active refcount We can use active refcount for preventing autopm during probe. Signed-off-by: Takashi Iwai sound/usb/card.c | 12 ++++-------- sound/usb/usbaudio.h | 1 - 2 files changed, 4 insertions(+), 9 deletions(-) commit be07afe92a09638db9159d2c0794487d66a437a2 Author: Wang Nan Date: Wed Aug 26 10:57:43 2015 +0000 perf probe: Fix list result when address is zero When manually added uprobe point with zero address, 'perf probe -l' reports error. For example: # echo p:probe_libc/abs_0 /path/to/lib.bin:0x0 arg1=%ax > \ /sys/kernel/debug/tracing/uprobe_events # perf probe -l Error: Failed to show event list. Probing at 0x0 is possible and useful when lib.bin is not a normal shared object but is manually mapped. However, in this case kernel report: # cat /sys/kernel/debug/tracing/uprobe_events p:probe_libc/abs_0 /path/to/lib.bin:0x (null) arg1=%ax This patch supports the above kernel output. Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1440586666-235233-5-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) commit 47ab154593827b1a8f0713a2b9dd445753d551d8 Author: Takashi Iwai Date: Tue Aug 25 16:09:00 2015 +0200 ALSA: usb-audio: Avoid nested autoresume calls After the recent fix of runtime PM for USB-audio driver, we got a lockdep warning like: ============================================= [ INFO: possible recursive locking detected ] 4.2.0-rc8+ #61 Not tainted --------------------------------------------- pulseaudio/980 is trying to acquire lock: (&chip->shutdown_rwsem){.+.+.+}, at: [] snd_usb_autoresume+0x1d/0x52 [snd_usb_audio] but task is already holding lock: (&chip->shutdown_rwsem){.+.+.+}, at: [] snd_usb_autoresume+0x1d/0x52 [snd_usb_audio] This comes from snd_usb_autoresume() invoking down_read() and it's used in a nested way. Although it's basically safe, per se (as these are read locks), it's better to reduce such spurious warnings. The read lock is needed to guarantee the execution of "shutdown" (cleanup at disconnection) task after all concurrent tasks are finished. This can be implemented in another better way. Also, the current check of chip->in_pm isn't good enough for protecting the racy execution of multiple auto-resumes. This patch rewrites the logic of snd_usb_autoresume() & co; namely, - The recursive call of autopm is avoided by the new refcount, chip->active. The chip->in_pm flag is removed accordingly. - Instead of rwsem, another refcount, chip->usage_count, is introduced for tracking the period to delay the shutdown procedure. At the last clear of this refcount, wake_up() to the shutdown waiter is called. - The shutdown flag is replaced with shutdown atomic count; this is for reducing the lock. - Two new helpers are introduced to simplify the management of these refcounts; snd_usb_lock_shutdown() increases the usage_count, checks the shutdown state, and does autoresume. snd_usb_unlock_shutdown() does the opposite. Most of mixer and other codes just need this, and simply returns an error if it receives an error from lock. Fixes: 9003ebb13f61 ('ALSA: usb-audio: Fix runtime PM unbalance') Reported-and-tested-by: Alexnader Kuleshov Signed-off-by: Takashi Iwai sound/usb/card.c | 74 +++++++++++++++++++--------- sound/usb/endpoint.c | 10 ++-- sound/usb/mixer.c | 32 ++++-------- sound/usb/mixer_quirks.c | 126 ++++++++++++++++++++--------------------------- sound/usb/pcm.c | 32 ++++++------ sound/usb/proc.c | 4 +- sound/usb/usbaudio.h | 10 ++-- 7 files changed, 145 insertions(+), 143 deletions(-) commit 614e2fdbd79b47ddf63a1ccd3f2343e98c3077fb Author: Wang Nan Date: Wed Aug 26 10:57:42 2015 +0000 perf probe: Fix list result when symbol can't be found 'perf probe -l' reports error if it is unable find symbol through address. Here is an example. # echo 'p:probe_libc/abs_5 /lib64/libc.so.6:0x5' > /sys/kernel/debug/tracing/uprobe_events # cat /sys/kernel/debug/tracing/uprobe_events p:probe_libc/abs_5 /lib64/libc.so.6:0x0000000000000005 # perf probe -l Error: Failed to show event list Also, this situation triggers a logical inconsistency in convert_to_perf_probe_point() that, it returns ENOMEM but actually it never try strdup(). This patch removes !tp->module && !is_kprobe condition, so it always uses address to build function name if symbol not found. Test result: # perf probe -l probe_libc:abs_5 (on 0x5 in /lib64/libc.so.6) Signed-off-by: Wang Nan Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1440586666-235233-4-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0bdede8a3e4ff7710622a2e6713d04b3243c24a8 Author: Jiri Olsa Date: Wed Aug 26 15:01:03 2015 +0200 tools build: Allow duplicate objects in the object list It's sometimes useful to specify the object affiliation to multiple config options like: libperf-$(CONFIG_X86) += tsc.o libperf-$(CONFIG_AUXTRACE) += tsc.o while the object itself is linked only once. Adding the support for this and ignoring duplicate objects in the object list. Suggested-by: Arnaldo Carvalho de Melo Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/20150826130103.GF22670@krava.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Documentation/Build.txt | 1 + tools/build/Makefile.build | 2 +- tools/build/tests/ex/Build | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) commit 18b9a05868391e8f617febb4528bc1765dc921cf Author: Jiri Olsa Date: Wed Aug 26 10:07:50 2015 +0200 perf tools: Remove export.h from MANIFEST We don't carry an export.h wrapper anymore, remove it from the MANIFEST file to avoid breaking the make perf-tar targets. Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/20150826080750.GD22670@krava.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/MANIFEST | 1 - 1 file changed, 1 deletion(-) commit e486367f0101d43a044404ed2fa35aa043b19667 Author: Wang Nan Date: Tue Aug 25 13:27:35 2015 +0000 perf probe: Prevent segfault when reading probe point with absolute address 'perf probe -l' panic if there is a manually inserted probing point with absolute address. For example: # echo 'p:probe/abs_ffffffff811e6615 0xffffffff811e6615' > /sys/kernel/debug/tracing/kprobe_events # perf probe -l Segmentation fault (core dumped) This patch fix this problem by considering the situation that "tp->symbol == NULL" in find_perf_probe_point_from_dwarf() and find_perf_probe_point_from_map(). After this patch: # perf probe -l probe:abs_ffffffff811e6615 (on SyS_write+5@fs/read_write.c) And when debug info is missing: # rm -rf ~/.debug # mv /lib/modules/4.2.0-rc1+/build/vmlinux /lib/modules/4.2.0-rc1+/build/vmlinux.bak # perf probe -l probe:abs_ffffffff811e6615 (on sys_write+5) Signed-off-by: Wang Nan Tested-by: Arnaldo Carvalho de Melo Acked-by: Masami Hiramatsu Cc: Namhyung Kim Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1440509256-193590-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c60f99445aed684b5a8d84dcb84f5a06c1f70430 Author: Bjorn Helgaas Date: Sun Jul 12 18:11:20 2015 -0500 MIPS: MT: Remove "weak" from vpe_run() declaration Weak header file declarations are error-prone because they make every definition weak, and the linker chooses one based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node decl")). That's not a problem for vpe_run() because Kconfig ensures there's never more than one definition: - vpe_run() is defined in arch/mips/kernel/vpe-mt.c if CONFIG_MIPS_VPE_LOADER_MT=y - vpe_run() is defined in arch/mips/mti-malta/malta-amon.c if CONFIG_MIPS_CMP=y - CONFIG_MIPS_VPE_LOADER_MT cannot be set if CONFIG_MIPS_CMP=y But it's simpler to verify correctness if we remove "weak" from the picture and test the config symbols directly. Remove "weak" from the vpe_run() declaration and use #if to test whether a definition should be present. Signed-off-by: Bjorn Helgaas Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: James Hogan Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10684/ Signed-off-by: Ralf Baechle arch/mips/include/asm/vpe.h | 2 +- arch/mips/kernel/vpe.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit 1c205b9cc6f66c5caa91fa2644dcf75254c3bfe1 Author: Bjorn Helgaas Date: Sun Jul 12 18:11:12 2015 -0500 MIPS: VPE: Exit vpe_release() early if vpe_run() isn't defined vpe_run() is a weak symbol. If there's no definition of it, its value is zero. If vpe_run is zero, return failure early. We're going to fail anyway, so there's no point in getting a VPE and attempting to load it. Signed-off-by: Bjorn Helgaas Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Cc: James Hogan Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10683/ Signed-off-by: Ralf Baechle arch/mips/kernel/vpe.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 27d8d449ba7c553e9e004aaa07b225625b20fd2d Author: Bjorn Helgaas Date: Sun Jul 12 18:11:04 2015 -0500 MIPS: Remove "weak" from platform_maar_init() declaration Weak header file declarations are error-prone because they make every definition weak, and the linker chooses one based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node decl")). platform_maar_init() is defined in: - arch/mips/mm/init.c (where it is marked "weak") - arch/mips/mti-malta/malta-memory.c (without annotation) The "weak" attribute on the platform_maar_init() extern declaration applies to the platform-specific definition in arch/mips/mti-malta/malta-memory.c, so both definitions are weak, and which one we get depends on link order. Remove the "weak" attribute from the declaration. That makes the malta definition strong, so it will always be preferred if it is present. Signed-off-by: Bjorn Helgaas CC: linux-mips@linux-mips.org Reviewed-by: James Hogan Cc: Andrew Bresticker Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10682/ Signed-off-by: Ralf Baechle arch/mips/include/asm/maar.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8dedde6b289c51ba216fdf5467fc85a673775489 Author: Bjorn Helgaas Date: Sun Jul 12 18:10:56 2015 -0500 MIPS: CPC: Remove "weak" from mips_cpc_phys_base() and make it static There's only one implementation of mips_cpc_phys_base(), and it's only used within the same file, so it doesn't need to be weak, and it doesn't need an extern declaration. Remove the extern mips_cpc_phys_base() declaration and make it static. [ralf@linux-mips.org: Fixed conflict.] Signed-off-by: Bjorn Helgaas CC: linux-mips@linux-mips.org Cc: Andrew Bresticker Cc: James Hogan Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10681/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cpc.h | 10 ---------- arch/mips/kernel/mips-cpc.c | 9 ++++++++- 2 files changed, 8 insertions(+), 11 deletions(-) commit 9b4685de77afd688407fd56cc350083a0a6a0516 Author: Paul Burton Date: Mon Jul 13 17:14:22 2015 +0100 MIPS: Drop CONFIG_RUNTIME_DEBUG & debug.h The debug.h header provided some MIPS-specific debug macros, which are no longer used at all. Remove them. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10693/ Signed-off-by: Ralf Baechle arch/mips/Kconfig.debug | 9 -------- arch/mips/include/asm/debug.h | 48 ------------------------------------------- 2 files changed, 57 deletions(-) commit 2dca88da835616c3c65d1e4167288346fd67f02f Author: Paul Burton Date: Mon Jul 13 17:14:21 2015 +0100 MIPS: ops-emma2rh: Drop nonsensical db_assert The db_assert call checks whether the bus_num pointer is non-NULL, but does so after said pointer has been dereferenced by the assignment on the previous line. Thus the check is pointless & likely to have been optimised out by the compiler anyway. The check_args function is static & only ever called from the local file with bus_num being a pointer to an on-stack variable, so the check seems somewhat overzealous anyway. Simply remove it. Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10692/ Signed-off-by: Ralf Baechle arch/mips/pci/ops-emma2rh.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit e51395d2739d0bb4991b6b531e1066475aae9bfd Author: Thomas Gleixner Date: Mon Jul 13 20:46:10 2015 +0000 MIPS: rt3883: Prepare rt3883_pci_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: linux-mips@linux-mips.org Cc: LKML Patchwork: https://patchwork.linux-mips.org/patch/10706/ Signed-off-by: Ralf Baechle arch/mips/pci/pci-rt3883.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 31429d1a74c01875d7dad72a6a1d75d8eeca2bc6 Author: Thomas Gleixner Date: Mon Jul 13 20:46:09 2015 +0000 MIPS: netlogic: Prepare ipi handlers for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: linux-mips@linux-mips.org Cc: LKML Patchwork: https://patchwork.linux-mips.org/patch/10705/ Signed-off-by: Ralf Baechle arch/mips/netlogic/common/smp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 56a86c352b02ce2fe09a72771ef4334632a1f9c1 Author: Thomas Gleixner Date: Mon Jul 13 20:46:07 2015 +0000 MIPS: octeon: Replace the homebrewn flow handler The gpio interrupt handling of octeon contains a homebrewn flow handler which calls either handle_level_irq or handle_edge_irq depending on the trigger type. Thats an extra conditional and call in the interrupt handling path. The proper way to handle different types and therefor different flows is to update the handler in the irq_set_type() callback. Remove the extra indirection and add the handler update to octeon_irq_ciu_gpio_set_type(). At mapping time it defaults to handle_level_irq which gets updated if the device tree contains a different trigger type. Signed-off-by: Thomas Gleixner Cc: David Daney Cc: Jiang Liu Cc: linux-mips@linux-mips.org Cc: LKML Patchwork: https://patchwork.linux-mips.org/patch/10704/ Signed-off-by: Ralf Baechle arch/mips/cavium-octeon/octeon-irq.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 9d9a2fa7dcbd05a1608a6a38b6ec1a092e117c3c Author: Thomas Gleixner Date: Mon Jul 13 20:46:06 2015 +0000 MIPS: ath91: Remove pointless irqdisable/enable The various interrupt flow handlers in ath79 are cascading interrupt handlers. They all have a disable_irq_nosync()/enable_irq() pair around the generic_handle_irq() call. The value of this disable/enable is zero because its a complete noop: disable_irq_nosync() merily increments the disable count without actually masking the interrupt. enable_irq() soleley decrements the disable count without touching the interrupt chip. The interrupt cannot arrive again because the complete call chain runs with interrupts disabled. Remove it. Signed-off-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: LKML Cc: Jiang Liu Patchwork: https://patchwork.linux-mips.org/patch/10703/ Signed-off-by: Ralf Baechle arch/mips/ath79/irq.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit e0288a0a7bb8b28787453cb96f7aad272086def1 Author: Thomas Gleixner Date: Mon Jul 13 20:46:04 2015 +0000 MIPS: alchemy: Remove pointless irqdisable/enable bcsr_csc_handler() is a cascading interrupt handler. It has a disable_irq_nosync()/enable_irq() pair around the generic_handle_irq() call. The value of this disable/enable is zero because its a complete noop: disable_irq_nosync() merily increments the disable count without actually masking the interrupt. enable_irq() soleley decrements the disable count without touching the interrupt chip. The interrupt cannot arrive again because the complete call chain runs with interrupts disabled. Remove it. [ralf@linux-mips.org: Fold in followup fix from Thomas Gleixner.] Signed-off-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: LKML Cc: Jiang Liu Patchwork: https://patchwork.linux-mips.org/patch/10702/ Patchwork: https://patchwork.linux-mips.org/patch/10708/ Signed-off-by: Ralf Baechle arch/mips/alchemy/devboards/bcsr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9154566ee3edd0f6a7aa4ef8bed76d3cd57bcb88 Author: Thomas Gleixner Date: Mon Jul 13 20:46:02 2015 +0000 MIPS: bcm63xx: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Ralf Baechle Cc: linux-mips@linux-mips.org Cc: LKML Patchwork: https://patchwork.linux-mips.org/patch/10701/ Signed-off-by: Ralf Baechle arch/mips/bcm63xx/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5a06545008514ce4b9315284b4ddff31bfa9d77e Author: Thomas Gleixner Date: Mon Jul 13 20:46:01 2015 +0000 MIPS: alchemy: Use irq_set_chip_handler_name_locked() Hand in irq_data and avoid the redundant lookup of irq_desc. Originally-from: Jiang Liu Signed-off-by: Thomas Gleixner Cc: LKML Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10700/ Signed-off-by: Ralf Baechle arch/mips/alchemy/common/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5c1594224fffccb4adb76fb460871e1047accbbd Author: Jiang Liu Date: Mon Jul 13 20:45:59 2015 +0000 MIPS: irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: LKML Patchwork: https://patchwork.linux-mips.org/patch/10699/ Signed-off-by: Ralf Baechle arch/mips/bcm63xx/irq.c | 2 +- arch/mips/cavium-octeon/octeon-irq.c | 14 ++++++++------ arch/mips/pmcs-msp71xx/msp_irq_cic.c | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) commit 586134a84c0e3e503d2e65a117e2cb06f376aac8 Author: Thomas Gleixner Date: Mon Jul 13 20:45:58 2015 +0000 MIPS: pci-rt3883: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Ralf Baechle Cc: linux-mips@linux-mips.org Cc: LKML Cc: Jiang Liu Patchwork: https://patchwork.linux-mips.org/patch/10698/ Signed-off-by: Ralf Baechle arch/mips/pci/pci-rt3883.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4d3f77d855090e11c9823fcb00864745adaf6fae Author: Thomas Gleixner Date: Mon Jul 13 20:45:56 2015 +0000 MIPS: pci-ar724x: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: linux-mips@linux-mips.org Cc: LKML Cc: Jiang Liu Patchwork: https://patchwork.linux-mips.org/patch/10697/ Signed-off-by: Ralf Baechle arch/mips/pci/pci-ar724x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 777fd18a71866f5057b27535c47c817973293498 Author: Thomas Gleixner Date: Mon Jul 13 20:45:55 2015 +0000 MIPS: pci-ar71xx: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: linux-mips@linux-mips.org Cc: LKML Cc: Jiang Liu Patchwork: https://patchwork.linux-mips.org/patch/10696/ Signed-off-by: Ralf Baechle arch/mips/pci/pci-ar71xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f058dc80d6f964fa466650f74290a964a7f91c92 Author: Thomas Gleixner Date: Mon Jul 13 20:45:53 2015 +0000 MIPS: jz4740: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: linux-mips@linux-mips.org Cc: LKML Cc: Jiang Liu Patchwork: https://patchwork.linux-mips.org/patch/10695/ Signed-off-by: Ralf Baechle arch/mips/jz4740/gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 20a7f7e5a6739a3521529a5f2bbfddf9f545fef9 Author: Markos Chandras Date: Thu Jul 9 10:40:53 2015 +0100 MIPS: Set up FTLB probability for I6400 Set up the I6400 FTLB probability similar to P5600 and proAptiv. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10652/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mipsregs.h | 2 ++ arch/mips/kernel/cpu-probe.c | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) commit e87569cd6c57cfe8c3fbbd20a5cf5cefb8b14156 Author: Markos Chandras Date: Thu Jul 9 10:40:52 2015 +0100 MIPS: cpu-probe: Fix VTLB/FTLB configuration for R6 R6 has dropped the MMUExtDef field from the config4 register and it now returns 0. However, the return value means nothing in that case and the only supported configuration for R6 is the VTLB+FTLB (MMUextDef == 3). As a result, rework the code so that the correct value is set for R6 cores. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10651/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 912708c26d673f8d043bc4a9552495fefd6ddf18 Author: Markos Chandras Date: Thu Jul 9 10:40:51 2015 +0100 MIPS: Add default case for the FTLB enable/disable code Add a default case for the FTLB enable/disable code. This will be used to detect that something went wrong in the set_ftlb_enable() function either because that function knows nothing about the running core, or simply because the core can't turn its FTLB on/off. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10650/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit c982c6d6c48b48159db481581cadbb8773219677 Author: Markos Chandras Date: Thu Jul 9 10:40:50 2015 +0100 MIPS: cpu-probe: Remove cp0 hazard barrier when enabling the FTLB We are so early in the boot process where we really don't want to stall and wait for CP0 FTLB related changes become visible so just drop the cp0 hazard barrier. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10649/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 1 - 1 file changed, 1 deletion(-) commit 6f50c83529ac1fa3444ff4be5f5b0bf3d76db678 Author: Markos Chandras Date: Thu Jul 9 10:40:49 2015 +0100 IRQCHIP: irq-mips-gic: Add support for CM3 64-bit timer irqs CM3 uses a 64-bit counter and compare registers so add support for them in the GIC counter interrupt. Signed-off-by: Markos Chandras Cc: Thomas Gleixner Cc: Jason Cooper Cc: Andrew Bresticker Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10648/ Signed-off-by: Ralf Baechle drivers/irqchip/irq-mips-gic.c | 33 ++++++++++++++++++++++++--------- include/linux/irqchip/mips-gic.h | 4 ++++ 2 files changed, 28 insertions(+), 9 deletions(-) commit c3f57f02e3a275d8b5c6dc692adb21525ccb392c Author: Markos Chandras Date: Tue Jul 14 10:26:09 2015 +0100 IRQCHIP: irq-mips-gic: Extend GIC accessors for 64-bit CMs Previously, the GIC accessors were only accessing u32 registers but newer CMs may actually be 64-bit on MIPS64 cores. As a result of which, extended these accessors to support 64-bit reads and writes. Signed-off-by: Markos Chandras Cc: Thomas Gleixner Cc: Jason Cooper Cc: Andrew Bresticker Cc: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10709/ Signed-off-by: Ralf Baechle drivers/irqchip/irq-mips-gic.c | 121 ++++++++++++++++++++++++--------------- include/linux/irqchip/mips-gic.h | 10 +++- 2 files changed, 84 insertions(+), 47 deletions(-) commit 3885c2b463f6a236e47df22ef13d13433006b951 Author: Markos Chandras Date: Thu Jul 9 10:40:47 2015 +0100 MIPS: CM: Add support for reporting CM cache errors The CM cache error reporting code is not Malta specific and as such it should live in the mips-cm.c file. Moreover, CM2 and CM3 differ in the way cache errors are being recorded to the registers so extend the previous code to add support for the CM3 as well. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10646/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 9 ++ arch/mips/kernel/mips-cm.c | 244 ++++++++++++++++++++++++++++++++++++++++ arch/mips/mti-malta/malta-int.c | 112 +----------------- 3 files changed, 254 insertions(+), 111 deletions(-) commit 391057d915f42d4942f0c65e7d55cec6662c8a54 Author: Markos Chandras Date: Thu Jul 9 10:40:46 2015 +0100 MIPS: CPC: Fix type for GCR CPC base reg for 64-bit The GCR CPC base register is 64-bit on 64-bit processors so use the appropriate field. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10645/ Signed-off-by: Ralf Baechle arch/mips/kernel/mips-cpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 038b0f536e45d85038428d2edc169f1f4089c36d Author: Markos Chandras Date: Thu Jul 9 10:40:45 2015 +0100 MIPS: CM: The CMGCRBase register is 64-bit on 64 bit kernels. The CMGCRBase register (CP0, 15, 3) register is 64-bit on MIPS64 so we change its type to unsigned long. Signed-off-by: Markos Chandras Cc: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10644/ Signed-off-by: Ralf Baechle arch/mips/kernel/mips-cm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0b584a2691ccbc3c0d4e6cb1874bcf00a921371 Author: Markos Chandras Date: Tue Jul 14 09:14:12 2015 +0100 MIPS: mips-cm: Extend CM accessors for 64-bit CPUs Previously, the CM accessors were only accessing CM registers as u32 types instead of using the native CM register with. However, newer CMs may actually be 64-bit on MIPS64 cores. Fortunately, current 64-bit CMs (CM3) hold all the useful configuration bits in the lower half of the 64-bit registers (at least most of them) so they can still be accessed using the current 32-bit accessors. Signed-off-by: Markos Chandras Cc: Thomas Gleixner Cc: Jason Cooper Cc: Andrew Bresticker Cc: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10707/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 48 +++++++++++++++++++++++++++++++++++++---- arch/mips/kernel/mips-cm.c | 4 ++++ 2 files changed, 48 insertions(+), 4 deletions(-) commit c014d164f21dbdbe721a4ec7e5147591c4eed545 Author: Markos Chandras Date: Thu Jul 9 10:40:43 2015 +0100 MIPS: Add platform callback before initializing the L2 cache Allow platforms to perform platform-specific steps before configuring the L2 cache. This is necessary for platforms with CM3 since the L2 parameters no longer live in the Config2 register. Signed-off-by: Markos Chandras Cc: Paul Burton Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10642/ Signed-off-by: Ralf Baechle arch/mips/kernel/mips-cm.c | 7 +++++++ arch/mips/mm/sc-mips.c | 10 ++++++++++ arch/mips/mti-malta/malta-init.c | 7 +++++++ 3 files changed, 24 insertions(+) commit 7d53e9c4cd21cbc82b7422c90852e56baaf7ddae Author: Paul Burton Date: Thu Jul 9 10:40:42 2015 +0100 MIPS: CM3: Add support for CM3 L2 cache. Detect the L2 cache configuration from GCR_L2_CONFIG when a CM3 is present in the system, rather than from Config2 which does not expose the L2 configuration on I6400. Signed-off-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10641/ Signed-off-by: Ralf Baechle arch/mips/mm/sc-mips.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 0ba3c125aa0ff9f993c0f9629945a0dd18d42568 Author: Paul Burton Date: Thu Jul 9 10:40:40 2015 +0100 MIPS: CM: Add GCR_L2_CONFIG register accessors Provide accessor functions for the GCR_L2_CONFIG register introduced with CM3, and define the bits included in the register. Signed-off-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10639/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 197e89e0984a2aaf1a5a998887b22e53051e3b6d Author: Paul Burton Date: Fri Jul 10 10:12:52 2015 +0100 MIPS: mips-cm: Implement mips_cm_revision Provide a function to trivially return the version of the CM present in the system, or 0 if no CM is present. The mips_cm_revision() will be used later on to determine the CM register width, so it must not use the regular CM accessors to read the revision register since that will lead to build failures due to recursive inlines. Signed-off-by: Paul Burton Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10655/ Signed-off-by: Ralf Baechle arch/mips/include/asm/mips-cm.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 5676319c91c8d668635ac0b9b6d9145c4fa418ac Author: Markos Chandras Date: Thu Jul 9 10:40:38 2015 +0100 MIPS: Kconfig: Disable MIPS MT and SMP implementations for R6 R6 does not support the MIPS MT ASE and the CMP/SMP options so restrict them in order to prevent users from selecting incompatible SMP configuration for R6 cores. We also disable the CPS/SMP option because its support hasn't been added to the CPS code yet. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10637/ Signed-off-by: Ralf Baechle arch/mips/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e57f9a2dcedc7f4847799e13a9987874a161d308 Author: Markos Chandras Date: Thu Jul 9 10:40:37 2015 +0100 MIPS: Add MIPS I6400 probe support Add a case in cpu_probe_mips for the MIPS I6400 processor ID, which sets the CPU type to the new CPU_I6400. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10636/ Signed-off-by: Ralf Baechle arch/mips/kernel/cpu-probe.c | 4 ++++ 1 file changed, 4 insertions(+) commit 4e88a8621301b992e8e3422e08bfb604772f3338 Author: Markos Chandras Date: Thu Jul 9 10:40:36 2015 +0100 MIPS: Add cases for CPU_I6400 Add a CPU_I6400 case to various switch statements, doing the same thing as for CPU_P5600. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10635/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cpu-type.h | 4 ++++ arch/mips/kernel/idle.c | 1 + arch/mips/kernel/perf_event_mipsxx.c | 6 ++++++ arch/mips/kernel/pm-cps.c | 2 ++ arch/mips/kernel/spram.c | 1 + arch/mips/kernel/traps.c | 1 + arch/mips/mm/c-r4k.c | 1 + arch/mips/oprofile/common.c | 1 + arch/mips/oprofile/op_model_mipsxx.c | 4 ++++ 9 files changed, 21 insertions(+) commit 90b8baa2c1acb8c270aa31e75d00b44193fb306f Author: Markos Chandras Date: Thu Jul 9 10:40:35 2015 +0100 MIPS: Add MIPS I6400 PRid and cputype identifiers Add a Processor ID and CPU type for the MIPS I6400 core. Signed-off-by: Markos Chandras Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10634/ Signed-off-by: Ralf Baechle arch/mips/include/asm/cpu.h | 2 ++ 1 file changed, 2 insertions(+) commit 7653716bf989cf8be04c7bedcad6bb201b1df108 Author: Alban Bedel Date: Thu Jul 9 10:51:36 2015 +0200 MIPS: ath79: irq: IRQCHIP_DECLARE moved to linux/irqchip.h Remove the ugly cross tree include now that IRQCHIP_DECLARE moved to linux/irqchip.h. Signed-off-by: Alban Bedel Cc: linux-mips@linux-mips.org Cc: Thomas Gleixner Cc: Andrew Bresticker Cc: Qais Yousef Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/10633/ Signed-off-by: Ralf Baechle arch/mips/ath79/irq.c | 1 - 1 file changed, 1 deletion(-) commit a0c81ce08791d3892aacba341efa29fadf30beda Author: Julia Lawall Date: Sun Aug 23 02:11:22 2015 +0200 gpio: xlp: fix error return code Return a negative error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Signed-off-by: Linus Walleij drivers/gpio/gpio-xlp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd96811576e646011489e38b0594dc017db21971 Author: Stefan Agner Date: Fri Aug 21 15:56:42 2015 -0700 gpio: vf610: handle level IRQ's properly The GPIO IRQ controller is able to generate level triggered interrupts, however, these were handled by handle_simple_irq so far which did not take care of IRQ masking. This lead to "nobody cared (try booting with the "irqpoll" option)" stack traces. Use the generic interrupt handlers depending on the IRQ type. Signed-off-by: Stefan Agner Signed-off-by: Linus Walleij drivers/gpio/gpio-vf610.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 58a5e1b64bb0a9ef7747840b79d290e1ad4eed44 Author: Maoguang Meng Date: Fri Aug 14 16:38:06 2015 +0800 pinctrl: mediatek: Implement wake handler and suspend resume This patch implement irq_set_wake to get who is wakeup source and setup on suspend resume. Signed-off-by: Maoguang Meng Reviewed-by: Daniel Kurtz Acked-by: Yingjoe Chen Acked-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mt8173.c | 1 + drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 91 ++++++++++++++++++++++++++- drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 4 ++ 3 files changed, 95 insertions(+), 1 deletion(-) commit d48c2c02645392483f2b88b050d21ce1db6997b3 Author: Hongzhou Yang Date: Tue Aug 25 17:32:45 2015 -0700 pinctrl: mediatek: Fix multiple registration issue. Since our common driver need support main chip and PMU at the same time, that means it will register two pinctrl device, and the pinctrl_desc structure should be used two times. But pinctrl_desc use global static definition, then the latest registered pinctrl device will overwrite the old one's, all members in pinctrl_desc will set to the new one's, such as name, pins and pins numbers, etc. This is a bug. Move pinctrl_desc into mtk_pinctrl, assign new value for each pinctrl device to fix it. Cc: stable@vger.kernel.org # v4.1+ Signed-off-by: Hongzhou Yang Reviewed-by: Axel Lin Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 21 ++++++++++----------- drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 1 + 2 files changed, 11 insertions(+), 11 deletions(-) commit b25cf30a013195a69c167209d13c19b90a7450f2 Author: Takashi Iwai Date: Wed Aug 26 14:21:14 2015 +0200 ALSA: hda - Remove superfluous pcm NULL check The variable pcm can be never NULL since it was rewritten with list_for_each_entry(). Suggested-by: Markus Osterhoff Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1c0beb27443c98257a5bced2978f2556f2ae1709 Author: kbuild test robot Date: Wed Aug 26 19:48:13 2015 +0800 ASoC: rockchip: fix platform_no_drv_owner.cocci warnings sound/soc/rockchip/rockchip_rt5645.c:214:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_rt5645.c | 1 - 1 file changed, 1 deletion(-) commit 0137d5ff8488f1d17a83508578976d3a67ba8e81 Author: kbuild test robot Date: Wed Aug 26 19:44:10 2015 +0800 ASoC: rockchip: fix platform_no_drv_owner.cocci warnings sound/soc/rockchip/rockchip_max98090.c:225:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_max98090.c | 1 - 1 file changed, 1 deletion(-) commit 580a7ee93317b901358f497c2de34f7a66066963 Author: Shinobu Uehara Date: Wed Aug 19 01:26:55 2015 +0300 pinctrl: sh-pfc: r8a7794: add USB pin groups Add USB0/1 pin groups to R8A7794 PFC driver. Signed-off-by: Shinobu Uehara [Sergei: rebased, renamed, added changelog.] Signed-off-by: Sergei Shtylyov Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 78de5d5220322456f2568de23bc2e97bba3957e3 Author: Nicholas Krause Date: Tue Aug 18 09:55:44 2015 -0400 gpio: max732x: Fix error handling in probe() This fixes error handling in the function max732x_probe by checking if the calls to the function max732x_readb fail by returning a error code. Signed-off-by: Nicholas Krause Signed-off-by: Linus Walleij drivers/gpio/gpio-max732x.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit f8ce20005d1694584448cd544be5fb32416a277c Author: Xing Zheng Date: Tue Aug 25 15:52:42 2015 +0800 ASoC: rockchip: fix a misjudgement by return Being careless, judge the return value of snd_soc_card_jack_new is opposite, so it should be fixed. Signed-off-by: Xing Zheng Reviewed-by: Dylan Reid Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ba3ac03c1f38be17102d1c76c42a7c66a3e9ff2 Merge: a8b9774 ee92a20 Author: Kalle Valo Date: Wed Aug 26 12:40:23 2015 +0300 Merge ath-next from ath.git Major changes in ath10k: * add spectral scan support for qca99x0 * add qca6164 support commit ee92a2099f79d47e1d6d4857ab308f5b15a00549 Author: Raja Mani Date: Fri Aug 21 18:42:36 2015 +0530 ath10k: fix compilation warnings in wmi phyerr pull function Below compilation warnings are observed in gcc version 4.8.2. Even though it's not seen in bit older gcc versions (for ex, 4.7.3), It's good to fix it by changing format specifier from %d to %zd in wmi pull phyerr functions. wmi.c: In function 'ath10k_wmi_op_pull_phyerr_ev': wmi.c:3567:8: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Wformat=] left_len, sizeof(*phyerr)); ^ wmi.c: In function 'ath10k_wmi_10_4_op_pull_phyerr_ev': wmi.c:3612:8: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Wformat=] left_len, sizeof(*phyerr)); ^ Fixes: 991adf71a6cd ("ath10k: refactor phyerr event handlers") Fixes: 2b0a2e0d7c2f ("ath10k: handle 10.4 firmware phyerr event") Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a9dd941d840714b96b0a60451f6a3aa3a9be8fc6 Author: Mike Marciniszyn Date: Thu Aug 13 17:16:10 2015 -0400 kbuild: avoid listing /lib/modules in kernel spec file This causes conflicts when using multiple kernels built with this mechanism. Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Michal Marek scripts/package/mkspec | 1 - 1 file changed, 1 deletion(-) commit 36582e5d4daeccf68a8a3cef9bc37b60fb7d45b9 Author: Michal Kazior Date: Thu Aug 13 14:32:26 2015 +0200 ath10k: add qca6164 support This adds additional 0x0041 PCI Device ID definition to ath10k for QCA6164 which is a 1 spatial stream sibling of the QCA6174 (which is 2 spatial stream chip). The QCA6164 needs a dedicated board.bin file which is different than the one used for QCA6174. If the board.bin is wrong the device will crash early while trying to boot firmware. The register dump will look like this: ath10k_pci 0000:02:00.0: firmware register dump: ath10k_pci 0000:02:00.0: [00]: 0x05010000 0x000015B3 0x000A012D 0x00955B31 ... Note the value 0x000A012D. Special credit goes to Alan Liu for providing support help which enabled me to come up with this patch. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 11 +++++++++++ drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/pci.c | 13 +++++++++++++ 3 files changed, 25 insertions(+) commit 4535edbd4214ce21328655434c0b75da404e29b7 Author: Raja Mani Date: Thu Aug 20 10:29:05 2015 +0530 ath10k: add spectral scan support for 10.4 fw To enable/configure spectral scan parameters in 10.4 firmware, existing wmi spectral related functions can be reused. Link those functions in 10.4 wmi ops table. In addition, adjust bin size (only when size is 68 bytes) before reporting bin samples to user space. The background for this adjustment is that qca99x0 reports bin size as 68 bytes (64 bytes + 4 bytes) in report mode 2. First 64 bytes carries in-band tones (-32 to +31) and last 4 byte carries band edge detection data (+32) mainly used in radar detection purpose. Additional last 4 bytes are stripped to make bin size valid one. This bin size adjustment will happen only for qca99x0, all other chipsets will report proper bin sizes (64/128) without extra 4 bytes being added at the end. The changes are validated in qca99x0 using 10.4 firmware. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/spectral.c | 9 +++++++++ drivers/net/wireless/ath/ath10k/wmi.c | 2 ++ 2 files changed, 11 insertions(+) commit 5e55e3cbd1042cffa6249f22c10585e63f8a29bf Author: Michal Kazior Date: Wed Aug 19 13:10:43 2015 +0200 ath10k: fix dma_mapping_error() handling The function returns 1 when DMA mapping fails. The driver would return bogus values and could possibly confuse itself if DMA failed. Fixes: 767d34fc67af ("ath10k: remove DMA mapping wrappers") Reported-by: Dan Carpenter Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htc.c | 4 +++- drivers/net/wireless/ath/ath10k/htt_tx.c | 8 ++++++-- drivers/net/wireless/ath/ath10k/pci.c | 8 ++++++-- drivers/net/wireless/ath/ath10k/wmi.c | 1 + 4 files changed, 16 insertions(+), 5 deletions(-) commit 503422d95248c1d9698735bb5803b70aa51b18ef Author: Michal Kazior Date: Wed Aug 19 13:08:53 2015 +0200 ath10k: add missing mutex unlock on failpath Kernel would complain about leaving a held lock after going back to userspace and would subsequently deadlock. Fixes: e04cafbc38c7 ("ath10k: fix peer limit enforcement") Reported-by: Dan Carpenter Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5d9452e7c52a106c9efdeb6c72fc73b184a6543f Author: Grygorii Strashko Date: Tue Aug 18 14:10:56 2015 +0300 gpio: omap: fix clk_prepare/unprepare usage As per CCF documentation (clk.txt) the clk_prepare/unprepare APIs are not allowed in atomic context. But now OMAP GPIO driver uses them while applying debounce settings and as part of PM runtime irqsafe operations: - omap_gpio_debounce() is holding the lock with IRQs off. + omap2_set_gpio_debounce() + clk_prepare_enable() + clk_prepare() this one might sleep. - pm_runtime_get_sync() is holding the lock with IRQs off + omap_gpio_runtime_suspend() + raw_spin_lock_irqsave() + omap_gpio_dbck_disable() + clk_disable_unprepare() Hence, fix it by moeving dbclk prepare/unprepare in OMAP GPIO omap_gpio_probe/omap_gpio_remove. Also, while here, ensure that debounce functionality is disabled if clk_get() failed, because otherwise kernel will carsh in omap2_set_gpio_debounce(). Reported-by: Sebastian Andrzej Siewior Acked-by: Santosh Shilimkar Tested-by: Tony Lindgren Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit 235f1eb1ab93a8e30a66c38949e6d2aeda136aec Author: Grygorii Strashko Date: Tue Aug 18 14:10:55 2015 +0300 gpio: omap: protect regs access in omap_gpio_irq_handler The access to HW registers has to be be protected in omap_gpio_irq_handler(), as it may race with code executed on another CPUs. Signed-off-by: Grygorii Strashko Acked-by: Santosh Shilimkar Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit e85ec6c3047be0646e7c572e24869c212b685c7c Author: Grygorii Strashko Date: Tue Aug 18 14:10:54 2015 +0300 gpio: omap: fix omap2_set_gpio_debounce According to TRMs: Required input line stable = (the value of the GPIO_DEBOUNCINGTIME[7:0].DEBOUNCETIME + 1) × 31, where the value of the GPIO_DEBOUNCINGTIME[7:0].DEBOUNCETIME bit field is from 0 to 255. But now omap2_set_gpio_debounce() will calculate debounce time and behave incorrectly in the following cases: 1) requested debounce time is !0 and <32 calculated DEBOUNCETIME = 0x1 == 62 us; expected value of DEBOUNCETIME = 0x0 == 31us 2) requested debounce time is 0 calculated DEBOUNCETIME = 0x1 == 62 us; expected: disable debounce and DEBOUNCETIME = 0x0 3) requested debounce time is >32 and <63 calculated DEBOUNCETIME = 0x0 and debounce will be disabled; expected: enable debounce and DEBOUNCETIME = 0x1 == 62 us Hence, rework omap2_set_gpio_debounce() to fix above cases: 1) introduce local variable "enable" and use it to identify when debounce need to be enabled or disabled. Disable debounce if requested debounce time is 0. 2) use below formula for debounce time calculation: debounce = (DIV_ROUND_UP(debounce, 31) - 1) & 0xFF; Signed-off-by: Grygorii Strashko Acked-by: Santosh Shilimkar Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit 89d18e3af8b99481589e07f92fd966ceb86eff5d Author: Grygorii Strashko Date: Tue Aug 18 14:10:53 2015 +0300 gpio: omap: switch to use platform_get_irq Switch OMAP GPIO driver to use platform_get_irq(), because it is not recommened to use platform_get_resource(pdev, IORESOURCE_IRQ, ..) for requesting IRQ resources any more, as they can be not ready yet in case of DT-boot. Signed-off-by: Grygorii Strashko Acked-by: Santosh Shilimkar Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit bb8cdf9510d5d2b67126b36747c51d531026215d Author: Grygorii Strashko Date: Tue Aug 18 14:10:52 2015 +0300 gpio: omap: remove wrong irq_domain_remove usage in probe The bank->chip.irqdomain is uninitialized at the moment when irq_domain_remove() is called, so remove this call. Signed-off-by: Grygorii Strashko Acked-by: Santosh Shilimkar Tested-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 1 - 1 file changed, 1 deletion(-) commit 91d33cfedf181cd9e1230d38e466de2f6697d317 Author: Geert Uytterhoeven Date: Mon Aug 17 15:32:16 2015 +0200 pinctrl: at91: Use generic irq_{request,release}_resources() The at91-specific irq_{request,release}_resources() callbacks are identical to the generic ones, modulo the bug fix in 5b76e79c77264899 ("gpiolib: irqchip: prevent driver unloading if gpio is used as irq only"). Until commit 8b67a1f0ad1f260f ("gpio: don't override irq_*_resources() callbacks"), the buggy at91-specific callbacks were never used, though. Hence drop the at91-specific ones in favor of the generic ones. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-at91.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 41d6bb4c890c8db01248b1bdd512a18e7bd29ca3 Author: Grygorii Strashko Date: Mon Aug 17 15:35:24 2015 +0300 gpiolib: add description for gpio irqchip fields in struct gpio_chip Add missed description for GPIO irqchip fields in struct gpio_chip. Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij include/linux/gpio/driver.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 109fdf1572be86aaf681e69b30dc5ada90ce6f35 Author: Mika Westerberg Date: Mon Aug 17 16:13:30 2015 +0300 pinctrl: cherryview: Use raw_spinlock for locking When running -rt kernel and an interrupt happens on a GPIO line controlled by Intel Cherryview/Braswell pinctrl driver we get: BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917 in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0 Preemption disabled at:[] cpu_startup_entry+0x17f/0x480 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.5-rt5 #16 ... Call Trace: [] dump_stack+0x4a/0x61 [] ___might_sleep+0xe7/0x170 [] rt_spin_lock+0x1f/0x50 [] chv_gpio_irq_ack+0x3d/0xa0 [] handle_edge_irq+0x75/0x180 [] generic_handle_irq+0x27/0x40 [] chv_gpio_irq_handler+0x7e/0x110 [] handle_irq+0xaa/0x190 ... This is because desc->lock is raw_spinlock and is held when chv_gpio_irq_ack() is called by the genirq core. chv_gpio_irq_ack() in turn takes pctrl->lock which in -rt is an rt-mutex causing might_sleep() rightfully to complain about sleeping function called from invalid context. In order to keep -rt happy but at the same time make sure that register accesses get serialized, convert the driver to use raw_spinlock instead. Suggested-by: Linus Walleij Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-cherryview.c | 70 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit 78e1c896932df5b8bcdff7bf5417d8e72a4d0d6b Author: Mika Westerberg Date: Mon Aug 17 16:03:17 2015 +0300 pinctrl: baytrail: Use raw_spinlock for locking The Intel Baytrail pinctrl driver implements irqchip callbacks which are called with desc->lock raw_spinlock held. In mainline this is fine because spinlock resolves to raw_spinlock. However, running the same code in -rt we get: BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917 in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0 Preemption disabled at:[] cpu_startup_entry+0x17f/0x480 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.5-rt5 #13 ... Call Trace: [] dump_stack+0x4a/0x61 [] ___might_sleep+0xe7/0x170 [] rt_spin_lock+0x1f/0x50 [] byt_gpio_clear_triggering+0x38/0x60 [] byt_irq_mask+0x11/0x20 [] handle_level_irq+0x83/0x150 [] generic_handle_irq+0x27/0x40 [] byt_gpio_irq_handler+0x7f/0xc0 [] handle_irq+0xaa/0x190 ... This is because in -rt spinlocks are preemptible so taking the driver private spinlock in irqchip callbacks causes might_sleep() to trigger. In order to keep -rt happy but at the same time make sure that register accesses get serialized, convert the driver to use raw_spinlock instead. Also shorten the critical section a bit in few places. Suggested-by: Linus Walleij Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-baytrail.c | 50 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 26951caf55d73ceb1967b0bf12f6d0b96853508e Author: Xiong Zhang Date: Mon Aug 17 15:55:50 2015 +0800 drm/i915/skl: enable DDI-E hotplug v2: fix one error found by checkpath.pl v3: Add one ignored break for switch-case. DDI-E hotplug function doesn't work after updating drm-intel tree, I checked the code and found this missing which isn't the root cause for broke DDI-E hp. The broken DDI-E hp function is fixed by "Adding DDI_E power well domain". Signed-off-by: Xiong Zhang Reviewed-by: Rodrigo Vivi Tested-by: Timo Aaltonen Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_irq.c | 48 +++++++++++++++++++++++++++++++++--- drivers/gpu/drm/i915/i915_reg.h | 12 +++++++++ drivers/gpu/drm/i915/intel_display.c | 3 +++ drivers/gpu/drm/i915/intel_dp.c | 3 +++ drivers/gpu/drm/i915/intel_hotplug.c | 3 +++ 6 files changed, 66 insertions(+), 4 deletions(-) commit 2508a45a924dfa4a5f6e60675aa4732d888134a7 Author: Chen Yu Date: Tue Aug 18 23:30:25 2015 +0800 surface pro 3: Add support driver for Surface Pro 3 buttons Since Surface Pro 3 does not follow the specs of "Windows ACPI Design Guide for SoC Platform", code in drivers/input/misc/soc_array.c can not detect these buttons on it. According to bios implementation, Surface Pro 3 encapsulates these buttons in a device named "VGBI", with _HID "MSHW0028". When any of the buttons is pressed, a specify ACPI notification code for this button will be delivered to "VGBI". For example, if power button is pressed down, ACPI notification code of 0xc6 will be sent by Notify(VGBI, 0xc6). This patch leverages "VGBI" to distinguish different ACPI notification code from Power button, Home button, Volume button, then dispatches these code to input layer. Lid is already covered by acpi button driver, so there's no need to rewrite. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=84651 Tested-by: Ethan Schoonover Tested-by: Peter Amidon Tested-by: Donavan Lance Tested-by: Stephen Just Signed-off-by: Chen Yu [dvhart@linux.intel.com: Formatting corrections in MAINTAINERS and Intel (c)] Signed-off-by: Darren Hart MAINTAINERS | 6 + drivers/platform/x86/Kconfig | 5 + drivers/platform/x86/Makefile | 1 + drivers/platform/x86/surfacepro3_button.c | 216 ++++++++++++++++++++++++++++++ 4 files changed, 228 insertions(+) commit 8e9d597a37e407476b4de725bef4cb1ad1f5c22c Author: Thierry Reding Date: Fri Aug 14 12:35:23 2015 +0200 drm/i915: Fix build warning on 32-bit The gtt.stolen_size field is of type size_t, and so should be printed using %zu to avoid build warnings on either 32-bit and 64-bit builds. Signed-off-by: Thierry Reding Reviewed-by: Paulo Zanoni Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_gem_stolen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f8b253147c27b8244451ee28aeb3429c5aa2e52 Author: Rodrigo Vivi Date: Mon Aug 24 16:48:44 2015 -0700 drm/i915/skl: Update DDI buffer translation programming. SKL-Y can now use the same programming for all VccIO values after an adjustment to I_boost. SKL-U DP table adjustments. 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. The other SKL Y column removes the "0.85V VccIO" so it now applies to all voltages. 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to 201Bh. 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to 201Bh. 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. v2: Fix compilation warnings as pointed by Paulo. Reference: Graphics Spec Change r97962 Cc: Arthur Runyan Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni [Jani: reformatted commit message for shorter lines.] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 75 ++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 50 deletions(-) commit fc0bfacd045a17e385b4272dfe2387ba3a6d8745 Author: Giedrius Statkevičius Date: Sun Aug 23 14:41:09 2015 +0300 hp-wireless: remove unneeded goto/label in hpwl_init acpi_bus_register_driver() already returns an appropriate value (0 on success, and some negative value on error) to be used in __init functions so the goto/label is redundant in hpwl_init thus remove it and directly return the value Signed-off-by: Giedrius Statkevičius Signed-off-by: Darren Hart drivers/platform/x86/hp-wireless.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 4c156c21c7948a0be854cbe5914af3181303e529 Author: Mark Yao Date: Fri Jun 26 17:14:46 2015 +0800 drm/rockchip: vop: support plane scale Win_full support 1/8 to 8 scale down/up engine, support all format scale. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 198 +++++++++++++++++++++++++++- drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 88 +++++++++++++ 2 files changed, 284 insertions(+), 2 deletions(-) commit 77faa1619a5ae9ed600b0836bc1eec57bad1895b Author: Mark Yao Date: Mon Jul 20 16:25:20 2015 +0800 drm/rockchip: vop: restore vop registers when resume The registers will be reset to default values when whole power domain off, so restore registers from regsbak. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 1 + 1 file changed, 1 insertion(+) commit c1998f08587a252734bad42b66b430f126f2385b Author: Mark Yao Date: Fri Jun 26 18:10:32 2015 +0800 drm/rockchip: vop: Default enable win2/3 area0 bit Win2/3 support multiple area function, but we haven't found a suitable way to use it yet, so let's just use them as other windows with only area 0 enabled. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 84c7f8ca43000ee97e556bddbbc4543e2514239d Author: Mark Yao Date: Mon Jul 20 16:16:49 2015 +0800 drm/rockchip: vop: Add yuv plane support vop support yuv with NV12, NV16 and NV24, only 2 plane yuv. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 56 +++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) commit acf8c3e0a9eb5658e6ac4379cba51dba9b941083 Author: Mark Yao Date: Mon Jul 20 16:02:47 2015 +0800 drm/rockchip: vop: Fix window dest start point Dest start point use crtc_x/y is wrong, crtc_x/y is not equal to dest.x1/y1 at plane scale. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f1c79abef5bae62aefcadf16917905cb7f98dc19 Author: Mark Yao Date: Fri Jun 26 18:07:25 2015 +0800 drm/rockchip: vop: Fix virtual stride calculation vir_stride need number words of the virtual width, and fb->pitches save bytes_per_pixel, so just div 4 switch to stride. Signed-off-by: Mark Yao drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a92d5ee8666afcb4abc7686d7b760f0fb7a0c14c Author: Takashi Iwai Date: Wed Aug 26 07:22:49 2015 +0200 ALSA: hda - Fix widget sysfs tree corruption after refresh When snd_hdac_refresh_widget_sysfs() is called before the first hda_widget_sysfs_init(), the next call overrides and eventually fails. This results in unexpected Oops, something like: BUG: unable to handle kernel NULL pointer dereference at 00000000000000c8 IP: [] hdmi_chmap_ctl_info+0x23/0x40 The fix is to add a check of the existing sysfs tree. Also, for more safety, this patch adds the checks of device_is_registered() in snd-hdac_refresh_wdiget_sysfs(), too. Fixes: fa4f18b4f402 ('ALSA: hda - Refresh widgets sysfs at probing Haswell+ HDMI codecs') Bugizlla: https://bugzilla.kernel.org/show_bug.cgi?id=103431 Reported-by: Andreas Reis Signed-off-by: Takashi Iwai sound/hda/hdac_device.c | 14 ++++++++------ sound/hda/hdac_sysfs.c | 3 +++ 2 files changed, 11 insertions(+), 6 deletions(-) commit b51aa1cc7807f4dff7b70a762aa6d8814976d706 Author: Rusty Russell Date: Wed Aug 26 10:42:27 2015 +0930 tools/lguest: Clean up include dir It contains a symlinked header we use; ignore it and clean it up on 'make clean'. Signed-off-by: Rusty Russell Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar tools/lguest/.gitignore | 1 + tools/lguest/Makefile | 1 + 2 files changed, 2 insertions(+) commit e523caa601f4a7c2fa1ecd040db921baf7453798 Author: Rusty Russell Date: Wed Aug 26 10:42:26 2015 +0930 tools/lguest: Fix redefinition of struct virtio_pci_cfg_cap Ours uses a u32 for the data, since we ensure it's always aligned and it's x86 so it doesn't matter anyway. lguest.c:128:8: error: redefinition of ‘struct virtio_pci_cfg_cap’ Signed-off-by: Rusty Russell Cc: Linus Torvalds Cc: Michael S. Tsirkin Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Fixes: 3121bb023e2db ("virtio: define virtio_pci_cfg_cap in header.") Signed-off-by: Ingo Molnar tools/lguest/lguest.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 7b7d0ca7778d359584859cb5e75965ad34f42533 Author: Dave Jiang Date: Tue Aug 25 12:58:11 2015 -0700 dmaengine: ioatdma: Fix variable array length Sparse reported: drivers/dma/ioat/prep.c:637:27: sparse: Variable length array is used. Assigning a static value for the array. Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/prep.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 5c65cb93a3d066f52a109552572304675d5a52fc Author: Dave Jiang Date: Tue Aug 25 12:58:05 2015 -0700 dmaengine: ioatdma: fix sparse "error" with prep lock The prep lock gets acquired in ioat_check_space_lock and released in ioat_tx_submit_unlock. Setting the annotations so sparse does not freak out. drivers/dma/ioat/dma.c:273:30: sparse: context imbalance in 'ioat_tx_submit_unlock' - unexpected unlock drivers/dma/ioat/dma.c:476:5: sparse: context imbalance in 'ioat_check_space_lock' - wrong count at exit Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma.c | 2 ++ 1 file changed, 2 insertions(+) commit 4d112426c3446d94b9bc56396075524b06913b1c Author: Maxime Ripard Date: Mon Aug 24 11:21:15 2015 +0200 dmaengine: hdmac: Add memset capabilities Just like for the XDMAC, the SoCs that embed the HDMAC don't have any kind of GPU, and need to accelerate a few framebuffer-related operations through their DMA controller. However, unlike the XDMAC, the HDMAC doesn't have the memset capability built-in. That can be easily emulated though, by doing a transfer with a fixed address on the variable that holds the value we want to set. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/at_hdmac.c | 121 ++++++++++++++++++++++++++++++++++++++++++-- drivers/dma/at_hdmac_regs.h | 6 +++ 2 files changed, 124 insertions(+), 3 deletions(-) commit 8a4ce226b9061fe3ab04f6db34d4b2ae645b9f65 Author: Vinod Koul Date: Mon Aug 24 13:43:14 2015 +0530 dmaengine: sort the sh Makefile Acked-by: Geert Uytterhoeven Signed-off-by: Vinod Koul drivers/dma/sh/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eeb72a8de8e5471cdce71ea7b2f908e851a73909 Author: Vinod Koul Date: Mon Aug 24 13:43:14 2015 +0530 dmaengine: sort the sh Kconfig Acked-by: Geert Uytterhoeven Signed-off-by: Vinod Koul drivers/dma/sh/Kconfig | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit b6fc6072b1268a0025850cd9d3dce25a7be0158d Author: Ashwin Chaugule Date: Wed Aug 5 09:40:31 2015 -0400 PCC: Disable compilation by default PCC is made selectable only by clients which use it. e.g. CPPC Default it to disabled so that it is not included accidentally on platforms which dont use it. Signed-off-by: Ashwin Chaugule Reviewed-by: Al Stone Signed-off-by: Rafael J. Wysocki drivers/mailbox/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 1090c3bf81ef12eb22383d4b6627d372ce5115d9 Author: Peng Tao Date: Wed Aug 26 00:13:16 2015 +0800 nfs42: remove unused declaration Reviewed-by: Christoph Hellwig Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42.h | 2 -- 1 file changed, 2 deletions(-) commit 19cf6335134d82be792831e14aae9d037d0cb30b Author: Peng Tao Date: Wed Aug 26 00:13:15 2015 +0800 nfs42: decode_layoutstats does not need res parameter Reviewed-by: Christoph Hellwig Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/nfs42xdr.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit b635f0901a4404ebc1881eb3fce0fc2f925f6728 Merge: c30ee8b ef63463 Author: David S. Miller Date: Tue Aug 25 17:01:33 2015 -0700 Merge branch 'dsa-docs' Florian Fainelli says: ==================== Documentation: dsa This patch series adds some documentation about DSA as a subsystem as well as the SF2 driver since it slightly diverges from your average DSA driver ;) ==================== Signed-off-by: David S. Miller commit ef6346386b096549972d5b62f773eafb772682e3 Author: Florian Fainelli Date: Tue Aug 25 15:33:14 2015 -0700 Documentation: networking: dsa: Add Broadcom SF2 document Add a document describing the Broadcom Starfigther 2 switch hardware, its specifics, and how the driver is implemented and its specifics. Signed-off-by: Florian Fainelli Reviewed-by: Vivien Didelot Signed-off-by: David S. Miller Documentation/networking/dsa/bcm_sf2.txt | 114 +++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) commit 77760e94928f910b745ab8d00298a7c8b5786fb3 Author: Florian Fainelli Date: Tue Aug 25 15:33:13 2015 -0700 Documentation: networking: add a DSA document Describe how the DSA subsystem works, its design principles, limitations, and describe in details how to implement a DSA switch driver. Acked-by: Andrew Lunn Acked-by: Scott Feldman Reviewed-by: Vivien Didelot Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller Documentation/networking/dsa/dsa.txt | 615 +++++++++++++++++++++++++++++++++++ 1 file changed, 615 insertions(+) commit 4bf011815f2e093c7f60004f4f5683cf40b905b9 Author: Andy Shevchenko Date: Mon Aug 10 19:56:46 2015 +0300 device property: check fwnode type in to_of_node() Potentially one of platform can support both ACPI and OF. In that case when we call to_of_node() for non-OF fwnode types we will get non-NULL result, which is wrong. Check for the type and return a correspondent result. Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki include/linux/of.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7dc59dc938f034c69dcf9080d45b936882b7ffa3 Author: Andy Shevchenko Date: Mon Aug 10 19:56:48 2015 +0300 device property: attach 'else if' to the proper 'if' Obviously in the current place the 'else' keyword is redundant, though it seems quite correct when we check if nval is in allowed range. Reattach the condition branch there. Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/acpi/property.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4f73b0654d8a954540d49bb0a300f31663423db9 Author: Andy Shevchenko Date: Mon Aug 10 19:56:47 2015 +0300 device property: fallback to pset when gettng one string The one string as an equivalent to an array of one element. Allow user to read one string as a plain string. Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0762ed2ced40bfe648378ef0e1635cf4d3a6fb76 Author: Trond Myklebust Date: Tue Aug 25 17:38:25 2015 -0400 NFSv4.1/flexfiles: Allow coalescing of new layout segments and existing ones In order to ensure atomicity of updates, we merge the old layout segments into the new ones, and then invalidate the old ones. Also ensure that we order the list of layout segments so that RO segments are preferred over RW. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 60 ++++++++++++++++++++++++++++++++++ fs/nfs/pnfs.h | 16 +++++++++ 2 files changed, 76 insertions(+) commit 03772d2f00313bb22d91b2019cb8e6e91b415653 Author: Trond Myklebust Date: Tue Aug 25 08:54:17 2015 -0400 NFSv4.1/pnfs: Allow pNFS device drivers to customise layout segment insertion This is needed in order to allow merging of contiguous layout segments, and also to correct the ordering of layouts for those device drivers that don't necessarily want to place the read-write layouts first. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- fs/nfs/pnfs.h | 11 +++++++++++ 2 files changed, 61 insertions(+), 9 deletions(-) commit c30ee8b743ab10271823ffdccc71b6acd62f847c Merge: b8766e4 2724121 Author: David S. Miller Date: Tue Aug 25 16:28:11 2015 -0700 Merge branch 'rds-more-fixes' Santosh Shilimkar says: ==================== RDS: Few more fixes As indicated in the earlier series [1], this is a follow-up series which addresses few issues around the RDS FMR code. With [1] and the subject series, now I can run many parallel threads with multiple sockets with N x N traffic. The stress tests has survived overnight runs. [1] https://lkml.org/lkml/2015/8/22/127 ==================== Signed-off-by: David S. Miller commit 272412141908c40517cc89d5bb2eb074a2ec1474 Author: santosh.shilimkar@oracle.com Date: Tue Aug 25 12:02:03 2015 -0700 RDS: remove superfluous from rds_ib_alloc_fmr() Memory allocated for 'ibmr' uses kzalloc_node() which already initialises the memory to zero. There is no need to do memset() 0 on that memory. Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_rdma.c | 2 -- 1 file changed, 2 deletions(-) commit ef5217a6e2e60bc3d0679f2652480b99730956fe Author: santosh.shilimkar@oracle.com Date: Tue Aug 25 12:02:02 2015 -0700 RDS: flush the FMR pool less often FMR flush is an expensive and time consuming operation. Reduce the frequency of FMR pool flush by 50% so that more FMR work gets accumulated for more efficient flushing. Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_rdma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad1d7dc0d79d3dd2c5d2931b13edbd4fe33e5fac Author: santosh.shilimkar@oracle.com Date: Tue Aug 25 12:02:01 2015 -0700 RDS: push FMR pool flush work to its own worker RDS FMR flush operation and also it races with connect/reconect which happes a lot with RDS. FMR flush being on common rds_wq aggrevates the problem. Lets push RDS FMR pool flush work to its own worker. Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib.c | 9 ++++++++- net/rds/ib.h | 2 ++ net/rds/ib_rdma.c | 27 ++++++++++++++++++++++++--- 3 files changed, 34 insertions(+), 4 deletions(-) commit 6116c2030fff91950f68b7fffb5959c91a05aaf6 Author: Wengang Wang Date: Tue Aug 25 12:02:00 2015 -0700 RDS: fix fmr pool dirty_count In rds_ib_flush_mr_pool(), dirty_count accounts the clean ones which is wrong. This can lead to a negative dirty count value. Lets fix it. Signed-off-by: Wengang Wang Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_rdma.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 3f6b3143031b678a8577df1f24ca977510aefcf5 Author: santosh.shilimkar@oracle.com Date: Tue Aug 25 12:01:59 2015 -0700 RDS: Fix rds MR reference count in rds_rdma_unuse() rds_rdma_unuse() drops the mr reference count which it hasn't taken. Correct way of removing mr is to remove mr from the tree and then rdma_destroy_mr() it first, then rds_mr_put() to decrement its reference count. Whichever thread holds last reference will free the mr via rds_mr_put() This bug was triggering weird null pointer crashes. One if the trace for it is captured below. BUG: unable to handle kernel NULL pointer dereference at 0000000000000104 IP: [] rds_ib_free_mr+0x31/0x130 [rds_rdma] PGD 4366fa067 PUD 4366f9067 PMD 0 Oops: 0000 [#1] SMP [...] task: ffff88046da6a000 ti: ffff88046da6c000 task.ti: ffff88046da6c000 RIP: 0010:[] [] rds_ib_free_mr+0x31/0x130 [rds_rdma] RSP: 0018:ffff88046fa43bd8 EFLAGS: 00010286 RAX: 0000000071d38b80 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff880079e7ff40 RBP: ffff88046fa43bf8 R08: 0000000000000000 R09: 0000000000000000 R10: ffff88046fa43ca8 R11: ffff88046a802ed8 R12: ffff880079e7fa40 R13: 0000000000000000 R14: ffff880079e7ff40 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff88046fa40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 0000000000000104 CR3: 00000004366fb000 CR4: 00000000000006e0 Stack: ffff880079e7fa40 ffff880671d38f08 ffff880079e7ff40 0000000000000296 ffff88046fa43c28 ffffffffa087a38b ffff880079e7fa40 ffff880671d38f10 0000000000000000 0000000000000292 ffff88046fa43c48 ffffffffa087a3b6 Call Trace: [] rds_destroy_mr+0x8b/0xa0 [rds] [] __rds_put_mr_final+0x16/0x30 [rds] [] rds_rdma_unuse+0xc2/0x120 [rds] [] rds_recv_incoming_exthdrs+0x83/0xa0 [rds] [] rds_recv_incoming+0x92/0x200 [rds] [] rds_ib_process_recv+0x259/0x320 [rds_rdma] [] rds_ib_recv_tasklet_fn+0x1a8/0x490 [rds_rdma] [] ? __remove_hrtimer+0x58/0x90 [] tasklet_action+0xb1/0xc0 [] __do_softirq+0xe2/0x290 [] irq_exit+0xa6/0xb0 [] do_IRQ+0x65/0xf0 [] common_interrupt+0x6b/0x6b Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/rdma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ba54d3ced958435e1802daf992cfd44c26cd4cb7 Author: santosh.shilimkar@oracle.com Date: Tue Aug 25 12:01:58 2015 -0700 RDS: fix the dangling reference to rds_ib_incoming_slab On rds_ib_frag_slab allocation failure, ensure rds_ib_incoming_slab is not pointing to the detsroyed memory. Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_recv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b8766e4ed3e9fc6b27dc3ead029cd307caa926d2 Merge: dafc219 854d2a6 Author: David S. Miller Date: Tue Aug 25 16:20:38 2015 -0700 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - code restyling and beautification - use int kernel types instead of C99 - update kereldoc - prevent potential hlist double deletion of VLAN objects - fix gw bandwidth calculation - convert list to hlist when needed - add lockdep_asserts calls in function with lock requirements described in kerneldoc ==================== Signed-off-by: David S. Miller commit dafc21995db9b2ef61a2d613f872a5c565731548 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Tue Aug 25 14:15:11 2015 +0530 enic: reduce ioread in devcmd2 posted_index is RO in firmware. We need not do ioread everytime to get posted index. Store posted index locally. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/vnic_dev.c | 8 +++++--- drivers/net/ethernet/cisco/enic/vnic_wq.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) commit c5a132a84a692f8d81f3b6959b98bcd959659457 Author: Stephen Boyd Date: Tue Aug 25 16:02:02 2015 -0700 clk: tegra: Fix some static checker problems The latest Tegra clk pull had some problems. Fix them. drivers/clk/tegra/clk-tegra124.c:1450:6: warning: symbol 'tegra124_clock_assert_dfll_dvco_reset' was not declared. Should it be static? drivers/clk/tegra/clk-tegra124.c:1466:6: warning: symbol 'tegra124_clock_deassert_dfll_dvco_reset' was not declared. Should it be static? drivers/clk/tegra/clk-tegra124.c:1476:5: warning: symbol 'tegra124_reset_assert' was not declared. Should it be static? drivers/clk/tegra/clk-tegra124.c:1486:5: warning: symbol 'tegra124_reset_deassert' was not declared. Should it be static? drivers/clk/tegra/clk-dfll.c:590 dfll_load_i2c_lut() warn: inconsistent indenting drivers/clk/tegra/clk-dfll.c:1448 dfll_build_i2c_lut() warn: unsigned 'td->i2c_lut[0]' is never less than zero. Signed-off-by: Stephen Boyd drivers/clk/tegra/clk-dfll.c | 8 +++++--- drivers/clk/tegra/clk-tegra124.c | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) commit 6e85d5ad36a26debc23a9a865c029cbe242b2dc8 Author: Corinna Vinschen Date: Mon Aug 24 12:52:39 2015 +0200 r8169: Add values missing in @get_stats64 from HW counters The r8169 driver collects statistical information returned by @get_stats64 by counting them in the driver itself, even though many (but not all) of the values are already collected by tally counters (TCs) in the NIC. Some of these TC values are not returned by @get_stats64. Especially the received multicast packages are missing from /proc/net/dev. Rectify this by fetching the TCs and returning them from rtl8169_get_stats64. The counters collected in the driver obviously disappear as soon as the driver is unloaded so after a driver is loaded the counters always start at 0. The TCs on the other hand are only reset by a power cycle. Without further considerations the values collected by the driver would not match up against the TC values. This patch introduces a new function rtl8169_reset_counters which resets the TCs. Also, since rtl8169_reset_counters shares most of its code with rtl8169_update_counters, refactor the shared code into two new functions rtl8169_map_counters and rtl8169_unmap_counters. Unfortunately chip versions prior to RTL_GIGA_MAC_VER_19 don't allow to reset the TCs programatically. Therefore introduce an addition to the rtl8169_private struct and a function rtl8169_init_counter_offsets to store the TCs at first rtl_open. Use these values as offsets in rtl8169_get_stats64. Propagate a failure to reset *and* update the counters up to rtl_open and emit a warning message, if so. Signed-off-by: Corinna Vinschen Signed-off-by: David S. Miller drivers/net/ethernet/realtek/r8169.c | 163 ++++++++++++++++++++++++++++++++--- 1 file changed, 149 insertions(+), 14 deletions(-) commit a7c602bf42f943e717eed92165ebfa6dbaba3029 Merge: 1c4b4b0 79cf95c Author: Stephen Boyd Date: Tue Aug 25 15:55:28 2015 -0700 Merge tag 'tegra-for-4.3-clk' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-next clk: tegra: Changes for v4.3-rc1 This contains the DFLL driver needed to implement CPU frequency scaling on Tegra. commit b01d04aa511b78c795dd258bf8689a421a6b4d0c Author: David S. Miller Date: Tue Aug 25 15:54:25 2015 -0700 rds: Fix improper gfp_t usage. >> net/rds/ib_recv.c:382:28: sparse: incorrect type in initializer (different base types) net/rds/ib_recv.c:382:28: expected int [signed] can_wait net/rds/ib_recv.c:382:28: got restricted gfp_t net/rds/ib_recv.c:828:23: sparse: cast to restricted __le64 Reported-by: kbuild test robot Signed-off-by: David S. Miller net/rds/ib_recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f062bcaa2579af077313e989fc7dec777965a057 Merge: 3e5f206 3ee550f Author: James Morris Date: Wed Aug 26 08:24:23 2015 +1000 Merge tag 'modsign-pkcs7-20150814' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into ra-next commit 04e1b7341dc33abe4dd3f761e2e9137701e55684 Author: Shrikrishna Khare Date: Mon Aug 24 14:24:11 2015 -0700 MAINTAINERS: update vmxnet3 driver maintainer Shreyas Bhatewara would no longer maintain the vmxnet3 driver. Taking over the role of vmxnet3 maintainer. Signed-off-by: Shrikrishna Khare Signed off-by: Shreyas Bhatewara Signed-off-by: David S. Miller MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48e92c44bd73a8bc213560058e6b18e45929526e Author: Jiri Benc Date: Tue Aug 25 18:36:50 2015 +0200 vxlan: fix multiple inclusion of vxlan.h The vxlan_get_sk_family inline function was added after the last #endif, making multiple inclusion of net/vxlan.h fail. Move it to the proper place. Reported-by: Mark Rustad Fixes: 705cc62f6728c ("vxlan: provide access function for vxlan socket address family") Signed-off-by: Jiri Benc Signed-off-by: David S. Miller include/net/vxlan.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 081958ebe150dc42a0f50669169c4177786b747e Author: David Ahern Date: Tue Aug 25 10:26:22 2015 -0700 MAINTAINERS: Add VRF entry Add entry for new VRF device driver. Signed-off-by: David Ahern Signed-off-by: David S. Miller MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit e252b3d1a1744af1431aca30e091420734c2b012 Author: WANG Cong Date: Tue Aug 25 10:38:53 2015 -0700 route: fix a use-after-free This patch fixes the following crash: general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0-rc7+ #166 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 task: ffff88010656d280 ti: ffff880106570000 task.ti: ffff880106570000 RIP: 0010:[] [] dst_destroy+0xa6/0xef RSP: 0018:ffff880107603e38 EFLAGS: 00010202 RAX: 0000000000000001 RBX: ffff8800d225a000 RCX: ffffffff82250fd0 RDX: 0000000000000001 RSI: ffffffff82250fd0 RDI: 6b6b6b6b6b6b6b6b RBP: ffff880107603e58 R08: 0000000000000001 R09: 0000000000000001 R10: 000000000000b530 R11: ffff880107609000 R12: 0000000000000000 R13: ffffffff82343c40 R14: 0000000000000000 R15: ffffffff8182fb4f FS: 0000000000000000(0000) GS:ffff880107600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 00007fcabd9d3000 CR3: 00000000d7279000 CR4: 00000000000006e0 Stack: ffffffff82250fd0 ffff8801077d6f00 ffffffff82253c40 ffff8800d225a000 ffff880107603e68 ffffffff8182fb5d ffff880107603f08 ffffffff810d795e ffffffff810d7648 ffff880106574000 ffff88010656d280 ffff88010656d280 Call Trace: [] dst_destroy_rcu+0xe/0x1d [] rcu_process_callbacks+0x618/0x7eb [] ? rcu_process_callbacks+0x302/0x7eb [] ? dst_gc_task+0x1eb/0x1eb [] __do_softirq+0x178/0x39f [] irq_exit+0x41/0x95 [] smp_apic_timer_interrupt+0x34/0x40 [] apic_timer_interrupt+0x6d/0x80 [] ? default_idle+0x21/0x32 [] ? default_idle+0x1f/0x32 [] arch_cpu_idle+0xf/0x11 [] default_idle_call+0x1f/0x21 [] cpu_startup_entry+0x1ad/0x273 [] start_secondary+0x135/0x156 dst is freed right before lwtstate_put(), this is not correct... Fixes: 61adedf3e3f1 ("route: move lwtunnel state to dst_entry") Acked-by: Jiri Benc Signed-off-by: Cong Wang Signed-off-by: Cong Wang Signed-off-by: David S. Miller net/core/dst.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d7499160107dd1367cf34873564b522a5516430c Author: Masanari Iida Date: Mon Aug 24 22:56:54 2015 +0900 net-next: Fix warning while make xmldocs caused by skbuff.c This patch fix following warnings. .//net/core/skbuff.c:407: warning: No description found for parameter 'len' .//net/core/skbuff.c:407: warning: Excess function parameter 'length' description in '__netdev_alloc_skb' .//net/core/skbuff.c:476: warning: No description found for parameter 'len' .//net/core/skbuff.c:476: warning: Excess function parameter 'length' description in '__napi_alloc_skb' Signed-off-by: Masanari Iida Signed-off-by: David S. Miller net/core/skbuff.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b7a4f7ff7f83bd42ee765f666e6c0a28545bc6d6 Author: Bob Moore Date: Tue Aug 25 10:30:48 2015 +0800 ACPICA: Update version to 20150818 ACPICA commit d93470de8febeecdc20633fde11cb0b200fa773b Version 20150818. Link: https://github.com/acpica/acpica/commit/d93470de Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/acpixf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e5321cb62ca1b29941d483c21b41f71b4dc8c78 Author: Lv Zheng Date: Tue Aug 25 10:30:41 2015 +0800 ACPICA: Debugger: Cleanup debugging outputs to dump name path without trailing underscores ACPICA commit 51a49c2fb4a73f302a6df2b8ddc1350dd261684d It is better to use unified ASL path name to interact with the developers. There are following acpi_ns_build_normalized_pathname() users invoking it for debugging purposes (acpiexec test results are attached): 1. acpi_ut_display_init_pathname (acpi_ns_handle_to_pathname): --------------------------------------------- Initializing Region \_SB.H_EC.ECF2 --------------------------------------------- 2. acpi_ns_print_node_pathname (acpi_ns_handle_to_pathname): --------------------------------------------- - ex \_SB.H_EC._STA Evaluating \_SB.H_EC._STA --------------------------------------------- 3. acpi_ds_print_node_pathname (acpi_ns_handle_to_pathname): --------------------------------------------- - level 211b console - execute \M1 ... **** Exception AE_AML_UNINITIALIZED_ARG during execution of method [\M1] (Node 009CB6B8) --------------------------------------------- 4. acpi_ex_dump_reference_obj (acpi_ns_handle_to_pathname): --------------------------------------------- - dump \_TZ.FAN4._PR0 ... [00] 00835E98 [Object Reference] Type [Named Object] 05 00828878 \_TZ.FN04 --------------------------------------------- 5. acpi_db_bus_walk (acpi_ns_handle_to_pathname): --------------------------------------------- - businfo \_SB.PCI0 Type 6 ... --------------------------------------------- 6. acpi_db_walk_and_match_name (acpi_ns_handle_to_pathname): --------------------------------------------- - find _PR0 \_TZ.FAN4._PR0 Package 002D8DF8 01 Elements 01 --------------------------------------------- 7. acpi_db_walk_for_specific_objects (acpi_ns_handle_to_pathname): --------------------------------------------- - methods ... \_SB.PCI0._PRT Method 0026D918 01 Args 0 Len 0005 Aml 0026B199 ... --------------------------------------------- 8. acpi_db_decode_and_dispaly_object (acpi_get_name): --------------------------------------------- - gpes Block 0 - Info 003AC7B0 device_node 003A0E08 [\_GPE] - FADT-defined GPE block ... --------------------------------------------- 9. acpi_db_display_gpes (acpi_get_name): --------------------------------------------- - dump \_GPE Object (003A0E08) Pathname: \_GPE --------------------------------------------- 10.ae_miscellaneous_tests (acpi_get_name): No output available This patch cleans up all of the above usages. ACPICA BZ 1178, Lv Zheng. Linux kernel's ACPICA debugging messages may also be changed. Link: https://github.com/acpica/acpica/commit/51a49c2f Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsdebug.c | 2 +- drivers/acpi/acpica/exdump.c | 2 +- drivers/acpi/acpica/nsutils.c | 2 +- drivers/acpi/acpica/utmisc.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit a2352db584d6402c044a07b5b252b7f133ab70cf Author: Lv Zheng Date: Tue Aug 25 10:30:34 2015 +0800 ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_verbose acpiexec usage ACPICA commit 42d7ad7bfb1cfb95183c1386c77509f2036f521d When acpi_gbl_db_opt_verbose is used in acpi_dm_descending_op() (invoked by acpi_dm_disassemble()), it is actually exported by the disassembler but used by the debugger to distinguish the output of the disassembler for different debugger commands. It is by default TRUE but is set to FALSE for control method disassembly command - "disassemble". So it's initialization should be a part of the ACPI_DISASSEMBLER conditioned code. This patch uses ACPI_INIT_GLOBAL to achieve a clean manner so that when ACPI_DISASSEMBLER is not defined, ACPI_DEBUGGER conditioned code needn't link to this option. Since it is a disassembler exported variable, it is renamed to acpi_gbl_dm_opt_Verbose in this patch. As VERBOSE_PRINT() macro has only one user, this patch also removes the definition of this macro. Lv Zheng. This patch doesn't affect Linux kernel. Link: https://github.com/acpica/acpica/commit/42d7ad7b Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 3 --- drivers/acpi/acpica/acglobal.h | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) commit 1bdc63bf05096afac4b1e5361417fb730d77dfc7 Author: Lv Zheng Date: Tue Aug 25 10:30:27 2015 +0800 ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_disasm ACPICA commit 969989cf7f85e2a2a0cd048cd25fc706246a48a2 This patch cleans up the following global variable - acpi_gbl_db_opt_disasm: The setting is used to control the full disassembly feature for iasl. ACPI debugger (acpiexec) shall have nothing to do with it. Actually, acpiexec never links to ad_aml_disassemble(). This patch thus renames this global option to acpi_gbl_dm_opt_disasm and removes all acpiexec and debugger references on it. Lv Zheng. This patch doesn't affect Linux kernel. Link: https://github.com/acpica/acpica/commit/969989cf Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8fb4c383e7342731b77693edde9c6ea02ab0365 Author: Lv Zheng Date: Tue Aug 25 10:30:19 2015 +0800 ACPICA: Debugger: Split debugger initialization/termination APIs ACPICA commit 7a3f22baab000b186779dac64ad71d9776b8f432 It is likely that the debugger is enabled only when a userspace program explicitly tells a kernel to do so, so it shouldn't be initialized as early as current implementation. The only tool requiring ACPI_DEBUGGER is acpiexec, so acpiexec need to call the new APIs by itself. And BSD developers may also get notified to invoke the APIs for DDB enabling. Lv Zheng. This patch doesn't affect Linux kernel as debugger is currently not enabled in the Linux kernel. Link: https://github.com/acpica/acpica/commit/7a3f22ba Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 4 ---- drivers/acpi/acpica/utxface.c | 7 ------- drivers/acpi/acpica/utxfinit.c | 11 ----------- include/acpi/acpixf.h | 3 +++ 4 files changed, 3 insertions(+), 22 deletions(-) commit cff9406128a4f9b683eb8c52a8864496e7025467 Author: Bob Moore Date: Tue Aug 25 10:30:11 2015 +0800 ACPICA: Header support to improve compatibility with MSVC ACPICA commit 5b4087fba991d8383046b550bbe22f3d8d9b9c8f Needed to improve MSVC editor support for symbols. For Linux kernel, this change is a no-op. Link: https://github.com/acpica/acpica/commit/5b4087fb Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/platform/acenv.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 47cdf8c692d5a64855a7aff83800d5bc5c925d7c Author: Bob Moore Date: Tue Aug 25 10:30:00 2015 +0800 ACPICA: Make the max-number-of-loops runtime configurable ACPICA commit a9d9c2d0c2d077bb3175ec9c252cf0e5da3efd45 Was previously compile-time only. Add support option for acpiexec. Link: https://github.com/acpica/acpica/commit/a9d9c2d0 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 4 ++++ drivers/acpi/acpica/dscontrol.c | 2 +- drivers/acpi/acpica/utinit.c | 1 + include/acpi/acconfig.h | 4 ---- 4 files changed, 6 insertions(+), 5 deletions(-) commit e69ab9a99e1d112045dd87902e467daec0d189da Author: Bob Moore Date: Tue Aug 25 10:29:52 2015 +0800 ACPICA: Debugger: Add option to display namespace summary/counts ACPICA commit bba222c15c2ce79076eb3a5e9d4d5f7120db8a00 If "Objects" command is invoked with no arguments, the counts for each object type are displayed. Linux kernel is not affected by this commit as currently debugger is not enabled in the Linux kernel. Link: https://github.com/acpica/acpica/commit/bba222c1 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 4 ++-- drivers/acpi/acpica/aclocal.h | 4 ++++ include/acpi/actypes.h | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) commit 25823e784aac78964ada0e49efe2766d2aeb9fa4 Author: Bob Moore Date: Tue Aug 25 10:29:45 2015 +0800 ACPICA: Add additional debug info/statements ACPICA commit 74094ca9f51e2652a9b5f01722d8640a653cc75a For _REG methods and module-level code blocks. For acpiexec, add deletion of module-level blocks in case of an early abort. Link: https://github.com/acpica/acpica/commit/74094ca9 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 7 +++++++ drivers/acpi/acpica/evregion.c | 22 ++++++++++++++++++---- drivers/acpi/acpica/nseval.c | 3 ++- drivers/acpi/acpica/nsutils.c | 17 +++++++++++++++++ drivers/acpi/acpica/psloop.c | 14 +++++++++++++- 5 files changed, 57 insertions(+), 6 deletions(-) commit 3c0503dd289eb6658f16d77fa12b3a30a4072be3 Author: Bob Moore Date: Tue Aug 25 10:29:39 2015 +0800 ACPICA: Table handling: Cleanup and update debug output for tools ACPICA commit 93862bd7a227543bc617d822ef5c4f8a5d68b519 Add output of table OEM ID along with signature to support lots of SSDTs. Cleanup use of table pointers. Link: https://github.com/acpica/acpica/commit/93862bd7 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsinit.c | 11 +++++---- drivers/acpi/acpica/tbxfload.c | 53 +++++++++++++++++++----------------------- 2 files changed, 30 insertions(+), 34 deletions(-) commit 93cdafa071bd436596a0501fd43f4fab89c2be78 Author: Bob Moore Date: Tue Aug 25 10:29:33 2015 +0800 ACPICA: acpiexec/acpinames: Support very large number of ACPI tables ACPICA commit ca3bd4c5cdc39a9009280032adbbc20f34e94c47 Fix a couple of issues with >40 ACPI tables. Return exit error for acpinames to enable use with BIOS builds. The new exported function is used by acpinames. For Linux kernel, this change is a no-op. Link: https://github.com/acpica/acpica/commit/ca3bd4c5 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/actables.h | 5 +++++ drivers/acpi/acpica/tbxfload.c | 17 ++++++++++++----- drivers/acpi/acpica/utfileio.c | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) commit 17dd4dcfadffba93cf18652eb16b345526b04ce1 Author: Bob Moore Date: Tue Aug 25 10:29:25 2015 +0800 ACPICA: acpinames: Add new options and wildcard support ACPICA commit 0ecf5b5a41c3d2e09af48f0fdbc9ae784f631788 - Add wilcard support for input filenames. - Add -l option to load tables and exit, no display. This is useful for validation of the namespace during BIOS generation. - Add -x option for specifying debug level. Linux kernel is not affected by this commit. Link: https://github.com/acpica/acpica/commit/0ecf5b5a Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acutils.h | 2 +- drivers/acpi/acpica/utmisc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 10ac218e9a1e76e0d3adec8fe2e2f84bbc138759 Author: Bob Moore Date: Tue Aug 25 10:29:17 2015 +0800 ACPICA: Headers: Fix some comments, no functional change ACPICA commit 539f8c03fe64305725bd85343e42f3b6c42aad14 A couple typos and long lines. Link: https://github.com/acpica/acpica/commit/539f8c03 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/platform/acenv.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7484619bff495c30e977dafe2ff735477bd569ff Author: Lv Zheng Date: Tue Aug 25 10:29:08 2015 +0800 ACPICA: Tables: Cleanup to reduce FACS globals ACPICA commit 3f42ba76e2a0453976d3108296d5f656fdf2bd6e In this patch, FACS table mapping is also tuned a bit so that only the selected FACS table will be mapped by the OSPM (mapped on demand) and the FACS related global variables can be reduced. Lv Zheng. Link: https://github.com/acpica/acpica/commit/3f42ba76 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 2 -- drivers/acpi/acpica/hwxfsleep.c | 15 ++------------- drivers/acpi/acpica/tbutils.c | 9 +++++---- 3 files changed, 7 insertions(+), 19 deletions(-) commit 8ec3f459073e67e5c6d78507dec693064b3040a2 Author: Lv Zheng Date: Tue Aug 25 10:29:01 2015 +0800 ACPICA: Tables: Fix global table list issues by removing fixed table indexes ACPICA commit c0b38b4c3982c2336ee92a2a14716107248bd941 The fixed table indexes leave holes in the global table list: 1. One hole can be seen when there is only 1 FACS provided by the BIOS. 2. Tow holes can be seen when it is a reduced hardware platform. The holes do not break OSPMs but have broken ACPI debugger "tables" command. Also the "fixed table indexes" mechanism may make the descriptors of the standard tables installed earlier than DSDT to be overwritten by the descriptors of the fixed tables. For example, FACP disappears from the global table list after DSDT is installed. This patch fixes all above issues by removing the "fixed table indexes" mechanism which is too complicated to be maintained in a regression safe manner. After removal, the table loader will determine the indexes of the fixed tables. Lv Zheng. Link: https://github.com/acpica/acpica/commit/c0b38b4c Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 3 +++ drivers/acpi/acpica/aclocal.h | 6 ++---- drivers/acpi/acpica/actables.h | 7 +++---- drivers/acpi/acpica/tbfadt.c | 6 +++--- drivers/acpi/acpica/tbinstal.c | 40 +++++++++++++++++++++------------------- drivers/acpi/acpica/tbutils.c | 37 ++++++++++++++----------------------- drivers/acpi/acpica/tbxfload.c | 10 +++++----- 7 files changed, 51 insertions(+), 58 deletions(-) commit 92b21a9502ea3a83464aea885b3c65c528b10190 Author: Bob Moore Date: Tue Aug 25 10:28:54 2015 +0800 ACPICA: Update info messages during ACPICA init ACPICA commit 4ccf8a1cc499ec8f00345f662a5887483980e1dd Small cleanup of messages. Link: https://github.com/acpica/acpica/commit/4ccf8a1c Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsinit.c | 9 +++++++++ drivers/acpi/acpica/tbxfload.c | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit 2aabfad7c6680178ffa8f02957287178a58a46ca Author: Bob Moore Date: Tue Aug 25 10:28:47 2015 +0800 ACPICA: Disassembler: Update for new listing mode ACPICA commit 2ed09bb7619d25f5a5c065c33a8a775a6db3a856 ACPICA commit 2fefacf73825b0ec96bbfc4f70a256735b715d6c This mode emits AML code along with the ASL code. A new global was needed to ensure the listing mode is completely separate from the debugger verbose mode. Emits the correct AML offset for the AML code. The -l option now works for both the compiler and disassembler. Linux kernel is not affected by this commit. Link: https://github.com/acpica/acpica/commit/2fefacf7 Link: https://github.com/acpica/acpica/commit/2ed09bb7 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f41fd8a175ff87ba610fc387a6922b0f49f8e19 Author: Bob Moore Date: Tue Aug 25 10:28:39 2015 +0800 ACPICA: Update parameter validation for data_table_region and load_table ACPICA commit 51ab555e60b4a3de3cc4a846e86d0de255be441a Add additional validation for the table signature and the OEM strings. Eliminates buffer read overrun in data_table_region. ACPICA BZ 1184. Link: https://bugs.acpica.org/show_bug.cgi?id=1184 Link: https://github.com/acpica/acpica/commit/51ab555e Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/actables.h | 2 ++ drivers/acpi/acpica/dsopcode.c | 31 ++++++++++++++++++++----------- drivers/acpi/acpica/exconfig.c | 8 -------- drivers/acpi/acpica/tbfind.c | 15 ++++++++++++++- drivers/acpi/acpica/tbutils.c | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 69 insertions(+), 20 deletions(-) commit 3534969721ba011b8c2bcb5686819852df7aa971 Author: Bob Moore Date: Tue Aug 25 10:28:32 2015 +0800 ACPICA: Disassembler: Remove duplicate code in _PLD processing. ACPICA commit 6d9c827b540837b6e54059e17756a06985e4a196 ACPICA BZ 1176. Link: https://bugs.acpica.org/show_bug.cgi?id=1176 Link: https://github.com/acpica/acpica/commit/6d9c827b Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/utxface.c | 5 +++-- include/acpi/acbuffer.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit 4712f71b609d1805b958c0c355b16a995b11ab6e Author: Bob Moore Date: Tue Aug 25 10:28:26 2015 +0800 ACPICA: Correctly cleanup after a ACPI table load failure ACPICA commit ed7769e832de6c7ba90615480d916c85fd100422 If a table load fails, delete all namespace objects created by the table, otherwise these objects will be uninitialized, causing problems later. This appears to be a very rare problem. Also handle the unitialized node problem to prevent possible faults. ACPICA BZ 1185. Link: https://github.com/acpica/acpica/commit/ed7769e8 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/exresnte.c | 2 +- drivers/acpi/acpica/exresolv.c | 16 +++++++++++----- drivers/acpi/acpica/nseval.c | 1 + drivers/acpi/acpica/nsload.c | 16 +++++++++++++++- drivers/acpi/acpica/tbxfload.c | 29 ++++++++++++++++++++++++++--- include/acpi/acexcep.h | 7 +++++-- 6 files changed, 59 insertions(+), 12 deletions(-) commit 79c441ae505ccfaed9d80df95e83fb2573f23f8e Author: Guillaume Nault Date: Mon Aug 24 11:35:30 2015 +0200 ppp: implement x-netns support Let packets move from one netns to the other at PPP encapsulation and decapsulation time. PPP units and channels remain in the netns in which they were originally created. Only the net_device may move to a different namespace. Cross netns handling is thus transparent to lower PPP layers (PPPoE, L2TP, etc.). PPP devices are automatically unregistered when their netns gets removed. So read() and poll() on the unit file descriptor will respectively receive EOF and POLLHUP. Channels aren't affected. Signed-off-by: Guillaume Nault Signed-off-by: David S. Miller drivers/net/ppp/ppp_generic.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit cc7fce80229067890365c1ee196be5d304d36dea Author: Tomer Barletz Date: Tue Aug 4 21:00:24 2015 -0700 mtd: blkdevs: fix switch-bool compilation warning With gcc 5.1 I get: warning: switch condition has boolean value [-Wswitch-bool] Signed-off-by: Tomer Barletz Signed-off-by: Brian Norris drivers/mtd/mtd_blkdevs.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 542a64c7076565d73eea39057113914e1607db30 Author: Hans de Goede Date: Sun Aug 23 20:31:38 2015 +0200 net: sun4i-emac: Claim emac sram Claim the emac sram ourselves, rather then relying on the bootloader having mapped the sram to the emac controller during boot. Signed-off-by: Hans de Goede Signed-off-by: David S. Miller drivers/net/ethernet/allwinner/sun4i-emac.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 2c0027cd54cc3ed856e87d9aeddb6ef00f5f17f4 Author: David Ahern Date: Sun Aug 23 08:21:22 2015 -0600 inetpeer: remove dead code Remove various inlined functions not referenced in the kernel. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/inetpeer.h | 67 -------------------------------------------------- 1 file changed, 67 deletions(-) commit 5283af899adec1a7765e413e43b27a335fadac5d Author: Rana Shahout Date: Sun Aug 23 16:12:14 2015 +0300 net/mlx5e: Avoid accessing NULL pointer at ndo_select_queue To avoid multiply/division operations on the data path, we hold a {channel, tc}==>txq mapping table. We held this mapping table inside the channel object that is being destroyed upon some configuration operations (e.g MTU change). So in case ndo_select_queue occurs during such a configuration operation, it may access a NULL channel pointer, resulting in kernel panic. To fix this issue we moved the {channel, tc}==>txq mapping table outside the channel object so that it will be available also during such configuration operations. Signed-off-by: Rana Shahout Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++++---- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 06bb6f5a69dfc53b79dd5f7afabdcd070a18afbf Author: Rafał Miłecki Date: Mon Aug 10 21:39:03 2015 +0200 mtd: spi-nor: stop (ab)using struct spi_device_id Using struct spi_device_id for storing list of flash devices comes from early SPI NOR framework days. Thanks to the commit 70f3ce0510af ("mtd: spi-nor: make spi_nor_scan() take a chip type name, not spi_device_id") we can stop using spi_device_id and just switch to our own struct. Signed-off-by: Rafał Miłecki Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 62 +++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 35 deletions(-) commit 94c10f0ea303473884f69edd6bbb0cedcf570105 Author: David S. Miller Date: Tue Aug 25 13:38:50 2015 -0700 ah4: Fix error return in ah_input(). Noticed by Herbert Xu. Signed-off-by: David S. Miller net/ipv4/ah4.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 25105051fde444cac11a2e2599350e5388936428 Author: Julia Lawall Date: Sun Aug 23 02:11:21 2015 +0200 ah6: fix error return code Return a negative error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Acked-by: Herbert Xu Signed-off-by: David S. Miller net/ipv6/ah6.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5c12197939be10c117039aabc06830297fb6d6ee Author: Julia Lawall Date: Sun Aug 23 02:11:16 2015 +0200 mlxsw: fix error return code Return a negative error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 1 + 1 file changed, 1 insertion(+) commit 1ef53ebfa9ff5b205604fc781868765e00ae875f Author: Julia Lawall Date: Sun Aug 23 02:11:14 2015 +0200 net: davinci_emac: fix error return code Propagate error code on failure. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier ret; expression e1,e2; @@ ( if (\(ret < 0\|ret != 0\)) { ... return ret; } | ret = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller drivers/net/ethernet/ti/davinci_emac.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 96fd26b97a6b1412e9a302cd11363e28aa9b4ee5 Merge: 43e122b ae05368 Author: David S. Miller Date: Tue Aug 25 13:35:32 2015 -0700 Merge branch 'rds-assorted-bug-fixes' Santosh Shilimkar says: ==================== RDS: Assorted bug fixes We would like to improve RDS upstream support and in that context, I started playing with it. But run into number of issues including as basic is RDS IB RDMA doesn't work. As part of the debug, I ended up creating the $subject series which has bunch of assorted fixes. At least with this series I can run RDS IB RDMA and other tests successfully. Some of these fixes have been done by Chris Meson, Andy Grover and Zach Brown while at Oracle. There are still more kinks with FMR and error handling and I plan to address them in a follow up series. Series generated against Linus's master(v4.2-rc-7) but also applies against next-next cleanly. Its tested on Oracle hardware with IB fabric for both bcopy as well as RDMA mode. I don't have access to iWARP hardware so any testing help on iWARP hardware appreciated. ==================== Signed-off-by: David S. Miller commit ae05368afa7ea27fd906477874ed3ebc7df7e53c Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:35 2015 -0700 RDS: check for valid cm_id before initiating connection Connection could have been dropped while the route is being resolved so check for valid cm_id before initiating the connection. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/rdma_transport.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 06e8941e22f5cbaa4051f06d7ac99e3f302f6d48 Author: Mukesh Kacker Date: Sat Aug 22 15:45:34 2015 -0700 RDS: return EMSGSIZE for oversize requests before processing/queueing rds_send_queue_rm() allows for the "current datagram" being queued to exceed SO_SNDBUF thresholds by checking bytes queued without counting in length of current datagram. (Since sk_sndbuf is set to twice requested SO_SNDBUF value as a kernel heuristic this is usually fine!) If this "current datagram" squeezing past the threshold is itself many times the size of the sk_sndbuf threshold itself then even twice the SO_SNDBUF does not save us and it gets queued but cannot be transmitted. Threads block and deadlock and device becomes unusable. The check for this datagram not exceeding SNDBUF thresholds (EMSGSIZE) is not done on this datagram as that check is only done if queueing attempt fails. (Datagrams that follow this datagram fail queueing attempts, go through the check and eventually trip EMSGSIZE error but zero length datagrams silently fail!) This fix moves the check for datagrams exceeding SNDBUF limits before any processing or queueing is attempted and returns EMSGSIZE early in the rds_sndmsg() code. This change also ensures that all datagrams get checked for exceeding SNDBUF/sk_sndbuf size limits and the large datagrams that exceed those limits do not get to rds_send_queue_rm() code for processing. Signed-off-by: Mukesh Kacker Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/send.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit dfcec251d22bab947d10cf37e9ad67085cf7f097 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:33 2015 -0700 RDS: make sure rds_send_drop_to properly takes the m_rs_lock rds_send_drop_to() is used during socket tear down to find all the messages on the socket and flush them . It can race with the acking code unless it takes the m_rs_lock on each and every message. This plugs a hole where we didn't take m_rs_lock on any message that didn't have the RDS_MSG_ON_CONN set. Taking m_rs_lock avoids double frees and other memory corruptions as the ack code trusts the message m_rs pointer on a socket that had actually been freed. We must take m_rs_lock to access m_rs. Because of lock nesting and rs access, we also need to acquire rs_lock. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/send.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 1c3be624f40acd6f2bd0f22ade081ac2467e8617 Author: Santosh Shilimkar Date: Sat Aug 22 15:45:32 2015 -0700 RDS: Don't destroy the rdma id until after we're done using it During connection resets, we are destroying the rdma id too soon. We can't destroy it when it is still in use. So lets move rdma_destroy_id() after we clear the rings. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_cm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5c240fa2ab394af1dbde280e00cc038cbc7f0409 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:31 2015 -0700 RDS: Fix assertion level from fatal to warning Fix the asserion level since its not fatal and can be hit in normal execution paths. There is no need to take the system down. We keep the WARN_ON() to detect the condition if we get here with bad pages. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_rdma.c | 2 +- net/rds/rdma.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 3049147ca7c8426268433d16d7546a51dede316d Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:30 2015 -0700 RDS: Make sure we do a signaled send for large-send WR(Work Requests )always generate a WC(Work Completion) with signaled send. Default RDS ib code is setup for un-signaled completion. Since RDS connction is persistent, we can end up sending the data even after large-send when the remote end is not active(for any reason). By doing a signaled send at least once per large-send, we can at least detect the problem in work completion handler there by avoiding sending more data to inactive remote. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_send.c | 5 +++++ 1 file changed, 5 insertions(+) commit 4f73113c63bae5cd092c93c2a9835b9d3c7f0b54 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:29 2015 -0700 RDS: Mark message mapped before transmit rds_send_xmit() marks the rds message map flag after xmit_[rdma/atomic]() which is clearly wrong. We need to maintain the ownership between transport and rds. Also take care of error path. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/send.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 0df5f9a68a79f31e608b69a9369d6415a38843e1 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:28 2015 -0700 RDS: add a sock_destruct callback debug aid This helps to detect the accidental processes/apps trying to destroy the RDS socket which they are sharing with other processes/apps. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/af_rds.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 0c484240210a8c835a216dbca6f1d690e4094a7c Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:27 2015 -0700 RDS: check for congestion updates during rds_send_xmit Ensure we don't keep sending the data if the link is congested. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/send.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 73ce4317bf983282593aff710b112a7e705620c3 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:26 2015 -0700 RDS: make sure we post recv buffers If we get an ENOMEM during rds_ib_recv_refill, we might never come back and refill again later. Patch makes sure to kick krdsd into helping out. To achieve this we add RDS_RECV_REFILL flag and update in the refill path based on that so that at least some therad will keep posting receive buffers. Since krdsd and softirq both might race for refill, we decide to schedule on work queue based on ring_low instead of ring_empty. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/connection.c | 2 ++ net/rds/ib.h | 2 +- net/rds/ib_cm.c | 2 +- net/rds/ib_recv.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++------ net/rds/rds.h | 1 + 5 files changed, 57 insertions(+), 8 deletions(-) commit e1f475a738e4c861d8aff84b737a0538680cbe05 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:25 2015 -0700 RDS: don't update ip address tables if the address hasn't changed If the ip address tables hasn't changed, there is no need to remove them only to be added back again. Lets fix it. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_rdma.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 1bc7b863f230e429dd7a06c0956ada7933d69f50 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:24 2015 -0700 RDS: destroy the ib state earlier during shutdown Destroy ib state early during shutdown. Otherwise we can get callbacks after the QP isn't really able to handle them. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_cm.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 43962dd7ee192299c6e0c6cd7f0a65997308f1f4 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:23 2015 -0700 RDS: always free recv frag as we free its ring entry We were still seeing rare occurrences of the WARN_ON(recv->r_frag) which indicates that the recv refill path was finding allocated frags in ring entries that were marked free. These were usually followed by OOM crashes. They only seem to be occurring in the presence of completion errors and connection resets. This patch ensures that we free the frag as we mark the ring entry free. This should stop the refill path from finding allocated frags in ring entries that were marked free. Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/ib_recv.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 1d2e3f396c532b95a37bbee92269f37efe908457 Author: santosh.shilimkar@oracle.com Date: Sat Aug 22 15:45:22 2015 -0700 RDS: restore return value in rds_cmsg_rdma_args() In rds_cmsg_rdma_args() 'ret' is used by rds_pin_pages() which returns number of pinned pages on success. And the same value is returned to the caller of rds_cmsg_rdma_args() on success which is not intended. Commit f4a3fc03c1d7 ("RDS: Clean up error handling in rds_cmsg_rdma_args") removed the 'ret = 0' line which broke RDS RDMA mode. Fix it by restoring the return value on rds_pin_pages() success keeping the clean-up in place. Signed-off-by: Santosh Shilimkar Signed-off-by: Santosh Shilimkar Signed-off-by: David S. Miller net/rds/rdma.c | 2 ++ 1 file changed, 2 insertions(+) commit b96f465035f9fae83c1d8de3e80eecfe6877608c Author: David Teigland Date: Tue Aug 25 12:51:44 2015 -0500 dlm: fix lvb copy for user locks For a userland lock request, the previous and current lock modes are used to decide when the lvb should be copied back to the user. The wrong previous value was used, so that it always matched the current value. This caused the lvb to be copied back to the user in the wrong cases. Signed-off-by: David Teigland fs/dlm/user.c | 7 ++++--- include/uapi/linux/dlm_device.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) commit 0cb850486048ba4f64482a9d3e33dff47df34c79 Author: Oleksij Rempel Date: Wed Dec 31 13:58:53 2014 +0100 mtd: nand: add Toshiba TC58NVG0S3E to nand_ids table Add the full description of the Toshiba TC58NVG0S3E NAND chip in the nand_ids table so that we can later use the NAND ECC info and ONFI timing mode in controller drivers. Tested with asm9260_nand driver. [Brian: driver still under review] Signed-off-by: Oleksij Rempel Reviewed-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/nand_ids.c | 4 ++++ 1 file changed, 4 insertions(+) commit 540d9864e1c5f8d3ca2ecc919e7d8a47e713ec3f Author: Trond Myklebust Date: Tue Aug 25 11:16:13 2015 -0400 NFSv4.1/pnfs: Add sanity check for the layout range returned by the server Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 82714bd1424a88e4bb43813c8a78fbe8f6c5feab Author: Trond Myklebust Date: Tue Aug 25 08:41:24 2015 -0400 NFSv4.1/pnfs Improve the packing of struct pnfs_layout_hdr Eliminate a couple of holes in the structure, and move the 2 atomics into the same cacheline. Signed-off-by: Trond Myklebust fs/nfs/pnfs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e3b1df2dbd7bcda807a94db131fda6c2bbd1480a Author: kbuild test robot Date: Tue Aug 25 11:19:25 2015 +0800 NFSv4.1/flexfile: ff_layout_remove_mirror can be static Signed-off-by: Fengguang Wu Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbf58bf3488e41f346536aa89d62bdf2fe771128 Author: Trond Myklebust Date: Mon Aug 24 20:39:18 2015 -0400 NFSv4.2/pnfs: Make the layoutstats timer configurable Allow advanced users to set the layoutstats timer in order to lengthen or shorten the period between layoutstat transmissions to the server. Signed-off-by: Trond Myklebust Documentation/kernel-parameters.txt | 9 +++++++++ fs/nfs/flexfilelayout/flexfilelayout.c | 5 ++++- fs/nfs/pnfs.c | 4 ++++ fs/nfs/pnfs.h | 3 +++ 4 files changed, 20 insertions(+), 1 deletion(-) commit 266d12d42ebd2587d3d0e8c4a4e54bfb5ed29543 Author: Trond Myklebust Date: Mon Aug 24 20:03:17 2015 -0400 NFSv4.1/flexfile: Ensure uniqueness of mirrors across layout segments Keep the full list of mirrors in the struct nfs4_ff_layout_mirror so that they can be shared among the layout segments that use them. Also ensure that we send out only one copy of the layoutstats per mirror. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 125 +++++++++++++++++++++++++-------- fs/nfs/flexfilelayout/flexfilelayout.h | 3 + 2 files changed, 99 insertions(+), 29 deletions(-) commit 0b7baf9433d4e0a0c83eecbadc1f035d5370c6dc Author: Trond Myklebust Date: Mon Aug 24 18:22:28 2015 -0400 NFSv4.1/flexfiles: Remove mirror backpointer to lseg. When we start sharing mirrors between several lsegs, we won't be able to keep it. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 25 ++++++++++++------------- fs/nfs/flexfilelayout/flexfilelayout.h | 1 - 2 files changed, 12 insertions(+), 14 deletions(-) commit 28a0d72c6867af307c000e068a6da93ae98bcd0c Author: Trond Myklebust Date: Mon Aug 24 18:08:30 2015 -0400 NFSv4.1/flexfiles: Add refcounting to struct nfs4_ff_layout_mirror We do want to share mirrors between layout segments, so add a refcount to enable that. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 36 +++++++++++++++++++++++++--------- fs/nfs/flexfilelayout/flexfilelayout.h | 1 + 2 files changed, 28 insertions(+), 9 deletions(-) commit a6970317f2d5f596302d957ae2f5b0d7c8676371 Author: Oleg Drokin Date: Tue Aug 18 21:04:35 2015 -0400 staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr() Removed references to ib_reg_phsy_mr() and PMR which was added to deal with some Chelsio specific scenario, but no longer needed now. Reported-by: Stephen Rothwell Signed-off-by: Amir Shehata Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Trond Myklebust .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 251 +-------------------- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 32 +-- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 55 +---- .../lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c | 6 - 4 files changed, 19 insertions(+), 325 deletions(-) commit 5420401079e152ff68a8024f6a375804b1c21505 Author: Peng Tao Date: Sat Aug 22 06:40:00 2015 +0800 NFS41/flexfiles: zero out DS write wcc We do not want to update inode attributes with DS values. Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 ++ 1 file changed, 2 insertions(+) commit 3976143b063e3c42fe5471d87860f6ae118e0eee Author: Peng Tao Date: Fri Aug 21 12:49:44 2015 +0800 NFS41: remove NFS_LAYOUT_ROC flag If we return delegation before closing, we fail to do roc check during close because NFS_LAYOUT_ROC is cleared by delegreturn and it causes layouts to be still hanging around after delegreturn + close, which is a voilation against protocol. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 7 ++----- fs/nfs/pnfs.h | 1 - 2 files changed, 2 insertions(+), 6 deletions(-) commit 249b2eef647f97164b8bb61f2d9282f227a17992 Author: Trond Myklebust Date: Thu Aug 20 20:43:14 2015 -0500 NFSv4: Add a tracepoint for CB_LAYOUTRECALL Only support for single file layoutrecall for now. Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 3 ++- fs/nfs/nfs4trace.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 7cd148610af9312aa6454395fe174ebfe9496aa1 Author: Trond Myklebust Date: Thu Aug 20 20:07:54 2015 -0500 NFSv4: Add a tracepoint for CB_GETATTR Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 6 ++++- fs/nfs/nfs4trace.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) commit 6a463beb9a433d91f3eaf85c2f0ca0aeddf3e0ab Author: Trond Myklebust Date: Thu Aug 20 15:40:47 2015 -0500 NFSv4.1/pnfs: Add a tracepoint for return-on-close events Allow tracing of return-on-close. Signed-off-by: Trond Myklebust fs/nfs/nfs4trace.h | 1 + fs/nfs/pnfs.c | 1 + 2 files changed, 2 insertions(+) commit aaae3f00d3f67f681a1f3cb7af999e976e8a24ce Author: Trond Myklebust Date: Thu Aug 20 18:56:07 2015 -0500 NFSv4: Force a post-op attribute update when holding a delegation If the ctime or mtime or change attribute have changed because of an operation we initiated, we should make sure that we force an attribute update. However we do not want to mark the page cache for revalidation. Signed-off-by: Trond Myklebust Cc: stable@vger.kernel.org # v4.0+ fs/nfs/inode.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 804486b19de92449203f95027c2b207d8c5d5c79 Author: Milo Kim Date: Tue Aug 25 14:54:12 2015 +0900 regulator: lp872x: handle error case If memory allocation gets failed on parsing the DT, then it returns error '-ENOMEM' explicitly. Then, the driver exists from the _probe(). Signed-off-by: Milo Kim Signed-off-by: Mark Brown drivers/regulator/lp872x.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit d9ffae15f7b1933c71dfb7c5e8ef61296d2833d7 Author: Milo Kim Date: Tue Aug 25 14:54:11 2015 +0900 regulator: lp872x: use the private data instead of updating I2C device platform data Currently, lp872x driver parses the DT and copies values into the 'cl->dev.platform_data' if 'of_node' exists. This may have architectural issue. Platform data is configurable through the DT or I2C board info inside the platform area. However, lp872x driver changes this configuration when it is loaded. The lp872x driver should get data from the platform side and use the private data, 'lp872x->pdata' instead of changing the original platform data. Signed-off-by: Milo Kim Signed-off-by: Mark Brown drivers/regulator/lp872x.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 43e122b014c955a33220fabbd09c4b5e4f422c3c Author: Eric Dumazet Date: Fri Aug 21 17:38:02 2015 -0700 tcp: refine pacing rate determination When TCP pacing was added back in linux-3.12, we chose to apply a fixed ratio of 200 % against current rate, to allow probing for optimal throughput even during slow start phase, where cwnd can be doubled every other gRTT. At Google, we found it was better applying a different ratio while in Congestion Avoidance phase. This ratio was set to 120 %. We've used the normal tcp_in_slow_start() helper for a while, then tuned the condition to select the conservative ratio as soon as cwnd >= ssthresh/2 : - After cwnd reduction, it is safer to ramp up more slowly, as we approach optimal cwnd. - Initial ramp up (ssthresh == INFINITY) still allows doubling cwnd every other RTT. Signed-off-by: Eric Dumazet Cc: Neal Cardwell Cc: Yuchung Cheng Acked-by: Neal Cardwell Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 15 +++++++++++++++ include/net/tcp.h | 2 ++ net/ipv4/sysctl_net_ipv4.c | 19 +++++++++++++++++++ net/ipv4/tcp_input.c | 18 +++++++++++++++++- 4 files changed, 53 insertions(+), 1 deletion(-) commit 1c4b4b0eb1909010b8ebda1ef208bf3ed62e7487 Author: Georgi Djakov Date: Tue Aug 25 15:27:43 2015 +0300 clk: qcom: Fix MSM8916 prng clock enable bit Fix the enable bit of the pseudorandom number generator clock. Reported-by: Stanimir Varbanov Fixes: 3966fab8b6ab "clk: qcom: Add MSM8916 Global Clock Controller support" Signed-off-by: Georgi Djakov Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-msm8916.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ec3b28c2763e11a423d03810ff0be65f02e635e Author: David Ahern Date: Thu Aug 20 15:06:30 2015 -0700 xfrm: Use VRF master index if output device is enslaved Directs route lookups to VRF table. Compiles out if NET_VRF is not enabled. With this patch able to successfully bring up ipsec tunnels in VRFs, even with duplicate network configuration. Signed-off-by: David Ahern Acked-by: Nikolay Aleksandrov Acked-by: Steffen Klassert Signed-off-by: David S. Miller net/ipv4/xfrm4_policy.c | 7 +++++-- net/ipv6/xfrm6_policy.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) commit 6f021c62d64f38092bc2a0c5fe7b81d5e5b21a00 Author: Eric Dumazet Date: Fri Aug 21 12:30:00 2015 -0700 tcp: fix slow start after idle vs TSO/GSO slow start after idle might reduce cwnd, but we perform this after first packet was cooked and sent. With TSO/GSO, it means that we might send a full TSO packet even if cwnd should have been reduced to IW10. Moving the SSAI check in skb_entail() makes sense, because we slightly reduce number of times this check is done, especially for large send() and TCP Small queue callbacks from softirq context. As Neal pointed out, we also need to perform the check if/when receive window opens. Tested: Following packetdrill test demonstrates the problem // Test of slow start after idle `sysctl -q net.ipv4.tcp_slow_start_after_idle=1` 0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 +0 bind(3, ..., ...) = 0 +0 listen(3, 1) = 0 +0 < S 0:0(0) win 65535 +0 > S. 0:0(0) ack 1 +.100 < . 1:1(0) ack 1 win 511 +0 accept(3, ..., ...) = 4 +0 setsockopt(4, SOL_SOCKET, SO_SNDBUF, [200000], 4) = 0 +0 write(4, ..., 26000) = 26000 +0 > . 1:5001(5000) ack 1 +0 > . 5001:10001(5000) ack 1 +0 %{ assert tcpi_snd_cwnd == 10 }% +.100 < . 1:1(0) ack 10001 win 511 +0 %{ assert tcpi_snd_cwnd == 20, tcpi_snd_cwnd }% +0 > . 10001:20001(10000) ack 1 +0 > P. 20001:26001(6000) ack 1 +.100 < . 1:1(0) ack 26001 win 511 +0 %{ assert tcpi_snd_cwnd == 36, tcpi_snd_cwnd }% +4 write(4, ..., 20000) = 20000 // If slow start after idle works properly, we should send 5 MSS here (cwnd/2) +0 > . 26001:31001(5000) ack 1 +0 %{ assert tcpi_snd_cwnd == 10, tcpi_snd_cwnd }% +0 > . 31001:36001(5000) ack 1 Signed-off-by: Eric Dumazet Cc: Neal Cardwell Cc: Yuchung Cheng Acked-by: Neal Cardwell Signed-off-by: David S. Miller include/net/tcp.h | 13 +++++++++++++ net/ipv4/tcp.c | 2 ++ net/ipv4/tcp_input.c | 3 +++ net/ipv4/tcp_output.c | 12 ++++-------- 4 files changed, 22 insertions(+), 8 deletions(-) commit 20f1f4b5ffb870631bf4a4e7c7ba10e3528ae6a6 Merge: ce52399 3e1d2ee Author: Tejun Heo Date: Tue Aug 25 14:19:29 2015 -0400 Merge branch 'for-4.3-unified-base' into for-4.3 commit ce52399520e4b97466165737e00c7b528ae8c8f5 Author: Aleksa Sarai Date: Tue Aug 25 12:50:44 2015 +1000 cgroup: pids: fix invalid get/put usage Fix incorrect usage of css_get and css_put to put a different css in pids_{cancel_,}attach() than the one grabbed in pids_can_attach(). This could lead to quite serious memory leakage (and unsafe operations on the putted css). tj: minor comment update Signed-off-by: Aleksa Sarai Signed-off-by: Tejun Heo kernel/cgroup_pids.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) commit 0e7659712836ca59b4735bc5cc94de38698a5e01 Author: Charles Keepax Date: Tue Aug 25 12:43:48 2015 +0100 ASoC: arizona: Poll for FLL clock OK rather than use interrupts The extcon driver takes the DAPM mutex from within the interrupt thread in several places, which makes it possible to get into a situation where the interrupt thread is blocked waiting on the DAPM mutex whilst a DAPM sequence is running which is attempting to configure the FLL. In this case the FLL completion can't be completed as as the IRQ handler is ONE_SHOT, which cause the FLL lock to use the full time out (250mS) and report that the process timed out. It is not really practical to make the extcon driver not take the DAPM mutex from within the interrupt thread, at least not without extensive modification. So this patch fixes the issue by switching the wait for the FLL lock to polling. A few fast polls are done first as the FLL should lock quickly for a good quality reference clock, (indeed it hits on the first poll on my system) and it will poll every 20mS after that until it times out. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/arizona.c | 47 +++++++++++++++++++--------------------------- sound/soc/codecs/arizona.h | 1 - 2 files changed, 19 insertions(+), 29 deletions(-) commit c1713485f9fc06e1f4de9800b43f6486f2527379 Author: Oder Chiou Date: Tue Aug 25 16:03:48 2015 +0800 ASoC: rt5645: Add struct dmi_system_id "Google Celes" for chrome platform Signed-off-by: Oder Chiou Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/rt5645.c | 7 +++++++ 1 file changed, 7 insertions(+) commit b1d42598cb654ce63b55ccf27da09dcd914781f3 Author: Oder Chiou Date: Mon Aug 24 20:32:59 2015 +0800 ASoC: rt5645: Add the register RT5645_CHARGE_PUMP to readable check function Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 1 + 1 file changed, 1 insertion(+) commit 4aed4c9efb30253483869c58236ab00bdfa45630 Author: Oder Chiou Date: Mon Aug 24 20:32:58 2015 +0800 ASoC: rt5645: Remove the incorrect setting of the JD mode The patch removes the incorrect setting of the JD mode. It will cause pop sound in the booting time. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 -- 1 file changed, 2 deletions(-) commit 8db7f56ddf2c4571e33756b70a1a8f492c050449 Author: Oder Chiou Date: Mon Aug 24 20:32:57 2015 +0800 ASoC: rt5645: Modify the jack detection function to prevent the pop sound while the jack plug in The patch corrects the sequence of the jack detection. It will prevent the pop sound while the jack plug in. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 588cd850f5089cb63e031e8d70e9c081b0d97ab2 Author: Oder Chiou Date: Mon Aug 24 20:32:56 2015 +0800 ASoC: rt5645: Modify the headphone depop and calibration function to prevent the pop sound in the booting time Remove the original calibration function and modify the depop and calibration function to prevent the pop sound in the booting time. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 111 +++++++++++++--------------------------------- 1 file changed, 32 insertions(+), 79 deletions(-) commit a8cfe8cfd0da4502f5fa924f47c7ba6c7047c722 Author: Chen-Yu Tsai Date: Tue Aug 18 15:16:45 2015 +0800 clk: Add missing header for 'bool' definition to clk-conf.h of_clk_set_defaults uses the type 'bool', but clk-conf.h does not include its definition. This results in a compile error when only clk-conf.h is used. Signed-off-by: Chen-Yu Tsai Signed-off-by: Stephen Boyd include/linux/clk/clk-conf.h | 2 ++ 1 file changed, 2 insertions(+) commit 2ce0acf5673e7ee82506e69109876e037e4a64be Author: Leilk Liu Date: Mon Aug 24 11:45:18 2015 +0800 spi: mediatek: replace *_time name This patch replaces *_time name in mtk_spi_prepare_transfer(). Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 13da5a0b72ea66c74483966ff91718ae0a9c0703 Author: Leilk Liu Date: Mon Aug 24 11:45:17 2015 +0800 spi: mediatek: add PM clk_prepare_enable fail flow This patch adds PM clk_prepare_enable fail flow. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 50f8fec2162db918540d0845481f3f6fffc5b033 Author: Leilk Liu Date: Mon Aug 24 11:45:16 2015 +0800 spi: mediatek: replace int with u32, delete TAB and define MTK_SPI_PAUSE_INT_STATUS marco this patch replaces int with u32, deletes TAB, and defines MTK_SPI_PAUSE_INT_STATUS marco. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit dd69a0a69c9ee3e09da7f3771c1aa420e49464ce Author: Leilk Liu Date: Mon Aug 24 11:45:15 2015 +0800 spi: mediatek: add linux/io.h include file mediatek spi driver uses readl/writel, so add linux/io.h, even so it's implicitly imported by spi/spi.h Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 1 + 1 file changed, 1 insertion(+) commit 9205b797dbe519a629267ec8c5766cd973d35063 Author: Stephen Boyd Date: Mon Aug 24 21:49:30 2015 +0100 ARM: 8421/1: smp: Collapse arch_cpu_idle_dead() into cpu_die() The only caller of cpu_die() on ARM is arch_cpu_idle_dead(), so let's simplify the code by renaming cpu_die() to arch_cpu_idle_dead(). While were here, drop the __ref annotation because __cpuinit is gone nowadays. Signed-off-by: Stephen Boyd Signed-off-by: Russell King arch/arm/include/asm/smp.h | 1 - arch/arm/kernel/process.c | 7 ------- arch/arm/kernel/smp.c | 2 +- 3 files changed, 1 insertion(+), 9 deletions(-) commit 1ec6f701707e4e97e451ff8b662360f1262a6c59 Merge: 6be4b0d 2a03c02 Author: Olof Johansson Date: Tue Aug 25 10:16:48 2015 -0700 Merge tag 'v4.3-rockchip32-soc3' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc Fix for wrong error-codes in rk3288 suspend code. * tag 'v4.3-rockchip32-soc3' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: rockchip: pm: Fix PTR_ERR() argument Signed-off-by: Olof Johansson commit 4c80a00388dd7b9d9e7ebf31e62b96c7b74178b8 Merge: f4be3c6 467fb18 Author: Olof Johansson Date: Tue Aug 25 10:15:27 2015 -0700 Merge tag 'v4.3-rockchip32-dts3' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Fixes for non-standard and inverted regulator-suspend-properties on veyron boards. * tag 'v4.3-rockchip32-dts3' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: correct regulator power states for suspend ARM: dts: rockchip: correct regulator PM properties Signed-off-by: Olof Johansson commit 7d4d443eb4386d6dbd420fa96303dd8fbc1eefc8 Author: Ben Zhang Date: Fri Aug 21 21:17:00 2015 -0700 ASoC: rt5677: Allow arbitrary block read/write via SPI Added rt5677_spi_read() and refactored rt5677_spi_write() so that an arbitrary block in the DSP address space can be read/written via SPI. For example, this allows us to load an ELF DSP firmware with sparse sections, and stream audio samples from DSP ring buffer. Signed-off-by: Ben Zhang Acked-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5677-spi.c | 233 +++++++++++++++++++++++++++++++----------- sound/soc/codecs/rt5677-spi.h | 8 +- sound/soc/codecs/rt5677.c | 4 +- 3 files changed, 178 insertions(+), 67 deletions(-) commit f4d86223771533c68f1a6692d499f7ef0025f733 Author: Jonas Gorski Date: Sun Aug 23 22:49:32 2015 +0200 spi/bcm63xx-hsspi: add support for dual spi read/write Add support for dual read/writes on spi-bcm63xx-hsspi. This has been tested with a s25fl129p1 dual read capable spi flash, with a nice speed improvement: serial read: root@OpenWrt:/# time dd if=/dev/mtd4 of=/dev/null bs=8192 2032+0 records in 2032+0 records out real 0m 4.39s user 0m 0.00s sys 0m 1.55s dual read: root@OpenWrt:/# time dd if=/dev/mtd4 of=/dev/null bs=8192 2032+0 records in 2032+0 records out real 0m 3.09s user 0m 0.00s sys 0m 1.56s Signed-off-by: Jonas Gorski Signed-off-by: Mark Brown drivers/spi/spi-bcm63xx-hsspi.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 126b16e2ad98c46aa0f53dbf62f71c09ba6b1d99 Author: Mark Rutland Date: Thu Jul 23 17:52:43 2015 +0100 Docs: dt: add generic MSI bindings Currently msi-parent is used in a couple of drivers despite being fairly underspecified. This patch adds a generic binding for MSIs (including the existing msi-parent property) enabling the description of platform devices capable of using MSIs. While MSIs are primarily distinguished by doorbell and payload, some MSI controllers (e.g. the GICv3 ITS) also use side-band information accompanying the write to identify the master which originated the MSI, to allow for sandboxing. This sideband information is non-probeable and needs to be described in the DT. Other MSI controllers may have additional configuration details which need to be described per-master. This patch adds a generic msi-parent binding document, extending the de-facto standard with a new (optional) #msi-cells which can be used to express any per-master configuration and/or sideband data. This is sufficient to describe non-hotpluggable devices. For busses where sideband data may be derived from some bus-specific master ID scheme, other properties will be required to describe the mapping. Signed-off-by: Mark Rutland Acked-by: Marc Zyngier Signed-off-by: Rob Herring .../bindings/interrupt-controller/msi.txt | 135 +++++++++++++++++++++ 1 file changed, 135 insertions(+) commit 7f5dcaf1fdf289767a126a0a5cc3ef39b5254b06 Author: Grant Likely Date: Sun Jun 7 15:20:11 2015 +0100 drivercore: Fix unregistration path of platform devices The unregister path of platform_device is broken. On registration, it will register all resources with either a parent already set, or type==IORESOURCE_{IO,MEM}. However, on unregister it will release everything with type==IORESOURCE_{IO,MEM}, but ignore the others. There are also cases where resources don't get registered in the first place, like with devices created by of_platform_populate()*. Fix the unregister path to be symmetrical with the register path by checking the parent pointer instead of the type field to decide which resources to unregister. This is safe because the upshot of the registration path algorithm is that registered resources have a parent pointer, and non-registered resources do not. * It can be argued that of_platform_populate() should be registering it's resources, and they argument has some merit. However, there are quite a few platforms that end up broken if we try to do that due to overlapping resources in the device tree. Until that is fixed, we need to solve the immediate problem. Cc: Pantelis Antoniou Cc: Wolfram Sang Cc: Rob Herring Cc: Greg Kroah-Hartman Cc: Ricardo Ribalda Delgado Signed-off-by: Grant Likely Tested-by: Ricardo Ribalda Delgado Tested-by: Wolfram Sang Cc: stable@vger.kernel.org Signed-off-by: Rob Herring drivers/base/platform.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 3a496b00b6f90c41bd21a410871dfc97d4f3c7ab Author: David Daney Date: Wed Aug 19 13:17:47 2015 -0700 of/address: Don't loop forever in of_find_matching_node_by_address(). If the internal call to of_address_to_resource() fails, we end up looping forever in of_find_matching_node_by_address(). This can be caused by a defective device tree, or calling with an incorrect matches argument. Fix by calling of_find_matching_node() unconditionally at the end of the loop. Signed-off-by: David Daney Cc: stable@vger.kernel.org Signed-off-by: Rob Herring drivers/of/address.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 068627a5978a885b33f0f49da81860ce78c3ac6f Author: Geert Uytterhoeven Date: Tue Aug 4 15:11:21 2015 +0200 of: Add vendor prefix for JEDEC Solid State Technology Association Add the "jedec" vendor prefix for the "JEDEC Solid State Technology Association" (formerly known as the "Joint Electron Device Engineering Council"), which is already in use in several bindings. Signed-off-by: Geert Uytterhoeven Acked-by: Brian Norris Signed-off-by: Rob Herring Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 43443ad692cf1d41a90cac2ed7066a10cd67a9c6 Author: Hauke Mehrtens Date: Sun Aug 2 19:44:43 2015 +0200 of/platform: add function to populate default bus When a default bus like the simple-bus should be used someone had to call of_platform_populate() with the default match table. This match table was not exported, so it is impossible for code build as a module to use this. Instead of exporting of_default_bus_match_table, add a new function which uses this default match table and populates the bus. Signed-off-by: Hauke Mehrtens Signed-off-by: Rob Herring drivers/of/platform.c | 9 +++++++++ include/linux/of_platform.h | 9 +++++++++ 2 files changed, 18 insertions(+) commit 5b87af4cca175c4f03f790f2b15be7e4dd436df9 Author: Javier Martinez Canillas Date: Tue Aug 25 08:31:17 2015 +0200 regulator: isl9305: Export OF module alias information The I2C core always reports the MODALIAS uevent as "i2c:" regardless of the mechanism that was used to register the device (i.e: OF or board code) and the table that is used later to match the driver with the device (i.e: I2C id table or OF match table). So drivers needs to export the I2C id table and this be built into the module or udev won't have the necessary information to autoload the needed driver module when the device is added. But this means that OF-only drivers needs to have both OF and I2C id tables that have to be kept in sync and also the dev node compatible manufacturer prefix is stripped when reporting the MODALIAS. Which can lead to issues if two vendors use the same I2C device name for example. To avoid the above, the I2C core behavior may be changed in the future to not require an SPI device table for OF-only drivers and report the OF module alias. So, it's better to also export the OF table even when is unused now to prevent breaking module loading when the core changes. Signed-off-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/isl9305.c | 1 + 1 file changed, 1 insertion(+) commit 3fba7e23f754a9a6e639b640fa2a393712ffe1b8 Author: Russell King Date: Wed Aug 19 11:02:28 2015 +0100 ARM: uaccess: provide uaccess_save_and_enable() and uaccess_restore() Provide uaccess_save_and_enable() and uaccess_restore() to permit control of userspace visibility to the kernel, and hook these into the appropriate places in the kernel where we need to access userspace. Signed-off-by: Russell King arch/arm/include/asm/futex.h | 19 ++++++++-- arch/arm/include/asm/uaccess.h | 71 +++++++++++++++++++++++++++++++++++--- arch/arm/kernel/armksyms.c | 6 ++-- arch/arm/lib/clear_user.S | 6 ++-- arch/arm/lib/copy_from_user.S | 6 ++-- arch/arm/lib/copy_to_user.S | 6 ++-- arch/arm/lib/uaccess_with_memcpy.c | 4 +-- 7 files changed, 97 insertions(+), 21 deletions(-) commit 08446b129bbde34665c423d882f857a45b8c3aed Author: Russell King Date: Tue Aug 25 14:59:15 2015 +0100 ARM: mm: improve do_ldrd_abort macro Improve the do_ldrd_abort macro code - firstly, it inefficiently checks for the LDRD encoding by doing a multi-stage test of various bits. This can be simplified by generating a mask, bitmasking the instruction and then comparing the result. Secondly, we want to be able to test the result rather than branching to do_DataAbort, so remove the branch at the end and rename the macro to 'teq_ldrd' to reflect it's new usage. teq_ldrd macro returns 'eq' if the instruction was a LDRD. Signed-off-by: Russell King arch/arm/mm/abort-ev5t.S | 3 ++- arch/arm/mm/abort-ev5tj.S | 3 ++- arch/arm/mm/abort-ev6.S | 3 ++- arch/arm/mm/abort-macro.S | 13 +++++-------- 4 files changed, 11 insertions(+), 11 deletions(-) commit 9066b0c318589f47b754a3def4fe8ec4688dc21a Author: Chunming Zhou Date: Tue Aug 25 15:12:26 2015 +0800 drm/amdgpu: fix no sync_wait in copy_buffer when eviction is happening, if don't handle dependency, then the fence could be dead off. Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 3c62338c26bf2677c8285b406cd769b92ee0dc10 Author: Chunming Zhou Date: Thu Aug 20 18:33:59 2015 +0800 drm/amdgpu: fix last_vm_update fence is not effetive for sched fence Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 45 +++++++++++++++++++++++++------ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 24 ++++++++++++----- 4 files changed, 58 insertions(+), 18 deletions(-) commit f38fdfddfaab070e3ff2333a79e45169ee33dc28 Author: Chunming Zhou Date: Mon Aug 24 11:35:26 2015 +0800 drm/amdgpu: add priv data to sched Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 3 ++- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 4 +++- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) commit 84f76ea6b03a766931e5d6d650af5ab980c6c4f4 Author: Chunming Zhou Date: Mon Aug 24 12:47:36 2015 +0800 drm/amdgpu: add owner for sched fence Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 4 ++-- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 3 ++- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 4 +++- drivers/gpu/drm/amd/scheduler/sched_fence.c | 4 ++-- 6 files changed, 10 insertions(+), 8 deletions(-) commit c14692f0a728a9d79fb03c7ce521eb07ec0e2b23 Author: Christian König Date: Fri Aug 21 15:18:47 2015 +0200 drm/amdgpu: remove entity reference from sched fence Entity don't live as long as scheduler fences. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 4 ++-- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 9 ++------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 5 ++--- drivers/gpu/drm/amd/scheduler/sched_fence.c | 4 ++-- 4 files changed, 8 insertions(+), 14 deletions(-) commit 6c859274f363be9dc13f8849bdc59bb64f922f26 Author: Christian König Date: Thu Aug 20 16:12:50 2015 +0200 drm/amdgpu: fix and cleanup amd_sched_entity_push_job Calling schedule() is probably the worse things we can do. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 78 +++++++++++++++------------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 4 +- 4 files changed, 48 insertions(+), 38 deletions(-) commit 87e0a87dabdbe9e1698ef85c620c4110b04992a0 Author: Christian König Date: Thu Aug 20 17:36:28 2015 +0200 drm/amdgpu: remove amdgpu_bo_list_clone Not used any more. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 33 ----------------------------- 2 files changed, 35 deletions(-) commit 3a185a33a2d291883bd1d0691d22901c345b12c9 Author: Christian König Date: Thu Aug 20 17:35:34 2015 +0200 drm/amdgpu: remove the context from amdgpu_job Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +--- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 7 ------- 3 files changed, 1 insertion(+), 12 deletions(-) commit 69f7dd652c08bffb267f418ded7b358e74783045 Author: Christian König Date: Thu Aug 20 17:24:40 2015 +0200 drm/amdgpu: remove unused parameters to amd_sched_create Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 5 ++--- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 21 ++++++--------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 12 +++--------- 3 files changed, 11 insertions(+), 27 deletions(-) commit 1fca766b24d07e2daed1da0f224f5f395c73e32b Author: Christian König Date: Thu Aug 20 17:09:54 2015 +0200 drm/amdgpu: remove sched_lock It isn't protecting anything. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 3 --- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 1 - 2 files changed, 4 deletions(-) commit b034b572f2823122d56cd0d235158873f84c7c23 Author: Christian König Date: Thu Aug 20 17:08:25 2015 +0200 drm/amdgpu: remove prepare_job callback Not used any more. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 8 ++------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 3 --- 2 files changed, 2 insertions(+), 9 deletions(-) commit d54fdb94b2fd4c989d498f69e8bbf4189fde42ef Author: Christian König Date: Thu Aug 20 17:03:48 2015 +0200 drm/amdgpu: cleanup a scheduler function name Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e688b728228b951f41175e3a7c0738708d045969 Author: Christian König Date: Thu Aug 20 17:01:01 2015 +0200 drm/amdgpu: reorder scheduler functions Keep run queue, entity and scheduler handling together. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 56 +++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit f49565982194d601f4f3a99892d0f3c765aec104 Author: Christian König Date: Thu Aug 20 16:59:38 2015 +0200 drm/amdgpu: fix scheduler thread creation error checking Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit aef4852eed2841892796fb1e9abd7f8468384e62 Author: Christian König Date: Thu Aug 20 14:47:46 2015 +0200 drm/amdgpu: fix entity wakeup race condition That actually didn't worked at all. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 43 +++++++++++++-------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 1 - 2 files changed, 21 insertions(+), 23 deletions(-) commit f85a6dd9ebd1bcaeb2f31cca71537e62606a23c2 Author: Christian König Date: Wed Aug 19 17:37:52 2015 +0200 drm/amdgpu: cleanup entity picking Cleanup function name, stop checking scheduler ready twice, but check if kernel thread should stop instead. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 9788ec40322ef40d64f6d4276248f40666dc4505 Author: Christian König Date: Wed Aug 19 17:34:20 2015 +0200 drm/amdgpu: remove some more unused entity members v2 None of them are used any more. v2: fix type in error message Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 11 +++-------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 3 --- 2 files changed, 3 insertions(+), 11 deletions(-) commit eb98d1c54d1e058f406f3f4acf15684ad26f9676 Author: Christian König Date: Thu Aug 20 17:28:36 2015 +0200 drm/amdgpu: fix user fences when scheduler is enabled Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 ++ 1 file changed, 2 insertions(+) commit f91b3a69418120974c9a416939b903ec86607c52 Author: Christian König Date: Thu Aug 20 14:47:40 2015 +0800 drm/amdgpu: fix fence wait in sync_fence, instead should be in sync_rings Signed-off-by: Christian König Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 56 ++++++++++++++++++++++++++++++-- 3 files changed, 61 insertions(+), 3 deletions(-) commit c746ba222363d2e0b0316b1c0bda21e2646b66f2 Author: Christian König Date: Wed Aug 19 16:12:15 2015 +0200 drm/amdgpu: rework scheduler submission handling. Remove active_hw_rq and it's protecting queue_lock, they are unused. User 32bit atomic for hw_rq_count, 64bits for counting to three is a bit overkill. Cleanup the function name and remove incorrect comments. Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 43 +++++++-------------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 5 +--- 2 files changed, 11 insertions(+), 37 deletions(-) commit ce882e6dc241ab8dded0eeeb33a86482d44a5689 Author: Christian König Date: Wed Aug 19 15:00:55 2015 +0200 drm/amdgpu: remove v_seq handling from the scheduler v2 Simply not used any more. Only keep 32bit atomic for fence sequence numbering. v2: trivial rebase Signed-off-by: Christian König Reviewed-by: Alex Deucher (v1) Reviewed-by: Jammy Zhou (v1) Reviewed-by: Chunming Zhou (v1) drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 ++---- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 20 +++++--------------- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 +----- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 1 - drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 19 +------------------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 7 +------ drivers/gpu/drm/amd/scheduler/sched_fence.c | 13 ++++++++----- 9 files changed, 21 insertions(+), 57 deletions(-) commit 4ce9891ee17c6e064cc334e3297f7e992d47f3a6 Author: Chunming Zhou Date: Wed Aug 19 16:41:19 2015 +0800 drm/amdgpu: improve sa_bo->fence by kernel fence Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 22 ++++++------ drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 50 ++++++++++++++++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_semaphore.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- 8 files changed, 58 insertions(+), 34 deletions(-) commit 1aa4051b7f5474cca6009c13868c59d78d06f983 Author: Junwei Zhang Date: Wed Aug 19 16:24:19 2015 +0800 drm/amdgpu: modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple() Rename the function and update the related code with this modified function. Add the new parameter of bool wait_all. If wait_all is true, it will return when all fences are signaled or timeout. If wait_all is false, it will return when any fence is signaled or timeout. Signed-off-by: Junwei Zhang Reviewed-by: Monk Liu Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 9 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 79 ++++++++++++++++++++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 3 +- 3 files changed, 69 insertions(+), 22 deletions(-) commit 00133ffbf150bf145a946b3f4ee7031503e9751e Author: Fabio Estevam Date: Thu Aug 13 17:20:21 2015 -0300 pinctrl: imx6ul: Remove .owner field platform_driver does not need to set an owner as it will be populated by the driver core. The semantic patch that makes this change is available in scripts/coccinelle/api/platform_no_drv_owner.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Linus Walleij drivers/pinctrl/freescale/pinctrl-imx6ul.c | 1 - 1 file changed, 1 deletion(-) commit 5e22ec019823b0204720e1ad9a5866c638332b3a Author: Julia Lawall Date: Thu Aug 13 17:41:16 2015 +0200 gpio: extraxfs: fix returnvar.cocci warnings Remove unneeded variable used to store return value. Generated by: scripts/coccinelle/misc/returnvar.cocci Signed-off-by: Fengguang Wu Signed-off-by: Julia Lawall Signed-off-by: Linus Walleij drivers/gpio/gpio-etraxfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2fe2918fa3294edc9c3d8d1622bb1a07c00463ff Author: Mike Looijmans Date: Wed Aug 12 16:22:12 2015 +0200 pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp Group names should be smc0_nand_grp and smc0_nor_grp, otherwise you'll get errors like this if you try to pinmux them via the devicetree: zynq-pinctrl 700.pinctrl: invalid group "smc0_nand_grp" for function "smc0_nand" Probably a typo while creating these tables. Signed-off-by: Mike Looijmans Acked-by: Sören Brinkmann Acked-by: Moritz Fischer Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-zynq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 52293c67f1e7542a6dc61037d83c266e216bef27 Author: Alex Deucher Date: Mon Aug 24 22:46:13 2015 -0400 drm/amdgpu: fix IH ring allocation for bus addresses (v2) Use pci_alloc_consistent rather than kzalloc since we need 256 byte aligned memory for the ring buffer. v2: fix copy paste typo in free function noticed by Jammy. bug: https://bugs.freedesktop.org/show_bug.cgi?id=91749 Reviewed-by: Christian König Reviewed-by: Jammy Zhou Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit bf433416e67597ba105ece55b3136557874945db Author: Lars Persson Date: Tue Aug 25 11:59:15 2015 +0200 crypto: algif_aead - fix for multiple operations on AF_ALG sockets The tsgl scatterlist must be re-initialized after each operation. Otherwise the sticky bits in the page_link will corrupt the list with pre-mature termination or false chaining. Signed-off-by: Lars Persson Signed-off-by: Herbert Xu crypto/algif_aead.c | 1 + 1 file changed, 1 insertion(+) commit df9e21e100a65618b56971ec8da4975eb60e919d Author: Tadeusz Struk Date: Mon Aug 24 11:56:02 2015 -0700 crypto: qat - enable legacy VFs We need to support legacy VFs as well as VFs running on different OSes. To do so the compatibility check need needs to be relaxed. This patch moves the logic responsible for VF to PF version and compatibility checking from adfsriov.c to adf_pf2vf_msg.c, where it belongs, and changes the logic enable legacy VFs. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_common_drv.h | 1 + drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 102 +++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_pf2vf_msg.h | 2 + drivers/crypto/qat/qat_common/adf_sriov.c | 119 +++---------------------- 4 files changed, 118 insertions(+), 106 deletions(-) commit 0f74fbf77d457c692e108c91475bb7a46aa6d60c Author: Tadeusz Struk Date: Mon Aug 24 07:52:14 2015 -0700 MPI: Fix mpi_read_buffer Change mpi_read_buffer to return a number without leading zeros so that mpi_read_buffer and mpi_get_buffer return the same thing. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu lib/mpi/mpicoder.c | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) commit a8b9774571d46506a0774b1ced3493b1245cf893 Author: Christian Engelmayer Date: Fri Aug 21 23:14:26 2015 +0200 rsi: Fix possible leak when loading firmware Commit 5d5cd85ff441 ("rsi: Fix failure to load firmware after memory leak fix and fix the leak") also added a check on the allocation of DMA-accessible memory that may directly return. In that case the already allocated firmware data is leaked. Make sure the data is always freed correctly. Detected by Coverity CID 1316519. Fixes: 5d5cd85ff441 ("rsi: Fix failure to load firmware after memory leak fix and fix the leak") Signed-off-by: Christian Engelmayer Signed-off-by: Kalle Valo drivers/net/wireless/rsi/rsi_91x_sdio_ops.c | 8 ++++++-- drivers/net/wireless/rsi/rsi_91x_usb_ops.c | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) commit 4e70f2144db01f7214ed5846e47abf128fbfb5af Author: Hante Meuleman Date: Thu Aug 20 22:06:08 2015 +0200 brcmfmac: Add support for host platform NVRAM loading. Host platforms such as routers supported by OpenWRT can support NVRAM reading directly from internal NVRAM store. With this patch the nvram load routines will fall back to this method when there is no nvram file and support is available in the kernel. Reviewed-by: Arend Van Spriel Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Daniel (Deognyoun) Kim Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/firmware.c | 39 +++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) commit fc7c3ad5251cf76fc78b7f4701e35a0af6375335 Author: Arend van Spriel Date: Thu Aug 20 22:06:07 2015 +0200 brcmfmac: bump highest event number for 4339 firmware The event mask length is determined by the highest event number that is specified in the driver. When this length is shorter than firmware expects setting event mask will fail and device becomes pretty useless. This issue was reported with bcm4339 firmware that was recently released. Reported-by: Pontus Fuchs Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Pontus Fuchs Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/fweh.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit b02bf1932a4855dc860ed20cdab94f1ea9b1c56f Author: Franky Lin Date: Thu Aug 20 22:06:06 2015 +0200 brcmfmac: block the correct flowring when backup queue overflow brcmf_flowring_block blocks the last active flowring under the same interface instead of the one provided by caller. This could lead to a dead lock of netif stop if there are more than one flowring under the interface and the traffic is high enough so brcmf_flowring_enqueue can not unblock the ring right away. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/flowring.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 39504a2d21adde4748b5ce8c057e09edf3fe17bb Author: Arend van Spriel Date: Thu Aug 20 22:06:05 2015 +0200 brcmfmac: make use of cfg80211_check_combinations() Use cfg80211_check_combinations() so we can bail out early when an interface add or change results in an invalid combination. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 44 +++++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) commit 2bb66a8183d6396babde51e558b1ab35733f275f Author: Franky Lin Date: Thu Aug 20 22:06:04 2015 +0200 brcmfmac: add debugfs entry for msgbuf statistics Expose ring buffer read/write pointers and other useful statistics through debugfs. Reviewed-by: Arend Van Spriel Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Franky Lin Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c | 56 ++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 0882dda3bcbb51e63c2fd25705ec8541bf86378e Author: Arend van Spriel Date: Thu Aug 20 22:06:03 2015 +0200 brcmfmac: correct interface combination info The interface combination provided by brcmfmac did not truly reflect the combinations supported by driver and/or firmware. Reviewed-by: Hante Meuleman Reviewed-by: Franky (Zhenhui) Lin Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Pontus Fuchs Signed-off-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 151 +++++++++++++++------ 1 file changed, 112 insertions(+), 39 deletions(-) commit 50f32e2d1044b1f1658a1e40c8831969a30ca6a1 Author: Rafał Miłecki Date: Thu Aug 20 00:16:42 2015 +0200 brcmfmac: check all combinations when setting wiphy's addresses Broadcom is working on better reflection of interface combinations. With upcoming patches we may have 1st combination supporting less interfaces than others. To don't run out of addresses check all combinations to find the one with the greatest max_interfaces value. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 1642d09fb9b128e8e538b2a4179962a34f38dff9 Author: Adrien Schildknecht Date: Wed Aug 19 17:33:12 2015 +0200 rtlwifi: rtl8192cu: Add new device ID The v2 of NetGear WNA1000M uses a different idProduct: USB ID 0846:9043 Signed-off-by: Adrien Schildknecht Cc: Stable Acked-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 1 + 1 file changed, 1 insertion(+) commit 654e2751c9f00491c4622893de59a21784e39ccf Author: Takashi Iwai Date: Tue Aug 25 14:04:44 2015 +0200 ALSA: ppc: Add missing inclusion of linux/module.h Otherwise it triggers a compile warning like: sound/ppc/keywest.c:104:1: warning: data definition has no type or storage class sound/ppc/keywest.c:104:1: error: type defaults to 'int' in declaration of 'MODULE_DEVICE_TABLE' [-Werror=implicit-int] Fixes: a2bc2af66a5b ('ALSA: ppc: keywest: Export I2C module alias information') Reported-by: kbuild test robot Reviewed-by: Javier Martinez Canillas Signed-off-by: Takashi Iwai sound/ppc/keywest.c | 1 + 1 file changed, 1 insertion(+) commit 12ff7288bfed9d6d62186f0dd782b7b5a43670cd Author: Wu Fengguang Date: Sat Aug 15 18:36:37 2015 +0800 rtlwifi: rtl8192ee: fix semicolon.cocci warnings drivers/net/wireless/rtlwifi/rtl8192ee/phy.c:856:2-3: Unneeded semicolon drivers/net/wireless/rtlwifi/rtl8192ee/phy.c:492:3-4: Unneeded semicolon drivers/net/wireless/rtlwifi/rtl8192ee/phy.c:452:3-4: Unneeded semicolon Remove unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci CC: Larry Finger Signed-off-by: Fengguang Wu Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192ee/phy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 14250640cd52bf12831799c35502184c4ae8963b Author: Oleksij Rempel Date: Fri Aug 14 07:16:39 2015 +0200 ath9k_htc: do ani shortcalibratio if we got -ETIMEDOUT current code will handle -ETIMEDOUT as success which is probalbly wrong. According to this comment I assume it is safe to handle -ETIMEDOUT as false: drivers/net/wireless/ath/ath9k/calib.c 290 /* 291 * We timed out waiting for the noisefloor to load, probably due to an 292 * in-progress rx. Simply return here and allow the load plenty of time 293 * to complete before the next calibration interval. We need to avoid 294 * trying to load -50 (which happens below) while the previous load is 295 * still in progress as this can cause rx deafness. Instead by returning 296 * here, the baseband nf cal will just be capped by our present 297 * noisefloor until the next calibration timer. 298 */ Since no other error wariants are present, this patch is checking only for (ret <= 0). Reported-by: Dan Carpenter Signed-off-by: Oleksij Rempel Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc_drv_main.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 11c36537056759578f9baae03c4ff9dba95661cc Merge: 4a89ba0 5865f36 Author: Kalle Valo Date: Tue Aug 25 14:54:38 2015 +0300 Merge tag 'iwlwifi-next-for-kalle-2015-08-23' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * new Tx power firmware API * bump max firmware API to 17 * fix bug in debug prints * static checker fix * fix unused defines * fix command list on newest firmware commit a2bc2af66a5b656577fc2d71b6c277b73537777e Author: Javier Martinez Canillas Date: Tue Aug 25 08:31:14 2015 +0200 ALSA: ppc: keywest: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Takashi Iwai sound/ppc/keywest.c | 1 + 1 file changed, 1 insertion(+) commit dd9d3843755da95f63dd3a376f62b3e45c011210 Author: Jan H. Schönherr Date: Wed Aug 12 21:35:56 2015 +0200 sched: Fix cpu_active_mask/cpu_online_mask race There is a race condition in SMP bootup code, which may result in WARNING: CPU: 0 PID: 1 at kernel/workqueue.c:4418 workqueue_cpu_up_callback() or kernel BUG at kernel/smpboot.c:135! It can be triggered with a bit of luck in Linux guests running on busy hosts. CPU0 CPUn ==== ==== _cpu_up() __cpu_up() start_secondary() set_cpu_online() cpumask_set_cpu(cpu, to_cpumask(cpu_online_bits)); cpu_notify(CPU_ONLINE) cpumask_set_cpu(cpu, to_cpumask(cpu_active_bits)); During the various CPU_ONLINE callbacks CPUn is online but not active. Several things can go wrong at that point, depending on the scheduling of tasks on CPU0. Variant 1: cpu_notify(CPU_ONLINE) workqueue_cpu_up_callback() rebind_workers() set_cpus_allowed_ptr() This call fails because it requires an active CPU; rebind_workers() ends with a warning: WARNING: CPU: 0 PID: 1 at kernel/workqueue.c:4418 workqueue_cpu_up_callback() Variant 2: cpu_notify(CPU_ONLINE) smpboot_thread_call() smpboot_unpark_threads() .. __kthread_unpark() __kthread_bind() wake_up_state() .. select_task_rq() select_fallback_rq() The ->wake_cpu of the unparked thread is not allowed, making a call to select_fallback_rq() necessary. Then, select_fallback_rq() cannot find an allowed, active CPU and promptly resets the allowed CPUs, so that the task in question ends up on CPU0. When those unparked tasks are eventually executed, they run immediately into a BUG: kernel BUG at kernel/smpboot.c:135! Just changing the order in which the online/active bits are set (and adding some memory barriers), would solve the two issues above. However, it would change the order of operations back to the one before commit 6acbfb96976f ("sched: Fix hotplug vs. set_cpus_allowed_ptr()"), thus, reintroducing that particular problem. Going further back into history, we have at least the following commits touching this topic: - commit 2baab4e90495 ("sched: Fix select_fallback_rq() vs cpu_active/cpu_online") - commit 5fbd036b552f ("sched: Cleanup cpu_active madness") Together, these give us the following non-working solutions: - secondary CPU sets active before online, because active is assumed to be a subset of online; - secondary CPU sets online before active, because the primary CPU assumes that an online CPU is also active; - secondary CPU sets online and waits for primary CPU to set active, because it might deadlock. Commit 875ebe940d77 ("powerpc/smp: Wait until secondaries are active & online") introduces an arch-specific solution to this arch-independent problem. Now, go for a more general solution without explicit waiting and simply set active twice: once on the secondary CPU after online was set and once on the primary CPU after online was seen. set_cpus_allowed_ptr()") Signed-off-by: Jan H. Schönherr Acked-by: Peter Zijlstra Cc: Cc: Anton Blanchard Cc: Borislav Petkov Cc: Joerg Roedel Cc: Linus Torvalds Cc: Matt Wilson Cc: Michael Ellerman Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: 6acbfb96976f ("sched: Fix hotplug vs. set_cpus_allowed_ptr()") Link: http://lkml.kernel.org/r/1439408156-18840-1-git-send-email-jschoenh@amazon.de Signed-off-by: Ingo Molnar kernel/sched/core.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4ad79562577a3936b08365260f86eeb83156479f Merge: c13dcf9 e203db2 6e6cfbc cf27ec9 54e466f 4df4eab 23d3a98 57fb907 7b0ce72 Author: Joerg Roedel Date: Tue Aug 25 11:39:50 2015 +0200 Merge branches 'arm/omap', 'arm/msm', 'arm/smmu', 'arm/tegra', 'x86/vt-d', 'x86/amd', 'ppc/pamu' and 'core' into next commit 4df4eab168c1c4058603be55a3169d4a45779cc0 Author: Joerg Roedel Date: Tue Aug 25 10:54:28 2015 +0200 iommu/vt-d: Really use upper context table when necessary There is a bug in iommu_context_addr() which will always use the lower context table, even when the upper context table needs to be used. Fix this issue. Fixes: 03ecc32c5274 ("iommu/vt-d: support extended root and context entries") Reported-by: Xiao, Nan Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e9a3fcfa2ca10e3ff76938fe9a12515ffa41003 Author: Axel Lin Date: Sun Aug 23 10:07:13 2015 +0800 ASoC: tegra: Fix unused variable 'spdif' warning Fix below build warning: CC [M] sound/soc/tegra/tegra20_spdif.o sound/soc/tegra/tegra20_spdif.c: In function 'tegra20_spdif_platform_remove': sound/soc/tegra/tegra20_spdif.c:361:24: warning: unused variable 'spdif' [-Wunused-variable] Signed-off-by: Axel Lin Reviewed-by: Vaishali Thakkar Signed-off-by: Mark Brown sound/soc/tegra/tegra20_spdif.c | 2 -- 1 file changed, 2 deletions(-) commit e0aa3a665782e29cec752ae667c51ed4ee75d11f Author: Russell King Date: Thu Aug 20 17:39:32 2015 +0100 ARM: entry: ensure that IRQs are enabled when calling syscall_trace_exit() The audit code looks like it's been written to cope with being called with IRQs enabled. However, it's unclear whether IRQs should be enabled or disabled when calling the syscall tracing infrastructure. Right now, sometimes we call this with IRQs enabled, and other times with IRQs disabled. Opt for IRQs being enabled for consistency. Acked-by: Will Deacon Signed-off-by: Russell King arch/arm/kernel/entry-common.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3302caddf10ad50710dbb7a94ccbdb3ad5bf1412 Author: Russell King Date: Thu Aug 20 16:13:37 2015 +0100 ARM: entry: efficiency cleanups Make the "fast" syscall return path fast again. The addition of IRQ tracing and context tracking has made this path grossly inefficient. We can do much better if these options are enabled if we save the syscall return code on the stack - we then don't need to save a bunch of registers around every single callout to C code. Acked-by: Will Deacon Signed-off-by: Russell King arch/arm/include/asm/assembler.h | 16 +++++++--- arch/arm/include/asm/thread_info.h | 20 +++++-------- arch/arm/kernel/entry-common.S | 61 ++++++++++++++++++++++++++++---------- arch/arm/kernel/signal.c | 6 ++++ 4 files changed, 71 insertions(+), 32 deletions(-) commit 01e09a28167c338684606b70797422da3bbb6650 Author: Russell King Date: Thu Aug 20 14:22:48 2015 +0100 ARM: entry: get rid of asm_trace_hardirqs_on_cond There's no need for this macro, it can use a default for the condition argument. Acked-by: Will Deacon Signed-off-by: Russell King arch/arm/include/asm/assembler.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit b64d1f66517a89b9b0f6bd0bca86b05a55a5e742 Author: Russell King Date: Tue Aug 18 23:06:25 2015 +0100 ARM: uaccess: simplify user access assembly The user assembly for byte and word accesses was virtually identical. Rather than duplicating this, use a macro instead. Acked-by: Will Deacon Signed-off-by: Russell King arch/arm/include/asm/uaccess.h | 47 +++++++++++------------------------------- 1 file changed, 12 insertions(+), 35 deletions(-) commit 552ef80389ec2567566be1ccc0dd79f08ba32cce Author: Axel Lin Date: Mon Aug 24 16:52:30 2015 +0800 ASoC: SPEAr: Convert to use devm_ioremap_resource Use devm_ioremap_resource() instead of open code. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/spear/spdif_in.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit 5aec892a6ebe5a3e2a006d969b5fab59e6c79f63 Author: Axel Lin Date: Mon Aug 24 16:49:05 2015 +0800 ASoC: omap-mcbsp: Convert to use devm_ioremap_resource Use devm_ioremap_resource() instead of open code. Signed-off-by: Axel Lin Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/omap/mcbsp.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit 508a43fdd73072c959f849b4e9eb60a9b523396f Author: Axel Lin Date: Mon Aug 24 16:47:36 2015 +0800 ASoC: davinci: Convert to use devm_ioremap_resource Use devm_ioremap_resource() instead of open code. Signed-off-by: Axel Lin Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-i2s.c | 25 ++++++------------------- sound/soc/davinci/davinci-mcasp.c | 18 ++++-------------- 2 files changed, 10 insertions(+), 33 deletions(-) commit ca30475698696af3a03f6eaee16472ae09d42269 Author: Xiao, Nan Date: Mon Aug 24 06:22:42 2015 +0000 x86/vt-d: Fix documentation of DRHD According to "Intel Virtualization Technology for Directed I/O" specification, DRHD stands for "DMA Remapping Hardware Unit Definition" , not "DMA Engine Reporting Structure". Signed-off-by: Nan Xiao Signed-off-by: Joerg Roedel Documentation/Intel-IOMMU.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39c33704420b147fb7e193a9f406cc8420a1d610 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:31 2015 -0700 drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style dma_alloc_writecombine()'s call and return value check is tangled in all in one call. Untangle both calls according to kernel coding style. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Vinod Koul Cc: Dan Williams Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: daniel.vetter@ffwll.ch Cc: dmaengine@vger.kernel.org Cc: konrad.wilk@oracle.com Cc: luto@amacapital.net Cc: mst@redhat.com Cc: tomi.valkeinen@ti.com Cc: toshi.kani@hp.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-10-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/dma/iop-adma.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 81bdef04d3bc76fc516ca613fa96061ff27bced9 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:30 2015 -0700 drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc() This driver uses the same area for MTRR as for the ioremap(). Convert the driver from using the x86-specific MTRR code to the architecture-agnostic arch_phys_wc_add(). It will avoid MTRRs if write-combining is available. In order to take advantage of that also ensure the ioremapped area is requested as write-combining. There are a few motivations for this: a) Take advantage of PAT when available. b) Help bury MTRR code away, MTRR is architecture-specific and on x86 it is being replaced by PAT. c) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()"). The conversion done is expressed by the following Coccinelle SmPL patch, it additionally required manual intervention to address all the ifdeffery and removal of redundant things which arch_phys_wc_add() already addresses such as verbose message about when MTRR fails and doing nothing when we didn't get an MTRR. @ mtrr_found @ expression index, base, size; @@ -index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); +index = arch_phys_wc_add(base, size); @ mtrr_rm depends on mtrr_found @ expression mtrr_found.index, mtrr_found.base, mtrr_found.size; @@ -mtrr_del(index, base, size); +arch_phys_wc_del(index); @ mtrr_rm_zero_arg depends on mtrr_found @ expression mtrr_found.index; @@ -mtrr_del(index, 0, 0); +arch_phys_wc_del(index); @ mtrr_rm_fb_info depends on mtrr_found @ struct fb_info *info; expression mtrr_found.index; @@ -mtrr_del(index, info->fix.smem_start, info->fix.smem_len); +arch_phys_wc_del(index); @ ioremap_replace_nocache depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap_nocache(base, size); +info->screen_base = ioremap_wc(base, size); @ ioremap_replace_default depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap(base, size); +info->screen_base = ioremap_wc(base, size); Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Tomi Valkeinen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Daniel Vetter Cc: Dave Airlie Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Jingoo Han Cc: Juergen Gross Cc: Lad, Prabhakar Cc: Laurent Pinchart Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rob Clark Cc: Suresh Siddha Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: toshi.kani@hp.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-9-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/vt8623fb.c | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) commit 4edcd2ab125506516c7de038f6e0a6d19dcc411d Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:29 2015 -0700 drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc() This driver uses the same area for MTRR as for the ioremap(). Convert the driver from using the x86-specific MTRR code to the architecture-agnostic arch_phys_wc_add(). It will avoid MTRRs if write-combining is available. In order to take advantage of that also ensure the ioremapped area is requested as write-combining. There are a few motivations for this: a) Take advantage of PAT when available. b) Help bury MTRR code away, MTRR is architecture-specific and on x86 it is being replaced by PAT. c) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()"). The conversion done is expressed by the following Coccinelle SmPL patch, it additionally required manual intervention to address all the ifdeffery and removal of redundant things which arch_phys_wc_add() already addresses such as verbose message about when MTRR fails and doing nothing when we didn't get an MTRR. @ mtrr_found @ expression index, base, size; @@ -index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); +index = arch_phys_wc_add(base, size); @ mtrr_rm depends on mtrr_found @ expression mtrr_found.index, mtrr_found.base, mtrr_found.size; @@ -mtrr_del(index, base, size); +arch_phys_wc_del(index); @ mtrr_rm_zero_arg depends on mtrr_found @ expression mtrr_found.index; @@ -mtrr_del(index, 0, 0); +arch_phys_wc_del(index); @ mtrr_rm_fb_info depends on mtrr_found @ struct fb_info *info; expression mtrr_found.index; @@ -mtrr_del(index, info->fix.smem_start, info->fix.smem_len); +arch_phys_wc_del(index); @ ioremap_replace_nocache depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap_nocache(base, size); +info->screen_base = ioremap_wc(base, size); @ ioremap_replace_default depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap(base, size); +info->screen_base = ioremap_wc(base, size); Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Tomi Valkeinen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Daniel Vetter Cc: Dave Airlie Cc: Geert Uytterhoeven Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Jingoo Han Cc: Juergen Gross Cc: Lad, Prabhakar Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rickard Strandqvist Cc: Suresh Siddha Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: toshi.kani@hp.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-8-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/s3fb.c | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) commit c823a48ac47f8e0274fa7c8a3befae4bfa8412e3 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:28 2015 -0700 drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc() Convert the driver from using the x86-specific MTRR code to the architecture-agnostic arch_phys_wc_add(). It will avoid MTRRs if write-combining is available. In order to take advantage of that also ensure the ioremapped area is requested as write-combining. There are a few motivations for this: a) Take advantage of PAT when available. b) Help bury MTRR code away, MTRR is architecture-specific and on x86 it is being replaced by PAT. c) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()"). The conversion done is expressed by the following Coccinelle SmPL patch, it additionally required manual intervention to address all the ifdeffery and removal of redundant things which arch_phys_wc_add() already addresses such as verbose message about when MTRR fails and doing nothing when we didn't get an MTRR. @ mtrr_found @ expression index, base, size; @@ -index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); +index = arch_phys_wc_add(base, size); @ mtrr_rm depends on mtrr_found @ expression mtrr_found.index, mtrr_found.base, mtrr_found.size; @@ -mtrr_del(index, base, size); +arch_phys_wc_del(index); @ mtrr_rm_zero_arg depends on mtrr_found @ expression mtrr_found.index; @@ -mtrr_del(index, 0, 0); +arch_phys_wc_del(index); @ mtrr_rm_fb_info depends on mtrr_found @ struct fb_info *info; expression mtrr_found.index; @@ -mtrr_del(index, info->fix.smem_start, info->fix.smem_len); +arch_phys_wc_del(index); @ ioremap_replace_nocache depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap_nocache(base, size); +info->screen_base = ioremap_wc(base, size); @ ioremap_replace_default depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap(base, size); +info->screen_base = ioremap_wc(base, size); Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Tomi Valkeinen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Daniel Vetter Cc: Dave Airlie Cc: Geert Uytterhoeven Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Lad, Prabhakar Cc: Laurent Pinchart Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: toshi.kani@hp.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-7-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/arkfb.c | 36 +++++------------------------------- 1 file changed, 5 insertions(+), 31 deletions(-) commit 1b3d4200c1e00a3fb5e0aea428de5b07079a37e3 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:27 2015 -0700 PCI: Add pci_iomap_wc() variants PCI BARs tell us whether prefetching is safe, but they don't say anything about write combining (WC). WC changes ordering rules and allows writes to be collapsed, so it's not safe in general to use it on a prefetchable region. Add pci_iomap_wc() and pci_iomap_wc_range() so drivers can take advantage of write combining when they know it's safe. On architectures that don't fully support WC, e.g., x86 without PAT, drivers for legacy framebuffers may get some of the benefit by using arch_phys_wc_add() in addition to pci_iomap_wc(). But arch_phys_wc_add() is unreliable and should be avoided in general. On x86, it uses MTRRs, which are limited in number and size, so the results will vary based on driver loading order. The goals of adding pci_iomap_wc() are to: - Give drivers an architecture-independent way to use WC so they can stop using interfaces like mtrr_add() (on x86, pci_iomap_wc() uses PAT when available). - Move toward using _PAGE_CACHE_MODE_UC, not _PAGE_CACHE_MODE_UC_MINUS, on x86 on ioremap_nocache() (see de33c442ed2a ("x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()"). Signed-off-by: Luis R. Rodriguez [ Move IORESOURCE_IO check up, space out statements for better readability. ] Signed-off-by: Borislav Petkov Acked-by: Arnd Bergmann Cc: Cc: Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Bjorn Helgaas Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mel Gorman Cc: Michael S. Tsirkin Cc: Peter Zijlstra Cc: Roger Pau Monné Cc: Rusty Russell Cc: Stefan Bader Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: david.vrabel@citrix.com Cc: jbeulich@suse.com Cc: konrad.wilk@oracle.com Cc: linux-arch@vger.kernel.org Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: venkatesh.pallipadi@intel.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-6-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar include/asm-generic/pci_iomap.h | 14 +++++++++ lib/pci_iomap.c | 66 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) commit f3adccbd75831f3651ca6e2cbb83f27cd68a27c9 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:26 2015 -0700 drivers/video/fbdev/gxt4500: Use pci_ioremap_wc_bar() to map framebuffer The driver doesn't use mtrr_add() or arch_phys_wc_add() but since we know the framebuffer is isolated already on an ioremap() we can take advantage of write combining for performance where possible. In this case there are a few motivations for this: a) Take advantage of PAT when available. b) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()"). Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Tomi Valkeinen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Daniel Vetter Cc: Dave Airlie Cc: Geert Uytterhoeven Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Laurent Pinchart Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rob Clark Cc: Suresh Siddha Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: toshi.kani@hp.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-5-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/gxt4500.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e517ac88b2443bebc0499c0b477b155d63648a7 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:25 2015 -0700 drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and pci_ioremap_wc_bar() Convert the driver from using the x86-specific MTRR code to the architecture-agnostic arch_phys_wc_add(). It will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremapped area is requested as write-combining. There are a few motivations for this: a) Take advantage of PAT when available b) Help bury MTRR code away, MTRR is architecture-specific and on x86 it is being replaced by PAT. c) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()") The conversion done is expressed by the following Coccinelle SmPL patch, it additionally required manual intervention to address all the ifdeffery and removal of redundant things which arch_phys_wc_add() already addresses such as verbose message about when MTRR fails and doing nothing when we didn't get an MTRR. @ mtrr_found @ expression index, base, size; @@ -index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); +index = arch_phys_wc_add(base, size); @ mtrr_rm depends on mtrr_found @ expression mtrr_found.index, mtrr_found.base, mtrr_found.size; @@ -mtrr_del(index, base, size); +arch_phys_wc_del(index); @ mtrr_rm_zero_arg depends on mtrr_found @ expression mtrr_found.index; @@ -mtrr_del(index, 0, 0); +arch_phys_wc_del(index); @ mtrr_rm_fb_info depends on mtrr_found @ struct fb_info *info; expression mtrr_found.index; @@ -mtrr_del(index, info->fix.smem_start, info->fix.smem_len); +arch_phys_wc_del(index); @ ioremap_replace_nocache depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap_nocache(base, size); +info->screen_base = ioremap_wc(base, size); @ ioremap_replace_default depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap(base, size); +info->screen_base = ioremap_wc(base, size); Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Tomi Valkeinen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Daniel Vetter Cc: Dave Airlie Cc: Geert Uytterhoeven Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Jingoo Han Cc: Juergen Gross Cc: Laurent Pinchart Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: bhelgaas@google.com Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: toshi.kani@hp.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-4-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/kyro/fbdev.c | 33 +++++++++++---------------------- include/video/kyro.h | 4 +--- 2 files changed, 12 insertions(+), 25 deletions(-) commit c112709809b2ca1e8ff2841a1958503e548b81e4 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:24 2015 -0700 drivers/video/fbdev/i740fb: Use arch_phys_wc_add() and pci_ioremap_wc_bar() Convert the driver from using the x86-specific MTRR code to the architecture-agnostic arch_phys_wc_add(). It will avoid MTRR if write-combining is available, in order to take advantage of that also ensure the ioremapped area is requested as write-combining. There are a few motivations for this: a) Take advantage of PAT when available b) Help bury MTRR code away, MTRR is architecture-specific and on x86 it is being replaced by PAT. c) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()") The conversion done is expressed by the following Coccinelle SmPL patch, it additionally required manual intervention to address all the ifdeffery and removal of redundant things which arch_phys_wc_add() already addresses such as verbose message about when MTRR fails and doing nothing when we didn't get an MTRR. @ mtrr_found @ expression index, base, size; @@ -index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); +index = arch_phys_wc_add(base, size); @ mtrr_rm depends on mtrr_found @ expression mtrr_found.index, mtrr_found.base, mtrr_found.size; @@ -mtrr_del(index, base, size); +arch_phys_wc_del(index); @ mtrr_rm_zero_arg depends on mtrr_found @ expression mtrr_found.index; @@ -mtrr_del(index, 0, 0); +arch_phys_wc_del(index); @ mtrr_rm_fb_info depends on mtrr_found @ struct fb_info *info; expression mtrr_found.index; @@ -mtrr_del(index, info->fix.smem_start, info->fix.smem_len); +arch_phys_wc_del(index); @ ioremap_replace_nocache depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap_nocache(base, size); +info->screen_base = ioremap_wc(base, size); @ ioremap_replace_default depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap(base, size); +info->screen_base = ioremap_wc(base, size); Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Tomi Valkeinen Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Arnd Bergmann Cc: Benoit Taine Cc: Bjorn Helgaas Cc: Daniel Vetter Cc: Dave Airlie Cc: Geert Uytterhoeven Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Jingoo Han Cc: Juergen Gross Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rob Clark Cc: Suresh Siddha Cc: Thomas Gleixner Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: toshi.kani@hp.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-3-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/i740fb.c | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) commit c43996f4001de629af4a4d6713782e883677e5b9 Author: Luis R. Rodriguez Date: Mon Aug 24 12:13:23 2015 -0700 PCI: Add pci_ioremap_wc_bar() This lets drivers take advantage of PAT when available. It should help with the transition of converting video drivers over to ioremap_wc() to help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache(), see: de33c442ed2a ("x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()") Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Acked-by: Arnd Bergmann Cc: Cc: Andrew Morton Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Bjorn Helgaas Cc: Daniel Vetter Cc: Dave Airlie Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: airlied@linux.ie Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: konrad.wilk@oracle.com Cc: linux-fbdev@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: mst@redhat.com Cc: vinod.koul@intel.com Cc: xen-devel@lists.xensource.com Link: http://lkml.kernel.org/r/1440443613-13696-2-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/pci/pci.c | 14 ++++++++++++++ include/linux/pci.h | 1 + 2 files changed, 15 insertions(+) commit 8d58b66ed2b000f27658c88a4ed70e8042e86a58 Merge: 13fe86f4 c13dcf9 Author: Ingo Molnar Date: Tue Aug 25 09:59:19 2015 +0200 Merge tag 'v4.2-rc8' into x86/mm, before applying new changes Signed-off-by: Ingo Molnar commit 13fe86f465b72fc9328d4f5ebc33223c011852ae Author: Paul Gortmaker Date: Mon Aug 24 19:34:55 2015 -0400 x86/mm: Make kernel/check.c explicitly non-modular The Kconfig currently controlling compilation of this code is: arch/x86/Kconfig:config X86_CHECK_BIOS_CORRUPTION arch/x86/Kconfig: bool "Check for low memory corruption" ...meaning that it currently is not being built as a module by anyone. Lets remove the couple traces of modularity so that when reading the code there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. Signed-off-by: Paul Gortmaker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1440459295-21814-4-git-send-email-paul.gortmaker@windriver.com Signed-off-by: Ingo Molnar arch/x86/kernel/check.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 8f45fe441a9836011672436ef007654969b28ccc Author: Paul Gortmaker Date: Mon Aug 24 19:34:54 2015 -0400 x86/mm/pat: Make mm/pageattr[-test].c explicitly non-modular The file pageattr.c is obj-y and it includes pageattr-test.c based on CPA_DEBUG (a bool), meaning that no code here is currently being built as a module by anyone. Lets remove the couple traces of modularity so that when reading the code there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. Signed-off-by: Paul Gortmaker Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1440459295-21814-3-git-send-email-paul.gortmaker@windriver.com Signed-off-by: Ingo Molnar arch/x86/mm/pageattr-test.c | 4 ++-- arch/x86/mm/pageattr.c | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) commit e971aa2cbac02363a29e9358de3b688001191ffd Author: Paul Gortmaker Date: Mon Aug 24 19:34:53 2015 -0400 x86/platform: Make atom/pmc_atom.c explicitly non-modular The Kconfig currently controlling compilation of this code is: config PMC_ATOM def_bool y ...meaning that it currently is not being built as a module by anyone. Lets remove the couple traces of modularity so that when reading the driver there is no doubt it is builtin-only. Since module_init() translates to device_initcall() in the non-modular case, the init ordering remains unchanged with this commit. We leave some tags like MODULE_AUTHOR() for documentation purposes. Also note that MODULE_DEVICE_TABLE() is a no-op for non-modular code. We correct a comment that indicates the data was only used by that macro, as it actually is used by the code directly. Signed-off-by: Paul Gortmaker Cc: Andy Shevchenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1440459295-21814-2-git-send-email-paul.gortmaker@windriver.com Signed-off-by: Ingo Molnar arch/x86/platform/atom/pmc_atom.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit f612a7b1a7f1b5139f228724ce340aac24720591 Merge: 9b9412d 12d560f Author: Ingo Molnar Date: Tue Aug 25 09:44:49 2015 +0200 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu Pull RCU cleanup from Paul E. McKenney: "Privatize smp_mb__after_unlock_lock(). This commit moves the definition of smp_mb__after_unlock_lock() to kernel/rcu/tree.h, in recognition of the fact that RCU is the only thing using this, that nothing else is likely to use it, and that it is likely to go away completely." Signed-off-by: Ingo Molnar commit 33fef662d20a8a98bafa6b2430b845def30f616a Author: Sasha Levin Date: Tue Aug 25 01:19:45 2015 -0400 tools/liblockdep: Use the rbtree header provided by common tools headers Recent changes to rbtree.h may break compilation. There is no reason to use a liblockdep specific header to begin with, so we'll use the one shared with all other tools/. Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1440479985-6696-3-git-send-email-sasha.levin@oracle.com Signed-off-by: Ingo Molnar tools/lib/lockdep/preload.c | 2 +- tools/lib/lockdep/uinclude/linux/rbtree.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 62b989de598c486df65a14dfd9bb4a9953c75568 Author: Sasha Levin Date: Tue Aug 25 01:19:44 2015 -0400 tools/liblockdep: Correct macro for WARN As Peter Zijlstra pointed out, the varargs for WARN() are optional, so we need to correctly handle the case where they don't exist. This would cause a compilation error. Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1440479985-6696-2-git-send-email-sasha.levin@oracle.com Signed-off-by: Ingo Molnar tools/lib/lockdep/uinclude/linux/kernel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92e25fd9be82a37247e587415ff9a9e773008d56 Author: Sasha Levin Date: Tue Aug 25 01:19:43 2015 -0400 tools: Restore export.h Commit 3f735377b ("tools: Copy lib/rbtree.c to tools/lib/") has removed export.h, which was still in use by liblockdep. Restore it. Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1440479985-6696-1-git-send-email-sasha.levin@oracle.com Signed-off-by: Ingo Molnar tools/include/linux/export.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 13d20b3b618adc43168b034792eec57063b5ec6f Author: Javier Martinez Canillas Date: Tue Aug 25 08:31:12 2015 +0200 backlight: tosa: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c:" regardless of the mechanism that was used to register the device (i.e: OF or board code) and the table that is used later to match the driver with the device (i.e: I2C id table or OF match table). So drivers needs to export the I2C id table and this be built into the module or udev won't have the necessary information to autoload the needed driver module when the device is added. Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/video/backlight/tosa_bl.c | 1 + 1 file changed, 1 insertion(+) commit 85463d8ed1ffae0eb0bd070e400f33918a6696ef Author: Markus Elfring Date: Wed Jul 1 12:08:31 2015 +0200 backlight: lp8788_bl: Delete a check before backlight_device_unregister() The backlight_device_unregister() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Acked-by: Jingoo Han Signed-off-by: Lee Jones drivers/video/backlight/lp8788_bl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 047ffbb27115b57759767145803b752518399d90 Author: Axel Lin Date: Mon Aug 17 15:59:17 2015 +0800 backlight: sky81452: Remove unneeded use of IS_ERR_VALUE() macro IS_ERR_VALUE() makes sense only *if* there could be valid values in negative error range. Signed-off-by: Axel Lin Signed-off-by: Lee Jones drivers/video/backlight/sky81452-backlight.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 7ddbc2423c3301280b883bbb04b998203f30312c Author: Bjorn Andersson Date: Tue Jul 21 17:44:49 2015 -0700 backlight: pm8941-wled: Move PM8941 WLED driver to backlight The Qualcomm PM8941 WLED block is used for backlight and should therefor be in the backlight framework and not in the LED framework. This moves the driver and adapts to the backlight api instead. Signed-off-by: Bjorn Andersson Tested-by: Rob Clark Acked-by: Jacek Anaszewski Acked-by: Jingoo Han Signed-off-by: Lee Jones .../devicetree/bindings/leds/leds-pm8941-wled.txt | 43 -- .../bindings/video/backlight/pm8941-wled.txt | 40 ++ drivers/leds/Kconfig | 8 - drivers/leds/Makefile | 1 - drivers/leds/leds-pm8941-wled.c | 435 --------------------- drivers/video/backlight/Kconfig | 7 + drivers/video/backlight/Makefile | 1 + drivers/video/backlight/pm8941-wled.c | 427 ++++++++++++++++++++ 8 files changed, 475 insertions(+), 487 deletions(-) commit fe009175ae3ec3724c1414440e22a1d32d806ec5 Author: Milo Kim Date: Mon Jul 20 15:45:38 2015 +0900 backlight: lp855x: Use private data for regulator control LP855x backlight device can be enabled by external VDD input. The 'supply' data is used for this purpose. It's kind of private data which runs internally, so there is no reason to expose to the platform data. And devm_regulator_get() is moved from _parse_dt() to _probe(). Regulator consumer(lp855x) can control regulator not only from DT but also from platform data configuration in a source file such like board-*.c. Signed-off-by: Milo Kim Acked-by: Sean Paul Acked-by: Jingoo Han Signed-off-by: Lee Jones drivers/video/backlight/lp855x_bl.c | 23 ++++++++++++----------- include/linux/platform_data/lp855x.h | 2 -- 2 files changed, 12 insertions(+), 13 deletions(-) commit db56176025cee5e242dfeed5f4e304d095d29fa3 Author: Dave Airlie Date: Tue Aug 25 17:23:36 2015 +1000 Revert "drm/atomic: Call ww_acquire_done after check phase is complete" This reverts commit 992cbf19b32900efa17850b9fa0031fd623edd4d. Until we make fbdev layer atomic we can't call this. Requested-by: Maarten Lankhorst Signed-off-by: Dave Airlie drivers/gpu/drm/drm_atomic.c | 3 --- 1 file changed, 3 deletions(-) commit f755d114cba98708932cba89d8c98c4ab89a83b0 Author: kbuild test robot Date: Sun Aug 23 00:30:19 2015 +0800 ASoC: cs4349: fix platform_no_drv_owner.cocci warnings sound/soc/codecs/cs4349.c:389:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Tim Howe Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 1 - 1 file changed, 1 deletion(-) commit 9dcc144b1f91c4fe33422518e401e9c624e2c64f Author: Takashi Iwai Date: Tue Aug 25 08:52:55 2015 +0200 ALSA: hda - Refresh sysfs at snd_hda_codec_update_widgets() In the commit [fa4f18b4f402: ALSA: hda - Refresh widgets sysfs at probing Haswell+ HDMI codecs], snd_hdac_refresh_widget_sysfs() is explicitly called in the codec driver. But this results in refreshing twice, as snd_hdac_refresh_widget_sysfs() itself calls snd_hdac_refresh_widgets() function. Instead, we can replace the call in snd_hda_codec_update_widgets() with snd_hdac_refresh_widget_sysfs(). This also fixes the missing sysfs update for ca0132, too. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 2 +- sound/pci/hda/patch_hdmi.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit c4a91e173ac671e81ea6fc9d0951b7527e2ae13d Merge: 4308c9b c7cd0ef Author: Takashi Iwai Date: Tue Aug 25 08:01:41 2015 +0200 Merge branch 'for-linus' into for-next commit 5f05586c609dfc737e2e00c757a51c7dbb415e51 Author: Ashwin Chaugule Date: Wed Aug 5 09:40:26 2015 -0400 ACPI: Decouple ACPI idle and ACPI processor drivers This patch introduces a new Kconfig symbol, ACPI_PROCESSOR_IDLE, which is auto selected by architectures which support the ACPI based C states for CPU Idle management. The processor_idle driver in its present form contains declarations specific to X86 and IA64. Since there are no reasonable defaults for other architectures e.g. ARM64, the driver is selected only for X86 or IA64. This helps in decoupling the ACPI processor_driver from the ACPI processor_idle driver which is useful for the upcoming alternative patchwork for controlling CPU Performance (CPPC) and CPU Idle (LPI). Signed-off-by: Ashwin Chaugule Signed-off-by: Rafael J. Wysocki drivers/acpi/Kconfig | 6 +++++- drivers/acpi/Makefile | 3 ++- include/acpi/processor.h | 26 ++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 4 deletions(-) commit 239708a3af44064366f1af0eea02dc1e8991c11b Author: Ashwin Chaugule Date: Wed Aug 5 09:40:25 2015 -0400 ACPI: Split out ACPI PSS from ACPI Processor driver The ACPI processor driver is currently tied too closely to the ACPI P-states (PSS) and other related constructs for controlling CPU performance. The newer ACPI specification (v5.1 onwards) introduces alternative methods to PSS. These new mechanisms are described within each ACPI Processor object and so they need to be scanned whenever a new Processor object is detected. This patch introduces a new Kconfig symbol to allow for finer configurability among the two options for controlling performance states. There is no change in functionality and the option is auto-selected by the architectures which support it. A future commit will introduce support for CPPC: A newer method of controlling CPU performance. The OS is not expected to support CPPC and PSS at the same time, so the Kconfig option lets us make the two mutually exclusive at compile time. Signed-off-by: Ashwin Chaugule [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki drivers/acpi/Kconfig | 15 ++++--- drivers/acpi/Makefile | 5 ++- drivers/acpi/processor_driver.c | 86 +++++++++++++++++++++++++++-------------- include/acpi/processor.h | 28 +++++++++++++- 4 files changed, 96 insertions(+), 38 deletions(-) commit d3c68f218f927bd4b14b586ea2dcecee54cf09ad Author: Ashwin Chaugule Date: Wed Aug 5 09:40:24 2015 -0400 PCC: Initialize PCC Mailbox earlier at boot This change initializes the PCC Mailbox earlier than the ACPI processor driver. This enables drivers introduced in follow up patches (e.g. CPPC) to be probed via the ACPI processor driver interface. The CPPC probe requires the PCC channel to be initialized for it to query each CPUs performance capabilities. Signed-off-by: Ashwin Chaugule Reviewed-by: Al Stone Signed-off-by: Rafael J. Wysocki drivers/mailbox/pcc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 3277b4ea216e5cd7d3f6095ff40f1a9e574f37b3 Author: Andy Shevchenko Date: Mon Aug 17 17:28:46 2015 +0300 ACPI / osl: replace custom implementation of readq / writeq The readq() and writeq() helpers are available in the asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64-nonatomic-lo-hi.h headers. Replace custom implementation by the generic helpers. Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki drivers/acpi/osl.c | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) commit 02b771b64b73226052d6e731a0987db3b47281e9 Author: Lv Zheng Date: Wed Aug 12 11:12:02 2015 +0800 ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations It is proven that Windows evaluates _Qxx handlers in a parallel way. This patch follows this fact, splits _Qxx evaluations from the NOTIFY queue to form a separate queue, so that _Qxx evaluations can be queued up on different CPUs rather than being queued up on a CPU0 bound queue. Event handling related callbacks are also renamed and sorted in this patch. Link: https://bugzilla.kernel.org/show_bug.cgi?id=94411 Reported-and-tested-by: Gabriele Mazzotta Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/ec.c | 82 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 22 deletions(-) commit 70b33a7466baac62103e04c916b8915665b79d80 Merge: aa49338 f79af0b Author: Dave Chinner Date: Tue Aug 25 10:13:35 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.3-3' into for-next commit f79af0b9090895520c69fbe1939184c4f8ed8426 Author: Dave Chinner Date: Tue Aug 25 10:05:13 2015 +1000 xfs: fix non-debug build warnings There seem to be a couple of new set-but-unused build warnings that gcc 4.9.3 is now warning about. These are not regressions, just the compiler being more picky. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_buf.c | 4 +--- fs/xfs/xfs_buf_item.c | 20 +++++++++++++------- fs/xfs/xfs_buf_item.h | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) commit 2ccf4a9b18868b0900072e6d5d15a04254a07345 Author: Eric Sandeen Date: Tue Aug 25 10:05:13 2015 +1000 xfs: collapse allocsize and biosize mount option handling The allocsize and biosize mount options are handled identically, other than allocsize accepting suffixes. suffix_kstrtoint handles bare numbers just fine too, so these can be collapsed. Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_super.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 037542345a82aaaa228ec280fe6ddff1568d169f Author: Jan Kara Date: Tue Aug 25 10:05:13 2015 +1000 xfs: Fix file type directory corruption for btree directories Users have occasionally reported that file type for some directory entries is wrong. This mostly happened after updating libraries some libraries. After some debugging the problem was traced down to xfs_dir2_node_replace(). The function uses args->filetype as a file type to store in the replaced directory entry however it also calls xfs_da3_node_lookup_int() which will store file type of the current directory entry in args->filetype. Thus we fail to change file type of a directory entry to a proper type. Fix the problem by storing new file type in a local variable before calling xfs_da3_node_lookup_int(). cc: # 3.16 - 4.x Reported-by: Giacomo Comes Signed-off-by: Jan Kara Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_dir2_node.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit b6a9947efdbe0c9135d94b26b2f912f5b0b9dc45 Author: Dave Chinner Date: Tue Aug 25 10:05:13 2015 +1000 xfs: lockdep annotations throw warnings on non-debug builds SO, now if we enable lockdep without enabling CONFIG_XFS_DEBUG, the lockdep annotations throw a warning because the assert that uses the lockdep define is not built in: fs/xfs/xfs_inode.c:367:1: warning: 'xfs_lockdep_subclass_ok' defined but not used [-Wunused-function] xfs_lockdep_subclass_ok( So now we need to create an ifdef mess to sort this all out, because we need to handle all the combinations of CONFIG_XFS_DEBUG=[y|n], CONFIG_XFS_WARNING=[y|n] and CONFIG_LOCKDEP=[y|n] appropriately. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_inode.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit c184f855c483428027d6ec937e4a9d5f15b2cbad Author: Jan Kara Date: Tue Aug 25 10:05:13 2015 +1000 xfs: Fix uninitialized return value in xfs_alloc_fix_freelist() xfs_alloc_fix_freelist() can sometimes jump to out_agbp_relse without ever setting value of 'error' variable which is then returned. This can happen e.g. when pag->pagf_init is set but AG is for metadata and we want to allocate user data. Fix the problem by initializing 'error' to 0, which is the desired return value when we decide to skip this group. CC: xfs@oss.sgi.com Coverity-id: 1309714 Signed-off-by: Jan Kara Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3ee276a5a62a1cd06de46aa0c808000d3fef00e Author: Nicolas Pitre Date: Tue Jul 28 19:43:20 2015 -0400 drivers/clk: appropriate __init annotation for const data Init data marked const should be annotated with __initconst for correctness and not __initdata. This also fixes LTO builds that otherwise fail with section mismatch errors. Signed-off-by: Nicolas Pitre Signed-off-by: Michael Turquette [sboyd@codeaurora.org: Dropped hunks that moved const char * arrays to const char * const] Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-realview.c | 4 ++-- drivers/clk/versatile/clk-versatile.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 10897370345b792c00ccba6aa7ea86ae6bfa2c7a Author: Heiko Stuebner Date: Wed Aug 19 15:06:55 2015 +0200 clk: rockchip: register pll mux before pll itself The structure is xin24m -> pll -> pll-mux (xin24m,pll,xin32k). The pll does have an init callback to make sure the boot-selected frequency is using the expected pll settings and resets the same frequency using the values provided in the driver if necessary. The setting itself also involves remuxing the pll-mux temporarily to the xin24m source to let the new pll rate settle. Until now this worked flawlessly, even when it had the flaw of accessing the mux settings before the mux actually got registered. With the recent clock-core conversions this flaw became apparent in null pointer dereference in [] (clk_hw_get_num_parents) from [] (clk_mux_get_parent+0x14/0xc8) [] (clk_mux_get_parent) from [] (rockchip_rk3066_pll_set_rate+0xd8/0x320) So to fix that, simply register the pll-mux before the pll, so that it will be fully initialized when the pll clock executes its init- callback and possibly touches the pll-mux clock. Signed-off-by: Heiko Stuebner Signed-off-by: Michael Turquette drivers/clk/rockchip/clk-pll.c | 63 +++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 31 deletions(-) commit 67c9a1b5dadf05e22d7e2d32604fb2b21bf3f666 Author: Linus Walleij Date: Thu Jul 30 15:20:00 2015 +0200 clk: add bindings for the Ux500 clocks These Ux500 clocks have been around for years and were never properly documented. Add the proper binding documentation. Cc: Ulf Hansson Signed-off-by: Linus Walleij Acked-by: Michael Turquette Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/clock/ux500.txt | 64 +++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit 5dc0fe199b358966021b015c71ca4049d0f42aa6 Author: Linus Walleij Date: Thu Jul 30 15:19:25 2015 +0200 clk/ARM: move Ux500 PRCC bases to the device tree The base addresses for the Ux500 PRCC controllers are hardcoded, let's move them to the clock node in the device tree and delete the constants. Cc: Ulf Hansson Signed-off-by: Linus Walleij Acked-by: Olof Johansson Acked-by: Michael Turquette Signed-off-by: Stephen Boyd arch/arm/boot/dts/ste-dbx5x0.dtsi | 7 ++ arch/arm/mach-ux500/cpu.c | 21 +--- drivers/clk/ux500/u8500_of_clk.c | 163 ++++++++++++++------------ drivers/clk/ux500/u8540_clk.c | 197 +++++++++++++++++++------------- drivers/clk/ux500/u9540_clk.c | 3 +- include/linux/platform_data/clk-ux500.h | 10 +- 6 files changed, 225 insertions(+), 176 deletions(-) commit c660b2ebb25be5668a4ed333539f34b05841e17a Author: Dong Aisheng Date: Tue Jul 28 21:19:41 2015 +0800 clk: remove duplicated code with __clk_set_parent_after __clk_set_parent_after() actually used the second argument then we could put this duplicate logic in there and call it with a different order of arguments in the success vs. error paths in this function. Cc: Mike Turquette Suggested-by: Stephen Boyd Signed-off-by: Dong Aisheng Signed-off-by: Stephen Boyd drivers/clk/clk.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 836ee0f7d95c3feb742bd4b3a02fea3fe75bdef3 Author: Stephen Boyd Date: Wed Aug 12 11:42:23 2015 -0700 clk: Convert __clk_get_name(hw->clk) to clk_hw_get_name(hw) Use the provider based method to get a clock's name so that we can get rid of the clk member in struct clk_hw one day. Mostly converted with the following coccinelle script. @@ struct clk_hw *E; @@ -__clk_get_name(E->clk) +clk_hw_get_name(E) Acked-by: Heiko Stuebner Cc: Sylwester Nawrocki Cc: Tomasz Figa Cc: Peter De Schrijver Cc: Prashant Gaikwad Cc: Stephen Warren Acked-by: Thierry Reding Cc: Thierry Reding Cc: Alexandre Courbot Cc: Tero Kristo Cc: Ulf Hansson Acked-by: Sebastian Hesselbarth Acked-by: Andrew Bresticker Cc: Ezequiel Garcia Cc: Ralf Baechle Cc: Kevin Cernekee Acked-by: Geert Uytterhoeven Cc: Ulrich Hecht Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Cc: linux-tegra@vger.kernel.org Cc: linux-omap@vger.kernel.org Signed-off-by: Stephen Boyd drivers/clk/berlin/berlin2-pll.c | 4 ++-- drivers/clk/clk-xgene.c | 22 +++++++++++----------- drivers/clk/pistachio/clk-pll.c | 4 ++-- drivers/clk/qcom/clk-branch.c | 2 +- drivers/clk/rockchip/clk-inverter.c | 2 +- drivers/clk/rockchip/clk-mmc-phase.c | 2 +- drivers/clk/samsung/clk-pll.c | 18 +++++++++--------- drivers/clk/shmobile/clk-div6.c | 2 +- drivers/clk/st/clk-flexgen.c | 4 ++-- drivers/clk/st/clkgen-fsyn.c | 18 +++++++++--------- drivers/clk/st/clkgen-mux.c | 2 +- drivers/clk/st/clkgen-pll.c | 8 ++++---- drivers/clk/tegra/clk-pll.c | 8 ++++---- drivers/clk/ti/apll.c | 4 ++-- drivers/clk/ti/clkt_dflt.c | 8 ++++---- drivers/clk/ti/clockdomain.c | 14 +++++++------- drivers/clk/ux500/clk-prcmu.c | 16 ++++++++-------- drivers/clk/ux500/clk-sysctrl.c | 2 +- 18 files changed, 70 insertions(+), 70 deletions(-) commit e7df6f6e21883d7e8b3ad4641c911da8314ef283 Author: Stephen Boyd Date: Wed Aug 12 13:04:56 2015 -0700 clk: Constify clk_hw argument to provider APIs We don't modify the clk_hw argument in these functions, so it's safe to mark it as const. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 15 ++++++++------- include/linux/clk-provider.h | 14 +++++++------- 2 files changed, 15 insertions(+), 14 deletions(-) commit c1628a2c416da947f5afac615d53189250fa49cb Author: Leo Yan Date: Tue Aug 4 15:27:28 2015 +0800 clk: Hi6220: add stub clock driver On Hi6220, there have some clocks which can use mailbox channel to send messages to power controller to change frequency; this includes CPU, GPU and DDR clocks. For dynamic frequency scaling, firstly need write the frequency value to SRAM region, and then send message to mailbox to trigger power controller to handle this requirement. This driver will use syscon APIs to pass SRAM memory region and use common mailbox APIs for channels accessing. This init driver will support cpu frequency change firstly. Signed-off-by: Leo Yan Signed-off-by: Stephen Boyd drivers/clk/hisilicon/Kconfig | 2 +- drivers/clk/hisilicon/Makefile | 2 +- drivers/clk/hisilicon/clk-hi6220-stub.c | 276 ++++++++++++++++++++++++++++++++ 3 files changed, 278 insertions(+), 2 deletions(-) commit 832446e8aaaeaf9365da18f95f01a42e6da27279 Author: Leo Yan Date: Tue Aug 4 15:27:27 2015 +0800 dt-bindings: clk: Hi6220: Document stub clock driver Document the new compatible for stub clock driver which is used for CPU and DDR's dynamic frequency scaling. Signed-off-by: Leo Yan Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/hi6220-clock.txt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 7e2a51e0cf75028888e5c670b3a3963e1716bdff Author: Leo Yan Date: Tue Aug 4 15:27:26 2015 +0800 dt-bindings: arm: Hi6220: add doc for SRAM controller Document "hisilicon,hi6220-sramctrl" for SRAM controller. Signed-off-by: Leo Yan Signed-off-by: Stephen Boyd .../devicetree/bindings/arm/hisilicon/hisilicon.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit b32a7cc63bee7bffbd61f88b157b78a9b2101de0 Author: Guo Zeng Date: Tue Aug 4 14:45:32 2015 +0000 clk: atlas7: fix pll missed divide NR in fraction mode PLL VCO frequency is given by Fvco = Fref * 2 * NF / NR in integer-N mode, or by Fvco = Fref * SSN / NR in Spread Spectrum (fractional-N) mode. Thus fix the missing part of NR Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas7.c | 1 + 1 file changed, 1 insertion(+) commit cf8709eabc07c4681eb0bfd63139142c9bef8b59 Author: Guo Zeng Date: Tue Aug 4 14:45:31 2015 +0000 clk: atlas7: fix bit field and its root clk for coresight_tpiu bit4 thcpum_cpudiv4_clken r/w thcpum_cpudiv4_clk clock enable (default: 1) Root clock CPU_CLK must be enabled for this clock to be enabled bit3 coresight_tpiu_clken r/w coresight_tpiu_clk clock enable (default: 0) Root clock TPIU_CLK must be enabled for this clock to be enabled Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas7.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1ccbddd090b74b8027727cb543b9c23d7f0f23e Author: Yibo Cai Date: Tue Aug 4 14:45:29 2015 +0000 clk: atlas7: replace dto resolution magic number by macro Signed-off-by: Yibo Cai Signed-off-by: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas7.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 6132e89aef51df044246b5aef822144217794ae1 Author: Yibo Cai Date: Tue Aug 4 14:45:28 2015 +0000 clk: atlas7: fix integer overflow in dto rate calculation I cannot believe that I spend quite a lot time in finding this bug. It seems a pitfall people tend to fall in. In "int64 = int32 * int32", conversion from 32-bits to 64-bits comes after the multiplication. So this statement may not work as expected. Signed-off-by: Yibo Cai Signed-off-by: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas7.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b1062298fea59dca23cdbcafaa5bed79c273d88f Author: Guo Zeng Date: Tue Aug 4 14:45:27 2015 +0000 clk: atlas7: export mux clks so that consumers can get them this patch makes mux clks can be referenced by device drivers. Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas7.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 3922107c796164560b797ae8dece697b5b5e4c24 Author: Guo Zeng Date: Tue Aug 4 14:45:26 2015 +0000 clk: atlas7: add lost pwm unit clks Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas7.c | 4 ++++ 1 file changed, 4 insertions(+) commit 34d5003bfba44a73fe9fbcf75e1d41d130d59bd1 Author: Dinh Nguyen Date: Fri Jul 24 22:30:18 2015 -0500 clk: socfpga: Add a second parent option for the dbg_base_clk The debug base clock can be bypassed from the main PLL to the OSC1 clock. The bypass register is the staysoc1(0x10) register that is in the clock manager. This patch adds the option to get the correct parent for the debug base clock. Signed-off-by: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-periph.c | 18 ++++++++++++++---- drivers/clk/socfpga/clk.h | 1 + 2 files changed, 15 insertions(+), 4 deletions(-) commit 0f350f063eb62212a701a512f74e63ae4714441c Author: Linus Walleij Date: Thu Jul 30 15:19:12 2015 +0200 clk: ux500: delete the non-DT U8500 clock implementation This code is unused and not coming back. Let's kill it off. Cc: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/ux500/Makefile | 1 - drivers/clk/ux500/u8500_clk.c | 525 -------------------------------- include/linux/platform_data/clk-ux500.h | 2 - 3 files changed, 528 deletions(-) commit fc4a05d4b0eb1a0110ef11201bf563cd4b53fbce Author: Stephen Boyd Date: Thu Jun 25 17:24:15 2015 -0700 clk: Remove unused provider APIs Remove these APIs now that we've converted all users to the replacement struct clk_hw based versions. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 92 ++++++++------------------------------------ include/linux/clk-provider.h | 6 --- 2 files changed, 16 insertions(+), 82 deletions(-) commit 44f22a5d671ad8b3bcef7a72059fe1c00139e199 Author: Stephen Boyd Date: Fri Aug 7 16:32:34 2015 -0700 clk: si5351: Convert __clk_get_name() to clk_hw_get_name() This driver uses __clk_get_name() when it's dealing with struct clk_hw pointers. Use the simpler form so that we can get rid of the clk member in struct clk_hw one day. Acked-by: Sebastian Hesselbarth Signed-off-by: Stephen Boyd drivers/clk/clk-si5351.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 203e118bd58c48905a82b4161db5441e5c5041f2 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 drm/msm/dsi: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Wentao Xu Cc: Rob Clark Signed-off-by: Stephen Boyd drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 62f477119834d912a8471e775d2aeaca0166ab29 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: versatile: Switch to assigned clock parents We're removing struct clk from the clk provider API. This code is calling the consumer APIs to change the parent to a 1 MHz fixed rate clock for each of the clocks that the driver provides. Move to using the assigned-clock-parents DT property for this instead. Because this is an ABI break, detect if the property is missing and fall back to setting the parent explicitly before the clocks are registered. Acked-by: Pawel Moll Cc: Linus Walleij Tested-by: Sudeep Holla Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/arm/sp810.txt | 13 ++++- drivers/clk/versatile/clk-sp810.c | 76 +++++-------------------- 2 files changed, 27 insertions(+), 62 deletions(-) commit 32ecaf89bdfd842c9669b3f38ff82907e3cd60d0 Author: Pawel Moll Date: Thu Aug 6 16:05:13 2015 +0100 clk: versatile: Add SP810 device tree bindings document Signed-off-by: Pawel Moll Signed-off-by: Stephen Boyd Documentation/devicetree/bindings/arm/sp810.txt | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit a53ad8ef3dccb0c5482c60a3f6b8c0cbd498efe5 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: ti: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/autoidle.c | 8 ++++---- drivers/clk/ti/clkt_dpll.c | 11 ++++++----- drivers/clk/ti/clock.h | 2 +- drivers/clk/ti/divider.c | 6 +++--- drivers/clk/ti/dpll3xxx.c | 31 ++++++++++++++----------------- drivers/clk/ti/dpll44xx.c | 4 ++-- drivers/clk/ti/gate.c | 6 +++--- 7 files changed, 33 insertions(+), 35 deletions(-) commit 5cdb1dc50be615aa26f8952e4b6f67b483849e97 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: tegra: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Tomeu Vizoso Cc: Thierry Reding Signed-off-by: Stephen Boyd drivers/clk/tegra/clk-emc.c | 10 +++++----- drivers/clk/tegra/clk-pll.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) commit 1b14afa64d2ef36f228e9540664586fd7ad67a81 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: sunxi: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Maxime Ripard Cc: "Emilio López" Signed-off-by: Stephen Boyd drivers/clk/sunxi/clk-factors.c | 10 +++++----- drivers/clk/sunxi/clk-sun6i-ar100.c | 8 ++++---- drivers/clk/sunxi/clk-sunxi.c | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) commit b73d616d5bd0bb94b3fe1374edad05253fe3684f Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: spear: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Acked-by: Viresh Kumar Signed-off-by: Stephen Boyd drivers/clk/spear/clk-vco-pll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b17dbff418f62e87fdb3d683d532c139c4f1bf31 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: sirf: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-common.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0454159fa91b91c0baa63ded5ce425a8519a9613 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: samsung: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Chanwoo Choi Acked-by: Sylwester Nawrocki Cc: Krzysztof Kozlowski Cc: Kukjin Kim Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-cpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4c34875059fa025be671108de1b0993cc14c9256 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: rockchip: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Reviewed-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-pll.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit ac269395cdd80b9b088d9b5306015bd4b8bc176d Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: qcom: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Signed-off-by: Stephen Boyd drivers/clk/qcom/clk-pll.c | 8 ++------ drivers/clk/qcom/clk-rcg.c | 19 +++++++++---------- drivers/clk/qcom/clk-rcg2.c | 29 +++++++++++++---------------- drivers/clk/qcom/mmcc-msm8960.c | 10 ++++++---- 4 files changed, 30 insertions(+), 36 deletions(-) commit 17ae4b40b475e2de5a0b0b475539624b7162a931 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: stm32f4: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Daniel Thompson Signed-off-by: Stephen Boyd drivers/clk/clk-stm32f4.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit eca61c9ff2588e1df373e61078e1874976315839 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: mvebu: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. This also removes a clk_get() in this driver that can just as easily use of_clk_get_parent_name() instead. Cc: Gregory CLEMENT Cc: Thomas Petazzoni Signed-off-by: Stephen Boyd drivers/clk/mvebu/clk-cpu.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit aef28cb6b3b22fb5a6718650340d2efcfe10dd20 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: mmp: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Chao Xie Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-gate.c | 3 +-- drivers/clk/mmp/clk-mix.c | 35 ++++++++++++++++------------------- 2 files changed, 17 insertions(+), 21 deletions(-) commit 2f508a955a671e095d5c8a629de1c8c32bc420c2 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: Convert basic types to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Signed-off-by: Stephen Boyd drivers/clk/clk-composite.c | 14 +++++++------- drivers/clk/clk-divider.c | 6 +++--- drivers/clk/clk-fixed-factor.c | 3 +-- 3 files changed, 11 insertions(+), 12 deletions(-) commit 6f220c22438ab846c824a042746a54058cf22af7 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: bcm: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Reviewed-by: Alex Elder Signed-off-by: Stephen Boyd drivers/clk/bcm/clk-kona.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit d0979335c329bad3b924b9d74fd0b86d57815c8f Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 clk: at91: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Acked-by: Boris Brezillon Signed-off-by: Stephen Boyd drivers/clk/at91/clk-peripheral.c | 6 +++--- drivers/clk/at91/clk-programmable.c | 8 ++++---- drivers/clk/at91/clk-usb.c | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) commit 617b8272a63c9f60bd4b1e33d56318402b0b84be Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 MIPS: alchemy: Convert to clk_hw based provider APIs We're removing struct clk from the clk provider API, so switch this code to using the clk_hw based provider APIs. Cc: Manuel Lauss Cc: Ralf Baechle Cc: Linux-MIPS Signed-off-by: Stephen Boyd arch/mips/alchemy/common/clock.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 7819189779aab580145edcc94771cb8dd10485a3 Author: Stephen Boyd Date: Thu Jul 30 17:20:57 2015 -0700 ARM: OMAP: Convert __clk_get_rate() to provider/consumer APIs We're removing struct clk from the clk provider API, so switch to clk_get_rate() and clk_hw_get_rate() here appropriately. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd arch/arm/mach-omap2/clkt34xx_dpll3m2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b137b4507c55f2aa80aed03c56c28dd34d35c619 Author: Stephen Boyd Date: Mon Jul 20 17:23:54 2015 -0700 clk: ti: Remove CLK_IS_BASIC check This code is never called with a basic clock type, so the check here is not doing anything useful and is blocking the removal of __clk_get_flags(). Remove the check so we can delete the __clk_get_flags() API. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/autoidle.c | 6 ------ 1 file changed, 6 deletions(-) commit 98d8a60eccee74165793379f1f8a3b1cef3131c7 Author: Stephen Boyd Date: Mon Jun 29 16:56:30 2015 -0700 clk: Convert __clk_get_flags() to clk_hw_get_flags() Mostly converted with the following snippet: @@ struct clk_hw *E; @@ -__clk_get_flags(E->clk) +clk_hw_get_flags(E) Acked-by: Tero Kristo Cc: Maxime Ripard Cc: Max Filippov Acked-by: Sebastian Hesselbarth Cc: Daniel Thompson Cc: Coquelin Signed-off-by: Stephen Boyd drivers/clk/clk-cdce706.c | 2 +- drivers/clk/clk-composite.c | 2 +- drivers/clk/clk-divider.c | 2 +- drivers/clk/clk-fixed-factor.c | 2 +- drivers/clk/clk-si5351.c | 4 ++-- drivers/clk/clk-stm32f4.c | 2 +- drivers/clk/qcom/clk-rcg.c | 2 +- drivers/clk/qcom/clk-rcg2.c | 2 +- drivers/clk/st/clk-flexgen.c | 2 +- drivers/clk/sunxi/clk-factors.c | 2 +- drivers/clk/sunxi/clk-sunxi.c | 2 +- drivers/clk/ti/clk.c | 4 ++-- drivers/clk/ti/clockdomain.c | 4 ++-- drivers/clk/ti/divider.c | 2 +- drivers/clk/ti/dpll.c | 4 ++-- drivers/clk/ti/dpll3xxx.c | 2 +- drivers/clk/ti/interface.c | 2 +- 17 files changed, 21 insertions(+), 21 deletions(-) commit 497295afb5ab070211a9963c80a89bc6fbfd6197 Author: Stephen Boyd Date: Thu Jun 25 16:53:23 2015 -0700 clk: Replace __clk_get_num_parents with clk_hw_get_num_parents() Mostly converted with the following semantic patch: @@ struct clk_hw *E; @@ -__clk_get_num_parents(E->clk) +clk_hw_get_num_parents(E) Acked-by: Boris Brezillon Cc: Chao Xie Cc: Krzysztof Kozlowski Cc: Javier Martinez Canillas Cc: Tomasz Figa Cc: Maxime Ripard Cc: "Emilio López" Acked-by: Tero Kristo Cc: Geert Uytterhoeven Acked-by: Sylwester Nawrocki Signed-off-by: Stephen Boyd drivers/clk/at91/clk-programmable.c | 2 +- drivers/clk/at91/clk-usb.c | 2 +- drivers/clk/clk-composite.c | 2 +- drivers/clk/clk-mux.c | 2 +- drivers/clk/mmp/clk-mix.c | 8 ++++---- drivers/clk/qcom/clk-rcg.c | 4 ++-- drivers/clk/qcom/clk-rcg2.c | 2 +- drivers/clk/qcom/common.c | 2 +- drivers/clk/qcom/mmcc-msm8960.c | 2 +- drivers/clk/samsung/clk-s3c2410-dclk.c | 2 +- drivers/clk/shmobile/clk-div6.c | 4 ++-- drivers/clk/sunxi/clk-factors.c | 2 +- drivers/clk/sunxi/clk-sun6i-ar100.c | 2 +- drivers/clk/sunxi/clk-sunxi.c | 2 +- drivers/clk/ti/mux.c | 2 +- 15 files changed, 20 insertions(+), 20 deletions(-) commit 1a9c069cb2d28bb72fefee509e0d26f92d7f7166 Author: Stephen Boyd Date: Thu Jun 25 15:55:14 2015 -0700 clk: Add clk_hw_*() APIs for use by clk providers clk providers shouldn't need to use the consumer APIs (clk.h). Add provider APIs to replace the __clk_*() APIs that take a struct clk_hw as their first argument instead of a struct clk. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ include/linux/clk-provider.h | 9 +++++++ 2 files changed, 70 insertions(+) commit 13ec7297e5331f2754d7629a068c619c41f20e56 Author: Chao Yu Date: Mon Aug 24 17:40:45 2015 +0800 f2fs: fix to release inode correctly In following call stack, if unfortunately we lose all chances to truncate inode page in remove_inode_page, eventually we will add the nid allocated previously into free nid cache, this nid is with NID_NEW status and with NEW_ADDR in its blkaddr pointer: - f2fs_create - f2fs_add_link - __f2fs_add_link - init_inode_metadata - new_inode_page - new_node_page - set_node_addr(, NEW_ADDR) - f2fs_init_acl failed - remove_inode_page failed - handle_failed_inode - remove_inode_page failed - iput - f2fs_evict_inode - remove_inode_page failed - alloc_nid_failed cache a nid with valid blkaddr: NEW_ADDR This may not only cause resource leak of previous inode, but also may cause incorrect use of the previous blkaddr which is located in NO.nid node entry when this nid is reused by others. This patch tries to add this inode to orphan list if we fail to truncate inode, so that we can obtain a second chance to release it in orphan recovery flow. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- fs/f2fs/inode.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- fs/f2fs/node.c | 14 +++++++++----- 3 files changed, 56 insertions(+), 13 deletions(-) commit 854d2a63de86a769db4dbed75b660f544b3c0c7a Author: Marek Lindner Date: Fri Jul 17 22:25:59 2015 +0800 batman-adv: beautify supported routing algorithm list Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 87b40f534d2a266eec55a897e9a93f3b022c901d Author: Sven Eckelmann Date: Fri Jul 17 10:03:42 2015 +0200 batman-adv: Fix conditional statements indentation commit 29b9256e6631 ("batman-adv: consider outgoing interface in OGM sending") incorrectly indented the interface check code. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5274cd68d744b4bc59b32d87cbde70803130eb3f Author: Sven Eckelmann Date: Sun Jun 21 14:45:15 2015 +0200 batman-adv: Add lockdep_asserts for documented external locks Some functions already have documentation about locks they require inside their kerneldoc header. These can be directly tested during runtime using the lockdep asserts. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/fragmentation.c | 3 +++ net/batman-adv/multicast.c | 6 ++++++ net/batman-adv/translation-table.c | 2 ++ 3 files changed, 11 insertions(+) commit 2c72d655b04450056566bcbfe89c2427376b60b4 Author: Sven Eckelmann Date: Sun Jun 21 14:45:14 2015 +0200 batman-adv: Annotate deleting functions with external lock via lockdep Functions which use (h)list_del* are requiring correct locking when they operate on global lists. Most of the time the search in the list and the delete are done in the same function. All other cases should have it visible that they require a special lock to avoid race conditions. Lockdep asserts can be used to check these problem during runtime when the lockdep functionality is enabled. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 11 ++++++++--- net/batman-adv/multicast.c | 13 +++++++++++-- net/batman-adv/network-coding.c | 4 ++++ net/batman-adv/translation-table.c | 2 ++ 4 files changed, 25 insertions(+), 5 deletions(-) commit 7c26a53ba5e7e4bf2be3cb93f2fffaefccff2e3b Author: Marek Lindner Date: Sun Jun 28 22:16:06 2015 +0800 batman-adv: convert bat_priv->tt.req_list to hlist Since the list's tail is never accessed using a double linked list head wastes memory. Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/main.c | 2 +- net/batman-adv/translation-table.c | 29 ++++++++++++++++------------- net/batman-adv/types.h | 4 ++-- 3 files changed, 19 insertions(+), 16 deletions(-) commit 0b8336f5fc26f263821534d7a9a3633748692207 Author: Sven Eckelmann Date: Sun Jun 21 19:40:09 2015 +0200 batman-adv: Fix gw_bandwidth calculation on 32 bit systems The TVLV for the gw_bandwidth stores everything as u32. But the gw_bandwidth reads the signed long which limits the maximum value to (2 ** 31 - 1) on systems with 4 byte long. Also the input value is always converted from either Mibit/s or Kibit/s to 100Kibit/s. This reduces the values even further when the user sets it via the default unit Kibit/s. It may even cause an integer overflow and end up with a value the user never intended. Instead read the values as u64, check for possible overflows, do the unit adjustments and then reduce the size to u32. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_common.c | 49 +++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 7 deletions(-) commit 77927b7d9dd6c9c5f59f0f49c76cda54b908090e Author: Sven Eckelmann Date: Sun Jun 21 14:42:49 2015 +0200 batman-adv: Return EINVAL on invalid gw_bandwidth change Invalid speed settings by the user are currently acknowledged as correct but not stored. Instead the return of the store operation of the file "gw_bandwidth" should indicate that the given value is not acceptable. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a121048a89f8186fa2c8388d5b41528466013857 Author: Marek Lindner Date: Mon Jun 22 00:30:23 2015 +0800 batman-adv: prevent potential hlist double deletion The hlist_del_rcu() call in batadv_tt_global_size_mod() does not check if the element still is part of the list prior to deletion. The atomic list counter should prevent the worst but converting to hlist_del_init_rcu() ensures the element can't be deleted more than once. Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d0fa4f3f5b0419a016ff27eea2fa615e4c0d1713 Author: Marek Lindner Date: Mon Jun 22 00:30:22 2015 +0800 batman-adv: convert orig_node->vlan_list to hlist Since the list's tail is never accessed using a double linked list head wastes memory. Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/originator.c | 7 ++++--- net/batman-adv/translation-table.c | 8 ++++---- net/batman-adv/types.h | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) commit 2bdd1888f147576fb870a926a4d015305b5bbeee Author: Sven Eckelmann Date: Thu Jun 18 18:53:19 2015 +0200 batman-adv: Remove batadv_ types forward declarations main.h is included in every file and is the only way to access types.h. This makes forward declarations for all types defined in types.h unnecessary. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bridge_loop_avoidance.h | 3 --- net/batman-adv/debugfs.h | 1 - net/batman-adv/gateway_common.h | 1 - net/batman-adv/icmp_socket.h | 1 - net/batman-adv/multicast.h | 2 -- net/batman-adv/network-coding.h | 4 ---- net/batman-adv/routing.h | 4 ---- net/batman-adv/send.h | 3 --- net/batman-adv/soft-interface.h | 4 ---- net/batman-adv/sysfs.h | 2 -- net/batman-adv/translation-table.h | 2 -- 11 files changed, 27 deletions(-) commit 383b863620aa5127200bff591f7465d593290997 Author: Marek Lindner Date: Thu Jun 18 16:24:24 2015 +0800 batman-adv: rename batadv_new_tt_req_node to batadv_tt_req_node_new Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 433ff98f3f1d6baa56e23f6b50370a5ab16c0e66 Author: Marek Lindner Date: Thu Jun 18 16:11:07 2015 +0800 batman-adv: update kernel doc of batadv_tt_global_del_orig_entry() The updated kernel doc & additional comment shall prevent accidental copy & paste errors or calling the function without the required precautions. Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 4f248cff9e21720bd5f057661f752fba067f3779 Author: Sven Eckelmann Date: Tue Jun 9 20:50:49 2015 +0200 batman-adv: Remove multiple assignment per line The Linux CodingStyle disallows multiple assignments in a single line. (see chapter 1) Reported-by: Markus Pargmann Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 6 ++++-- net/batman-adv/bridge_loop_avoidance.c | 6 ++++-- net/batman-adv/distributed-arp-table.c | 3 ++- net/batman-adv/gateway_client.c | 15 ++++++++++----- net/batman-adv/gateway_common.c | 5 ++++- net/batman-adv/network-coding.c | 3 ++- net/batman-adv/translation-table.c | 18 +++++++++++++----- 7 files changed, 39 insertions(+), 17 deletions(-) commit 34473822da06510d708087bb76d9ad757ac09567 Author: Sven Eckelmann Date: Sun May 31 10:10:20 2015 +0200 batman-adv: Fix kerneldoc over 80 column lines Kerneldoc required single line documentation in the past (before 2009). Therefore, the 80 columns limit per line check of checkpatch was disabled for kerneldoc. But kerneldoc is not excluded anymore from it and checkpatch now enabled the check again. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/icmp_socket.c | 4 ++-- net/batman-adv/network-coding.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 6b5e971a282c0e7b18b47823103d695352b5a3c2 Author: Sven Eckelmann Date: Tue May 26 18:34:26 2015 +0200 batman-adv: Replace C99 int types with kernel type (s|u)(8|16|32|64) are the preferred types in the kernel. The use of the standard C99 types u?int(8|16|32|64)_t are objected by some people and even checkpatch now warns about using them. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/bat_iv_ogm.c | 94 +++++++------- net/batman-adv/bitarray.c | 6 +- net/batman-adv/bitarray.h | 10 +- net/batman-adv/bridge_loop_avoidance.c | 72 ++++++----- net/batman-adv/bridge_loop_avoidance.h | 5 +- net/batman-adv/distributed-arp-table.c | 59 +++++---- net/batman-adv/distributed-arp-table.h | 8 +- net/batman-adv/fragmentation.c | 10 +- net/batman-adv/gateway_client.c | 14 +-- net/batman-adv/gateway_client.h | 2 +- net/batman-adv/gateway_common.c | 11 +- net/batman-adv/hash.c | 6 +- net/batman-adv/hash.h | 12 +- net/batman-adv/icmp_socket.c | 2 +- net/batman-adv/main.c | 69 +++++----- net/batman-adv/main.h | 48 ++++--- net/batman-adv/multicast.c | 16 +-- net/batman-adv/network-coding.c | 44 ++++--- net/batman-adv/originator.c | 15 ++- net/batman-adv/originator.h | 11 +- net/batman-adv/packet.h | 204 +++++++++++++++--------------- net/batman-adv/routing.c | 24 ++-- net/batman-adv/routing.h | 2 +- net/batman-adv/send.c | 8 +- net/batman-adv/send.h | 8 +- net/batman-adv/soft-interface.c | 26 ++-- net/batman-adv/sysfs.c | 4 +- net/batman-adv/translation-table.c | 224 ++++++++++++++++----------------- net/batman-adv/translation-table.h | 29 +++-- net/batman-adv/types.h | 105 ++++++++-------- 30 files changed, 563 insertions(+), 585 deletions(-) commit 82bb70c599d81e6b2535f887b02e1719cc4856ac Merge: 2e5e8fd bd6906e Author: Rafael J. Wysocki Date: Mon Aug 24 23:10:02 2015 +0200 Merge branch 'turbostat' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-tools Pull turbostat changes for v4.3 from Len Brown. * 'turbostat' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: tools/power turbostat: fix typo on DRAM column in Joules-mode tools/power turbostat: fix parameter passing for forked command tools/power turbostat: dump CONFIG_TDP tools/power turbostat: cpu0 is no longer hard-coded, so update output tools/power turbostat: update turbostat(8) commit c75b89ebff52f758e2559664b2ae3ceed410da30 Merge: c13dcf9 493f133 Author: Rafael J. Wysocki Date: Mon Aug 24 23:09:17 2015 +0200 Merge branch 'cpuidle' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-cpuidle Pull intel_idle changes for v4.3 from Len Brown. * 'cpuidle' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: intel_idle: Skylake Client Support intel_idle: allow idle states to be freeze-mode specific commit 56fff0a01fa056502a28d67cb5a2714d64780415 Merge: 4a89ba0 786eec2 Author: David S. Miller Date: Mon Aug 24 14:06:37 2015 -0700 Merge branch 'fjes' Taku Izumi says: ==================== FUJITSU Extended Socket network device driver This patchsets adds FUJITSU Extended Socket network device driver. Extended Socket network device is a shared memory based high-speed network interface between Extended Partitions of PRIMEQUEST 2000 E2 series. You can get some information about Extended Partition and Extended Socket by referring the following manual. http://globalsp.ts.fujitsu.com/dmsp/Publications/public/CA92344-0537.pdf 3.2.1 Extended Partitioning 3.2.2 Extended Socke v2.2 -> v3: - Fix up according to David's comment (No functional change) ==================== Signed-off-by: David S. Miller commit 786eec27cbb1713caf3b33538a877a21e779d3bc Author: Taku Izumi Date: Fri Aug 21 17:29:38 2015 +0900 fjes: ethtool support This patch adds implementation for ethtool support. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/Makefile | 2 +- drivers/net/fjes/fjes.h | 2 + drivers/net/fjes/fjes_ethtool.c | 137 ++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_main.c | 1 + 4 files changed, 141 insertions(+), 1 deletion(-) commit cb79eaaec4c1046e4b3d55c27aee48774c5ff936 Author: Taku Izumi Date: Fri Aug 21 17:29:37 2015 +0900 fjes: handle receive cancellation request interrupt This patch adds implementation of handling IRQ of other receiver's receive cancellation request. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_main.c | 78 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) commit b5a9152d993a4f08d6e08ac0dde3a09993dc9c45 Author: Taku Izumi Date: Fri Aug 21 17:29:36 2015 +0900 fjes: epstop_task This patch adds epstop_task. This task is used to process other receiver's cancellation request. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 31 +++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 1 + drivers/net/fjes/fjes_main.c | 1 + 3 files changed, 33 insertions(+) commit 785f28e061a870eba937cb2a860cbcf631f5ebb0 Author: Taku Izumi Date: Fri Aug 21 17:29:35 2015 +0900 fjes: update_zone_task This patch adds update_zone_task. Zoning information can be changed by user. This task is used to monitor if zoning information is changed or not. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 179 +++++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 1 + drivers/net/fjes/fjes_main.c | 14 ++++ 3 files changed, 194 insertions(+) commit 8fc4cadb98c6a0f1eecde678271fcc957258af3e Author: Taku Izumi Date: Fri Aug 21 17:29:34 2015 +0900 fjes: unshare_watch_task This patch adds unshare_watch_task. Shared buffer's status can be changed into unshared. This task is used to monitor shared buffer's status. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 3 ++ drivers/net/fjes/fjes_main.c | 126 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) commit ff5b42103227c01c4082f27b06a43758efbf5ab8 Author: Taku Izumi Date: Fri Aug 21 17:29:33 2015 +0900 fjes: force_close_task This patch adds force_close_task. This task is used to close network device forcibly. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 1 + drivers/net/fjes/fjes_main.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) commit 8edb62a8131ca5b5ecbb29e45d812d9583585afb Author: Taku Izumi Date: Fri Aug 21 17:29:32 2015 +0900 fjes: interrupt_watch_task This patch adds interrupt_watch_task. This task is used to prevent delay of interrupts. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 5 +++++ drivers/net/fjes/fjes_main.c | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) commit 3e3fedda31798cff2cb5358e15263b8799c1e72c Author: Taku Izumi Date: Fri Aug 21 17:29:31 2015 +0900 fjes: net_device_ops.ndo_vlan_rx_add/kill_vid This patch adds net_device_ops.ndo_vlan_rx_add_vid and net_device_ops.ndo_vlan_rx_kill_vid callback. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 27 +++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 2 ++ drivers/net/fjes/fjes_main.c | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) commit 4393e767aee706944dbdf3aa91810a0c981b6710 Author: Taku Izumi Date: Fri Aug 21 17:29:30 2015 +0900 fjes: net_device_ops.ndo_tx_timeout This patch adds net_device_ops.ndo_tx_timeout callback. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit b9e23a67d52f956d75e6327a7fccbb53fbdc540b Author: Taku Izumi Date: Fri Aug 21 17:29:29 2015 +0900 fjes: net_device_ops.ndo_change_mtu This patch adds net_device_ops.ndo_change_mtu. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_main.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 879bc9a3ea3b9015833b53f6ec114bb602a663a8 Author: Taku Izumi Date: Fri Aug 21 17:29:28 2015 +0900 fjes: net_device_ops.ndo_get_stats64 This patch adds net_device_ops.ndo_get_stats64 callback. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 265859309a761b4eec36620b324c9eb27a3cfee1 Author: Taku Izumi Date: Fri Aug 21 17:29:27 2015 +0900 fjes: NAPI polling function This patch adds NAPI polling function and receive related work. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 40 ++++++++++ drivers/net/fjes/fjes_hw.h | 5 ++ drivers/net/fjes/fjes_main.c | 171 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 214 insertions(+), 2 deletions(-) commit ac63b947085d8297bed10063cdf1ed6374d04b73 Author: Taku Izumi Date: Fri Aug 21 17:29:26 2015 +0900 fjes: tx_stall_task This patch adds tx_stall_task. When receiver's buffer is full, sender stops its tx queue. This task is used to monitor receiver's status and when receiver's buffer is avairable, it resumes tx queue. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 2 ++ drivers/net/fjes/fjes_main.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) commit b772b9dc63df0ca8a750ceac9ab356376022f0b6 Author: Taku Izumi Date: Fri Aug 21 17:29:25 2015 +0900 fjes: raise_intr_rxdata_task This patch add raise_intr_rxdata_task. Extended Socket Network Device is shared memory based, so someone's transmission denotes other's reception. In order to notify receivers, sender has to raise interruption of receivers. raise_intr_rxdata_task does this work. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 4 +++ drivers/net/fjes/fjes_main.c | 63 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) commit 9acf51cbf73de8952e3df75200d7a7755c16d0f6 Author: Taku Izumi Date: Fri Aug 21 17:29:24 2015 +0900 fjes: net_device_ops.ndo_start_xmit This patch adds net_device_ops.ndo_start_xmit callback, which is called when sending packets. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 1 + drivers/net/fjes/fjes_hw.c | 55 ++++++++++++++ drivers/net/fjes/fjes_hw.h | 12 +++ drivers/net/fjes/fjes_main.c | 177 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 245 insertions(+) commit e5d486dcaa45dd365970c09395ae24df5a0e3f77 Author: Taku Izumi Date: Fri Aug 21 17:29:23 2015 +0900 fjes: net_device_ops.ndo_open and .ndo_stop This patch adds net_device_ops.ndo_open and .ndo_stop callback. These function is called when network device activation and deactivation. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 1 + drivers/net/fjes/fjes_hw.c | 145 +++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 30 ++++++ drivers/net/fjes/fjes_main.c | 246 +++++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_regs.h | 17 +++ 5 files changed, 439 insertions(+) commit 7950e6c5da55715debef9fa06b5ac87fb3eb4355 Author: Taku Izumi Date: Fri Aug 21 17:29:22 2015 +0900 fjes: buffer address regist/unregistration routine This patch adds buffer address regist/unregistration routine. This function is mainly invoked when network device's activation (open) and deactivation (close) in order to retist/unregist shared buffer address. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 186 +++++++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 9 ++- 2 files changed, 194 insertions(+), 1 deletion(-) commit 3bb025d4f756049d297f2bed605241d4d43a15fe Author: Taku Izumi Date: Fri Aug 21 17:29:21 2015 +0900 fjes: ES information acquisition routine This patch adds ES information acquisition routine. ES information can be retrieved issuing information request command. ES information includes which receiver is same zone. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 101 +++++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 24 ++++++++++ drivers/net/fjes/fjes_regs.h | 23 ++++++++++ 3 files changed, 148 insertions(+) commit 2fcbca687702163ae3a37ec4eac5905d6f119296 Author: Taku Izumi Date: Fri Aug 21 17:29:20 2015 +0900 fjes: platform_driver's .probe and .remove routine This patch implements platform_driver's .probe and .remove routine, and also adds board specific private data structure. This driver registers net_device at platform_driver's .probe routine and unregisters net_device at its .remove routine. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes.h | 25 ++++++++++++ drivers/net/fjes/fjes_main.c | 94 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) commit a18aaec21ec8f4d2a4e09ad590437777a1ebf691 Author: Taku Izumi Date: Fri Aug 21 17:29:19 2015 +0900 fjes: Hardware cleanup routine This patch adds hardware cleanup routine to be invoked at driver's .remove routine. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/fjes_hw.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 1 + 2 files changed, 67 insertions(+) commit 8cdc3f6c5d22dd059fe8127be7b5cae113e79afb Author: Taku Izumi Date: Fri Aug 21 17:29:18 2015 +0900 fjes: Hardware initialization routine This patch adds hardware initialization routine to be invoked at driver's .probe routine. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/fjes/Makefile | 2 +- drivers/net/fjes/fjes.h | 1 + drivers/net/fjes/fjes_hw.c | 295 +++++++++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_hw.h | 251 ++++++++++++++++++++++++++++++++++++ drivers/net/fjes/fjes_regs.h | 102 +++++++++++++++ 5 files changed, 650 insertions(+), 1 deletion(-) commit 658d439b22924796d00f03282135a356f47cc64e Author: Taku Izumi Date: Fri Aug 21 17:29:17 2015 +0900 fjes: Introduce FUJITSU Extended Socket Network Device driver This patch adds the basic code of FUJITSU Extended Socket Network Device driver. When "PNP0C02" is found in ACPI DSDT, it evaluates "_STR" to check if "PNP0C02" is for Extended Socket device driver and retrieves ACPI resource information. Then creates platform_device. Signed-off-by: Taku Izumi Signed-off-by: David S. Miller drivers/net/Kconfig | 7 ++ drivers/net/Makefile | 2 + drivers/net/fjes/Makefile | 30 ++++++ drivers/net/fjes/fjes.h | 32 +++++++ drivers/net/fjes/fjes_main.c | 213 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 284 insertions(+) commit 9d1bf02ac3d41367896b38793db6f8f30bb9a295 Author: Adrian Hunter Date: Fri Jul 17 19:34:00 2015 +0300 perf tools: Update Intel PT documentation Update Intel PT documentation to describe new features. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-26-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/intel-pt.txt | 194 ++++++++++++++++++++++++++++++++-- 1 file changed, 186 insertions(+), 8 deletions(-) commit 7eacca3ebb03a4ee7bb41284aafeb19a54242621 Author: Adrian Hunter Date: Fri Jul 17 19:33:59 2015 +0300 perf tools: Add Intel PT support for decoding TRACESTOP packets A TRACESTOP packet is produced when an Intel PT trace enters a defined region of the address space at which point the tracing stops. This patch just adds decoder support. Support for specifying TRACESTOP regions is left until later. For details refer to the June 2015 or later Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-25-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 0de802abd14abdf8cbbba28b421a1a00fa0939d5 Author: Adrian Hunter Date: Fri Jul 17 19:33:58 2015 +0300 perf tools: Add Intel PT support for using CYC packets CYC packets are a new Intel PT feature. CYC packets provide even finer grain timestamp information than MTC and TSC packets. A CYC packet contains the number of CPU cycles since the last CYC packet. Unlike MTC and TSC packets, CYC packets are only sent when another packet is also sent. Support for this feature is indicated by: /sys/bus/event_source/devices/intel_pt/caps/psb_cyc which contains "1" if the feature is supported and "0" otherwise. CYC packets can be requested using a PMU config term e.g. perf record -e intel_pt/cyc/u sleep 1 The frequency of CYC packets can also be specified. e.g. perf record -e intel_pt/cyc,cyc_thresh=2/u sleep 1 CYC packets are not requested by default. Valid cyc_thresh values are given by: /sys/bus/event_source/devices/intel_pt/caps/cycle_thresholds which contains a hexadecimal value, the bits of which represent valid values e.g. bit 2 set means value 2 is valid. The value represents the minimum number of CPU cycles that must have passed before a CYC packet can be sent. The number of CPU cycles is: 2 ^ (value - 1) e.g. value 4 means 8 CPU cycles must pass before a CYC packet can be sent. Note a CYC packet is still only sent when another packet is sent, not at, e.g. every 8 CPU cycles. If an invalid value is entered, the error message will give a list of valid values e.g. $ perf record -e intel_pt/cyc,cyc_thresh=15/u uname Invalid cyc_thresh for intel_pt. Valid values are: 0-12 tools/perf/Documentation/intel-pt.txt is updated in a later patch as there are a number of new features being added. For more information refer to the June 2015 or later Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-24-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/intel-pt.c | 6 ++++++ 1 file changed, 6 insertions(+) commit cc33618619cefc6d730cca3bb8e15311016a4da7 Author: Adrian Hunter Date: Fri Jul 17 19:33:57 2015 +0300 perf tools: Add Intel PT support for decoding CYC packets CYC packets provide even finer grain timestamp information than MTC and TSC packets. A CYC packet contains the number of CPU cycles since the last CYC packet. This patch just adds decoder support. The CPU frequency can be related to TSC using the Maximum Non-Turbo Ratio in combination with the CBR (core-to-bus ratio) packet. However more accuracy is achieved by simply interpolating the number of cycles between other timing packets like MTC or TSC. This patch takes the latter approach. Support for a default value and validation of values is provided by a later patch. Also documentation is updated in a separate patch. For details refer to the June 2015 or later Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-23-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 311 ++++++++++++++++++++- 1 file changed, 306 insertions(+), 5 deletions(-) commit b45fc0bfaf4a0b60ce2deda222f8ef2a23b89a5f Author: Adrian Hunter Date: Fri Jul 17 19:33:56 2015 +0300 perf tools: Add Intel PT support for using MTC packets MTC packets are a new Intel PT feature. MTC packets provide finer grain timestamp information than TSC packets. Support for this feature is indicated by: /sys/bus/event_source/devices/intel_pt/caps/mtc which contains "1" if the feature is supported and "0" otherwise. MTC packets can be requested using a PMU config term e.g. perf record -e intel_pt/mtc/u sleep 1 The frequency of MTC packets can also be specified. e.g. perf record -e intel_pt/mtc,mtc_period=2/u sleep 1 The default value is 3 or the nearest lower value that is supported. 0 is always supported. Valid values are given by: /sys/bus/event_source/devices/intel_pt/caps/mtc_periods which contains a hexadecimal value, the bits of which represent valid values e.g. bit 2 set means value 2 is valid. The value is converted to the MTC frequency as: CTC-frequency / (2 ^ value) e.g. value 3 means one eighth of CTC-frequency Where CTC is the hardware crystal clock, the frequency of which can be related to TSC via values provided in cpuid leaf 0x15. If an invalid value is entered, the error message will give a list of valid values e.g. $ perf record -e intel_pt/mtc_period=15/u uname Invalid mtc_period for intel_pt. Valid values are: 0,3,6,9 tools/perf/Documentation/intel-pt.txt is updated in a later patch as there are a number of new features being added. For more information refer to the June 2015 or later Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-22-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/intel-pt.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 79b58424b821c651a4b4df9018a14684e3670f42 Author: Adrian Hunter Date: Fri Jul 17 19:33:55 2015 +0300 perf tools: Add Intel PT support for decoding MTC packets MTC packets provide finer grain timestamp information than TSC packets. MTC packets record time using the hardware crystal clock (CTC) which is related to TSC packets using a TMA packet. This patch just adds decoder support. Support for a default value and validation of values is provided by a later patch. Also documentation is updated in a separate patch. For details refer to the June 2015 or later Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-21-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 162 ++++++++++++++++++++- .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 + 2 files changed, 159 insertions(+), 4 deletions(-) commit 11fa7cb86b56d3610043ba2ac6cbd81feab4b7c4 Author: Adrian Hunter Date: Fri Jul 17 19:33:54 2015 +0300 perf tools: Pass Intel PT information for decoding MTC and CYC Record additional information in the AUXTRACE_INFO event in preparation for decoding MTC and CYC packets. Pass the information to the decoder. The AUXTRACE_INFO record can be extended by using the size to indicate the presence of new members. The additional information includes PMU config bit positions and the TSC to CTC (hardware crystal clock) ratio needed to decode MTC packets. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-20-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/intel-pt.c | 24 ++++++++- .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 3 ++ tools/perf/util/intel-pt.c | 62 ++++++++++++++++++---- tools/perf/util/intel-pt.h | 5 ++ 4 files changed, 83 insertions(+), 11 deletions(-) commit 3d49807870f08d6f3406b77efd94bb3788372162 Author: Adrian Hunter Date: Fri Jul 17 19:33:53 2015 +0300 perf tools: Add new Intel PT packet definitions New features have been added to Intel PT which include a number of new packet definitions. This patch adds packet definitions for new packets: TMA, MTC, CYC, VMCS, TRACESTOP and MNT. Also another bit in PIP is defined. This patch only adds support for the definitions. Later patches add support for decoding TMA, MTC, CYC and TRACESTOP which is where those packets are explained. VMCS and the newly defined bit in PIP are used with virtualization which is not supported yet. MNT is a maintenance packet which the decoder should ignore. For details, refer to the June 2015 or later Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-19-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 70 +++++++++- .../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 142 +++++++++++++++++++-- .../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 6 + 3 files changed, 201 insertions(+), 17 deletions(-) commit bc9b6bf07c8b3f4e85509f9b3a552c86e567b4ae Author: Adrian Hunter Date: Fri Jul 17 19:33:52 2015 +0300 perf tools: Add Intel PT support for PSB periods The PSB packet is a synchronization packet that provides a starting point for decoding or recovery from errors. This patch adds support for a new Intel PT feature that allows the frequency of PSB packets to be specified. Support for this feature is indicated by /sys/bus/event_source/devices/intel_pt/caps/psb_cyc which contains "1" if the feature is supported and "0" otherwise. The PSB period can be specified as a PMU config term e.g. perf record -e intel_pt/psb_period=2/u sleep 1 The default value is 3 or the nearest lower value that is supported. 0 is always supported. Valid values are given by: /sys/bus/event_source/devices/intel_pt/caps/psb_periods which contains a hexadecimal value, the bits of which represent valid values e.g. bit 2 set means value 2 is valid. The value is converted to the approximate number of trace bytes between PSB packets as: 2 ^ (value + 11) e.g. value 3 means 16KiB bytes between PSBs If an invalid value is entered, the error message will give a list of valid values e.g. $ perf record -e intel_pt/psb_period=15/u uname Invalid psb_period for intel_pt. Valid values are: 0-5 tools/perf/Documentation/intel-pt.txt is updated in a later patch as there are a number of new features being added. For more information about PSB periods refer to the Intel 64 and IA-32 Architectures SDM Chapter 36 Intel Processor Trace from June 2015 or later. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-18-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/intel-pt.c | 217 ++++++++++++++++++++++++++++++++++-- 1 file changed, 210 insertions(+), 7 deletions(-) commit 2a21d03686881331b0af0471588674e7e896eeb2 Author: Adrian Hunter Date: Fri Jul 17 19:33:48 2015 +0300 perf tools: Fix Intel PT 'instructions' sample period The period on synthesized 'instructions' samples was being set to a fixed value, whereas the correct value is the number of instructions since the last sample, which is a value that the decoder can provide. So do it that way. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-14-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 3 +++ tools/perf/util/intel-pt-decoder/intel-pt-decoder.h | 1 + tools/perf/util/intel-pt.c | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) commit f8bcbe62acd0e1ce9004b83e98a4af87ae385dcf Author: Robert Jarzmik Date: Sat Aug 8 10:44:10 2015 +0200 lib: scatterlist: add sg splitting function Sometimes a scatter-gather has to be split into several chunks, or sub scatter lists. This happens for example if a scatter list will be handled by multiple DMA channels, each one filling a part of it. A concrete example comes with the media V4L2 API, where the scatter list is allocated from userspace to hold an image, regardless of the knowledge of how many DMAs will fill it : - in a simple RGB565 case, one DMA will pump data from the camera ISP to memory - in the trickier YUV422 case, 3 DMAs will pump data from the camera ISP pipes, one for pipe Y, one for pipe U and one for pipe V For these cases, it is necessary to split the original scatter list into multiple scatter lists, which is the purpose of this patch. The guarantees that are required for this patch are : - the intersection of spans of any couple of resulting scatter lists is empty. - the union of spans of all resulting scatter lists is a subrange of the span of the original scatter list. - streaming DMA API operations (mapping, unmapping) should not happen both on both the resulting and the original scatter list. It's either the first or the later ones. - the caller is reponsible to call kfree() on the resulting scatterlists. Signed-off-by: Robert Jarzmik Signed-off-by: Jens Axboe include/linux/scatterlist.h | 5 ++ lib/Kconfig | 7 ++ lib/Makefile | 1 + lib/sg_split.c | 202 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 215 insertions(+) commit 91f15fb30c77d4a0d0d9b97e5cec647650853145 Author: Zhang Rui Date: Mon Aug 24 15:27:11 2015 -0500 PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI On multi-function JMicron SATA/PATA/AHCI devices, the PATA controller at function 1 doesn't work if it is powered on before the SATA controller at function 0. The result is that PATA doesn't work after resume, and we print messages like this: pata_jmicron 0000:02:00.1: Refused to change power state, currently in D3 irq 17: nobody cared (try booting with the "irqpoll" option) Async resume was introduced in v3.15 by 76569faa62c4 ("PM / sleep: Asynchronous threads for resume_noirq"). Prior to that, we powered on the functions in order, so this problem shouldn't happen. e6b7e41cdd8c ("ata: Disabling the async PM for JMicron chip 363/361") solved the problem for JMicron 361 and 363 devices. With async suspend disabled, we always power on function 0 before function 1. Barto then reported the same problem with a JMicron 368 (see comment #57 in the bugzilla). Rather than extending the blacklist piecemeal, disable async suspend for all JMicron multi-function SATA/PATA/AHCI devices. This quirk could stay in the ahci and pata_jmicron drivers, but it's likely the problem will occur even if pata_jmicron isn't loaded until after the suspend/resume. Making it a PCI quirk ensures that we'll preserve the power-on order even if the drivers aren't loaded. [bhelgaas: changelog, limit to multi-function, limit to IDE/ATA] Link: https://bugzilla.kernel.org/show_bug.cgi?id=81551 Reported-and-tested-by: Barto Signed-off-by: Zhang Rui Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.15+ drivers/ata/ahci.c | 13 +------------ drivers/ata/pata_jmicron.c | 12 ------------ drivers/pci/quirks.c | 12 ++++++++++++ 3 files changed, 13 insertions(+), 24 deletions(-) commit 5c9ce1e644c1919ac4bff4394a4c372f47a89b4e Author: Arnaldo Carvalho de Melo Date: Mon Aug 24 17:16:22 2015 -0300 perf ordered_events: Clear the progress bar at the end of a flush We were depending on the next screen operation after a flush() being one that would redraw the whole screen so that the progress bar would be overwritten, when that didn't happen a screen artifact of, say, a error dialog window would be overlaid on top of the progress bar, fix it by calling ui_browser__finish(), that now has a TUI implementation. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-el0fyw6duemnx62lydjzhs8c@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/ordered-events.c | 3 +++ 1 file changed, 3 insertions(+) commit e324c4dc4a5991d5b1171f434884a4026345e4b4 Author: Shenwei Wang Date: Mon Aug 24 14:04:15 2015 -0500 irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources IMX7D contains a new version of GPC IP block (GPCv2). It has two major functions: power management and wakeup source management. When the system is in WFI (wait for interrupt) mode, the GPC block will be the first block on the platform to be activated and signaled. In normal wait mode during cpu idle, the system can be woken up by any enabled interrupts. In standby or suspend mode, the system can only be wokem up by the pre-defined wakeup sources. Based-on-patch-by: Anson Huang Signed-off-by: Shenwei Wang Cc: Cc: Cc: Link: http://lkml.kernel.org/r/1440443055-7291-1-git-send-email-shenwei.wang@freescale.com Signed-off-by: Thomas Gleixner drivers/irqchip/Kconfig | 6 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-imx-gpcv2.c | 278 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 285 insertions(+) commit 4a89ba04ecc6377696e4e26c1abc1cb5764decb9 Author: Loganaden Velvindron Date: Thu Aug 20 19:22:18 2015 -0700 3c59x: Add BQL support for 3c59x ethernet driver. This BQL patch is based on work done by Tino Reichardt. Tested on 0000:05:00.0: 3Com PCI 3c905C Tornado at ffffc90000e6e000 by running Flent several times. Signed-off-by: Loganaden Velvindron Signed-off-by: David S. Miller drivers/net/ethernet/3com/3c59x.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 1e259ad4a25e37eb298bb5772b9a51e70bed7782 Author: Arnaldo Carvalho de Melo Date: Mon Aug 24 16:18:26 2015 -0300 perf ui tui progress: Implement the ui_progress_ops->finish() method So that we can erase the progress bar after we're done with it, avoiding things like: ------------------------------------------------------------------- ┌─Error:──────────────────────────────────────────────────────┐ │Can't annotate unmapped_area_topdown: │ │ │ │No vmlinux file with build id a826726b5ddacfab1f0bade868f1a79│ │was found in the path. │ │ │ │Note that annotation using /proc/kcore requires CAP_SYS_RAWIO│ ┌Processin│ │──┐ │ │Please use: │ │ └─────────│ │──┘ │ perf buildid-cache -vu vmlinux │ │ │ │or: │ │ │ │ --vmlinux vmlinux │ │ │ │ │ │Press any key... │ └─────────────────────────────────────────────────────────────┘ Can't annotate unmapped_area_topdown: ------------------------------------------------------------------- I.e. that finished progress bar behind the error window. It is not a problem when we end up redrawing the whole screen, but its ugly when we present such error windows, provide a TUI method so that code like the above may avoid this situation, as will be done with the annotation code in the next cset. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-qvktnojzwwe37pweging058t@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/tui/progress.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 2fc32c92593dd7900c0635398800214733b8b397 Merge: f0d9ac7 d3f4caa 8d1ceb5 68ebb7c Author: Bjorn Helgaas Date: Mon Aug 24 14:15:05 2015 -0500 Merge branches 'pci/host-dra7xx', 'pci/host-imx6' and 'pci/host-spear' into next * pci/host-dra7xx: PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE() * pci/host-imx6: PCI: imx6: Simplify a trivial if-return sequence * pci/host-spear: PCI: spear: Use BUG_ON() instead of condition followed by BUG() commit 534fcb3bdaab801636d2146079462f7fdf52be0a Author: Michele Curti Date: Mon Aug 24 10:49:29 2015 -0700 Input: elan_i2c - enable ELAN0100 acpi panels Enable ELAN0100 touchpad driver, found on a Asus X205TA laptop, to gai 2,3 fingers tap and 2 fingers scroll. Signed-off-by: Michele Curti Reviewed-by: Duson Lin Signed-off-by: Dmitry Torokhov drivers/hid/hid-core.c | 1 + drivers/input/mouse/elan_i2c_core.c | 4 ++++ 2 files changed, 5 insertions(+) commit 4ea14a53d8f881034fa9e186653821c4e3d9a8fb Author: Peng Fan Date: Mon Aug 24 10:42:25 2015 -0700 Input: gpio-keys - report error when disabling unsupported key When trying to disable a key that is not supported by the device we should report error, not do nothing and report success: root@yocto:/sys/devices/soc0/gpio-keys# cat keys 114-116 root@yocto:/sys/devices/soc0/gpio-keys# echo 77 > keys root@yocto:/sys/devices/soc0/gpio-keys# We want 'echo 77 > keys' to report an error, but silence to give us an illusion that all is 'ok'. Signed-off-by: Peng Fan Signed-off-by: Dmitry Torokhov drivers/input/keyboard/gpio_keys.c | 5 +++++ 1 file changed, 5 insertions(+) commit ff89de6ba1d41ad4dea2c59531c5b4038ae43e8c Author: Julia Lawall Date: Mon Aug 24 10:51:04 2015 -0700 Input: sur40 - fix error return code Propagate error code on failure, or upper layers will be confused by returned 0 (success) code. Signed-off-by: Julia Lawall Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/sur40.c | 1 + 1 file changed, 1 insertion(+) commit 0fe0965e63c80dbc4bb005253ecff3494cbefc04 Author: Alexander Kuleshov Date: Fri Aug 21 15:19:06 2015 +0600 Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE The IRQSTACKSIZE was renamed to the IRQ_STACK_SIZE in the (26f80bd6a9 x86-64: Convert irqstacks to per-cpu) commit, but it still named IRQSTACKSIZE in the documentation. This patch fixes this. Signed-off-by: Alexander Kuleshov Signed-off-by: Jonathan Corbet Documentation/x86/kernel-stacks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61a88a76b43ce35254415821047aeefde3f656a9 Author: Nan Xiao Date: Thu Aug 20 18:17:10 2015 +0800 Documentation/Intel-IOMMU.txt: Modify definition of DRHD Hi all, According to "Intel Virtualization Technology for Directed I/O" specification, DRHD stands for "DMA Remapping Hardware Unit Definition" , not "DMA Engine Reporting Structure". Signed-off-by: Nan Xiao Documentation/Intel-IOMMU.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b17f29646dfabe147a7a4d54cc628e8046be3761 Merge: 54cf7be 92b78af Author: David S. Miller Date: Mon Aug 24 10:34:40 2015 -0700 Merge branch 'ila-precompute' Tom Herbert says: ==================== ila: Precompute checksums This patch set: - Adds argument ot LWT build_state that holds a pointer to the fib configuration being applied to the new route - Adds support in ILA to precompute checksum difference for performance optimization v2: - Move return argument in build_state to end of arguments v3: - Update the signature for ip6_tun_build_state() ==================== Signed-off-by: David S. Miller commit 92b78aff855a4815afe5311e3473ec829d3f2a9e Author: Tom Herbert Date: Mon Aug 24 09:45:42 2015 -0700 ila: Precompute checksum difference for translations In the ILA build state for LWT compute the checksum difference to apply to transport checksums that include the IPv6 pseudo header. The difference is between the route destination (from fib6_config) and the locator to write. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/ipv6/ila.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 127eb7cd3c210afead788991a30950a9e36759ea Author: Tom Herbert Date: Mon Aug 24 09:45:41 2015 -0700 lwt: Add cfg argument to build_state Add cfg and family arguments to lwt build state functions. cfg is a void pointer and will either be a pointer to a fib_config or fib6_config structure. The family parameter indicates which one (either AF_INET or AF_INET6). LWT encpasulation implementation may use the fib configuration to build the LWT state. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/lwtunnel.h | 3 +++ net/core/lwtunnel.c | 5 +++-- net/ipv4/fib_semantics.c | 17 ++++++++++------- net/ipv4/ip_tunnel_core.c | 2 ++ net/ipv6/ila.c | 1 + net/ipv6/route.c | 3 ++- net/mpls/mpls_iptunnel.c | 1 + 7 files changed, 22 insertions(+), 10 deletions(-) commit e4144fe5d47c91c92d36cdbd5f31ed8d6e3a57ab Author: Mario Carrillo Date: Mon Aug 24 09:33:09 2015 -0500 docs: update HOWTO for 3.x -> 4.x versioning The HOWTO document needed updating for the new kernel versioning. Signed-off-by: Mario Carrillo Signed-off-by: Jonathan Corbet Documentation/HOWTO | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit b01548919c33767bc457390fa3c41aedc273bfff Author: Chao Yu Date: Mon Aug 24 17:39:42 2015 +0800 f2fs: handle f2fs_truncate error correctly This patch fixes to return error number of f2fs_truncate, so that we can handle the error correctly in callers. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 26 +++++++++++++++++--------- 2 files changed, 18 insertions(+), 10 deletions(-) commit 4ec17d688d74b6b7cb10043c57ff4818cde2b0ca Author: Chao Yu Date: Mon Aug 24 17:36:25 2015 +0800 f2fs: avoid unneeded initializing when converting inline dentry When converting inline dentry, we will zero out target dentry page before duplicating data of inline dentry into target page, it become overhead since inline dentry size is not small. So this patch tries to remove unneeded initializing in the space of target dentry page. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/inline.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 6a6788576dac56135bf98ad974a038b0afb1a499 Author: Zhang Zhen Date: Mon Aug 24 10:41:32 2015 +0800 f2fs: atomically set inode->i_flags According to commit 5f16f3225b06 ("ext4: atomically set inode->i_flags in ext4_set_inode_flags()"). Signed-off-by: Zhang Zhen Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/inode.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f7409d0fae7a02ea6c8195f75ad73866d5dea617 Author: Jaegeuk Kim Date: Fri Aug 21 23:37:18 2015 -0700 f2fs: fix wrong pointer access during try_to_free_nids If we release the lock in list_for_each_entry_safe, we can lose the tmp pointer by alloc_nid. Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 80c545055dc7c1f7f487176fe0aac17896a4b7af Author: Jaegeuk Kim Date: Thu Aug 20 08:51:56 2015 -0700 f2fs: use __GFP_NOFAIL to avoid infinite loop __GFP_NOFAIL can avoid retrying the whole path of kmem_cache_alloc and bio_alloc. And, it also fixes the use cases of GFP_ATOMIC correctly. Suggested-by: Chao Yu Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 21 ++++++++------------- fs/f2fs/f2fs.h | 16 +++++----------- fs/f2fs/node.c | 4 ++-- fs/f2fs/segment.c | 2 +- 4 files changed, 16 insertions(+), 27 deletions(-) commit c0b4dffbc529244d3e4e3bd392f2bffa2d8531a7 Author: Arnaldo Carvalho de Melo Date: Mon Aug 24 13:33:14 2015 -0300 perf annotate: Reset the dso find_symbol cache when removing symbols The 'annotate' tool does some filtering in the entries in a DSO but forgot to reset the cache done in dso__find_symbol(), cauxing a SEGV: [root@zoo ~]# perf annotate netlink_poll perf: Segmentation fault -------- backtrace -------- perf[0x526ceb] /lib64/libc.so.6(+0x34960)[0x7faedfbe0960] perf(rb_erase+0x223)[0x499d63] perf[0x4213e9] perf[0x4bc123] perf[0x4bc621] perf[0x4bf26b] perf[0x4bc855] perf(perf_session__process_events+0x340)[0x4bddc0] perf(cmd_annotate+0x6bb)[0x421b5b] perf[0x479063] perf(main+0x60a)[0x42098a] /lib64/libc.so.6(__libc_start_main+0xf0)[0x7faedfbcbfe0] perf[0x420aa9] [0x0] [root@zoo ~]# Fix it by reseting the find cache when removing symbols. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Fixes: b685ac22b436 ("perf symbols: Add front end cache for DSO symbol lookup") Link: http://lkml.kernel.org/n/tip-b2y9x46y0t8yem1ive41zqyp@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 1 + tools/perf/util/dso.h | 2 ++ tools/perf/util/symbol.c | 10 ++++++++++ 3 files changed, 13 insertions(+) commit cebb053bd144d88a4c24b14dd8ac775d8e5972d5 Author: Thierry Reding Date: Fri Aug 1 15:50:44 2014 +0200 of: Add vendor prefix for Sharp Corporation Use "sharp" as the vendor prefix for Sharp Corporation in device tree compatible strings. Signed-off-by: Thierry Reding [robh: fix name to Sharp Corporation] Signed-off-by: Rob Herring Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit d179e22762fd38414c4108acedd5feca4cf7e0d8 Author: Masahiro Yamada Date: Fri Jul 24 14:18:46 2015 +0900 kbuild: fixdep: drop meaningless hash table initialization The clear_config() is called just once at the beginning of this program, but the global variable hashtab[] is already zero-filled at the start-up. Signed-off-by: Masahiro Yamada Signed-off-by: Michal Marek scripts/basic/fixdep.c | 19 ------------------- 1 file changed, 19 deletions(-) commit d721109611fb94aff53c2397859046e5f92f55ae Author: Masahiro Yamada Date: Fri Jul 24 14:18:45 2015 +0900 kbuild: fixdep: optimize code slightly If the target string matches "CONFIG_", move the pointer p forward. This saves several 7-chars adjustments. Signed-off-by: Masahiro Yamada Signed-off-by: Michal Marek scripts/basic/fixdep.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 5a688c455066c21c133bc8ffa7b11f8c66b7fe0b Author: Matt Redfearn Date: Thu Aug 20 11:30:32 2015 +0100 mfd: jz4740-adc: Init mask cache in generic IRQ chip The mask cache must be initialised in the generic IRQ chip, otherwise enabling one channel will actually enable all channels when the empty mask cache is written. Signed-off-by: Matt Redfearn Signed-off-by: Lee Jones drivers/mfd/jz4740-adc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a78ea195f77a8ed2c5f3108a8cdb9a26ebd474d8 Author: Javier Martinez Canillas Date: Thu Aug 20 09:07:22 2015 +0200 mfd: cros_ec: spi: Add OF match table The Documentation/devicetree/bindings/mfd/cros-ec.txt DT binding doc lists "google,cros-ec-spi" as a compatible string but the corresponding driver does not have an OF match table. Add the table to the driver so the SPI core can do an OF style match. Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/cros_ec_spi.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1e955bece28f0f464c2db03c7e12951cea65fab6 Author: Javier Martinez Canillas Date: Thu Aug 20 09:07:25 2015 +0200 mfd: stmpe: Add OF match table The Documentation/devicetree/bindings/mfd/stmpe.txt DT binding doc lists "st,stmpe[610|801|811|1601|2401|2403]" as valid compatible strings but the corresponding driver does not have an OF match table. Add the table to the driver so the SPI core can do an OF style match. Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/stmpe-spi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit aa60a8391337aa0f14ed890b237f5b8e6cadfbbf Author: Javier Martinez Canillas Date: Mon Aug 24 10:47:21 2015 +0200 mfd: max77686: Split out regulator part from the DT binding The Maxim MAX77686 PMIC is a multi-function device with regulators, clocks and a RTC. The DT bindings for the clocks are in a separate file but the bindings for the regulators are inside the mfd part. To make it consistent with the clocks portion of the binding and because is more natural to look for regulator bindings under the bindings/regulator sub-directory, split the regulator portion of the DT binding and add it as a separate file. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/max77686.txt | 60 ++---------------- .../devicetree/bindings/regulator/max77686.txt | 71 ++++++++++++++++++++++ 2 files changed, 75 insertions(+), 56 deletions(-) commit 00f1493e9e0c875f16623bdb088108ada6e7647e Author: Javier Martinez Canillas Date: Mon Aug 24 10:47:20 2015 +0200 mfd: Add DT binding for Maxim MAX77802 IC The MAX77802 is a chip that contains regulators, 2 32kHz clocks, a RTC and an I2C interface to program the individual components. The are already DT bindings for the regulators and clocks and these reference to a bindings/mfd/max77802.txt file, that didn't exist, for the details about the PMIC. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/max77802.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 00d689169dd088257de7ed218ff2c638bc5ad3b5 Author: Javier Martinez Canillas Date: Mon Aug 24 10:47:19 2015 +0200 mfd: max77686: Use a generic name for the PMIC node in the example The ePAPR standard says that: "the name of a node should be somewhat generic, reflecting the function of the device and not its precise programming model." So, change the max77686 binding document example to use a generic node name instead of using the chip's name. Suggested-by: Sergei Shtylyov Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/max77686.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 89bd794cf60760ef053d3694c6749f651c034e02 Author: Javier Martinez Canillas Date: Mon Aug 24 10:47:18 2015 +0200 mfd: max77686: Don't suggest in binding to use a deprecated property The regulator-compatible property from the regulator DT binding was deprecated. But the max77686 DT binding doc still suggest to use it instead of the regulator node name's which is the correct approach. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/max77686.txt | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit b9124a523017a53cce071451f5c38a0b77761534 Author: Javier Martinez Canillas Date: Wed Aug 19 13:19:53 2015 +0200 mfd: Add MFD_CROS_EC dependencies The MFD_CROS_EC symbol select CHROME_PLATFORMS and CROS_EC_PROTO but that caused a Kconfig unmet direct dependencies warning since these symbols could only be selected for X86 || ARM. The fix it, the CHROME_PLATFORMS dependencies were relexed on commit d12bbcd3ea44 ("platform/chrome: Don't make CHROME_PLATFORMS depends on X86 || ARM") but that was found to be wrong and the correct fix is to add the needed dependencies to the MFD_CROS_EC config symbol. There are only x86 and ARM based Chromebooks so to avoid showing up the config option on unsupported platforms, make the symbol depend on these architectures. Also add a || COMPILE_TEST so it can have build coverage on other platforms. Suggested-by: Geert Uytterhoeven Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/Kconfig | 1 + 1 file changed, 1 insertion(+) commit da935c0b6eeeac16de0a82cc1152fb0a9b5a11ef Author: Javier Martinez Canillas Date: Wed Aug 19 13:19:56 2015 +0200 mfd: cros_ec: Remove CROS_EC_PROTO dependency for SPI and I2C drivers The ChromeOS EC SPI and I2C transport drivers depends on CROS_EC_PROTO but MFD_CROS_EC select CROS_EC_PROTO instead. Mixing select and depends on is bad practice as it may lead to circular Kconfig dependencies. Since these drivers already depend on MFD_CROS_EC and that config option already selects CROS_EC_PROTO, there is no need to make them explicitly depend on CROS_EC_PROTO since that dependency is already met. Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 55e8dba1acc2e3e9d77226c3b08b25a02a0e3a3a Author: Tadeusz Struk Date: Sat Aug 22 08:29:30 2015 -0700 crypto: qat - silence a static checker warning Add range check for ring number. Reported-by: Dan Carpenter Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_transport.c | 4 ++++ 1 file changed, 4 insertions(+) commit 73613a8159ddbf5a9ead0c03174458fa8210bdf7 Author: Leonidas Da Silva Barbosa Date: Fri Aug 21 17:27:43 2015 -0300 crypto: vmx - Fixing opcode issue In build time vadduqm opcode is not being mapped correctly. Adding a new map in ppc-xlate to do this. Signed-off-by: Leonidas S Barbosa Signed-off-by: Herbert Xu drivers/crypto/vmx/ppc-xlate.pl | 1 + 1 file changed, 1 insertion(+) commit 9c4f9733e26f0d6977096fcafe71ea2ba9f0cd7c Author: Fabio Estevam Date: Fri Aug 21 13:52:00 2015 -0300 crypto: caam - Use the preferred style for memory allocations "The preferred form for passing a size of a struct is the following: p = kmalloc(sizeof(*p), ...); .... The preferred form for allocating a zeroed array is the following: p = kcalloc(n, sizeof(...), ...); " ,so do as suggested. Signed-off-by: Fabio Estevam Reviewed-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 2 +- drivers/crypto/caam/caamhash.c | 2 +- drivers/crypto/caam/caamrng.c | 2 +- drivers/crypto/caam/ctrl.c | 8 +++----- drivers/crypto/caam/jr.c | 12 +++++------- 5 files changed, 11 insertions(+), 15 deletions(-) commit a3c09550f0cbd9965e44a2dc62c85ff5db91f8ff Author: Fabio Estevam Date: Fri Aug 21 13:51:59 2015 -0300 crypto: caam - Propagate the real error code in caam_probe Instead of propagating a 'fake' error code, just propagate the real one in the case of caam_drv_identify_clk() failure. Signed-off-by: Fabio Estevam Reviewed-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 31f44d150791c3fe923399a1159320acc4a9b3b4 Author: Fabio Estevam Date: Fri Aug 21 13:51:58 2015 -0300 crypto: caam - Fix the error handling in caam_probe In the error path we should disable the resources that were previously acquired, so fix the error handling accordingly. Signed-off-by: Fabio Estevam Reviewed-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) commit 9f587fa29f7e8ed6b8885cff51a51ace3ad85152 Author: Horia Geant? Date: Fri Aug 21 18:53:20 2015 +0300 crypto: caam - fix writing to JQCR_MS when using service interface Most significant part of JQCR (Job Queue Control Register) contains bits that control endianness: ILE - Immediate Little Endian, DWS - Double Word Swap. The bits are automatically set by the Job Queue Controller HW. Unfortunately these bits are cleared in SW when submitting descriptors via the register-based service interface. >From LS1021A: JQCR_MS = 08080100 - before writing: ILE | DWS | SRC (JR0) JQCR_MS = 30000100 - after writing: WHL | FOUR | SRC (JR0) This would cause problems on little endian caam for descriptors containing immediata data or double-word pointers. Currently there is no problem since the only descriptors ran through this interface are the ones that (un)instantiate RNG. Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 27d868b5e6cfaee4fec66b388e4085ff94050fa7 Author: Keith Busch Date: Mon Aug 24 08:48:16 2015 -0500 PCI: Set MPS to match upstream bridge Firmware typically configures the PCIe fabric with a consistent Max Payload Size setting based on the devices present at boot. A hot-added device typically has the power-on default MPS setting (128 bytes), which may not match the fabric. The previous Linux default, in the absence of any "pci=pcie_bus_*" options, was PCIE_BUS_TUNE_OFF, in which we never touch MPS, even for hot-added devices. Add a new default setting, PCIE_BUS_DEFAULT, in which we make sure every device's MPS setting matches the upstream bridge. This makes it more likely that a hot-added device will work in a system with optimized MPS configuration. Note that if we hot-add a device that only supports 128-byte MPS, it still likely won't work because we don't reconfigure the rest of the fabric. Booting with "pci=pcie_bus_peer2peer" is a workaround for this because it sets MPS to 128 for everything. [bhelgaas: changelog, new default, rework for pci_configure_device() path] Tested-by: Keith Busch Tested-by: Jordan Hargrave Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas Acked-by: Yinghai Lu drivers/pci/pci.c | 2 +- drivers/pci/probe.c | 22 ++++++++++++++++++++-- drivers/pci/quirks.c | 3 ++- include/linux/pci.h | 9 +++++---- 4 files changed, 28 insertions(+), 8 deletions(-) commit 5166c20ef95be89d10ffe0140e74df5cf26e9786 Author: Will Deacon Date: Mon Aug 24 13:35:51 2015 +0100 arm64: makefile: fix perf_callchain.o kconfig dependency Commit 4b3dc9679cf7 ("arm64: force CONFIG_SMP=y and remove redundant #ifdefs") incorrectly resolved a conflict on arch/arm64/kernel/Makefile which resulted in a partial revert of 52da443ec4d0 ("arm64: perf: factor out callchain code"), leading to perf_callchain.o depending on CONFIG_HW_PERF_EVENTS instead of CONFIG_PERF_EVENTS. This patch restores the kconfig dependency for perf_callchain.o. Reported-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/kernel/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4a9a8cb3248b3b48a6049acaeaf23d4ad3712b9 Author: Dan Carpenter Date: Tue Aug 18 12:12:19 2015 +0300 i2c: xgene-slimpro: dma_mapping_error() doesn't return an error code The dma_mapping_error() function returns true if there is an error, it doesn't return an error code. We should return -ENOMEM. Signed-off-by: Dan Carpenter Reviewed-by: Axel Lin Signed-off-by: Wolfram Sang Cc: stable@kernel.org drivers/i2c/busses/i2c-xgene-slimpro.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 480b141abf7ffe630016dd4ced0fc57f105a05a9 Author: Javier Martinez Canillas Date: Wed Aug 19 13:19:57 2015 +0200 i2c: Replace I2C_CROS_EC_TUNNEL dependency The ChromeOS EC tunnel I2C bus driver depend on CROS_EC_PROTO but MFD_CROS_EC select CROS_EC_PROTO instead. Mixing select and depends on is bad practice as it may lead to circular Kconfig dependencies. Since the platform device that is matched with the I2C bus driver is registered by the ChromeOS EC mfd driver, I2C_CROS_EC_TUNNEL really depends on MFD_CROS_EC. And because this config option selects CROS_EC_PROTO, that dependency is met as well. So make the driver to depend on MFD_CROS_EC instead of CROS_EC_PROTO. Signed-off-by: Javier Martinez Canillas Signed-off-by: Wolfram Sang drivers/i2c/busses/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2cd9fbd0ed5ef12bf550c06126ebbe720574fc0e Author: Irina Tirdea Date: Wed Aug 12 17:31:34 2015 +0300 eeprom: at24: use i2c_smbus_read_i2c_block_data_or_emulated For i2c busses that support only SMBUS extensions, the eeprom at24 driver reads data from the device using the SMBus block, word or byte read protocols depending on availability. Replace the block read emulation from the driver with the i2c_smbus_read_i2c_block_data_or_emulated call from i2c core. Signed-off-by: Irina Tirdea Signed-off-by: Wolfram Sang drivers/misc/eeprom/at24.c | 37 ++++++------------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) commit 01eef96e37d77cd89156e5f51aab81a9d5c96539 Author: Irina Tirdea Date: Wed Aug 12 17:31:33 2015 +0300 i2c: core: Add support for best effort block read emulation There are devices that need to handle block transactions regardless of the capabilities exported by the adapter. For performance reasons, they need to use i2c read blocks if available, otherwise emulate the block transaction with word or byte transactions. Add support for a helper function that would read a data block using the best transfer available: I2C_FUNC_SMBUS_READ_I2C_BLOCK, I2C_FUNC_SMBUS_READ_WORD_DATA or I2C_FUNC_SMBUS_READ_BYTE_DATA. Signed-off-by: Irina Tirdea Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/i2c.h | 3 +++ 2 files changed, 60 insertions(+) commit 3f9c37a0c9a59db97ca5712eca7838b842949047 Author: Joachim Eastwood Date: Sun Aug 16 20:10:16 2015 +0200 i2c: lpc2k: add driver Add support for the I2C controller found on several NXP devices including LPC2xxx, LPC178x/7x and LPC18xx/43xx. The controller is implemented as a state machine and the driver act upon the state changes when the bus is accessed. The I2C controller supports master/slave operation, bus arbitration, programmable clock rate, and speeds up to 1 Mbit/s. Signed-off-by: Joachim Eastwood Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-lpc2k.txt | 33 ++ drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-lpc2k.c | 513 +++++++++++++++++++++ 4 files changed, 557 insertions(+) commit b3fdd32799d834e2626fae087906e886037350c6 Author: York Sun Date: Mon Aug 17 11:53:48 2015 -0700 i2c: mux: Add register-based mux i2c-mux-reg Based on i2c-mux-gpio driver, similarly the register-based mux switch from one bus to another by setting a single register. The register can be on PCIe bus, local bus, or any memory-mapped address. The endianness of such register can be specified in device tree if used, or in platform data. Signed-off-by: York Sun Acked-by: Alexander Sverdlin Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-mux-reg.txt | 74 ++++++ drivers/i2c/muxes/Kconfig | 11 + drivers/i2c/muxes/Makefile | 1 + drivers/i2c/muxes/i2c-mux-reg.c | 294 +++++++++++++++++++++ include/linux/platform_data/i2c-mux-reg.h | 44 +++ 5 files changed, 424 insertions(+) commit 7a59b00a0906945f7fe25a10332ac0820491a0c3 Author: Wolfram Sang Date: Sat Aug 8 13:35:18 2015 +0200 i2c: dt: describe generic bindings Start a new file which describes the generic bindings used for I2C with device tree. So we have a central place to look for them, increase visibility of them, and hopefully reduce the amount of custom properties introduced. Signed-off-by: Wolfram Sang Reviewed-by: Vaibhav Hiremath Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/i2c.txt | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit c6909d6f6f1082b8bb4c1b0ef3460a005c9dcb4d Author: Wolfram Sang Date: Wed Aug 5 21:12:54 2015 +0200 i2c: slave: print warning if slave flag not set Address collisions will be rare, but we should let the user know that slaves have their own address space nonetheless. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 4 ++++ 1 file changed, 4 insertions(+) commit cfa0327b0d03091e0c47249c080e50e287be762d Author: Wolfram Sang Date: Mon Jul 27 14:03:38 2015 +0200 i2c: support 10 bit and slave addresses in sysfs 'new_device' We now have seperate address spaces for 10 bit and we-are-slave clients. Update the sysfs device instantiation method to support these types by accepting the address offsets that are assigned to the extra address spaces. Update the documentation, too. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang Documentation/i2c/slave-interface | 9 ++++++--- Documentation/i2c/ten-bit-addresses | 4 ++++ drivers/i2c/i2c-core.c | 12 +++++++++++- 3 files changed, 21 insertions(+), 4 deletions(-) commit 9bccc70a127cfe2a13e34d6b6e7300caae113f8f Author: Wolfram Sang Date: Fri Jul 17 14:48:56 2015 +0200 i2c: take address space into account when checking for used addresses It is not enough to compare the plain address value, we also need to check the flags enabling a different address space. E.g. it is valid to have address 0x50 as a 7-bit address and 0x050 as 10-bit address on the same bus. Same for addresses when we are the slave. Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b4e2f6ac1281cd3e066919cc762eef4924e9fcc5 Author: Wolfram Sang Date: Tue May 19 21:04:40 2015 +0200 i2c: apply DT flags when probing Check for slave and 10-bit flags when probing and mark the client when found. Improve the address validity check, too Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit c4019b7040eaf88f440ce5212e055a4f19b1b541 Author: Wolfram Sang Date: Fri Jul 17 12:50:06 2015 +0200 i2c: make address check indpendent from client struct We want to use this function with struct boardinfo soon, so let's just pass the parameters really needed. We also extend the type of addr, so more types can be input. Remove a superfluous dangling comment while here. Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 66be6056eba80690bb7fa3d983c21494e1950bea Author: Wolfram Sang Date: Fri Jul 17 12:43:22 2015 +0200 i2c: rename address check functions The current naming is based on the arguments of the functions and not on what they do. Even I as the maintainer find this confusing, so let's rename them to something more descriptive. Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit da899f55b359225f85e154765baaddb13ec436ca Author: Wolfram Sang Date: Mon May 18 21:09:12 2015 +0200 i2c: apply address offset for slaves, too We want a separate address range for being an I2C slave. Add an offset of 0x1000, so it can be combined with ten bit addresses as well. Add a separate function to create the address value, we will need it later in other places. Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) commit c5ebb387f4e6b2dd7c74d71caf7b696834d0c887 Author: Wolfram Sang Date: Tue May 19 17:44:31 2015 +0200 i2c: add a flag to mark clients as slaves And update indentation with one more tab, sigh... Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang include/linux/i2c.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit f5005f7835e0da9ea6f203f8acc356bef9b331da Author: Wolfram Sang Date: Tue May 19 17:40:55 2015 +0200 dt-bindings: add header for generic I2C flags in bindings Tested-by: Andrey Danin Acked-by: Stephen Warren Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang include/dt-bindings/i2c/i2c.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit c9b57724b38d4c1555ee49418be3d76801e3327c Author: Benjamin Tissoires Date: Fri Aug 21 10:18:08 2015 -0400 HID: quirks: add QUIRK_NOGET for an other TPV touchscreen Looks like 0x8882 needs the same quirk than 0x8883. Given that both devices claim they are "TPV OpticalTouchScreen" rename the 0x8883 to add its PID in the #define. Reported-by: Blaine Lee Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-ids.h | 3 ++- drivers/hid/usbhid/hid-quirks.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 2a03c025fdea25a491c359b31d8a8c8d452b06d0 Author: Fabio Estevam Date: Thu Aug 13 23:43:19 2015 -0300 ARM: rockchip: pm: Fix PTR_ERR() argument PTR_ERR should access the value just tested by IS_ERR. The semantic patch that makes this change is available in scripts/coccinelle/tests/odd_ptr_err.cocci. Signed-off-by: Fabio Estevam Reviewed-by: Matthias Brugger Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0df9d2eae5e1092b07eaab6b989c2ff14115cab5 Author: Takeshi Kihara Date: Mon Jul 20 01:39:59 2015 +0900 mmc: tmio: Fix timeout value for command request Fix the problem which timeout occurs at the time of command request with several cards. The timeout value was insufficient as a verification of several cards, so it was changed 5 seconds from 2 seconds. Signed-off-by: Takeshi Kihara Signed-off-by: Yoshihiro Kaneko Signed-off-by: Ulf Hansson drivers/mmc/host/tmio_mmc_pio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 05c441efcc9796dd27451b9d87f5b22b8ebcdb2b Author: ludovic.desroches@atmel.com Date: Wed Jul 29 16:22:48 2015 +0200 MAINTAINERS: add entry for Atmel sdhci-of-at91 driver Add an entry for Atmel SDMMC device. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit bb5f8ea4d5149f3dec6f7cd24c040c52bfc0cdbd Author: ludovic.desroches@atmel.com Date: Wed Jul 29 16:22:47 2015 +0200 mmc: sdhci-of-at91: introduce driver for the Atmel SDMMC Introduce driver for he Atmel SDMMC available on sama5d2. It is a sdhci compliant controller. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson .../devicetree/bindings/mmc/sdhci-atmel.txt | 21 +++ drivers/mmc/host/Kconfig | 8 + drivers/mmc/host/Makefile | 1 + drivers/mmc/host/sdhci-of-at91.c | 192 +++++++++++++++++++++ 4 files changed, 222 insertions(+) commit 5497159c460fadf0d8190b6ef144ec22fa26aa6b Author: ludovic.desroches@atmel.com Date: Wed Jul 29 16:22:46 2015 +0200 mmc: sdhci: switch from programmable clock mode to divided one if needed In programmable mode, if the clock frequency is too high, the divider can be too small to meet the clock frequency requirement especially to init the SD card. In this case, switch to the divided clock mode. Signed-off-by: Ludovic Desroches Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit 34ba2c4247e5c4b1542b1106e156af324660c4f0 Author: Ard Biesheuvel Date: Tue Aug 18 10:34:42 2015 +0100 arm64: set MAX_MEMBLOCK_ADDR according to linear region size The linear region size of a 39-bit VA kernel is only 256 GB, which may be insufficient to cover all of system RAM, even on platforms that have much less than 256 GB of memory but which is laid out very sparsely. So make sure we clip the memory we will not be able to map before installing it into the memblock memory table, by setting MAX_MEMBLOCK_ADDR accordingly. Reviewed-by: Catalin Marinas Tested-by: Stuart Yoder Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/include/asm/memory.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 8eafeb48022816513abc4f440bdad4c350fe81a3 Author: Ard Biesheuvel Date: Tue Aug 18 10:34:41 2015 +0100 of/fdt: make memblock maximum physical address arch configurable When parsing the memory nodes to populate the memblock memory table, we check against high and low limits and clip any memory that exceeds either one of them. However, for arm64, the high limit of (phys_addr_t)~0 is not very meaningful, since phys_addr_t is 64 bits (i.e., no limit) but there may be other constraints that limit the memory ranges that we can support. So rename MAX_PHYS_ADDR to MAX_MEMBLOCK_ADDR (for clarity) and only define it if the arch does not supply a definition of its own. Acked-by: Rob Herring Reviewed-by: Catalin Marinas Tested-by: Stuart Yoder Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon drivers/of/fdt.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 5d3c2c352998fdefdc62795249cfc7311cf36df9 Author: Alexander Kuleshov Date: Sun Aug 23 14:24:44 2015 +0100 arm64: Fix source code file path in comments Architecture specific code for i386 and x86_64 was unified and merged to the arch/x86. This patch fix old path of x86 architecture in a comment from the arch/arm64/include/asm/fixmap.h. Signed-off-by: Alexander Kuleshov Signed-off-by: Will Deacon arch/arm64/include/asm/fixmap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b9eaa5659b32cf6c85a492d2e3bfa7a3a413144 Author: Ben Hutchings Date: Tue Jun 30 17:53:59 2015 +0100 pinctrl: sh-pfc: Implement pinconf power-source param for voltage switching The pfc in the R8A7790 (and probably others in the R-Car gen 2 family) supports switching SDHI signals between 3.3V and 1.8V nominal voltage, and the SD driver should do that when switching to and from UHS modes. Add a flag for pins that have configurable I/O voltage and SoC operations to get and set the nominal voltage. Implement the pinconf power-source parameter using these operations. Signed-off-by: Ben Hutchings Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij .../bindings/pinctrl/renesas,pfc-pinctrl.txt | 4 +- drivers/pinctrl/sh-pfc/pinctrl.c | 44 +++++++++++++++++++++- drivers/pinctrl/sh-pfc/sh_pfc.h | 5 +++ 3 files changed, 50 insertions(+), 3 deletions(-) commit 6c310c46efeae99a1569947b8c60d4aab36bd61c Author: Vinod Koul Date: Mon Aug 24 13:43:14 2015 +0530 dmaengine: sort the dw Kconfig Signed-off-by: Vinod Koul drivers/dma/dw/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3c21619077beb40ae3e49eb868798377e69dd940 Author: Vinod Koul Date: Mon Aug 24 13:43:14 2015 +0530 dmaengine: sort the Kconfig dmaengine Kconfig grew over the years, unfortunately without any order to it. So order by core, driver and client sections, and sort these sections alphabetically Signed-off-by: Vinod Koul drivers/dma/Kconfig | 628 ++++++++++++++++++++++++++-------------------------- 1 file changed, 317 insertions(+), 311 deletions(-) commit 7e97229b3920568067feefc8b49a98534c1a908c Author: Vinod Koul Date: Mon Aug 24 13:43:14 2015 +0530 dmaengine: sort the makefile dmaengine makefile grew over the years, unfortunately without any order to it. So order by core, dmatest and driver sections and sort these sections alphabetically Signed-off-by: Vinod Koul drivers/dma/Makefile | 88 ++++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 41 deletions(-) commit e2d6cf7f3696c87546f7fefe9bac79ee09db4bef Author: David Weinehall Date: Fri Aug 21 16:52:01 2015 +0300 drm/i915: Allow parsing of variable size child device entries from VBT VBT version 196 increased the size of common_child_dev_config. The parser code assumed that the size of this structure would not change. The modified code now copies the amount needed based on the VBT version, and emits a debug message if the VBT version is unknown (too new); since the struct config block won't shrink in newer versions it should be harmless to copy the maximum known size in such cases, so that's what we do, but emitting the warning is probably sensible anyway. In the longer run it might make sense to modify the parser code to use a version/feature mapping, rather than hardcoding things like this, but for now the variants are fairly manageable. This fixes a regression introduced in commit 75067ddecf21271631bc018d2fb23ddd09b66aae Author: Antti Koskipaa Date: Fri Jul 10 14:10:55 2015 +0300 drm/i915: Per-DDI I_boost override since that commit changed the child device config size without updating the checks and memcpy. v2: Stricter size checks v3 by Jani: - Keep the checks strict, and warnigns verbose, but keep going anyway. - Take care to copy the max amount of child device config we can. - Fix the messages. Signed-off-by: David Weinehall Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_bios.c | 37 +++++++++++++++++++++++++++++++++---- drivers/gpu/drm/i915/intel_bios.h | 6 ++++-- 2 files changed, 37 insertions(+), 6 deletions(-) commit af7080f555e556094762c03c31cabdbe072b16b6 Author: Thulasimani,Sivakumar Date: Tue Aug 18 11:07:59 2015 +0530 drm/i915: fix link rates reported for SKL This patch fixes the bug that SKL SKUs before B0 might return HBR2 as supported even though it is not supposed to be enabled on such platforms. v2: optimize if else condition (Jani) Reviewed-by: Ville Syrjälä Signed-off-by: Sivakumar Thulasimani [Jani: minor whitespace fix.] Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_dp.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 6cc38acaaa995ad229447d87a3c5a181ba0cc161 Author: Jani Nikula Date: Tue Aug 18 14:28:55 2015 +0300 drm/i915: fix VBT parsing for SDVO child device mapping commit 75067ddecf21271631bc018d2fb23ddd09b66aae Author: Antti Koskipaa Date: Fri Jul 10 14:10:55 2015 +0300 drm/i915: Per-DDI I_boost override increased size of union child_device_config without taking into account the size check in parse_sdvo_device_mapping(). Switch the function over to using the legacy struct only. Fixes: 75067ddecf21 ("drm/i915: Per-DDI I_boost override") Cc: Antti Koskipaa Cc: David Weinehall Reviewed-by: Ville Syrjälä Tested-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_bios.c | 50 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 3732ce72b45a2a145803558758821bf198751276 Merge: e829d7e c13dcf9 Author: Dave Airlie Date: Mon Aug 24 16:36:42 2015 +1000 Merge tag 'v4.2-rc8' into drm-next Linux 4.2-rc8 Backmerge required for Intel so they can fix their -next tree up properly. commit 54cf7be992fe86571a3f07b96446cd5334b014ab Author: Shaohui Xie Date: Fri Aug 21 15:29:29 2015 +0800 net: phy: add interrupt support for aquantia phy By implementing config_intr & ack_interrupt, now the phy can support link connect/disconnect interrupt. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/aquantia.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit 50e48bd0673180311874d0c1bd88505eefd75c4e Author: Alexander Kuleshov Date: Wed Aug 12 13:14:59 2015 +0600 m68k/coldfire: use PFN_DOWN macro Replace ((x) >> PAGE_SHIFT) with the predefined PFN_DOWN macro. Signed-off-by: Alexander Kuleshov Signed-off-by: Greg Ungerer arch/m68k/coldfire/m54xx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5bbc08fb0f1457ceef388739b48c72675246639c Author: Viresh Kumar Date: Thu Jul 16 16:56:20 2015 +0530 m68k/coldfire/pit: Migrate to new 'set-state' interface Migrate m68k driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in ->set_mode(RESUME) and so tick_resume() isn't implemented. Cc: Greg Ungerer Cc: Geert Uytterhoeven Cc: linux-m68k@lists.linux-m68k.org Signed-off-by: Viresh Kumar Signed-off-by: Greg Ungerer arch/m68k/coldfire/pit.c | 66 ++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 36 deletions(-) commit e829d7ef9f17d7b84d4c3d110ecd4b7b2bcba865 Author: Mathieu Larouche Date: Fri Aug 21 09:24:13 2015 -0400 drm/mgag200: Add support for a new rev of G200e - Added PLL algorithm for a new rev of G200e - Removed the bandwidth limitation for the new G200e Signed-off-by: Mathieu Larouche Signed-off-by: Dave Airlie drivers/gpu/drm/mgag200/mgag200_mode.c | 112 +++++++++++++++++++++++++-------- 1 file changed, 87 insertions(+), 25 deletions(-) commit 6d857c18aefdec782ba1db578a390fbac5145107 Author: Mathieu Larouche Date: Fri Aug 21 09:24:05 2015 -0400 drm/mgag200: Add support for a new G200eW3 chipset - Added support for the new deviceID for G200eW3 - Added PLL algorithm for the G200eW3 - Added some initialization code for G200eW3 Signed-off-by: Mathieu Larouche Signed-off-by: Dave Airlie drivers/gpu/drm/mgag200/mgag200_drv.c | 1 + drivers/gpu/drm/mgag200/mgag200_drv.h | 1 + drivers/gpu/drm/mgag200/mgag200_i2c.c | 1 + drivers/gpu/drm/mgag200/mgag200_main.c | 9 ++- drivers/gpu/drm/mgag200/mgag200_mode.c | 100 ++++++++++++++++++++++++--------- 5 files changed, 85 insertions(+), 27 deletions(-) commit d9893d1351e11f565940df6cd6f9bf13aac27a3a Merge: 751a587 29e7692 Author: David S. Miller Date: Sun Aug 23 20:42:57 2015 -0700 Merge tag 'nfc-next-4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next Samuel Ortiz says: ==================== NFC 4.3 pull request This is the NFC pull request for 4.3. With this one we have: - A new driver for Samsung's S3FWRN5 NFC chipset. In order to properly support this driver, a few NCI core routines needed to be exported. Future drivers like Intel's Fields Peak will benefit from this. - SPI support as a physical transport for STM st21nfcb. - An additional netlink API for sending replies back to userspace from vendor commands. - 2 small fixes for TI's trf7970a - A few st-nci fixes. ==================== Signed-off-by: David S. Miller commit 275d7d44d802ef271a42dc87ac091a495ba72fc5 Author: Peter Zijlstra Date: Thu Aug 20 10:34:59 2015 +0930 module: Fix locking in symbol_put_addr() Poma (on the way to another bug) reported an assertion triggering: [] module_assert_mutex_or_preempt+0x49/0x90 [] __module_address+0x32/0x150 [] __module_text_address+0x16/0x70 [] symbol_put_addr+0x29/0x40 [] dvb_frontend_detach+0x7d/0x90 [dvb_core] Laura Abbott produced a patch which lead us to inspect symbol_put_addr(). This function has a comment claiming it doesn't need to disable preemption around the module lookup because it holds a reference to the module it wants to find, which therefore cannot go away. This is wrong (and a false optimization too, preempt_disable() is really rather cheap, and I doubt any of this is on uber critical paths, otherwise it would've retained a pointer to the actual module anyway and avoided the second lookup). While its true that the module cannot go away while we hold a reference on it, the data structure we do the lookup in very much _CAN_ change while we do the lookup. Therefore fix the comment and add the required preempt_disable(). Reported-by: poma Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Rusty Russell Fixes: a6e6abd575fc ("module: remove module_text_address()") Cc: stable@kernel.org kernel/module.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 751a587ac9f9a8bf314590fbac32d9e418060c5a Author: Jiri Benc Date: Fri Aug 21 12:41:14 2015 +0200 route: fix breakage after moving lwtunnel state __recnt and related fields need to be in its own cacheline for performance reasons. Commit 61adedf3e3f1 ("route: move lwtunnel state to dst_entry") broke that on 32bit archs, causing BUILD_BUG_ON in dst_hold to be triggered. This patch fixes the breakage by moving the lwtunnel state to the end of dst_entry on 32bit archs. Unfortunately, this makes it share the cacheline with __refcnt and may affect performance, thus further patches may be needed. Reported-by: kbuild test robot Fixes: 61adedf3e3f1 ("route: move lwtunnel state to dst_entry") Signed-off-by: Jiri Benc Signed-off-by: David S. Miller include/net/dst.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 31fbde9967330404175a06df15bdb24d671d4475 Merge: c5f98b5 7a4b6c8 Author: David S. Miller Date: Sun Aug 23 16:28:18 2015 -0700 Merge tag 'linux-can-next-for-4.3-20150820' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next Marc Kleine-Budde says: ==================== this is a pull request of a two patches for net-next. The first patch is by Nik Nyby and fixes a typo in a function name. The second patch by Lucas Stach demotes register output to debug level. ==================== Signed-off-by: David S. Miller commit c5f98b5669b875564f992e1398f5a4407dba8b07 Merge: 7f629be 2be80c2 Author: David S. Miller Date: Sun Aug 23 16:14:46 2015 -0700 Merge branch 'tipc-failover-fixes' Jon Maloy says: ==================== tipc: fix link failover/synch problems We fix three problems with the new link failover/synch implementation, which was introduced earlier in this release cycle. They are all related to situations where there is a very short interval between the disabling and enabling of interfaces. ==================== Signed-off-by: David S. Miller commit 2be80c2d87de789550982e74a11e9f9ff5940845 Author: Jon Paul Maloy Date: Thu Aug 20 02:12:56 2015 -0400 tipc: fix stale link problem during synchronization Recent changes to the link synchronization means that we can now just drop packets arriving on the synchronizing link before the synch point is reached. This has lead to significant simplifications to the implementation, but also turns out to have a flip side that we need to consider. Under unlucky circumstances, the two endpoints may end up repeatedly dropping each other's packets, while immediately asking for retransmission of the same packets, just to drop them once more. This pattern will eventually be broken when the synch point is reached on the other link, but before that, the endpoints may have arrived at the retransmission limit (stale counter) that indicates that the link should be broken. We see this happen at rare occasions. The fix for this is to not ask for retransmissions when a link is in state LINK_SYNCHING. The fact that the link has reached this state means that it has already received the first SYNCH packet, and that it knows the synch point. Hence, it doesn't need any more packets until the other link has reached the synch point, whereafter it can go ahead and ask for the missing packets. However, because of the reduced traffic on the synching link that follows this change, it may now take longer to discover that the synch point has been reached. We compensate for this by letting all packets, on any of the links, trig a check for synchronization termination. This is possible because the packets themselves don't contain any information that is needed for discovering this condition. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 3 ++- net/tipc/node.c | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) commit 5ae2f8e6857968d6dddbd3879ed0a32b860e02d1 Author: Jon Paul Maloy Date: Thu Aug 20 02:12:55 2015 -0400 tipc: interrupt link synchronization when a link goes down When we introduced the new link failover/synch mechanism in commit 6e498158a827fd515b514842e9a06bdf0f75ab86 ("tipc: move link synch and failover to link aggregation level"), we missed the case when the non-tunnel link goes down during the link synchronization period. In this case the tunnel link will remain in state LINK_SYNCHING, something leading to unpredictable behavior when the failover procedure is initiated. In this commit, we ensure that the node and remaining link goes back to regular communication state (SELF_UP_PEER_UP/LINK_ESTABLISHED) when one of the parallel links goes down. We also ensure that we don't re-enter synch mode if subsequent SYNCH packets arrive on the remaining link. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 2 +- net/tipc/node.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) commit 17b2063077a7478e5fd3c34b04a059dbb8474638 Author: Jon Paul Maloy Date: Thu Aug 20 02:12:54 2015 -0400 tipc: eliminate risk of premature link setup during failover When a link goes down, and there is still a working link towards its destination node, a failover is initiated, and the failed link is not allowed to re-establish until that procedure is finished. To ensure this, the concerned link endpoints are set to state LINK_FAILINGOVER, and the node endpoints to NODE_FAILINGOVER during the failover period. However, if the link reset is due to a disabled bearer, the corres- ponding link endpoint is deleted, and only the node endpoint knows about the ongoing failover. Now, if the disabled bearer is re-enabled during the failover period, the discovery mechanism may create a new link endpoint that is ready to be established, despite that this is not permitted. This situation may cause both the ongoing failover and any subsequent link synchronization to fail. In this commit, we ensure that a newly created link goes directly to state LINK_FAILINGOVER if the corresponding node state is NODE_FAILINGOVER. This eliminates the problem described above. Furthermore, we tighten the criteria for which packets are allowed to end a failover state in the function tipc_node_check_state(). By checking that the receiving link is up and running, instead of just checking that it is not in failover mode, we eliminate the risk that protocol packets from the re-created link may cause the failover to be prematurely terminated. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/node.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7f629be158a93e1b8f882c13c098d043f68cad9c Merge: 1728369 4149379 Author: David S. Miller Date: Sun Aug 23 16:08:54 2015 -0700 Merge branch 'nps_enet_fixes' Noam Camus says: ==================== *** nps_enet fixups *** Change v2 TX done is handled back with NAPI poll. Change v1 This patch set is a bunch of fixes to make nps_enet work correctly with all platforms, i.e. real device, emulation system, and simulation system. The main trigger for this patch set was that in our emulation system the TX end interrupt is "edge-sensitive" and therefore we cannot use the cause register since it is not sticky. Also: TX is handled during HW interrupt context and not NAPI job. race with TX done was fixed. added acknowledge for TX when device is "level sensitive". enable drop of control frames which is not needed for regular usage. So most of this patch set is about TX handling, which is now more complete. ==================== Signed-off-by: David S. Miller commit 41493795a4c18170fdf27c0373d386b4039b24df Author: Noam Camus Date: Thu Aug 20 08:00:05 2015 +0300 NET: nps_enet: minor namespace cleanup We define buf_int_enable in the minimal namespace it is used. Signed-off-by: Noam Camus Signed-off-by: David S. Miller drivers/net/ethernet/ezchip/nps_enet.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 3d99b74ab3c4b7e529d5820ccadabfb81085f020 Author: Noam Camus Date: Thu Aug 20 08:00:04 2015 +0300 NET: nps_enet: TX done acknowledge. This is needed for when TX done interrupt is in "level mode". For example it is true for some simulators of this device. Signed-off-by: Noam Camus Signed-off-by: David S. Miller drivers/net/ethernet/ezchip/nps_enet.c | 3 +++ 1 file changed, 3 insertions(+) commit de6715677aaa5e9ed27dab1f6ca6597b74a3f7bc Author: Noam Camus Date: Thu Aug 20 08:00:03 2015 +0300 NET: nps_enet: drop control frames We set controller to drop control frames and not trying to pass them on. This is only needed for debug reasons. Signed-off-by: Noam Camus Signed-off-by: David S. Miller drivers/net/ethernet/ezchip/nps_enet.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 93fcf83eb953d9ca2d3c51ff7f87095f0dd43511 Author: Noam Camus Date: Thu Aug 20 08:00:02 2015 +0300 NET: nps_enet: TX done race condition We need to set tx_skb pointer before send frame. If we receive interrupt before we set pointer we will try to free SKB with wrong pointer. Now we are sure that SKB pointer will never be NULL during handling TX done and check is removed. Signed-off-by: Noam Camus Signed-off-by: David S. Miller drivers/net/ethernet/ezchip/nps_enet.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 0dd20f3ce04e75521bd3f9867ecbc852ab348912 Author: Noam Camus Date: Thu Aug 20 08:00:01 2015 +0300 NET: nps_enet: replace use of cause register When interrupt is received we read directly from control register for RX/TX instead of reading cause register since this register fails to indicate TX done when TX interrupt is "edge mode". Signed-off-by: Noam Camus Signed-off-by: David S. Miller drivers/net/ethernet/ezchip/nps_enet.c | 9 +++++---- drivers/net/ethernet/ezchip/nps_enet.h | 20 -------------------- 2 files changed, 5 insertions(+), 24 deletions(-) commit 1728369e8c57f27e0374f4702cbfdb9196bc586b Merge: 9a873c7 2701366 Author: David S. Miller Date: Sun Aug 23 15:59:57 2015 -0700 Merge branch 'gro_tunnels' Tom Herbert says: ==================== gro: Fixes for tunnels and GRO This patch set addresses some issue related to tunneling and GRO: - Fix remote checksum offload to properly deal with frag0 in GRO. - Add support for GRO at VXLAN tunnel (call gro_cells) Testing: Ran one netperf TCP_STREAM to highlight impact of different configurations: GUE Zero UDP checksum 4628.42 MBps UDP checksums enabled 6800.51 MBps UDP checksums and remote checksum offload 7663.82 MBps UDP checksums and remote checksum offload using no-partial 7287.25 MBps VXLAN Zero UDP checksum 4112.02 UDP checksums enabled 6785.80 MBps UDP checksums and remote checksum offload 7075.56 MBps v2: - Drop "gro: Pull headers into skb head for 1st skb in gro list" from patch set - In vxlan_remcsum and gue_remcsum return immediately if remcsum processing was already done - Add gro callbacks for sit offload - Use WARN_ON_ONCE if we get a GUE protocol that does not have GRO offload support v3: - Don't restore gro callbacks for sit offload ==================== Signed-off-by: David S. Miller commit 270136613bf7306e2b83457628e2b2f6c6be3989 Author: Tom Herbert Date: Wed Aug 19 17:07:34 2015 -0700 fou: Do WARN_ON_ONCE in gue_gro_receive for bad proto callbacks Do WARN_ON_ONCE instead of WARN_ON in gue_gro_receive when the offload callcaks are bad (either don't exist or gro_receive is not specified). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/ipv4/fou.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 58ce31cca1ffe057f4744c3f671e3e84606d3d4a Author: Tom Herbert Date: Wed Aug 19 17:07:33 2015 -0700 vxlan: GRO support at tunnel layer Add calls to gro_cells infrastructure to do GRO when receiving on a tunnel. Testing: Ran 200 netperf TCP_STREAM instance - With fix (GRO enabled on VXLAN interface) Verify GRO is happening. 9084 MBps tput 3.44% CPU utilization - Without fix (GRO disabled on VXLAN interface) Verified no GRO is happening. 9084 MBps tput 5.54% CPU utilization Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/vxlan.c | 9 +++++++-- include/net/vxlan.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) commit b7fe10e5ebac2a3f37e95535e616494b65fa020f Author: Tom Herbert Date: Wed Aug 19 17:07:32 2015 -0700 gro: Fix remcsum offload to deal with frags in GRO The remote checksum offload GRO did not consider the case that frag0 might be in use. This patch fixes that by accessing headers using the skb_gro functions and not saving offsets relative to skb->head. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller drivers/net/vxlan.c | 23 +++++++++-------------- include/linux/netdevice.h | 44 ++++++++++++++++++++++++++++++++------------ net/ipv4/fou.c | 28 ++++++++++++---------------- 3 files changed, 53 insertions(+), 42 deletions(-) commit 9a873c71e91cabf4c10fd9bbd8358c22deaf6c9e Author: Chas Williams <3chas3@gmail.com> Date: Wed Aug 19 19:14:20 2015 -0400 net/xen-netfront: only clean up queues if present If you simply load and unload the module without starting the interfaces, the queues are never created and you get a bad pointer dereference. Signed-off-by: Chas Williams <3chas3@gmail.com> Signed-off-by: David S. Miller drivers/net/xen-netfront.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f5117ce4f6a16fa2a02ceff9c337cfffca8b75f2 Author: Vivien Didelot Date: Wed Aug 19 18:54:55 2015 -0400 net: dsa: mv88e6xxx: set 802.1Q mode to Fallback The current Secure port mode requires the port-based VLANs to also be valid in the 802.1Q VLAN Table Unit. The current hardware bridging support only configures the port-based VLANs, thus is broken. A new patchset is required to adapt the hardware bridging code to fully support the Secure port mode. In the meantime, change the 802.1Q mode of every ports to Fallback, which filtering is more permissive, and doesn't add this restriction to handle port-based and tagged-based VLANs. Fixes: 8efdda4a1b60 ("net: dsa: mv88e6xxx: use port 802.1Q mode Secure") Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f007492964c125cb3e88a51ba2e50c3b44d33ae0 Author: Jonathan Corbet Date: Sun Aug 23 13:35:23 2015 -0600 kernel-doc: ignore unneeded attribute information The kernel-doc script gets confused by __attribute__(()) strings in structures, so just clean the out. Also ignore the CRYPTO_MINALIGN_ATTR macro used in the crypto subsystem. Signed-off-by: Jonathan Corbet scripts/kernel-doc | 2 ++ 1 file changed, 2 insertions(+) commit b5ac1fb2717e48177d3f73f9e4c9b556c0a24c6b Author: Vincent Bernat Date: Sat Aug 15 14:07:44 2015 +0200 9p: fix return code of read() when count is 0 When reading 0 bytes from an empty file on a 9P filesystem, the return code of read() was not 0 as expected due to an unitialized err variable. Tested with this simple program: #include #include #include #include #include int main(int argc, const char **argv) { assert(argc == 2); char buffer[256]; int fd = open(argv[1], O_RDONLY|O_NOCTTY); assert(fd >= 0); assert(read(fd, buffer, 0) == 0); return 0; } Signed-off-by: Vincent Bernat Signed-off-by: Eric Van Hensbergen fs/9p/vfs_file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb9af418598b8f388844e1849014c689a048ce54 Author: Fabian Frederick Date: Fri Jun 5 19:09:35 2015 +0200 9p: remove unused option Opt_trans Commit 8a0dc95fd976 ("9p: transport API reorganization") removed Opt_trans in tokens not in enum. Signed-off-by: Fabian Frederick Signed-off-by: Eric Van Hensbergen fs/9p/v9fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25cf68da08389bb107e5cba2cbfb3b6e4a246095 Author: Paul Gortmaker Date: Fri Aug 21 16:27:49 2015 -0400 drivers/dma: make mv_xor.c driver explicitly non-modular The Kconfig for this driver is currently: config MV_XOR bool "Marvell XOR engine support" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We leave some tags like MODULE_AUTHOR for documentation purposes. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code. Cc: Vinod Koul Cc: Dan Williams Cc: dmaengine@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 36 +++--------------------------------- 1 file changed, 3 insertions(+), 33 deletions(-) commit 0e3b67b348b838d519b5d9ff30261f471d6371f2 Author: Lars-Peter Clausen Date: Thu Aug 20 17:39:13 2015 +0200 dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller Add support for the Analog Devices AXI-DMAC DMA controller. This controller is a soft peripheral that can be instantiated in a FPGA and is often used in Analog Devices' reference designs for FPGA platforms. The peripheral has various configuration options that can be selected at synthesis time and influence the supported features of the instantiated peripheral, those options are represented as device-tree properties to allow the driver to behave accordingly. The peripheral has a zero latency architecture, which means it is possible to switch from one to the next descriptor without any delay. This is archived by having a internal queue which can hold multiple descriptors. The driver supports this, which means it will submit new descriptors directly to the hardware until the queue is full and not wait for a descriptor to complete before the next one is submitted. Interrupts are used for the descriptor queue flow control. Currently the driver supports SG, cyclic and interleaved slave DMA. Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul MAINTAINERS | 6 + drivers/dma/Kconfig | 10 + drivers/dma/Makefile | 1 + drivers/dma/dma-axi-dmac.c | 691 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 708 insertions(+) commit 43bcad2bb485f053661e5cfe306c34178c6651c7 Author: Lars-Peter Clausen Date: Thu Aug 20 17:39:12 2015 +0200 devicetree: Add bindings documentation for Analog Devices AXI-DMAC Add the devicetree descriptor for the Analog Devices AXI-DMAC DMA controller. This is a soft peripheral used in FPGAs and the bindings describe how it is connected to the system (clock, interrupt, memory map) as well as the configuration options that were used when the peripheral was instantiated. Signed-off-by: Lars-Peter Clausen Signed-off-by: Vinod Koul .../devicetree/bindings/dma/adi,axi-dmac.txt | 61 ++++++++++++++++++++++ include/dt-bindings/dma/axi-dmac.h | 48 +++++++++++++++++ 2 files changed, 109 insertions(+) commit b2b48ac4c584ae31eb23ad1f86964cc6e52eaa54 Merge: 76891cc ed9c87b Author: Vinod Koul Date: Sun Aug 23 18:54:39 2015 +0530 Merge branch 'topic/zxdma' into for-linus commit 76891cc8c4930e21b9bce226524f1b57756bc25e Merge: 59b0fbd 28eb232 Author: Vinod Koul Date: Sun Aug 23 18:54:31 2015 +0530 Merge branch 'topic/ti-xbar' into for-linus commit 59b0fbdf15900abc57bd90f1cca1f6ff28b470c0 Merge: 005ce70 35ca0ee Author: Vinod Koul Date: Sun Aug 23 18:54:22 2015 +0530 Merge branch 'topic/at_xdmac' into for-linus commit 47edb65178cb7056c2eea0b6c41a7d8c84547192 Author: Andy Lutomirski Date: Thu Jul 23 12:14:40 2015 -0700 x86/asm/msr: Make wrmsrl() a function As of cf991de2f614 ("x86/asm/msr: Make wrmsrl_safe() a function"), wrmsrl_safe is a function, but wrmsrl is still a macro. The wrmsrl macro performs invalid shifts if the value argument is 32 bits. This makes it unnecessarily awkward to write code that puts an unsigned long into an MSR. To make this work, syscall_init needs tweaking to stop passing a function pointer to wrmsrl. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Willy Tarreau Link: http://lkml.kernel.org/r/690f0c629a1085d054e2d1ef3da073cfb3f7db92.1437678821.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 6 ++++-- arch/x86/include/asm/paravirt.h | 6 +++++- arch/x86/kernel/cpu/common.c | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) commit 5865f3658ba37c54e346b0fdee08a1c7a152681b Author: Emmanuel Grumbach Date: Sun Aug 23 12:54:16 2015 +0300 iwlwifi: mvm: bump firmware API to 17 The driver is now able to handle -17.ucode. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-7000.c | 2 +- drivers/net/wireless/iwlwifi/iwl-8000.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4308c9b083fbab1a442e68a03de099841791df27 Author: Jeeja KP Date: Sun Aug 23 11:52:51 2015 +0530 ALSA: hdac: Add snd_hdac_get_hdac_stream() Add a helper to find the stream using stream tag and direction. This is useful for drivers to query stream based on stream tag and direction, fox example while downloading FW thru DSP loader code Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 2 ++ sound/hda/hdac_stream.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) commit 54d1d2f5f0886f7c31512c83a6ed87bbcd0d2b3a Author: Vinod Koul Date: Sun Aug 23 11:52:50 2015 +0530 ALSA: hdac: fix the spbmaxfifo API spbmaxfifo API is actually a query function not a set function so name it snd_hdac_ext_stream_get_spbmaxfifo() Reported-by: Pierre-Louis Bossart Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 2 +- sound/hda/ext/hdac_ext_stream.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit e57690b1aeb208642d00f9b378830b26c9585caf Author: Vinod Koul Date: Sun Aug 23 11:52:49 2015 +0530 ALSA: hdac: Fix size allocation for ext device allocation While creating hdac_ext_device, we used hdev for sizeof insteadof edev, which resulted in eventual crash of the system Fix the size here Fixes: a512f5611646 ('ALSA: hdac: add hdac extended device') Reported-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da03f0296c0c122cb91ed3c87a7efa4ea5127f22 Author: Johannes Berg Date: Tue Aug 18 15:15:36 2015 +0200 iwlwifi: mvm: support new TX power command Add support for the new (bigger) TX power command. This doesn't actually take advantage of the new capabilities (to set per-chain TX power limits) but makes the code compatible with newer firmware images expecting the larger command. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 3 +++ drivers/net/wireless/iwlwifi/mvm/fw-api-power.h | 29 +++++++++++++++++++++---- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 15 ++++++++----- 3 files changed, 37 insertions(+), 10 deletions(-) commit a7b3bc91c5b0a6a7eecfd33ac71e266c6fe897f8 Author: Ayala Beker Date: Thu Aug 20 04:00:38 2015 +0300 iwlwifi: mvm: split debug message to avoid exceeding 110 characters split long debug messages that may result warning in tracing. Fixes: 1a84e7716086 ("iwlwifi: mvm: add debug info to schedule scan complete message.") Signed-off-by: Ayala Beker Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 32c93a7057d600a06f96ff8997da1fadca65795a Author: Johannes Berg Date: Wed Aug 19 16:51:33 2015 +0200 iwlwifi: correctly size command string arrays The command string array is assumed to be indexable by a full u8, so it must have 256 entries (0-255), not just 255. A recent firmware change (apparently) started using the command 0xff for a notification to the host, causing the driver to crash in debug message/tracing code. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/agn.h | 2 +- drivers/net/wireless/iwlwifi/dvm/rx.c | 2 +- drivers/net/wireless/iwlwifi/mvm/ops.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ba537f98b5296cdb08ea98c23963201b3db14ed9 Author: Sara Sharon Date: Wed Aug 19 16:29:31 2015 +0300 iwlwifi: mvm: update wakeup reason enum when waking from d0i3 there is a wakeup reason. Enum in driver is not up to date with FW api - fix it. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 8e8114dee2a9a767ca8abc1c2d6a94a3ca5d4c7f Author: Dan Carpenter Date: Fri Aug 21 11:48:21 2015 +0300 iwlwifi: mvm: catch underflow error earlier My static checker complains that we don't check for underflows in iwl_dbgfs_fw_dbg_conf_write(). This is harmless because we have a sanity check in iwl_mvm_start_fw_dbg_conf(), but we may as well make this unsigned and silence the underflow warning. Signed-off-by: Dan Carpenter Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/debugfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d071c833a0d30e7aae0ea565d92ef83c79106d6f Author: Mauro Carvalho Chehab Date: Sat Aug 22 19:39:38 2015 -0300 [media] dvbdev: document most of the functions/data structs Document the most relevant functions and data structs for developers that are working with the DVB subsystem. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 1 + drivers/media/dvb-core/dvbdev.h | 116 +++++++++++++++++++++++++----- 2 files changed, 100 insertions(+), 17 deletions(-) commit e3dbc572fe11a5231568e106fa3dcedd1d1bec0f Merge: ce8c669 c63517c Author: Paolo Bonzini Date: Sat Aug 22 14:57:59 2015 -0700 Merge tag 'signed-kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue Patch queue for ppc - 2015-08-22 Highlights for KVM PPC this time around: - Book3S: A few bug fixes - Book3S: Allow micro-threading on POWER8 commit ce8c669e446371c1eb21b0566f6dfcb70ef3a435 Merge: bc0195a 054167b Author: Paolo Bonzini Date: Sat Aug 22 14:53:22 2015 -0700 Merge tag 'kvm-arm-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-queue KVM/ARM changes for 4.3 - Full debug support for arm64 - Active state switching for timer interrupts - Lazy FP/SIMD save/restore for arm64 - Generic ARMv8 target commit 35848bf0aa6ba677458adfbde49ef73d10c9f381 Author: Mauro Carvalho Chehab Date: Sat Aug 22 14:20:25 2015 -0300 [media] dvb_frontend.h: document the struct dvb_frontend That struct is used on every DVB Front End driver, as it contains what's needed to register/use a frontend at the Kernel. Document it. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit a3cccb2411a634b751771596bf21afc2d2bd5990 Author: Mauro Carvalho Chehab Date: Sat Aug 22 14:10:31 2015 -0300 [media] dvb-frontend.h: document struct dtv_frontend_properties Most of the parameters here are already well defined at the userspace documentation. Yet, it is good to add some documentation, for the developers to be sure that they are the same as the ones at userspace API. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 105 +++++++++++++++++++++++++++++----- 1 file changed, 91 insertions(+), 14 deletions(-) commit 0cfcc493a50ef6d8b2ceda3390be0306f319ed18 Author: Mauro Carvalho Chehab Date: Sat Aug 22 13:28:02 2015 -0300 [media] dvb-frontend.h: document struct dvb_frontend_ops This is one of the most important functions of the DVB frontend, containing the logic needed to set the parameters at the demux and to send commands via SEC. Document it. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 86 ++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) commit 27460adc07a3f84e671dec71ac553818d5988003 Author: Mauro Carvalho Chehab Date: Sat Aug 22 12:48:09 2015 -0300 [media] dvb: Use DVBFE_ALGO_HW where applicable The dvb_frontend.c core defines a FE_ALGO_HW symbol that it is never used. Also, both cx24123 returns 1 to get_algo() callback instead of using DVBFE_ALGO_HW. Probably, those are some left overs from some code cleanup. Let's stop returning magic numbers and use the proper macro value. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.c | 1 - drivers/media/dvb-frontends/cx24123.c | 2 +- drivers/media/dvb-frontends/s921.c | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) commit 0bf6cd7bc5d6751386d5f092e8d3fd2537aac954 Author: Mauro Carvalho Chehab Date: Sat Aug 22 11:35:50 2015 -0300 [media] dvb_frontend.h: document struct analog_demod_ops Add documentation for struct analog_demod_info and struct analog_demod_ops. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 465291a0eba9662a2ec597b96881dd92b034c30c Author: Mauro Carvalho Chehab Date: Sat Aug 22 11:13:37 2015 -0300 [media] dvb_frontend.h: Document struct dvb_tuner_ops The struct dvb_tuner_ops contains lots of callbacks used by tuners. Document them. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 48 ++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) commit 1a77763428c7647e74347c1c5760440fe0cd0aea Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:58:26 2015 -0300 [media] Docbook: Document struct analog_parameters That struct inside dvb-frontend.h stores some parameters from V4L2 API (videodev2.h), in order to be used by the hybrid analog/digital TV tuners. Document it. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 0c68b1ce850592fb5812e425cba6ab92951955a4 Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:48:57 2015 -0300 [media] dvb_frontend.h: get rid of dvbfe_modcod This enum is not used anymore, as drivers use the modulation definitions from the public API. It is probably a left over from some DVB core cleanup. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 36 ----------------------------------- 1 file changed, 36 deletions(-) commit 8bcbc2f32e3388c6b899fd8c662be471ef609b2a Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:48:05 2015 -0300 [media] add documentation for struct dvb_tuner_info Despite being used everywhere at DVB frontends, the struct dvb_tuner_info were never documented. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit d6e9b704d9553ee9d54baddcc6d9b63a4574f272 Author: Vaishali Thakkar Date: Sat Aug 22 09:04:50 2015 +0530 ata: pata_arasam_cf: Use devm_clk_get This patch introduces the use of managed resource function devm_clk_get instead of clk_get and removes corresponding call to clk_put in the remove function. To be compatible with the change various gotos are replaced with direct returns, and unneeded label is dropped. Signed-off-by: Vaishali Thakkar Signed-off-by: Tejun Heo drivers/ata/pata_arasan_cf.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 5839a5506de30c23d4cfaf49755cd294f5c48368 Author: Adrian Hunter Date: Fri Aug 21 22:05:58 2015 +0300 perf tools: Fix tarball build broken by pt/bts Fix some include paths and add missing inat_types.h. Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/55D77696.60102@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt-decoder/inat.c | 2 +- tools/perf/util/intel-pt-decoder/inat.h | 2 +- tools/perf/util/intel-pt-decoder/inat_types.h | 29 ++++++++++++++++++++++ tools/perf/util/intel-pt-decoder/insn.c | 4 +-- tools/perf/util/intel-pt-decoder/insn.h | 2 +- .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 2 +- 6 files changed, 35 insertions(+), 6 deletions(-) commit 69786cdb379bbc6eab14cf2393c1abd879316e85 Author: Andrey Ryabinin Date: Thu Aug 13 08:37:24 2015 +0300 x86/kasan, mm: Introduce generic kasan_populate_zero_shadow() Introduce generic kasan_populate_zero_shadow(shadow_start, shadow_end). This function maps kasan_zero_page to the [shadow_start, shadow_end] addresses. This replaces x86_64 specific populate_zero_shadow() and will be used for ARM64 in follow on patches. The main changes from original version are: * Use p?d_populate*() instead of set_p?d() * Use memblock allocator directly instead of vmemmap_alloc_block() * __pa() instead of __pa_nodebug(). __pa() causes troubles iff we use it before kasan_early_init(). kasan_populate_zero_shadow() will be used later, so we ok with __pa() here. Signed-off-by: Andrey Ryabinin Acked-by: Catalin Marinas Cc: Alexander Potapenko Cc: Alexey Klimov Cc: Andrew Morton Cc: Aneesh Kumar K.V Cc: Arnd Bergmann Cc: David Keitel Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Linus Walleij Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: Will Deacon Cc: Yury Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1439444244-26057-3-git-send-email-ryabinin.a.a@gmail.com Signed-off-by: Ingo Molnar arch/x86/mm/kasan_init_64.c | 123 ++--------------------------------- include/linux/kasan.h | 9 +++ mm/kasan/Makefile | 2 +- mm/kasan/kasan_init.c | 152 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+), 119 deletions(-) commit 920e277e17f12870188f4564887a95ae9ac03e31 Author: Andrey Ryabinin Date: Thu Aug 13 08:37:23 2015 +0300 x86/kasan: Define KASAN_SHADOW_OFFSET per architecture Current definition of KASAN_SHADOW_OFFSET in include/linux/kasan.h will not work for upcomming arm64, so move it to the arch header. Signed-off-by: Andrey Ryabinin Cc: Alexander Potapenko Cc: Alexey Klimov Cc: Andrew Morton Cc: Aneesh Kumar K.V Cc: Arnd Bergmann Cc: Catalin Marinas Cc: David Keitel Cc: Dmitry Vyukov Cc: Linus Torvalds Cc: Linus Walleij Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: Will Deacon Cc: Yury Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1439444244-26057-2-git-send-email-ryabinin.a.a@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/kasan.h | 3 +++ include/linux/kasan.h | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) commit b466bdb614823aaaa7188e85516177d2850f4782 Author: Huang Rui Date: Mon Aug 10 12:19:54 2015 +0200 x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer MWAITX can enable a timer and a corresponding timer value specified in SW P0 clocks. The SW P0 frequency is the same as TSC. The timer provides an upper bound on how long the instruction waits before exiting. This way, a delay function in the kernel can leverage that MWAITX timer of MWAITX. When a CPU core executes MWAITX, it will be quiesced in a waiting phase, diminishing its power consumption. This way, we can save power in comparison to our default TSC-based delays. A simple test shows that: $ cat /sys/bus/pci/devices/0000\:00\:18.4/hwmon/hwmon0/power1_acc $ sleep 10000s $ cat /sys/bus/pci/devices/0000\:00\:18.4/hwmon/hwmon0/power1_acc Results: * TSC-based default delay: 485115 uWatts average power * MWAITX-based delay: 252738 uWatts average power Thus, that's about 240 milliWatts less power consumption. The test method relies on the support of AMD CPU accumulated power algorithm in fam15h_power for which patches are forthcoming. Suggested-by: Andy Lutomirski Suggested-by: Borislav Petkov Suggested-by: Peter Zijlstra Signed-off-by: Huang Rui [ Fix delay truncation. ] Signed-off-by: Borislav Petkov Cc: Aaron Lu Cc: Andreas Herrmann Cc: Aravind Gopalakrishnan Cc: Fengguang Wu Cc: Frédéric Weisbecker Cc: H. Peter Anvin Cc: Hector Marco-Gisbert Cc: Jacob Shin Cc: Jiri Olsa Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Paolo Bonzini Cc: Rafael J. Wysocki Cc: Thomas Gleixner Cc: Tony Li Link: http://lkml.kernel.org/r/1438744732-1459-3-git-send-email-ray.huang@amd.com Link: http://lkml.kernel.org/r/1439201994-28067-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/delay.h | 1 + arch/x86/kernel/cpu/amd.c | 4 ++++ arch/x86/lib/delay.c | 47 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 51 insertions(+), 1 deletion(-) commit f96756746c7909de37db3d03ac5fd5cfb2757f38 Author: Huang Rui Date: Mon Aug 10 12:19:53 2015 +0200 x86/asm: Add MONITORX/MWAITX instruction support AMD Carrizo processors (Family 15h, Models 60h-6fh) added a new feature called MWAITX (MWAIT with extensions) as an extension to MONITOR/MWAIT. This new instruction controls a configurable timer which causes the core to exit wait state on timer expiration, in addition to "normal" MWAIT condition of reading from a monitored VA. Compared to MONITOR/MWAIT, there are minor differences in opcode and input parameters: MWAITX ECX[1]: enable timer if set MWAITX EBX[31:0]: max wait time expressed in SW P0 clocks == TSC. The software P0 frequency is the same as the TSC frequency. MWAIT MWAITX opcode 0f 01 c9 | 0f 01 fb ECX[0] value of RFLAGS.IF seen by instruction ECX[1] unused/#GP if set | enable timer if set ECX[31:2] unused/#GP if set EAX unused (reserve for hint) EBX[31:0] unused | max wait time (SW P0 == TSC) MONITOR MONITORX opcode 0f 01 c8 | 0f 01 fa EAX (logical) address to monitor ECX #GP if not zero Max timeout = EBX/(TSC frequency) Signed-off-by: Huang Rui Signed-off-by: Borislav Petkov Cc: Aaron Lu Cc: Alexander Shishkin Cc: Andreas Herrmann Cc: Andy Lutomirski Cc: Dave Hansen Cc: Dirk Brandewie Cc: Fengguang Wu Cc: Frédéric Weisbecker Cc: H. Peter Anvin Cc: John Stultz Cc: Josh Triplett Cc: Len Brown Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Ross Zwisler Cc: Thomas Gleixner Cc: Tony Li Link: http://lkml.kernel.org/r/1439201994-28067-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/cpufeature.h | 1 + arch/x86/include/asm/mwait.h | 45 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) commit b9de1726b52d0c1dc07d90fd6a63fca49ea8b5b9 Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:47:04 2015 -0300 [media] dvb_frontend: document dvb_frontend_tune_settings Add Documentation for dvb_frontend_tune_settings struct. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet drivers/media/dvb-core/dvb_frontend.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 04ffb9c126d6d887b08b68bbe0c0842ec9def78d Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:22:25 2015 -0300 [media] DocBook: Better organize media devices Instead of putting all media devices on a flat structure, split them on 4 types, just like we do with the userspace API: Video2Linux devices Digital TV (DVB) devices Remote Controller devices Media Controller devices Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) commit 98d00bd7a2477ffce8010458938425095345f470 Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:04:46 2015 -0300 [media] v4l2-mediabus: Add to DocBook Fix the format of the comments and add to DocBook. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 4 +--- include/media/v4l2-mediabus.h | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) commit b6836a6fbc4b7e35679bf7bb8b54bad294ae0b10 Author: Mauro Carvalho Chehab Date: Sat Aug 22 09:01:58 2015 -0300 [media] videobuf2-memops.h: add to device-drivers DocBook The comment metadata was wrong: Warning(.//include/media/videobuf2-memops.h:25): cannot understand function prototype: 'struct vb2_vmarea_handler ' Warning(.//include/media/videobuf2-memops.h): no structured comments found Fix and add to DocBook. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- include/media/videobuf2-memops.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit d78757e780f1845dd5c9615169f7401c7d0d1a66 Author: Mauro Carvalho Chehab Date: Sat Aug 22 08:57:02 2015 -0300 [media] videobuf2-core: Add it to device-drivers DocBook Most of the stuff at videobuf2-core are ok for adding it to DocBook. Two notes here: 1) As videobuf2-core will be soon be changed, better to not spend too much efforts right now, as things will change soon; 2) struct vb2_queue has a number of private elements that are documented. As Kernel nano documentation format handles "private:" arguments, we need to put them on a separate comment block or to remove. Keeping the comments is obviously better ;) Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- include/media/videobuf2-core.h | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) commit 506bb54bdb0898e046e62751d761a5592966a637 Author: Mauro Carvalho Chehab Date: Sat Aug 22 08:36:13 2015 -0300 [media] v4l-dv-timings.h: Add to device-drivers DocBook There are already markups for documentation at v4l-dv-timings.h, however, they're not properly formatted. Convert them to the right format and add this file to the device-drivers DocBook. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- include/media/v4l2-dv-timings.h | 135 +++++++++++++++++------------- 2 files changed, 78 insertions(+), 59 deletions(-) commit b6fce850d9fa46eefdaa7ef28ac1f3fce7c803d2 Author: Mauro Carvalho Chehab Date: Sat Aug 22 08:28:39 2015 -0300 [media] v4l2-event.h: fix comments and add to DocBook The comments there are good enough for DocBook, however they're using a wrong format. Fix and add to device-drivers.xml. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- include/media/v4l2-event.h | 47 ++++++++++++++++--------------- 2 files changed, 26 insertions(+), 23 deletions(-) commit 7dc879190f55f4ecb12c754fb0f11a596e478fd1 Author: Mauro Carvalho Chehab Date: Sat Aug 22 08:22:03 2015 -0300 [media] v4l2-ctrls.h: Document a few missing arguments Warning(.//include/media/v4l2-ctrls.h:217): No description found for parameter 'p_new' Warning(.//include/media/v4l2-ctrls.h:217): No description found for parameter 'p_cur' Warning(.//include/media/v4l2-ctrls.h:217): Excess struct/union/enum/typedef member 'val64' description in 'v4l2_ctrl' Warning(.//include/media/v4l2-ctrls.h:314): No description found for parameter 'qmenu_int' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-ctrls.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 276ce3a860d3c119e472abcfa75351c703f8722f Author: Mauro Carvalho Chehab Date: Sat Aug 22 08:21:10 2015 -0300 [media] v4l2-ctls: don't document v4l2_ctrl_fill() This is an obsolete function that has several missing arguments: Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'id' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'name' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'type' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'min' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'max' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'step' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'def' Warning(.//include/media/v4l2-ctrls.h:340): No description found for parameter 'flags' However, this is an obsolete function that should be removed soon. And are not meant to be used anymore. So, instead of documenting those stuff, let's just make DocBook to not handle it, by replacing "/**" by "/*". Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-ctrls.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c2721d57a4bac055ae7bb1874a13a928277d5ff Author: Mauro Carvalho Chehab Date: Sat Aug 22 08:03:49 2015 -0300 [media] v4l2-ctrls.h: add to device-drivers DocBook The comments there are using a wrong format. Due to that, DocBook were unable to parse it. Fix the tags format, and add it to device-drivers.xml. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 6 +- include/media/v4l2-ctrls.h | 1011 ++++++++++++++++------------- 2 files changed, 552 insertions(+), 465 deletions(-) commit 2a86e373e0cf926f5cb41725f1b0ce3874e7b1cf Author: Mauro Carvalho Chehab Date: Sat Aug 22 07:38:51 2015 -0300 [media] DocBook: add dvb_ringbuffer.h to documentation There are already some comments at dvb_ringbuffer.h that are ready for DocBook, although not properly formatted. Convert them, fix some issues and add this file to the device-drivers DocBook. While here, put multi-line comments on the right format. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- drivers/media/dvb-core/dvb_ringbuffer.h | 135 +++++++++++++++++------------- 2 files changed, 76 insertions(+), 61 deletions(-) commit e08bb6f79fa0b9bf94ea44a306d1528172d788af Author: Mauro Carvalho Chehab Date: Sat Aug 22 07:37:28 2015 -0300 [media] DocBook: add dvb_math.h to documentation There are already some comments at dvb_math.h that are ready for DocBook, although not properly formatted. Convert them, fix some issues and add this file to the device-drivers DocBook. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- drivers/media/dvb-core/dvb_math.h | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) commit 4f1c1868e8d4e493d66b8e11eebbc95abdbaf444 Author: Mauro Carvalho Chehab Date: Sat Aug 22 07:19:20 2015 -0300 [media] DocBook: add dvb_frontend.h to documentation There are already some comments at dvb_frontend.h that are ready for DocBook, although not properly formatted. Convert them, and add this file to the device-drivers DocBook. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- drivers/media/dvb-core/dvb_frontend.h | 68 +++++++++++++++---------------- 2 files changed, 34 insertions(+), 36 deletions(-) commit f47f966fbe0aaff4ebbdb83d95acdfa5d3c20477 Author: Vaishali Thakkar Date: Sun Jul 19 22:53:52 2015 +0530 cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE Macro DEFINE_PCI_DEVICE_TABLE is deprecated. So, here use struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE with the goal of getting rid of this macro completely. The Coccinelle semantic patch that performs this transformation is as follows: @@ identifier a; declarer name DEFINE_PCI_DEVICE_TABLE; initializer i; @@ - DEFINE_PCI_DEVICE_TABLE(a) + const struct pci_device_id a[] = i; Signed-off-by: Vaishali Thakkar Acked-by: Michael Neuling Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d53be7d8c7ccf8eec1ce66c6b3573c01d16b755 Author: Michael Ellerman Date: Sat Aug 22 09:33:55 2015 +1000 powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver When I merged the OPAL support for the powernv LEDS driver I missed a hunk. This is slightly modified from the original patch, as the original added code to opal-api.h which is not in the skiboot version, which is discouraged. Instead those values are moved into the driver, which is the only place they are used. Fixes: 8a8d91817aec ("powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states") Reviewed-by: Vasant Hegde Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 12 ++++++++++++ drivers/leds/leds-powernv.c | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) commit fbefb1a87c7e6e24df6ca5b42b42985e2680c2ea Author: Mauro Carvalho Chehab Date: Sat Aug 22 07:09:29 2015 -0300 [media] DocBook: add dvb_ca_en50221.h to documentation There are already some tags at dvb_ca_en50221.h, but using a different format. Convert them, fix a few entries and add to the device-drivers DocBook. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 2 +- drivers/media/dvb-core/dvb_ca_en50221.c | 167 +++++++++++++++--------------- drivers/media/dvb-core/dvb_ca_en50221.h | 34 +++--- 3 files changed, 102 insertions(+), 101 deletions(-) commit 1d8955b2c3fa476a1222b020349937c93a8e4762 Author: Mauro Carvalho Chehab Date: Sat Aug 22 06:59:26 2015 -0300 [media] v4l2-subdev: add remaining argument descriptions Warning(.//include/media/v4l2-subdev.h:203): No description found for parameter 'ioctl' Warning(.//include/media/v4l2-subdev.h:203): No description found for parameter 'compat_ioctl32' Warning(.//include/media/v4l2-subdev.h:203): No description found for parameter 'subscribe_event' Warning(.//include/media/v4l2-subdev.h:203): No description found for parameter 'unsubscribe_event' Warning(.//include/media/v4l2-subdev.h:273): No description found for parameter 's_stream' Warning(.//include/media/v4l2-subdev.h:407): No description found for parameter 's_stream' Warning(.//include/media/v4l2-subdev.h:623): No description found for parameter 'link_validate' Warning(.//include/media/v4l2-subdev.h:623): No description found for parameter 'set_frame_desc' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit e44cc20a1d0952835e2fc01706b609ee8a3d9d92 Author: Mauro Carvalho Chehab Date: Sat Aug 22 06:34:06 2015 -0300 [media] v4l2_subdev: describe ioctl parms at the remaining structs Fixes the following warnings: Warning(.//include/media/v4l2-subdev.h:445): No description found for parameter 'g_sliced_vbi_cap' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'enum_mbus_code' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'enum_frame_size' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'enum_frame_interval' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'get_fmt' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'set_fmt' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'get_selection' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'set_selection' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'get_edid' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'set_edid' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'dv_timings_cap' Warning(.//include/media/v4l2-subdev.h:589): No description found for parameter 'enum_dv_timings' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 914728ab609f7160a1b6d2a3be1edd8f6b2cf88e Author: Mauro Carvalho Chehab Date: Sat Aug 22 06:18:13 2015 -0300 [media] v4l2_subdev: describe ioctl parms at v4l2_subdev_video_ops Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'g_std' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 's_std' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'querystd' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'cropcap' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'g_crop' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 's_crop' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'g_parm' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 's_parm' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'g_frame_interval' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 's_frame_interval' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 's_dv_timings' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'g_dv_timings' Warning(.//include/media/v4l2-subdev.h:381): No description found for parameter 'query_dv_timings' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit b84aeb03a886beef39f80e30b76d30a833dd8161 Author: Mauro Carvalho Chehab Date: Sat Aug 22 06:12:35 2015 -0300 [media] v4l2-subdev: reorder the v4l2_subdev_video_ops comments The comments for struct v4l2_subdev_video_ops are out of the order as the parameter would appear at struct. This is not a problem for DocBook, but humans find harder to mentally reorder ;) So, put them at the right order. That makes easier to check what's missing, and to put the comments in the right place. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 91963aae9a65286eea30ca810027ddc09b26e779 Author: Mauro Carvalho Chehab Date: Sat Aug 22 06:07:29 2015 -0300 [media] v4l2-subdev: Add description for radio ioctl handlers Warning(.//include/media/v4l2-subdev.h:224): No description found for parameter 's_radio' Warning(.//include/media/v4l2-subdev.h:224): No description found for parameter 's_frequency' Warning(.//include/media/v4l2-subdev.h:224): No description found for parameter 'enum_freq_bands' Warning(.//include/media/v4l2-subdev.h:224): No description found for parameter 'g_tuner' Warning(.//include/media/v4l2-subdev.h:224): No description found for parameter 'g_modulator' Warning(.//include/media/v4l2-subdev.h:224): No description found for parameter 's_modulator' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 783001adf99b432a31acb2a4c198da8846d8dcc3 Author: Mauro Carvalho Chehab Date: Sat Aug 22 06:00:22 2015 -0300 [media] v4l2-subdev: Add description for core ioctl handlers Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 'queryctrl' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 'g_ctrl' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 's_ctrl' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 'g_ext_ctrls' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 's_ext_ctrls' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 'try_ext_ctrls' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 'querymenu' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 'g_register' Warning(.//include/media/v4l2-subdev.h:183): No description found for parameter 's_register' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit a3b3a9db5d26bef1e62054c95c3d7701de5110d5 Author: Dan Carpenter Date: Sat Aug 22 12:24:13 2015 +0300 ALSA: hdsp: silence a sprinft() overflow warning card->shortname is a 32 char string so the sprintf() can theoretically overflow. snd_rawmidi_new() can accept strings up to 64 bytes long. I have made the temporay buf[] array 40 bytes long and changed the sprintf() to snprintf(). Signed-off-by: Dan Carpenter Signed-off-by: Takashi Iwai sound/pci/rme9652/hdsp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 488ca7d72d974e3c00ae73ed9f947590680bdf00 Author: Tim Chen Date: Fri Aug 21 14:56:46 2015 -0700 x86/cpufeatures: Enable cpuid for Intel SHA extensions Add Intel CPUID for Intel Secure Hash Algorithm Extensions. This feature provides new instructions for accelerated computation of SHA-1 and SHA-256. This allows the feature to be shown in the /proc/cpuinfo for cpus that support it. Refer to SHA extension programming guide in chapter 8.2 of the Intel Architecture Instruction Set Extensions Programming reference for definition of this feature's cpuid: CPUID.(EAX=07H, ECX=0):EBX.SHA [bit 29] = 1 https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf Originally-by: Chandramouli Narayanan Signed-off-by: Tim Chen Cc: Borislav Petkov Cc: Dave Hansen Cc: Herbert Xu Link: http://lkml.kernel.org/r/1440194206.3940.6.camel@schen9-mobl2 Signed-off-by: Thomas Gleixner arch/x86/include/asm/cpufeature.h | 1 + 1 file changed, 1 insertion(+) commit c63517c2e3810071359af926f621c1f784388c3f Author: Sam bobroff Date: Wed May 27 09:56:57 2015 +1000 KVM: PPC: Book3S: correct width in XER handling In 64 bit kernels, the Fixed Point Exception Register (XER) is a 64 bit field (e.g. in kvm_regs and kvm_vcpu_arch) and in most places it is accessed as such. This patch corrects places where it is accessed as a 32 bit field by a 64 bit kernel. In some cases this is via a 32 bit load or store instruction which, depending on endianness, will cause either the lower or upper 32 bits to be missed. In another case it is cast as a u32, causing the upper 32 bits to be cleared. This patch corrects those places by extending the access methods to 64 bits. Signed-off-by: Sam Bobroff Reviewed-by: Laurent Vivier Reviewed-by: Thomas Huth Tested-by: Thomas Huth Signed-off-by: Alexander Graf arch/powerpc/include/asm/kvm_book3s.h | 4 ++-- arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +- arch/powerpc/include/asm/kvm_booke.h | 4 ++-- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 6 +++--- arch/powerpc/kvm/book3s_segment.S | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) commit 563a1e93afac4d2c135072461fbab418b9dff43f Author: Paul Mackerras Date: Thu Jul 16 17:11:14 2015 +1000 KVM: PPC: Book3S HV: Fix preempted vcore stolen time calculation Whenever a vcore state is VCORE_PREEMPT we need to be counting stolen time for it. This currently isn't the case when we have a vcore that no longer has any runnable threads in it but still has a runner task, so we do an explicit call to kvmppc_core_start_stolen() in that case. Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/kvm/book3s_hv.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 402813fe39db66e8f3be2a1b5b62dd664e33f6b8 Author: Paul Mackerras Date: Thu Jul 16 17:11:13 2015 +1000 KVM: PPC: Book3S HV: Fix preempted vcore list locking When a vcore gets preempted, we put it on the preempted vcore list for the current CPU. The runner task then calls schedule() and comes back some time later and takes itself off the list. We need to be careful to lock the list that it was put onto, which may not be the list for the current CPU since the runner task may have moved to another CPU. Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/kvm/book3s_hv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cdeee51842b55acb3e699a4083fa97e82384e456 Author: Paul Mackerras Date: Wed Jun 24 21:18:07 2015 +1000 KVM: PPC: Book3S HV: Implement H_CLEAR_REF and H_CLEAR_MOD This adds implementations for the H_CLEAR_REF (test and clear reference bit) and H_CLEAR_MOD (test and clear changed bit) hypercalls. When clearing the reference or change bit in the guest view of the HPTE, we also have to clear it in the real HPTE so that we can detect future references or changes. When we do so, we transfer the R or C bit value to the rmap entry for the underlying host page so that kvm_age_hva_hv(), kvm_test_age_hva_hv() and kvmppc_hv_get_dirty_log() know that the page has been referenced and/or changed. These hypercalls are not used by Linux guests. These implementations have been tested using a FreeBSD guest. Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/kvm/book3s_hv_rm_mmu.c | 126 ++++++++++++++++++++++++++++++-- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 +- 2 files changed, 121 insertions(+), 9 deletions(-) commit 08fe1e7bd216339501c4eb0d0df0f413d715327a Author: Paul Mackerras Date: Wed Jun 24 21:18:06 2015 +1000 KVM: PPC: Book3S HV: Fix bug in dirty page tracking This fixes a bug in the tracking of pages that get modified by the guest. If the guest creates a large-page HPTE, writes to memory somewhere within the large page, and then removes the HPTE, we only record the modified state for the first normal page within the large page, when in fact the guest might have modified some other normal page within the large page. To fix this we use some unused bits in the rmap entry to record the order (log base 2) of the size of the page that was modified, when removing an HPTE. Then in kvm_test_clear_dirty_npages() we use that order to return the correct number of modified pages. The same thing could in principle happen when removing a HPTE at the host's request, i.e. when paging out a page, except that we never page out large pages, and the guest can only create large-page HPTEs if the guest RAM is backed by large pages. However, we also fix this case for the sake of future-proofing. The reference bit is also subject to the same loss of information. We don't make the same fix here for the reference bit because there isn't an interface for userspace to find out which pages the guest has referenced, whereas there is one for userspace to find out which pages the guest has modified. Because of this loss of information, the kvm_age_hva_hv() and kvm_test_age_hva_hv() functions might incorrectly say that a page has not been referenced when it has, but that doesn't matter greatly because we never page or swap out large pages. Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/include/asm/kvm_book3s.h | 1 + arch/powerpc/include/asm/kvm_host.h | 2 ++ arch/powerpc/kvm/book3s_64_mmu_hv.c | 8 +++++++- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 17 +++++++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) commit 1e5bf454f58731e360e504253e85bae7aaa2d298 Author: Paul Mackerras Date: Wed Jun 24 21:18:05 2015 +1000 KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE The reference (R) and change (C) bits in a HPT entry can be set by hardware at any time up until the HPTE is invalidated and the TLB invalidation sequence has completed. This means that when removing a HPTE, we need to read the HPTE after the invalidation sequence has completed in order to obtain reliable values of R and C. The code in kvmppc_do_h_remove() used to do this. However, commit 6f22bd3265fb ("KVM: PPC: Book3S HV: Make HTAB code LE host aware") removed the read after invalidation as a side effect of other changes. This restores the read of the HPTE after invalidation. The user-visible effect of this bug would be that when migrating a guest, there is a small probability that a page modified by the guest and then unmapped by the guest might not get re-transmitted and thus the destination might end up with a stale copy of the page. Fixes: 6f22bd3265fb Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/kvm/book3s_hv_rm_mmu.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit b4deba5c41e9f6d3239606c9e060853d9decfee1 Author: Paul Mackerras Date: Thu Jul 2 20:38:16 2015 +1000 KVM: PPC: Book3S HV: Implement dynamic micro-threading on POWER8 This builds on the ability to run more than one vcore on a physical core by using the micro-threading (split-core) modes of the POWER8 chip. Previously, only vcores from the same VM could be run together, and (on POWER8) only if they had just one thread per core. With the ability to split the core on guest entry and unsplit it on guest exit, we can run up to 8 vcpu threads from up to 4 different VMs, and we can run multiple vcores with 2 or 4 vcpus per vcore. Dynamic micro-threading is only available if the static configuration of the cores is whole-core mode (unsplit), and only on POWER8. To manage this, we introduce a new kvm_split_mode struct which is shared across all of the subcores in the core, with a pointer in the paca on each thread. In addition we extend the core_info struct to have information on each subcore. When deciding whether to add a vcore to the set already on the core, we now have two possibilities: (a) piggyback the vcore onto an existing subcore, or (b) start a new subcore. Currently, when any vcpu needs to exit the guest and switch to host virtual mode, we interrupt all the threads in all subcores and switch the core back to whole-core mode. It may be possible in future to allow some of the subcores to keep executing in the guest while subcore 0 switches to the host, but that is not implemented in this patch. This adds a module parameter called dynamic_mt_modes which controls which micro-threading (split-core) modes the code will consider, as a bitmap. In other words, if it is 0, no micro-threading mode is considered; if it is 2, only 2-way micro-threading is considered; if it is 4, only 4-way, and if it is 6, both 2-way and 4-way micro-threading mode will be considered. The default is 6. With this, we now have secondary threads which are the primary thread for their subcore and therefore need to do the MMU switch. These threads will need to be started even if they have no vcpu to run, so we use the vcore pointer in the PACA rather than the vcpu pointer to trigger them. It is now possible for thread 0 to find that an exit has been requested before it gets to switch the subcore state to the guest. In that case we haven't added the guest's timebase offset to the timebase, so we need to be careful not to subtract the offset in the guest exit path. In fact we just skip the whole path that switches back to host context, since we haven't switched to the guest context. Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/include/asm/kvm_book3s_asm.h | 20 ++ arch/powerpc/include/asm/kvm_host.h | 3 + arch/powerpc/kernel/asm-offsets.c | 7 + arch/powerpc/kvm/book3s_hv.c | 367 ++++++++++++++++++++++++++---- arch/powerpc/kvm/book3s_hv_builtin.c | 25 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 113 +++++++-- 6 files changed, 473 insertions(+), 62 deletions(-) commit ec257165082616841a354dd915801ed43e3553be Author: Paul Mackerras Date: Wed Jun 24 21:18:03 2015 +1000 KVM: PPC: Book3S HV: Make use of unused threads when running guests When running a virtual core of a guest that is configured with fewer threads per core than the physical cores have, the extra physical threads are currently unused. This makes it possible to use them to run one or more other virtual cores from the same guest when certain conditions are met. This applies on POWER7, and on POWER8 to guests with one thread per virtual core. (It doesn't apply to POWER8 guests with multiple threads per vcore because they require a 1-1 virtual to physical thread mapping in order to be able to use msgsndp and the TIR.) The idea is that we maintain a list of preempted vcores for each physical cpu (i.e. each core, since the host runs single-threaded). Then, when a vcore is about to run, it checks to see if there are any vcores on the list for its physical cpu that could be piggybacked onto this vcore's execution. If so, those additional vcores are put into state VCORE_PIGGYBACK and their runnable VCPU threads are started as well as the original vcore, which is called the master vcore. After the vcores have exited the guest, the extra ones are put back onto the preempted list if any of their VCPUs are still runnable and not idle. This means that vcpu->arch.ptid is no longer necessarily the same as the physical thread that the vcpu runs on. In order to make it easier for code that wants to send an IPI to know which CPU to target, we now store that in a new field in struct vcpu_arch, called thread_cpu. Reviewed-by: David Gibson Tested-by: Laurent Vivier Signed-off-by: Paul Mackerras Signed-off-by: Alexander Graf arch/powerpc/include/asm/kvm_host.h | 19 +- arch/powerpc/kernel/asm-offsets.c | 2 + arch/powerpc/kvm/book3s_hv.c | 333 ++++++++++++++++++++++++++------ arch/powerpc/kvm/book3s_hv_builtin.c | 7 +- arch/powerpc/kvm/book3s_hv_rm_xics.c | 4 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 5 + 6 files changed, 298 insertions(+), 72 deletions(-) commit 845ac985cf8e3d52939dbe2446d91e47e91a07b6 Author: Tudor Laurentiu Date: Mon May 18 15:44:27 2015 +0300 KVM: PPC: add missing pt_regs initialization On this switch branch the regs initialization doesn't happen so add it. This was found with the help of a static code analysis tool. Signed-off-by: Laurentiu Tudor Signed-off-by: Alexander Graf arch/powerpc/kvm/booke.c | 1 + 1 file changed, 1 insertion(+) commit 5358a96341a7fba23cbf0eaf01ce1ab4d738fc90 Author: Thomas Huth Date: Fri May 22 09:25:02 2015 +0200 KVM: PPC: Fix warnings from sparse When compiling the KVM code for POWER with "make C=1", sparse complains about functions missing proper prototypes and a 64-bit constant missing the ULL prefix. Let's fix this by making the functions static or by including the proper header with the prototypes, and by appending a ULL prefix to the constant PPC_MPPE_ADDRESS_MASK. Signed-off-by: Thomas Huth Signed-off-by: Alexander Graf arch/powerpc/include/asm/ppc-opcode.h | 2 +- arch/powerpc/kvm/book3s.c | 3 ++- arch/powerpc/kvm/book3s_32_mmu_host.c | 1 + arch/powerpc/kvm/book3s_64_mmu_host.c | 1 + arch/powerpc/kvm/book3s_emulate.c | 1 + arch/powerpc/kvm/book3s_hv.c | 8 ++++---- arch/powerpc/kvm/book3s_paired_singles.c | 2 +- arch/powerpc/kvm/powerpc.c | 2 +- 8 files changed, 12 insertions(+), 8 deletions(-) commit 129fd4233b62159d50c35fb6489cb22ee9c27415 Author: Thomas Huth Date: Fri May 22 11:41:01 2015 +0200 KVM: PPC: Remove PPC970 from KVM_BOOK3S_64_HV text in Kconfig Since the PPC970 support has been removed from the kvm-hv kernel module recently, we should also reflect this change in the help text of the corresponding Kconfig option. Signed-off-by: Thomas Huth Signed-off-by: Alexander Graf arch/powerpc/kvm/Kconfig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f5ffe330f5e63325000f58ed982a159c512f6db3 Author: Tudor Laurentiu Date: Mon May 25 11:48:39 2015 +0300 KVM: PPC: fix suspicious use of conditional operator This was signaled by a static code analysis tool. Signed-off-by: Laurentiu Tudor Reviewed-by: Scott Wood Signed-off-by: Alexander Graf arch/powerpc/kvm/e500_mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0a97af83f6287357dcc100c859ec0066f164f32 Author: Andy Lutomirski Date: Thu Aug 20 22:03:21 2015 -0700 x86/traps: Weaken context tracking entry assertions We were asserting that we were all the way in CONTEXT_KERNEL when exception handlers were called. While having this be true is, I think, a nice goal (or maybe a variant in which we assert that we're in CONTEXT_KERNEL or some new IRQ context), we're not quite there. In particular, if an IRQ interrupts the SYSCALL prologue and the IRQ handler in turn causes an exception, the exception entry will be called in RCU IRQ mode but with CONTEXT_USER. This is okay (nothing goes wrong), but until we fix up the SYSCALL prologue, we need to avoid warning. Signed-off-by: Andy Lutomirski Acked-by: Frederic Weisbecker Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Sasha Levin Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/c81faf3916346c0e04346c441392974f49cd7184.1440133286.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/traps.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 5c6629847cf6641984b1808707b43772db4e4403 Author: Mauro Carvalho Chehab Date: Sat Aug 22 05:40:29 2015 -0300 [media] v4l2-subdev: convert documentation to the right format struct v4l2_subdev_core_ops has some kernel-doc-nano documentation using a wrong format, with affects the number of stuff reported at the DocBook device-drivers.xml. Properly mark the such comment blocks using the right notation. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-subdev.h | 261 +++++++++++++++++++++++--------------------- 1 file changed, 135 insertions(+), 126 deletions(-) commit 85e1cd6e769dfc84995270d0a4838021fcb8602d Author: Guenter Roeck Date: Sat Aug 22 01:10:47 2015 -0700 hrtimer: Handle failure of tick_init_highres() gracefully Commit 75e3b37d0598 ("hrtimer: Drop return code of hrtimer_switch_to_hres()") drops the return code of hrtimer_switch_to_hres(). While doing so, it also drops the return statement itself on failure. This may cause a system hang. Seen when running arm:multi_v7_defconfig in qemu with devicetree file vexpress-v2p-ca9. Fixes: 75e3b37d0598 ("hrtimer: Drop return code of hrtimer_switch_to_hres()") Cc: Luiz Capitulino Signed-off-by: Guenter Roeck Link: http://lkml.kernel.org/r/1440231047-16256-1-git-send-email-linux@roeck-us.net Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 1 + 1 file changed, 1 insertion(+) commit 62c0d016dab0ffd3cd28f10236186ef341ddece8 Author: Mauro Carvalho Chehab Date: Sat Aug 22 05:34:40 2015 -0300 [media] Docbook: Fix comments at v4l2-mem2mem.h Warning(.//include/media/v4l2-mem2mem.h:50): No description found for parameter 'lock' Warning(.//include/media/v4l2-mem2mem.h:50): No description found for parameter 'unlock' Warning(.//include/media/v4l2-mem2mem.h:167): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:177): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:188): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:197): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:206): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:215): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:226): No description found for parameter 'm2m_ctx' Warning(.//include/media/v4l2-mem2mem.h:235): No description found for parameter 'm2m_ctx' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-mem2mem.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 62ba6b22f4bb99dbf53c5a0ac43b24c00c0fc86a Author: Mauro Carvalho Chehab Date: Sat Aug 22 05:28:44 2015 -0300 [media] Docbook: fix comments at v4l2-flash-led-class.h Warning(.//include/media/v4l2-flash-led-class.h:51): bad line: unique in the system Warning(.//include/media/v4l2-flash-led-class.h:56): bad line: definitions are available in the header file Warning(.//include/media/v4l2-flash-led-class.h:57): bad line: Warning(.//include/media/v4l2-flash-led-class.h:122): No description found for parameter 'ops' Warning(.//include/media/v4l2-flash-led-class.h:122): Excess function parameter 'flash_ops' description in 'v4l2_flash_init' Warning(.//include/media/v4l2-flash-led-class.h:130): No description found for parameter 'v4l2_flash' Warning(.//include/media/v4l2-flash-led-class.h:130): Excess function parameter 'flash' description in 'v4l2_flash_release' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-flash-led-class.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit fa810845efc4d3c0f159a3e7a35f009e0249c857 Author: Mauro Carvalho Chehab Date: Sat Aug 22 05:25:45 2015 -0300 [media] Docbook: Fix s_rx_carrier_range parameter description Warning(.//include/media/rc-core.h:178): No description found for parameter 's_rx_carrier_range' Warning(.//include/media/rc-core.h:178): Excess struct/union/enum/typedef member 's_rx_carrier' description in 'rc_dev' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/rc-core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8b27377076e4405a25bdb40ee32ef7a0b261573 Author: Mauro Carvalho Chehab Date: Sat Aug 22 05:16:24 2015 -0300 [media] Docbook: Fix comments at v4l2-async.h Warning(.//include/media/v4l2-async.h:62): No description found for parameter 'match_type' Warning(.//include/media/v4l2-async.h:62): Excess struct/union/enum/typedef member 'bus_type' description in 'v4l2_async_subdev' Warning(.//include/media/v4l2-async.h:76): cannot understand function prototype: 'struct v4l2_async_notifier ' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/v4l2-async.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 5240f4e68d4209588194ea1db60f7c822e2a1c6f Author: Mauro Carvalho Chehab Date: Sat Aug 22 05:02:21 2015 -0300 [media] DocBook/media/Makefile: Avoid make htmldocs to fail If make is called twice like that: make V=1 DOCBOOKS=device-drivers.xml htmldocs Make will fail with: make -f ./scripts/Makefile.build obj=scripts/basic rm -f .tmp_quiet_recordmcount make -f ./scripts/Makefile.build obj=scripts build_docproc make -f ./scripts/Makefile.build obj=Documentation/DocBook htmldocs rm -rf Documentation/DocBook/index.html; echo '

Linux Kernel HTML Documentation

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

Kernel Version: 4.2.0-rc2

' >> Documentation/DocBook/index.html && cat Documentation/DocBook/device-drivers.html >> Documentation/DocBook/index.html cp ./Documentation/DocBook//bayer.png ./Documentation/DocBook//constraints.png ./Documentation/DocBook//crop.gif ./Documentation/DocBook//dvbstb.png ./Documentation/DocBook//fieldseq_bt.gif ./Documentation/DocBook//fieldseq_tb.gif ./Documentation/DocBook//nv12mt.gif ./Documentation/DocBook//nv12mt_example.gif ./Documentation/DocBook//pipeline.png ./Documentation/DocBook//selection.png ./Documentation/DocBook//vbi_525.gif ./Documentation/DocBook//vbi_625.gif ./Documentation/DocBook//vbi_hsync.gif ./Documentation/DocBook/media/*.svg ./Documentation/DocBook/media/v4l/*.svg ./Documentation/DocBook//media_api cp: target './Documentation/DocBook//media_api' is not a directory Documentation/DocBook/Makefile:53: recipe for target 'htmldocs' failed Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/media/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ec0255cad2dace5be54cc52010bb07fdb5628e1e Author: Mauro Carvalho Chehab Date: Sat Aug 22 04:45:03 2015 -0300 [media] Docbook: Fix description of struct media_devnode Warning(.//include/media/media-devnode.h:80): No description found for parameter 'fops' Warning(.//include/media/media-devnode.h:80): No description found for parameter 'dev' Warning(.//include/media/media-devnode.h:80): No description found for parameter 'cdev' Warning(.//include/media/media-devnode.h:80): No description found for parameter 'release' Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet include/media/media-devnode.h | 4 ++++ 1 file changed, 4 insertions(+) commit dc2c8bd3c9a44ed38d9af6c7243fdddc42ec391a Author: Mauro Carvalho Chehab Date: Fri Aug 21 14:17:13 2015 -0300 [media] DocBook/device-drivers: Add drivers/media core stuff There are lots of docbook marks at the media subsystem, but those aren't used. Add the core headers/code in order to start generating docs. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 30 ++++++++++++++++++++++++++++++ drivers/media/dvb-core/dvb_math.h | 10 ++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) commit 88c25dcb1185f2c7041550976430e27fa9d8dcca Author: Mauro Carvalho Chehab Date: Fri Aug 21 13:37:54 2015 -0300 [media] DocBook: fix an unbalanced tag The got lost on some change at the DVB docbook, making the tag unbalanced and causing a warning. Fix it. Signed-off-by: Mauro Carvalho Chehab Acked-by: Jonathan Corbet Documentation/DocBook/media/dvb/intro.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e53909a1cf0153736fb52c216558a65530d8c40 Merge: 82819ff 1c0bd0e Author: Ingo Molnar Date: Sat Aug 22 08:45:46 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Fix segfault using 'perf script --show-mmap-events', affects only current perf/core. (Adrian Hunter) - /proc/kcore requires CAP_SYS_RAWIO message too noisy, make it debug only. (Adrian Hunter) - Fix Intel PT timestamp handling. (Adrian Hunter) - Add Intel BTS support, with a call-graph script to show it and PT in use in a GUI using 'perf script' python scripting with postgresql and Qt. (Adrian Hunter) - Add checks for returned EVENT_ERROR type in libtraceevent, fixing a bug that surfaced on arm64 systems. (Dean Nelson) - Fallback to using kallsyms when libdw fails to handle a vmlinux file, that can happen, for instance, when perf is statically linked and then libdw fails to load libebl_{arch}.so. (Wang Nan) Infrastructure changes: - Initialize reference counts in map__clone(). (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit dac2ddefe62841efc0b6cdcb0bbf3e3594aa01bf Author: Chao Yu Date: Wed Aug 19 19:16:09 2015 +0800 f2fs: lookup neighbor extent nodes for merging later In __lookup_extent_tree_ret we will not try to find neighbor nodes if we find the target node, in this condition, we will lost the chance to merge the new mapping with exist extent node later. So our extent cache of inode will be fragmented after overwrite exist file, we can see the number of extent node increases intensively in following test case: dd if=/dev/zero of=/mnt/f2fs/4m bs=4K count=1024 Extent Cache: - Hit Count: L1-1:0 L1-2:0 L2:0 - Hit Ratio: 0% (0 / 3072) - Inner Struct Count: tree: 1, node: 1 dd if=/dev/zero of=/mnt/f2fs/4m bs=4K count=1024 conv=notrunc Extent Cache: - Hit Count: L1-1:2048 L1-2:0 L2:0 - Hit Ratio: 33% (2048 / 6144) - Inner Struct Count: tree: 1, node: 961 This patch fixes to lookup neighbors of target node for further merging. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) commit ef05e221995057a8588cad675992ca2cb47e9891 Author: Chao Yu Date: Wed Aug 19 19:15:09 2015 +0800 f2fs: split __insert_extent_tree_ret for readability This patch splits __insert_extent_tree_ret into __try_merge_extent_node & __insert_extent_tree for code readability. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) commit a6f7834594a284316b38d0885b2ee1ab47899dbc Author: Chao Yu Date: Wed Aug 19 19:14:15 2015 +0800 f2fs: kill dead code in __insert_extent_tree After commit 0f825ee6e873 ("f2fs: add new interfaces for extent tree"), f2fs_init_extent_tree becomes the only caller of __insert_extent_tree, and in f2fs_init_extent_tree, we will only insert extent node in an empty tree, so __try_{back,front}_merge in __insert_extent_tree will never be called. This patch removes these dead codes, besides, rename __insert_extent_tree to __init_extent_tree for readability. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 82 ++++---------------------------------------------- 1 file changed, 6 insertions(+), 76 deletions(-) commit 029e13cc3221be4bc46909225142277fee52c37e Author: Chao Yu Date: Wed Aug 19 19:13:25 2015 +0800 f2fs: adjust showing of extent cache stat This patch alters to replace total hit stat with rbtree hit stat, and then adjust showing of extent cache stat: Hit Count: L1-1: for largest node hit count; L1-2: for last cached node hit count; L2: for extent node hit after lookuping in rbtree. Hit Ratio: ratio (hit count / total lookup count) Inner Struct Count: tree count, node count. Before: Extent Hit Ratio: 0 / 2 Extent Tree Count: 3 Extent Node Count: 2 Patched: Exten Cacache: - Hit Count: L1-1:4871 L1-2:2074 L2:208 - Hit Ratio: 1% (7153 / 550751) - Inner Struct Count: tree: 26560, node: 11824 Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 18 ++++++++++++------ fs/f2fs/extent_cache.c | 10 +++++----- fs/f2fs/f2fs.h | 9 +++++---- 3 files changed, 22 insertions(+), 15 deletions(-) commit 91c481fff92c705dd382f1f53c01e6b6b88507d0 Author: Chao Yu Date: Wed Aug 19 19:12:20 2015 +0800 f2fs: add largest/cached stat in extent cache This patch adds to stat the hit count of largest/cached node for showing in debugfs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 9 +++++++-- fs/f2fs/extent_cache.c | 14 +++++++++----- fs/f2fs/f2fs.h | 8 +++++++- 3 files changed, 23 insertions(+), 8 deletions(-) commit e2b4e2bc8865e03eecd49caa9713a2402a96bba9 Author: Chao Yu Date: Wed Aug 19 19:11:19 2015 +0800 f2fs: fix incorrect mapping for bmap The test step is like below: 1. touch file 2. truncate -s $((1024*1024)) file 3. fallocate -o 0 -l $((1024*1024)) file 4. fibmap.f2fs file Our result of fibmap.f2fs showed below is not correct: file_pos start_blk end_blk blks 0 -937166132 -937166132 1 4096 -937166132 -937166132 1 8192 -937166132 -937166132 1 12288 -937166132 -937166132 1 16384 -937166132 -937166132 1 20480 -937166132 -937166132 1 ... 1040384 -937166132 -937166132 1 1044480 -937166132 -937166132 1 This is because f2fs_map_blocks will return with no error when meeting a hole or preallocated block, the caller __get_data_block will map the uninitialized variable value to bh->b_blocknr. Unfortunately generic_block_bmap will neither check the return value of get_data() nor check mapping info of buffer_head, result in returning the random block address. After fixing the issue, our result shows correctly: file_pos start_blk end_blk blks 0 0 0 256 Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 48 ++++++++++++++++++++++++++++++++++++------------ fs/f2fs/f2fs.h | 6 ++++++ 2 files changed, 42 insertions(+), 12 deletions(-) commit c031f6a904975d5fa84c541333cce444a21ca713 Author: Chao Yu Date: Wed Aug 19 19:02:02 2015 +0800 f2fs: add annotation for space utilization of regular/inline dentry Add annotation to let us know more clearly about space utilization information of regular dentry and inline dentry. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim include/linux/f2fs_fs.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit f8b703da2c23f9bfda7299bd14e4f7201c2be3c8 Author: Fan Li Date: Tue Aug 18 17:13:13 2015 +0800 f2fs: fix to update cached_en of extent tree properly In f2fs_lookup_extent_tree, et->cached_en was read and updated with only read lock held, it could cause __lookup_extent_tree within return entirely wrong extent_node, if other thread update et->cached_en just before __lookup_extent_tree return. However, there are two things about this patch that need to be noticed: 1. It does no good to arrange the order of concurrent read/write, the result would still be random in such case. 2. It's built on this assumption: the mix up of reads and writes on a single pointer would not make the pointer partially wrong at any time. Please let me know if I'm wrong, thx. Signed-off-by: Fan li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 217940d4f0c4ec4f0852f7046fa419d0edf65c17 Author: Junesung Lee Date: Tue Aug 18 22:42:15 2015 +0900 f2fs: fix typo Fix typo. Signed-off-by: Junesung Lee Signed-off-by: Jaegeuk Kim fs/f2fs/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1d97b76c4af41c8e836e73742c91cbf97d7483c Author: Javier Martinez Canillas Date: Thu Aug 20 09:07:16 2015 +0200 mtd: dataflash: Export OF module alias information The SPI core currently reports the MODALIAS uevent as "spi:" even for SPI devices that were registered by OF. That means the OF module alias exported by MODULE_OF_TABLE(of,...) is currently not used and user-space has no way to autoload this module. But it is still a good practice to add the OF module alias information into the kernel module even when it currently is unused so once the SPI core is changed to report a correct OF modalias uevent, module autoloading will be working for this driver. Signed-off-by: Javier Martinez Canillas Signed-off-by: Brian Norris drivers/mtd/devices/mtd_dataflash.c | 1 + 1 file changed, 1 insertion(+) commit 1a3232d2f61d2853a848464b7bde2d54960c58bb Author: Mengdong Lin Date: Tue Aug 18 18:12:20 2015 +0800 ASoC: topology: Add support for TLV bytes controls Allow vendor drivers to define bespoke bytes ext handlers and IDs for TLV bytes controls. And the topology core will bind these handlers by matching IDs defined by the vendor driver and user space topology data file. And TLV callback binding is moved to soc_tplg_kcontrol_bind_io(). This function process all handler binding now. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc-topology.h | 11 +++++++++++ sound/soc/soc-topology.c | 42 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 3 deletions(-) commit 2b5cdb9156f76162d5302e2847f84a79de8a3ad1 Author: Mengdong Lin Date: Tue Aug 18 18:12:01 2015 +0800 ASoC: topology: Reduce arguments of soc_tplg_kcontrol_bind_io() Add the pointer of struct soc_tplg as one argument, so no need to pass standard/vendor specific kcontrol handlers and their count. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-topology.c | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) commit 88a17d8fb7c4a156ec13e6668b46dbbedf670ff7 Author: Mengdong Lin Date: Tue Aug 18 18:11:51 2015 +0800 ASoC: topology: Bind vendor specific kcontrol handlers before standard ones Vendor specific handlers should override standard handlers. So we can handle things in the order from specific to generic. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown include/sound/soc-topology.h | 2 +- sound/soc/soc-topology.c | 36 ++++++++++++++++++------------------ 2 files changed, 19 insertions(+), 19 deletions(-) commit d033de5ceee8333e4fee3d59a956244d3736102a Merge: 1a8e7fa f7644cb Author: Mark Brown Date: Fri Aug 21 15:26:37 2015 -0700 Merge tag 'v4.2-rc6' into asoc-topology Linux 4.2-rc6 commit a887adadb7b9ef9eb4ee48e4ad575aefcfd1db14 Author: Alex Deucher Date: Fri Aug 21 18:07:38 2015 -0400 drm/amdgpu: Don't link train DisplayPort on HPD until we get the dpcd This is a port of: DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd to amdgpu. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 5 +++++ 1 file changed, 5 insertions(+) commit 924f92bf12bfbef3662619e3ed24a1cea7c1cbcd Author: Stephen Chandler Paul Date: Fri Aug 21 14:16:12 2015 -0400 DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd Most of the time this isn't an issue since hotplugging an adaptor will trigger a crtc mode change which in turn, causes the driver to probe every DisplayPort for a dpcd. However, in cases where hotplugging doesn't cause a mode change (specifically when one unplugs a monitor from a DisplayPort connector, then plugs that same monitor back in seconds later on the same port without any other monitors connected), we never probe for the dpcd before starting the initial link training. What happens from there looks like this: - GPU has only one monitor connected. It's connected via DisplayPort, and does not go through an adaptor of any sort. - User unplugs DisplayPort connector from GPU. - Change in HPD is detected by the driver, we probe every DisplayPort for a possible connection. - Probe the port the user originally had the monitor connected on for it's dpcd. This fails, and we clear the first (and only the first) byte of the dpcd to indicate we no longer have a dpcd for this port. - User plugs the previously disconnected monitor back into the same DisplayPort. - radeon_connector_hotplug() is called before everyone else, and tries to handle the link training. Since only the first byte of the dpcd is zeroed, the driver is able to complete link training but does so against the wrong dpcd, causing it to initialize the link with the wrong settings. - Display stays blank (usually), dpcd is probed after the initial link training, and the driver prints no obvious messages to the log. In theory, since only one byte of the dpcd is chopped off (specifically, the byte that contains the revision information for DisplayPort), it's not entirely impossible that this bug may not show on certain monitors. For instance, the only reason this bug was visible on my ASUS PB238 monitor was due to the fact that this monitor using the enhanced framing symbol sequence, the flag for which is ignored if the radeon driver thinks that the DisplayPort version is below 1.1. Signed-off-by: Stephen Chandler Paul Reviewed-by: Jerome Glisse Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org drivers/gpu/drm/radeon/radeon_connectors.c | 5 +++++ 1 file changed, 5 insertions(+) commit 116984a316c3a3200f8a7912110cc4a6d6c0989e Author: Pablo Neira Ayuso Date: Fri Aug 21 21:34:08 2015 +0200 netfilter: xt_TEE: use IS_ENABLED(CONFIG_NF_DUP_IPV6) Instead of IS_ENABLED(CONFIG_IPV6), otherwise we hit: et/built-in.o: In function `tee_tg6': >> xt_TEE.c:(.text+0x6cd8c): undefined reference to `nf_dup_ipv6' when: CONFIG_IPV6=y CONFIG_NF_DUP_IPV4=y # CONFIG_NF_DUP_IPV6 is not set CONFIG_NETFILTER_XT_TARGET_TEE=y Reported-by: kbuild test robot Signed-off-by: Pablo Neira Ayuso net/netfilter/xt_TEE.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 59e26423e00263b6b06b39d219147f22610ce5d6 Author: Pablo Neira Ayuso Date: Fri Aug 21 21:28:10 2015 +0200 netfilter: nf_dup: fix sparse warnings >> net/ipv4/netfilter/nft_dup_ipv4.c:29:37: sparse: incorrect type in initializer (different base types) net/ipv4/netfilter/nft_dup_ipv4.c:29:37: expected restricted __be32 [user type] s_addr net/ipv4/netfilter/nft_dup_ipv4.c:29:37: got unsigned int [unsigned] >> net/ipv6/netfilter/nf_dup_ipv6.c:48:23: sparse: incorrect type in assignment (different base types) net/ipv6/netfilter/nf_dup_ipv6.c:48:23: expected restricted __be32 [addressable] [assigned] [usertype] flowlabel net/ipv6/netfilter/nf_dup_ipv6.c:48:23: got int Reported-by: kbuild test robot Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/nft_dup_ipv4.c | 2 +- net/ipv6/netfilter/nf_dup_ipv6.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit dc25b25897289bad4907f30151ffe5baf75ff369 Merge: 1a69205 0bad909 Author: David S. Miller Date: Fri Aug 21 11:44:04 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/usb/qmi_wwan.c Overlapping additions of new device IDs to qmi_wwan.c Signed-off-by: David S. Miller commit 1a69205c471221a7f9101df164642611e37c52e4 Author: David S. Miller Date: Fri Aug 21 11:38:41 2015 -0700 enic: Fix build failure with SRIOV disabled. err_out_vnic_unregister is used regardless of whether SRIOV is enabled or not. Reported-by: Jesse Brandeburg Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5f58f2d700ef484fc2fbaa9c624c6076109f989 Author: Markus Pargmann Date: Fri Aug 21 10:26:40 2015 +0200 regmap: Add missing comments about struct regmap_bus There are some fields of this struct undocumented or old. This patch updates the missing comments. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown include/linux/regmap.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f09d4f26f6192ec9b060047cc7126e01980bb36c Author: Jeeja KP Date: Fri Aug 21 21:36:21 2015 +0530 ALSA: hdac: Remove the usage of key for host stream hdac_ext_stream assign doesn't require key mapping as in case of hdac_stream. So for host stream, the key to device mapping needs to be removed. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_stream.c | 6 ------ 1 file changed, 6 deletions(-) commit ee8bc4df1b5a9df1ede13975c40dec7009214595 Author: Jeeja KP Date: Fri Aug 21 21:36:20 2015 +0530 ALSA: hdac: Add support to enable SPIB for hdac ext stream The drivers need to set the spib and maxfifios values, so add these new APIs snd_hdac_ext_stream_set_spib() and snd_hdac_ext_stream_set_spbmaxfifo() APIs For these APIs we also need to have spib and fifos pointer, so add these to hdac_ext_stream and initialize them at stream init Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hda_register.h | 4 +++ include/sound/hdaudio_ext.h | 10 ++++++++ sound/hda/ext/hdac_ext_stream.c | 54 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) commit c5b0c09b8fa3e02d9cbfd9445fb4114becdd3390 Author: Jeeja KP Date: Fri Aug 21 21:36:18 2015 +0530 ALSA: hdac: Add snd_hdac_ext_bus_link_power_down_all() New HDA controllers like Skylake sport multiple HDA links, so we need a helper to turn off all the links in one go while suspending the device so add snd_hdac_ext_bus_link_power_down_all() API Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 1 + sound/hda/ext/hdac_ext_controller.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) commit a7e3dd85cab1c6990cafd0bedb0b8809f15149b0 Author: Jeeja KP Date: Fri Aug 21 21:36:17 2015 +0530 ALSA: hdac: Fix to read the correct offset of spcap/link register SPCAP and Mutilink register offset were incorrect as offset needs to be based on capability offset. So correct the offset for read/write of spcap/link register. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai sound/hda/ext/hdac_ext_controller.c | 10 +++++----- sound/hda/ext/hdac_ext_stream.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) commit 9bc07dfbcde5b6f3aefa06b902b47eef9769d260 Author: Lars-Peter Clausen Date: Fri Aug 21 09:48:33 2015 +0200 ALSA: ac97: Switch to dev_pm_ops Convert the ac97_bus from legacy suspend/resume callbacks to dev_pm_ops. Since there isn't anything special to do at the bus level the bus driver does not have to implement any callbacks. The device driver core will automatically pick up and execute the device's PM ops. As there is only a single AC'97 driver implementing suspend and resume, update both the core and driver at the same time to avoid unnecessary code churn. While we are at it also drop the ifdefs around the suspend/resume functions to increase compile test coverage. Signed-off-by: Lars-Peter Clausen Acked-by: Dmitry Torokhov Signed-off-by: Takashi Iwai drivers/input/touchscreen/wm97xx-core.c | 13 ++++--------- sound/ac97_bus.c | 26 -------------------------- 2 files changed, 4 insertions(+), 35 deletions(-) commit 00833d70ca29a9d60c694b9475a9d3327ed9461e Merge: fa4f18b f6b28e4 Author: Takashi Iwai Date: Fri Aug 21 19:26:48 2015 +0200 Merge branch 'for-linus' into for-next commit c4fe57f76269dbb2af135071513f260ca40229a3 Author: Michael van der Westhuizen Date: Tue Aug 18 22:21:53 2015 +0200 spi: dw: Allow interface drivers to limit data I/O to word sizes The commit dd11444327ce ("spi: dw-spi: Convert 16bit accesses to 32bit accesses") changed all 16bit accesses in the DW_apb_ssi driver to 32bit. This, unfortunately, breaks data register access on picoXcell, where the DW IP needs data register accesses to be word accesses (all other accesses appear to be OK). This change introduces a new master variable to allow interface drivers to specify that 16bit data transfer I/O is required. This change also introduces the ability to set this variable via device tree bindings in the MMIO interface driver. Both the core and the MMIO interface driver default to the current 32bit behaviour. Before this change, on a picoXcell pc3x3: spi_master spi32766: interrupt_transfer: fifo overrun/underrun m25p80 spi32766.0: error -5 reading 9f m25p80: probe of spi32766.0 failed with error -5 After this change: m25p80 spi32766.0: m25p40 (512 Kbytes) Fixes: dd11444327ce ("spi: dw-spi: Convert 16bit accesses to 32bit accesses") Signed-off-by: Michael van der Westhuizen Reviewed-by: Andy Shevchenko Signed-off-by: Mark Brown drivers/spi/spi-dw-mmio.c | 3 +++ drivers/spi/spi-dw.c | 4 ++-- drivers/spi/spi-dw.h | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) commit 4b226fbde68b8bfb66452067523a677b8e6492fa Author: Michael van der Westhuizen Date: Tue Aug 18 22:21:52 2015 +0200 dt: snps,dw-apb-ssi: Document new I/O data register width property This change documents a new property for the snps,dw-apb-ssi device, allowing an implementer to specify either four byte or two bytes access to the SPI controller data register. This supports a change that unbreaks this driver on picoXcell platforms. Signed-off-by: Michael van der Westhuizen Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.txt | 2 ++ 1 file changed, 2 insertions(+) commit 7dc9fbc342deb2e2658ebdecb5ffd7ff57945a66 Author: Mark Brown Date: Thu Aug 20 11:52:18 2015 -0700 spi: Fall back to master maximum speed if no slave speed specified If a slave appears with no maximum transfer speed specified fall back to using the maximum for the master instead. It's questionable if we should let slaves do this but let's be defensive. Signed-off-by: Mark Brown drivers/spi/spi.c | 2 ++ 1 file changed, 2 insertions(+) commit f4be3c67ed5829462f53e225edd95029bb0793c4 Merge: 99650c2 17cdddf Author: Olof Johansson Date: Fri Aug 21 10:15:29 2015 -0700 Merge tag 'tegra-for-4.3-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt ARM: tegra: Devicetree changes for v4.3-rc1 Enables CPU frequency scaling on Jetson TK1 and enables the GK20A GPU on Venice2 and Jetson TK1. This also enables support for the PMU hardware found on Tegra124, which among other things, can be used for performance measurements. * tag 'tegra-for-4.3-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: Add gpio-ranges property ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114 ARM: tegra: Add Tegra124 PMU support ARM: tegra: jetson-tk1: Add GK20A GPU DT node ARM: tegra: venice2: Add GK20A GPU DT node ARM: tegra: Add IOMMU node to GK20A ARM: tegra: Add CPU regulator to the Jetson TK1 device tree ARM: tegra: Add entries for cpufreq on Tegra124 ARM: tegra: Enable the DFLL on the Jetson TK1 ARM: tegra: Add the DFLL to Tegra124 device tree pinctrl: tegra: Only set the gpio range if needed clk: tegra: Add the DFLL as a possible parent of the cclk_g clock clk: tegra: Save/restore CCLKG_BURST_POLICY on suspend clk: tegra: Add Tegra124 DFLL clocksource platform driver clk: tegra: Add DFLL DVCO reset control for Tegra124 clk: tegra: Introduce ability for SoC-specific reset control callbacks clk: tegra: Add functions for parsing CVB tables clk: tegra: Add closed loop support for the DFLL clk: tegra: Add library for the DFLL clock source (open-loop mode) clk: tegra: Add binding for the Tegra124 DFLL clocksource Signed-off-by: Olof Johansson commit 3a9508b0221dfd290b95fb0ab199958fe078bbdf Author: Chris Mason Date: Fri Aug 21 10:05:39 2015 -0700 btrfs: fix compile when block cgroups are not enabled bio->bi_css and bio->bi_ioc don't exist when block cgroups are not on. This adds an ifdef around them. It's not perfect, but our use of bi_ioc is being removed in the 4.3 merge window. The bi_css usage really should go into bio_clone, but I want to make sure that doesn't introduce problems for other bio_clone use cases. Signed-off-by: Chris Mason fs/btrfs/extent_io.c | 3 +++ fs/btrfs/volumes.c | 2 ++ 2 files changed, 5 insertions(+) commit 17cdddf0fb684f5456c1af3aa2c10aca3b68b8de Author: Tomeu Vizoso Date: Tue Jul 14 10:29:56 2015 +0200 ARM: tegra: Add gpio-ranges property Specify how the GPIOs map to the pins in Tegra SoCs, so the dependency is explicit. Signed-off-by: Tomeu Vizoso Acked-by: Stephen Warren Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra114.dtsi | 1 + arch/arm/boot/dts/tegra124.dtsi | 1 + arch/arm/boot/dts/tegra20.dtsi | 1 + arch/arm/boot/dts/tegra30.dtsi | 1 + 4 files changed, 4 insertions(+) commit 0d5ccb38d19574fecfa471205317d37221ec59a7 Author: Nicolas Chauvet Date: Sat Aug 8 15:58:12 2015 +0200 ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114 Current base address is wrong by 0x04 bytes for AHB bus device as shown in dmesg: tegra-ahb 6000c004.ahb: incorrect AHB base address in DT data - enabling workaround To correct old DTBs, commit ce7a10b0ff3d ("ARM: 8334/1: amba: tegra-ahb: detect and correct bogus base address") checks for the low bit of the base address and removes theses 0x04 bytes at runtime. This patch fixes the original DTS, so upstream version doesn't need the workaround of the base address. As both addresses are valid, this patch doesn't break compatibility. Tested on tegra20-paz00 (aka ac100). Signed-off-by: Nicolas Chauvet Reviewed-by: Paul Walmsley Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra114.dtsi | 4 ++-- arch/arm/boot/dts/tegra20.dtsi | 4 ++-- arch/arm/boot/dts/tegra30.dtsi | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit 82fe42f5d7b01848a6fc2aee150a4050ca56b1e0 Author: Kyle Huey Date: Mon Jul 13 10:35:45 2015 -0700 ARM: tegra: Add Tegra124 PMU support This patch modifies the device tree for Tegra124 based devices to enable the Cortex A15 PMU. The interrupt numbers are taken from NVIDIA Tegra K1 TRM (DP-06905-001_v03p). This patch was tested on a Jetson TK1. Signed-off-by: Kyle Huey Acked-by: Mark Rutland Acked-by: Jon Hunter Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 21fa196fc0f4b79abb923042cb89651ca47b4b92 Author: Alexandre Courbot Date: Wed Jul 1 18:13:47 2015 +0900 ARM: tegra: jetson-tk1: Add GK20A GPU DT node Add the device-tree node for the GK20A GPU and leave it disabled. It is the responsibility of the bootloader to enable it if the VPR registers have been programmed such that the GPU can operate. Signed-off-by: Alexandre Courbot Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124-jetson-tk1.dts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit e34cc1b6b7115de2320c2acdb62c82ebeb502c01 Author: Thierry Reding Date: Wed Jul 1 18:13:46 2015 +0900 ARM: tegra: venice2: Add GK20A GPU DT node Add the device-tree node for the GK20A GPU and leave it disabled. It is the responsibility of the bootloader to enable it if the VPR registers have been programmed such that the GPU can operate. Signed-off-by: Thierry Reding Signed-off-by: Alexandre Courbot arch/arm/boot/dts/tegra124-venice2.dts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit c96cd17708cfcffc9ccf2132fdcb360fa04f092f Author: Alexandre Courbot Date: Wed Jul 1 18:13:45 2015 +0900 ARM: tegra: Add IOMMU node to GK20A Nouveau can make use of the IOMMU to make physical appear linear in the GPU address space. Signed-off-by: Alexandre Courbot Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit ee9f106feafcf73dd56872718ec20ee1f787da1b Author: Mikko Perttunen Date: Wed May 13 17:58:50 2015 +0300 ARM: tegra: Add CPU regulator to the Jetson TK1 device tree Specify the CPU voltage regulator for the cpufreq driver. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124-jetson-tk1.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 0de088cc3463d451ca96439c723cc58932430820 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:49 2015 +0300 ARM: tegra: Add entries for cpufreq on Tegra124 The Tegra124 cpufreq driver relies on certain clocks being present in the /cpus/cpu@0 node. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 9be1e477c31437907d0db4fa72d7c2920dfdeec8 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:45 2015 +0300 ARM: tegra: Enable the DFLL on the Jetson TK1 Add the board-specific properties of the DFLL for the Jetson TK1 board. On this board, the DFLL will take control of the sd0 regulator on the on-board AS3722 PMIC. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124-jetson-tk1.dts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit bf9d026775796bec30895cab080baf37b70bc3b3 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:44 2015 +0300 ARM: tegra: Add the DFLL to Tegra124 device tree The DFLL clocksource is a separate IP block from the usual clock-and-reset controller, so it gets its own device tree node. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette Signed-off-by: Thierry Reding arch/arm/boot/dts/tegra124.dtsi | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 233da3b1c620b10a70c019b2134e7b1276b57695 Merge: 7292ba6 79cf95c Author: Thierry Reding Date: Fri Aug 21 18:44:15 2015 +0200 Merge branch 'for-4.3/clk' into for-4.3/dt commit 7292ba64bd56d39c3b1fe4cbe8559e6c95858180 Merge: d770e55 9462510 Author: Thierry Reding Date: Fri Aug 21 18:44:05 2015 +0200 Merge branch 'for-4.3/pinctrl' into for-4.3/dt commit 6be4b0da4ecf1472cb4a064c752214dcb2ba4be2 Author: Fabio Estevam Date: Wed Aug 19 15:31:30 2015 -0300 ARM: imx: mach-imx6ul: Fix allmodconfig build We should call phy_register_fixup_for_uid() only when CONFIG_PHYLIB is built-in, otherwise we get the following link error when building allmodconfig: arch/arm/mach-imx/built-in.o: In function `imx6ul_init_machine': :(.init.text+0xa714): undefined reference to `phy_register_fixup_for_uid' This is the same approach done in mach-imx6q.c and mach-imx6sx.c. Reported-by: Olof Johansson Signed-off-by: Fabio Estevam Acked-by: Shawn Guo Signed-off-by: Olof Johansson arch/arm/mach-imx/mach-imx6ul.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9c9f7f675970ba1b888272f016157de21f69e7e2 Author: Markus Pargmann Date: Fri Aug 21 10:26:43 2015 +0200 regmap: No multi_write support if bus->write does not exist There is no multi_write support available if we cannot use raw_write. This is the case if bus->write is not implemented. This patch adds a condition that we need bus and bus->write so that can_multi_write is true. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67921a1a6660d32cc2770d05d656a1187b6d94d5 Author: Markus Pargmann Date: Fri Aug 21 10:26:42 2015 +0200 regmap: Split use_single_rw internally into use_single_read/write use_single_rw currently reflects the capabilities of the connected device. The capabilities of the bus are currently missing for this variable. As there are read only and write only buses we need seperate values for use_single_rw to also reflect tha capabilities of the bus. This patch splits use_single_rw into use_single_read and use_single_write. The initialization is changed to check the configuration for use_single_rw and to check the capabilities of the used bus. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/internal.h | 6 ++++-- drivers/base/regmap/regcache.c | 2 +- drivers/base/regmap/regmap-irq.c | 4 ++-- drivers/base/regmap/regmap.c | 9 +++++---- 4 files changed, 12 insertions(+), 9 deletions(-) commit 9c8f55798a9d716daed4de6d7038a21c3ca6e673 Author: Dan Carpenter Date: Fri Aug 21 09:29:50 2015 -0700 Input: sentelic - silence some underflow warnings I have a static checker that complains when we check for an upper bound but don't have a corresponding check for a lower bound. With this code, the upper bound check seems not really required, so it is not a bug to leave the lower bound check out as well. But let's silence the warning by making these variables unsigned. Signed-off-by: Dan Carpenter Signed-off-by: Dmitry Torokhov drivers/input/mouse/sentelic.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit c594b7f21d7d02115e828db46fddbba1da7ed1b8 Author: Markus Pargmann Date: Fri Aug 21 10:26:41 2015 +0200 regmap: Fix regmap_bulk_write for bus writes The regmap config does not prohibit val_bytes that are not powers of two. But the current code of regmap_bulk_write for use_single_rw does limit the possible val_bytes to 1, 2 and 4. This patch fixes the behaviour to allow bus writes with non-standard val_bytes sizes. Cc: Stephen Boyd Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit 330349fae46f8400e86ef98ee05af4ba13466f49 Merge: efd16bd 5be9fc2 Author: Olof Johansson Date: Fri Aug 21 09:10:50 2015 -0700 Merge tag 'mvebu-fixes-4.2-1' of git://git.infradead.org/linux-mvebu into next/fixes-non-critical mvebu fixes changes for v4.2 Fix legacy orion5x IRQ numbers broken since 3.18 * tag 'mvebu-fixes-4.2-1' of git://git.infradead.org/linux-mvebu: ARM: orion5x: fix legacy orion5x IRQ numbers Signed-off-by: Olof Johansson commit d33288172e72c4729e8b9f2243fb40601afabc8f Author: Julian Anastasov Date: Sun Jul 26 15:03:28 2015 +0300 ipvs: add more mcast parameters for the sync daemon - mcast_group: configure the multicast address, now IPv6 is supported too - mcast_port: configure the multicast port - mcast_ttl: configure the multicast TTL/HOP_LIMIT Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman include/net/ip_vs.h | 4 ++ include/uapi/linux/ip_vs.h | 4 ++ net/netfilter/ipvs/ip_vs_ctl.c | 50 ++++++++++++++- net/netfilter/ipvs/ip_vs_sync.c | 138 +++++++++++++++++++++++++++++++++------- 4 files changed, 172 insertions(+), 24 deletions(-) commit e4ff67513096e6e196ca58043fce04d0f87babbe Author: Julian Anastasov Date: Sun Jul 26 15:03:27 2015 +0300 ipvs: add sync_maxlen parameter for the sync daemon Allow setups with large MTU to send large sync packets by adding sync_maxlen parameter. The default value is now based on MTU but no more than 1500 for compatibility reasons. To avoid problems if MTU changes allow fragmentation by sending packets with DF=0. Problem reported by Dan Carpenter. Reported-by: Dan Carpenter Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman include/net/ip_vs.h | 19 +++--- include/uapi/linux/ip_vs.h | 1 + net/netfilter/ipvs/ip_vs_ctl.c | 53 ++++++++++------ net/netfilter/ipvs/ip_vs_sync.c | 137 ++++++++++++++++++---------------------- 4 files changed, 108 insertions(+), 102 deletions(-) commit 99650c258a4bbe7e62754c734c3888f29b59f72a Author: Moritz Fischer Date: Thu Jul 30 18:13:55 2015 -0700 ARM: dts: zynq: Add devicetree entry for Xilinx Zynq reset controller. Signed-off-by: Moritz Fischer Signed-off-by: Michal Simek Signed-off-by: Olof Johansson arch/arm/boot/dts/zynq-7000.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit e0b26cc997d57305b4097711e12e13992580ae34 Author: Julian Anastasov Date: Sun Jul 26 14:57:34 2015 +0300 ipvs: call rtnl_lock early When the sync damon is started we need to hold rtnl lock while calling ip_mc_join_group. Currently, we have a wrong locking order because the correct one is rtnl_lock->__ip_vs_mutex. It is implied from the usage of __ip_vs_mutex in ip_vs_dst_event() which is called under rtnl lock during NETDEV_* notifications. Fix the problem by calling rtnl_lock early only for the start_sync_thread call. As a bonus this fixes the usage __dev_get_by_name which was not called under rtnl lock. This patch actually extends and depends on commit 54ff9ef36bdf ("ipv4, ipv6: kill ip_mc_{join, leave}_group and ipv6_sock_mc_{join, drop}"). Signed-off-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/ip_vs_ctl.c | 50 +++++++++++++++++++++++++++-------------- net/netfilter/ipvs/ip_vs_sync.c | 2 -- 2 files changed, 33 insertions(+), 19 deletions(-) commit eefa32d3f3c54bc7f9704968bc78adf0439c6c2a Author: Raducu Deaconu Date: Fri Jul 17 08:45:40 2015 +0300 ipvs: Add ovf scheduler The weighted overflow scheduling algorithm directs network connections to the server with the highest weight that is currently available and overflows to the next when active connections exceed the node's weight. Signed-off-by: Raducu Deaconu Acked-by: Julian Anastasov Signed-off-by: Simon Horman net/netfilter/ipvs/Kconfig | 11 ++++++ net/netfilter/ipvs/Makefile | 1 + net/netfilter/ipvs/ip_vs_ovf.c | 86 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) commit ee3010d0ab288d1c307464c1bd1dc3bf16aca7e4 Author: Marek Szyprowski Date: Fri Aug 21 14:38:39 2015 +0200 regulators: max77693: register driver earlier to avoid deferred probe MAX77693 based regulators are used by USB gadget subsystem, which doesn't support deferred probe, so the driver should be registered before USB gadget drivers get probed. Signed-off-by: Marek Szyprowski Signed-off-by: Mark Brown drivers/regulator/max77693.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 54d8697fa5036df0e27f8d62edb7ebc35c3f73d6 Author: Axel Lin Date: Fri Aug 21 20:59:21 2015 +0800 ASoC: Set missing card owner field Set the card owner field to prevent the module from being removed from underneath its users. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/blackfin/bfin-eval-adau1x61.c | 1 + sound/soc/intel/boards/byt-max98090.c | 1 + sound/soc/intel/boards/byt-rt5640.c | 1 + sound/soc/intel/boards/bytcr_rt5640.c | 1 + sound/soc/intel/boards/cht_bsw_max98090_ti.c | 1 + sound/soc/intel/boards/cht_bsw_rt5645.c | 2 ++ sound/soc/intel/boards/cht_bsw_rt5672.c | 1 + sound/soc/mediatek/mt8173-max98090.c | 1 + sound/soc/mediatek/mt8173-rt5650-rt5676.c | 1 + sound/soc/rockchip/rockchip_max98090.c | 1 + sound/soc/rockchip/rockchip_rt5645.c | 1 + sound/soc/samsung/arndale_rt5631.c | 1 + sound/soc/samsung/snow.c | 1 + 13 files changed, 14 insertions(+) commit 1c0bd0e891aaed0219010bfe79b32e1b0b82d662 Author: Wang Nan Date: Fri Aug 21 10:09:02 2015 +0000 perf probe: Try to use symbol table if searching debug info failed A problem can occur in a statically linked perf when vmlinux can be found: # perf probe --add sys_epoll_pwait probe-definition(0): sys_epoll_pwait symbol:sys_epoll_pwait file:(null) line:0 offset:0 return:0 lazy:(null) 0 arguments Looking at the vmlinux_path (7 entries long) Using /lib/modules/4.2.0-rc1+/build/vmlinux for symbols Open Debuginfo file: /lib/modules/4.2.0-rc1+/build/vmlinux Try to find probe point from debuginfo. Symbol sys_epoll_pwait address found : ffffffff8122bd40 Matched function: SyS_epoll_pwait Failed to get call frame on 0xffffffff8122bd40 An error occurred in debuginfo analysis (-2). Error: Failed to add events. Reason: No such file or directory (Code: -2) The reason is caused by libdw that, if libdw is statically linked, it can't load libebl_{arch}.so reliable. In this case it is still possible to get the address from /proc/kalksyms. However, perf tries that only when libdw returns -EBADF. This patch gives it another chance to utilize symbol table, even if libdw returns an error code other than -EBADF. After applying this patch: # perf probe -nv --add sys_epoll_pwait probe-definition(0): sys_epoll_pwait symbol:sys_epoll_pwait file:(null) line:0 offset:0 return:0 lazy:(null) 0 arguments Looking at the vmlinux_path (7 entries long) Using /lib/modules/4.2.0-rc1+/build/vmlinux for symbols Open Debuginfo file: /lib/modules/4.2.0-rc1+/build/vmlinux Try to find probe point from debuginfo. Symbol sys_epoll_pwait address found : ffffffff8122bd40 Matched function: SyS_epoll_pwait Failed to get call frame on 0xffffffff8122bd40 An error occurred in debuginfo analysis (-2). Trying to use symbols. Opening /sys/kernel/debug/tracing/kprobe_events write=1 Added new event: Writing event: p:probe/sys_epoll_pwait _text+2276672 probe:sys_epoll_pwait (on sys_epoll_pwait) You can now use it in all perf tools, such as: perf record -e probe:sys_epoll_pwait -aR sleep 1 Although libdw returns an error (Failed to get call frame), perf tries symbol table and finally gets correct address. Signed-off-by: Wang Nan 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/1440151770-129878-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 66671d001aeb525b9101e0ccb9062627539de555 Author: Arnaldo Carvalho de Melo Date: Tue Aug 18 15:19:50 2015 -0300 perf tools: Initialize reference counts in map__clone() Map clone was written before we introduced reference counts for maps and dsos, so all that was needed was just a copy and then we would insert it into the new map_groups instance. Fix it by, after copying, initializing the map->refcnt, grabbing a struct dso refcount and resetting pointers that may be used to determine if a map, when deleted, is in a rb_tree. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-pd4mr80o5b9gvk50iineacec@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 5be9fc23cdb42e1d383ecc8eae8a8ff70a752708 Author: Benjamin Cama Date: Tue Jul 14 16:25:58 2015 +0200 ARM: orion5x: fix legacy orion5x IRQ numbers Since v3.18, attempts to deliver IRQ0 are rejected, breaking orion5x. Fix this by increasing all interrupts by one, as did 5d6bed2a9c8b for dove. Also, force MULTI_IRQ_HANDLER for all orion platforms (including dove) as the specific handler is needed to shift back IRQ numbers by one. [gregory.clement@free-electrons.com]: moved the select MULTI_IRQ_HANDLER from PLAT_ORION_LEGACY to ARCH_ORION5X as it broke the build for dove. Fixes: a71b092a9c68 ("ARM: Convert handle_IRQ to use __handle_domain_irq") Signed-off-by: Benjamin Cama Signed-off-by: Gregory CLEMENT Cc: Tested-by: Detlef Vollmann arch/arm/Kconfig | 1 + arch/arm/mach-orion5x/include/mach/irqs.h | 64 +++++++++++++++---------------- arch/arm/mach-orion5x/irq.c | 4 +- 3 files changed, 35 insertions(+), 34 deletions(-) commit 4b715d24f4f14731c7b553cbb8604fe865cb8d3c Author: Adrian Hunter Date: Fri Jul 17 19:33:45 2015 +0300 perf tools: Add example call-graph script Add a script to produce a call-graph from data exported to a postgresql database and derived from a processor trace event like intel_pt or intel_bts. Refer to comments in the scripts call-graph-from-postgresql.py and export-to-postgresql.py for more details on how to set up the environment, install the required packages, etc. Committer note: From the scripts, for convenience while reading 'git log': An example of using this script with Intel PT: $ perf record -e intel_pt//u ls $ perf script -s ~/libexec/perf-core/scripts/python/export-to-postgresql.py pt_example branches calls 2015-05-29 12:49:23.464364 Creating database... 2015-05-29 12:49:26.281717 Writing to intermediate files... 2015-05-29 12:49:27.190383 Copying to database... 2015-05-29 12:49:28.140451 Removing intermediate files... 2015-05-29 12:49:28.147451 Adding primary keys 2015-05-29 12:49:28.655683 Adding foreign keys 2015-05-29 12:49:29.365350 Done $ python tools/perf/scripts/python/call-graph-from-postgresql.py pt_example # The result is a GUI window with a tree representing a context-sensitive # call-graph. Expanding a couple of levels of the tree and adjusting column # widths to suit will display something like: Call Graph: pt_example Call Path |Object |Count|Time(ns)|Time(%)|Branch Count|Branch Count(%) v- ls v- 2638:2638 v- _start ld-2.19.so 1 10074071 100.0 211135 100.0 |- unknown unknown 1 13198 0.1 1 0.0 >- _dl_start ld-2.19.so 1 1400980 13.9 19637 9.3 >- _d_linit_internal ld-2.19.so 1 448152 4.4 11094 5.3 v-__libc_start_main@plt ls 1 8211741 81.5 180397 85.4 >- _dl_fixup ld-2.19.so 1 7607 0.1 108 0.1 >- __cxa_atexit libc-2.19.so 1 11737 0.1 10 0.0 >- __libc_csu_init ls 1 10354 0.1 10 0.0 |- _setjmp libc-2.19.so 1 0 0.0 4 0.0 v- main ls 1 8182043 99.6 180254 99.9 Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-11-git-send-email-adrian.hunter@intel.com [ Added 'python-pyside qt-postgresql' to the yum cmdline installing required packages ] Signed-off-by: Arnaldo Carvalho de Melo .../scripts/python/call-graph-from-postgresql.py | 327 +++++++++++++++++++++ tools/perf/scripts/python/export-to-postgresql.py | 47 +++ 2 files changed, 374 insertions(+) commit b68c3161430a4c7c0a001e658188bfea6a2fe5bd Author: Pali Rohár Date: Tue Aug 11 13:22:19 2015 +0200 bq2415x_charger: Allow to load and use driver even if notify device is not registered yet Driver bq2415x_charger works also without notify power supply device for charger detection. But when charger detection is specified in DT, then bq2415x_charger refused to loaded with -EPROBE_DEFER. This patch rewrites code so that notify device for charger detection is checked when power supply event is received and not when registering power supply device. So this patch allows to use bq2415x_charger driver also when kernel is compiled without driver for notify power supply device. Now after this patch scheduled workqueue is called after INIT_DELAYED_WORK, so it also fix problem when scheduled workqueue was called before init. Signed-off-by: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/bq2415x_charger.c | 143 ++++++++++++++++++++++------------------ 1 file changed, 79 insertions(+), 64 deletions(-) commit 60b88d8743892218f82048a3df624f5fc5460843 Author: Adrian Hunter Date: Fri Jul 17 19:33:44 2015 +0300 perf tools: Put itrace options into an asciidoc include perf script, report and inject all have the same itrace options. Put them into an asciidoc include file. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-10-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/itrace.txt | 22 ++++++++++++++++++++++ tools/perf/Documentation/perf-inject.txt | 23 +---------------------- tools/perf/Documentation/perf-report.txt | 23 +---------------------- tools/perf/Documentation/perf-script.txt | 23 +---------------------- 4 files changed, 25 insertions(+), 66 deletions(-) commit d0170af7004dce9cd90b749842c37e379476cbc8 Author: Adrian Hunter Date: Fri Jul 17 19:33:43 2015 +0300 perf tools: Add Intel BTS support Intel BTS support fits within the new auxtrace infrastructure. Recording is supporting by identifying the Intel BTS PMU, parsing options and setting up events. Decoding is supported by queuing up trace data by thread and then decoding synchronously delivering synthesized event samples into the session processing for tools to consume. Committer note: E.g: [root@felicio ~]# perf record --per-thread -e intel_bts// ls anaconda-ks.cfg apctest.output bin kernel-rt-3.10.0-298.rt56.171.el7.x86_64.rpm libexec lock_page.bpf.c perf.data perf.data.old [ perf record: Woken up 3 times to write data ] [ perf record: Captured and wrote 4.367 MB perf.data ] [root@felicio ~]# perf evlist -v intel_bts//: type: 6, size: 112, { sample_period, sample_freq }: 1, sample_type: IP|TID|IDENTIFIER, read_format: ID, disabled: 1, enable_on_exec: 1, sample_id_all: 1, exclude_guest: 1 dummy:u: type: 1, size: 112, config: 0x9, { sample_period, sample_freq }: 1, sample_type: IP|TID|IDENTIFIER, read_format: ID, disabled: 1, exclude_kernel: 1, exclude_hv: 1, mmap: 1, comm: 1, enable_on_exec: 1, task: 1, sample_id_all: 1, mmap2: 1, comm_exec: 1 [root@felicio ~]# perf script # the navigate in the pager to some interesting place: ls 1843 1 branches: ffffffff810a60cb flush_signal_handlers ([kernel.kallsyms]) => ffffffff8121a522 setup_new_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8121a529 setup_new_exec ([kernel.kallsyms]) => ffffffff8122fa30 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa5d do_close_on_exec ([kernel.kallsyms]) => ffffffff81767ae0 _raw_spin_lock ([kernel.kallsyms]) ls 1843 1 branches: ffffffff81767af4 _raw_spin_lock ([kernel.kallsyms]) => ffffffff8122fa62 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec ([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec ([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec ([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec ([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec ([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec ([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fac9 do_close_on_exec ([kernel.kallsyms]) => ffffffff8122fad2 do_close_on_exec ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8122fadd do_close_on_exec ([kernel.kallsyms]) => ffffffff8120fc80 filp_close ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8120fcaf filp_close ([kernel.kallsyms]) => ffffffff8120fcb6 filp_close ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8120fcc2 filp_close ([kernel.kallsyms]) => ffffffff812547f0 dnotify_flush ([kernel.kallsyms]) ls 1843 1 branches: ffffffff81254823 dnotify_flush ([kernel.kallsyms]) => ffffffff8120fcc7 filp_close ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8120fccd filp_close ([kernel.kallsyms]) => ffffffff81261790 locks_remove_posix ([kernel.kallsyms]) ls 1843 1 branches: ffffffff812617a3 locks_remove_posix ([kernel.kallsyms]) => ffffffff812617b9 locks_remove_posix ([kernel.kallsyms]) ls 1843 1 branches: ffffffff812617b9 locks_remove_posix ([kernel.kallsyms]) => ffffffff8120fcd2 filp_close ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8120fcd5 filp_close ([kernel.kallsyms]) => ffffffff812142c0 fput ([kernel.kallsyms]) ls 1843 1 branches: ffffffff812142d6 fput ([kernel.kallsyms]) => ffffffff812142df fput ([kernel.kallsyms]) ls 1843 1 branches: ffffffff8121430c fput ([kernel.kallsyms]) => ffffffff810b6580 task_work_add ([kernel.kallsyms]) ls 1843 1 branches: ffffffff810b65ad task_work_add ([kernel.kallsyms]) => ffffffff810b65b1 task_work_add ([kernel.kallsyms]) ls 1843 1 branches: ffffffff810b65c1 task_work_add ([kernel.kallsyms]) => ffffffff810bc710 kick_process ([kernel.kallsyms]) ls 1843 1 branches: ffffffff810bc725 kick_process ([kernel.kallsyms]) => ffffffff810bc742 kick_process ([kernel.kallsyms]) ls 1843 1 branches: ffffffff810bc742 kick_process ([kernel.kallsyms]) => ffffffff810b65c6 task_work_add ([kernel.kallsyms]) ls 1843 1 branches: ffffffff810b65c9 task_work_add ([kernel.kallsyms]) => ffffffff81214311 fput ([kernel.kallsyms]) Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-9-git-send-email-adrian.hunter@intel.com [ Merged sample->time fix for bug found after first round of testing on slightly older kernel ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/intel-bts.txt | 86 +++ tools/perf/arch/x86/util/Build | 1 + tools/perf/arch/x86/util/auxtrace.c | 49 +- tools/perf/arch/x86/util/intel-bts.c | 458 ++++++++++++++++ tools/perf/arch/x86/util/pmu.c | 3 + tools/perf/util/Build | 1 + tools/perf/util/auxtrace.c | 3 + tools/perf/util/auxtrace.h | 1 + tools/perf/util/intel-bts.c | 933 +++++++++++++++++++++++++++++++++ tools/perf/util/intel-bts.h | 43 ++ tools/perf/util/pmu.c | 4 - 11 files changed, 1576 insertions(+), 6 deletions(-) commit d4421c54c45f643731c92daa8e268ce74dcdf5a2 Author: Herbert Xu Date: Thu Aug 20 17:02:40 2015 +0800 crypto: hash - Add AHASH_REQUEST_ON_STACK This patch adds the helper AHASH_REQUEST_ON_STACK for those users of ahash that are synchronous only. Signed-off-by: Herbert Xu include/crypto/hash.h | 5 +++++ 1 file changed, 5 insertions(+) commit 12773d932fc22c60e0d5a20660d564542fab811b Author: Herbert Xu Date: Thu Aug 20 15:21:46 2015 +0800 crypto: testmgr - Use new skcipher interface This patch replaces uses of blkcipher and ablkcipher with the new skcipher interface. Signed-off-by: Herbert Xu crypto/testmgr.c | 61 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) commit 7a7ffe65c8c5fbf272b132d8980b2511d5e5fc98 Author: Herbert Xu Date: Thu Aug 20 15:21:45 2015 +0800 crypto: skcipher - Add top-level skcipher interface This patch introduces the crypto skcipher interface which aims to replace both blkcipher and ablkcipher. It's very similar to the existing ablkcipher interface. The main difference is the removal of the givcrypt interface. In order to make the transition easier for blkcipher users, there is a helper SKCIPHER_REQUEST_ON_STACK which can be used to place a request on the stack for synchronous transforms. Signed-off-by: Herbert Xu crypto/Makefile | 1 + crypto/skcipher.c | 245 +++++++++++++++++++++++ include/crypto/internal/skcipher.h | 15 ++ include/crypto/skcipher.h | 391 ++++++++++++++++++++++++++++++++++++- 4 files changed, 651 insertions(+), 1 deletion(-) commit 412fcb6cebd758d080cacd5a41a0cbc656ea5fce Author: Will Deacon Date: Wed Aug 19 15:57:09 2015 +0100 arm64: entry: always restore x0 from the stack on syscall return We have a micro-optimisation on the fast syscall return path where we take care to keep x0 live with the return value from the syscall so that we can avoid restoring it from the stack. The benefit of doing this is fairly suspect, since we will be restoring x1 from the stack anyway (which lives adjacent in the pt_regs structure) and the only additional cost is saving x0 back to pt_regs after the syscall handler, which could be seen as a poor man's prefetch. More importantly, this causes issues with the context tracking code. The ct_user_enter macro ends up branching into C code, which is free to use x0 as a scratch register and consequently leads to us returning junk back to userspace as the syscall return value. Rather than special case the context-tracking code, this patch removes the questionable optimisation entirely. Cc: Cc: Larry Bassel Cc: Kevin Hilman Reviewed-by: Catalin Marinas Reported-by: Hanjun Guo Tested-by: Hanjun Guo Signed-off-by: Will Deacon arch/arm64/kernel/entry.S | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 6f56e9cf581c6cedcaea3eb69444b169867ccf3d Author: Dean Nelson Date: Thu Aug 20 11:16:32 2015 -0400 tools lib traceevent: Add checks for returned EVENT_ERROR type Running the following perf-stat command on an arm64 system produces the following result... [root@aarch64 ~]# perf stat -e kmem:mm_page_alloc -a sleep 1 Warning: [kmem:mm_page_alloc] function sizeof not defined Warning: Error: expected type 4 but read 0 Segmentation fault [root@aarch64 ~]# The second warning was a result of the first warning not stopping processing after it detected the issue. That is, code that found the issue reported the first problem, but because it did not exit out of the functions smoothly, it caused the other warning to appear and not only that, it later caused the SIGSEGV. Signed-off-by: Dean Nelson Reviewed-by: Steven Rostedt Acked-by: Namhyung Kim Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150820151632.13927.13791.email-sent-by-dnelson@teal Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 81cd60cc29a9c3e92ad6ca167a4764b2c2d2fc04 Author: Adrian Hunter Date: Thu Aug 20 11:51:32 2015 +0300 perf tools: Fix Intel PT timestamp handling Events that don't sample the timestamp have a timestamp value of -1. Intel PT processing wasn't taking that into account. This is particularly noticeable with Intel BTS because timestamps are not requested by default. Then, if the conversion of -1 to TSC results in a small number, the processing is unaffected. However if the conversion results in a big number, then the data is processed prematurely before relevant sideband data like mmap events, which in turn results in samples with unknown dsos. Commiter note: Since BTS wasn't upstream, I split the patch to fold the BTS part with the patch introducing it, to avoid having this bug in the commit history. PT was already upstream, so this patch contains that part. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1440060692-5585-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 133de940435493266acd4100b0dae8ba7eaa7c71 Author: Adrian Hunter Date: Thu Aug 20 13:07:40 2015 +0300 perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy The "/proc/kcore requires CAP_SYS_RAWIO" message comes up all the time for 'perf script' if vmlinux is not found and the user isn't root, even when the kernel is not being traced and even though the message is only really relevant for annotation. Change it to pr_debug and instead put a note in the message displayed if annotation is not possible. Also, the file being accessed might not be /proc/kcore. Tools can be directed to a different location using the --kallsyms option in which case kcore is expected to be in the same directory. Adjust the message so it is not misleading in that case. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Li Zhang Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/1440065260-8802-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/annotate.c | 1 + tools/perf/util/symbol.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit 05169df5561363ff04ac04d6aad0be3b45c26ac1 Author: Adrian Hunter Date: Thu Aug 20 11:26:45 2015 +0300 perf script: Fix segfault using --show-mmap-events Patch "perf script: Don't assume evsel position of tracking events" changed 'perf script' to use 'perf_evlist__id2evsel()'. That results in a segfault if there is more than 1 event and there are synthesized mmap events e.g. $ perf record -e cycles,instructions -p$$ sleep 1 $ perf script --show-mmap-events Segmentation fault (core dumped) That happens because these synthesized events have an 'id' of zero which does not match any 'evsel'. Currently, these synthesized events use the sample type of the first evsel. Change 'perf_evlist__id2evsel()' to reflect that which also makes it consistent with 'perf_evlist__event2evsel()'. Signed-off-by: Adrian Hunter Fixes: 06b234ec26fd ("perf script: Don't assume evsel position of tracking events") Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1440059205-1765-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa4f18b4f402d3654415935511d8e0bb51a102b7 Author: Takashi Iwai Date: Fri Aug 21 15:05:20 2015 +0200 ALSA: hda - Refresh widgets sysfs at probing Haswell+ HDMI codecs Intel Haswell (and later) codec refreshes the widgets tree to expose the whole widget nodes at probing. However, this refresh was missing for sysfs tree. This patch adds the missing piece, as we have now a proper API. Reported-by: Vinod Koul Signed-off-by: Takashi Iwai sound/pci/hda/patch_hdmi.c | 1 + 1 file changed, 1 insertion(+) commit 1fb6755f16872ad256c18cce2830f9087502dffd Author: Russell King Date: Fri Aug 21 09:42:10 2015 +0100 ARM: domains: remove DOMAIN_TABLE DOMAIN_TABLE is not used; in any case, it aliases to the kernel domain. Remove this definition. Signed-off-by: Russell King arch/arm/include/asm/domain.h | 3 --- 1 file changed, 3 deletions(-) commit a02d8dfd54cdf3b1b0464ccc2c1c4afe2c003a35 Author: Russell King Date: Fri Aug 21 09:38:31 2015 +0100 ARM: domains: keep vectors in separate domain Keep the machine vectors in its own domain to avoid software based user access control from making the vector code inaccessible, and thereby deadlocking the machine. Signed-off-by: Russell King arch/arm/include/asm/domain.h | 4 +++- arch/arm/include/asm/pgtable-2level-hwdef.h | 1 + arch/arm/mm/mmu.c | 4 ++-- arch/arm/mm/pgd.c | 10 ++++++++++ 4 files changed, 16 insertions(+), 3 deletions(-) commit 3c2aed5b28819564e1a07b4686bd89802bcc4d6b Author: Russell King Date: Fri Aug 21 09:30:16 2015 +0100 ARM: domains: get rid of manager mode for user domain Since we switched to early trap initialisation in 94e5a85b3be0 ("ARM: earlier initialization of vectors page") we haven't been writing directly to the vectors page, and so there's no need for this domain to be in manager mode. Switch it to client mode. Signed-off-by: Russell King arch/arm/include/asm/domain.h | 2 +- arch/arm/kernel/traps.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 0171356a7708af01ad3224702b7f0aaa5b7a1399 Author: Russell King Date: Fri Aug 21 09:23:26 2015 +0100 ARM: domains: move initial domain setting value to asm/domains.h Signed-off-by: Russell King arch/arm/include/asm/domain.h | 6 ++++++ arch/arm/kernel/head.S | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) commit 8e798706f7e9cd7f096aa194de90269dde83773e Author: Russell King Date: Wed Aug 19 22:36:24 2015 +0100 ARM: domains: provide domain_mask() Provide a macro to generate the mask for a domain, rather than using domain_val(, DOMAIN_MANAGER) which won't work when CPU_USE_DOMAINS is turned off. Signed-off-by: Russell King arch/arm/include/asm/domain.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 1eef5d2f1b461c120bcd82077edee5ec706ac53b Author: Russell King Date: Wed Aug 19 21:23:48 2015 +0100 ARM: domains: switch to keeping domain value in register Rather than modifying both the domain access control register and our per-thread copy, modify only the domain access control register, and use the per-thread copy to save and restore the register over context switches. We can also avoid the explicit initialisation of the init thread_info structure. This allows us to avoid needing to gain access to the thread information at the uaccess control sites. Signed-off-by: Russell King arch/arm/include/asm/domain.h | 20 +++++++++++++++----- arch/arm/include/asm/thread_info.h | 3 --- arch/arm/kernel/entry-armv.S | 2 ++ arch/arm/kernel/process.c | 13 ++++++++++--- 4 files changed, 27 insertions(+), 11 deletions(-) commit 9e46aedab389122948144713ee5b8bae2658fb1b Author: Dan Carpenter Date: Fri Aug 21 14:25:34 2015 +0300 ALSA: hdsp: silence and underflow warning I believe this probably cannot happen, as the code suggests. There would have to be an kcontrol->index.id which was zero, otherwise this would be prevented in snd_ctl_find_id(). But snd_BUG_ON() is just a WARN() or a no-op so static checkers complain that we keep on going with a negative offset. Let's just handle the error as well as printing a warning. Signed-off-by: Dan Carpenter Signed-off-by: Takashi Iwai sound/pci/rme9652/hdsp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 18dfd79d92e5292611ac4944a67bd837dd7632c9 Author: Vinod Koul Date: Fri Aug 21 15:47:43 2015 +0530 ALSA: hdac: add snd_hdac_refresh_widget_sysfs() Some codecs like Intel HDMI by default do not show up all the pins, they have to be manually enabled, so we need to refresh the codec widgets and then recreate the sysfs tree. So add new API snd_hdac_refresh_widget_sysfs() to do this. It should be be used by codec driver after sending magic verbs to codec Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 1 + sound/hda/hdac_device.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) commit d51783c15f7548229e49331d254a738be8ac865c Author: Vinod Koul Date: Fri Aug 21 15:47:42 2015 +0530 ALSA: hdac: add extended device driver registration This adds new extended driver objects and API for registering the extended devices. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 15 ++++++++++ sound/hda/ext/hdac_ext_bus.c | 66 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) commit a512f5611646ab12f3f8fea2a3d2582adabe5157 Author: Vinod Koul Date: Fri Aug 21 15:47:41 2015 +0530 ALSA: hdac: add hdac extended device This adds based hdac extended device object which will be used by ASoC HDAC codecs Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ sound/hda/ext/hdac_ext_bus.c | 13 +++++++++---- 2 files changed, 53 insertions(+), 4 deletions(-) commit ee2d51b3d4c940cd34dbc83eb10bb24205c56ebf Author: Vinod Koul Date: Fri Aug 21 15:47:40 2015 +0530 ALSA: hdac: Add API for removing hdac extended device The HDAC extended device objects are created by HDAC extended bus on probe. When controller is removed they should be removed as well, so add API snd_hdac_ext_bus_device_remove for this Signed-off-by: Vinod Koul Signed-off-by: Takashi Iwai include/sound/hdaudio_ext.h | 1 + sound/hda/ext/hdac_ext_bus.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) commit 005ce70b9448ed86c9a12e6504f1f9896a826e3d Author: Rameshwar Prasad Sahu Date: Fri Aug 21 14:33:34 2015 +0530 dmaengine: xgene-dma: Fix the lock to allow client for further submission of requests This patch provides the fix in the cleanup routing such that client can perform further submission by releasing the lock before calling client's callback function. Signed-off-by: Rameshwar Prasad Sahu Signed-off-by: Vinod Koul drivers/dma/xgene-dma.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) commit fd0881a24ac9ab2be6c052d30ca779597c0bd3bc Author: Vineet Gupta Date: Fri Aug 21 15:06:43 2015 +0530 ARC: Eliminate some ARCv2 specific code for ARCompact build Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 58 +++++++++++++++++++++++++++++------------------------ arch/arc/mm/dma.c | 4 ++-- 2 files changed, 34 insertions(+), 28 deletions(-) commit 64f1d0ffbaaccf2ddaf02d3ebf67bf9044cb4db4 Author: Dave Jiang Date: Thu Aug 20 08:44:14 2015 -0700 dmaengine: ioatdma: fix coccinelle warning Simplifying the end return. This existed in the original code but was flagged when refactoring of the code made it appear it's new. coccinelle warnings: (new ones prefixed by >>) >> drivers/dma/ioat/init.c:1018:1-3: WARNING: end returns can be simpified Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/init.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit aaecdebc5855b77e2120d11c750630a3e60ffb10 Author: Dave Jiang Date: Thu Aug 20 08:44:09 2015 -0700 dmaengine: ioatdma: fix zero day warning on incompatible pointer type The 32bit build is creating this warning. Since we don't expect anyone actually use this on 32bit, restrict ioatdma to be built only on x86_64. This issue has long existed and only reason it's surfacing due to code refactoring. drivers/dma/ioat/dma.c: In function 'ioat_timer_event': >> drivers/dma/ioat/dma.c:870:39: warning: passing argument 2 of 'ioat_cleanup_preamble' from incompatible pointer type if (ioat_cleanup_preamble(ioat_chan, &phys_complete)) ^ drivers/dma/ioat/dma.c:577:13: note: expected 'u64 *' but argument is of type 'dma_addr_t *' static bool ioat_cleanup_preamble(struct ioatdma_chan *ioat_chan, ^ Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36d4e87b497d9cb3bf8e1bb2f803c7aa41dfb463 Author: Thomas Hellstrom Date: Wed Aug 19 03:19:47 2015 -0700 drm/vmwgfx: Remove duplicate ttm_bo_device_release No need to try to call ttm_bo_device_release twice during module unload. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 - 1 file changed, 1 deletion(-) commit 772269f970129a7b9b50d68684b2568a41850111 Author: Thomas Hellstrom Date: Tue Aug 18 09:07:38 2015 -0700 drm/vmwgfx: Fix a circular locking dependency in the fbdev code When a user-space process writes directly to the fbdev framebuffer, we hit a circular locking dependency. Fix this by introducing a local delayed work callback so that the defio lock can be released before calling into the modesetting code for a dirty update. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit 397d425dc26da728396e66d392d5dcb8dac30c37 Author: Eric W. Biederman Date: Sat Aug 15 20:27:13 2015 -0500 vfs: Test for and handle paths that are unreachable from their mnt_root In rare cases a directory can be renamed out from under a bind mount. In those cases without special handling it becomes possible to walk up the directory tree to the root dentry of the filesystem and down from the root dentry to every other file or directory on the filesystem. Like division by zero .. from an unconnected path can not be given a useful semantic as there is no predicting at which path component the code will realize it is unconnected. We certainly can not match the current behavior as the current behavior is a security hole. Therefore when encounting .. when following an unconnected path return -ENOENT. - Add a function path_connected to verify path->dentry is reachable from path->mnt.mnt_root. AKA to validate that rename did not do something nasty to the bind mount. To avoid races path_connected must be called after following a path component to it's next path component. Signed-off-by: "Eric W. Biederman" Signed-off-by: Al Viro fs/namei.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit 88c9281a9fba67636ab26c1fd6afbc78a632374f Author: Vitaly Kuznetsov Date: Wed Aug 19 09:54:24 2015 -0700 x86/hyperv: Mark the Hyper-V TSC as unstable The Hyper-V top-level functional specification states, that "algorithms should be resilient to sudden jumps forward or backward in the TSC value", this means that we should consider TSC as unstable. In some cases tsc tests are able to detect the instability, it was detected in 543 out of 646 boots in my testing: Measured 6277 cycles TSC warp between CPUs, turning off TSC clock. tsc: Marking TSC unstable due to check_tsc_sync_source failed This is, however, just a heuristic. On Hyper-V platform there are two good clocksources: MSR-based hyperv_clocksource and recently introduced TSC page. Signed-off-by: Vitaly Kuznetsov Cc: Haiyang Zhang Cc: K. Y. Srinivasan Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: devel@linuxdriverproject.org Link: http://lkml.kernel.org/r/1440003264-9949-1-git-send-email-vkuznets@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mshyperv.c | 1 + 1 file changed, 1 insertion(+) commit 99770737ca7e3ebc14e66460a69b7032de9421e1 Author: Ingo Molnar Date: Fri Aug 21 08:33:53 2015 +0200 x86/asm/tsc: Add rdtscll() merge helper Some in-flight code makes use of the old rdtscll() (now removed), provide a wrapper for a kernel cycle to smooth the transition to rdtsc(). ( We use the safest variant, rdtsc_ordered(), which has barriers - this adds another incentive to remove the wrapper in the future. ) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/dddbf98a2af53312e9aa73a5a2b1622fe5d6f52b.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 3 +++ 1 file changed, 3 insertions(+) commit a03e283bf5c3d4851b4998122196ce9f849e6dfb Author: Eric W. Biederman Date: Sat Aug 15 13:36:41 2015 -0500 dcache: Reduce the scope of i_lock in d_splice_alias i_lock is only needed until __d_find_any_alias calls dget on the alias dentry. After that the reference to new ensures that dentry_kill and d_delete will not remove the inode from the dentry, and remove the dentry from the inode->d_entry list. The inode i_lock came to be held over the the __d_move calls in d_splice_alias through a series of introduction of locks with increasing smaller scope. First it was the dcache_lock, then it was the dcache_inode_lock, and finally inode->i_lock. Furthermore inode->i_lock is not held over any other calls to d_move or __d_move so it can not provide any meaningful rename protection. Signed-off-by: "Eric W. Biederman" Signed-off-by: Al Viro fs/dcache.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit cde93be45a8a90d8c264c776fab63487b5038a65 Author: Eric W. Biederman Date: Sat Aug 15 13:36:12 2015 -0500 dcache: Handle escaped paths in prepend_path A rename can result in a dentry that by walking up d_parent will never reach it's mnt_root. For lack of a better term I call this an escaped path. prepend_path is called by four different functions __d_path, d_absolute_path, d_path, and getcwd. __d_path only wants to see paths are connected to the root it passes in. So __d_path needs prepend_path to return an error. d_absolute_path similarly wants to see paths that are connected to some root. Escaped paths are not connected to any mnt_root so d_absolute_path needs prepend_path to return an error greater than 1. So escaped paths will be treated like paths on lazily unmounted mounts. getcwd needs to prepend "(unreachable)" so getcwd also needs prepend_path to return an error. d_path is the interesting hold out. d_path just wants to print something, and does not care about the weird cases. Which raises the question what should be printed? Given that / should result in -ENOENT I believe it is desirable for escaped paths to be printed as empty paths. As there are not really any meaninful path components when considered from the perspective of a mount tree. So tweak prepend_path to return an empty path with an new error code of 3 when it encounters an escaped path. Signed-off-by: "Eric W. Biederman" Signed-off-by: Al Viro fs/dcache.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 6f179af88f60b32c2855e7f3e16ea8e336a7043f Author: Hugh Dickins Date: Mon Aug 17 17:34:27 2015 -0700 mm: fix potential data race in SyS_swapon While running KernelThreadSanitizer (ktsan) on upstream kernel with trinity, we got a few reports from SyS_swapon, here is one of them: Read of size 8 by thread T307 (K7621): [< inlined >] SyS_swapon+0x3c0/0x1850 SYSC_swapon mm/swapfile.c:2395 [] SyS_swapon+0x3c0/0x1850 mm/swapfile.c:2345 [] ia32_do_call+0x1b/0x25 Looks like the swap_lock should be taken when iterating through the swap_info array on lines 2392 - 2401: q->swap_file may be reset to NULL by another thread before it is dereferenced for f_mapping. But why is that iteration needed at all? Doesn't the claim_swapfile() which follows do all that is needed to check for a duplicate entry - FMODE_EXCL on a bdev, testing IS_SWAPFILE under i_mutex on a regfile? Well, not quite: bd_may_claim() allows the same "holder" to claim the bdev again, so we do need to use a different holder than "sys_swapon"; and we should not replace appropriate -EBUSY by inappropriate -EINVAL. Index i was reused in a cpu loop further down: renamed cpu there. Reported-by: Andrey Konovalov Signed-off-by: Hugh Dickins Signed-off-by: Al Viro mm/swapfile.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) commit 061f98e959ea025a5d87c3e089d59ec2ec5f5d6d Merge: b5f5914 ac05fbb Author: Al Viro Date: Fri Aug 21 02:31:20 2015 -0400 Merge branch 'superblock-scaling' of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next into for-next Conflicts: include/linux/fs.h commit 82819ffb42fb45197bacf3223191deca31d3eb91 Author: Ingo Molnar Date: Fri Aug 21 08:14:46 2015 +0200 perf/x86/msr: Fix the MSR driver build The new MSR PMU driver made use of rdtsc() which does not exist (yet) in this tree: arch/x86/kernel/cpu/perf_event_msr.c:91:3: error: implicit declaration of function 'rdtsc' Use the old rdtscll() primitive for now. Reported-by: kbuild test robot Cc: Andy Lutomirski Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_msr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b06ece93cf96b430587e77e01053b2b8f99cb750 Author: Krzysztof Kozlowski Date: Tue Jul 7 22:00:47 2015 +0900 video: fbdev: s3c-fb: Constify platform_device_id The platform_device_id is not modified by the driver and core uses it as const. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Tomi Valkeinen drivers/video/fbdev/s3c-fb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a9e01ed986aa80d3092134428f453072752da223 Merge: 08617f4 81bf1c6 Author: David S. Miller Date: Thu Aug 20 22:18:45 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next Pablo Neira Ayuso says: ==================== Netfilter updates for net-next This is second pull request includes the conflict resolution patch that resulted from the updates that we got for the conntrack template through kmalloc. No changes with regards to the previously sent 15 patches. The following patchset contains Netfilter updates for your net-next tree, they are: 1) Rework the existing nf_tables counter expression to make it per-cpu. 2) Prepare and factor out common packet duplication code from the TEE target so it can be reused from the new dup expression. 3) Add the new dup expression for the nf_tables IPv4 and IPv6 families. 4) Convert the nf_tables limit expression to use a token-based approach with 64-bits precision. 5) Enhance the nf_tables limit expression to support limiting at packet byte. This comes after several preparation patches. 6) Add a burst parameter to indicate the amount of packets or bytes that can exceed the limiting. 7) Add netns support to nfacct, from Andreas Schultz. 8) Pass the nf_conn_zone structure instead of the zone ID in nf_tables to allow accessing more zone specific information, from Daniel Borkmann. 9) Allow to define zone per-direction to support netns containers with overlapping network addressing, also from Daniel. 10) Extend the CT target to allow setting the zone based on the skb->mark as a way to support simple mappings from iptables, also from Daniel. 11) Make the nf_tables payload expression aware of the fact that VLAN offload may have removed a vlan header, from Florian Westphal. ==================== Signed-off-by: David S. Miller commit 81bf1c64e7fe08f956c74fe2b0f1fa6eb163bd91 Merge: 8cfd23e 938049e Author: Pablo Neira Ayuso Date: Fri Aug 21 01:10:19 2015 +0200 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Resolve conflicts with conntrack template fixes. Conflicts: net/netfilter/nf_conntrack_core.c net/netfilter/nf_synproxy_core.c net/netfilter/xt_CT.c Signed-off-by: Pablo Neira Ayuso commit 44790462d041d3037d60b3bf88f30837a72006ff Author: Dave Airlie Date: Tue Jul 14 11:33:31 2015 +1000 drm/dp/mst: dump branch OUI in debugfs (v2) It appears some MST docks are worse than other, but the only way to know is to see the sw revisions in here, so dump the branch OUI so we can look at the sw revision. v2: Thierry made me feel guilty, so I parsed the branch OUI. Reviewed-by: Thierry Reding Signed-off-by: Dave Airlie drivers/gpu/drm/drm_dp_mst_topology.c | 10 ++++++++++ include/drm/drm_dp_helper.h | 1 + 2 files changed, 11 insertions(+) commit ba5d183bced6cb60b2838a0bf04665c1c1e4bff1 Merge: ff2d920 258d9bc Author: Olof Johansson Date: Thu Aug 20 18:59:45 2015 -0700 Merge tag 'tegra-for-4.3-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/defconfig ARM: tegra: Default configuration updates for v4.3-rc1 Enable the GK20A GPU (via the Nouveau driver) and CPU frequency scaling on Tegra124. * tag 'tegra-for-4.3-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: Update multi_v7_defconfig ARM: tegra: Update default configuration Signed-off-by: Olof Johansson commit 21815b9a24c6e6d3488703609561bd2892d3d9f3 Merge: 420f262 588c43a Author: Olof Johansson Date: Thu Aug 20 18:50:17 2015 -0700 Merge tag 'tegra-for-4.3-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers ARM: tegra: Memory controller updates for v4.3-rc1 Adds support for Tegra210, which allows the SMMU to be used on this new SoC generation. * tag 'tegra-for-4.3-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: memory: tegra: Add Tegra210 support memory: tegra: Add support for a variable-size client ID bitfield memory: tegra: Expose supported rates via debugfs Signed-off-by: Olof Johansson commit 420f2629fa041ed92f7e687b3bc8020d80b209bb Merge: 5378e46 9eb15db Author: Olof Johansson Date: Thu Aug 20 18:47:04 2015 -0700 Merge tag 'tegra-for-4.3-cpufreq' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers ARM: tegra: CPU frequency scaling for v4.3-rc1 This adds CPU frequency scaling support for Tegra124. * tag 'tegra-for-4.3-cpufreq' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: cpufreq: Add cpufreq driver for Tegra124 cpufreq: tegra: Rename tegra-cpufreq to tegra20-cpufreq cpufreq: tegra124: Add device tree bindings Signed-off-by: Olof Johansson commit 5378e4665f226e3b5b460793397eff32b4de9daa Merge: bd90f11 1ec0e11 Author: Olof Johansson Date: Thu Aug 20 18:43:15 2015 -0700 Merge tag 'tegra-for-4.3-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers ARM: tegra: Core SoC changes for v4.3-rc1 This contains a bit more of Tegra210 support, which is shaping up pretty nicely. Other than that there are a couple of cleanup patches here, too. * tag 'tegra-for-4.3-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze() ARM: tegra: Disable cpuidle if PSCI is available soc/tegra: pmc: Use existing pclk reference soc/tegra: pmc: Remove unnecessary return statement soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile soc/tegra: fuse: Add spare bit offset for Tegra210 soc/tegra: fuse: Add spare bit offset for Tegra124 soc/tegra: fuse: Add spare bit offset for Tegra114 soc/tegra: fuse: Rename core_* to soc_* soc/tegra: fuse: Add Tegra210 support soc/tegra: fuse: Unify Tegra20 and Tegra30 drivers soc/tegra: fuse: Restrict legacy code to 32-bit ARM soc/tegra: pmc: Add Tegra210 support soc/tegra: pmc: Restrict legacy code to 32-bit ARM soc/tegra: pmc: Avoid usage of uninitialized variable soc/tegra: Add Tegra210 support soc/tegra: Add Tegra132 support Signed-off-by: Olof Johansson commit 97a2482d9891f0ad6a3710e0b6ae9949c140c7f1 Merge: 16478b6 5cf4af3 Author: Olof Johansson Date: Thu Aug 20 18:41:42 2015 -0700 Merge tag 'tegra-for-4.3-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/cleanup ARM: tegra: Cleanup patches for v4.3-rc1 Just a couple of trivial cleanups to make the HDA controller driver code match the device tree binding. * tag 'tegra-for-4.3-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ALSA: hda/tegra: Order clock and reset names consistently ALSA: hda/tegra - Fix hda2codec_2x clock and reset names Signed-off-by: Olof Johansson commit 7c4ecc72d82f2908b9fe70dbd49c1cd35738f995 Merge: deb1436 2b347c6 Author: Olof Johansson Date: Thu Aug 20 18:39:57 2015 -0700 Merge tag 'samsung-defconfig-new' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late Samsung defconfig updates for v4.3 - for exynos_defconfig : enable SND_SOC_ODROIDX2 and SND_SIMPLE_CARD for Odroid-XU3 to use max98090 audio codec : enalbe SENSORS_NTC_THERMISTOR for Peach boards : enable cpufreq-dt driver with ONDEMAND governor for Exynos SoCs 3250, 4210, 4212, 4412 and 5250 - for multi_v7_defconfig: : remove SAMSUNG_USB2PHY and SAMSUNG_USB3PHY are not used now : enable SENSORS_NTC_THERMISTOR and EXYNOS_ADC for Peach boards : enable REGULATOR_MAX77802 for Peach boards * tag 'samsung-defconfig-new' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: exynos_defconfig: Enable cpufreq-dt driver ARM: multi_v7_defconfig: Enable max77802 regulator ARM: exynos_defconfig: Enable NTC Thermistors support ARM: multi_v7_defconfig: Enable NTC Thermistors support ARM: multi_v7_defconfig: Remove old Samsung USB PHY configs ARM: exynos_defconfig: Enable CONFIG_SND_SOC_ODROIDX2 for Odroid-XU3 Signed-off-by: Olof Johansson commit deb14362a5268a094efb0534f2999bc8ea97ce2f Merge: 418012f 5e3863a Author: Olof Johansson Date: Thu Aug 20 18:38:39 2015 -0700 Merge tag 'samsung-late-cpufreq-driver' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late Samsung cpufreq driver updates for v4.3 - remove exynos4 SoCs and exynos5250 specific cpufreq driver support and unselectable rule for arm-exynos-cpufreq.o because of supporting generic cpufreq driver for the exynos SoCs * Note this is depending on tags/samsung-clk-driver, tags/samsung-soc and tags/samsung-late-dt * tag 'samsung-late-cpufreq-driver' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o cpufreq: exynos: remove Exynos4x12 specific cpufreq driver support cpufreq: exynos: remove exynos5250 specific cpufreq driver support Signed-off-by: Olof Johansson commit 418012fbe5e6ef83424a8233b29c11159acd4af9 Merge: 819167e bdd2648 Author: Olof Johansson Date: Thu Aug 20 18:37:55 2015 -0700 Merge tag 'samsung-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late Samsung SoC updates for v4.3 - add compatible string to exynos_cpufreq_matchs to switch for supporting generic cpufreq driver for exynos3250, 4210, 4212 and 5250 SoCs in mach-exynos/ * tag 'samsung-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12 ARM: EXYNOS: Add exynos3250 compatible to use generic cpufreq driver ARM: EXYNOS: switch to using generic cpufreq driver for exynos5250 Signed-off-by: Olof Johansson commit 819167e7a0808891048ef45a8933fdeb1f04899f Merge: 6b07705 ba03279 Author: Olof Johansson Date: Thu Aug 20 18:35:34 2015 -0700 Merge tag 'samsung-late-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late Samsung 2nd DT updates for v4.3 - for exynos3250, 4212, 4412 and 5250 : add CPU OPP and regulator supply property - for exynos3250 : add CPU cooling binding for exynos3250 boards - for exynos4 SoCs : add iommu property to JPEG device - for exynos4412-odroidu3 : enable SPI1 - for exynos5250-snow : add SPI CS - for exynos5422 : add exynos5422-cpus.dtsi to correct cpu order * Note this branch is depending on tags/samsung-clk-driver * tag 'samsung-late-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (22 commits) ARM: dts: add iommu property to JPEG device for exynos4 ARM: dts: enable SPI1 for exynos4412-odroidu3 ARM: dts: Add SPI CS on exynos5250-snow ARM: dts: Add CPU cooling binding for exynos3250 boards ARM: dts: add exynos5422-cpus.dtsi to correct cpu order ARM: dts: add CPU OPP and regulator supply property for exynos4x12 ARM: dts: Add CPU OPP and regulator supply property for exynos3250 ARM: dts: add CPU OPP and regulator supply property for exynos5250 ARM: dts: Extend exynos5420-pinctrl nodes using labels instead of paths ARM: dts: Include exynos5420-pinctrl after the nodes were defined for exynos5420 ARM: dts: Extend exynos5250-pinctrl nodes using labels instead of paths ARM: dts: Include exynos5250-pinctrl after the nodes were defined for exynos5250 ARM: dts: Enable thermal-zones for exynos5422-odroidxu3 ARM: dts: Define default thermal-zones for exynos5422 ARM: dts: Enable TMU for exynos5422-odroidxu3 ARM: dts: Add pwm-fan node for exynos5422-odroidxu3 ARM: dts: Use labels for overriding nodes for exynos4210-universal_c210 ARM: dts: Set max17047 over heat and voltage thresholds for exynos4412-trats2 ARM: dts: Enable USB3 regulators for exynos5422-odroidxu3 ARM: dts: Clean up indentation for exynos5410-smdk5410 ... Signed-off-by: Olof Johansson commit 6b0770582d3b1c60172bc515d658fa12a72e1faf Merge: bc0195a cd6acee Author: Olof Johansson Date: Thu Aug 20 18:35:02 2015 -0700 Merge tag 'samsung-clk-driver' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late Samsung clk driver updates for v4.3 - add cpu clock configuration data and instantiate cpu clock for exynos3250, 4210, 4412 and 5250 SoCs to support Samsung specific cpu-clock type * Note this branch has been provided to clk tree as a topic branch * tag 'samsung-clk-driver' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: clk: exynos4x12: add cpu clock configuration data and instantiate cpu clock clk: exynos3250: Add cpu clock configuration data and instaniate cpu clock clk: exynos5250: add cpu clock configuration data and instantiate cpu clock Signed-off-by: Olof Johansson commit bd90f11589181adad1b32b16a34df52d17dd4961 Merge: a005bc6 5d44595 Author: Olof Johansson Date: Thu Aug 20 18:30:09 2015 -0700 Merge tag 'reset-for-4.3' of git://git.pengutronix.de/git/pza/linux into next/drivers Reset controller changes for v4.3 - moved the DT reset binding includes from include/dt-bindings/reset-controller to include/dt-bindings/reset - new driver for LPC18xx Reset Generation Unit (RGU) - of_device_id array in the STi driver changed to const. - extend SoCFPGA reset driver to support Arria10 - new ath79 reset controller driver for AR71XX/AR9XXX - new driver for Xilinx Zynq reset controller * tag 'reset-for-4.3' of git://git.pengutronix.de/git/pza/linux: reset: reset-zynq: Adding support for Xilinx Zynq reset controller. docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings. MIPS: ath79: Add the reset controller to the AR9132 dtsi reset: Add a driver for the reset controller on the AR71XX/AR9XXX devicetree: Add bindings for the ATH79 reset controller reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property doc: dt: add documentation for lpc1850-rgu reset driver reset: add driver for lpc18xx rgu reset: sti: constify of_device_id array ARM: STi: DT: Move reset controller constants into common location MAINTAINERS: add include/dt-bindings/reset path to reset controller entry Signed-off-by: Olof Johansson commit f2032f24c0e51487d88c3555db12e27d561e4f14 Author: Masahiro Yamada Date: Wed Aug 19 14:49:26 2015 +0900 ARM: dts: UniPhier: fix PPI interrupt CPU mask of timer nodes This SoC is integrated with 4 Cortex-A9 cores. The GIC bindings document says that the bits[15:8] of the 3rd cell of the interrupts property represents PPI interrupt CPU mask. Because the timer interrupts are wired to all of the 4 cores, bits[15:8] should be set to 0xf. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-proxstream2.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 012bd2a533cd665c9961c5905f144170b16f61e4 Author: Yalin Wang Date: Thu Aug 20 17:41:42 2015 -0700 Input: zhenhua - switch to using bitrev8() Instead of custom zhenhua_bitreverse() let's use generic bitrev8(). Signed-off-by: Yalin Wang Signed-off-by: Dmitry Torokhov drivers/input/joystick/zhenhua.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit 467fb18a8d538be6548ef4093003b63aebbb07b9 Author: Brian Norris Date: Wed Aug 19 15:18:41 2015 -0700 ARM: dts: rockchip: correct regulator power states for suspend When getting translated from a downstream device tree that used slightly different DT bindings, these regulators got labeled with the "on-in-suspend" state, when they were actually supposed to be turned off for S3 suspend. This was harmless, but not intentional, AFAICT. Let's turn them off to get the optimal power state. Signed-off-by: Brian Norris Reviewed-by: Javier Martinez Canillas Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-veyron-jerry.dts | 2 +- arch/arm/boot/dts/rk3288-veyron-pinky.dts | 2 +- arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 6a414e462a7c493ed83535f388b07a34446f33f4 Author: Brian Norris Date: Wed Aug 19 15:18:40 2015 -0700 ARM: dts: rockchip: correct regulator PM properties This DTS file was submitted with non-upstream bindings. I happened across this while reviewing the jaq DTS. Signed-off-by: Brian Norris Reviewed-by: Javier Martinez Canillas Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-veyron-minnie.dts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit dd52128afddecade1dcd0767aec124c13c8a40bb Author: Trond Myklebust Date: Thu Aug 20 17:59:49 2015 -0500 NFSv4.1/pnfs Ensure flexfiles reports all connection related errors Make sure that we also handle RPC level connection and protocol negotiation errors. Reported-by: Tom Haynes Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 48 +++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 13 deletions(-) commit 08617f47eaf8c70b4c236dee2014c6141aa282bf Merge: 938049e 32a2b00 Author: David S. Miller Date: Thu Aug 20 15:42:38 2015 -0700 Merge branch 'lwt-ipv6' Jiri Benc says: ==================== lwtunnel: per route ipv6 support for vxlan v3: Moved LWTUNNEL_ENCAP_IP6 definition in patch 13. v2: Fixed issues in patch 4 pointed out by Alexei. This series enables IPv6 tunnels based on lwtunnel infrastructure. Only vxlan is supported for now. Tested in all combinations of IPv4 over IPv6, IPv6 over IPv4 and IPv6 over IPv6. ==================== Signed-off-by: David S. Miller commit 32a2b002ce615eadd3bfaddabde290f70a1dd17b Author: Jiri Benc Date: Thu Aug 20 13:56:32 2015 +0200 ipv6: route: per route IP tunnel metadata via lightweight tunnel Allow specification of per route IP tunnel instructions also for IPv6. This complements commit 3093fbe7ff4b ("route: Per route IP tunnel metadata via lightweight tunnel"). Signed-off-by: Jiri Benc CC: YOSHIFUJI Hideaki Acked-by: Thomas Graf Signed-off-by: David S. Miller include/uapi/linux/lwtunnel.h | 16 +++++++ net/ipv4/ip_tunnel_core.c | 102 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) commit 904af04d30f303d96902584206457128c3051d8d Author: Jiri Benc Date: Thu Aug 20 13:56:31 2015 +0200 ipv6: route: extend flow representation with tunnel key Use flowi_tunnel in flowi6 similarly to what is done with IPv4. This complements commit 1b7179d3adff ("route: Extend flow representation with tunnel key"). Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/flow.h | 1 + net/ipv6/route.c | 6 ++++++ 2 files changed, 7 insertions(+) commit a725e514dbb444f2a39c2bc5de72eb5efbeb7d5e Author: Jiri Benc Date: Thu Aug 20 13:56:30 2015 +0200 vxlan: metadata based tunneling for IPv6 Support metadata based (formerly flow based) tunneling also for IPv6. This complements commit ee122c79d422 ("vxlan: Flow based tunneling"). Signed-off-by: Jiri Benc Acked-by: Thomas Graf Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller drivers/net/vxlan.c | 69 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 29 deletions(-) commit 6f264e47d4dbbe590ac1131587933bb87ded296d Author: Jiri Benc Date: Thu Aug 20 13:56:29 2015 +0200 vxlan: do not shadow flags variable The 'flags' variable is already defined in the outer scope. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 705cc62f6728c5a23e3c82465aa94e652e0b50e4 Author: Jiri Benc Date: Thu Aug 20 13:56:28 2015 +0200 vxlan: provide access function for vxlan socket address family Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 8 ++++---- include/net/vxlan.h | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) commit ab450605b35caa768ca33e86db9403229bf42be4 Author: Jiri Benc Date: Thu Aug 20 13:56:27 2015 +0200 ipv6: ndisc: inherit metadata dst when creating ndisc requests If output device wants to see the dst, inherit the dst of the original skb in the ndisc request. This is an IPv6 counterpart of commit 0accfc268f4d ("arp: Inherit metadata dst when creating ARP requests"). Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/ndisc.h | 3 ++- net/ipv6/addrconf.c | 2 +- net/ipv6/ndisc.c | 10 +++++++--- net/ipv6/route.c | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) commit 06e9d040ba08b0f645783ff958384d5837b3fa3a Author: Jiri Benc Date: Thu Aug 20 13:56:26 2015 +0200 ipv6: drop metadata dst in ip6_route_input The fix in commit 48fb6b554501 is incomplete, as now ip6_route_input can be called with non-NULL dst if it's a metadata dst and the reference is leaked. Drop the reference. Fixes: 48fb6b554501 ("ipv6: fix crash over flow-based vxlan device") Fixes: ee122c79d422 ("vxlan: Flow based tunneling") CC: Wei-Chun Chao CC: Thomas Graf Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller net/ipv6/route.c | 1 + 1 file changed, 1 insertion(+) commit 61adedf3e3f1d3f032c5a6a299978d91eff6d555 Author: Jiri Benc Date: Thu Aug 20 13:56:25 2015 +0200 route: move lwtunnel state to dst_entry Currently, the lwtunnel state resides in per-protocol data. This is a problem if we encapsulate ipv6 traffic in an ipv4 tunnel (or vice versa). The xmit function of the tunnel does not know whether the packet has been routed to it by ipv4 or ipv6, yet it needs the lwtstate data. Moving the lwtstate data to dst_entry makes such inter-protocol tunneling possible. As a bonus, this brings a nice diffstat. Signed-off-by: Jiri Benc Acked-by: Roopa Prabhu Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vrf.c | 1 - drivers/net/vxlan.c | 4 +-- include/net/dst.h | 3 +- include/net/dst_metadata.h | 15 +++------ include/net/ip6_fib.h | 1 - include/net/lwtunnel.h | 12 -------- include/net/route.h | 1 - net/core/dst.c | 3 ++ net/core/filter.c | 2 +- net/core/lwtunnel.c | 70 ++++++------------------------------------ net/ipv4/ip_gre.c | 2 +- net/ipv4/route.c | 20 +++++------- net/ipv6/ila.c | 14 +++------ net/ipv6/ip6_fib.c | 1 - net/ipv6/route.c | 20 ++++++------ net/mpls/mpls_iptunnel.c | 7 ++--- net/openvswitch/vport-netdev.c | 2 +- 17 files changed, 48 insertions(+), 130 deletions(-) commit 7c383fb2254c44e096427470da6a36380169b548 Author: Jiri Benc Date: Thu Aug 20 13:56:24 2015 +0200 ip_tunnels: use tos and ttl fields also for IPv6 Rename the ipv4_tos and ipv4_ttl fields to just 'tos' and 'ttl', as they'll be used with IPv6 tunnels, too. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 8 ++++---- include/net/ip_tunnels.h | 8 ++++---- net/ipv4/ip_gre.c | 8 ++++---- net/ipv4/ip_tunnel_core.c | 8 ++++---- net/openvswitch/flow_netlink.c | 10 +++++----- net/openvswitch/vport-geneve.c | 4 ++-- net/openvswitch/vport.c | 4 ++-- net/openvswitch/vport.h | 2 +- 8 files changed, 26 insertions(+), 26 deletions(-) commit c1ea5d672aaff08da337dee735dbb548e3415585 Author: Jiri Benc Date: Thu Aug 20 13:56:23 2015 +0200 ip_tunnels: add IPv6 addresses to ip_tunnel_key Add the IPv6 addresses as an union with IPv4 ones. When using IPv4, the newly introduced padding after the IPv4 addresses needs to be zeroed out. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller drivers/net/vxlan.c | 6 +++--- include/net/ip_tunnels.h | 24 ++++++++++++++++++++---- net/core/filter.c | 4 ++-- net/ipv4/ip_gre.c | 10 +++++----- net/ipv4/ip_tunnel_core.c | 8 ++++---- net/openvswitch/flow_netlink.c | 18 +++++++++--------- net/openvswitch/flow_table.c | 2 +- net/openvswitch/vport-geneve.c | 2 +- net/openvswitch/vport.c | 2 +- net/openvswitch/vport.h | 4 ++-- 10 files changed, 48 insertions(+), 32 deletions(-) commit 376534a3d17002d608985bd67c3b0880eacadd14 Author: Jiri Benc Date: Thu Aug 20 13:56:22 2015 +0200 ip_tunnels: use offsetofend Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 6b8847c5a2bafbbf92f4b779f87165093457ea68 Author: Jiri Benc Date: Thu Aug 20 13:56:21 2015 +0200 ip_tunnels: use u8/u16/u32 The ip_tunnels.h include file uses mixture of __u16 and u16 (etc.) types. Unify it to the non-underscore variants. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit ac1cf3990c99802eae3aa735b35c94a2131eb9fe Author: Jiri Benc Date: Thu Aug 20 13:56:20 2015 +0200 ip_tunnels: remove custom alignment and packing The custom alignment of struct ip_tunnel_key is unnecessary. In struct sw_flow_key, it starts at offset 256, in struct ip_tunnel_info it's the first field. The structure is also packed even without the __packed keyword. Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 938049e18dca57bcd2f93986fc1cbb5a83cdf027 Author: Jeremy Linton Date: Wed Aug 19 13:56:42 2015 -0500 net: xgene Remove xgene specific phy and MAC lookup functions Convert the xgene_get_mac_address to device_get_mac_address(), and xgene_get_phy_mode() to device_get_phy_mode(). Signed-off-by: Jeremy Linton Signed-off-by: David S. Miller drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 38 ++---------------------- 1 file changed, 2 insertions(+), 36 deletions(-) commit 4c9bcd117918ba6096d01194565e9d1814e5ef22 Author: David Ahern Date: Wed Aug 19 11:40:31 2015 -0700 net: Fix nexthop lookups Andreas reported breakage adding routes with local nexthops: $ ip route show table main ... 172.28.0.0/24 dev vnf-xe1p0 proto kernel scope link src 172.28.0.16 $ ip route add 10.0.0.0/8 via 172.28.0.32 table 100 dev vnf-xe1p0 RTNETLINK answers: Resource temporarily unavailable 3bfd847203c changed the lookup to use the passed in table but for cases like this the nexthop is in the local table rather than the passed in table. Fixes: 3bfd847203c ("net: Use passed in table for nexthop lookups") Reported-by: Andreas Schultz Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit eb4cb85180cd3baee4a01fd32e296fc28c2cffc1 Author: Scott Feldman Date: Wed Aug 19 11:29:35 2015 -0700 bridge: fix netlink max attr size .maxtype should match .policy. Probably just been getting lucky here because IFLA_BRPORT_MAX > IFLA_BR_MAX. Fixes: 13323516 ("bridge: implement rtnl_link_ops->changelink") Signed-off-by: Scott Feldman Signed-off-by: David S. Miller net/bridge/br_netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d14a63400dd3e353acb6547831fe465f85864b1 Author: Jeremy Linton Date: Wed Aug 19 11:46:43 2015 -0500 smsc911x: Remove dev==NULL check. The dev==NULL check in smsc911x_probe_config is useless and isn't providing any additional protection. If a fwnode doesn't exist then an appropriate error should be returned by device_get_phy_mode() covering the original case of a missing of/fwnode. Signed-off-by: Jeremy Linton Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smsc911x.c | 3 --- 1 file changed, 3 deletions(-) commit 2f710a3a8089c12dfe3c0cf04bb0a3dee3dea019 Author: Jeremy Linton Date: Wed Aug 19 11:46:42 2015 -0500 device property: Add ETH_ALEN check, update comments. This patch adds MAC address length check back into the device_get_mac_addr() function before calling is_valid_ether_addr() similar to the way the OF routine does it. Update the comments for the two new functions. Signed-off-by: Jeremy Linton Signed-off-by: David S. Miller drivers/base/property.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit ef09242f3997f5fa063bcfa918d3ce4c4485376c Merge: e01286e a6bf49d Author: David S. Miller Date: Thu Aug 20 14:13:25 2015 -0700 Merge tag 'wireless-drivers-next-for-davem-2015-08-19' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== Major changes: ath10k: * add support for qca99x0 family of devices * improve performance of tx_lock * add support for raw mode (802.11 frame format) and software crypto engine enabled via a module parameter ath9k: * add fast-xmit support wil6210: * implement TSO support * support bootloader v1 and onwards iwlwifi: * Deprecate -10.ucode * Clean ups towards multiple Rx queues * Add support for longer CMD IDs. This will be required by new firmwares since we are getting close to the u8 limit. * bugfixes for the D0i3 power state * Add basic support for FTM * polish the Miracast operation * fix a few power consumption issues * scan cleanup * fixes for D0i3 system state * add paging for devices that support it * add again the new RBD allocation model * add more options to the firmware debug system * add support for frag SKBs in Tx ==================== Signed-off-by: David S. Miller commit e01286ef03a9c7b1d4937309f923c226ab05bc4d Author: Ying Xue Date: Wed Aug 19 16:04:51 2015 +0800 ipv4: Make fib_encap_match static Make fib_encap_match() static as it isn't used outside the file. Signed-off-by: Ying Xue Reviewed-by: Jiri Benc Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 84b6714e54e5199e76f845be70295ccaab924872 Merge: 0f8f27d f4e774f Author: David S. Miller Date: Thu Aug 20 14:10:23 2015 -0700 Merge branch 'ewma' Johannes Berg says: ==================== average: convert users to inline implementation Since there's very little benefit of the out-of-line implementation (a single byte of .text in one driver as far as I've seen), convert all drivers to the inline implementation, saving memory, and remove the out-of-line implementation. ==================== Signed-off-by: David S. Miller commit f4e774f55fe0bb568a0877b2eb9e1b4b5a6f5cbc Author: Johannes Berg Date: Wed Aug 19 09:46:22 2015 +0200 average: remove out-of-line implementation Since all users are now converted to the inline implementation, remove the out-of-line implementation entirely. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller include/linux/average.h | 24 ------------------- lib/Kconfig | 10 -------- lib/average.c | 64 ------------------------------------------------- 3 files changed, 98 deletions(-) commit 11ab35ed0457a4b7914358986a67064ecb467e7d Author: Johannes Berg Date: Wed Aug 19 09:46:21 2015 +0200 rt2x00: use DECLARE_EWMA Instead of using the out-of-line EWMA calculation, use DECLARE_EWMA() to create static inlines. On x86/64 this results in code that's one byte larger (for me), but reduces struct link_ant and struct link size by the two unsigned long values that store the parameters each. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller drivers/net/wireless/rt2x00/Kconfig | 1 - drivers/net/wireless/rt2x00/rt2x00.h | 6 ++++-- drivers/net/wireless/rt2x00/rt2x00link.c | 18 ++++++------------ 3 files changed, 10 insertions(+), 15 deletions(-) commit 46f26ddf562e7495ffa37144be5e447aeb13795e Author: Johannes Berg Date: Wed Aug 19 09:46:20 2015 +0200 ath5k: use DECLARE_EWMA This reduces code size slightly (at least on x86/64) while also removing memory consumption by two unsigned long values for each ath5k device. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller drivers/net/wireless/ath/ath5k/Kconfig | 1 - drivers/net/wireless/ath/ath5k/ani.c | 4 ++-- drivers/net/wireless/ath/ath5k/ath5k.h | 4 +++- drivers/net/wireless/ath/ath5k/base.c | 4 ++-- drivers/net/wireless/ath/ath5k/debug.c | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) commit 5377d75823ff90c0d5d52d69087707b2e54be21b Author: Johannes Berg Date: Wed Aug 19 09:48:40 2015 +0200 virtio_net: use DECLARE_EWMA Instead of using the out-of-line EWMA calculation, use DECLARE_EWMA() to create static inlines. On x86/64 this results in no change in code size for me, but reduces the struct receive_queue size by the two unsigned long values that store the parameters. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller drivers/net/Kconfig | 1 - drivers/net/virtio_net.c | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) commit 9dae3a97297f71e884ed8e7664955bcacb86f010 Author: Bjorn Helgaas Date: Thu Aug 20 16:08:27 2015 -0500 PCI: Move MPS configuration check to pci_configure_device() Previously we checked for invalid MPS settings, i.e., a device with MPS different than its upstream bridge, in pcie_bus_detect_mps(). We only did this if the arch or hotplug driver called pcie_bus_configure_settings(), and then only if PCIe bus tuning was disabled (PCIE_BUS_TUNE_OFF). Move the MPS checking code to pci_configure_device(), so we do it in the pci_device_add() path for every device. Signed-off-by: Bjorn Helgaas drivers/pci/probe.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) commit 0f8f27de19667075591eaffbf435dd78c73a2df4 Author: Yuval Mintz Date: Wed Aug 19 10:21:58 2015 +0300 bnx2x: Fix vxlan endianity issue Commit f34fa14cc033 ("bnx2x: Add vxlan RSS support") has introduced an endianity issue when passing the vxlan UDP port to the HW. Reported-by: Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26a6980cf40c67182bc36fa0b088ebed79796110 Author: Christian König Date: Tue Aug 18 21:09:33 2015 +0200 drm/amdgpu: fix CS error handling v2 Stop double freeing the the BO list by pulling the content of amdgpu_cs_parser_prepare_job() into the IOCTL function again. v2: better commit message Signed-off-by: Christian König Reviewed-by: Chunming Zhou (v1) Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 67 +++++++++++++--------------------- 1 file changed, 26 insertions(+), 41 deletions(-) commit b203dd95949ec8d5e30d53446408eb9a4d1bdc62 Author: Christian König Date: Tue Aug 18 18:23:16 2015 +0200 drm/amdgpu: fix zeroing all IB fields manually v2 The problem now is that we don't necessarily call amdgpu_ib_get() in some error paths and so work with uninitialized data. Better require that the memory is already zeroed. v2: better commit message Signed-off-by: Christian König Reviewed-by: Chunming Zhou (v1) Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 17 ----------------- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1 + 7 files changed, 6 insertions(+), 18 deletions(-) commit bf7ebaeed4dca7c0a7f9d9a44efbd9f74cf22c5d Author: Christian König Date: Tue Aug 18 15:30:26 2015 +0200 drm/amdgpu: free the job immediately after dispatching it Fixes a whole bunch of lockdep warnings. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 2b184d8dbc002d3ef26e4827dd5a80d57533dcae Author: Christian König Date: Tue Aug 18 14:41:25 2015 +0200 drm/amdgpu: use a spinlock instead of a mutex for the rq More appropriate and fixes some nasty lockdep warnings. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 49 ++++++++++----------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- 2 files changed, 18 insertions(+), 33 deletions(-) commit a3348bb801bac5c9a81fb3da4b1a2f0479e97923 Author: Chunming Zhou Date: Tue Aug 18 16:25:46 2015 +0800 drm/amdgpu: don't need to use bo_list_clone any more Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) commit 3c4adead8480f81df687a181d1e54a39b91b9363 Author: Chunming Zhou Date: Tue Aug 18 16:19:13 2015 +0800 drm/amdgpu: some clean up for cs_ioctl Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 -------- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 29 +---------------------------- 2 files changed, 1 insertion(+), 36 deletions(-) commit 4fe6311734986220e40afe4bf72d62383c1e8d6c Author: Chunming Zhou Date: Tue Aug 18 16:12:15 2015 +0800 drm/amdgpu: prepare job should be common code path Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit bb977d3711ed1de1601b463e7fd5a43d82a2b077 Author: Chunming Zhou Date: Tue Aug 18 15:16:40 2015 +0800 drm/amdgpu: abstract amdgpu_job for scheduler Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 16 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 101 ++++++++++++++------------ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 7 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 88 +++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 42 ++++------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 6 +- 9 files changed, 130 insertions(+), 136 deletions(-) commit 1a15aaa998dc3b51f7f8b9a820bc7a192a0c2f76 Author: Eric Anholt Date: Thu Aug 6 16:00:33 2015 -0700 irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2 This interrupt controller is the new root interrupt controller with the timer, PMU events, and IPIs, and the bcm2835's interrupt controller is chained off of it to handle the peripherals. I wrote the interrupt chip support, while Andrea Merello wrote the IPI code. Signed-off-by: Andrea Merello Signed-off-by: Eric Anholt Acked-by: Stephen Warren Cc: linux-rpi-kernel@lists.infradead.org Cc: Lee Jones Cc: Jason Cooper Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1438902033-31477-5-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-bcm2836.c | 275 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 276 insertions(+) commit 815e7a31c3f7929f371da9c7e9ee91cfd52ef453 Author: Eric Anholt Date: Thu Aug 6 16:00:32 2015 -0700 irqchip: Add documentation for the bcm2836 interrupt controller This is a new per-cpu root interrupt controller on the Raspberry Pi 2, which will chain to the bcm2835 interrupt controller for peripheral interrupts. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Cc: linux-rpi-kernel@lists.infradead.org Cc: Lee Jones Cc: Jason Cooper Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1438902033-31477-4-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner .../interrupt-controller/brcm,bcm2836-l1-intc.txt | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit a493f339a88ddd20693460c1dcf8230aa3732b8b Author: Eric Anholt Date: Thu Aug 6 16:00:31 2015 -0700 irqchip/bcm2835: Add support for being used as a second level controller The BCM2836 (Raspberry Pi 2) uses two levels of interrupt handling with the CPU-local interrupts being the root, so we need to register ours as chained off of the CPU's local interrupt. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Cc: linux-rpi-kernel@lists.infradead.org Cc: Lee Jones Cc: Jason Cooper Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1438902033-31477-3-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner .../brcm,bcm2835-armctrl-ic.txt | 25 ++++++++++++- drivers/irqchip/irq-bcm2835.c | 43 ++++++++++++++++++++-- 2 files changed, 64 insertions(+), 4 deletions(-) commit de58e52f207e3318cb1e1d43f951454e0c83827f Author: Eric Anholt Date: Thu Aug 6 16:00:30 2015 -0700 irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ For BCM2836, we want to chain into this IRQ chip from the root controller, and for chaining we need to do something else instead of handle_IRQ() once we have decoded the IRQ. Note that this changes the behavior a little bit: Previously for a non-shortcut IRQ, we'd loop reading and handling the second level IRQ status until it was cleared before returning to the loop reading the top level IRQ status (Note that the top level bit is just an OR of the low level bits). For the expected case of just one interrupt to be handled, this was an extra register read, so we're down from 4 to 3 reads. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Cc: linux-rpi-kernel@lists.infradead.org Cc: Lee Jones Cc: Jason Cooper Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1438902033-31477-2-git-send-email-eric@anholt.net Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm2835.c | 57 ++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 28 deletions(-) commit 6055f37afd8b68aaf512532e7e2dd651df2d7833 Author: Marek Olšák Date: Tue Aug 18 23:58:47 2015 +0200 drm/amdgpu: bump the DRM version for new allowed mem-mapped registers Used by mesa, etc. for profiling. Reviewed-by: Michel Dänzer Signed-off-by: Marek Olšák Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b86d598d0c9d847c3ff0fc1b31c762551a0f0e12 Merge: 57b8efa 2640b39 Author: David S. Miller Date: Thu Aug 20 13:01:57 2015 -0700 Merge branch 'vrf-cleanups-part-2' Nikolay Aleksandrov says: ==================== vrf: cleanups part 2 This is the next part of vrf cleanups, patch 1 drops the SLAB_PANIC when creating kmem cache since it's handled, patch 02 removes a slave duplicate check which is already done by the lower/upper code, patch 3 moves the ndo_add_slave code around a bit so we can drop an error label and patch 4 drops the master device checks which are unnecessary because the ops are taken from the master device itself so it can't be different. ==================== Acked-by: David Ahern commit 2640b39c28174dba1c9e089be575d87e5204282f Author: Nikolay Aleksandrov Date: Wed Aug 19 06:27:10 2015 +0300 vrf: ndo_add|del_slave drop unnecessary checks When ndo_add|del_slave ops are used, they're taken from the respective master device's netdev ops, so if the master device is a VRF only then the VRF ops will get called thus no need to check the type of the master. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 15df5e711245743a7a8018dd6535e39dcfcb38fc Author: Nikolay Aleksandrov Date: Wed Aug 19 06:27:09 2015 +0300 vrf: move vrf_insert_slave so we can drop a goto label We can simplify do_vrf_add_slave by moving vrf_insert_slave in the end of the enslaving and thus eliminate an error goto label. It always succeeds and isn't needed before that anyway. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 67f3a90b54322314a01af28946799a84c1b1d190 Author: Nikolay Aleksandrov Date: Wed Aug 19 06:27:08 2015 +0300 vrf: remove unnecessary duplicate check The upper/lower functions already check for duplicate slaves so no need to do it again. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 8 -------- 1 file changed, 8 deletions(-) commit e367da02fefcc6026c560ab3f361a40a16ccd9b3 Author: Nikolay Aleksandrov Date: Wed Aug 19 06:27:07 2015 +0300 vrf: don't panic on cache create failure It's pointless to panic on cache create failure when that case is handled and even more so since it's not a kernel-wide fatal problem so don't panic. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 29e76924cf087bc6a9114a9244828fd13ae959bb Author: Christophe Ricard Date: Wed Aug 19 21:26:43 2015 +0200 nfc: netlink: Add capability to reply to vendor_cmd with data A proprietary vendor command may send back useful data to the user application. For example, the field level applied on the NFC router antenna. Still based on net/wireless/nl80211.c implementation, add nfc_vendor_cmd_alloc_reply_skb and nfc_vendor_cmd_reply in order to send back over netlink data generated by a proprietary command. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz include/net/nfc/nfc.h | 41 ++++++++++++++++++++++++ net/nfc/netlink.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 125 insertions(+), 2 deletions(-) commit 57b8efa1a5e4baf3dfca8d5d7bfb946bd44ff390 Author: Nikolay Aleksandrov Date: Wed Aug 19 06:12:29 2015 +0300 vrf: plug skb leaks Currently whenever a packet different from ETH_P_IP is sent through the VRF device it is leaked so plug the leaks and properly drop these packets. Signed-off-by: Nikolay Aleksandrov Acked-by: David Ahern Signed-off-by: David S. Miller drivers/net/vrf.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 5a9e0ffc0f128ecdf7c770f76c268e4f9f3c9118 Author: Christophe Ricard Date: Wed Aug 19 21:26:42 2015 +0200 nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter skb can be NULL and may lead to a NULL pointer error. Add a check condition before setting HCI rx buffer. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz net/nfc/nci/hci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5dc861bd601b546ae6b36af54485142cca36a5e Author: Toshi Kani Date: Wed Jul 22 12:06:11 2015 -0600 x86/mm/pat: Add comments to cachemode translation tables Add comments to the cachemode translation tables to clarify that the default values are set as minimal supported mode, which are necessary to handle WC and WT fallback to UC- when they are not enabled. Signed-off-by: Toshi Kani Cc: Jan Beulich Cc: Borislav Petkov Cc: Ingo Molnar Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437588371-28223-1-git-send-email-toshi.kani@hp.com Signed-off-by: Thomas Gleixner arch/x86/mm/init.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit c04c674fadeb4a8e6522fc838d4620f7cfd4c621 Author: Robert Baldyga Date: Thu Aug 20 17:26:02 2015 +0200 nfc: s3fwrn5: Add driver for Samsung S3FWRN5 NFC Chip Add driver for Samsung S3FWRN5 NFC controller. S3FWRN5 is using NCI protocol and I2C communication interface. Signed-off-by: Robert Baldyga Signed-off-by: Samuel Ortiz .../devicetree/bindings/net/nfc/s3fwrn5.txt | 27 ++ MAINTAINERS | 6 + drivers/nfc/Kconfig | 1 + drivers/nfc/Makefile | 1 + drivers/nfc/s3fwrn5/Kconfig | 19 + drivers/nfc/s3fwrn5/Makefile | 11 + drivers/nfc/s3fwrn5/core.c | 219 +++++++++ drivers/nfc/s3fwrn5/firmware.c | 511 +++++++++++++++++++++ drivers/nfc/s3fwrn5/firmware.h | 111 +++++ drivers/nfc/s3fwrn5/i2c.c | 306 ++++++++++++ drivers/nfc/s3fwrn5/nci.c | 165 +++++++ drivers/nfc/s3fwrn5/nci.h | 89 ++++ drivers/nfc/s3fwrn5/s3fwrn5.h | 99 ++++ 13 files changed, 1565 insertions(+) commit 025a0cb8380b7100d39fb426db9192b6c59595dc Author: Robert Baldyga Date: Thu Aug 20 17:26:01 2015 +0200 NFC: nci: export nci_core_reset and nci_core_init Some drivers needs to have ability to reinit NCI core, for example after updating firmware in setup() of post_setup() callback. This patch makes nci_core_reset() and nci_core_init() functions public, to make it possible. Signed-off-by: Robert Baldyga Signed-off-by: Samuel Ortiz include/net/nfc/nci_core.h | 2 ++ net/nfc/nci/core.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) commit fdf79bd48876812acf0de58ed7a8bc1b3a3c67d6 Author: Robert Baldyga Date: Thu Aug 20 17:26:00 2015 +0200 NFC: nci: Add post_setup handler Some drivers require non-standard configuration after NCI_CORE_INIT request, because they need to know ndev->manufact_specific_info or ndev->manufact_id. This patch adds post_setup handler allowing to do such custom configuration. Signed-off-by: Robert Baldyga Signed-off-by: Samuel Ortiz include/net/nfc/nci_core.h | 1 + net/nfc/nci/core.c | 4 ++++ 2 files changed, 5 insertions(+) commit 05ddaa4d6d3806bebdf14f7c5de742a6e0e3b689 Merge: b48362d 9ca3085 Author: Thomas Gleixner Date: Thu Aug 20 21:13:22 2015 +0200 Merge branch 'fortglx/4.3/time' of https://git.linaro.org/people/john.stultz/linux into timers/core - A handful or y2038 related items - A walltime to monotonic limit - Small fixes for timespec_trunc() and timer_list output commit e76d28dd9ca84fa96dc0054bab34ccec34a7662a Author: Trond Myklebust Date: Thu Aug 20 13:12:51 2015 -0500 NFSv4.1/pnfs: Ensure the flexfiles layoutstats timers are consistent We want to ensure that the stopwatches for the busy timer and the aggregate timer are consistent. This means that they need to use the same start/stop times. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 51 ++++++++++++++++------------------ 1 file changed, 24 insertions(+), 27 deletions(-) commit 046be74da8f257c4f1925ed4b5d4ee4c822ef9c6 Author: Peng Tao Date: Fri Aug 21 10:32:50 2015 +0800 NFS41: fix list splice type We want to move commiting pages to pages list instead. Otherwise it causes pnfs small writes crash like: [34560.037692] BUG: unable to handle kernel NULL pointer dereference at 0000000000000068 [34560.038557] IP: [] nfs_init_commit+0x26/0x130 [nfs] [34560.039400] PGD 69f5a067 PUD 69f59067 PMD 0 [34560.040207] Oops: 0000 [#1] SMP [34560.041014] Modules linked in: nfsv3(OE) nfs_layout_flexfiles(OE) nfsv4(OE) nfs(OE) fscache(E) rpcsec_gss_krb5(E) xt_addrtype(E) xt_conntrack(E) ipt_MASQUERADE(E) nf_nat_masquerade_ipv4(E) iptable_nat(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) nf_nat_ipv4(E) iptable_filter(E) ip_tables(E) x_tables(E) nf_nat(E) nf_conntrack(E) bridge(E) stp(E) llc(E) dm_thin_pool(E) dm_persistent_data(E) dm_bio_prison(E) dm_bufio(E) ppdev(E) vmw_balloon(E) coretemp(E) crc32_pclmul(E) ghash_clmulni_intel(E) aesni_intel(E) aes_x86_64(E) glue_helper(E) lrw(E) gf128mul(E) ablk_helper(E) cryptd(E) psmouse(E) serio_raw(E) vmw_vmci(E) i2c_piix4(E) shpchp(E) parport_pc(E) parport(E) mac_hid(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) xfs(E) libcrc32c(E) hid_generic(E) usbhid(E) hid(E) e1000(E) mptspi(E) [34560.045106] mptscsih(E) mptbase(E) vmwgfx(E) drm_kms_helper(E) ttm(E) drm(E) autofs4(E) [last unloaded: fscache] [34560.045897] CPU: 0 PID: 130543 Comm: bash Tainted: G OE 4.2.0-rc5-dp-00057-gf993a93 #11 [34560.046699] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 [34560.047525] task: ffff880031b0a980 ti: ffff880045fec000 task.ti: ffff880045fec000 [34560.048264] RIP: 0010:[] [] nfs_init_commit+0x26/0x130 [nfs] [34560.049000] RSP: 0018:ffff880045fefc18 EFLAGS: 00010246 [34560.049717] RAX: 0000000000000000 RBX: ffff8800208fbc80 RCX: ffff880045fefd50 [34560.050396] RDX: ffff880031c19ec0 RSI: ffff880045fefc88 RDI: ffff8800208fbc80 [34560.051041] RBP: ffff880045fefc28 R08: ffff8800208fbe68 R09: ffff880045fefc88 [34560.051666] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880045fefc78 [34560.052247] R13: ffff880045fefc88 R14: ffff880045fefa90 R15: ffff880045fefd50 [34560.052825] FS: 00007fa02d58c740(0000) GS:ffff88006d600000(0000) knlGS:0000000000000000 [34560.053410] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [34560.053992] CR2: 0000000000000068 CR3: 000000003b37a000 CR4: 00000000001406f0 [34560.054615] Stack: [34560.055200] ffff8800208fbc80 ffff8800208fbc80 ffff880045fefcc8 ffffffffa05c1a5b [34560.055800] ffff880045fefcc8 ffff880045fefd50 0000000045fefcb8 ffff880045fefd40 [34560.056418] ffff8800420608e0 ffffffffa04f3910 0000000100000001 ffff880045fefd50 [34560.057013] Call Trace: [34560.057672] [] pnfs_generic_commit_pagelist+0x1cb/0x300 [nfsv4] [34560.058277] [] ? ff_layout_commit_pagelist+0x20/0x20 [nfs_layout_flexfiles] [34560.058907] [] ff_layout_commit_pagelist+0x15/0x20 [nfs_layout_flexfiles] [34560.059557] [] nfs_generic_commit_list+0xb1/0xf0 [nfs] [34560.060214] [] ? nfs_scan_commit+0x37/0xa0 [nfs] [34560.060825] [] nfs_commit_inode+0x81/0x150 [nfs] [34560.061432] [] nfs_wb_all+0x1ae/0x400 [nfs] [34560.062035] [] nfs_getattr+0x33d/0x510 [nfs] [34560.062630] [] vfs_getattr_nosec+0x2c/0x40 [34560.063223] [] vfs_getattr+0x26/0x30 [34560.063818] [] vfs_fstatat+0x65/0xa0 [34560.064413] [] SYSC_newstat+0x1f/0x40 [34560.065016] [] ? do_audit_syscall_entry+0x66/0x70 [34560.065626] [] ? syscall_trace_enter_phase1+0x113/0x170 [34560.066245] [] ? trace_hardirqs_on_thunk+0x17/0x19 [34560.066868] [] SyS_newstat+0xe/0x10 [34560.067533] [] entry_SYSCALL_64_fastpath+0x16/0x7a [34560.068173] Code: 0f 1f 44 00 00 0f 1f 44 00 00 55 4c 8d 87 e8 01 00 00 48 89 e5 53 48 89 fb 48 83 ec 08 4c 8b 0e 49 8b 41 18 4c 39 ce 48 8b 40 40 <4c> 8b 50 68 74 24 48 8b 87 e8 01 00 00 48 8b 7e 08 4d 89 41 08 [34560.069609] RIP [] nfs_init_commit+0x26/0x130 [nfs] [34560.070295] RSP [34560.071008] CR2: 0000000000000068 [34560.073207] ---[ end trace f85f873260977406 ]--- [fixes 27571297a7e(pNFS: Tighten up locking around DS commit buckets)] Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/pnfs_nfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a16ea900fadc88714e3a32214dea8e968ccd889 Author: Markus Pargmann Date: Thu Aug 20 11:12:35 2015 +0200 regmap: regmap_raw_read return error on !bus->read Return -ENOTSUPP if map->bus->read is not implemented and we do not use the cache. This code path would directly use bus->read would run into an NULL pointer for the read function. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 5 +++++ 1 file changed, 5 insertions(+) commit a71d6ea6d3ec3e8ba4220370f29531903e3bc153 Author: Leilk Liu Date: Thu Aug 20 17:19:08 2015 +0800 spi: mediatek: use BIT() to instead of SPI_CMD_*_OFFSET This patch removes SPI_CMD_*_OFFSET defines, and uses the BIT(x) defines instead. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit af57937e862370c14b7d71d15d969593ffca1ba8 Author: Leilk Liu Date: Thu Aug 20 17:19:07 2015 +0800 spi: medaitek: revise quirks compatibility style The quirks are true/false, so define these as bool. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) commit 44f636da4e71e0c73d6e29d0319a8954ce3f247a Author: Leilk Liu Date: Thu Aug 20 17:19:06 2015 +0800 spi: mediatek: fix spi incorrect endian usage TX_ENDIAN/RX_ENDIAN bits define whether to reverse the endian order of the data DMA from/to memory. The endian order should keep the same with cpu endian. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 38 ++++++++++++++------------------ include/linux/platform_data/spi-mt65xx.h | 2 -- 2 files changed, 16 insertions(+), 24 deletions(-) commit e2e05394e4a3420dab96f728df4531893494e15d Author: Ross Zwisler Date: Tue Aug 18 13:55:41 2015 -0600 pmem, dax: have direct_access use __pmem annotation Update the annotation for the kaddr pointer returned by direct_access() so that it is a __pmem pointer. This is consistent with the PMEM driver and with how this direct_access() pointer is used in the DAX code. Signed-off-by: Ross Zwisler Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams Documentation/filesystems/Locking | 3 ++- arch/powerpc/sysdev/axonram.c | 7 ++++--- drivers/block/brd.c | 4 ++-- drivers/nvdimm/pmem.c | 4 ++-- drivers/s390/block/dcssblk.c | 10 ++++++---- fs/block_dev.c | 2 +- fs/dax.c | 37 ++++++++++++++++++++----------------- include/linux/blkdev.h | 8 ++++---- 8 files changed, 41 insertions(+), 34 deletions(-) commit 2765cfbb342c727c3fd47b165196cb16da158022 Author: Ross Zwisler Date: Tue Aug 18 13:55:40 2015 -0600 dax: update I/O path to do proper PMEM flushing Update the DAX I/O path so that all operations that store data (I/O writes, zeroing blocks, punching holes, etc.) properly synchronize the stores to media using the PMEM API. This ensures that the data DAX is writing is durable on media before the operation completes. Signed-off-by: Ross Zwisler Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams fs/dax.c | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) commit 5de490daec8b6354b90d5c9d3e2415b195f5adb6 Author: Ross Zwisler Date: Tue Aug 18 13:55:39 2015 -0600 pmem: add copy_from_iter_pmem() and clear_pmem() Add support for two new PMEM APIs, copy_from_iter_pmem() and clear_pmem(). copy_from_iter_pmem() is used to copy data from an iterator into a PMEM buffer. clear_pmem() zeros a PMEM memory range. Both of these new APIs must be explicitly ordered using a wmb_pmem() function call and are implemented in such a way that the wmb_pmem() will make the stores to PMEM durable. Because both APIs are unordered they can be called as needed without introducing any unwanted memory barriers. Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams arch/x86/include/asm/pmem.h | 75 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/pmem.h | 64 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 137 insertions(+), 2 deletions(-) commit 4a370df5534ef727cba9a9d74bf22e0609f91d6e Author: Ross Zwisler Date: Tue Aug 18 13:55:38 2015 -0600 pmem, x86: clean up conditional pmem includes Prior to this change x86_64 used the pmem defines in arch/x86/include/asm/pmem.h, and UM used the default ones at the top of include/linux/pmem.h. The inclusion or exclusion in linux/pmem.h was controlled by CONFIG_ARCH_HAS_PMEM_API, but the ones in asm/pmem.h were controlled by ARCH_HAS_NOCACHE_UACCESS. Instead, control them both with CONFIG_ARCH_HAS_PMEM_API so that it's clear that they are related and we don't run into the possibility where they are both included or excluded. Also remove a bunch of stale function prototypes meant for UM in asm/pmem.h - these just conflicted with the inline defaults in linux/pmem.h and gave compile errors. Signed-off-by: Ross Zwisler Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams arch/x86/include/asm/pmem.h | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit 18279b467a9d89afe44afbc19d768e834dbf4545 Author: Ross Zwisler Date: Tue Aug 18 13:55:37 2015 -0600 pmem: remove layer when calling arch_has_wmb_pmem() Prior to this change arch_has_wmb_pmem() was only called by arch_has_pmem_api(). Both arch_has_wmb_pmem() and arch_has_pmem_api() checked to make sure that CONFIG_ARCH_HAS_PMEM_API was enabled. Instead, remove the old arch_has_wmb_pmem() wrapper to be rid of one extra layer of indirection and the redundant CONFIG_ARCH_HAS_PMEM_API check. Rename __arch_has_wmb_pmem() to arch_has_wmb_pmem() since we no longer have a wrapper, and just have arch_has_pmem_api() call the architecture specific arch_has_wmb_pmem() directly. Signed-off-by: Ross Zwisler Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams arch/x86/include/asm/pmem.h | 2 +- include/linux/pmem.h | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) commit 40603526569b304dd92f720f2f8ab11e828ea145 Author: Ross Zwisler Date: Tue Aug 18 13:55:36 2015 -0600 pmem, x86: move x86 PMEM API to new pmem.h header Move the x86 PMEM API implementation out of asm/cacheflush.h and into its own header asm/pmem.h. This will allow members of the PMEM API to be more easily identified on this and other architectures. Signed-off-by: Ross Zwisler Suggested-by: Christoph Hellwig Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams MAINTAINERS | 1 + arch/x86/include/asm/cacheflush.h | 71 ------------------------------ arch/x86/include/asm/pmem.h | 92 +++++++++++++++++++++++++++++++++++++++ include/linux/pmem.h | 2 +- 4 files changed, 94 insertions(+), 72 deletions(-) commit e134cb2041359c927b735b81568373624ea26baf Author: Zidan Wang Date: Fri Aug 14 11:22:16 2015 +0800 ASoC: wm8994: fix add dynamic path error If there don't exist dynamic sink or source widget, it will failed to add dynamic path. "AIF3ADCDAT" is snd_soc_dapm_aif_out, can't be dynamic sink widget. So change the audio route to fix this issue. Signed-off-by: Zidan Wang Signed-off-by: Mark Brown sound/soc/codecs/wm8994.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit f682c4ffd25a19594d21987c19a69fa123242eb7 Author: Vignesh R Date: Thu Aug 20 16:00:59 2015 +0530 spi: ti-qspi: use 128 bit transfer mode where possible TI QSPI has four 32 bit data regsiters which can be used to transfer 16 bytes of data at once. The register group QSPI_SPI_DATA_REG_3, QSPI_SPI_DATA_REG_2, QSPI_SPI_DATA_REG_1 and QSPI_SPI_DATA_REG is treated as a single 128-bit word for shifting data in and out. The bit at QSPI_SPI_DATA_REG_3[31] position is the first bit to be shifted out in case of 128 bit transfer mode. Therefore the first byte to be written to flash should be at QSPI_SPI_DATA_REG_3[31-25] position. Instead of writing 1 byte at a time when interacting with spi-nor flash, make use of all the four registers so that 16 bytes can be transferred in one go. This reduces number of register writes and Word Complete interrupts for a given transfer message size, thereby increasing the write performance. Without this patch the raw flash write speed is ~100KB/s, with this patch the write speed increases to ~400 kB/s on DRA74 EVM. Signed-off-by: Vignesh R Signed-off-by: Mark Brown drivers/spi/spi-ti-qspi.c | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) commit 14a500fe1396934c6b3ed8f009459a4723da7862 Author: Vaishali Thakkar Date: Thu Aug 20 22:11:15 2015 +0530 ASoC: samsung: Remove redundant arndale_audio_remove There is no use of snd_soc_unregister_card in remove function as devm_snd_soc_register_card in probe function automatically handles it. So, remove use of snd_soc_unregister_card and with this change remove arndale_audio_remove as it is now redundant. Signed-off-by: Vaishali Thakkar Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/samsung/arndale_rt5631.c | 10 ---------- 1 file changed, 10 deletions(-) commit 3a10766d0624c72b978790dba864cf7d6160f89f Author: Bjorn Helgaas Date: Tue Aug 4 14:54:04 2015 -0500 PCI: Drop references acquired by of_parse_phandle() of_parse_phandle() returns a device_node pointer with the refcount incremented. We should dispose of this reference when we're finished. Drop the reference acquired by of_parse_phandle(). Signed-off-by: Bjorn Helgaas Reviewed-by: Lorenzo Pieralisi drivers/pci/host/pci-mvebu.c | 1 + drivers/pci/host/pci-xgene.c | 1 + 2 files changed, 2 insertions(+) commit 2291ec09025f85c11fbd0e9877c4306a8aa6e7e9 Author: Lorenzo Pieralisi Date: Mon Aug 3 22:04:06 2015 -0500 PCI/MSI: Remove unused pcibios_msi_controller() hook The pcibios_msi_controller() hook was only implemented by ARM, and it sets pci_bus->msi now, so it doesn't need this hook anymore. Remove the unused pcibios_msi_controller() hook. [bhelgaas: changelog, split into separate patch] Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas drivers/pci/msi.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) commit b5e5e8a13e19ee17e6ffbe2c3d344182b7be20f6 Author: Lorenzo Pieralisi Date: Tue Aug 4 11:58:49 2015 -0500 ARM/PCI: Remove msi_controller from struct pci_sys_data ARM now uses pci_bus->msi to store the msi_controller pointer, so we don't need to save it in struct pci_sys_data, and we don't need to implement pcibios_msi_controller() to get it out of pci_sys_data. Remove msi_controller from struct pci_sys_data and pcibios_msi_controller(). [bhelgaas: changelog, split into separate patch] Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Jingoo Han arch/arm/include/asm/mach/pci.h | 3 --- arch/arm/kernel/bios32.c | 12 ------------ 2 files changed, 15 deletions(-) commit 8953aab1e80fd299d6185a57edaff733fa5c6a55 Author: Lorenzo Pieralisi Date: Wed Jul 29 12:33:18 2015 +0100 ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() ARM previously stored the msi_controller pointer in its sysdata, struct pci_sys_data, and implemented pcibios_msi_controller() to retrieve it. That made PCI host controller drivers specific to ARM because they had to put the msi_controller pointer in the ARM-specific pci_sys_data. There is now a generic mechanism, pci_scan_root_bus_msi(), for giving the msi_controller pointer to the PCI core. Use this for all ARM systems and for the DesignWare and Xilinx PCI host controller drivers. This removes an ARM dependency from the DesignWare, DRA7xx, EXYNOS, i.MX6, Keystone, Layerscape, SPEAr13xx, and Xilinx drivers. [bhelgaas: changelog, split into separate patch] Suggested-by: Russell King Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Jingoo Han CC: Pratyush Anand CC: Arnd Bergmann CC: Simon Horman CC: Russell King CC: Thomas Petazzoni CC: Thierry Reding CC: Michal Simek CC: Marc Zyngier arch/arm/include/asm/mach/pci.h | 2 -- arch/arm/kernel/bios32.c | 5 +++-- drivers/pci/host/pcie-designware.c | 12 +++++++++--- drivers/pci/host/pcie-xilinx.c | 11 ++++++++--- 4 files changed, 20 insertions(+), 10 deletions(-) commit d2a7926d42b3b46e45b4e44dc3302b2701ec0856 Author: Lorenzo Pieralisi Date: Mon Aug 3 21:27:10 2015 -0500 PCI: Add pci_scan_root_bus_msi() Add a pci_scan_root_bus_msi() interface so an arch can specify the MSI controller up front. This removes the need for a pcibios callback to set the MSI controller later. This is not exported because I'd like to replace the variety of "scan root bus" interfaces with a single, more extensible interface that can handle the MSI controller, domain, pci_ops, resources, etc. I hope this interface is temporary. [bhelgaas: changelog, split into separate patch] Suggested-by: Russell King Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Jingoo Han drivers/pci/probe.c | 14 ++++++++++++-- include/linux/pci.h | 4 ++++ 2 files changed, 16 insertions(+), 2 deletions(-) commit ada8b675b76ec847bfa4a237d82a7a96da128768 Author: Lorenzo Pieralisi Date: Wed Jul 29 12:33:17 2015 +0100 ARM/PCI: Replace panic with WARN messages on failures In the ARM PCI bios32 layer, failures to dynamically allocate pci_sys_data for a PCI bus, or a PCI bus scan failure have to be considered serious warnings but they should not trigger a system panic so that at least the system is given a chance to be debugged. This patch replaces the panic statements with WARN() messages to improve error reporting in the ARM PCI bios32 layer. Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Jingoo Han Acked-by: Marc Zyngier CC: Russell King CC: Marc Zyngier arch/arm/kernel/bios32.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit aa4a5c0d2d7e3c30f9df033ea0367f148bb369f6 Author: Jayachandran C Date: Wed Aug 5 02:23:40 2015 +0530 PCI: generic: Add arm64 support Make pci-host-generic driver (kernel option PCI_HOST_GENERIC) available on arm64. Signed-off-by: Jayachandran C Signed-off-by: Bjorn Helgaas drivers/pci/host/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 459a07721c113b807ffcaa7bc98dd5d26beb39d5 Author: Jayachandran C Date: Wed Aug 5 02:23:39 2015 +0530 PCI: Build setup-irq.o for arm64 ARM64 requires setup-irq.o to provide pci_fixup_irqs() implementation. We are adding this now to support the pci-host-generic host controller, but we enable it for ARM64 PCI so that other host controllers can use this as well. Signed-off-by: Jayachandran C Signed-off-by: Bjorn Helgaas drivers/pci/Makefile | 1 + 1 file changed, 1 insertion(+) commit 499733e0cc1a00523c5056a690f65dea7b9da140 Author: Jayachandran C Date: Wed Aug 5 02:23:38 2015 +0530 PCI: generic: Remove dependency on ARM-specific struct hw_pci The generic OF-based host controller driver uses pci_common_init_dev(), which is ARM-specific and requires the ARM struct hw_pci. The part of pci_common_init_dev() that is needed is limited and can be done here without using hw_pci. Note that the ARM pcibios functions expect the PCI sysdata to be a pointer to a struct pci_sys_data. Add a struct pci_sys_data as the first element in struct gen_pci so that when we use a gen_pci pointer as sysdata, it is also a pointer to a struct pci_sys_data. Create and scan the root bus directly without using the ARM pci_common_init_dev() interface. [bhelgaas: changelog, move pcie_bus_configure_settings() before pci_bus_add_devices(), combine !PCI_PROBE_ONLY blocks] Tested-by: Lorenzo Pieralisi Tested-by: Suravee Suthikulpanit Tested-by: Pavel Fedin Signed-off-by: Jayachandran C Signed-off-by: Bjorn Helgaas Acked-by: Lorenzo Pieralisi drivers/pci/host/pci-host-generic.c | 52 +++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 19 deletions(-) commit 24928634f81b1592e83b37dcd89ed45c28f12feb Author: Jaegeuk Kim Date: Sun Aug 16 13:04:50 2015 -0700 f2fs: check the node block address of newly allocated nid This patch adds a routine which checks the block address of newly allocated nid. If an nid has already allocated by other thread due to subtle data races, it will result in filesystem corruption. So, it needs to check whether its block address was already allocated or not in prior to nid allocation as the last chance. Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit a21c20f0c812925085204fced932ac95f2a76bf0 Author: Jaegeuk Kim Date: Sun Aug 16 12:38:15 2015 -0700 f2fs: go out for insert_inode_locked failure We should not call unlock_new_inode when insert_inode_locked failed. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 5ee5293c3290a8e710d75977418f954e62c3dfdf Author: Jaegeuk Kim Date: Sat Aug 15 22:06:08 2015 -0700 f2fs: retry gc if one section is not successfully reclaimed If FG_GC failed to reclaim one section, let's retry with another section from the start, since we can get anoterh good candidate. Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) commit 2286c0205d1478d4bece6e733cbaf15535fba09d Author: Jaegeuk Kim Date: Sat Aug 15 21:51:05 2015 -0700 f2fs: fix to cover lock_op for update_inode_page Previously, update_inode_page is not called under f2fs_lock_op. Instead we should call with f2fs_write_inode. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 268344664603706b6f156548f9d7482665222f87 Author: Jaegeuk Kim Date: Fri Aug 14 17:57:29 2015 -0700 f2fs: reuse nids more aggressively If we can reuse nids as many as possible, we can mitigate producing obsolete node pages in the page cache. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 4 ++++ 1 file changed, 4 insertions(+) commit 26d5859974bb817f7615be90199a8e82e3f0a0ed Author: Jaegeuk Kim Date: Fri Aug 14 14:37:50 2015 -0700 f2fs: avoid garbage collecting already moved node blocks If node blocks were already moved, we don't need to move them again. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 740432f835608d11b5386321ab5aa8f61e07fb27 Author: Jaegeuk Kim Date: Fri Aug 14 11:43:56 2015 -0700 f2fs: handle failed bio allocation As the below comment of bio_alloc_bioset, f2fs can allocate multiple bios at the same time. So, we can't guarantee that bio is allocated all the time. " * When @bs is not NULL, if %__GFP_WAIT is set then bio_alloc will always be * able to allocate a bio. This is due to the mempool guarantees. To make this * work, callers must never allocate more than 1 bio at a time from this pool. * Callers that need to allocate more than 1 bio must always submit the * previously allocated bio for IO before attempting to allocate a new one. * Failure to do so can cause deadlocks under memory pressure. " Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 3 +-- fs/f2fs/f2fs.h | 15 +++++++++++++++ fs/f2fs/segment.c | 15 ++++++++++++--- 3 files changed, 28 insertions(+), 5 deletions(-) commit a6db67f06fd9f6b1ddb11bcf4d7e8e8a86908d01 Author: Jaegeuk Kim Date: Mon Aug 10 15:01:12 2015 -0700 f2fs: increase the number of max hard links This patch increases the number of maximum hard links for one file. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 798c1b16d1a6171587ff46c74ede8092e66f72f7 Author: Jaegeuk Kim Date: Tue Aug 11 21:59:49 2015 -0700 f2fs: skip checkpoint if there is no dirty and prefree segments We should avoid needless checkpoints when there is no dirty and prefree segment. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 31696580bf4c042a0f7b06d855e04441488d18b1 Author: Chao Yu Date: Tue Jul 28 18:33:46 2015 +0800 f2fs: shrink free_nids entries This patch introduces __count_free_nids/try_to_free_nids and registers them in slab shrinker for shrinking under memory pressure. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 + fs/f2fs/node.c | 28 ++++++++++++++++++++++++++++ fs/f2fs/segment.c | 3 +++ fs/f2fs/shrinker.c | 14 ++++++++++++++ 4 files changed, 46 insertions(+) commit 206e61be29624499af46546076e835da93e6bde5 Author: Chao Yu Date: Wed Aug 12 17:48:21 2015 +0800 f2fs: avoid clear valid page In f2fs_delete_entry, if last dirent is remove from the dentry page, we will try to punch that page since it has no valid date in it. But truncate_hole which is used for punching could fail because of no memory or IO error, if that happened, we'd better skip clearing this valid dentry page. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7b2a246b888ffb26fcec10adf7ff80b00fbad909 Author: Chao Yu Date: Wed Aug 12 17:47:08 2015 +0800 MAINTAINERS: add myself as a dedicated reviewer of f2fs I volunteer to be a dedicated reviewer of f2fs, add my email address in maintainship entry of f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 315df8398e36360c0be62e6fdd3f2708fc3a2567 Author: Jaegeuk Kim Date: Tue Aug 11 12:45:39 2015 -0700 f2fs: do not write any node pages related to orphan inodes We should not write node pages when deleting orphan inodes. In order to do that, we can eaisly set POR_DOING flag earlier before entering orphan inode routine. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 4 ---- fs/f2fs/recovery.c | 4 +--- fs/f2fs/super.c | 6 +++++- 3 files changed, 6 insertions(+), 8 deletions(-) commit 895fb3159280fe7695b35ec7c87ec19e13ca5b6e Author: Max Filippov Date: Fri Aug 21 20:43:44 2015 +0300 xtensa: improve vmlinux.lds.S sed post-processing Current sed script makes assumptions about the structure of rules that group .text sections in the vmlinux linker script. These assumptions get broken occasionally, e.g.: 779c88c94c34 "ARM: 8321/1: asm-generic: introduce.text.fixup input section", or 9bebe9e5b0f3 "kbuild: Fix .text.unlikely placement". Rewrite sed rules so that they don't depend on number/arrangement of text sections in *(...) blocks. Signed-off-by: Max Filippov arch/xtensa/kernel/Makefile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5fb4e288a025af1abc5c67ecebf30fbf6b3edad1 Author: Christopher Oo Date: Thu Jun 25 16:10:48 2015 -0700 cifs: Fix use-after-free on mid_q_entry With CIFS_DEBUG_2 enabled, additional debug information is tracked inside each mid_q_entry struct, however cifs_save_when_sent may use the mid_q_entry after it has been freed from the appropriate callback if the transport layer has very low latency. Holding the srv_mutex fixes this use-after-free, as cifs_save_when_sent is called while the srv_mutex is held while the request is sent. Signed-off-by: Christopher Oo fs/cifs/cifssmb.c | 7 +++++++ fs/cifs/smb2pdu.c | 7 +++++++ fs/cifs/transport.c | 2 ++ 3 files changed, 16 insertions(+) commit 0a6d0b64120759df8b9291af92d998ed1cbefc9d Author: Steve French Date: Sat Jul 4 18:45:33 2015 -0500 Update cifs version number Update modinfo cifs.ko version number to 2.07 Signed-off-by: Steve French fs/cifs/cifsfs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0de1f4c6f6c028249579d8d80fa0a4f6322b2227 Author: Steve French Date: Sat Jul 4 18:40:10 2015 -0500 Add way to query server fs info for smb3 The server exports information about the share and underlying device under an SMB3 export, including its attributes and capabilities, which is stored by cifs.ko when first connecting to the share. Add ioctl to cifs.ko to allow user space smb3 helper utilities (in cifs-utils) to display this (e.g. via smb3util). This information is also useful for debugging and for resolving configuration errors. Signed-off-by: Steve French fs/cifs/cifs_ioctl.h | 42 ++++++++++++++++++++++++++++++++++++++++++ fs/cifs/cifspdu.h | 14 ++++++++++++++ fs/cifs/ioctl.c | 48 ++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 98 insertions(+), 6 deletions(-) commit d8d23fa0f27f3b2942a7bbc7378c7735324ed519 Author: Will Deacon Date: Thu Aug 20 11:47:13 2015 +0100 arm64: mdscr_el1: avoid exposing DCC to userspace We don't want to expose the DCC to userspace, particularly as there is a kernel console driver for it. This patch resets mdscr_el1 to disable userspace access to the DCC registers on the cold boot path. Signed-off-by: Will Deacon arch/arm64/mm/proc.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 090749502ff20d7d9ec244036fe636b6bf0433b6 Author: Vineet Gupta Date: Wed Aug 19 17:23:58 2015 +0530 ARC: add/fix some comments in code - no functional change Signed-off-by: Vineet Gupta arch/arc/boot/dts/axc003.dtsi | 13 +++++++------ arch/arc/include/asm/cmpxchg.h | 22 +++++++++++----------- arch/arc/include/asm/perf_event.h | 2 +- arch/arc/kernel/perf_event.c | 4 ++-- arch/arc/kernel/process.c | 2 +- arch/arc/plat-axs10x/axs10x.c | 2 +- 6 files changed, 23 insertions(+), 22 deletions(-) commit 6de6066c0d24a66df465cf87a4041ef7ef35ba6f Author: Yuriy Kolerov Date: Wed Aug 12 17:23:32 2015 +0300 ARC: change some branchs to jumps to resolve linkage errors When kernel's binary becomes large enough (32M and more) errors may occur during the final linkage stage. It happens because the build system uses short relocations for ARC by default. This problem may be easily resolved by passing -mlong-calls option to GCC to use long absolute jumps (j) instead of short relative branchs (b). But there are fragments of pure assembler code exist which use branchs in inappropriate places and cause a linkage error because of relocations overflow. First of these fragments is .fixup insertion in futex.h and unaligned.c. It inserts a code in the separate section (.fixup) with branch instruction. It leads to the linkage error when kernel becomes large. Second of these fragments is calling scheduler's functions (common kernel code) from entry.S of ARC's code. When kernel's binary becomes large it may lead to the linkage error because scheduler may occur far enough from ARC's code in the final binary. Signed-off-by: Yuriy Kolerov Signed-off-by: Vineet Gupta arch/arc/include/asm/futex.h | 6 +++--- arch/arc/kernel/entry.S | 6 +++--- arch/arc/kernel/unaligned.c | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) commit 9181f8bf5abf4b9d59b12e878895375b84fe32ba Author: Jan Kara Date: Thu Aug 20 14:50:07 2015 +0200 udf: Don't modify filesystem for read-only mounts When read-write mount of a filesystem is requested but we find out we can mount the filesystem only in read-only mode, we still modify LVID in udf_close_lvid(). That is both unnecessary and contrary to expectation that when we fall back to read-only mount we don't modify the filesystem. Make sure we call udf_close_lvid() only if we called udf_open_lvid() so that filesystem gets modified only if we verified we are allowed to write to it. Reported-by: Karel Zak Signed-off-by: Jan Kara fs/udf/super.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5b733faca671756dd41b7e24584374e2b1fc3c4d Author: Michal Marek Date: Thu Aug 20 14:13:35 2015 +0200 genksyms: Regenerate parser Rebuild the parser after commit 1c722503fa81 (genksyms: Duplicate function pointer type definitions segfault), using bison 2.7. Signed-off-by: Michal Marek scripts/genksyms/parse.tab.c_shipped | 671 +++++++++++++++++------------------ scripts/genksyms/parse.tab.h_shipped | 26 +- 2 files changed, 354 insertions(+), 343 deletions(-) commit 1c722503fa81888c936a8d1a5052daec859f1a7c Author: Richard Yao Date: Mon Jul 20 19:52:48 2015 -0400 genksyms: Duplicate function pointer type definitions segfault I noticed that genksyms will segfault when it sees duplicate function pointer type declaration when I placed the same function pointer definition in two separate headers in a local branch as an intermediate step of some refactoring. This can be reproduced by piping the following minimal test case into `genksyms -r /dev/null` or alternatively, putting it into a C file attempting a build: typedef int (*f)(); typedef int (*f)(); Attaching gdb to genksyms to understand this failure is useless without changing CFLAGS to emit debuginfo. Once you have debuginfo, you will find that the failure is that `char *s` was NULL and the program executed `while(*s)`. At which point, further debugging requires familiarity with compiler front end / parser development. What happens is that flex identifies the first instance of the token "f" as IDENT and the yacc parser adds it to the symbol table. On the second instance, flex will identify "f" as TYPE, which triggers an error case in the yacc parser. Given that TYPE would have been IDENT had it not been in the symbol table, the the segmentaion fault could be avoided by treating TYPE as IDENT in the affected rule. Some might consider placing identical function pointer type declarations in different headers to be poor style might consider a failure to be beneficial. However, failing through a segmentation fault makes the cause non-obvious and can waste the time of anyone who encounters it. Signed-off-by: Richard Yao Acked-by: Madhuri Yechuri Signed-off-by: Michal Marek scripts/genksyms/parse.y | 9 +++++++++ 1 file changed, 9 insertions(+) commit 9bebe9e5b0f3109a14000df25308c2971f872605 Author: Andi Kleen Date: Sun Jul 19 18:01:19 2015 -0700 kbuild: Fix .text.unlikely placement When building a kernel with .text.unlikely text the unlikely text for each translation unit was put next to the main .text code in the final vmlinux. The problem is that the linker doesn't allow more specific submatches of a section name in a different linker script statement after the main match. So we need to move them all into one line. With that change .text.unlikely is at the end of everything again. I also moved .text.hot into the same statement though, even though that's not strictly needed. Signed-off-by: Andi Kleen Signed-off-by: Michal Marek include/asm-generic/vmlinux.lds.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3c0561e0043fe870426b445890ab93204332ae39 Author: Pavel Fedin Date: Fri Aug 14 13:52:13 2015 +0300 Avoid conflict with host definitions when cross-compiling Certain platforms (e. g. BSD-based ones) define some ELF constants according to host. This patch fixes problems with cross-building Linux kernel on these platforms (e. g. building ARM 32-bit version on x86-64 host). Signed-off-by: Pavel Fedin Signed-off-by: Michal Marek scripts/mod/modpost.h | 6 ++++++ 1 file changed, 6 insertions(+) commit eb2cd8b72b08fe56998600aee8a5dff93f7be5a2 Author: Vineet Gupta Date: Thu Aug 6 19:11:06 2015 +0530 ARC: ensure futex ops are atomic in !LLSC config W/o hardware assisted atomic r-m-w the best we can do is to disable preemption. Cc: David Hildenbrand Cc: Peter Zijlstra (Intel) Cc: Thomas Gleixner Cc: Michel Lespinasse Signed-off-by: Vineet Gupta arch/arc/include/asm/futex.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5e0574292ad48dcdf48ef90a47da862c21d649a6 Author: Vineet Gupta Date: Thu Aug 6 17:55:34 2015 +0530 ARC: Enable HAVE_FUTEX_CMPXCHG ARC doesn't need the runtime detection of futex cmpxchg op Cc: Peter Zijlstra (Intel) Cc: Thomas Gleixner Signed-off-by: Vineet Gupta arch/arc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 882a95ae0a4f8fc303257acf5c6ff305df34d04b Author: Vineet Gupta Date: Thu Aug 6 17:03:17 2015 +0530 ARC: make futex_atomic_cmpxchg_inatomic() return bimodal Callers of cmpxchg_futex_value_locked() in futex code expect bimodal return value: !0 (essentially -EFAULT as failure) 0 (success) Before this patch, the success return value was old value of futex, which could very well be non zero, causing caller to possibly take the failure path erroneously. Fix that by returning 0 for success (This fix was done back in 2011 for all upstream arches, which ARC obviously missed) Cc: Peter Zijlstra (Intel) Cc: Thomas Gleixner Cc: Michel Lespinasse Signed-off-by: Vineet Gupta arch/arc/include/asm/futex.h | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit ed574e2bbd81ec20134059fb5e17acbc76387270 Author: Vineet Gupta Date: Wed Aug 5 19:23:34 2015 +0530 ARC: futex cosmetics Cc: Peter Zijlstra (Intel) Cc: Thomas Gleixner Cc: Michel Lespinasse Signed-off-by: Vineet Gupta arch/arc/include/asm/futex.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 31d30c8208a38a0442cc01a9c7f6542489c76353 Author: Vineet Gupta Date: Wed Aug 5 19:10:02 2015 +0530 ARC: add barriers to futex code The atomic ops on futex need to provide the full barrier just like regular atomics in kernel. Also remove pagefault_enable/disable in futex_atomic_cmpxchg_inatomic() as core code already does that Cc: David Hildenbrand Cc: Peter Zijlstra (Intel) Cc: Thomas Gleixner Cc: Michel Lespinasse Signed-off-by: Vineet Gupta arch/arc/include/asm/futex.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 1648c70d301e669ba03aa1c70fff46ec2c400414 Author: Alexey Brodkin Date: Tue Jun 9 11:25:22 2015 +0300 ARCv2: IOC: Allow boot time disable Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 79335a2ca03fdd883823e068b5e2f89a8ee47839 Author: Vineet Gupta Date: Thu Jun 4 18:30:23 2015 +0530 ARCv2: SLC: Allow boot time disable Signed-off-by: Vineet Gupta arch/arc/mm/cache.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit f2b0b25a37a6db12580dcdfdf00f020e5e0e3a43 Author: Alexey Brodkin Date: Mon May 25 19:54:28 2015 +0300 ARCv2: Support IO Coherency and permutations involving L1 and L2 caches In case of ARCv2 CPU there're could be following configurations that affect cache handling for data exchanged with peripherals via DMA: [1] Only L1 cache exists [2] Both L1 and L2 exist, but no IO coherency unit [3] L1, L2 caches and IO coherency unit exist Current implementation takes care of [1] and [2]. Moreover support of [2] is implemented with run-time check for SLC existence which is not super optimal. This patch introduces support of [3] and rework of DMA ops usage. Instead of doing run-time check every time a particular DMA op is executed we'll have 3 different implementations of DMA ops and select appropriate one during init. As for IOC support for it we need: [a] Implement empty DMA ops because IOC takes care of cache coherency with DMAed data [b] Route dma_alloc_coherent() via dma_alloc_noncoherent() This is required to make IOC work in first place and also serves as optimization as LD/ST to coherent buffers can be srviced from caches w/o going all the way to memory Signed-off-by: Alexey Brodkin [vgupta: -Added some comments about IOC gains -Marked dma ops as static, -Massaged changelog a bit] Signed-off-by: Vineet Gupta arch/arc/include/asm/arcregs.h | 1 + arch/arc/include/asm/cache.h | 8 +++ arch/arc/mm/cache.c | 114 +++++++++++++++++++++++++++++++++++------ arch/arc/mm/dma.c | 18 +++++++ 4 files changed, 125 insertions(+), 16 deletions(-) commit 78a6854e219ba266b6cc12f840b571c5f1168b5e Author: Sam Bobroff Date: Mon Jul 20 15:12:19 2015 +1000 merge_config.sh: exit on missing input files Add a check for the existence of input files and exit (with failure) if they are missing. Without this additional check, missing files produce error messages but still result in an output file being generated and a successful exit code. Signed-off-by: Sam Bobroff Signed-off-by: Michal Marek scripts/kconfig/merge_config.sh | 4 ++++ 1 file changed, 4 insertions(+) commit 724afaea2020f3bd98891b535f3ce5d3935bcf63 Author: Julien Grall Date: Fri Aug 7 17:34:34 2015 +0100 arm/xen: Remove helpers which are PV specific ARM guests are always HVM. The current implementation is assuming a 1:1 mapping which is only true for DOM0 and may not be at all in the future. Furthermore, all the helpers but arbitrary_virt_to_machine are used in x86 specific code (or only compiled for). The helper arbitrary_virt_to_machine is only used in PV specific code. Therefore we should never call the function. Add a BUG() in this helper and drop all the others. Signed-off-by: Julien Grall Acked-by: Stefano Stabellini Signed-off-by: David Vrabel arch/arm/include/asm/xen/page.h | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 3375d8284dfb7866f261ec008d15d30999ff273b Author: Boris Ostrovsky Date: Mon Aug 10 16:34:38 2015 -0400 xen/x86: Don't try to set PCE bit in CR4 Since VPMU code emulates RDPMC instruction with RDMSR and because hypervisor does not emulate it there is no reason to try setting CR4's PCE bit (and the hypervisor will warn on seeing it set). Signed-off-by: Boris Ostrovsky Signed-off-by: David Vrabel arch/x86/xen/enlighten.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bf6dfb154d935725c9a2005033ca33017b9df439 Author: Boris Ostrovsky Date: Mon Aug 10 16:34:37 2015 -0400 xen/PMU: PMU emulation code Add PMU emulation code that runs when we are processing a PMU interrupt. This code will allow us not to trap to hypervisor on each MSR/LVTPC access (of which there may be quite a few in the handler). Signed-off-by: Boris Ostrovsky Reviewed-by: David Vrabel Signed-off-by: David Vrabel arch/x86/xen/pmu.c | 214 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 185 insertions(+), 29 deletions(-) commit 6b08cd6328c58a2ae190c5ee03a2ffcab5ef828e Author: Boris Ostrovsky Date: Mon Aug 10 16:34:36 2015 -0400 xen/PMU: Intercept PMU-related MSR and APIC accesses Provide interfaces for recognizing accesses to PMU-related MSRs and LVTPC APIC and process these accesses in Xen PMU code. (The interrupt handler performs XENPMU_flush right away in the beginning since no PMU emulation is available. It will be added with a later patch). Signed-off-by: Boris Ostrovsky Reviewed-by: David Vrabel Signed-off-by: David Vrabel arch/x86/xen/apic.c | 5 ++- arch/x86/xen/enlighten.c | 11 +++-- arch/x86/xen/pmu.c | 95 +++++++++++++++++++++++++++++++++++++++++- arch/x86/xen/pmu.h | 4 ++ include/xen/interface/xenpmu.h | 2 + 5 files changed, 109 insertions(+), 8 deletions(-) commit e27b72df01109c689062caeba1defa013b759e0e Author: Boris Ostrovsky Date: Mon Aug 10 16:34:35 2015 -0400 xen/PMU: Describe vendor-specific PMU registers AMD and Intel PMU register initialization and helpers that determine whether a register belongs to PMU. This and some of subsequent PMU emulation code is somewhat similar to Xen's PMU implementation. Signed-off-by: Boris Ostrovsky Reviewed-by: David Vrabel Signed-off-by: David Vrabel arch/x86/xen/pmu.c | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 152 insertions(+), 1 deletion(-) commit 65d0cf0be79feebeb19e7626fd3ed41ae73f642d Author: Boris Ostrovsky Date: Mon Aug 10 16:34:34 2015 -0400 xen/PMU: Initialization code for Xen PMU Map shared data structure that will hold CPU registers, VPMU context, V/PCPU IDs of the CPU interrupted by PMU interrupt. Hypervisor fills this information in its handler and passes it to the guest for further processing. Set up PMU VIRQ. Now that perf infrastructure will assume that PMU is available on a PV guest we need to be careful and make sure that accesses via RDPMC instruction don't cause fatal traps by the hypervisor. Provide a nop RDPMC handler. For the same reason avoid issuing a warning on a write to APIC's LVTPC. Both of these will be made functional in later patches. Signed-off-by: Boris Ostrovsky Reviewed-by: David Vrabel Signed-off-by: David Vrabel arch/x86/include/asm/xen/interface.h | 123 +++++++++++++++++++++++++ arch/x86/xen/Makefile | 2 +- arch/x86/xen/apic.c | 3 + arch/x86/xen/enlighten.c | 12 ++- arch/x86/xen/pmu.c | 170 +++++++++++++++++++++++++++++++++++ arch/x86/xen/pmu.h | 11 +++ arch/x86/xen/smp.c | 29 +++++- arch/x86/xen/suspend.c | 23 +++-- include/xen/interface/xen.h | 1 + include/xen/interface/xenpmu.h | 33 +++++++ 10 files changed, 398 insertions(+), 9 deletions(-) commit 5f141548824cebbff2e838ff401c34e667797467 Author: Boris Ostrovsky Date: Mon Aug 10 16:34:33 2015 -0400 xen/PMU: Sysfs interface for setting Xen PMU mode Set Xen's PMU mode via /sys/hypervisor/pmu/pmu_mode. Add XENPMU hypercall. Signed-off-by: Boris Ostrovsky Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel Documentation/ABI/testing/sysfs-hypervisor-pmu | 23 +++++ arch/x86/include/asm/xen/hypercall.h | 6 ++ arch/x86/xen/Kconfig | 1 + drivers/xen/Kconfig | 3 + drivers/xen/sys-hypervisor.c | 136 ++++++++++++++++++++++++- include/xen/interface/xen.h | 1 + include/xen/interface/xenpmu.h | 59 +++++++++++ 7 files changed, 228 insertions(+), 1 deletion(-) commit a11f4f0a4e18b4bdc7d5e36438711e038b7a1f74 Author: Boris Ostrovsky Date: Mon Aug 10 16:34:32 2015 -0400 xen: xensyms support Export Xen symbols to dom0 via /proc/xen/xensyms (similar to /proc/kallsyms). Signed-off-by: Boris Ostrovsky Reviewed-by: David Vrabel Signed-off-by: David Vrabel drivers/xen/Kconfig | 8 +++ drivers/xen/xenfs/Makefile | 1 + drivers/xen/xenfs/super.c | 3 + drivers/xen/xenfs/xenfs.h | 1 + drivers/xen/xenfs/xensyms.c | 152 +++++++++++++++++++++++++++++++++++++++ include/xen/interface/platform.h | 18 +++++ 6 files changed, 183 insertions(+) commit cb3eb850137cd43fc3e25d2062525f5ba5fd884a Author: Juergen Gross Date: Fri Jul 17 06:51:37 2015 +0200 xen: remove no longer needed p2m.h Cleanup by removing arch/x86/xen/p2m.h as it isn't needed any more. Most definitions in this file are used in p2m.c only. Move those into p2m.c. set_phys_range_identity() is already declared in arch/x86/include/asm/xen/page.h, add __init annotation there. MAX_REMAP_RANGES isn't used at all, just delete it. The only define left is P2M_PER_PAGE which is moved to page.h as well. Signed-off-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/include/asm/xen/page.h | 6 ++++-- arch/x86/xen/p2m.c | 6 +++++- arch/x86/xen/p2m.h | 15 --------------- arch/x86/xen/setup.c | 1 - 4 files changed, 9 insertions(+), 19 deletions(-) commit c70727a5bc18a5a233fddc6056d1de9144d7a293 Author: Juergen Gross Date: Fri Jul 17 06:51:36 2015 +0200 xen: allow more than 512 GB of RAM for 64 bit pv-domains 64 bit pv-domains under Xen are limited to 512 GB of RAM today. The main reason has been the 3 level p2m tree, which was replaced by the virtual mapped linear p2m list. Parallel to the p2m list which is being used by the kernel itself there is a 3 level mfn tree for usage by the Xen tools and eventually for crash dump analysis. For this tree the linear p2m list can serve as a replacement, too. As the kernel can't know whether the tools are capable of dealing with the p2m list instead of the mfn tree, the limit of 512 GB can't be dropped in all cases. This patch replaces the hard limit by a kernel parameter which tells the kernel to obey the 512 GB limit or not. The default is selected by a configuration parameter which specifies whether the 512 GB limit should be active per default for domUs (domain save/restore/migration and crash dump analysis are affected). Memory above the domain limit is returned to the hypervisor instead of being identity mapped, which was wrong anyway. The kernel configuration parameter to specify the maximum size of a domain can be deleted, as it is not relevant any more. Signed-off-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel Documentation/kernel-parameters.txt | 7 +++++ arch/x86/include/asm/xen/page.h | 4 --- arch/x86/xen/Kconfig | 20 ++++++++----- arch/x86/xen/p2m.c | 10 +++---- arch/x86/xen/setup.c | 59 +++++++++++++++++++++++++++++++------ 5 files changed, 73 insertions(+), 27 deletions(-) commit 70e61199559a09c62714694cd5ac3c3640c41552 Author: Juergen Gross Date: Fri Jul 17 06:51:35 2015 +0200 xen: move p2m list if conflicting with e820 map Check whether the hypervisor supplied p2m list is placed at a location which is conflicting with the target E820 map. If this is the case relocate it to a new area unused up to now and compliant to the E820 map. As the p2m list might by huge (up to several GB) and is required to be mapped virtually, set up a temporary mapping for the copied list. For pvh domains just delete the p2m related information from start info instead of reserving the p2m memory, as we don't need it at all. For 32 bit kernels adjust the memblock_reserve() parameters in order to cover the page tables only. This requires to memblock_reserve() the start_info page on it's own. Signed-off-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/mmu.c | 257 ++++++++++++++++++++++++++++++++++++++++++++----- arch/x86/xen/setup.c | 51 +++++----- arch/x86/xen/xen-ops.h | 3 + 3 files changed, 264 insertions(+), 47 deletions(-) commit 6c2681c863b24360098d1ba60f2af060a13a0561 Author: Juergen Gross Date: Fri Jul 17 06:51:34 2015 +0200 xen: add explicit memblock_reserve() calls for special pages Some special pages containing interfaces to xen are being reserved implicitly only today. The memblock_reserve() call to reserve them is meant to reserve the p2m list supplied by xen. It is just reserving not only the p2m list itself, but some more pages up to the start of the xen built page tables. To be able to move the p2m list to another pfn range, which is needed for support of huge RAM, this memblock_reserve() must be split up to cover all affected reserved pages explicitly. The affected pages are: - start_info page - xenstore ring (might be missing, mfn is 0 in this case) - console ring (not for initial domain) Signed-off-by: Juergen Gross Signed-off-by: David Vrabel arch/x86/xen/enlighten.c | 4 +++- arch/x86/xen/mmu.c | 15 +++++++++++++++ arch/x86/xen/xen-ops.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) commit 2592dbbbf4c67501c2bd2dcf89c2b8924d592a9f Author: Juergen Gross Date: Fri Jul 17 06:51:33 2015 +0200 mm: provide early_memremap_ro to establish read-only mapping During early boot as Xen pv domain the kernel needs to map some page tables supplied by the hypervisor read only. This is needed to be able to relocate some data structures conflicting with the physical memory map especially on systems with huge RAM (above 512GB). Provide the function early_memremap_ro() to provide this read only mapping. Signed-off-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Acked-by: Vlastimil Babka Signed-off-by: David Vrabel include/asm-generic/early_ioremap.h | 2 ++ include/asm-generic/fixmap.h | 3 +++ mm/early_ioremap.c | 12 ++++++++++++ 3 files changed, 17 insertions(+) commit 4b9c15377f96e241be347fd3bbeeff74fbad0b44 Author: Juergen Gross Date: Fri Jul 17 06:51:32 2015 +0200 xen: check for initrd conflicting with e820 map Check whether the initrd is placed at a location which is conflicting with the target E820 map. If this is the case relocate it to a new area unused up to now and compliant to the E820 map. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/setup.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 04414baab5ba862b10bde837c4773ffdbb78f0e0 Author: Juergen Gross Date: Fri Jul 17 06:51:31 2015 +0200 xen: check pre-allocated page tables for conflict with memory map Check whether the page tables built by the domain builder are at memory addresses which are in conflict with the target memory map. If this is the case just panic instead of running into problems later. Signed-off-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/mmu.c | 19 ++++++++++++++++--- arch/x86/xen/setup.c | 6 ++++++ arch/x86/xen/xen-ops.h | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) commit 808fdb71936c41d46245f0e3aa6ec889cba70d97 Author: Juergen Gross Date: Fri Jul 17 06:51:30 2015 +0200 xen: check for kernel memory conflicting with memory layout Checks whether the pre-allocated memory of the loaded kernel is in conflict with the target memory map. If this is the case, just panic instead of run into problems later, as there is nothing we can do to repair this situation. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/setup.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 9ddac5b724a9465e27f25a0aa943e92c8341a85b Author: Juergen Gross Date: Fri Jul 17 06:51:29 2015 +0200 xen: find unused contiguous memory area For being able to relocate pre-allocated data areas like initrd or p2m list it is mandatory to find a contiguous memory area which is not yet in use and doesn't conflict with the memory map we want to be in effect. In case such an area is found reserve it at once as this will be required to be done in any case. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/setup.c | 34 ++++++++++++++++++++++++++++++++++ arch/x86/xen/xen-ops.h | 1 + 2 files changed, 35 insertions(+) commit e612b4a7db4ae1dd8c2bbe171e10c21723de95b2 Author: Juergen Gross Date: Fri Jul 17 06:51:28 2015 +0200 xen: check memory area against e820 map Provide a service routine to check a physical memory area against the E820 map. The routine will return false if the complete area is RAM according to the E820 map and true otherwise. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/setup.c | 23 +++++++++++++++++++++++ arch/x86/xen/xen-ops.h | 1 + 2 files changed, 24 insertions(+) commit 5097cdf6cef15439f971df54f9abcf143d7ca698 Author: Juergen Gross Date: Fri Jul 17 06:51:27 2015 +0200 xen: split counting of extra memory pages from remapping Memory pages in the initial memory setup done by the Xen hypervisor conflicting with the target E820 map are remapped. In order to do this those pages are counted and remapped in xen_set_identity_and_remap(). Split the counting from the remapping operation to be able to setup the needed memory sizes in time but doing the remap operation at a later time. This enables us to simplify the interface to xen_set_identity_and_remap() as the number of remapped and released pages is no longer needed here. Finally move the remapping further down to prepare relocating conflicting memory contents before the memory might be clobbered by xen_set_identity_and_remap(). This requires to not destroy the Xen E820 map when the one for the system is being constructed. Signed-off-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/setup.c | 98 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 58 insertions(+), 40 deletions(-) commit 69632ecfcd03b12202ed62dfa0aabac83904f8ac Author: Juergen Gross Date: Fri Jul 17 06:51:26 2015 +0200 xen: move static e820 map to global scope Instead of using a function local static e820 map in xen_memory_setup() and calling various functions in the same source with the map as a parameter use a map directly accessible by all functions in the source. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/setup.c | 96 +++++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 47 deletions(-) commit 8f5b0c63987207fd5c3c1f89c9eb6cb95b30386e Author: Juergen Gross Date: Fri Jul 17 06:51:25 2015 +0200 xen: eliminate scalability issues from initial mapping setup Direct Xen to place the initial P->M table outside of the initial mapping, as otherwise the 1G (implementation) / 2G (theoretical) restriction on the size of the initial mapping limits the amount of memory a domain can be handed initially. As the initial P->M table is copied rather early during boot to domain private memory and it's initial virtual mapping is dropped, the easiest way to avoid virtual address conflicts with other addresses in the kernel is to use a user address area for the virtual address of the initial P->M table. This allows us to just throw away the page tables of the initial mapping after the copy without having to care about address invalidation. It should be noted that this patch won't enable a pv-domain to USE more than 512 GB of RAM. It just enables it to be started with a P->M table covering more memory. This is especially important for being able to boot a Dom0 on a system with more than 512 GB memory. Signed-off-by: Juergen Gross Based-on-patch-by: Jan Beulich Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/mmu.c | 126 ++++++++++++++++++++++++++++++++++++++++++++---- arch/x86/xen/setup.c | 67 ++++++++++++++----------- arch/x86/xen/xen-head.S | 2 + 3 files changed, 156 insertions(+), 39 deletions(-) commit d51e8b3e85972dee10be7943b0b0106742b1e847 Author: Juergen Gross Date: Fri Jul 17 06:51:24 2015 +0200 xen: don't build mfn tree if tools don't need it In case the Xen tools indicate they don't need the p2m 3 level tree as they support the virtual mapped linear p2m list, just omit building the tree. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/p2m.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 4b9c9a11803eaa73b3223da9fcaea39b2f919d80 Author: Juergen Gross Date: Fri Jul 17 06:51:23 2015 +0200 xen: save linear p2m list address in shared info structure The virtual address of the linear p2m list should be stored in the shared info structure read by the Xen tools to be able to support 64 bit pv-domains larger than 512 GB. Additionally the linear p2m list interface includes a generation count which is changed prior to and after each mapping change of the p2m list. Reading the generation count the Xen tools can detect changes of the mappings and re-read the p2m list eventually. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/xen/p2m.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 17fb46b1190b677a37cdd636e2aa30052109f51b Author: Juergen Gross Date: Fri Jul 17 06:51:22 2015 +0200 xen: sync with xen headers Use the newest headers from the xen tree to get some new structure layouts. Signed-off-by: Juergen Gross Reviewed-by: David Vrabel Acked-by: Konrad Rzeszutek Wilk Signed-off-by: David Vrabel arch/x86/include/asm/xen/interface.h | 96 ++++++++++++++++++++++++++++++++---- include/xen/interface/xen.h | 35 +++++++------ 2 files changed, 107 insertions(+), 24 deletions(-) commit 7ed208ef4ef9dbd03cda8a5b5a85cc78f79ef213 Author: Julien Grall Date: Mon Aug 3 09:50:55 2015 +0000 arm/xen: Drop the definition of xen_pci_platform_unplug The commit 6f6c15ef912465b3aaafe709f39bd6026a8b3e72 "xen/pvhvm: Remove the xen_platform_pci int." makes the x86 version of xen_pci_platform_unplug static. Therefore we don't need anymore to define a dummy xen_pci_platform_unplug for ARM. Signed-off-by: Julien Grall Signed-off-by: Stefano Stabellini arch/arm/xen/enlighten.c | 3 --- 1 file changed, 3 deletions(-) commit 4a5b69464e51f4a8dd432e8c2a1468630df1a53c Author: Julien Grall Date: Tue Jul 28 10:10:42 2015 +0100 xen/events: Support event channel rebind on ARM Currently, the event channel rebind code is gated with the presence of the vector callback. The virtual interrupt controller on ARM has the concept of per-CPU interrupt (PPI) which allow us to support per-VCPU event channel. Therefore there is no need of vector callback for ARM. Xen is already using a free PPI to notify the guest VCPU of an event. Furthermore, the xen code initialization in Linux (see arch/arm/xen/enlighten.c) is requesting correctly a per-CPU IRQ. Introduce new helper xen_support_evtchn_rebind to allow architecture decide whether rebind an event is support or not. It will always return true on ARM and keep the same behavior on x86. This is also allow us to drop the usage of xen_have_vector_callback entirely in the ARM code. Signed-off-by: Julien Grall Signed-off-by: David Vrabel arch/arm/include/asm/xen/events.h | 6 ++++++ arch/arm/xen/enlighten.c | 4 ---- arch/arm64/include/asm/xen/events.h | 6 ++++++ arch/x86/include/asm/xen/events.h | 11 +++++++++++ drivers/xen/events/events_base.c | 6 +----- include/xen/events.h | 1 - 6 files changed, 24 insertions(+), 10 deletions(-) commit 907c3eb18e0bd86ca12a9de80befe8e3647bac3e Author: Bob Liu Date: Mon Jul 13 17:55:24 2015 +0800 xen-blkfront: convert to blk-mq APIs Note: This patch is based on original work of Arianna's internship for GNOME's Outreach Program for Women. Only one hardware queue is used now, so there is no significant performance change The legacy non-mq code is deleted completely which is the same as other drivers like virtio, mtip, and nvme. Also dropped one unnecessary holding of info->io_lock when calling blk_mq_stop_hw_queues(). Signed-off-by: Arianna Avanzini Signed-off-by: Bob Liu Reviewed-by: Christoph Hellwig Acked-by: Jens Axboe Signed-off-by: David Vrabel drivers/block/xen-blkfront.c | 146 ++++++++++++++++++------------------------- 1 file changed, 60 insertions(+), 86 deletions(-) commit a7da51ae10032a507ddeae6a490916eadbd1e10a Author: Konstantin Khlebnikov Date: Wed Jul 15 12:52:01 2015 +0300 xen/preempt: use need_resched() instead of should_resched() This code is used only when CONFIG_PREEMPT=n and only in non-atomic context: xen_in_preemptible_hcall is set only in privcmd_ioctl_hypercall(). Thus preempt_count is zero and should_resched() is equal to need_resched(). Signed-off-by: Konstantin Khlebnikov Signed-off-by: David Vrabel drivers/xen/preempt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 772f95e3b9460c64fb99b134022855cbce75b9a0 Author: Colin Ian King Date: Thu Jul 16 20:34:42 2015 +0100 x86/xen: fix non-ANSI declaration of xen_has_pv_devices() xen_has_pv_devices() has no parameters, so use the normal void parameter convention to make it match the prototype in the header file include/xen/platform_pci.h. Signed-off-by: Colin Ian King Signed-off-by: David Vrabel arch/x86/xen/platform-pci-unplug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb73b40e59f0f62099bfb8a836697a74dc151395 Author: Tomi Valkeinen Date: Thu Aug 20 13:46:10 2015 +0300 video: fbdev: atmel: fix warning for const return value A const on a return value is meaningless and generates a warning on some versions of gcc: drivers/video/fbdev/atmel_lcdfb.c:1003: warning: type qualifiers ignored on function return type The function in question is only used inside the .c file, so the author of the code most likely means "static" instead of "const". Change the const to static. Reported-by: Fengguang Wu Cc: Nicolas Ferre Signed-off-by: Tomi Valkeinen drivers/video/fbdev/atmel_lcdfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd2281be03a7f4d3f249a733913a9ebb36e721f4 Merge: 40a2ea1 5efb1d5 Author: Ingo Molnar Date: Thu Aug 20 11:49:26 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: - Support Intel PT in several tools, enabling the use of the processor trace feature introduced in Intel Broadwell processors: (Adrian Hunter) # dmesg | grep Performance # [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell events, full-width counters, Intel PMU driver. # perf record -e intel_pt//u -a sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.216 MB perf.data ] # perf script # then navigate in the tool output to some area, like this one: 184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main (/usr/lib64/ld-2.17.so) 185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10 _dl_new_object (/usr/lib64/ld-2.17.so) 186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90 strlen (/usr/lib64/ld-2.17.so) 187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen (/usr/lib64/ld-2.17.so) 188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c _dl_new_object (/usr/lib64/ld-2.17.so) 189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0 calloc@plt (/usr/lib64/ld-2.17.so) 190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc (/usr/lib64/ld-2.17.so) 191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt (/usr/lib64/ld-2.17.so) 192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc (/usr/lib64/ld-2.17.so) 193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) 194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) => 7f21ba675d50 __libc_memalign (/usr/lib64/ld-2.17.so) 195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20 __libc_memalign (/usr/lib64/ld-2.17.so) 196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73 __libc_memalign (/usr/lib64/ld-2.17.so) 197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18 __libc_memalign (/usr/lib64/ld-2.17.so) 198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9 __libc_memalign (/usr/lib64/ld-2.17.so) 199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f _dl_new_object (/usr/lib64/ld-2.17.so) 200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba678e70 memcpy (/usr/lib64/ld-2.17.so) 201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy (/usr/lib64/ld-2.17.so) - Fix annotation of vdso (Adrian Hunter) - Fix DWARF callchains in 'perf script' (Jiri Olsa) - Fix adding probes in kernel syscalls and listing which variables can be collected at kernel syscall function lines (Masami Hiramatsu) Build Fixes: - Fix 32-bit compilation error in util/annotate.c (Adrian Hunter) - Support static linking with libdw on Fedora 22 (Andi Kleen) Infrastructure changes: - Add a helper function to probe whether cpu-wide tracing is possible (Adrian Hunter) - Move vfs_getname storage to per thread area in 'perf trace' (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 40a2ea1bd988e3bbdb07a0708681fdb05cd7d267 Merge: a897b5f 1966764 Author: Ingo Molnar Date: Thu Aug 20 11:48:56 2015 +0200 Merge branch 'perf/urgent' into perf/core, to pick up fixes before adding more changes Signed-off-by: Ingo Molnar commit c4a2f5beb7fe3cf4e33ed79040d699fd6c17083f Author: Krzysztof Kozlowski Date: Fri Jul 10 15:37:30 2015 +0900 video: fbdev: Drop owner assignment from platform_driver platform_driver does not need to set an owner because platform_driver_register() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Tomi Valkeinen drivers/video/fbdev/omap2/displays-new/encoder-opa362.c | 1 - 1 file changed, 1 deletion(-) commit 2e8bcf4d40d8ec720372df5c591f0151f8ffe946 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:37:29 2015 +0900 video: fbdev: Drop owner assignment from i2c_driver i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Tomi Valkeinen drivers/video/fbdev/ssd1307fb.c | 1 - 1 file changed, 1 deletion(-) commit c0a3229313d6931a77e0c1e1c22e398c0312bf6f Author: Marcin Chojnacki Date: Thu Jun 18 15:01:52 2015 +0200 fbdev: remove unnecessary memset in vfb In vfb_probe memory is allocated using rvmalloc which automatically sets the allocated memory to zero. This patch removes the second unnecessary memset in vfb_probe. Signed-off-by: Marcin Chojnacki Signed-off-by: Tomi Valkeinen drivers/video/fbdev/vfb.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 7a4b6c860e7268a79545c30882928b234dd1655d Author: Lucas Stach Date: Fri Aug 7 17:16:03 2015 +0200 can: flexcan: demote register output to debug level This message isn't really helpful for the general reader of the kernel logs, so should not be printed with info level. All other register programming outputs in the flexcan driver already use the debug level. Signed-off-by: Lucas Stach Signed-off-by: Marc Kleine-Budde drivers/net/can/flexcan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ae421e33bce78c7d624ecbf079cdaa5248f167b6 Author: Nik Nyby Date: Mon Jun 29 19:09:57 2015 -0400 can: gs_usb: Fix typo in function name This fixes typos in gs_usb.c where 'receive' is misspelled as 'recieve'. Signed-off-by: Nik Nyby Signed-off-by: Marc Kleine-Budde drivers/net/can/usb/gs_usb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e72bb8a5a884d022231149d407653923a1d79e53 Author: Samuel Mendoza-Jonas Date: Wed Jul 22 15:50:51 2015 +1000 powerpc/powernv: Reset HILE before kexec_sequence() On powernv secondary cpus are returned to OPAL, and will then enter the target kernel in big-endian. However if it is set the HILE bit will persist, causing the first exception in the target kernel to be delivered in litte-endian regardless of the current endianness. If running on top of OPAL make sure the HILE bit is reset once we've finished waiting for all of the secondaries to be returned to OPAL. Signed-off-by: Samuel Mendoza-Jonas Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/setup.c | 7 +++++++ 1 file changed, 7 insertions(+) commit ffebf5f391dfa9da3e086abad3eef7d3e5300249 Author: Samuel Mendoza-Jonas Date: Wed Jul 22 15:50:50 2015 +1000 powerpc/kexec: Reset secondary cpu endianness before kexec If the target kernel does not inlcude the FIXUP_ENDIAN check, coming from a different-endian kernel will cause the target kernel to panic. All ppc64 kernels can handle starting in big-endian mode, so return to big-endian before branching into the target kernel. This mainly affects pseries as secondaries on powernv are returned to OPAL. Signed-off-by: Samuel Mendoza-Jonas Signed-off-by: Michael Ellerman arch/powerpc/kernel/misc_64.S | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 480798044eb268a31f6b84bc3b7f99b9989e463d Author: Laurent Dufour Date: Fri Jul 31 11:29:50 2015 +0200 powerpc/hvsi: Fix endianness issues in the HVSI driver This patch fixes several endianness issues detected when running the HVSI driver in little endian mode. These issues are raised in little endian mode because the data exchanged in memory between the kernel and the hypervisor has to be in big endian format. This exhibits as errors such as: irq: (null) didn't like hwirq-0x1000a00 to VIRQ16 mapping (rc=-22) hvsi_console_init: couldn't create irq mapping for 0x1000a00 The data structures already have endian annotations, and sparse is generating numerous warnings based on those. This commit fixes all of them. Signed-off-by: Laurent Dufour CC: Greg Kroah-Hartman CC: Jiri Slaby CC: linuxppc-dev@lists.ozlabs.org CC: linux-kernel@vger.kernel.org [mpe: Flesh out change log] Signed-off-by: Michael Ellerman drivers/tty/hvc/hvsi.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) commit 84ad6e5cd3e8b365c893f31787864cae5500610b Author: Vasant Hegde Date: Wed Aug 19 22:19:54 2015 +0530 leds/powernv: Add driver for PowerNV platform This patch implements LED driver for PowerNV platform using the existing generic LED class framework. PowerNV platform has below type of LEDs: - System attention Indicates there is a problem with the system that needs attention. - Identify Helps the user locate/identify a particular FRU or resource in the system. - Fault Indicates there is a problem with the FRU or resource at the location with which the indicator is associated. We register classdev structures for all individual LEDs detected on the system through LED specific device tree nodes. Device tree nodes specify what all kind of LEDs present on the same location code. It registers LED classdev structure for each of them. All the system LEDs can be found in the same regular path /sys/class/leds/. We don't use LED colors. We use LED node and led-types property to form LED classdev. Our LEDs have names in this format. : Any positive brightness value would turn on the LED and a zero value would turn off the LED. The driver will return LED_FULL (255) for any turned on LED and LED_OFF (0) for any turned off LED. The platform level implementation of LED get and set state has been achieved through OPAL calls. These calls are made available for the driver by exporting from architecture specific codes. Signed-off-by: Vasant Hegde Signed-off-by: Anshuman Khandual Acked-by: Stewart Smith Tested-by: Stewart Smith Acked-by: Jacek Anaszewski Signed-off-by: Michael Ellerman .../devicetree/bindings/leds/leds-powernv.txt | 26 ++ drivers/leds/Kconfig | 11 + drivers/leds/Makefile | 1 + drivers/leds/leds-powernv.c | 345 +++++++++++++++++++++ 4 files changed, 383 insertions(+) commit c159b5968ec9d3cbf16802189b29eb0ec17ae4d8 Author: Vasant Hegde Date: Wed Aug 19 22:19:53 2015 +0530 powerpc/powernv: Create LED platform device This patch adds platform devices for leds. Also export LED related OPAL API's so that led driver can use these APIs. Signed-off-by: Vasant Hegde Acked-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 8a8d91817aec6b9ca7a289891f9e6f721100ec09 Author: Anshuman Khandual Date: Wed Aug 19 22:19:52 2015 +0530 powerpc/powernv: Add OPAL interfaces for accessing and modifying system LED states This patch registers the following two new OPAL interfaces calls for the platform LED subsystem. With the help of these new OPAL calls, the kernel will be able to get or set the state of various individual LEDs on the system at any given location code which is passed through the LED specific device tree nodes. (1) OPAL_LEDS_GET_INDICATOR opal_leds_get_ind (2) OPAL_LEDS_SET_INDICATOR opal_leds_set_ind Signed-off-by: Anshuman Khandual Signed-off-by: Vasant Hegde Acked-by: Stewart Smith Tested-by: Stewart Smith Acked-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 2 ++ arch/powerpc/include/asm/opal.h | 4 ++++ arch/powerpc/platforms/powernv/opal-wrappers.S | 2 ++ 3 files changed, 8 insertions(+) commit 48fd8ecf29e3c1199432e173858f5ca4bc529738 Author: Nicolai Stange Date: Wed Jun 17 21:40:33 2015 +0200 framebuffer: disable vgacon on microblaze arch Fix an allmodconfig link failer on microblaze: drivers/built-in.o: In function `vgacon_save_screen': drivers/video/console/.tmp_vgacon.o:(.text+0x8fc10): undefined reference to `screen_info' Disable vgacon on microblaze because the symbol struct screen_info screen_info; is not defined for the microblaze arch. Signed-off-by: Nicolai Stange Signed-off-by: Tomi Valkeinen drivers/video/console/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f63cb8d7aa31e7a8f98cec36557b265951e9aba7 Author: Alexey Klimov Date: Mon Jun 8 02:02:47 2015 +0300 fbdev: udlfb: remove unneeded initialization in few places Small minor cleanup. This patch removes unneeded initializations of variables in few places in different functions and one empty line. Signed-off-by: Alexey Klimov Signed-off-by: Tomi Valkeinen drivers/video/fbdev/udlfb.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 71540cfbe9d401f4848abc0e6b56a541307a47dd Author: Geert Uytterhoeven Date: Sun Aug 2 11:09:53 2015 +0200 fbdev: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Tomi Valkeinen drivers/video/fbdev/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6080a89357cc46f3450839a84af75c3d18f57772 Author: Tomi Valkeinen Date: Thu Jan 15 13:47:19 2015 +0200 fbdev: fix cea_modes array size CEA defines 64 modes, indexed from 1 to 64. modedb has cea_modes arrays, which contains 64 entries. However, the code uses the CEA indices directly, i.e. the first mode is at cea_modes[1]. This means the array is one too short. This does not cause references to uninitialized memory as the code in fbmon only allows indexes up to 63, and the cea_modes does not contain an entry for the mode 64 so it could not be used in any case. However, the code contains a check 'if (idx > ARRAY_SIZE(cea_modes)', and while that check is a no-op as at that point idx cannot be >= 63, it upsets static checkers. Fix this by increasing the cea_array size to be 65, and change the code to allow mode 64. Signed-off-by: Tomi Valkeinen Reported-by: Dan Carpenter drivers/video/fbdev/core/fbmon.c | 4 ++-- drivers/video/fbdev/core/modedb.c | 2 +- include/linux/fb.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 23a1ec304ae8fdd29235f864bd8193e9981c9bd1 Author: Jon Hunter Date: Thu Aug 6 14:32:33 2015 +0100 dmaengine: tegra-apb: Simplify locking for device using global pause Sparse reports the following with regard to locking in the tegra_dma_global_pause() and tegra_dma_global_resume() functions: drivers/dma/tegra20-apb-dma.c:362:9: warning: context imbalance in 'tegra_dma_global_pause' - wrong count at exit drivers/dma/tegra20-apb-dma.c:366:13: warning: context imbalance in 'tegra_dma_global_resume' - unexpected unlock The warning is caused because tegra_dma_global_pause() acquires a lock but does not release it. However, the lock is released by tegra_dma_global_resume(). These pause/resume functions are called in pairs and so it does appear to work. This global pause is used on early tegra devices that do not have an individual pause for each channel. The lock appears to be used to ensure that multiple channels do not attempt to assert/de-assert the global pause at the same time which could cause the DMA controller to be in the wrong paused state. Rather than locking around the entire code between the pause and resume, employ a simple counter to keep track of the global pause requests. By using a counter, it is only necessary to hold the lock when pausing and unpausing the DMA controller and hence, fixes the sparse warning. Please note that for devices that support individual channel pausing, the DMA controller lock is not held between pausing and unpausing the channel. Hence, this change will make the devices that use the global pause behave in the same way, with regard to locking, as those that don't. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) commit dc1ff4b30a3592caf2ac6be691bd6c97b17383cd Author: Jon Hunter Date: Thu Aug 6 14:32:32 2015 +0100 dmaengine: tegra-apb: Remove unnecessary return statements and variables Some void functions have unnecessary return statements at the end (reported by sparse) and so remove these. Also remove the return variables from functions tegra_dma_prep_slave_sg() and tegra_dma_prep_slave_cyclic() because the value is not used. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 13a3328638dd009e76d4bb86e18dc8f3ae4f11dd Author: Jon Hunter Date: Thu Aug 6 14:32:31 2015 +0100 dmaengine: tegra-apb: Avoid unnecessary channel base address calculation Everytime a DMA channel register is accessed, the channel base address is calculated by adding the DMA base address and the channel register offset. Avoid this calculation and simply calculate the channel base address once at probe time for each DMA channel. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit c67886f5b809cfd9dc20f906f38fc0eddc7cba93 Author: Jon Hunter Date: Thu Aug 6 14:32:30 2015 +0100 dmaengine: tegra-apb: Remove unused variables The callback and callback_param members of the tegra_dma_sg_req structure are never used. The dma-engine structure, dma_async_tx_descriptor, defines the same members and these are the ones used by the driver. Therefore, remove the unused versions from the tegra_dma_sg_req structure. The half_done member of tegra_dma_channel structure is configured but never used and so remove it. Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul drivers/dma/tegra20-apb-dma.c | 4 ---- 1 file changed, 4 deletions(-) commit 8d1ceb52e110aec808d64973f90fe4f69a5e42e9 Author: Fabio Estevam Date: Thu Aug 20 01:31:58 2015 -0500 PCI: imx6: Simplify a trivial if-return sequence Simplify a trivial if-return sequence by combining it with a preceding function call. The semantic patch that makes this change is available in scripts/coccinelle/misc/simple_return.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Bjorn Helgaas CC: Lucas Stach drivers/pci/host/pci-imx6.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 68ebb7ce395c6d8ca99163911ec384853d4f88ad Author: Fabio Estevam Date: Thu Aug 20 01:31:24 2015 -0500 PCI: spear: Use BUG_ON() instead of condition followed by BUG() Use BUG_ON() instead of an if condition followed by BUG(). The semantic patch that makes this change is available in scripts/coccinelle/misc/bugon.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Bjorn Helgaas CC: Pratyush Anand drivers/pci/host/pcie-spear13xx.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7dfffb9541bca80bbf8df1869564f9220ee150d2 Author: Geert Uytterhoeven Date: Mon Aug 17 15:08:55 2015 +0200 dmaengine: Stricter legacy checking in dma_request_slave_channel_compat() dma_request_slave_channel_compat() is meant for drivers that support both DT and legacy platform device based probing: if DT channel DMA setup fails, it will fall back to platform data based DMA channel setup, using hardcoded DMA channel IDs and a filter function. However, if the DTS doesn't provide a "dmas" property for the device, the fallback is also used. If the legacy filter function is not hardcoded in the DMA slave driver, but comes from platform data, it will be NULL. Then dma_request_slave_channel_compat() will succeed incorrectly, and return a DMA channel, as a NULL legacy filter function actually means "all channels are OK", not "do not match". Later, when trying to use that DMA channel, it will fail with: rcar-dmac e6700000.dma-controller: rcar_dmac_prep_slave_sg: bad parameter: len=1, id=-22 To fix this, ensure that both the filter function and the DMA channel ID are not NULL before using the legacy fallback. Note that some DMA slave drivers can handle this failure, and will fall back to PIO. See also commit 056f6c87028544de ("dmaengine: shdma: Make dummy shdma_chan_filter() always return false"), which fixed the same issue for the case where shdma_chan_filter() is hardcoded in a DMA slave driver. Suggested-by: Arnd Bergmann Signed-off-by: Geert Uytterhoeven Signed-off-by: Vinod Koul include/linux/dmaengine.h | 3 +++ 1 file changed, 3 insertions(+) commit d3f4caa355c1c9d2ce7fd3da88e2be37836323db Author: Fabio Estevam Date: Thu Aug 20 01:30:36 2015 -0500 PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE() There is no need to use the IS_ERR_VALUE() macro for checking the return value from pm_runtime_* functions. Test for a negative pm_runtime_get_sync() return value instead of using IS_ERR_VALUE(). The semantic patch that makes this change is available in scripts/coccinelle/api/pm_runtime.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Bjorn Helgaas CC: Kishon Vijay Abraham I drivers/pci/host/pci-dra7xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 89079493437701551938652003eb75b328425c66 Author: Rameshwar Prasad Sahu Date: Tue Jul 21 18:44:39 2015 +0530 dmaengine: xgene-dma: Add ACPI support for X-Gene DMA engine driver This patch adds ACPI support for the APM X-Gene DMA engine driver. Signed-off-by: Rameshwar Prasad Sahu Signed-off-by: Vinod Koul drivers/dma/xgene-dma.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) commit 74703cc4e08372b8aedfd687bef8182797215d30 Author: Wei Yang Date: Mon Jul 20 18:14:58 2015 +0800 powerpc/powernv: Fix the log message when disabling VF On powernv platform, IOV BAR would be shifted if necessary. While the log message is not correct when disabling VFs. This patch fixes this by print correct message based on the offset value. Signed-off-by: Wei Yang Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 7c26b9cf5347c24272152438cdd9675183804425 Author: Andrew Donnellan Date: Wed Aug 19 09:27:18 2015 +1000 cxl: Allow release of contexts which have been OPENED but not STARTED If we open a context but do not start it (either because we do not attempt to start it, or because it fails to start for some reason), we are left with a context in state OPENED. Previously, cxl_release_context() only allowed releasing contexts in state CLOSED, so attempting to release an OPENED context would fail. In particular, this bug causes available contexts to run out after some EEH failures, where drivers attempt to release contexts that have failed to start. Allow releasing contexts in any state with a value lower than STARTED, i.e. OPENED or CLOSED (we can't release a STARTED context as it's currently using the hardware, and we assume that contexts in any new states which may be added in future with a value higher than STARTED are also unsafe to release). Cc: stable@vger.kernel.org Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") Signed-off-by: Andrew Donnellan Signed-off-by: Daniel Axtens Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1a42b7920ba57f287d742d42f113402fbb7c85e Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:47 2015 +0200 macintosh/therm_windtunnel: Export OF module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Michael Ellerman drivers/macintosh/therm_windtunnel.c | 1 + 1 file changed, 1 insertion(+) commit cb0eefcc3271ea1d370476dd29685918b99c5a9f Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:30 2015 +0200 macintosh/therm_windtunnel: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Michael Ellerman drivers/macintosh/therm_windtunnel.c | 1 + 1 file changed, 1 insertion(+) commit b93edcdd037f713e9b62cc76fb2064282af01aec Author: Fabio Estevam Date: Wed Jul 29 21:03:49 2015 -0300 dmaengine: imx-sdma: Check for clk_enable() errors clk_enable() may fail, so we should better check the return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Vinod Koul drivers/dma/imx-sdma.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit b096c1377d1e50cea91d1db13bca8e7802199a67 Author: Emilio López Date: Sun Jul 26 22:50:55 2015 +0200 dmaengine: sun4i: Add support for the DMA engine on sun[457]i SoCs This patch adds support for the DMA engine present on Allwinner A10, A13, A10S and A20 SoCs. This engine has two kinds of channels: normal and dedicated. The main difference is in the mode of operation; while a single normal channel may be operating at any given time, dedicated channels may operate simultaneously provided there is no overlap of source or destination. Hardware documentation can be found on A10 User Manual (section 12), A13 User Manual (section 14) and A20 User Manual (section 1.12) Signed-off-by: Emilio López Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul .../devicetree/bindings/dma/sun4i-dma.txt | 46 + drivers/dma/Kconfig | 11 + drivers/dma/Makefile | 1 + drivers/dma/sun4i-dma.c | 1288 ++++++++++++++++++++ 4 files changed, 1346 insertions(+) commit 18041e31743d278b6323518d20a2ef656c3cc689 Author: Nikolay Aleksandrov Date: Tue Aug 18 21:40:16 2015 +0300 vrf: vrf_master_ifindex_rcu is not always called with rcu read lock While running net-next I hit this: [ 634.073119] =============================== [ 634.073150] [ INFO: suspicious RCU usage. ] [ 634.073182] 4.2.0-rc6+ #45 Not tainted [ 634.073213] ------------------------------- [ 634.073244] include/net/vrf.h:38 suspicious rcu_dereference_check() usage! [ 634.073274] other info that might help us debug this: [ 634.073307] rcu_scheduler_active = 1, debug_locks = 1 [ 634.073338] 2 locks held by swapper/0/0: [ 634.073369] #0: (((&n->timer))){+.-...}, at: [] call_timer_fn+0x5/0x480 [ 634.073412] #1: (slock-AF_INET){+.-...}, at: [] icmp_send+0x155/0x5f0 [ 634.073450] stack backtrace: [ 634.073483] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc6+ #45 [ 634.073514] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 [ 634.073545] 0000000000000000 0593ba8242d9ace4 ffff88002fc03b48 ffffffff81803f1b [ 634.073612] 0000000000000000 ffffffff81e12500 ffff88002fc03b78 ffffffff811003c5 [ 634.073642] 0000000000000000 ffff88002ec4e600 ffffffff81f00f80 ffff88002fc03cf0 [ 634.073669] Call Trace: [ 634.073694] [] dump_stack+0x4c/0x65 [ 634.073728] [] lockdep_rcu_suspicious+0xc5/0x100 [ 634.073763] [] icmp_route_lookup+0x176/0x5c0 [ 634.073793] [] ? icmp_send+0x35b/0x5f0 [ 634.073818] [] ? icmp_send+0x2d4/0x5f0 [ 634.073844] [] icmp_send+0x42e/0x5f0 [ 634.073873] [] ipv4_link_failure+0x22/0xa0 [ 634.073899] [] arp_error_report+0x3a/0x80 [ 634.073926] [] ? neigh_lookup+0x2c0/0x2c0 [ 634.073952] [] neigh_invalidate+0x8e/0x110 [ 634.073984] [] neigh_timer_handler+0x1ae/0x290 [ 634.074013] [] ? neigh_lookup+0x2c0/0x2c0 [ 634.074013] [] call_timer_fn+0xb3/0x480 [ 634.074013] [] ? call_timer_fn+0x5/0x480 [ 634.074013] [] ? neigh_lookup+0x2c0/0x2c0 [ 634.074013] [] run_timer_softirq+0x20c/0x430 [ 634.074013] [] __do_softirq+0xde/0x630 [ 634.074013] [] irq_exit+0x117/0x120 [ 634.074013] [] smp_apic_timer_interrupt+0x46/0x60 [ 634.074013] [] apic_timer_interrupt+0x70/0x80 [ 634.074013] [] ? native_safe_halt+0x6/0x10 [ 634.074013] [] ? trace_hardirqs_on+0xd/0x10 [ 634.074013] [] default_idle+0x23/0x200 [ 634.074013] [] arch_cpu_idle+0xf/0x20 [ 634.074013] [] default_idle_call+0x2a/0x40 [ 634.074013] [] cpu_startup_entry+0x39c/0x4c0 [ 634.074013] [] rest_init+0x13d/0x150 [ 634.074013] [] start_kernel+0x4a8/0x4c9 [ 634.074013] [] ? early_idt_handler_array+0x120/0x120 [ 634.074013] [] x86_64_start_reservations+0x2a/0x2c [ 634.074013] [] x86_64_start_kernel+0x14a/0x16d It would seem vrf_master_ifindex_rcu() can be called without RCU held in other contexts as well so introduce a new helper which acquires rcu and returns the ifindex. Also add curly braces around both the "if" and "else" parts as per the style guide. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/net/vrf.h | 20 ++++++++++++++++++-- net/ipv4/icmp.c | 4 ++-- 2 files changed, 20 insertions(+), 4 deletions(-) commit aaba64487a96df6584a05d8898634307f3c86790 Merge: d072f46 b55a1b9 Author: Dave Airlie Date: Thu Aug 20 14:11:17 2015 +1000 Merge branch 'drm-next-fsl-dcu' of https://github.com/Jianwei-Wang/linux-drm-fsl-dcu into drm-next Merge Freescale DCU FRM driver. * 'drm-next-fsl-dcu' of https://github.com/Jianwei-Wang/linux-drm-fsl-dcu: MAINTAINERS: Add Freescale DCU DRM driver maintainer devicetree: Add NEC to the vendor-prefix list drm/layerscape: Add Freescale DCU DRM driver commit 2a606188c55990fa65cba3fd9b64f2b7542b7692 Author: Trond Myklebust Date: Wed Aug 19 22:30:00 2015 -0500 NFSv4: Enable delegated opens even when reboot recovery is pending Unlike the previous attempt, this takes into account the fact that we may be calling it from the recovery thread itself. Detect this by looking at what kind of open we're doing, and checking the state of the NFS_DELEGATION_NEED_RECLAIM if it turns out we're doing a reboot reclaim-type open. Cc: Olga Kornievskaia Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 27 +++++++++++++++++++-------- include/linux/nfs_xdr.h | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) commit c740624989eb87fa7cbd1b5338cef01dd49f1f29 Author: Trond Myklebust Date: Wed Aug 19 23:00:50 2015 -0500 pNFS: Fix an unused variable warning in pnfs_roc_get_barrier Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 2 -- 1 file changed, 2 deletions(-) commit c2126157ea3c4f72b315749e0c07a1b162a2fe2b Author: Trond Myklebust Date: Wed Aug 19 21:46:15 2015 -0500 SUNRPC: Allow sockets to do GFP_NOIO allocations Follow up to commit c4a7ca774949 ("SUNRPC: Allow waiting on memory allocation"). Allows the RPC socket code to do non-IO blocking. Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b55a1b9c55ee9ed5b7d1d2acbabb078a454dbeea Author: Jianwei Wang Date: Wed Aug 19 22:26:33 2015 -0400 MAINTAINERS: Add Freescale DCU DRM driver maintainer Add Alison and myself as maintainers of the Freescale DCU DRM driver. Signed-off-by: Alison Wang Signed-off-by: Xiubo Li Signed-off-by: Jianwei Wang MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 6e3fc2741ae8107546673656de89eefb89051ec0 Author: Jianwei Wang Date: Wed Aug 19 22:24:45 2015 -0400 devicetree: Add NEC to the vendor-prefix list NEC represent NEC LCD Technologies, Ltd. Signed-off-by: Alison Wang Signed-off-by: Xiubo Li Signed-off-by: Jianwei Wang Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 109eee2f2a181a89a26f6b59b83b50ebab281d4d Author: Jianwei Wang Date: Wed Aug 19 22:19:49 2015 -0400 drm/layerscape: Add Freescale DCU DRM driver This patch add support for Two Dimensional Animation and Compositing Engine (2D-ACE) on the Freescale SoCs. 2D-ACE is a Freescale display controller. 2D-ACE describes the functionality of the module extremely well its name is a value that cannot be used as a token in programming languages. Instead the valid token "DCU" is used to tag the register names and function names. The Display Controller Unit (DCU) module is a system master that fetches graphics stored in internal or external memory and displays them on a TFT LCD panel. A wide range of panel sizes is supported and the timing of the interface signals is highly configurable. Graphics are read directly from memory and then blended in real-time, which allows for dynamic content creation with minimal CPU intervention. The features: (1) Full RGB888 output to TFT LCD panel. (2) Blending of each pixel using up to 4 source layers dependent on size of panel. (3) Each graphic layer can be placed with one pixel resolution in either axis. (4) Each graphic layer support RGB565 and RGB888 direct colors without alpha channel and BGRA8888 BGRA4444 ARGB1555 direct colors with an alpha channel and YUV422 format. (5) Each graphic layer support alpha blending with 8-bit resolution. This is a simplified version, only one primary plane, one framebuffer, one crtc, one connector and one encoder for TFT LCD panel. Signed-off-by: Alison Wang Signed-off-by: Xiubo Li Signed-off-by: Jianwei Wang Acked-by: Daniel Vetter .../devicetree/bindings/video/fsl,dcu.txt | 22 ++ drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/fsl-dcu/Kconfig | 18 + drivers/gpu/drm/fsl-dcu/Makefile | 7 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 210 +++++++++++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.h | 19 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 404 +++++++++++++++++++++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 197 ++++++++++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_fbdev.c | 23 ++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c | 43 +++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_output.h | 33 ++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 261 +++++++++++++ drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h | 17 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 182 ++++++++++ 15 files changed, 1439 insertions(+) commit 824e7383e92815cb591793c74cc836aa5165f7f8 Author: Ying Xue Date: Wed Aug 19 15:46:17 2015 +0800 lwtunnel: Fix the sparse warnings in fib_encap_match When CONFIG_LWTUNNEL config is not enabled, the lwtstate_free() is not declared in lwtunnel.h at all. However, even in this case, the function is still referenced in fib_semantics.c so that there appears the following sparse warnings: net/ipv4/fib_semantics.c:553:17: error: undefined identifier 'lwtstate_free' CC net/ipv4/fib_semantics.o net/ipv4/fib_semantics.c: In function ‘fib_encap_match’: net/ipv4/fib_semantics.c:553:3: error: implicit declaration of function ‘lwtstate_free’ [-Werror=implicit-function-declaration] cc1: some warnings being treated as errors make[1]: *** [net/ipv4/fib_semantics.o] Error 1 make: *** [net/ipv4/fib_semantics.o] Error 2 To eliminate the error, we define an empty function for lwtstate_free() in lwtunnel.h when CONFIG_LWTUNNEL is disabled. Fixes: df383e6240ef ("lwtunnel: fix memory leak") Cc: Jiri Benc Reported-by: kbuild test robot Signed-off-by: Ying Xue Acked-by: Jiri Benc Signed-off-by: David S. Miller include/net/lwtunnel.h | 4 ++++ 1 file changed, 4 insertions(+) commit d072f4654464b242e536a03102ebd3d481f6b418 Merge: e2a8986 5b9fb5e Author: Dave Airlie Date: Thu Aug 20 10:35:29 2015 +1000 Merge branch 'drm-atmel-hlcdc-devel' of https://github.com/bbrezillon/linux-at91 into drm-next The following PR add support for 3 more atmel SoCs and for some missing features (new input formats and PRIME support). * 'drm-atmel-hlcdc-devel' of https://github.com/bbrezillon/linux-at91: drm: atmel-hlcdc: add support for sama5d4 SoCs drm: atmel-hlcdc: add support for at91sam9n12 SoC drm: atmel-hlcdc: add support for at91sam9x5 SoCs drm: atmel-hlcdc: add RGB565 and RGB444 output support drm: atmel-hlcdc: add the missing DRM_ATOMIC flag drm: atmel-hlcdc: add PRIME support commit e2a8986f3e287dc036ce1b9452d7b9e2d8839f2b Merge: 294947a 05906de Author: Dave Airlie Date: Thu Aug 20 09:40:49 2015 +1000 Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next amdgpu and radeon changes for 4.3. Highlights: - Fiji support for amdgpu. - CGS support for amdgpu. This is a new driver internal cross-component API. - Initial GPU scheduler for amdgpu. Still disabled by default. - Lots of bug fixes and optimizations * 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (130 commits) drm/amdgpu: wait on page directory changes. v2 drm/amdgpu: Select BACKLIGHT_LCD_SUPPORT drm/radeon: Select BACKLIGHT_LCD_SUPPORT drm/amdgpu: cleanup sheduler rq handling v2 drm/amdgpu: move prepare work out of scheduler to cs_ioctl drm/amdgpu: fix unnecessary wake up drm/amdgpu: fix duplicated mapping invoke bug drm/amdgpu: drop bo_list_clone when no scheduler drm/amdgpu: disable GPU reset by default drm/amdgpu: fix type mismatch error drm/amdgpu: add reference for **fence drm/amdgpu: fix waiting for all fences before flipping drm/amdgpu: fix UVD return code checking drm/amdgpu: remove scheduler fence list v2 drm/amdgpu: remove amd_sched_wait_emit v2 drm/amdgpu: remove unecessary scheduler fence callbacks drm/amdgpu: fix scheduler fence implementation drm/amdgpu: don't grab dev->struct_mutex in pm functions drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete drm/radeon: Don't take dev->struct_mutex in pm functions ... commit aa493382cb8c5768ba452d87f175fc2aff63911d Merge: 5be203a 3403ccc Author: Dave Chinner Date: Thu Aug 20 09:28:45 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.3-2' into for-next commit 3403ccc0c9f069c40ea751a93ac6746f5ef2116a Author: Dave Chinner Date: Thu Aug 20 09:27:49 2015 +1000 xfs: inode lockdep annotations broke non-lockdep build Fix CONFIG_LOCKDEP=n build, because asserts I put in to ensure we aren't overrunning lockdep subclasses in commit 0952c81 ("xfs: clean up inode lockdep annotations") use a define that doesn't exist when CONFIG_LOCKDEP=n Only check the subclass limits when lockdep is actually enabled. Signed-off-by: Dave Chinner Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner fs/xfs/xfs_inode.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit b226eca2088004622434cbcc27c6401b64f22d7c Author: Ezequiel García Date: Wed Aug 19 19:40:09 2015 -0300 nand: pxa3xx: Increase READ_ID buffer and make the size static The read ID count should be made as large as the maximum READ_ID size, so there's no need to have dynamic size. This commit sets the hardware maximum read ID count, which should be more than enough on all cases. Also, we get rid of the read_id_bytes, and use a macro instead. Signed-off-by: Ezequiel Garcia Acked-by: Robert Jarzmik Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) commit 21fc0ef9652f0c809dc0d3e0a67f1e1bf6ff8255 Author: Robert Jarzmik Date: Wed Aug 19 20:30:15 2015 +0200 mtd: nand: pxa3xx-nand: fix random command timeouts When 2 commands are submitted in a row, and the second is very quick, the completion of the second command might never come. This happens especially if the second command is quick, such as a status read after an erase. The issue is that in the interrupt handler, the status bits are cleared after the new command is issued. There is a small temporal window where this happens : - the previous command has set the command done bit - the ready for a command bit is set - the handler submits the next command - just then, the command completes, and the command done bit is still set - the handler clears the "previous" command done bit - the handler exits In this flow, the "command done" of the next command will never trigger a new interrupt to finish the status command, as it was cleared for both commands. Fix this by clearing the status bit before submitting a new command. Signed-off-by: Robert Jarzmik Acked-by: Ezequiel Garcia Tested-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 0b14392db2e998157d924085d7913e537ec26121 Author: Robert Jarzmik Date: Wed Aug 19 20:30:14 2015 +0200 mtd: nand: pxa3xx_nand: fix early spurious interrupt When the nand is first probe, and upon the first command start, the status bits should be cleared before the interrupts are unmasked. The bug is tricky : if the bootloader left a status bit set, the unmasking of interrupts does trigger the interrupt handler before the first command is issued, blocking the good behavior of the nand. The same would happen if in pxa3xx_nand code flow a status bit is left, and then a command is started. Signed-off-by: Robert Jarzmik Acked-by: Ezequiel Garcia Tested-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e3f879bf1ea3e03f433d292b0114807785f0754b Author: Sunad Bhandary Date: Fri Jul 31 18:56:58 2015 +0530 NVMe:Remove unreachable code in nvme_abort_req Removing unreachable code from nvme_abort_req as nvme_submit_cmd has no failure status to return. Signed-off-by: Sunad Bhandary Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit 054167b3d55127feb64978eddf3f9f3a84fe493b Author: Mario Smarduch Date: Thu Jul 16 22:29:38 2015 +0100 arm: KVM: keep arm vfp/simd exit handling consistent with arm64 After enhancing arm64 FP/SIMD exit handling, ARMv7 VFP exit branch is moved to guest trap handling. This allows us to keep exit handling flow between both architectures consistent. Signed-off-by: Mario Smarduch Signed-off-by: Marc Zyngier arch/arm/kvm/interrupts.S | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit b84b8390d6009cde5134f775a251103c14bbed74 Author: Filipe Manana Date: Wed Aug 19 11:09:40 2015 +0100 Btrfs: fix file read corruption after extent cloning and fsync If we partially clone one extent of a file into a lower offset of the file, fsync the file, power fail and then mount the fs to trigger log replay, we can get multiple checksum items in the csum tree that overlap each other and result in checksum lookup failures later. Those failures can make file data read requests assume a checksum value of 0, but they will not return an error (-EIO for example) to userspace exactly because the expected checksum value 0 is a special value that makes the read bio endio callback return success and set all the bytes of the corresponding page with the value 0x01 (at fs/btrfs/inode.c:__readpage_endio_check()). From a userspace perspective this is equivalent to file corruption because we are not returning what was written to the file. Details about how this can happen, and why, are included inline in the following reproducer test case for fstests and the comment added to tree-log.c. seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { _cleanup_flakey rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _need_to_be_root _supported_fs btrfs _supported_os Linux _require_scratch _require_dm_flakey _require_cloner _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey # Create our test file with a single 100K extent starting at file # offset 800K. We fsync the file here to make the fsync log tree gets # a single csum item that covers the whole 100K extent, which causes # the second fsync, done after the cloning operation below, to not # leave in the log tree two csum items covering two sub-ranges # ([0, 20K[ and [20K, 100K[)) of our extent. $XFS_IO_PROG -f -c "pwrite -S 0xaa 800K 100K" \ -c "fsync" \ $SCRATCH_MNT/foo | _filter_xfs_io # Now clone part of our extent into file offset 400K. This adds a file # extent item to our inode's metadata that points to the 100K extent # we created before, using a data offset of 20K and a data length of # 20K, so that it refers to the sub-range [20K, 40K[ of our original # extent. $CLONER_PROG -s $((800 * 1024 + 20 * 1024)) -d $((400 * 1024)) \ -l $((20 * 1024)) $SCRATCH_MNT/foo $SCRATCH_MNT/foo # Now fsync our file to make sure the extent cloning is durably # persisted. This fsync will not add a second csum item to the log # tree containing the checksums for the blocks in the sub-range # [20K, 40K[ of our extent, because there was already a csum item in # the log tree covering the whole extent, added by the first fsync # we did before. $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo echo "File digest before power failure:" md5sum $SCRATCH_MNT/foo | _filter_scratch # Silently drop all writes and ummount to simulate a crash/power # failure. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again, mount to trigger log replay and validate file # contents. # The fsync log replay first processes the file extent item # corresponding to the file offset 400K (the one which refers to the # [20K, 40K[ sub-range of our 100K extent) and then processes the file # extent item for file offset 800K. It used to happen that when # processing the later, it erroneously left in the csum tree 2 csum # items that overlapped each other, 1 for the sub-range [20K, 40K[ and # 1 for the whole range of our extent. This introduced a problem where # subsequent lookups for the checksums of blocks within the range # [40K, 100K[ of our extent would not find anything because lookups in # the csum tree ended up looking only at the smaller csum item, the # one covering the subrange [20K, 40K[. This made read requests assume # an expected checksum with a value of 0 for those blocks, which caused # checksum verification failure when the read operations finished. # However those checksum failure did not result in read requests # returning an error to user space (like -EIO for e.g.) because the # expected checksum value had the special value 0, and in that case # btrfs set all bytes of the corresponding pages with the value 0x01 # and produce the following warning in dmesg/syslog: # # "BTRFS warning (device dm-0): csum failed ino 257 off 917504 csum\ # 1322675045 expected csum 0" # _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey echo "File digest after log replay:" # Must match the same digest he had after cloning the extent and # before the power failure happened. md5sum $SCRATCH_MNT/foo | _filter_scratch _unmount_flakey status=0 exit Signed-off-by: Filipe Manana Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit 1f9b8c8fbc9a4d029760b16f477b9d15500e3a34 Author: Filipe Manana Date: Wed Aug 12 11:54:35 2015 +0100 Btrfs: check if previous transaction aborted to avoid fs corruption While we are committing a transaction, it's possible the previous one is still finishing its commit and therefore we wait for it to finish first. However we were not checking if that previous transaction ended up getting aborted after we waited for it to commit, so we ended up committing the current transaction which can lead to fs corruption because the new superblock can point to trees that have had one or more nodes/leafs that were never durably persisted. The following sequence diagram exemplifies how this is possible: CPU 0 CPU 1 transaction N starts (...) btrfs_commit_transaction(N) cur_trans->state = TRANS_STATE_COMMIT_START; (...) cur_trans->state = TRANS_STATE_COMMIT_DOING; (...) cur_trans->state = TRANS_STATE_UNBLOCKED; root->fs_info->running_transaction = NULL; btrfs_start_transaction() --> starts transaction N + 1 btrfs_write_and_wait_transaction(trans, root); --> starts writing all new or COWed ebs created at transaction N creates some new ebs, COWs some existing ebs but doesn't COW or deletes eb X btrfs_commit_transaction(N + 1) (...) cur_trans->state = TRANS_STATE_COMMIT_START; (...) wait_for_commit(root, prev_trans); --> prev_trans == transaction N btrfs_write_and_wait_transaction() continues writing ebs --> fails writing eb X, we abort transaction N and set bit BTRFS_FS_STATE_ERROR on fs_info->fs_state, so no new transactions can start after setting that bit cleanup_transaction() btrfs_cleanup_one_transaction() wakes up task at CPU 1 continues, doesn't abort because cur_trans->aborted (transaction N + 1) is zero, and no checks for bit BTRFS_FS_STATE_ERROR in fs_info->fs_state are made btrfs_write_and_wait_transaction(trans, root); --> succeeds, no errors during writeback write_ctree_super(trans, root, 0); --> succeeds --> we have now a superblock that points us to some root that uses eb X, which was never written to disk In this scenario future attempts to read eb X from disk results in an error message like "parent transid verify failed on X wanted Y found Z". So fix this by aborting the current transaction if after waiting for the previous transaction we verify that it was aborted. Cc: stable@vger.kernel.org Signed-off-by: Filipe Manana Reviewed-by: Josef Bacik Reviewed-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/transaction.c | 3 +++ 1 file changed, 3 insertions(+) commit 03100aada96f0645bbcb89aea24c01f02d0ef1fa Author: Keith Busch Date: Wed Aug 19 14:24:05 2015 -0700 block: Replace SG_GAPS with new queue limits mask The SG_GAPS queue flag caused checks for bio vector alignment against PAGE_SIZE, but the device may have different constraints. This patch adds a queue limits so a driver with such constraints can set to allow requests that would have been unnecessarily split. The new gaps check takes the request_queue as a parameter to simplify the logic around invoking this function. This new limit makes the queue flag redundant, so removing it and all usage. Device-mappers will inherit the correct settings through blk_stack_limits(). Signed-off-by: Keith Busch Reviewed-by: Martin K. Petersen Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe block/bio.c | 3 +-- block/blk-merge.c | 23 +++++++---------------- block/blk-settings.c | 14 ++++++++++++++ drivers/block/nvme-core.c | 2 +- drivers/md/dm-table.c | 13 ------------- include/linux/bio.h | 9 --------- include/linux/blkdev.h | 21 ++++++++++++++++++++- 7 files changed, 43 insertions(+), 42 deletions(-) commit 33c76a0b8126946026fa1122cb774553afae0956 Author: Mario Smarduch Date: Thu Jul 16 22:29:37 2015 +0100 arm64: KVM: Optimize arm64 skip 30-50% vfp/simd save/restore on exits This patch only saves and restores FP/SIMD registers on Guest access. To do this cptr_el2 FP/SIMD trap is set on Guest entry and later checked on exit. lmbench, hackbench show significant improvements, for 30-50% exits FP/SIMD context is not saved/restored [chazy/maz: fixed save/restore logic for 32bit guests] Signed-off-by: Mario Smarduch Signed-off-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_arm.h | 5 ++- arch/arm64/kvm/hyp.S | 73 +++++++++++++++++++++++++++++++++++----- 2 files changed, 68 insertions(+), 10 deletions(-) commit 277fb5fc177dc4674ef6151a7697f5396bbdff11 Author: Michal Hocko Date: Wed Aug 19 14:17:41 2015 +0200 btrfs: use __GFP_NOFAIL in alloc_btrfs_bio alloc_btrfs_bio relies on GFP_NOFS allocation when committing the transaction but this allocation context is rather weak wrt. reclaim capabilities. The page allocator currently tries hard to not fail these allocations if they are small (<=PAGE_ALLOC_COSTLY_ORDER) but it can still fail if the _current_ process is the OOM killer victim. Moreover there is an attempt to move away from the default no-fail behavior and allow these allocation to fail more eagerly. This would lead to: [ 37.928625] kernel BUG at fs/btrfs/extent_io.c:4045 which is clearly undesirable and the nofail behavior should be explicit if the allocation failure cannot be tolerated. Signed-off-by: Michal Hocko Signed-off-by: Chris Mason fs/btrfs/volumes.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d1b5c5671d010de1df78d3efddb84bf22bfafd1e Author: Michal Hocko Date: Wed Aug 19 14:17:40 2015 +0200 btrfs: Prevent from early transaction abort Btrfs relies on GFP_NOFS allocation when committing the transaction but this allocation context is rather weak wrt. reclaim capabilities. The page allocator currently tries hard to not fail these allocations if they are small (<=PAGE_ALLOC_COSTLY_ORDER) so this is not a problem currently but there is an attempt to move away from the default no-fail behavior and allow these allocation to fail more eagerly. And this would lead to a pre-mature transaction abort as follows: [ 55.328093] Call Trace: [ 55.328890] [] dump_stack+0x4f/0x7b [ 55.330518] [] ? console_unlock+0x334/0x363 [ 55.332738] [] __alloc_pages_nodemask+0x81d/0x8d4 [ 55.334910] [] pagecache_get_page+0x10e/0x20c [ 55.336844] [] alloc_extent_buffer+0xd0/0x350 [btrfs] [ 55.338973] [] btrfs_find_create_tree_block+0x15/0x17 [btrfs] [ 55.341329] [] btrfs_alloc_tree_block+0x18c/0x405 [btrfs] [ 55.343566] [] split_leaf+0x1e4/0x6a6 [btrfs] [ 55.345577] [] btrfs_search_slot+0x671/0x831 [btrfs] [ 55.347679] [] ? get_parent_ip+0xe/0x3e [ 55.349434] [] btrfs_insert_empty_items+0x5d/0xa8 [btrfs] [ 55.351681] [] __btrfs_run_delayed_refs+0x7a6/0xf35 [btrfs] [ 55.353979] [] btrfs_run_delayed_refs+0x6e/0x226 [btrfs] [ 55.356212] [] ? start_transaction+0x192/0x534 [btrfs] [ 55.358378] [] ? start_transaction+0x192/0x534 [btrfs] [ 55.360626] [] btrfs_commit_transaction+0x4c/0xaba [btrfs] [ 55.362894] [] ? start_transaction+0x192/0x534 [btrfs] [ 55.365221] [] btrfs_sync_file+0x29c/0x310 [btrfs] [ 55.367273] [] vfs_fsync_range+0x8f/0x9e [ 55.369047] [] vfs_fsync+0x1c/0x1e [ 55.370654] [] do_fsync+0x34/0x4e [ 55.372246] [] SyS_fsync+0x10/0x14 [ 55.373851] [] system_call_fastpath+0x12/0x6f [ 55.381070] BTRFS: error (device hdb1) in btrfs_run_delayed_refs:2821: errno=-12 Out of memory [ 55.382431] BTRFS warning (device hdb1): Skipping commit of aborted transaction. [ 55.382433] BTRFS warning (device hdb1): cleanup_transaction:1692: Aborting unused transaction(IO failure). [ 55.384280] ------------[ cut here ]------------ [ 55.384312] WARNING: CPU: 0 PID: 3010 at fs/btrfs/delayed-ref.c:438 btrfs_select_ref_head+0xd9/0xfe [btrfs]() [...] [ 55.384337] Call Trace: [ 55.384353] [] dump_stack+0x4f/0x7b [ 55.384357] [] ? down_trylock+0x2d/0x37 [ 55.384359] [] warn_slowpath_common+0xa1/0xbb [ 55.384398] [] ? btrfs_select_ref_head+0xd9/0xfe [btrfs] [ 55.384400] [] warn_slowpath_null+0x1a/0x1c [ 55.384423] [] btrfs_select_ref_head+0xd9/0xfe [btrfs] [ 55.384446] [] ? __btrfs_run_delayed_refs+0xa2/0xf35 [btrfs] [ 55.384455] [] __btrfs_run_delayed_refs+0xab/0xf35 [btrfs] [ 55.384476] [] btrfs_run_delayed_refs+0x6e/0x226 [btrfs] [ 55.384499] [] ? start_transaction+0x192/0x534 [btrfs] [ 55.384521] [] ? start_transaction+0x192/0x534 [btrfs] [ 55.384543] [] btrfs_commit_transaction+0x4c/0xaba [btrfs] [ 55.384565] [] ? start_transaction+0x192/0x534 [btrfs] [ 55.384588] [] btrfs_sync_file+0x29c/0x310 [btrfs] [ 55.384591] [] vfs_fsync_range+0x8f/0x9e [ 55.384592] [] vfs_fsync+0x1c/0x1e [ 55.384593] [] do_fsync+0x34/0x4e [ 55.384594] [] SyS_fsync+0x10/0x14 [ 55.384595] [] system_call_fastpath+0x12/0x6f [...] [ 55.384608] ---[ end trace c29799da1d4dd621 ]--- [ 55.437323] BTRFS info (device hdb1): forced readonly [ 55.438815] BTRFS info (device hdb1): delayed_refs has NO entry Fix this by being explicit about the no-fail behavior of this allocation path and use __GFP_NOFAIL. Signed-off-by: Michal Hocko Signed-off-by: Chris Mason fs/btrfs/extent_io.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 60d53eb3107c8e8960e8d7c22aa4e69aac7a8fe6 Author: Zhaolei Date: Mon Aug 17 18:44:46 2015 +0800 btrfs: Remove unused arguments in tree-log.c Following arguments are not used in tree-log.c: insert_one_name(): path, type wait_log_commit(): trans wait_for_writer(): trans This patch remove them. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) commit 34eb2a524997e5cd7117569b1fda925516adf6ac Author: Zhaolei Date: Mon Aug 17 18:44:45 2015 +0800 btrfs: Remove useless condition in start_log_trans() Dan Carpenter reported a smatch warning for start_log_trans(): fs/btrfs/tree-log.c:178 start_log_trans() warn: we tested 'root->log_root' before and it was 'false' fs/btrfs/tree-log.c 147 if (root->log_root) { We test "root->log_root" here. ... Reason: Condition of: fs/btrfs/tree-log.c:178: if (!root->log_root) { is not necessary after commit: 7237f1833 It caused a smatch warning, and no functionally error. Fix: Deleting above condition will make smatch shut up, but a better way is to do cleanup for start_log_trans() to remove duplicated code and make code more readable. Reported-by: Dan Carpenter Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) commit 95ecdc2549ccc1f4f5af1f37c080120c2f0a1be3 Author: Javier Martinez Canillas Date: Wed Aug 19 14:20:45 2015 -0700 Input: cros_ec_keyb - replace KEYBOARD_CROS_EC dependency The ChromeOS EC keyboard driver config depends on CROS_EC_PROTO but MFD_CROS_EC selects CROS_EC_PROTO instead. Mixing select and depends on is bad practice as it may lead to circular Kconfig dependencies. Since the platform device that is matched with the keyboard driver is registered by the ChromeOS EC mfd driver, KEYBOARD_CROS_EC really should depend on MFD_CROS_EC. And because this config option selects CROS_EC_PROTO, that dependency is met as well. So make the driver to depend on MFD_CROS_EC instead of CROS_EC_PROTO. Signed-off-by: Javier Martinez Canillas Signed-off-by: Dmitry Torokhov drivers/input/keyboard/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18e1db67e93ed75d9dc0d34c8d783ccf10547c2b Author: Bernhard Thaler Date: Thu Aug 13 08:58:15 2015 +0200 netfilter: bridge: fix IPv6 packets not being bridged with CONFIG_IPV6=n 230ac490f7fba introduced a dependency to CONFIG_IPV6 which breaks bridging of IPv6 packets on a bridge with CONFIG_IPV6=n. Sysctl entry /proc/sys/net/bridge/bridge-nf-call-ip6tables defaults to 1, for this reason packets are handled by br_nf_pre_routing_ipv6(). When compiled with CONFIG_IPV6=n this function returns NF_DROP but should return NF_ACCEPT to let packets through. Change CONFIG_IPV6=n br_nf_pre_routing_ipv6() return value to NF_ACCEPT. Tested with a simple bridge with two interfaces and IPv6 packets trying to pass from host on left side to host on right side of the bridge. Fixes: 230ac490f7fba ("netfilter: bridge: split ipv6 code into separated file") Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso include/net/netfilter/br_netfilter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bf798657eb5ba57552096843c315f096fdf9b715 Author: Pablo Neira Ayuso Date: Wed Aug 12 17:41:00 2015 +0200 netfilter: nf_tables: Use 32 bit addressing register from nft_type_to_reg() nft_type_to_reg() needs to return the register in the new 32 bit addressing, otherwise we hit EINVAL when using mappings. Fixes: 49499c3 ("netfilter: nf_tables: switch registers to 32 bit addressing") Reported-by: Andreas Schultz Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_tables.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 69f230d907e8c1ca3f9bd528993eeb98f712b0dd Author: Peng Tao Date: Thu Aug 20 01:52:59 2015 +0800 NFS41/flexfiles: update inode after write finishes Otherwise we break fstest case tests/read_write/mctime.t Does files layout need the same fix as well? Cc: stable@vger.kernel.org # v4.0+ Cc: Anna Schumaker Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 3 +++ 1 file changed, 3 insertions(+) commit c5e5cd28d7c5a18d6da6575957dd0c5243ac3e7b Author: Leilk Liu Date: Wed Aug 19 11:37:57 2015 +0800 spi: mediatek: remove redundant clock in prepare_hardware/unprepare_hardware clock in prepare_hardware/unprepare_hardware is redundant with pm_runtime, so remove them. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 17 ----------------- 1 file changed, 17 deletions(-) commit aaee24accb9e374c04eb9672d5324160626462c5 Author: Mark Greer Date: Wed Aug 19 08:58:52 2015 -0700 NFC: trf7970a: Add NULL check to clear up smatch warning Although it should be unnecessary, add a NULL pointer check to trf7970a_send_upstream() to eliminate a smatch warning. Reported-by: Dan Carpenter Signed-off-by: Mark Greer Signed-off-by: Samuel Ortiz drivers/nfc/trf7970a.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ae291f79da57ef4cb747ae1940b37152d1a4e5cf Author: Mark Greer Date: Wed Aug 19 08:57:58 2015 -0700 NFC: trf7970a: SDD_EN is bit 5 not bit 3 The SDD_EN bit in the NFC Target Detection Level Register is bit 5 not bit 3 so change the TRF7970A_NFC_TARGET_LEVEL_SDD_EN macro accordingly. Reported-by: Raymond Lei Signed-off-by: Mark Greer Signed-off-by: Samuel Ortiz drivers/nfc/trf7970a.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 777572911a732c0d3e6dbc514f9a1206606ffd0b Author: Thomas Petazzoni Date: Wed Jul 8 16:28:19 2015 +0200 dmaengine: mv_xor: optimize performance by using a subset of the XOR channels Due to how async_tx behaves internally, having more XOR channels than CPUs is actually hurting performance more than it improves it, because memcpy requests get scheduled on a different channel than the XOR requests, but async_tx will still wait for the completion of the memcpy requests before scheduling the XOR requests. It is in fact more efficient to have at most one channel per CPU, which this patch implements by limiting the number of channels per engine, and the number of engines registered depending on the number of availables CPUs. Marvell platforms are currently available in one CPU, two CPUs and four CPUs configurations: - in the configurations with one CPU, only one channel from one engine is used. - in the configurations with two CPUs, only one channel from each engine is used (they are two XOR engines) - in the configurations with four CPUs, both channels of both engines are used. Signed-off-by: Thomas Petazzoni Signed-off-by: Vinod Koul drivers/dma/mv_xor.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit 6d8f7abd235c1a38629cdada49cc53992f4ad42e Author: Thomas Petazzoni Date: Wed Jul 8 16:28:16 2015 +0200 dmaengine: mv_xor: remove support for dmacap,* DT properties The only reason why we had dmacap,* properties is because back when DMA_MEMSET was supported, only one out of the two channels per engine could do a memset operation. But this is something that the driver already knows anyway, and since then, the DMA_MEMSET support has been removed. The driver is already well aware of what each channel supports and the one to one mapping between Linux specific implementation details (such as dmacap,interrupt enabling DMA_INTERRUPT) and DT properties is a good indication that these DT properties are wrong. Therefore, this commit simply gets rid of these dmacap,* properties, they are now ignored, and the driver is responsible for knowing the capabilities of the hardware with regard to the dmaengine subsystem expectations. Signed-off-by: Thomas Petazzoni Reviewed-by: Maxime Ripard Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/mv-xor.txt | 10 ++++------ drivers/dma/mv_xor.c | 9 +++------ 2 files changed, 7 insertions(+), 12 deletions(-) commit 31495d60a06524f37a9ea66d7d62ce0418ef3506 Author: Michal Suchanek Date: Thu Jul 23 18:04:49 2015 +0200 dmaengine: pl330: do not emit loop for 1 byte transfer. When there is only one burst required do not emit loop instructions to loop exactly once. Emit just the body of the loop. Signed-off-by: Michal Suchanek Signed-off-by: Vinod Koul drivers/dma/pl330.c | 3 +++ 1 file changed, 3 insertions(+) commit 1cf5a330c05ae37a0a98ac7c9800a6f50d5579ec Author: Nikesh Oswal Date: Wed Aug 19 16:02:24 2015 +0100 ASoC: arizona: Fix gain settings of FLL in free-run mode The wrong register was used to set the gain of ref loop, when changing the FLL output on an active FLL. This patch corrects the offset of the gain register. Signed-off-by: Nikesh Oswal Signed-off-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/arizona.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5a286aae3d2c6e494fbcafdf4e911e2e976562a8 Author: Axel Lin Date: Wed Aug 19 11:17:53 2015 +0800 regulator: qcom_smd: Set n_voltages for pm8941_lnldo Just setting fixed_uV is not enough, the regulator core will also check n_voltages setting. The fixed_uV only works when n_voltages is 1. Signed-off-by: Axel Lin Reviewed-by: Bjorn Andersson Signed-off-by: Mark Brown drivers/regulator/qcom_smd-regulator.c | 1 + 1 file changed, 1 insertion(+) commit bf0c4e04732479f650ff59d1ee82de761c0071f0 Author: Jeff Vander Stoep Date: Tue Aug 18 20:50:10 2015 +0100 arm64: kconfig: Move LIST_POISON to a safe value Move the poison pointer offset to 0xdead000000000000, a recognized value that is not mappable by user-space exploits. Cc: Acked-by: Catalin Marinas Signed-off-by: Thierry Strudel Signed-off-by: Jeff Vander Stoep Signed-off-by: Will Deacon arch/arm64/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) commit ccf2dc51bc4a715670641aa5af0d4636acd8e0cd Author: Guenter Roeck Date: Mon Aug 17 20:08:09 2015 -0700 hwmon: (ltc2978) Add support for LTM4675 LTM2975 is a dual 9A or single 18A μModule regulator. It is register compatible with LTM4676. Signed-off-by: Guenter Roeck Documentation/hwmon/ltc2978 | 24 ++++++++++++++++-------- drivers/hwmon/pmbus/Kconfig | 2 +- drivers/hwmon/pmbus/ltc2978.c | 10 ++++++++-- 3 files changed, 25 insertions(+), 11 deletions(-) commit e04d1ce9bbb49862fd8266da764f5ebf67baaac0 Author: Michael Jones Date: Mon Aug 17 17:45:32 2015 -0700 hwmon: (ltc2978) Add polling for chips requiring it Some of the LTC chips supported by this driver have to be polled to ensure that they are ready to accept commands. Signed-off-by: Michael Jones [Guenter Roeck: simplifications and formatting changes] Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 111 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 101 insertions(+), 10 deletions(-) commit d830e27dac26b4f084c5ed2282666527f90db0ed Author: Guenter Roeck Date: Mon Aug 17 16:26:21 2015 -0700 hwmon: (pmbus) Enable PEC if the controller supports it PMBus controllers optionally support PEC. Configure the driver to use it if available to improve operational security. Suggested-by: Michael Jones Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/pmbus_core.c | 5 +++++ 1 file changed, 5 insertions(+) commit 2c052d4280ca48fddc7a9ffd2329ada3628cab86 Author: Guenter Roeck Date: Mon Aug 17 16:17:24 2015 -0700 hwmon: (pmbus) Use BIT macro Using the BIT macro makes the code a little easier to read. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/lm25066.c | 7 +- drivers/hwmon/pmbus/max34440.c | 9 ++- drivers/hwmon/pmbus/max8688.c | 19 ++--- drivers/hwmon/pmbus/pmbus.h | 163 +++++++++++++++++++++-------------------- drivers/hwmon/pmbus/zl6100.c | 11 +-- 5 files changed, 107 insertions(+), 102 deletions(-) commit 9430e547894d2ff099e5717050eb40c1e1dd2bad Author: Julian Scheel Date: Wed Aug 19 09:28:09 2015 +0200 ALSA: usb-audio: Recurse before saving terminal properties The input terminal parser recurses into the referenced clock entity to verify it is existant and thus the terminal descriptor is valid. The actual property values of the term instance which is initially parsed must not be overriden by the recursion. For this to work the term properties have to be assigned after recursing into the referenced clock entity descriptors. Signed-off-by: Julian Scheel Acked-by: Daniel Mack Signed-off-by: Takashi Iwai sound/usb/mixer.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit ebb75c0bdba238013976b53e256f8d13216304e4 Author: Vaishali Thakkar Date: Sat Aug 15 07:21:00 2015 +0530 ASoC: rockchip: i2s: Adjust devm usage Remove use of snd_soc_unregister_component in remove function as devm_snd_soc_register_component in probe function automatically handles it. Also, convert call of snd_dmaengine_pcm_register to managed resource function devm_snd_dmaengine_pcm_register and remove usage of snd_dmaengine_pcm_unregister in probe and remove functions. Signed-off-by: Vaishali Thakkar Signed-off-by: Mark Brown sound/soc/rockchip/rockchip_i2s.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit bea107b1f1ee79da0bc2c1ee0c70bf1c3c6c41b4 Author: Christian Kujau Date: Sun Aug 2 20:03:26 2015 -0700 fallback to hostname in scripts/package/builddeb I happened to build a kernel with "make deb-pkg" on a machine with no network connectivity, but this failed with: [...] INSTALL debian/headertmp/usr/include/asm/ (65 files) hostname: Name or service not known ../scripts/package/Makefile:90: recipe for target 'deb-pkg' failed make[2]: *** [deb-pkg] Error 1 In scripts/package/builddeb it tries to construct an email address (that can be queried in /proc/version later on) but with no network, the "hostname -f" fails. The following patch falls back to just use the shortname if we cannot determine our FQDN. Signed-off-by: Christian Kujau Signed-off-by: Michal Marek scripts/package/builddeb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f27b81c0e5670fbdd902ca8f85617153d69b8cb Author: Rob Herring Date: Mon Jul 27 15:55:15 2015 -0500 dmaengine: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: Dan Williams Cc: Vinod Koul Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/ipu/ipu_irq.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit d078cd1b4185134fe861e2b16a40ba14efb307b7 Author: Zidan Wang Date: Thu Jul 23 11:40:49 2015 +0800 dmaengine: imx-sdma: Add imx6sx platform support The new Solo X has more requirements for SDMA events. So it creates a event mux to remap most of event numbers in GPR (General Purpose Register). If we want to use SDMA support for those module who do not get the even number as default, we need to configure GPR first. Thus this patch adds this support of GPR event remapping configuration to the SDMA driver. Signed-off-by: Zidan Wang Signed-off-by: Vinod Koul drivers/dma/imx-sdma.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit e900c30dc1bb0cbc07708e9be1188f531632b2ef Author: Ludovic Desroches Date: Wed Jul 22 16:12:29 2015 +0200 dmaengine: at_xdmac: fix bug in prep_dma_cyclic In cyclic mode, the round chaining has been broken by the introduction of at_xdmac_queue_desc(): AT_XDMAC_MBR_UBC_NDE is set for all descriptors excepted for the last one. at_xdmac_queue_desc() has to be called one more time to chain the last and the first descriptors. Signed-off-by: Ludovic Desroches Fixes: 0d0ee751f7f7 ("dmaengine: xdmac: Rework the chaining logic") Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit e755d638e91be254d441602e8d7d9f1d9c944556 Author: Peng Tao Date: Wed Aug 19 13:49:19 2015 +0800 NFS41: make sure sending LAYOUTRETURN before close if marked so If layout is marked by NFS_LAYOUT_RETURN_BEFORE_CLOSE, we should always send LAYOUTRETURN before close, and we don't need to do ROC drain if we do send LAYOUTRETURN. Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit bec8a5a22640325e86cf5b737c18888747631099 Author: Krzysztof Kozlowski Date: Fri Jul 10 13:53:06 2015 +0900 coccinelle: api: extend spatch for dropping unnecessary owner i2c_add_driver (through i2c_register_driver) sets the owner field so we can drop it also from i2c drivers, just like from platform drivers. Signed-off-by: Krzysztof Kozlowski Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/api/platform_no_drv_owner.cocci | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit 09cd75555cd9051bdeac7a29c6ff12d6b9e8341b Author: Andreas Ruprecht Date: Sun Jul 12 09:41:51 2015 +0200 kconfig: Regenerate shipped zconf.{hash,lex}.c files Update the shipped files generated by flex and gperf to support the explicit use of "---help---" and to emit warnings for unsupported characters on COMMAND tokens. As I could not find out which flex/gperf version was used to generate the previous version, I used flex 2.5.35 and gperf 3.0.4 from Ubuntu 14.04 - this also leads to the big number of changed lines in this patch. Signed-off-by: Andreas Ruprecht Reviewed-by: Ulf Magnusson Tested-by: Ulf Magnusson Signed-off-by: Michal Marek scripts/kconfig/zconf.hash.c_shipped | 58 ++++--- scripts/kconfig/zconf.lex.c_shipped | 325 +++++++++++++++++------------------ 2 files changed, 192 insertions(+), 191 deletions(-) commit c2264564df3d70723c6d6eb96c18b99698c112fd Author: Andreas Ruprecht Date: Sun Jul 12 09:41:50 2015 +0200 kconfig: warn of unhandled characters in Kconfig commands In Kconfig, definitions of options take the following form: " ...". COMMANDs and PARAMs are treated slightly different by the underlying parser. While commit 2e0d737fc76f ("kconfig: don't silently ignore unhandled characters") introduced a warning for unsupported characters around PARAMs, it does not cover situations where a COMMAND has additional characters before it. This change makes Kconfig emit a warning if superfluous characters are found before COMMANDs. As the 'help' statement sometimes is written as '---help---', the '-' character would now also be regarded as unhandled and generate a warning. To avoid that, '-' is added to the list of allowed characters, and the token '---help---' is included in the zconf.gperf file. Reported-by: Valentin Rothberg Signed-off-by: Andreas Ruprecht Reviewed-by: Ulf Magnusson Tested-by: Ulf Magnusson Signed-off-by: Michal Marek scripts/kconfig/zconf.gperf | 1 + scripts/kconfig/zconf.l | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) commit 8f183751a8604be5aaf0ad6dedac4890bb6fa0d5 Author: Stephan Mueller Date: Wed Aug 19 08:42:07 2015 +0200 crypto: cmac - allow usage in FIPS mode CMAC is an approved cipher in FIPS 140-2. The patch allows the use of CMAC with TDES and AES in FIPS mode. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/testmgr.c | 2 ++ 1 file changed, 2 insertions(+) commit 66c9a04e33947191a03a1cf5103b8bf9051774df Author: Vaishali Thakkar Date: Tue Aug 18 11:36:05 2015 +0530 crypto: sahara - Use dmam_alloc_coherent This patch moves the data allocated using dma_alloc_coherent to the corresponding managed interface. To be compatible with the change, various gotos are replaced with direct returns and unneeded labels are dropped. Signed-off-by: Vaishali Thakkar Signed-off-by: Herbert Xu drivers/crypto/sahara.c | 46 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 37 deletions(-) commit 35ffd08d9bc92b5d56f6536406c379d82a757e7a Author: Markus Elfring Date: Tue Jul 7 21:48:23 2015 +0200 kconfig: Delete unnecessary checks before the function call "sym_calc_value" The sym_calc_value() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Michal Marek scripts/kconfig/confdata.c | 7 ++----- scripts/kconfig/symbol.c | 3 +-- 2 files changed, 3 insertions(+), 7 deletions(-) commit bf7b00557d10c0b84b6717305815c8fff7007830 Author: Riku Voipio Date: Thu May 28 12:11:14 2015 +0300 deb-pkg: simplify directory creation Every package needs /usr/share/doc/$package_name and DEBIAN directory, so create them as part of create_package function. Signed-off-by: Riku Voipio Signed-off-by: Michal Marek scripts/package/builddeb | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) commit 3c42f0b803613c4888aa2214e86d6ea746cb94de Author: Stephen Boyd Date: Tue Jun 16 18:00:37 2015 -0700 scripts/tags.sh: Include trace_*_rcuidle() in tags Every tracepoint creates two functions, the usual one 'trace_*()' and the rcuidle one 'trace_*_rcuidle()'. Add regex for the rcuidle variant so that we can jump to the tracepoints that use rcuidle. Cc: Steven Rostedt Signed-off-by: Stephen Boyd Signed-off-by: Michal Marek scripts/tags.sh | 4 ++++ 1 file changed, 4 insertions(+) commit 5db879aefa0ef6dea4fdda268dd94016bc165f3d Author: Raja Mani Date: Thu Jul 9 14:19:43 2015 +0530 ath10k: free collected fw stats memory if .pull_fw_stats fails If .pull_fw_stats() fails for some reason while processing fw stats event, collected pdev/vdev/peer stats just before the failure should be freed. This is unlikely to happen, just code review catch. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f1ee2682ef8dffe6d6ec6f7788d6bf33d6bab7a6 Author: Raja Mani Date: Thu Jul 9 14:19:42 2015 +0530 ath10k: ensure pktlog disable cmd reaches fw before pdev suspend Found incorrect sequence in ath10k_core_stop() where wmi pktlog disable cmd is passed from ath10k_debug_stop() to firmware immediately after wmi pdev suspend cmd. Firmware will not accept any wmi cmd after receiving wmi pdev suspend cmd. Fix this issue in ath10k_core_stop() by moving ath10k_debug_stop() just before sending pdev suspend cmd. So that pktlog disable cmd will get passed before pdev suspend cmd. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42cfc6b590c5eb7ae3c1de89594f8f2193ecbc97 Author: Martin Schwidefsky Date: Wed Aug 19 10:42:23 2015 +0200 s390/dcssblk: correct out of bounds array indexes Fix a couple of warnings like this: [linux-4.2-rc7/drivers/s390/block/dcssblk.c:553]: (style) Array index 'j' is used before limits check. Reported-by: David Binderman Signed-off-by: Martin Schwidefsky drivers/s390/block/dcssblk.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 78fb907626dccfeee6f4213c649606e9ba49c6bc Author: Martin Schwidefsky Date: Fri Aug 14 14:58:50 2015 +0200 s390/mm: simplify page table alloc/free code With the removal of the dynamic reallocation of page tables for KVM (see git commit 0b46e0a3ec0d7a04af6a091354f1b5e1b952d70a) the page table allocation / freeing code can be simplified. The page table free code can now use the alloc_pgste bit in the mm context to decide if a page table is 2K or 4K, there is no mix of different sized page tables anymore. This eliminates the need to use "page->_mapcount == 0" to check for 4K page table. Use the lower two bits in page->_mapcount to indicate which 2K fragments of the 4K page are in use. As 31-bit support is gone, remove the two defines ALLOC_ORDER and FRAG_MASK and use the constants directly where appropriate. Signed-off-by: Martin Schwidefsky arch/s390/mm/pgtable.c | 225 +++++++++++++++++++------------------------------ 1 file changed, 89 insertions(+), 136 deletions(-) commit 3d8258e4ab5166ca702b2828c99a5fa7dcb40a0c Author: Sebastian Ott Date: Tue Aug 18 19:39:27 2015 +0200 s390/pci: move debug messages to debugfs The error messages in pci_insn are for debug purposes only. Move them to the debugfs. Reviewed-by: Gerald Schaefer Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/pci/pci_insn.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) commit 24d05ff863e78544e8538a792e3234291cdd5650 Author: Heiko Carstens Date: Mon Aug 17 08:09:17 2015 +0200 s390/nmi: initialize control register 0 earlier Change machine_check_init() to an early_initcall(). This makes sure it will be called before all other cpus are online and therfore saves us a lot of pointless smp_call_function() calls. The control register settings will be forwarded to the other cpus when they will be brought online. Signed-off-by: Heiko Carstens Reviewed-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/kernel/nmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4e1899aaec0370aea6b98597ee6289d60544ae2 Author: Heiko Carstens Date: Mon Aug 17 07:59:47 2015 +0200 s390/zcrypt: use msleep() instead of mdelay() There is no need to busy loop and monopolize a cpu for up to ~2 seconds. The code in question that calls mdelay() is preemptible anyway, so better let the kernel schedule different processes than just looping and causing unnecessary delays. Signed-off-by: Heiko Carstens Acked-by: Martin Schwidefsky Signed-off-by: Martin Schwidefsky drivers/s390/crypto/ap_bus.c | 2 +- drivers/s390/crypto/zcrypt_pcixcc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e619cd3d618672bea8602d682ea63b42a1faf1bc Author: Heiko Carstens Date: Mon Aug 17 07:56:20 2015 +0200 s390/hmcdrv: fix interrupt registration The z/VM driver sets bit "63-22" in control register zero to one in order to enable the CP Service interrupt (0x2603). However the irq subclass mask that normally corresponds to the CP Service interrupt is "63-54" (== "63-22-32"). So it looks like the author read the documentation with the 32 bit sized cr0 register bit positions (== 22), but didn't realize that bit numbers change, if applied to a 64 bit register (== 54) due to the numbering scheme. Also use irq_subclass_register() instead if ctl_set_bit() since multiple services depend on the service signal subclass mask, which is the correct bit. This also explains why nobody noticed the bug, since the bit is always enabled anyway (e.g. pfault). Signed-off-by: Heiko Carstens Reviewed-by: Hendrik Brueckner Acked-by: Martin Schwidefsky Signed-off-by: Martin Schwidefsky drivers/s390/char/diag_ftp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 89b1145e93771d727645c96e323539c029b63f1c Author: Martin Schwidefsky Date: Fri Aug 14 13:20:28 2015 +0200 s390/setup: fix novx parameter The novx parameter disables the vector facility but the HWCAP_S390_VXRS bit in the ELf hardware capabilies is always set if the machine has the vector facility. If the user space program uses the "vx" string in the features field of /proc/cpuinfo to utilize vector instruction it will crash if the novx kernel paramter is set. Convert setup_hwcaps to an arch_initcall and use MACHINE_HAS_VX to decide if the HWCAPS_S390_VXRS bit needs to be set. Cc: stable@vger.kernel.org # 3.18+ Reported-by: Ulrich Weigand Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/setup.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit cabc4abe8e368d754805691b146f31f574533cfa Author: Heiko Carstens Date: Thu Aug 13 13:44:34 2015 +0200 s390/uaccess: remove uaccess_primary kernel parameter get_user() and put_user() are inline functions in the meantime again. Both will generate the mvcos instruction if compiled with -march=z10 (or greater). The kernel parameter "uaccess_primary" can only change the behavior of out-of-line uaccess functions like copy_from_user() to not use the mvcos instruction, but not for the above named inlined functions. Therefore it is quite useless and the parameter can be removed. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/lib/uaccess.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 92d6289105d134582094eede00192bd66f54905f Author: Heiko Carstens Date: Thu Aug 13 13:26:49 2015 +0200 s390: remove unneeded sizeof(void *) comparisons Remove two more statements which always evaluate to 'false'. These are more leftovers from the 31 bit era. Signed-off-by: Heiko Carstens Reviewed-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/mm/fault.c | 2 +- drivers/s390/block/dasd_eckd.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit a69db2f6ad69157cace810971f19cb5aec9956b1 Author: Heiko Carstens Date: Thu Aug 13 12:27:16 2015 +0200 s390/facilities: remove transactional-execution bits Remove the two facility bits 50 - constrained transactional-execution facility 74 - transactional-execution facility from the required facilities if the kernel is built with -march=zEC12. E.g. z/VM 6.3 doesn't virtualize the TX facility yet. Therefore a kernel built with -march=zEC12 and ipl'ed on a zEC12 machine as a z/VM 6.3 guest will emit a message about the missing facilities and stop working. The kernel however doesn't make use of the TX facility, therefore remove the two TX related facility bits and fix this unpleasant behavior. Signed-off-by: Heiko Carstens Reviewed-by: David Hildenbrand Signed-off-by: Martin Schwidefsky arch/s390/kernel/head.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c0e5ddab6e985c83714b31a88098e76c39ff084a Author: Michael Holzheu Date: Thu Aug 13 10:35:11 2015 +0200 s390/numa: re-add DIE sched_domain_topology_level By accident this level has been removed by the NUMA infrastructure patch. For non-NUMA systems with CPUs that span more than one book, this makes the scheduler only use one of the books and the other books remain idle. Fix this and re-add the missing level. For NUMA and non-NUMA we have the following scheduling domains and groups: - SMT (Groups: CPU threads) - MC (Groups: Cores) - BOOK (Groups: Books) For the non-NUMA case we have one last level scheduling domain: - DIE (Groups: Whole system, has all CPUs -> cpu_cpu_mask) For the NUMA case we have the following two last level scheduling domains: - DIE (Groups: NUMA nodes -> cpu_cpu_mask -> returns node siblings) - NUMA (Groups: Whole system, has all CPUs -> created in sched_init_numa()) Fixes: e8054b654bf5 ("s390/numa: add topology tree infrastructure") Reported-and-tested-by: Evgeny Cherkashin Signed-off-by: Michael Holzheu Acked-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/topology.c | 1 + 1 file changed, 1 insertion(+) commit 8cfd23e6740158817d2045915f6ea5a2daf11bce Author: Florian Westphal Date: Mon Aug 17 18:09:55 2015 +0200 netfilter: nft_payload: work around vlan header stripping make payload expression aware of the fact that VLAN offload may have removed a vlan header. When we encounter tagged skb, transparently insert the tag into the register so that vlan header matching can work without userspace being aware of offload features. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_payload.c | 57 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) commit acf6cec8365bfe1e6435e503eae4eab48ee04fc8 Author: Gerhard Sittig Date: Mon Jun 3 13:18:06 2013 +0200 powerpc/512x: silence a USB Kconfig dependency warning the PPC_MPC512x config automatically selected USB_EHCI_BIG_ENDIAN_* switches, which made Kconfig warn about "unmet direct dependencies": scripts/kconfig/conf --silentoldconfig Kconfig warning: (PPC_MPC512x && 440EPX) selects USB_EHCI_BIG_ENDIAN_DESC which has unmet direct dependencies (USB_SUPPORT && USB && USB_EHCI_HCD) warning: (PPC_MPC512x && PPC_PS3 && PPC_CELLEB && 440EPX) selects USB_EHCI_BIG_ENDIAN_MMIO which has unmet direct dependencies (USB_SUPPORT && USB && USB_EHCI_HCD) warning: (PPC_MPC512x && 440EPX) selects USB_EHCI_BIG_ENDIAN_DESC which has unmet direct dependencies (USB_SUPPORT && USB && USB_EHCI_HCD) warning: (PPC_MPC512x && PPC_PS3 && PPC_CELLEB && 440EPX) selects USB_EHCI_BIG_ENDIAN_MMIO which has unmet direct dependencies (USB_SUPPORT && USB && USB_EHCI_HCD) make the selected entries additionally depend on USB_EHCI_HCD which silences the warning Signed-off-by: Gerhard Sittig Signed-off-by: Michael Ellerman arch/powerpc/platforms/512x/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 74943dab6b155b1a9d4037b7f01a396f28f9c44a Author: Hari Bathini Date: Mon May 11 13:53:43 2015 +0530 powerpc/nvram: print no error when pstore backend is not nvram Pstore only supports one backend at a time. The preferred pstore backend is set by passing the pstore.backend= argument to the kernel at boot time. Currently, while trying to register with pstore, nvram throws an error message even when "pstore.backend != nvram", which is unnecessary. This patch removes the error message in case "pstore.backend != nvram". Signed-off-by: Hari Bathini Signed-off-by: Michael Ellerman arch/powerpc/kernel/nvram_64.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 36319608e28701c07cad80ae3be8b0fdfb1ab40f Author: Trond Myklebust Date: Wed Aug 19 00:14:20 2015 -0500 Revert "NFSv4: Remove incorrect check in can_open_delegated()" This reverts commit 4e379d36c050b0117b5d10048be63a44f5036115. This commit opens up a race between the recovery code and the open code. Reported-by: Olga Kornievskaia Cc: stable@vger.kernel # v4.0+ Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 ++ 1 file changed, 2 insertions(+) commit 3c13cb5b647ebe36fb79128bc8b917d2a3317b65 Author: Trond Myklebust Date: Tue Aug 18 23:45:13 2015 -0500 NFSv4.1/pnfs: Play safe w.r.t. close() races when return-on-close is set If we have an OPEN_DOWNGRADE and CLOSE race with one another, we want to ensure that the layout is forgotten by the client, so that we start afresh with a new layoutget. Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 7a67832c7e44c20935c5d6f2264035a0f7bf0d8f Author: Dan Williams Date: Wed Aug 19 00:34:34 2015 -0400 libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option We currently register a platform device for e820 type-12 memory and register a nvdimm bus beneath it. Registering the platform device triggers the device-core machinery to probe for a driver, but that search currently comes up empty. Building the nvdimm-bus registration into the e820_pmem platform device registration in this way forces libnvdimm to be built-in. Instead, convert the built-in portion of CONFIG_X86_PMEM_LEGACY to simply register a platform device and move the rest of the logic to the driver for e820_pmem, for the following reasons: 1/ Letting e820_pmem support be a module allows building and testing libnvdimm.ko changes without rebooting 2/ All the normal policy around modules can be applied to e820_pmem (unbind to disable and/or blacklisting the module from loading by default) 3/ Moving the driver to a generic location and converting it to scan "iomem_resource" rather than "e820.map" means any other architecture can take advantage of this simple nvdimm resource discovery mechanism by registering a resource named "Persistent Memory (legacy)" Cc: Christoph Hellwig Signed-off-by: Dan Williams arch/x86/Kconfig | 6 ++- arch/x86/include/uapi/asm/e820.h | 2 +- arch/x86/kernel/Makefile | 2 +- arch/x86/kernel/pmem.c | 79 ++++-------------------------------- drivers/nvdimm/Makefile | 3 ++ drivers/nvdimm/e820.c | 86 ++++++++++++++++++++++++++++++++++++++++ tools/testing/nvdimm/Kbuild | 4 ++ 7 files changed, 108 insertions(+), 74 deletions(-) commit 4ff376feaf57af94e08c8df769e7c48b805ac897 Author: Trond Myklebust Date: Tue Aug 18 23:23:21 2015 -0500 NFSv4.1/pnfs: Fix a close/delegreturn hang when return-on-close is set The helper pnfs_roc() has already verified that we have no delegations, and no further open files, hence no outstanding I/O and it has marked all the return-on-close lsegs as being invalid. Furthermore, it sets the NFS_LAYOUT_RETURN bit, thus serialising the close/delegreturn with all future layoutget calls on this inode. The checks in pnfs_roc_drain() for valid layout segments are therefore redundant: those cannot exist until another layoutget completes. The other check for whether or not NFS_LAYOUT_RETURN is set, actually causes a hang, since we already know that we hold that flag. To fix, we therefore strip out all the functionality in pnfs_roc_drain() except the retrieval of the barrier state, and then rename the function accordingly. Reported-by: Christoph Hellwig Fixes: 5c4a79fb2b1c ("Don't prevent layoutgets when doing return-on-close") Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 12 ++++-------- fs/nfs/pnfs.c | 24 +----------------------- fs/nfs/pnfs.h | 7 +++---- 3 files changed, 8 insertions(+), 35 deletions(-) commit b5f5914cb8a2745ee4edc9d7f3596d596f1ea1b0 Merge: 15cf3b7 4e317ce Author: Al Viro Date: Tue Aug 18 23:52:47 2015 -0400 Merge branch 'ufs' into for-next commit 15cf3b7afd94895f86ef10aa313053ad1c0f463d Merge: 2c6625c 8129ed2 Author: Al Viro Date: Tue Aug 18 23:43:29 2015 -0400 Merge branch 'sb_writers_pcpu_rwsem' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into for-next commit def63be85fe774477fb66043003e5b2ee748c4fa Merge: 1c8aa21 56d1392 Author: David S. Miller Date: Tue Aug 18 20:21:32 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-08-18 This series contains updates to igb, e100, e1000e and ixgbe. Shota Suzuki provides a fix for a possible overflow in igb_set_interrupt_capability() which leads to an oops. When changing the number of queues by "ethtool -L", set IGB_FLAG_QUEUE_PAIRS in the same manner as when initializing the igb driver. Vasily Averin provides a fix for a missing rtnl_unlock() for when we error out due to not being able to allocate memory for our queues. Stefan Assman provides a couple of fixes for igb/igbvf. First changes the igb driver in probe to simply call igb_enable_sriov() instead of igb_sriov_reinit() since we are starting from scratch. Then in igbvf, fix the driver where it does not clear the buffer_info->dma in all cases after calling dma_unmap_single(), which was found by changing the MTU twice. Richard Cochran implements the periodic output function using the programmable clock outputs available in i210 when possible, falling back to the target time for longer periods. Todd adds support for the Marvell PHY 1512 which is required for i354 devices. Then updates igb to make sure SR-IOV init uses the correct number of queues, since recent changes could result in the PF holding onto all of the queues. Alex Williamson provides a fix in the case where a guest OS does not support hot-unplug, so disable SR-IOV prior to unregister_netdev() to avoid the problem. Jia-Ju Bai provides several patches, first knocks some collecting dust off an old e100 driver to add a check to avoid a null pointer dereference. Then cleans up a possible resource leak by releasing the skb buffer allocated when the e100_xmit_prepare() runs into an issue in the DMA mapping. In igb, add a missing rtnl_unlock() for when we error out due to igb_sriov_reinit() in the igb_init_interrupt_scheme(). Provides a e1000e fix, based on suggestions from Alex Duyck to move head/tail register writing to e1000_configure_tx/rx() to avoid a possible null pointer dereference (similar to igb driver). Lastly, fix a possible memory leak in igb_probe(), where the memory shadow_vfta allocated by kcalloc in igb_sw_init() is not freed. Mark simplifies port-specific macros for ixgbe by eliminating explicit comparisons with 0 and enclose formal parameters in parens to eliminate the risk of an operator precedence issue. ==================== Signed-off-by: David S. Miller commit 1c8aa215ec060f5df64ff99b088e8a97f45efb0b Merge: 954591b 58aa908 Author: David S. Miller Date: Tue Aug 18 20:16:53 2015 -0700 Merge branch 'vrf-next' Nikolay Aleksandrov says: ==================== vrf: a few simplifications and cleanups These patches remove some unnecessary checks (patches 3, 4), unnecessary num_slaves member and refcnt manipulations which are already done by the upper functions. ==================== Acked-by: David Ahern Signed-off-by: David S. Miller commit 58aa90875da1ab075d712585305d1e520812bbb1 Author: Nikolay Aleksandrov Date: Tue Aug 18 20:28:04 2015 +0300 vrf: simplify the netdev notifier function We can drop the check because if vrf_ptr is present then we must have the vrf device as a master and since we're running with rtnl it can't go away. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3a4a27d3bde1c9cd8159c86a79796348cab90140 Author: Nikolay Aleksandrov Date: Tue Aug 18 20:28:03 2015 +0300 vrf: don't check for dstats and rth in uninit path dstats and rth are always present because we fail the device registration if they can't be allocated in vrf_init() (ndo_init) so drop the unnecessary checks. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit db5dbec5ef2d4565bb8d42709802de66b06f9965 Author: Nikolay Aleksandrov Date: Tue Aug 18 20:28:02 2015 +0300 vrf: drop unused num_slaves member slave_queue has a num_slaves member which is unused, drop it. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 2 -- include/net/vrf.h | 1 - 2 files changed, 3 deletions(-) commit 17d95f5ee2ba45a9771c97eb1037dfff1d51b064 Author: Nikolay Aleksandrov Date: Tue Aug 18 20:28:01 2015 +0300 vrf: drop unnecessary dev refcnt changes netdev_master_upper_dev_link/unlink already do a dev_hold/put on the devices being linked, so no need to take another reference. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/vrf.c | 2 -- 1 file changed, 2 deletions(-) commit 954591b9f3b43e7015bdd83acaa317658a9b7048 Author: Andrew Schwartzmeyer Date: Tue Aug 18 20:06:32 2015 -0700 hv_netvsc: Fix dereference of nvdev before check Passes static analysis by Smatch. Signed-off-by: Andrew Schwartzmeyer Signed-off-by: David S. Miller drivers/net/hyperv/netvsc_drv.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 415bcb5c6eff630967baa4e671cebe883d83ee79 Author: Oleg Drokin Date: Tue Aug 18 21:04:35 2015 -0400 staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr() Removed references to ib_reg_phsy_mr() and PMR which was added to deal with some Chelsio specific scenario, but no longer needed now. Reported-by: Stephen Rothwell Signed-off-by: Amir Shehata Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 251 +-------------------- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 32 +-- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 55 +---- .../lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c | 6 - 4 files changed, 19 insertions(+), 325 deletions(-) commit 2d79849903e00fb445038ddd8afb2acfbf89eb7f Author: Jiri Benc Date: Tue Aug 18 18:42:09 2015 +0200 lwtunnel: ip tunnel: fix multiple routes with different encap Currently, two routes going through the same tunnel interface are considered the same even when they are routed to a different host after encapsulation. This causes all routes added after the first one to have incorrect encapsulation parameters. This is nicely visible by doing: # ip r a 192.168.1.2/32 dev vxlan0 tunnel dst 10.0.0.2 # ip r a 192.168.1.3/32 dev vxlan0 tunnel dst 10.0.0.3 # ip r [...] 192.168.1.2/32 tunnel id 0 src 0.0.0.0 dst 10.0.0.2 [...] 192.168.1.3/32 tunnel id 0 src 0.0.0.0 dst 10.0.0.2 [...] Implement the missing comparison function. Fixes: 3093fbe7ff4bc ("route: Per route IP tunnel metadata via lightweight tunnel") Signed-off-by: Jiri Benc Signed-off-by: David S. Miller net/ipv4/ip_tunnel_core.c | 7 +++++++ 1 file changed, 7 insertions(+) commit df383e6240ef222703648072dafd2a1ae21b0d2a Author: Jiri Benc Date: Tue Aug 18 18:41:13 2015 +0200 lwtunnel: fix memory leak The built lwtunnel_state struct has to be freed after comparison. Fixes: 571e722676fe3 ("ipv4: support for fib route lwtunnel encap attributes") Signed-off-by: Jiri Benc Acked-by: Roopa Prabhu Signed-off-by: David S. Miller include/net/lwtunnel.h | 7 ++++++- net/ipv4/fib_semantics.c | 10 ++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) commit c938a003448063382e0575aee2d381d4cd7aec34 Author: Dan Carpenter Date: Tue Aug 18 12:31:44 2015 +0300 cxgb4: memory corruption in debugfs You can't use kstrtoul() with an int or it causes memory corruption. Also j should be unsigned or we have underflow bugs. I considered changing "j" to unsigned long but everything fits in a u32. Fixes: 8e3d04fd7d70 ('cxgb4: Add MPS tracing support') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit bc3e00f04cc1fe033a289c2fc2e5c73c0168d360 Author: Antoine Ténart Date: Tue Aug 18 10:59:10 2015 +0200 mtd: pxa3xx_nand: add a default chunk size When keeping the configuration set by the bootloader (by using the marvell,nand-keep-config property), the pxa3xx_nand_detect_config() function is called and set the chunk size to 512 as a default value if NDCR_PAGE_SZ is not set. In the other case, when not keeping the bootloader configuration, no chunk size is set. Fix this by adding a default chunk size of 512. Fixes: 70ed85232a93 ("mtd: nand: pxa3xx: Introduce multiple page I/O support") Signed-off-by: Antoine Tenart Acked-by: Robert Jarzmik Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 3 +++ 1 file changed, 3 insertions(+) commit 0f0aca5d50ced8d8c18c7982a6b6332182b70e33 Author: Axel Lin Date: Tue Aug 18 21:03:13 2015 +0800 mtd: omap_elm: Fix module alias Remove extra space after the "platform:" prefix and make the alias matches driver name. Signed-off-by: Axel Lin Acked-by: Roger Quadros Signed-off-by: Brian Norris drivers/mtd/nand/omap_elm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e0c19c9608483808e6b5c294e357fa456f058e1 Author: Colin Ian King Date: Fri Jul 17 11:37:52 2015 +0100 mtd: physmap_of: fix null pointer deference when kzalloc returns null static analysis by smatch caught the following error: drivers/mtd/maps/physmap_of.c:135 of_get_probes() error: potential null dereference 'res'. (kzalloc returns null) Check for failed kzalloc and return -ENOMEM in of_flash_probe if this occurs. Signed-off-by: Colin Ian King Signed-off-by: Brian Norris drivers/mtd/maps/physmap_of.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 3d751af2cbe9a73a869986a18e865f8a34265052 Author: Brian Foster Date: Wed Aug 19 10:35:04 2015 +1000 xfs: flush entire file on dio read/write to cached file Filesystems are responsible to manage file coherency between the page cache and direct I/O. The generic dio code flushes dirty pages over the range of a dio to ensure that the dio read or a future buffered read returns the correct data. XFS has generally followed this pattern, though traditionally has flushed and invalidated the range from the start of the I/O all the way to the end of the file. This changed after the following commit: 7d4ea3ce xfs: use ranged writeback and invalidation for direct IO ... as the full file flush was no longer necessary to deal with the strange post-eof delalloc issues that were since fixed. Unfortunately, we have since received complaints about performance degradation due to the increased exclusive iolock cycles (which locks out parallel dio submission) that occur when a file has cached pages. This does not occur on filesystems that use the generic code as it also does not incorporate locking. The exclusive iolock is acquired any time the inode mapping has cached pages, regardless of whether they reside in the range of the I/O or not. If not, the flush/inval calls do no work and the lock was cycled for no reason. Under consideration of the cost of the exclusive iolock, update the dio read and write handlers to flush and invalidate the entire mapping when cached pages exist. In most cases, this increases the cost of the initial flush sequence but eliminates the need for further lock cycles and flushes so long as the workload does not actively mix direct and buffered I/O. This also more closely matches historical behavior and performance characteristics that users have come to expect. Signed-off-by: Brian Foster Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner fs/xfs/xfs_file.c | 51 +++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) commit ffeecc5213024ae663377b442eedcfbacf6d0c5d Author: Jan Kara Date: Wed Aug 19 10:34:32 2015 +1000 xfs: Fix xfs_attr_leafblock definition struct xfs_attr_leafblock contains 'entries' array which is declared with size 1 altough it can in fact contain much more entries. Since this array is followed by further struct members, gcc (at least in version 4.8.3) thinks that the array has the fixed size of 1 element and thus may optimize away all accesses beyond the end of array resulting in non-working code. This problem was only observed with userspace code in xfsprogs, however it's better to be safe in kernel as well and have matching kernel and xfsprogs definitions. cc: Signed-off-by: Jan Kara Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_da_format.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 2f123bce18943fff819bc10f8868ffb9149fc622 Author: Darrick J. Wong Date: Wed Aug 19 10:33:58 2015 +1000 libxfs: readahead of dir3 data blocks should use the read verifier In the dir3 data block readahead function, use the regular read verifier to check the block's CRC and spot-check the block contents instead of directly calling only the spot-checking routine. This prevents corrupted directory data blocks from being read into the kernel, which can lead to garbage ls output and directory loops (if say one of the entries contains slashes and other junk). cc: # 3.12 - 4.2 Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_dir2_data.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 11c7e0e2f91fdfdf9f7b4d107bc93d6c298c95fe Author: Alexey Khoroshilov Date: Fri Aug 14 01:37:47 2015 +0300 mtd: nettel: do not ignore mtd_device_register() failure in nettel_init() If mtd_device_register() fails in nettel_init(), iomap left mapped. The patch adds failure handling for mtd_device_register(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Brian Norris drivers/mtd/maps/nettel.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit dbad7c993053d8f482a5f76270a93307537efd8e Author: Dave Chinner Date: Wed Aug 19 10:33:00 2015 +1000 xfs: stop holding ILOCK over filldir callbacks The recent change to the readdir locking made in 40194ec ("xfs: reinstate the ilock in xfs_readdir") for CXFS directory sanity was probably the wrong thing to do. Deep in the readdir code we can take page faults in the filldir callback, and so taking a page fault while holding an inode ilock creates a new set of locking issues that lockdep warns all over the place about. The locking order for regular inodes w.r.t. page faults is io_lock -> pagefault -> mmap_sem -> ilock. The directory readdir code now triggers ilock -> page fault -> mmap_sem. While we cannot deadlock at this point, it inverts all the locking patterns that lockdep normally sees on XFS inodes, and so triggers lockdep. We worked around this with commit 93a8614 ("xfs: fix directory inode iolock lockdep false positive"), but that then just moved the lockdep warning to deeper in the page fault path and triggered on security inode locks. Fixing the shmem issue there just moved the lockdep reports somewhere else, and now we are getting false positives from filesystem freezing annotations getting confused. Further, if we enter memory reclaim in a readdir path, we now get lockdep warning about potential deadlocks because the ilock is held when we enter reclaim. This, again, is different to a regular file in that we never allow memory reclaim to run while holding the ilock for regular files. Hence lockdep now throws ilock->kmalloc->reclaim->ilock warnings. Basically, the problem is that the ilock is being used to protect the directory data and the inode metadata, whereas for a regular file the iolock protects the data and the ilock protects the metadata. From the VFS perspective, the i_mutex serialises all accesses to the directory data, and so not holding the ilock for readdir doesn't matter. The issue is that CXFS doesn't access directory data via the VFS, so it has no "data serialisaton" mechanism. Hence we need to hold the IOLOCK in the correct places to provide this low level directory data access serialisation. The ilock can then be used just when the extent list needs to be read, just like we do for regular files. The directory modification code can take the iolock exclusive when the ilock is also taken, and this then ensures that readdir is correct excluded while modifications are in progress. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_dir2.c | 3 +++ fs/xfs/xfs_dir2_readdir.c | 11 ++++++++--- fs/xfs/xfs_inode.c | 34 +++++++++++++++++++++------------- fs/xfs/xfs_symlink.c | 7 ++++--- 4 files changed, 36 insertions(+), 19 deletions(-) commit 0952c8183c1575a78dc416b5e168987ff98728bb Author: Dave Chinner Date: Wed Aug 19 10:32:49 2015 +1000 xfs: clean up inode lockdep annotations Lockdep annotations are a maintenance nightmare. Locking has to be modified to suit the limitations of the annotations, and we're always having to fix the annotations because they are unable to express the complexity of locking heirarchies correctly. So, next up, we've got more issues with lockdep annotations for inode locking w.r.t. XFS_LOCK_PARENT: - lockdep classes are exclusive and can't be ORed together to form new classes. - IOLOCK needs multiple PARENT subclasses to express the changes needed for the readdir locking rework needed to stop the endless flow of lockdep false positives involving readdir calling filldir under the ILOCK. - there are only 8 unique lockdep subclasses available, so we can't create a generic solution. IOWs we need to treat the 3-bit space available to each lock type differently: - IOLOCK uses xfs_lock_two_inodes(), so needs: - at least 2 IOLOCK subclasses - at least 2 IOLOCK_PARENT subclasses - MMAPLOCK uses xfs_lock_two_inodes(), so needs: - at least 2 MMAPLOCK subclasses - ILOCK uses xfs_lock_inodes with up to 5 inodes, so needs: - at least 5 ILOCK subclasses - one ILOCK_PARENT subclass - one RTBITMAP subclass - one RTSUM subclass For the IOLOCK, split the space into two sets of subclasses. For the MMAPLOCK, just use half the space for the one subclass to match the non-parent lock classes of the IOLOCK. For the ILOCK, use 0-4 as the ILOCK subclasses, 5-7 for the remaining individual subclasses. Because they are now all different, modify xfs_lock_inumorder() to handle the nested subclasses, and to assert fail if passed an invalid subclass. Further, annotate xfs_lock_inodes() to assert fail if an invalid combination of lock primitives and inode counts are passed that would result in a lockdep subclass annotation overflow. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/xfs_inode.c | 68 ++++++++++++++++++++++++++++++++----------- fs/xfs/xfs_inode.h | 85 +++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 110 insertions(+), 43 deletions(-) commit 7df1c170b9a45ab3a7401c79bbefa9939bf8eafb Author: Brian Foster Date: Wed Aug 19 10:32:33 2015 +1000 xfs: swap leaf buffer into path struct atomically during path shift The node directory lookup code uses a state structure that tracks the path of buffers used to search for the hash of a filename through the leaf blocks. When the lookup encounters a block that ends with the requested hash, but the entry has not yet been found, it must shift over to the next block and continue looking for the entry (i.e., duplicate hashes could continue over into the next block). This shift mechanism involves walking back up and down the state structure, replacing buffers at the appropriate btree levels as necessary. When a buffer is replaced, the old buffer is released and the new buffer read into the active slot in the path structure. Because the buffer is read directly into the path slot, a buffer read failure can result in setting a NULL buffer pointer in an active slot. This throws off the state cleanup code in xfs_dir2_node_lookup(), which expects to release a buffer from each active slot. Instead, a BUG occurs due to a NULL pointer dereference: BUG: unable to handle kernel NULL pointer dereference at 00000000000001e8 IP: [] xfs_trans_brelse+0x2a3/0x3c0 [xfs] ... RIP: 0010:[] [] xfs_trans_brelse+0x2a3/0x3c0 [xfs] ... Call Trace: [] xfs_dir2_node_lookup+0xa6/0x2c0 [xfs] [] xfs_dir_lookup+0x1ac/0x1c0 [xfs] [] xfs_lookup+0x91/0x290 [xfs] [] xfs_vn_lookup+0x73/0xb0 [xfs] [] lookup_real+0x1d/0x50 [] path_openat+0x91e/0x1490 [] do_filp_open+0x89/0x100 ... This has been reproduced via a parallel fsstress and filesystem shutdown workload in a loop. The shutdown triggers the read error in the aforementioned codepath and causes the BUG in xfs_dir2_node_lookup(). Update xfs_da3_path_shift() to update the active path slot atomically with respect to the caller when a buffer is replaced. This ensures that the caller always sees the old or new buffer in the slot and prevents the NULL pointer dereference. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_da_btree.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 1b867d3ab562b6b03e46113fad3e87b05fbfbb85 Author: Brian Foster Date: Wed Aug 19 10:32:14 2015 +1000 xfs: relocate sparse inode mount warning The sparse inodes feature is currently considered experimental. We warn at mount time from xfs_mount_validate_sb(). This function is part of the superblock verifier codepath, however, which means it could be invoked repeatedly on superblock reads or writes. This is currently only noticeable from userspace, where mkfs produces multiple warnings at format time. As mkfs warnings were not the intent of this change, relocate the mount time warning to xfs_fs_fill_super(), which is only invoked once and only in kernel space. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_sb.c | 3 --- fs/xfs/xfs_super.c | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) commit 928634514bc53f66631a731bf623157c913b145e Author: Dave Chinner Date: Wed Aug 19 10:32:01 2015 +1000 xfs: dquots should be stamped with sb_meta_uuid Once the sb_uuid is changed, the wrong uuid is stamped into new dquots on disk. Found by inspection, verified by generic/219. Signed-off-by: Dave Chinner Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner fs/xfs/xfs_dquot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fcfbe2c4ef4243cc11a1cd64ee1b4907b6afea06 Author: Dave Chinner Date: Wed Aug 19 10:31:54 2015 +1000 xfs: log recovery needs to validate against sb_meta_uuid Now that sb_uuid can be changed by the user, we cannot use this to validate the metadata blocks being recovered belong to this filesystem. We must check against the sb_meta_uuid as that will remain unchanged. There is a complication in this code - the superblock itself. We can not check the sb_meta_uuid unconditionally, as that may not be set on disk. Hence we must verify the superblock sb_uuid matches between the log record and the in-core superblock. Found by inspection after the previous two problems were found. Signed-off-by: Dave Chinner Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit ac383de20d468a75e7023caf06dcf6606cd85220 Author: Dave Chinner Date: Wed Aug 19 10:31:41 2015 +1000 xfs: growfs not aware of sb_meta_uuid Adding this simple change to xfstests:common/rc::_scratch_mkfs_xfs: + if [ $mkfs_status -eq 0 ]; then + xfs_admin -U generate $SCRATCH_DEV > /dev/null + fi triggers all sorts of errors in xfstests. xfs/104 is an example, where growfs fails with a UUID mismatch corruption detected by xfs_agf_write_verify() when trying to write the first new AG headers. Fix this problem by making sure we copy the sb_meta_uuid into new metadata written by growfs. Signed-off-by: Dave Chinner Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner fs/xfs/xfs_fsops.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit bbf155add09e1f0179eca89e0999cf28d335ca0a Author: Dave Chinner Date: Wed Aug 19 10:31:18 2015 +1000 xfs: fix sb_meta_uuid usage After changing the UUID on a v5 filesystem, xfstests fails immediately on a debug kernel with: XFS: Assertion failed: uuid_equal(&ip->i_d.di_uuid, &mp->m_sb.sb_uuid), file: fs/xfs/xfs_inode.c, line: 799 This needs to check against the sb_meta_uuid, not the user visible UUID that was changed. Signed-off-by: Dave Chinner Reviewed-by: Eric Sandeen Signed-off-by: Dave Chinner fs/xfs/xfs_inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c400ee3ed1b13d45adde68e12254dc6ab6977b59 Author: Eric Sandeen Date: Wed Aug 19 10:30:48 2015 +1000 xfs: set XFS_DA_OP_OKNOENT in xfs_attr_get It's entirely possible for userspace to ask for an xattr which does not exist. Normally, there is no problem whatsoever when we ask for such a thing, but when we look at an obfuscated metadump image on a debug kernel with selinux, we trip over this ASSERT in xfs_da3_path_shift(): *result = -ENOENT; /* we're out of our tree */ ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); It (more or less) only shows up in the above scenario, because xfs_metadump obfuscates attr names, but chooses names which keep the same hash value - and xfs_da3_node_lookup_int does: if (((retval == -ENOENT) || (retval == -ENOATTR)) && (blk->hashval == args->hashval)) { error = xfs_da3_path_shift(state, &state->path, 1, 1, &retval); IOWS, we only get down to the xfs_da3_path_shift() ASSERT if we are looking for an xattr which doesn't exist, but we find xattrs on disk which have the same hash, and so might be a hash collision, so we try the path shift. When *that* fails to find what we're looking for, we hit the assert about XFS_DA_OP_OKNOENT. Simply setting XFS_DA_OP_OKNOENT in xfs_attr_get solves this rather corner-case problem with no ill side effects. It's fine for an attr name lookup to fail. Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr.c | 2 ++ 1 file changed, 2 insertions(+) commit af83a67cad1452d48ecd77792f9218f26c445650 Author: Andy Shevchenko Date: Thu Aug 6 16:04:24 2015 +0300 mtd: denali_pci: switch to dev_err() It is better to have device name prefixed the actual error message. Signed-off-by: Andy Shevchenko Signed-off-by: Brian Norris drivers/mtd/nand/denali_pci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit add243d5bc371eef66f81c9da4fd4b55a18dad23 Author: Andy Shevchenko Date: Thu Aug 6 16:04:23 2015 +0300 mtd: denali_pci: refactor driver using devres API In recent kernels we have a lot of helper functions, including devres API, to make life of device driver developer easy. Convert the driver using devm_kzalloc() and pcim_enable_device(). Signed-off-by: Andy Shevchenko Signed-off-by: Brian Norris drivers/mtd/nand/denali_pci.c | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) commit 2445d33d852320d4ce700b2428d60991f8cf478f Author: Andy Shevchenko Date: Thu Aug 6 16:04:22 2015 +0300 mtd: denali_pci: use module_pci_driver() macro Let's use module_pci_driver() macro to reduce code base of the driver. There is no functional change. Signed-off-by: Andy Shevchenko Signed-off-by: Brian Norris drivers/mtd/nand/denali_pci.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 04868a67ed582e845bf14a5a7789f8bdb3faadd3 Author: Andy Shevchenko Date: Thu Aug 6 16:04:21 2015 +0300 mtd: denali: hide core part from user in Kconfig There is no need to user to see the core part of the driver. Signed-off-by: Andy Shevchenko Signed-off-by: Brian Norris drivers/mtd/nand/Kconfig | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 5be203ad115c1d8294e8685253e05fcea0202e04 Merge: 5461ad9 d4a97a0 Author: Dave Chinner Date: Wed Aug 19 10:10:47 2015 +1000 Merge branch 'xfs-efi-rework' into for-next commit d4a97a04227d5ba91b91888a016e2300861cfbc7 Author: Brian Foster Date: Wed Aug 19 10:01:40 2015 +1000 xfs: add missing bmap cancel calls in error paths If a failure occurs after the bmap free list is populated and before xfs_bmap_finish() completes successfully (which returns a partial list on failure), the bmap free list must be cancelled. Otherwise, the extent items on the list are never freed and a memory leak occurs. Several random error paths throughout the code suffer this problem. Fix these up such that xfs_bmap_cancel() is always called on error. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_bmap.c | 1 + fs/xfs/xfs_bmap_util.c | 10 +++++---- fs/xfs/xfs_inode.c | 9 ++++---- fs/xfs/xfs_rtalloc.c | 57 ++++++++++++++++++++++++------------------------ 4 files changed, 41 insertions(+), 36 deletions(-) commit 146e54b71ea4b998d65c25964807ff6792bbf436 Author: Brian Foster Date: Wed Aug 19 10:01:08 2015 +1000 xfs: add helper to conditionally remove items from the AIL Several areas of code duplicate a pattern where we take the AIL lock, check whether an item is in the AIL and remove it if so. Create a new helper for this pattern and use it where appropriate. Signed-off-by: Brian Foster fs/xfs/xfs_buf_item.c | 6 +----- fs/xfs/xfs_dquot.c | 8 ++------ fs/xfs/xfs_extfree_item.c | 14 +------------- fs/xfs/xfs_inode_item.c | 11 ++--------- fs/xfs/xfs_trans_priv.h | 15 +++++++++++++++ 5 files changed, 21 insertions(+), 33 deletions(-) commit f307080a626569f89bc8fbad9f936b307aded877 Author: Brian Foster Date: Wed Aug 19 10:00:53 2015 +1000 xfs: fix btree cursor error cleanups The btree cursor cleanup function takes an error parameter that affects how buffers are released from the cursor. All buffers are released in the event of error. Several callers do not specify the XFS_BTREE_ERROR flag in the event of error, however. This can cause buffers to hang around locked or with an elevated hold count and thus lead to umount hangs in the event of errors. Fix up the xfs_btree_del_cursor() callers to pass XFS_BTREE_ERROR if the cursor is being torn down due to error. Signed-off-by: Brian Foster Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_ialloc.c | 2 +- fs/xfs/xfs_itable.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit 0ae120f8a81a8dc4f974d0819c97b58c4fa935ac Author: Brian Foster Date: Wed Aug 19 10:00:28 2015 +1000 xfs: clean up root inode properly on mount failure The root inode is read as part of the xfs_mountfs() sequence and the reference is dropped in the event of failure after we grab the inode. The reference drop doesn't necessarily free the inode, however. It marks it for reclaim and potentially kicks off the reclaim workqueue. The workqueue is destroyed further up the error path, which means we are subject to crash if the workqueue job runs after this point or a memory leak which is identified if the xfs_inode_zone is destroyed (e.g., on module removal). Both of these outcomes are reproducible via manual instrumentation of a mount error after the root inode xfs_iget() call in xfs_mountfs(). Update the xfs_mountfs() error path to cancel any potential reclaim work items and to run a synchronous inode reclaim if the root inode is marked for reclaim. This ensures that no jobs remain on the queue before it is destroyed and that the root inode is freed before the reclaim mechanism is torn down. Signed-off-by: Brian Foster Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner fs/xfs/xfs_mount.c | 2 ++ 1 file changed, 2 insertions(+) commit a3f20014659a1566a4e516e2bf95287960fe2c44 Author: Brian Foster Date: Wed Aug 19 09:59:50 2015 +1000 xfs: checksum log record ext headers based on record size The first 4 bytes of every basic block in the physical log is stamped with the current lsn. To support this mechanism, the log record header (first block of each new log record) contains space for the original first byte of each log record block before it is replaced with the lsn. The log record header has space for 32k worth of blocks. The version 2 log adds new extended record headers for each additional 32k worth of blocks beyond what is supported by the record header. The log record checksum incorporates the log record header, the extended headers and the record payload. xlog_cksum() checksums the extended headers based on log->l_iclog_heads, which specifies the number of extended headers in a log record based on the log buffer size mount option. The log buffer size is variable, however, and thus means the checksum can be calculated differently based on how a filesystem is mounted. This is problematic if a filesystem crashes and recovery occurs on a subsequent mount using a different log buffer size. For example, crash an active filesystem that is mounted with the default (32k) logbsize, attempt remount/recovery using '-o logbsize=64k' and the mount fails on or warns about log checksum failures. To avoid this problem, update xlog_cksum() to calculate the checksum based on the size of the log buffer according to the log record. The size is already included in the h_size field of the log record header and thus is available at log recovery time. Extended log record headers are also only written when the log record is large enough to require them. This makes checksum calculation of log records consistent with the extended record header mechanism as well as how on-disk records are checksummed with various log buffer size mount options. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit fc0d1656964fc53fca84549df5a6bd4a16a29cdf Author: Brian Foster Date: Wed Aug 19 09:59:38 2015 +1000 xfs: fix broken icreate log item cancellation Inode cluster buffers are invalidated and cancelled when inode chunks are freed to notify log recovery that previous logged updates to the metadata buffer should be skipped. This ensures that log recovery does not overwrite buffers that might have already been reused. On v4 filesystems, inode chunk allocation and inode updates are logged via the cluster buffers and thus cancellation is easily detected via buffer cancellation items. v5 filesystems use the new icreate transaction, which uses logical logging and ordered buffers to log a full inode chunk allocation at once. The resulting icreate item often spans multiple inode cluster buffers. Log recovery checks for cancelled buffers when processing icreate log items, but it has a couple problems. First, it uses the full length of the inode chunk rather than the cluster size. Second, it uses the length in FSB units rather than BB units. Either of these problems prevent icreate recovery from identifying cancelled buffers and thus inode initialization proceeds unconditionally. Update xlog_recover_do_icreate_pass2() to iterate the icreate range in cluster sized increments and check each increment for cancellation. Since icreate is currently only used for the minimum atomic inode chunk allocation, we expect that either all or none of the buffers will be cancelled. Cancel the icreate if at least one buffer is cancelled to avoid making a bad situation worse by initializing a partial inode chunk, but detect such anomalies and warn the user. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 49 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) commit 78d57e4593bf700e1a4447e3a7769da8dd0e0844 Author: Brian Foster Date: Wed Aug 19 09:58:48 2015 +1000 xfs: icreate log item recovery and cancellation tracepoints Various log items have recovery tracepoints to identify whether a particular log item is recovered or cancelled. Add the equivalent tracepoints for the icreate transaction. Signed-off-by: Brian Foster Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 5 ++++- fs/xfs/xfs_trace.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) commit f0b2efad16e78623b5a156f6e4e9166907b83155 Author: Brian Foster Date: Wed Aug 19 09:58:36 2015 +1000 xfs: don't leave EFIs on AIL on mount failure Log recovery occurs in two phases at mount time. In the first phase, EFIs and EFDs are processed and potentially cancelled out. EFIs without EFD objects are inserted into the AIL for processing and recovery in the second phase. xfs_mountfs() runs various other operations between the phases and is thus subject to failure. If failure occurs after the first phase but before the second, pending EFIs sit on the AIL, pin it and cause the mount to hang. Update the mount sequence to ensure that pending EFIs are cancelled in the event of failure. Add a recovery cancellation mechanism to iterate the AIL and cancel all EFI items when requested. Plumb cancellation support through the log mount finish helper and update xfs_mountfs() to invoke cancellation in the event of failure after recovery has started. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log.c | 30 ++++++++++++++++++----- fs/xfs/xfs_log.h | 1 + fs/xfs/xfs_log_priv.h | 2 ++ fs/xfs/xfs_log_recover.c | 63 +++++++++++++++++++++++++++++++++++++++++++++--- fs/xfs/xfs_mount.c | 26 +++++++++++--------- 5 files changed, 100 insertions(+), 22 deletions(-) commit e32a1d1fbf6eb2bdc24aa0502e827ff4d2234604 Author: Brian Foster Date: Wed Aug 19 09:52:21 2015 +1000 xfs: use EFI refcount consistently in log recovery The EFI is initialized with a reference count of 2. One for the EFI to ensure the item makes it to the AIL and one for the subsequently created EFD to release the EFI once the EFD is committed. Log recovery uses the EFI in a similar manner, but implements a hack to remove both references in one call once the EFD is handled. Update log recovery to use EFI reference counting in a manner consistent with the log. When an EFI is encountered during recovery, an EFI item is allocated and inserted to the AIL directly. Since the EFI reference is typically dropped when the EFI is unpinned and this is analogous with AIL insertion, drop the EFI reference at this point. When a corresponding EFD is encountered in the log, this indicates that the extents were freed, no processing is required and the EFI can be dropped. Update xlog_recover_efd_pass2() to simply drop the EFD reference at this point rather than open code the AIL removal and EFI free. Remaining EFIs (i.e., with no corresponding EFD) are processed in xlog_recover_finish(). An EFD transaction is allocated and the extents are freed, which transfers ownership of the EFI reference to the EFD item in the log. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_extfree_item.c | 57 +++++++++++++++++------------------------------ fs/xfs/xfs_log_recover.c | 43 ++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 57 deletions(-) commit 6bc43af3d5f507254b8de2058ea51f6ec998ae52 Author: Brian Foster Date: Wed Aug 19 09:51:43 2015 +1000 xfs: ensure EFD trans aborts on log recovery extent free failure Log recovery attempts to free extents with leftover EFIs in the AIL after initial processing. If the extent free fails (e.g., due to unrelated fs corruption), the transaction is cancelled, though it might not be dirtied at the time. If this is the case, the EFD does not abort and thus does not release the EFI. This can lead to hangs as the EFI pins the AIL. Update xlog_recover_process_efi() to log the EFD in the transaction before xfs_free_extent() errors are handled to ensure the transaction is dirty, aborts the EFD and releases the EFI on error. Since this is a requirement for EFD processing (and consistent with xfs_bmap_finish()), update the EFD logging helper to do the extent free and unconditionally log the EFD. This encodes the required EFD logging behavior into the helper and reduces the likelihood of errors down the road. [dchinner: re-add xfs_alloc.h to xfs_log_recover.c to fix build failure.] Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_bmap_util.c | 21 +++++++-------------- fs/xfs/xfs_log_recover.c | 6 +++--- fs/xfs/xfs_trans.h | 7 +++---- fs/xfs/xfs_trans_extfree.c | 32 +++++++++++++++++++++++--------- 4 files changed, 36 insertions(+), 30 deletions(-) commit 8d99fe92fed019e203f458370129fb28b3fb5740 Author: Brian Foster Date: Wed Aug 19 09:51:16 2015 +1000 xfs: fix efi/efd error handling to avoid fs shutdown hangs Freeing an extent in XFS involves logging an EFI (extent free intention), freeing the actual extent, and logging an EFD (extent free done). The EFI object is created with a reference count of 2: one for the current transaction and one for the subsequently created EFD. Under normal circumstances, the first reference is dropped when the EFI is unpinned and the second reference is dropped when the EFD is committed to the on-disk log. In event of errors or filesystem shutdown, there are various potential cleanup scenarios depending on the state of the EFI/EFD. The cleanup scenarios are confusing and racy, as demonstrated by the following test sequence: # mount $dev $mnt # fsstress -d $mnt -n 99999 -p 16 -z -f fallocate=1 \ -f punch=1 -f creat=1 -f unlink=1 & # sleep 5 # killall -9 fsstress; wait # godown -f $mnt # umount ... in which the final umount can hang due to the AIL being pinned indefinitely by one or more EFI items. This can occur due to several conditions. For example, if the shutdown occurs after the EFI is committed to the on-disk log and the EFD committed to the CIL, but before the EFD committed to the log, the EFD iop_committed() abort handler does not drop its reference to the EFI. Alternatively, manual error injection in the xfs_bmap_finish() codepath shows that if an error occurs after the EFI transaction is committed but before the EFD is constructed and logged, the EFI is never released from the AIL. Update the EFI/EFD item handling code to use a more straightforward and reliable approach to error handling. If an error occurs after the EFI transaction is committed and before the EFD is constructed, release the EFI explicitly from xfs_bmap_finish(). If the EFI transaction is cancelled, release the EFI in the unlock handler. Once the EFD is constructed, it is responsible for releasing the EFI under any circumstances (including whether the EFI item aborts due to log I/O error). Update the EFD item handlers to release the EFI if the transaction is cancelled or aborts due to log I/O error. Finally, update xfs_bmap_finish() to log at least one EFD extent to the transaction before xfs_free_extent() errors are handled to ensure the transaction is dirty and EFD item error handling is triggered. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_bmap_util.c | 84 +++++++++++++++++++++++++++-------------------- fs/xfs/xfs_extfree_item.c | 69 ++++++++++++++++++++++---------------- fs/xfs/xfs_extfree_item.h | 25 ++++++++++++-- 3 files changed, 111 insertions(+), 67 deletions(-) commit d43ac29be7a174f93a3d26cc1e68668fe86b782f Author: Brian Foster Date: Wed Aug 19 09:50:13 2015 +1000 xfs: return committed status from xfs_trans_roll() Some callers need to make error handling decisions based on whether the current transaction successfully committed or not. Rename xfs_trans_roll(), add a new parameter and provide a wrapper to preserve existing callers. Signed-off-by: Brian Foster Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner fs/xfs/xfs_trans.c | 15 +++++++++++++-- fs/xfs/xfs_trans.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) commit 5e4b5386a2c29429add601c8cfb45bb10d80c490 Author: Brian Foster Date: Wed Aug 19 09:50:12 2015 +1000 xfs: disentagle EFI release from the extent count Release of the EFI either occurs based on the reference count or the extent count. The extent count used is either the count tracked in the EFI or EFD, depending on the particular situation. In either case, the count is initialized to the final value and thus always matches the current efi_next_extent value once the EFI is completely constructed. For example, the EFI extent count is increased as the extents are logged in xfs_bmap_finish() and the full free list is always completely processed. Therefore, the count is guaranteed to be complete once the EFI transaction is committed. The EFD uses the efd_nextents counter to release the EFI. This counter is initialized to the count of the EFI when the EFD is created. Thus the EFD, as currently used, has no concept of partial EFI release based on extent count. Given that the EFI extent count is always released in whole, use of the extent count for reference counting is unnecessary. Remove this level of the API and release the EFI based on the core reference count. The efi_next_extent counter remains because it is still used to track the slot to log the next extent to free. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_extfree_item.c | 21 +++++++++------------ fs/xfs/xfs_extfree_item.h | 1 + fs/xfs/xfs_log_recover.c | 2 +- fs/xfs/xfs_trans.h | 1 - 4 files changed, 11 insertions(+), 14 deletions(-) commit 69d7fde5909b614114343974cfc52cb8ff30b544 Author: Tejun Heo Date: Tue Aug 18 14:55:36 2015 -0700 blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy cgroup is trying to make interface consistent across different controllers. For weight based resource control, the knob should have the range [1, 10000] and default to 100. This patch updates cfq-iosched so that the weight range conforms. The internal calculations have enough range and the widening of the weight range shouldn't cause any problem. * blkcg_policy->cpd_bind_fn() is added. If present, this is invoked when blkcg is attached to a hierarchy. * cfq_cpd_init() is updated to use the new default value on the unified hierarchy. * cfq_cpd_bind() callback is implemented to clear per-blkg configs and apply the default config matching the hierarchy type. * cfqd->root_group->[leaf_]weight initialization in cfq_init_queue() is moved into !CONFIG_CFQ_GROUP_IOSCHED block. cfq_cpd_bind() is now responsible for initializing the initial weights when blkcg is enabled. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe Documentation/cgroups/unified-hierarchy.txt | 2 +- block/blk-cgroup.c | 21 +++++++++++ block/cfq-iosched.c | 55 +++++++++++++++++++++-------- include/linux/blk-cgroup.h | 2 ++ 4 files changed, 64 insertions(+), 16 deletions(-) commit 3ecca62931ee6a30822a1ab7299bc8b8a21e5288 Author: Tejun Heo Date: Tue Aug 18 14:55:35 2015 -0700 blkcg: s/CFQ_WEIGHT_*/CFQ_WEIGHT_LEGACY_*/ blkcg is gonna switch to cgroup common weight range as defined by CGROUP_WEIGHT_* on the unified hierarchy. In preparation, rename CFQ_WEIGHT_* constants to CFQ_WEIGHT_LEGACY_*. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 2ee867dcfa2eaef1063b686da55c35878b2da4a2 Author: Tejun Heo Date: Tue Aug 18 14:55:34 2015 -0700 blkcg: implement interface for the unified hierarchy blkcg interface grew to be the biggest of all controllers and unfortunately most inconsistent too. The interface files are inconsistent with a number of cloes duplicates. Some files have recursive variants while others don't. There's distinction between normal and leaf weights which isn't intuitive and there are a lot of stat knobs which don't make much sense outside of debugging and expose too much implementation details to userland. In the unified hierarchy, everything is always hierarchical and internal nodes can't have tasks rendering the two structural issues twisting the current interface. The interface has to be updated in a significant anyway and this is a good chance to revamp it as a whole. This patch implements blkcg interface for the unified hierarchy. * (from a previous patch) blkcg is identified by "io" instead of "blkio" on the unified hierarchy. Given that the whole interface is updated anyway, the rename shouldn't carry noticeable conversion overhead. * The original interface consisted of 27 files is replaced with the following three files. blkio.stat : per-blkcg stats blkio.weight : per-cgroup and per-cgroup-queue weight settings blkio.max : per-cgroup-queue bps and iops max limits Documentation/cgroups/unified-hierarchy.txt updated accordingly. v2: blkcg_policy->dfl_cftypes wasn't removed on blkcg_policy_unregister() corrupting the cftypes list. Fixed. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe Documentation/cgroups/unified-hierarchy.txt | 61 ++++++++++++++- block/blk-cgroup.c | 53 +++++++++++++ block/blk-throttle.c | 112 ++++++++++++++++++++++++++++ block/cfq-iosched.c | 61 +++++++++++++-- include/linux/blk-cgroup.h | 1 + 5 files changed, 279 insertions(+), 9 deletions(-) commit dd165eb3bb4ef16bcdb75417add40633f38c52b8 Author: Tejun Heo Date: Tue Aug 18 14:55:33 2015 -0700 blkcg: misc preparations for unified hierarchy interface * Export blkg_dev_name() * Drop unnecessary @cft from __cfq_set_weight(). Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-cgroup.c | 3 ++- block/cfq-iosched.c | 8 ++++---- include/linux/blk-cgroup.h | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) commit 69948b070ee2bc3cc253e862cbe2bb09b173d7bd Author: Tejun Heo Date: Tue Aug 18 14:55:32 2015 -0700 blkcg: separate out tg_conf_updated() from tg_set_conf() tg_set_conf() is largely consisted of parsing and setting the new config and the follow-up application and propagation. This patch separates out the latter part into tg_conf_updated(). This will be used to implement interface for the unified hierarchy. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-throttle.c | 60 ++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 28 deletions(-) commit 36aa9e5f591e84d67aad2c5bff75e413d77660dd Author: Tejun Heo Date: Tue Aug 18 14:55:31 2015 -0700 blkcg: move body parsing from blkg_conf_prep() to its callers Currently, blkg_conf_prep() expects input to be of the following form MAJ:MIN NUM and reads the NUM part into blkg_conf_ctx->v. This is quite restrictive and gets in the way in implementing blkcg interface for the unified hierarchy. This patch updates blkg_conf_prep() so that it expects MAJ:MIN BODY_STR where BODY_STR is an arbitrary string. blkg_conf_ctx->v is replaced with ->body which is a char pointer pointing to the start of BODY_STR. Parsing of the body is moved to blkg_conf_prep()'s callers. To allow using, for example, strsep() on blkg_conf_ctx->val, it is a non-const pointer and to accommodate that const is dropped from @input too. This doesn't cause any behavior changes. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-cgroup.c | 22 ++++++++++++++-------- block/blk-throttle.c | 18 ++++++++++++------ block/cfq-iosched.c | 17 +++++++++++------ include/linux/blk-cgroup.h | 4 ++-- 4 files changed, 39 insertions(+), 22 deletions(-) commit 880f50e228f80626dff6327a6e281e40286f5228 Author: Tejun Heo Date: Tue Aug 18 14:55:30 2015 -0700 blkcg: mark existing cftypes as legacy blkcg is about to grow interface for the unified hierarchy. Add legacy to existing cftypes. * blkcg_policy->cftypes -> blkcg_policy->legacy_cftypes * blk-cgroup.c:blkcg_files -> blkcg_legacy_files * cfq-iosched.c:cfq_blkcg_files -> cfq_blkcg_legacy_files * blk-throttle.c:throtl_files -> throtl_legacy_files Pure renames. No functional change. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-cgroup.c | 12 ++++++------ block/blk-throttle.c | 4 ++-- block/cfq-iosched.c | 4 ++-- include/linux/blk-cgroup.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) commit c165b3e3c7bb68c2ed55a5ac2623f030d01d9567 Author: Tejun Heo Date: Tue Aug 18 14:55:29 2015 -0700 blkcg: rename subsystem name from blkio to io blkio interface has become messy over time and is currently the largest. In addition to the inconsistent naming scheme, it has multiple stat files which report more or less the same thing, a number of debug stat files which expose internal details which shouldn't have been part of the public interface in the first place, recursive and non-recursive stats and leaf and non-leaf knobs. Both recursive vs. non-recursive and leaf vs. non-leaf distinctions don't make any sense on the unified hierarchy as only leaf cgroups can contain processes. cgroups is going through a major interface revision with the unified hierarchy involving significant fundamental usage changes and given that a significant portion of the interface doesn't make sense anymore, it's a good time to reorganize the interface. As the first step, this patch renames the external visible subsystem name from "blkio" to "io". This is more concise, matches the other two major subsystem names, "cpu" and "memory", and better suited as blkcg will be involved in anything writeback related too whether an actual block device is involved or not. As the subsystem legacy_name is set to "blkio", the only userland visible change outside the unified hierarchy is that blkcg is reported as "io" instead of "blkio" in the subsystem initialized message during boot. On the unified hierarchy, blkcg now appears as "io". Signed-off-by: Tejun Heo Cc: Li Zefan Cc: Johannes Weiner Cc: cgroups@vger.kernel.org Signed-off-by: Jens Axboe block/bio.c | 2 +- block/blk-cgroup.c | 7 ++++--- include/linux/backing-dev.h | 2 +- include/linux/blk-cgroup.h | 4 ++-- include/linux/cgroup_subsys.h | 2 +- mm/backing-dev.c | 4 ++-- 6 files changed, 11 insertions(+), 10 deletions(-) commit 20386ce0143899ccb5bcbda714436a82d3029f33 Author: Tejun Heo Date: Tue Aug 18 14:55:28 2015 -0700 blkcg: refine error codes returned during blkcg configuration blkcg currently returns -EINVAL for most errors which can be pretty confusing given that the failure modes are quite varied. Update the error returns so that * -EINVAL only for syntactic errors. * -ERANGE if the value is out of range. * -ENODEV if the target device can't be found. * -EOPNOTSUPP if the policy is not enabled on the target device. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-cgroup.c | 12 ++++++------ block/cfq-iosched.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 5332dfc36483d2373d980526145789a354af2d49 Author: Tejun Heo Date: Tue Aug 18 14:55:27 2015 -0700 blkcg: remove unnecessary NULL checks from __cfqg_set_weight_device() blkg_to_cfqg() and blkcg_to_cfqgd() on a valid blkg with the policy enabled are guaranteed to return non-NULL and the counterpart in blk-throttle doesn't have these checks either. Remove the spurious NULL checks. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/cfq-iosched.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 3a7faeada20d72f07d3a7b13454859025cd50a36 Author: Tejun Heo Date: Tue Aug 18 14:55:26 2015 -0700 blkcg: reduce stack usage of blkg_rwstat_recursive_sum() The recent percpu conversion of blkg_rwstat triggered the following warning in certain configurations. block/blk-cgroup.c:654:1: warning: the frame size of 1360 bytes is larger than 1024 bytes This is because blkg_rwstat now contains four percpu_counter which can be pretty big depending on debug options although it shouldn't be a problem in production configs. This patch removes one of the two local blkg_rwstat variables used by blkg_rwstat_recursive_sum() to reduce stack usage. Signed-off-by: Tejun Heo Cc: Vivek Goyal Reported-by: kbuild test robot Link: http://article.gmane.org/gmane.linux.kernel.cgroups/13835 Signed-off-by: Jens Axboe block/blk-cgroup.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 702747cabe737fe9b358739443d539f10cc7c715 Author: Tejun Heo Date: Tue Aug 18 14:55:25 2015 -0700 blkcg: remove cfqg_stats->sectors cfq_stats->sectors is a blkg_stat which keeps track of the total number of sectors serviced; however, this can be trivially calculated from blkcg_gq->stat_bytes. The only thing necessary is adding up READs and WRITEs and then dividing by sector size. Remove cfqg_stats->sectors and make cfq print "sectors" and "sectors_recursive" from stat_bytes. While this is a bit more code, it removes duplicate stat allocations and updates and ensures that the reported stats stay in tune with each other. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/cfq-iosched.c | 55 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 19 deletions(-) commit 77ea733884eb5520f22c36def1309fe2ab61633e Author: Tejun Heo Date: Tue Aug 18 14:55:24 2015 -0700 blkcg: move io_service_bytes and io_serviced stats into blkcg_gq Currently, both cfq-iosched and blk-throttle keep track of io_service_bytes and io_serviced stats. While keeping track of them separately may be useful during development, it doesn't make much sense otherwise. Also, blk-throttle was counting bio's as IOs while cfq-iosched request's, which is more confusing than informative. This patch adds ->stat_bytes and ->stat_ios to blkg (blkcg_gq), removes the counterparts from cfq-iosched and blk-throttle and let them print from the common blkg counters. The common counters are incremented during bio issue in blkcg_bio_issue_check(). The outputs are still filtered by whether the policy has blkg_policy_data on a given blkg, so cfq's output won't show up if it has never been used for a given blkg. The only times when the outputs would differ significantly are when policies are attached on the fly or elevators are switched back and forth. Those are quite exceptional operations and I don't think they warrant keeping separate counters. v3: Update blkio-controller.txt accordingly. v2: Account IOs during bio issues instead of request completions so that bio-based drivers can be handled the same way. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe Documentation/cgroups/blkio-controller.txt | 24 ++------ block/blk-cgroup.c | 98 ++++++++++++++++++++++++++++++ block/blk-throttle.c | 73 ++-------------------- block/cfq-iosched.c | 32 +++------- include/linux/blk-cgroup.h | 14 +++++ 5 files changed, 133 insertions(+), 108 deletions(-) commit f12c74cab1635d67077ce8cc40da88b57980f637 Author: Tejun Heo Date: Tue Aug 18 14:55:23 2015 -0700 blkcg: make blkg_[rw]stat_recursive_sum() to be able to index into blkcg_gq Currently, blkg_[rw]stat_recursive_sum() assume that the target counter is located in pd (blkg_policy_data); however, some counters are planned to be moved to blkg (blkcg_gq). This patch updates blkg_[rw]stat_recursive_sum() to take blkg and blkg_policy pointers instead of pd. If policy is NULL, it indexes into blkg. If non-NULL, into the blkg's pd of the policy. The existing usages are updated to maintain the current behaviors. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 69 ++++++++++++++++++++++++++++------------------ block/cfq-iosched.c | 8 +++--- include/linux/blk-cgroup.h | 7 +++-- 3 files changed, 50 insertions(+), 34 deletions(-) commit 24bdb8ef068ebdc2a57ce715f0ab22d5da32832a Author: Tejun Heo Date: Tue Aug 18 14:55:22 2015 -0700 blkcg: make blkcg_[rw]stat per-cpu blkcg_[rw]stat are used as stat counters for blkcg policies. It isn't per-cpu by itself and blk-throttle makes it per-cpu by wrapping around it. This patch makes blkcg_[rw]stat per-cpu and drop the ad-hoc per-cpu wrapping in blk-throttle. * blkg_[rw]stat->cnt is replaced with cpu_cnt which is struct percpu_counter. This makes syncp unnecessary as remote accesses are handled by percpu_counter itself. * blkg_[rw]stat_init() can now fail due to percpu allocation failure and thus are updated to return int. * percpu_counters need explicit freeing. blkg_[rw]stat_exit() added. * As blkg_rwstat->cpu_cnt[] can't be read directly anymore, reading and summing results are stored in ->aux_cnt[] instead. * Custom per-cpu stat implementation in blk-throttle is removed. This makes all blkcg stat counters per-cpu without complicating policy implmentations. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 10 ++-- block/blk-throttle.c | 89 +++++++++++---------------------- block/cfq-iosched.c | 70 +++++++++++++++++++------- include/linux/blk-cgroup.h | 120 +++++++++++++++++++++++++-------------------- 4 files changed, 153 insertions(+), 136 deletions(-) commit e6269c44546755094979ab53609e6e203a68c8ff Author: Tejun Heo Date: Tue Aug 18 14:55:21 2015 -0700 blkcg: add blkg_[rw]stat->aux_cnt and replace cfq_group->dead_stats with it cgroup stats are local to each cgroup and doesn't propagate to ancestors by default. When recursive stats are necessary, the sum is calculated over all the descendants. This initially was for backward compatibility to support both group-local and recursive stats but this mode of operation makes general sense as stat update is much hotter thafn reporting those stats. This however ends up losing recursive stats when a child is removed. To work around this, cfq-iosched adds its stats to its parent cfq_group->dead_stats which is summed up together when calculating recursive stats. It's planned that the core stats will be moved to blkcg_gq, so we want to move the mechanism for keeping track of the stats of dead children from cfq to blkcg core. This patch adds blkg_[rw]stat->aux_cnt which are atomic64_t's keeping track of auxiliary counts which are excluded when reading local counts but included for recursive. blkg_[rw]stat_merge() which were used by cfq to implement dead_stats are replaced by blkg_[rw]stat_add_aux(), and cfq now forwards stats of a dead cgroup to the aux counts of parent->stats instead of separate ->dead_stats. This will also help making blkg_[rw]stats per-cpu. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 10 ++++--- block/cfq-iosched.c | 67 +++++++++++++--------------------------------- include/linux/blk-cgroup.h | 46 ++++++++++++++++++++++--------- 3 files changed, 57 insertions(+), 66 deletions(-) commit ae11889636111199dbcf47283b4167f578b69472 Author: Tejun Heo Date: Tue Aug 18 14:55:20 2015 -0700 blkcg: consolidate blkg creation in blkcg_bio_issue_check() blkg (blkcg_gq) currently is created by blkcg policies invoking blkg_lookup_create() which ends up repeating about the same code in different policies. Theoretically, this can avoid the overhead of looking and/or creating blkg's if blkcg is enabled but no policy is in use; however, the cost of blkg lookup / creation is very low especially if only the root blkcg is in use which is highly likely if no blkcg policy is in active use - it boils down to a single very predictable conditional and surrounding RCU protection. This patch consolidates blkg creation to a new function blkcg_bio_issue_check() which is called during bio issue from generic_make_request_checks(). blkcg_bio_issue_check() is now the only function which tries to create missing blkg's. The subsequent policy and request_list operations just perform blkg_lookup() and if missing falls back to the root. * blk_get_rl() no longer tries to create blkg. It uses blkg_lookup() instead of blkg_lookup_create(). * blk_throtl_bio() is now called from blkcg_bio_issue_check() with rcu read locked and blkg already looked up. Both throtl_lookup_tg() and throtl_lookup_create_tg() are dropped. * cfq is similarly updated. cfq_lookup_create_cfqg() is replaced with cfq_lookup_cfqg()which uses blkg_lookup(). This consolidates blkg handling and avoids unnecessary blkg creation retries under memory pressure. In addition, this provides a common bio entry point into blkcg where things like common accounting can be performed. v2: Build fixes for !CONFIG_CFQ_GROUP_IOSCHED and !CONFIG_BLK_DEV_THROTTLING. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 2 +- block/blk-core.c | 4 +-- block/blk-throttle.c | 72 ++++------------------------------------------ block/blk.h | 5 ---- block/cfq-iosched.c | 33 +++++++-------------- include/linux/blk-cgroup.h | 40 ++++++++++++++++++++++++-- 6 files changed, 57 insertions(+), 99 deletions(-) commit c9589f03e490956628ff91a1da133216dc796b63 Author: Tejun Heo Date: Tue Aug 18 14:55:19 2015 -0700 blk-throttle: improve queue bypass handling If a queue is bypassing, all blkcg policies should become noops but blk-throttle wasn't. It only became noop if the queue was dying. While this wouldn't lead to an oops as falling back to the root blkg is safe in this case, this can be a bit surprising - a bypassing queue could still be applying throttle limits. Fix it by removing blk_queue_dying() test in throtl_lookup_create_tg() and testing blk_queue_bypass() in blk_throtl_bio() and bypassing before doing anything else. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-throttle.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 85b6bc9db6d5ab6980b43c38b5cbd11d24414ce4 Author: Tejun Heo Date: Tue Aug 18 14:55:18 2015 -0700 blkcg: move root blkg lookup optimization from throtl_lookup_tg() to __blkg_lookup() Currently, both throttle and cfq policies implement their own root blkg (blkcg_gq) lookup fast path. This patch moves root blkg optimization from throtl_lookup_tg() to __blkg_lookup(). cfq-iosched currently doesn't use blkg_lookup() but will be converted and drop the optimization too. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-throttle.c | 7 ------- include/linux/blk-cgroup.h | 3 +++ 2 files changed, 3 insertions(+), 7 deletions(-) commit 24f290466f79a6497f1654f64b9a841872cba3ca Author: Tejun Heo Date: Tue Aug 18 14:55:17 2015 -0700 blkcg: inline [__]blkg_lookup() blkg_lookup() checks whether the target queue is bypassing and, if not, calls __blkg_lookup() which first checks the lookup hint and then performs radix tree walk. The operations upto hint checking are trivial and there are many users of this function. This patch inlines blkg_lookup() and the fast path part of __blkg_lookup(). The radix tree lookup and hint update are now in blkg_lookup_slowpath(). This will help consolidating blkg handling by easing moving root blkcg short-circuit to inlined lookup fast path. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 38 ++--------------------------------- include/linux/blk-cgroup.h | 49 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 47 insertions(+), 40 deletions(-) commit e4a9bde9589fdc51283755cdd75d47b27ca7c6fb Author: Tejun Heo Date: Tue Aug 18 14:55:16 2015 -0700 blkcg: replace blkcg_policy->cpd_size with ->cpd_alloc/free_fn() methods Each active policy has a cpd (blkcg_policy_data) on each blkcg. The cpd's were allocated by blkcg core and each policy could request to allocate extra space at the end by setting blkcg_policy->cpd_size larger than the size of cpd. This is a bit unusual but blkg (blkcg_gq) policy data used to be handled this way too so it made sense to be consistent; however, blkg policy data switched to alloc/free callbacks. This patch makes similar changes to cpd handling. blkcg_policy->cpd_alloc/free_fn() are added to replace ->cpd_size. As cpd allocation is now done from policy side, it can simply allocate a larger area which embeds cpd at the beginning. As ->cpd_alloc_fn() may be able to perform all necessary initializations, this patch makes ->cpd_init_fn() optional. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 39 ++++++++++++++++++++++++--------------- block/cfq-iosched.c | 19 ++++++++++++++++++- include/linux/blk-cgroup.h | 17 ++++++++++------- 3 files changed, 52 insertions(+), 23 deletions(-) commit 814376483e7d85b69a70634633f1f9d01c6ee0cf Author: Tejun Heo Date: Tue Aug 18 14:55:15 2015 -0700 blkcg: minor updates around blkcg_policy_data * Rename blkcg->pd[] to blkcg->cpd[] so that cpd is consistently used for blkcg_policy_data. * Make blkcg_policy->cpd_init_fn() take blkcg_policy_data instead of blkcg. This makes it consistent with blkg_policy_data methods and to-be-added cpd alloc/free methods. * blkcg_policy_data->blkcg and cpd_to_blkcg() added so that cpd_init_fn() can determine the associated blkcg from blkcg_policy_data. v2: blkcg_policy_data->blkcg initializations were missing. Added. Signed-off-by: Tejun Heo Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/blk-cgroup.c | 24 +++++++++++++----------- block/cfq-iosched.c | 11 +++++------ include/linux/blk-cgroup.h | 14 ++++++++++---- 3 files changed, 28 insertions(+), 21 deletions(-) commit a9520cd6f2ac1fbbf206b915946534c6dddbaae2 Author: Tejun Heo Date: Tue Aug 18 14:55:14 2015 -0700 blkcg: make blkcg_policy methods take a pointer to blkcg_policy_data The newly added ->pd_alloc_fn() and ->pd_free_fn() deal with pd (blkg_policy_data) while the older ones use blkg (blkcg_gq). As using blkg doesn't make sense for ->pd_alloc_fn() and after allocation pd can always be mapped to blkg and given that these are policy-specific methods, it makes sense to converge on pd. This patch makes all methods deal with pd instead of blkg. Most conversions are trivial. In blk-cgroup.c, a couple method invocation sites now test whether pd exists instead of policy state for consistency. This shouldn't cause any behavioral differences. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 18 ++++++++---------- block/blk-throttle.c | 13 +++++++------ block/cfq-iosched.c | 14 +++++++------- include/linux/blk-cgroup.h | 8 ++++---- 4 files changed, 26 insertions(+), 27 deletions(-) commit b2ce2643cc705aa9043642d7b6248ccfd8e20629 Author: Tejun Heo Date: Tue Aug 18 14:55:13 2015 -0700 blk-throttle: clean up blkg_policy_data alloc/init/exit/free methods With the recent addition of alloc and free methods, things became messier. This patch reorganizes them according to the followings. * ->pd_alloc_fn() Responsible for allocation and static initializations - the ones which can be done independent of where the pd might be attached. * ->pd_init_fn() Initializations which require the knowledge of where the pd is attached. * ->pd_free_fn() The counter part of pd_alloc_fn(). Static de-init and freeing. This leaves ->pd_exit_fn() without any users. Removed. While at it, collapse an one liner function throtl_pd_exit(), which has only one user, into its user. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 11 --------- block/blk-throttle.c | 57 ++++++++++++++++------------------------------ block/cfq-iosched.c | 15 ++++++++---- include/linux/blk-cgroup.h | 2 -- 4 files changed, 31 insertions(+), 54 deletions(-) commit 4fb72036fbf9c28de7a64b1d3f19b4ce9da1c6bf Author: Tejun Heo Date: Tue Aug 18 14:55:12 2015 -0700 blk-throttle: remove asynchrnous percpu stats allocation mechanism Because percpu allocator couldn't do non-blocking allocations, blk-throttle was forced to implement an ad-hoc asynchronous allocation mechanism for its percpu stats for cases where blkg's (blkcg_gq's) are allocated from an IO path without sleepable context. Now that percpu allocator can handle gfp_mask and blkg_policy_data alloc / free are handled by policy methods, the ad-hoc asynchronous allocation mechanism can be replaced with direct allocation from tg_stats_alloc_fn(). Rit it out. This ensures that an active throtl_grp always has valid non-NULL ->stats_cpu. Remove checks on it. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-throttle.c | 112 ++++++++++++--------------------------------------- 1 file changed, 25 insertions(+), 87 deletions(-) commit 001bea73e70efdf48a9e00188cf302f6b6aed2bf Author: Tejun Heo Date: Tue Aug 18 14:55:11 2015 -0700 blkcg: replace blkcg_policy->pd_size with ->pd_alloc/free_fn() methods A blkg (blkcg_gq) represents the relationship between a cgroup and request_queue. Each active policy has a pd (blkg_policy_data) on each blkg. The pd's were allocated by blkcg core and each policy could request to allocate extra space at the end by setting blkcg_policy->pd_size larger than the size of pd. This is a bit unusual but was done this way mostly to simplify error handling and all the existing use cases could be handled this way; however, this is becoming too restrictive now that percpu memory can be allocated without blocking. This introduces two new mandatory blkcg_policy methods - pd_alloc_fn() and pd_free_fn() - which are used to allocate and release pd for a given policy. As pd allocation is now done from policy side, it can simply allocate a larger area which embeds pd at the beginning. This change makes ->pd_size pointless. Removed. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 21 +++++++++++---------- block/blk-throttle.c | 13 ++++++++++++- block/cfq-iosched.c | 13 ++++++++++++- include/linux/blk-cgroup.h | 18 +++++++++--------- 4 files changed, 44 insertions(+), 21 deletions(-) commit 3e41871046bfe0ba7d122a1f14f0c1db2dca0256 Author: Tejun Heo Date: Tue Aug 18 14:55:10 2015 -0700 blkcg: make blkcg_activate_policy() allow NULL ->pd_init_fn blkg_create() allows NULL ->pd_init_fn() but blkcg_activate_policy() doesn't. As both in-kernel policies implement ->pd_init_fn, it currently doesn't break anything. Update blkcg_activate_policy() so that its behavior is consistent with blkg_create(). Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4c55f4f9ad3001ac1fefdd8d8ca7641d18558e23 Author: Tejun Heo Date: Tue Aug 18 14:55:09 2015 -0700 blkcg: restructure blkg_policy_data allocation in blkcg_activate_policy() When a policy gets activated, it needs to allocate and install its policy data on all existing blkg's (blkcg_gq's). Because blkg iteration is protected by a spinlock, it currently counts the total number of blkg's in the system, allocates the matching number of policy data on a list and installs them during a single iteration. This can be simplified by using speculative GFP_NOWAIT allocations while iterating and falling back to a preallocated policy data on failure. If the preallocated one has already been consumed, it releases the lock, preallocate with GFP_KERNEL and then restarts the iteration. This can be a bit more expensive than before but policy activation is a very cold path and shouldn't matter. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe block/blk-cgroup.c | 55 ++++++++++++++++++---------------------------- include/linux/blk-cgroup.h | 3 --- 2 files changed, 21 insertions(+), 37 deletions(-) commit bc915e61cde25d0b429f536cec9e83039bf23504 Author: Tejun Heo Date: Tue Aug 18 14:55:08 2015 -0700 blkcg: remove unnecessary blkcg_root handling from css_alloc/free paths blkcg_css_alloc() bypasses policy data allocation and blkcg_css_free() bypasses policy data and blkcg freeing for blkcg_root. There's no reason to to treat policy data any differently for blkcg_root. If the root css gets allocated after policies are registered, policy registration path will add policy data; otherwise, the alloc path will. The free path isn't never invoked for root csses. This patch removes the unnecessary special handling of blkcg_root from css_alloc/free paths. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 994b78327458ea14a1743196ee0560c73ace37f3 Author: Tejun Heo Date: Tue Aug 18 14:55:07 2015 -0700 blkcg: use blkg_free() in blkcg_init_queue() failure path When blkcg_init_queue() fails midway after creating a new blkg, it performs kfree() directly; however, this doesn't free the policy data areas. Make it use blkg_free() instead. In turn, blkg_free() is updated to handle root request_list special case. While this fixes a possible memory leak, it's on an unlikely failure path of an already cold path and the size leaked per occurrence is miniscule too. I don't think it needs to be tagged for -stable. Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 401efbf835040dd2ebca54f78d58fc8e3c51f91d Author: Tejun Heo Date: Tue Aug 18 14:55:06 2015 -0700 blkcg: remove unnecessary request_list->blkg NULL test in blk_put_rl() Since ec13b1d6f0a0 ("blkcg: always create the blkcg_gq for the root blkcg"), a request_list always has its blkg associated. Drop unnecessary rl->blkg NULL test from blk_put_rl(). Signed-off-by: Tejun Heo Cc: Vivek Goyal Signed-off-by: Jens Axboe include/linux/blk-cgroup.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 60a837077e2b5672ebbd4c8bd67ca443951bbc92 Author: Tejun Heo Date: Tue Aug 18 14:55:05 2015 -0700 cfq-iosched: charge async IOs to the appropriate blkcg's instead of the root Up until now, all async IOs were queued to async queues which are shared across the whole request_queue, which means that blkcg resource control is completely void on async IOs including all writeback IOs. It was done this way because writeback didn't support writeback and there was no way of telling which writeback IO belonged to which cgroup; however, writeback recently became cgroup aware and writeback bio's are sent down properly tagged with the blkcg's to charge them against. This patch makes async cfq_queues per-cfq_cgroup instead of per-cfq_data so that each async IO is charged to the blkcg that it was tagged for instead of unconditionally attributing it to root. * cfq_data->async_cfqq and ->async_idle_cfqq are moved to cfq_group and alloc / destroy paths are updated accordingly. * cfq_link_cfqq_cfqg() no longer overrides @cfqg to root for async queues. * check_blkcg_changed() now also invalidates async queues as they no longer stay the same across cgroups. After this patch, cfq's proportional IO control through blkio.weight works correctly when cgroup writeback is in use. Signed-off-by: Tejun Heo Reviewed-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 85 ++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 43 deletions(-) commit d4aad7ff04dfd00f2a69356a48054d6be84dda31 Author: Tejun Heo Date: Tue Aug 18 14:55:04 2015 -0700 cfq-iosched: fold cfq_find_alloc_queue() into cfq_get_queue() cfq_find_alloc_queue() checks whether a queue actually needs to be allocated, which is unnecessary as its sole caller, cfq_get_queue(), only calls it if so. Also, the oom queue fallback logic is scattered between cfq_get_queue() and cfq_find_alloc_queue(). There really isn't much going on in the latter and things can be made simpler by folding it into cfq_get_queue(). This patch collapses cfq_find_alloc_queue() into cfq_get_queue(). The change is fairly straight-forward with one exception - async_cfqq is now initialized to NULL and the "!is_sync" test in the last if conditional is replaced with "async_cfqq" test. This is because gcc (5.1.1) gets confused for some reason and warns that async_cfqq may be used uninitialized otherwise. Oh well, the code isn't necessarily worse this way. This patch doesn't cause any functional difference. v2: Updated to reflect GFP_ATOMIC -> GPF_NOWAIT. Signed-off-by: Tejun Heo Reviewed-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 49 +++++++++++++++---------------------------------- 1 file changed, 15 insertions(+), 34 deletions(-) commit 322731ed0dd2d8a7f11307e0444257f48580a0de Author: Tejun Heo Date: Tue Aug 18 14:55:03 2015 -0700 cfq-iosched: move cfq_group determination from cfq_find_alloc_queue() to cfq_get_queue() This is necessary for making async cfq_cgroups per-cfq_group instead of per-cfq_data. While this change makes cfq_get_queue() perform RCU locking and look up cfq_group even when it reuses async queue, the extra overhead is extremely unlikely to be noticeable given that this is already sitting behind cic->cfqq[] cache and the overall cost of cfq operation. Signed-off-by: Tejun Heo Reviewed-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) commit 2da8de0bb799bf2bdfa893e5a1e294eb6bafba62 Author: Tejun Heo Date: Tue Aug 18 14:55:02 2015 -0700 cfq-iosched: remove @gfp_mask from cfq_find_alloc_queue() Even when allocations fail, cfq_find_alloc_queue() always returns a valid cfq_queue by falling back to the oom cfq_queue. As such, there isn't much point in taking @gfp_mask and trying "harder" if __GFP_WAIT is set. GFP_NOWAIT allocations don't fail often and even when they do the degraded behavior is acceptable and temporary. After all, the only reason get_request(), which ultimately determines the gfp_mask, cares about __GFP_WAIT is to guarantee request allocation, assuming IO forward progress, for callers which are willing to wait. There's no reason for cfq_find_alloc_queue() to behave differently on __GFP_WAIT when it already has a fallback mechanism. Remove @gfp_mask from cfq_find_alloc_queue() and propagate the changes to its callers. This simplifies the function quite a bit and will help making async queues per-cfq_group. v2: Updated to reflect GFP_ATOMIC -> GPF_NOWAIT. Signed-off-by: Tejun Heo Reviewed-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 45 ++++++++++----------------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) commit d93a11f1cd890d4ea72f7cef75fac56801b099b3 Author: Tejun Heo Date: Tue Aug 18 14:55:01 2015 -0700 blkcg, cfq-iosched: use GFP_NOWAIT instead of GFP_ATOMIC for non-critical allocations blkcg performs several allocations to track IOs per cgroup and enforce resource control. Most of these allocations are performed lazily on demand in the IO path and thus can't involve reclaim path. Currently, these allocations use GFP_ATOMIC; however, blkcg can gracefully deal with occassional failures of these allocations by punting IOs to the root cgroup and there's no reason to reach into the emergency reserve. This patch replaces GFP_ATOMIC with GFP_NOWAIT for the following allocations. * bdi_writeback_congested and blkcg_gq allocations in blkg_create(). * radix tree node allocations for blkcg->blkg_tree. * cfq_queue allocation on ioprio changes. Signed-off-by: Tejun Heo Suggested-and-Reviewed-by: Jeff Moyer Suggested-by: Vivek Goyal Signed-off-by: Jens Axboe block/blk-cgroup.c | 8 ++++---- block/cfq-iosched.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 563180a44b7d7978f44e9776eedfbbc550c2398d Author: Tejun Heo Date: Tue Aug 18 14:55:00 2015 -0700 cfq-iosched: minor cleanups * Some were accessing cic->cfqq[] directly. Always use cic_to_cfqq() and cic_set_cfqq(). * check_ioprio_changed() doesn't need to verify cfq_get_queue()'s return for NULL. It's always non-NULL. Simplify accordingly. This patch doesn't cause any functional changes. Signed-off-by: Tejun Heo Acked-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) commit bce6133b09013f70d41a678d262a12147ed43889 Author: Tejun Heo Date: Tue Aug 18 14:54:59 2015 -0700 cfq-iosched: fix oom cfq_queue ref leak in cfq_set_request() If the cfq_queue cached in cfq_io_cq is the oom one, cfq_set_request() replaces it by invoking cfq_get_queue() again without putting the oom queue leaking the reference it was holding. While oom queues are not released through reference counting, they're still reference counted and this can theoretically lead to the reference count overflowing and incorrectly invoke the usual release path on it. Fix it by making cfq_set_request() put the ref it was holding. Signed-off-by: Tejun Heo Acked-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 2 ++ 1 file changed, 2 insertions(+) commit 95e5d6f62693f27d9011ec307eb32c6126314ea3 Author: Tejun Heo Date: Tue Aug 18 14:54:58 2015 -0700 cfq-iosched: fix async oom queue handling Async cfqq's (cfq_queue's) are shared across cfq_data. When cfq_get_queue() obtains a new queue from cfq_find_alloc_queue(), it stashes the pointer in cfq_data and reuses it from then on; however, the function doesn't consider that cfq_find_alloc_queue() may return the oom_cfqq under memory pressure and installs the returned queue unconditionally. If the oom_cfqq is installed as an async cfqq, cfq_set_request() will continue calling cfq_get_queue() hoping to replace it with a proper queue; however, cfq_get_queue() will keep returning the cached queue for the slot - the oom_cfqq. Fix it by skipping caching if the queue is the oom one. Signed-off-by: Tejun Heo Acked-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ebc1c61d6185604c97fd0b0355ab668052044ab Author: Tejun Heo Date: Tue Aug 18 14:54:57 2015 -0700 cfq-iosched: simplify control flow in cfq_get_queue() cfq_get_queue()'s control flow looks like the following. async_cfqq = NULL; cfqq = NULL; if (!is_sync) { ... async_cfqq = ...; cfqq = *async_cfqq; } if (!cfqq) cfqq = ...; if (!is_sync && !(*async_cfqq)) ...; The only thing the local variable init, the second if, and the async_cfqq test in the third if achieves is to skip cfqq creation and installation if *async_cfqq was already non-NULL. This is needlessly complicated with different tests examining the same condition. Simplify it to the following. if (!is_sync) { ... async_cfqq = ...; cfqq = *async_cfqq; if (cfqq) goto out; } cfqq = ...; if (!is_sync) ...; out: Signed-off-by: Tejun Heo Acked-by: Jeff Moyer Cc: Vivek Goyal Cc: Arianna Avanzini Signed-off-by: Jens Axboe block/cfq-iosched.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 5634cc2aa9aebc77bc862992e7805469dcf83dac Author: Tejun Heo Date: Tue Aug 18 14:54:56 2015 -0700 writeback: update writeback tracepoints to report cgroup The following tracepoints are updated to report the cgroup used during cgroup writeback. * writeback_write_inode[_start] * writeback_queue * writeback_exec * writeback_start * writeback_written * writeback_wait * writeback_nowork * writeback_wake_background * wbc_writepage * writeback_queue_io * bdi_dirty_ratelimit * balance_dirty_pages * writeback_sb_inodes_requeue * writeback_single_inode[_start] Note that writeback_bdi_register is separated out from writeback_class as reporting cgroup doesn't make sense to it. Tracepoints which take bdi are updated to take bdi_writeback instead. Signed-off-by: Tejun Heo Suggested-by: Jan Kara Reviewed-by: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 14 +-- include/trace/events/writeback.h | 180 ++++++++++++++++++++++++++++++--------- mm/page-writeback.c | 6 +- 3 files changed, 151 insertions(+), 49 deletions(-) commit 9acee9c551f045d2c5b5261aa587331423fd7d92 Author: Tejun Heo Date: Tue Aug 18 14:54:55 2015 -0700 kernfs: implement kernfs_path_len() Add a function to determine the path length of a kernfs node. This for now will be used by writeback tracepoint updates. Signed-off-by: Tejun Heo Acked-by: Greg Kroah-Hartman Signed-off-by: Jens Axboe fs/kernfs/dir.c | 23 +++++++++++++++++++++++ include/linux/kernfs.h | 4 ++++ 2 files changed, 27 insertions(+) commit 60292bcc1b240a6708aa531c8ece1da2a78d560a Author: Tejun Heo Date: Tue Aug 18 14:54:54 2015 -0700 writeback: explain why @inode is allowed to be NULL for inode_congested() Signed-off-by: Tejun Heo Suggested-by: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8a1270cda7b473c8ea71a7a44613465fe0708488 Author: Tejun Heo Date: Tue Aug 18 14:54:53 2015 -0700 writeback: remove wb_writeback_work->single_wait/done wb_writeback_work->single_wait/done are used for the wait mechanism for synchronous wb_work (wb_writeback_work) items which are issued when bdi_split_work_to_wbs() fails to allocate memory for asynchronous wb_work items; however, there's no reason to use a separate wait mechanism for this. bdi_split_work_to_wbs() can simply use on-stack fallback wb_work item and separate wb_completion to wait for it. This patch removes wb_work->single_wait/done and the related code and make bdi_split_work_to_wbs() use on-stack fallback wb_work and wb_completion instead. Signed-off-by: Tejun Heo Suggested-by: Jan Kara Reviewed-by: Jan Kara Signed-off-by: Jens Axboe fs/fs-writeback.c | 116 ++++++++++++++---------------------------------------- 1 file changed, 30 insertions(+), 86 deletions(-) commit 1ed8d48c57bf7400eac7b8dc622ab0413715cafb Author: Tejun Heo Date: Tue Aug 18 14:54:52 2015 -0700 writeback: bdi_for_each_wb() iteration is memcg ID based not blkcg wb's (bdi_writeback's) are currently keyed by memcg ID; however, in an earlier implementation, wb's were keyed by blkcg ID. bdi_for_each_wb() walks bdi->cgwb_tree in the ascending ID order and allows iterations to start from an arbitrary ID which is used to interrupt and resume iterations. Unfortunately, while changing wb to be keyed by memcg ID instead of blkcg, bdi_for_each_wb() was missed and is still assuming that wb's are keyed by blkcg ID. This doesn't affect iterations which don't get interrupted but bdi_split_work_to_wbs() makes use of iteration resuming on allocation failures and thus may incorrectly skip or repeat wb's. Fix it by changing bdi_for_each_wb() to take memcg IDs instead of blkcg IDs and updating bdi_split_work_to_wbs() accordingly. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe fs/fs-writeback.c | 6 +++--- include/linux/backing-dev.h | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) commit 11743ee0477ab9691d08aa121c583184769d2847 Merge: e162b21 3e1d2ee Author: Jens Axboe Date: Tue Aug 18 15:49:11 2015 -0700 Merge branch 'for-4.3-unified-base' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup into for-4.3/blkcg commit 0dad87fcb732691bfd3183acccda6709e1e759ca Author: Markus Elfring Date: Fri Jun 26 18:18:54 2015 +0200 eCryptfs: Delete a check before the function call "key_put" The key_put() function tests whether its argument is NULL and then returns immediately. Thus the test around this call might not be needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Tyler Hicks fs/ecryptfs/crypto.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5556e7e6d30e8e9b5ee51b0e5edd526ee80e5e36 Author: Tyler Hicks Date: Wed Aug 5 11:26:36 2015 -0500 eCryptfs: Invalidate dcache entries when lower i_nlink is zero Consider eCryptfs dcache entries to be stale when the corresponding lower inode's i_nlink count is zero. This solves a problem caused by the lower inode being directly modified, without going through the eCryptfs mount, leaving stale eCryptfs dentries cached and the eCryptfs inode's i_nlink count not being cleared. Signed-off-by: Tyler Hicks Reported-by: Richard Weinberger Cc: stable@vger.kernel.org fs/ecryptfs/dentry.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 3af4e5a95184d6d3c1c6a065f163faa174a96a1d Author: Don Zickus Date: Mon Aug 10 12:06:53 2015 -0400 HID: usbhid: Fix the check for HID_RESET_PENDING in hid_io_error It was reported that after 10-20 reboots, a usb keyboard plugged into a docking station would not work unless it was replugged in. Using usbmon, it turns out the interrupt URBs were streaming with callback errors of -71 for some reason. The hid-core.c::hid_io_error was supposed to retry and then reset, but the reset wasn't really happening. The check for HID_NO_BANDWIDTH was inverted. Fix was simple. Tested by reporter and locally by me by unplugging a keyboard halfway until I could recreate a stream of errors but no disconnect. Signed-off-by: Don Zickus Cc: stable@vger.kernel.org Signed-off-by: Jiri Kosina drivers/hid/usbhid/hid-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff2d92066429d1ba21cea64543264563477ad4da Author: Nicolas Pitre Date: Fri Aug 14 22:46:25 2015 -0400 ARM: add TC2 PM support to multi_v7_defconfig Without this, the multi_v7_defconfig kernel cannot boot all CPUs nor do deep cpuidle power saving on a TC2 board. Signed-off-by: Nicolas Pitre Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 3dc33e23227de8d854a665157cf465303e7cbbce Author: David S. Miller Date: Tue Aug 18 14:24:18 2015 -0700 enic: Fix namespace pollution causing build errors. drivers/net/built-in.o: In function `.vnic_wq_devcmd2_alloc': (.text+0x49fe40): multiple definition of `.vnic_wq_devcmd2_alloc' drivers/scsi/built-in.o:(.text+0xb4318): first defined here drivers/net/built-in.o:(.opd+0x2af00): multiple definition of `vnic_wq_devcmd2_alloc' drivers/scsi/built-in.o:(.opd+0xad70): first defined here drivers/net/built-in.o: In function `.vnic_wq_init_start': (.text+0x49f9c0): multiple definition of `.vnic_wq_init_start' drivers/scsi/built-in.o:(.text+0xb3b58): first defined here drivers/net/built-in.o:(.opd+0x2ae88): multiple definition of `vnic_wq_init_start' drivers/scsi/built-in.o:(.opd+0xace0): first defined here Rename these to 'enic_*' to avoid the conflict with the functiosn of the same name in the snic scsi driver. Reported-by: Stephen Rothwell Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/vnic_dev.c | 4 ++-- drivers/net/ethernet/cisco/enic/vnic_wq.c | 6 +++--- drivers/net/ethernet/cisco/enic/vnic_wq.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) commit f34fa14cc033239037622dbe84faf53923bb7e74 Author: Rajesh Borundia Date: Tue Aug 18 10:22:59 2015 +0300 bnx2x: Add vxlan RSS support Latest FW submission added some vxlan offload capabilities to our device. This patch adds the ability to connect to the vxlan NDOs and configure the UDP port associated with it in the HW. The device would now be capable of performing RSS according to the inner headers of the vxlan packets. Signed-off-by: Rajesh Borundia Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/Kconfig | 10 +++ drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 2 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 109 +++++++++++++++++++++++ 4 files changed, 123 insertions(+) commit bd49784fd1e8f42c7600fbfa206361324857f373 Author: Mikulas Patocka Date: Tue Aug 18 16:26:16 2015 -0400 dm stats: report precise_timestamps and histogram in @stats_list output If the user selected the precise_timestamps or histogram options, report it in the @stats_list message output. If the user didn't select these options, no extra tokens are reported, thus it is backward compatible with old software that doesn't know about precise timestamps and histogram. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer Cc: stable@vger.kernel.org # 4.2 Documentation/device-mapper/statistics.txt | 4 ++++ drivers/md/dm-stats.c | 14 +++++++++++++- include/uapi/linux/dm-ioctl.h | 4 ++-- 3 files changed, 19 insertions(+), 3 deletions(-) commit 3f0bf60f96e3eaecd6920f5910ffcd8685774fb3 Merge: 61ed713 6083ce7 Author: David S. Miller Date: Tue Aug 18 14:17:22 2015 -0700 Merge branch 'dsa-multi-swtich' Andrew Lunn says: ==================== D in DSA patches The D in DSA is distributed, meaning multiple switches can be connected together. Currently no mainline system does this, and so the code is broken. This patchset contains two fixes, and a small helper. With three of more switches, the current device tree binding is not sufficient to express the routing between the switches. The first patch extends the binding, in a backwards compatible way, to allow a link between a switch to describe all the switches accessible over the link, not just the direct neighbor. The third patch fixes the port configuration on newer devices for links connecting switches. ==================== Signed-off-by: David S. Miller commit 6083ce715f09568a8b0996ca15ae31aaa94f081f Author: Andrew Lunn Date: Mon Aug 17 23:52:52 2015 +0200 dsa: mv88e6xxx: Set DSA mode based on chip abilities Older devices only support a single DSA frame format, where as newer devices have two. Take this into account when configuring a DSA port. The port needs to be in plain old DSA mode, since this is a DSA link, where as the newer format can be used for the CPU port. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 60045cbfc0b291dae8dd5b929d67b87c5ea954d4 Author: Andrew Lunn Date: Mon Aug 17 23:52:51 2015 +0200 net: dsa: Add dsa_is_dsa_port() helper Add an inline helper for determining is a port is a DSA port. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 5 ++--- include/net/dsa.h | 5 +++++ 2 files changed, 7 insertions(+), 3 deletions(-) commit 1e72e6f8859a598bfc22cf268c2dafe8ddb9f1b4 Author: Andrew Lunn Date: Mon Aug 17 23:52:50 2015 +0200 net: dsa: Allow multi hop routes to be expressed With more than two switches in a hierarchy, it becomes necessary to describe multi-hop routes between switches. The current binding does not allow this, although the older platform_data did. Extend the link property to be a list rather than a single phandle to a remote switch. It is then possible to express that a port should be used to reach more than one switch and the switch maybe more than one hop away. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/dsa/dsa.txt | 33 +++++++++++++++---- net/dsa/dsa.c | 40 +++++++++++++++++------ 2 files changed, 57 insertions(+), 16 deletions(-) commit 56d1392f2f8b5f5450e3e5f32733c8e44fe95199 Author: Jacob Keller Date: Wed Jun 10 11:44:45 2015 -0700 ixgbe: TRIVIAL fix up double 'the' and comment style Signed-off-by: Jacob Keller Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d147329b0ac66490d9eb331b0a89a79d09d4dfbc Author: Mark Rustad Date: Sat Jun 6 10:41:03 2015 -0700 ixgbe: Simplify port-specific macros Simplify port-specific macros by eliminating explicit comparison with 0. More importantly, enclose formal parameter in parens to eliminate the risk of an operator precedence surprise. Signed-off-by: Mark Rustad Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_type.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit ceee3450b3a85db05a107d54fbea031c77d30401 Author: Todd Fujinaka Date: Fri Aug 7 17:27:39 2015 -0700 igb: make sure SR-IOV init uses the right number of queues Recent changes to igb_probe_vfs() could lead to the PF holding onto all of the queues. Reorder igb_probe_vfs() to be before gb_init_queue_configuration() and add some more error checking. Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit fae5ecaee3e6265c2aec29ac238ccc29c6f11fc3 Author: Stefan Assmann Date: Thu Aug 6 09:32:17 2015 +0200 igbvf: clear buffer_info->dma after dma_unmap_single() The driver doesn't clear buffer_info->dma after calling dma_unmap_single() in all cases. This has been discovered by changing the mtu twice, which caused the following backtrace. [ 68.569280] WARNING: CPU: 2 PID: 1860 at drivers/iommu/intel-iommu.c:3517 intel_unmap+0x20c/0x220() [ 68.579392] Driver unmaps unmatched page at PFN fffc2a40 [ 68.585322] Modules linked in: igbvf ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat kvm_intel kvm igb megs [ 68.599163] CPU: 2 PID: 1860 Comm: ifconfig Not tainted 4.2.0-rc4+ #147 [ 68.606543] Hardware name: IBM -[546025Z]-/00Y7630, BIOS -[VVE134TUS-1.51]- 10/17/2013 [ 68.615473] 0000000000000dbd ffff88046441bb08 ffffffff81a5ad0b ffffffff81e2f9ea [ 68.623775] ffff88046441bb58 ffff88046441bb48 ffffffff81056b55 ffff88047fc583c0 [ 68.632075] 0000000000000000 ffff880469a8e600 00000000fffc2a40 ffff880465b32098 [ 68.640375] Call Trace: [ 68.643109] [] dump_stack+0x48/0x5d [ 68.648844] [] warn_slowpath_common+0x95/0xe0 [ 68.655549] [] warn_slowpath_fmt+0x46/0x70 [ 68.661960] [] ? find_iova+0x54/0x90 [ 68.667791] [] intel_unmap+0x20c/0x220 [ 68.673815] [] intel_unmap_page+0xe/0x10 [ 68.680038] [] igbvf_clean_rx_ring+0x96/0x370 [igbvf] [ 68.687516] [] igbvf_down+0x105/0x110 [igbvf] [ 68.694219] [] igbvf_change_mtu+0x16b/0x180 [igbvf] [...] Signed-off-by: Stefan Assmann Acked-by: Jesse Brandeburg Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igbvf/netdev.c | 1 + 1 file changed, 1 insertion(+) commit 42ad1a03b4caf4d95b980bce17c46242e6728ddc Author: Jia-Ju Bai Date: Wed Aug 5 22:05:16 2015 +0800 igb: Fix a memory leak in igb_probe In error handling code of igb_probe, the memory adapter->shadow_vfta allocated by kcalloc in igb_sw_init is not freed. So when register_netdev or igb_init_i2c is failed, a memory leak will occur. This patch adds kfree to fix it. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 1 + 1 file changed, 1 insertion(+) commit 0845d45e900cad5f7f855a7a6a21c33477800b1f Author: Jia-Ju Bai Date: Wed Aug 5 18:16:10 2015 +0800 e1000e: Modify Tx/Rx configurations to avoid null pointer dereferences in e1000_open When e1000e_setup_rx_resources is failed in e1000_open, e1000e_free_tx_resources in "err_setup_rx" segment is executed. "writel(0, tx_ring->head)" statement in e1000_clean_tx_ring in e1000e_free_tx_resources will cause a null poonter dereference(crash), because "tx_ring->head" is only assigned in e1000_configure_tx in e1000_configure, but it is after e1000e_setup_rx_resources. This patch moves head/tail register writing to e1000_configure_tx/rx, which can fix this problem. It is inspired by igb_configure_tx_ring in the igb driver. Specially, thank Alexander Duyck for his valuable suggestion. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 3eb14ea8d9584e96680729c2c7a9129bafa13a39 Author: Jia-Ju Bai Date: Mon Aug 3 11:36:26 2015 +0800 igb: Fix a deadlock in igb_sriov_reinit When igb_init_interrupt_scheme in igb_sriov_reinit is failed, the lock acquired by rtnl_lock() is not released, which causes a deadlock. This patch adds rtnl_unlock() in error handling to fix it. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 1 + 1 file changed, 1 insertion(+) commit 5e5d49422dfb035ca9e280cd61d434095c151272 Author: Jia-Ju Bai Date: Mon Aug 3 10:40:48 2015 +0800 e100: Release skb when DMA mapping is failed in e100_xmit_prepare When pci_dma_mapping_error in e100_xmit_prepare is failed, the skb buffer allocated by netdev_alloc_skb_ip_align in e100_rx_alloc_skb is not released, which causes a possible resource leak. This patch adds error handling code to fix it. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e100.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 9ad607b4a9cb365fbd8387b1250ec448e497223e Author: Jia-Ju Bai Date: Mon Aug 3 10:17:08 2015 +0800 e100: Add a check after pci_pool_create to avoid null pointer dereference The driver lacks the check of nic->cbs_pool after pci_pool_create in e100_probe. When this function is failed, a null pointer dereference occurs when pci_pool_alloc uses nic->cbs_pool in e100_alloc_cbs. This patch adds a check and related error handling code to fix it. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e100.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c23d92b80e0b44d4c17085f0413e7574a7583615 Author: Alex Williamson Date: Wed Jul 29 14:38:15 2015 -0600 igb: Teardown SR-IOV before unregister_netdev() When the .remove() callback for a PF is called, SR-IOV support for the device is disabled, which requires unbinding and removing the VFs. The VFs may be in-use either by the host kernel or userspace, such as assigned to a VM through vfio-pci. In this latter case, the VFs may be removed either by shutting down the VM or hot-unplugging the devices from the VM. Unfortunately in the case of a Windows 2012 R2 guest, hot-unplug is broken due to the ordering of the PF driver teardown. Disabling SR-IOV prior to unregister_netdev() avoids this issue. Signed-off-by: Alex Williamson Acked-by: Mitch Williams Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 51045ecff09e33dcf4027f4aa6e6a05a840899d3 Author: Todd Fujinaka Date: Wed Jul 29 07:32:06 2015 -0700 igb: add support for 1512 PHY This patch adds support for Marvell PHY 1512 (required for I354). Submitted by: Maciej Szwed Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_82575.c | 20 +++++- drivers/net/ethernet/intel/igb/e1000_defines.h | 5 ++ drivers/net/ethernet/intel/igb/e1000_phy.c | 93 +++++++++++++++++++++++++- drivers/net/ethernet/intel/igb/e1000_phy.h | 1 + 4 files changed, 114 insertions(+), 5 deletions(-) commit 30c72916d71b7970b16dca2bb1234aef2d37b695 Author: Richard Cochran Date: Thu Jul 23 14:59:30 2015 -0700 igb: implement high frequency periodic output signals In addition to interrupt driven target time output events, the i210 also has two programmable clock outputs. These clocks support periods between 16 nanoseconds and 140 milliseconds. This patch implements the periodic output function using the clock outputs when possible, falling back to the target time for longer periods. Signed-off-by: Richard Cochran Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_regs.h | 2 + drivers/net/ethernet/intel/igb/igb_ptp.c | 72 +++++++++++++++++++++-------- 2 files changed, 54 insertions(+), 20 deletions(-) commit 6423fc34160939142d72ffeaa2db6408317f54df Author: Stefan Assmann Date: Fri Jul 10 15:01:12 2015 +0200 igb: do not re-init SR-IOV during probe During driver probing the following code path is triggered. igb_probe ->igb_sw_init ->igb_probe_vfs ->igb_pci_enable_sriov ->igb_sriov_reinit Doing the SR-IOV re-init is not necessary during probing since we're starting from scratch. Here we can call igb_enable_sriov() right away. Running igb_sriov_reinit() during igb_probe() also seems to cause occasional packet loss on some onboard 82576 NICs. Reproduced on Dell and HP servers with onboard 82576 NICs. Example: Intel Corporation 82576 Gigabit Network Connection [8086:10c9] (rev 01) Subsystem: Dell Device [1028:0481] Signed-off-by: Stefan Assmann Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f468adc944ef40f23cacdd898e8cfbb5ba4b75a4 Author: Vasily Averin Date: Tue Jul 7 18:53:45 2015 +0300 igb: missing rtnl_unlock in igb_sriov_reinit() Signed-off-by: Vasily Averin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 1 + 1 file changed, 1 insertion(+) commit 72ddef0506da852dc82f078f37ced8ef4d74a2bf Author: Shota Suzuki Date: Wed Jul 1 09:25:52 2015 +0900 igb: Fix oops caused by missing queue pairing When initializing igb driver (e.g. 82576, I350), IGB_FLAG_QUEUE_PAIRS is set if adapter->rss_queues exceeds half of max_rss_queues in igb_init_queue_configuration(). On the other hand, IGB_FLAG_QUEUE_PAIRS is not set even if the number of queues exceeds half of max_combined in igb_set_channels() when changing the number of queues by "ethtool -L". In this case, if numvecs is larger than MAX_MSIX_ENTRIES (10), the size of adapter->msix_entries[], an overflow can occur in igb_set_interrupt_capability(), which in turn leads to an oops. Fix this problem as follows: - When changing the number of queues by "ethtool -L", set IGB_FLAG_QUEUE_PAIRS in the same way as initializing igb driver. - When increasing the size of q_vector, reallocate it appropriately. (With IGB_FLAG_QUEUE_PAIRS set, the size of q_vector gets larger.) Another possible way to fix this problem is to cap the queues at its initial number, which is the number of the initial online cpus. But this is not the optimal way because we cannot increase queues when another cpu becomes online. Note that before commit cd14ef54d25b ("igb: Change to use statically allocated array for MSIx entries"), this problem did not cause oops but just made the number of queues become 1 because of entering msi_only mode in igb_set_interrupt_capability(). Fixes: 907b7835799f ("igb: Add ethtool support to configure number of channels") CC: stable Signed-off-by: Shota Suzuki Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb.h | 1 + drivers/net/ethernet/intel/igb/igb_ethtool.c | 5 ++++- drivers/net/ethernet/intel/igb/igb_main.c | 16 ++++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) commit 3e1d2eed39d804e48282931835c7203fa47fe1d9 Author: Tejun Heo Date: Tue Aug 18 13:58:16 2015 -0700 cgroup: introduce cgroup_subsys->legacy_name This allows cgroup subsystems to use a different name on the unified hierarchy. cgroup_subsys->name is used on the unified hierarchy, ->legacy_name elsewhere. If ->legacy_name is not explicitly set, it's automatically set to ->name and the userland visible behavior remains unchanged. v2: Make parse_cgroupfs_options() only consider ->legacy_name as mount options are used only on legacy hierarchies. Suggested by Li Zefan. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Johannes Weiner Cc: cgroups@vger.kernel.org include/linux/cgroup-defs.h | 3 +++ kernel/cgroup.c | 29 ++++++++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) commit d98817d4961b9ef75062d1e129829d283b3dac57 Author: Tejun Heo Date: Tue Aug 18 13:58:16 2015 -0700 cgroup: don't print subsystems for the default hierarchy It doesn't make sense to print subsystems on mount option or /proc/PID/cgroup for the default hierarchy. * cgroup.controllers file at the root of the default hierarchy lists the currently attached controllers. * The default hierarchy is catch-all for unmounted subsystems. * The default hierarchy doesn't accept any mount options. Suppress subsystem printing on mount options and /proc/PID/cgroup for the default hierarchy. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Johannes Weiner Cc: cgroups@vger.kernel.org kernel/cgroup.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 62060a3548c5ea038b4ade518cce92be32a6718d Merge: 582271a 8cbd4c2f Author: Olof Johansson Date: Tue Aug 18 13:33:48 2015 -0700 Merge tag 'omap-for-v4.3/dt-pt4-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Fix up bogus RTC compatible change for am4372 and add missing DPLL for am4372 cpsw Ethernet driver. Also add ARM global and local timers for am4372. * tag 'omap-for-v4.3/dt-pt4-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: arm: boot: dts: am4372: add ARM timers and SCU nodes ARM: dts: AM4372: Add the am4372-rtc compatible string ARM: dts: am4372: Set the default clock rate for dpll_clksel_mac_clk clock ARM: dts: AM437X: add dpll_clksel_mac_clk node Signed-off-by: Olof Johansson commit 443d7920a5ea454b4d46839a029fb26fd5a2cdee Merge: 207b504 ed293d1 Author: Olof Johansson Date: Tue Aug 18 13:33:09 2015 -0700 Merge tag 'omap-for-v4.3/soc-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc Fix omap PM regression in Linux next and kill set_irq_flags usage for GPMC. * tag 'omap-for-v4.3/soc-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: memory: kill off set_irq_flags usage ARM: OMAP2+: Fix power domain operations regression caused by 81xx Signed-off-by: Olof Johansson commit 582271a3d0c8eed65d8716cf8dba6fa04e9bfc85 Merge: 3cf6a06 60c0745 Author: Olof Johansson Date: Tue Aug 18 13:31:26 2015 -0700 Merge tag 'renesas-dt4-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Fourth Round of Renesas ARM Based SoC DT Updates for v4.3 * Enable Clock Domain support of the Clock Pulse Generator (CPG) Module Stop (MSTP) Clocks driver. * tag 'renesas-dt4-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7779 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7778 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r7s72100 dtsi: Add CPG/MSTP Clock Domain clk: shmobile: rz: Add CPG/MSTP Clock Domain support clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support clk: shmobile: Add CPG/MSTP Clock Domain support Signed-off-by: Olof Johansson commit a005bc6f69d79574840bdf04350671fb3b2dd8ae Merge: 0bf4135 f04b486 Author: Olof Johansson Date: Tue Aug 18 13:30:18 2015 -0700 Merge tag 'renesas-clk-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/drivers Renesas ARM Based SoC CPG/MSTP Clock Driver Updates for v4.3 * Add Clock Domain support to the Clock Pulse Generator (CPG) Module Stop (MSTP) Clocks driver using the generic PM Domain. * tag 'renesas-clk-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: clk: shmobile: rz: Add CPG/MSTP Clock Domain support clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support clk: shmobile: Add CPG/MSTP Clock Domain support Signed-off-by: Olof Johansson commit d2be537c3ba3568acd79cd178327b842e60d035e Author: Jeff Moyer Date: Thu Aug 13 14:57:57 2015 -0400 block: bump BLK_DEF_MAX_SECTORS to 2560 A value of 2560 (1280k) will accommodate a 10-data-disk stripe write with chunk size 128k. In the testing I've done using iozone, fio, and aio-stress across a number of different storage devices, a value of 1280 does not show a big performance difference from 512, but will hopefully help software RAID setups using SATA disks, as reported by Christoph. NOTE: drivers/block/aoe/aoeblk.c sets its own max_hw_sectors_kb to BLK_DEF_MAX_SECTORS. So, this patch essentially changes aeoblk to Use a larger maximum sector size, and I did not test this. Signed-off-by: Jeff Moyer Signed-off-by: Jens Axboe include/linux/blkdev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30e2bc08b2bb7c069246feee78f7ed4006e130fe Author: Jeff Moyer Date: Thu Aug 13 14:57:56 2015 -0400 Revert "block: remove artifical max_hw_sectors cap" This reverts commit 34b48db66e08ca1c1bc07cf305d672ac940268dc. That commit caused performance regressions for streaming I/O workloads on a number of different storage devices, from SATA disks to external RAID arrays. It also managed to trip up some buggy firmware in at least one drive, causing data corruption. The next patch will bump the default max_sectors_kb value to 1280, which will accommodate a 10-data-disk stripe write with chunk size 128k. In the testing I've done using iozone, fio, and aio-stress, a value of 1280 does not show a big performance difference from 512. This will hopefully still help the software RAID setup that Christoph saw the original performance gains with while still not regressing other storage configurations. Signed-off-by: Jeff Moyer Signed-off-by: Jens Axboe block/blk-settings.c | 4 +++- drivers/block/aoe/aoeblk.c | 2 +- include/linux/blkdev.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) commit 341a670abd1c086d44e09901f0ebee3dd86a60ba Author: Stephen Boyd Date: Tue Aug 11 18:36:51 2015 -0700 ARM64: dts: vexpress: Use assigned-clock-parents for sp810 The sp810 clk driver is calling the clk consumer APIs from clk_prepare ops to change the parent to a 1 MHz fixed rate clock for each of the clocks that the driver provides. Use assigned-clock-parents for this instead of doing it in the driver to avoid using the consumer API in provider code. This also allows us to remove the usage of clk provider APIs that take a struct clk as an argument from the sp810 driver. Cc: Pawel Moll Cc: Linus Walleij Tested-by: Sudeep Holla Signed-off-by: Stephen Boyd Signed-off-by: Olof Johansson arch/arm64/boot/dts/arm/juno-motherboard.dtsi | 2 ++ arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 2 ++ 2 files changed, 4 insertions(+) commit 3cf6a067994fadcb99d841ec3ce6652fd95f91a1 Author: Stephen Boyd Date: Tue Aug 11 18:36:50 2015 -0700 ARM: dts: vexpress: Use assigned-clock-parents for sp810 The sp810 clk driver is calling the clk consumer APIs from clk_prepare ops to change the parent to a 1 MHz fixed rate clock for each of the clocks that the driver provides. Use assigned-clock-parents for this instead of doing it in the driver to avoid using the consumer API in provider code. This also allows us to remove the usage of clk provider APIs that take a struct clk as an argument from the sp810 driver. Cc: Pawel Moll Cc: Linus Walleij Tested-by: Sudeep Holla Signed-off-by: Stephen Boyd Signed-off-by: Olof Johansson arch/arm/boot/dts/vexpress-v2m-rs1.dtsi | 2 ++ arch/arm/boot/dts/vexpress-v2m.dtsi | 2 ++ 2 files changed, 4 insertions(+) commit 5446584eeba48ae357435388fb39f35ee9e5d851 Merge: 80d352d 9559b3a Author: Olof Johansson Date: Tue Aug 18 13:15:57 2015 -0700 Merge tag 'imx-defconfig-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/defconfig The i.MX defconfig updates for 4.3: - Enable i.MX6UL SoC build - Enable powerkey and syscon poweroff support - Build in multi-channel audio support, including i.MX ASRC and CS42xx8 codec drivers. - Enable kexec build, HCIUART_H4 and IKCONFIG_PROC support. * tag 'imx-defconfig-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC ARM: imx: imx_v6_v7_defconfig enable imx6ul support ARM: imx_v6_v7_defconfig: enable powerkey and syscon power off ARM: imx_v6_v7_defconfig: Select HCIUART_H4 ARM: imx_v6_v7_defconfig: build in audio driver ARM: imx_v6_v7_defconfig: Enable kexec support Signed-off-by: Olof Johansson commit b12c0820868f8f65289dda974c54eff2b0290fa7 Merge: e789546 3603257 Author: Olof Johansson Date: Tue Aug 18 13:14:39 2015 -0700 Merge tag 'imx-dt-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt The i.MX device tree updates for 4.3: - Add audio and eTSEC device support and update dspi node for LS1021A. - Add initial i.MX6UL and imx6ul-14x14-evk board support, and enable a bunch of device support for i.MX6UL, including RTC, power key, USB, QSPI, and dual FEC. - Enable HDMI and LVDS dual display support for a few imx6qdl boards. - Support of imx6sl-warp board rev1.12, the version which will be publicly available for the customers. - A few i.MX7D device additions, watchdog, cortex-a7 coresight components, RTC, power key, power off. - Some Vybrid updates: add device support for I2C, QSPI, eSDHC etc., update ADC node, and define stdout-path property. - A few random updates for i.MX27 and i.MX53 devices. * tag 'imx-dt-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (44 commits) ARM: dts: imx6ul: add snvs power key support ARM: dts: imx6ul: add RTC support ARM: dts: imx6ul: enable GPC as extended interrupt controller ARM: dts: imx6sx: correct property name for wakeup source ARM: dts: add property for maximum ADC clock frequencies ARM: dts: imx7d: enable snvs rtc, onoffkey and power off ARM: dts: imx6ul-14x14-evk: add fec1 and fec2 support ARM: dts: imx: add fec1 and fec2 nodes for SOC i.MX6UL ARM: dts: imx27: add support of internal rtc ARM: dts: vf-colibri: define stdout-path property ARM: dts: ls1021a: Enable the eTSEC ports on QDS and TWR ARM: dts: ls1021a: Add the eTSEC controller nodes ARM: dts: imx6ul: add qspi support ARM: dts: imx6ul: fix low case define in imx6ul-pinfunc.h ARM: dts: imx6ul: add usb host and function support ARM: dts: vfxxx: Add io-channel-cells property for ADC node ARM: dts: ls1021a: Add dts nodes for audio on LS1021A ARM: imx6qdl-sabreauto.dtsi: enable USB support ARM: dts: imx: update snvs to use syscon access register ARM: dts: imx: add imx6ul and imx6ul evk board support ... Signed-off-by: Olof Johansson commit 207b504a63b849519cc285c3ddb37411d67beead Merge: f9511a4 8a0fa18 Author: Olof Johansson Date: Tue Aug 18 13:10:05 2015 -0700 Merge tag 'imx-soc-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc The i.MX SoC changes for 4.3: - Add i.MX6 Ultralite SoC support, which is the newest addition to i.MX6 family. It integrates a single Cortex-A7 core and a power management module that reduces the complexity of external power supply and simplifies power sequencing. - Change SNVS RTC driver to use syscon interface for register access, and add SNVS power key driver support. - Add a second clock for mxc rtc driver, and support device tree probe for the driver. - Add FEC MAC reference clock and phy fixup initialization for i.MX6UL platform. * tag 'imx-soc-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: rtc: snvs: select option REGMAP_MMIO ARM: imx6ul: add fec MAC refrence clock and phy fixup init ARM: imx6ul: add fec bits to GPR syscon definition rtc: mxc: add support of device tree dt-binding: document the binding for mxc rtc rtc: mxc: use a second rtc clock input: snvs_pwrkey: use "wakeup-source" as deivce tree property name Document: devicetree: input: imx: i.mx snvs power device tree bindings input: keyboard: imx: add snvs power key driver Document: dt: fsl: snvs: change support syscon rtc: snvs: use syscon to access register ARM: imx: add low-level debug support for i.mx6ul ARM: imx: add i.mx6ul msl support Signed-off-by: Olof Johansson commit 61ed713bbb043f333ca9576c79a3d33d2ad17438 Merge: 0b233dc 348e343 Author: David S. Miller Date: Tue Aug 18 11:55:08 2015 -0700 Merge branch 'drivers_iff_no_queue' Phil Sutter says: ==================== net: Convert drivers to IFF_NO_QUEUE and cleanup afterwards This series converts in-tree users away from the old and deprecated 'tx_queue_len = 0' idiom, adds a warning to notify out-of-tree driver maintainers that there is need for action on their behalf and finally drops any workarounds in scheduling algorithm implementations. ==================== Signed-off-by: David S. Miller commit 348e3435cbefa815bd56a5205c1412b5afe7b92e Author: Phil Sutter Date: Tue Aug 18 10:30:49 2015 +0200 net: sched: drop all special handling of tx_queue_len == 0 Those were all workarounds for the formerly double meaning of tx_queue_len, which broke scheduling algorithms if untreated. Now that all in-tree drivers have been converted away from setting tx_queue_len = 0, it should be safe to drop these workarounds for categorically broken setups. Signed-off-by: Phil Sutter Cc: Jamal Hadi Salim Signed-off-by: David S. Miller net/sched/sch_fifo.c | 2 +- net/sched/sch_gred.c | 8 +++----- net/sched/sch_htb.c | 6 ++---- net/sched/sch_plug.c | 8 ++------ net/sched/sch_sfb.c | 2 +- 5 files changed, 9 insertions(+), 17 deletions(-) commit 906470c19da771e638e7c8e16e16c31995b139cc Author: Phil Sutter Date: Tue Aug 18 10:30:48 2015 +0200 net: warn if drivers set tx_queue_len = 0 Due to the introduction of IFF_NO_QUEUE, there is a better way for drivers to indicate that no qdisc should be attached by default. Though, the old convention can't be dropped since ignoring that setting would break drivers still using it. Instead, add a warning so out-of-tree driver maintainers get a chance to adjust their code before we finally get rid of any special handling of tx_queue_len == 0. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/core/dev.c | 3 +++ 1 file changed, 3 insertions(+) commit 7d9e437d56bea20bef180bd64ad2ad354de4c79b Author: Phil Sutter Date: Tue Aug 18 10:30:47 2015 +0200 staging: wilc1000: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: David S. Miller drivers/staging/wilc1000/linux_mon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4676a15207e3bc5e18b7e39b934ce0e890ee54fe Author: Phil Sutter Date: Tue Aug 18 10:30:46 2015 +0200 net: caif: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Dmitry Tarnyagin Signed-off-by: David S. Miller drivers/net/caif/caif_hsi.c | 2 +- drivers/net/caif/caif_serial.c | 2 +- drivers/net/caif/caif_spi.c | 2 +- drivers/net/wan/hdlc_fr.c | 2 +- net/caif/caif_dev.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) commit 9ad09c5c05f7ce718d135ba8b55f9af733fc9b3f Author: Phil Sutter Date: Tue Aug 18 10:30:45 2015 +0200 net: hsr: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Arvid Brodin Signed-off-by: David S. Miller net/hsr/hsr_device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdf7370391d3a482ef2f2a8c73d16c6db3dbecf0 Author: Phil Sutter Date: Tue Aug 18 10:30:44 2015 +0200 net: batman-adv: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Marek Lindner Cc: Simon Wunderlich Cc: Antonio Quartulli Signed-off-by: David S. Miller net/batman-adv/soft-interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3db6da1f07b4ee3c0657973f504a44d38b5c04a1 Author: Phil Sutter Date: Tue Aug 18 10:30:43 2015 +0200 net: mac80211_hwsim: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Johannes Berg Signed-off-by: David S. Miller drivers/net/wireless/mac80211_hwsim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a9c0a1bb82aef17468f4aff492421c875fff71c Author: Phil Sutter Date: Tue Aug 18 10:30:42 2015 +0200 net: hostap: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Jouni Malinen Signed-off-by: David S. Miller drivers/net/wireless/hostap/hostap_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0a5f107b6774aa9c48ca3e924dccaf1296ef6a43 Author: Phil Sutter Date: Tue Aug 18 10:30:41 2015 +0200 net: dsa: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Lennert Buytenhek Signed-off-by: David S. Miller net/dsa/slave.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bf485bcf0df5dcb01b723efc9d5887329e515aa7 Author: Phil Sutter Date: Tue Aug 18 10:30:40 2015 +0200 net: ipvlan: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Mahesh Bandewar Signed-off-by: David S. Miller drivers/net/ipvlan/ipvlan_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1e6f20ca6c90d06d8d7654009aa99f0eec76ea65 Author: Phil Sutter Date: Tue Aug 18 10:30:39 2015 +0200 net: bonding: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Jay Vosburgh Cc: Veaceslav Falico Cc: Andy Gospodarek Signed-off-by: David S. Miller drivers/net/bonding/bond_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 4afbc0db720555f1bf0dd9f3e112819041231818 Author: Phil Sutter Date: Tue Aug 18 10:30:38 2015 +0200 net: 6lowpan: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Alexander Aring Signed-off-by: David S. Miller net/ieee802154/6lowpan/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccecb2a47ceb0fc59b23b966cd63b5f19315b2a2 Author: Phil Sutter Date: Tue Aug 18 10:30:37 2015 +0200 net: bridge: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Stephen Hemminger Signed-off-by: David S. Miller net/bridge/br_device.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2e659c0551c99c9712724d96acd3d9271587265c Author: Phil Sutter Date: Tue Aug 18 10:30:36 2015 +0200 net: 8021q: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Patrick McHardy Signed-off-by: David S. Miller net/8021q/vlan_dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 22dba393a3eed4878937fa5bf804eb7be8aa70f4 Author: Phil Sutter Date: Tue Aug 18 10:30:35 2015 +0200 net: vxlan: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Stephen Hemminger Signed-off-by: David S. Miller drivers/net/vxlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 22e380a649371dc2182c39f03887aad2576e11cd Author: Phil Sutter Date: Tue Aug 18 10:30:34 2015 +0200 net: team: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Jiri Pirko Signed-off-by: David S. Miller drivers/net/team/team.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 85773a61a310aa5214e8e87d29792803ec5a9eed Author: Phil Sutter Date: Tue Aug 18 10:30:33 2015 +0200 net: nlmon: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: Daniel Borkmann Signed-off-by: David S. Miller drivers/net/nlmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e65db2b724a2758ede002cb995bee1470f805b1a Author: Phil Sutter Date: Tue Aug 18 10:30:32 2015 +0200 net: loopback: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Signed-off-by: David S. Miller drivers/net/loopback.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ed961ac23384826d92ed7f3dd6fe8e007db76145 Author: Phil Sutter Date: Tue Aug 18 10:30:31 2015 +0200 net: geneve: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Cc: John W. Linville Signed-off-by: David S. Miller drivers/net/geneve.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ff42c02c09aa03b6ecd22695e923595244d3ee6d Author: Phil Sutter Date: Tue Aug 18 10:30:30 2015 +0200 net: dummy: convert to using IFF_NO_QUEUE Signed-off-by: Phil Sutter Signed-off-by: David S. Miller drivers/net/dummy.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 02f01ec1c5c697e0f84b9e58bf9a294a3a1b348e Author: Phil Sutter Date: Tue Aug 18 10:30:29 2015 +0200 net: veth: enable noqueue operation by default Signed-off-by: Phil Sutter Cc: Pavel Emelyanov Signed-off-by: David S. Miller drivers/net/veth.c | 1 + 1 file changed, 1 insertion(+) commit 81f03fedcce7ee7e83c37237ecaa2f68aad236fd Author: Jon Derrick Date: Mon Aug 10 15:20:41 2015 -0600 NVMe: Add nvme subsystem reset IOCTL Controllers can perform optional subsystem resets as introduced in NVMe 1.1. This patch adds an IOCTL to trigger the subsystem reset by writing "NVMe" to the NSSR register. Signed-off-by: Jon Derrick Acked-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 11 +++++++++++ include/linux/nvme.h | 2 +- include/uapi/linux/nvme.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) commit dfbac8c7ac5f58448b2216fe42ff52aaf175421d Author: Keith Busch Date: Mon Aug 10 15:20:40 2015 -0600 NVMe: Add nvme subsystem reset support Controllers part of an NVMe subsystem may be reset by any other controller in the subsystem. If the device is capable of subsystem resets, this patch adds detection for such events and performs appropriate controller initialization upon subsystem reset detection. The register bit is a RW1C type, so the driver needs to write a 1 to the status bit to clear the subsystem reset occured bit during initialization. Signed-off-by: Keith Busch Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 11 ++++++++++- include/linux/nvme.h | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) commit ac05fbb40062411ea1b722aa2cede7feaa94f1b4 Author: Josef Bacik Date: Wed Mar 4 16:52:52 2015 -0500 inode: don't softlockup when evicting inodes On a box with a lot of ram (148gb) I can make the box softlockup after running an fs_mark job that creates hundreds of millions of empty files. This is because we never generate enough memory pressure to keep the number of inodes on our unused list low, so when we go to unmount we have to evict ~100 million inodes. This makes one processor a very unhappy person, so add a cond_resched() in dispose_list() and if we need a resched when processing the s_inodes list do that and run dispose_list() on what we've currently culled. Thanks, Signed-off-by: Josef Bacik Reviewed-by: Jan Kara fs/inode.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 44840dec6127e4d7c5074f75d2dd96bc4ab85fe3 Author: David Ward Date: Tue Aug 18 10:36:23 2015 +0200 USB: qcserial: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module This is an HP-branded Sierra Wireless EM7355: https://bugzilla.redhat.com/show_bug.cgi?id=1223646#c2 Signed-off-by: David Ward Cc: stable Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/qcserial.c | 1 + 1 file changed, 1 insertion(+) commit 1fb8dc36384ae1140ee6ccc470de74397606a9d5 Author: Matthijs Kooijman Date: Tue Aug 18 10:33:56 2015 +0200 USB: ftdi_sio: Added custom PID for CustomWare products CustomWare uses the FTDI VID with custom PIDs for their ShipModul MiniPlex products. Signed-off-by: Matthijs Kooijman Cc: stable Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/ftdi_sio.c | 4 ++++ drivers/usb/serial/ftdi_sio_ids.h | 8 ++++++++ 2 files changed, 12 insertions(+) commit d2958d1b8fb0cffa362b187c0375a5aff4fe3825 Author: Johan Hovold Date: Mon Aug 17 17:35:24 2015 +0200 USB: usb_wwan: silence read errors on disconnect Silence read-urb resubmission errors when the device is going away. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/usb_wwan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9257f1daa8befd5c0a343031dd870236550e00c5 Author: Johan Hovold Date: Mon Aug 17 17:35:23 2015 +0200 USB: option: silence interrupt errors Avoid spamming the logs (e.g. with -EPROTO errors) when attempting to resubmit the interrupt urb while a disconnect of an in-use device is being processed. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/option.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ae25a355b5969e12f3185e8cb8eb08b871c9084 Author: Philipp Hachtmann Date: Mon Aug 17 17:31:47 2015 +0200 USB: symbolserial: Correct transferred data size The scanner (here DS3508) always returns 64 bytes per urb buffer. The first byte indicates the data length used in the current buffer. There even was a comment describing this. But the comment also said that we'll send everything in the buffer to the tty layer. That means sending the actual barcode data and lots of trailing zeroes. This patch lets the driver only send the real data. Signed-off-by: Philipp Hachtmann Acked-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/symbolserial.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 951d3793bbfc0a441d791d820183aa3085c83ea9 Author: Philipp Hachtmann Date: Mon Aug 17 17:31:46 2015 +0200 USB: symbolserial: Use usb_get_serial_port_data The driver used usb_get_serial_data(port->serial) which compiled but resulted in a NULL pointer being returned (and subsequently used). I did not go deeper into this but I guess this is a regression. Signed-off-by: Philipp Hachtmann Fixes: a85796ee5149 ("USB: symbolserial: move private-data allocation to port_probe") Cc: stable # v3.10 Acked-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/symbolserial.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a0c9d0defcdadd31ab111b1616f60cf919c6a020 Author: Peter Chen Date: Mon Aug 17 16:36:53 2015 +0800 usb: misc: usbtest: format max packet size for iso transfer The current code prints all wMaxPacketSize content at endpoint descriptor, if there is a high speed, high bandwidth endpoint, it may confuse the users, eg, if there are 3 transactions during microframe, it will print "wMaxPacket 1400" for packet content. This commit splits wMaxpacketSize and transaction numbers for output messages. Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman drivers/usb/misc/usbtest.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 0521cfd06e1ebcd575e7ae36aab068b38df23850 Author: Peter Chen Date: Mon Aug 17 10:23:03 2015 +0800 usb: host: ehci-sys: delete useless bus_to_hcd conversion The ehci platform device's drvdata is the pointer of struct usb_hcd already, so we doesn't need to call bus_to_hcd conversion again. Cc: Signed-off-by: Peter Chen Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-sysfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 475908bc4d29b95b24c03206f673f46b41e7124d Author: Greg Kroah-Hartman Date: Tue Aug 18 09:59:12 2015 -0700 Revert "usb: interface authorization: Declare authorized attribute" This reverts commit 484ebaedecc5ddf778a30ee1efab367cbee27030 as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman include/linux/usb.h | 1 - 1 file changed, 1 deletion(-) commit ae9c02b421139c4c44340b019e250a9969a91613 Author: Alex Smith Date: Fri Jul 24 17:24:27 2015 +0100 dmaengine: jz4780: Kill tasklets before unregistering the device Tasklets may have been scheduled as a result of an earlier interrupt that could still be running. Kill them before unregistering the device. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 6 ++++++ 1 file changed, 6 insertions(+) commit d509a83cea8a64478c7899f28e961543b6569cfc Author: Alex Smith Date: Fri Jul 24 17:24:26 2015 +0100 dmaengine: jz4780: Don't use devm_*_irq() functions We must explicitly free the IRQ before the device is unregistered in case any device interrupt still occurs, so there's no point in using the managed variations of the IRQ functions. Change to the regular versions. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit d3597236fd30d76bef4ba8b4713013006842f117 Author: Alex Smith Date: Fri Jul 24 17:24:25 2015 +0100 dmaengine: jz4780: Remove request type number definitions header The header just includes definitions of hardware-specific numbers which can be written directly in the device tree, there's no need for a public header containing these definitions. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul include/dt-bindings/dma/jz4780-dma.h | 49 ------------------------------------ 1 file changed, 49 deletions(-) commit 026fd406c81b8a2936e77342a255d55534f92061 Author: Alex Smith Date: Fri Jul 24 17:24:24 2015 +0100 dmaengine: jz4780: Ensure channel is on correct controller in filter When scanning for a free DMA channel, the filter function should ensure that the channel is on the controller that it was requested to be on in the DT. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit d3273e10ad871e903456a875e1062514cd13a244 Author: Alex Smith Date: Fri Jul 24 17:24:23 2015 +0100 dmaengine: jz4780: Use dma_get_slave_channel when requesting a specific channel When the DT requests a specific channel to use it is not necesssary to scan through all DMA channels in the system. Just return the requested channel using dma_get_slave_channel(). Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 839896ef3fdacf3a27460b6f6dabc6ac1475a00c Author: Alex Smith Date: Fri Jul 24 17:24:22 2015 +0100 dmaengine: jz4780: Fix error handling/signedness issues There are a some signedness bugs such as testing for < 0 on unsigned return values. Additionally there are some cases where functions which should return NULL on error actually return a PTR_ERR value which can result in oopses on error. Fix these issues. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit dc578f314e2471ca93a4c1f80988ecc781836f72 Author: Alex Smith Date: Fri Jul 24 17:24:21 2015 +0100 dmaengine: jz4780: Fall back on smaller transfer sizes where necessary For some reason the controller does not support 8 byte transfers (but does support all other powers of 2 up to 128). In this case fall back to 4 bytes. In addition, fall back to 128 bytes when any larger power of 2 would be possible within the alignment constraints, as this is the maximum supported. It makes no sense to outright reject 8 or >128 bytes just because the alignment constraints make those the maximum possible size given the parameters for the transaction. For instance, this can result in a DMA from/to an 8 byte aligned address failing. It is perfectly safe to fall back to smaller transfer sizes, the only consequence is reduced transfer efficiency, which is far better than not allowing the transfer at all. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) commit 46fa516869f4b57f9eb63db02c76642abfb9f682 Author: Alex Smith Date: Fri Jul 24 17:24:20 2015 +0100 dmaengine: jz4780: Fix up dmaengine API function prototypes Several function prototypes did not match the dmaengine API they were implementing, resulting in build warnings. Correct these. Signed-off-by: Alex Smith Cc: Vinod Koul Cc: Zubair Lutfullah Kakakhel Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/dma-jz4780.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 12e1a6a0f16168346cb8f33aff135ed523a9f097 Author: Greg Kroah-Hartman Date: Tue Aug 18 09:58:45 2015 -0700 Revert "usb: interface authorization: Introduces the default interface authorization" This reverts commit 1d958bef45030acfc5578263e9de3bb07032b8da as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 47 ---------------------------------------------- drivers/usb/core/message.c | 1 - include/linux/usb/hcd.h | 9 --------- 3 files changed, 57 deletions(-) commit 8c2ea97a3a4124628de2ed9a1f891c706788468a Author: Greg Kroah-Hartman Date: Tue Aug 18 09:58:26 2015 -0700 Revert "usb: interface authorization: Control interface probing and claiming" This reverts commit de7718bd9c4d3db96991a98c2a0cb38258a04e47 as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/driver.c | 8 -------- 1 file changed, 8 deletions(-) commit 5651440e453910f3a1f795e66db5d16291c3ba44 Author: Greg Kroah-Hartman Date: Tue Aug 18 09:58:04 2015 -0700 Revert "usb: interface authorization: Introduces the USB interface authorization" This reverts commit ef0909c50fe63be3f9aa09bdf4db7efaa5919be9 as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/message.c | 38 -------------------------------------- drivers/usb/core/usb.h | 2 -- 2 files changed, 40 deletions(-) commit 4d924d7a81627663720223b5c4330c18d8063fb6 Author: Greg Kroah-Hartman Date: Tue Aug 18 09:57:43 2015 -0700 Revert "usb: interface authorization: SysFS part of USB interface authorization" This reverts commit 187b3d75bbfba45a38b5d1d3656c0f11f6f6f2d0 as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/sysfs.c | 36 ------------------------------------ 1 file changed, 36 deletions(-) commit dba3398381dd1175c74721c97d1daf8fc5939276 Author: Greg Kroah-Hartman Date: Tue Aug 18 09:57:15 2015 -0700 Revert "usb: interface authorization: Documentation part" This reverts commit 6ef2bf71764708f7c58ee9300acd8df05dbaa06f as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-usb | 22 --------------------- Documentation/usb/authorization.txt | 34 --------------------------------- 2 files changed, 56 deletions(-) commit a1b93ab71587b8b44d45d114937cb4e75f9a5f27 Author: Greg Kroah-Hartman Date: Tue Aug 18 09:56:04 2015 -0700 Revert "usb: interface authorization: Use a flag for the default device authorization" This reverts commit 3cf1fc80655d3af7083ea4b3615e5f8532543be7 as the signed-off-by address is invalid. Cc: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 31 ++++++++++--------------------- drivers/usb/core/usb.c | 2 +- include/linux/usb/hcd.h | 16 +++++++--------- 3 files changed, 18 insertions(+), 31 deletions(-) commit 1d15f21dc8030c4511964819b89b50e39d5a7013 Author: Vaishali Thakkar Date: Tue Aug 18 17:26:45 2015 +0530 ASoC: tegra: Revert part of "ASoC: tegra: Convert to managed resources" Revert the problematic part of commit 470805eb9f31 ("ASoC: tegra: Convert to managed resources"). Before this commit, PM cleanup was performed after the component was unregistered. But returning directly will skip PM cleanup. So, to be on safe side it is better to use snd_soc_register_component instead of devm_snd_soc_register_component. Signed-off-by: Vaishali Thakkar Signed-off-by: Mark Brown sound/soc/tegra/tegra20_spdif.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit ac9bd0ef5d3eefe9a21a7df6819937e3aa265203 Author: Yanchang Li Date: Mon Jul 27 05:50:21 2015 +0000 dmaengine: sirf: clear pending DMA interrupt when DMA terminates If DMA interrupt comes and is latched by IRQ controller during the execution of dma_terminate_all(), dma_irq routine will be executed after dma terminated, and it will cause kernel panic. We clear DMA interrupts in dma_terminate_all() to avoid this useless interrupt. Signed-off-by: Yanchang Li Signed-off-by: Barry Song Signed-off-by: Vinod Koul drivers/dma/sirf-dma.c | 3 +++ 1 file changed, 3 insertions(+) commit df48f3ff95c432cc3469e0df67da76ffcf2237af Author: Joachim Eastwood Date: Sat Jul 11 14:12:07 2015 +0200 doc: dt: dma: add bindings for lpc1850-dmamux Add device tree bindings documentation for the lpc1850-dmamux DMA router. Signed-off-by: Joachim Eastwood Signed-off-by: Vinod Koul .../devicetree/bindings/dma/lpc1850-dmamux.txt | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit e5f4ae84be7421010780984bdc121eac15997327 Author: Joachim Eastwood Date: Sat Jul 11 14:12:06 2015 +0200 dmaengine: add driver for lpc18xx dmamux Add support for DMA on NXP LPC18xx/43xx platforms which has a multiplexer in front of the PL080 dma request lines. The mux is a single register in the LPC18xx/43xx CREG block and can multiplex up to 4 request lines to each of the 16 lines on the PL080. Signed-off-by: Joachim Eastwood Signed-off-by: Vinod Koul drivers/dma/Kconfig | 9 +++ drivers/dma/Makefile | 1 + drivers/dma/lpc18xx-dmamux.c | 183 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 193 insertions(+) commit fbd7e41005a4daa676e3f516d07aeff0a81dca2b Author: Linus Walleij Date: Sat Jul 11 14:12:05 2015 +0200 doc: dt: dma: add binding doc for pl08x This introduces device tree bindings for the PL08x DMA controllers when used with fixed signal assignment per channel, i.e. if each channel on the PL08x is assigned precisely one burst/single signal set. [je: remove channel sub-node parsing, use cell value to assign AHB] Signed-off-by: Linus Walleij Signed-off-by: Joachim Eastwood Signed-off-by: Vinod Koul .../devicetree/bindings/dma/arm-pl08x.txt | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) commit aa4734da66744230af1ad2b468dcc7fea53cd637 Author: Linus Walleij Date: Sat Jul 11 14:12:04 2015 +0200 dmaengine: pl08x: support dt channel assignment Add support for assigning DMA channels from a device tree. [je: remove channel sub-node parsing, dynamic channel creation on xlate] Signed-off-by: Linus Walleij Signed-off-by: Joachim Eastwood Signed-off-by: Vinod Koul drivers/dma/amba-pl08x.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 189 insertions(+), 3 deletions(-) commit 4a736d156d6de171f2c8453f5a6911e40e9aab0a Author: Robert Jarzmik Date: Tue Aug 18 08:15:32 2015 +0200 dmaengine: pxa_dma: fix debug information This fixes the following error: drivers/dma/pxa_dma.c: In function ‘dbg_show_requester_chan’: drivers/dma/pxa_dma.c:192:2: error: void value not ignored as it ought to be pos += seq_printf(s, "DMA channel %d requester :\n", phy->idx); ^ drivers/dma/pxa_dma.c:197:8: error: void value not ignored as it ought to be !!(drcmr & DRCMR_MAPVLD)); ^ scripts/Makefile.build:258: recipe for target 'drivers/dma/pxa_dma.o' failed Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit b48362d8aaf32aeb4a75f5c556c652ffeeb1be5d Author: Frederic Weisbecker Date: Tue Aug 18 16:18:29 2015 +0200 hrtimer: Unconfuse switch_hrtimer_base() a bit The variable called "this_base" is confusing because its name suggests it's of "struct hrtimer_clock_base" type, along with "base" and "new_base" which doesn't help understanding this complicated function. Make its name clearer and fix the misleading comment while at it. [ tglx: Fixed the comment for real ] Signed-off-by: Frederic Weisbecker Link: http://lkml.kernel.org/r/1439907509-9553-3-git-send-email-fweisbec@gmail.com Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit 662b3e194656cc713d51d52780fb71f499c46619 Author: Frederic Weisbecker Date: Tue Aug 18 16:18:28 2015 +0200 hrtimer: Simplify get_target_base() by returning current base Instead of fetching again the current cpu base, just take it from the parameter. Signed-off-by: Frederic Weisbecker Link: http://lkml.kernel.org/r/1439907509-9553-2-git-send-email-fweisbec@gmail.com Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 84eac6196c4b3930fc81f9bcd76c4a1a2161fd34 Author: Axel Lin Date: Fri Aug 14 17:58:01 2015 +0800 ASoC: wm8741: Drop misleading readable_reg callback implementation regmap_readable() returns false if map->format.format_write is set. For .reg_bits = 7, .val_bits = 9, setting, map->format.format_write = regmap_format_7_9_write; Even current code has implemented map->readable_reg, regmap_readable() still returns false anyway. Thus drop the misleading readable_reg callback implementation. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8741.c | 21 --------------------- 1 file changed, 21 deletions(-) commit b2b1ec9b55ed0840956db15f823c4a73383c08be Author: Matias Bjørling Date: Tue Aug 18 10:13:41 2015 -0600 NVMe: removed unused nn var from nvme_dev_add The logic in nvme_dev_add to enumerate namespaces was moved to nvme_dev_scan. When moved, the nn variable is no longer used. This patch removes it. Fixes: a5768aai ("NVMe: Automatic namespace rescan") Signed-off-by: Matias Bjørling Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 2 -- 1 file changed, 2 deletions(-) commit 649953b5b89dc308747797810812747333d971cd Author: Jiang Liu Date: Tue Aug 18 23:45:55 2015 +0800 PCI: xilinx: Fix typo in function name There's a typo in commit e39758e0ea76 in linux-next, which incorrectly spells "msi_desc_to_pci_sysdata()" as "msi_desc_to_pci_sys_data()" and causes build failure: > ../drivers/pci/host/pcie-xilinx.c:235:3: error: implicit declaration of function 'msi_desc_to_pci_sys_data' [-Werror=implicit-function-declaration] Fixes: e39758e0ea76 "PCI: Use helper functions to access fields in struct msi_desc" Signed-off-by: Jiang Liu Cc: linux-arm-kernel@lists.infradead.org Cc: Mark Brown Cc: Stephen Rothwell Cc: Bjorn Helgaas Cc: Michal Simek Cc: Sören Brinkmann Cc: Srikanth Thokala Cc: Rob Herring Cc: Yijing Wang Link: http://lkml.kernel.org/r/1439912763-10645-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/pci/host/pcie-xilinx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 84f8bd86cc8977c344df572169f7ec10b8188cfa Author: Mike Snitzer Date: Tue Aug 18 10:31:09 2015 -0400 dm thin: optimize async discard submission __blkdev_issue_discard_async() doesn't need to worry about further splitting because the upper layer blkdev_issue_discard() will have already handled splitting bios such that the bi_size isn't overflowed. Signed-off-by: Mike Snitzer Acked-by: Joe Thornber drivers/md/dm-thin.c | 89 +++++++++------------------------------------------- 1 file changed, 15 insertions(+), 74 deletions(-) commit a6bf49db8c94d194d1c197deba2935468026ec89 Merge: 74f4e0c ecc7c51 Author: Kalle Valo Date: Tue Aug 18 17:20:11 2015 +0300 Merge tag 'iwlwifi-next-for-kalle-2015-08-18' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * polish the Miracast operation * fix a few power consumption issues * scan cleanup * fixes for D0i3 system state * add paging for devices that support it * add again the new RBD allocation model * add more options to the firmware debug system * add support for frag SKBs in Tx commit d1c48038b849e9df0475621a52193a62424a4e87 Author: Andrew Duggan Date: Thu Jul 30 14:49:00 2015 -0700 HID: i2c-hid: Only disable irq wake if it was successfully enabled during suspend Enabling irq wake could potentially fail and calling disable_irq_wake after a failed call to enable_irq_wake could result in an unbalanced irq warning. This patch warns if enable_irq_wake fails and avoids other potential issues caused by calling disable_irq_wake on resume after enable_irq_wake failed during suspend. Signed-off-by: Andrew Duggan Signed-off-by: Jiri Kosina drivers/hid/i2c-hid/i2c-hid.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 76703be827a7867c28b904562bc78ed1314698bc Author: Jason Gerecke Date: Mon Aug 17 17:41:53 2015 -0700 HID: wacom: Use tablet-provided touch height/width values for INTUOSHT The current generation of "Intuos" tablets (i.e. INTUOSHT) report touch width and height data just like the "Intuos Pro" do. This commit changes the code to allow these tablets to use the appropriate codepath instead of the one intended for Intuos5/Bamboo. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 931830aa5c251e0803523213428f777a48bde254 Author: Benjamin Tissoires Date: Thu Aug 13 11:11:27 2015 -0400 HID: gembird: add new driver to fix Gembird JPD-DualForce 2 This gamepad advertise 5 absolute axis while 4 are actually used. The second Z axis shows some garbage, so it has to be ignored by HID. The first Z axis and the Rz one are actually Rx and Ry. Remap them. We could also just remap and ignore the axis in .input_mapping(). I went ahead with .report_fixup() first, so here it is. Reported-by: Orivej Desh Tested-by: Orivej Desh Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/Kconfig | 6 +++ drivers/hid/Makefile | 1 + drivers/hid/hid-core.c | 1 + drivers/hid/hid-gembird.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/hid/hid-ids.h | 3 ++ 5 files changed, 127 insertions(+) commit 96231b2686b53f71838a335bdc404cb5285d1a01 Author: Marek Szyprowski Date: Tue Aug 18 09:14:15 2015 +0100 ARM: 8419/1: dma-mapping: harmonize definition of DMA_ERROR_CODE All architectures except arm that define DMA_ERROR_CODE are casting it to (dma_addr_t) - as it is always compared to dma_addr_t in arm as well this could be harmonized. Signed-off-by: Nicholas Mc Guire Acked-by: Marek Szyprowski Signed-off-by: Russell King arch/arm/include/asm/dma-mapping.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8901925d32232adb57ba1b4c26d0c0f9d521a78c Author: Masahiro Yamada Date: Mon Aug 17 03:59:52 2015 +0100 ARM: 8417/1: refactor bitops functions with BIT_MASK() and BIT_WORD() Use BIT_MASK() and BIT_WORD() rather than hard-coding the size of the "long" type. Signed-off-by: Masahiro Yamada Signed-off-by: Russell King arch/arm/include/asm/bitops.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit da4f295b4aeca0bca4ab406e70fb7087f93ede39 Author: Masahiro Yamada Date: Mon Aug 17 03:45:35 2015 +0100 ARM: 8416/1: Feroceon: use of_iomap() to map register base The chain of of_address_to_resource() and ioremap() can be replaced with of_iomap(). Signed-off-by: Masahiro Yamada Acked-by: Olof Johansson Signed-off-by: Russell King arch/arm/mm/cache-feroceon-l2.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit a5f4c561b3b19a9bc43a81da6382b0098ebbc1fb Author: Stefan Agner Date: Thu Aug 13 00:01:52 2015 +0100 ARM: 8415/1: early fixmap support for earlycon Add early fixmap support, initially to support permanent, fixed mapping support for early console. A temporary, early pte is created which is migrated to a permanent mapping in paging_init. This is also needed since the attributes may change as the memory types are initialized. The 3MiB range of fixmap spans two pte tables, but currently only one pte is created for early fixmap support. Re-add FIX_KMAP_BEGIN to the index calculation in highmem.c since the index for kmap does not start at zero anymore. This reverts 4221e2e6b316 ("ARM: 8031/1: fixmap: remove FIX_KMAP_BEGIN and FIX_KMAP_END") to some extent. Cc: Mark Salter Cc: Kees Cook Cc: Laura Abbott Cc: Arnd Bergmann Cc: Ard Biesheuvel Signed-off-by: Rob Herring Signed-off-by: Stefan Agner Signed-off-by: Russell King arch/arm/Kconfig | 3 ++ arch/arm/include/asm/fixmap.h | 15 +++++++- arch/arm/kernel/setup.c | 4 ++ arch/arm/mm/highmem.c | 6 +-- arch/arm/mm/mmu.c | 88 +++++++++++++++++++++++++++++++++++++++---- 5 files changed, 105 insertions(+), 11 deletions(-) commit 6dc2e1bf8e0025db2ff8a35ee3e0bd88203d4402 Author: Vladimir Zapolskiy Date: Mon May 18 15:32:20 2015 +0300 drm: bridge/dw_hdmi: fix register I2CM_ADDRESS register name I2CM_ADDRESS became a MESS, fix it, also change guarding define to __DW_HDMI_H__ , since the driver is not IMX specific. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b872a8e16b3fb17c3fe1e97f4ed0803f4a740aae Author: Russell King Date: Fri Jun 5 12:22:46 2015 +0100 drm: bridge/dw_hdmi: fix phy enable/disable handling The dw_hdmi enable/disable handling is particularly weak in several regards: * The hotplug interrupt could call hdmi_poweron() or hdmi_poweroff() while DRM is setting a mode, which could race with a mode being set. * Hotplug will always re-enable the phy whenever it detects an active hotplug signal, even if DRM has disabled the output. Resolve all of these by introducing a mutex to prevent races, and a state-tracking bool so we know whether DRM wishes the output to be enabled. We choose to use our own mutex rather than ->struct_mutex so that we can still process interrupts in a timely fashion. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) commit 2fada109cfb7dbfd52f472140d6477a27a1f0d6d Author: Russell King Date: Tue Jul 28 12:21:34 2015 +0100 drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power() dw_hdmi_phy_enable_power() is not about enabling and disabling power. It is about allowing or preventing power-down mode being entered - the register is documented as "Power-down enable (active low 0b)." This can be seen as the bit has no effect when the HDMI phy is operational on iMX6 hardware. Rename the function to dw_hdmi_phy_enable_powerdown() to reflect the documentation, make it take a bool for the 'enable' argument, and invert the value to be written. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 552e67859c3ae9277ed26d5393d733207d129dae Author: Russell King Date: Sat Jun 6 11:04:00 2015 +0100 drm: bridge/dw_hdmi: avoid enabling interface in mode_set On a mode set, DRM makes the following sequence of calls: * for_each_encoder * bridge mode_fixup * encoder mode_fixup * crtc mode_fixup * for_each_encoder * bridge disable * encoder prepare * bridge post_disable * disable unused encoders * crtc prepare * crtc mode_set * for_each_encoder * encoder mode_set * bridge mode_set * crtc commit * for_each_encoder * bridge pre_enable * encoder commit * bridge enable dw_hdmi enables the HDMI output in both the bridge mode_set() and also the bridge enable() step. This is duplicated work - we can avoid the setup in mode_set() and just do it in the enable() stage. This simplifies the code a little. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 2 -- 1 file changed, 2 deletions(-) commit f709ec07e38a714f8a959f28b3e0388cfb1b2540 Author: Russell King Date: Tue Jul 21 16:09:39 2015 +0100 drm: bridge/dw_hdmi: enable audio only if sink supports audio Only enable audio support if the sink supports audio in some form, as defined via its EDID. We discover this capability using the generic drm_detect_monitor_audio() function. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 05b1342f5014b7c100834ae179dd90d1a1da7366 Author: Russell King Date: Tue Jul 21 15:35:52 2015 +0100 drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling The FSL kernel detects the HDMI vendor id, and uses this to set hdmi->edid_cfg.hdmi_cap, which is then used to set mdvi appropriately, rather than detecting whether we are outputting a CEA mode. Update the dw_hdmi code to use this logic, but lets eliminate the mdvi variable, prefering the more verbose "hdmi->sink_is_hdmi" instead. Use the generic drm_detect_hdmi_monitor() to detect a HDMI sink. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit 8add41900e2177b20c28b64d13d8da8088c9606b Author: Russell King Date: Wed Jul 22 11:14:00 2015 +0100 drm: bridge/dw_hdmi: don't support any pixel doubled modes As mentioned in the previous commit, the dw-hdmi driver does not support pixel doubled modes at present; it does not configure the PLL correctly for these modes. Therefore, filter out the double-clocked modes as we presently are unable to support them. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 4 ++++ 1 file changed, 4 insertions(+) commit d10ca826b71b4c1c3ecab846528881aa0cf24266 Author: Russell King Date: Tue Jul 21 11:25:00 2015 +0100 drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs dw_hdmi sets a pixel repetition factor of 1 for VICs 10-15, 25-30 and 35-38. However, DRM uses their native resolutions in its timing information. For example, VIC 14 can be 1440x480 with no repetition, or 720x480 with one pixel repetition. As DRM uses 1440 pixels per line for this video mode, we need no pixel repetition. In any case, pixel repetition appears broken in dw_hdmi. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit b90120a9660884b8f11bbb9904fbaa4c12d17e0a Author: Russell King Date: Fri Mar 27 12:59:58 2015 +0000 drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio iMX6 devices suffer from an errata (ERR005174) where the audio FIFO can be emptied while it is partially full, resulting in misalignment of the audio samples. To prevent this, the errata workaround recommends writing N as zero until the audio FIFO has been loaded by DMA. Writing N=0 prevents the HDMI bridge from reading from the audio FIFO, effectively disabling audio. This means we need to provide the audio driver with a pair of functions to enable/disable audio. These are dw_hdmi_audio_enable() and dw_hdmi_audio_disable(). A spinlock is introduced to ensure that setting the CTS/N values can't race, ensuring that the audio driver calling the enable/disable functions (which are called in an atomic context) can't race with a modeset. Tested-by: Yakir Yang Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 34 +++++++++++++++++++++++++++++++++- include/drm/bridge/dw_hdmi.h | 2 ++ 2 files changed, 35 insertions(+), 1 deletion(-) commit b5814fff27c6d0212b86306bdd01fe3aea99cabb Author: Russell King Date: Fri Mar 27 12:50:58 2015 +0000 drm: bridge/dw_hdmi: introduce interface to setting sample rate Introduce dw_hdmi_set_sample_rate(), which allows us to configure the audio sample rate, setting the CTS/N values appropriately. Tested-by: Yakir Yang Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 10 ++++++++++ include/drm/bridge/dw_hdmi.h | 5 +++++ 2 files changed, 15 insertions(+) commit b91eee8cd8a547e43e271e5908e16c4a53c9416d Author: Russell King Date: Fri Mar 27 23:27:17 2015 +0000 drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced Remove the struct hdmi_vmode mhsyncpolarity/mvsyncpolarity/minterlaced members, which are only used within a single function. We can directly reference the appropriate mode->flags instead. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 4b9bcaa7f18ef7c599963464d282bc769997f83b Author: Russell King Date: Sat Jun 6 00:12:41 2015 +0100 drm: bridge/dw_hdmi: use our own drm_device Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a1b9f2ae213dd085bbe3c9fa68c5c4af5db9c77b Author: Russell King Date: Fri Jun 5 12:18:09 2015 +0100 drm: bridge/dw_hdmi: remove unused 'regmap' struct member This driver does not make use of regmaps, let's remove this unnecessary structure member. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 1 - 1 file changed, 1 deletion(-) commit d083c312cba2735566af9598cb281ea2ae6b729a Author: Russell King Date: Fri Mar 27 23:14:16 2015 +0000 drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little When a YCBCR format is selected, we can merely copy the colorimetry information directly as we use the same definitions for both the unpacked AVI info frame and the hdmi_data_info structure. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit d4ac4cb69e79e3175329e03262354beef6aab38b Author: Russell King Date: Fri Mar 27 20:06:50 2015 +0000 drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode() Use drm_hdmi_avi_infoframe_from_display_mode() to compose the AVI frame. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 126 +++++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 59 deletions(-) commit f879b38f9155e85dc30a2e1e7d18b06251a7f9f8 Author: Russell King Date: Fri Mar 27 12:53:29 2015 +0000 drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator() Clean up hdmi_set_clk_regenerator() by allowing it to take the audio sample rate and ratio directly, rather than hiding it inside the function. Raise the unsupported pixel clock/sample rate message from debug to error level as this results in audio not working correctly. Tested-by: Yakir Yang Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) commit 39cc1535fe1e401c523065f7b219ac1cd76e4a7d Author: Russell King Date: Tue Mar 31 18:34:11 2015 +0100 drm: bridge/dw_hdmi: clean up phy configuration The phy configuration is dependent on the SoC, and we look up values for some of the registers in SoC specific data. However, we had partially programmed the phy before we had successfully looked up the clock rate. Also, we were only checking that we had a valid configuration for the currctrl register. Move all these lookups to the start of this function instead, so we can check that all lookups were successful before beginning to program the phy. Tested-by: Yakir Yang Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 68 +++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 33 deletions(-) commit 36b8ae0d608696cb8b48639813ec22be99c4a8e6 Author: Russell King Date: Tue Mar 31 18:23:16 2015 +0100 drm: imx/dw_hdmi: move phy comments The phy comments in dw_hdmi.c applied to the iMX6 version. Move these comments to the iMX6 dw_hdmi-imx data along side the data. Signed-off-by: Russell King drivers/gpu/drm/bridge/dw_hdmi.c | 3 --- drivers/gpu/drm/imx/dw_hdmi-imx.c | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) commit 627563d1696b8978b550ed192acc1bc8fc461da5 Author: Russell King Date: Sat Mar 28 18:13:52 2015 +0000 drm/edid: add function to help find SADs Add a function to find the start of the SADs in the ELD. This complements the helper to retrieve the SAD count. Signed-off-by: Russell King include/drm/drm_edid.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit d9232a3da8683cd9c9854a858bcca968fe5f3bca Author: Ian Munsie Date: Thu Jul 23 16:43:56 2015 +1000 cxl: Add alternate MMIO error handling userspace programs using cxl currently have to use two strategies for dealing with MMIO errors simultaneously. They have to check every read for a return of all Fs in case the adapter has gone away and the kernel has not yet noticed, and they have to deal with SIGBUS in case the kernel has already noticed, invalidated the mapping and marked the context as failed. In order to simplify things, this patch adds an alternative approach where the kernel will return a page filled with Fs instead of delivering a SIGBUS. This allows userspace to only need to deal with one of these two error paths, and is intended for use in libraries that use cxl transparently and may not be able to safely install a signal handler. This approach will only work if certain constraints are met. Namely, if the application is both reading and writing to an address in the problem state area it cannot assume that a non-FF read is OK, as it may just be reading out a value it has previously written. Further - since only one page is used per context a write to a given offset would be visible when reading the same offset from a different page in the mapping (this only applies within a single context, not between contexts). An application could deal with this by e.g. making sure it also reads from a read-only offset after any reads to a read/write offset. Due to these constraints, this functionality must be explicitly requested by userspace when starting the context by passing in the CXL_START_WORK_ERR_FF flag. Signed-off-by: Ian Munsie Acked-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 14 ++++++++++++++ drivers/misc/cxl/cxl.h | 4 +++- drivers/misc/cxl/file.c | 4 +++- include/uapi/misc/cxl.h | 4 +++- 4 files changed, 23 insertions(+), 3 deletions(-) commit fc9e9cbf4e48f28525edd27e285820988f1a54b1 Author: Andrzej Hajda Date: Fri Aug 7 09:59:11 2015 +0200 powerpc/nvram: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Reviewed-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/kernel/nvram_64.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2e16acc5ee3626bcd32e2252c8260b65efde7b36 Author: Andrzej Hajda Date: Fri Aug 7 09:59:12 2015 +0200 powerpc/pseries: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Reviewed-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/platforms/pseries/hotplug-memory.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 39bfd715b4837433a86c168c610880e9ae2185ae Author: Gavin Shan Date: Thu Jul 30 09:26:51 2015 +1000 powerpc/eeh: Disable automatically blocked PCI config pcibios_set_pcie_reset_state() could be called to complete reset request when passing through PCI device, flag EEH_PE_ISOLATED is set before saving the PCI config sapce. On some Broadcom adapters, EEH_PE_CFG_BLOCKED is automatically set when the flag EEH_PE_ISOLATED is marked. It caused bogus data saved from the PCI config space, which will be restored to the PCI adapter after the reset. Eventually, the hardware can't work with corrupted data in PCI config space. The patch fixes the issue with eeh_pe_state_mark_no_cfg(), which doesn't set EEH_PE_CFG_BLOCKED when seeing EEH_PE_ISOLATED on the PE, in order to avoid the bogus data saved and restored to the PCI config space. Reported-by: Rajanikanth H. Adaveeshaiah Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/asm/ppc-pci.h | 1 + arch/powerpc/kernel/eeh.c | 4 ++-- arch/powerpc/kernel/eeh_pe.c | 22 ++++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) commit dd497154d359ba9d2d3e71075bed794b93b47b48 Author: Gavin Shan Date: Tue Aug 18 10:57:40 2015 +1000 powerpc: Export include/uapi/asm/eeh.h This adds include/uapi/asm/eeh.h to kbuild so that the header file will be exported automatically with below command. The header file was added by commit ed3e81ff2016 ("powerpc/eeh: Move PE state constants around") make INSTALL_HDR_PATH=/tmp/headers \ SRCARCH=powerpc headers_install Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/include/uapi/asm/Kbuild | 1 + 1 file changed, 1 insertion(+) commit e0ad784b65a64a617179598addb417d49dd4e08f Author: Vaibhav Jain Date: Fri Jul 3 10:41:20 2015 +0530 powerpc/pseries: enable RTC class support A working rtc kernel driver is needed so that hwclock can synchronize system clock to rtc during shutdown/boot. We already have a powernv platform rtc driver located at drivers/rtc/rtc-opal.c. However it depends on CONFIG_RTC_CLASS which is disabled by default. Hence the driver isn't enabled and not compiled for the powernv kernel. We fix this by enabling rtc class support in pseries defconfig which enables this driver and compiles it into the pseries kernel. In case CONFIG_PPC_POWERNV is not enabled we fallback to 'Generic RTC support' driver which emulates the legacy 'PC RTC driver'. Signed-off-by: Vaibhav Jain Signed-off-by: Michael Ellerman arch/powerpc/configs/pseries_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1d805440a364b4a68562e70119d8f94456698e55 Author: Nikunj A Dadhania Date: Thu Jul 2 11:09:01 2015 +0530 powerpc/numa: initialize distance lookup table from drconf path In some situations, a NUMA guest that supports ibm,dynamic-memory-reconfiguration node will end up having flat NUMA distances between nodes. This is because of two problems in the current code. 1) Different representations of associativity lists. There is an assumption about the associativity list in initialize_distance_lookup_table(). Associativity list has two forms: a) [cpu,memory]@x/ibm,associativity has following format: b) ibm,dynamic-reconfiguration-memory/ibm,associativity-lookup-arrays M = the number of associativity lists N = the number of entries per associativity list Fix initialize_distance_lookup_table() so that it does not assume "case a". And update the caller to skip the length field before sending the associativity list. 2) Distance table not getting updated from drconf path. Node distance table will not get initialized in certain cases as ibm,dynamic-reconfiguration-memory path does not initialize the lookup table. Call initialize_distance_lookup_table() from drconf path with appropriate associativity list. Reported-by: Bharata B Rao Signed-off-by: Nikunj A Dadhania Acked-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/mm/numa.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 53522982fc3c254bb4444c336cb005c8636930c8 Author: Andrew Donnellan Date: Fri Aug 7 13:45:54 2015 +1000 powerpc/powernv: move dma_get_required_mask from pnv_phb to pci_controller_ops Simplify the dma_get_required_mask call chain by moving it from pnv_phb to pci_controller_ops, similar to commit 763d2d8df1ee ("powerpc/powernv: Move dma_set_mask from pnv_phb to pci_controller_ops"). Previous call chain: 0) call dma_get_required_mask() (kernel/dma.c) 1) call ppc_md.dma_get_required_mask, if it exists. On powernv, that points to pnv_dma_get_required_mask() (platforms/powernv/setup.c) 2) device is PCI, therefore call pnv_pci_dma_get_required_mask() (platforms/powernv/pci.c) 3) call phb->dma_get_required_mask if it exists 4) it only exists in the ioda case, where it points to pnv_pci_ioda_dma_get_required_mask() (platforms/powernv/pci-ioda.c) New call chain: 0) call dma_get_required_mask() (kernel/dma.c) 1) device is PCI, therefore call pci_controller_ops.dma_get_required_mask if it exists 2) in the ioda case, that points to pnv_pci_ioda_dma_get_required_mask() (platforms/powernv/pci-ioda.c) In the p5ioc2 case, the call chain remains the same - dma_get_required_mask() does not find either a ppc_md call or pci_controller_ops call, so it calls __dma_get_required_mask(). Signed-off-by: Andrew Donnellan Reviewed-by: Daniel Axtens Signed-off-by: Michael Ellerman arch/powerpc/include/asm/pci-bridge.h | 1 + arch/powerpc/kernel/dma.c | 7 +++++++ arch/powerpc/platforms/powernv/pci-ioda.c | 7 ++++--- arch/powerpc/platforms/powernv/pci.c | 11 ----------- arch/powerpc/platforms/powernv/pci.h | 2 -- arch/powerpc/platforms/powernv/powernv.h | 6 ------ arch/powerpc/platforms/powernv/setup.c | 9 --------- 7 files changed, 12 insertions(+), 31 deletions(-) commit 73b341efda6664afbb0b6884eae60f04208b4128 Author: Michael Ellerman Date: Fri Aug 7 16:19:47 2015 +1000 powerpc/mm: Drop CONFIG_PPC_HAS_HASH_64K The relation between CONFIG_PPC_HAS_HASH_64K and CONFIG_PPC_64K_PAGES is painfully complicated. But if we rearrange it enough we can see that PPC_HAS_HASH_64K essentially depends on PPC_STD_MMU_64 && PPC_64K_PAGES. We can then notice that PPC_HAS_HASH_64K is used in files that are only built for PPC_STD_MMU_64, meaning it's equivalent to PPC_64K_PAGES. So replace all uses and drop it. Signed-off-by: Michael Ellerman Reviewed-by: Aneesh Kumar K.V arch/powerpc/Kconfig | 6 ------ arch/powerpc/mm/hash_low_64.S | 4 ++-- arch/powerpc/mm/hash_utils_64.c | 12 ++++++------ 3 files changed, 8 insertions(+), 14 deletions(-) commit 55f8b5b82fe7ab21da4153ed177b6fe17b1d59a3 Author: Michael Ellerman Date: Fri Aug 7 16:19:46 2015 +1000 powerpc/mm: Simplify page size kconfig dependencies For config options with only a single value, guarding the single value with 'if' is the same as adding a 'depends' statement. And it's more standard to just use 'depends'. And if the option has both an 'if' guard and a 'depends' we can collapse them into a single 'depends' by combining them with &&. Signed-off-by: Michael Ellerman Reviewed-by: Aneesh Kumar K.V arch/powerpc/Kconfig | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 953005770ec3b52132a4cdbdbce74bd0de2b8490 Author: Michael Ellerman Date: Fri Aug 7 16:19:45 2015 +1000 powerpc/mm: Drop the 64K on 4K version of pte_pagesize_index() Now that support for 64k pages with a 4K kernel is removed, this code is unreachable. CONFIG_PPC_HAS_HASH_64K can only be true when CONFIG_PPC_64K_PAGES is also true. But when CONFIG_PPC_64K_PAGES is true we include pte-hash64.h which includes pte-hash64-64k.h, which defines both pte_pagesize_index() and crucially __real_pte, which means this definition can never be used. Signed-off-by: Michael Ellerman Reviewed-by: Aneesh Kumar K.V arch/powerpc/include/asm/pgtable-ppc64.h | 12 ------------ 1 file changed, 12 deletions(-) commit 57fb907da89977640ef183556a621336c1348fa0 Author: Emil Medve Date: Wed Mar 25 00:28:48 2015 -0500 iommu/fsl: Really fix init section(s) content '0f1fb99 iommu/fsl: Fix section mismatch' was intended to address the modpost warning and the potential crash. Crash which is actually easy to trigger with a 'unbind' followed by a 'bind' sequence. The fix is wrong as fsl_of_pamu_driver.driver gets added by bus_add_driver() to a couple of klist(s) which become invalid/corrupted as soon as the init sections are freed. Depending on when/how the init sections storage is reused various/random errors and crashes will happen 'cd70d46 iommu/fsl: Various cleanups' contains annotations that go further down the wrong path laid by '0f1fb99 iommu/fsl: Fix section mismatch' Now remove all the incorrect annotations from the above mentioned patches (not exactly a revert) and those previously existing in the code, This fixes the modpost warning(s), the unbind/bind sequence crashes and the random errors/crashes Fixes: 0f1fb99b62ce ("iommu/fsl: Fix section mismatch") Fixes: cd70d4659ff3 ("iommu/fsl: Various cleanups") Signed-off-by: Emil Medve Acked-by: Varun Sethi Cc: stable@vger.kernel.org Tested-by: Madalin Bucur Signed-off-by: Joerg Roedel drivers/iommu/fsl_pamu.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit f444f1f898d7c4bbe45d12ffe3f38349ff83ec4a Author: Michael Ellerman Date: Fri Aug 7 16:19:44 2015 +1000 powerpc/cell: Drop support for 64K local store on 4K kernels Back in the olden days we added support for using 64K pages to map the SPU (Synergistic Processing Unit) local store on Cell, when the main kernel was using 4K pages. This was useful at the time because distros were using 4K pages, but using 64K pages on the SPUs could reduce TLB pressure there. However these days the number of Cell users is approaching zero, and supporting this option adds unpleasant complexity to the memory management code. So drop the option, CONFIG_SPU_FS_64K_LS, and all related code. Signed-off-by: Michael Ellerman Acked-by: Jeremy Kerr arch/powerpc/include/asm/spu_csa.h | 6 -- arch/powerpc/mm/hugetlbpage.c | 8 -- arch/powerpc/platforms/cell/Kconfig | 15 --- arch/powerpc/platforms/cell/spufs/file.c | 55 ----------- arch/powerpc/platforms/cell/spufs/lscsa_alloc.c | 124 +----------------------- 5 files changed, 2 insertions(+), 206 deletions(-) commit 74b5037baa2011a2799e2c43adde7d171b072f9e Author: Michael Ellerman Date: Fri Aug 7 16:19:43 2015 +1000 powerpc/mm: Fix pte_pagesize_index() crash on 4K w/64K hash The powerpc kernel can be built to have either a 4K PAGE_SIZE or a 64K PAGE_SIZE. However when built with a 4K PAGE_SIZE there is an additional config option which can be enabled, PPC_HAS_HASH_64K, which means the kernel also knows how to hash a 64K page even though the base PAGE_SIZE is 4K. This is used in one obscure configuration, to support 64K pages for SPU local store on the Cell processor when the rest of the kernel is using 4K pages. In this configuration, pte_pagesize_index() is defined to just pass through its arguments to get_slice_psize(). However pte_pagesize_index() is called for both user and kernel addresses, whereas get_slice_psize() only knows how to handle user addresses. This has been broken forever, however until recently it happened to work. That was because in get_slice_psize() the large kernel address would cause the right shift of the slice mask to return zero. However in commit 7aa0727f3302 ("powerpc/mm: Increase the slice range to 64TB"), the get_slice_psize() code was changed so that instead of a right shift we do an array lookup based on the address. When passed a kernel address this means we index way off the end of the slice array and return random junk. That is only fatal if we happen to hit something non-zero, but when we do return a non-zero value we confuse the MMU code and eventually cause a check stop. This fix is ugly, but simple. When we're called for a kernel address we return 4K, which is always correct in this configuration, otherwise we use the slice mask. Fixes: 7aa0727f3302 ("powerpc/mm: Increase the slice range to 64TB") Reported-by: Cyril Bur Signed-off-by: Michael Ellerman Reviewed-by: Aneesh Kumar K.V arch/powerpc/include/asm/pgtable-ppc64.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit cf27ec930be906e142c752f9161197d69ca534d7 Author: Will Deacon Date: Tue Aug 11 16:48:32 2015 +0100 iommu/io-pgtable-arm: Unmap and free table when overwriting with block When installing a block mapping, we unconditionally overwrite a non-leaf PTE if we find one. However, this can cause a problem if the following sequence of events occur: (1) iommu_map called for a 4k (i.e. PAGE_SIZE) mapping at some address - We initialise the page table all the way down to a leaf entry - No TLB maintenance is required, because we're going from invalid to valid. (2) iommu_unmap is called on the mapping installed in (1) - We walk the page table to the final (leaf) entry and zero it - We only changed a valid leaf entry, so we invalidate leaf-only (3) iommu_map is called on the same address as (1), but this time for a 2MB (i.e. BLOCK_SIZE) mapping) - We walk the page table down to the penultimate level, where we find a table entry - We overwrite the table entry with a block mapping and return without any TLB maintenance and without freeing the memory used by the now-orphaned table. This last step can lead to a walk-cache caching the overwritten table entry, causing unexpected faults when the new mapping is accessed by a device. One way to fix this would be to collapse the page table when freeing the last page at a given level, but this would require expensive iteration on every map call. Instead, this patch detects the case when we are overwriting a table entry and explicitly unmaps the table first, which takes care of both freeing and TLB invalidation. Cc: Reported-by: Brian Starkey Tested-by: Brian Starkey Signed-off-by: Will Deacon Signed-off-by: Joerg Roedel drivers/iommu/io-pgtable-arm.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 5b9fb5e6c6c74666f88f34bd0db183b9c4269d97 Author: Boris Brezillon Date: Wed Jan 7 10:25:41 2015 +0100 drm: atmel-hlcdc: add support for sama5d4 SoCs Describe capabilities of the HLCDC IP found on sama5d4 SoCs and add a new entry to the atmel_hlcdc_of_match table. Signed-off-by: Boris Brezillon drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 86 ++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit 6b22cadce2175c997435d93cd3ef9b0389c45ad7 Author: Boris Brezillon Date: Wed Jan 7 10:12:41 2015 +0100 drm: atmel-hlcdc: add support for at91sam9n12 SoC Describe capabilities of the HLCDC IP found on at91sam9n12 SoC and add a new entry to the atmel_hlcdc_of_match table. Signed-off-by: Boris Brezillon drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 348ef85f6216c1a11726a165a7f32b8516aa8014 Author: Boris Brezillon Date: Wed Jan 7 09:30:20 2015 +0100 drm: atmel-hlcdc: add support for at91sam9x5 SoCs Describe capabilities of the HLCDC IP found on at91sam9x5 SoCs and add a new entry to the atmel_hlcdc_of_match table. Signed-off-by: Boris Brezillon drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 88 ++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) commit 923f869846014ac56937690a7cc968414a1e92d0 Author: Boris Brezillon Date: Tue Jan 6 11:18:09 2015 +0100 drm: atmel-hlcdc: add RGB565 and RGB444 output support The HLCDC IP supports RGB565 and RGB444 output formats. Signed-off-by: Boris Brezillon drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 4 ++++ 1 file changed, 4 insertions(+) commit aa690a9edc5750bb5955b524dd7db842e36004eb Author: Boris Brezillon Date: Fri Jul 31 15:10:26 2015 +0200 drm: atmel-hlcdc: add the missing DRM_ATOMIC flag The atmel-hlcdc driver already supports atomic operations, add the missing DRM_ATOMIC flag to expose the atomic features to userspace. Signed-off-by: Boris Brezillon drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e14c71c849f838a4618fe46f5b6a0414c07891d1 Author: Boris Brezillon Date: Mon Apr 20 13:43:26 2015 +0200 drm: atmel-hlcdc: add PRIME support Signed-off-by: Boris Brezillon drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit a9c909ce8c7853b4fc16055c50eb50d91e20cb93 Author: Andy Lutomirski Date: Mon Aug 17 12:22:52 2015 -0700 selftests/x86: Add syscall_nt selftest I've had this sitting around for a while. Add it to the selftests tree. Far Cry running under Wine depends on this behavior. Signed-off-by: Andy Lutomirski 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/ee4d63799a9e5294b70930618b71d04d2770eb2d.1439838962.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 2 +- tools/testing/selftests/x86/syscall_nt.c | 54 ++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) commit 33f3df41d03879ab86c7f2d650e67b655e0b85c8 Author: Andy Lutomirski Date: Mon Aug 17 12:22:51 2015 -0700 selftests/x86: Disable sigreturn_64 sigreturn_64 was broken by ed596cde9425 ("Revert x86 sigcontext cleanups"). Turn it off until we have a better fix. Signed-off-by: Andy Lutomirski 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/a184e75ff170a0bcd76bf376c41cad2c402fe9f7.1439838962.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a5dd19249607474ed680f16b4f5e8477d2b68689 Merge: 6b7e265 512255a Author: Ingo Molnar Date: Tue Aug 18 09:39:47 2015 +0200 Merge branch 'x86/urgent' into x86/asm to fix up conflicts and to pick up fixes Conflicts: arch/x86/entry/entry_64_compat.S arch/x86/math-emu/get_address.c Signed-off-by: Ingo Molnar commit ecc7c518b3017821a6b26fb5fdaa548afa8ee236 Author: Emmanuel Grumbach Date: Mon Aug 17 15:54:41 2015 +0300 iwlwifi: mvm: fix a race in D0i3 vs. Tx path When we enter D0i3, we must stop TXing otherwise the sequence number we use might conflict with the firmware's internal TX. In order to do so, we have IWL_MVM_STATUS_IN_D0I3 which should prevent any Tx while we enter D0i3. There is a bug in this code since we may Tx even if IWL_MVM_STATUS_IN_D0I3 is set. This can happen as long as mvm->d0i3_ap_sta_id is not set. To make sure that we don't have any packet in the Tx path while we set mvm->d0i3_ap_sta_id, call synchronize_net only after we already set mvm->d0i3_ap_sta_id. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/ops.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b3df22475423a99cc1f6c4b202970fa89a4d9716 Author: David Spinadel Date: Thu Aug 6 10:26:50 2015 +0300 iwlwifi: mvm: don't disconnect on beacon loss in D0I3 Currently if we wake up during D0I3 due to beacon loss we disconnect immediately. This behaviour causes redundant disconnection, which could be prevented by polling as it is usually done in mac80211. Instead, we prefer reporting beacon loss and let mac80211 try polling before disconnection. Signed-off-by: David Spinadel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/ops.c | 37 ++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 11 deletions(-) commit e192cd121dbe009f67eddd5171d588994b15486c Author: Adrien Schildknecht Date: Fri Aug 14 02:35:32 2015 +0200 iwlwifi: out-of-bounds access in iwl_init_sband_channels KASan error report: ================================================================== BUG: KASan: out of bounds access in iwl_init_sband_channels+0x207/0x260 [iwlwifi] at addr ffff8800c2d0aac8 Read of size 4 by task modprobe/329 ================================================================== Both loops of this function compare data from the 'chan' array and then check if the index is valid. The 2 conditions should be inverted to avoid an out-of-bounds access. Signed-off-by: Adrien Schildknecht Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit da0fa5ebb254d1617455ace9af1ce2f1d375a95d Author: Emmanuel Grumbach Date: Sun Aug 16 10:39:49 2015 +0300 iwlwifi: bump mvm firmware API to 16 The driver is now able to handle -16.ucode. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-7000.c | 2 +- drivers/net/wireless/iwlwifi/iwl-8000.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 783eaee6dbf475827b5fbdb13c17c54510aaa95e Author: Alexander Bondar Date: Tue Jul 28 16:50:51 2015 +0300 iwlwifi: rs: disable MIMO only if allowed in configuration Fix bug where MIMO is disabled for low latency TX on P2P VIF regardless of configuration. Make it dependent on IWL_MVM_RS_DISABLE_P2P_MIMO compilation option. Change configuration so that MIMO will be disabled only in SDIO platforms. Signed-off-by: Alexander Bondar Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/rs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 74f4e0cc61080f63f28e8d519bdf437957e64217 Author: Linus Walleij Date: Fri Aug 14 00:21:45 2015 +0200 bcma: switch GPIO portions to use GPIOLIB_IRQCHIP This switches the BCMA GPIO driver to use GPIOLIB_IRQCHIP to handle its interrupts instead of rolling its own copy of the irqdomain handling etc. Signed-off-by: Linus Walleij Signed-off-by: Hauke Mehrtens Signed-off-by: Kalle Valo drivers/bcma/Kconfig | 2 +- drivers/bcma/driver_gpio.c | 92 ++++++++++------------------- include/linux/bcma/bcma_driver_chipcommon.h | 1 - 3 files changed, 31 insertions(+), 64 deletions(-) commit 1165dd900cc8de3addbc8bef7e6196b07799d25e Author: Miaoqing Pan Date: Wed Aug 12 14:20:46 2015 +0800 ath9k: add correct MAC/BB name for ar9561 MAC/BB name is"????" if the MAC/BB is unknown. Signed-off-by: Miaoqing Pan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/hw.c | 1 + 1 file changed, 1 insertion(+) commit fc645df093926d8cd33a9dd9b6532ff3fd937193 Author: Guy Mishol Date: Tue Aug 11 10:02:57 2015 +0300 wl18xx: add diversity statistics Add diversity statistics and sync the driver statistics acx and debugfs representation with the current fw api. Signed-off-by: Guy Mishol Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/acx.h | 47 +++++--------------------------- drivers/net/wireless/ti/wl18xx/debugfs.c | 21 ++++++-------- 2 files changed, 16 insertions(+), 52 deletions(-) commit c48276cbbeaedd49cdf32f2b734b4a1ec6d6ccad Author: Eliad Peller Date: Tue Aug 11 10:02:56 2015 +0300 wl18xx: update statistics acx and debugfs files Sync the driver statistics acx and debugfs representation with the current fw api. Signed-off-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/acx.h | 78 +++++++++++---- drivers/net/wireless/ti/wl18xx/debugfs.c | 159 ++++++++++++++++++------------- 2 files changed, 156 insertions(+), 81 deletions(-) commit f10746fef3dfa8546808989f71c3543db832f374 Author: Adrien Schildknecht Date: Tue Aug 11 00:25:53 2015 +0200 rt2x00: adjust EEPROM_SIZE for rt2500usb rt2500usb_validate_eeprom() read data up to 0x6e (EEPROM_CALIBRATE_OFFSET) but only 0x6a bytes has been allocated and read from the eeprom. This lead to out-of-bound accesses and invalid values for EEPROM_BBPTUNE_R17 and EEPROM_CALIBRATE_OFFSET. Change the EEPROM_SIZE to 0x6e in order to retrieve all the fields. Tested with a rt2570 device. Signed-off-by: Adrien Schildknecht Acked-by: Stanislaw Gruszka Signed-off-by: Kalle Valo drivers/net/wireless/rt2x00/rt2500usb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bafc6e4cd897ef14015d8d32a04ee9bfa8d91370 Author: John Linville Date: Mon Aug 10 12:05:39 2015 -0400 mwl8k: refactor some conditionals for clarity CC [M] drivers/net/wireless/mwl8k.o drivers/net/wireless/mwl8k.c: In function ‘mwl8k_bss_info_changed’: drivers/net/wireless/mwl8k.c:3290:2: warning: ‘ap_mcs_rates’ may be used uninitialized in this function [-Wmaybe-uninitialized] memcpy(cmd->mcs_set, mcs_rates, 16); ^ drivers/net/wireless/mwl8k.c:4987:5: note: ‘ap_mcs_rates’ was declared here u8 ap_mcs_rates[16]; ^ The warning was bogus. But the conditionals were rather complicated, with multiple redundant checks. This consolidates the checking and makes it more readable IMHO. Signed-off-by: John W. Linville Signed-off-by: Kalle Valo drivers/net/wireless/mwl8k.c | 49 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) commit 9ff4b6de26a72f76450943548ee7d9d779eeaac5 Author: Taehee Yoo Date: Tue Apr 7 03:13:00 2015 +0900 rtlwifi: rtl8192cu: Remove and replace routine in hw.c and mac.c I remove duplicated routines which related rtl92cu_set_hw_reg(). 1. rtl92c_set_qos() and HW_VAR_AC_PARAM routine are similar code. so i replace code with rtlpriv->cfg->ops->set_hw_reg(). 2. rtl92c_set_mac_addr() and 'HW_VAR_ETHER_ADDR' case at rtl92cu_set_hw_reg() routine are similar code. so i removed rtl92c_set_mac_addr() function. also it was not used anywhere. 3. remove HW_VAR_ACM_CTRL routine in rtl92cu_set_hw_reg(). if rtl_usb->acm_method is not EACMWAY2_SW, HW_VAR_ACM_CTRL is called from HW_VAR_AC_PARAM. but it never called. because acm_method is always EACMWAY2_SW. so i remove acm_method check routine and HW_VAR_ACM_CTRL routine. both usb and pci interface is not used HW_VAR_ACM_CTRL. but i can't test pci interface module, so i didn't modify pci code. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 56 +--------------------------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 52 +------------------------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.h | 1 - 3 files changed, 2 insertions(+), 107 deletions(-) commit bf27cea49502799be15beab3567ea2bd9901ad2f Author: Taehee Yoo Date: Tue Mar 31 00:55:32 2015 +0900 rtlwifi: rtl8192cu: remove duplicated routine in hw.c and mac.c rtl92c_set_xxx_filter is same routine with rtl92cu_set_hw_reg. so i remove those functions that are rtl92c_set_xxx_filter. (rtl92c_get_xxx_filter is also same reason.) also i add code updating struct rtl_mac member variable in the rtl92cu_set_hw_reg. after that, no more _update_mac_setting is not useful. thus i remove that. Signed-off-by: Taehee Yoo Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 38 +++++++++++--------------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 41 ---------------------------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.h | 9 ------ 3 files changed, 16 insertions(+), 72 deletions(-) commit 15f6d96ded057b898312b0a088a964d585a779b1 Merge: 94e92a7 8f9c98d Author: Kalle Valo Date: Tue Aug 18 08:44:22 2015 +0300 Merge tag 'mac80211-next-for-davem-2015-08-14' mac80211-next.git iwlwifi needs new mac80211 patches so merge mac80211-next.git to wireless-drivers-next.git. commit 0b233dc7167884f95f08e796ac6a6767ae7d0d70 Merge: f376d4a 65d7ab8 Author: David S. Miller Date: Mon Aug 17 21:33:06 2015 -0700 Merge branch 'Identifier-Locator-Addressing' Tom Herbert says: ==================== net: Identifier Locator Addressing - Part I This patch set provides rudimentary support for Identifier Locator Addressing or ILA. The basic concept of ILA is that we split an IPv6 address into a 64 bit locator and 64 bit identifier. The identifier is the identity of an entity in communication ("who"), and the locator expresses the location of the entity ("where"). Applications use externally visible address that contains the identifier. When a packet is actually sent, a translation is done that overwrites the first 64 bits of the address with a locator. The packet can then be forwarded over the network to the host where the addressed entity is located. At the receiver, the reverse translation is done so the that the application sees the original, untranslated address. Presumably an external control plane will provide identifier->locator mappings. v2: - Fix compilation erros when LWT not configured - Consolidate ILA into a single ila.c v3: - Change pseudohdr argument od inet_proto_csum_replace functions to be a bool v4: - In ila_build_state check locator being in netlink params before allocating tunnel state The data path for ILA is a simple NAT translation that only operates on the upper 64 bits of a destination address in IPv6 packets. The basic process is: 1) Lookup 64 bit identifier (lower 64 bits of destination) 2) If a match is found a) Overwrite locator (upper 64 bits of destination) with the new locator b) Adjust any checksum that has destination address included in pseudo header 3) Send or receive packet ILA is a means to implement tunnels or network virtualization without encapsulation. Since there is no encapsulation involved, we assume that stateless support in the network for IPv6 (e.g. RSS, ECMP, TSO, etc.) just works. Also, since we're minimally changing the packet many of the worries about encapsulation (MTU, checksum, fragmentation) are not relevant. The downside is that, ILA is not extensible like other encapsulations (GUE for instance) so it might not be appropriate for all use cases. Also, this only makes sense to do in IPv6! A key aspect of ILA is performance. The intent is that ILA would be used in data centers in virtualizing tasks or jobs. In the fullest incarnation all intra data center communications might be targeted to virtual ILA addresses. This is basically adding a new virtualization capability to the existing services in a datacenter, so there is a strong expectation is that this does not degrade performance for existing applications. Performance seems to be dependent on how ILA is hooked into kernel. ILA can be implemented under some different models: - Mechanically it is a form a stateless DNAT - It can be thought of as a type of (source) routing - As a functional replacement of encapsulation In this patch set we hook into the data path using Light Weight Tunnels (LWT) infrastructure. As part of that, we add support in LWT to redirect dst input. iproute will be modified to take a new ila encap type. ILA can be configured like: ip route add 3333:0:0:1:5555:0:2:0/128 \ encap ila 2001:0:0:2 via 2401:db00:20:911a:face:0:27:0 ip -6 addr add 3333:0:0:1:5555:0:1:0/128 dev eth0 ip route add table local local 2001:0:0:1:5555:0:1:0/128 encap ila 3333:0:0:1 dev lo So sending to destination 3333:0:0:1:5555:0:2:0 will have destination of 2001:0:0:2:5555:0:2:0 on the wire. Performance results are below. With ILA we see about a 10% drop in pps compared to non-ILA. Much of this drop can be attributed to the loss of early demux on input (translation occurs after it is attempted). We will address this in the next patch set. Also, IPvlan input path does not work with ILA since the routing is bypassed-- this will be addressed in a future patch. Performance testing: Performing netperf TCP_RR with 200 clients: Non-ILA baseline 84.92% CPU utilization 1861922.9 tps 93/163/330 50/90/99% latencies ILA single destination 83.16% CPU utilization 1679683.4 tps 105/180/332 50/90/99% latencies References: Slides from netconf: http://vger.kernel.org/netconf2015Herbert-ILA.pdf Slides from presentation at IETF: https://www.ietf.org/proceedings/92/slides/slides-92-nvo3-1.pdf I-D: https://tools.ietf.org/html/draft-herbert-nvo3-ila-00 ==================== Signed-off-by: David S. Miller commit 65d7ab8de582bc668e3dabb6ff48f750098a6e78 Author: Tom Herbert Date: Mon Aug 17 13:42:27 2015 -0700 net: Identifier Locator Addressing module Adding new module name ila. This implements ILA translation. Light weight tunnel redirection is used to perform the translation in the data path. This is configured by the "ip -6 route" command using the "encap ila " option, where is the value to set in destination locator of the packet. e.g. ip -6 route add 3333:0:0:1:5555:0:1:0/128 \ encap ila 2001:0:0:1 via 2401:db00:20:911a:face:0:25:0 Sets a route where 3333:0:0:1 will be overwritten by 2001:0:0:1 on output. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/uapi/linux/ila.h | 15 +++ include/uapi/linux/lwtunnel.h | 1 + net/ipv6/Kconfig | 19 ++++ net/ipv6/Makefile | 1 + net/ipv6/ila.c | 216 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 252 insertions(+) commit abc5d1ff3e8f9b4a9d274818459b123e31981dc9 Author: Tom Herbert Date: Mon Aug 17 13:42:26 2015 -0700 net: Add inet_proto_csum_replace_by_diff utility function This function updates a checksum field value and skb->csum based on a value which is the difference between the old and new checksum. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/checksum.h | 2 ++ net/core/utils.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) commit 4b048d6d9d0b0b90e1e94f2393796bbf1fa8df4e Author: Tom Herbert Date: Mon Aug 17 13:42:25 2015 -0700 net: Change pseudohdr argument of inet_proto_csum_replace* to be a bool inet_proto_csum_replace4,2,16 take a pseudohdr argument which indicates the checksum field carries a pseudo header. This argument should be a boolean instead of an int. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/checksum.h | 6 +++--- net/core/filter.c | 2 +- net/core/utils.c | 4 ++-- net/ipv4/netfilter/ipt_ECN.c | 2 +- net/ipv4/netfilter/nf_nat_l3proto_ipv4.c | 4 ++-- net/ipv4/netfilter/nf_nat_proto_icmp.c | 2 +- net/ipv6/netfilter/nf_nat_l3proto_ipv6.c | 4 ++-- net/ipv6/netfilter/nf_nat_proto_icmpv6.c | 2 +- net/netfilter/nf_conntrack_seqadj.c | 9 +++++---- net/netfilter/nf_nat_proto_dccp.c | 2 +- net/netfilter/nf_nat_proto_tcp.c | 2 +- net/netfilter/nf_nat_proto_udp.c | 2 +- net/netfilter/nf_nat_proto_udplite.c | 2 +- net/netfilter/nf_synproxy_core.c | 2 +- net/netfilter/xt_TCPMSS.c | 8 ++++---- net/netfilter/xt_TCPOPTSTRIP.c | 2 +- net/openvswitch/actions.c | 12 ++++++------ net/sched/act_nat.c | 7 ++++--- 18 files changed, 38 insertions(+), 36 deletions(-) commit 2536862311d2276454ddef9dc36d6551a4b400fd Author: Tom Herbert Date: Mon Aug 17 13:42:24 2015 -0700 lwt: Add support to redirect dst.input This patch adds the capability to redirect dst input in the same way that dst output is redirected by LWT. Also, save the original dst.input and and dst.out when setting up lwtunnel redirection. These can be called by the client as a pass- through. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/lwtunnel.h | 30 ++++++++++++++++++++++++++- net/core/lwtunnel.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ net/ipv4/route.c | 8 +++++++- net/ipv6/route.c | 8 +++++++- 4 files changed, 98 insertions(+), 3 deletions(-) commit f376d4adfdd2d860aea3e99aa86e98324621ece7 Author: David S. Miller Date: Mon Aug 17 21:24:59 2015 -0700 enic: Fix sparse warning in vnic_devcmd_init(). >> drivers/net/ethernet/cisco/enic/vnic_dev.c:1095:13: sparse: incorrect type in assignment (different address spaces) drivers/net/ethernet/cisco/enic/vnic_dev.c:1095:13: expected void *res drivers/net/ethernet/cisco/enic/vnic_dev.c:1095:13: got void [noderef] * Reported-by: kbuild test robot Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/vnic_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ecf842f65c76f7dc2420a5295dfbf01ec7232320 Author: David S. Miller Date: Mon Aug 17 21:22:26 2015 -0700 mlx5e: Fix sparse warnings in mlx5e_handle_csum(). >> drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:173:44: sparse: incorrect type in argument 1 (different base types) drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:173:44: expected restricted __sum16 [usertype] n drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:173:44: got restricted __be16 [usertype] check_sum Reported-by: kbuild test robot Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7f5408493aeb01532927b2276316797a03ed6ee Author: Dave Chinner Date: Wed Mar 4 14:07:22 2015 -0500 inode: rename i_wb_list to i_io_list There's a small consistency problem between the inode and writeback naming. Writeback calls the "for IO" inode queues b_io and b_more_io, but the inode calls these the "writeback list" or i_wb_list. This makes it hard to an new "under writeback" list to the inode, or call it an "under IO" list on the bdi because either way we'll have writeback on IO and IO on writeback and it'll just be confusing. I'm getting confused just writing this! So, rename the inode "for IO" list variable to i_io_list so we can add a new "writeback list" in a subsequent patch. Signed-off-by: Dave Chinner Signed-off-by: Josef Bacik Reviewed-by: Jan Kara Reviewed-by: Christoph Hellwig Tested-by: Dave Chinner fs/fs-writeback.c | 46 +++++++++++++++++++++++----------------------- fs/inode.c | 8 ++++---- fs/internal.h | 2 +- include/linux/fs.h | 2 +- mm/backing-dev.c | 8 ++++---- 5 files changed, 33 insertions(+), 33 deletions(-) commit 6c3af955935223217f23ef0ae672d3842418ec50 Author: Horia Geant? Date: Mon Aug 17 15:24:10 2015 +0300 crypto: caam - add support for LS1021A LS1021A is a QorIQ SoC having little endian CAAM. There are a few differences b/w QorIQ and i.MX from CAAM perspective: 1. i.MX platforms are somewhat special wrt. 64-bit registers: -big endian format at 64-bit level: MSW at address+0 and LSW at address+4 -little endian format at 32-bit level (within MSW and LSW) and thus need special handling. 2. No CCM (clock controller module) for QorIQ. No CAAM clocks to enable / disable. A new Kconfig option - CRYPTO_DEV_FSL_CAAM_LE - is added to indicate CAAM is little endian (*). It is hidden from the user (to avoid misconfiguration); when adding support for a new platform with LE CAAM, either the Kconfig needs to be updated or the corresponding defconfig needs to indicate that CAAM is LE. (*) Using a DT property to provide CAAM endianness would not allow for the ifdeffery. In order to keep changes to a minimum, the following changes are postponed: -endianness fix of the last word in the S/G (rsvd2, bpid, offset), fields are always 0 anyway; -S/G format fix for i.MX7 (yes, i.MX7 support was not added yet, but still...) Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/Kconfig | 8 ++++++++ drivers/crypto/caam/ctrl.c | 4 ++-- drivers/crypto/caam/desc.h | 8 ++++---- drivers/crypto/caam/regs.h | 19 +++++++++++++++---- 4 files changed, 29 insertions(+), 10 deletions(-) commit c1ae632ad2608d0214291a64ca719f900ffef14b Author: Tadeusz Struk Date: Fri Aug 14 07:24:23 2015 -0700 crypto: qat - Don't move data inside output buffer Change memcpy to memmove because the copy is done within the same buffer. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_asym_algs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c5f0ed78e976be705218cad62acf6a68e9d121e Author: Leonidas Da Silva Barbosa Date: Fri Aug 14 10:14:16 2015 -0300 crypto: vmx - Fixing GHASH Key issue on little endian GHASH table algorithm is using a big endian key. In little endian machines key will be LE ordered. After a lxvd2x instruction key is loaded as it is, LE/BE order, in first case it'll generate a wrong table resulting in wrong hashes from the algorithm. Bug affects only LE machines. In order to fix it we do a swap for loaded key. Cc: stable@vger.kernel.org Signed-off-by: Leonidas S Barbosa Signed-off-by: Herbert Xu drivers/crypto/vmx/ghashp8-ppc.pl | 6 ++++++ 1 file changed, 6 insertions(+) commit 1d4aa0b4c1816e8ca92a6aadb0d8f6b43c56c0d0 Author: Leonidas Da Silva Barbosa Date: Fri Aug 14 10:12:22 2015 -0300 crypto: vmx - Fixing AES-CTR counter bug AES-CTR is using a counter 8bytes-8bytes what miss match with kernel specs. In the previous code a vadduwm was done to increment counter. Replacing this for a vadduqm now considering both cases counter 8-8 bytes and full 16bytes. Cc: stable@vger.kernel.org Signed-off-by: Leonidas S Barbosa Signed-off-by: Herbert Xu drivers/crypto/vmx/aes_ctr.c | 8 +++++++- drivers/crypto/vmx/aesp8-ppc.pl | 34 +++++++++++++++++----------------- 2 files changed, 24 insertions(+), 18 deletions(-) commit 4524cd093fa8f03b198e095ebbb679c30839559c Author: Jaiprakash Singh Date: Fri Jul 10 17:11:01 2015 +0800 powerpc/t1023rdb/dts: set ifc nand chip select from 2 to 1 IFC NAND chip select is wrongly mapped to 2 in reg property of NAND node. Due to this kernel is not able probe NAND flash. Set chip select to 1 in reg property. Signed-off-by: Jaiprakash Singh Signed-off-by: Shengzhou Liu Signed-off-by: Scott Wood arch/powerpc/boot/dts/t1023rdb.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 163e60c169752b2e817735d28d3bd2d73cd268f3 Author: Wang Dongsheng Date: Fri Aug 14 11:12:10 2015 +0800 powerpc/mpc85xx:Add SCFG device tree support of T104x Signed-off-by: Wang Dongsheng Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/t1040si-post.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit c8254e27fd34cdd21febd5b1caca409117914332 Author: Wang Dongsheng Date: Fri Aug 14 11:12:09 2015 +0800 powerpc/85xx: Add binding for SCFG SCFG provides SoC specific configuration and status registers for the chip. Add this for powerpc platform. Signed-off-by: Wang Dongsheng Signed-off-by: Scott Wood Documentation/devicetree/bindings/powerpc/fsl/scfg.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 0d748ec5eaedfa0802e02df6b5912d32c752f88e Author: Priyanka Jain Date: Thu Jul 30 10:33:55 2015 +0530 powerpc/fsl-booke: Add T1040D4RDB/T1042D4RDB board support T1040D4RDB/T1042D4RDB are Freescale Reference Design Board which can support T1040/T1042 QorIQ Power Architecture™ processor respectively T1040D4RDB/T1042D4RDB board Overview ------------------------------------- - SERDES Connections, 8 lanes supporting: - PCI - SGMII - SATA 2.0 - QSGMII(only for T1040D4RDB) - DDR Controller - Supports rates of up to 1600 MHz data-rate - Supports one DDR4 UDIMM -IFC/Local Bus - NAND flash: 1GB 8-bit NAND flash - NOR: 128MB 16-bit NOR Flash - Ethernet - Two on-board RGMII 10/100/1G ethernet ports. - PHY #0 remains powered up during deep-sleep - CPLD - Clocks - System and DDR clock (SYSCLK, “DDRCLK”) - SERDES clocks - Power Supplies - USB - Supports two USB 2.0 ports with integrated PHYs - Two type A ports with 5V@1.5A per port. - SDHC - SDHC/SDXC connector - SPI - On-board 64MB SPI flash - I2C - Devices connected: EEPROM, thermal monitor, VID controller - Other IO - Two Serial ports - ProfiBus port Add support for T1040/T1042D4RDB board: -add device tree -Add entry in corenet_generic.c Signed-off-by: Priyanka Jain Signed-off-by: Scott Wood arch/powerpc/boot/dts/t1040d4rdb.dts | 46 ++++++ arch/powerpc/boot/dts/t1042d4rdb.dts | 53 +++++++ arch/powerpc/boot/dts/t104xd4rdb.dtsi | 205 ++++++++++++++++++++++++++ arch/powerpc/platforms/85xx/corenet_generic.c | 2 + 4 files changed, 306 insertions(+) commit 32d3c4ff01e0c765594b7dd8f5c539e9dca92223 Author: Hou Zhiqiang Date: Mon Aug 10 17:39:45 2015 +0800 powerpc/85xx: Remove unused pci fixup hooks on c293pcie The c293pcie board is an endpoint device and it doesn't need PM, so remove hooks pcibios_fixup_phb and pcibios_fixup_bus. Signed-off-by: Hou Zhiqiang Signed-off-by: Scott Wood arch/powerpc/platforms/85xx/c293pcie.c | 4 ---- 1 file changed, 4 deletions(-) commit 69399ee9cbcb00bbdd9ff6fafafde23ef404d40f Author: Kevin Hao Date: Thu Aug 13 19:51:36 2015 +0800 powerpc/e6500: hw tablewalk: optimize a bit for tcd lock acquiring codes It makes no sense to put the instructions for calculating the lock value (cpu number + 1) and the clearing of eq bit of cr1 in lbarx/stbcx loop. And when the lock is acquired by the other thread, the current lock value has no chance to equal with the lock value used by current cpu. So we can skip the comparing for these two lock values in the lbz/bne loop. Signed-off-by: Kevin Hao Signed-off-by: Scott Wood arch/powerpc/mm/tlb_low_64e.S | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e5e55cc08c76134e38526a66b3bd30b1b71bbf63 Author: Kevin Hao Date: Thu Aug 13 19:51:35 2015 +0800 powerpc/e6500: remove the stale TCD_LOCK macro Since we moved the "lock" to be the first element of struct tlb_core_data in commit 82d86de25b9c ("powerpc/e6500: Make TLB lock recursive"), this macro is not used by any code. Just delete it. Signed-off-by: Kevin Hao Signed-off-by: Scott Wood arch/powerpc/kernel/asm-offsets.c | 1 - 1 file changed, 1 deletion(-) commit e8c4b3dfe17a7e83ea134d6a857f9a3e8e71357f Author: Jason Jin Date: Mon Aug 17 15:50:57 2015 +0800 powerpc: Add a vga alias node for P1022 In u-boot, when set the video as console, the name 'vga' is used as a general name for the video device, during the fdt_fixup_stdout process, the 'vga' name is used to search in the dtb to setup the 'linux,stdout-path' node. Though the P1022 DIU is not VGA-compatible device, to meet the 'vga' name used in u-boot, the vga alias node is added for P1022 in this patch. At the same time, a display alias is also added so that no other components grow dependencies on the vga alias node. Signed-off-by: Jason Jin Signed-off-by: Wang Dongsheng Signed-off-by: Scott Wood arch/powerpc/boot/dts/fsl/p1022si-post.dtsi | 2 +- arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 228b687d9e20f367e4d5ea8723e3abbf0892db61 Author: Guenter Roeck Date: Mon Aug 17 07:21:43 2015 -0700 hwmon: (ltc2978) Add support for LTC3886 LTC3886 is a is a dual PolyPhase DC/DC synchronous step-down switching regulator controller. It is mostly command compatible to LTC3883, but supports two phases instead of one. Suggested-by: Michael Jones Tested-by: Michael Jones Signed-off-by: Guenter Roeck .../devicetree/bindings/hwmon/ltc2978.txt | 3 ++- Documentation/hwmon/ltc2978 | 23 +++++++++++++-------- drivers/hwmon/pmbus/Kconfig | 2 +- drivers/hwmon/pmbus/ltc2978.c | 24 ++++++++++++++++++++-- 4 files changed, 39 insertions(+), 13 deletions(-) commit 52aae6af71e0e78e25c64e13266917bb323984d5 Author: Guenter Roeck Date: Mon Aug 17 06:38:01 2015 -0700 hwmon: (ltc2978) Add support for LTC2980 and LTM2987 LTC2980 and LTM2987 are command compatible to LTC2977. They consist of two LTC2977 on a single die, and are instantiated as two separate chips, each supporting eight channels. Suggested-by: Michael Jones Tested-by: Michael Jones Signed-off-by: Guenter Roeck .../devicetree/bindings/hwmon/ltc2978.txt | 4 +- Documentation/hwmon/ltc2978 | 49 ++++++++++++++++------ drivers/hwmon/pmbus/Kconfig | 4 +- drivers/hwmon/pmbus/ltc2978.c | 20 +++++++-- 4 files changed, 58 insertions(+), 19 deletions(-) commit acb092cdf9a285fd4706bc6ffd5f99840d53bba5 Author: Guenter Roeck Date: Mon Aug 17 06:27:56 2015 -0700 hwmon: (ltc2978) Add missing chip IDs for LTC2978 and LTC3882 Add additional chip ID for an older revision of LTC2978, as well as two chip IDs for LTC3882. Turns out the LTC3882 does support the LTC2978_MFR_SPECIAL_ID register, and reading it returns its chip ID, but the register is undocumented. Suggested-by: Michael Jones Tested-by: Michael Jones Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 00c83371911836c47654e1de5b4706a0e578922a Author: Guenter Roeck Date: Mon Aug 17 06:21:01 2015 -0700 hwmon: (ltc2978) Use correct ID mask to detect all chips Per information from Linear Technologies, the ID mask is 12 bit for all chips of this series. Use this mask to detect chips to ensure that all chip revisions are detected. Suggested-by: Michael Jones Tested-by: Michael Jones Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) commit 5e8018fc61423e677398d4ad4d72df70b9788e77 Author: Daniel Borkmann Date: Fri Aug 14 16:03:40 2015 +0200 netfilter: nf_conntrack: add efficient mark to zone mapping This work adds the possibility of deriving the zone id from the skb->mark field in a scalable manner. This allows for having only a single template serving hundreds/thousands of different zones, for example, instead of the need to have one match for each zone as an extra CT jump target. Note that we'd need to have this information attached to the template as at the time when we're trying to lookup a possible ct object, we already need to know zone information for a possible match when going into __nf_conntrack_find_get(). This work provides a minimal implementation for a possible mapping. In order to not add/expose an extra ct->status bit, the zone structure has been extended to carry a flag for deriving the mark. Signed-off-by: Daniel Borkmann Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_conntrack_zones.h | 45 +++++++++++++++++++++-- include/uapi/linux/netfilter/xt_CT.h | 4 ++- net/ipv4/netfilter/nf_conntrack_proto_icmp.c | 3 +- net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c | 4 ++- net/netfilter/nf_conntrack_core.c | 50 +++++++++----------------- net/netfilter/nf_conntrack_netlink.c | 5 ++- net/netfilter/xt_CT.c | 5 ++- 7 files changed, 72 insertions(+), 44 deletions(-) commit deedb59039f111c41aa5a54ee384c8e7c08bc78a Author: Daniel Borkmann Date: Fri Aug 14 16:03:39 2015 +0200 netfilter: nf_conntrack: add direction support for zones This work adds a direction parameter to netfilter zones, so identity separation can be performed only in original/reply or both directions (default). This basically opens up the possibility of doing NAT with conflicting IP address/port tuples from multiple, isolated tenants on a host (e.g. from a netns) without requiring each tenant to NAT twice resp. to use its own dedicated IP address to SNAT to, meaning overlapping tuples can be made unique with the zone identifier in original direction, where the NAT engine will then allocate a unique tuple in the commonly shared default zone for the reply direction. In some restricted, local DNAT cases, also port redirection could be used for making the reply traffic unique w/o requiring SNAT. The consensus we've reached and discussed at NFWS and since the initial implementation [1] was to directly integrate the direction meta data into the existing zones infrastructure, as opposed to the ct->mark approach we proposed initially. As we pass the nf_conntrack_zone object directly around, we don't have to touch all call-sites, but only those, that contain equality checks of zones. Thus, based on the current direction (original or reply), we either return the actual id, or the default NF_CT_DEFAULT_ZONE_ID. CT expectations are direction-agnostic entities when expectations are being compared among themselves, so we can only use the identifier in this case. Note that zone identifiers can not be included into the hash mix anymore as they don't contain a "stable" value that would be equal for both directions at all times, f.e. if only zone->id would unconditionally be xor'ed into the table slot hash, then replies won't find the corresponding conntracking entry anymore. If no particular direction is specified when configuring zones, the behaviour is exactly as we expect currently (both directions). Support has been added for the CT netlink interface as well as the x_tables raw CT target, which both already offer existing interfaces to user space for the configuration of zones. Below a minimal, simplified collision example (script in [2]) with netperf sessions: +--- tenant-1 ---+ mark := 1 | netperf |--+ +----------------+ | CT zone := mark [ORIGINAL] [ip,sport] := X +--------------+ +--- gateway ---+ | mark routing |--| SNAT |-- ... + +--------------+ +---------------+ | +--- tenant-2 ---+ | ~~~|~~~ | netperf |--+ +-----------+ | +----------------+ mark := 2 | netserver |------ ... + [ip,sport] := X +-----------+ [ip,port] := Y On the gateway netns, example: iptables -t raw -A PREROUTING -j CT --zone mark --zone-dir ORIGINAL iptables -t nat -A POSTROUTING -o -j SNAT --to-source --random-fully iptables -t mangle -A PREROUTING -m conntrack --ctdir ORIGINAL -j CONNMARK --save-mark iptables -t mangle -A POSTROUTING -m conntrack --ctdir REPLY -j CONNMARK --restore-mark conntrack dump from gateway netns: netperf -H 10.1.1.2 -t TCP_STREAM -l60 -p12865,5555 from each tenant netns tcp 6 431995 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=5555 dport=12865 zone-orig=1 src=10.1.1.2 dst=10.1.1.1 sport=12865 dport=1024 [ASSURED] mark=1 secctx=system_u:object_r:unlabeled_t:s0 use=1 tcp 6 431994 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=5555 dport=12865 zone-orig=2 src=10.1.1.2 dst=10.1.1.1 sport=12865 dport=5555 [ASSURED] mark=2 secctx=system_u:object_r:unlabeled_t:s0 use=1 tcp 6 299 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=39438 dport=33768 zone-orig=1 src=10.1.1.2 dst=10.1.1.1 sport=33768 dport=39438 [ASSURED] mark=1 secctx=system_u:object_r:unlabeled_t:s0 use=1 tcp 6 300 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=32889 dport=40206 zone-orig=2 src=10.1.1.2 dst=10.1.1.1 sport=40206 dport=32889 [ASSURED] mark=2 secctx=system_u:object_r:unlabeled_t:s0 use=2 Taking this further, test script in [2] creates 200 tenants and runs original-tuple colliding netperf sessions each. A conntrack -L dump in the gateway netns also confirms 200 overlapping entries, all in ESTABLISHED state as expected. I also did run various other tests with some permutations of the script, to mention some: SNAT in random/random-fully/persistent mode, no zones (no overlaps), static zones (original, reply, both directions), etc. [1] http://thread.gmane.org/gmane.comp.security.firewalls.netfilter.devel/57412/ [2] https://paste.fedoraproject.org/242835/65657871/ Signed-off-by: Daniel Borkmann Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_conntrack_zones.h | 31 +++- include/uapi/linux/netfilter/nfnetlink_conntrack.h | 1 + include/uapi/linux/netfilter/xt_CT.h | 6 +- net/ipv4/netfilter/nf_defrag_ipv4.c | 8 +- net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 8 +- net/netfilter/nf_conntrack_core.c | 53 +++--- net/netfilter/nf_conntrack_expect.c | 8 +- net/netfilter/nf_conntrack_netlink.c | 177 +++++++++++++++------ net/netfilter/nf_conntrack_standalone.c | 30 +++- net/netfilter/nf_nat_core.c | 13 +- net/netfilter/xt_CT.c | 17 +- net/sched/act_connmark.c | 1 + 12 files changed, 259 insertions(+), 94 deletions(-) commit 2af0a709134f842b67151d6b97d512184fcc4ad6 Author: Loic Poulain Date: Mon Aug 17 16:00:21 2015 +0200 Bluetooth: hci_bcm: Use non-sleep version of gpio_set_value We should not sleep while holding a spinlock. bcm_gpio_set_power is called while holding the bcm_device_list lock. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dc028da54ed353edd44dca88b7eb19fd5126c354 Author: David Ahern Date: Sun Aug 16 17:13:27 2015 -0600 inet: Move VRF table lookup to inlined function Table lookup compiles out when VRF is not enabled. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/vrf.h | 24 ++++++++++++++++++++++++ net/ipv4/af_inet.c | 10 +--------- 2 files changed, 25 insertions(+), 9 deletions(-) commit 808d28c468a89e8680396d98aea96024b6f5afdc Author: David Ahern Date: Sun Aug 16 10:26:49 2015 -0600 net: Fix docbook warning for IFF_VRF_MASTER enum kbuild test robot reported: tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master head: d52736e24fe2e927c26817256f8d1a3c8b5d51a0 commit: 4e3c89920cd3a6cfce22c6f537690747c26128dd [751/762] net: Introduce VRF related flags and helpers reproduce: make htmldocs >> Warning(include/linux/netdevice.h:1293): Enum value 'IFF_VRF_MASTER' not described in enum 'netdev_priv_flags' Signed-off-by: David Ahern Signed-off-by: David S. Miller include/linux/netdevice.h | 1 + 1 file changed, 1 insertion(+) commit 2f52bdcf6ba1bd81597b1505a222430676548b3a Author: David Ahern Date: Sun Aug 16 07:49:20 2015 -0600 net: Updates to netif_index_is_vrf As Eric noted netif_index_is_vrf is not called with rcu_read_lock held, so wrap the dev_get_by_index_rcu in rcu_read_lock and unlock. If VRF is not enabled or oif is 0 skip the device lookup. In both cases index cannot be the VRF master. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/linux/netdevice.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 9cd3778cd7e8f165675705511cfcd4ea6eb88d27 Merge: 0aa65cc bbceefc Author: David S. Miller Date: Mon Aug 17 15:51:36 2015 -0700 Merge branch 'mlx5e-next' Achiad Shochat says: ==================== Driver updates 16-Aug-2015 This patchset contains bug fixes, new RSS and pause parameters ethtool options, and support for RX CHECKSUM_COMPLETE. Patchset was applied and tested over commit adc6310 ("Merge branch 'mv88e6xxx-switchdev-fdb'"). ==================== Signed-off-by: David S. Miller commit bbceefce9adfc9cf7b4110727c96c841ba8c7964 Author: Achiad Shochat Date: Sun Aug 16 16:04:52 2015 +0300 net/mlx5e: Support RX CHECKSUM_COMPLETE Only for packets with first ethertype set to IPv4/6 for now. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 8 +++-- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 ++- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 42 ++++++++++++++++++----- 3 files changed, 43 insertions(+), 12 deletions(-) commit 3c2d18ef22df1bdccfb11a5b85b29e4e61b9d9c6 Author: Achiad Shochat Date: Sun Aug 16 16:04:51 2015 +0300 net/mlx5e: Support ethtool get/set_pauseparam Only rx/tx pause settings. Autoneg setting is currently not supported. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 38 ++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/port.c | 42 ++++++++++++++++++++++ include/linux/mlx5/driver.h | 5 +++ 3 files changed, 85 insertions(+) commit 6fa1bcab6be6e9bd93f80e345c7e9a4ec7861df9 Author: Achiad Shochat Date: Sun Aug 16 16:04:50 2015 +0300 net/mlx5e: Ethtool link speed setting fixes - Port speed settings are applied by the device only upon port admin status transition from DOWN to UP. So we enforce this transition regardless of the port's current operation state (which may be occasionally DOWN if for example the network cable is disconnected). - Fix the PORT_UP/DOWN device interface enum - Set the local_port bit in the device PAOS register - EXPORT the PAOS (Port Administrative and Operational Status) register set/query access functions. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 25 ++++++---------------- drivers/net/ethernet/mellanox/mlx5/core/port.c | 14 ++++++++---- include/linux/mlx5/driver.h | 11 +++++----- 3 files changed, 23 insertions(+), 27 deletions(-) commit d9a40271cfe625950dc4ef0cbd8429c0d28e62d1 Author: Achiad Shochat Date: Sun Aug 16 16:04:49 2015 +0300 net/mlx5e: HW LRO changes/fixes - Change the maximum LRO session size from 16KB to 64KB - Reduce the LRO session timeout from 512us to 32us in order to reduce the TCP latency of non-LRO'ed flows. - Fix skb_shinfo(skb)->gso_size and set skb_shinfo(skb)->gso_type. - Fix a bug accessing un-initialized mdev pointer. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 +-- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 4 +++- 3 files changed, 5 insertions(+), 4 deletions(-) commit e842b1001dc9b90cc62b489b07ff18e123c8c858 Author: Achiad Shochat Date: Sun Aug 16 16:04:48 2015 +0300 net/mlx5e: Support smaller RX/TX ring sizes We un-intentionally limited the minimum rings size too much. TX minimum ring size reduced from 128 to 64. RX minimum ring size reduced from 128 to 2. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2d75b2bc8a8c0ce5567a6ecef52e194d117efe3f Author: Achiad Shochat Date: Sun Aug 16 16:04:47 2015 +0300 net/mlx5e: Add ethtool RSS configuration options - get_rxfh_key_size - get_rxfh_indir_size - get/set_rxfh indirection table and RSS Toeplitz hash key - get_rxnfc Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 7 ++- .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 71 +++++++++++++++++++--- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 7 ++- 3 files changed, 74 insertions(+), 11 deletions(-) commit 936896e9080b84b0e8b9b23e84fb734e91f5ba6d Author: Achiad Shochat Date: Sun Aug 16 16:04:46 2015 +0300 net/mlx5e: Make RSS indirection table size a constant The indirection table size was defined by a variable that was actually assigned a constant value. Since we do not have any forseen intension to make it configurable we simply made it a constant. We also limit the number of channels such that the RSS indirection table could always populate all RX rings. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 5 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 60 ++++++++++------------- 2 files changed, 30 insertions(+), 35 deletions(-) commit 57afead5445de85658e3fa3811ef0cdbf5ed73bf Author: Achiad Shochat Date: Sun Aug 16 16:04:45 2015 +0300 net/mlx5e: Have a single RSS Toeplitz hash key No need to generate a unique key per TIR. Generating a single key per netdev and copying it to all its TIRs. Signed-off-by: Achiad Shochat Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) commit 0aa65cc0c2ca7e3908b1e4ae7946d909a4882249 Merge: 863960b c0015bf Author: David S. Miller Date: Mon Aug 17 15:41:21 2015 -0700 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next Johan Hedberg says: ==================== pull request: bluetooth-next 2015-08-16 Here's what's likely the last bluetooth-next pull request for 4.3: - 6lowpan/802.15.4 refactoring, cleanups & fixes - Document 6lowpan netdev usage in Documentation/networking/6lowpan.txt - Support for UART based QCA Bluetooth controllers - Power management support for Broeadcom Bluetooth controllers - Change LE connection initiation to always use passive scanning first - Support for new Silicon Wave USB ID Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit e97fedb9ef9868ff24d588be781906cf7c1b59ae Author: Dave Chinner Date: Wed Mar 4 13:40:00 2015 -0500 sync: serialise per-superblock sync operations When competing sync(2) calls walk the same filesystem, they need to walk the list of inodes on the superblock to find all the inodes that we need to wait for IO completion on. However, when multiple wait_sb_inodes() calls do this at the same time, they contend on the the inode_sb_list_lock and the contention causes system wide slowdowns. In effect, concurrent sync(2) calls can take longer and burn more CPU than if they were serialised. Stop the worst of the contention by adding a per-sb mutex to wrap around wait_sb_inodes() so that we only execute one sync(2) IO completion walk per superblock superblock at a time and hence avoid contention being triggered by concurrent sync(2) calls. Signed-off-by: Dave Chinner Signed-off-by: Josef Bacik Reviewed-by: Jan Kara Reviewed-by: Christoph Hellwig Tested-by: Dave Chinner fs/fs-writeback.c | 11 +++++++++++ fs/super.c | 1 + include/linux/fs.h | 2 ++ 3 files changed, 14 insertions(+) commit 74278da9f70d84d715601fe794567a6d2bfdf078 Author: Dave Chinner Date: Wed Mar 4 12:37:22 2015 -0500 inode: convert inode_sb_list_lock to per-sb The process of reducing contention on per-superblock inode lists starts with moving the locking to match the per-superblock inode list. This takes the global lock out of the picture and reduces the contention problems to within a single filesystem. This doesn't get rid of contention as the locks still have global CPU scope, but it does isolate operations on different superblocks form each other. Signed-off-by: Dave Chinner Signed-off-by: Josef Bacik Reviewed-by: Jan Kara Reviewed-by: Christoph Hellwig Tested-by: Dave Chinner fs/block_dev.c | 12 ++++++------ fs/drop_caches.c | 10 ++++++---- fs/fs-writeback.c | 12 ++++++------ fs/inode.c | 28 +++++++++++++--------------- fs/internal.h | 1 - fs/notify/inode_mark.c | 20 ++++++++++---------- fs/quota/dquot.c | 16 ++++++++-------- fs/super.c | 3 ++- include/linux/fs.h | 5 ++++- include/linux/fsnotify_backend.h | 4 ++-- 10 files changed, 57 insertions(+), 54 deletions(-) commit cbedaac63481dea52327127a9f1c60f092bd6b07 Author: Josef Bacik Date: Thu Mar 12 08:19:11 2015 -0400 inode: add hlist_fake to avoid the inode hash lock in evict Some filesystems don't use the VFS inode hash and fake the fact they are hashed so that all the writeback code works correctly. However, this means the evict() path still tries to remove the inode from the hash, meaning that the inode_hash_lock() needs to be taken unnecessarily. Hence under certain workloads the inode_hash_lock can be contended even if the inode is never actually hashed. To avoid this add hlist_fake to test if the inode isn't actually hashed to avoid taking the hash lock on inodes that have never been hashed. Based on Dave Chinner's inode: add IOP_NOTHASHED to avoid inode hash lock in evict basd on Al's suggestions. Thanks, Signed-off-by: Josef Bacik Reviewed-by: Jan Kara Reviewed-by: Christoph Hellwig Tested-by: Dave Chinner include/linux/fs.h | 2 +- include/linux/list.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) commit d353d7587d02116b9732d5c06615aed75a4d3a47 Author: Dave Chinner Date: Wed Mar 4 11:16:36 2015 -0500 writeback: plug writeback at a high level Doing writeback on lots of little files causes terrible IOPS storms because of the per-mapping writeback plugging we do. This essentially causes imeediate dispatch of IO for each mapping, regardless of the context in which writeback is occurring. IOWs, running a concurrent write-lots-of-small 4k files using fsmark on XFS results in a huge number of IOPS being issued for data writes. Metadata writes are sorted and plugged at a high level by XFS, so aggregate nicely into large IOs. However, data writeback IOs are dispatched in individual 4k IOs, even when the blocks of two consecutively written files are adjacent. Test VM: 8p, 8GB RAM, 4xSSD in RAID0, 100TB sparse XFS filesystem, metadata CRCs enabled. Kernel: 3.10-rc5 + xfsdev + my 3.11 xfs queue (~70 patches) Test: $ ./fs_mark -D 10000 -S0 -n 10000 -s 4096 -L 120 -d /mnt/scratch/0 -d /mnt/scratch/1 -d /mnt/scratch/2 -d /mnt/scratch/3 -d /mnt/scratch/4 -d /mnt/scratch/5 -d /mnt/scratch/6 -d /mnt/scratch/7 Result: wall sys create rate Physical write IO time CPU (avg files/s) IOPS Bandwidth ----- ----- ------------ ------ --------- unpatched 6m56s 15m47s 24,000+/-500 26,000 130MB/s patched 5m06s 13m28s 32,800+/-600 1,500 180MB/s improvement -26.44% -14.68% +36.67% -94.23% +38.46% If I use zero length files, this workload at about 500 IOPS, so plugging drops the data IOs from roughly 25,500/s to 1000/s. 3 lines of code, 35% better throughput for 15% less CPU. The benefits of plugging at this layer are likely to be higher for spinning media as the IO patterns for this workload are going make a much bigger difference on high IO latency devices..... Signed-off-by: Dave Chinner Signed-off-by: Josef Bacik Reviewed-by: Jan Kara Tested-by: Dave Chinner Reviewed-by: Christoph Hellwig fs/fs-writeback.c | 3 +++ 1 file changed, 3 insertions(+) commit 863960b4c5c564819b153d53cffdf3f68283eaa2 Merge: 2ea273d 373fb08 Author: David S. Miller Date: Mon Aug 17 15:25:30 2015 -0700 Merge branch 'enic-devcmd2' Govindarajulu Varadarajan says: ==================== enic: add devcmd2 This series adds new devcmd2 support. The first two patches are code refactoring. devcmd is an interface for driver to communicate with fw/adaptor. It involves writing data to hardware registers and waiting for the result. This mechanism does not scale well. The queuing of "no wait" devcmds is done in firmware memory rather than on the host. Firmware memory is a rather more scarce and valuable resource than host memory. A devcmd storm from one vf can disrupt the service on other pf/vf. The lack of flow control allows for possible denial of server from one VM to another. Devcmd2 uses work queue to post the devcmds, just like tx work queue. This allows better flow control. ==================== Signed-off-by: David S. Miller commit 373fb0873d4325a7afa04aec29ced0c122d1f8a9 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Sun Aug 16 01:44:54 2015 +0530 enic: add devcmd2 devcmd is an interface for driver to communicate with fw/adaptor. It involves writing data to hardware registers and waiting for the result. This mechanism does not scale well. The queuing of "no wait" devcmds is done in firmware memory rather than on the host. Firmware memory is a rather more scarce and valuable resource than host memory. A devcmd storm from one vf can disrupt the service on other pf/vf. The lack of flow control allows for possible denial of server from one VM to another. Devcmd2 uses work queue to post the devcmds, just like tx work queue. This allows better flow control. Initialize devcmd2, if fails we fall back to devcmd1. Also change the driver version. Signed-off-by: N V V Satyanarayana Reddy 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/enic_main.c | 5 + drivers/net/ethernet/cisco/enic/vnic_dev.c | 188 +++++++++++++++++++++++++- drivers/net/ethernet/cisco/enic/vnic_dev.h | 3 + drivers/net/ethernet/cisco/enic/vnic_devcmd.h | 5 + drivers/net/ethernet/cisco/enic/vnic_wq.c | 25 +++- drivers/net/ethernet/cisco/enic/vnic_wq.h | 6 + 7 files changed, 222 insertions(+), 12 deletions(-) commit fda3f52bdbbe576d78ca9ea84912b48fa51f0e90 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Sun Aug 16 01:44:53 2015 +0530 enic: add devcmd2 resources Add devcmd resources to vnic_res_type. Add data types used by devcmd. Signed-off-by: N V V Satyanarayana Reddy Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/vnic_dev.h | 1 + drivers/net/ethernet/cisco/enic/vnic_devcmd.h | 23 +++++++++++++++++++++++ drivers/net/ethernet/cisco/enic/vnic_resource.h | 7 +++++++ drivers/net/ethernet/cisco/enic/vnic_wq.h | 11 +++++++++++ 4 files changed, 42 insertions(+) commit 6a3c2f838c69406688ed0dbae473c3a08eeb5519 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Sun Aug 16 01:44:52 2015 +0530 enic: use netdev_ or dev_ instead of pr_ pr_info does not give any details about the interface involved. This patch uses netdev_info for printing the message. Use dev_info where netdev is not ready. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic.h | 19 ++++++++++++ drivers/net/ethernet/cisco/enic/vnic_cq.c | 3 +- drivers/net/ethernet/cisco/enic/vnic_dev.c | 48 ++++++++++++++--------------- drivers/net/ethernet/cisco/enic/vnic_intr.c | 3 +- drivers/net/ethernet/cisco/enic/vnic_rq.c | 6 ++-- drivers/net/ethernet/cisco/enic/vnic_wq.c | 6 ++-- 6 files changed, 54 insertions(+), 31 deletions(-) commit 8b89f3a19de05992a70f727072b65f3ea1397075 Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Sun Aug 16 01:44:51 2015 +0530 enic: move struct definition from .c to .h file Some of the structure definitions are in .c file to make them private to that file. This patch moves the struct definition to .h file, So that their definitions are accessible from other files. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/vnic_dev.c | 39 ----------------------------- drivers/net/ethernet/cisco/enic/vnic_dev.h | 40 +++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 40 deletions(-) commit 7e94d6c4ab69562423fdc18801050a84462c2787 Author: Trond Myklebust Date: Mon Aug 17 16:55:18 2015 -0500 NFS: Don't fsync twice for O_SYNC/IS_SYNC files generic_file_write_iter() will already do an fsync on our behalf if the file descriptor is O_SYNC or the file is marked as IS_SYNC. Signed-off-by: Trond Myklebust fs/nfs/file.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit e824410ffcf4b245296b56c6fdf7b9797fce8c3e Author: Keith Busch Date: Wed Aug 12 16:17:54 2015 -0600 NVMe: Set queue max segments This sets the queue's max segment size to match the device's capabilities. The default of 128 is usable until a device's transfer capability exceeds 512k, assuming a device page size of 4k. Many nvme devices exceed that transfer limit, so this lets the block layer know what kind of commands it to allow to form rather than unnecessarily split them. One additional segment is added to account for a transfer that may start in the middle of a page. Signed-off-by: Keith Busch Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2ea273d76a4869c097c6b1a1070162add2f66a6e Author: David S. Miller Date: Mon Aug 17 14:37:06 2015 -0700 net: Export bpf_prog_create_from_user(). Signed-off-by: David S. Miller net/core/filter.c | 1 + 1 file changed, 1 insertion(+) commit ec120da6f0fe59f175c2a8faa0a7700280c39644 Author: Ian Morris Date: Fri Aug 14 22:43:38 2015 +0100 ipv6: trivial whitespace fix Change brace placement to be in line with coding standards Signed-off-by: Ian Morris Signed-off-by: David S. Miller net/ipv6/udp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f4a3e90ba5739cfd761b6befadae9728bd3641ed Author: Phil Sutter Date: Sat Aug 15 00:37:15 2015 +0200 rhashtable-test: extend to test concurrency After having tested insertion, lookup, table walk and removal, spawn a number of threads running operations on the same rhashtable. Each of them will: 1) insert it's own set of objects, 2) lookup every successfully inserted object and finally 3) remove objects in several rounds until all of them have been removed, making sure the remaining ones are still found after each round. This should put a good amount of load onto the system and due to synchronising thread startup via two semaphores also extensive concurrent table access. The default number of ten threads returned within half a second on my local VM with two cores. Running 200 threads took about four seconds. If slow systems suffer too much from this though, the default could be lowered or even set to zero so this extended test does not run at all by default. Signed-off-by: Phil Sutter Acked-by: Thomas Graf Signed-off-by: David S. Miller lib/test_rhashtable.c | 156 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 155 insertions(+), 1 deletion(-) commit c1f066d4ee0bde4bb0ff4ac295218b631729e0de Merge: 2bd736f 53cf037 Author: David S. Miller Date: Mon Aug 17 14:31:42 2015 -0700 Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge Antonio Quartulli says: ==================== Included changes: - avoid integer overflow in GW selection routine - prevent race condition by making capability bit changes atomic (use clear/set/test_bit) - fix synchronization issue in mcast tvlv handler - fix crash on double list removal of TT Request objects - fix leak by puring packets enqueued for sending upon iface removal - ensure network header pointer is set in skb ==================== Signed-off-by: David S. Miller commit 2bd736fa0d8a1da90e6ccaa6a79e56a8d2ae60c4 Merge: 90eb7fa 8f9c98d Author: David S. Miller Date: Mon Aug 17 14:25:04 2015 -0700 Merge tag 'mac80211-next-for-davem-2015-08-14' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== Another pull request for the next cycle, this time with quite a bit of content: * mesh fixes/improvements from Alexis, Bob, Chun-Yeow and Jesse * TDLS higher bandwidth support (Arik) * OCB fixes from Bertold Van den Bergh * suspend/resume fixes from Eliad * dynamic SMPS support for minstrel-HT (Krishna Chaitanya) * VHT bitrate mask support (Lorenzo Bianconi) * better regulatory support for 5/10 MHz channels (Matthias May) * basic support for MU-MIMO to avoid the multi-vif issue (Sara Sharon) along with a number of other cleanups. ==================== Signed-off-by: David S. Miller commit 18df8a87badac0ab05679df9bd44b5033e30d97c Author: kbuild test robot Date: Tue Aug 18 04:50:36 2015 +0800 dlm: sctp_accept_from_sock() can be static Signed-off-by: Fengguang Wu Signed-off-by: David Teigland fs/dlm/lowcomms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 90eb7fa51ccb9af58c437581af73c4a1d5fd2b9f Merge: a1c234f 30da679 Author: David S. Miller Date: Mon Aug 17 14:22:48 2015 -0700 Merge branch 'bpf_fanout' Willem de Bruijn says: ==================== packet: add cBPF and eBPF fanout modes Allow programmable fanout modes. Support both classical BPF programs passed directly and extended BPF programs passed by file descriptor. One use case is packet steering by deep packet inspection, for instance for packet steering by application layer header fields. Separate the configuration of the fanout mode and the configuration of the program, to allow dynamic updates to the latter at runtime. Changes v1 -> v2: - follow SO_LOCK_FILTER semantics on filter updates - only accept eBPF programs of type BPF_PROG_TYPE_SOCKET_FILTER - rename PACKET_FANOUT_BPF to PACKET_FANOUT_CBPF to match man 2 bpf usage: "classic" vs. "extended" BPF. ==================== Signed-off-by: David S. Miller commit 30da679e679dbe7bb103c5d9c137ec5a070b7150 Author: Willem de Bruijn Date: Fri Aug 14 22:31:37 2015 -0400 selftests/net: test extended BPF fanout mode Test PACKET_FANOUT_EBPF by inserting a program into the the kernel with bpf(), then attaching it to the fanout group. Observe the same payload-based distribution as in the PACKET_FANOUT_CBPF test. Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller tools/testing/selftests/net/psock_fanout.c | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 95e22792fa5460e579a69171777ff79d8725be29 Author: Willem de Bruijn Date: Fri Aug 14 22:31:36 2015 -0400 selftests/net: test classic bpf fanout mode Test PACKET_FANOUT_CBPF by inserting a cBPF program that selects a socket by payload. Requires modifying the test program to send packets with multiple payloads. Also fix a bug in testing the return value of mmap() Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller tools/testing/selftests/net/psock_fanout.c | 16 ++++++++++++---- tools/testing/selftests/net/psock_lib.h | 29 +++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 12 deletions(-) commit f2e520956a1ab636698f8160194c9b8ac0989aab Author: Willem de Bruijn Date: Fri Aug 14 22:31:35 2015 -0400 packet: add extended BPF fanout mode Add fanout mode PACKET_FANOUT_EBPF that accepts an en extended BPF program to select a socket. Update the internal eBPF program by passing to socket option SOL_PACKET/PACKET_FANOUT_DATA a file descriptor returned by bpf(). Signed-off-by: Willem de Bruijn Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller include/uapi/linux/if_packet.h | 1 + net/packet/af_packet.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit 47dceb8ecdc1c3ad1818dfea3d659a05b74c3fc2 Author: Willem de Bruijn Date: Fri Aug 14 22:31:34 2015 -0400 packet: add classic BPF fanout mode Add fanout mode PACKET_FANOUT_CBPF that accepts a classic BPF program to select a socket. This avoids having to keep adding special case fanout modes. One example use case is application layer load balancing. The QUIC protocol, for instance, encodes a connection ID in UDP payload. Also add socket option SOL_PACKET/PACKET_FANOUT_DATA that updates data associated with the socket group. Fanout mode PACKET_FANOUT_CBPF is the only user so far. Signed-off-by: Willem de Bruijn Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Acked-by: Eric Dumazet Signed-off-by: David S. Miller include/uapi/linux/if_packet.h | 2 + net/packet/af_packet.c | 99 +++++++++++++++++++++++++++++++++++++++++- net/packet/internal.h | 5 ++- 3 files changed, 104 insertions(+), 2 deletions(-) commit 00dcffaebf7b4ab0524c56694c22de6b0eb22feb Author: Marcelo Ricardo Leitner Date: Tue Aug 11 19:22:25 2015 -0300 dlm: fix reconnecting but not sending data There are cases on which lowcomms_connect_sock() is called directly, which caused the CF_WRITE_PENDING flag to not bet set upon reconnect, specially on send_to_sock() error handling. On this last, the flag was already cleared and no further attempt on transmitting would be done. As dlm tends to connect when it needs to transmit something, it makes sense to always mark this flag right after the connect. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David Teigland fs/dlm/lowcomms.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit acee4e527d5f069351f835602b23602d01de5e1f Author: Marcelo Ricardo Leitner Date: Tue Aug 11 19:22:24 2015 -0300 dlm: replace BUG_ON with a less severe handling BUG_ON() is a severe action for this case, specially now that DLM with SCTP will use 1 socket per association. Instead, we can just close the socket on this error condition and return from the function. Also move the check to an earlier stage as it won't change and thus we can abort as soon as possible. Although this issue was reported when still using SCTP with 1-to-many API, this cleanup wouldn't be that simple back then because we couldn't close the socket and making sure such event would cease would be hard. And actually, previous code was closing the association, yet SCTP layer is still raising the new data event. Probably a bug to be fixed in SCTP. Reported-by: Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David Teigland fs/dlm/lowcomms.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit ee44b4bc054afc586c92558a225055ef9fd25d17 Author: Marcelo Ricardo Leitner Date: Tue Aug 11 19:22:23 2015 -0300 dlm: use sctp 1-to-1 API DLM is using 1-to-many API but in a 1-to-1 fashion. That is, it's not needed but this causes it to use sctp_do_peeloff() to mimic an kernel_accept() and this causes a symbol dependency on sctp module. By switching it to 1-to-1 API we can avoid this dependency and also reduce quite a lot of SCTP-specific code in lowcomms.c. The caveat is that now DLM won't always use the same src port. It will choose a random one, just like TCP code. This allows the peers to attempt simultaneous connections, which now are handled just like for TCP. Even more sharing between TCP and SCTP code on DLM is possible, but it is intentionally left for a later commit. Note that for using nodes with this commit, you have to have at least the early fixes on this patchset otherwise it will trigger some issues on old nodes. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David Teigland fs/dlm/lowcomms.c | 671 +++++++++++++++++++----------------------------------- 1 file changed, 237 insertions(+), 434 deletions(-) commit 356344c4c36dc960f90a3457dd67fe2efcf92417 Author: Marcelo Ricardo Leitner Date: Tue Aug 11 19:22:22 2015 -0300 dlm: fix not reconnecting on connecting error handling If we don't clear that bit, lowcomms_connect_sock() will not schedule another attempt, and no further attempt will be done. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David Teigland fs/dlm/lowcomms.c | 1 + 1 file changed, 1 insertion(+) commit 0d737a8cfd8341d6ba8215443a3ddfe5ddd4e51a Author: Marcelo Ricardo Leitner Date: Tue Aug 11 19:22:21 2015 -0300 dlm: fix race while closing connections When a connection have issues DLM may need to close it. Therefore we should also cancel pending workqueues for such connection at that time, and not just when dlm is not willing to use this connection anymore. Also, if we don't clear CF_CONNECT_PENDING flag, the error handling routines won't be able to re-connect as lowcomms_connect_sock() will check for it. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David Teigland fs/dlm/lowcomms.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 28926a0965a943f7c1586342f9482a6e41b4f0c9 Author: Marcelo Ricardo Leitner Date: Tue Aug 11 19:22:20 2015 -0300 dlm: fix connection stealing if using SCTP When using SCTP and accepting a new connection, DLM currently validates if the peer trying to connect to it is one of the cluster nodes, but it doesn't check if it already has a connection to it or not. If it already had a connection, it will be overwritten, and the new one will be used for writes, possibly causing the node to leave the cluster due to communication breakage. Still, one could DoS the node by attempting N connections and keeping them open. As said, but being explicit, both situations are only triggerable from other cluster nodes, but are doable with only user-level perms. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David Teigland fs/dlm/lowcomms.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 75e3b37d059856a972a5bf2bdfeac0f0f2db9ea3 Author: Luiz Capitulino Date: Tue Aug 11 16:40:43 2015 -0400 hrtimer: Drop return code of hrtimer_switch_to_hres() It's not checked by the caller. Signed-off-by: Luiz Capitulino Link: http://lkml.kernel.org/r/20150811164043.538241ef@redhat.com Signed-off-by: Thomas Gleixner kernel/time/hrtimer.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit a1c234f95cae2d293047bb6c36e7a4840dbac815 Author: Jiri Benc Date: Fri Aug 14 16:40:40 2015 +0200 lwtunnel: rename ip lwtunnel attributes We already have IFLA_IPTUN_ netlink attributes. The IP_TUN_ attributes look very similar, yet they serve very different purpose. This is confusing for anyone trying to implement a user space tool supporting lwt. As the IP_TUN_ attributes are used only for the lightweight tunnels, prefix them with LWTUNNEL_IP_ instead to make their purpose clear. Also, it's more logical to have them in lwtunnel.h together with the encap enum. Fixes: 3093fbe7ff4b ("route: Per route IP tunnel metadata via lightweight tunnel") Signed-off-by: Jiri Benc Acked-by: Thomas Graf Signed-off-by: David S. Miller include/uapi/linux/lwtunnel.h | 14 +++++++ include/uapi/linux/rtnetlink.h | 15 -------- net/ipv4/ip_tunnel_core.c | 86 +++++++++++++++++++++--------------------- 3 files changed, 57 insertions(+), 58 deletions(-) commit 62ee783bf1f872ba879e088a669b04afebee899b Author: Guenter Roeck Date: Mon Aug 17 13:45:36 2015 -0700 smsc911x: Fix crash seen if neither ACPI nor OF is configured or used Commit 0b50dc4fc971 ("Convert smsc911x to use ACPI as well as DT") makes the call to smsc911x_probe_config() unconditional, and no longer fails if there is no device node. device_get_phy_mode() is called unconditionally, and if there is no phy node configured returns an error code. This error code is assigned to phy_interface, and interpreted elsewhere in the code as valid phy mode. This in turn causes qemu to crash when running a variant of realview_pb_defconfig. qemu: hardware error: lan9118_read: Bad reg 0x86 Fixes: 0b50dc4fc971 ("Convert smsc911x to use ACPI as well as DT") Cc: Jeremy Linton Cc Graeme Gregory Signed-off-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smsc911x.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c87acb2558db7a870575dd8e14ded2e5acbdc295 Merge: fbaff3e e69948a Author: David S. Miller Date: Mon Aug 17 14:05:14 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next Steffen Klassert says: ==================== pull request (net-next): ipsec-next 2015-08-17 1) Fix IPv6 ECN decapsulation for IPsec interfamily tunnels. From Thomas Egerer. 2) Use kmemdup instead of duplicating it in xfrm_dump_sa(). From Andrzej Hajda. 3) Pass oif to the xfrm lookups so that it gets set on the flow and the resolver routines can match based on oif. From David Ahern. 4) Add documentation for the new xfrm garbage collector threshold. From Alexander Duyck. Please pull or let me know if there are problems. ==================== Signed-off-by: David S. Miller commit 05906dec7d7daf197b9b773295c95ad6b9af2a5a Author: Bas Nieuwenhuizen Date: Fri Aug 14 20:08:40 2015 +0200 drm/amdgpu: wait on page directory changes. v2 Pagetables can be moved and therefore the page directory update can be necessary for the current cs even if none of the the bo's are moved. In that scenario there is no fence between the sdma0 and gfx ring, so we add one. v2 (chk): rebased Signed-off-by: Bas Nieuwenhuizen Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++++ 3 files changed, 11 insertions(+) commit b325a789c7e6554a14fae3c2310ee22fa4ca7cf6 Author: Thierry Reding Date: Fri Aug 14 12:50:12 2015 +0200 drm/amdgpu: Select BACKLIGHT_LCD_SUPPORT Explicitly select BACKLIGHT_LCD_SUPPORT to satisfy the direct dependency of BACKLIGHT_CLASS_DEVICE. Cc: Alex Deucher Cc: Christian König Signed-off-by: Thierry Reding Signed-off-by: Alex Deucher drivers/gpu/drm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 33610527907d532e5abedc2b1026b4992726c3b0 Author: Thierry Reding Date: Fri Aug 14 12:50:11 2015 +0200 drm/radeon: Select BACKLIGHT_LCD_SUPPORT Explicitly select BACKLIGHT_LCD_SUPPORT to satisfy the direct dependency of BACKLIGHT_CLASS_DEVICE. Cc: Alex Deucher Cc: Christian König Signed-off-by: Thierry Reding Signed-off-by: Alex Deucher drivers/gpu/drm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 432a4ff8b7224908a8bbc34b598f48af3f42b827 Author: Christian König Date: Wed Aug 12 11:46:04 2015 +0200 drm/amdgpu: cleanup sheduler rq handling v2 Rework run queue implementation, especially remove the odd list handling. v2: cleanup the code only, no algorithem change. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 103 +++++++++++--------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 25 +++---- 3 files changed, 54 insertions(+), 76 deletions(-) commit c3b95d4f9e460704e184ded7af60b9c4898f6181 Author: Chunming Zhou Date: Fri Aug 14 14:55:27 2015 +0800 drm/amdgpu: move prepare work out of scheduler to cs_ioctl Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 1c8f805af9af445a42b8dbda5f620752996cba44 Author: Chunming Zhou Date: Thu Aug 13 13:04:06 2015 +0800 drm/amdgpu: fix unnecessary wake up decrease CPU extra overhead. Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 ++++++---- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) commit 6d1d0ef7433caf1df920116bfd445aa698a7f37d Author: monk.liu Date: Fri Aug 14 13:36:41 2015 +0800 drm/amdgpu: fix duplicated mapping invoke bug fix the bug that there is duplicated bo_update_mapping issued Signed-off-by: monk.liu Reviewed-by: Chunming Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 1 + 1 file changed, 1 insertion(+) commit 1939e3e265d2fb984b56829c51f5843bfc6d5292 Author: monk.liu Date: Thu Aug 13 16:19:54 2015 +0800 drm/amdgpu: drop bo_list_clone when no scheduler bo_list_clone() will take a lot of time when bo_list hold too much elements, like above 7000 Signed-off-by: Monk.Liu Reviewed-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit a895c222e7ab5f50ec10e209cd4548ecd5dd9443 Author: Alex Deucher Date: Thu Aug 13 13:20:20 2015 -0400 drm/amdgpu: disable GPU reset by default It's not validated yet and causes more harm than good. Avoids spurious resets. Reviewed-by: Leo Liu 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 a8f5bf0b220c28b1b600a5ff3cae0b53c5c2079b Author: monk.liu Date: Wed Aug 12 17:56:52 2015 +0800 drm/amdgpu: fix type mismatch error remaining timeout returned by amdgpu_fence_wait_any can be larger than max int value, thus the truncated 32 bit value in r ends up being negative while its original long value is positive. Signed-off-by: monk.liu Reviewed-by: Michel Dänzer Reviewed-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 281b42230175608dec0cd8dab9908250e7aa36a9 Author: Chunming Zhou Date: Wed Aug 12 12:58:31 2015 +0800 drm/amdgpu: add reference for **fence fix fence is released when pass to **fence sometimes. add reference for it. Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3 +++ drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1 + drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 1 + 11 files changed, 15 insertions(+), 3 deletions(-) commit 1ffd265243803ac5de9927dfc32541f41da2acf3 Author: Christian König Date: Tue Aug 11 17:29:52 2015 +0200 drm/amdgpu: fix waiting for all fences before flipping Otherwise we might see corruption. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 81 +++++++++++++++++++---------- 2 files changed, 56 insertions(+), 29 deletions(-) commit 4127a59e0b3f914ae8d9843d521a07e117db045a Author: Christian König Date: Tue Aug 11 16:35:54 2015 +0200 drm/amdgpu: fix UVD return code checking Signed-off-by: Christian König Reviewed-by: Alex Deucher Tested-and-Reviewed-by: Leo Liu drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 5b232c2a717684d0dffc27e50bf05e1fb72f9d6e Author: Christian König Date: Mon Aug 10 14:16:24 2015 +0200 drm/amdgpu: remove scheduler fence list v2 Unused and missing proper locking. v2: add locking comment to commit message. Signed-off-by: Christian König Reviewed-by: Chunming Zhou (v1) drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 1 - drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 -- drivers/gpu/drm/amd/scheduler/sched_fence.c | 19 +------------------ 3 files changed, 1 insertion(+), 21 deletions(-) commit 05caae8515e12073f4a3beb048e0d289cbe687b7 Author: Christian König Date: Mon Aug 10 14:04:12 2015 +0200 drm/amdgpu: remove amd_sched_wait_emit v2 Not used any more. v2: remove amd_sched_emit as well. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 2 - drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 61 --------------------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 10 ----- 3 files changed, 73 deletions(-) commit 2983e5cef33b48dede6c023230cc0b54d6f67362 Author: Christian König Date: Mon Aug 10 14:20:55 2015 +0200 drm/amdgpu: remove unecessary scheduler fence callbacks Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/sched_fence.c | 31 +++++++---------------------- 1 file changed, 7 insertions(+), 24 deletions(-) commit db789d34514b1b1bec20b30f9ae0b61c36f028b8 Author: Christian König Date: Mon Aug 10 17:27:23 2015 +0200 drm/amdgpu: fix scheduler fence implementation Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/sched_fence.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5516ab86a873efc78fc356b0979294203f1cffb0 Author: Daniel Vetter Date: Thu Jul 9 23:32:50 2015 +0200 drm/amdgpu: don't grab dev->struct_mutex in pm functions Similar to radeon, except that amdgpu doesn't even use struct_mutex to protect anything like the shared z buffer (sane gpu architecture, yay!). And the code already grabs the globa adev->ring_lock, so this code can't race with itself. Which makes struct_mutex completely redundnant. Remove it. Cc: Alex Deucher Cc: "Christian König" Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 2 -- 1 file changed, 2 deletions(-) commit db4448f78d5982997751120ca358c97a7f96e122 Author: Daniel Vetter Date: Thu Jul 9 23:32:49 2015 +0200 drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete It really doesn't protect anything which doesn't have other locks already. Also this is run from driver unload code so not much need for locks anyway. Same changes as for radeon really. Cc: Alex Deucher Cc: "Christian König" Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 34ddc3e9d1781a4914c673013c0eaca3ae642641 Author: Daniel Vetter Date: Thu Jul 9 23:32:48 2015 +0200 drm/radeon: Don't take dev->struct_mutex in pm functions We already grab 2 device-global locks (write-sema rdev->pm.mclk_lock and rdev->ring_lock), adding another global mutex won't serialize this code more. And since there's really nothing interesting that gets protected in radeon by dev->struct mutex (we only have the global z buffer owners and it's still serializing gem bo destruction in the drm core - which is irrelevant since radeon uses ttm anyway internally) this doesn't add protection. Remove it. Cc: Alex Deucher Cc: "Christian König" Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_pm.c | 5 ----- 1 file changed, 5 deletions(-) commit 42192a941e427440e642623c64bda4486c527a54 Author: Daniel Vetter Date: Thu Jul 9 23:32:47 2015 +0200 drm/radeon: Don't take dev->struct_mutex in bo_force_delete It really doesn't protect anything which doesn't have other locks already. Also this is run from driver unload code so not much need for locks anyway. Cc: Alex Deucher Cc: "Christian König" Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/radeon_object.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c548b345d15092bf46469a0339d41ae3e106987d Author: Christian König Date: Fri Aug 7 20:22:40 2015 +0200 drm/amdgpu: remove VI hw bug workaround v3 The workaround simply doesn't work because VM mappings are controlled by userspace not the kernel. Additional to that this is just a performance problem which happens if you have holes in your VM mapping. v2: adjust virtual addr alignment as well. v3: fix trivial warning Signed-off-by: Christian König Reviewed-by: Monk Liu (v1) Reviewed-by: Jammy Zhou (v2) drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) commit 00d2a2b21dbd6010247d44cd0cd05e5bc40af8e6 Author: Christian König Date: Fri Aug 7 16:15:36 2015 +0200 drm/amdgpu: cleanup amdgpu_fence_ring_wait_seq Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 84 ++++++------------------------- 1 file changed, 15 insertions(+), 69 deletions(-) commit 68ed3de43428def8ca0105bb53da8863ba456114 Author: Christian König Date: Fri Aug 7 15:57:21 2015 +0200 drm/amdgpu: remove duplicate amdgpu_fence_process implementation Looks like that somehow got missed while during porting the radeon changes. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 59 +------------------------------ 1 file changed, 1 insertion(+), 58 deletions(-) commit 02bc0650bc930105346773253e5bf33c2917c601 Author: Christian König Date: Fri Aug 7 13:53:36 2015 +0200 drm/amdgpu: remove amdgpu_fence_wait It was just a wrapper for fence_wait anyway. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 22 ---------------------- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 4 ++-- 6 files changed, 7 insertions(+), 30 deletions(-) commit 713293b82563006df3cc91582b5b36b092481d76 Author: Christian König Date: Thu Aug 6 20:44:47 2015 +0200 drm/amdgpu: use the reservation obj wait for the UVD msg Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 3cdb8119d95411ddbca9f9af13b72e4afce6e6d2 Author: Christian König Date: Thu Aug 6 17:49:25 2015 +0200 drm/amdgpu: remove amdgpu_fence_signaled The common kernel function does the same thing. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 22 ---------------------- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 7 ++++--- 3 files changed, 4 insertions(+), 26 deletions(-) commit f556cb0caeec1ba9b8e5e2aa85b47e76277f5d4b Author: Chunming Zhou Date: Sun Aug 2 11:18:04 2015 +0800 drm/amd: add scheduler fence implementation (v2) scheduler fence is based on kernel fence framework. v2: squash in Christian's build fix Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/Makefile | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 21 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 10 --- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 34 ++++---- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 26 +++++- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 33 +++++++- drivers/gpu/drm/amd/scheduler/sched_fence.c | 112 ++++++++++++++++++++++++++ 9 files changed, 202 insertions(+), 38 deletions(-) commit 4af9f07ccdac96e16f7a0ddaf983891a29ebd11a Author: Chunming Zhou Date: Mon Aug 3 12:57:31 2015 +0800 drm/amdgpu: use kernel submit helper in vm Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 14 --- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 159 ++++++------------------------ 3 files changed, 33 insertions(+), 144 deletions(-) commit 953e8fd4e734857f6dabbaf325035bf10c4a9c7a Author: Chunming Zhou Date: Thu Aug 6 15:19:12 2015 +0800 drm/amdgpu: use amd_sched_job in its backend ops Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 34 +++++++++++++-------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 30 +++++++++++------------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 11 +++++---- 3 files changed, 37 insertions(+), 38 deletions(-) commit 6f0e54a964932d3d5252ac1ff7ab153c984a5d51 Author: Christian König Date: Wed Aug 5 21:22:10 2015 +0200 drm/amdgpu: cleanup and fix scheduler fence handling v2 v2: rebased Signed-off-by: Christian König Reviewed-by: Alex Deucher (v1) Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 26 ++++-------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 61 +++++++++++++++------------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 7 ++- 3 files changed, 44 insertions(+), 50 deletions(-) commit 91404fb20825418fd9ab8e6533bc336e1ffc748e Author: Christian König Date: Wed Aug 5 18:33:21 2015 +0200 drm/amdgpu: merge amd_sched_entity and amd_context_entity v2 Avoiding a couple of casts. v2: rename c_entity to entity as well Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 18 +++---- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 12 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 18 +++---- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 67 +++++++++++---------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 57 ++++++++++------------- 7 files changed, 81 insertions(+), 101 deletions(-) commit 4cd7f42cf8f57512b13a13bb7dcbeabb644f5264 Author: Christian König Date: Wed Aug 5 18:18:52 2015 +0200 drm/amdgpu: fix coding style in a couple of places Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 ++---- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 17 ++++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) commit ddf94d33d6434199be08f8965f63d408e2787539 Author: Christian König Date: Wed Aug 5 18:11:14 2015 +0200 drm/amdgpu: remove unused parent entity Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 3 --- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 -- 3 files changed, 1 insertion(+), 6 deletions(-) commit 4cef92670bc908aaa48771fc9c72f4bcfb7d6a35 Author: Chunming Zhou Date: Wed Aug 5 19:52:14 2015 +0800 drm/amdgpu: process sched job exactly triggered by fence signal Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 19 ++++--- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 77 ++++++++++++++------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 18 +++++-- 4 files changed, 68 insertions(+), 48 deletions(-) commit 80de5913cf31c86d64547af0715de4822c9b1abe Author: Chunming Zhou Date: Wed Aug 5 19:07:08 2015 +0800 Revert "drm/amdgpu: return new seq_no for amd_sched_push_job" This reverts commit d1d33da8eb86b8ca41dd9ed95738030df5267b95. Reviewed-by: Christian K?nig Conflicts: drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 9 +++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 27 +++++++++++++++++++++------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 ++++++---- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- 5 files changed, 38 insertions(+), 15 deletions(-) commit 47f38501f11fa45d8a7797f1965448c1e20049d4 Author: Christian König Date: Tue Aug 4 17:51:05 2015 +0200 drm/amdgpu: cleanup amdgpu_ctx inti/fini v2 Cleanup the kernel context handling. v2: rebased Signed-off-by: Christian König Reviewed-by: Chunming Zhou (v1) drivers/gpu/drm/amd/amdgpu/amdgpu.h | 9 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 145 ++++++++++++++--------------- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 8 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 18 ++-- 5 files changed, 89 insertions(+), 104 deletions(-) commit 0e89d0c16b9446a094215e71734e583c438bf83d Author: Christian König Date: Tue Aug 4 16:58:36 2015 +0200 drm/amdgpu: stop leaking the ctx id into the scheduler v2 Id's are for the IOCTL ABI only. v2: remove tgid as well Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 11 ++++------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 +++------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 6 ------ 3 files changed, 7 insertions(+), 20 deletions(-) commit efd4ccb59a4acb8b85835d6b053362dbacee40f9 Author: Christian König Date: Tue Aug 4 16:20:31 2015 +0200 drm/amdgpu: cleanup ctx_mgr init/fini Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 40 +++++++++++++++++++-------------- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 8 ++----- 3 files changed, 27 insertions(+), 25 deletions(-) commit 34cb581a7d99401cad0e1c43b528690885435f5b Author: Christian König Date: Tue Aug 4 11:54:48 2015 +0200 drm/amdgpu: fix bo list handling in CS We didn't initialized the mutex in the cloned bo list resulting in nice warnings from lockdep. Also fixes error handling in this function. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 83 ++++++++++++----------------- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 +- 3 files changed, 37 insertions(+), 56 deletions(-) commit 351dba73691fc632b269f531bbce80157f79c5b3 Author: Christian König Date: Mon Aug 3 20:39:12 2015 +0200 drm/amdgpu: reorder the code to avoid forward declerations Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 61 ++++++++++++++++------------------ 1 file changed, 28 insertions(+), 33 deletions(-) commit 7484667c6a8a9122d139a287454bc9c8799c3def Author: Chunming Zhou Date: Tue Aug 4 11:30:09 2015 +0800 drm/amdgpu: move sched job process from isr to fence callback This way can avoid interrupt lost, and can process sched job exactly. Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 19 +------------------ drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 13 +++++++++++++ 3 files changed, 15 insertions(+), 19 deletions(-) commit 27f6642d066ecea7b535dd9b24e2f41e54f3dd85 Author: Jammy Zhou Date: Mon Aug 3 10:27:57 2015 +0800 drm/amdgpu: add amd_sched_next_queued_seq function This function is used to get the next queued sequence number Signed-off-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 12 ++++++++++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) commit 63ad8d5882fcd466861fdbe51fc3a119b894d9a3 Author: Jammy Zhou Date: Fri Jul 31 17:54:29 2015 +0800 drm/amdgpu: make last_handled_seq atomic Signed-off-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 6 +++--- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit f95b7e3e8664fbea4e60f15e7e8a975e4b2b7c3f Author: Jammy Zhou Date: Fri Jul 31 17:18:15 2015 +0800 drm/amdgpu: add amd_sched_commit This function is to update last_emitted_v_seq and wake up the waiters. It should be called by driver in the run_job backend function Signed-off-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 5 ++--- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 12 ++++++++++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) commit ea199cc9f825f3ef5aab3db5f00dcc639f8a8b02 Author: Jammy Zhou Date: Fri Jul 31 16:47:28 2015 +0800 drm/amdgpu: return new seq_no for amd_sched_push_job It is clean to update last_queued_v_seq in the scheduler module Signed-off-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 9 ++------- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 27 ++++++--------------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 ++++------ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 +- 5 files changed, 15 insertions(+), 38 deletions(-) commit dd01d071957ded58d9bae3d3bf6061ada1d84692 Author: Jammy Zhou Date: Thu Jul 30 17:19:52 2015 +0800 drm/amdgpu: some code refinement v2 Fix the code alignment, etc. v2: rebase the code Signed-off-by: Jammy Zhou Reviewed-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 26 +++++++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 9 +++++---- 2 files changed, 18 insertions(+), 17 deletions(-) commit 03d3a3e634894259a27979f4a372273162611e78 Author: Chunming Zhou Date: Mon Aug 3 20:02:43 2015 +0800 drm/amdgpu: fix null pointer by previous cleanup Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 4 ---- 1 file changed, 4 deletions(-) commit 1763552ee8a7f39a1788d24e27b50d4dee383520 Author: Chunming Zhou Date: Mon Aug 3 11:43:19 2015 +0800 drm/amdgpu: add kernel fence in ib_submit_kernel_helper every sbumission should be able to get a fence. Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 8 ++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 8 +++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 12 ++++++++---- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 6 ++++-- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 6 ++++-- 9 files changed, 41 insertions(+), 20 deletions(-) commit ed88a0ee7ff53c292350fc5d38eae161c2372d51 Author: Chunming Zhou Date: Mon Aug 3 13:22:35 2015 +0800 drm/amdgpu: use kernel fence for sdma ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 2 +- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 2 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit ab3cb0ce9e865c53f2027068f49a0edb40666f3f Author: Chunming Zhou Date: Mon Aug 3 13:19:43 2015 +0800 drm/amdgpu: use kernel fence for gfx ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6863bc8bb3750049d1b63574ef29cbf94d52eb47 Author: Chunming Zhou Date: Mon Aug 3 16:19:29 2015 +0800 drm/amdgpu: use kernel fence in amdgpu_test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 46 +++++++++++++++----------------- 1 file changed, 22 insertions(+), 24 deletions(-) commit ed40bfb81af54fcdc1b96ffdeb14d69458234642 Author: Chunming Zhou Date: Mon Aug 3 13:28:16 2015 +0800 drm/amdgpu: use kernel fence for vce ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 14 +++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 4 ++-- 3 files changed, 12 insertions(+), 11 deletions(-) commit 0e3f154a9eb9f7a5ec365c4586a606ba882a3f15 Author: Chunming Zhou Date: Mon Aug 3 13:11:04 2015 +0800 drm/amdgpu: change uvd ib test to use kernel fence directly Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 4 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 14 +++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 6 +++--- 6 files changed, 21 insertions(+), 19 deletions(-) commit bb1e38a4bead5025ecca90544f0f733f59996b13 Author: Chunming Zhou Date: Mon Aug 3 18:19:38 2015 +0800 drm/amdgpu: use kernel fence for last_pt_update Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 24 ++++++++++++------------ 3 files changed, 15 insertions(+), 15 deletions(-) commit e40a31159b72742224c249cf57c5313be7ccd629 Author: Chunming Zhou Date: Mon Aug 3 11:38:09 2015 +0800 drm/amdgpu: use kernel fence diretly in amdgpu_bo_fence Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 6 +++--- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) commit 1d7dd229f5dded247bc8800f8f4551d3d6314afa Author: Christian König Date: Fri Jul 31 14:31:49 2015 +0200 drm/amdgpu: clean up amd sched wait_ts and wait_signal Remove code not used at the moment. Signed-off-by: Christian König Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 6 ---- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 47 ++++----------------------- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 5 --- 3 files changed, 7 insertions(+), 51 deletions(-) commit 7fc11959018f8ba2d92025679a72339da18a74ad Author: Christian König Date: Thu Jul 30 11:53:42 2015 +0200 drm/amdgpu: stop using addr to check for BO move v3 It is theoretically possible that a swapped out BO gets the same GTT address, but different backing pages while being swapped in. Instead just use another VA state to note updated areas. Ported from not upstream yet radeon commit with the same name. v2: fix some bugs in the original implementation found in the radeon code. v3: squash in VCE/UVD fix Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 15 +++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 11 +++++- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 67 ++++++++++++++++++++-------------- 3 files changed, 59 insertions(+), 34 deletions(-) commit 7f06c236b964db3d8d086c5a0087b2eb4de3bf7a Author: monk.liu Date: Thu Jul 30 18:28:12 2015 +0800 drm/amdgpu: move wait_queue_head from adev to ring (v2) thus unnecessary wake up could be avoid between rings v2: move wait_queue_head to fence_drv from ring Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 225 ++++++++++-------------------- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 + 3 files changed, 77 insertions(+), 152 deletions(-) commit e29551556e055f463fb80cfb07e1cb15641e60a3 Author: monk.liu Date: Thu Jul 30 18:26:18 2015 +0800 drm/amdgpu: re-implement fence_default_wait use fence_wait_any to implement fence_default_wait Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 37 ++++--------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) commit 332dfe907bef6f299f5844f947c4e141eebb8091 Author: monk.liu Date: Thu Jul 30 15:19:05 2015 +0800 drm/amdgpu: new implement for fence_wait_any (v2) origninal method will sleep/schedule at the granurarity of HZ/2 and based on seq signal method, the new implement is based on kernel fance interface, no unnecessary schedule at all v2: replace logic of original amdgpu_fence_wait_any Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 115 +++++++++++++++++++----------- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 3 +- 3 files changed, 77 insertions(+), 47 deletions(-) commit 2e536084f24f99f0a2cc0b6ce38ad8298ea58b22 Author: monk.liu Date: Thu Jul 30 14:56:18 2015 +0800 drm/amdgpu: use kernel fence interface when possible Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 8128765ce5fb68e3b34a8f524791d5758514f511 Author: Chunming Zhou Date: Fri Jul 3 14:18:26 2015 +0800 drm/amdgpu: use scheduler for VCE ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 158 ++++++++++++++++++-------------- 1 file changed, 90 insertions(+), 68 deletions(-) commit 7b5ec431770ac581aa23d460f670cfb97c14280d Author: Chunming Zhou Date: Fri Jul 3 14:08:18 2015 +0800 drm/amdgpu: use scheduler for UVD ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 61 +++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 19 deletions(-) commit 0011fdaa4dab19bf545a28c0d4d164bba4745d29 Author: Chunming Zhou Date: Mon Jun 1 15:33:20 2015 +0800 drm/amdgpu: use gpu scheduler for sdma ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 25 +++++++++++-------------- drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 26 ++++++++++++-------------- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 25 +++++++++++-------------- 3 files changed, 34 insertions(+), 42 deletions(-) commit 42d13693c01f895d7918ed49c65c0c4844027314 Author: Chunming Zhou Date: Mon Jun 1 15:16:03 2015 +0800 drm/amdgpu: Use gpu scheduler for gfx ring ib test Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 28 ++++++++++++++-------------- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 27 +++++++++++++-------------- 2 files changed, 27 insertions(+), 28 deletions(-) commit 3c704e934d07bcb5fdf9725db190e2ae60fba1bd Author: Chunming Zhou Date: Wed Jul 29 10:33:14 2015 +0800 drm/amdgpu: add helper function for kernel submission Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 7 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 35 +++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit d1ff9086c1b8e67390161599006a34056b437a72 Author: Chunming Zhou Date: Thu Jul 30 17:59:43 2015 +0800 drm/amdgpu: fix seq in ctx_add_fence if enabling scheduler, then the queued seq is assigned when pushing job before emitting job. Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 ++--- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 +++++- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++--- 6 files changed, 15 insertions(+), 13 deletions(-) commit 51b9db27d07869cf565ba135e97e2ed5f858612e Author: Chunming Zhou Date: Tue Jul 28 17:31:04 2015 +0800 drm/amdgpu: wait forever for wait emit the job must be emitted by scheduler, otherwise scheduler is abnormal. Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit 4afcb30383bef8bf972c6aae47995ef314e5f8a1 Author: Jammy Zhou Date: Thu Jul 30 16:44:05 2015 +0800 drm/amdgpu: add amdgpu.sched_hw_submission option This option can be used to specify the max number of submissions in the active HW queue. The default value is 2 now. Signed-off-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 3 ++- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 5 +++-- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 5 ++--- 5 files changed, 12 insertions(+), 6 deletions(-) commit 1333f723fb6f1356a54135586f1ede44dcaa9652 Author: Jammy Zhou Date: Thu Jul 30 16:36:58 2015 +0800 drm/amdgpu: add amdgpu.sched_jobs option This option can be used to specify the max job number in the job queue, and it is 16 by default. Signed-off-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 3 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 6 ++++-- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 4 ++-- 5 files changed, 13 insertions(+), 5 deletions(-) commit c0044bc2c62dc3267f2a555ed8342181516008a5 Author: Jammy Zhou Date: Thu Jul 30 16:24:53 2015 +0800 drm/amdgpu: silent the message for GPU scheduler creation Signed-off-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 2 -- 1 file changed, 2 deletions(-) commit 1d3897e056d2ff2bb3b17e054aa75d36adacaacc Author: Christian König Date: Mon Jul 27 15:40:35 2015 +0200 drm/amdgpu: fix syncing to VM updates Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit afe10081498fdf2c5b92c7fcc534e49544218fb9 Author: Chunming Zhou Date: Tue Jul 28 16:11:52 2015 +0800 drm/amdgpu: add check for callback it is possible that the callback isn't defined sometimes. Signed-off-by: Chunming Zhou Reviewed-by: Christian K?nig drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 02b9f0bfd49da01629eef6d250c477490047acd6 Author: Jammy Zhou Date: Wed May 27 18:23:34 2015 +0800 drm/amdgpu: add enable_scheduler module option Signed-off-by: Jammy Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +++ 1 file changed, 3 insertions(+) commit 176e1ab1b534368d0cd338a010aaea99067c3c6e Author: Chunming Zhou Date: Fri Jul 24 10:49:47 2015 +0800 drm/amdgpu: protect fence_process from multiple context fence_process may be called from kthread, user thread and interrupt context. it is possible to called concurrently, then will wake up fence queue multiple times. Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 6 +++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) commit e0d8f3c34e54b7f7563360131e89be0d9405d436 Author: Chunming Zhou Date: Tue Jul 21 17:43:41 2015 +0800 drm/amdgpu: add sched isr to fence process Signed-off-by: Chunming Zhou Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit d5fc5e82a3127b8839c4a4457f3b950a009737a7 Author: Chunming Zhou Date: Tue Jul 21 16:52:10 2015 +0800 drm/amdgpu: dispatch job for vm use kernel context to submit command for vm Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 20 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 245 ++++++++++++++++++++++++++------- 2 files changed, 217 insertions(+), 48 deletions(-) commit 23ca0e4e478836dcb93a54aa68cb48fbc66fb0ed Author: Chunming Zhou Date: Mon Jul 6 13:42:58 2015 +0800 drm/amdgpu: add kernel ctx support (v2) v2: rebase against kfd changes Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 83 +++++++++++++++++++++--------- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 ++++ 3 files changed, 71 insertions(+), 24 deletions(-) commit 4274f5d45cf11f88d7380702a7147b70553ddd6e Author: Chunming Zhou Date: Tue Jul 21 16:04:39 2015 +0800 drm/amdgpu: prepare job before push to sw queue for pte ring user mode will still use pte ring as a normal ring. if the prepare job generates another command(update pte) on its ring in scheduler, then will kill scheduler which is going to waiting later job but pending running job. Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) commit 4b559c90bc1870313f02cceef680884519af6b2b Author: Chunming Zhou Date: Tue Jul 21 15:53:04 2015 +0800 drm/amdgpu: make sure the fence is emitted before ring to get it. Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 26 +++++++++----------------- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 10 ++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 5 ++++- 4 files changed, 25 insertions(+), 18 deletions(-) commit b43a9a7e87d2bbb8d0c6ae4ff06dcc604f00e31a Author: Chunming Zhou Date: Tue Jul 21 15:13:53 2015 +0800 drm/amdgpu: use scheduler user seq instead of previous user seq Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit 049fc527b4641f99e573b26f1a726a3eadd0cc25 Author: Chunming Zhou Date: Tue Jul 21 14:36:51 2015 +0800 drm/amdgpu: dispatch jobs in cs BO validation is moved to scheduler except usrptr which must be validated in user process Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 256 +++++++++++++++++++++++++-------- 2 files changed, 200 insertions(+), 57 deletions(-) commit 372bc1e18ca961ef51997df235e822aed6283726 Author: Chunming Zhou Date: Tue Jul 21 13:47:05 2015 +0800 drm/amdgpu: add bo list copy Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 50 +++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) commit c1b69ed0c62f9d86599600f4c1a3bd82db1b7362 Author: Chunming Zhou Date: Tue Jul 21 13:45:14 2015 +0800 drm/amdgpu: add backend implementation of gpu scheduler (v2) v2: fix rebase breakage Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 107 ++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+), 2 deletions(-) commit 2c4888a0d392b206eb348d4fc6dec539eee2c534 Author: Chunming Zhou Date: Tue Jul 21 13:19:45 2015 +0800 drm/amdgpu: disable hw semaphore with scheduler Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9cb7e5a91f6cd4dc018cca7120d2da067f816d3a Author: Chunming Zhou Date: Tue Jul 21 13:17:19 2015 +0800 drm/amdgpu: add context entity init Signed-off-by: Chunming Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 36 ++++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) commit b80d8475c1fdf5f4bcabb65168b2e8a9c3d77731 Author: Alex Deucher Date: Sun Aug 16 22:55:02 2015 -0400 drm/amdgpu: add scheduler initialization 1. Add kernel parameter option, default 0 2. Add scheduler initialization for amdgpu Signed-off-by: Chunming Zhou Signed-off-by: Jammy Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/Makefile | 7 ++++++- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 10 ++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) commit a72ce6f84109c1dec1ab236d65979d3250668af3 Author: Jammy Zhou Date: Fri May 22 18:55:07 2015 +0800 drm/amd: add basic scheduling framework run queue: A set of entities scheduling commands for the same ring. It implements the scheduling policy that selects the next entity to emit commands from. entity: A scheduler entity is a wrapper around a job queue or a group of other entities. This can be used to build hierarchies of entities. For example all job queue entities belonging to the same process may be placed in a higher level entity and scheduled against other process entities. Entities take turns emitting jobs from their job queue to the corresponding hardware ring, in accordance with the scheduler policy. Signed-off-by: Shaoyun Liu Signed-off-by: Chunming Zhou Signed-off-by: Jammy Zhou Acked-by: Christian K?nig Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 531 ++++++++++++++++++++++++++ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 160 ++++++++ 2 files changed, 691 insertions(+) commit 2da78e21d153d333778d6566f159be06548418f9 Author: David Zhang Date: Sat Jul 11 23:13:40 2015 +0800 drm/amdgpu: Enable the Fiji DID 0x7300 support Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 ++ 1 file changed, 2 insertions(+) commit d07f5c4c235670fa4686eb08cb6211eb3bd0c864 Author: Alex Deucher Date: Thu Aug 6 11:51:23 2015 -0400 drm/amdgpu: remove VM workaround for Fiji The bug is fixed in fiji. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 188a9bcd6cbe55c6fea23309548741d8e34bb590 Author: Alex Deucher Date: Mon Jul 27 14:24:14 2015 -0400 drm/amdgpu: add support for VCE 3.x on Fiji VCE on fiji is single pipe only. Reviewed-by: David Zhang Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 5 +++++ drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 7 +++++++ drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++++++ 3 files changed, 19 insertions(+) commit 974ee3db0ff88e5413b734e634119d1e8a10a77f Author: David Zhang Date: Wed Jul 8 17:32:15 2015 +0800 drm/amdgpu: Add Fiji support to the UVD 6.0 IP module Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 5 +++++ drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++++++ 2 files changed, 12 insertions(+) commit 1a5bbb669597d7c47da2d7fd03ed7c33989257b8 Author: David Zhang Date: Wed Jul 8 17:29:27 2015 +0800 drm/amdgpu: Add Fiji support to the SDMA 3.0 IP module Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 31 +++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++++++ 2 files changed, 38 insertions(+) commit af15a2d51dba75498b7802fd67399a093961ddc4 Author: David Zhang Date: Thu Jul 30 19:42:11 2015 -0400 drm/amdgpu: Add Fiji support to the GFX 8.0 IP module (v2) v2: agd5f: fix the rb setup. Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 109 +++++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++ 2 files changed, 115 insertions(+), 1 deletion(-) commit 843908604d72a1988d94936d9c34768eb8de97a6 Author: David Zhang Date: Wed Jul 8 01:28:20 2015 +0800 drm/amdgpu: Add Fiji support to the DCE 10.0 IP module (v2) v2: agd5f: fix up XDMA golden settings Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 23 +++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++++++ 2 files changed, 30 insertions(+) commit 8e711e1a1ad3a95883ae15deead593d22e57c3f1 Author: David Zhang Date: Wed Jul 8 01:23:25 2015 +0800 drm/amdgpu: Add Fiji support to SMC and DPM (v2) v2: agd5f: prepare for release Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/Makefile | 1 + drivers/gpu/drm/amd/amdgpu/fiji_dpm.c | 181 +++++++ drivers/gpu/drm/amd/amdgpu/fiji_ppsmc.h | 182 +++++++ drivers/gpu/drm/amd/amdgpu/fiji_smc.c | 853 +++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/fiji_smumgr.h | 42 ++ drivers/gpu/drm/amd/amdgpu/vi.c | 7 + drivers/gpu/drm/amd/amdgpu/vi_dpm.h | 2 +- 7 files changed, 1267 insertions(+), 1 deletion(-) commit d1c4dcfb76a0053ca7bcc90608b3699ac1e1b39d Author: David Zhang Date: Wed Jul 8 19:13:25 2015 +0800 drm/amdgpu: Add Fiji smu 7.1.3 headers (v2) v2: agd5f: prepare for release Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König .../gpu/drm/amd/include/asic_reg/smu/smu_7_1_3_d.h | 1246 ++++ .../drm/amd/include/asic_reg/smu/smu_7_1_3_enum.h | 1282 +++++ .../amd/include/asic_reg/smu/smu_7_1_3_sh_mask.h | 6080 ++++++++++++++++++++ 3 files changed, 8608 insertions(+) commit aa8a3b5395f61ee2418ea33c6f2d95b432a13f35 Author: David Zhang Date: Wed Jul 8 21:40:31 2015 +0800 drm/amdgpu: Add Fiji support to IH module Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 127a262853a4ca8a9284f58241c733ff074f8327 Author: David Zhang Date: Wed Jul 8 01:11:52 2015 +0800 drm/amdgpu: Add Fiji support to the GMC 8.5 IP module Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 25 +++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/vi.c | 9 ++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) commit 48299f95f75b695329c53a33dd6673ccf1b5a03f Author: David Zhang Date: Wed Jul 8 01:05:16 2015 +0800 drm/amdgpu: Add Fiji DID 0x7300 common support Signed-off-by: David Zhang Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 ++ drivers/gpu/drm/amd/amdgpu/vi.c | 34 ++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/include/amd_shared.h | 1 + 3 files changed, 37 insertions(+) commit 41548ef78bbf26994546ea5225ad4b4c1bf96d1f Author: Alex Deucher Date: Fri Jul 31 17:20:14 2015 -0400 drm/amdgpu: handle conditional support for CIK properly gfx7 support is not necessary or available if CIK support is not enabled. Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) commit e60b344f6c0eff03362b5083db746ef5442c4b36 Author: monk.liu Date: Fri Jul 17 18:39:25 2015 +0800 drm/amdgpu: optimize amdgpu_parser_init use kmalloc_array instead of kcalloc where appropriate and other cleanups. Signed-off-by: monk.liu Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit 2f7d10b393c83acd3eedc3d6ab94dce29ac6a890 Author: Jammy Zhou Date: Wed Jul 22 11:29:01 2015 +0800 drm/amdgpu: merge amdgpu_family.h into amd_shared.h (v2) Make the definitions common for all driver components v2: fix kfd Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 6 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 128 ++++++++++++------------- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_family.h | 62 ------------ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 4 +- drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 2 +- drivers/gpu/drm/amd/amdgpu/cik.c | 12 +-- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 4 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 8 +- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/vi.c | 10 +- drivers/gpu/drm/amd/include/amd_shared.h | 27 ++++++ 23 files changed, 138 insertions(+), 174 deletions(-) commit fa9f1d4e86f67a4df03e153d9b9cd1bd1838767c Author: Jammy Zhou Date: Tue Jul 21 21:17:16 2015 +0800 drm/amdgpu: add some pptable definitions Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/include/pptable.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 0b2daf09cf3c9893872d68f0ce9a3f4b7e3ff06c Author: Jammy Zhou Date: Tue Jul 21 17:41:48 2015 +0800 drm/amdgpu: add some common definitions to amd_shared.h Add GPU family definitions and timeout value for IP components. Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/include/amd_shared.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c7890fea04acbaa89f572adcd9efe0b2d390a8e7 Author: Marek Olšák Date: Sat Jul 11 12:08:46 2015 +0200 drm/amdgpu: allow userspace to read more debug registers Feel free to suggest more. Signed-off-by: Marek Olšák Acked-by: Michel Dänzer Reviewed-by: Christian König drivers/gpu/drm/amd/amdgpu/vi.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 8e9198d0698a4a748bac9a7b33ed1300cf5f3793 Author: Alex Deucher Date: Sun Aug 16 22:51:50 2015 -0400 drm/amdgpu: move some atombios definitions to common folder (v2) the definitions can be shared by different IP components. v2: fix include path Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/atom-bits.h | 48 - drivers/gpu/drm/amd/amdgpu/atom-names.h | 100 - drivers/gpu/drm/amd/amdgpu/atom-types.h | 42 - drivers/gpu/drm/amd/amdgpu/atombios.h | 8555 ------------------------------ drivers/gpu/drm/amd/amdgpu/pptable.h | 698 --- drivers/gpu/drm/amd/include/atom-bits.h | 48 + drivers/gpu/drm/amd/include/atom-names.h | 100 + drivers/gpu/drm/amd/include/atom-types.h | 42 + drivers/gpu/drm/amd/include/atombios.h | 8555 ++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/include/pptable.h | 698 +++ 11 files changed, 9445 insertions(+), 9444 deletions(-) commit 5430a3ffb0b1902e8aea4ed2ba256b1263126e8d Author: Christian König Date: Tue Jul 21 18:02:21 2015 +0200 drm/amdgpu: fix UVD/VCE fence handling We need to return the sequence number to userspace even when we don't use user fences. Signed-off-by: Christian König Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 9 ++++++--- 3 files changed, 9 insertions(+), 6 deletions(-) commit 5ceb54c68a28fc8af5cf8d32c4fde29c97dd3c18 Author: Alex Deucher Date: Wed Aug 5 12:41:48 2015 -0400 drm/amdgpu: add fence suspend/resume functions Added to: - handle draining the ring on suspend - properly enable/disable interrupts on suspend and resume Fix breakages from: commit 467ee3be53d240d08beed2e82a941e820c1ac323 Author: Chunming Zhou Date: Mon Jun 1 14:14:32 2015 +0800 drm/amdgpu: always enable EOP interrupt v2 Tested-by: Audrey Grodzovsky Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 21 ++-------- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 61 ++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 17 deletions(-) commit c6a4079badc2f0eda69a028622c7080a284ae147 Author: Chunming Zhou Date: Mon Jun 1 14:14:32 2015 +0800 drm/amdgpu: always enable EOP interrupt v2 v2 (chk): always enable EOP interrupt, independent of scheduler, remove now unused delayed_irq handling. Signed-off-by: Chunming Zhou Signed-off-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 42 +++++-------------------------- 2 files changed, 6 insertions(+), 37 deletions(-) commit 7f8a5290f5b6c14dd1d295e2508e0dd193a9fda5 Author: Christian König Date: Mon Jul 20 16:09:40 2015 +0200 drm/amdgpu: rework vm_grab_id interface This makes assigning VM IDs independent from the use of VM IDs. Signed-off-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 +--- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 24 ++++++++++++++---------- 3 files changed, 17 insertions(+), 15 deletions(-) commit fc8fa5e428ae937f79a36ccbe303fa871ffbbbf7 Author: Christian König Date: Mon Jul 20 15:47:30 2015 +0200 drm/amdgpu: no updates shouldn't cause vm flush v2 v2 (chk): split fix from original patch Signed-off-by: monk.liu Signed-off-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit cf6f1d39496e9b5dd62953f8dca9f995d80ab4ff Author: Christian König Date: Sat Jul 18 19:20:05 2015 +0200 drm/amdgpu: fix signed overrun in amdgpu_ctx_get_fence Otherwise the first 16 fences of a context will always signal immediately. Signed-off-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cdecb65b4eaba1d45abbfe34b724664f65623531 Author: Christian König Date: Thu Jul 16 12:01:06 2015 +0200 drm/amdgpu: fix context memory leak Signed-off-by: Christian König Reviewed-by: Jammy Zhou drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 1 + 1 file changed, 1 insertion(+) commit 0753b45242059f523a6238ec2741a4436db2fbd0 Author: Christian König Date: Tue Jul 7 18:44:01 2015 +0200 drm/amdgpu: remove amdgpu_fence_recreate It's not used any more. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 -- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 32 ------------------------------- 2 files changed, 34 deletions(-) commit 21c16bf634e62cf9673946f509b469e7f0953ecf Author: Christian König Date: Tue Jul 7 17:24:49 2015 +0200 drm/amdgpu: add user fence context map v2 This is a prerequisite for the GPU scheduler to make the order of submission independent from the order of execution. v2: properly implement the locking Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 16 +++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 60 ++++++++++++++++++--------------- drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 60 ++++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 ++- 4 files changed, 110 insertions(+), 30 deletions(-) commit 91e1a5207edec9e4f888e44478a9a254186e0ba8 Author: Christian König Date: Mon Jul 6 22:06:40 2015 +0200 drm/amdgpu: deal with foreign fences in amdgpu_sync This also requires some error handling from the callers of that function. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 12 ++++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 ++++- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 41 ++++++++++++++++---------------- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 11 +++++---- 5 files changed, 45 insertions(+), 29 deletions(-) commit 0b492a4c92050862a9780b941d52c05923fcd669 Author: Alex Deucher Date: Sun Aug 16 22:48:26 2015 -0400 drm/amdgpu: cleanup context structure v2 The comment is misleading and incorrect, remove it. Printing the id is completely meaningless and this practice can cause a race conditions on command submission. The flags and hangs fields are completely unused. Give all fields a common indentation. v2: remove fpriv reference and unused flags as well, fix debug message. Signed-off-by: Christian König Reviewed-by: Jammy Zhou Reviewed-by: Chunming Zhou drivers/gpu/drm/amd/amdgpu/amdgpu.h | 50 +++++++++++++++------------------ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 28 +++++------------- 2 files changed, 29 insertions(+), 49 deletions(-) commit 404b2fa3385565b1c472a0482f6564a1550fc8d1 Author: rezhu Date: Fri Aug 7 13:37:56 2015 +0800 drm/amdgpu: add cgs_interface for pg and cg v3: check whether ip_blocks is enable v2: add break in the for loop. Signed-off-by: Rex zhu drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 47 +++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/include/cgs_common.h | 15 ++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) commit 97baee7170099dac2ce5671d3bb9cb364194b052 Author: Jammy Zhou Date: Tue Jul 21 17:02:44 2015 +0800 drm/amdgpu: fix some typo for cgs definitions Signed-off-by: Jammy Zhou Reviewed-by: Alex Deucher drivers/gpu/drm/amd/include/cgs_common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf3911b06fa9c551b852af563fed393a02e48a7a Author: Jammy Zhou Date: Wed May 13 18:58:05 2015 +0800 drm/amdgpu: add cgs_get_firmware_info interface v2 This new interface can be used by IP components to retrieve the firmware information from the core driver. v2: fix one typo Signed-off-by: Jammy Zhou Signed-off-by: Rex Zhu Signed-off-by: Young Yang Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 122 ++++++++++++++++++++++++++++++- drivers/gpu/drm/amd/include/cgs_common.h | 46 ++++++++++++ 2 files changed, 167 insertions(+), 1 deletion(-) commit 57ff96cf471a30104c1ffdc49d237942d4908608 Author: Chunming Zhou Date: Fri Apr 24 17:38:20 2015 +0800 drm/amdgpu: implement cgs gpu memory callbacks This implements the cgs interface for allocating GPU memory. Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 238 ++++++++++++++++++++++++++++++-- 1 file changed, 226 insertions(+), 12 deletions(-) commit 25da442779041e5fac7ceba552264fda55106e3f Author: Chunming Zhou Date: Fri May 22 12:14:04 2015 -0400 drm/amdgpu: add atom interfaces for CGS This implements the interface for atombios command and data table access. Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) commit 0cf3be21782f8d5b74cce98a2b934e14ef418ef3 Author: Alex Deucher Date: Tue Jul 28 14:24:53 2015 -0400 drm/amdgpu: Implement irq interfaces for CGS This implements the irq src registrar. Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 81 ++++++++++++++++++++++++++++++--- drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 5 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 + 5 files changed, 84 insertions(+), 6 deletions(-) commit 97cb7f6e6c4d7d78de7e174d8776a95ef7fd1e8a Author: Chunming Zhou Date: Fri May 22 11:33:31 2015 -0400 drm/amdgpu: Implement the pciconfig callbacks for CGS This implements the pciconfig register accessors. Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 40 +++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 12 deletions(-) commit aba684d87a4d6805feddc7c4bc77c3c24f913ed1 Author: Chunming Zhou Date: Fri May 22 11:29:30 2015 -0400 drm/amdgpu: Implement mmio callbacks for CGS This implements the MMIO register accessors. Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 45 ++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 7 deletions(-) commit d03846af92750f83d36ff2110a0cee444979b2a2 Author: Chunming Zhou Date: Tue Jul 28 14:20:03 2015 -0400 drm/amd: Add CGS interfaces CGS (Common Graphics Services) is an AMD cross component abstraction layer to designed to better encapsulate specific IP block drivers so different teams can effectively work on differnet IP block drivers independently. It provides a common interface for things like accessing registers, allocating GPU memory, and registering interrupt sources. The plan is to eventually move more and more IP drivers to this interface. The first user is the ACP IP driver. Reviewed-by: Jammy Zhou Signed-off-by: Chunming Zhou Acked-by: Christian König Acked-by: Alex Deucher Signed-off-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/Makefile | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 + drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 327 ++++++++++++++++++ drivers/gpu/drm/amd/include/cgs_common.h | 563 +++++++++++++++++++++++++++++++ drivers/gpu/drm/amd/include/cgs_linux.h | 135 ++++++++ 5 files changed, 1036 insertions(+) commit 553de19a0e2f21809bc3864d40308864652521eb Author: Vaishali Thakkar Date: Sat Aug 15 08:01:55 2015 +0530 ASoC: davinci-vcif: Use devm_snd_soc_register_component Use resource managed function devm_snd_soc_register_component for component registration instead of snd_soc_register_component. Also, remove davinci_vcif_remove as it is now redundant. Signed-off-by: Vaishali Thakkar Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/davinci/davinci-vcif.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 93576842718edf302b03f30b9915d3e704b0c78a Author: Viresh Kumar Date: Mon Aug 17 12:30:58 2015 +0530 regulator: core: Use IS_ERR_OR_NULL() Use IS_ERR_OR_NULL() rather than open coding it. Signed-off-by: Viresh Kumar Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 507d7fc56154031a1d023d74e02ed9d3c4f4da31 Author: Greg Kroah-Hartman Date: Mon Aug 17 12:59:42 2015 -0700 staging: wilc1000: fix build warning with setup_timer() I forgot to properly cast a pointer to unsigned long in a conversion to setup_timer() which resulted in a build warning. Fix that up. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit db93ec4f30f1826cc64560ffdf9cc6f2f4eff49f Author: Raphaël Beamonte Date: Mon Aug 17 15:28:28 2015 -0400 staging: wilc1000: remove DECLARE_WILC_BUFFER() It was just a wrapper to initialize a variable. Initialize it directly instead. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_exported_buf.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit dec180c86425e4ffcf9699c6cbc6682a63e8d11c Author: Raphaël Beamonte Date: Mon Aug 17 15:28:26 2015 -0400 staging: wilc1000: remove void function return statements that are not useful Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ---- drivers/staging/wilc1000/linux_wlan.c | 1 - drivers/staging/wilc1000/wilc_exported_buf.c | 4 +--- drivers/staging/wilc1000/wilc_wlan.c | 3 --- drivers/staging/wilc1000/wilc_wlan_cfg.c | 2 -- 5 files changed, 1 insertion(+), 13 deletions(-) commit 30f93ca8323f0c21b789bea0f7db8e8e3a7915c6 Author: Viresh Kumar Date: Mon Aug 17 08:16:51 2015 +0530 regulator: core: Define regulator_set_voltage_triplet() Voltage tolerance isn't necessarily same on both sides of the target voltage and regulator_set_voltage_tol() wouldn't be suitable in such cases. Add another routine regulator_set_voltage_triplet(), which accepts target, min and max voltages as arguments. This first tries to set the voltage between the target voltage and the upper limit, then fall back on the full range. The idea behind this is to set regulator's voltage as close to the target voltage, as possible. Based on regulator_set_voltage_tol(). Signed-off-by: Viresh Kumar Signed-off-by: Mark Brown include/linux/regulator/consumer.h | 10 ++++++++++ 1 file changed, 10 insertions(+) commit da65e367b67e15fc41cbf646c506c802dd5213b7 Author: Bjorn Andersson Date: Mon Aug 17 11:43:59 2015 -0700 regulator: Regulator driver for the Qualcomm RPM Driver for regulators exposed by the Resource Power Manager (RPM) found in devices based on Qualcomm 8974 and newer platforms. Signed-off-by: Bjorn Andersson Acked-by: Andy Gross Tested-by: Tim Bird Signed-off-by: Mark Brown drivers/regulator/Kconfig | 12 ++ drivers/regulator/Makefile | 1 + drivers/regulator/qcom_smd-regulator.c | 349 +++++++++++++++++++++++++++++++++ 3 files changed, 362 insertions(+) commit a78d9a38a52fc0660e6efb8eaf6540f975db87c6 Author: Chaehyun Lim Date: Mon Aug 17 11:05:15 2015 +0900 staging: wilc1000: coreconfigurator.c: fix kmalloc error check It is added and fixed error check when kmalloc is failed. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 0ac87998784e261e1080907da912afb562737c69 Author: Chaehyun Lim Date: Mon Aug 17 11:05:14 2015 +0900 staging: wilc1000: coreconfigurator.c: use kmalloc instead of WILC_MALLOC The kmalloc is used to handle host interface message within kernel thread. The manipulation of host interface message is not called on IRQ context and I could not find any spinlock inside function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 280f1fa0808ea6e3b6bd5b39d67a0bb0a35a6761 Author: Chaehyun Lim Date: Mon Aug 17 11:05:13 2015 +0900 staging: wilc1000: remove unused codes of gps8ConfigPacket This patch removes unused codes of gps8ConfigPacket declared by global variable. It is allocated and freed memory within CoreConfiguratorInit and CoreConfiguratorDeInit. There is no used anywhere except within two functions. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 15 --------------- 1 file changed, 15 deletions(-) commit dc0ad74bc432eccb96f3249de20f3b2b468d0919 Author: Chaehyun Lim Date: Mon Aug 17 11:05:12 2015 +0900 staging: wilc1000: remove unnecessary void pointer cast This patch removes unnecessary void pointer cast of WILC_MALLOC. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 12 ++-- drivers/staging/wilc1000/host_interface.c | 78 +++++++++++------------ drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 18 +++--- 4 files changed, 55 insertions(+), 55 deletions(-) commit 355c06633e233a57155b827ebe99b91c35bc1f5c Author: Jonathan Corbet Date: Thu Aug 13 17:52:02 2015 -0600 workqueue: fix some docbook warnings There are some errors in the docbook comments in workqueue.h that cause warnings when the docs are built; this only recently came to light because these comments were not used until now. Fix the comments to make the warnings go away. The "args..." "fix" is a hack. kerneldoc doesn't deal properly with named variadic arguments in macros, so all I've really achieved here is to make it shut up. Fixing kerneldoc will have to wait for more time. Signed-off-by: Jonathan Corbet Signed-off-by: Tejun Heo include/linux/workqueue.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9fba8e30f704d49627ab8a4a57213862206b3e5f Author: Trond Myklebust Date: Mon Aug 17 14:46:51 2015 -0500 SUNRPC: Drop double-underscores from __rpc_cmp_addr6() Reported-by: kbuild test robot Fixes: 7b0ce60c0b20 ("SUNRPC: Drop double-underscores from rpc_cmp_addr{4|6}()") Signed-off-by: Trond Myklebust include/linux/sunrpc/addr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 636dcf9716306bc93afffe8f968a3f232c42f6d7 Author: Chaehyun Lim Date: Mon Aug 17 11:05:11 2015 +0900 staging: wilc1000: remove WILC_NEW and WILC_NEW_EX This patch removes WILC_NEW and WILC_NEW_EX defines that are not used anywhere. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_memory.h | 15 --------------- 1 file changed, 15 deletions(-) commit 5c07828f5db4c620a4f574b3a4bb0a0bba82826b Author: Chaehyun Lim Date: Mon Aug 17 11:05:10 2015 +0900 staging: wilc1000: use kmalloc instead of WILC_NEW WILC_NEW is replaced by kmallo with GFP_ATOMIC. This kmalloc is inside a spin_lock_irqsave region. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_msgqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e3f05bfc02b61adf50709c4a96f07314addeeb6 Author: Chandra S Gorentla Date: Sat Aug 15 12:23:31 2015 +0530 staging: wilc1000: Process WARN, INFO options of debug levels from user This patch enables setting the module's debug options WARN and INFO in the debugfs file 'wilc_debug_level'. This functionality allows the user to enable logging of warnings and other information. Before this change, writes to this debugfs file set only one option - DEBUG. Another option that is enabled by default is ERR. As a side effect, this patch removes the 'sparse' warning - 'warning: incorrect type in argument 2 (different address spaces)'. Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_debugfs.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit fbaff3ef859a86dc3df2128d2de9f8a6e255a967 Author: Jesse Brandeburg Date: Thu Aug 13 18:34:03 2015 -0700 net: fix endian check warning in etherdevice.h Sparse builds have been warning for a really long time now that etherdevice.h has a conversion that is unsafe. include/linux/etherdevice.h:79:32: warning: restricted __be16 degrades to integer This code change fixes the issue and generates the exact same assembly before/after (checked on x86_64) Fixes: 2c722fe1c821 (etherdevice: Optimize a few is__ether_addr functions) Signed-off-by: Jesse Brandeburg CC: Joe Perches Signed-off-by: David S. Miller include/linux/etherdevice.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee847a252664f54d06bcc6ab2864322cbcb52692 Author: Guenter Roeck Date: Sat Aug 15 17:17:53 2015 -0700 hwmon: (ltc2978) Introduce helper functions for min and max values The code used to determine historic low and high peaks is repeated several times. Introduce helper functions to simplify it. Tested-by: Michael Jones Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 148 ++++++++++++++++-------------------------- 1 file changed, 57 insertions(+), 91 deletions(-) commit 8582bcc8ebb21375b37f337c58ca783b997a0355 Author: Guenter Roeck Date: Sat Aug 15 17:02:09 2015 -0700 hwmon: (ltc2978) Introduce feature flags It is becoming cumbersom to track per-chip feature support. Introduce feature flag to simplify the code. Tested-by: Michael Jones Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit 2238835c5ce9f8eae5cb4dd6a6c05a6c82743282 Author: Guenter Roeck Date: Wed Aug 12 21:05:38 2015 -0700 hwmon: (pmbus) Convert command register definitions to enum This will simplify adding new virtual commands. Tested-by: Michael Jones Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/pmbus.h | 282 ++++++++++++++++++++++---------------------- 1 file changed, 142 insertions(+), 140 deletions(-) commit 649ca820dab3d76e12408b74af3e8e97abb07ae0 Author: Guenter Roeck Date: Mon Jun 8 09:56:20 2015 -0700 hwmon: (ltc2978) Add support for LTC2975 LTC2975 is mostly compatible to LTC2974, but supports input current and power measurement. Tested-by: Michael Jones Signed-off-by: Guenter Roeck .../devicetree/bindings/hwmon/ltc2978.txt | 3 +- Documentation/hwmon/ltc2978 | 47 ++++++---- drivers/hwmon/pmbus/Kconfig | 4 +- drivers/hwmon/pmbus/ltc2978.c | 104 +++++++++++++++++++-- 4 files changed, 125 insertions(+), 33 deletions(-) commit f3ae683f09aff7c53dab8b85d2425d746c8e0d5f Merge: 8f8ff913 4b46995 Author: David S. Miller Date: Mon Aug 17 11:50:25 2015 -0700 Merge branch 'iff_no_queue' Phil Sutter says: ==================== net: introduce IFF_NO_QUEUE as successor of zero tx_queue_len This series adds a new private net_device flag indicating that a device may (and probably should) be used without a queueing discipline attached to it. This is already common practice for many virtual device types like e.g. loopback, VLAN (802.1Q) or bridges (802.1D). The reason for this is that these devices lack an underlying layer which could impose back pressure and therefore making a TX queue necessary to not slow down senders. Up to now, drivers being aware of the above applying to them set dev->tx_queue_len to zero to indicate no qdisc should be attached to the interface they drive and the kernel reacts upon this by assigning the noop qdisc instead of the default pfifo_fast. This implicit agreement though leads to an inconvenient situation once a user tries to attach a real qdisc to these devices, as the formerly special tx_queue_len value becomes a regular one, limiting the queue to zero packets and thus prevents any TX from happening. To overcome this, practically all qdisc implementations intercept and sanitize the malicious value. With this series applied, drivers may signal the lack of need for a qdisc without having to tamper with tx_queue_len, making fallbacks in qdiscs and caveats in userspace unnecessary. Upon upstream acceptance, this series will be followed up by a set of patches converting device drivers, adding a warning so out-of-tree driver authors get aware of this change and dropping all special handling of tx_queue_len in net/sched/. ==================== Signed-off-by: David S. Miller commit 4b469955685d58c2f8198bf817fc661600b7e3d0 Author: Phil Sutter Date: Thu Aug 13 19:01:07 2015 +0200 net: sch_generic: react upon IFF_NO_QUEUE flag Handle IFF_NO_QUEUE as alternative to tx_queue_len being zero. Signed-off-by: Phil Sutter Acked-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller net/sched/sch_generic.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit fa8187c96471c49419c25d4ec3299d17d3f274b2 Author: Phil Sutter Date: Thu Aug 13 19:01:06 2015 +0200 net: declare new net_device priv_flag IFF_NO_QUEUE This private net_device flag can be set by drivers to inform that a device runs fine without a qdisc attached. This was formerly done by setting tx_queue_len to zero. Signed-off-by: Phil Sutter Acked-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller include/linux/netdevice.h | 3 +++ 1 file changed, 3 insertions(+) commit 7c2dad99d60c86ec686b3bfdcb787c450a7ea89f Author: Trond Myklebust Date: Thu Aug 6 12:06:30 2015 -0400 NFS: Don't let the ctime override attribute barriers. Chuck reports seeing cases where a GETATTR that happens to race with an asynchronous WRITE is overriding the file size, despite the attribute barrier being set by the writeback code. The culprit turns out to be the check in nfs_ctime_need_update(), which sees that the ctime is newer than the cached ctime, and assumes that it is safe to override the attribute barrier. This patch removes that override, and ensures that attribute barriers are always respected. Reported-by: Chuck Lever Fixes: a08a8cd375db9 ("NFS: Add attribute update barriers to NFS writebacks") Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Trond Myklebust fs/nfs/inode.c | 8 -------- 1 file changed, 8 deletions(-) commit 74918f937d9896aa2910cfe81f06499abd1dba59 Merge: 37bfcc1 5883055 Author: Trond Myklebust Date: Mon Aug 17 13:36:32 2015 -0500 Merge branch 'layoutfixes' * layoutfixes: NFSv4.1/pnfs: Remove redundant wakeup in pnfs_send_layoutreturn() NFSv4.1/pnfs: Remove redundant check in pnfs_layoutgets_blocked() NFSv4.1/pnfs: Remove redundant lo->plh_block_lgets in layoutreturn NFSv4.1/pnfs: Don't prevent layoutgets when doing return-on-close NFSv4.1/pnfs: Fix serialisation of layout return and layoutget NFSv4.1/pnfs: Remove redundant checks in pnfs_layoutgets_blocked() pNFS: Tighten up locking around DS commit buckets commit 37bfcc14b2b44ce03930eeb2c3de1c20f7da6fb9 Merge: eed889b 99b1a4c Author: Trond Myklebust Date: Mon Aug 17 13:36:22 2015 -0500 Merge branch 'bugfixes' * bugfixes: SUNRPC: Fix a thinko in xs_connect() NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked() NFS: nfs_set_pgio_error sometimes misses errors commit eed889b161ce4817e594c28906269d776f4806a5 Merge: aff8d8d d0f36c4 Author: Trond Myklebust Date: Mon Aug 17 13:33:58 2015 -0500 Merge tag 'nfs-rdma-for-4.3' of git://git.linux-nfs.org/projects/anna/nfs-rdma NFS: NFS over RDMA Client Side Changes These patches improve both client performance and scalability, most notably by increasing the maixmum allowed rsize and wsize and by increasing the number of RDMA "credits". There are also several bugfixes, such as correcting how WRITE compounds are encoded and fixing large NFS symlink operations. Signed-off-by: Anna Schumaker commit aff8d8dc4c34804c6a1de04f1b3313aa9063bf46 Author: Anna Schumaker Date: Mon Jul 13 14:01:33 2015 -0400 NFS: Remove nfs_release() And call nfs_file_clear_open_context() directly. This makes it obvious that nfs_file_release() will always return 0. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/file.c | 3 ++- fs/nfs/inode.c | 8 +------- include/linux/nfs_fs.h | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) commit c4f83a5571981c92b028c8e9a9da827598905059 Author: Greg Kroah-Hartman Date: Mon Aug 17 11:32:38 2015 -0700 staging: wilc1000: remove unneeded tstrWILC_MsgQueueAttrs typedef No one uses it, so remove it and all of the NULL parameters being used to pass it into the msg code. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 110 ++++++++++++++---------------- drivers/staging/wilc1000/wilc_msgqueue.c | 12 ++-- drivers/staging/wilc1000/wilc_msgqueue.h | 34 ++------- 3 files changed, 61 insertions(+), 95 deletions(-) commit ae09c31f66cc673bb8c64a5dbfdc04ab67f66d7e Author: Anna Schumaker Date: Mon Jul 13 14:01:32 2015 -0400 NFS: Rename nfs_commit_unstable_pages() to nfs_write_inode() All nfs_write_inode() does is pass its arguments to nfs_commit_unstable_pages(). Let's cut out the middle man and have nfs_write_pages() do the work directly. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/write.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 3f10a6af4b577da2117907ac8420f27af81d57de Author: Anna Schumaker Date: Mon Jul 13 14:01:31 2015 -0400 NFS: Remove nfs41_server_notify_{target|highest}_slotid_update() All these functions do is call nfs41_ping_server() without adding anything. Let's remove them and give nfs41_ping_server() a better name instead. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/callback_proc.c | 2 +- fs/nfs/nfs4_fs.h | 4 +--- fs/nfs/nfs4proc.c | 2 +- fs/nfs/nfs4state.c | 12 +----------- 4 files changed, 4 insertions(+), 16 deletions(-) commit fb2a525cf086bb080f84b0b748ee823ef79e539c Author: Anna Schumaker Date: Mon Jul 13 14:01:29 2015 -0400 NFS: Combine nfs_idmap_{init|quit}() and nfs_idmap_{init|quit}_keyring() The idmap_init() and idmap_quit() functions only exist to call the _keyring() version. Let's just call the keyring() functions directly. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/nfs4idmap.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit d8efa4e62505f5113e363572b5438b7be0d08b12 Author: Anna Schumaker Date: Mon Jul 13 14:01:28 2015 -0400 NFS: Use RPC functions for matching sockaddrs They already exist and do the exact same thing. Let's save ourselves several lines of code! Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/client.c | 113 +--------------------------------------------------- fs/nfs/internal.h | 4 -- fs/nfs/nfs4client.c | 5 +-- 3 files changed, 3 insertions(+), 119 deletions(-) commit 58cc8a55aa38655d472a4c381df465c9ab97b4d6 Author: Anna Schumaker Date: Mon Jul 13 14:01:27 2015 -0400 SUNRPC: Add an rpc_cmp_addr_port() function This function is to help determine if two sockaddrs are really the same socket. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust include/linux/sunrpc/addr.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 7b0ce60c0b203a2a037f308e387152acbf99c445 Author: Anna Schumaker Date: Mon Jul 13 14:01:26 2015 -0400 SUNRPC: Drop double-underscores from rpc_cmp_addr{4|6}() I'm planning on using these functions inside the client, so remove the underscores to make it feel like I'm using a public interface. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust include/linux/sunrpc/addr.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c7e9668e78eab69b7ade9897bea1fbd77dd18775 Author: Anna Schumaker Date: Mon Jul 13 14:01:25 2015 -0400 NFS: Rename nfs_readdir_free_pagearray() and nfs_readdir_large_page() nfs_readdir_xdr_to_array() uses both a cache array and an array of pages, so I rename these functions to make it clearer how the code works. nfs_readdir_large_page() becomes nfs_readdir_alloc_pages() because this function has absolutely nothing to do with setting up a large page. nfs_readdir_free_pagearray() becomes nfs_readdir_free_pages() to stay consistent with the new alloc_pages() function. Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/dir.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 0b936e37df8111ea727263a5a246b58e05b7aa1b Author: Anna Schumaker Date: Mon Jul 13 14:01:24 2015 -0400 NFS: Remove unused variable "pages_ptr" This variable is initialized to NULL and is never modified before being passed to nfs_readdir_free_large_page(). But that's okay, because nfs_readdir_free_large_page() only seems to exist as a way of calling nfs_readdir_free_pagearray() without this parameter. Let's simplify by removing pages_ptr and nfs_readdir_free_pagearray(). Signed-off-by: Anna Schumaker Signed-off-by: Trond Myklebust fs/nfs/dir.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 9ca308506062fc4a4ee8ca7ad2f71033c831c2fb Author: Baolin Wang Date: Wed Jul 29 20:18:31 2015 +0800 time: Introduce timespec64_to_jiffies()/jiffies_to_timespec64() The conversion between struct timespec and jiffies is not year 2038 safe on 32bit systems. Introduce timespec64_to_jiffies() and jiffies_to_timespec64() functions which use struct timespec64 to make it ready for 2038 issue. Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Baolin Wang Signed-off-by: John Stultz include/linux/jiffies.h | 22 +++++++++++++++++++--- kernel/time/time.c | 21 +++++++++++++-------- 2 files changed, 32 insertions(+), 11 deletions(-) commit 8758a240e2d74c5932ab51a73377e6507b7fd441 Author: Baolin Wang Date: Wed Jul 29 20:09:43 2015 +0800 time: Introduce current_kernel_time64() The current_kernel_time() is not year 2038 safe on 32bit systems since it returns a timespec value. Introduce current_kernel_time64() which returns a timespec64 value. Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Baolin Wang Signed-off-by: John Stultz include/linux/timekeeping.h | 9 ++++++++- kernel/time/timekeeping.c | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) commit 19a46fe57a005a884ccb38419071f772ac2fca2b Author: Baolin Wang Date: Wed Jul 29 19:58:15 2015 +0800 time: Introduce struct itimerspec64 The struct itimerspec is not year 2038 safe on 32bit systems due to the limitation of the struct timespec members. Introduce itimerspec64 which uses struct timespec64 instead and provide conversion functions. Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Baolin Wang Signed-off-by: John Stultz include/linux/time64.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 7494e9eedee2121305a48af4fbbcedb69a2c2b93 Author: Xunlei Pang Date: Sun Jul 26 18:45:39 2015 +0800 time: Add the common weak version of update_persistent_clock() The weak update_persistent_clock64() calls update_persistent_clock(), if the architecture defines an update_persistent_clock64() to replace and remove its update_persistent_clock() version, when building the kernel the linker will throw an undefined symbol error, that is, any arch that switches to update_persistent_clock64() will have this issue. To solve the issue, we add the common weak update_persistent_clock(). Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Arnd Bergmann Signed-off-by: Xunlei Pang Signed-off-by: John Stultz kernel/time/ntp.c | 5 +++++ 1 file changed, 5 insertions(+) commit ce603281468cf1be0a70a45fdaef761db134b900 Author: Jeff Layton Date: Fri Jul 10 15:59:26 2015 -0400 nfs: remove some dead code in ff_layout_pg_get_mirror_count_write We already know that pg_lseg is NULL here. Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 2 -- 1 file changed, 2 deletions(-) commit e1d7ba8735551ed79c7a0463a042353574b96da3 Author: Wang YanQing Date: Tue Jun 23 18:38:54 2015 +0800 time: Always make sure wall_to_monotonic isn't positive Two issues were found on an IMX6 development board without an enabled RTC device(resulting in the boot time and monotonic time being initialized to 0). Issue 1:exportfs -a generate: "exportfs: /opt/nfs/arm does not support NFS export" Issue 2:cat /proc/stat: "btime 4294967236" The same issues can be reproduced on x86 after running the following code: int main(void) { struct timeval val; int ret; val.tv_sec = 0; val.tv_usec = 0; ret = settimeofday(&val, NULL); return 0; } Two issues are different symptoms of same problem: The reason is a positive wall_to_monotonic pushes boot time back to the time before Epoch, and getboottime will return negative value. In symptom 1: negative boot time cause get_expiry() to overflow time_t when input expire time is 2147483647, then cache_flush() always clears entries just added in ip_map_parse. In symptom 2: show_stat() uses "unsigned long" to print negative btime value returned by getboottime. This patch fix the problem by prohibiting time from being set to a value which would cause a negative boot time. As a result one can't set the CLOCK_REALTIME time prior to (1970 + system uptime). Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Wang YanQing [jstultz: reworded commit message] Signed-off-by: John Stultz kernel/time/timekeeping.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit de4a95faf173be1e798c37ca486dfcb234a0941b Author: Karsten Blees Date: Thu Jun 25 14:13:55 2015 +0200 time: Fix nanosecond file time rounding in timespec_trunc() timespec_trunc() avoids rounding if granularity <= nanoseconds-per-jiffie (or TICK_NSEC). This optimization assumes that: 1. current_kernel_time().tv_nsec is already rounded to TICK_NSEC (i.e. with HZ=1000 you'd get 1000000, 2000000, 3000000... but never 1000001). This is no longer true (probably since hrtimers introduced in 2.6.16). 2. TICK_NSEC is evenly divisible by all possible granularities. This may be true for HZ=100, 250, 1000, but obviously not for HZ=300 / TICK_NSEC=3333333 (introduced in 2.6.20). Thus, sub-second portions of in-core file times are not rounded to on-disk granularity. I.e. file times may change when the inode is re-read from disk or when the file system is remounted. This affects all file systems with file time granularities > 1 ns and < 1s, e.g. CEPH (1000 ns), UDF (1000 ns), CIFS (100 ns), NTFS (100 ns) and FUSE (configurable from user mode via struct fuse_init_out.time_gran). Steps to reproduce with e.g. UDF: $ dd if=/dev/zero of=udfdisk count=10000 && mkudffs udfdisk $ mkdir udf && mount udfdisk udf $ touch udf/test && stat -c %y udf/test 2015-06-09 10:22:56.130006767 +0200 $ umount udf && mount udfdisk udf $ stat -c %y udf/test 2015-06-09 10:22:56.130006000 +0200 Remounting truncates the mtime to 1 µs. Fix the rounding in timespec_trunc() and update the documentation. timespec_trunc() is exclusively used to calculate inode's [acm]time (mostly via current_fs_time()), and always with super_block.s_time_gran as second argument. So this can safely be changed without side effects. Note: This does _not_ fix the issue for FAT's 2 second mtime resolution, as super_block.s_time_gran isn't prepared to handle different ctime / mtime / atime resolutions nor resolutions > 1 second. Cc: Prarit Bhargava Cc: Richard Cochran Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Karsten Blees Signed-off-by: John Stultz kernel/time/time.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 38bf985b05625df3fbbc1dbf543bdd2da447c2af Author: John Stultz Date: Wed May 27 16:44:48 2015 -0700 timer_list: Add the base offset so remaining nsecs are accurate for non monotonic timers I noticed for non-monotonic timers in timer_list, some of the output looked a little confusing. For example: #1: <0000000000000000>, posix_timer_fn, S:01, hrtimer_start_range_ns, leap-a-day/2360 # expires at 1434412800000000000-1434412800000000000 nsecs [in 1434410725062375469 to 1434410725062375469 nsecs] You'll note the relative time till the expiration "[in xxx to yyy nsecs]" is incorrect. This is because its printing the delta between CLOCK_MONOTONIC time to the CLOCK_REALTIME expiration. This patch fixes this issue by adding the clock offset to the "now" time which we use to calculate the delta. Cc: Prarit Bhargava Cc: Daniel Bristot de Oliveira Cc: Richard Cochran Cc: Jan Kara Cc: Jiri Bohac Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Shuah Khan Signed-off-by: John Stultz kernel/time/timer_list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8bb28975823aee062f82b99ddacc499601c0cfd1 Author: Christoph Hellwig Date: Mon Aug 17 18:41:01 2015 +0200 pnfs: move common blocklayout XDR defintions to nfs4.h Signed-off-by: Christoph Hellwig Signed-off-by: Trond Myklebust fs/nfs/blocklayout/blocklayout.h | 19 +------------------ fs/nfs/blocklayout/extent_tree.c | 2 +- fs/nfsd/blocklayoutxdr.c | 2 +- fs/nfsd/blocklayoutxdr.h | 15 --------------- include/linux/nfs4.h | 18 ++++++++++++++++++ 5 files changed, 21 insertions(+), 35 deletions(-) commit 513d6d7a9591d7c5ebb5f05465942185db9299a4 Author: Christoph Hellwig Date: Mon Aug 17 18:41:00 2015 +0200 pnfs/blocklayout: pass proper file mode to blkdev_get/put We generally want to read and write to a block device that's used by the pNFS block layout client (and even if it's read only the server has no way of telling us). Add FMODE_WRITE to the mode argument so that we don't incorrectly tell the block driver that we want a read-only open. Signed-off-by: Christoph Hellwig Signed-off-by: Trond Myklebust fs/nfs/blocklayout/dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2bd3c63a333c364cfde4701b51f82e1fae106a88 Author: Christoph Hellwig Date: Mon Aug 17 18:40:59 2015 +0200 pnfs/blocklayout: reject too long signatures Instead of overwriting kernel memory reject too long signatures. Signed-off-by: Christoph Hellwig Signed-off-by: Trond Myklebust fs/nfs/blocklayout/dev.c | 5 +++++ 1 file changed, 5 insertions(+) commit 68596bd188e5e621c28a2f6fc0a3dd80a606d16b Author: Christoph Hellwig Date: Mon Aug 17 18:40:58 2015 +0200 pnfs/blocklayout: set up layoutupdate_pages properly We need to replace the __be32 with a void pointer to do proper arithmentics on the virtual addresses so that we can get the right page pointers. Reported-by: Dan Carpenter Signed-off-by: Christoph Hellwig Signed-off-by: Trond Myklebust fs/nfs/blocklayout/extent_tree.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 29662fa646b41492a9c298a83399126f94847e93 Author: Christoph Hellwig Date: Mon Aug 17 18:40:57 2015 +0200 pnfs/blocklayout: calculate layoutupdate size correctly We need to include the first u32 for the number of entries. Add a helper for the calculation instead of opencoding it so that it's in one place. Signed-off-by: Christoph Hellwig Signed-off-by: Trond Myklebust fs/nfs/blocklayout/extent_tree.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 18e3b739fdc826481c6a1335ce0c5b19b3d415da Author: Kinglong Mee Date: Sat Aug 15 21:52:10 2015 +0800 NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2 client ---Steps to Reproduce-- # cat /etc/exports /nfs/referal *(rw,insecure,no_subtree_check,no_root_squash,crossmnt) /nfs/old *(ro,insecure,subtree_check,root_squash,crossmnt) # mount -t nfs nfs-server:/nfs/ /mnt/ # ll /mnt/*/ # cat /etc/exports /nfs/referal *(rw,insecure,no_subtree_check,no_root_squash,crossmnt,refer=/nfs/old/@nfs-server) /nfs/old *(ro,insecure,subtree_check,root_squash,crossmnt) # service nfs restart # ll /mnt/*/ --->>>>> oops here [ 5123.102925] BUG: unable to handle kernel NULL pointer dereference at (null) [ 5123.103363] IP: [] nfs4_proc_get_locations+0x9b/0x120 [nfsv4] [ 5123.103752] PGD 587b9067 PUD 3cbf5067 PMD 0 [ 5123.104131] Oops: 0000 [#1] [ 5123.104529] Modules linked in: nfsv4(OE) nfs(OE) fscache(E) nfsd(OE) xfs libcrc32c iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi coretemp crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ppdev vmw_balloon parport_pc parport i2c_piix4 shpchp auth_rpcgss nfs_acl vmw_vmci lockd grace sunrpc vmwgfx drm_kms_helper ttm drm mptspi serio_raw scsi_transport_spi e1000 mptscsih mptbase ata_generic pata_acpi [last unloaded: nfsd] [ 5123.105887] CPU: 0 PID: 15853 Comm: ::1-manager Tainted: G OE 4.2.0-rc6+ #214 [ 5123.106358] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014 [ 5123.106860] task: ffff88007620f300 ti: ffff88005877c000 task.ti: ffff88005877c000 [ 5123.107363] RIP: 0010:[] [] nfs4_proc_get_locations+0x9b/0x120 [nfsv4] [ 5123.107909] RSP: 0018:ffff88005877fdb8 EFLAGS: 00010246 [ 5123.108435] RAX: ffff880053f3bc00 RBX: ffff88006ce6c908 RCX: ffff880053a0d240 [ 5123.108968] RDX: ffffea0000e6d940 RSI: ffff8800399a0000 RDI: ffff88006ce6c908 [ 5123.109503] RBP: ffff88005877fe28 R08: ffffffff81c708a0 R09: 0000000000000000 [ 5123.110045] R10: 00000000000001a2 R11: ffff88003ba7f5c8 R12: ffff880054c55800 [ 5123.110618] R13: 0000000000000000 R14: ffff880053a0d240 R15: ffff880053a0d240 [ 5123.111169] FS: 0000000000000000(0000) GS:ffffffff81c27000(0000) knlGS:0000000000000000 [ 5123.111726] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 5123.112286] CR2: 0000000000000000 CR3: 0000000054cac000 CR4: 00000000001406f0 [ 5123.112888] Stack: [ 5123.113458] ffffea0000e6d940 ffff8800399a0000 00000000000167d0 0000000000000000 [ 5123.114049] 0000000000000000 0000000000000000 0000000000000000 00000000a7ec82c6 [ 5123.114662] ffff88005877fe18 ffffea0000e6d940 ffff8800399a0000 ffff880054c55800 [ 5123.115264] Call Trace: [ 5123.115868] [] nfs4_try_migration+0xbb/0x220 [nfsv4] [ 5123.116487] [] nfs4_run_state_manager+0x4ab/0x7b0 [nfsv4] [ 5123.117104] [] ? nfs4_do_reclaim+0x510/0x510 [nfsv4] [ 5123.117813] [] kthread+0xd7/0xf0 [ 5123.118456] [] ? kthread_worker_fn+0x160/0x160 [ 5123.119108] [] ret_from_fork+0x3f/0x70 [ 5123.119723] [] ? kthread_worker_fn+0x160/0x160 [ 5123.120329] Code: 4c 8b 6a 58 74 17 eb 52 48 8d 55 a8 89 c6 4c 89 e7 e8 4a b5 ff ff 8b 45 b0 85 c0 74 1c 4c 89 f9 48 8b 55 90 48 8b 75 98 48 89 df <41> ff 55 00 3d e8 d8 ff ff 41 89 c6 74 cf 48 8b 4d c8 65 48 33 [ 5123.121643] RIP [] nfs4_proc_get_locations+0x9b/0x120 [nfsv4] [ 5123.122308] RSP [ 5123.122942] CR2: 0000000000000000 Fixes: ec011fe847 ("NFS: Introduce a vector of migration recovery ops") Cc: stable@vger.kernel.org # v3.13+ Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 1 + 1 file changed, 1 insertion(+) commit 2b5f12eac0ce4e6ffa5788400750da0a60fe8678 Author: Greg Kroah-Hartman Date: Mon Aug 17 11:20:57 2015 -0700 staging: wilc1000: delete wilc_osconfig.h This .h file isn't needed at all, so delete it, and the one line that added it to the build. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_osconfig.h | 9 --------- drivers/staging/wilc1000/wilc_oswrapper.h | 1 - 2 files changed, 10 deletions(-) commit 6e53191d6e15b7afb71dfbd3134c567fcc4eb2cd Author: Greg Kroah-Hartman Date: Mon Aug 17 11:17:57 2015 -0700 staging: wilc1000: delete wilc_log.h The macros are not used in the driver at all, except in one commented out line, so just remove the .h file so that no one thinks it is a good idea to add any code to use them in the future. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 -- drivers/staging/wilc1000/wilc_log.h | 47 ----------------------------- drivers/staging/wilc1000/wilc_oswrapper.h | 3 -- 3 files changed, 52 deletions(-) commit 97fd0f07d4d3f71c20ef4a4f5a65eb461290ca1c Author: Greg Kroah-Hartman Date: Mon Aug 17 11:12:49 2015 -0700 staging: wilc1000: delete wilc_timer.h It is no longer needed at all, so remove this header file. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_oswrapper.h | 3 -- drivers/staging/wilc1000/wilc_timer.h | 50 ------------------------------- 2 files changed, 53 deletions(-) commit 9eb066438b01bc70ef915987f881d3e57e698a30 Author: Greg Kroah-Hartman Date: Mon Aug 17 11:10:55 2015 -0700 staging: wilc1000: remove WILC_TimerStart() It was a wrapper around mod_timer() so replace it with the real timer call and remove wilc_timer.c as it's now empty. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/host_interface.c | 25 +++++++++++++++-------- drivers/staging/wilc1000/wilc_timer.c | 13 ------------ drivers/staging/wilc1000/wilc_timer.h | 20 ------------------ drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 13 +++++++----- 5 files changed, 25 insertions(+), 48 deletions(-) commit 99b1a4c32ad22024ac6198a4337aaec5ea23168f Author: Trond Myklebust Date: Thu Aug 13 15:33:51 2015 -0400 SUNRPC: Fix a thinko in xs_connect() It is rather pointless to test the value of transport->inet after calling xs_reset_transport(), since it will always be zero, and so we will never see any exponential back off behaviour. Also don't force early connections for SOFTCONN tasks. If the server disconnects us, we should respect the exponential backoff. Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust net/sunrpc/xprtsock.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 6f536936b79bd4b5cea8fb0e5b8b0bce8cd1ea4a Author: Trond Myklebust Date: Thu Aug 13 10:59:07 2015 -0400 NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked() - Switch back to using list_for_each_entry(). Fixes an incorrect test for list NULL termination. - Do not assume that lists are sorted. - Finally, consider an existing entry to match if it consists of a subset of the addresses in the new entry. Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Trond Myklebust fs/nfs/pnfs_nfs.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) commit e9ae58aeee8842a50f7e199d602a5ccb2e41a95f Author: Trond Myklebust Date: Mon Aug 17 12:57:07 2015 -0500 NFS: nfs_set_pgio_error sometimes misses errors We should ensure that we always set the pgio_header's error field if a READ or WRITE RPC call returns an error. The current code depends on 'hdr->good_bytes' always being initialised to a large value, which is not always done correctly by callers. When this happens, applications may end up missing important errors. Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/pagelist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0643558f85e740019e0632072c55e8b2f79a8d7d Author: Koro Chen Date: Mon Aug 17 19:16:51 2015 +0800 ASoC: mediatek: Remove AIF widgets for backend DAIs DAPM core already creates widgets for DAIs. It is not necessary to declare them by SND_SOC_DAPM_AIF_IN/SND_SOC_DAPM_AIF_OUT. Furthermore, original codes use backend DAI's stream name to be the AIF widget name. It causes the same widget to be created twice, and after commit 92fa12426741 ("ASoC: dapm: Add new widgets to the end of the widget list") the first created widget (by snd_soc_dapm_new_controls) is used, not the 2nd created one (by snd_soc_dapm_new_dai_widgets), so audio path is broken. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-pcm.c | 11 ----------- 1 file changed, 11 deletions(-) commit 8f8ff9135b28a7560a5627aceaf289e3f0d4cd64 Author: Richard Alpe Date: Mon Aug 17 14:15:10 2015 +0200 tipc: don't sanity check non-existing TLV (NL compat) A zero length payload means that no TLV (Type Length Value) data has been passed. Prior to this patch a non-existing TLV could be sanity checked with TLV_OK() resulting in random behavior where a user sending an empty message occasionally got a incorrect "operation not supported" message back. Signed-off-by: Richard Alpe Reviewed-by: Erik Hugne Signed-off-by: David S. Miller net/tipc/netlink_compat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da3cc2da7c08dc1f4371a4cc2eb83b22a0cf83a8 Author: Yuval Mintz Date: Mon Aug 17 08:28:25 2015 +0300 bnx2: Fix bandwidth allocation for some MF modes Management firmware tells driver in case bandwidth configuration for a specific function exists, but [regretably] the same field has different meanings depending on the multi-function mode - it can either be a percentile value or an actual speed. For newer multi-function modes current logic is incorrect - driver understands values as actual speeds instead of percentages, causing the resulting chip configuration to be incorrect. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 4 ++++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) commit 672cfeeb93e572f108965cf964c3e2a869a549cc Merge: 92f2618 ac22a1d Author: Greg Kroah-Hartman Date: Mon Aug 17 09:12:15 2015 -0700 Merge tag 'extcon-next-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-testing Chanwoo writes: Update extcon for v4.3 This patchset include the function update of extcon drivers without critical update and fix minor issue of extcon drivers. Detailed description for patchset: 1. Update the extcon drivers: - Update the logic of microphone detection for extcon-arizona driver - Support GPIO based USB ID detection of extcon-palmas driver 2. Fix minor issues: - Clean code and remove the opitonal print_state() function pointer from extcon core driver - Clear interrupt bit state before requesting irq on extcon-max778433 driver - Fix signedness bugs of extcon core driver commit 02dc2723f2b0b94bb3e47c08e1543b84b1836086 Merge: 1724856 26c78da Author: Greg Kroah-Hartman Date: Mon Aug 17 09:09:51 2015 -0700 Merge tag 'usb-serial-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next Johan writes: USB-serial updates for v4.3-rc1 Here's a fix for a long-standing issue with the pl2303 divisor calculations that affects some non-standard baudrates that were enabled in v3.18. Adding support for newer Edgeport devices and firmware required changes to the io_ti driver and also exposed some issues with the driver's current firmware handling. Included is also a URL comment-typo fix. Signed-off-by: Johan Hovold commit 3a6b0605c73d1d695f6d4e49289deaa3fa3e73ee Author: Mauro Carvalho Chehab Date: Mon Aug 17 11:51:35 2015 -0300 Revert "[media] ARM: DT: STi: STiH407: Add c8sectpfe LinuxDVB DT node" There are some missing dependencies at the DT, as it looks for an I2C bus named "ssc2", but this is not defined. Probably, it misses some dependencies from some other tree. For now, revert this patch, to avoid build breakages. This reverts commit 5d8877b6ae0d47897b821b8a11a2e8dee9a22686. Signed-off-by: Mauro Carvalho Chehab arch/arm/boot/dts/stihxxx-b2120.dtsi | 38 ------------------------------------ 1 file changed, 38 deletions(-) commit b2887410f0d00f376b250f78d34654b4ac093900 Author: Vasanthakumar Thiagarajan Date: Thu Aug 13 21:10:54 2015 +0530 ath10k: fill in wmi 10.4 command handlers for addba/delba debug commands WMI 10.4 uses the same command interface as QCA988X for addba/delba debug wmi commands. Fill wmi_10_4_ops table with the functions used for QCA988X for these commands. With this change, the following debugfs entries can be used to configure the aggregation mode and to send addba request, addba response and delba respectively in manual aggregation mode for QCA99X0 chip. /sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/aggr_mode /sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/addba /sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/addba_resp /sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/delba Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2b0a2e0d7c2f12d06575fdc2a0f5cc04b131202d Author: Raja Mani Date: Fri Aug 14 11:13:34 2015 +0300 ath10k: handle 10.4 firmware phyerr event Header format of 10.4 firmware phyerr event is not alligned with pre 10.4 firmware. Introduce new wmi handlers to parse 10.4 firmware specific phyerror event header. With changes covered in this patch, radar detection works on qca9x0 hw 2.0 which uses 10.4 firmware. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 64 +++++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 20 +++++++++++ 2 files changed, 84 insertions(+) commit 991adf71a6cd993c3e6a1a0d8ea9f88b2fa51b95 Author: Raja Mani Date: Fri Aug 14 11:13:29 2015 +0300 ath10k: refactor phyerr event handlers Existing phyerr event handlers directly uses phyerr header format (ie, struct wmi_phyerr and struct wmi_phyerr_event) in the code exactly on how firmware packs it. This is the problem in 10.4 fw specific phyerr event handling where it uses different phyerror header format. Before adding 10.4 specific handler, little bit of refactor is done in existing phyerr handlers. Two new abstracted structures (struct wmi_phyerr_ev_hdr_arg and struct wmi_phyerr_ev_arg) are introduced to remove dependency of using firmware specific header format in the code. So that firmware specific phyerror handlers can populate values to abstracted structures and the following code can use abstracted struct for further operation. .pull_phyerr_hdr is added newly to pull common phyerr header info like tsf, buf_len, number of phyerr packed. Existing .pull_phyerr handler is changed and called to parse every sub phyerrs in the event. Validated these refactoring on qca988x hw2.0 using fw 10.2.4 version. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/spectral.c | 9 +-- drivers/net/wireless/ath/ath10k/spectral.h | 4 +- drivers/net/wireless/ath/ath10k/wmi-ops.h | 22 ++++-- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 17 ++-- drivers/net/wireless/ath/ath10k/wmi.c | 121 ++++++++++++++++++++--------- drivers/net/wireless/ath/ath10k/wmi.h | 43 +++++++--- 6 files changed, 149 insertions(+), 67 deletions(-) commit f4bbb8290143b61904a082e9c6d69b6633721925 Author: Nicholas Mc Guire Date: Thu Aug 13 15:38:31 2015 +0300 wil6210: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. As remain is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/wil6210/wmi.c:827 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_WIL6210=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8674d909fabf49140e266f124af68daa3ac93ab3 Author: Michal Kazior Date: Thu Aug 13 14:10:46 2015 +0200 ath10k: split ap/ibss wep key install process Apparently it's not safe to install both pairwise and groupwise keys on AP vdevs as it can cause traffic to stop working in some multi-vif (WPA+WEP) cases. Fixes: ce90b27128c2 ("ath10k: fix multiple key static wep with ibss") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 44 +++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) commit 01ec8472009c973413d4dc6fb198f0cc40abb9b4 Author: Clemens Gruber Date: Thu Jul 23 17:19:02 2015 +0200 pwm-pca9685: Support changing the output frequency Previously, period_ns and duty_ns were only used to determine the ratio of ON and OFF time, the default frequency of 200 Hz was never changed. The PCA9685 however is capable of changing the PWM output frequency, which is expected when changing the period. This patch configures the prescaler accordingly, using the formula and notes provided in the PCA9685 datasheet. Bounds checking for the minimum and maximum frequencies, last updated in revision v.4 of said datasheet, is also added. The prescaler is only touched if the period changed, because we have to put the chip into sleep mode to unlock the prescale register. If it is changed, the PWM output frequency changes for all outputs, because there is one prescaler per chip. This is documented in the PCA9685 datasheet and in the comments. If the duty cycle is not changed at the same time as the period, then we restart the PWM output using the duty cycle to period ratio from before the period change. When using LEDs for example, previously set brightness levels stay the same when the frequency changes. Cc: Thierry Reding Cc: Steffen Trumtrar Signed-off-by: Clemens Gruber Signed-off-by: Thierry Reding drivers/pwm/pwm-pca9685.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) commit 4a627b52e47ee09348773a981f2097f69ff349ee Author: Clemens Gruber Date: Thu Jul 23 17:19:01 2015 +0200 pwm-pca9685: Fix several driver bugs Problems: - When duty_ns == period_ns, the full OFF bit was not cleared and the PWM output of the PCA9685 stayed off. - When duty_ns == period_ns and the catch-all channel was used, the ALL_LED_OFF_L register was not cleared. - The full ON bit was not cleared when setting the OFF time, therefore the exact OFF time was ignored when setting a duty_ns < period_ns Solution: Clear both OFF registers when setting full ON and clear the full ON bit when changing the OFF registers. Cc: Thierry Reding Cc: Steffen Trumtrar Signed-off-by: Clemens Gruber Signed-off-by: Thierry Reding drivers/pwm/pwm-pca9685.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 22d109c1bb312dbf321f3d0ab1b0ed94f1a7e304 Author: Markus Pargmann Date: Mon Aug 17 08:20:09 2015 +0200 nbd: flags is a u32 variable The flags variable is used as u32 variable. This patch changes the type to be u32. Signed-off-by: Markus Pargmann Signed-off-by: Jens Axboe drivers/block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cad73b2703cff68b140d68221eeecd5a30322b44 Author: Markus Pargmann Date: Mon Aug 17 08:20:08 2015 +0200 nbd: Rename functions for clearness of recv/send path This patch renames functions so that it is clear what the function does. Otherwise it is not directly understandable what for example 'do_it' means. Signed-off-by: Markus Pargmann Signed-off-by: Jens Axboe drivers/block/nbd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 696697cb50e4b57d4163d59a496ad9e52f6bff8a Author: Markus Pargmann Date: Mon Aug 17 08:20:07 2015 +0200 nbd: Change 'disconnect' to be boolean Signed-off-by: Markus Pargmann Acked-by: Pavel Machek Signed-off-by: Jens Axboe drivers/block/nbd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 30d53d9c11b6c2f71253a2be582969d7e6fa7f10 Author: Markus Pargmann Date: Mon Aug 17 08:20:06 2015 +0200 nbd: Add debugfs entries Add some debugfs files that help to understand the internal state of NBD. This exports the different sizes, flags, tasks and so on. Signed-off-by: Markus Pargmann Signed-off-by: Jens Axboe drivers/block/nbd.c | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 177 insertions(+), 1 deletion(-) commit 6521d39a64b3f9c3acb0fd25a34cfaf9a40e548e Author: Markus Pargmann Date: Mon Aug 17 08:20:05 2015 +0200 nbd: Remove variable 'pid' This patch uses nbd->task_recv to determine the value of the previously used variable 'pid' for sysfs. Signed-off-by: Markus Pargmann Signed-off-by: Jens Axboe drivers/block/nbd.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit e78273c80b213806ec7c51176ec81e034fe5cb9f Author: Markus Pargmann Date: Mon Aug 17 08:20:04 2015 +0200 nbd: Move clear queue debug message This message was a warning without a reason. This patch moves it into nbd_clear_que and transforms it to a debug message. Signed-off-by: Markus Pargmann Signed-off-by: Jens Axboe drivers/block/nbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 193918307f4e66eb6a811f30795991c6f7680b34 Author: Markus Pargmann Date: Mon Aug 17 08:20:03 2015 +0200 nbd: Remove 'harderror' and propagate error properly Instead of a variable 'harderror' we can simply try to correctly propagate errors to the userspace. This patch removes the harderror variable and passes errors through error pointers and nbd_do_it back to the userspace. Signed-off-by: Markus Pargmann Acked-by: Pavel Machek Signed-off-by: Jens Axboe drivers/block/nbd.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 260bbce403e2ac601b422fd926f48b9924051f92 Author: Markus Pargmann Date: Mon Aug 17 08:20:02 2015 +0200 nbd: restructure sock_shutdown This patch restructures sock_shutdown to avoid having the main code path in an if block. Signed-off-by: Markus Pargmann Acked-by: Pavel Machek Signed-off-by: Jens Axboe drivers/block/nbd.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 36e47bee7c9bc7771aad6e972dea92e2324338a4 Author: Markus Pargmann Date: Mon Aug 17 08:20:01 2015 +0200 nbd: sock_shutdown, remove conditional lock Move the conditional lock from sock_shutdown into the surrounding code. Signed-off-by: Markus Pargmann Acked-by: Pavel Machek Signed-off-by: Jens Axboe drivers/block/nbd.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 7e2893a16d3e71035a38122a77bc55848a29f0e4 Author: Markus Pargmann Date: Mon Aug 17 08:20:00 2015 +0200 nbd: Fix timeout detection At the moment the nbd timeout just detects hanging tcp operations. This is not enough to detect a hanging or bad connection as expected of a timeout. This patch redesigns the timeout detection to include some more cases. The timeout is now in relation to replies from the server. If the server does not send replies within the timeout the connection will be shut down. The patch adds a continous timer 'timeout_timer' that is setup in one of two cases: - The request list is empty and we are sending the first request out to the server. We want to have a reply within the given timeout, otherwise we consider the connection to be dead. - A server response was received. This means the server is still communicating with us. The timer is reset to the timeout value. The timer is not stopped if the list becomes empty. It will just trigger a timeout which will directly leave the handling routine again as the request list is empty. The whole patch does not use any additional explicit locking. The list_empty() calls are safe to be used concurrently. The timer is locked internally as we just use mod_timer and del_timer_sync(). The patch is based on the idea of Michal Belczyk with a previous different implementation. Cc: Michal Belczyk Cc: Hermann Lauer Signed-off-by: Markus Pargmann Tested-by: Hermann Lauer Signed-off-by: Jens Axboe drivers/block/nbd.c | 98 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 28 deletions(-) commit fe0aea7978d25d8df6c128481b8111e76d972657 Author: Jonathan Richardson Date: Mon Jun 15 14:21:01 2015 -0700 pwm: kona: Modify settings application sequence Update the driver so that settings are applied in accordance with the most recent version of the hardware spec. The revised sequence clears the trigger bit, waits 400ns, writes settings, sets the trigger bit, and waits another 400ns. This corrects an issue where occasionally a requested change was not properly reflected in the PWM output. Reviewed-by: Arun Ramamurthy Reviewed-by: Scott Branden Tested-by: Scott Branden Reviewed-by: Tim Kryger Signed-off-by: Jonathan Richardson Signed-off-by: Thierry Reding drivers/pwm/pwm-bcm-kona.c | 47 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) commit db0fa0cb015794dd19f664933d49c6ce902ec1e1 Author: Dan Williams Date: Mon Aug 17 08:13:26 2015 -0600 scatterlist: use sg_phys() Coccinelle cleanup to replace open coded sg to physical address translations. This is in preparation for introducing scatterlists that reference __pfn_t. // sg_phys.cocci: convert usage page_to_phys(sg_page(sg)) to sg_phys(sg) // usage: make coccicheck COCCI=sg_phys.cocci MODE=patch virtual patch @@ struct scatterlist *sg; @@ - page_to_phys(sg_page(sg)) + sg->offset + sg_phys(sg) @@ struct scatterlist *sg; @@ - page_to_phys(sg_page(sg)) + sg_phys(sg) & PAGE_MASK Signed-off-by: Dan Williams Signed-off-by: Jens Axboe arch/arm/mm/dma-mapping.c | 2 +- arch/microblaze/kernel/dma.c | 3 +-- drivers/iommu/intel-iommu.c | 4 ++-- drivers/iommu/iommu.c | 2 +- drivers/staging/android/ion/ion_chunk_heap.c | 4 ++-- 5 files changed, 7 insertions(+), 8 deletions(-) commit 89e2a8404e4415da1edbac6ca4f7332b4a74fae2 Author: Christoph Hellwig Date: Fri Aug 7 18:15:15 2015 +0200 crypto/omap-sham: remove an open coded access to ->page_link Signed-off-by: Dan Williams [hch: split from a larger patch by Dan] Signed-off-by: Christoph Hellwig Acked-by: Herbert Xu Signed-off-by: Jens Axboe drivers/crypto/omap-sham.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da81ed16bdb3bc1bf92e6cb3340915a3204d5ace Author: Dan Williams Date: Fri Aug 7 18:15:14 2015 +0200 scatterlist: remove open coded sg_unmark_end instances Signed-off-by: Dan Williams [hch: split from a larger patch by Dan] Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe block/blk-merge.c | 2 +- drivers/mmc/card/queue.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c56f6d1270b9fc31144b59106bc8590c2acf4a8e Author: Dan Williams Date: Fri Aug 7 18:15:13 2015 +0200 crypto: replace scatterwalk_sg_chain with sg_chain Signed-off-by: Dan Williams [hch: split from a larger patch by Dan] Signed-off-by: Christoph Hellwig Acked-by: Herbert Xu Signed-off-by: Jens Axboe crypto/algif_skcipher.c | 2 +- crypto/ccm.c | 8 ++++---- crypto/gcm.c | 4 ++-- drivers/crypto/bfin_crc.c | 3 +-- drivers/crypto/qce/sha.c | 2 +- drivers/crypto/sahara.c | 2 +- drivers/crypto/talitos.c | 2 +- include/crypto/scatterwalk.h | 10 +--------- 8 files changed, 12 insertions(+), 21 deletions(-) commit 02c4de53add1b799f5663d5e9c8e9a5d9366a507 Author: Christoph Hellwig Date: Fri Aug 7 18:15:12 2015 +0200 target/rd: always chain S/G list The rd sg lists are never passed to hardware, so use S/G chaining unonditionally. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/target/target_core_rd.c | 44 ----------------------------------------- 1 file changed, 44 deletions(-) commit 10c95ed9aa2970e05fedb4ac8b3ce1b934dab17b Author: Christoph Hellwig Date: Fri Aug 7 18:15:11 2015 +0200 scatterlist: allow limited chaining without ARCH_HAS_SG_CHAIN There are a couple of uses of struct scatterlist that never go to the dma_map_sg() helper and thus don't care about ARCH_HAS_SG_CHAIN which indicates that we can map chained S/G list. The most important one is the crypto code, which currently has to open code a few helpers to always allow chaining. This patch removes a few #ifdef ARCH_HAS_SG_CHAIN statements so that we can switch the crypto code to these common helpers. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe include/linux/scatterlist.h | 4 ---- lib/scatterlist.c | 4 ---- 2 files changed, 8 deletions(-) commit 5efb1d5489520ce72232bbc28e9156f0ebddc44e Author: Adrian Hunter Date: Fri Jul 17 19:33:42 2015 +0300 perf tools: Take Intel PT into use To record an AUX area, the weak function auxtrace_record__init() must be implemented. Equally to decode an AUX area, the AUX area tracing type must be added to the perf_event__process_auxtrace_info() function. This patch makes those two changes plus hooks up default config for the intel_pt PMU. Also some brief documentation is provided for using the tools with intel_pt. Commiter note: E.g: [root@perf4 ~]# dmesg 451 [0.405807] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell events, full-width counters, Intel PMU driver. [root@perf4 ~]# perf --version perf version 4.1.g53874a [root@perf4 ~]# perf record -e intel_pt//u -a sleep 10 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.383 MB perf.data ] [root@perf4 ~]# perf evlist intel_pt//u sched:sched_switch dummy:u [root@perf4 ~]# perf report --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 0 of event 'intel_pt//u' # Event count (approx.): 0 # # Overhead Command Shared Object Symbol # ........ ....... ............. ...... # # Samples: 393 of event 'sched:sched_switch' # Event count (approx.): 393 # # Overhead Command Shared Object Symbol # ........ .............. ................ .............. 49.62% swapper [kernel.vmlinux] [k] __schedule 10.69% rcu_sched [kernel.vmlinux] [k] __schedule 6.62% rcuos/0 [kernel.vmlinux] [k] __schedule 5.60% kworker/0:1 [kernel.vmlinux] [k] __schedule 3.56% rcuos/3 [kernel.vmlinux] [k] __schedule 3.05% kworker/u384:2 [kernel.vmlinux] [k] __schedule 2.54% kworker/2:0 [kernel.vmlinux] [k] __schedule 2.54% tuned [kernel.vmlinux] [k] __schedule # Samples: 0 of event 'dummy:u' # Event count (approx.): 0 # # Overhead Command Shared Object Symbol # ........ ....... ............. ...... # Samples: 28 of event 'instructions:u' # Event count (approx.): 5030172 # # Overhead Command Shared Object Symbol # ........ .......... ................... ................................ # 21.43% tuned libpython2.7.so.1.0 [.] PyEval_EvalFrameEx | ---PyEval_EvalFrameEx | |--83.33%-- PyEval_EvalCodeEx | PyEval_EvalFrameEx | | | |--60.00%-- PyEval_EvalCodeEx | | PyEval_EvalFrameEx | | PyEval_EvalFrameEx | | | --40.00%-- PyEval_EvalFrameEx | --16.67%-- PyEval_EvalFrameEx PyEval_EvalCodeEx PyEval_EvalFrameEx PyEval_EvalCodeEx PyEval_EvalFrameEx PyEval_EvalFrameEx 14.29% tuned libpython2.7.so.1.0 [.] _PyType_Lookup | ---_PyType_Lookup _PyObject_GenericGetAttrWithDict PyEval_EvalFrameEx PyEval_EvalCodeEx PyEval_EvalFrameEx PyEval_EvalCodeEx PyEval_EvalFrameEx | |--75.00%-- PyEval_EvalFrameEx | --25.00%-- PyEval_EvalCodeEx PyEval_EvalFrameEx PyEval_EvalFrameEx 3.57% irqbalance irqbalance [.] 0x0000000000004038 | ---0x4038 0x4761 0x4761 0x4761 0x49f1 0x2295 3.57% irqbalance libc-2.17.so [.] __GI_____strtoull_l_internal | ---__GI_____strtoull_l_internal 0x6f49 0x229a 3.57% irqbalance libc-2.17.so [.] __strchrnul | ---__strchrnul vfprintf __vsprintf_chk __sprintf_chk 0x2724 0x4038 0x2331 3.57% irqbalance libc-2.17.so [.] __strstr_sse42 | ---__strstr_sse42 0x71e0 0x229f # And now to some userspace ftrace on uninstrumented binaries 8-) : # Hand edited to make it a bit more compact, replacing /home/acme/bin/perf # with /bin/perf: [root@perf4 ~]# perf script perf 8921 [3] 7.310889: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310889: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310889: 1 branches:u: 481694 perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310889: 1 branches:u: 481630 perf_evlist__enable (/bin/perf) => 4816d8 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310889: 1 branches:u: 4816de perf_evlist__enable (/bin/perf) => 48164f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310889: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310889: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.310889: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310889: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.310890: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310890: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310890: 1 branches:u: 481694 perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310890: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310890: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.310890: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310890: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.310893: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310893: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310893: 1 branches:u: 4816a8 perf_evlist__enable (/bin/perf) => 4815f8 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310893: 1 branches:u: 4815fe perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310893: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310893: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.310893: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310893: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.310956: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310956: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310956: 1 branches:u: 481694 perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310956: 1 branches:u: 481630 perf_evlist__enable (/bin/perf) => 4816d8 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310956: 1 branches:u: 4816de perf_evlist__enable (/bin/perf) => 48164f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310956: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310956: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.310956: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310956: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.310961: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310961: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310961: 1 branches:u: 481694 perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310961: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310961: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.310961: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310961: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.310968: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310968: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310968: 1 branches:u: 4816a8 perf_evlist__enable (/bin/perf) => 4815f8 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310968: 1 branches:u: 4815fe perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310968: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.310968: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.310968: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.310968: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.311040: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.311040: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311040: 1 branches:u: 481694 perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311040: 1 branches:u: 481630 perf_evlist__enable (/bin/perf) => 4816d8 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311040: 1 branches:u: 4816de perf_evlist__enable (/bin/perf) => 48164f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311040: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311040: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.311040: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.311040: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.311046: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.311046: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311046: 1 branches:u: 481694 perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311046: 1 branches:u: 481652 perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf) perf 8921 [3] 7.311046: 1 branches:u: 481684 perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf) perf 8921 [3] 7.311046: 1 branches:u: 41d250 ioctl@plt (/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.311046: 1 branches:u: 7fcecadbf255 __GI___ioctl (/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown]) perf 8921 [3] 7.311050: 1 branches:u: 0 [unknown] ([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so) perf 8921 [3] 7.311050: 1 branches:u: 7fcecadbf25f __GI___ioctl (/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf) : Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-8-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/intel-pt.txt | 588 ++++++++++++++++++++++++++++++++++ tools/perf/arch/x86/util/Build | 2 + tools/perf/arch/x86/util/auxtrace.c | 38 +++ tools/perf/arch/x86/util/pmu.c | 15 + tools/perf/util/auxtrace.c | 5 +- tools/perf/util/pmu.c | 4 +- 6 files changed, 649 insertions(+), 3 deletions(-) commit 90e457f7be0870052724b2d9c2c106e5847f2c19 Author: Adrian Hunter Date: Fri Jul 17 19:33:41 2015 +0300 perf tools: Add Intel PT support Add support for Intel Processor Trace. Intel PT support fits within the new auxtrace infrastructure. Recording is supporting by identifying the Intel PT PMU, parsing options and setting up events. Decoding is supported by queuing up trace data by cpu or thread and then decoding synchronously delivering synthesized event samples into the session processing for tools to consume. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-7-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/x86/util/Build | 2 + tools/perf/arch/x86/util/intel-pt.c | 752 ++++++++++++++ tools/perf/util/Build | 1 + tools/perf/util/intel-pt.c | 1911 +++++++++++++++++++++++++++++++++++ tools/perf/util/intel-pt.h | 51 + 5 files changed, 2717 insertions(+) commit f4aa081949e7b6b01e711229c5a47ee3482a169c Author: Adrian Hunter Date: Fri Jul 17 19:33:40 2015 +0300 perf tools: Add Intel PT decoder Add support for decoding an Intel Processor Trace. Intel PT trace data must be 'decoded' which involves walking the object code and matching the trace data packets. The decoder requests a buffer of binary data via a get_trace() call-back, which it decodes using instruction information which it gets via another call-back walk_insn(). Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-6-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt-decoder/Build | 2 +- .../perf/util/intel-pt-decoder/intel-pt-decoder.c | 1816 ++++++++++++++++++++ .../perf/util/intel-pt-decoder/intel-pt-decoder.h | 104 ++ 3 files changed, 1921 insertions(+), 1 deletion(-) commit 53af92849d793662e943d61bb16f7d3eb2d7a072 Author: Adrian Hunter Date: Fri Jul 17 19:33:39 2015 +0300 perf tools: Add Intel PT log Add a facility to log Intel Processor Trace decoding. The log is intended for debugging purposes only. The log file name is "intel_pt.log" and is opened in the current directory. The log contains a record of all packets and instructions decoded and can get very large (10 MB would be a small one). Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/intel-pt-decoder/Build | 2 +- tools/perf/util/intel-pt-decoder/intel-pt-log.c | 155 ++++++++++++++++++++++++ tools/perf/util/intel-pt-decoder/intel-pt-log.h | 52 ++++++++ 3 files changed, 208 insertions(+), 1 deletion(-) commit 237fae79f50d2d0c7bdeb039bc2c87fc6d52c7e7 Author: Adrian Hunter Date: Thu Aug 13 10:14:55 2015 +0300 perf tools: Add Intel PT instruction decoder Add support for decoding instructions for Intel Processor Trace. The kernel x86 instruction decoder is copied for this. This essentially provides intel_pt_get_insn() which takes a binary buffer, uses the kernel's x86 instruction decoder to get details of the instruction and then categorizes it for consumption by an Intel PT decoder. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1439450095-30122-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/Makefile.build | 2 + tools/perf/.gitignore | 1 + tools/perf/Makefile.perf | 12 +- tools/perf/util/intel-pt-decoder/Build | 12 +- .../util/intel-pt-decoder/gen-insn-attr-x86.awk | 386 ++++++++ tools/perf/util/intel-pt-decoder/inat.c | 96 ++ tools/perf/util/intel-pt-decoder/inat.h | 221 +++++ tools/perf/util/intel-pt-decoder/insn.c | 594 +++++++++++++ tools/perf/util/intel-pt-decoder/insn.h | 201 +++++ .../util/intel-pt-decoder/intel-pt-insn-decoder.c | 246 ++++++ .../util/intel-pt-decoder/intel-pt-insn-decoder.h | 65 ++ .../perf/util/intel-pt-decoder/x86-opcode-map.txt | 970 +++++++++++++++++++++ 12 files changed, 2803 insertions(+), 3 deletions(-) commit a4e925905c98fb83538c164878946d77d0df1433 Author: Adrian Hunter Date: Fri Jul 17 19:33:37 2015 +0300 perf tools: Add Intel PT packet decoder Add support for decoding Intel Processor Trace packets. This essentially provides intel_pt_get_packet() which takes a buffer of binary data and returns the decoded packet. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/intel-pt-decoder/Build | 1 + .../util/intel-pt-decoder/intel-pt-pkt-decoder.c | 400 +++++++++++++++++++++ .../util/intel-pt-decoder/intel-pt-pkt-decoder.h | 64 ++++ 4 files changed, 466 insertions(+) commit 55ea4ab4260f42b824450faa47fe4d129fce0918 Author: Adrian Hunter Date: Fri Jul 17 19:33:36 2015 +0300 perf auxtrace: Add Intel PT as an AUX area tracing type Add the Intel Processor Trace type constant PERF_AUXTRACE_INTEL_PT. Signed-off-by: Adrian Hunter Acked-by: Jiri Olsa Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 1 + tools/perf/util/auxtrace.h | 1 + 2 files changed, 2 insertions(+) commit 835095653ebfe4b16596a30db1c4e7c414014b5e Author: Adrian Hunter Date: Thu Aug 13 12:40:56 2015 +0300 perf tools: Add a helper function to probe whether cpu-wide tracing is possible Add a helper function to probe whether cpu-wide tracing is possible. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1439458857-30636-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.h | 1 + tools/perf/util/record.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) commit f0ee3b467ab7a74ffce75190259eb59dbf30ecad Author: Adrian Hunter Date: Fri Aug 14 15:50:06 2015 +0300 perf symbols: Fix annotation of vdso Older kernels attempt to prelink vdso to its virtual address. To permit annotation using objdump, the map__rip_2objdump() calculation must result in that same address which we can infer from the start and offset of the text section. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: Will Deacon Link: http://lkml.kernel.org/r/1439556606-11297-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 3d7245b0946c13a97e3a10213b8fd0152972a0d5 Author: Adrian Hunter Date: Fri Aug 14 10:11:34 2015 +0300 perf annotate: Fix 32-bit compilation error in util/annotate.c Fix the following 32-bit compilation errors: util/annotate.c: In function ‘addr_map_symbol__account_cycles’: util/annotate.c:643:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘u64’ [-Werror=format=] pr_debug2("BB with bad start: addr %lx start %lx sym %lx saddr %lx\n", ^ util/annotate.c:643:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘u64’ [-Werror=format=] util/annotate.c:643:3: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘u64’ [-Werror=format=] These were introduced by the patch: "perf report: Add infrastructure for a cycles histogram" Also change the 'saddr' variable from 'unsigned long' to 'u64' noting that theoretically we could be processing data captured on a 64-bit machine but processing it on a 32-bit machine. Signed-off-by: Adrian Hunter Cc: Andi Kleen Cc: Jiri Olsa Fixes: d4957633bf9d ("perf report: Add infrastructure for a cycles histogram") Link: http://lkml.kernel.org/r/1439536294-18241-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/annotate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 09c14459f2622ccacdff13461c5c864bff80cc07 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:28:10 2015 +0900 pwm: pca9685: Drop owner assignment i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Thierry Reding drivers/pwm/pwm-pca9685.c | 1 - 1 file changed, 1 deletion(-) commit 21df89a5667de5fcd061753d3833e7dfcf5509d3 Author: Jammy Zhou Date: Fri Aug 7 15:30:44 2015 +0800 drm/amdgpu: fix one warning message In function 'amdgpu_uvd_cs_pass2': warning: 'min_ctx_size' may be used uninitialized in this function buf_sizes[0x4] = min_ctx_size; ^ note: 'min_ctx_size' was declared here unsigned image_size, tmp, min_dpb_size, num_dpb_buffer, min_ctx_size; ^ Signed-off-by: Jammy Zhou Reviewed-by: Christian König Cc: stable@vger.kernel.org drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7322d6c98dd214252bd697f8dde64a3576977fab Author: Jiri Olsa Date: Thu Aug 13 09:17:24 2015 +0200 perf script: Initialize callchain_param.record_mode Milian Wolff reported non functional DWARF unwind under perf script. The reason is that perf script does not properly configure callchain_param.record_mode, which is needed by unwind code. Stealing the code from report and leaving the place for more initialization code in a hope we could merge it with report__setup_sample_type one day. Reported-by: Milian Wolff Signed-off-by: Jiri Olsa Tested-by: Milian Wolff Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150813071724.GA21322@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 9c8fb548fb242b462657151eb9c5dd6b6def5b62 Author: Vasanthakumar Thiagarajan Date: Wed Aug 12 16:24:05 2015 +0530 ath10k: add cycle/rx_clear counters frequency to hw_params The frequency at which cycle/rx_clear counters are running might change from one target type to another. QCA99X0 is running the counters at 150Mhz while QCA9888X and QCA6174 are running at 88Mhz. Add a new entry to hw_params to store the target specific frequency and use it in msecs conversion. This change fixes inconsistent channel active/busy time. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 5 +++++ drivers/net/wireless/ath/ath10k/core.h | 2 ++ drivers/net/wireless/ath/ath10k/hw.c | 4 ++-- drivers/net/wireless/ath/ath10k/hw.h | 3 +-- 4 files changed, 10 insertions(+), 4 deletions(-) commit 3d2a2e293e9578f59b182c8e5ad7b54ec4e28318 Author: Vasanthakumar Thiagarajan Date: Wed Aug 12 16:24:04 2015 +0530 ath10k: fix invalid survey reporting for QCA99X0 There are three WMI_CHAN_INFO events reported per channel in QCA99X0 firmware. First one is a notification at the begining of the channel dwell time with cmd_flag as CHAN_INFO_START(cmd_flag = 0), second one is a notification at the end of the dwell time with cmd_flag CHAN_INFO_PRE_COMPLETE (cmd_flag = 2) and the third is the indication with CHAN_INFO_COMPLETE (cmd_flag = 1) which is the last indication for the channel. Since there is a new state before the completion, the handler is to fixed so that the counts are deducted from the ones reported with CHAN_INFO_START rather than the ones reported with CHAN_INFO_PRE_COMPLETE. Without this fix there will be lots of 0 msecs reported as active and busy time. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 6 ++++-- drivers/net/wireless/ath/ath10k/wmi.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) commit d0465208206c7c6859afffc405570c1921e2d896 Author: Alex Deucher Date: Thu Jul 23 10:53:51 2015 -0400 drm/radeon/dce6: assign different audio pins to each encoder This allows you to send different audio to each audio capable display. Signed-off-by: Alex Deucher drivers/gpu/drm/radeon/dce6_afmt.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) commit 6d2d51ecfff13f5f6ffc476dccf4d5b2668072eb Author: Michal Kazior Date: Fri Aug 7 09:08:21 2015 +0200 ath10k: wake up queue upon vif creation Vif's vdev_id is used as queue number. However due to the tx pausing design in ath10k it was possible for a new interface to be created with its tx queue stopped (via ieee80211_stop_queues). This could in turn leave the interface inoperable until ath10k_mac_tx_unlock() was called. This problem only affected multi-vif scenarios when new interfaces were created some time later after other interfaces have been running for some time and had Tx queue full at some point prior. Possible manifestation of the bug was authentication timeout for a client vif. Fixes: 96d828d45e16 ("ath10k: rework tx queue locking") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6e146f5c41da7e9601fe92fb4d06b45431dbf95b Author: Thierry Reding Date: Mon Jul 27 12:00:23 2015 +0200 pwm: Add to device-drivers documentation Add a short introductory text along with API documentation generated from kerneldoc comments for the PWM framework. Signed-off-by: Thierry Reding Documentation/DocBook/device-drivers.tmpl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 048838027667872a75d3af40c51a22088bafd968 Author: Thierry Reding Date: Mon Jul 27 11:58:32 2015 +0200 pwm: Clean up kerneldoc Clean up kerneldoc in preparation for including the PWM documentation in DocBook. Signed-off-by: Thierry Reding drivers/pwm/core.c | 44 ++++++++++++++++++++++++++++++++++++++------ include/linux/pwm.h | 14 ++++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) commit 6bc7064a69fc5b1f774771ea9e2c50e497311766 Author: Thierry Reding Date: Mon Jul 27 11:57:28 2015 +0200 pwm: Remove useless whitespace Remove useless tabs used for padding in structure definitions as well as some blank lines. Signed-off-by: Thierry Reding drivers/pwm/core.c | 1 - include/linux/pwm.h | 71 ++++++++++++++++++++++++----------------------------- 2 files changed, 32 insertions(+), 40 deletions(-) commit 3a73d1a6f22bf13044056543ad43b2a304ee0022 Author: Michal Kazior Date: Thu Aug 6 14:46:54 2015 +0200 ath10k: wake up offchannel queue properly Once HTT Tx queue got full offchannel queue was stopped and never woken up again. This broke, e.g. P2P. This could be reproduced after running a lot of traffic enough to saturate 100% of the driver Tx queue and then trying to send offchannel traffic. Fixes: 96d828d45e16 ("ath10k: rework tx queue locking") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 2 ++ 1 file changed, 2 insertions(+) commit a0a8bcf4670c2c696e6e83742539a5e0dd7a62d6 Author: Grygorii Strashko Date: Mon Aug 17 15:35:23 2015 +0300 gpiolib: irqchip: use different lockdep class for each gpio irqchip Since IRQ chip helpers were introduced drivers lose ability to register separate lockdep classes for each registered GPIO IRQ chip and the gpiolib now is using shared lockdep class for all GPIO IRQ chips (gpiochip_irq_lock_class). As result, lockdep will produce warning when there are min two stacked GPIO chips and all of them are interrupt controllers. HW configuration which generates lockdep warning (TI dra7-evm): [SOC GPIO bankA.gpioX] <- irq - [pcf875x.gpioY] <- irq - DevZ.enable_irq_wake(pcf_gpioY_irq); The issue was reported in [1] and discussed [2]. ============================================= [ INFO: possible recursive locking detected ] 4.2.0-rc6-00013-g5d050ed-dirty #55 Not tainted --------------------------------------------- sh/63 is trying to acquire lock: (class){......}, at: [] __irq_get_desc_lock+0x50/0x94 but task is already holding lock: (class){......}, at: [] __irq_get_desc_lock+0x50/0x94 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(class); lock(class); *** DEADLOCK *** May be due to missing lock nesting notation 7 locks held by sh/63: #0: (sb_writers#4){.+.+.+}, at: [] vfs_write+0x13c/0x164 #1: (&of->mutex){+.+.+.}, at: [] kernfs_fop_write+0x4c/0x1a0 #2: (s_active#36){.+.+.+}, at: [] kernfs_fop_write+0x54/0x1a0 #3: (pm_mutex){+.+.+.}, at: [] pm_suspend+0xec/0x4c4 #4: (&dev->mutex){......}, at: [] __device_suspend+0xd4/0x398 #5: (&gpio->lock){+.+.+.}, at: [] __irq_get_desc_lock+0x74/0x94 #6: (class){......}, at: [] __irq_get_desc_lock+0x50/0x94 stack backtrace: CPU: 0 PID: 63 Comm: sh Not tainted 4.2.0-rc6-00013-g5d050ed-dirty #55 Hardware name: Generic DRA74X (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x84/0x9c) [] (dump_stack) from [] (__lock_acquire+0x19c0/0x1e20) [] (__lock_acquire) from [] (lock_acquire+0xa8/0x128) [] (lock_acquire) from [] (_raw_spin_lock_irqsave+0x38/0x4c) [] (_raw_spin_lock_irqsave) from [] (__irq_get_desc_lock+0x50/0x94) [] (__irq_get_desc_lock) from [] (irq_set_irq_wake+0x20/0xfc) [] (irq_set_irq_wake) from [] (pcf857x_irq_set_wake+0x24/0x54) [] (pcf857x_irq_set_wake) from [] (irq_set_irq_wake+0x8c/0xfc) [] (irq_set_irq_wake) from [] (gpio_keys_suspend+0x70/0xd4) [] (gpio_keys_suspend) from [] (dpm_run_callback+0x50/0x124) [] (dpm_run_callback) from [] (__device_suspend+0x10c/0x398) [] (__device_suspend) from [] (dpm_suspend+0x134/0x2f4) [] (dpm_suspend) from [] (suspend_devices_and_enter+0xa8/0x728) [] (suspend_devices_and_enter) from [] (pm_suspend+0x32c/0x4c4) [] (pm_suspend) from [] (state_store+0x64/0xb8) [] (state_store) from [] (kernfs_fop_write+0xbc/0x1a0) [] (kernfs_fop_write) from [] (__vfs_write+0x20/0xd8) [] (__vfs_write) from [] (vfs_write+0x90/0x164) [] (vfs_write) from [] (SyS_write+0x44/0x9c) [] (SyS_write) from [] (ret_fast_syscall+0x0/0x54) Lets fix it by using separate lockdep class for each registered GPIO IRQ Chip. This is done by wrapping gpiochip_irqchip_add call into macros. The implementation of this patch inspired by solution done by Nicolas Boichat for regmap [3] [1] http://www.spinics.net/lists/linux-gpio/msg05844.html [2] http://www.spinics.net/lists/linux-gpio/msg06021.html [3] http://www.spinics.net/lists/arm-kernel/msg429834.html Cc: Geert Uytterhoeven Cc: Roger Quadros Reported-by: Roger Quadros Tested-by: Roger Quadros Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 27 ++++++++++++++------------- include/linux/gpio/driver.h | 26 +++++++++++++++++++++----- 2 files changed, 35 insertions(+), 18 deletions(-) commit d5cf00c7ac2bf6b9d10c393b1e3b7551176c7f40 Author: Takashi Iwai Date: Mon Aug 17 15:06:52 2015 +0200 ALSA: hda/eld - Add const to possible places Similar like the previous fix to hda_proc.c, adding const prefix will save our world (a little bit). Signed-off-by: Takashi Iwai sound/pci/hda/hda_eld.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 1d260d7b3b03f96dfbc9781ec046edc729220f09 Author: Takashi Iwai Date: Mon Aug 17 14:57:32 2015 +0200 ALSA: hda/proc - Fix racy string access for power states The power states in a proc file are printed in a racy manner on a single static string buffer. Fix it by calling snd_iprintf() directly for each state instead of processing on a temporary buffer. Signed-off-by: Takashi Iwai sound/pci/hda/hda_proc.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) commit cc75cdfe1d64585d82013632b81199b1e9f1da97 Author: Takashi Iwai Date: Mon Aug 17 14:52:51 2015 +0200 ALSA: hda/proc - Add const to possible places Many arrays in hda_proc.c are string arrays that should be covered by const prefix for increasing the safety and reducing the size. Signed-off-by: Takashi Iwai sound/pci/hda/hda_proc.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) commit d2c6b63df5c143ea1535398e0874432277285765 Author: Takashi Iwai Date: Mon Aug 17 14:44:24 2015 +0200 ALSA: hda - Make some helper functions local A few helper functions to convert the pin information to strings have been exported with assumption that they were used by other drivers. But they are referred only in the proc interface in the end. Let's make them local so that we can get rid of a few exports. Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 70 ----------------------------------------------- sound/pci/hda/hda_codec.h | 7 ----- sound/pci/hda/hda_proc.c | 65 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 80 deletions(-) commit dd43c4e92fbb135dcbf02845578db60be56a453a Author: Herbert Xu Date: Mon Aug 17 20:39:40 2015 +0800 crypto: null - Add missing Kconfig tristate for NULL2 This patch adds a missing tristate statement to Kconfig for the new CRYPTO_NULL2 option. Fixes: 149a39717dcc ("crypto: aead - Add type-safe geniv init/exit helpers") Reported-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 54e466fde4816455cc5b1893b73c2f3c7ca52e49 Merge: 2c6625c 11cec15 Author: Joerg Roedel Date: Mon Aug 17 14:16:59 2015 +0200 Merge tag 'tegra-for-4.3-iommu' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/tegra iommu/tegra-smmu: Changes for v4.3-rc1 A bunch of improvements by Russell King, along with a fix to restore display support when using the SMMU. This was due to the SMMU driver writing the wrong value of active TLB lines, effectively disabling the TLB and causing massive underflows on the display controller because of the latency introduced by the SMMU. commit 9129c26da1711aba1e6295c28de8814301869732 Author: Herbert Xu Date: Mon Aug 17 18:04:17 2015 +0800 crypto: nx - Add forward declaration for struct crypto_aead The file nx.h has function prototypes that use struct crypto_aead. However, as crypto/aead.h is not included we don't have a definition for it. This patch adds a forward declaration to fix this. Reported-by: kbuild test robot Signed-off-by: Herbert Xu drivers/crypto/nx/nx.h | 2 ++ 1 file changed, 2 insertions(+) commit a26bcb04861db3061bb7db11ce905aa037111f81 Author: Herbert Xu Date: Mon Aug 17 17:45:27 2015 +0800 crypto: null - Use NULL2 in Makefile The Kconfig option NULL2 has been added as CRYPTO_MANAGER now depends indirectly on NULL2. However, the Makefile was not updated to use the new option, resulting in potential build failures when only NULL2 is enabled. Fixes: 149a39717dcc ("crypto: aead - Add type-safe geniv init/exit helpers") Reported-by: kbuild test robot Signed-off-by: Herbert Xu crypto/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57e104864bc4874a36796fd222d8d084dbf90b9b Author: Addy Ke Date: Tue Aug 11 01:27:18 2015 +0900 mmc: dw_mmc: add quirk for broken data transfer over scheme This patch add a new quirk to add a s/w timer to notify the driver to terminate current transfer and report a data timeout to the core, if DTO interrupt does NOT come within the given time. dw_mmc call mmc_request_done func to finish transfer depends on DTO interrupt. If DTO interrupt does not come in sending data state, the current transfer will be blocked. We got the reply from synopsys: There are two counters but both use the same value of [31:8] bits. Data timeout counter doesn't wait for stop clock and you should get DRTO even when the clock is not stopped. Host Starvation timeout counter is triggered with stop clock condition. This means that host should get DRTO and DTO interrupt. But this case really exists, when driver reads tuning data from card on RK3288-pink2 board. I measured waveforms by oscilloscope and found that card clock was always on and data lines were always holded high level in sending data state. There are two possibility that data over interrupt doesn't come in reading data state on RK3X SoCs: - get command done interrupt, but doesn't get any data-related interrupt. - get data error interrupt, but doesn't get data over interrupt. Signed-off-by: Addy Ke Signed-off-by: Heiko Stuebner Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc-rockchip.c | 3 ++ drivers/mmc/host/dw_mmc.c | 64 ++++++++++++++++++++++++++++++++++++-- include/linux/mmc/dw_mmc.h | 4 +++ 3 files changed, 69 insertions(+), 2 deletions(-) commit 40a7a463a80ae9e3b85a9fd85cf704fb9ac28b6f Author: Jaehoon Chung Date: Thu Aug 6 16:23:26 2015 +0900 mmc: dw_mmc: print the message for deprecated property supports-highspeed was deprecated. If someone use it, we need to notice information for it. Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2b708df2b3edf6e91a4c8d89e7aedb0f861d0e41 Author: Jaehoon Chung Date: Thu Aug 6 16:23:25 2015 +0900 mmc: dw_mmc: remove the unused blk_setting "blk_setting" doesn't use anywhere. Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc.c | 34 +++++++++++++--------------------- include/linux/mmc/dw_mmc.h | 1 - 2 files changed, 13 insertions(+), 22 deletions(-) commit 9e747b7e4af090a4974005f3064963026f519fcc Author: Jaehoon Chung Date: Thu Aug 6 16:23:24 2015 +0900 mmc: dw_mmc: fix the wrong condition checking When num-slots is lower than 1, it's right that should be returned -ENODEV. Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 575c319dfe872fc8bf1d57b244fb40f497ab3a47 Author: Heiko Stuebner Date: Mon Aug 3 17:04:10 2015 +0200 mmc: dw_mmc: fix pio mode when internal dmac is enabled The dw_mci_init_dma() may decide to not use dma, but pio instead, caused by things like wrong dma settings in the system. Till now the code dw_mci_init_slot() always assumed that dma is available when CONFIG_MMC_DW_IDMAC was defined, ignoring the host->use_dma var set during dma init. So when now the dma init failed for whatever reason, the transfer sizes would still be set for dma transfers, especially including the maximum block-count calculated from host->ring_size and resulting in a [ 4.991109] ------------[ cut here ]------------ [ 4.991111] kernel BUG at drivers/mmc/core/core.c:256! [ 4.991113] Internal error: Oops - BUG: 0 [#1] SMP ARM because host->ring_size is 0 in this case and the slot init code uses the wrong code to calculate the values. Fix this by selecting the correct calculations using the host->use_dma variable instead of the CONFIG_MMC_DW_IDMAC config option. Signed-off-by: Heiko Stuebner Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc.c | 27 ++++++++++++++------------- include/linux/mmc/dw_mmc.h | 4 ---- 2 files changed, 14 insertions(+), 17 deletions(-) commit 0e3a22c044478b6114a767af4a765c0e33eddd53 Author: Shawn Lin Date: Mon Aug 3 15:07:21 2015 +0800 mmc: dw_mmc: Fix coding style issues This patch fixes the following issues reported by checkpatch.pl: - use -EINVAL instead of -ENOSYS, to fix warning message: "ENOSYS means 'invalid syscall nr' and nothing else" - split lines whose length is greater than 80 characters - avoid quoted string split across lines - use min_t instead of min, to fix warning message: "min() should probably be min_t(int, cnt, host->part_buf_count)" - fix missing a blank line after declarations Signed-off-by: Shawn Lin Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc.c | 90 +++++++++++++++++++++++++++++------------------ 1 file changed, 56 insertions(+), 34 deletions(-) commit 5959b32e3636f9bfe3f869d1e440bc4a4d660965 Author: Alexey Brodkin Date: Thu Jun 25 11:25:07 2015 +0300 mmc: dw_mmc: handle data blocks > than 4kB if IDMAC is used As per DW MobileStorage databook "each descriptor can transfer up to 4kB of data in chained mode", moreover buffer size that is put in "des1" is limited to 13 bits, i.e. for example on attempt to IDMAC_SET_BUFFER1_SIZE(desc, 8192) size value that's effectively written will be 0. On the platform with 8kB PAGE_SIZE I see dw_mmc gets data blocks in SG-list of 8kB size and that leads to unpredictable behavior of the SD/MMC controller. In particular on write to FAT partition of SD-card the controller will stuck in the middle of DMA transaction. Solution to the problem is simple - we need to pass large (> 4kB) data buffers to the controller via multiple descriptors. And that's what that change does. What's interesting I did try original driver on same platform but configured with 4kB PAGE_SIZE and may confirm that data blocks passed in SG-list to dw_mmc never exeed 4kB limit - that explains why nobody ever faced a problem I did. Signed-off-by: Alexey Brodkin Cc: Seungwon Jeon Cc: Jaehoon Chung Cc: Ulf Hansson Cc: arc-linux-dev@synopsys.com Cc: linux-kernel@vger.kernel.org Signed-off-by: Jaehoon Chung drivers/mmc/host/dw_mmc.c | 109 ++++++++++++++++++++++++++++++---------------- 1 file changed, 71 insertions(+), 38 deletions(-) commit 7d70d476d0112b44bf93747934ff089c50549e6d Author: Yangbo Lu Date: Fri Jul 10 11:44:03 2015 +0800 mmc: block: add fixup of broken CMD23 for Sandisk card Some Sandisk cards(such as "SDMB-32" and "SDM032" cards) can't support CMD23, and would generate CMD timeout. So add FIX-UP for these two types Sandisk cards. Error log: mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900 mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900 mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900 end_request: I/O error, dev mmcblk0, sector 0 Buffer I/O error on device mmcblk0, logical block 0 mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900 Signed-off-by: Yangbo Lu Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 4 ++++ 1 file changed, 4 insertions(+) commit 67b589a2ebe3f9705e8a70275cedec78447f803a Author: Yangbo Lu Date: Fri Jul 10 11:42:37 2015 +0800 mmc: sdhci-esdhc: add default quirk SDHCI_QUIRK_NO_HISPD_BIT eSDHC supports high speed mode, but has no enabling bit for it. Add this quirk to avoid writing to eSDHC_PROCTL[DTW] by mistake. Signed-off-by: Yangbo Lu Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-esdhc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f13e5b9f3c625916d7658ba526574a5d24e4d664 Author: Yangbo Lu Date: Fri Jul 10 11:36:45 2015 +0800 mmc: sdio: avoid using NULL sdio_irq_thread pointer For Freescale QorIQ LS1021AQDS board, there is a SDIO interrupt in the process of resume without inserting SD adapter because of some unknown issue. But the driver doesn't assign sdio_irq_thread pointer. This will block the resume of kernel. This patch is used to avoid using NULL sdio_irq_thread pointer. Signed-off-by: Yangbo Lu Signed-off-by: Ulf Hansson include/linux/mmc/host.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4c06654c47ee2ff5308b7e89994225ff81b48ef2 Author: Andreas Fenkart Date: Tue Jul 7 20:38:44 2015 +0200 mmc: omap_hsmmc: regulator automatically released by devm Signed-off-by: Andreas Fenkart Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 12 ------------ 1 file changed, 12 deletions(-) commit f7f0f03506d00fc2939a8625ed141c2dda568fad Author: Andreas Fenkart Date: Tue Jul 7 20:38:43 2015 +0200 mmc: omap_hsmmc: call omap_hsmmc_set_power directly If no pdata.set_power was set by the platform code, the driver was updating pdata with its own fallback function. This is a no-no since pdata shall be read-only. This patch pushes the check 'pdata->set_power != NULL' down into the fallback functions. If pdata.set_power is really set, it calls them and exits, otherwise the fallback code is used. Signed-off-by: Andreas Fenkart Signed-off-by: Ulf Hansson drivers/mmc/host/omap_hsmmc.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) commit c21e678b256baec428662704138d85cfc593abf4 Author: Andreas Fenkart Date: Tue Jul 7 19:53:10 2015 +0200 Documentation: dt: update ti,am33xx-hsmmc swakeup workaround Before 5b83b2234be6733cf the driver was hard coding the wakeup irq to be active low. The generic pm wakeirq does not override the active high/low parameter, hence it must be specified correctly in the device tree. Mind that SDIO IRQ is active low as defined in the SDIO specification Signed-off-by: Andreas Fenkart Acked-by: Tony Lindgren Signed-off-by: Ulf Hansson Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 135b0a284d9c2bcfb64a5f7d90c439ede8bc5e06 Author: Ivan T. Ivanov Date: Mon Jul 6 15:16:21 2015 +0300 mmc: sdhci: properly check card present state when quirk NO_CARD_NO_RESET is set Controller could have both NO_CARD_NO_RESET and BROKEN_CARD_DETECTION quirks set. Use sdhci_do_get_cd() when applying NO_CARD_NO_RESET, which properly check for BROKEN_CARD_DETECTION quirk. Signed-off-by: Ivan T. Ivanov Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c31d22eb335d4e3d2016135038fac8daaa9708d6 Author: Ivan T. Ivanov Date: Mon Jul 6 15:16:20 2015 +0300 mmc: sdhci: don't use card state polling when CD GPIO is defined There is no reason to use polling for card detection state change when drivers are using dedicated GPIO for this. Don't poll in this case. Signed-off-by: Ivan T. Ivanov Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 88af56552b121295ba905db2523b1622fb4fc1e4 Author: Ivan T. Ivanov Date: Mon Jul 6 15:16:19 2015 +0300 mmc: sdhci: let GPIO based card detection have higher precedence Controller could have BROKEN_CARD_DETECTION quirk set, but drivers could use GPIO to detect card present state. Let, when defined, GPIO take precedence, so drivers could properly detect card state and not use polling. Signed-off-by: Ivan T. Ivanov Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 951b8c875ac905aa9d348c825c380e7ce66c0f62 Author: Ivan T. Ivanov Date: Mon Jul 6 14:53:38 2015 +0300 mmc: sdhci-msm: Boost controller core clock Ensure SDCC is working with maximum clock otherwise card detection could be extremely slow, up to 7 seconds. Signed-off-by: Ivan T. Ivanov Reviewed-by: Georgi Djakov Acked-by: Stephen Boyd Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-msm.c | 5 +++++ 1 file changed, 5 insertions(+) commit 829b6962f7e3cfc06f7c5c26269fd47ad48cf503 Author: Andy Shevchenko Date: Wed Jun 24 14:32:21 2015 +0300 mmc: block: don't use parameter prefix if built as module It's excessive to use prefix for the parameters when you do modprobe mmc-block mmcblk.perdev_minors=16 Make this available only for built-in case. Signed-off-by: Andy Shevchenko Signed-off-by: Ulf Hansson drivers/mmc/card/block.c | 3 +++ 1 file changed, 3 insertions(+) commit 8292adc6ba1d59fa227bcc43cec2ce207cbb588c Author: Fabian Frederick Date: Tue Jun 16 21:15:15 2015 +0200 mmc: omap: use for_each_sg() for scatterlist parsing See Documentation/DMA-API.txt - Part Id Signed-off-by: Fabian Frederick Signed-off-by: Ulf Hansson drivers/mmc/host/omap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2d532d458b43ea273632bf1cbc56c040a4b40898 Author: Suneel Garapati Date: Tue Jun 9 13:01:51 2015 +0530 mmc: sdhci-of-arasan: add quirks for broken clock base adding SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN,SDHCI_QUIRK2_PRESET_VALUE_BROKEN flags for arasan sdhc. Signed-off-by: Suneel Garapati Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci-of-arasan.c | 3 +++ 1 file changed, 3 insertions(+) commit d1955c3a9a1d89c53c9e7ce3b87799f8db1855c1 Author: Suneel Garapati Date: Tue Jun 9 13:01:50 2015 +0530 mmc: sdhci: add quirk SDHCI_QUIRK_CLOCK_DIV_ZERO_BROKEN adds quirk for controllers whose clock divider zero is broken, sdhci_set_clock function will incorporate this modification. Signed-off-by: Suneel Garapati Signed-off-by: Ulf Hansson drivers/mmc/host/sdhci.c | 3 +++ drivers/mmc/host/sdhci.h | 2 ++ 2 files changed, 5 insertions(+) commit 6464b71409511939efce1ae4fb4ec6e3483b11b2 Author: Daniel Mack Date: Sat Jun 6 23:15:22 2015 +0200 mmc: pxamci: switch over to dmaengine use Switch over pxamci to dmaengine. This prepares the devicetree full support of pxamci. This was successfully tested on a PXA3xx board, as well as PXA27x. Signed-off-by: Daniel Mack [adapted to pxa-dma] Signed-off-by: Robert Jarzmik Signed-off-by: Ulf Hansson drivers/mmc/host/pxamci.c | 200 ++++++++++++++++++++++++++-------------------- 1 file changed, 114 insertions(+), 86 deletions(-) commit 642c28ab86f7666d2ac62a0dc391b4c3121f1d6e Author: David Jander Date: Tue Jun 23 11:43:52 2015 +0200 mmc: core: Optimize case for exactly one erase-group budget In the (not so unlikely) case that the mmc controller timeout budget is enough for exactly one erase-group, the simplification of allowing one sector has an enormous performance penalty. We optimize this special case by introducing a flag that prohibits erase-group boundary crossing, so that we can allow trimming more than one sector at a time. Signed-off-by: David Jander Signed-off-by: Ulf Hansson drivers/mmc/core/core.c | 38 ++++++++++++++++++++++++++++++++++---- include/linux/mmc/card.h | 1 + 2 files changed, 35 insertions(+), 4 deletions(-) commit 1dc042885456dff457d0b758b69209dcafa688ec Author: Jarkko Nikula Date: Wed Aug 12 11:30:59 2015 +0300 dmaengine: Make __dma_request_slave_channel_compat() name argument constant Inline function __dma_request_slave_channel_compat() doesn't modify "name" argument but passes it to dma_request_slave_channel() which already takes it as a constant. Signed-off-by: Jarkko Nikula Signed-off-by: Vinod Koul include/linux/dmaengine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e95fb9ceb82433f4f910d1cece0f4d6b0c25c51 Author: Robert Jarzmik Date: Tue Aug 11 22:16:32 2015 +0200 dmaengine: pxa_dma: don't use config direction parameter Don't use the direction passed in the configuration, and rely on each transfer's direction to prepare the transfers. This will enable future removal of direction parameter from dma_slave_config. Signed-off-by: Robert Jarzmik Signed-off-by: Vinod Koul drivers/dma/pxa_dma.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 272420214d261e97f08a4c555defb3924de06ae8 Author: Vinod Koul Date: Wed Aug 5 08:42:05 2015 +0530 dmaengine: Add DMA_CTRL_REUSE This adds new descriptor flag for reusing a descriptor by submitting multiple times by a client, for example video buffer. Add helper APIs for this as well Signed-off-by: Vinod Koul Acked-by:Robert Jarzmik include/linux/dmaengine.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 7fa25937542358bfa01ef5c5a1e9a00bd164c000 Author: Alexandre Courbot Date: Mon Aug 17 17:23:52 2015 +0900 gpio/grgpio: fix deadlock in grgpio_irq_unmap() As reported by Alexey Khoroshilov: grgpio_irq_unmap() code looks quite suspicious regarding usage of priv->bgc.lock spinlock. It locks the spinlock in line 310: spin_lock_irqsave(&priv->bgc.lock, flags); and then it can call grgpio_set_imask() in line 317: grgpio_set_imask(priv, i, 0); But grgpio_set_imask() unconditionally locks the spinlock by itself. Fix this by moving the spinlock acquisition outside of grgpio_set_imask(). Found by Linux Driver Verification project (linuxtesting.org). Reported-by: Alexey Khoroshilov Signed-off-by: Alexandre Courbot Cc: Alexey Khoroshilov Cc: Andreas Larsson Signed-off-by: Linus Walleij drivers/gpio/gpio-grgpio.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 58268e58e63550e24dee7d6125078ab2a2a22272 Author: Fabio Estevam Date: Fri Aug 14 00:09:29 2015 -0300 crypto: amcc - Do a NULL check for pointer Compare pointer-typed values to NULL rather than 0. The semantic patch that makes this change is available in scripts/coccinelle/null/badzero.cocci Signed-off-by: Fabio Estevam Signed-off-by: Herbert Xu drivers/crypto/amcc/crypto4xx_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e4b8c1fcc70016f43926203ae1820c3b380d5cd Author: Herbert Xu Date: Thu Aug 13 17:29:06 2015 +0800 crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag This patch removes the CRYPTO_ALG_AEAD_NEW flag now that everyone has been converted. Signed-off-by: Herbert Xu arch/arm64/crypto/aes-ce-ccm-glue.c | 1 - arch/x86/crypto/aesni-intel_glue.c | 3 +-- crypto/aead.c | 6 ++---- crypto/algif_aead.c | 3 +-- crypto/authenc.c | 4 +--- crypto/authencesn.c | 4 +--- crypto/ccm.c | 8 ++------ crypto/chacha20poly1305.c | 4 +--- crypto/cryptd.c | 8 +++----- crypto/gcm.c | 12 +++--------- crypto/pcrypt.c | 5 +---- crypto/tcrypt.c | 7 +------ drivers/crypto/caam/caamalg.c | 3 +-- drivers/crypto/ixp4xx_crypto.c | 1 - drivers/crypto/nx/nx-aes-ccm.c | 6 ++---- drivers/crypto/nx/nx-aes-gcm.c | 2 -- drivers/crypto/picoxcell_crypto.c | 1 - drivers/crypto/qat/qat_common/qat_algs.c | 8 ++++---- drivers/crypto/talitos.c | 1 - include/linux/crypto.h | 6 ------ 20 files changed, 24 insertions(+), 69 deletions(-) commit b0d955ba4688fcba8112884931aea1f1e6f50f03 Author: Herbert Xu Date: Fri Aug 14 15:30:41 2015 +0800 crypto: aead - Remove old AEAD interfaces Now that the AEAD conversion is complete we can rip out the old AEAD interafce and associated code. Signed-off-by: Herbert Xu crypto/aead.c | 606 +--------------------------------------- include/crypto/aead.h | 148 +--------- include/crypto/internal/aead.h | 42 +-- include/crypto/internal/geniv.h | 2 - include/linux/crypto.h | 48 +--- 5 files changed, 28 insertions(+), 818 deletions(-) commit 0a139416eed5f05118cb05aba37470de68c55272 Author: Herbert Xu Date: Thu Aug 13 17:29:04 2015 +0800 crypto: qat - Remove reference to crypto_aead_crt The qat driver uses crypto_aead_crt in order to get the authsize. This patch replaces it with the crypto_aead_authsize helper instead. Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_algs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ba3749a719a6da4297fb8e1bb56ee06d74129c0f Author: Herbert Xu Date: Thu Aug 13 17:29:02 2015 +0800 crypto: cryptd - Remove reference to crypto_aead_crt Pretty soon the crypto_aead encrypt/decrypt hooks will disappear as they are now always identical to those in struct aead_alg. This patch replaces the references to these hooks with the ones from aead_alg instead. Signed-off-by: Herbert Xu crypto/cryptd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 376e0d697a8194a5ab684d7fc57b2ce5483bda53 Author: Herbert Xu Date: Thu Aug 13 17:29:01 2015 +0800 crypto: echainiv - Use generic geniv init/exit helpers This patch replaces the echainiv init/exit handlers with the generic geniv helpers. Signed-off-by: Herbert Xu crypto/echainiv.c | 70 ++++++------------------------------------------------- 1 file changed, 7 insertions(+), 63 deletions(-) commit 659e7f528317d5a97e5100abcaf6e00552c23417 Author: Herbert Xu Date: Thu Aug 13 17:28:59 2015 +0800 crypto: seqiv - Use generic geniv init/exit helpers This patch replaces the seqiv init/exit handlers with the generic geniv helpers. Signed-off-by: Herbert Xu crypto/seqiv.c | 75 ++++++---------------------------------------------------- 1 file changed, 7 insertions(+), 68 deletions(-) commit 149a39717dcce3b6ba15285c9fc86e4423437e05 Author: Herbert Xu Date: Thu Aug 13 17:28:58 2015 +0800 crypto: aead - Add type-safe geniv init/exit helpers This patch adds the helpers aead_init_geniv and aead_exit_geniv which are type-safe and intended the replace the existing geniv init/exit helpers. Signed-off-by: Herbert Xu crypto/Kconfig | 11 ++++++--- crypto/aead.c | 55 +++++++++++++++++++++++++++++++++++++++++ include/crypto/internal/aead.h | 6 ----- include/crypto/internal/geniv.h | 11 +++++++++ 4 files changed, 74 insertions(+), 9 deletions(-) commit 66008d4230f6e599275f1cf01db268fcaaadda44 Author: Herbert Xu Date: Thu Aug 13 17:28:56 2015 +0800 crypto: echainiv - Remove AEAD compatibility code Now that we no longer have any legacy AEAD implementations the compatibility code path can no longer be triggered. This patch removes it. Signed-off-by: Herbert Xu crypto/echainiv.c | 4 ---- 1 file changed, 4 deletions(-) commit 92932d03c2b3613f40ce49ff42088e814e403afc Author: Herbert Xu Date: Thu Aug 13 17:28:54 2015 +0800 crypto: seqiv - Remove AEAD compatibility code Now that we no longer have any legacy AEAD implementations the compatibility code path can no longer be triggered. This patch removes it. Signed-off-by: Herbert Xu crypto/seqiv.c | 127 --------------------------------------------------------- 1 file changed, 127 deletions(-) commit 8a2cd1c4a7aa0b4a24eafd6914756be6fbe7f361 Author: Herbert Xu Date: Thu Aug 13 17:28:53 2015 +0800 crypto: seqiv - Remove seqniv Now that IPsec no longer uses seqniv we can remove it. Signed-off-by: Herbert Xu crypto/seqiv.c | 245 +-------------------------------------------------------- 1 file changed, 1 insertion(+), 244 deletions(-) commit de0ded77b995552ad650d22748a507a1ede7fa72 Author: Herbert Xu Date: Thu Aug 13 17:28:52 2015 +0800 ipsec: Replace seqniv with seqiv Now that seqniv is identical with seqiv we no longer need it. Signed-off-by: Herbert Xu Acked-by: Steffen Klassert net/xfrm/xfrm_algo.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 60333f7b5dccd0adcdcc7ec9eb3f9f1039e257ed Author: Herbert Xu Date: Thu Aug 13 17:28:50 2015 +0800 crypto: user - Remove crypto_lookup_aead call As IV generators are now standalone AEAD transforms, we no longer need to use the crypto_lookup_aead call. Signed-off-by: Herbert Xu crypto/crypto_user.c | 32 -------------------------------- 1 file changed, 32 deletions(-) commit aa1b6bb7d7f5cb0d21eacea3639da8cb24c5092a Author: Herbert Xu Date: Thu Aug 13 17:28:49 2015 +0800 crypto: algboss - Remove reference to nivaead This patch removes a legacy reference to nivaead which is no longer used. Signed-off-by: Herbert Xu crypto/algboss.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit adca3c38d807b341a965d0aba8721d0784d8471b Author: Christophe Ricard Date: Mon Aug 17 08:33:43 2015 +0200 nfc: netlink: Warning fix When NFC_ATTR_VENDOR_DATA is not set, data_len is 0 and data is NULL. Fixes the following warning: net/nfc/netlink.c:1536:3: warning: 'data' may be used uninitialized +in this function [-Wmaybe-uninitialized] return cmd->doit(dev, data, data_len); Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz net/nfc/netlink.c | 1 + 1 file changed, 1 insertion(+) commit 656bba306827a44ed73b3f93f75bb3147de17fae Author: Len Brown Date: Sun Aug 16 11:45:48 2015 -0400 x86/smpboot: Remove APIC.wait_for_init_deassert and atomic init_deasserted Both the per-APIC flag ".wait_for_init_deassert", and the global atomic_t "init_deasserted" are dead code -- remove them. For all APIC types, "wait_for_master()" prevents an AP from proceeding until the BSP has set cpu_callout_mask, making "init_deasserted" {unnecessary}: BSP: ... BSP: {set init_deasserted} AP: wait_for_master() set cpu_initialized_mask wait for cpu_callout_mask BSP: test cpu_initialized_mask BSP: set cpu_callout_mask AP: test cpu_callout_mask AP: {wait for init_deasserted} ... AP: Deleting the {dead code} above is necessary to enable some parallelism in a future patch. Signed-off-by: Len Brown Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Dave Hansen Cc: Igor Mammedov Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Zhu Guihua Link: http://lkml.kernel.org/r/de4b3a9bab894735e285870b5296da25ee6a8a5a.1439739165.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/apic.h | 2 -- arch/x86/kernel/apic/apic_flat_64.c | 2 -- arch/x86/kernel/apic/apic_noop.c | 1 - arch/x86/kernel/apic/apic_numachip.c | 2 -- arch/x86/kernel/apic/bigsmp_32.c | 1 - arch/x86/kernel/apic/probe_32.c | 1 - arch/x86/kernel/apic/x2apic_cluster.c | 1 - arch/x86/kernel/apic/x2apic_phys.c | 1 - arch/x86/kernel/apic/x2apic_uv_x.c | 2 -- arch/x86/kernel/smpboot.c | 16 +++------------- 10 files changed, 3 insertions(+), 26 deletions(-) commit a9bcaa02a5104ace6a9d9e4a9cd9192a9e7744d6 Author: Len Brown Date: Sun Aug 16 11:45:47 2015 -0400 x86/smpboot: Remove SIPI delays from cpu_up() MPS 1.4 example code shows the following required delays during processor on-lining: INIT udelay(10,000) SIPI udelay(200) SIPI udelay(200) /* Linux actually implements this as udelay(300) */ Linux skips the udelay(10,000) on modern processors. This patch removes the udelay(200) after each SIPI on those same processors. All three legacy delays can be restored by the cmdline "cpu_init_udelay=10000". As measured by analyze_suspend.py, this patch speeds processor resume time on my desktop from 2.4ms to 1.8ms, per AP. Signed-off-by: Len Brown Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Dave Hansen Cc: Igor Mammedov Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Zhu Guihua Link: http://lkml.kernel.org/r/a5dfdbc8fbfdd813784da204aad5677fe459ac37.1439739165.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2d99af8e8fd6c2dea11ab539f7aba69c37b845b4 Author: Len Brown Date: Sun Aug 16 11:45:46 2015 -0400 x86/smpboot: Remove udelay(100) when polling cpu_callin_map After the BSP sends INIT/SIPI/SIP to the AP and sees the AP in the cpu_initialized_map, it sets the AP loose via the cpu_callout_map, and waits for it via the cpu_callin_map. The BSP polls the cpu_callin_map with a udelay(100) and a schedule() in each iteration. The udelay(100) adds no value. For example, on my 4-CPU dekstop, the AP finishes cpu_callin() in under 70 usec and sets the cpu_callin_mask. The BSP, however, doesn't see that setting until over 30 usec later, because it was still running its udelay(100) when the AP finished. Deleting the udelay(100) in the cpu_callin_mask polling loop, saves from 0 to 100 usec per Application Processor. Signed-off-by: Len Brown Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Dave Hansen Cc: Igor Mammedov Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Zhu Guihua Link: http://lkml.kernel.org/r/0aade12eabeb89a688c929fe80856eaea0544bb7.1439739165.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 1 - 1 file changed, 1 deletion(-) commit 6e38f1e79d16f4fa9e5cf06792500e11c96a6f84 Author: Len Brown Date: Sun Aug 16 11:45:45 2015 -0400 x86/smpboot: Remove udelay(100) when polling cpu_initialized_map After the BSP sends the APIC INIT/SIPI/SIPI to the AP, it waits for the AP to come up and indicate that it is alive by setting its own bit in the cpu_initialized_mask. Linux polls for up to 10 seconds for this to happen. Each polling loop has a udelay(100) and a call to schedule(). The udelay(100) adds no value. For example, on my desktop, the BSP waits for the other 3 CPUs to come on line at boot for 305, 404, 405 usec. For resume from S3, it waits 317, 404, 405 usec. But when the udelay(100) is removed, the BSP waits 305, 310, 306 for boot, and 305, 307, 306 for resume. So for both boot and resume, removing the udelay(100) speeds online by about 100us in 2 of 3 cases. Signed-off-by: Len Brown Cc: Andy Lutomirski Cc: Arjan van de Ven Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Dave Hansen Cc: Igor Mammedov Cc: Jan H. Schönherr Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Zhu Guihua Link: http://lkml.kernel.org/r/33ef746c67d2489cad0a9b1958cf71167232ff2b.1439739165.git.len.brown@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/smpboot.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5461bd81bf7f86503f393b0b1d57e69b1f1bd44e Merge: 9491630 2c6625c Author: Ingo Molnar Date: Mon Aug 17 10:41:59 2015 +0200 Merge tag 'v4.2-rc7' into x86/boot, to refresh the branch before merging new changes Signed-off-by: Ingo Molnar commit ac49fbd1f9d437cca7234473850aef4165779383 Author: Dirk Behme Date: Sat Jul 18 08:02:07 2015 +0200 Documentation: gpio: consumer: describe active low property I've been searching for any documentation of 'the active-low property of a GPIO' already mentioned in this documenation. But couldn't find any. Add it. Sigend-off-by: Dirk Behme Acked-by: Alexandre Courbot [Spelling, grammar fixes] Signed-off-by: Linus Walleij Documentation/gpio/consumer.txt | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 281786ea2cd03635648d1e2b131c6fbc0ed47b68 Author: Michael Ellerman Date: Mon Aug 17 16:35:48 2015 +1000 selftests/powerpc: Install tempfile so the subpage_prot_file test works We forgot to install the tempfile, so when the selftests are installed and then run the subpage_prot_file test fails. Signed-off-by: Michael Ellerman tools/testing/selftests/powerpc/mm/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 94e92a7bff2317bedd67ed7c46ac63e9affb7a99 Merge: 94fdc2e e04cafb Author: Kalle Valo Date: Mon Aug 17 11:23:03 2015 +0300 Merge ath-next from ath.git. Major changes in ath10k: * add support for qca99x0 family of devices * improve performance of tx_lock * add support for raw mode (802.11 frame format) and software crypto engine enabled via a module parameter wil6210: * implement TSO support * support bootloader v1 and onwards commit 60884ddecdc2f45fd2862b7e95c9ad858584f82b Author: Vinod Koul Date: Wed Aug 5 08:42:06 2015 +0530 Documentation: dmaengine: Add DMA_CTRL_REUSE documentation Signed-off-by: Vinod Koul Acked-by:Robert Jarzmik Documentation/dmaengine/provider.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 06f10e2f936424496d44e5541c220845c8c55345 Author: Vinod Koul Date: Wed Aug 5 08:42:04 2015 +0530 Documentation: dmaengine: fix the DMA_CTRL_ACK documentation As discussed recently the meaning of DMA_CTRL_ACK is that a desc cannot be reused by provider until the client acknowledges receipt, i.e. has has a chance to establish any dependency chains. So update documentation Signed-off-by: Vinod Koul Acked-by:Robert Jarzmik Documentation/dmaengine/provider.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 09659a5978e16a7f3676fd6cb41e21daa77ce9a6 Author: Dave Jiang Date: Tue Aug 11 08:49:11 2015 -0700 dmaengine: ioatdma: Clean up IOAT_COMPLETION_PENDING flag IOAT_COMPLETION_PENDING flag was deprecated for v2 and v3 drivers but was not cleaned up. Doing that now. The commit deprecated this flag was 4dec23d7 ioatdma: fix race between updating ioat->head and IOAT_COMPLETION_PENDING. Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma.c | 2 -- drivers/dma/ioat/dma.h | 1 - 2 files changed, 3 deletions(-) commit c7b0e8d7b5d1523ca3a85d3d3d9d113bb19a5668 Author: Dave Jiang Date: Tue Aug 11 08:49:05 2015 -0700 dmaengine: ioatdma: fixup kernel doc errors from dma.h ./scripts/kerne-doc is reporting errors on dma.h. Clean up all reported errors. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/dma.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit ef97bd0f59741ca1a555b69b8708f6601e35c3ed Author: Dave Jiang Date: Tue Aug 11 08:49:00 2015 -0700 dmanegine: ioatdma: remove function ptrs in ioatdma_device Since we are a "single" device driver now we no longer require the function pointers in ioatdma_device. Remove. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/dma.c | 6 ++---- drivers/dma/ioat/dma.h | 14 -------------- drivers/dma/ioat/init.c | 25 +++++++++++-------------- 3 files changed, 13 insertions(+), 32 deletions(-) commit 3372de5813e4da8305002ff6ffbfc0c7012cb319 Author: Dave Jiang Date: Tue Aug 11 08:48:55 2015 -0700 dmaengine: ioatdma: removal of dma_v3.c and relevant ioat3 references Moving the relevant functions to their respective .c files and removal of dma_v3.c file. Also removed various ioat3 references when appropriate. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/Makefile | 2 +- drivers/dma/ioat/dca.c | 22 +- drivers/dma/ioat/dma.c | 525 +++++++++++++++++++++++++++++++++++++++++----- drivers/dma/ioat/dma.h | 11 +- drivers/dma/ioat/dma_v3.c | 525 ---------------------------------------------- drivers/dma/ioat/init.c | 19 +- 6 files changed, 487 insertions(+), 617 deletions(-) commit 599d49de7f69cb5a23e913db24e168ba2f09bd05 Author: Dave Jiang Date: Tue Aug 11 08:48:49 2015 -0700 dmaengine: ioatdma: move dma prep functions to single location Move all DMA descriptor prepping functions to prep.c file. Fixup all broken bits caused by the move. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/Makefile | 2 +- drivers/dma/ioat/dma.c | 47 --- drivers/dma/ioat/dma.h | 81 +++--- drivers/dma/ioat/dma_v3.c | 659 +----------------------------------------- drivers/dma/ioat/init.c | 22 +- drivers/dma/ioat/prep.c | 707 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 769 insertions(+), 749 deletions(-) commit c0f28ce66ecfd9fa0ae662a2c7f3e68e537e77f4 Author: Dave Jiang Date: Tue Aug 11 08:48:43 2015 -0700 dmaengine: ioatdma: move all the init routines Moving all the init routines to init.c and fixup anything broken during the move. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/Makefile | 2 +- drivers/dma/ioat/dma.c | 509 +----------------- drivers/dma/ioat/dma.h | 39 ++ drivers/dma/ioat/dma_v3.c | 626 ++-------------------- drivers/dma/ioat/init.c | 1293 +++++++++++++++++++++++++++++++++++++++++++++ drivers/dma/ioat/pci.c | 278 ---------- 6 files changed, 1375 insertions(+), 1372 deletions(-) commit 80b1973659949fbdcbfe9e086e2370313a9f1288 Author: Dave Jiang Date: Tue Aug 11 08:48:38 2015 -0700 dmaengine: ioatdma: move all sysfs related code Move and fixup all sysfs related bits to sysfs.c file. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/Makefile | 2 +- drivers/dma/ioat/dma.c | 108 ------------------------------------- drivers/dma/ioat/sysfs.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+), 109 deletions(-) commit 885b201056e942f7deb66496b5c501d2a35d6c04 Author: Dave Jiang Date: Tue Aug 11 08:48:32 2015 -0700 dmaengine: ioatdma: remove dma_v2.* Clean out dma_v2 and remove ioat2 calls since we are moving everything to just ioat. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/Makefile | 2 +- drivers/dma/ioat/dca.c | 1 - drivers/dma/ioat/dma.c | 667 +++++++++++++++++++++++++++++++++++++++++++- drivers/dma/ioat/dma.h | 119 +++++++- drivers/dma/ioat/dma_v2.c | 695 ---------------------------------------------- drivers/dma/ioat/dma_v2.h | 143 ---------- drivers/dma/ioat/dma_v3.c | 63 +++-- drivers/dma/ioat/pci.c | 15 +- 8 files changed, 816 insertions(+), 889 deletions(-) commit 55f878ec47e3ab560a046c9030a97b1048b74e8b Author: Dave Jiang Date: Tue Aug 11 08:48:27 2015 -0700 dmaengine: ioatdma: fixup ioatdma_device namings Changing the variable names for ioatdma_device to be consistently named ioat_dma instead of device/dma in order to avoid confusion and distinct from struct device. This will clearly indicate that it is an ioatdma_device. This also make all the naming consistent that the dma device is ioat_dma and all the channels are ioat_chan. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/dma.c | 156 +++++++++++++++++++++++----------------------- drivers/dma/ioat/dma.h | 50 +++++++-------- drivers/dma/ioat/dma_v2.c | 48 +++++++------- drivers/dma/ioat/dma_v2.h | 6 +- drivers/dma/ioat/dma_v3.c | 126 +++++++++++++++++++------------------ 5 files changed, 195 insertions(+), 191 deletions(-) commit 5a976888c953a50336c2266bab894c1c098462b3 Author: Dave Jiang Date: Tue Aug 11 08:48:21 2015 -0700 dmaengine: ioatdma: clean up local dma channel data structure Kill the common ioatdma channel structure and everything that is not dma_chan to be ioat_dma_chan. Since we don't have to worry about v1 and v2 ioatdma anymore this makes it much cleaner and obvious for maintenance. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/dma.c | 116 +++++++-------- drivers/dma/ioat/dma.h | 89 +++++++----- drivers/dma/ioat/dma_v2.c | 351 +++++++++++++++++++++++----------------------- drivers/dma/ioat/dma_v2.h | 82 ++++------- drivers/dma/ioat/dma_v3.c | 307 ++++++++++++++++++++-------------------- 5 files changed, 470 insertions(+), 475 deletions(-) commit 7f832645d0e5a0431e4ee02bae98e47ded32ac6f Author: Dave Jiang Date: Tue Aug 11 08:48:16 2015 -0700 dmaengine: ioatdma: remove ioatdma v2 registration Removal of support for ioatdma v2 device support. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/dca.c | 200 ----------------------------------------- drivers/dma/ioat/dma.c | 1 - drivers/dma/ioat/dma_v2.c | 222 ---------------------------------------------- drivers/dma/ioat/dma_v2.h | 2 - drivers/dma/ioat/pci.c | 4 +- 5 files changed, 1 insertion(+), 428 deletions(-) commit 85596a19478da5125f3471a0c474b3f05a78e390 Author: Dave Jiang Date: Tue Aug 11 08:48:10 2015 -0700 dmaengine: ioatdma: remove ioat1 specific code Cleaning up of ioat1 specific code as it is no longer supported Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/dca.c | 151 ----------- drivers/dma/ioat/dma.c | 674 +------------------------------------------------ drivers/dma/ioat/dma.h | 65 ----- drivers/dma/ioat/pci.c | 4 +- 4 files changed, 2 insertions(+), 892 deletions(-) commit d73f277b329f46c13527c1090808421828671596 Author: Dave Jiang Date: Tue Aug 11 08:48:04 2015 -0700 dmaengine: ioatdma: deprecating and removal of old ioatdma devices Removal of any devices that are ioatdma pre-3.0. This is the first step in attempting to clean up the ioatdma driver and remove hw no longer supported. Signed-off-by: Dave Jiang Acked-by: Dan Williams Signed-off-by: Vinod Koul drivers/dma/ioat/hw.h | 5 ----- drivers/dma/ioat/pci.c | 9 --------- 2 files changed, 14 deletions(-) commit 5484526ac120eb543e5a28610775f04014814d89 Author: Allen Hubbe Date: Tue Aug 11 04:05:43 2015 -0400 dmaengine: ioatdma: fix u16 overflow in cleanup If the allocation order is 16, then the u16 count will overflow and wrap to zero when assigned the value 1 << 16. Change the type of 'total_descs' to int, so that it is large enough to store a value equal or greater than 1 << 16. Signed-off-by: Allen Hubbe Acked-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma_v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 870ce49022d1a278e441d2cb7b92acae2416b510 Author: Allen Hubbe Date: Tue Aug 11 04:05:42 2015 -0400 dmaengine: ioatdma: fix u16 overflow in reshape If the allocation order is 16, then the u16 index will overflow and wrap to zero instead of being equal or greater than 1 << 16. The loop condition will always be true, and the loop will run until all the memory resources are depleted. Change the type of index 'i' to u32, so that it is large enough to store a value equal or greater than 1 << 16. Signed-off-by: Allen Hubbe Acked-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma_v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit efe3b616f88caa95dbe8636f4d0b3dcefca962bb Author: Matt Ranostay Date: Sun Aug 16 23:04:53 2015 -0700 Input: cap11xx - add LED support Several cap11xx variants have LEDs that be can be controlled; let's plug the driver into the LED subsystem. Signed-off-by: Matt Ranostay Signed-off-by: Dmitry Torokhov .../devicetree/bindings/input/cap11xx.txt | 19 +++ drivers/input/keyboard/cap11xx.c | 144 ++++++++++++++++++++- 2 files changed, 160 insertions(+), 3 deletions(-) commit 294947a5c7f6d228b70fcc51a89527e74a38a2c5 Merge: 6406e45 54fbde8 Author: Dave Airlie Date: Mon Aug 17 16:03:48 2015 +1000 Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next A couple of fixes from the previous pull request as well as gl3 support. There is one drm core change, an export of a previously private function. Take 2 implementing screen targets, this time with the fbdev code adjusted accordingly. Also there is an implementation of register-driven command buffers, that overrides the FIFO ring for command processing. It's needed for our upcoming hardware revision. * 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux: (35 commits) drm/vmwgfx: Fix copyright headers drm/vmwgfx: Add DX query support. Various fixes. drm/vmwgfx: Add command parser support for a couple of DX commands drm/vmwgfx: Command parser fixes for DX drm/vmwgfx: Initial DX support drm/vmwgfx: Update device includes for DX device functionality drm: export the DRM permission check code drm/vmwgfx: Fix crash when unloading vmwgfx v2 drm/vmwgfx: Fix framebuffer creation on older hardware drm/vmwgfx: Fixed topology boundary checking for Screen Targets drm/vmwgfx: Fix an uninitialized value drm/vmwgfx: Fix compiler warning with 32-bit dma_addr_t drm/vmwgfx: Kill a bunch of sparse warnings drm/vmwgfx: Fix kms preferred mode sorting drm/vmwgfx: Reinstate the legacy display system dirty callback drm/vmwgfx: Implement fbdev on kms v2 drm/vmwgfx: Add a kernel interface to create a framebuffer v2 drm/vmwgfx: Avoid cmdbuf alloc sleeping if !TASK_RUNNING drm/vmwgfx: Convert screen targets to new helpers v3 drm/vmwgfx: Convert screen objects to the new helpers ... commit 6406e45cc6f4976ace2b6d23b76bb5f07541e68f Merge: bef2c7b a33ee95 Author: Dave Airlie Date: Mon Aug 17 15:53:05 2015 +1000 Merge tag 'drm/panel/for-4.3-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/panel: Changes for v4.3-rc1 This introduces support for a couple of new panels and also contains some work to restructure the directories to get more consistency, to deal better with more panel and bridge drivers getting added. * tag 'drm/panel/for-4.3-rc1' of git://anongit.freedesktop.org/tegra/linux: drm/bridge: Put Kconfig entries in a separate menu drm/panel: Add support for LG LG4573 480x800 4.3" panel drm/panel: Add display timing for Okaya RS800480T-7X0GP of: Add Okaya Electric America vendor prefix drm/panel: simple: Add support for NEC NL4827HC19-05B 480x272 panel drm/panel: simple: Add support for AUO B080UAN01 drm/panel: simple: Correct minimum hsync length of the HannStar HSD070PWW1 panel drm/panel: simple: Add bus format for HannStar HSD070PWW1 LVDS panel drm/bridge: Add vendor prefixes drm/panel: Add Samsung prefix to panel drivers drm/exynos: Remove PTN3460 dependency commit bef2c7bd578e91c9c10983e0c15c4501127b77ca Merge: 3ff8e50 459cc2c Author: Dave Airlie Date: Mon Aug 17 15:52:39 2015 +1000 Merge tag 'drm/tegra/for-4.3-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/tegra: Changes for v4.3-rc1 There are a bunch of non-critical fixes here that I've collected over the past few months, but the biggest part is Tegra210 support, in the DC, DSI and SOR/HDMI drivers. Also this finally restores DPMS with atomic mode-setting, something that has been broken since the conversion and which I had originally expected to take far less longer to fix. * tag 'drm/tegra/for-4.3-rc1' of git://anongit.freedesktop.org/tegra/linux: (41 commits) drm/tegra: sor: Add HDMI support drm/tegra: sor: Add Tegra210 eDP support drm/tegra: dc: Implement atomic DPMS drm/tegra: sor: Restore DPMS drm/tegra: dsi: Restore DPMS drm/tegra: hdmi: Restore DPMS drm/tegra: rgb: Restore DPMS drm/tegra: sor: Use DRM debugfs infrastructure for CRC drm/tegra: sor: Write correct head state registers drm/tegra: sor: Constify display mode drm/tegra: sor: Reset the correct debugfs fields drm/tegra: sor: Set minor after debugfs initialization drm/tegra: sor: Provide error messages in probe drm/tegra: sor: Rename registers for consistency drm/tegra: dpaux: Disable interrupt when detached drm/tegra: dpaux: Configure pads as I2C by default drm/tegra: dpaux: Provide error message in probe drm/tegra: dsi: Add Tegra210 support drm/tegra: dsi: Add Tegra132 support drm/tegra: dsi: Add Tegra124 support ... commit 3ff8e5090c337a4eb26952d68587f450e012bd72 Merge: 3be6671 2a8cb48 Author: Dave Airlie Date: Mon Aug 17 15:33:23 2015 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next Summary: - Clean up HDMI and MIXER parts - Clean up legacy structures specific to Exynos DRM . This patch series removes existing exyons_drm_display and exynos_drm_encoder structures specific to Exynos DRM, and makes them to replace with common drm_encoder structure. With cleanup patch, we removes exynos_drm_encoder module. - Clean up gem, dmabuf and buffer modules . This patch series replaces existing Exynos DRM dmabuf codes with common drm prime ones, and embeds all codes of exynos_drm_buf into exynos_drm_gem module. With cleanup patch, we removes exynos_drm_buf and exynos_drm_dmabuf modules. - And some fixups. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (53 commits) drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c drm/exynos: use prime helpers drm/exynos: remove function roundup_gem_size drm/exynos: remove function update_vm_cache_attr drm/exynos: remove function check_gem_flags drm/exynos: use ERR_PTR instead of NULL in exynos_drm_gem_init drm/exynos: remove unused fields of struct exynos_drm_gem_buf drm/exynos: stop copying sg table drm/exynos: remove function exynos_drm_gem_map_buf drm/exynos: remove mutex locking in pagefault handler drm/exynos: remove function convert_to_vm_err_msg drm/exynos: stop using sgtable in page fault handler drm/exynos: remove struct exynos_drm_encoder layer drm/exynos: fold encoder setup into exynos_drm_load() drm/exynos: remove exynos_drm_create_enc_conn() drm/exynos: remove exynos_encoder's .commit() op drm/exynos: remove extra call to exynos_dp_commit() drm/exynos: remove extra call to hdmi_commit() drm/exynos: remove struct exynos_drm_display drm/exynos: simplify calculation of possible CRTCs ... commit 1e3136789975f03e461798149309034e5213c1b4 Author: Eric Dumazet Date: Sat Aug 15 10:54:07 2015 -0700 ipv4: fix refcount leak in fib_check_nh() fib_lookup() forces FIB_LOOKUP_NOREF flag, while fib_table_lookup() does not. This patch solves the typical message at reboot time or device dismantle : unregister_netdevice: waiting for eth0 to become free. Usage count = 4 Fixes: 3bfd847203c6 ("net: Use passed in table for nexthop lookups") Signed-off-by: Eric Dumazet Cc: David Ahern Acked-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 69034db79a8101dccdeb2b909b3aaa52001ab1ef Author: Max Filippov Date: Sat Jul 18 10:05:05 2015 +0300 xtensa: drop unused irq_err_count Signed-off-by: Max Filippov arch/xtensa/kernel/irq.c | 3 --- 1 file changed, 3 deletions(-) commit 38fef73c21d117cf992fb5ec6e30630e54e13f4f Author: Max Filippov Date: Thu Jul 16 10:37:31 2015 +0300 xtensa: implement fake NMI In case perf IRQ is the highest of the medium-level IRQs, and is alone on its level, it may be treated as NMI: - LOCKLEVEL is defined to be one level less than EXCM level, - IRQ masking never lowers current IRQ level, - new fake exception cause code, EXCCAUSE_MAPPED_NMI is assigned to that IRQ; new second level exception handler, do_nmi, assigned to it handles it as NMI, - atomic operations in configurations without s32c1i still need to mask all interrupts. Cc: Peter Zijlstra Acked-by: Peter Zijlstra (Intel) Signed-off-by: Max Filippov arch/xtensa/include/asm/atomic.h | 10 ++-- arch/xtensa/include/asm/cmpxchg.h | 4 +- arch/xtensa/include/asm/irqflags.h | 22 ++++++++- arch/xtensa/include/asm/processor.h | 31 ++++++++++++- arch/xtensa/kernel/entry.S | 93 +++++++++++++++++++++++++++++++------ arch/xtensa/kernel/irq.c | 8 ++++ arch/xtensa/kernel/perf_event.c | 6 ++- arch/xtensa/kernel/traps.c | 26 +++++++++++ arch/xtensa/kernel/vectors.S | 10 +++- 9 files changed, 183 insertions(+), 27 deletions(-) commit 98e298329e7b391293da5097817437292c842dc9 Author: Max Filippov Date: Fri Jul 17 05:24:49 2015 +0300 xtensa: don't touch EXC_TABLE_FIXUP in _switch_to There's no way _switch_to can produce double exceptions now, don't enter/leave EXC_TABLE_FIXUP critical section. Signed-off-by: Max Filippov arch/xtensa/kernel/entry.S | 4 ---- 1 file changed, 4 deletions(-) commit 77d6273e79e3a86552fcf10cdd31a69b46ed2ce6 Author: Max Filippov Date: Thu Jul 16 10:41:02 2015 +0300 xtensa: fix kernel register spilling call12 can't be safely used as the first call in the inline function, because the compiler does not extend the stack frame of the bounding function accordingly, which may result in corruption of local variables. If a call needs to be done, do call8 first followed by call12. For pure assembly code in _switch_to increase stack frame size of the bounding function. Cc: stable@vger.kernel.org Signed-off-by: Max Filippov arch/xtensa/include/asm/traps.h | 29 +++++++++++++++++++---------- arch/xtensa/kernel/entry.S | 4 ++-- 2 files changed, 21 insertions(+), 12 deletions(-) commit 7d5f6a9a2496c6e4f2a3b5db7743ff4e3a99738e Author: Max Filippov Date: Thu Jul 16 06:18:46 2015 +0300 xtensa: reorganize irq flags tracing entry.s only disables IRQs on hardware IRQ, move trace_hardirqs_off call into do_interrupt. Check actual intlevel that will be restored on return from exception handler to decide if trace_hardirqs_on should be called. Annotate IRQ on/off points in the TIF_* handling loop on return from exception handler. Signed-off-by: Max Filippov arch/xtensa/kernel/entry.S | 39 ++++++++++++++------------------------- arch/xtensa/kernel/traps.c | 5 ++++- 2 files changed, 18 insertions(+), 26 deletions(-) commit 18bc5b85aac08d35eeca174abc73238a4d5deb0b Author: Max Filippov Date: Fri Jun 26 04:11:08 2015 +0300 perf tools: xtensa: add DWARF register names Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Signed-off-by: Max Filippov tools/perf/arch/xtensa/Build | 1 + tools/perf/arch/xtensa/Makefile | 3 +++ tools/perf/arch/xtensa/util/Build | 1 + tools/perf/arch/xtensa/util/dwarf-regs.c | 25 +++++++++++++++++++++++++ 4 files changed, 30 insertions(+) commit 9bd46da45edd9701bcb2a221d58afe7d01febd1d Author: Max Filippov Date: Sun Jun 14 01:41:25 2015 +0300 xtensa: implement counting and sampling perf events Xtensa Performance Monitor Module has up to 8 32 bit wide performance counters. Each counter may be enabled independently and can count any single type of hardware performance events. Event counting may be enabled and disabled globally (per PMM). Each counter has status register with bits indicating if the counter has been overflown and may be programmed to raise profiling IRQ on overflow. This IRQ is used to rewind counters and allow for counting more than 2^32 samples for counting events and to report samples for sampling events. For more details see Tensilica Debug User's Guide, chapter 8 "Performance monitor module". Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Signed-off-by: Max Filippov arch/xtensa/Kconfig | 10 + arch/xtensa/kernel/Makefile | 1 + arch/xtensa/kernel/perf_event.c | 450 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 461 insertions(+) commit af885de869a9d7086d50a2c250323f0bfd939fd4 Author: Max Filippov Date: Thu Jun 4 13:42:22 2015 +0300 xtensa: count software page fault perf events Signed-off-by: Max Filippov arch/xtensa/mm/fault.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 3be66711b6adefad2a95c108161607d79729ea05 Merge: d3638ac d248b61 Author: Dave Airlie Date: Mon Aug 17 14:33:11 2015 +1000 Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next 1) includes all the drm/msm side of things for upstream kernel working on dragonboard 410c (still some pending work on adv7533 bridge chip) 2) initial support for msm8x94 (snapdragon 810) 3) support for msm8x74v1 (in addition to existing v2 support) 4) support for dma planes on mdp5 (additional planes that cannot scale/csc) 5) more yuv format support for mdp5 (single plane vyuy/uyvy/yuyv/yvyu, two plane nv16/nv61, and three plane yuv420/yvu420) 6) rotation support for mdp5 7) initial hdcp support 8) fixes, etc * 'msm-next' of git://people.freedesktop.org/~robclark/linux: (46 commits) drm/msm/dsi: Introduce DSI configuration module drm/msm/dsi: Make each PHY type compilation independent drm/msm/dsi: Split PHY drivers to separate files drm/msm/dsi: Return void from msm_dsi_phy_disable() drm/msm/dsi: Specify bitmask to set source PLL drm/msm/mdp: Clear pending interrupt status before enable interrupt drm/msm/mdp5: Add rotation (hflip/vflip) support to MDP5 planes (v2) drm/msm: add calls to prepare and unprepare panel drm/msm/dsi: Modify dsi manager bridge ops to work with external bridges drm/msm/dsi: Allow dsi to connect to an external bridge drm/msm/dsi: Create a helper to check if there is a connected device drm/msm/dsi: Refer to connected device as 'device' instead of 'panel' drm/msm/dsi: Make TE gpio optional drm/msm: mdp4 lvds: get panel node via of graph parsing drm/msm: dsi host: Use device graph parsing to parse connected panel drm/msm: dsi host: add missing of_node_put() drm/msm: Enable clocks during enable/disable_vblank() callbacks drm/msm/mdp5: Add support for msm8x74v1 drm/msm/mdp5: Add DMA pipe planes for MDP5 drm/msm/mdp: Add capabilities to MDP planes (v2) ... commit ae0b7139ab49c986e798ca9a46b7ad763ea8b8ca Author: Max Filippov Date: Tue Jun 23 01:53:05 2015 +0300 xtensa: add profiling IRQ type to xtensa_irq_map Signed-off-by: Max Filippov arch/xtensa/kernel/irq.c | 6 ++++++ 1 file changed, 6 insertions(+) commit db8165f5d975533880f516fed142364ba3e6046e Author: Max Filippov Date: Thu Jun 4 13:41:27 2015 +0300 xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations Signed-off-by: Max Filippov arch/xtensa/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 5fdf377d802ddd439fe16dd2e9e38039af535af2 Author: Max Filippov Date: Thu Jun 25 07:27:16 2015 +0300 xtensa: move oprofile stack tracing to stacktrace.c Old oprofile interface will share user stack tracing with new perf interface. Move oprofile user/kernel stack tracing to stacktrace.c to make it possible. Signed-off-by: Max Filippov arch/xtensa/include/asm/stacktrace.h | 8 ++ arch/xtensa/kernel/stacktrace.c | 167 ++++++++++++++++++++++++++++++++++- arch/xtensa/oprofile/backtrace.c | 158 ++------------------------------- 3 files changed, 182 insertions(+), 151 deletions(-) commit b6569439f1cec0ce15f647e2ba814431b5930b82 Author: Max Filippov Date: Thu Jun 25 23:03:29 2015 +0300 xtensa: keep exception/interrupt stack continuous Restore original a0 in the kernel exception stack frame. This way it looks like the frame that got interrupt/exception did alloca (copy a0 and a1 spilled under old stack to the new location as well) to save registers and then did a call to handler. The point where interrupt/exception was taken is not in the stack chain, only in pt_regs (call4 from that address can be simulated to keep it in the stack trace). Signed-off-by: Max Filippov arch/xtensa/kernel/entry.S | 43 ++++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) commit de7c1c7862c4072bc93155da2cd6921137cb87ae Author: Max Filippov Date: Sat Jun 27 07:31:12 2015 +0300 xtensa: clean up Kconfig dependencies for custom cores Signed-off-by: Max Filippov arch/xtensa/Kconfig | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit c75959a6da19df2700556dc76861442e9716317d Author: Max Filippov Date: Mon May 25 06:55:05 2015 +0300 xtensa: reimplement DMA API using common helpers - keep existing functionality: don't handle attributes, don't support high memory; - implement scatterlist primitives (map/unmap/sync); - enable DMA API debug. Signed-off-by: Max Filippov arch/xtensa/Kconfig | 2 + arch/xtensa/include/asm/Kbuild | 1 - arch/xtensa/include/asm/device.h | 19 ++++ arch/xtensa/include/asm/dma-mapping.h | 186 +++++++------------------------ arch/xtensa/kernel/pci-dma.c | 203 +++++++++++++++++++++++++++++----- 5 files changed, 233 insertions(+), 178 deletions(-) commit d3638ac429ff0e8af81c1bc551cbd8da5c09e3d2 Merge: 4eebf60 75067dd Author: Dave Airlie Date: Mon Aug 17 14:14:34 2015 +1000 Merge tag 'drm-intel-next-fixes-2015-08-16' of git://anongit.freedesktop.org/drm-intel into drm-next Bunch more fixes for 4.3, most of it skl fallout. It's not quite all yet, there's still a few more patches pending to enable DDI-E correctly on skl. Also included the dpms atomic work from Maarten since atomic is just a pain and not including would cause piles of conflicts right from the start. * tag 'drm-intel-next-fixes-2015-08-16' of git://anongit.freedesktop.org/drm-intel: (67 commits) drm/i915: Per-DDI I_boost override drm/i915/skl: WaIgnoreDDIAStrap is forever, always init DDI A drm/i915: fix checksum write for automated test reply drm/i915: Contain the WA_REG macro drm/i915: Remove the failed context from the fpriv->context_idr drm/i915: Report IOMMU enabled status for GPU hangs drm/i915: Check idle to active before processing CSQ drm/i915: Set alternate aux for DDI-E drm/i915: Set power domain for DDI-E drm/i915: fix stolen bios_reserved checks drm/i915: Use masked write for Context Status Buffer Pointer drm/i915/skl WaDisableSbeCacheDispatchPortSharing drm/i915: Spam less on dp aux send/receive problems drm/i915: Handle return value in intel_pin_and_fence_fb_obj, v2. drm/i915: Only update mode related state if a modeset happened. drm/i915: Remove connectors_active. drm/i915: Remove connectors_active from intel_dp.c, v2. drm/i915: Remove connectors_active from sanitization, v2. drm/i915: Get rid of dpms handling. drm/i915: Make crtc checking use the atomic state, v2. ... commit 4eebf60b7452fbd551fd7dece855ba7825a49cbc Merge: 8f9cb50 2c6625c Author: Dave Airlie Date: Mon Aug 17 14:13:53 2015 +1000 Merge tag 'v4.2-rc7' into drm-next Linux 4.2-rc7 Backmerge master for i915 fixes commit 5699f871d2d51ce40012501378670613d4d49214 Author: Danilo Cesar Lemes de Paula Date: Tue Jul 28 16:45:15 2015 -0300 scripts/kernel-doc: Adding cross-reference links to html documentation. Functions, Structs and Parameters definitions on kernel documentation are pure cosmetic, it only highlights the element. To ease the navigation in the documentation we should use inside those tags so readers can easily jump between methods directly. This was discussed in 2014[1] and is implemented by getting a list of from the DocBook XML to generate a database. Then it looks for , and tags that matches the ones in the database. As it only links existent references, no broken links are added. [1] - lists.freedesktop.org/archives/dri-devel/2014-August/065404.html Signed-off-by: Danilo Cesar Lemes de Paula Cc: Randy Dunlap Cc: Daniel Vetter Cc: Laurent Pinchart Cc: Herbert Xu Cc: Stephan Mueller Cc: Michal Marek Cc: intel-gfx Cc: dri-devel Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 43 ++++++--- scripts/kernel-doc-xml-ref | 198 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 228 insertions(+), 13 deletions(-) commit 8c7dd08a8ccac3f0f3df6002dc8e86d3ca6c56a8 Author: Vaibhav Jain Date: Fri Aug 14 12:28:38 2015 +0530 cxl: Plug irq_bitmap getting leaked in cxl_context This patch plugs the leak of irq_bitmap, allocated as part of initialization of cxl_context struct; during the call to afu_allocate_irqs. The bitmap is now release during the call to function afu_release_irqs. Reported-by: Matthew R. Ochs Signed-off-by: Vaibhav Jain Signed-off-by: Michael Ellerman drivers/misc/cxl/irq.c | 4 ++++ 1 file changed, 4 insertions(+) commit 25901632c9323e5208cca66097a0b8f34c752606 Author: Daniel Axtens Date: Fri Aug 14 17:41:27 2015 +1000 cxl: Add CONFIG_CXL_EEH symbol CONFIG_CXL_EEH is for CXL's EEH related code. Other drivers can depend on or #ifdef on this symbol to configure PERST behaviour, allowing CXL to participate in the EEH process. Reviewed-by: Cyril Bur Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/Kconfig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit fe202fe95564023223ce1910c9e352f391abb1d5 Author: Christophe Ricard Date: Fri Aug 14 22:33:40 2015 +0200 nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA NFC_ATTR_VENDOR_DATA is an optional vendor_cmd argument. The current code was potentially using a non existing argument leading to potential catastrophic results. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz net/nfc/netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 94b85938ad21944afeff71d1cca68b094905e1b9 Author: Christophe Ricard Date: Fri Aug 14 22:33:39 2015 +0200 nfc: st-nci: Remove pr_err in rcv_queue when ndlc header is unknown spi phy needs to use ndlc_recv at every spi transaction causing "unknown packet control byte" error message each time the header is 00. Make this silent. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/ndlc.c | 1 - 1 file changed, 1 deletion(-) commit a6be357e9720a7f8e11e2997e60626179151d190 Author: Christophe Ricard Date: Fri Aug 14 22:33:38 2015 +0200 nfc: st-nci: Add device tree documentation for spi phy Add st-nci-spi phy devicetree documentation Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz .../devicetree/bindings/net/nfc/st-nci-i2c.txt | 33 ++++++++++++++++++++++ .../devicetree/bindings/net/nfc/st-nci-spi.txt | 31 ++++++++++++++++++++ .../devicetree/bindings/net/nfc/st-nci.txt | 33 ---------------------- 3 files changed, 64 insertions(+), 33 deletions(-) commit 2bc4d4f8c8f3ce863e3644736d1790b0684c7eb0 Author: Christophe Ricard Date: Fri Aug 14 22:33:37 2015 +0200 nfc: st-nci: Add spi phy support for st21nfcb st21nfcb does support another phy than i2c: spi. st21nfcc does not support spi as the spi ios are used by the AMS RF booster. st21nfcb is not following NCI NFC Forum recommendations for spi but rely on ST prioritary protocol ndlc as for i2c. Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/Kconfig | 11 ++ drivers/nfc/st-nci/Makefile | 3 + drivers/nfc/st-nci/spi.c | 392 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 406 insertions(+) commit 8b706884eac958ec16518315053f77e052627084 Author: Christophe Ricard Date: Fri Aug 14 22:33:36 2015 +0200 nfc: st-nci: Free data with irrelevant NDLC PCB_SYNC value PCB_SYNC different than PCB_TYPE_SUPERVISOR or PCB_TYPE_DATAFRAME should be discarded. Irrelevant data may be forwarded up to the ndlc state machine by phys like spi to prevent missing potential data during "write" transactions. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/ndlc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 1d816b6eb513498aa28a0ff1e4db7632bded1707 Author: Christophe Ricard Date: Fri Aug 14 22:33:35 2015 +0200 nfc: st-nci: Remove data from ack_pending_q when receiving a SYNC_ACK When receiving a NDLC PCB_SYNC_ACK the pending data was never removed from ack_pending_q and cleared. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/ndlc.c | 2 ++ 1 file changed, 2 insertions(+) commit daaf1e1f1640eb11259954d1d847d8a72ab5b938 Author: Christophe Ricard Date: Fri Aug 14 22:33:34 2015 +0200 NFC: st-nci: fix use of uninitialized variables in error path st_nci_hci_load_session() calls kfree_skb() on unitialized variables skb_pipe_info and skb_pipe_list if the call to nci_hci_connect_gate() failed. Reword the error path to not use these variables when they are not initialized. While at it, there seemed to be a memory leak because skb_pipe_info was only freed once, after the for-loop, even though several ones were created by nci_hci_send_cmd. Cc: stable@vger.kernel.org Acked-by: Christophe Ricard Signed-off-by: Nicolas Iooss Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/st-nci_se.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5a3570061a131309143a49e4bbdbce7e23f261e7 Author: Christophe Ricard Date: Fri Aug 14 22:33:33 2015 +0200 NFC: st21nfca: fix use of uninitialized variables in error path st21nfca_hci_load_session() calls kfree_skb() on unitialized variables skb_pipe_info and skb_pipe_list if the call to nfc_hci_connect_gate() failed. Reword the error path to not use these variables when they are not initialized. While at it, there seemed to be a memory leak because skb_pipe_info was only freed once, after the for-loop, even though several ones were created by nfc_hci_send_cmd. Fixes: ec03ff1a8f9a ("NFC: st21nfca: Remove skb_pipe_list and skb_pipe_info useless allocation") Cc: stable@vger.kernel.org Acked-by: Christophe Ricard Signed-off-by: Nicolas Iooss Signed-off-by: Samuel Ortiz drivers/nfc/st21nfca/st21nfca.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit e7723b33077b04648213f043bc22654c54e375e4 Author: Christophe Ricard Date: Fri Aug 14 22:33:32 2015 +0200 nfc: st-nci: Fix non accurate comment for st_nci_i2c_read Due to a copy and paste error st_nci_i2c_read still contains st21nfca header comment. Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 30458aac63c89771d19f023083d64d018562812e Author: Christophe Ricard Date: Fri Aug 14 22:33:31 2015 +0200 nfc: st-nci: Fix typo when changing from st21nfcb to st-nci Replace ST21NFCB with ST_NCI or st21nfcb with st_nci as it was forgotten in commit "nfc: st-nci: Rename st21nfcb to st-nci" ed06aeefdac348cfb91a3db5fe1067e3202afd70 Cc: stable@vger.kernel.org Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 76b733d15874128ee2d0365b4cbe7d51decd8d37 Author: Christophe Ricard Date: Fri Aug 14 22:33:30 2015 +0200 nfc: st-nci: Remove duplicate file platform_data/st_nci.h commit "nfc: st-nci: Rename st21nfcb to st-nci" adds include/linux/platform_data/st_nci.h duplicated with include/linux/platform_data/st-nci.h. Only drivers/nfc/st-nci/i2c.c uses platform_data/st_nci.h. Cc: stable@vger.kernel.org Reported-by: Hauke Mehrtens Signed-off-by: Christophe Ricard Signed-off-by: Samuel Ortiz drivers/nfc/st-nci/i2c.c | 2 +- include/linux/platform_data/st_nci.h | 29 ----------------------------- 2 files changed, 1 insertion(+), 30 deletions(-) commit 38e6a417f6205e98bef53c5530f5fddfea08e1c6 Author: Hans Verkuil Date: Wed Aug 12 04:14:28 2015 -0300 [media] horus3a: fix compiler warning Shut up this compiler warning that I get during the daily build: horus3a.c: In function 'horus3a_set_params': horus3a.c:308:24: warning: 'rolloff' may be used uninitialized in this function [-Wmaybe-uninitialized] symbol_rate * (100 + rolloff), 200000) + 5; ^ Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/horus3a.c | 1 + 1 file changed, 1 insertion(+) commit 82fde1a98eb9866347a1d3543fac4ab9a69aeb7d Author: Abhilash Jindal Date: Tue Aug 11 12:22:57 2015 -0300 [media] bt8xxx: Use monotonic time Wall time obtained from do_gettimeofday is susceptible to sudden jumps due to user setting the time or due to NTP. Monotonic time is constantly increasing time better suited for comparing two timestamps. Signed-off-by: Abhilash Jindal Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/bttv-input.c | 21 ++++++++------------- drivers/media/pci/bt8xx/bttvp.h | 2 +- 2 files changed, 9 insertions(+), 14 deletions(-) commit e4d45dd81e67f9fe0e1af44bddd53c3d4eb061ea Author: Abhilash Jindal Date: Tue Aug 11 12:09:49 2015 -0300 [media] zoran: Use monotonic time Wall time obtained from do_gettimeofday is susceptible to sudden jumps due to user setting the time or due to NTP. Monotonic time is constantly increasing time better suited for comparing two timestamps. Signed-off-by: Abhilash Jindal Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/zoran/zoran_device.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit 8f7a5f462a255b4395e5f0f08c045dc8af6efd55 Author: Mike Looijmans Date: Tue Aug 11 09:21:07 2015 -0300 [media] i2c/adv7511: Fix license, set to GPL v2 Header claims GPL v2, so make the MODULE_LICENSE reflect that properly. Signed-off-by: Mike Looijmans 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 4284118058b2b4f217a050908a555d0e1ed58641 Author: Rob Taylor Date: Thu Jul 23 09:21:43 2015 -0300 [media] media: rcar_vin: Reject videobufs that are too small for current format In videobuf_setup reject buffers that are too small for the configured format. Fixes v4l2-compliance issue. Signed-off-by: Rob Taylor Reviewed-by: William Towle Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/rcar_vin.c | 3 +++ 1 file changed, 3 insertions(+) commit 734f3f238587ffb6938700c4495dd5b5a54c4125 Author: Rob Taylor Date: Thu Jul 23 09:21:42 2015 -0300 [media] media: rcar_vin: fill in bus_info field Adapt rcar_vin_querycap() so that cap->bus_info is populated with something meaningful/unique. Signed-off-by: Rob Taylor Signed-off-by: William Towle Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/rcar_vin.c | 1 + 1 file changed, 1 insertion(+) commit 920a1bf30a361fc2c6d713a26deb3a488639def3 Author: William Towle Date: Thu Jul 23 09:21:36 2015 -0300 [media] media: soc_camera: rcar_vin: Add BT.709 24-bit RGB888 input support This adds V4L2_MBUS_FMT_RGB888_1X24 input format support which is used by the ADV7612 chip. Modified to use MEDIA_BUS_FMT_* constants Signed-off-by: Koji Matsuoka Signed-off-by: Simon Horman Signed-off-by: Yoshihiro Kaneko Signed-off-by: William Towle Reviewed-by: Rob Taylor Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/rcar_vin.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit ab149b88eb23482cd9c203527bf4e612ee95b50f Author: Ezequiel Garcia Date: Tue Jul 21 10:09:10 2015 -0300 [media] tw68: Move PCI vendor and device IDs to pci_ids.h This commits moves the Intersil/Techwell PCI vendor ID, and the device IDs for the TW68 PCI video capture cards. This will allow to support future Intersil/Techwell devices without duplicating the IDs. Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/tw68/tw68-core.c | 21 +++++++++++---------- drivers/media/pci/tw68/tw68.h | 16 ---------------- include/linux/pci_ids.h | 9 +++++++++ 3 files changed, 20 insertions(+), 26 deletions(-) commit 823ea2a639611f79a3b4d3daff5ff722316342e7 Author: Sakari Ailus Date: Thu Feb 12 11:43:11 2015 -0200 [media] media: Correctly notify about the failed pipeline validation On the place of the source entity name, the sink entity name was printed. Signed-off-by: Sakari Ailus Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/media-entity.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 78c66fbcec717b22fd9db4ddc95e543cfcf544af Author: Laurent Pinchart Date: Wed May 20 04:08:30 2015 -0300 [media] v4l: omap3isp: Drop platform data support Platforms using the OMAP3 ISP have all switched to DT, drop platform data support. Signed-off-by: Laurent Pinchart Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 2 +- drivers/media/platform/omap3isp/isp.c | 133 ++++------------------- drivers/media/platform/omap3isp/isp.h | 7 +- drivers/media/platform/omap3isp/ispcsiphy.h | 2 +- drivers/media/platform/omap3isp/ispvideo.c | 9 +- drivers/media/platform/omap3isp/omap3isp.h | 132 +++++++++++++++++++++++ include/media/omap3isp.h | 158 ---------------------------- 7 files changed, 158 insertions(+), 285 deletions(-) commit 63540f01917c0d8b03b9813a0d6539469b163139 Author: Jan Kara Date: Mon Jul 20 05:03:35 2015 -0300 [media] drm/exynos: Convert g2d_userptr_get_dma_addr() to use get_vaddr_frames() Convert g2d_userptr_get_dma_addr() to pin pages using get_vaddr_frames(). This removes the knowledge about vmas and mmap_sem locking from exynos driver. Also it fixes a problem that the function has been mapping user provided address without holding mmap_sem. Acked-by: Inki Dae Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/gpu/drm/exynos/Kconfig | 1 + drivers/gpu/drm/exynos/exynos_drm_g2d.c | 89 ++++++++++-------------------- drivers/gpu/drm/exynos/exynos_drm_gem.c | 97 --------------------------------- 3 files changed, 30 insertions(+), 157 deletions(-) commit 6690c8c78c745239bb1f22b23f3889a0a14c249b Author: Jan Kara Date: Mon Jul 13 11:55:50 2015 -0300 [media] media: vb2: Remove unused functions Conversion to the use of pinned pfns made some functions unused. Remove them. Also there's no need to lock mmap_sem in __buf_prepare() anymore. Tested-by: Marek Szyprowski Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-memops.c | 114 ----------------------------- include/media/videobuf2-memops.h | 6 -- 2 files changed, 120 deletions(-) commit fb639eb39154312af8bf08c58cc0142179e0c224 Author: Jan Kara Date: Mon Jul 13 11:55:49 2015 -0300 [media] media: vb2: Convert vb2_dc_get_userptr() to use frame vector Convert vb2_dc_get_userptr() to use frame vector infrastructure. When we are doing that there's no need to allocate page array and some code can be simplified. Tested-by: Marek Szyprowski Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-dma-contig.c | 212 ++++--------------------- 1 file changed, 34 insertions(+), 178 deletions(-) commit 5a9e4dec393a2c5a01be6adc63065059b367d532 Author: Jan Kara Date: Mon Jul 13 11:55:48 2015 -0300 [media] media: vb2: Convert vb2_vmalloc_get_userptr() to use frame vector Convert vb2_vmalloc_get_userptr() to use frame vector infrastructure. When we are doing that there's no need to allocate page array and some code can be simplified. Tested-by: Marek Szyprowski Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-vmalloc.c | 92 +++++++++++------------------ 1 file changed, 36 insertions(+), 56 deletions(-) commit 3336c24f25ec932aab128cf7285ca90a4dbcb816 Author: Jan Kara Date: Mon Jul 13 11:55:47 2015 -0300 [media] media: vb2: Convert vb2_dma_sg_get_userptr() to use frame vector Tested-by: Marek Szyprowski Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-dma-sg.c | 95 +++++------------------------- 1 file changed, 15 insertions(+), 80 deletions(-) commit 21fb0cb7ec65a40b9f5f7cda59eba0eb2ae76473 Author: Jan Kara Date: Mon Jul 13 11:55:46 2015 -0300 [media] vb2: Provide helpers for mapping virtual addresses Provide simple helper functions to map virtual address range into an array of pfns / pages. Tested-by: Marek Szyprowski Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/Kconfig | 1 + drivers/media/v4l2-core/videobuf2-memops.c | 58 ++++++++++++++++++++++++++++++ include/media/videobuf2-memops.h | 5 +++ 3 files changed, 64 insertions(+) commit 8a677b6eddfc3127ea36a710838ecd20502b1cb9 Author: Jan Kara Date: Mon Jul 13 11:55:45 2015 -0300 [media] media: omap_vout: Convert omap_vout_uservirt_to_phys() to use get_vaddr_pfns() Convert omap_vout_uservirt_to_phys() to use get_vaddr_pfns() instead of hand made mapping of virtual address to physical address. Also the function leaked page reference from get_user_pages() so fix that by properly release the reference when omap_vout_buffer_release() is called. Signed-off-by: Jan Kara [hans.verkuil@cisco.com: remove unused variable] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap/Kconfig | 1 + drivers/media/platform/omap/omap_vout.c | 69 +++++++++++++++------------------ 2 files changed, 32 insertions(+), 38 deletions(-) commit 8025e5ddf9c1cac0e632dad49a63abf7848b78cb Author: Jan Kara Date: Mon Jul 13 11:55:44 2015 -0300 [media] mm: Provide new get_vaddr_frames() helper Provide new function get_vaddr_frames(). This function maps virtual addresses from given start and fills given array with page frame numbers of the corresponding pages. If given start belongs to a normal vma, the function grabs reference to each of the pages to pin them in memory. If start belongs to VM_IO | VM_PFNMAP vma, we don't touch page structures. Caller must make sure pfns aren't reused for anything else while he is using them. This function is created for various drivers to simplify handling of their buffers. Signed-off-by: Jan Kara Acked-by: Mel Gorman Acked-by: Vlastimil Babka Acked-by: Andrew Morton Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/linux/mm.h | 44 ++++++++++ mm/Kconfig | 3 + mm/Makefile | 1 + mm/frame_vector.c | 230 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 278 insertions(+) commit 0f6e2825ce916eed882996bb6e9148c13ecebefd Author: Jan Kara Date: Mon Jul 13 11:55:43 2015 -0300 [media] vb2: Push mmap_sem down to memops Currently vb2 core acquires mmap_sem just around call to __qbuf_userptr(). However since commit f035eb4e976ef5 (videobuf2: fix lockdep warning) it isn't necessary to acquire it so early as we no longer have to drop queue mutex before acquiring mmap_sem. So push acquisition of mmap_sem down into .get_userptr memop so that the semaphore is acquired for a shorter time and it is clearer what it is needed for. Note that we also need mmap_sem in .put_userptr memop since that ends up calling vb2_put_vma() which calls vma->vm_ops->close() which should be called with mmap_sem held. However we didn't hold mmap_sem in some code paths anyway (e.g. when called via vb2_ioctl_reqbufs() -> __vb2_queue_free() -> vb2_dma_sg_put_userptr()) and getting mmap_sem in put_userptr() introduces a lock inversion with queue->mmap_lock in the above mentioned call path. Luckily this whole locking mess will get resolved once we convert videobuf2 core to the new mm helper which avoids the need for mmap_sem in .put_userptr memop altogether. Signed-off-by: Jan Kara Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 2 -- drivers/media/v4l2-core/videobuf2-dma-contig.c | 5 +++++ drivers/media/v4l2-core/videobuf2-dma-sg.c | 4 ++++ drivers/media/v4l2-core/videobuf2-vmalloc.c | 4 +++- 4 files changed, 12 insertions(+), 3 deletions(-) commit 27c039750c8ff1297632e424a4674732cc4c3c70 Author: Mauro Carvalho Chehab Date: Tue Aug 11 12:18:33 2015 -0300 [media] sr030pc30: don't read a new pointer sr030pc30_get_fmt() can only succeed if both info->curr_win and info->curr_fmt are not NULL. If one of those vars are null, the curent code would call: ret = sr030pc30_set_params(sd); If the curr_win is null, it will return -EINVAL, as it would be expected. However, if curr_fmt is NULL, the function won't set it. The code will then try to read from it: mf->code = info->curr_fmt->code; mf->colorspace = info->curr_fmt->colorspace; with obviouly won't work. This got reported by smatch: drivers/media/i2c/sr030pc30.c:505 sr030pc30_get_fmt() error: we previously assumed 'info->curr_win' could be null (see line 499) drivers/media/i2c/sr030pc30.c:507 sr030pc30_get_fmt() error: we previously assumed 'info->curr_fmt' could be null (see line 499) Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/sr030pc30.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit ab9a953b9f58ae695bbbe04a8540830bbae5d246 Author: Mauro Carvalho Chehab Date: Tue Aug 11 12:18:32 2015 -0300 [media] ov2659: get rid of unused values Why to store the chosed values for prediv, postdiv and mult if those won't be used? drivers/media/i2c/ov2659.c: In function 'ov2659_pll_calc_params': drivers/media/i2c/ov2659.c:912:35: warning: variable 's_mult' set but not used [-Wunused-but-set-variable] u32 s_prediv = 1, s_postdiv = 1, s_mult = 1; ^ drivers/media/i2c/ov2659.c:912:20: warning: variable 's_postdiv' set but not used [-Wunused-but-set-variable] u32 s_prediv = 1, s_postdiv = 1, s_mult = 1; ^ drivers/media/i2c/ov2659.c:912:6: warning: variable 's_prediv' set but not used [-Wunused-but-set-variable] u32 s_prediv = 1, s_postdiv = 1, s_mult = 1; ^ This is likely some leftover from some past change. Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov2659.c | 4 ---- 1 file changed, 4 deletions(-) commit 12976516558c81f20757f6b0947823119ad87046 Author: Mauro Carvalho Chehab Date: Tue Aug 11 12:18:31 2015 -0300 [media] ov9650: remove an extra space drivers/media/i2c/ov9650.c:1439 ov965x_detect_sensor() warn: inconsistent indenting Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ov9650.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d88f831d20c10b5633cd71117917cd04a0735a8 Author: Mauro Carvalho Chehab Date: Tue Aug 11 12:18:30 2015 -0300 [media] tc358743: don't use variable length array for I2C writes drivers/media/i2c/tc358743.c:148:19: warning: Variable length array is used. As the maximum size is 1026, we can't use dynamic var, as it would otherwise spend 1056 bytes of the stack at i2c_wr() function. So, allocate a buffer with the allowed maximum size together with the state var. Signed-off-by: Mauro Carvalho Chehab Acked-by: Mats Randgaard Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 5d44595c2627f7edcd8c24a76b13bd115f9fc2da Merge: fedf42b 93a1cee Author: Philipp Zabel Date: Sun Aug 16 17:10:20 2015 +0200 Merge branch 'reset/ath79' into reset/next commit bdfe0cbd746aa9b2509c2f6d6be17193cf7facd7 Author: Theodore Ts'o Date: Sun Aug 16 10:03:57 2015 -0400 Revert "ext4: remove block_device_ejected" This reverts commit 08439fec266c3cc5702953b4f54bdf5649357de0. Unfortunately we still need to test for bdi->dev to avoid a crash when a USB stick is yanked out while a file system is mounted: usb 2-2: USB disconnect, device number 2 Buffer I/O error on dev sdb1, logical block 15237120, lost sync page write JBD2: Error -5 detected when updating journal superblock for sdb1-8. BUG: unable to handle kernel paging request at 34beb000 IP: [] __percpu_counter_add+0x18/0xc0 *pdpt = 0000000023db9001 *pde = 0000000000000000 Oops: 0000 [#1] SMP CPU: 0 PID: 4083 Comm: umount Tainted: G U OE 4.1.1-040101-generic #201507011435 Hardware name: LENOVO 7675CTO/7675CTO, BIOS 7NETC2WW (2.22 ) 03/22/2011 task: ebf06b50 ti: ebebc000 task.ti: ebebc000 EIP: 0060:[] EFLAGS: 00010082 CPU: 0 EIP is at __percpu_counter_add+0x18/0xc0 EAX: f21c8e88 EBX: f21c8e88 ECX: 00000000 EDX: 00000001 ESI: 00000001 EDI: 00000000 EBP: ebebde60 ESP: ebebde40 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 CR0: 8005003b CR2: 34beb000 CR3: 33354200 CR4: 000007f0 Stack: c1abe100 edcb0098 edcb00ec ffffffff f21c8e68 ffffffff f21c8e68 f286d160 ebebde84 c1160454 00000010 00000282 f72a77f8 00000984 f72a77f8 f286d160 f286d170 ebebdea0 c11e613f 00000000 00000282 f72a77f8 edd7f4d0 00000000 Call Trace: [] account_page_dirtied+0x74/0x110 [] __set_page_dirty+0x3f/0xb0 [] mark_buffer_dirty+0x53/0xc0 [] ext4_commit_super+0x17b/0x250 [] ext4_put_super+0xc1/0x320 [] ? fsnotify_unmount_inodes+0x1aa/0x1c0 [] ? evict_inodes+0xca/0xe0 [] generic_shutdown_super+0x6a/0xe0 [] ? prepare_to_wait_event+0xd0/0xd0 [] ? unregister_shrinker+0x40/0x50 [] kill_block_super+0x26/0x70 [] deactivate_locked_super+0x45/0x80 [] deactivate_super+0x47/0x60 [] cleanup_mnt+0x39/0x80 [] __cleanup_mnt+0x10/0x20 [] task_work_run+0x91/0xd0 [] do_notify_resume+0x7c/0x90 [] work_notify Code: 8b 55 e8 e9 f4 fe ff ff 90 90 90 90 90 90 90 90 90 90 90 55 89 e5 83 ec 20 89 5d f4 89 c3 89 75 f8 89 d6 89 7d fc 89 cf 8b 48 14 <64> 8b 01 89 45 ec 89 c2 8b 45 08 c1 fa 1f 01 75 ec 89 55 f0 89 EIP: [] __percpu_counter_add+0x18/0xc0 SS:ESP 0068:ebebde40 CR2: 0000000034beb000 ---[ end trace dd564a7bea834ecd ]--- Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101011 Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/super.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit 3c22a0ed597c1ff33eddeafd04be5e6ce544262d Author: Avri Altman Date: Wed Aug 5 23:07:42 2015 +0300 iwlwifi: mvm: Enable power management on low-latency bss Currently the driver disable power management on all low-latency interfaces, while it should disable it on WiDi interfaces only. Non-P2P interfaces that runs voice and video traffic should enable power management. Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/power.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7c4f084372ed35aef3e8c6e6b1f1b1dc3235987a Author: Arik Nemtsov Date: Thu Apr 30 18:31:45 2015 +0300 iwlwifi: mvm: support TDLS wider-bandwidth When TDLS support is declared by the FW, set the bit indicating wider-BW support as well. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 + 1 file changed, 1 insertion(+) commit 5b9d47cdde1aacaac9b9dcefe44ee3493dc5fd87 Author: Dan Carpenter Date: Tue Aug 11 00:45:03 2015 +0300 iwlwifi: mvm: fix a range check in debugfs code The &mvm->tof_data.range_req.ap[] array has IWL_MVM_TOF_MAX_APS elements so the check should be >= instead of >. Also the test can underflow so I have changed "i" to unsigned. Fixes: ce7929186a39 ('wlwifi: mvm: add basic Time of Flight (802.11mc FTM) support') Signed-off-by: Dan Carpenter Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3cd6e2f768851a760c072f0f84b9688b1755d24d Author: Andy Shevchenko Date: Thu Jul 16 15:42:14 2015 +0300 iwlwifi: convert hex_dump_to_buffer() to %*ph There is no need to use hex_dump_to_buffer() in the cases like this: hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); /* len <= 16 */ sprintf("%s\n", outbuf); since it maybe easily converted to simple: sprintf("%*ph\n", len, buf); Note: it seems in one case the output is groupped by 2 bytes and looks like a typo. Thus, patch changes that to plain byte stream. Signed-off-by: Andy Shevchenko Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/debugfs.c | 8 ++------ drivers/net/wireless/iwlwifi/mvm/debugfs.c | 7 +------ 2 files changed, 3 insertions(+), 12 deletions(-) commit 1be5d8cc165d56b7267f5adc96d496a33c33219e Author: Johannes Berg Date: Thu Jun 11 16:51:24 2015 +0200 iwlwifi: pass NAPI struct from transport layer The mac80211 patch to pass the NAPI struct only changed iwlwifi to store the NAPI struct, but we can do better: pass it directly from the lower transport layer to the opmode during RX, and then on to mac80211 from there. When we add multiple RX queues, we can then pass the appropriate NAPI struct properly. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/agn.h | 2 +- drivers/net/wireless/iwlwifi/dvm/main.c | 13 ------------- drivers/net/wireless/iwlwifi/dvm/rx.c | 3 ++- drivers/net/wireless/iwlwifi/iwl-op-mode.h | 26 ++++---------------------- drivers/net/wireless/iwlwifi/mvm/mvm.h | 4 ++-- drivers/net/wireless/iwlwifi/mvm/ops.c | 16 ++-------------- drivers/net/wireless/iwlwifi/mvm/rx.c | 8 +++++--- drivers/net/wireless/iwlwifi/pcie/rx.c | 2 +- drivers/net/wireless/iwlwifi/pcie/trans.c | 7 +++---- 9 files changed, 20 insertions(+), 61 deletions(-) commit 473e0bc39bd5d2542e90edc622a65bd49206409d Merge: 1a84e77 8f9c98d Author: Emmanuel Grumbach Date: Sun Aug 16 10:20:58 2015 +0300 Merge tag 'mac80211-next-for-davem-2015-08-14' into next Another pull request for the next cycle, this time with quite a bit of content: * mesh fixes/improvements from Alexis, Bob, Chun-Yeow and Jesse * TDLS higher bandwidth support (Arik) * OCB fixes from Bertold Van den Bergh * suspend/resume fixes from Eliad * dynamic SMPS support for minstrel-HT (Krishna Chaitanya) * VHT bitrate mask support (Lorenzo Bianconi) * better regulatory support for 5/10 MHz channels (Matthias May) * basic support for MU-MIMO to avoid the multi-vif issue (Sara Sharon) along with a number of other cleanups. commit 1a84e7716086be3b90e3b735725d0a14da28a69c Author: Ayala Beker Date: Wed Jul 22 13:54:31 2015 +0300 iwlwifi: mvm: add debug info to schedule scan complete message. Add more information to schedule scan complete message. Signed-off-by: Ayala Beker Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) commit 3b44a0ef12b9676914b25dcf3bf7f0cdd07de5b3 Author: David Spinadel Date: Sun Jun 21 11:57:36 2015 +0300 iwlwifi: mvm: remove partial and full scan lists from lmac sched scan Lmac sched scan supports partial scans, so we can set some channels to be scanned on every scan iteration and others to be scanned only on some iterations. Currently we set all channels to be scanned every iteration, but still have some configuration of which iterations should be partial and which should be full. Remove all partial/full scan configuration to reduce confusions. Signed-off-by: David Spinadel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit 9437e9941025bc83d3dd43f2927019149029f667 Author: David Spinadel Date: Mon Jun 22 13:20:00 2015 +0300 iwlwifi: mvm: simplify calculating scan dwells and other timing values Remove timing values from iwl_mvm_scan_params and use defines and arrays of values instead. While at that fix few values and corner cases and align all OSs to ChromeOS values. Signed-off-by: David Spinadel Reviewed-by: Luciano Coelho Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/scan.c | 169 +++++++++++++++++--------------- 1 file changed, 88 insertions(+), 81 deletions(-) commit 80de4321a65c680dd7ce0138d88dc96e0d2a18fb Author: Eliad Peller Date: Thu Jul 30 16:53:27 2015 +0300 iwlwifi: make sure d3_suspend/resume ops exist We added calls to d3_suspend/resume trans ops during the suspend/resume flow. However, the wrapper code didn't verify the trans ops were actually defined, resulting in panic when they were not (such as in the case of sdio trans) Fixes: 6dfb36c89dc2 ("iwlwifi: call d3_suspend/resume in d0i3 case as well") Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-trans.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 395ae54bd8775508a9616817188cabbcd6f53260 Author: Pierre-Louis Bossart Date: Fri Aug 14 17:19:43 2015 -0500 ALSA: usb: handle descriptor with SYNC_NONE illegal value The M-Audio Transit exposes an interface with a SYNC_NONE attribute. This is not a valid value according to the USB audio classspec. However there is a sync endpoint associated to this record. Changing the logic to try to use this sync endpoint allows for seamless transitions between altset 2 and altset 3. If any errors happen, the behavior remains the same. $ more /proc/asound/card1/stream0 M-Audio Transit USB at usb-0000:00:14.0-2, full speed : USB Audio Playback: Status: Stop Interface 1 Altset 1 Format: S24_3LE Channels: 2 Endpoint: 3 OUT (ADAPTIVE) Rates: 48001 - 96000 (continuous) Interface 1 Altset 2 Format: S24_3LE Channels: 2 Endpoint: 3 OUT (NONE) Rates: 8000 - 48000 (continuous) Interface 1 Altset 3 Format: S16_LE Channels: 2 Endpoint: 3 OUT (ASYNC) Rates: 8000 - 48000 (continuous) Signed-off-by: Pierre-Louis Bossart Signed-off-by: Takashi Iwai sound/usb/pcm.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit 630184477e7eccb2b31ee4c20b6905ca5fa4b3a8 Author: Pierre-Louis Bossart Date: Fri Aug 14 17:19:42 2015 -0500 ALSA: usb: fix corrupted pointers due to interface setting change When a transition occurs between alternate settings that do not use the same synchronization method, the substream pointers were not reset. This prevents audio from being played during the second transition. Identified and tested with M-Audio Transit device (0763:2006 Midiman M-Audio Transit) Details of the issue: First playback to adaptive endpoint: $ aplay -Dhw:1,0 ~/24_96.wav Playing WAVE '/home/plb/24_96.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo [ 3169.297556] usb 1-2: setting usb interface 1:1 [ 3169.297568] usb 1-2: Creating new playback data endpoint #3 [ 3169.298563] usb 1-2: Setting params for ep #3 (type 0, 3 urbs), ret=0 [ 3169.298574] usb 1-2: Starting data EP @ffff880035fc8000 first playback to asynchronous endpoint: $ aplay -Dhw:1,0 ~/16_48.wav Playing WAVE '/home/plb/16_48.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo [ 3204.520251] usb 1-2: setting usb interface 1:3 [ 3204.520264] usb 1-2: Creating new playback data endpoint #3 [ 3204.520272] usb 1-2: Creating new capture sync endpoint #83 [ 3204.521162] usb 1-2: Setting params for ep #3 (type 0, 4 urbs), ret=0 [ 3204.521177] usb 1-2: Setting params for ep #83 (type 1, 4 urbs), ret=0 [ 3204.521182] usb 1-2: Starting data EP @ffff880035fce000 [ 3204.521204] usb 1-2: Starting sync EP @ffff8800bd616000 second playback to adaptive endpoint: no audio and error on terminal: $ aplay -Dhw:1,0 ~/24_96.wav Playing WAVE '/home/plb/24_96.wav' : Signed 24 bit Little Endian in 3bytes, Rate 96000 Hz, Stereo aplay: pcm_write:1939: write error: Input/output error [ 3239.483589] usb 1-2: setting usb interface 1:1 [ 3239.483601] usb 1-2: Re-using EP 3 in iface 1,1 @ffff880035fc8000 [ 3239.484590] usb 1-2: Setting params for ep #3 (type 0, 4 urbs), ret=0 [ 3239.484606] usb 1-2: Setting params for ep #83 (type 1, 4 urbs), ret=0 This last line shows that a sync endpoint is used when it shouldn't. The sync endpoint is no longer valid and the pointers are corrupted Signed-off-by: Pierre-Louis Bossart Signed-off-by: Takashi Iwai sound/usb/pcm.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 2a8cb48945408984cd04c850b293f467b32ec5af Author: Joonyoung Shim Date: Sun Aug 16 14:38:49 2015 +0900 drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c The struct exynos_drm_gem_obj can have fields of the struct exynos_drm_gem_buf then don't need to use exynos_drm_buf.c file. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Makefile | 4 +- drivers/gpu/drm/exynos/exynos_drm_buf.c | 170 ------------------------ drivers/gpu/drm/exynos/exynos_drm_buf.h | 33 ----- drivers/gpu/drm/exynos/exynos_drm_fb.c | 14 +- drivers/gpu/drm/exynos/exynos_drm_fb.h | 4 +- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 30 ++--- drivers/gpu/drm/exynos/exynos_drm_gem.c | 209 +++++++++++++++++++----------- drivers/gpu/drm/exynos/exynos_drm_gem.h | 40 +++--- drivers/gpu/drm/exynos/exynos_drm_plane.c | 10 +- 9 files changed, 180 insertions(+), 334 deletions(-) commit 01ed50ddbd6f7b4fafcf366994949d5a1a8356c0 Author: Joonyoung Shim Date: Sun Aug 16 14:33:08 2015 +0900 drm/exynos: use prime helpers The dma-buf codes of exynos drm is almost same with prime helpers. A difference is that consider DMA_NONE when import dma-buf, but it's wrong and we don't consider it any more, so we can use prime interface. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Makefile | 2 +- drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 289 ----------------------------- drivers/gpu/drm/exynos/exynos_drm_dmabuf.h | 20 -- drivers/gpu/drm/exynos/exynos_drm_drv.c | 9 +- drivers/gpu/drm/exynos/exynos_drm_gem.c | 79 ++++++++ drivers/gpu/drm/exynos/exynos_drm_gem.h | 9 + 6 files changed, 95 insertions(+), 313 deletions(-) commit eb57da880b00b6c68f971e077ff3e4db9ef0deae Author: Joonyoung Shim Date: Tue Jul 28 17:53:27 2015 +0900 drm/exynos: remove function roundup_gem_size The function roundup_gem_size can be merged in exynos_drm_gem_create. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 211b8878c13fbd5f8ae8a7b68798d178cb5346b4 Author: Joonyoung Shim Date: Sun Aug 16 14:16:49 2015 +0900 drm/exynos: remove function update_vm_cache_attr The function update_vm_cache_attr can be merged in exynos_drm_gem_mmap. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit c4130bcd6a80f29a5d0cabcef8f0341cfa812dff Author: Joonyoung Shim Date: Sun Aug 16 14:15:06 2015 +0900 drm/exynos: remove function check_gem_flags The function check_gem_flags is too simple, so it's better to move codes in each consumer functions. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) commit 5f3f42664fafa7dd88aee30a2ea77ca45c9362e7 Author: Joonyoung Shim Date: Tue Jul 28 17:53:22 2015 +0900 drm/exynos: use ERR_PTR instead of NULL in exynos_drm_gem_init For more correct error information. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8e38976ee9aceec4231e7aa5aacf3c6e7aa41471 Author: Joonyoung Shim Date: Tue Jul 28 17:53:21 2015 +0900 drm/exynos: remove unused fields of struct exynos_drm_gem_buf The userptr, write and pfnmap of struct exynos_drm_gem_buf are not used anywhere. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.h | 7 ------- 1 file changed, 7 deletions(-) commit 67e93c808b486817193dbd1ff93ee03adb9eef28 Author: Joonyoung Shim Date: Tue Jul 28 17:53:20 2015 +0900 drm/exynos: stop copying sg table Already struct exynos_drm_gem_buf has pages of the buffer, so we don't need to copy from sg table of the buffer to sg table of dma-buf attachment, just can make sg table from pages of the buffer. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 55 +++++++++++------------------- drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 -- drivers/gpu/drm/exynos/exynos_drm_gem.h | 2 -- 3 files changed, 20 insertions(+), 40 deletions(-) commit 0e9a2ee3bc1ee24be519312453ef93288b545ad3 Author: Joonyoung Shim Date: Tue Jul 28 17:53:19 2015 +0900 drm/exynos: remove function exynos_drm_gem_map_buf The exynos_drm_gem_map_buf can be merged in exynos_drm_gem_fault. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 36 +++++++++++---------------------- 1 file changed, 12 insertions(+), 24 deletions(-) commit 67412d15afb7cc34943157c4bce2cf138b579fd1 Author: Joonyoung Shim Date: Tue Jul 28 17:53:18 2015 +0900 drm/exynos: remove mutex locking in pagefault handler There is no reason to use mutex locking in pagefault handler. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 5 ----- 1 file changed, 5 deletions(-) commit 23597e2642ca76883ef533d3e3947b859537fd49 Author: Joonyoung Shim Date: Tue Jul 28 17:53:17 2015 +0900 drm/exynos: remove function convert_to_vm_err_msg The convert_to_vm_err_msg is called just once by exynos_drm_gem_fault, so it's simple not to use the function. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gem.c | 34 ++++++++++----------------------- 1 file changed, 10 insertions(+), 24 deletions(-) commit 8139951cae69637cc882e23f36fc45ecfa1ec814 Author: Joonyoung Shim Date: Tue Jul 28 17:53:16 2015 +0900 drm/exynos: stop using sgtable in page fault handler Already struct exynos_drm_gem_buf has pages of the buffer when buffer is created, so just can use pages in page fault handler, we don't have to make sgtable of the buffer. But this needs to construct pages of the buffer that is imported from dma-buf prime. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_buf.c | 16 ---------------- drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 18 ++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_gem.c | 14 +------------- 3 files changed, 19 insertions(+), 29 deletions(-) commit 493f133f47750aa5566fafa9403617e3f0506f8c Author: Len Brown Date: Wed Mar 25 23:20:37 2015 -0400 intel_idle: Skylake Client Support Skylake Client CPU idle Power states (C-states) are similar to the previous generation, Broadwell. However, Skylake does get its own table with updated worst-case latency and average energy-break-even residency values. Signed-off-by: Len Brown drivers/idle/intel_idle.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) commit 2b8376c803c4c1c02446520527b31161e8a3c066 Author: Gustavo Padovan Date: Sat Aug 15 12:14:08 2015 -0300 drm/exynos: remove struct exynos_drm_encoder layer struct exynos_drm_encoder was justing wrapping struct drm_encoder, it had only a drm_encoder member and the internal exynos_drm_encoders ops that was directly mapped to the drm_encoder helper funcs. So now exynos DRM uses struct drm_encoder directly, this removes completely the struct exynos_drm_encoder. v2: add empty .mode_fixup() and .mode_set() to DSI and DPI to avoid null pointer. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/Makefile | 7 +- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 2 +- drivers/gpu/drm/exynos/exynos_dp_core.c | 68 ++++++++++++------ drivers/gpu/drm/exynos/exynos_dp_core.h | 2 +- drivers/gpu/drm/exynos/exynos_drm_core.c | 1 - drivers/gpu/drm/exynos/exynos_drm_crtc.c | 1 - drivers/gpu/drm/exynos/exynos_drm_dpi.c | 66 +++++++++++------ drivers/gpu/drm/exynos/exynos_drm_drv.c | 1 - drivers/gpu/drm/exynos/exynos_drm_drv.h | 47 ++----------- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 88 +++++++++++++---------- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 105 ---------------------------- drivers/gpu/drm/exynos/exynos_drm_encoder.h | 22 ------ drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 71 ++++++++++++++----- drivers/gpu/drm/exynos/exynos_hdmi.c | 85 +++++++++++++--------- 15 files changed, 259 insertions(+), 309 deletions(-) commit 6cf272751be22a9ae6a6a9550854156dd812ff66 Author: Gustavo Padovan Date: Thu Aug 6 10:31:47 2015 -0300 drm/exynos: fold encoder setup into exynos_drm_load() As we are removing the exynos encoder move the encoder setup operation directly inside the exynos_drm_load() Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 12 ++++++++++-- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 13 ------------- drivers/gpu/drm/exynos/exynos_drm_encoder.h | 1 - 3 files changed, 10 insertions(+), 16 deletions(-) commit a2986e8032bddbe237ed16e2e26c71f5416cd5fd Author: Gustavo Padovan Date: Wed Aug 5 20:24:20 2015 -0300 drm/exynos: remove exynos_drm_create_enc_conn() This functions was just hiding the encoder and connector creation in a way that was less clean than if we get rid of it. For example, exynos_encoder ops had .create_connector() defined only because we were handing off the encoder and connector creation to exynos_drm_create_enc_conn(). Without this function we can directly call the create_connector function internally in the code, without the need of any vtable access. It also does some refactoring in the code like creating a bind function for dpi devices. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 3 +-- drivers/gpu/drm/exynos/exynos_dp_core.c | 20 ++++++++++++++++--- drivers/gpu/drm/exynos/exynos_drm_core.c | 30 ----------------------------- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 26 +++++++++++++++++++++++-- drivers/gpu/drm/exynos/exynos_drm_drv.h | 12 ++++++------ drivers/gpu/drm/exynos/exynos_drm_dsi.c | 20 ++++++++++++------- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 11 +++++++---- drivers/gpu/drm/exynos/exynos_drm_encoder.h | 4 +++- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 +-- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 20 ++++++++++--------- drivers/gpu/drm/exynos/exynos_hdmi.c | 21 +++++++++++++++++--- 11 files changed, 101 insertions(+), 69 deletions(-) commit af8be3f6fe80262f29b5e353421392196ff626f0 Author: Gustavo Padovan Date: Wed Aug 5 20:24:19 2015 -0300 drm/exynos: remove exynos_encoder's .commit() op .commit() is not used anymore, Exynos encoders now follow the .enable()/.disable() semantics from drm atomic core, so remove this callback. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.h | 2 -- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 3 --- 2 files changed, 5 deletions(-) commit 07fd6e1f9985399f08af0f7981eaed362512a5af Author: Gustavo Padovan Date: Wed Aug 5 20:24:18 2015 -0300 drm/exynos: remove extra call to exynos_dp_commit() exynos_dp_commit() was getting called twice by exynos encoder core, once inside the .enable() call and another time by .commit() itself. The remove of the second call caused the wake of a bug, the operations orders inside exynos_dp_commit was wrong and we had to move exynos_dp_start_video() to be the last operation in there. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_dp_core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c2c099f2d97a039c5e1714c803dd9d20458c388f Author: Gustavo Padovan Date: Wed Aug 5 20:24:17 2015 -0300 drm/exynos: remove extra call to hdmi_commit() hdmi_commit() was getting called twice by exynos encoder core, once inside the .enable() call and another time by .commit() itself. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322 Author: Gustavo Padovan Date: Tue Aug 11 17:38:06 2015 +0900 drm/exynos: remove struct exynos_drm_display This struct was just representing encoder information, it was a member of struct exynos_drm_encoder, so any code trying to access encoder data would have to go through the encoder struct, get the display struct and then get the data it want. During this patchset we also realized that the only data exynos_drm_encoder needs to store is the drm_encoder parent and the exynos_drm_encoder_ops. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 17 ++++--- drivers/gpu/drm/exynos/exynos_dp_core.c | 46 +++++++++--------- drivers/gpu/drm/exynos/exynos_dp_core.h | 3 +- drivers/gpu/drm/exynos/exynos_drm_core.c | 23 ++++----- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 2 +- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 41 ++++++++-------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 47 ++++++++---------- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 58 +++++++++++----------- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 75 ++++++++--------------------- drivers/gpu/drm/exynos/exynos_drm_encoder.h | 6 +-- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 18 +++---- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 43 +++++------------ drivers/gpu/drm/exynos/exynos_hdmi.c | 48 +++++++++--------- 14 files changed, 177 insertions(+), 252 deletions(-) commit d1fa72d0a6e70057f6aa0d0f6187e4a49e261fa8 Author: Gustavo Padovan Date: Wed Aug 5 20:24:15 2015 -0300 drm/exynos: simplify calculation of possible CRTCs All CRTCs can only be LCD, HDMI or VIDI, so basically all CRTCs will be a possible CRTCs. This patch removes an extra function with switch that was only checking if the CRTC type was one of those three above. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_encoder.c | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) commit a090f45ff0acae51aa0363a72e5c3b47332af9f9 Author: Gustavo Padovan Date: Wed Aug 5 20:24:14 2015 -0300 drm/exynos: remove unused .remove() and .check_mode() ops from display These two display_ops are not used anywhere, remove them. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.h | 5 ----- 1 file changed, 5 deletions(-) commit b6f3c36183470bbbee9da1c0a8cc892e69f88c4f Author: Gustavo Padovan Date: Wed Aug 5 20:24:13 2015 -0300 drm/exynos: remove wrappers for phy_power_{on,off} phy_power_on() and phy_power_off() already checks for NULL pointer. This patch removes the wrappers exynos_dp_phy_init() and exynos_dp_phy_exit() since the only think they were doing was a check for NULL phy. Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_dp_core.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit b6595dc7e1ccc0964862a5bd436a8f004b36c02f Author: Gustavo Padovan Date: Mon Aug 10 21:37:04 2015 -0300 drm/exynos: split display's .dpms() into .enable() and .disable() The DRM Core doesn't have a dpms() operation anymore, everything now is enable() or disable(). Signed-off-by: Gustavo Padovan Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_dp_core.c | 36 ++++++---------- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 36 ++++------------ drivers/gpu/drm/exynos/exynos_drm_drv.h | 6 ++- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 44 ++++++------------- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 8 ++-- drivers/gpu/drm/exynos/exynos_hdmi.c | 65 ++++++++++------------------- 6 files changed, 65 insertions(+), 130 deletions(-) commit 08dd20099f3ce55a2ded0045b5a087aefea38cd8 Author: Gustavo Padovan Date: Thu Jul 16 12:23:39 2015 -0300 drm/exynos: return return value of exynos_crtc->enable_vblank Instead of blindly ignore the return value of enable_vblank return it to the upper DRM layer for error handling. Suggested-by: Joonyoung Shim Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d88d2463fecb13c67d8eec78c4b61671900deb94 Author: Gustavo Padovan Date: Thu Jul 16 12:23:38 2015 -0300 drm/exynos: unify exynos_drm_plane names with drm core Rename crtc_{widht,height} to crtc_{w,h} and src_{width,height} to src_{w,h} to make it similar to the atomic state names. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 10 +++++----- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 14 +++++++------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 16 ++++++++-------- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 14 +++++++------- drivers/gpu/drm/exynos/exynos_drm_plane.c | 11 ++++++----- drivers/gpu/drm/exynos/exynos_mixer.c | 22 +++++++++++----------- 6 files changed, 44 insertions(+), 43 deletions(-) commit a1bcc9da90ab44d29c38fc6e4a8dba633e97f3f3 Author: Gustavo Padovan Date: Thu Jul 16 12:23:37 2015 -0300 drm/exynos: remove unused fields from struct exynos_drm_plane Now after the move to use drm_plane_state directly struct drm_plane_state has many unused fields, along with others that weren't used before the plane state change. Thus remove them all. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.h | 18 ------------------ 1 file changed, 18 deletions(-) commit 2eeb2e5e6634dbb97bdda81f65f70e4b037028d5 Author: Gustavo Padovan Date: Mon Aug 3 14:40:44 2015 +0900 drm/exynos: use drm atomic state directly For some fields the use of struct exynos_drm_plane filled with data from the plane state just creates a source of duplicated information and overhead. Here we change the crtc drivers to access the plane state directly simplifying the code by not relying on a exynos internal struct. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 21 +++++---- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 23 +++++----- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 29 ++++++------ drivers/gpu/drm/exynos/exynos_drm_plane.c | 12 ----- drivers/gpu/drm/exynos/exynos_mixer.c | 65 ++++++++++++++------------- 5 files changed, 75 insertions(+), 75 deletions(-) commit 1e1d13932283419ddfdb60c73319cc0e753ded5b Author: Gustavo Padovan Date: Mon Aug 3 14:39:36 2015 +0900 drm/exynos: pass struct exynos_drm_plane in update/enable We already have the plane pointer in before calling .update_plane() or disable_plane() so pass it directly to those calls avoiding a new conversion from zpos to struct exynos_drm_plane. v2: don't remove check for suspended in FIMD (comment by Joonyoung) Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 22 +++++++--------------- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 22 +++++++--------------- drivers/gpu/drm/exynos/exynos_drm_drv.h | 6 ++++-- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 22 +++++++--------------- drivers/gpu/drm/exynos/exynos_drm_plane.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 9 ++------- drivers/gpu/drm/exynos/exynos_mixer.c | 20 +++++++++++--------- 7 files changed, 40 insertions(+), 65 deletions(-) commit 9cc7610a2375a94ec967f771ce74b51db0d43d1c Author: Gustavo Padovan Date: Mon Aug 3 14:38:05 2015 +0900 drm/exynos: rename win_commit/disable to atomic-like names Rename win_commit() helper to update_plane() and win_disable() to disable_plane(). Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim 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 | 8 ++++---- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 10 +++++----- drivers/gpu/drm/exynos/exynos_drm_plane.c | 10 +++++----- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 +++--- drivers/gpu/drm/exynos/exynos_mixer.c | 10 +++++----- 7 files changed, 32 insertions(+), 32 deletions(-) commit f59a89d05f1290d0cdaa588d29871e05cdec159b Author: Gustavo Padovan Date: Thu Jul 16 12:23:33 2015 -0300 drm/exynos: remove duplicated check for suspend The same check is placed twice in fimd/decon_update_plane(), remove one of them. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos7_drm_decon.c | 3 --- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 --- 2 files changed, 6 deletions(-) commit eafd540aeaae6f1c4d04fdf3959419716d23cdc5 Author: Gustavo Padovan Date: Thu Jul 16 12:23:32 2015 -0300 drm/exynos: use KMS version of DRM vblanks functions Get rid of legacy DRM vblank function that are less clear to use. The new ones basically requires only the crtc as parameters. It also clean ups exynos_drm_crtc_finish_pageflip() parameters as a consequence. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 6 +++--- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 14 ++++++-------- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 2 +- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 8 ++++---- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 4 ++-- drivers/gpu/drm/exynos/exynos_mixer.c | 4 ++-- 7 files changed, 20 insertions(+), 22 deletions(-) commit 451a8c0c59b3feebb5bf6a1ce1335e9f3e428355 Author: Gustavo Padovan Date: Thu Jul 16 12:23:31 2015 -0300 drm/exynos: pass the correct pipe number Instead of giving -1 to as arg to drm_send_vblank_event() pass the correct pipe number to it. Signed-off-by: Gustavo Padovan Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 43a3b866a9e73e9bd215ec3f36c71e42469e70c6 Author: Joonyoung Shim Date: Tue Jul 28 17:51:02 2015 +0900 drm/exynos: clear channels only when iommu is enabled This is simplest solution about reported problem[1]. It's no problem to clear channel only when iommu is enabled, if we consider that we cannot recognize iommu errors when iommu is disabled and it have been valid until now. But this cannot be nice solution. [1] https://lkml.org/lkml/2015/7/21/404 Reported-by: Krzysztof Kozlowski Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit eb7a3fc74c58be9c01cdbe23947ae9eb032e8365 Author: Joonyoung Shim Date: Thu Jul 2 21:49:39 2015 +0900 drm/exynos: remove drm_iommu_attach_device_if_possible Already drm_iommu_attach_device checks whether support iommu internally. It should clear channels always regardless iommu support. We didn't know because we can detect the problem when iommu is enabled, so we don't have to use drm_iommu_attach_device_if_possible and then we can remove drm_iommu_attach_device_if_possible and clear_channels function pointer. Signed-off-by: Joonyoung Shim Tested-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 5 +++-- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 5 +++-- drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 - drivers/gpu/drm/exynos/exynos_drm_fimd.c | 5 +++-- drivers/gpu/drm/exynos/exynos_drm_iommu.c | 11 ----------- drivers/gpu/drm/exynos/exynos_drm_iommu.h | 11 ----------- drivers/gpu/drm/exynos/exynos_mixer.c | 3 +-- 7 files changed, 10 insertions(+), 31 deletions(-) commit 735c21c3c802e9e89ce302ab40ea92f5d1151e02 Author: Joonyoung Shim Date: Wed Jul 15 12:04:39 2015 +0900 drm/exynos: move order to register vidi kms driver The vidi is virtual kms driver and now it is registered earlier than actual hw kms drivers, so it will occupy crtc index 0. Some users assume the condition yet that actual hw kms driver has crtc index 0. It may or may not be matter but let's arrange register order. Signed-off-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_drv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0df5e4acf584ad1b1b5689d283e1e81655eefab1 Author: Andrzej Hajda Date: Thu Jul 9 08:25:43 2015 +0200 drm/exynos/mixer: replace MXR_INT_EN register cache with flag Driver uses only VSYNC interrupts, so we need to cache VSYNC bit state only. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit a44652e845739b88214adf9f40478f1ed037348d Author: Andrzej Hajda Date: Thu Jul 9 08:25:42 2015 +0200 drm/exynos/mixer: simplify poweron flag The driver uses bool protected by mutex to track power state. The patch replaces this combo with single bit and atomic bitops. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 52 ++++++++++------------------------- 1 file changed, 14 insertions(+), 38 deletions(-) commit bf56608a73444037d6960204d81662ccbdebe282 Author: Joonyoung Shim Date: Thu Jul 2 21:49:38 2015 +0900 drm/exynos: remove unnecessary checking to support iommu Already drm_iommu_attach_device and drm_iommu_detach_device check whether support iommu internally, so we don't have to call is_drm_iommu_supported before call them. Signed-off-by: Joonyoung Shim Tested-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 3 +-- drivers/gpu/drm/exynos/exynos7_drm_decon.c | 3 +-- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 9 +-------- drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 ------ drivers/gpu/drm/exynos/exynos_drm_iommu.c | 11 +++-------- drivers/gpu/drm/exynos/exynos_drm_ipp.c | 16 ++++++---------- drivers/gpu/drm/exynos/exynos_mixer.c | 3 +-- 7 files changed, 13 insertions(+), 38 deletions(-) commit b24919575ea26937013a4380a604c4e8c0a71c81 Author: Joonyoung Shim Date: Thu Jul 2 21:49:37 2015 +0900 drm/exynos: remove to use ifdef CONFIG_ARM_DMA_USE_IOMMU If CONFIG_ARM_DMA_USE_IOMMU is disable, CONFIG_DRM_EXYNOS_IOMMU also is disable. When CONFIG_DRM_EXYNOS_IOMMU is disable, is_drm_iommu_supported() returns always false, so we can remove to use ifdef CONFIG_ARM_DMA_USE_IOMMU in is_drm_iommu_supported(). Signed-off-by: Joonyoung Shim Tested-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_iommu.h | 4 ---- 1 file changed, 4 deletions(-) commit 5149705dacfb24406634d2060880cd5605772540 Author: Hyungwon Hwang Date: Wed Jul 1 19:09:25 2015 +0900 drm/exynos: gsc: Handles the combination of rotation and flip The unique results of all the combination of rotation and flip can be represented by just 8 states. This patch handles all the combination correctly. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gsc.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 7b5102da0a9f008a5d59fa4e3cd9e6006848f3bd Author: Andrzej Hajda Date: Thu Jul 9 16:28:12 2015 +0200 drm/exynos/hdmi: remove hdmi_v14_conf struct The patch removes intermediate struct for HDMIv14 register configuration, instead registry values are calculated on the fly. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 427 +++++++++-------------------------- 1 file changed, 109 insertions(+), 318 deletions(-) commit edb6e41201c626439a8f3687a0cc81c0d1f13c84 Author: Andrzej Hajda Date: Thu Jul 9 16:28:11 2015 +0200 drm/exynos/hdmi: remove hdmi_v13_conf struct The patch removes intermediate struct for HDMIv13 register configuration, instead registry values are calculated on the fly. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 280 +++++++++++++---------------------- 1 file changed, 101 insertions(+), 179 deletions(-) commit c93aaebfd1945fd0c3efacad001906dd6bcbb3df Author: Andrzej Hajda Date: Thu Jul 9 16:28:10 2015 +0200 drm/exynos/hdmi: remove redundant configuration fields The patch removes redundant fields from hdmi_conf_regs. Their values can be calculated from current_mode. This patch is the first step to remove whole hdmi_conf_regs structure. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 68 +++++++++++++----------------------- 1 file changed, 24 insertions(+), 44 deletions(-) commit cd240cde91fa637449b564c08b31030073769ad7 Author: Andrzej Hajda Date: Thu Jul 9 16:28:09 2015 +0200 drm/exynos/hdmi: add driver data pointer to private context The patch replaces duplicated driver data fields in private context with pointer to driver data. It also simplifies driver data lookup code. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 49 +++++++++++++++--------------------- 1 file changed, 20 insertions(+), 29 deletions(-) commit 882a0644fd3427a17d80ad14d1ca3a6228a3860f Author: Andrzej Hajda Date: Thu Jul 9 16:28:08 2015 +0200 drm/exynos/hdmi: remove private lock code Most of the code is called by drm core framework, so it is already synchronized. The only async function is irq routine which only calls drm framework so it does not need to be synchronized. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) commit ef6ce28bc7c529d4d0b8c699d26fb568208bc305 Author: Andrzej Hajda Date: Thu Jul 9 16:28:07 2015 +0200 drm/exynos/hdmi: Simplify HPD gpio handling GPIO is tested only in hdmi_detect, so there is no reason to set it in other places and to preserve its value in context. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit d36b3004ca2c99f39e9691ad8a10c02803ad28fc Author: Andrzej Hajda Date: Thu Jul 9 16:28:06 2015 +0200 drm/exynos/hdmi: remove old platform data code s5p_hdmi_platform_data were used before device tree introduction. As HDMI driver is DT only we can drop this struct completely. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 36 +++++------------------------------- 1 file changed, 5 insertions(+), 31 deletions(-) commit e920efe6fe06b3d4a181a00c54ae00ee83545992 Author: Marek Szyprowski Date: Thu Apr 9 10:46:00 2015 +0200 drm/exynos/fimc: fix runtime pm support Once pm_runtime_set_active() gets called, the kernel assumes that given device has already enabled runtime pm and will call pm_runtime_suspend() without matching pm_runtime_resume(). In case of DRM FIMC IPP driver, this will result in calling clk_disable() without respective call to clk_enable(). This patch removes call to pm_runtime_set_active() to ensure that pm_runtime_suspend/resume calls will match. Signed-off-by: Marek Szyprowski Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_fimc.c | 1 - 1 file changed, 1 deletion(-) commit 947710c6702a4916a7a01b3af4decb66ae7fc34f Author: Andrzej Hajda Date: Thu Jul 9 08:25:41 2015 +0200 drm/exynos/mixer: always update INT_EN cache INT_EN cache field was updated only by mixer_enable_vblank. The patch adds update also by mixer_disable_vblank function. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 5 +++++ 1 file changed, 5 insertions(+) commit fc073248ceb56af8cedebff36bf1cdc5da3c6847 Author: Andrzej Hajda Date: Thu Jul 9 08:25:40 2015 +0200 drm/exynos/mixer: correct vsync configuration sequence Specification advises to clear vsync indicator before configuring vsync. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 81a464df5c5cdb47c2c5e271f7440e011d694018 Author: Andrzej Hajda Date: Thu Jul 9 10:07:53 2015 +0200 drm/exynos/mixer: fix interrupt clearing The driver used incorrect flags to clear interrupt status. The patch fixes it. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_mixer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 64ebd8904fab29ee0b76f923aac77da5caa0437d Author: Andrzej Hajda Date: Thu Jul 9 08:25:38 2015 +0200 drm/exynos/hdmi: fix edid memory leak edid returned by drm_get_edid should be freed. The patch fixes it. Signed-off-by: Andrzej Hajda Reviewed-by: Joonyoung Shim Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_hdmi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 988a47311952db42b3bf84be0dd515ca7d86aaa3 Author: Hyungwon Hwang Date: Wed Jul 1 19:09:24 2015 +0900 drm/exynos: gsc: fix wrong bitwise operation for swap detection The bits for rotation are not used as exclusively. So GSC_IN_ROT_270 can not be used for swap detection. The definition of it is same with GSC_IN_ROT_MASK. It is enough to check GSC_IN_ROT_90 bit is set or not to check whether width / height size swapping is needed. Signed-off-by: Hyungwon Hwang Signed-off-by: Inki Dae drivers/gpu/drm/exynos/exynos_drm_gsc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit d248b61f611463cca906d5663a9a0de63ade97a9 Author: Hai Li Date: Thu Aug 13 17:49:29 2015 -0400 drm/msm/dsi: Introduce DSI configuration module With more platforms supported, the DSI host configuration array keeps expanding. This change moves those to a separate dsi_cfg module. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/dsi/dsi_cfg.c | 92 ++++++++++++++++++ drivers/gpu/drm/msm/dsi/dsi_cfg.h | 44 +++++++++ drivers/gpu/drm/msm/dsi/dsi_host.c | 186 ++++++++----------------------------- 4 files changed, 177 insertions(+), 146 deletions(-) commit 1bf4d7c5651a7cfcdcd77389b42d266441ecf444 Author: Hai Li Date: Thu Aug 13 17:45:53 2015 -0400 drm/msm/dsi: Make each PHY type compilation independent On a certain platform, only one type of DSI PHY is used. This change allows the user to only compile the PHY type which is being used. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/Kconfig | 14 ++++++++++++++ drivers/gpu/drm/msm/Makefile | 11 +++++++---- drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 ++++ drivers/gpu/drm/msm/dsi/pll/dsi_pll.h | 8 ++++++++ 4 files changed, 33 insertions(+), 4 deletions(-) commit 5c8290284402bf7d2c12269402b3177b899c78b7 Author: Hai Li Date: Thu Aug 13 17:45:52 2015 -0400 drm/msm/dsi: Split PHY drivers to separate files This change moves each PHY type specific code into separate files. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/Makefile | 6 +- drivers/gpu/drm/msm/dsi/dsi_phy.c | 756 ----------------------------- drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 448 +++++++++++++++++ drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 89 ++++ drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c | 150 ++++++ drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm.c | 166 +++++++ 6 files changed, 857 insertions(+), 758 deletions(-) commit 29e61690130adb1c27053558d2f21af88ae0334e Author: Hai Li Date: Thu Aug 13 17:45:51 2015 -0400 drm/msm/dsi: Return void from msm_dsi_phy_disable() We are not checking the return value from msm_dsi_phy_disable(). Change the return type to void. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.h | 2 +- drivers/gpu/drm/msm/dsi/dsi_phy.c | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) commit fae11c1106ad8304c09e3b9bf95dd6d03f4a5afa Author: Hai Li Date: Thu Aug 13 17:45:50 2015 -0400 drm/msm/dsi: Specify bitmask to set source PLL The bit position to configure source PLL will change on new types of PHYs. The caller should pass down this information. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_phy.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 29f034d776209042f7aaaf1518a66841c1d42233 Author: jilai wang Date: Wed Aug 5 15:33:29 2015 -0400 drm/msm/mdp: Clear pending interrupt status before enable interrupt Pending interrupt status needs to be cleared before enable the interrupt. Otherwise it's possible to get a pending interrupt instead of an incoming interrupt. Signed-off-by: Jilai Wang Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c | 10 +++++++--- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 3 ++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 10 +++++++--- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 3 ++- drivers/gpu/drm/msm/mdp/mdp_kms.c | 3 ++- drivers/gpu/drm/msm/mdp/mdp_kms.h | 4 +++- 6 files changed, 23 insertions(+), 10 deletions(-) commit 8089082fae1975ad9d5abbd37c0ee8f688be28a0 Author: jilai wang Date: Fri Jul 31 10:13:26 2015 -0400 drm/msm/mdp5: Add rotation (hflip/vflip) support to MDP5 planes (v2) MDP5 SSPPs can flip the input source horizontally or vertically. This change is to add this support to MDP5 planes. v1: Initial change v2: Use existing "rotation" property instead of creating msm specific properties. In order to be compatiable with legacy non-atomic set_property, switch to drm_atomic_helper_plane_set_property helper function. Signed-off-by: Jilai Wang Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 49 ++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 8 deletions(-) commit 095022b9aa0546a0f3d3fb5f42c82b4004103864 Author: Srinivas Kandagatla Date: Mon Jul 27 15:12:39 2015 +0100 drm/msm: add calls to prepare and unprepare panel Prepare the panel before it's enabled and un-prepare after disable, this will make sure that the regulators are switched on and off correctly. Tested it on APQ8064 based IFC6410 with panel. Signed-off-by: Srinivas Kandagatla Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 09992e4d46935798b4a1cf3a734e6a0f3470f107 Author: Archit Taneja Date: Mon Aug 3 14:09:36 2015 +0530 drm/msm/dsi: Modify dsi manager bridge ops to work with external bridges The dsi bridge ops call drm_panel functions to set up the connected drm_panel. Add checks to make sure these aren't called when we're connected to an external bridge. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_manager.c | 43 +++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 15 deletions(-) commit c118e29033aa5b38b593ebd0e02f8b1224c20ed3 Author: Archit Taneja Date: Fri Jul 31 14:06:10 2015 +0530 drm/msm/dsi: Allow dsi to connect to an external bridge There are platforms where the DSI output can be connected to another encoder bridge chip (DSI to HDMI, DSI to LVDS etc). Add support for external bridge support to the dsi driver. We assume that the external bridge chip would be of the type drm_bridge. The dsi driver's internal drm_bridge (msm_dsi->bridge) is linked to the external bridge's drm_bridge struct. In the case we're connected to an external bridge, we don't need to create and manage a connector within our driver, it's the bridge driver's responsibility to create one. v2: - Move the external bridge attaching stuff to dsi manager to make things cleaner. - Force the bridge to connect to a video mode encoder for now (the dsi mode flags may have not been populated by modeset_init) Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.c | 28 ++++++++++++++++---- drivers/gpu/drm/msm/dsi/dsi.h | 12 ++++++++- drivers/gpu/drm/msm/dsi/dsi_host.c | 9 ++++++- drivers/gpu/drm/msm/dsi/dsi_manager.c | 49 ++++++++++++++++++++++++++++++++++- 4 files changed, 90 insertions(+), 8 deletions(-) commit 6f054ec5b9ced3041f29541ae79402198678fc06 Author: Archit Taneja Date: Mon Aug 3 14:08:33 2015 +0530 drm/msm/dsi: Create a helper to check if there is a connected device Create a helper msm_dsi_device_connected() which checks whether we have a device connected to the dsi host or not. This check gets messy when we have support external bridges too. Having an inline function makes it more legible. For now, the check only consists of msm_dsi->panel being non-NULL. Later, this will check if we have an external bridge or not. This helper isn't used in dsi_connector related code as that's specific to only when a drm_panel is connected. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.c | 2 +- drivers/gpu/drm/msm/dsi/dsi.h | 5 +++++ drivers/gpu/drm/msm/dsi/dsi_manager.c | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) commit a9ddac9c5765712fa7eace55feeaf7c4ac75e32b Author: Archit Taneja Date: Mon Aug 3 14:05:45 2015 +0530 drm/msm/dsi: Refer to connected device as 'device' instead of 'panel' We currently support only panels connected to dsi output. We're going to also support external bridge chips now. Change 'panel_node' to 'device_node' in the struct msm_dsi_host and 'panel_flags' to 'device_flags' in msm_dsi. This makes things sound a bit more generic. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.c | 2 +- drivers/gpu/drm/msm/dsi/dsi.h | 2 +- drivers/gpu/drm/msm/dsi/dsi_host.c | 24 ++++++++++++------------ drivers/gpu/drm/msm/dsi/dsi_manager.c | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) commit 60d05cb4eabcfcab00784677c2a55ed1b9bda2ec Author: Archit Taneja Date: Thu Jun 25 14:36:35 2015 +0530 drm/msm/dsi: Make TE gpio optional Platforms containing only DSI video mode devices don't need a TE gpio. Make TE gpio optional. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3d6df06249277aabaf895951855c4ed704b038bb Author: Archit Taneja Date: Tue Jun 9 14:17:22 2015 +0530 drm/msm: mdp4 lvds: get panel node via of graph parsing We currently get the output connected to LVDS by looking for a phandle called 'qcom,lvds-panel' under the mdp DT node. Use the more standard of_graph approach to create an lvds output port, and retrieve the panel node from the port's endpoint data. v3 - Fix return value checks of of_graph_* calls. Tested-by: Srinivas Kandagatla Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 33 ++++++++++++++++++++++++--------- drivers/gpu/drm/msm/msm_drv.h | 1 + 2 files changed, 25 insertions(+), 9 deletions(-) commit f7009d266d8b2f4b54da42399aaa536d74fe3e7c Author: Archit Taneja Date: Thu Jun 25 11:43:40 2015 +0530 drm/msm: dsi host: Use device graph parsing to parse connected panel The dsi host looks for the connected panel node by parsing for a child named 'panel'. This hierarchy isn't very flexible. The connected panel is forced to be a child to the dsi host, and hence, a mipi dsi device. This isn't suitable for dsi devices that don't use mipi dsi as their control bus. Follow the of_graph approach of creating ports and endpoints to represent the connections between the dsi host and the panel connected to it. In our case, the dsi host will only have one output port, linked to the panel's input port. Update DT binding documentation with device graph usage info. v3: - Fix return value checks of of_graph_* calls. - Don't make port a mandatory DT property - Fix defer check when no panel node specified - Rename parse_dt func to align with other dsi_host funcs Reviewed-by: Hai Li Signed-off-by: Archit Taneja Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/dsi.txt | 15 +++++ drivers/gpu/drm/msm/dsi/dsi_host.c | 72 +++++++++++++++++------ 2 files changed, 68 insertions(+), 19 deletions(-) commit 14bb28b0f91f868f081f71eb0c7b590e13527c3c Author: Archit Taneja Date: Thu Jun 4 15:01:57 2015 +0530 drm/msm: dsi host: add missing of_node_put() Decrement device node refcount if of_get_child_by_name is successfully called. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 78b1d470d57dd7a6e0efda63ebad97f0d44e817c Author: Hai Li Date: Mon Jul 27 13:49:45 2015 -0400 drm/msm: Enable clocks during enable/disable_vblank() callbacks AHB clock should be enabled before accessing registers during enable/disable_vblank(). Since these 2 callbacks are called in atomic context while clk_prepare may cause thread sleep, a work is scheduled to control vblanks. v2: fixup spinlock initialization Signed-off-by: Hai Li [add comment about cancel_work_sync() before drm_irq_uninstall()] Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c | 9 ++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 9 ++++ drivers/gpu/drm/msm/msm_drv.c | 78 ++++++++++++++++++++++++++++++++- drivers/gpu/drm/msm/msm_drv.h | 8 ++++ 4 files changed, 102 insertions(+), 2 deletions(-) commit 8a94b0aa372ebf7375c8ea861cb9bbf84b39d2df Author: jilai wang Date: Wed Jul 8 18:25:40 2015 -0400 drm/msm/mdp5: Add support for msm8x74v1 msm8x74v1 has different MDP5 version (v1.0) from msm8x74v2 (v1.2). Add a separate config data to support msm8x74v1. Signed-off-by: Jilai Wang Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 77 +++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 4 deletions(-) commit 8155ad4ce67d2f3418a4a72144c10114d21f0ece Author: jilai wang Date: Tue Jul 7 17:17:28 2015 -0400 drm/msm/mdp5: Add DMA pipe planes for MDP5 This change is to add planes which use DMA pipes for MDP5. Signed-off-by: Jilai Wang [slight comment adjust to s/Construct public planes/Construct video planes/ since DMA planes are public planes too, they just can't scale or CSC] Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit 3498409f0315b93f969f87c31d014a9819f6fa7d Author: jilai wang Date: Wed Jul 8 18:12:40 2015 -0400 drm/msm/mdp: Add capabilities to MDP planes (v2) MDP planes can be implemented using different type of HW pipes, RGB/VIG/DMA pipes for MDP5 and RGB/VG/DMA pipes for MDP4. Each type of pipe has different HW capabilities such as scaling, color space conversion, decimation... Add a variable in plane data structure to specify the difference of each plane which comes from mdp5_cfg data and use it to differenciate the plane operation. V1: Initial change V2: Fix a typo in mdp4_kms.h Signed-off-by: Jilai Wang Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 19 ++++---- drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 7 ++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 26 ++++++++++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h | 11 +++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 4 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 24 +--------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 73 ++++++++++++++++++++++--------- drivers/gpu/drm/msm/mdp/mdp_kms.h | 13 ++++++ 8 files changed, 114 insertions(+), 63 deletions(-) commit bef799fb77dc30d32362b6850e997f1c29fc99eb Author: Stephane Viau Date: Mon Jul 6 16:35:31 2015 -0400 drm/msm/mdp5: add more YUV formats for MDP5 Add packed YUV422 and planar YUV420 formats to MDP supported formats. Signed-off-by: Stephane Viau Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 105 +++++++++++++++++------------- drivers/gpu/drm/msm/mdp/mdp_format.c | 19 ++++++ 2 files changed, 77 insertions(+), 47 deletions(-) commit 9cc137a3ffa3162a0d5af822149a5cec1b42c24e Author: Wentao Xu Date: Mon Jul 6 16:35:30 2015 -0400 drm/msm/mdp5: use 2 memory clients for YUV formats on newer mdp5 Newer MDP5 uses 2 shared memory pool clients for certain YUV formats. For example, if VIG0 is used to fetch data in YUYV format, it will use VIG0_Y for Y component, and VIG0_Cr for UV packed. Signed-off-by: Wentao Xu [rebase] Signed-off-by: Stephane Viau drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 26 ++++++++++++++++++++++---- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.h | 3 ++- 3 files changed, 25 insertions(+), 6 deletions(-) commit ff78a6b3771f48d1d5585e5d08ab4ae6fd606ab0 Author: Wentao Xu Date: Mon Jul 6 16:35:29 2015 -0400 drm/msm/mdp: mark if a MDP format is YUV at definition This makes it easy to determine if a format is YUV. The old method of using chroma sample type incorrectly marks YUV444 as RGB format. Signed-off-by: Wentao Xu [rebase] Signed-off-by: Stephane Viau Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp_format.c | 27 ++++++++++++++------------- drivers/gpu/drm/msm/mdp/mdp_kms.h | 3 ++- 2 files changed, 16 insertions(+), 14 deletions(-) commit 02b3ee466443ba6780562fb2af5fe0ad5bf059f6 Author: Uwe Kleine-König Date: Mon Jul 6 11:09:41 2015 +0200 drm/msm/dp: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Acked-by: Alexandre Courbot Acked-by: Linus Walleij Signed-off-by: Uwe Kleine-König Signed-off-by: Rob Clark drivers/gpu/drm/msm/edp/edp_ctrl.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 328e1a633c9bc26c36ecd320246e4a9b2726e81a Author: Hai Li Date: Fri Jul 3 10:09:46 2015 -0400 drm/msm/dsi: Save/Restore PLL status across PHY reset Reset DSI PHY silently changes its PLL registers to reset status, which will make cached status in clock driver invalid and result in wrong output rate of link clocks. The current restore mechanism in DSI PLL does not cover all the cases. This change is to recover PLL status after PHY reset to match HW status with cached status in clock driver. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.h | 9 +++++++ drivers/gpu/drm/msm/dsi/dsi_manager.c | 21 +++++++++++++++ drivers/gpu/drm/msm/dsi/pll/dsi_pll.c | 42 +++++++++++++++++------------- drivers/gpu/drm/msm/dsi/pll/dsi_pll.h | 1 + drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.c | 31 +++++++++------------- 5 files changed, 68 insertions(+), 36 deletions(-) commit da882cd1ee132ecbb4a4848a6b0797ea2ed4bee7 Author: Markus Elfring Date: Sat Jun 27 22:23:28 2015 +0200 drm/msm/dsi: One function call less in dsi_init() after error detection The dsi_destroy() function was called in two cases by the dsi_init() function during error handling even if the passed variable contained a null pointer. * This implementation detail could be improved by adjustments for jump targets according to the Linux coding style convention. * Drop an unnecessary initialisation for the variable "msm_dsi" then. Signed-off-by: Markus Elfring [add couple missing ERR_PTR()'s] Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit a60bbb2764b73a3f54c7462f3d28f960b7811682 Author: Markus Elfring Date: Sat Jun 27 22:05:31 2015 +0200 drm/msm/dsi: Delete an unnecessary check before the function call "dsi_destroy" The dsi_destroy() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b96b3a06d1211ba86674db99a6aafe39ef4cbed2 Author: Hai Li Date: Fri Jun 26 16:03:26 2015 -0400 drm/msm/mdp5: Allocate CTL0/1 for dual DSI single FLUSH This change takes advantage of a HW feature that synchronize flush operation on CTL1 to CTL0, to keep dual DSI pipes in sync. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.c | 140 ++++++++++++++++++++++++---- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.h | 4 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 6 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 2 +- 4 files changed, 129 insertions(+), 23 deletions(-) commit c71716b17bc772e9c38f85a4b496bbfac0dd32f0 Author: Hai Li Date: Fri Jun 26 16:03:25 2015 -0400 drm/msm/mdp5: Allocate CTL for each display interface In MDP5, CTL contains information of the whole pipeline whose output goes down to a display interface. In various cases, one interface may require 2 CRTCs, but only one CTL. Some interfaces also require to use certain CTLs. Instead of allocating CTL for each active CRTC, this change is to associate a CTL with each interface. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 12 ++++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 25 +++--------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.c | 53 ++++++++++--------------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.h | 9 ++--- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 12 ++++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 36 +++++++++++++---- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 12 +++--- 7 files changed, 80 insertions(+), 79 deletions(-) commit 129877819c0a5f8d419fe67ae08a8a7c811afa5e Author: jilai wang Date: Thu Jun 25 17:37:42 2015 -0400 drm/msm/mdp5: Add plane blending operation support for MDP5 (v2) This change is to add properties alpha/zpos/blend_mode to mdp5 plane for alpha blending operation to generate the blended output. v1: Initial change v2: Change "premultilied" property to enum (Rob's comment) Signed-off-by: Jilai Wang [Don't actually expose alpha/premultiplied props to userspace yet pending a chance for discussion and some userspace to exercise it] Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 110 ++++++++++++++++++++--------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.c | 66 +++++++++++++++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.h | 32 ++------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 16 ++--- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 113 +++++++++++++++++++++++++++--- drivers/gpu/drm/msm/msm_drv.h | 10 +++ 6 files changed, 262 insertions(+), 85 deletions(-) commit 4ff696eafaa50d6d649d256d20528b475104a500 Author: Rob Clark Date: Tue Jul 28 11:05:03 2015 -0400 drm/msm: don't install plane properties on crtc This was a hold-over from the pre-atomic days and legacy userspace that only understood CRTCs. Fortunately we don't have any properties, so this doesn't change anything. But before we start growing some plane properties, we should fix this. Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 2 -- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 2 -- drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 2 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 2 -- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 2 -- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 2 +- 6 files changed, 2 insertions(+), 10 deletions(-) commit 01199361c665245d557b8eefef56d648ddb3867a Author: Archit Taneja Date: Thu Jun 25 11:29:24 2015 +0530 drm/msm/dsi: Report PHY errors only when they really occur DSI PHY errors are falsely reported whenever a dsi error occurs. This is because DSI_DLN0_PHY_ERR isn't only used as a status register, but also used to mask PHY errors. Currently, we end up reading the mask bits too and therefore always report errors. Ignore the register mask bits and check for only the status/clear bits. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi_host.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 9b7a9fc29a48026d797cbf237121850c1c241df4 Author: Hai Li Date: Wed Jun 24 19:13:40 2015 -0400 drm/msm: Set different display size limitation on each target The maximum output width of one pipeline depends on the LayerMixer's capability. It may be different on each target. Also, MDP5 doesn't have vertical limitation in one frame, as long as the pixel clock can be supported. This change obtains the maximum LM resolution from configuration table and treat it as the whole pipe's limitation for MDP5. The size limit on MDP4 is not changed. Signed-off-by: Hai Li drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 5 +++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 8 ++++++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h | 2 ++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 5 +++++ drivers/gpu/drm/msm/msm_drv.c | 4 ---- 5 files changed, 20 insertions(+), 4 deletions(-) commit 5cf3a4553fc8395c4ad38077f8cee6c91f832393 Author: Rob Clark Date: Mon Jul 27 20:52:50 2015 -0400 drm/msm/hdmi: standardize on lead chip for compatible names For all of these devices, msm89xy was the lead chip, so standardize the compatible names to align with convention used by rest of the qcom/msm drivers. Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/hdmi.txt | 2 +- drivers/gpu/drm/msm/hdmi/hdmi.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 3a84f8469e2687b9fdcf83d615b8001a2443566a Author: Stephane Viau Date: Fri Jun 19 16:04:47 2015 -0400 drm/msm: Add support for msm8x94 This change adds the MDP and HDMI support for msm8x94. Note that HDMI PHY registers are not being accessed anymore from the driver. Signed-off-by: Stephane Viau [rename compatible s/8x94/8994/ since preference is to not trust the marketing folks who invent chip #'s but instead name things after the lead chip.. we should rename some 80XY to 89XY to standardize on the lead chip but leave that for another patch. Also, update dt bindings doc] Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/hdmi.txt | 1 + drivers/gpu/drm/msm/hdmi/hdmi.c | 30 ++++++--- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 8 ++- drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 42 ++++++++----- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 73 +++++++++++++++++++++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 8 ++- 6 files changed, 130 insertions(+), 32 deletions(-) commit da32855219f86f27cad1b12be2264ffb0b97b9fa Author: Stephane Viau Date: Fri Jun 19 16:04:46 2015 -0400 drm/msm/hdmi: remove ->reset() from HDMI PHY ->reset() currently only accesses HDMI core registers, and yet it is located in hdmi_phy*. Since no PHY registers are being accessed during ->reset(), it would be better to bring that function in hdmi core module where HDMI core registers are usually being accessed. This will also help for msm8x94 for which no PHY registers accesses are done (->phy_init == NULL) but the HDMI PHY reset from HDMI core still needs to be done. Note: SW_RESET_PLL bit is not written in hdmi_phy_8x60_reset(); this write should not affect anything if the corresponding field is not writable. Signed-off-by: Stephane Viau [fixed warning about unused 'phy' in hpd_enable() while merging] Signed-off-by: Rob Clark drivers/gpu/drm/msm/hdmi/hdmi.h | 1 - drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 52 ++++++++++++++++++++++++++-- drivers/gpu/drm/msm/hdmi/hdmi_phy_8960.c | 52 ---------------------------- drivers/gpu/drm/msm/hdmi/hdmi_phy_8x60.c | 32 ----------------- drivers/gpu/drm/msm/hdmi/hdmi_phy_8x74.c | 57 ------------------------------- 5 files changed, 50 insertions(+), 144 deletions(-) commit dcefc117cc192f215d04c4e7cbae6b76a9bafcf4 Author: Hai Li Date: Thu Jun 18 10:14:21 2015 -0400 drm/msm/dsi: Add support for msm8x94 DSI controller on msm8x94 is version 1.3, which requires different power supplies and works with 20nm DSI PHY. This change is to add the basic support for this version. Signed-off-by: Hai Li Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/dsi.txt | 7 ++ drivers/gpu/drm/msm/dsi/dsi.h | 1 + drivers/gpu/drm/msm/dsi/dsi_host.c | 18 +++ drivers/gpu/drm/msm/dsi/dsi_phy.c | 131 ++++++++++++++++++++++ 4 files changed, 157 insertions(+) commit ab8909b032ffccc15384879dd5798b8647d6ab8a Author: Hai Li Date: Thu Jun 11 10:56:46 2015 -0400 drm/msm/dsi: Use pinctrl in DSI driver Some targets use pinctrl framework to configure some pins. This change allows DSI driver to set default and sleep pinctrl status. Signed-off-by: Hai Li Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/dsi.txt | 7 +++++++ drivers/gpu/drm/msm/dsi/dsi_host.c | 12 ++++++++++++ 2 files changed, 19 insertions(+) commit 678565c3cb2100a8f03c23592f13f6b78e69a590 Author: Hai Li Date: Wed Jun 10 13:18:18 2015 -0400 drm/msm/dsi: Rename *dual panel* to *dual DSI* The current term of *dual panel* in DSI driver code causes confusion. It is supposed to indicate the panel using two DSI links. Rename it to *dual DSI*. Signed-off-by: Hai Li Signed-off-by: Rob Clark Documentation/devicetree/bindings/drm/msm/dsi.txt | 12 ++-- drivers/gpu/drm/msm/dsi/dsi_manager.c | 84 +++++++++++------------ 2 files changed, 48 insertions(+), 48 deletions(-) commit 13351cd17791694f2dcc96dc920e58b090b18c31 Author: Hai Li Date: Wed Jun 10 13:18:17 2015 -0400 drm/msm/dsi: Update source PLL selection in DSI PHY The source PLL to be used by each DSI PHY should be decided by DSI manager based on dual DSI information, while the register programming to select PLL is different from one type of PHY to another. This change adds the H/W difference to PHY configuration and updates the interface between DSI manager and PHY. With this change, PLL selection can be supported on different targets. Signed-off-by: Hai Li Signed-off-by: Rob Clark drivers/gpu/drm/msm/dsi/dsi.h | 14 +------------- drivers/gpu/drm/msm/dsi/dsi_manager.c | 15 ++++++++++++++- drivers/gpu/drm/msm/dsi/dsi_phy.c | 34 ++++++++++++++++++++++++++-------- 3 files changed, 41 insertions(+), 22 deletions(-) commit c6a57a50ad562a2e6fc6ac3218b710caea73a58b Author: jilai wang Date: Thu Apr 2 17:49:01 2015 -0400 drm/msm/hdmi: add hdmi hdcp support (V3) Add HDMI HDCP support including HDCP PartI/II/III authentication. V1: Initial Change V2: Address Bjorn&Rob's comments Refactor the authentication process to use single work instead of multiple work for different authentication stages. V3: Update to align with qcom SCM api. Signed-off-by: Jilai Wang Signed-off-by: Rob Clark drivers/gpu/drm/msm/Kconfig | 1 + drivers/gpu/drm/msm/Makefile | 1 + drivers/gpu/drm/msm/hdmi/hdmi.c | 45 +- drivers/gpu/drm/msm/hdmi/hdmi.h | 31 + drivers/gpu/drm/msm/hdmi/hdmi_audio.c | 1 - drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 8 +- drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 7 +- drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c | 1437 +++++++++++++++++++++++++++++ 8 files changed, 1523 insertions(+), 8 deletions(-) commit 2d3584eb871da2a6fa72e3d50781f33b0312589a Author: Rob Clark Date: Mon Jul 27 19:37:12 2015 -0400 drm/msm: update generated headers Signed-off-by: Rob Clark drivers/gpu/drm/msm/adreno/a2xx.xml.h | 18 +-- drivers/gpu/drm/msm/adreno/a3xx.xml.h | 33 ++-- drivers/gpu/drm/msm/adreno/a4xx.xml.h | 206 ++++++++++++++++++++++-- drivers/gpu/drm/msm/adreno/adreno_common.xml.h | 18 +-- drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h | 18 +-- drivers/gpu/drm/msm/dsi/dsi.xml.h | 211 +++++++++++++++++++++++-- drivers/gpu/drm/msm/dsi/mmss_cc.xml.h | 26 +-- drivers/gpu/drm/msm/dsi/sfpb.xml.h | 26 +-- drivers/gpu/drm/msm/edp/edp.xml.h | 22 +-- drivers/gpu/drm/msm/hdmi/hdmi.xml.h | 28 ++-- drivers/gpu/drm/msm/hdmi/qfprom.xml.h | 26 +-- drivers/gpu/drm/msm/mdp/mdp4/mdp4.xml.h | 22 +-- drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h | 180 ++++++++++++++------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 18 +-- drivers/gpu/drm/msm/mdp/mdp_common.xml.h | 28 ++-- drivers/gpu/drm/msm/mdp/mdp_format.c | 18 +-- drivers/gpu/drm/msm/mdp/mdp_kms.h | 2 +- 17 files changed, 680 insertions(+), 220 deletions(-) commit c0015bf3a34961342a27b021672049e535ab36a1 Author: Alexander Aring Date: Sat Aug 15 11:00:33 2015 +0200 ieee802154: 6lowpan: fix non-lowpan wpan interfaces We receive all 802.15.4 frames on the packet handler "lowpan_rcv" this patch checks if the wpan device belongs to a lowpan interface. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/6lowpan/rx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 0751272880f3a0c74c786ecfaba2b3d98748482f Author: Alexander Aring Date: Sat Aug 15 11:00:32 2015 +0200 ieee802154: 6lowpan: fix packet layer registration This patch fixes 802.15.4 packet layer registration when mutliple lowpan interfaces will be added. We need to register the packet layer at the first lowpan interface and deregister it at the last interface. This done by open_count variable which is protected by rtnl. Additional do a quiet fix by adding dev_put(real_dev) when netdev registration fails, which fix the refcount for the wpan dev. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/6lowpan/core.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 4481c0767e52eea674794de4b9123c9bc3d24f24 Author: Peter Poklop Date: Sat Aug 15 20:47:09 2015 +0200 Bluetooth: btusb: mark 0c10:0000 devices with BTUSB_SWAVE This patch enables quirk handling for Silicon Wave based devices and fixes kernel bug with id 42985. T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 6 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0c10 ProdID=0000 Rev=15.00 S: Manufacturer=SiW S: Product=SiW S: SerialNumber=340A05F61100 C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 50mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms Signed-off-by: Peter Poklop Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 3 +++ 1 file changed, 3 insertions(+) commit e294a5371b2e0bd22d4a917d4c354a52a7057b6e Author: Theodore Ts'o Date: Sat Aug 15 14:59:44 2015 -0400 ext4: ratelimit the file system mounted message The xfstests ext4/305 will mount and unmount the same file system over 4,000 times, and each one of these will cause a system log message. Ratelimit this message since if we are getting more than a few dozen of these messages, they probably aren't going to be helpful. Signed-off-by: Theodore Ts'o fs/ext4/super.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 50e0ee01382b8e08289d3db209738c5856fd25cf Author: Zidan Wang Date: Fri Aug 14 19:11:09 2015 +0800 ASoC: fsl-asoc-card: add wm8960 support add wm8960 support for fsl-asoc-card Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl-asoc-card.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 0048b4837affd153897ed1222283492070027aa9 Author: Ming Lei Date: Sun Aug 9 03:41:51 2015 -0400 blk-mq: fix race between timeout and freeing request Inside timeout handler, blk_mq_tag_to_rq() is called to retrieve the request from one tag. This way is obviously wrong because the request can be freed any time and some fiedds of the request can't be trusted, then kernel oops might be triggered[1]. Currently wrt. blk_mq_tag_to_rq(), the only special case is that the flush request can share same tag with the request cloned from, and the two requests can't be active at the same time, so this patch fixes the above issue by updating tags->rqs[tag] with the active request(either flush rq or the request cloned from) of the tag. Also blk_mq_tag_to_rq() gets much simplified with this patch. Given blk_mq_tag_to_rq() is mainly for drivers and the caller must make sure the request can't be freed, so in bt_for_each() this helper is replaced with tags->rqs[tag]. [1] kernel oops log [ 439.696220] BUG: unable to handle kernel NULL pointer dereference at 0000000000000158^M [ 439.697162] IP: [] blk_mq_tag_to_rq+0x21/0x6e^M [ 439.700653] PGD 7ef765067 PUD 7ef764067 PMD 0 ^M [ 439.700653] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC ^M [ 439.700653] Dumping ftrace buffer:^M [ 439.700653] (ftrace buffer empty)^M [ 439.700653] Modules linked in: nbd ipv6 kvm_intel kvm serio_raw^M [ 439.700653] CPU: 6 PID: 2779 Comm: stress-ng-sigfd Not tainted 4.2.0-rc5-next-20150805+ #265^M [ 439.730500] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011^M [ 439.730500] task: ffff880605308000 ti: ffff88060530c000 task.ti: ffff88060530c000^M [ 439.730500] RIP: 0010:[] [] blk_mq_tag_to_rq+0x21/0x6e^M [ 439.730500] RSP: 0018:ffff880819203da0 EFLAGS: 00010283^M [ 439.730500] RAX: ffff880811b0e000 RBX: ffff8800bb465f00 RCX: 0000000000000002^M [ 439.730500] RDX: 0000000000000000 RSI: 0000000000000202 RDI: 0000000000000000^M [ 439.730500] RBP: ffff880819203db0 R08: 0000000000000002 R09: 0000000000000000^M [ 439.730500] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000202^M [ 439.730500] R13: ffff880814104800 R14: 0000000000000002 R15: ffff880811a2ea00^M [ 439.730500] FS: 00007f165b3f5740(0000) GS:ffff880819200000(0000) knlGS:0000000000000000^M [ 439.730500] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b^M [ 439.730500] CR2: 0000000000000158 CR3: 00000007ef766000 CR4: 00000000000006e0^M [ 439.730500] Stack:^M [ 439.730500] 0000000000000008 ffff8808114eed90 ffff880819203e00 ffffffff812dc104^M [ 439.755663] ffff880819203e40 ffffffff812d9f5e 0000020000000000 ffff8808114eed80^M [ 439.755663] Call Trace:^M [ 439.755663] ^M [ 439.755663] [] bt_for_each+0x6e/0xc8^M [ 439.755663] [] ? blk_mq_rq_timed_out+0x6a/0x6a^M [ 439.755663] [] ? blk_mq_rq_timed_out+0x6a/0x6a^M [ 439.755663] [] blk_mq_tag_busy_iter+0x55/0x5e^M [ 439.755663] [] ? blk_mq_bio_to_request+0x38/0x38^M [ 439.755663] [] blk_mq_rq_timer+0x5d/0xd4^M [ 439.755663] [] call_timer_fn+0xf7/0x284^M [ 439.755663] [] ? call_timer_fn+0x5/0x284^M [ 439.755663] [] ? blk_mq_bio_to_request+0x38/0x38^M [ 439.755663] [] run_timer_softirq+0x1ce/0x1f8^M [ 439.755663] [] __do_softirq+0x181/0x3a4^M [ 439.755663] [] irq_exit+0x40/0x94^M [ 439.755663] [] smp_apic_timer_interrupt+0x33/0x3e^M [ 439.755663] [] apic_timer_interrupt+0x84/0x90^M [ 439.755663] ^M [ 439.755663] [] ? _raw_spin_unlock_irq+0x32/0x4a^M [ 439.755663] [] finish_task_switch+0xe0/0x163^M [ 439.755663] [] ? finish_task_switch+0xa2/0x163^M [ 439.755663] [] __schedule+0x469/0x6cd^M [ 439.755663] [] schedule+0x82/0x9a^M [ 439.789267] [] signalfd_read+0x186/0x49a^M [ 439.790911] [] ? wake_up_q+0x47/0x47^M [ 439.790911] [] __vfs_read+0x28/0x9f^M [ 439.790911] [] ? __fget_light+0x4d/0x74^M [ 439.790911] [] vfs_read+0x7a/0xc6^M [ 439.790911] [] SyS_read+0x49/0x7f^M [ 439.790911] [] entry_SYSCALL_64_fastpath+0x12/0x6f^M [ 439.790911] Code: 48 89 e5 e8 a9 b8 e7 ff 5d c3 0f 1f 44 00 00 55 89 f2 48 89 e5 41 54 41 89 f4 53 48 8b 47 60 48 8b 1c d0 48 8b 7b 30 48 8b 53 38 <48> 8b 87 58 01 00 00 48 85 c0 75 09 48 8b 97 88 0c 00 00 eb 10 ^M [ 439.790911] RIP [] blk_mq_tag_to_rq+0x21/0x6e^M [ 439.790911] RSP ^M [ 439.790911] CR2: 0000000000000158^M [ 439.790911] ---[ end trace d40af58949325661 ]---^M Cc: Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/blk-flush.c | 15 ++++++++++++++- block/blk-mq-tag.c | 4 ++-- block/blk-mq-tag.h | 12 ++++++++++++ block/blk-mq.c | 16 +--------------- block/blk.h | 6 ++++++ 5 files changed, 35 insertions(+), 18 deletions(-) commit 596f5aad2a704b72934e5abec1b1b4114c16f45b Author: Ming Lei Date: Sun Aug 9 03:41:50 2015 -0400 blk-mq: fix buffer overflow when reading sysfs file of 'pending' There may be lots of pending requests so that the buffer of PAGE_SIZE can't hold them at all. One typical example is scsi-mq, the queue depth(.can_queue) of scsi_host and blk-mq is quite big but scsi_device's queue_depth is a bit small(.cmd_per_lun), then it is quite easy to have lots of pending requests in hw queue. This patch fixes the following warning and the related memory destruction. [ 359.025101] fill_read_buffer: blk_mq_hw_sysfs_show+0x0/0x7d returned bad count^M [ 359.055595] irq event stamp: 15537^M [ 359.055606] general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC ^M [ 359.055614] Dumping ftrace buffer:^M [ 359.055660] (ftrace buffer empty)^M [ 359.055672] Modules linked in: nbd ipv6 kvm_intel kvm serio_raw^M [ 359.055678] CPU: 4 PID: 21631 Comm: stress-ng-sysfs Not tainted 4.2.0-rc5-next-20150805 #434^M [ 359.055679] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011^M [ 359.055682] task: ffff8802161cc000 ti: ffff88021b4a8000 task.ti: ffff88021b4a8000^M [ 359.055693] RIP: 0010:[] [] __kmalloc+0xe8/0x152^M Cc: Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/blk-mq-sysfs.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit da0b5e40ab10f44019a1ecec09fadfcd5bdb76b6 Author: Dan Carpenter Date: Sat Aug 15 11:38:13 2015 -0400 ext4: silence a format string false positive Static checkers complain that the format string should be "%s". It does not make a difference for the current code. Signed-off-by: Dan Carpenter Signed-off-by: Theodore Ts'o fs/ext4/mmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9810446836ab5a4b34a749bb77f3eb5836f982cc Author: Dan Carpenter Date: Sat Aug 15 11:30:31 2015 -0400 ext4: simplify some code in read_mmp_block() My static check complains because we have: if (!*bh) return -ENOMEM; if (*bh) { The second check is unnecessary. I've simplified this code by moving the "if (!*bh)" checks around. Also Andreas Dilger says we should probably print a warning if sb_getblk() fails. [ Restructured the code so that we print a warning message as well if the mmp block doesn't check out, and to print the error code to disambiguate between the error cases. - TYT ] Reviewed-by: Andreas Dilger Signed-off-by: Dan Carpenter Signed-off-by: Theodore Ts'o fs/ext4/mmp.c | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) commit c642dc9e1aaed953597e7092d7df329e6234096e Author: Eric Sandeen Date: Sat Aug 15 10:45:06 2015 -0400 ext4: don't manipulate recovery flag when freezing no-journal fs At some point along this sequence of changes: f6e63f9 ext4: fold ext4_nojournal_sops into ext4_sops bb04457 ext4: support freezing ext2 (nojournal) file systems 9ca9238 ext4: Use separate super_operations structure for no_journal filesystems ext4 started setting needs_recovery on filesystems without journals when they are unfrozen. This makes no sense, and in fact confuses blkid to the point where it doesn't recognize the filesystem at all. (freeze ext2; unfreeze ext2; run blkid; see no output; run dumpe2fs, see needs_recovery set on fs w/ no journal). To fix this, don't manipulate the INCOMPAT_RECOVER feature on filesystems without journals. Reported-by: Stu Mark Reviewed-by: Jan Kara Signed-off-by: Eric Sandeen Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org fs/ext4/super.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 8129ed29644bf56ed17ec1bbbeed5c568b43d6a0 Author: Oleg Nesterov Date: Tue Aug 11 17:05:04 2015 +0200 change sb_writers to use percpu_rw_semaphore We can remove everything from struct sb_writers except frozen and add the array of percpu_rw_semaphore's instead. This patch doesn't remove sb_writers->wait_unfrozen yet, we keep it for get_super_thawed(). We will probably remove it later. This change tries to address the following problems: - Firstly, __sb_start_write() looks simply buggy. It does __sb_end_write() if it sees ->frozen, but if it migrates to another CPU before percpu_counter_dec(), sb_wait_write() can wrongly succeed if there is another task which holds the same "semaphore": sb_wait_write() can miss the result of the previous percpu_counter_inc() but see the result of this percpu_counter_dec(). - As Dave Hansen reports, it is suboptimal. The trivial microbenchmark that writes to a tmpfs file in a loop runs 12% faster if we change this code to rely on RCU and kill the memory barriers. - This code doesn't look simple. It would be better to rely on the generic locking code. According to Dave, this change adds the same performance improvement. Note: with this change both freeze_super() and thaw_super() will do synchronize_sched_expedited() 3 times. This is just ugly. But: - This will be "fixed" by the rcu_sync changes we are going to merge. After that freeze_super()->percpu_down_write() will use synchronize_sched(), and thaw_super() won't use synchronize() at all. This doesn't need any changes in fs/super.c. - Once we merge rcu_sync changes, we can also change super.c so that all wb_write->rw_sem's will share the single ->rss in struct sb_writes, then freeze_super() will need only one synchronize_sched(). Signed-off-by: Oleg Nesterov Reviewed-by: Jan Kara fs/super.c | 111 +++++++++++++++-------------------------------------- include/linux/fs.h | 19 +++------ 2 files changed, 36 insertions(+), 94 deletions(-) commit 853b39a7c82826b8413048feec7bf08e98ce7a84 Author: Oleg Nesterov Date: Wed Jul 22 20:21:13 2015 +0200 shift percpu_counter_destroy() into destroy_super_work() Of course, this patch is ugly as hell. It will be (partially) reverted later. We add it to ensure that other WIP changes in percpu_rw_semaphore won't break fs/super.c. We do not even need this change right now, percpu_free_rwsem() is fine in atomic context. But we are going to change this, it will be might_sleep() after we merge the rcu_sync() patches. And even after that we do not really need destroy_super_work(), we will kill it in any case. Instead, destroy_super_rcu() should just check that rss->cb_state == CB_IDLE and do call_rcu() again in the (very unlikely) case this is not true. So this is just the temporary kludge which helps us to avoid the conflicts with the changes which will be (hopefully) routed via rcu tree. Signed-off-by: Oleg Nesterov Reviewed-by: Jan Kara fs/super.c | 23 +++++++++++++++++++---- include/linux/fs.h | 3 ++- 2 files changed, 21 insertions(+), 5 deletions(-) commit bf3eac84c42da7017610abc8cfba64921ea92c76 Author: Oleg Nesterov Date: Tue Aug 11 17:26:29 2015 +0200 percpu-rwsem: kill CONFIG_PERCPU_RWSEM Remove CONFIG_PERCPU_RWSEM, the next patch adds the unconditional user of percpu_rw_semaphore. Signed-off-by: Oleg Nesterov arch/Kconfig | 1 - init/Kconfig | 1 - kernel/locking/Makefile | 3 +-- lib/Kconfig | 3 --- 4 files changed, 1 insertion(+), 7 deletions(-) commit 55cc156505f2e43fa45dbd4bfe8f9c9d848ca44c Author: Oleg Nesterov Date: Tue Jul 21 20:26:44 2015 +0200 percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire() Add percpu_rwsem_release() and percpu_rwsem_acquire() for the users which need to return to userspace with percpu-rwsem lock held and/or pass the ownership to another thread. TODO: change percpu_rwsem_release() to use rwsem_clear_owner(). We can either fold kernel/locking/rwsem.h into include/linux/rwsem.h, or add the non-inline percpu_rwsem_clear_owner(). Signed-off-by: Oleg Nesterov include/linux/percpu-rwsem.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 9287f6925ad9d8fb8c6283066b4f77fd87f123a9 Author: Oleg Nesterov Date: Tue Jul 21 17:45:57 2015 +0200 percpu-rwsem: introduce percpu_down_read_trylock() Add percpu_down_read_trylock(), it will have the user soon. Signed-off-by: Oleg Nesterov include/linux/percpu-rwsem.h | 1 + kernel/locking/percpu-rwsem.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) commit 0e28e01f1e73015d8e1b8fa1cda071d0bd9a2600 Author: Oleg Nesterov Date: Tue Aug 11 16:28:29 2015 +0200 document rwsem_release() in sb_wait_write() Not only we need to avoid the warning from lockdep_sys_exit(), the caller of freeze_super() can never release this lock. Another thread can do this, so there is another reason for rwsem_release(). Plus the comment should explain why we have to fool lockdep. Signed-off-by: Oleg Nesterov Reviewed-by: Jan Kara fs/super.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit f4b554af9931585174d4913b482eacab75858964 Author: Oleg Nesterov Date: Mon Jul 20 00:50:55 2015 +0200 fix the broken lockdep logic in __sb_start_write() 1. wait_event(frozen < level) without rwsem_acquire_read() is just wrong from lockdep perspective. If we are going to deadlock because the caller is buggy, lockdep can't detect this problem. 2. __sb_start_write() can race with thaw_super() + freeze_super(), and after "goto retry" the 2nd acquire_freeze_lock() is wrong. 3. The "tell lockdep we are doing trylock" hack doesn't look nice. I think this is correct, but this logic should be more explicit. Yes, the recursive read_lock() is fine if we hold the lock on a higher level. But we do not need to fool lockdep. If we can not deadlock in this case then try-lock must not fail and we can use use wait == F throughout this code. Note: as Dave Chinner explains, the "trylock" hack and the fat comment can be probably removed. But this needs a separate change and it will be trivial: just kill __sb_start_write() and rename do_sb_start_write() back to __sb_start_write(). Signed-off-by: Oleg Nesterov Reviewed-by: Jan Kara fs/super.c | 73 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 33 deletions(-) commit bee9182d955227f01ff3b80c4cb6acca9bb40b11 Author: Oleg Nesterov Date: Sun Jul 19 23:48:20 2015 +0200 introduce __sb_writers_{acquired,release}() helpers Preparation to hide the sb->s_writers internals from xfs and btrfs. Add 2 trivial define's they can use rather than play with ->s_writers directly. No changes in btrfs/transaction.o and xfs/xfs_aops.o. Signed-off-by: Oleg Nesterov Reviewed-by: Jan Kara fs/btrfs/transaction.c | 8 ++------ fs/xfs/xfs_aops.c | 6 ++---- include/linux/fs.h | 5 +++++ 3 files changed, 9 insertions(+), 10 deletions(-) commit 93dee8eea02aefebe2d21128b5f742afe6671f23 Author: Greg Kroah-Hartman Date: Fri Aug 14 20:28:32 2015 -0700 staging: wilc1000: remove WILC_TimerCreate() It was just a wrapper around setup_timer() and could never fail, so just call the real function, and fix up the function arguments of the callbacks to be proper timer callback functions. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 42 +++++++---------------- drivers/staging/wilc1000/wilc_timer.c | 9 ----- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 10 +++--- 3 files changed, 17 insertions(+), 44 deletions(-) commit 4183e9794c751c5139e4599a0c512c7804575a82 Author: Greg Kroah-Hartman Date: Fri Aug 14 20:11:16 2015 -0700 staging: wilc1000: remove WILC_TimerDestroy() It was just a wrapper around del_timer_sync() so call that instead. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 16 ++++++++-------- drivers/staging/wilc1000/wilc_timer.c | 12 ------------ drivers/staging/wilc1000/wilc_timer.h | 17 ----------------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 4 files changed, 10 insertions(+), 39 deletions(-) commit 8972d0fe41e1869b0c7f4c164ea7bffc073dd6b8 Author: Greg Kroah-Hartman Date: Fri Aug 14 20:04:13 2015 -0700 staging: wilc1000: remove WILC_TimerStop() It was just a wrapper around del_timer() so call that instead. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 20 ++++++++++---------- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_timer.c | 9 --------- drivers/staging/wilc1000/wilc_timer.h | 22 ---------------------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 5 files changed, 12 insertions(+), 43 deletions(-) commit 334e1a5777290e118abcbb5aa5488c55961609b6 Author: Greg Kroah-Hartman Date: Fri Aug 14 20:00:01 2015 -0700 staging: wilc1000: remove tstrWILC_TimerAttrs typedef It was not used for anything, so remove it, and the variables in wilc_timer.c that were being passed of its type. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 56 +++++++++++------------ drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_timer.c | 10 ++-- drivers/staging/wilc1000/wilc_timer.h | 28 ++---------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 16 +++---- 5 files changed, 45 insertions(+), 67 deletions(-) commit da711eb68e6f91b271a465cbcef3e96759840148 Author: Greg Kroah-Hartman Date: Fri Aug 14 19:46:06 2015 -0700 staging: wilc1000: remove WILC_TimerHandle typedef Use the proper structure (struct timer_list) instead, which makes things much more readable. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/host_interface.h | 6 +++--- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_platform.h | 4 ---- drivers/staging/wilc1000/wilc_timer.c | 8 ++++---- drivers/staging/wilc1000/wilc_timer.h | 8 ++++---- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 7 files changed, 16 insertions(+), 20 deletions(-) commit 80e29c7a8045005e1a146d86aa4e4a8cce13688c Author: Greg Kroah-Hartman Date: Fri Aug 14 19:42:23 2015 -0700 staging: wilc1000: remove WILC_Sleep() It was just a wrapper around usleep_range() so call that directly instead and remove the now-empty file. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/wilc_oswrapper.h | 3 --- drivers/staging/wilc1000/wilc_sleep.c | 18 ------------------ drivers/staging/wilc1000/wilc_sleep.h | 20 -------------------- drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 6 files changed, 6 insertions(+), 47 deletions(-) commit bb7b1a76aad831d2c92998de928fdd8d987e00f8 Author: Greg Kroah-Hartman Date: Fri Aug 14 19:34:43 2015 -0700 staging: wilc1000: remove commented out WILC_Sleep calls It's not being called, so delete these lines. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 1 - drivers/staging/wilc1000/host_interface.c | 2 -- 2 files changed, 3 deletions(-) commit 3e5f206c00f73f535c914eedc8b91f424c5a14ab Merge: 0e38c35 fda4d57 Author: James Morris Date: Sat Aug 15 13:29:57 2015 +1000 Merge branch 'next' of git://git.infradead.org/users/pcmoore/selinux into next commit 601e4576594543200bde9201e4d23242e73a778b Author: Ricard Wanderlof Date: Thu Aug 13 15:10:19 2015 +0200 ASoC: ssm2518: Add explicit device tree support Add OF match table to SSM2518 to allow direct matching without going through I2C subsystem. Signed-off-by: Ricard Wanderlof Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm2518.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit e235727173626edf87c63b415d0363b411da299e Author: Malcolm Priestley Date: Fri Aug 14 22:58:51 2015 +0100 staging: vt6655: Replace typedef struct tagSTxDesc Replace with struct vnt_tx_desc with all members the same. volatile is removed from pointers as this generates warning message. Only the first four members of vnt_tx_desc need to be volatile. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/card.c | 2 +- drivers/staging/vt6655/desc.h | 12 +++++----- drivers/staging/vt6655/device.h | 8 +++---- drivers/staging/vt6655/device_main.c | 43 +++++++++++++++++++----------------- drivers/staging/vt6655/rxtx.c | 10 ++++----- drivers/staging/vt6655/rxtx.h | 2 +- 6 files changed, 39 insertions(+), 38 deletions(-) commit 543828599afc9cdd9012e363c7393e5ed102aa2a Author: Malcolm Priestley Date: Fri Aug 14 22:58:50 2015 +0100 staging: vt6655: replace typedef struct tagDEVICE_TD_INFO and structure Create struct vnt_td_info with members mic_hdr skb buf buf_dma dwReqCount -> req_count byFlags -> flags In struct tagSTxDesc volatile is removed because it will generate a warning (in any case this member is not) and renaming td_info. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 12 +++++------ drivers/staging/vt6655/device.h | 4 ++-- drivers/staging/vt6655/device_main.c | 42 ++++++++++++++++++------------------ drivers/staging/vt6655/rxtx.c | 8 +++---- 4 files changed, 33 insertions(+), 33 deletions(-) commit 3a0989bb6cacb1f40273d4c397ea91cabe73bad8 Author: Malcolm Priestley Date: Fri Aug 14 22:58:49 2015 +0100 staging: vt6655: struct tagDEVICE_TD_INFO remove dwHeaderLength dwHeaderLength is assigned a value but that is never used. Remove variable. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 1 - drivers/staging/vt6655/rxtx.c | 1 - 2 files changed, 2 deletions(-) commit 531a9c524a54b7d232b6bf6631c460450dd41dbf Author: Malcolm Priestley Date: Fri Aug 14 22:58:48 2015 +0100 staging: vt6655: struct tagDEVICE_TD_INFO resize dwReqCount. dwReqCount is no bigger than u16 Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 2 +- drivers/staging/vt6655/device_main.c | 2 +- drivers/staging/vt6655/rxtx.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 9cc8eac99c98000a414f916c1c58dab22c29474d Author: Malcolm Priestley Date: Fri Aug 14 22:58:47 2015 +0100 staging: vt6655: replaced typedef struct tagTDES1 Create struct vnt_tdes1 that replaces members wReqCount -> req_count byTCR -> tcr byReserved -> reserved Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 13 ++++++------- drivers/staging/vt6655/device_main.c | 9 ++++----- 2 files changed, 10 insertions(+), 12 deletions(-) commit 5235ff6a1df6fb0883f1a9020ab36e0db1c68064 Author: Malcolm Priestley Date: Fri Aug 14 22:58:46 2015 +0100 staging: vt6655: desc.h replace typedef struct tagTDES0 create struct vnt_tdes0 replacing used members byTSR0 -> tsr0 byTSR1 -> tsr1 f1Owner -> owner Narrowing endian differences to inside structure. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/card.c | 4 ++-- drivers/staging/vt6655/desc.h | 36 +++++++++++++----------------------- drivers/staging/vt6655/device_main.c | 8 ++++---- 3 files changed, 19 insertions(+), 29 deletions(-) commit 36a24b4eb60eb8644394e319b2e5afc32be8c3a1 Author: Greg Kroah-Hartman Date: Fri Aug 14 19:26:20 2015 -0700 staging: wilc1000: delete wilc_type.h The .h file isn't needed at all, so just remove it. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_type.h | 34 --------------------------------- drivers/staging/wilc1000/wilc_wlan.h | 2 +- drivers/staging/wilc1000/wilc_wlan_if.h | 2 +- 3 files changed, 2 insertions(+), 36 deletions(-) commit b6d9e0cb142bdae60872a9be392ed8b6e5dde243 Author: Greg Kroah-Hartman Date: Fri Aug 14 19:19:19 2015 -0700 staging: wilc1000: remove WILC_MemoryFree It's no longer needed, so remove the empty wrapper function. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_memory.c | 13 ------------- drivers/staging/wilc1000/wilc_memory.h | 29 ----------------------------- 2 files changed, 42 deletions(-) commit 969effe9dcdccab865c7f57790f647ebc59df457 Author: Greg Kroah-Hartman Date: Fri Aug 14 19:15:34 2015 -0700 staging: wilc1000: remove WILC_FREE_IF_TRUE macro Just use kfree, as that's all it resolves itself to. Cc: Johnny Kim Cc: Rachel Kim Cc: Dean Lee Cc: Chris Park Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 20 ++++++++++---------- drivers/staging/wilc1000/wilc_memory.h | 23 ----------------------- 2 files changed, 10 insertions(+), 33 deletions(-) commit cc6c16df806f3c263b7cde7d6961d80415f9aba8 Author: Yash Shah Date: Fri Aug 14 06:06:13 2015 +0000 Staging: sm750fb: Fix "foo* bar" should be "foo *bar" errors Fix "foo* bar" should be "foo *bar" errors as detected by checkpatch.pl Signed-off-by: Yash Shah Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.h | 14 +++++++------- drivers/staging/sm750fb/sm750_cursor.c | 4 ++-- drivers/staging/sm750fb/sm750_cursor.h | 4 ++-- drivers/staging/sm750fb/sm750_hw.h | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) commit f1126b1d0d7c0daf48f50e566c498912b31c459f Author: Sudip Mukherjee Date: Fri Aug 14 21:57:51 2015 +0530 staging: rtl8188eu: fix possible NULL dereference dm_odm was being checked for NULL after dereferencing it. Lets check for NULL first before derefenrencing it. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2b05df556e01f846fd67f8888add9919af55f35c Author: Johnny Kim Date: Thu Aug 13 13:41:21 2015 +0900 staging: wilc1000: clarify the argument type This patch replaces the void pointer type in the host interface functions which process the message from host thread by the real data type, tstrWILC_WFIDrv because the void pointer type as the arguments is not clear and concise. In addition, typecasting to the void pointer type is removed becasue it is not necessary. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 78 +++++++++++++++---------------- drivers/staging/wilc1000/host_interface.h | 4 +- 2 files changed, 41 insertions(+), 41 deletions(-) commit 11f58c88ddf8613dde976e0fe18afecefaf04195 Author: Johnny Kim Date: Thu Aug 13 13:41:20 2015 +0900 staging: wilc1000: change void pointer type to real type This patch changes the void pointer member of the tstrHostIFmsg to the real data type because the void pointer type is ambiguous and not readable. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 218dc407d4b275a6f96311ff8c4b70dd998fcf24 Author: Johnny Kim Date: Thu Aug 13 13:41:19 2015 +0900 staging: wilc1000: replace WILC_WFIDrvHandle by tstrWILC_WFIDrv The structure, WILC_WFIDrvHandle is used to save the pointer address for the driver handler which is used throughout the driver but it's not easy to understand what it means. In addition, it doesn't support the 64 bit machine and also causes the warnings for the 64 bit build. This patch replaces the WILC_WFIDrvHandle by the tstrWILC_WFIDrv because the tstrWILC_WFIDrv is real structure to represent the driver handler and reduces the 64 bit compile warnings. Also, typecasting to WILC_WFIDrvHandle is not needed by using tstrWILC_WFIDrv as is. Signed-off-by: Johnny Kim Signed-off-by: Tony Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 126 +++++++++++----------- drivers/staging/wilc1000/host_interface.h | 104 +++++++++--------- drivers/staging/wilc1000/linux_wlan.c | 16 +-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 22 ++-- drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 +- 5 files changed, 136 insertions(+), 136 deletions(-) commit 598f85bfaeeaac0272c8e79f314076e48d445bcf Author: Chaehyun Lim Date: Tue Aug 11 10:32:42 2015 +0900 staging: wilc1000: remove WILC_FREE Remove WILC_FREE that is replaced by kfree. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_memory.h | 5 ----- 1 file changed, 5 deletions(-) commit 49188af27211b218fffacb26df5e96bf4b7e616c Author: Chaehyun Lim Date: Tue Aug 11 10:32:41 2015 +0900 staging: wilc1000: use kfree instead of WILC_FREE Use kfree instead of WILC_FREE. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 12 +-- drivers/staging/wilc1000/host_interface.c | 112 +++++++++++----------- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.c | 10 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 36 +++---- 5 files changed, 86 insertions(+), 86 deletions(-) commit 9b45891aef5904c2a1e76881f3b44fe646d84b54 Author: Chaehyun Lim Date: Tue Aug 11 10:32:40 2015 +0900 staging: wilc1000: remove unused memory functions This patch remove unused memory functions because some macros with this memory function are deleted. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_memory.c | 28 ------------------- drivers/staging/wilc1000/wilc_memory.h | 50 ---------------------------------- 2 files changed, 78 deletions(-) commit 96ac283d6490932ff5097259c18a4d03bdddb010 Author: Chaehyun Lim Date: Tue Aug 11 10:32:39 2015 +0900 staging: wilc1000: wilc_memory.h: remove unused define Remove unused define macro that is never used. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_memory.h | 51 ---------------------------------- 1 file changed, 51 deletions(-) commit 5a447f4c732e1eca3232effb354e1b18ae38215d Author: Raphaël Beamonte Date: Fri Aug 14 13:08:32 2015 -0400 Staging: gdm72xx: usb_ids: fix a macro coding style error Fix a macro with complex value coding style error. Signed-off-by: Raphaël Beamonte Signed-off-by: Greg Kroah-Hartman drivers/staging/gdm72xx/usb_ids.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 435009bba4d0449b611bc24ae5c9636ac5b2a00e Author: Mateusz Kulikowski Date: Wed Aug 12 21:54:49 2015 +0200 staging: rtl8192e: Fix log spamming in rtl8192_hard_data_xmit This patch fixes issue generated by commit ca93dcba3a92 ("staging: rtl8192e: Remove assert() macro") One negation was missed in conversion, therefore asserted message was always printed. For 1MB file downloaded via http, ~500 messages were generated. Signed-off-by: Mateusz Kulikowski Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bda9e24909b58c90adb4dd03663d250a5c872fb8 Author: Junsu Shin Date: Tue Aug 11 17:44:56 2015 -0500 staging: vme: devices: add spaces around '-' This is a patch to the vme_pio2_core.c that adds spaces around '-'. Signed-off-by: Junsu Shin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a8f401f9e751eb5d1f6e9f66e45c84e390bc75bb Author: Junsu Shin Date: Tue Aug 11 17:07:14 2015 -0500 staging: vme: devices: fix NULL comparison style This is a patch to vme_pio2_core.c that fixes up the NULL comparison style. Signed-off-by: Junsu Shin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c37e7445700fd49a0b86db86b5f2c20bc963fd5 Author: Junsu Shin Date: Tue Aug 11 16:36:05 2015 -0500 staging: vme: devices: remove blank line after open brace This is a patch to the vme_pio2_core.c that removes blank line after open brace '{'. Signed-off-by: Junsu Shin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 2 -- 1 file changed, 2 deletions(-) commit d5f0a90e60643fa63fffa88828c5552f3902a5bf Author: Junsu Shin Date: Tue Aug 11 15:02:07 2015 -0500 staging: vme: devices: remove multiple blank lines This is a patch to vm2_pio2_core.c that removes multiple blanks lines. Signed-off-by: Junsu Shin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_pio2_core.c | 4 ---- 1 file changed, 4 deletions(-) commit cf7281c9ae9a5f0435630f8e972bb4c6204565bc Author: Michał Kępień Date: Tue Aug 11 14:07:00 2015 +0200 staging: unisys: make visorbus_dev_groups static visorbus_dev_groups is not referenced outside visorbus_main.c, so it can be declared static. Found using sparse. Signed-off-by: Michał Kępień Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 110a66be3a26fe05318121412e3c36f7f1e80a12 Author: Prarit Bhargava Date: Mon Aug 10 18:34:10 2015 -0400 drivers: staging: unisys: add MODULE_DEVICE_TABLE and temporary MODULE_ALIAS lines to visornic This patch adds an module alias and a MODULE_DEVICE_TABLE to autoload the visornic driver when an appropriate device is created by the visorbus. Note, the correct way of fixing this is adding functionality to scripts/mod/file2alias.c for the visorbus bus type. Signed-off-by: Prarit Bhargava Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit beb12167080146c8cbaa204daae52b102c066166 Author: Joe Perches Date: Mon Aug 10 14:51:30 2015 -0700 staging: rtl8192u: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211.h | 345 +++++++++++++------------ drivers/staging/rtl8192u/r8190_rtl8256.h | 11 +- drivers/staging/rtl8192u/r8192U.h | 2 +- drivers/staging/rtl8192u/r8192U_dm.h | 36 +-- drivers/staging/rtl8192u/r8192U_wx.h | 2 +- drivers/staging/rtl8192u/r819xU_cmdpkt.h | 8 +- drivers/staging/rtl8192u/r819xU_phy.h | 55 ++-- 7 files changed, 236 insertions(+), 223 deletions(-) commit ec9a0ffa494c7f9c6dbffea7f073ec72a77f1cdb Author: Joe Perches Date: Mon Aug 10 14:51:23 2015 -0700 staging: mt29f_spinand: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/mt29f_spinand/mt29f_spinand.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 35bb99bf6579f04981830d3275dcffd8b2b17edb Author: Joe Perches Date: Mon Aug 10 14:51:17 2015 -0700 staging: dgnc: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_sysfs.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit fd8c5cb5ac30f26902b130f46e1180c18f006b2a Author: Joe Perches Date: Mon Aug 10 14:51:19 2015 -0700 staging: ft1000: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignment Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-pcmcia/ft1000.h | 19 +++++++++---------- drivers/staging/ft1000/ft1000-usb/ft1000_usb.h | 4 ++-- 2 files changed, 11 insertions(+), 12 deletions(-) commit b3ff291009c21ff1276a6470325ff6a5149c3b5f Author: Joe Perches Date: Mon Aug 10 14:51:33 2015 -0700 staging: wilc1000: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.h | 30 +++++++++++------------ drivers/staging/wilc1000/linux_wlan_common.h | 4 +-- drivers/staging/wilc1000/wilc_wfi_cfgoperations.h | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) commit ee233d3e19d7a5624e872710b1a6f629a0e8ef4f Author: Joe Perches Date: Mon Aug 10 14:51:29 2015 -0700 staging: rtl8192e: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 10 +- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 4 +- .../staging/rtl8192e/rtl8192e/r8192E_firmware.h | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 52 ++- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 22 +- drivers/staging/rtl8192e/rtllib.h | 347 ++++++++++----------- 6 files changed, 202 insertions(+), 235 deletions(-) commit ebea63f66388e4bad2bce39cd12e5b77dc08c1a9 Author: Joe Perches Date: Mon Aug 10 14:51:28 2015 -0700 staging: rtl8188eu: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/osdep_service.h | 2 +- drivers/staging/rtl8188eu/include/rtw_mlme_ext.h | 8 ++++---- drivers/staging/rtl8188eu/include/sta_info.h | 18 +++++++++--------- 3 files changed, 14 insertions(+), 14 deletions(-) commit ddc9bceb4c128aeec8107df816df1ceba4c68f8b Author: Joe Perches Date: Mon Aug 10 14:51:25 2015 -0700 staging: nvec: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/nvec/nvec.h | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit cd951ddc2d70e67ee0fc48181bedc27a9515ba78 Author: Joe Perches Date: Mon Aug 10 14:51:18 2015 -0700 staging: fbtft: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft.h | 52 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 27 deletions(-) commit b239904d8f2bfa09956b1ac95009136e452f0923 Author: Joe Perches Date: Mon Aug 10 14:51:26 2015 -0700 staging: octeon: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Acked-by: David Daney Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-mdio.h | 2 +- drivers/staging/octeon/octeon-ethernet.h | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) commit a5ee4695ec03ce8f7c236f568dc99b5366af1ce8 Author: Joe Perches Date: Mon Aug 10 14:51:31 2015 -0700 staging: rtl8712: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_ioctl.h | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) commit e075de610913d43d9d4682888cbee7856217103a Author: Joe Perches Date: Mon Aug 10 14:51:34 2015 -0700 staging: xgifb: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/vb_init.h | 4 ++-- drivers/staging/xgifb/vb_setmode.h | 34 +++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) commit f157d807b9fe44afa19e476b52d791a7377d9ad2 Author: Ioan-Adrian Ratiu Date: Fri Aug 14 12:57:06 2015 +0300 staging: lustre: ptlrpc: add missing include directive Without including ptlrpc_internal.h, GCC gives prototype warnings "pack_generic.c:642:5: warning: no previous prototype for ..." and sparse also complains "pack_generic.c:642:5: warning: symbol 'lustre_unpack_req_ptlrpc_body' was not declared. ..." Signed-off-by: Ioan-Adrian Ratiu Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/pack_generic.c | 2 ++ 1 file changed, 2 insertions(+) commit 94a99b46116e82aee359265a1ce48ebffe37a479 Author: Swee Hua Law Date: Tue Aug 11 21:32:29 2015 +0800 staging: lustre: Do not init global to NULL Remove "= NULL" in global variable Signed-off-by: Swee Hua Law Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/lloop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8150a97fdd095d0468fe75d0d5ce4c9e0cbaf3a3 Author: Joe Perches Date: Mon Aug 10 14:51:21 2015 -0700 staging: lustre: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +- .../staging/lustre/lnet/klnds/socklnd/socklnd.h | 141 +++++----- drivers/staging/lustre/lnet/selftest/console.h | 90 +++--- .../staging/lustre/lustre/include/lprocfs_status.h | 313 ++++++++++----------- .../lustre/lustre/include/lustre/lustre_idl.h | 133 ++++----- .../lustre/lustre/include/lustre/lustre_user.h | 2 +- drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 +- .../staging/lustre/lustre/include/lustre_export.h | 4 +- .../staging/lustre/lustre/include/lustre_import.h | 4 +- drivers/staging/lustre/lustre/include/lustre_net.h | 16 +- drivers/staging/lustre/lustre/include/obd_class.h | 16 +- .../staging/lustre/lustre/include/obd_support.h | 6 +- drivers/staging/lustre/lustre/ldlm/ldlm_internal.h | 2 +- drivers/staging/lustre/lustre/libcfs/tracefile.h | 32 +-- .../staging/lustre/lustre/llite/llite_internal.h | 16 +- 15 files changed, 387 insertions(+), 392 deletions(-) commit 049fbd9fcc848b667d9658618a4c09c706410813 Author: Swee Hua Law Date: Mon Aug 10 21:54:18 2015 +0800 staging: lustre: checkpatch: argument alignment for readability Fix checkpatch problem: move last argument of the hlist..() back to same line Signed-off-by: Swee Hua Law Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/remote_perm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit aa62a8415e77c7c46be483cba7b650e1748dcb44 Author: Swee Hua Law Date: Mon Aug 10 21:54:17 2015 +0800 staging: lustre: checkpatch: move */ block comment to next line Fix checkpatch problem: move */ from end of line to new line Signed-off-by: Swee Hua Law Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/remote_perm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit bcffa060c1dfda25dc8a5b1244330de939550f10 Author: Swee Hua Law Date: Mon Aug 10 21:54:16 2015 +0800 staging: lustre: checkpatch: symbol == NULL should be !symbol Fix checkpatch problem: change == NULL comparison to !symbol Signed-off-by: Swee Hua Law Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/remote_perm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1b680a81814cebeafe7e01495d064188a3f2fa2f Author: Swee Hua Law Date: Mon Aug 10 21:54:15 2015 +0800 staging: lustre: checkpatch: do not init global to NULL Fix checkpatch problem: remove NULL assignment fro global variable Signed-off-by: Swee Hua Law Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/remote_perm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a8365826553dc5f3d0cd4e05211b752a6f951fc8 Author: Patrick Boettcher Date: Mon Aug 10 10:25:09 2015 +0200 staging: lustre-libcfs: make static-variable constant This static can be made constant as it is never modified. Found during sparse-cleanup. Signed-off-by: Patrick Boettcher Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25bbe418f89bec661bcc0dfebcacd6705ed79de6 Author: Patrick Boettcher Date: Mon Aug 10 10:25:08 2015 +0200 staging: lustre-libcfs: fix sparse warning Fix sparse warnings of the following type: warning: symbol '....' was not declared. Should it be static? Signed-off-by: Patrick Boettcher Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs.h | 13 +++++++++++++ drivers/staging/lustre/lustre/libcfs/linux/linux-module.c | 2 -- drivers/staging/lustre/lustre/libcfs/module.c | 11 +---------- 3 files changed, 14 insertions(+), 12 deletions(-) commit 0df4e3e9bbf8968d5ff079b0ace3de9c0b971021 Author: Shraddha Barke Date: Mon Aug 10 13:30:35 2015 +0530 Staging: unisys: Remove useless cast on void pointer void pointers do not need to be cast to other pointer types. The semantic patch used to find this: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 94858feccaada3f1810ff50dd21d33b1d4d95d56 Author: Shraddha Barke Date: Mon Aug 10 13:30:34 2015 +0530 Staging: lustre: libcfs: Remove unnecessary cast on void* This patch does away with the cast on void * as it is unnecessary. Semantic patch used is as follows: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (void *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 642ac6c0dceb6292065d08925e6ffd6ef1fbc7e1 Author: Shraddha Barke Date: Mon Aug 10 13:30:33 2015 +0530 Staging: wilc1000: Remove null check before kfree kfree on NULL pointer is a no-op. This patch uses the following semantic patch to find such an instance where NULL check is present before kfree. // @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // smpl> Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 772a6e1fff9a8c942e982598632cfc41451e2e9a Author: Jacob Kiefer Date: Sun Aug 9 15:20:28 2015 -0400 staging: rtl8723au: Fix Sparse errors in rtw_security.c This patch fixes the following sparse errors: CHECK drivers/staging/rtl8723au/core/rtw_security.c drivers/staging/rtl8723au/core/rtw_security.c:189:39: \ warning: incorrect type in assignment (different base types) drivers/staging/rtl8723au/core/rtw_security.c:189:39: \ expected unsigned int [unsigned] [usertype] drivers/staging/rtl8723au/core/rtw_security.c:189:39: \ got restricted __le32 [usertype] drivers/staging/rtl8723au/core/rtw_security.c:197:39: \ warning: incorrect type in assignment (different base types) drivers/staging/rtl8723au/core/rtw_security.c:197:39: \ expected unsigned int [unsigned] [usertype] drivers/staging/rtl8723au/core/rtw_security.c:197:39: \ got restricted __le32 [usertype] drivers/staging/rtl8723au/core/rtw_security.c:682:39: \ warning: incorrect type in assignment (different base types) drivers/staging/rtl8723au/core/rtw_security.c:682:39: \ expected unsigned int [unsigned] [usertype] drivers/staging/rtl8723au/core/rtw_security.c:682:39: \ got restricted __le32 [usertype] drivers/staging/rtl8723au/core/rtw_security.c:694:39: \ warning: incorrect type in assignment (different base types) drivers/staging/rtl8723au/core/rtw_security.c:694:39: \ expected unsigned int [unsigned] [usertype] drivers/staging/rtl8723au/core/rtw_security.c:694:39: \ got restricted __le32 [usertype] Signed-off-by: Jacob Kiefer Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_security.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit 071c19e73b605086a26d83ff911cdc6e6af0b3b8 Author: Chaehyun Lim Date: Mon Aug 10 11:33:22 2015 +0900 staging: wilc1000: remove wilc_strutils.c and wilc_strutils.h Remove wilc_strutils.c and wilc_strutils.h that are not needed. wilc_strutils.o is also removed in Makefile. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 2 +- drivers/staging/wilc1000/wilc_msgqueue.h | 1 - drivers/staging/wilc1000/wilc_oswrapper.h | 2 -- drivers/staging/wilc1000/wilc_strutils.c | 12 ------------ drivers/staging/wilc1000/wilc_strutils.h | 24 ------------------------ 5 files changed, 1 insertion(+), 40 deletions(-) commit 9504f96492f477b20b97ec92d480f646b7e7a488 Author: Chaehyun Lim Date: Mon Aug 10 11:33:21 2015 +0900 staging: wilc1000: remove WILC_memcpy_INTERNAL Remove WILC_memcpy_INTERNAL that is used in the WILC_memcpy because WILC_memcpy is replaced by memcpy. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.c | 9 --------- drivers/staging/wilc1000/wilc_strutils.h | 11 ----------- 2 files changed, 20 deletions(-) commit f78d5f809ee248bea66fad9fa14fe62b8aec57af Author: Chaehyun Lim Date: Mon Aug 10 11:33:20 2015 +0900 staging: wilc1000: remove WILC_memcpy function Remove WILC_memcpy function that is changed to memcpy. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.h | 30 ------------------------------ 1 file changed, 30 deletions(-) commit d00d2ba33351007c752ed0e95adaa0d7728ec1b8 Author: Chaehyun Lim Date: Mon Aug 10 11:33:19 2015 +0900 staging: wilc1000: use memcpy instead of WILC_memcpy Use memcpy instead of WILC_memcpy that is a custom function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 22 +-- drivers/staging/wilc1000/host_interface.c | 200 +++++++++++----------- drivers/staging/wilc1000/linux_wlan.c | 2 +- drivers/staging/wilc1000/wilc_msgqueue.c | 4 +- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 52 +++--- 5 files changed, 140 insertions(+), 140 deletions(-) commit 31126a478fcc9020234d45576b432e7789081e0d Author: Chaehyun Lim Date: Mon Aug 10 11:33:18 2015 +0900 staging: wilc1000: remove WILC_strncmp function Remove WILC_strncmp function that is changed to strncmp. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.c | 21 --------------------- drivers/staging/wilc1000/wilc_strutils.h | 20 -------------------- 2 files changed, 41 deletions(-) commit 3f882895c717ec107820d7a53919110af702652d Author: Chaehyun Lim Date: Mon Aug 10 11:33:17 2015 +0900 staging: wilc1000: use strncmp instead of WILC_strncmp Use strncmp instead of WILC_strncmp. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 24e326ea2946863ea79d3b3af29815f5d49092b0 Author: Chaehyun Lim Date: Mon Aug 10 11:33:16 2015 +0900 staging: wilc1000: remove WILC_strncpy function Remove WILC_strncpy function that is changed to strncpy. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.c | 10 ---------- drivers/staging/wilc1000/wilc_strutils.h | 14 -------------- 2 files changed, 24 deletions(-) commit 85b509f18a7f27d6cc296d62e96e4632c83161fd Author: Chaehyun Lim Date: Mon Aug 10 11:33:15 2015 +0900 staging: wilc1000: Use strncpy instead of WILC_strncpy Use strncpy instead of WILC_strncpy that is a custom function Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1799cb6188beeff1b36c8968f942e9a15759b773 Author: Chaehyun Lim Date: Mon Aug 10 11:33:14 2015 +0900 staging: wilc1000: remove WILC_strlen function Remove WILC_strlen function that is changed to strlen. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.c | 9 --------- drivers/staging/wilc1000/wilc_strutils.h | 10 ---------- 2 files changed, 19 deletions(-) commit ff96dfb5b1739c84587be23f113078850a0cef4c Author: Chaehyun Lim Date: Mon Aug 10 11:33:13 2015 +0900 staging: wilc1000: use strlen instead of WILC_strlen Use strlen instead of WILC_strlen that is a custom function. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7d2b212f88c369b11fc7c791d02d915ad0121d58 Author: Chaehyun Lim Date: Mon Aug 10 11:33:12 2015 +0900 staging: wilc1000: remove commented code Remove commented code that is not used. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 1 - drivers/staging/wilc1000/host_interface.c | 2 -- 2 files changed, 3 deletions(-) commit 358d577ce1a7c56c4300a5b773dbf98cf9c76ae2 Author: Dan Carpenter Date: Fri Aug 14 11:54:05 2015 +0300 staging: comedi: me4000: use bitwise AND instead of logical This was supposed to bitwise AND but there is a typo. Fixes: 1a02387063fb ('staging: comedi: me4000: remove 'board' from me4000_ai_insn_read()') Signed-off-by: Dan Carpenter Reviewed-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ad83dbd974feb2e2a8cc071a1d28782bd4d2c70e Author: Ian Abbott Date: Tue Aug 11 13:05:10 2015 +0100 staging: comedi: adl_pci7x3x: fix digital output on PCI-7230 The "adl_pci7x3x" driver replaced the "adl_pci7230" and "adl_pci7432" drivers in commits 8f567c373c4b ("staging: comedi: new adl_pci7x3x driver") and 657f77d173d3 ("staging: comedi: remove adl_pci7230 and adl_pci7432 drivers"). Although the new driver code agrees with the user manuals for the respective boards, digital outputs stopped working on the PCI-7230. This has 16 digital output channels and the previous adl_pci7230 driver shifted the 16 bit output state left by 16 bits before writing to the hardware register. The new adl_pci7x3x driver doesn't do that. Fix it in `adl_pci7x3x_do_insn_bits()` by checking for the special case of the subdevice having only 16 channels and duplicating the 16 bit output state into both halves of the 32-bit register. That should work both for what the board actually does and for what the user manual says it should do. Fixes: 8f567c373c4b ("staging: comedi: new adl_pci7x3x driver") Signed-off-by: Ian Abbott Cc: # 3.13+, needs backporting for 3.7 to 3.12 Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/adl_pci7x3x.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 1c38d03ea9b7b92f958ce6b3c2337413227bcb6b Author: H Hartley Sweeten Date: Wed Aug 12 13:25:50 2015 -0700 staging: comedi: hwdrv_apci3501: remove "magic" numbers in apci3501_read_insn_timer() Use register bit defines from addi_tcw.h to remove the "magic" numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0d5e03079de3332b9c3dbb5be24631502d0d676b Author: H Hartley Sweeten Date: Wed Aug 12 13:25:49 2015 -0700 staging: comedi: hwdrv_apci3501: remove "magic" numbers in apci3501_write_insn_timer() Use register bit defines from addi_tcw.h to remove the "magic" numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7dc68e350460c4c1620f79f23be70739845994ff Author: H Hartley Sweeten Date: Wed Aug 12 13:25:48 2015 -0700 staging: comedi: hwdrv_apci3501: remove "magic" numbers in apci3501_config_insn_timer() Use register bit defines from addi_tcw.h to remove the "magic" numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../staging/comedi/drivers/addi-data/hwdrv_apci3501.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 020e05e74d49fc4c5cecee1b779247ec8a243b1f Author: H Hartley Sweeten Date: Wed Aug 12 13:25:47 2015 -0700 staging: comedi: addi_apci_3501: remove "magic" numbers in apci3501_interrupt() Use register bit defines from addi_tcw.h to remove the "magic" numbers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_3501.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit cd5d0ae4814f4f943c97c83f7f2f393a99b4d3a0 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:46 2015 -0700 staging: comedi: addi_apci_3501: use addi_tcw.h for the timer registers The APCI3501_TIMER_* register defines in this driver are that same as the ADDI_TCW_* defines with an additional offset. Add a 'tcw' (timer/counter/watchdog) member to the private data to hold the address for the iobase of the registers. Use that and the defines from addi_tcw.h to address the registers. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci3501.c | 24 ++++++++++---------- drivers/staging/comedi/drivers/addi_apci_3501.c | 26 +++++++++------------- 2 files changed, 23 insertions(+), 27 deletions(-) commit f821bf57a41f4aaab5c3306fd81e729208ca1404 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:45 2015 -0700 staging: comedi: addi_apci_3501: rename CamelCase vars in apci3501_interrupt() Rename the CamelCase local variables. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_3501.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 63316aae9102a3f7d0d94e32a43dad3b7b752cfe Author: H Hartley Sweeten Date: Wed Aug 12 13:25:44 2015 -0700 staging: comedi: addi_apci_3501: prefer using the BIT macro Change the register bit defines to use the BIT macro. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_3501.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit cd07fbf27b91c3c71812528ce39f9043ee1352e3 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:43 2015 -0700 staging: comedi: addi_apci_3501: rename private data 'i_IobaseAmcc' Rename this CamelCase member of the private data. Also, fix the type of the member, it holds a pci_resource_start() address and should be an unsigned long. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_3501.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit c85c26b8d0242da14732312dd99a8595d7a46e2c Author: H Hartley Sweeten Date: Wed Aug 12 13:25:42 2015 -0700 staging: comedi: hwdrv_apci3501: refactor apci3501_config_insn_timer() The handling for the watchdog and timer modes is very similar. Refactor this function to use a common code path for both modes. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci3501.c | 59 +++++++++------------- 1 file changed, 23 insertions(+), 36 deletions(-) commit bde879ae6ef93cdaa927d1637995256277844239 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:41 2015 -0700 staging: comedi: hwdrv_apci3501: rename 'ul_Command1' in apci3501_config_insn_timer() Rename this CamelCase local variable. For aesthetics, split the mask/set operations. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci3501.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit f7f909e09fd0cc22499913933c9caee3000423e3 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:40 2015 -0700 staging: comedi: hwdrv_apci3501: refactor apci3501_read_insn_timer() The handling of the ADDIDATA_WATCHDOG and ADDIDATA_TIMER is identical. Refactor this function to use a common code path for both timer modes. Remove the incorrect dev_err() noise. The subdevice is valid but the timer_mode is not supported. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../staging/comedi/drivers/addi-data/hwdrv_apci3501.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) commit 626bb280d0516c7b4adee50cdd2b8ea377183f46 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:39 2015 -0700 staging: comedi: hwdrv_apci3501: refactor apci3501_write_insn_timer() The handling of the ADDIDATA_WATCHDOG and ADDIDATA_TIMER is identical except for the "stop" operation. Refactor this function to use a common code path for both timer modes. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci3501.c | 48 ++++++---------------- 1 file changed, 13 insertions(+), 35 deletions(-) commit e078d25639c0f8a5d97c879e276a2eba877dce62 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:38 2015 -0700 staging: comedi: hwdrv_apci3501: rename 'ul_Command1' in apci3501_write_insn_timer() Rename this CamelCase local variable. For aesthetics, split the mask/set operations. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci3501.c | 38 ++++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) commit 4434a99eaab2cb3b214201d05f396c940033a6fe Author: H Hartley Sweeten Date: Wed Aug 12 13:25:37 2015 -0700 staging: comedi: addi_apci_3501: rename private data 'b_TimerSelectMode' Rename this CamelCase member of the private data. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../staging/comedi/drivers/addi-data/hwdrv_apci3501.c | 16 ++++++++-------- drivers/staging/comedi/drivers/addi_apci_3501.c | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) commit a66f2017ec2daebfef9e7cdf4edeca7a362c7303 Author: H Hartley Sweeten Date: Wed Aug 12 13:25:36 2015 -0700 staging: comedi: hwdrv_apci3501: remove useless read/mask to stop watchdog The watchdog is stopped in apci3501_write_insn_timer() by writing a 0 to the timer control register. There is no need to read the register first and mask it (as done when the timer is used as a timer). Reported-by: coverity (CID 1227052) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c | 2 -- 1 file changed, 2 deletions(-) commit 2be8ae5898af956560e9f722b327add05574a1f7 Author: H Hartley Sweeten Date: Mon Aug 10 13:13:59 2015 -0700 staging: comedi: comedi_fops: absorb comedi_free_board_minor() This function is only called by comedi_cleanup_board_minors() and the 'minor' parameter will always be < COMEDI_NUM_BOARD_MINORS. For aesthetics, absorb the function and remove the unnecessary BUG_ON(). Split the comedi_clear_board_minor() out to clarify that the return value is a comedi_device pointer. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit c4237a2b59432a6ebf73f813ad9e94ab408bb8f1 Author: H Hartley Sweeten Date: Mon Aug 10 13:14:00 2015 -0700 staging: comedi: comedi_fops: remove BUG_ON() in comedi_dev_get_from_board_minor() This function is only called by comedi_dev_get_from_minor() and the 'minor' value will always be < COMEDI_NUM_BOARD_MINORS. Remove the unnecessary BUG_ON(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 1 - 1 file changed, 1 deletion(-) commit 5104a8988723b405c9e033b7e57267ebdd387d4d Author: H Hartley Sweeten Date: Mon Aug 10 13:14:01 2015 -0700 staging: comedi: comedi_fops: remove BUG_ON() in comedi_free_subdevice_minor() Drivers should not crash the kernel. This function is only called by comedi_device_detach_cleanup() and the s->minor will always be valid or the device wouldn't have attached in the first place. Leave the checks for safety in accessing the comedi_subdevice_minor_table array but remove the BUG_ON() calls. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6b3703f4cb763d57ab26f2ad262a30cc7f87093c Author: H Hartley Sweeten Date: Mon Aug 10 13:14:02 2015 -0700 staging: comedi: comedi_fops: remove BUG_ON() in comedi_cleanup() The BUG_ON() checks in this function are not necessary. comedi_cleanup_board_minors() clears all the entries in the comedi_board_minor_table array and will call comedi_device_cleanup() for all attached devices. comedi_device_cleanup() will then clear the entries in the comedi_subdevice_minor_table array with comedi_free_subdevice_minor(). Remove the BUG_ON(), drivers should not crash the kernel. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 7 ------- 1 file changed, 7 deletions(-) commit 0bb6419ccf5b2548ade321d5337e9d3252a3d4a1 Author: H Hartley Sweeten Date: Mon Aug 10 13:14:03 2015 -0700 staging: comedi: comedi_fops: remove remaining BUG_ON() checks The BUG_ON() checks in comedi_subdevice_from_minor() and comedi_dev_get_from_subdevice_minor() are not necessary. The 'minor' numbers for a given comedi driver are setup by comedi_dev_get_from_subdevice_minor() and will always be in the correct range. Drivers should not crash the kernel, remove the BUG_ON() checks. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 2 -- 1 file changed, 2 deletions(-) commit 5babc1bc4d18f780200e3a794d2d553c6684554c Author: H Hartley Sweeten Date: Fri Aug 7 11:45:14 2015 -0700 staging: comedi: hwdrv_apci1564: remove magic numbers in apci1564_counter_insn_read() Use the bit defines from addi_tcw.h to remove the magic numbers in this function. Add the missing define for ADDI_TCW_STATUS_HARDWARE_TRIG. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 8 ++++---- drivers/staging/comedi/drivers/addi_tcw.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) commit c6288a3bebd8a59364f9ca9871f0fd2ac11963b4 Author: H Hartley Sweeten Date: Fri Aug 7 11:45:13 2015 -0700 staging: comedi: hwdrv_apci1564: tidy up apci1564_counter_insn_write() Clear the gate and trig bits in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1f5d767fab593659cbebc91197c3f182f6e0d84a Author: H Hartley Sweeten Date: Fri Aug 7 11:45:12 2015 -0700 staging: comedi: hwdrv_apci1564: fix counter "mode" setting According to the (broken) original driver, data[4] passed to this function is the "timer mode". It appears the original code used the wrong shift to set the bits. Use the ADDI_TCW_CTRL_MODE() macro so that the correct bits get set. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 835f8fe9527b826d23b223fb5347ee2c3e670cee Author: H Hartley Sweeten Date: Fri Aug 7 11:45:11 2015 -0700 staging: comedi: hwdrv_apci1564: remove useless code in apci1564_counter_insn_config() The gate, trig, and ena, bits in the 'ctrl' are cleared at the start of the function. There is no reason clear these bits for each step. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 18543b13fc99f0e90aead12ca9fc64145341278c Author: H Hartley Sweeten Date: Fri Aug 7 11:45:10 2015 -0700 staging: comedi: hwdrv_apci1564: remove magic number in apci1564_timer_insn_read() Use the bit define from addi_tcw.h to remove the magic number. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9a2d58c7f87bb5a92b4be9fd61af77baa2c832ba Author: H Hartley Sweeten Date: Fri Aug 7 11:45:09 2015 -0700 staging: comedi: hwdrv_apci1564: tidy up apci1564_timer_insn_write() Clear the gate and trig bits in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d9fca73c8014cbc971baa980c87caab8004b7c8c Author: H Hartley Sweeten Date: Fri Aug 7 11:45:08 2015 -0700 staging: comedi: hwdrv_apci1564: use addi_tcw.h defines Use the ADDI_TCW_CTRL_REG bit defines in addi_tcw.h to remove the "magic" numbers. Add some missing bit defines and mask defines to addi_tcw.h to help cleanup the code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci1564.c | 66 ++++++++++++---------- drivers/staging/comedi/drivers/addi_tcw.h | 14 +++-- 2 files changed, 45 insertions(+), 35 deletions(-) commit 836b8f2304a0363e98631f8cbccbe962d7dc23ab Author: H Hartley Sweeten Date: Fri Aug 7 11:45:07 2015 -0700 staging: comedi: addi_apci_1564: tidy up APCI1564_EEPROM_REG bit defines Use the BIT() macro to define the bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_1564.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9f750d15a1d8387605745c89c21cf46d4ddd4cd0 Author: H Hartley Sweeten Date: Fri Aug 7 11:45:06 2015 -0700 staging: comedi: addi_apci_1564: define the APCI1564_DI_IRQ_REG bits Define the bits in this register. Remove the old defines in hwdrv_apci1564.c. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman .../comedi/drivers/addi-data/hwdrv_apci1564.c | 8 -------- drivers/staging/comedi/drivers/addi_apci_1564.c | 20 ++++++++++---------- 2 files changed, 10 insertions(+), 18 deletions(-) commit dbaa1490f989380b2e7a492d324441cc917628cb Author: H Hartley Sweeten Date: Fri Aug 7 11:45:05 2015 -0700 staging: comedi: addi_apci_1564: define the APCI1564_DO_IRQ_REG bits Define the bits in this register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_1564.c | 1 + 1 file changed, 1 insertion(+) commit fa1219e03e73fb1ebba87eeb2aa1edbea518622d Author: H Hartley Sweeten Date: Fri Aug 7 11:45:04 2015 -0700 staging: comedi: addi_apci_1564: define the APCI1564_DO_INT_STATUS_REG bits Define the bits in this register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_apci_1564.c | 2 ++ 1 file changed, 2 insertions(+) commit 59c8f0dd76ac1358086ac79e177791683b1823d0 Author: H Hartley Sweeten Date: Fri Aug 7 11:45:03 2015 -0700 staging: comedi: addi_apci_1564: define the APCI1564_DO_INT_CTRL_REG bits Define the bits in this register. Remove the old defines in hwdrv_apci1564.c. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 6 ------ drivers/staging/comedi/drivers/addi_apci_1564.c | 2 ++ 2 files changed, 2 insertions(+), 6 deletions(-) commit d5387751c34a6a02d715e4885239a05563a418b8 Author: H Hartley Sweeten Date: Fri Aug 7 11:45:02 2015 -0700 staging: comedi: hwdrv_apci1564: remove unused defines These defines are not used. Remove them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c | 5 ----- 1 file changed, 5 deletions(-) commit 2afc5d49d03ffcd36ef5a50a52709539911ceb00 Author: H Hartley Sweeten Date: Fri Aug 7 11:45:01 2015 -0700 staging: comedi: addi_tcw.h: prefer using the BIT macro Use the BIT macro to define the register bits. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/addi_tcw.h | 48 +++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) commit 13d825edd4441dd3453de58d1bd2ade44d5ad2ab Author: Aleksei Fedotov Date: Fri Aug 14 22:34:37 2015 +0300 staging: speakup: Fix warning reported by checkpatch This patch fixes the checkpatch.pl warnings: WARNING: Block comments use a trailing */ on a separate line WARNING: Block comments use * on subsequent lines Signed-off-by: Aleksey Fedotov Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/buffers.c | 3 +- drivers/staging/speakup/i18n.c | 3 +- drivers/staging/speakup/kobjects.c | 3 +- drivers/staging/speakup/main.c | 15 ++++++---- drivers/staging/speakup/selection.c | 3 +- drivers/staging/speakup/serialio.c | 10 ++++--- drivers/staging/speakup/speakup_acnt.h | 8 +++-- drivers/staging/speakup/speakup_decpc.c | 6 ++-- drivers/staging/speakup/speakup_dtlk.h | 52 +++++++++++++++++++-------------- drivers/staging/speakup/speakup_soft.c | 1 - drivers/staging/speakup/thread.c | 3 +- drivers/staging/speakup/varhandlers.c | 3 +- 12 files changed, 66 insertions(+), 44 deletions(-) commit ad9f92d2700d19cd680dbfdb5da3859d10f534d1 Author: Joe Perches Date: Mon Aug 10 14:51:32 2015 -0700 staging: speakup: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Miscellanea: o Reflow alignments Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/i18n.h | 12 +++---- drivers/staging/speakup/speakup.h | 68 +++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 41 deletions(-) commit e4fde76b1667e86bf016f33c3ada33332e586b0d Author: Joe Perches Date: Mon Aug 10 14:51:27 2015 -0700 staging: olpc_dcon: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/olpc_dcon/olpc_dcon.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7f2c183043a79e1c6115c69314e3d0d2c5e061f Author: Joe Perches Date: Mon Aug 10 14:51:24 2015 -0700 staging: netlogic: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/netlogic/xlr_net.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0f621ca7bac142ecc0516f91ed1199d9c374ff8 Author: Mike Rapoport Date: Wed Aug 12 21:08:50 2015 +0300 staging: android: update TODO - remove "make sure things build as modules properly" - remove kuid_t related remarks, they were relevant for logger, but it is gone half year ago - remove dead e-mail address of Brian Swetland - add e-mail addresses of Arve Hjønnevåg and Riley Andrews Signed-off-by: Mike Rapoport Signed-off-by: Greg Kroah-Hartman drivers/staging/android/TODO | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit d30649a8b61843bed98f772954e490b75cae2713 Author: Joe Perches Date: Mon Aug 10 14:51:16 2015 -0700 staging: android: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/android/sync.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c71e16ef7a2b4c5251cef74b1065fbb76bb14d09 Author: Cristina Opriceana Date: Tue Aug 11 13:20:53 2015 +0300 Staging: iio: trigger: Use braces on both branches of if statement Fix style issue related to missing braces, detected by checkpatch.pl. Signed-off-by: Cristina Opriceana Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/trigger/iio-trig-periodic-rtc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2f3403ac2cdd7d76c531c5b3cf16b05d7a554f18 Author: Cristina Opriceana Date: Tue Aug 11 13:18:18 2015 +0300 Staging: iio: trigger: Alignment should match open parenthesis Fix alignment for function parameters as suggested by checkpatch.pl. Signed-off-by: Cristina Opriceana Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 7 ++++--- drivers/staging/iio/trigger/iio-trig-periodic-rtc.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) commit d98d2ccb4ceb4f28408299d1cc3846ab6be7ec52 Author: Joe Perches Date: Mon Aug 10 14:51:20 2015 -0700 staging: iio: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Acked-by: Lars-Peter Clausen Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/meter/ade7854.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5132fcd1fb55eddf04c7a06ede75723d7870b797 Author: Adrian Remonda Date: Fri Aug 14 12:18:04 2015 +0200 Staging: most: aim-cdev/cdev.c. Fix "missing static keyword" warnings This is a patch to the most/aim_cdev.c file. It makes several local functions and structures static to prevent global visibility. Signed-off-by: Adrian Remonda Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-cdev/cdev.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 23fe15fadf708c562140cd99e4dfd400afc5db8a Author: Adrian Remonda Date: Fri Aug 14 12:18:02 2015 +0200 Staging: most: hdm-usb/hdm_usb.c. Fix "missing static keyword" warnings This is a patch to the most/hdm-usb/hdm_usb.c file. It makes several local functions and structures static to prevent global visibility. Signed-off-by: Adrian Remonda Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-usb/hdm_usb.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 04ca58372c5e4922d7463450ffdb5cdc3d0dd596 Author: Adrian Remonda Date: Fri Aug 14 12:18:01 2015 +0200 Staging: most: mostcore/core.c. Fix "Using plain integer as NULL pointer" warnings This patch fixes the warning generated by sparse: "Using plain integer as NULL pointer" by replacing the pointer test against 0 with a logical test. Signed-off-by: Adrian Remonda Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c942ea7a377edfde7a154f2edd8fde7cfea24de1 Author: Adrian Remonda Date: Fri Aug 14 12:18:00 2015 +0200 Staging: most: mostcore/core.c. Fix "missing static keyword" warnings This is a patch to the mostcore/core.c file. It makes several local functions and structures static to prevent global visibility. Signed-off-by: Adrian Remonda Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit ddb98ce16158cb979f025eb73eaa44dce4cb1b36 Author: Joe Perches Date: Mon Aug 10 14:51:22 2015 -0700 staging: most: Remove unnecessary externs Using 'extern' is not necessary for function prototypes. Signed-off-by: Joe Perches Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 910bf1efe6f7f74b10e918768ddea3ad8b863f8b Author: Tomas Melin Date: Sun Aug 9 17:08:41 2015 +0300 staging/most: fix return value for DIM_GetChannelState Return NULL instead of 0 for invalid input. Signed-off-by: Tomas Melin Acked-by: Christian Gromm Signed-off-by: Andrey Shvetsov Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/dim2_hal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad88aae057b9f952f1cbd2f5df8325b95ba7bb75 Author: Oleg Drokin Date: Sat Aug 8 20:09:06 2015 -0400 staging/lustre/llite: get rid of unused ll_super_blocks list ll_super_blocks became unused quite a while ago with switch to the new CLIO code. So this patch removes the list, ll_sb_lock spinlock that guards it and superblock info ll_list linkage. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_internal.h | 1 - drivers/staging/lustre/lustre/llite/llite_lib.c | 14 +------------- 2 files changed, 1 insertion(+), 14 deletions(-) commit d38c59e9ab203427f14ab6691529bac098adbacd Author: Abhilash Jindal Date: Tue Aug 11 10:31:53 2015 -0400 staging: comedi: serial2002: Use monotonic clock Wall time obtained from do_gettimeofday is susceptible to sudden jumps due to user setting the time or due to NTP. Monotonic time is constantly increasing time better suited for comparing two timestamps. Signed-off-by: Abhilash Jindal Reviewed-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/serial2002.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 365741e6a6ab7f31ff885c26dd173d9590d1e8ca Author: H Hartley Sweeten Date: Mon Aug 10 10:28:08 2015 -0700 staging: comedi: ni_usb6501: fix possible out-of-bounds access Coverity reports a possible Out-of-bounds access (ARRAY_VS_SINGLETON) with the 'const u8 *port' parameter passed to ni6501_port_command(). This param is an actual array for the SET_PORT_DIR operation, called by ni6501_dio_insn_config(). But for the WRITE_PORT and READ_PORT operations, called by ni6501_dio_insn_bits(), it is just the address of an u8 local variable. Fix the coverity issue by changing the parameter to an unsigned int and pass the raw values from ni6501_dio_insn_config() and ni6501_dio_insn_bits(). ni6501_port_command() then handles the masking and shifting needed to load the value into the u8 transmit buffer. For consistency, change the access of the 'bitmap' parameter from an array access to a pointer operation. Reported-by: coverity (CID 1248624) Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_usb6501.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit 92f26189b181a65fcb1ff6220a4bf45d44502e4a Author: Sudip Mukherjee Date: Thu Aug 13 19:06:05 2015 +0530 auxdisplay: ks0108: initialize local parport variable The local variable ks0108_parport is used by other functions to write to the parallel port. We missed initializing it when we converted the driver to use new Parallel Port codes. Fixes: 4edd70c133f3 ("auxdisplay: ks0108: use new parport device model") Reported-by: Fengguang Wu Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/auxdisplay/ks0108.c | 2 ++ 1 file changed, 2 insertions(+) commit c868cbb7e5c6d3c74b8d38c7c356444f2c807c28 Author: Eduardo Valentin Date: Tue Aug 11 10:21:23 2015 -0700 serial: imx: save and restore context in the suspend path This change teaches the imx serial driver to save its context and restore it across suspend and resume path. To do so, it introduces serial_imx_restore_context() and serial_imx_save_context() functions. They use a shadow set of registers to save key registers and restore them accordingly. These functions can be reused on other situations, when the device context is lost. Cc: Fabio Estevam Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 58 ++++++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 21 deletions(-) commit bc85734b126f813ba46265c2d3a84c8839cb2e54 Author: Eduardo Valentin Date: Tue Aug 11 10:21:22 2015 -0700 serial: imx: allow waking up on RTSD This patch sets RTSDEN bit when going into idle (Stop mode). We add the RTSDEN for the case RTS is sent from the remote connection. This way we allow the system to wakeup when RTS is received. Cc: Fabio Stevam Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 189550b8644ef5d00d3b744f7fd423cce2d7c9ec Author: Eduardo Valentin Date: Tue Aug 11 10:21:21 2015 -0700 serial: imx: introduce serial_imx_enable_wakeup() This change is a code reorganization. Here we introduce serial_imx_enable_wakeup() helper function to do the job of configuring and preparing wakeup sources on imx serial device. The idea is to allow other parts of the code to call this function whenever the device is known to go to idle. Cc: Fabio Estevam Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin Signed-off-by: Greg Kroah-Hartman arch/arm/boot/dts/Makefile | 1 + drivers/tty/serial/imx.c | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) commit 9e7b399d6528eac33a6fbfceb2b92af209c3454d Author: Eduardo Valentin Date: Tue Aug 11 10:21:20 2015 -0700 serial: imx: remove unbalanced clk_prepare The current code attempts to prepare clk_per and clk_ipg before using the device. However, the result is an extra prepare call on each clock. Here is the output of uart clocks (only uart enabled and used as console): $ grep uart /sys/kernel/debug/clk/clk_summary uart_serial 1 2 80000000 0 0 uart 1 2 66000000 0 0 This patch balances the calls of prepares. The result is: $ grep uart /sys/kernel/debug/clk/clk_summary uart_serial 1 1 80000000 0 0 uart 1 1 66000000 0 0 Cc: Fabio Estevam Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit eafb9eea7622d765effb1a06f8cf5eb31fa018f6 Author: John Ogness Date: Fri Aug 14 18:01:02 2015 +0200 serial: 8250: move rx_running out of the bitfield That bitfield is modified by read + or + write operation. If someone sets any of the other two bits it might render the lock useless. While at it, remove other bitfields as well to avoid more such errors. Cc: Greg Kroah-Hartman Signed-off-by: John Ogness Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 830acf9e3044d4644f91b4418ef35a2094089946 Author: Sebastian Andrzej Siewior Date: Fri Aug 14 17:52:07 2015 +0200 tty: serial: 8250_omap: do not use RX DMA if pause is not supported The 8250-omap driver requires the DMA-engine driver to support the pause command in order to properly turn off programmed RX transfer before the driver stars manually reading from the FIFO. The lacking support of the requirement has been discovered recently. In order to stay safe here we disable RX-DMA completly on probe. The rx_dma_broken assignment on probe could be removed once we working pause function in omap-dma. Cc: Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit cbba3e6f7a1eb642cccf520f690d4a58b97a9588 Author: Qipeng Zha Date: Fri Aug 7 19:14:47 2015 +0800 serial:8250_dw: do not alter CTS and DCTS since AFE is enabled Since the serial core is informed that this device is doing automatic flow control, it is not necessary to alter CTS and DCTS of the MSR as the core no longer attempts stop the port in uart_handle_cts_change(). Signed-off-by: Huiquan Zhong Signed-off-by: Qipeng Zha Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_dw.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 2b9a8508cb7f50d1880e2b8bb43615afd228f738 Author: Johannes Thumshirn Date: Thu Aug 6 09:16:38 2015 +0200 tty: serial: men_z135_uart.c: Don't initialize port->lock port->lock get's initialized in uart_add_one_port(), no need to do it in men_z135_probe(). Signed-off-by: Johannes Thumshirn Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/men_z135_uart.c | 1 - 1 file changed, 1 deletion(-) commit 8117e347406278fd399b077add4e638cd017ae2d Author: Johannes Thumshirn Date: Thu Aug 6 09:16:37 2015 +0200 tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios() Fix panic caused by a race between men_z135_intr() and men_z135_set_termios(). men_z135_intr() and men_z135_set_termios() both hold the struct uart_port::lock spinlock, but men_z135_intr() does a spin_lock_irqsave() and men_z135_set_termios() does a normal spin_lock(), which can lead to a deadlock when an interrupt is called while the lock is being helt by men_z135_set_termios(). This was discovered using a insmod, hardware looppback send/receive, rmmod stress test. Signed-off-by: Johannes Thumshirn Reviewed-by: Peter Hurley Cc: Andreas Werner Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/men_z135_uart.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 1d7002777a8fe8188caaa98d4a8eb4ed298fcdae Author: Maciej S. Szmigiero Date: Sun Aug 2 23:15:05 2015 +0200 serial: 8250: bind to ALi Fast Infrared Controller (ALI5123) This way this device can be used with irtty-sir - at least on Toshiba Satellite A20-S103 it is not configured by default and needs PNP activation before it starts to respond on I/O ports. This device has actually its own driver (ali-ircc), but this driver seems to be non-functional for a very long time (see http://permalink.gmane.org/gmane.linux.irda.general/484 http://permalink.gmane.org/gmane.network.protocols.obex.openobex.user/943 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535070 ). Signed-off-by: Maciej Szmigiero Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/acpi/acpi_pnp.c | 1 + drivers/tty/serial/8250/8250_pnp.c | 6 ++++++ 2 files changed, 7 insertions(+) commit ffa34de03bcfbfa88d8352942bc238bb48e94e2d Author: Maciej S. Szmigiero Date: Sun Aug 2 23:11:52 2015 +0200 serial: 8250: don't bind to SMSC IrCC IR port SMSC IrCC SIR/FIR port should not be bound to by (legacy) serial driver so its own driver (smsc-ircc2) can bind to it. Signed-off-by: Maciej Szmigiero Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pnp.c | 5 +++++ 1 file changed, 5 insertions(+) commit df57cf6a879502cd6e5559c1f2d6db12128e074f Author: Stefan Wahren Date: Tue Aug 11 11:46:01 2015 +0000 serial: mxs-auart: fix baud rate range Currently mxs-auart doesn't care correctly about the baud rate divisor. According to reference manual the baud rate divisor must be between 0x000000EC and 0x003FFFC0. So calculate the possible baud rate range and use it for uart_get_baud_rate(). Signed-off-by: Stefan Wahren Reviewed-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mxs-auart.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 17dc72cf3d8c6284cc34f29627f891268af07a55 Author: Juergen Borleis Date: Fri Aug 7 12:47:04 2015 +0200 serial: mxs-auart: keep the AUART unit in reset state when not in use Whenever the UART device driver gets closed from userland, the driver disables the UART unit and then stops the clocks to save power. The bit which disabled the UART unit is described as:  "UART Enable. If this bit is set to 1, the UART is enabled. Data transmission and reception occurs for the UART signals. When the UART is disabled in the middle of transmission or reception, it completes the current character before stopping." The important part is the "it completes the current character". Whenever a reception is ongoing when the UART gets disabled (including the clock off) the statemachine freezes and "remembers" this state on the next open() when re-enabling the unit's clock. In this case we end up receiving an additional bogus character immediately. The solution in this change is to switch the AUART unit into its reset state on close() and only release it from its reset state on the next open(). Note: when the unit is also used as system console it is always 'in use', so we cannot reset it on close(). Signed-off-by: Juergen Borleis Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mxs-auart.c | 46 +++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) commit 3fa30ac3b9a9220fa953eeb6d21b9ca578c67885 Author: Juergen Borleis Date: Fri Aug 7 12:47:03 2015 +0200 serial: mxs-auart: use a function name to reflect what it really does This function clears the reset the AUART unit is in after system start to make it work. Signed-off-by: Juergen Borleis Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mxs-auart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 17248569499eae54b314fb05c4ff19fd47c9e99b Author: Chase Metzger Date: Tue Aug 11 21:34:37 2015 -0700 usb: core: hub: Removed some warnings generated by checkpatch.pl Removed some checkpatch.pl warnings saying there was an unwanted space between function names and their arguments. Signed-off-by: Chase Metzger Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit e4df92279fd9e01532f65e5ba397877799ed6252 Author: Alexandre Belloni Date: Mon Aug 10 16:23:12 2015 +0200 USB: host: ohci-at91: merge loops in ohci_hcd_at91_drv_probe ohci_hcd_at91_drv_probe() has four at91_for_each_port. They can be merged into two loops without changing the driver behaviour. Signed-off-by: Alexandre Belloni Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ohci-at91.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) commit bd73bfcd44c0bdcf6efa238e5b21bdbf0778d6ce Author: Alexandre Belloni Date: Mon Aug 10 16:23:11 2015 +0200 USB: host: ohci-at91: merge ohci_at91_of_init in ohci_hcd_at91_drv_probe As device tree support is now mandatory, merge ohci_at91_of_init() in ohci_hcd_at91_drv_probe(). Signed-off-by: Alexandre Belloni Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ohci-at91.c | 145 +++++++++++++++++++------------------------ 1 file changed, 63 insertions(+), 82 deletions(-) commit be12be546baa26a1eeb59b78e2a616cd946e850a Author: Alexandre Belloni Date: Mon Aug 10 16:23:10 2015 +0200 USB: host: ohci-at91: depend on OF Make the driver depend on CONFIG_OF and remove the now useless #ifdef Also, fix the Kconfig indentation. Signed-off-by: Alexandre Belloni Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/Kconfig | 8 ++++---- drivers/usb/host/ohci-at91.c | 9 +-------- 2 files changed, 5 insertions(+), 12 deletions(-) commit b4f194706dd98d6de21c97eeb888a75abbf75174 Author: Alexandre Belloni Date: Mon Aug 10 16:23:09 2015 +0200 USB: host: ohci-at91: move at91_usbh_data definition in c file Move struct at91_usbh_data back in ohci-at91.c as this is the only user left after switching all at91 platforms to DT only. Signed-off-by: Alexandre Belloni Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ohci-at91.c | 11 +++++++++++ include/linux/platform_data/atmel.h | 12 ------------ 2 files changed, 11 insertions(+), 12 deletions(-) commit 3cf1fc80655d3af7083ea4b3615e5f8532543be7 Author: Stefan Koch Date: Sat Aug 8 11:32:56 2015 +0200 usb: interface authorization: Use a flag for the default device authorization With this patch a flag instead of a variable is used for the default device authorization. Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 31 +++++++++++++++++++++---------- drivers/usb/core/usb.c | 2 +- include/linux/usb/hcd.h | 16 +++++++++------- 3 files changed, 31 insertions(+), 18 deletions(-) commit 6ef2bf71764708f7c58ee9300acd8df05dbaa06f Author: Stefan Koch Date: Sat Aug 8 11:32:55 2015 +0200 usb: interface authorization: Documentation part This part adds the documentation for the interface authorization. Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-usb | 22 +++++++++++++++++++++ Documentation/usb/authorization.txt | 34 +++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) commit 187b3d75bbfba45a38b5d1d3656c0f11f6f6f2d0 Author: Stefan Koch Date: Sat Aug 8 11:32:54 2015 +0200 usb: interface authorization: SysFS part of USB interface authorization This introduces an attribute for each interface to authorize (1) or deauthorize (0) it: /sys/bus/usb/devices/INTERFACE/authorized Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/sysfs.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit ef0909c50fe63be3f9aa09bdf4db7efaa5919be9 Author: Stefan Koch Date: Sat Aug 8 11:32:53 2015 +0200 usb: interface authorization: Introduces the USB interface authorization The kernel supports the device authorization because of wireless USB. These is usable for wired USB devices, too. These new interface authorization allows to enable or disable individual interfaces instead a whole device. If a deauthorized interface will be authorized so the driver probing must be triggered manually by writing INTERFACE to /sys/bus/usb/drivers_probe Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/message.c | 38 ++++++++++++++++++++++++++++++++++++++ drivers/usb/core/usb.h | 2 ++ 2 files changed, 40 insertions(+) commit de7718bd9c4d3db96991a98c2a0cb38258a04e47 Author: Stefan Koch Date: Sat Aug 8 11:32:52 2015 +0200 usb: interface authorization: Control interface probing and claiming Driver probings and interface claims get rejected if an interface is not authorized. Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/driver.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1d958bef45030acfc5578263e9de3bb07032b8da Author: Stefan Koch Date: Sat Aug 8 11:32:51 2015 +0200 usb: interface authorization: Introduces the default interface authorization Interfaces are allowed per default. This can disabled or enabled (again) by writing 0 or 1 to /sys/bus/usb/devices/usbX/interface_authorized_default Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/usb/core/message.c | 1 + include/linux/usb/hcd.h | 9 +++++++++ 3 files changed, 57 insertions(+) commit 484ebaedecc5ddf778a30ee1efab367cbee27030 Author: Stefan Koch Date: Sat Aug 8 11:32:50 2015 +0200 usb: interface authorization: Declare authorized attribute The attribute authorized shows the authorization state for an interface. Signed-off-by: Stefan Koch Signed-off-by: Greg Kroah-Hartman include/linux/usb.h | 1 + 1 file changed, 1 insertion(+) commit 088a3daeadf6f4123f54d5208b0ec7cbbfc8853f Author: Kris Borer Date: Tue Aug 11 11:12:45 2015 -0400 usb: hub: remove assignment from if condition Fix one occurrence of the checkpatch.pl error: ERROR: do not use assignment in if condition The semantic patch that makes this change is: // @@ identifier i; expression E, E2, E3; statement S1, S2; binary operator b; @@ + i = E; if ( - (i = E) + i b ... && E2 && E3 ) S1 else S2 // Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e3ec4fda072c72c8ed014b58a3a4dd54b2b454bd Author: Alexandre Belloni Date: Mon Aug 10 16:29:33 2015 +0200 usb: gadget: atmel: remove useless include Definitions from linux/platform_data/atmel.h are not used, remove the include. Signed-off-by: Alexandre Belloni Signed-off-by: Greg Kroah-Hartman drivers/usb/gadget/udc/atmel_usba_udc.c | 1 - 1 file changed, 1 deletion(-) commit 3290b1b818934a517a593159f39a3651dcf34518 Author: Kris Borer Date: Mon Aug 10 09:13:15 2015 -0400 usb: endpoint: convert spaces to tabs Fix one occurrence of the checkpatch error: ERROR: code indent should use tabs where possible Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/endpoint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31b92d81e5d4574eb3d038642c7ba6ec66ea7db1 Author: Kris Borer Date: Sun Aug 9 21:48:18 2015 -0400 usb: otg_whitelist: remove whitespace Fix one occurrence of the checkpatch error: ERROR: space prohibited before open square bracket '[' Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/otg_whitelist.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f8786a91548df6930643a052e40e5c0b7a8403a5 Author: Nikhil Badola Date: Thu Aug 6 14:51:27 2015 +0530 drivers: usb: fsl: Workaround for USB erratum-A005275 Incoming packets in high speed are randomly corrupted by h/w resulting in multiple errors. This workaround makes FS as default mode in all affected socs by disabling HS chirp signalling.This errata does not affect FS and LS mode. Forces all HS devices to connect in FS mode for all socs affected by this erratum: P3041 and P2041 rev 1.0 and 1.1 P5020 and P5010 rev 1.0 and 2.0 P5040, P1010 and T4240 rev 1.0 Signed-off-by: Ramneek Mehresh Signed-off-by: Nikhil Badola Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-fsl.c | 4 ++++ drivers/usb/host/ehci-hub.c | 7 +++++++ drivers/usb/host/ehci.h | 12 ++++++++++++ drivers/usb/host/fsl-mph-dr-of.c | 4 ++++ include/linux/fsl_devices.h | 1 + 5 files changed, 28 insertions(+) commit d50f14805ec0f1cf50654e23559d1dcf81c68b26 Merge: 37a842d cfd093b Author: Greg Kroah-Hartman Date: Fri Aug 14 16:45:51 2015 -0700 Merge tag 'phy-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next Kishon writes: phy: for 4.3 *) Add new NXP USB OTG PHY driver *) Add vbus/id detection, extcon support and fixes in phy-sun4i-usb driver *) Add support to use phy-sun4i-usb driver for sun8i-a23 and sun8i-a33 SoCs *) Other trivial code cleanups, dropping .owner assignment and constify phy_ops Signed-off-by: Kishon Vijay Abraham I commit 37a842d36f63a047d94be2603d40d4407c949f1b Merge: a3fbedf 96625ea Author: Greg Kroah-Hartman Date: Fri Aug 14 16:43:09 2015 -0700 Merge tag 'usb-ci-v4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-next Peter writes: USB: chipidea updates for v4.3-rc1 The main changes are adding several system interfaces for tuning performance, and each vendors can adjust them according to their design configurations. Others are tiny improvements, like more well siTD supports, USB_DEVICE_A_HNP_SUPPORT supports, etc. commit a3fbedf98fe9909cb2e406e2018ec437d64806f6 Merge: e6bbe1d 2f3cc24 Author: Greg Kroah-Hartman Date: Fri Aug 14 16:41:11 2015 -0700 Merge tag 'usb-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next Felipe writes: usb: patches for v4.3 merge window New support for Allwinne SoC on the MUSB driver has been added to the list of glue layers. MUSB also got support for building all DMA engines in one binary; this will be great for distros. DWC3 now has no trace of dev_dbg()/dev_vdbg() usage. We will rely solely on tracing to debug DWC3. There was also a fix for memory corruption with EP0 when maxpacket size transfers are > 512 bytes. Robert's EP capabilities flags is making EP selection a lot simpler. UDCs are now required to set these flags up when adding endpoints to the framework. Other than these, we have the usual set of miscelaneous cleanups and minor fixes. Signed-off-by: Felipe Balbi commit 4c278394b0feb7aadc538be12ab0474b106a7255 Author: Jaegeuk Kim Date: Tue Aug 11 16:01:30 2015 -0700 f2fs: avoid a build warning If F2FS_CHECK_FS is turned off, we can get a build warning for unused variable. Signed-off-by: Jaegeuk Kim fs/f2fs/segment.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 8c14bfadeac2a01b305ef4434907295b81b58db2 Author: Chao Yu Date: Fri Aug 7 17:58:43 2015 +0800 f2fs: handle error of f2fs_iget correctly In recover_orphan_inode, whenever f2fs_iget fail, we will make kernel panic, but it's not reasonable, because f2fs_iget can fail due to a lot of reasons including out of memory. So we change error handling method as below: a) when finding no entry for the orphan inode, bug_on for catching bugs; b) for other reasons, report it to caller. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 31 ++++++++++++++++++++++++------- fs/f2fs/f2fs.h | 2 +- fs/f2fs/super.c | 4 +++- 3 files changed, 28 insertions(+), 9 deletions(-) commit 47e70ca46f9074efe6573263c0de5bef0af829de Author: Jaegeuk Kim Date: Tue Aug 11 10:17:27 2015 -0700 f2fs: do not assign a new segment for dio under space shortage If there is not enough free segment, we should not assign a new segment explicitly. Otherwise, we can run out of free segment. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4d283ec908e617fa28bcb06bce310206f0655d67 Author: Andy Lutomirski Date: Thu Aug 13 13:18:48 2015 -0700 x86/kvm: Rename VMX's segment access rights defines VMX encodes access rights differently from LAR, and the latter is most likely what x86 people think of when they think of "access rights". Rename them to avoid confusion. Cc: kvm@vger.kernel.org Signed-off-by: Andy Lutomirski Signed-off-by: Paolo Bonzini arch/x86/include/asm/vmx.h | 46 +++++++++++++++++++++++----------------------- arch/x86/kvm/vmx.c | 14 +++++++------- 2 files changed, 30 insertions(+), 30 deletions(-) commit 657c63f0af2d0b44446c840cd42228ef1ebcdce4 Author: Wentao Xu Date: Fri Jun 19 14:03:42 2015 -0400 drm/msm/mdp5: release SMB (shared memory blocks) in various cases Release all blocks after the pipe is disabled, even when vsync didn't happen in some error cases. Allow requesting SMB multiple times before configuring to hardware, by releasing blocks not programmed to hardware yet for shrinking case. This fixes a potential leak of shared memory pool blocks. Signed-off-by: Wentao Xu Tested-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 13 +++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 2 + drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 33 +++++------- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 87 ++++++++++++++++++++++++++----- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.h | 1 + 5 files changed, 104 insertions(+), 32 deletions(-) commit a9702ca23edae7b72dcff266a0c5ae56f6af0fa5 Author: Wentao Xu Date: Mon Jun 22 11:53:42 2015 -0400 drm/msm: change to uninterruptible wait in atomic commit The atomic commit cannot easily undo and return an error once the state is swapped. Change to uninterruptible wait, and ignore the timeout error. Signed-off-by: Wentao Xu Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_atomic.c | 8 ++------ drivers/gpu/drm/msm/msm_drv.c | 13 +++++++++---- drivers/gpu/drm/msm/msm_drv.h | 4 ++-- drivers/gpu/drm/msm/msm_gem.c | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) commit 507d71b1fa91e2ea5887fcc347d5e71605e113f8 Author: Archit Taneja Date: Fri Jun 26 15:49:43 2015 +0530 drm/msm: mdp4: Fix drm_framebuffer dereference crash mdp4_get_frame_format() can dereference a drm_framebuffer when it's NULL. Call it in mdp4_plane_mode_set only when we know fb is non-NULL. Signed-off-by: Archit Taneja Signed-off-by: Rob Clark drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit bbcc71872a57cb4642c15423ae229aefdf09910a Author: Rob Clark Date: Thu Jul 23 13:44:56 2015 -0400 drm/msm: fix msm_gem_prime_get_sg_table() We need to return a new sgt, since the caller takes ownership of it. Reported-by: Stanimir Varbanov Signed-off-by: Rob Clark drivers/gpu/drm/msm/msm_gem_prime.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 53cf037bf846417fd92dc92ddf97267f69b110f4 Author: Linus Lüssing Date: Tue Jun 30 23:45:26 2015 +0200 batman-adv: Fix potentially broken skb network header access The two commits noted below added calls to ip_hdr() and ipv6_hdr(). They need a correctly set skb network header. Unfortunately we cannot rely on the device drivers to set it for us. Therefore setting it in the beginning of the according ndo_start_xmit handler. Fixes: 1d8ab8d3c176 ("batman-adv: Modified forwarding behaviour for multicast packets") Fixes: ab49886e3da7 ("batman-adv: Add IPv4 link-local/IPv6-ll-all-nodes multicast support") Signed-off-by: Linus Lüssing Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/soft-interface.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 3f1e08d0ae6746379b9e21264dae52f4f35c7ad2 Author: Simon Wunderlich Date: Wed Jun 24 14:50:20 2015 +0200 batman-adv: remove broadcast packets scheduled for purged outgoing if When an interface is purged, the broadcast packets scheduled for this interface should get purged as well. Signed-off-by: Simon Wunderlich Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/send.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1f155101646e6f6cda218534ff6e252ff625137b Author: Marek Lindner Date: Mon Jun 22 00:36:28 2015 +0800 batman-adv: protect tt request from double deletion The list_del() calls were changed to list_del_init() to prevent an accidental double deletion in batadv_tt_req_node_new(). Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 8a4023c5b5e30b11f1f383186f4a7222b3b823cf Author: Linus Lüssing Date: Tue Jun 16 17:10:26 2015 +0200 batman-adv: Fix potential synchronization issues in mcast tvlv handler So far the mcast tvlv handler did not anticipate the processing of multiple incoming OGMs from the same originator at the same time. This can lead to various issues: * Broken refcounting: For instance two mcast handlers might both assume that an originator just got multicast capabilities and will together wrongly decrease mcast.num_disabled by two, potentially leading to an integer underflow. * Potential kernel panic on hlist_del_rcu(): Two mcast handlers might one after another try to do an hlist_del_rcu(&orig->mcast_want_all_*_node). The second one will cause memory corruption / crashes. (Reported by: Sven Eckelmann ) Right in the beginning the code path makes assumptions about the current multicast related state of an originator and bases all updates on that. The easiest and least error prune way to fix the issues in this case is to serialize multiple mcast handler invocations with a spinlock. Fixes: 60432d756cf0 ("batman-adv: Announce new capability via multicast TVLV") Signed-off-by: Linus Lüssing Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/multicast.c | 63 +++++++++++++++++++++++++++++++++++---------- net/batman-adv/originator.c | 5 ++++ net/batman-adv/types.h | 3 +++ 3 files changed, 58 insertions(+), 13 deletions(-) commit 9c936e3f4c4fad07abb6c082a89508b8f724c88f Author: Linus Lüssing Date: Tue Jun 16 17:10:25 2015 +0200 batman-adv: Make MCAST capability changes atomic Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One OGM handler might undo the set/clear of a specific bit from another handler run in between. Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions. Fixes: 60432d756cf0 ("batman-adv: Announce new capability via multicast TVLV") Signed-off-by: Linus Lüssing Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/multicast.c | 18 ++++++++++-------- net/batman-adv/types.h | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) commit ac4eebd48461ec993e7cb614d5afe7df8c72e6b7 Author: Linus Lüssing Date: Tue Jun 16 17:10:24 2015 +0200 batman-adv: Make TT capability changes atomic Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One OGM handler might undo the set/clear of a specific bit from another handler run in between. Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions. Fixes: e17931d1a61d ("batman-adv: introduce capability initialization bitfield") Signed-off-by: Linus Lüssing Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/translation-table.c | 8 +++++--- net/batman-adv/types.h | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) commit 4635469f5c617282f18c69643af36cd8c0acf707 Author: Linus Lüssing Date: Tue Jun 16 17:10:23 2015 +0200 batman-adv: Make NC capability changes atomic Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One OGM handler might undo the set/clear of a specific bit from another handler run in between. Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions. Fixes: 3f4841ffb336 ("batman-adv: tvlv - add network coding container") Signed-off-by: Linus Lüssing Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/network-coding.c | 7 ++++--- net/batman-adv/types.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) commit 65d7d46050704bcdb8121ddbf4110bfbf2b38baa Author: Linus Lüssing Date: Tue Jun 16 17:10:22 2015 +0200 batman-adv: Make DAT capability changes atomic Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One OGM handler might undo the set/clear of a specific bit from another handler run in between. Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions. Fixes: 17cf0ea455f1 ("batman-adv: tvlv - add distributed arp table container") Signed-off-by: Linus Lüssing Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/distributed-arp-table.c | 7 ++++--- net/batman-adv/types.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) commit 1a8e7fab70c8d7cad2e606e7b21d46e42e51c2fd Author: Mengdong Lin Date: Mon Aug 10 22:48:30 2015 +0800 ASoC: topology: Change pass number of DAI smaller than graph The PCM DAIs need to be loaded and added to ASoC core ealier than the graph (route). Otherwise, adding routes will fail for missing DAIs. Signed-off-by: Mengdong Lin Signed-off-by: Mark Brown sound/soc/soc-topology.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 708ab62bef1ed3a3cf065a4138bd87f5d083cfeb Author: Christoph Hellwig Date: Mon Aug 10 23:07:08 2015 -0400 pmem: switch to devm_ allocations Signed-off-by: Christoph Hellwig [djbw: tools/testing/nvdimm/ and memunmap_pmem support] Reviewed-by: Ross Zwisler Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 36 ++++++++++-------------------- include/linux/pmem.h | 14 +++++++----- tools/testing/nvdimm/Kbuild | 4 ++-- tools/testing/nvdimm/test/iomap.c | 46 ++++++++++++++++++++++----------------- 4 files changed, 47 insertions(+), 53 deletions(-) commit 7d3dcf26a6559fa82af3f53e2c8b163cec95fdaf Author: Christoph Hellwig Date: Mon Aug 10 23:07:07 2015 -0400 devres: add devm_memremap Signed-off-by: Christoph Hellwig Signed-off-by: Dan Williams include/linux/io.h | 4 ++++ kernel/memremap.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) commit a33ee95f8f456c241897a4b6153610b8488d009d Author: Thierry Reding Date: Tue Jul 21 17:01:19 2015 +0200 drm/bridge: Put Kconfig entries in a separate menu Put the Kconfig entries for bridge drivers into a separate menu so that they are automatically grouped and don't clutter up the top-level menu. While at it, move the bridge menu towards the end of the top-level menu where the panel menu is already located. Signed-off-by: Thierry Reding drivers/gpu/drm/Kconfig | 4 ++-- drivers/gpu/drm/bridge/Kconfig | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) commit 58c467ece486e9bd1e26b4fd68e8cdef8501952d Author: Heiko Schocher Date: Tue Jun 9 07:51:22 2015 +0200 drm/panel: Add support for LG LG4573 480x800 4.3" panel The LG4573 is used on the LG LCD LB043WV2-SD01, an industrial 4.3" TFT panel with SPI control interface. Signed-off-by: Heiko Schocher Signed-off-by: Thierry Reding .../devicetree/bindings/panel/lg,lg4573.txt | 19 ++ drivers/gpu/drm/panel/Kconfig | 8 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-lg-lg4573.c | 298 +++++++++++++++++++++ 4 files changed, 326 insertions(+) commit a99fb6269d1af432c051ed552aaea807f9f906c9 Author: Gary Bisson Date: Wed Jun 10 18:44:23 2015 +0200 drm/panel: Add display timing for Okaya RS800480T-7X0GP Add support for the Okaya RS800480T-7X0GP to the DRM simple panel driver. The RS800480T-7X0GP is a WVGA (800x480) panel with an 18-bit parallel LCD interface. It supports pixel clocks in the range of 30-40 MHz. This panel details can be found at: http://boundarydevices.com/product/7-800x480-display/ Signed-off-by: Gary Bisson Signed-off-by: Thierry Reding .../bindings/panel/okaya,rs800480t-7x0gp.txt | 7 +++++ drivers/gpu/drm/panel/panel-simple.c | 33 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) commit 58c948d8c4145d354457bdfd654b828007722c44 Author: Gary Bisson Date: Wed Jun 10 18:44:22 2015 +0200 of: Add Okaya Electric America vendor prefix This patch adds vendor prefix for Okaya Electronic America, a provider of LCD modules and display technologies. Signed-off-by: Gary Bisson Acked-by: Rob Herring Signed-off-by: Thierry Reding Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit c6e87f91f0445e80656eddae84429ad7d687dc3f Author: jianwei wang Date: Wed Jul 29 16:30:02 2015 +0800 drm/panel: simple: Add support for NEC NL4827HC19-05B 480x272 panel This adds support for the NEC NL4827HC19-05B 480x272 panel to the DRM simple panel driver. Signed-off-by: Alison Wang Signed-off-by: Xiubo Li Signed-off-by: Jianwei Wang Acked-by: Daniel Vetter [treding@nvidia.com: add .bpc field for panel] Signed-off-by: Thierry Reding .../bindings/panel/nec,nl4827hc19-05b.txt | 7 ++++++ drivers/gpu/drm/panel/panel-simple.c | 27 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit d718d79e57039ccf59f638efe7c9ede2bfabc6f1 Author: Thierry Reding Date: Wed Apr 8 16:52:33 2015 +0200 drm/panel: simple: Add support for AUO B080UAN01 The AUO B080UAN01 is an 8.0" WUXGA TFT LCD panel connected using four DSI lanes. It can be supported by the simple-panel driver. Signed-off-by: Thierry Reding .../devicetree/bindings/panel/auo,b080uan01.txt | 7 +++++ drivers/gpu/drm/panel/panel-simple.c | 31 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) commit d901d2ba8a1577ea213e4c4e22e9ca1f67db61dd Author: Philipp Zabel Date: Wed Aug 12 12:32:13 2015 +0200 drm/panel: simple: Correct minimum hsync length of the HannStar HSD070PWW1 panel According to the data sheet, the minimum horizontal blanking interval is 54 clocks (1 + 52 + 1), but tests with a Nitrogen6X have shown the minimum working horizontal blanking interval to be 60 clocks. Signed-off-by: Philipp Zabel Signed-off-by: Lucas Stach Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-simple.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 58d6a7bc4f851b5bd43280eab145bab992cb7ebe Author: Philipp Zabel Date: Wed Aug 12 12:32:12 2015 +0200 drm/panel: simple: Add bus format for HannStar HSD070PWW1 LVDS panel The bus format both specifies the bpc and the way the individual bits get serialized into the 7 LVDS timeslots. While the is only one standard mapping for 6 bpc and so the driver could infer the bit mapping from the bpc alone, there are more options for the 8 bpc case which makes specifiying the bus format mandatory. To keep things consistent across panels and to set a precedent for new panel additions add the proper bus format. Signed-off-by: Philipp Zabel Signed-off-by: Lucas Stach Signed-off-by: Thierry Reding drivers/gpu/drm/panel/panel-simple.c | 1 + 1 file changed, 1 insertion(+) commit 1b0838b5a794456ca36ce02b405bd7bcc85bfba0 Author: Franklin S Cooper Jr Date: Wed Aug 12 08:26:19 2015 -0500 ARM: davinci: Set proper SPI prescale limit value SPI Davinci driver has been updated to allow SOCs to specify their minimum prescale value. Update the various SOCs board files that use this driver with their proper prescaler limit. Acked-by: Sekhar Nori Signed-off-by: Franklin S Cooper Jr Signed-off-by: Mark Brown arch/arm/mach-davinci/devices-da8xx.c | 2 ++ arch/arm/mach-davinci/dm355.c | 1 + arch/arm/mach-davinci/dm365.c | 1 + 3 files changed, 4 insertions(+) commit 330b48bd700d5cdc3d1922c4e50f0626ab8ec002 Author: Thierry Reding Date: Tue Apr 14 15:39:51 2015 +0200 drm/bridge: Add vendor prefixes Use vendor prefixes for Kconfig symbols and filenames. This should make it easier to identify the various bridge drivers and to organize the directory. v2: fix object name for dw-hdmi (Fabio Estevam) Signed-off-by: Thierry Reding arch/arm/configs/exynos_defconfig | 4 +- arch/arm/configs/multi_v7_defconfig | 4 +- drivers/gpu/drm/bridge/Kconfig | 10 +- drivers/gpu/drm/bridge/Makefile | 4 +- drivers/gpu/drm/bridge/nxp-ptn3460.c | 411 ++++++++++++++++++++ drivers/gpu/drm/bridge/parade-ps8622.c | 679 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/bridge/ps8622.c | 679 --------------------------------- drivers/gpu/drm/bridge/ptn3460.c | 411 -------------------- 8 files changed, 1101 insertions(+), 1101 deletions(-) commit ad3a942bd22fd40a0f4ddaf2759946ce945662af Author: Stephen Boyd Date: Mon Jun 1 18:47:55 2015 -0700 regulator: core: Print at debug level on debugfs creation failure Failure to create a debugfs node is not an error, but we print a warning upon failure to create the node. Downgrade this to a debug printk so that we're quiet here. This allows multiple drivers to request a CPU's regulator so that CPUfreq and AVSish drivers can coexist. The downside of this approach is that whoever gets to debugfs first the others who come later to not have any debugfs attributes associated with them. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dce0332c85c4d9eb5d96182c56f63cd20566f073 Author: Maciej S. Szmigiero Date: Wed Aug 5 17:29:02 2015 +0200 ASoC: fsl_ssi: adjust set DAI format in AC'97 mode Adjust set DAI format function in fsl_ssi driver so it doesn't fail and clears RXDIR in AC'97 mode. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 8ed0c842153434fa3aeeb89d16b71ac7dc8e12ee Author: Maciej S. Szmigiero Date: Wed Aug 5 17:26:44 2015 +0200 ASoC: fsl_ssi: instantiate AC'97 CODEC Instantiate AC'97 CODEC in fsl_ssi driver AC'97 mode. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 04143d614f3af84a3f39e79a24a7ca740bd39efd Author: Maciej S. Szmigiero Date: Wed Aug 5 17:25:31 2015 +0200 ASoC: fsl_ssi: add AC'97 ops setting check and cleanup Check whether setting AC'97 ops succeeded and clean them on removal so the fsl_ssi driver can be reloaded. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 06cb373692083d169ab080b31c55af91d22b6d99 Author: Maciej S. Szmigiero Date: Wed Aug 5 17:24:10 2015 +0200 ASoC: fsl_ssi: enable AC'97 asymmetric rates AC'97 bus can support asymmetric playback/capture rates so enable them in this case in fsl_ssi driver. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 793e3e9eeffc3e270483a450bc08e60f38e401ff Author: Maciej S. Szmigiero Date: Wed Aug 5 17:22:53 2015 +0200 ASoC: fsl_ssi: AC'97 DAI driver needs probe method too AC'97 DAI driver struct need the same probe method as I2S one to setup DMA params in fsl_ssi driver. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 1 + 1 file changed, 1 insertion(+) commit 8277df3c66f1a8cecfadc29f7394f623263b4445 Author: Maciej S. Szmigiero Date: Wed Aug 5 17:21:35 2015 +0200 ASoC: fsl_ssi: enable IPG clock during AC'97 reg access IPG clock have to be enabled during AC'97 CODEC register access in fsl_ssi driver. Signed-off-by: Maciej Szmigiero Signed-off-by: Mark Brown sound/soc/fsl/fsl_ssi.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit b4d97f022ac07c26d8f41f105b6c9c9a699875a2 Author: Antony Pavlov Date: Tue Jun 16 11:37:04 2015 +0300 mtd: spi-nor: add Spansion S25FL204K support Spansion S25FL204K is a 4-Mbit 3.0V Serial Flash Memory with Uniform 4 kB Sectors. Signed-off-by: Antony Pavlov Acked-by: Rafał Miłecki Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 1 + 1 file changed, 1 insertion(+) commit 842c12ddb49ef271ff978cbd022777d3d2c7787f Author: Fabio Estevam Date: Thu Aug 13 14:02:05 2015 -0300 mtd: spi-nor: Improve Kconfig help text for SPI_FSL_QUADSPI The current "We only connect the NOR to this controller now." text is not very clear, so explain it better by saying that generic SPI is not supported by SPI_FSL_QUADSPI and only SPI NOR is. Signed-off-by: Fabio Estevam Signed-off-by: Brian Norris drivers/mtd/spi-nor/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f617b9587c1662a2352b90cb64ad8bcf0ff4d0af Author: Joachim Eastwood Date: Thu Aug 13 19:19:40 2015 +0200 mtd: spi-nor: add driver for NXP SPI Flash Interface (SPIFI) Add SPI-NOR driver for the SPI Flash Interface (SPIFI) controller that is found on newer NXP MCU devices. The controller supports serial SPI Flash devices with 1-, 2- and 4-bit width in either SPI mode 0 or 3. The controller can operate in either command or memory mode. In memory mode the Flash is exposed as normal memory and can be directly accessed by the CPU. Signed-off-by: Joachim Eastwood Reviewed-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/spi-nor/Kconfig | 11 + drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/nxp-spifi.c | 482 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 494 insertions(+) commit 89f271c4d052063a72af2622f285f70caac91845 Author: Joachim Eastwood Date: Thu Jul 9 22:19:07 2015 +0200 doc: dt: add documentation for nxp,lpc1773-spifi Add device tree binding documentation for the SPI Flash Interface (SPIFI) found on NXP LPC18xx and LPC43xx devies. Signed-off-by: Joachim Eastwood Signed-off-by: Brian Norris .../devicetree/bindings/mtd/nxp-spifi.txt | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) commit c16340973fcb6461474a9f811f7f3ff2f946b24c Author: Ezequiel Garcia Date: Mon Aug 3 11:31:26 2015 -0300 nand: pxa3xx: Increase initial buffer size The initial buffer is used for the initial commands used to detect a flash device (STATUS, READID and PARAM). ONFI param page is 256 bytes, and there are three redundant copies to be read. JEDEC param page is 512 bytes, and there are also three redundant copies to be read. Hence this buffer should be at least 512 x 3. This commits rounds the buffer size to 2048. Signed-off-by: Ezequiel Garcia Signed-off-by: Brian Norris drivers/mtd/nand/pxa3xx_nand.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit ca861dd0c5e36c4a2cf454049a45a961c855290a Author: Martin Sperl Date: Tue Jul 28 14:03:12 2015 +0000 spi: bcm2835: set up spi-mode before asserting cs-gpio When using reverse polarity for clock (spi-cpol) on a device the clock line gets altered after chip-select has been asserted resulting in an additional clock beat, which confuses hardware. This did not show when using native-CS, as the same register is used to control cs as well as polarity, so the changes came into effect at the same time. Unfortunately this is not true with gpio-cs. To avoid this situation this patch moves the setup of polarity (spi-cpol and spi-cpha) outside of the chip-select into prepare_message, which is run prior to asserting chip-select. Also fixes resetting 3-wire mode after use of rx-mode, so that a 3-Wire sequence TX, RX, TX works as well (right now it runs TX, RX, RX instead) Reported-by: Noralf Tronnes Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) commit 07ea400e1b26726f21b2c2299d187d6eb7eb4324 Author: Markus Pargmann Date: Wed Aug 12 12:12:33 2015 +0200 regmap: Fix regmap_can_raw_write check This function is missing a check if map->bus->write is implemented. If it is not implemented arbitrary raw writes are not possible. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c329061be51bef655f28c9296093984c977aff85 Author: Kishon Vijay Abraham I Date: Mon Jul 27 16:54:10 2015 +0530 regulator: pbias: Fix broken pbias disable functionality regulator_disable of pbias always writes '0' to the enable_reg. However actual disable value of pbias regulator is not always '0'. Fix it by populating the disable_val in pbias_reg_info for the various platforms and assign it to the disable_val of pbias regulator descriptor. This will be used by regulator_disable_regmap while disabling pbias regulator. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Mark Brown Cc: drivers/regulator/pbias-regulator.c | 5 +++++ 1 file changed, 5 insertions(+) commit 6ec689542b5bc516187917d49b112847dfb75b0b Author: Vishal Verma Date: Wed Jul 29 14:58:09 2015 -0600 libnvdimm, btt: write and validate parent_uuid When a BTT is instantiated on a namespace it must validate the namespace uuid matches the 'parent_uuid' stored in the btt superblock. This property enforces that changing the namespace UUID invalidates all former BTT instances on that storage. For "IO namespaces" that don't have a label or UUID, the parent_uuid is set to zero, and this validation is skipped. For such cases, old BTTs have to be invalidated by forcing the namespace to raw mode, and overwriting the BTT info blocks. Based on a patch by Dan Williams Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/btt.c | 2 ++ drivers/nvdimm/btt_devs.c | 15 ++++++++++++++- drivers/nvdimm/namespace_devs.c | 20 ++++++++++++++++++++ drivers/nvdimm/nd.h | 1 + 4 files changed, 37 insertions(+), 1 deletion(-) commit ab45e7632717b811e0786e46ca5ad279cb731b66 Author: Vishal Verma Date: Wed Jul 29 14:58:08 2015 -0600 libnvdimm, btt: consolidate arena validation Use arena_is_valid as a common routine for checking the validity of an info block from both discover_arenas, and nd_btt_probe. As a result, don't check for validity of the BTT's UUID, and lbasize. The checksum in the BTT info block guarantees self-consistency, and when we're called from nd_btt_probe, we don't have a valid uuid or lbasize available to check against. Also cleanup to return a bool instead of an int. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/btt.c | 28 +--------------------------- drivers/nvdimm/btt.h | 3 +++ drivers/nvdimm/btt_devs.c | 42 +++++++++++++++++++++++++++++++++--------- 3 files changed, 37 insertions(+), 36 deletions(-) commit fbde1414acc0440024083bf0c391b259bcfc4826 Author: Vishal Verma Date: Wed Jul 29 14:58:07 2015 -0600 libnvdimm, btt: clean up internal interfaces Consolidate the parameters passed to arena_is_valid into just nd_btt, and an info block to increase re-usability. Similarly, btt_arena_write_layout doesn't need to be passed a uuid, as it can be obtained from arena->nd_btt. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/nvdimm/btt.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit e836a256e8fd579c9d7a3685f22981225a1ca451 Author: Dan Williams Date: Wed Aug 12 18:42:56 2015 -0400 pmem: convert to generic memremap Kill arch_memremap_pmem() and just let the architecture specify the flags to be passed to memremap(). Default to writethrough by default. Suggested-by: Christoph Hellwig Reviewed-by: Christoph Hellwig Reviewed-by: Ross Zwisler Signed-off-by: Dan Williams arch/x86/include/asm/io.h | 6 +----- include/linux/pmem.h | 28 +++++++++------------------- tools/testing/nvdimm/Kbuild | 4 ++-- tools/testing/nvdimm/test/iomap.c | 34 +++++++++++++++++++++++++--------- 4 files changed, 37 insertions(+), 35 deletions(-) commit 3103dc0304fd9c8ab576977cd98140d4fbac1730 Author: Dan Williams Date: Mon Aug 10 23:07:06 2015 -0400 visorbus: switch from ioremap_cache to memremap In preparation for deprecating ioremap_cache() convert its usage in visorbus to memremap. Cc: Benjamin Romer Cc: David Kershner Acked-by: Greg Kroah-Hartman Signed-off-by: Dan Williams drivers/staging/unisys/visorbus/visorchannel.c | 16 +++++++++------- drivers/staging/unisys/visorbus/visorchipset.c | 17 +++++++++-------- 2 files changed, 18 insertions(+), 15 deletions(-) commit 92281dee825f6d2eb07c441437e4196a44b0861c Author: Dan Williams Date: Mon Aug 10 23:07:06 2015 -0400 arch: introduce memremap() Existing users of ioremap_cache() are mapping memory that is known in advance to not have i/o side effects. These users are forced to cast away the __iomem annotation, or otherwise neglect to fix the sparse errors thrown when dereferencing pointers to this memory. Provide memremap() as a non __iomem annotated ioremap_*() in the case when ioremap is otherwise a pointer to cacheable memory. Empirically, ioremap_() call sites are seeking memory-like semantics (e.g. speculative reads, and prefetching permitted). memremap() is a break from the ioremap implementation pattern of adding a new memremap_() for each mapping type and having silent compatibility fall backs. Instead, the implementation defines flags that are passed to the central memremap() and if a mapping type is not supported by an arch memremap returns NULL. We introduce a memremap prototype as a trivial wrapper of ioremap_cache() and ioremap_wt(). Later, once all ioremap_cache() and ioremap_wt() usage has been removed from drivers we teach archs to implement arch_memremap() with the ability to strictly enforce the mapping type. Cc: Arnd Bergmann Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams arch/ia64/include/asm/io.h | 1 + arch/sh/include/asm/io.h | 1 + arch/xtensa/include/asm/io.h | 1 + include/linux/io.h | 9 ++++ kernel/Makefile | 2 + kernel/memremap.c | 98 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 112 insertions(+) commit 9ed71e7ad95eb9885420e8d33f33bd4d49e1b775 Author: Ben Hutchings Date: Thu Aug 6 23:36:52 2015 +0100 DocBook: Fix non-determinstic installation of duplicate man pages Some kernel-doc sections are included in multiple DocBook files. This means the mandocs target will generate the same manual page multiple times with different metadata (author name/address and manual title, taken from the including DocBook file). If it's invoked in a parallel build, the output is non-determinstic. Build the manual pages in a separate subdirectory per DocBook file, then sort and de-duplicate when installing them (which is serialised). Signed-off-by: Ben Hutchings [jc: fixed conflicts with the docs tree] Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e1d46d30d133e7909e7dde06a4e867225c7e079b Author: Junjie Mao Date: Fri Jul 17 10:29:00 2015 +0800 ASoC: Intel: fix runtime pm imbalance on error pm_runtime_get_sync() increments the runtime PM usage counter even the call returns an error code. Thus a pairing decrement is needed on the error handling path to keep the counter balanced. Signed-off-by: Junjie Mao Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_drv_interface.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit fbf917e14eb65689ad80290170f7d615be711fb7 Author: Axel Lin Date: Wed Aug 12 11:10:49 2015 +0800 ASoC: cs42l73: Use case range at appropriate place The readable registers are in continuous ranges: 0x01 ~ 0x03, 0x05 ~ 0x5f. Use case range syntax makes the code shorter with better readability when we have a large number of continuous switch cases. No functional change with this patch. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l73.c | 96 +--------------------------------------------- 1 file changed, 2 insertions(+), 94 deletions(-) commit 7f325bfc933d140337e55507821d6bb021321059 Author: Axel Lin Date: Wed Aug 12 11:09:39 2015 +0800 ASoC: cs42l56: Use case range at appropriate place The readable registers are in continuous range: 0x01 ~ 0x2e. Use case range syntax makes the code shorter with better readability when we have a large number of continuous switch cases. No functional change with this patch. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l56.c | 47 +--------------------------------------------- 1 file changed, 1 insertion(+), 46 deletions(-) commit 4caae9546d2cf7dbc7a12d451f847d7b58912bda Author: Axel Lin Date: Wed Aug 12 11:08:37 2015 +0800 ASoC: cs42l52: Use case range at appropriate place The readable registers are in continuous range: 0x01 ~ 0x34. Use case range syntax makes the code shorter with better readability when we have a large number of continuous switch cases. No functional change with this patch. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l52.c | 53 +--------------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) commit c17633081a0dc4c9f8c28b7a77ac5b63a1780e49 Author: Axel Lin Date: Wed Aug 12 11:07:46 2015 +0800 ASoC: cs35l32: Use case range at appropriate places Use case range syntax makes the code shorter with better readability when we have a large number of continuous switch cases. Below are the summary of readable/volatile/precious registers. The readable registers: 0x01 ~ 0x0D, 0x0F ~ 0x1C The volatile registers: 0x01 ~ 0x05, 0x15 ~ 0x18 The precious registers: 0x15 ~ 0x18 No functional change with this patch. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs35l32.c | 45 +++++---------------------------------------- 1 file changed, 5 insertions(+), 40 deletions(-) commit 470805eb9f31be7b0b94cb8e0cbeb5910c47ce37 Author: Vaishali Thakkar Date: Thu Aug 13 12:59:21 2015 +0530 ASoC: tegra: Convert to managed resources Use managed resource functions devm_clk_put and devm_snd_soc_register_component to simplify error handling. To be compatible with the change various gotos are replaced with direct returns, and unneeded labels are dropped. Signed-off-by: Vaishali Thakkar Signed-off-by: Mark Brown sound/soc/tegra/tegra20_spdif.c | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) commit dbe71b9d86ee77cf58a92657c43b0e48954dc62b Author: Lars-Peter Clausen Date: Wed Aug 12 13:58:38 2015 +0200 ASoC: ssm4567: Add sense support The ssm4567 has sensing circuitry that can be used to monitor the current and voltage on the speaker amplifier output has well as the VBAT input. This data can be output over the I2S interface so it can be processed by a DSP or similar. This patch adds the sense capture output stream to the CODEC DAI as well as DAPM widgets that ensure that the sensing circuitry is powered up when the capture stream is active. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm4567.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 7f4f800131a281a1e1738c0bc45659c1260dc96a Author: Arnaldo Carvalho de Melo Date: Fri Aug 14 13:16:27 2015 -0300 perf trace: Move vfs_getname storage to per thread area We were storing the vfs_getname payload (i.e. ptr->string) into the trace wide storage area (struct trace), so that we could use the last payload when setting up the fd->pathname per thread tables, oops, not a good idea for multi cpu tracing sessions... Fix it by moving it to the per thread area (struct thread_trace). Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-3j05ttqyaem7kh7oubvr1keo@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) commit 75067ddecf21271631bc018d2fb23ddd09b66aae Author: Antti Koskipaa Date: Fri Jul 10 14:10:55 2015 +0300 drm/i915: Per-DDI I_boost override An OEM may request increased I_boost beyond the recommended values by specifying an I_boost value to be applied to all swing entries for a port. These override values are specified in VBT. v2: rebase and remove unused iboost_bit variable Issue: VIZ-5676 Signed-off-by: Antti Koskipaa Reviewed-by: David Weinehall Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/intel_bios.c | 21 +++++++++++++++++++++ drivers/gpu/drm/i915/intel_bios.h | 9 +++++++++ drivers/gpu/drm/i915/intel_ddi.c | 38 ++++++++++++++++++++++++++++++-------- 4 files changed, 63 insertions(+), 8 deletions(-) commit 622147fdad5425f6f572f84ce709303e5e0500b7 Merge: 5a2376d d2944cf Author: Daniel Vetter Date: Fri Aug 14 18:10:35 2015 +0200 Merge tag 'drm-intel-fixes-2015-08-14' into drm-intel-next-fixes Backmerge drm-intel-fixes because a bunch of atomic patch backporting we had to do lead to horrible conflicts. Conflicts: drivers/gpu/drm/drm_crtc.c Just a bit of context conflict between -next and -fixes. drivers/gpu/drm/i915/intel_atomic.c drivers/gpu/drm/i915/intel_display.c Atomic conflicts, always pick the code from -next. Signed-off-by: Daniel Vetter commit 5a2376d1360bfc9ebf3b554dd8db1922d42cee4b Author: Jani Nikula Date: Fri Aug 14 10:53:17 2015 +0300 drm/i915/skl: WaIgnoreDDIAStrap is forever, always init DDI A There is currently conflicting documentation on which steppings the workaround is needed, up to C vs. forever. However there is post-C stepping hardware that doesn't report port presence on DDI A, leading to black screen on eDP. Assume the strap isn't connected, and try to enable DDI A on these machines. (We'll still check the VBT for the info in DDI init.) Cc: Ville Syrjälä Cc: Mika Westerberg Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f79b468eca20dae31b6fcaaa738a7f99b764837d Author: Thulasimani,Sivakumar Date: Fri Aug 7 15:14:30 2015 +0530 drm/i915: fix checksum write for automated test reply DP spec requires the checksum of the last block read to be written when replying to TEST_EDID_READ. This patch fixes the current code to do the same. v2: removed loop for jumping blocks and performed direct addition as recommended by Daniel Signed-off-by: Sivakumar Thulasimani Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit ca5a0fbd53be86d2bf44769741e02e66feeacc0a Author: Mika Kuoppala Date: Tue Aug 11 15:44:31 2015 +0100 drm/i915: Contain the WA_REG macro Prevent leaking the if scoping by containing the WA_REG macro inside its own scope. Reported-by: Arun Siluvery Signed-off-by: Mika Kuoppala Reviewed-by: Dave Gordon [danvet: Appease checkpatch.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 37876df61f279099334e0108bac9d28ee9789052 Author: Chris Wilson Date: Sat Aug 8 14:02:36 2015 +0100 drm/i915: Remove the failed context from the fpriv->context_idr If we encounter an allocation failure during ppggt creation (trivial even with 16Gib+ RAM!), we need to remove the dead context from the fpriv->context_idr along with the references. gem_exec_ctx: page allocation failure: order:0, mode:0x8004 CPU: 3 PID: 27272 Comm: gem_exec_ctx Tainted: G W 4.2.0-rc5+ #37 0000000000000000 ffff880086ff7a78 ffffffff816b947a ffff88041ed90038 0000000000008004 ffff880086ff7b08 ffffffff8114b1a5 ffff880086ff7ac8 ffffffff8108d848 0000000000000000 ffffffff81ce84b8 0000000000000000 Call Trace: [] dump_stack+0x45/0x57 [] warn_alloc_failed+0xd5/0x120 [] ? __wake_up+0x48/0x60 [] __alloc_pages_nodemask+0x73d/0x8e0 [] ? i915_gem_execbuffer2+0x148/0x240 [i915] [] __setup_page_dma+0x30/0x110 [i915] [] gen8_ppgtt_init+0x31/0x2f0 [i915] [] i915_ppgtt_init+0x30/0x80 [i915] [] i915_ppgtt_create+0x48/0xc0 [i915] [] i915_gem_create_context+0x1c2/0x390 [i915] [] i915_gem_context_create_ioctl+0x5b/0xa0 [i915] leading to an oops in i915_gem_context_close. Also note that this benchmark should not be running out of memory in the first place... Testcase: igt/benchmark/gem_exec_ctx -b create # ppgtt >= 2 Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 1 + 1 file changed, 1 insertion(+) commit eb5be9d0e7e78fd2b9f34c63dd2535ab6f985739 Author: Chris Wilson Date: Fri Aug 7 20:24:15 2015 +0100 drm/i915: Report IOMMU enabled status for GPU hangs The IOMMU for Intel graphics has historically had many issues resulting in random GPU hangs. Lets include its status when capturing the GPU hang error state for post-mortem analysis. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gpu_error.c | 5 +++++ 2 files changed, 6 insertions(+) commit 031a8936dc660e7ae2485eb7493eba1876cf25fe Author: Mika Kuoppala Date: Thu Aug 6 17:09:17 2015 +0300 drm/i915: Check idle to active before processing CSQ If idle to active bit is set, the rest of the fields in CSQ are not valid. Bail out early if this is the case in order to prevent rest of the loop inspecting stale values. This was found by Bspec/code inspection. Doesn't seem to fix any of the known issues. Signed-off-by: Mika Kuoppala Reviewed-by: Arun Siluvery [danvet: Add note about how this was found.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 3 +++ 1 file changed, 3 insertions(+) commit 500ea70d503ed9ba448611049a4a718c2761a5f2 Author: Rodrigo Vivi Date: Fri Aug 7 17:01:16 2015 -0700 drm/i915: Set alternate aux for DDI-E There is no correspondent Aux channel for DDI-E. So we need to rely on VBT to let us know witch one is being used instead. v2: Removing some trailing spaces and giving proper credit to Xiong that added a nice way to avoid port conflicts by setting supports_dp = 0 when using equivalent aux for DDI-E. Credits-to: Xiong Zhang Signed-off-by: Rodrigo Vivi Reviewed-by: Xiong Zhang Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 7 +++++++ drivers/gpu/drm/i915/intel_bios.c | 23 +++++++++++++++++++---- drivers/gpu/drm/i915/intel_ddi.c | 5 ++--- drivers/gpu/drm/i915/intel_dp.c | 29 ++++++++++++++++++++++++++++- 4 files changed, 56 insertions(+), 8 deletions(-) commit a513e3d75a3bb41cf2648764a2567879f6d138e5 Author: Rodrigo Vivi Date: Thu Aug 6 15:51:37 2015 +0800 drm/i915: Set power domain for DDI-E DDI-E and DDI-A share 4 the same DDI-A lanes. Signed-off-by: Rodrigo Vivi Reviewed-by: Xiong Zhang Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit 3774eb507e7b7df7f9b7d8d867eea330c7146aaa Author: Paulo Zanoni Date: Mon Aug 10 14:57:32 2015 -0300 drm/i915: fix stolen bios_reserved checks I started digging this when I noticed that the BDW code was just reserving 1mb by coincidence since it was reading reserved fields. Then I noticed we didn't have any values set for SNB and earlier, and that the HSW sizes were wrong. After that, I noticed that the reserved area has a specific start, and may not exactly end where the stolen memory ends. I also noticed the base pointer can be zero. So I decided to just write a single patch fixing everything instead of 20 patches that would be much harder to review. This patch may solve random stolen memory corruption/problems on almost all platforms. Notice that since this is always dealing with the top of the stolen memory, the problems are not so easy to reproduce - especially since FBC is still disabled by default. One of the major differences of this patch is that we now look at both the size and base address. By only looking at the size we were assuming that the reserved area was always at the very top of stolen, which is not always true. After we merge the patch series that allows user space to allocate stolen memory we'll be able to write IGT tests that maybe catch the bugs fixed by this patch. v2: - s/BIOS reserved/stolen reserved/g (Chris) - Don't DRM_ERROR if we can't do anything about it (Chris) - Improve debug messages (Chris). - Use the gen7 version instead of gen6 on HSW. Tom found some documentation problems, so I think with gen7 we're on the safer side (Tom). Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_stolen.c | 159 +++++++++++++++++++++++++++++---- drivers/gpu/drm/i915/i915_reg.h | 23 +++-- 2 files changed, 159 insertions(+), 23 deletions(-) commit cc53699b25b59eb1020af8064f99edd0014b7071 Author: Mika Kuoppala Date: Thu Aug 6 17:00:59 2015 +0300 drm/i915: Use masked write for Context Status Buffer Pointer This register needs to be updated with masked writes. This was found by code inspection and comparison with Bspec and doesn't seem to fix any known issue. Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry [danvet: Add note about impact.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9bd9dfb4f9a1edcbb561a80d00c234fbe11dc1a6 Author: Mika Kuoppala Date: Thu Aug 6 16:51:00 2015 +0300 drm/i915/skl WaDisableSbeCacheDispatchPortSharing Add WaDisableSbeCacheDispatchPortSharing:skl Cc: Arun Siluvery Signed-off-by: Mika Kuoppala Reviewed-by: Arun Siluvery Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 02196c776ec67e05d3003926ba648bd2eab20e29 Author: Mika Kuoppala Date: Thu Aug 6 16:48:58 2015 +0300 drm/i915: Spam less on dp aux send/receive problems If we encounter frequent problems with dp aux channel communications, we end up spamming the dmesg with the exact similar trace and status. Inject a new backtrace only if we have new information to share as otherwise we flush out all other important stuff. Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 842315ee7e416fa2f37c649c8a9ae6d6960b42a6 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:11 2015 +0200 drm/i915: Handle return value in intel_pin_and_fence_fb_obj, v2. -EDEADLK has special meaning in atomic, but get_fence may call i915_find_fence_reg which can return -EDEADLK. This has special meaning in the atomic world, so convert the error to -EBUSY for this case. Changes since v1: - Add comment in the code. Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 4740b0f2b80cc7810bf5fa871189c318b08dbc46 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:10 2015 +0200 drm/i915: Only update mode related state if a modeset happened. The rest will be a noop anyway, since without modeset there will be no updated dplls and no modeset state to update. Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) commit 2d406bb0d95c8dfdee4389471869a6e48c7b3432 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:09 2015 +0200 drm/i915: Remove connectors_active. There are no more users, byebye! Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 37 +----------------------------------- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 1 insertion(+), 37 deletions(-) commit e02f9a0610c1cbc6395858d1f2b68c48b820a971 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:08 2015 +0200 drm/i915: Remove connectors_active from intel_dp.c, v2. Now that everything's atomic, checking encoder->base.crtc is enough. This function doesn't have the locks to dereference crtc->state, but stealing an encoder bound to any crtc is probably enough reason to warn. Changes since v1: - Commit message. Cc: Ville Syrjälä Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 873ffe69a9097fb241fff2967ea6f0bf2c179195 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:07 2015 +0200 drm/i915: Remove connectors_active from sanitization, v2. connectors_active will be removed, so just calculate this instead. Changes since v1: - Look for the right pointer in intel_sanitize_encoder. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 4d688a2a15a52225289754627fc3a35f68c125ec Author: Maarten Lankhorst Date: Wed Aug 5 12:37:06 2015 +0200 drm/i915: Get rid of dpms handling. This is now done completely atomically. Keep connectors_active for now, but make it mirror crtc_state->active. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_crt.c | 49 +----------------- drivers/gpu/drm/i915/intel_display.c | 99 +----------------------------------- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_dp_mst.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 3 -- drivers/gpu/drm/i915/intel_dsi.c | 2 +- drivers/gpu/drm/i915/intel_dvo.c | 46 +---------------- drivers/gpu/drm/i915/intel_hdmi.c | 2 +- drivers/gpu/drm/i915/intel_lvds.c | 2 +- drivers/gpu/drm/i915/intel_sdvo.c | 47 +---------------- drivers/gpu/drm/i915/intel_tv.c | 2 +- 11 files changed, 11 insertions(+), 245 deletions(-) commit 4d20cd860bbe908ef62aa4673eeac8f8f2c43735 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:05 2015 +0200 drm/i915: Make crtc checking use the atomic state, v2. Instead of allocating pipe_config on the stack use the old crtc_state, it's only going to freed from this point on. All crtc' are now only checked once during modeset, because false positives can happen with encoders after dpms changes and to limit the amount of errors for 1 failure. Changes since v1: - crtc_state -> old_crtc_state - state -> old_state Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 118 +++++++++++++++++------------------ 1 file changed, 56 insertions(+), 62 deletions(-) commit 7c60d1984afa482f0648d963206124df6dca325e Author: Maarten Lankhorst Date: Wed Aug 5 12:37:04 2015 +0200 drm/i915: Remove connectors_active from state checking. Connectors are updated atomically now, so the only interaction with the encoder is through base.crtc. If it's NULL the encoder's not part of any crtc, and if it's not NULL then active should be equal to crtc_state->active. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 7b89b8de4e90d3c08f845e2b559929c8f77981ae Author: Maarten Lankhorst Date: Wed Aug 5 12:37:03 2015 +0200 drm/i915: Remove some unneeded checks from check_crtc_state. This is handled by the atomic core now, no need to check this for ourself. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit 35dd3c6450a6dc05781e391d6669df34044a7e0f Author: Maarten Lankhorst Date: Thu Aug 6 13:49:22 2015 +0200 drm/i915: Convert connector checking to atomic, v3. Right now dpms callbacks can still fiddle with the connector state, but it can only turn connectors off. This is remediated by only checking crtc->state->active when the connector is active, and ignore crtc->state->active when the connector is off. connectors_active is no longer checked, and will be removed later in this series together with dpms. Another check for !encoder->crtc is performed by check_encoder_state too, so it can be removed. Changes since v1: - Add commit message. - rename state to old_state. - Move deletion of mst_port check to mst patch. Changes since v2: - Fix a null pointer dereference on MST now hw readout is fixed. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 67 ++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 33 deletions(-) commit 20fae983c6667d038e810c618e3340946b8dc506 Author: Maarten Lankhorst Date: Thu Aug 6 13:47:36 2015 +0200 drm/i915: Update atomic state when removing mst connector, v3. Fully remove the MST connector from the atomic state, and remove the early returns in check_*_state for MST connectors. With atomic the state can be made consistent all the time. Thanks to Sivakumar Thulasimani for the idea of using drm_atomic_helper_set_config. Changes since v1: - Remove the MST check in intel_connector_check_state too. Changes since v2: - Use drm_atomic_helper_set_config. Signed-off-by: Maarten Lankhorst Cc: Sivakumar Thulasimani Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 11 ----------- drivers/gpu/drm/i915/intel_dp_mst.c | 13 ++++++++++++- 2 files changed, 12 insertions(+), 12 deletions(-) commit ee165b1a6e0269e5badde679f72fe39d3d15a7d4 Author: Maarten Lankhorst Date: Wed Aug 5 12:37:00 2015 +0200 drm/i915: Validate the state after an atomic modeset only, and pass the state. First step in removing dpms and validating atomic state. There can still be a mismatch in the connector state because the dpms callbacks are still used, but this can not happen immediately after a modeset. Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_crt.c | 2 -- drivers/gpu/drm/i915/intel_display.c | 12 ++++++------ drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_dvo.c | 2 -- drivers/gpu/drm/i915/intel_sdvo.c | 2 -- 5 files changed, 6 insertions(+), 13 deletions(-) commit c4e2d043ffb3714e63931aec52b8b920cc767367 Author: Maarten Lankhorst Date: Wed Aug 5 12:36:59 2015 +0200 drm/i915: Make the force_thru workaround atomic, v2. Set connectors_changed to force a modeset if the panel fitter's force enabled on eDP. Changes since v1: - Use connectors_changed instead of active_changed because it's a routing update. Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 82 +++++++++++------------------------- drivers/gpu/drm/i915/intel_display.c | 3 ++ 2 files changed, 27 insertions(+), 58 deletions(-) commit 8f9c98df949333f08b74e5df1caacf7e2c5e8552 Author: Emmanuel Grumbach Date: Sun Jul 19 16:09:12 2015 +0300 mac80211: fix BIT position for TDLS WIDE extended cap The bit was not according to ieee80211 specification. Fix that. Reviewed-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/linux/ieee80211.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 40d9a38ad3b7029be9c278738b67cbdb6349ce85 Author: Johannes Berg Date: Mon Jul 13 12:26:46 2015 +0200 mac80211: use DECLARE_EWMA Instead of using the out-of-line average calculation, use the new DECLARE_EWMA() macro to declare a signal EWMA, and use that. This actually *reduces* the code size slightly (on x86-64) while also reducing the station info size by 80 bytes. Signed-off-by: Johannes Berg net/mac80211/Kconfig | 1 - net/mac80211/mesh_plink.c | 2 +- net/mac80211/rx.c | 4 ++-- net/mac80211/sta_info.c | 9 +++++---- net/mac80211/sta_info.h | 6 ++++-- 5 files changed, 12 insertions(+), 10 deletions(-) commit 2377799c084d86d22074cd4acd20edc32024d669 Author: Johannes Berg Date: Mon Jul 13 12:17:25 2015 +0200 average: provide macro to create static EWMA Having the EWMA parameters stored in the runtime struct imposes memory requirements for the constant values that could just be inlined in the code. This particularly makes sense if there are a lot of such structs, for example in mac80211 in the station table where each station has a number of these in an array, and there can be many stations. Provide a macro DECLARE_EWMA() that declares the necessary struct and inline functions to access it with the parameters hard-coded; using this also means the user no longer needs to 'select AVERAGE' as it's entirely self-contained. In the mac80211 case, on x86-64, this actually slightly *reduces* code size, while also saving 80 bytes of runtime memory per sta. Signed-off-by: Johannes Berg include/linux/average.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 2459cd876e2828dc63c19ea5dadf8a94a8f11244 Author: Su Kang Yin Date: Fri Aug 7 16:54:10 2015 +0800 mac80211_hwsim: unregister genetlink family properly During hwsim_init_netlink(), we should call genl_unregister_family() if failed on netlink_register_notifier() since the genetlink is already registered. Signed-off-by: Su Kang Yin Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b119ad6e726cc805f739f8f6843b9de4df1f895e Author: Lorenzo Bianconi Date: Thu Aug 6 23:47:33 2015 +0200 mac80211: add rate mask logic for vht rates Define rc_rateidx_vht_mcs_mask array and rate_idx_match_vht_mcs_mask() method in order to apply mcs mask for vht rates Signed-off-by: Lorenzo Bianconi Signed-off-by: Johannes Berg net/mac80211/cfg.c | 16 +++++-- net/mac80211/debugfs_netdev.c | 34 ++++++++++++++ net/mac80211/ieee80211_i.h | 5 +++ net/mac80211/iface.c | 14 +++++- net/mac80211/rate.c | 102 +++++++++++++++++++++++++++++++++++++----- net/mac80211/vht.c | 26 +++++++++++ 6 files changed, 181 insertions(+), 16 deletions(-) commit e910867bd285bb8470c47076d99d0325aaea895c Author: Lorenzo Bianconi Date: Thu Aug 6 23:47:32 2015 +0200 mac80211: define rate_control_apply_mask_ratetbl() Define rate_control_apply_mask_ratetbl() in order to apply ratemask in rate_control_set_rates() for station rate table Signed-off-by: Lorenzo Bianconi Signed-off-by: Johannes Berg net/mac80211/rate.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 90c66bd2232ae6d3c88c1f3378e3028fded642b3 Author: Lorenzo Bianconi Date: Thu Aug 6 23:47:31 2015 +0200 mac80211: remove ieee80211_tx_rate dependency in rate mask code Remove ieee80211_tx_rate dependency in rate_idx_match_legacy_mask(), rate_idx_match_mcs_mask() and rate_idx_match_mask() in order to use the previous logic to define a ratemask in rate_control_set_rates() for station rate table. Moreover move rate mask definition logic in rate_control_cap_mask() Signed-off-by: Lorenzo Bianconi Signed-off-by: Johannes Berg net/mac80211/rate.c | 139 +++++++++++++++++++++++++++------------------------- 1 file changed, 71 insertions(+), 68 deletions(-) commit 35225eb7a5589407299033bfa7e1ac723b17e2b5 Author: Lorenzo Bianconi Date: Thu Aug 6 23:47:30 2015 +0200 mac80211: remove ieee80211_tx_info from rate_control_apply_mask signature Remove unnecessary ieee80211_tx_info pointer from rate_control_apply_mask signature. rate_control_apply_mask() will be used to define a ratemask in rate_control_set_rates() for station rate table Signed-off-by: Lorenzo Bianconi Signed-off-by: Johannes Berg net/mac80211/rate.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 4b819f6cc4221ea6dd250e006f7b9ab0f6c71b45 Author: Bertold Van den Bergh Date: Wed Aug 5 16:02:50 2015 +0200 mac80211: Make OCB mode set BSSID Perform the BSS_CHANGED_BSSID action when joining an OCB network. This is required to set the broadcast BSSID in some network drivers. Signed-off-by: Bertold Van den Bergh Signed-off-by: Johannes Berg net/mac80211/ocb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc11729893558b374316e6142dc383f0508436c8 Author: Bertold Van den Bergh Date: Wed Aug 5 16:02:42 2015 +0200 mac80211: Only accept data frames in OCB mode Currently OCB mode accepts frames with bssid==broadcast and type!=beacon. Some non-data frames are sent matching this, for example probe responses. This results in unnecessary creation of STA entries. Signed-off-by: Bertold Van den Bergh Signed-off-by: Johannes Berg net/mac80211/rx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5765f9f66e72ddedfe04e057a5a01454d7b67157 Author: Bertold Van den Bergh Date: Wed Aug 5 16:02:28 2015 +0200 mac80211: Set txrc.bss to true for OCB interfaces To make mac80211 accept the multicast rate requested by the user the rate control should be told that it is operating in BSS mode. Without this, the default rate is selected in rate_control_send_low (!pubsta and !txrc->bss) Signed-off-by: Bertold Van den Bergh Signed-off-by: Johannes Berg net/mac80211/tx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 876dc9308e8b8a8fb57059234e57f4145c870c3c Author: Bertold Van den Bergh Date: Wed Aug 5 16:02:21 2015 +0200 nl80211: Allow setting multicast rate on OCB interfaces Allow setting multicast rate on OCB interfaces. Current behaviour results in EOPNOTSUPP when attempting this. Signed-off-by: Bertold Van den Bergh Signed-off-by: Johannes Berg net/wireless/nl80211.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9189ee31df40f88808daee10aa7f99ba43ff8b13 Author: Michal Kazior Date: Mon Aug 3 10:55:24 2015 +0200 cfg80211: propagate set_wiphy failure to userspace If driver failed to setup wiphy params (e.g. rts threshold, fragmentation treshold) userspace wasn't properly notified about this. This could lead to user confusion who would think the command succeeded even if that wasn't the case. Signed-off-by: Michal Kazior Signed-off-by: Johannes Berg net/wireless/nl80211.c | 1 + 1 file changed, 1 insertion(+) commit 4edd56981c8fbb349b1529a2feaf772636eb1c83 Author: Matthias May Date: Fri Jul 17 15:28:39 2015 +0200 cfg80211: regulatory: handle 5 and 10 MHz channels properly The original assumption of 20MHz wide channels hasn't been true since the addition of support for 5 and 10 MHz channels. Change the code to no longer disable all channels that don't fit into the 20MHz grid, but instead set the appropriate flags to disable operation on specific bandwidths. Signed-off-by: Matthias May [reword commit message] Signed-off-by: Johannes Berg net/wireless/reg.c | 64 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 11 deletions(-) commit 74346841e6f5df5f7b83d5904435d273c507dba6 Author: Ricardo Ribalda Delgado Date: Thu Aug 13 16:09:28 2015 +0200 spi/spi-xilinx: Fix spurious IRQ ACK on irq mode The ACK of an inexistent IRQ can trigger an spurious IRQ that breaks the txrx logic. This has been observed on axi_quad_spi:3.2 core. This patch only ACKs IRQs that have not been Acknowledge jet. Reported-by: Edward Kigwana Tested-by: Edward Kigwana Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-xilinx.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 9d8352864907f0ad76124c5b28f65b5a382d7d7c Author: Axel Lin Date: Fri Aug 14 17:54:07 2015 +0800 ASoC: adav80x: Remove .read_flag_mask setting from adav80x_regmap_config Don't set .read_flag_mask for adav803, it's for adav801 only. Fixes: 0c2d69645628 ("ASoC: adav80x: Split SPI and I2C code into different modules") Signed-off-by: Axel Lin Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/adav80x.c | 1 - 1 file changed, 1 deletion(-) commit 3ee550f12c1529a023f71c9b5becb3351911047b Author: David Woodhouse Date: Fri Aug 14 16:17:16 2015 +0100 modsign: Handle signing key in source tree Since commit 1329e8cc69 ("modsign: Extract signing cert from CONFIG_MODULE_SIG_KEY if needed"), the build system has carefully coped with the signing key being specified as a relative path in either the source or or the build trees. However, the actual signing of modules has not worked if the filename is relative to the source tree. Fix that by moving the config_filename helper into scripts/Kbuild.include so that it can be used from elsewhere, and then using it in the top-level Makefile to find the signing key file. Kill the intermediate $(MODPUBKEY) and $(MODSECKEY) variables too, while we're at it. There's no need for them. Signed-off-by: David Woodhouse Signed-off-by: David Howells Makefile | 7 +++---- certs/Makefile | 54 -------------------------------------------------- scripts/Kbuild.include | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 58 deletions(-) commit 62172c81f2d6c2311284467d6aaa00bd8967e136 Author: David Woodhouse Date: Fri Aug 14 15:33:56 2015 +0100 modsign: Use if_changed rule for extracting cert from module signing key We couldn't use if_changed for this before, because it didn't live in the kernel/ directory so we couldn't add it to $(targets). It was easier just to leave it as it was. Now it's in the certs/ directory we can use if_changed, the same as we do for the trusted certificate list. Aside from making things consistent, this means we don't need to depend explicitly on the include/config/module/sig/key.h file. And we also get to automatically do the right thing and re-extract the cert if the user does odd things like using a relative filename and then playing silly buggers with adding/removing that file in both the source and object trees. We always favour the one in the object tree if it exists, and now we'll correctly re-extract the cert when it changes. Previously we'd *only* re-extract the cert if the config option changed, even if the actual file we're using did change. Signed-off-by: David Woodhouse Signed-off-by: David Howells certs/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit cfc411e7fff3e15cd6354ff69773907e2c9d1c0c Author: David Howells Date: Fri Aug 14 15:20:41 2015 +0100 Move certificate handling to its own directory Move certificate handling out of the kernel/ directory and into a certs/ directory to get all the weird stuff in one place and move the generated signing keys into this directory. Signed-off-by: David Howells Reviewed-by: David Woodhouse Documentation/module-signing.txt | 18 ++--- MAINTAINERS | 9 +++ Makefile | 4 +- certs/Kconfig | 42 +++++++++++ certs/Makefile | 147 ++++++++++++++++++++++++++++++++++++ certs/system_certificates.S | 23 ++++++ certs/system_keyring.c | 157 +++++++++++++++++++++++++++++++++++++++ crypto/Kconfig | 1 + init/Kconfig | 39 ---------- kernel/Makefile | 143 ----------------------------------- kernel/system_certificates.S | 23 ------ kernel/system_keyring.c | 157 --------------------------------------- 12 files changed, 390 insertions(+), 373 deletions(-) commit bc18e31c3042f14fa5f2ff5c21136e2fdf4140f8 Author: Julian Scheel Date: Fri Aug 14 16:14:45 2015 +0200 ALSA: usb-audio: Fix parameter block size for UAC2 control requests USB Audio Class version 2.0 supports three different parameter block sizes for CUR requests, which are 1 byte (5.2.3.1 Layout 1 Parameter Block), 2 bytes (5.2.3.2 Layout 2 Parameter Block) and 4 bytes (5.2.3.3 Layout 3 Parameter Block). Use the correct size according to the specific control as it was already done for UACv1. The allocated block size for control requests is increased to support the 4 byte worst case. Signed-off-by: Julian Scheel Signed-off-by: Takashi Iwai sound/usb/mixer.c | 64 ++++++++++++++++++++++++++++++++++++++----------------- sound/usb/mixer.h | 2 ++ 2 files changed, 46 insertions(+), 20 deletions(-) commit 258d9bc5e77fa40e290a0bd480d5349224374480 Author: Thierry Reding Date: Fri Aug 14 16:17:52 2015 +0200 ARM: tegra: Update multi_v7_defconfig Add Tegra-specific configuration options to multi_v7_defconfig: * HDA controller and codec support * Watchdog support * Nouveau (for GK20A GPU) support Signed-off-by: Thierry Reding arch/arm/configs/multi_v7_defconfig | 9 +++++++++ 1 file changed, 9 insertions(+) commit 461cfe4e2f5d000f76a38fb7cefd2fedf42c9026 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:51 2015 +0300 ARM: tegra: Update default configuration * CPU frequency scaling for Tegra124 * Nouveau (for GK20A GPU) support Signed-off-by: Thierry Reding arch/arm/configs/tegra_defconfig | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit f0d9ac7510ee06162c9db31851a1169ae716867e Merge: 1f408d5 73c8f0c 05aa7d6 Author: Bjorn Helgaas Date: Fri Aug 14 08:21:16 2015 -0500 Merge branches 'pci/host-dra7xx' and 'pci/host-iproc' into next * pci/host-dra7xx: ARM: dts: am57xx-evm: Add 'gpios' property with gpio2_8 PCI: dra7xx: Add support to make GPIO drive PERST# line PCI: dra7xx: Clear MSE bit during suspend so clocks will idle PCI: dra7xx: Add PM support PCI: dra7xx: Disable pm_runtime on get_sync failure * pci/host-iproc: PCI: iproc: Allow BCMA bus driver to be built as module PCI: iproc: Add arm64 support PCI: iproc: Delete unnecessary checks before phy calls commit 1f408d57437e53ae9aa6edb335ff9fe7ba7aba2c Merge: 5a4f3cf 2db0f71 f7ef134 3e14675 95e1658 Author: Bjorn Helgaas Date: Fri Aug 14 08:16:29 2015 -0500 Merge branches 'pci/hotplug', 'pci/iommu', 'pci/irq' and 'pci/virtualization' into next * pci/hotplug: PCI: pciehp: Remove ignored MRL sensor interrupt events PCI: pciehp: Remove unused interrupt events PCI: pciehp: Handle invalid data when reading from non-existent devices PCI: Hold pci_slot_mutex while searching bus->slots list PCI: Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem PCI: pciehp: Simplify pcie_poll_cmd() PCI: Use "slot" and "pci_slot" for struct hotplug_slot and struct pci_slot * pci/iommu: PCI: Remove pci_ats_enabled() PCI: Stop caching ATS Invalidate Queue Depth PCI: Move ATS declarations to linux/pci.h so they're all together PCI: Clean up ATS error handling PCI: Use pci_physfn() rather than looking up physfn by hand PCI: Inline the ATS setup code into pci_ats_init() PCI: Rationalize pci_ats_queue_depth() error checking PCI: Reduce size of ATS structure elements PCI: Embed ATS info directly into struct pci_dev PCI: Allocate ATS struct during enumeration iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth * pci/irq: PCI: Kill off set_irq_flags() usage * pci/virtualization: PCI: Add ACS quirks for Intel I219-LM/V commit 9e8df8a219635c5af36a49d78c1f69009b780339 Author: Daniel Axtens Date: Fri Aug 14 17:41:26 2015 +1000 cxl: EEH support EEH (Enhanced Error Handling) allows a driver to recover from the temporary failure of an attached PCI card. Enable basic CXL support for EEH. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 1 + drivers/misc/cxl/pci.c | 253 ++++++++++++++++++++++++++++++++++++++++++++++++ drivers/misc/cxl/vphb.c | 8 ++ 3 files changed, 262 insertions(+) commit 13e68d8bd05c998cae452a4f3400af1e8edd852e Author: Daniel Axtens Date: Fri Aug 14 17:41:25 2015 +1000 cxl: Allow the kernel to trust that an image won't change on PERST. Provide a kernel API and a sysfs entry which allow a user to specify that when a card is PERSTed, it's image will stay the same, allowing it to participate in EEH. cxl_reset is used to reflash the card. In that case, we cannot safely assert that the image will not change. Therefore, disallow cxl_reset if the flag is set. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman Documentation/ABI/testing/sysfs-class-cxl | 10 ++++++++++ drivers/misc/cxl/api.c | 7 +++++++ drivers/misc/cxl/cxl.h | 1 + drivers/misc/cxl/pci.c | 7 +++++++ drivers/misc/cxl/sysfs.c | 26 ++++++++++++++++++++++++++ include/misc/cxl.h | 10 ++++++++++ 6 files changed, 61 insertions(+) commit 4e1efb403c1c016ae831bd9988a7d2e5e0af41a0 Author: Daniel Axtens Date: Fri Aug 14 17:41:24 2015 +1000 cxl: Don't remove AFUs/vPHBs in cxl_reset If the driver doesn't participate in EEH, the AFUs will be removed by cxl_remove, which will be invoked by EEH. If the driver does particpate in EEH, the vPHB needs to stick around so that the it can particpate. In both cases, we shouldn't remove the AFU/vPHB. Reviewed-by: Cyril Bur Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 5 ----- 1 file changed, 5 deletions(-) commit d76427b0d89524fdb623774a22a005ba5c400134 Author: Daniel Axtens Date: Fri Aug 14 17:41:23 2015 +1000 cxl: Refactor AFU init/teardown As with an adapter, some aspects of initialisation are done only once in the lifetime of an AFU: for example, allocating memory, or setting up sysfs/debugfs files. However, we may want to be able to do some parts of the initialisation multiple times: for example, in error recovery we want to be able to tear down and then re-map IO memory and IRQs. Therefore, refactor AFU init/teardown as follows. - Create two new functions: 'cxl_configure_afu', and its pair 'cxl_deconfigure_afu'. As with the adapter functions, these (de)configure resources that do not need to last the entire lifetime of the AFU. - Allocating and releasing memory remain the task of 'cxl_alloc_afu' and 'cxl_release_afu'. - Once-only functions that do not involve allocating/releasing memory stay in the overarching 'cxl_init_afu'/'cxl_remove_afu' pair. However, the task of picking an AFU mode and activating it has been broken out. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 95 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 38 deletions(-) commit c044c4154247372c86b468644de88a4e48f903e9 Author: Daniel Axtens Date: Fri Aug 14 17:41:22 2015 +1000 cxl: Refactor adaptor init/teardown Some aspects of initialisation are done only once in the lifetime of an adapter: for example, allocating memory for the adapter, allocating the adapter number, or setting up sysfs/debugfs files. However, we may want to be able to do some parts of the initialisation multiple times: for example, in error recovery we want to be able to tear down and then re-map IO memory and IRQs. Therefore, refactor CXL init/teardown as follows. - Keep the overarching functions 'cxl_init_adapter' and its pair, 'cxl_remove_adapter'. - Move all 'once only' allocation/freeing steps to the existing 'cxl_alloc_adapter' function, and its pair 'cxl_release_adapter' (This involves moving allocation of the adapter number out of cxl_init_adapter.) - Create two new functions: 'cxl_configure_adapter', and its pair 'cxl_deconfigure_adapter'. These two functions 'wire up' the hardware --- they (de)configure resources that do not need to last the entire lifetime of the adapter Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 139 ++++++++++++++++++++++++++++++------------------- 1 file changed, 86 insertions(+), 53 deletions(-) commit 575e6986f028711287fbbf250e5289a089bac8cb Author: Daniel Axtens Date: Fri Aug 14 17:41:21 2015 +1000 cxl: Clean up adapter MMIO unmap path. - MMIO pointer unmapping is guarded by a null pointer check. However, iounmap doesn't null the pointer, just invalidate it. Therefore, explicitly null the pointer after unmapping. - afu_desc_mmio also needs to be unmapped. - PCI regions are allocated in cxl_map_adapter_regs. Therefore they should be released in unmap, not elsewhere. Acked-by: Cyril Bur Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit e640d2fc811ff8cc1451f92490d3ccc2adcad179 Author: Daniel Axtens Date: Fri Aug 14 17:41:20 2015 +1000 cxl: Make IRQ release idempotent Check if an IRQ is mapped before releasing it. This will simplify future EEH code by allowing unconditional unmapping of IRQs. Acked-by: Cyril Bur Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/irq.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 05155772f642a5b0e421adf2017f993759bf7f95 Author: Daniel Axtens Date: Fri Aug 14 17:41:19 2015 +1000 cxl: Allocate and release the SPA with the AFU Previously the SPA was allocated and freed upon entering and leaving AFU-directed mode. This causes some issues for error recovery - contexts hold a pointer inside the SPA, and they may persist after the AFU has been detached. We would ideally like to allocate the SPA when the AFU is allocated, and release it until the AFU is released. However, we don't know how big the SPA needs to be until we read the AFU descriptor. Therefore, restructure the code: - Allocate the SPA only once, on the first attach. - Release the SPA only when the entire AFU is being released (not detached). Guard the release with a NULL check, so we don't free if it was never allocated (e.g. dedicated mode) Acked-by: Cyril Bur Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 3 +++ drivers/misc/cxl/native.c | 33 ++++++++++++++++++++++----------- drivers/misc/cxl/pci.c | 2 ++ 3 files changed, 27 insertions(+), 11 deletions(-) commit 0b3f9c757cabad4b8101c5fcddddd029ed5506a6 Author: Daniel Axtens Date: Fri Aug 14 17:41:18 2015 +1000 cxl: Drop commands if the PCI channel is not in normal state If the PCI channel has gone down, don't attempt to poke the hardware. We need to guard every time cxl_whatever_(read|write) is called. This is because a call to those functions will dereference an offset into an mmio register, and the mmio mappings get invalidated in the EEH teardown. Check in the read/write functions in the header. We give them the same semantics as usual PCI operations: - a write to a channel that is down is ignored. - a read from a channel that is down returns all fs. Also, we try to access the MMIO space of a vPHB device as part of the PCI disable path. Because that's a read that bypasses most of our usual checks, we handle it explicitly. As far as user visible warnings go: - Check link state in file ops, return -EIO if down. - Be reasonably quiet if there's an error in a teardown path, or when we already know the hardware is going down. - Throw a big WARN if someone tries to start a CXL operation while the card is down. This gives a useful stacktrace for debugging whatever is doing that. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/context.c | 6 +++- drivers/misc/cxl/cxl.h | 44 ++++++++++++++++++++++------ drivers/misc/cxl/file.c | 19 ++++++++++++ drivers/misc/cxl/native.c | 72 ++++++++++++++++++++++++++++++++++++++++++++-- drivers/misc/cxl/vphb.c | 26 +++++++++++++++++ 5 files changed, 155 insertions(+), 12 deletions(-) commit 588b34be20bc3dd7441c108c95039933699467ab Author: Daniel Axtens Date: Fri Aug 14 17:41:17 2015 +1000 cxl: Convert MMIO read/write macros to inline functions We're about to make these more complex, so make them functions first. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/cxl.h | 51 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 16 deletions(-) commit e642d11bdbfe8eb10116ab3959a2b5d75efda832 Author: Daniel Axtens Date: Fri Aug 14 16:03:19 2015 +1000 powerpc/eeh: Probe after unbalanced kref check In the complete hotplug case, EEH PEs are supposed to be released and set to NULL. Normally, this is done by eeh_remove_device(), which is called from pcibios_release_device(). However, if something is holding a kref to the device, it will not be released, and the PE will remain. eeh_add_device_late() has a check for this which will explictly destroy the PE in this case. This check in eeh_add_device_late() occurs after a call to eeh_ops->probe(). On PowerNV, probe is a pointer to pnv_eeh_probe(), which will exit without probing if there is an existing PE. This means that on PowerNV, devices with outstanding krefs will not be rediscovered by EEH correctly after a complete hotplug. This is affecting CXL (CAPI) devices in the field. Put the probe after the kref check so that the PE is destroyed and affected devices are correctly rediscovered by EEH. Fixes: d91dafc02f42 ("powerpc/eeh: Delay probing EEH device during hotplug") Cc: stable@vger.kernel.org Cc: Gavin Shan Signed-off-by: Daniel Axtens Acked-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/kernel/eeh.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0e38c35815f50e5a347977d76fb5eb4c3bf020b5 Merge: e4fc02f 3d04c92 Author: James Morris Date: Fri Aug 14 17:35:10 2015 +1000 Merge branch 'smack-for-4.3' of https://github.com/cschaufler/smack-next into next commit 10be6c0f27d729dcebaa0ac5f168009244d71fed Author: Ben YoungTae Kim Date: Thu Aug 13 22:09:42 2015 -0700 Bluetooth: hciuart: Fix to use boolean flag with u32 type debugfs_create_bool is asking to put u32 type pointer instead of bool so that passing bool type with u32* cast will cause memory corruption to read that value since it is handled by 4 bytes instead of 1 byte inside. Signed-off-by: Ben Young Tae Kim Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_qca.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e63dbd16ab7be41f5b66a70f1082242d76dd21d7 Author: Gautham R. Shenoy Date: Wed Aug 5 12:38:31 2015 +0530 powerpc: Add an inline function to update POWER8 HID0 Section 3.7 of Version 1.2 of the Power8 Processor User's Manual prescribes that updates to HID0 be preceded by a SYNC instruction and followed by an ISYNC instruction (Page 91). Create an inline function name update_power8_hid0() which follows this recipe and invoke it from the static split core path. Signed-off-by: Gautham R. Shenoy Reviewed-by: Sam Bobroff Tested-by: Sam Bobroff Signed-off-by: Michael Ellerman arch/powerpc/include/asm/reg.h | 9 +++++++++ arch/powerpc/platforms/powernv/subcore.c | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit d52736e24fe2e927c26817256f8d1a3c8b5d51a0 Merge: 0344338 193125d Author: David S. Miller Date: Thu Aug 13 22:43:22 2015 -0700 Merge branch 'vrf-lite' David Ahern says: ==================== VRF-lite - v6 In the context of internet scale routing a requirement that always comes up is the need to partition the available routing tables into disjoint routing planes. A specific use case is the multi-tenancy problem where each tenant has their own unique routing tables and in the very least need different default gateways. This patch allows the ability to create virtual router domains (aka VRFs (VRF-lite to be specific) in the linux packet forwarding stack. The main observation is that through the use of rules and socket binding to interfaces, all the facilities that we need are already present in the infrastructure. What is missing is a handle that identifies a routing domain and can be used to gather applicable rules/tables and uniqify neighbor selection. The scheme used needs to preserves the notions of ECMP, and general routing principles. This driver is a cross between functionality that the IPVLAN driver and the Team drivers provide where a device is created and packets into/out of the routing domain are shuttled through this device. The device is then used as a handle to identify the applicable rules. The VRF device is thus the layer3 equivalent of a vlan device. The very important point to note is that this is only a Layer3 concept so L2 tools (e.g., LLDP) do not need to be run in each VRF, processes can run in unaware mode or select a VRF to be talking through. Also the behavioral model is a generalized application of the familiar VRF-Lite model with some performance paths that need optimization. (Specifically the output route selector that Roopa, Robert, Thomas and EricB are currently discussing on the MPLS thread) High Level points ================= 1. Simple overlay driver (minimal changes to current stack) * uses the existing fib tables and fib rules infrastructure 2. Modelled closely after the ipvlan driver 3. Uses current API and infrastructure. * Applications can use SO_BINDTODEVICE or cmsg device indentifiers to pick VRF (ping, traceroute just work) * Standard IP Rules work, and since they are aggregated against the device, scale is manageable 4. Completely orthogonal to Namespaces and only provides separation in the routing plane (and ARP) N2 N1 (all configs here) +---------------+ +--------------+ | | |swp1 :10.0.1.1+----------------------+swp1 :10.0.1.2 | | | | | |swp2 :10.0.2.1+----------------------+swp2 :10.0.2.2 | | | +---------------+ | VRF 1 | | table 5 | | | +---------------+ | | | VRF 2 | N3 | table 6 | +---------------+ | | | | |swp3 :10.0.2.1+----------------------+swp1 :10.0.2.2 | | | | | |swp4 :10.0.3.1+----------------------+swp2 :10.0.3.2 | +--------------+ +---------------+ Given the topology above, the setup needed to get the basic VRF functions working would be Create the VRF devices and associate with a table ip link add vrf1 type vrf table 5 ip link add vrf2 type vrf table 6 Install the lookup rules that map table to VRF domain ip rule add pref 200 oif vrf1 lookup 5 ip rule add pref 200 iif vrf1 lookup 5 ip rule add pref 200 oif vrf2 lookup 6 ip rule add pref 200 iif vrf2 lookup 6 ip link set vrf1 up ip link set vrf2 up Enslave the routing member interfaces ip link set swp1 master vrf1 ip link set swp2 master vrf1 ip link set swp3 master vrf2 ip link set swp4 master vrf2 Connected and local routes are automatically moved from main and local tables to the VRF table. ping using VRF0 is simply ping -I vrf0 10.0.1.2 Design Highlights ================= If a device is enslaved to a VRF device (ie., associated with a VRF) then: 1. Rx path The master device index is used as the iif for all lookups. 2. Tx path Similarly, for Tx the VRF device oif is used in the flow to direct lookups to the table associated with the VRF via its rule. From there the FLOWI_FLAG_VRFSRC flag is used to indicate that the oif should not be used for FIB table lookups. 3. Connected and local routes On link up for a device, connected and local routes are added to the table associated with the VRF device, rather than the local and main tables. 4. Socket lookups Sockets operating in the VRF must be bound to the VRF device. As such socket lookups compare the VRF device index to sk_bound_dev_if. 5. Neighbor entries Neighbor entries are not impacted by the VRF device. Entries are associated with a particular interface; the VRF association is indirect via the interface-to-VRF device enslavement. Version 6 - addressed comments from DaveM - added patch to properly set oif in ip_send_unicast_reply. Needs to be set to VRF device for proper FIB lookup - added patch to handle IP fragments Version 5 - dropped patch regarding socket lookups; no longer needed + removed vrf helpers no longer needed after this patch is dropped - removed dev_open and close operations + no need to reset vrf data on an ifdown and creates problems if a slave is deleted while the vrf interface is down (Thanks, Nikolay) - cleanups for sparse warnings + make C=2 is now clean for vrf driver Version 4 - builds are clean with and without VRF device enabled (no, yes and module) - tightened the driver implementation + device add/delete, slave add/remove, and module unload are all clean - fixed RCU references + with RCU and lock debugging enabled changes are clean through the suite of tests - TX path uses custom dst, so patch refactoring rtable allocation is dropped along with the patch adding rt_nexthop helper - dropped the task patch that adds default bind to interface for sockets and the associated chvrf example command + the patches are a convenience for running unmodified code. They are not needed for the core functionality. Any application with support for SO_BINDTODEVICE works properly with this patch set. Version 3 - addressed comments from first 2 RFCs with the exception of the name Nicolas: We will do the name conversion once we agree on what the correct name should be (vrf, mrf or something else) - packets flow through the VRF device in both directions allowing the following: - tcpdump -i vrf - tc rules on vrf device - netfilter rules on vrf device TO-DO ===== 1. IPv6 2. ipsec, xfrms - dst patch accepted into ipsec-next; will post VRF patch once merge happens 3. listen filter to allow 1 socket to work with multiple VRF devices - i.e., bind to VRF's a, b, c only or NOT VRFs e, f, g Eric B: I have ipsec working with VRFs implemented using the VRF driver, including the worst case scenario of complete duplication in the networking config. Thanks to Nikolay for his many, many code reviews whipping the device driver into shape, and bug-Fixes and ideas from Hannes, Roopa Prabhu, Jon Toppins, Jamal. ==================== Signed-off-by: David S. Miller commit 193125dbd8eb292d88feb201f030889b488b0a02 Author: David Ahern Date: Thu Aug 13 14:59:10 2015 -0600 net: Introduce VRF device driver This driver borrows heavily from IPvlan and teaming drivers. Routing domains (VRF-lite) are created by instantiating a VRF master device with an associated table and enslaving all routed interfaces that participate in the domain. As part of the enslavement, all connected routes for the enslaved devices are moved to the table associated with the VRF device. Outgoing sockets must bind to the VRF device to function. Standard FIB rules bind the VRF device to tables and regular fib rule processing is followed. Routed traffic through the box, is forwarded by using the VRF device as the IIF and following the IIF rule to a table that is mated with the VRF. Example: Create vrf 1: ip link add vrf1 type vrf table 5 ip rule add iif vrf1 table 5 ip rule add oif vrf1 table 5 ip route add table 5 prohibit default ip link set vrf1 up Add interface to vrf 1: ip link set eth1 master vrf1 Signed-off-by: Shrijeet Mukherjee Signed-off-by: David Ahern Signed-off-by: David S. Miller drivers/net/Kconfig | 7 + drivers/net/Makefile | 1 + drivers/net/vrf.c | 685 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 693 insertions(+) commit 9972f134a273d6dc52d912a3513fa06b426de9b4 Author: David Ahern Date: Thu Aug 13 14:59:09 2015 -0600 net: frags: Add VRF device index to cache and lookup Fragmentation cache uses information from the IP header to reassemble packets. That information can be duplicated across VRFs -- same source and destination addresses, protocol and id. Handle fragmentation with VRFs by adding the VRF device index to entries in the cache and the lookup arg. Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/ip_fragment.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit f7ba868b71bc858cf06de11fc8150c4552cfad81 Author: David Ahern Date: Thu Aug 13 14:59:08 2015 -0600 net: Use VRF index for oif in ip_send_unicast_reply If output device is not specified use VRF device if input device is enslaved. This is needed to ensure tcp acks and resets go out VRF device. Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/ip_output.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 3bfd847203c6d89532f836ad3f5b4ff4ced26dd9 Author: David Ahern Date: Thu Aug 13 14:59:07 2015 -0600 net: Use passed in table for nexthop lookups If a user passes in a table for new routes use that table for nexthop lookups. Specifically, this solves the case where a connected route does not exist in the main table, but only another table and then a subsequent route is added with a next hop using the connected route. ie., $ ip route ls default via 10.0.2.2 dev eth0 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 169.254.0.0/16 dev eth0 scope link metric 1003 192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.51 $ ip route ls table 10 1.1.1.0/24 dev eth2 scope link Without this patch adding a nexthop route fails: $ ip route add table 10 2.2.2.0/24 via 1.1.1.10 RTNETLINK answers: Network is unreachable With this patch the route is added successfully. Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 021dd3b8a142d482cb65a27bf6644e3764001460 Author: David Ahern Date: Thu Aug 13 14:59:06 2015 -0600 net: Add routes to the table associated with the device When a device associated with a VRF is brought up or down routes should be added to/removed from the table associated with the VRF. fib_magic defaults to using the main or local tables. Have it use the table with the device if there is one. A part of this is directing prefsrc validations to the correct table as well. Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_frontend.c | 8 ++++---- net/ipv4/fib_semantics.c | 25 +++++++++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) commit 30bbaa19500559d7625c65632195413f639b3b97 Author: David Ahern Date: Thu Aug 13 14:59:05 2015 -0600 net: Fix up inet_addr_type checks Currently inet_addr_type and inet_dev_addr_type expect local addresses to be in the local table. With the VRF device local routes for devices associated with a VRF will be in the table associated with the VRF. Provide an alternate inet_addr lookup to use a specific table rather than defaulting to the local table. inet_addr_type_dev_table keeps the same semantics as inet_addr_type but if the passed in device is enslaved to a VRF then the table for that VRF is used for the lookup. Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/route.h | 3 +++ net/ipv4/af_inet.c | 13 ++++++++++++- net/ipv4/arp.c | 15 +++++++++------ net/ipv4/fib_frontend.c | 25 ++++++++++++++++++++++--- net/ipv4/fib_semantics.c | 6 ++++-- net/ipv4/icmp.c | 5 +++-- 6 files changed, 53 insertions(+), 14 deletions(-) commit 15be405eb2ea943ac5fa2aab7d0ba282e9ef1301 Author: David Ahern Date: Thu Aug 13 14:59:04 2015 -0600 net: Add inet_addr lookup by table Currently inet_addr_type and inet_dev_addr_type expect local addresses to be in the local table. With the VRF device local routes for devices associated with a VRF will be in the table associated with the VRF. Provide an alternate inet_addr lookup to use a specific table rather than defaulting to the local table. Signed-off-by: Shrijeet Mukherjee Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/route.h | 1 + net/ipv4/fib_frontend.c | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) commit 9a24abfa42613fefc68963a98c2b7ab7fd7e374c Author: David Ahern Date: Thu Aug 13 14:59:03 2015 -0600 udp: Handle VRF device in sendmsg For unconnected UDP sockets using a VRF device lookup source address based on VRF table. This allows the UDP header to be properly setup before showing up at the VRF device via the dst. Signed-off-by: Shrijeet Mukherjee Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/udp.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) commit 613d09b30f8b589d5a9b49775054c8865db95d1c Author: David Ahern Date: Thu Aug 13 14:59:02 2015 -0600 net: Use VRF device index for lookups on TX As with ingress use the index of VRF master device for route lookups on egress. However, the oif should only be used to direct the lookups to a specific table. Routes in the table are not based on the VRF device but rather interfaces that are part of the VRF so do not consider the oif for lookups within the table. The FLOWI_FLAG_VRFSRC is used to control this latter part. Signed-off-by: Shrijeet Mukherjee Signed-off-by: David Ahern Signed-off-by: David S. Miller include/net/flow.h | 1 + include/net/route.h | 3 +++ net/ipv4/fib_trie.c | 7 +++++-- net/ipv4/icmp.c | 4 ++++ net/ipv4/route.c | 5 +++++ 5 files changed, 18 insertions(+), 2 deletions(-) commit cd2fbe1b6b517ca7c0e80b103c674fdf5bd50f76 Author: David Ahern Date: Thu Aug 13 14:59:01 2015 -0600 net: Use VRF device index for lookups on RX On ingress use index of VRF master device for route lookups if real device is enslaved. Rules are expected to be installed for the VRF device to direct lookups to a specific table. Signed-off-by: Shrijeet Mukherjee Signed-off-by: David Ahern Signed-off-by: David S. Miller net/ipv4/fib_frontend.c | 8 +++++++- net/ipv4/route.c | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) commit 4e3c89920cd3a6cfce22c6f537690747c26128dd Author: David Ahern Date: Thu Aug 13 14:59:00 2015 -0600 net: Introduce VRF related flags and helpers Add a VRF_MASTER flag for interfaces and helper functions for determining if a device is a VRF_MASTER. Add link attribute for passing VRF_TABLE id. Add vrf_ptr to netdevice. Add various macros for determining if a device is a VRF device, the index of the master VRF device and table associated with VRF device. Signed-off-by: Shrijeet Mukherjee Signed-off-by: David Ahern Signed-off-by: David S. Miller include/linux/netdevice.h | 20 +++++++ include/net/vrf.h | 139 +++++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/if_link.h | 9 +++ 3 files changed, 168 insertions(+) commit 0344338bd883e5e4a2f80409ed8260cd65d69e3b Author: Andy Gospodarek Date: Thu Aug 13 15:26:35 2015 -0400 net: addr IFLA_OPERSTATE to netlink message for ipv6 ifinfo This is useful information to include in ipv6 netlink messages that report interface information. IFLA_OPERSTATE is already included in ipv4 messages, but missing for ipv6. This closes that gap. Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller net/ipv6/addrconf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit da65ad1fe399d77234a4caa50008c6b87f1fe401 Author: Sasha Levin Date: Thu Aug 13 14:03:16 2015 -0400 net: allow sleeping when modifying store_rps_map Commit 10e4ea751 ("net: Fix race condition in store_rps_map") has moved the manipulation of the rps_needed jump label under a spinlock. Since changing the state of a jump label may sleep this is incorrect and causes warnings during runtime. Make rps_map_lock a mutex to allow sleeping under it. Fixes: 10e4ea751 ("net: Fix race condition in store_rps_map") Signed-off-by: Sasha Levin Acked-by: Tom Herbert Signed-off-by: David S. Miller net/core/net-sysfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 968d7cb82aad3c6bfada79a8e26d65a1fb3f618a Merge: 35103d1 8efdda4 Author: David S. Miller Date: Thu Aug 13 21:31:14 2015 -0700 Merge branch 'mv88e6xxx-hw-vlan' Vivien Didelot says: ==================== net: dsa: mv88e6xxx: add hardware VLAN support This patchset brings support to access hardware VLAN entries in DSA and mv88e6xxx, through switchdev VLAN objects. In the following example, ports swp[0-2] belong to bridge br0, and ports swp[3-4] belong to bridge br1. Here's an example of what can be achieved after this patchset: # bridge vlan add dev swp1 vid 100 master # bridge vlan add dev swp2 vid 100 master # bridge vlan add dev swp3 vid 100 master # bridge vlan add dev swp4 vid 100 master # bridge vlan del dev swp1 vid 100 master The above commands correctly programmed hardware VLAN 100 for port swp2, while ports swp3 and swp4 use software VLAN 100, as shown with: # bridge vlan port vlan ids swp0 None swp0 swp1 None swp1 swp2 100 swp2 100 swp3 100 swp3 swp4 100 swp4 br0 None br1 None Assuming that port 5 is the CPU port, the hardware VLAN table would contain the following data: VID FID SID 0 1 2 3 4 5 6 100 8 0 x x t x x t x Where 'x' means excluded, and 't' means tagged. Also, adding an FDB entry to VLAN 100 for port swp2 like this: # bridge fdb add 3c:97:0e:11:6e:30 dev swp2 vlan 100 Would result in the following example output: # bridge fdb # 01:00:5e:00:00:01 dev eth0 self permanent # 01:00:5e:00:00:01 dev eth1 self permanent # 00:50:d2:10:78:15 dev swp0 master br0 permanent # 00:50:d2:10:78:15 dev swp2 vlan 100 master br0 permanent # 3c:97:0e:11:6e:30 dev swp2 vlan 100 self static # 00:50:d2:10:78:15 dev swp3 master br1 permanent # 00:50:d2:10:78:15 dev swp3 vlan 100 master br1 permanent And the Address Translation Unit would contain: DB T/P Vec State Addr 008 Port 004 e 3c:97:0e:11:6e:30 ==================== Signed-off-by: David S. Miller commit 8efdda4a1b609ac40c4729109215f9c77f938fdc Author: Vivien Didelot Date: Thu Aug 13 12:52:23 2015 -0400 net: dsa: mv88e6xxx: use port 802.1Q mode Secure This commit changes the 802.1Q mode of each port from Disabled to Secure. This enables the VLAN support, by checking the VTU entries on ingress. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 14 +++++++------- drivers/net/dsa/mv88e6xxx.h | 5 +++++ 2 files changed, 12 insertions(+), 7 deletions(-) commit 0d3b33e60206f40c802581fa35316a6ccdb00caa Author: Vivien Didelot Date: Thu Aug 13 12:52:22 2015 -0400 net: dsa: mv88e6xxx: add VLAN Load support Implement port_pvid_set and port_vlan_add to add new entries in the VLAN hardware table, and join ports to them. The patch also implement the STU Get Next and Load Purge operations, since it is required to have a valid STU entry for at least all VLANs. Each VLAN has its own forwarding database, with FID num_ports+1 to 4095. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6352.c | 2 + drivers/net/dsa/mv88e6xxx.c | 169 ++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 9 +++ 3 files changed, 180 insertions(+) commit 7dad08d738222e998bc27f67f73be713d64cecb8 Author: Vivien Didelot Date: Thu Aug 13 12:52:21 2015 -0400 net: dsa: mv88e6xxx: add VLAN Purge support Add support for the VTU Load Purge operation and implement the port_vlan_del driver function to remove a port from a VLAN entry, and delete the VLAN if the given port was its last member. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6352.c | 1 + drivers/net/dsa/mv88e6xxx.c | 113 ++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 2 + 3 files changed, 116 insertions(+) commit 02512b6fccecb4cfac9a253686712e790b01ff91 Author: Vivien Didelot Date: Thu Aug 13 12:52:20 2015 -0400 net: dsa: mv88e6xxx: add VLAN support to FDB dump Add an helper function to read the next valid VLAN entry for a given port. It is used in the VID to FID conversion function to retrieve the forwarding database assigned to a given VLAN port. Finally update the FDB getnext operation to iterate on the next valid port VLAN when the end of the current database is reached. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit b8fee95710639f1075534178701b64b66a180617 Author: Vivien Didelot Date: Thu Aug 13 12:52:19 2015 -0400 net: dsa: mv88e6xxx: add VLAN Get Next support Implement the port_pvid_get and vlan_getnext driver functions required to dump VLAN entries from the hardware, with the VTU Get Next operation. Some functions and structure will be shared with STU operations, since their table format are similar (e.g. STU data entries are accessible with the same registers as VTU entries, except with an offset of 2). Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6352.c | 2 + drivers/net/dsa/mv88e6xxx.c | 138 ++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 27 +++++++++ 3 files changed, 167 insertions(+) commit 6b17e864477fbc73772708655dea7fe4139c14f6 Author: Vivien Didelot Date: Thu Aug 13 12:52:18 2015 -0400 net: dsa: mv88e6xxx: flush VTU and STU entries Implement the VTU Flush operation (which also flushes the STU), so that warm boots won't preserved old entries. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 34 ++++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx.h | 2 ++ 2 files changed, 36 insertions(+) commit 111495361598205967f1be4e07d4726b0f762d60 Author: Vivien Didelot Date: Thu Aug 13 12:52:17 2015 -0400 net: dsa: add support for switchdev VLAN objects Add new functions in DSA drivers to access hardware VLAN entries through SWITCHDEV_OBJ_PORT_VLAN objects: - port_pvid_get() and vlan_getnext() to dump a VLAN - port_vlan_del() to exclude a port from a VLAN - port_pvid_set() and port_vlan_add() to join a port to a VLAN The DSA infrastructure will ensure that each VLAN of the given range does not already belong to another bridge. If it does, it will fallback to software VLAN and won't program the hardware. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller include/net/dsa.h | 11 ++++ net/dsa/slave.c | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) commit 35103d11173b8fea874183f8aa508ae71234d299 Author: Andy Gospodarek Date: Thu Aug 13 10:39:01 2015 -0400 net: ipv6 sysctl option to ignore routes when nexthop link is down Like the ipv4 patch with a similar title, this adds a sysctl to allow the user to change routing behavior based on whether or not the interface associated with the nexthop was an up or down link. The default setting preserves the current behavior, but anyone that enables it will notice that nexthops on down interfaces will no longer be selected: net.ipv6.conf.all.ignore_routes_with_linkdown = 0 net.ipv6.conf.default.ignore_routes_with_linkdown = 0 net.ipv6.conf.lo.ignore_routes_with_linkdown = 0 ... When the above sysctls are set, not only will link status be reported to userspace, but an indication that a nexthop is dead and will not be used is also reported. 1000::/8 via 7000::2 dev p7p1 metric 1024 dead linkdown pref medium 1000::/8 via 8000::2 dev p8p1 metric 1024 pref medium 7000::/8 dev p7p1 proto kernel metric 256 dead linkdown pref medium 8000::/8 dev p8p1 proto kernel metric 256 pref medium 9000::/8 via 8000::2 dev p8p1 metric 2048 pref medium 9000::/8 via 7000::2 dev p7p1 metric 1024 dead linkdown pref medium fe80::/64 dev p7p1 proto kernel metric 256 dead linkdown pref medium fe80::/64 dev p8p1 proto kernel metric 256 pref medium This also adds devconf support and notification when sysctl values change. v2: drop use of rt6i_nhflags since it is not needed right now Signed-off-by: Andy Gospodarek Signed-off-by: Dinesh Dutt Signed-off-by: David S. Miller include/linux/ipv6.h | 1 + include/uapi/linux/ipv6.h | 1 + net/ipv6/addrconf.c | 105 +++++++++++++++++++++++++++++++++++++++++++++- net/ipv6/route.c | 11 ++++- 4 files changed, 116 insertions(+), 2 deletions(-) commit cea45e208d700e9d633a636384a49f19cda979b7 Author: Andy Gospodarek Date: Thu Aug 13 10:39:00 2015 -0400 net: track link status of ipv6 nexthops Add support to track current link status of ipv6 nexthops to match recent changes that added support for ipv4 nexthops. This takes a simple approach to track linkdown status for next-hops and simply checks the dev for the dst entry and sets proper flags that to be used in the netlink message. v2: drop use of rt6i_nhflags since it is not needed right now Signed-off-by: Andy Gospodarek Signed-off-by: Dinesh Dutt Signed-off-by: David S. Miller net/ipv6/route.c | 2 ++ 1 file changed, 2 insertions(+) commit 8e3d04fd7d70679eed631ba5889f81b2d9415404 Author: Hariprasad Shenai Date: Thu Aug 13 09:44:22 2015 +0530 cxgb4: Add MPS tracing support Handle TRACE_PKT, stack can sniff them on the first port Add debubfs enrty to configure tracing for offload traffic like iWARP & iSCSI for debugging purpose. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 8 + drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 298 +++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 113 ++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 56 ++++ 4 files changed, 475 insertions(+) commit f02e58f91a121ec909efad06b0a7aa806e1f7a84 Author: yalin wang Date: Thu Aug 13 12:01:33 2015 +0800 net/fddi: remove HWM_REVERSE() macro HWM_REVERSE() macro is unused, remove it. Signed-off-by: yalin wang Signed-off-by: David S. Miller drivers/net/fddi/skfp/h/hwmtm.h | 9 --------- 1 file changed, 9 deletions(-) commit e4fc02f24c223ee8d668bf2d39bb8a2dbd61b40e Merge: aa62eff e9a5e8c Author: James Morris Date: Fri Aug 14 12:08:39 2015 +1000 Merge tag 'modsign-pkcs7-20150812-3' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into next commit 96625eadca1bb8832fb502f0899a543695f1ba35 Author: Peter Chen Date: Tue Mar 17 17:32:45 2015 +0800 usb: chipidea: add tx/rx burst size configuration interface The user can adjust it through dts or platform data Signed-off-by: Peter Chen drivers/usb/chipidea/bits.h | 4 ++++ drivers/usb/chipidea/ci.h | 1 + drivers/usb/chipidea/core.c | 35 +++++++++++++++++++++++++++++++++++ include/linux/usb/chipidea.h | 4 ++++ 4 files changed, 44 insertions(+) commit bd6e9d115df7fc6f11f3021c6fc05e3eaeb04a32 Author: Peter Chen Date: Fri Aug 7 15:08:02 2015 +0800 Doc: usb: ci-hdrc-usb2: add tx(rx)-burst-config-dword for binding doc It is used to override the default setting for burst size, changing burst size takes effect only when the SBUSCFG.AHBBRST = 0. Signed-off-by: Peter Chen Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ed6e5eb50f7f07561d6a40f18bc11484736098db Author: Peter Chen Date: Wed Nov 5 14:58:32 2014 +0800 usb: chipidea: usbmisc_imx: add non-burst setting for imx6 With this setting and AHBBRST at SBUSCFG as "Incremental burst of unspecified length", each non-burst size can be taken as single transfer. It is benefit for non-burst size transfer. Signed-off-by: Peter Chen drivers/usb/chipidea/usbmisc_imx.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 65668718f2c5b76d5f4513564a3c56672bb07892 Author: Peter Chen Date: Tue Mar 17 14:21:00 2015 +0800 usb: chipidea: add ahb burst configuration interface The users can change it through dts or platform data if they want to change the default value. Signed-off-by: Peter Chen drivers/usb/chipidea/bits.h | 3 +++ drivers/usb/chipidea/core.c | 14 ++++++++++++++ include/linux/usb/chipidea.h | 2 ++ 3 files changed, 19 insertions(+) commit c6fba7b750efe64a69dd83e0ff7249abd0e783aa Author: Peter Chen Date: Tue Jul 28 13:33:15 2015 +0800 Doc: usb: ci-hdrc-usb2: add ahb-burst-config for binding doc It is used to change ahb burst configuration for platforms, it is vendor specific. Signed-off-by: Peter Chen Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 7 +++++++ 1 file changed, 7 insertions(+) commit 0ef877a408ebaa4d65ab1f886100dab198bf673e Author: Peter Chen Date: Thu Oct 30 11:10:04 2014 +0800 usb: chipidea: imx: add stream mode enable for device mode at imx6sl/imx6sx Stream mode enable is known for better performance, this stream mode enable patch has been passed with stress tests at device mode for imx6sl and imx6sx, and no issue is found. Signed-off-by: Peter Chen drivers/usb/chipidea/ci_hdrc_imx.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 8022d3d51c6fb14736e26fd13caca91a38e07580 Author: Peter Chen Date: Thu Oct 30 09:15:15 2014 +0800 usb: chipidea: define stream mode disable for both roles The system bus and chipidea IP have different limitations for both host and device mode. For example, with below errata, we need to enable SDIS(Stream Disable Mode) at host mode. But we don't want it for device mode at the same system. TAR 9000378958 Title: Non-Double Word Aligned Buffer Address Sometimes Causes Host to Hang on OUT Retry Impacted Configuration: Host mode, all transfer types Description: The host core operating in streaming mode may under run while sending the data packet of an OUT transaction. This under run can occur if there are unexpected system delays in fetching the remaining packet data from memory. The host forces a bad CRC on the packet, the device detects the error and discards the packet. The host then retries a Bulk, Interrupt, or Control transfer if an under run occurs according to the USB specification. During simulations, it was found that the host does not issue the retry of the failed bulk OUT. It does not issue any other transactions except SOF packets that have incorrect frame numbers. The second failure mode occurs if the under run occurs on an ISO OUT transaction and the next ISO transaction is a zero byte packet. The host does not issue any transactions (including SOFs). The device detects a Suspend condition, reverts to full speed, and waits for resume signaling. A third failure mode occurs when the host under runs on an ISO OUT and the next ISO in the schedule is an ISO OUT with two max packets of 1024 bytes each. The host should issue MDATA for the first OUT followed by DATA1 for the second. However, it drops the MDATA transaction, and issues the DATA1 transaction. The system impact of this bug is the same regardless of the failure mode observed. The host core hangs, the ehci_ctrl state machine waits for the protocol engine to send the completion status for the corrupted transaction, which never occurs. No indication is sent to the host controller driver, no register bits change and no interrupts occur. Eventually the requesting application times out. Detailed internal behavior: The EHCI control state machine (ehci_ctrl) in the DMA block is responsible for parsing the schedules and initiating all transactions. The ehci_ctrl state machine passes the transaction details to the protocol block by writing the transaction information in to the TxFIFO. It then asserts the pe_hst_run_pkt signal to inform the host protocol state machine (pe_hst_state) that there is a packet in the TxFIFO. A tag of 0x0 indicates a start of packet with the data providing the following information: 35:32 Tag 31:30 Reserved 29:23 Endpoint (lowest 4 bits) 22:16 Address 15:10 Reserved 9:8 Endpoint speed 7:6 Endpoint type 5:6 Data Toggle 3:0 PID The pe_hst_state reads the packet information and constructs the packet and issues it to the PHY interface. The ehci_ctrl state machine writes the start transaction information in to the TxFIFO as 0x03002910c for the OUT packet that had the under run error. However, it writes 0xC3002910C for the retry of the Out transaction, which is incorrect. The pe_hst_state enters a bus timeout state after sending the bad CRC for the packet that under ran. It then purges any data that was back filled in to the TxFIFO for the packet that under ran. The pe_hst_state machine stops purging the TxFIFO when it is empty or if it reads a location that has a tag of 0x0, indicating a start of packet command. The pe_hst_state reads 0xC3002910C and discards it as it does not decode to a start of packet command. It continues to purge the OUT data that has been pre-buffered for the OUT retry . The pe_hst_state detects the hst_packet_run signal and attempts to read the PID and address information from the TxFIFO. This location has packet data and so does not decode to a valid PID and so falls through to the PE_HST_SOF_LOAD state where the frame_num_counter is updated. The frame_num_counter is updated with the data in the TxFIFO. In this case, the data is incorrect as the ehci_ctrl state machine did not initiate the load. The hst_pe_state machine detects the SOF request signal and sends an SOF with the bad frame number. Meanwhile, the ehci_ctrl state machine waits indefinitely in the run_pkt state waiting for the completion status from pe_hst_state machine, which will never happen. The ISO failure case is similar except that there is no retry for ISO. The ehci_ctrl state machine moves to the next transfer in the periodic schedule. If the under run occurs on the last entry of the periodic list then it moves to the Async schedule. In the case of ISO OUT simulations, the next ISO is a zero byte OUT and again the start of packet command gets corrupted. The TxFIFO is empty when the hst_pe_state attempts to read the Address and PID information as the transaction is a zero byte packet. This results in the hst_pe_state machine staying in the GET_PID state, which means that it does not issue any transactions (including SOFs). The device detects a Suspend condition and reverts to full speed mode and waits for a Resume or Reset signal. The EHCI specification allows a Non-DoubleWord (32 bits) offset to be used as a current offset for Buffer Pointer Page 0 of the qTD. In Non-DoubleWord aligned cases, the core reads the packet data from the AHB memory, performs the alignment operation before writing it in to the TxFIFO as a 32 bit data word. An End Of Packet tag (EOP) is written to the TxFIFO after all the packet data has been written in to the TxFIFO. The alignment function is reset to Idle by the EOP tag. The corruption of the start of packet command arises because the packet buffer for the OUT transaction that under ran is not aligned to a DoubleWord, and hence no EOP tag is written to the TxFIFO. The alignment function is still active when the start packet information is written in to the TxFIFO for the retry of the bulk packet or for the next transaction in the case of an under run on an ISO. This results in the corruption of the start tag and the transaction information. Click for waveform showing the command 0x 0000300291 being written in to the TX FIFO for the Out that under ran. Click for waveform showing the command 0xC3002910C written to the TxFIFO instead of 0x 0000300291 Versions affected: Versions 2.10a and previous versions How discovered: Customer simulation Workaround: 1- The EHCI specification allows a non-DoubleWord offset to be used as a current offset for Buffer Pointer Page 0 of the qTD. However, if a DoubleWord offset is used then this issue does not arise. 2- Use non streaming mode to eliminate under runs. Resolution: The fix involves changes to the traffic state machine in the vusb_hs_dma_traf block. The ehci_ctrl state machine updates the context information by encoding the transaction results on the hst_op_context_update signals at the end of a transaction. The signal hst_op_context_update is added to the traffic state machine, and the tx_fifo_under_ran_r signal is generated if the transaction results in an under run error. Click for waveform The traffic state machine then traverses to the do_eop states if the tx_fifo_under_ran error is asserted. Thus an EOP tag is written in to the TxFIFO as shown in this waveform . The EOP tag resets the align state machine to the Idle state ensuring that the next command written by the echi_ctrl state machine does not get corrupted. File(s) modified: RTL code fixed: ….. Method of reproducing: This failure cannot be reproduced in the current test bench. Date Found: March 2010 Date Fixed: June 2010 Update information: Added the RTL code fix Signed-off-by: Peter Chen drivers/usb/chipidea/core.c | 13 ++++++++++++- include/linux/usb/chipidea.h | 5 ++++- 2 files changed, 16 insertions(+), 2 deletions(-) commit a4da4f12b4a7e7072753ebae9b2ccd72b89c3392 Author: Peter Chen Date: Tue Jul 28 10:08:32 2015 +0800 usb: chipidea: udc: zero-length packet is only needed for TX The zero-length packet is the sendor tells the receiver that there is no more data, so it is only needed at the TX side. Signed-off-by: Peter Chen drivers/usb/chipidea/udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11a27098e884b8eb797f1579ebc51cb0e0510cc3 Author: Peter Chen Date: Wed Aug 5 10:16:19 2015 +0800 usb: chipidea: host: override hcd reset API The system configuration API should be called before the controller run, otherwise, undefined results may occur. So, we override hcd reset API, and add system configuration API after controller reset. Cc: Li Jun Cc: Alan Stern Acked-by: Alan Stern Signed-off-by: Peter Chen drivers/usb/chipidea/host.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit ef12da914ed696745b495bea22aea137e88cffb6 Author: Tomeu Vizoso Date: Thu Aug 6 15:09:54 2015 +0200 usb: chipidea: imx: properly check for usbmisc If usbmisc hasn't probed yet, defer the probe. It's not enough to check if the platform device for the OF node of the usbmisc has been registered, but it also needs to have been probed already before we can call imx_usbmisc_init(). This can happen if the order in which devices are probed change due to async probing or on-demand probing of dependencies. Signed-off-by: Tomeu Vizoso drivers/usb/chipidea/ci_hdrc_imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc24937943d9f71a1e32b5dc4e2f0ef8fcc07b64 Author: Li Jun Date: Wed Jul 29 13:11:11 2015 +0800 usb: chipidea: debug: add runtime pm for register access Add runtime pm operations for registers access to avoid system hang. Signed-off-by: Li Jun drivers/usb/chipidea/debug.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 158ec071fb5243e5c49259d2dbc4c8dbaed24c47 Author: Nicholas Krause Date: Sat Jun 27 00:34:48 2015 -0400 usb:chipidea:Make the function hw_alloc_repmap have a return type of void This makes the function hw_alloc_repmap be declared to have a return type of void now due to this particular function never returning a error code to its caller due to this function always running successfully to completion nor it's caller putting the return value into a variable in order to check if a error code is passed from the function hw_alloc_repmap when calling this function. Signed-off-by: Nicholas Krause drivers/usb/chipidea/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1311d6e3ea3316e9d2383219a36353ad335f6932 Author: Peter Chen Date: Tue Jul 14 15:43:02 2015 +0800 usb: chipidea: host: delete the redundancy ci_hdrc struct The struct ci_hdrc is the drvdata for hcd device, so we don't need to introduce extra ci_hdrc structure for ehci. Signed-off-by: Peter Chen drivers/usb/chipidea/host.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit df96ed8dced21426c54c7f69cf7513e75280957a Author: Peter Chen Date: Mon Sep 22 16:45:39 2014 +0800 usb: chipidea: introduce ITC tuning interface ITC (Interrupt Threshold Control) is used to set the maximum rate at which the host/device controller will issue interrupts. The default value is 8 (1ms) for it. EHCI core will modify it to 1, but device mode keeps it as default value. In some use cases like Android ADB, it only has one usb request for each direction, and maximum payload data is only 4KB, so the speed is 4MB/s at most, it needs controller to trigger interrupt as fast as possible to increase the speed. The USB performance will be better if the interrupt can be triggered faster. Reduce ITC value is benefit for USB performance, but the interrupt number is increased at the same time, it may increase cpu utilization too. Most of use case cares about performance, but some may care about cpu utilization, so, we leave a platform interface for user. We set ITC as 1 (1 micro-frame) as default value which is aligned with ehci core default value. Signed-off-by: Peter Chen drivers/usb/chipidea/core.c | 16 ++++++++++++++++ include/linux/usb/chipidea.h | 2 ++ 2 files changed, 18 insertions(+) commit 1bd57127d4aaff518cf93f4809ec2f11b2baf865 Author: Peter Chen Date: Wed Jul 15 13:53:05 2015 +0800 Doc: usb: ci-hdrc-usb2: add itc-setting at binding doc It is used to configure the ITC (in register USBCMD) value for kinds of applications. Signed-off-by: Peter Chen Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt | 3 +++ 1 file changed, 3 insertions(+) commit bf9c85e78d0fec61360ece46dacf9ab71ba89361 Author: Peter Chen Date: Tue Mar 17 10:40:50 2015 +0800 usb: chipidea: introduce ci_platform_configure It is used to configure controller parameters according to platform data, like speed, stream mode, etc, both host and device's initialization need it, most of code are the same for both roles, with this new interface, it can reduce the duplicated code and be easy to maintain in future. Signed-off-by: Peter Chen drivers/usb/chipidea/ci.h | 2 ++ drivers/usb/chipidea/core.c | 34 ++++++++++++++++++++++++---------- drivers/usb/chipidea/host.c | 9 +-------- 3 files changed, 27 insertions(+), 18 deletions(-) commit 9d2effea12a3a7139daf04a2be97f18d3e6913a3 Author: Peter Chen Date: Wed Jul 15 13:56:26 2015 +0800 usb: chipidea: otg_fsm: delete the duplicated reset controller operation At host_stop, it will call usb_remove_hcd, and reset controller later. Signed-off-by: Peter Chen drivers/usb/chipidea/otg_fsm.c | 1 - 1 file changed, 1 deletion(-) commit 3520d462b95fff1c445faec6f54953cd8da25ca7 Author: Peter Chen Date: Fri Jul 17 08:44:24 2015 +0800 usb: chipidea: udc: add USB_DEVICE_A_HNP_SUPPORT request support We can support USB OTG 1.3 USB_DEVICE_A_HNP_SUPPORT request when the driver supports OTG FSM mode. Signed-off-by: Peter Chen drivers/usb/chipidea/udc.c | 7 +++++++ 1 file changed, 7 insertions(+) commit e765bfb73ff711b1d139a4438af9ecedabb07d34 Author: Peter Chen Date: Thu Jun 18 11:43:34 2015 +0800 usb: chipidea: imx: enable CI_HDRC_SET_NON_ZERO_TTHA For i.mx platform, set ttctrl.ttha with non-zero value only affects sitd, and ehci core makes sure the schedule is not full when accepts new request, so it will not occur the transaction which will acorss the SoF. Signed-off-by: Peter Chen drivers/usb/chipidea/ci_hdrc_imx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 28362673129e7d4510a5a92a8b68ee47f282210b Author: Peter Chen Date: Thu Jun 18 11:51:53 2015 +0800 usb: chipidea: add ttctrl.ttha control interface The register of ttctrl.ttha describes like below: - Internal TT Hub Address Representation - RW - Default = 0000000b This field is used to match against the Hub Address field in QH & siTD to determine if the packet is routed to the internal TT for directly attached FS/LS devices. If the Hub Address in the QH or siTD does not match this address then the packet will be broadcast on the High Speed ports destined for a downstream High Speed hub with the address in the QH/siTD. In silicon RTL, this entry only affects QH and siTD, and the hub.addr at both QH and siTD are 0 in ehci core for chipidea (with hcd->has_tt = 1). So, for QH, if the "usage_tt" flag at RTL is 0, set CI_HDRC_SET_NON_ZERO_TTHA will not affect QH (with non-hs device); for siTD, set this flag will change remaining space requirement for the last transaction from 1023 bytes to 188 bytes, it can increase the number of transactions within one frame, ehci periodic schedule code will not queue the packet if the frame space is full, so it is safe to set this flag for siTD. With this flag, it can fix the problem Alan Stern reported below: http://www.spinics.net/lists/linux-usb/msg123125.html And may fix Michael Tessier's problem too. http://www.spinics.net/lists/linux-usb/msg118679.html CC: stern@rowland.harvard.edu CC: michael.tessier@axiontech.ca Signed-off-by: Peter Chen drivers/usb/chipidea/bits.h | 5 +++++ drivers/usb/chipidea/ci.h | 1 + drivers/usb/chipidea/core.c | 2 ++ drivers/usb/chipidea/host.c | 3 +++ include/linux/usb/chipidea.h | 1 + 5 files changed, 12 insertions(+) commit 8f9cb50789e76f3e224e8861adf650e55c747af4 Merge: e1474e7 a63c580 Author: Dave Airlie Date: Fri Aug 14 10:15:24 2015 +1000 Merge tag 'drm-amdkfd-next-fixes-2015-08-05' of git://people.freedesktop.org/~gabbayo/linux into drm-next Two small bug fixes for the code you pulled for 4.3: - Used a SHIFT define instead of a MASK define to check if a bit is turned on when destroying hqd. Luckily, this is in gfx7 interface file with amdgpu, which was used only for bring-up purposes of amdgpu, so no real effect on a running system - Used a logical AND instead of a bitwise AND operator, when initializing sdma virtual memory when using SDMA queues * tag 'drm-amdkfd-next-fixes-2015-08-05' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: fix bug when initializing sdma vm drm/amdgpu: fix bug when amdkfd destroys hqd commit e1474e7bdf6b16db41cc12b8e7b3fefd8668f3cf Merge: 1ce4200 29d1dc6 Author: Dave Airlie Date: Fri Aug 14 10:14:23 2015 +1000 Merge branch 'drm-sti-next-atomic-2015-08-11' of http://git.linaro.org/people/benjamin.gaignard/kernel into drm-next This serie of patches fix minor bugs around how driver sub-components are bind and planes z-ordering. The main part is about atomic support: using more atomic helpers allow us to simplify the code (~300 lines removed) and to ahve a better match between drm concepts (planes and crtc) and hardware split. [airlied: fixed up conflict in atomic code] * 'drm-sti-next-atomic-2015-08-11' of http://git.linaro.org/people/benjamin.gaignard/kernel: drm/sti: atomic crtc/plane update drm/sti: rename files and functions drm/sti: code clean up drm/sti: fix dynamic z-ordering drm: sti: fix sub-components bind commit dd19f83d6cd90e4b7a601da2ed40d2a9d70aaf10 Author: Scott Feldman Date: Wed Aug 12 18:45:25 2015 -0700 rocker: hook ndo_neigh_destroy to cleanup neigh refs in driver Rocker driver tracks arp_tbl neighs to resolve IPv4 route nexthops. The driver uses NETEVENT_NEIGH_UPDATE for neigh adds and updates, but there is no event when the neigh is removed from the device (such as when the device goes admin down). This patches hooks ndo_neigh_destroy so the driver can know when a neigh is removed from the device. In response, the driver will purge the neigh entry from its internal tbl. I didn't find an in-tree users of ndo_neigh_destroy, so I'm not sure if this ndo is vestigial or if there are out-of-tree users. In any case, it does what I need here. An alternative design would be to generate NETEVENT_NEIGH_UPDATE event when neigh is being destroyed, setting state to NUD_NONE so driver knows neigh entry is dead. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 3 ++- drivers/net/ethernet/rocker/rocker.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) commit c8beb5b2613418e7ac1ffaee1f0796e77a4000be Author: Scott Feldman Date: Wed Aug 12 18:44:13 2015 -0700 rocker: print switch ID consistent with phys_switch_id sysfs node On sucessful probe, driver prints the switch ID. This patch changes the format of the printed ID to match what's used in sysfs phys_switch_id node. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7bbac697e4a6e64cc4bae26d57310c916aa0da7a Author: Leo Yan Date: Mon Aug 3 09:30:25 2015 +0800 Documentation: minor typo fix in mailbox.txt Fix minor typo so that can pass correct pointer variable for container_of(). Signed-off-by: Leo Yan [jc: tweaked formatting] Signed-off-by: Jonathan Corbet Documentation/mailbox.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1ce4200df02aac780fe92c92b31497891c36c3ac Merge: e5dafc0 d485363 Author: Dave Airlie Date: Fri Aug 14 10:02:21 2015 +1000 Merge tag 'topic/drm-misc-2015-08-13' of git://anongit.freedesktop.org/drm-intel into drm-next Final drm-misc pull for 4.3: - fbdev emulation Kconfig option for everyone thanks to Archit. It's not everything yet bit this is fairly tricky since it spawns all drivers. - vgaarb & vgaswitcheroo polish from Thierry - some drm_irq.c cleanups (Thierry) - struct_mutex crusade from me - more fbdev panic handling removal - various things all over in drm core&helpers * tag 'topic/drm-misc-2015-08-13' of git://anongit.freedesktop.org/drm-intel: (65 commits) drm/atomic: Use KMS VBLANK API drm/irq: Document return values more consistently drm/irq: Make pipe unsigned and name consistent drm/irq: Check for valid VBLANK before dereference drm/irq: Remove negative CRTC index special-case drm/plane: Remove redundant extern drm/plane: Use consistent data types for format count vga_switcheroo: Remove unnecessary checks vga_switcheroo: Wrap overly long lines vga_switcheroo: Use pr_fmt() vga_switcheroo: Cleanup header comment vga_switcheroo: Use pr_*() instead of printk() vgaarb: Fix a few checkpatch errors and warnings vgaarb: Use vgaarb: prefix consistently in messages vgaarb: Stop complaining about absent devices drm/atomic: fix null pointer access to mode_fixup callback drm/i915: Use CONFIG_DRM_FBDEV_EMULATION drm/core: Set mode to NULL when connectors in a set drops to 0. drm/atomic: Call ww_acquire_done after check phase is complete drm/atomic: Paper over locking WARN in default_state_clear ... commit c28446c2b78fde4b47a4baf3b2cf7c3c4ca621dc Merge: 5bbbcc0 0b50dc4 Author: David S. Miller Date: Thu Aug 13 16:58:29 2015 -0700 Merge branch 'smsc911x-acpi' Jeremy Linton says: ==================== Enable smsc911x for use with ACPI This set of patches enables the front Ethernet port on the ARM Juno development platform when used with an ACPI enabled kernel. These patches covert the of_property* calls in the driver to the DT/ACPI agnostic device_property* calls, and add the arm hardware id to the acpi_match_table. To support the above changes I copied a couple routines from of_net into the properties.c file, and modified them to be ACPI/DT agnostic. I'm not 100% sure this is the correct location for these functions. But I think they are required to avoid having a dozen different implementations scattered across assorted Ethernet adapters that are being enabled to use ACPI properties. ==================== Signed-off-by: David S. Miller commit 0b50dc4fc971cc788b0974ebd70f06efff1ad5d8 Author: Jeremy Linton Date: Wed Aug 12 17:06:27 2015 -0500 Convert smsc911x to use ACPI as well as DT Add ACPI bindings for the smsc911x driver. Convert the DT specific calls to nonspecific device* calls, This allows the driver to work with both ACPI and DT configurations. Ethernet should now work when using ACPI on ARM Juno. Signed-off-by: Jeremy Linton Reviewed-by: Graeme Gregory Signed-off-by: David S. Miller drivers/net/ethernet/smsc/smsc911x.c | 48 +++++++++++++++++------------------- 1 file changed, 22 insertions(+), 26 deletions(-) commit 4c96b7dc0d393f12c17e0d81db15aa4a820a6ab3 Author: Jeremy Linton Date: Wed Aug 12 17:06:26 2015 -0500 Add a matching set of device_ functions for determining mac/phy OF has some helper functions for parsing MAC and PHY settings. In cases where the platform is providing this information rather than the device itself, there needs to be similar functions for ACPI. These functions are slightly modified versions of the ones in of_net which can use information provided via DT or ACPI. Signed-off-by: Jeremy Linton Signed-off-by: David S. Miller drivers/base/property.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/property.h | 4 +++ 2 files changed, 77 insertions(+) commit 4983953dbd038fd720e7e16eb9bad5d8ea059ccf Author: David Drysdale Date: Mon Aug 10 09:00:44 2015 +0100 Documentation: describe how to add a system call Add a document describing the process of adding a new system call, including the need for a flags argument for future compatibility, and covering 32-bit/64-bit concerns (albeit in an x86-centric way). Signed-off-by: David Drysdale Reviewed-by: Michael Kerrisk Reviewed-by: Eric B Munson Reviewed-by: Kees Cook Reviewed-by: Randy Dunlap Reviewed-by: Josh Triplett Signed-off-by: Jonathan Corbet Documentation/adding-syscalls.txt | 527 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 527 insertions(+) commit 5bbbcc0073331d4e37c9f91c59cfc9f5d2033860 Merge: 646244b b340b26 Author: David S. Miller Date: Thu Aug 13 16:52:20 2015 -0700 Merge branch 'tcp-loss-probe' Yuchung Cheng says: ==================== minor tail loss probe improvements This patch series enhance the tail loss probe (TLP) on some error conditions. When TLP fails to send a probe, it will no longer extend the RTO. When it fails to send a new packet because of receiver window limit, it'll try to retransmit the last packet. ==================== Signed-off-by: David S. Miller commit b340b26454e7ba0f5d04b4bd5c4c782f1628ebe1 Author: Yuchung Cheng Date: Wed Aug 12 11:18:19 2015 -0700 tcp: TLP retransmits last if failed to send new packet When TLP fails to send new packet because of receive window limit, it should fall back to retransmit the last packet instead. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Nandita Dukkipati Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) commit fcd16c0a95a8faf4d310f94d831b22f901c5a744 Author: Yuchung Cheng Date: Wed Aug 12 11:18:18 2015 -0700 tcp: don't extend RTO on failed loss probe attempts If TLP was unable to send a probe, it extended the RTO to now + icsk_rto. But extending the RTO makes little sense if no TLP probe went out. With this commit, instead of extending the RTO we re-arm it relative to the transmit time of the write queue head. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Nandita Dukkipati Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 646244b223090e379070d149312b222867e42aa6 Merge: 182ad46 21696f7 Author: David S. Miller Date: Thu Aug 13 16:51:00 2015 -0700 Merge branch 'cpsw-errata-workaround' Mugunthan V N says: ==================== Add AM335x PG1.0 CPSW errata workaround With commit 870915feabdc ("drivers: net: cpsw: remove disable_irq/enable_irq as irq can be masked from cpsw itself"), CPSW on AM335x beagle bone white is broken as there is a errata for AM335x PG1.0. This patch series implements the workaround by disabling the interrupts from ARM IRQ controller for AM335x SoC in addition to the masking of interrupts in CPSW. ==================== Signed-off-by: David S. Miller commit 21696f717b3404f17dfd5433d391ef55fbcb812b Author: Mugunthan V N Date: Wed Aug 12 15:22:55 2015 +0530 ARM: dts: am33xx: update cpsw compatible CPSW driver has been updated with compatibles for enabling errata workarounds. So updating cpsw compatibles. Signed-off-by: Mugunthan V N Acked-by: Tony Lindgren Signed-off-by: David S. Miller arch/arm/boot/dts/am33xx.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e2095318aff16019fdedf2002222ae7076a51935 Author: Mugunthan V N Date: Wed Aug 12 15:22:54 2015 +0530 ARM: dts: dra7: update cpsw compatible CPSW driver has been updated with compatibles for enabling errata workarounds. So updating cpsw compatibles. Signed-off-by: Mugunthan V N Acked-by: Tony Lindgren Signed-off-by: David S. Miller arch/arm/boot/dts/dra7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7da1160002f1d59e79e7d89da474ff7c679a07a5 Author: Mugunthan V N Date: Wed Aug 12 15:22:53 2015 +0530 drivers: net: cpsw: add am335x errata workarround for interrutps As per Am335x Errata [1] Advisory 1.0.9, The CPSW C0_TX_PEND and C0_RX_PEND interrupt outputs provide a single transmit interrupt that combines transmit channel interrupts TXPEND[7:0] and a single receive interrupt that combines receive channel interrupts RXPEND[7:0]. The TXPEND[0] and RXPEND[0] interrupt outputs are connected to the ARM Cortex-A8 interrupt controller (INTC) rather than the C0_TX_PEND and C0_RX_PEND interrupt outputs. So even though CPSW interrupt is cleared by writing appropriate values to EOI register the interrupt is not cleared in IRQ controller. So interrupt is still pending and CPU is struck in ISR, the workaround is to disable the interrupts in ARM irq controller. [1] http://www.ti.com/lit/er/sprz360f/sprz360f.pdf Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 83 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 6 deletions(-) commit 81db32a3c4627605a0e950d27a403ea02447ab60 Author: Tim Bird Date: Mon Aug 10 15:16:16 2015 -0700 doc: Add more workqueue functions to the documentation There are some workqueue functions declared in workqueue.h, so include that in the workqueue section of the DocBook docs. Signed-off-by: Tim Bird Acked-by: Randy Dunlap Signed-off-by: Jonathan Corbet Documentation/DocBook/device-drivers.tmpl | 1 + 1 file changed, 1 insertion(+) commit 182ad468e70fc7e8ff2e5d64344c690beaa00ddd Merge: e8fed98 5b3e2e1 Author: David S. Miller Date: Thu Aug 13 16:23:11 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/cavium/Kconfig The cavium conflict was overlapping dependency changes. Signed-off-by: David S. Miller commit 7229b87bb269c9e18cabbc43c5fb01c81d097b24 Author: Stephen Rothwell Date: Sun Aug 9 22:37:46 2015 -0700 Input: elants_i2c - fix for devm_gpiod_get API change Flags are now mandatory for devm_gpiod_get(). So let's use proper flag to configure gpio for output instead of doing this by hand. Signed-off-by: Stephen Rothwell [Dmitry: GPIOD_ASIS -> GPIOD_OUT_LOW] Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/elants_i2c.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit f7ef1340bb501717372a39f4807d0ad519ebd432 Author: Bjorn Helgaas Date: Mon Jul 20 09:23:37 2015 -0500 PCI: Remove pci_ats_enabled() Remove pci_ats_enabled(). There are no callers outside the ATS code itself. We don't need to check ats_cap, because if we don't find an ATS capability, we'll never set ats_enabled. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 6 +++--- include/linux/pci.h | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) commit a71f938f3a9a7bc879296cd34ecae9effe5edf3f Author: Bjorn Helgaas Date: Mon Jul 20 09:24:32 2015 -0500 PCI: Stop caching ATS Invalidate Queue Depth Stop caching the Invalidate Queue Depth in struct pci_dev. pci_ats_queue_depth() is typically called only once per device, and it returns a fixed value per-device, so callers who need the value frequently can cache it themselves. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 9 ++++----- include/linux/pci.h | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) commit ff9bee895c4d11a519a6b2c49451376025a6af4e Author: Bjorn Helgaas Date: Fri Jul 17 15:55:48 2015 -0500 PCI: Move ATS declarations to linux/pci.h so they're all together Move ATS declarations to linux/pci.h so they're all in one place. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel include/linux/pci-ats.h | 41 ----------------------------------------- include/linux/pci.h | 10 +++++++++- 2 files changed, 9 insertions(+), 42 deletions(-) commit a021f3019db7b40f0fe85b0a64c6be21e3665fbf Author: Bjorn Helgaas Date: Fri Jul 17 15:43:27 2015 -0500 PCI: Clean up ATS error handling There's no need to BUG() if we enable ATS when it's already enabled. We don't need to BUG() when disabling ATS on a device that doesn't support ATS or if it's already disabled. If ATS is enabled, certainly we found an ATS capability in the past, so it should still be there now. Clean up these error paths. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c39127dbaf6c267f18d1cac14e2b0ecbfaa52d63 Author: Bjorn Helgaas Date: Fri Jul 17 15:38:13 2015 -0500 PCI: Use pci_physfn() rather than looking up physfn by hand Use the pci_physfn() helper rather than looking up physfn by hand. No functional change. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit afdd596c42c4540308eae9f4c685d9bccc525cfc Author: Bjorn Helgaas Date: Fri Jul 17 15:35:18 2015 -0500 PCI: Inline the ATS setup code into pci_ats_init() The ATS setup code in ats_alloc_one() is only used by pci_ats_init(), so inline it there. No functional change. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 3c765399524308ab36777a443ce77e19810a97d7 Author: Bjorn Helgaas Date: Fri Jul 17 15:30:26 2015 -0500 PCI: Rationalize pci_ats_queue_depth() error checking We previously returned -ENODEV for devices that don't support ATS (except that we always returned 0 for VFs, whether or not they support ATS). For consistency, always return -EINVAL (not -ENODEV) if the device doesn't support ATS. Return zero for VFs that support ATS. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 67930995d7fb8ae7d2078822b563010b289ace2e Author: Bjorn Helgaas Date: Fri Jul 17 15:27:34 2015 -0500 PCI: Reduce size of ATS structure elements The extended capabilities list is linked with 12-bit pointers, and the ATS Smallest Translation Unit and Invalidate Queue Depth fields are both 5 bits. Use u16 and u8 to hold the extended capability address and the stu and qdep values. No functional change. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel include/linux/pci.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d544d75ac96aa1b0a8a378826626a0fbd8ce4380 Author: Bjorn Helgaas Date: Fri Jul 17 15:15:19 2015 -0500 PCI: Embed ATS info directly into struct pci_dev The pci_ats struct is small and will get smaller, so I don't think it's worth allocating it separately from the pci_dev struct. Embed the ATS fields directly into struct pci_dev. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 61 +++++++++++++++++-------------------------------- drivers/pci/remove.c | 1 - include/linux/pci-ats.h | 10 +------- include/linux/pci.h | 8 ++++--- 4 files changed, 27 insertions(+), 53 deletions(-) commit edc90fee916b4f0d14af9c6b5c08666747488ef8 Author: Bjorn Helgaas Date: Fri Jul 17 15:05:46 2015 -0500 PCI: Allocate ATS struct during enumeration Previously, we allocated pci_ats structures when an IOMMU driver called pci_enable_ats(). An SR-IOV VF shares the STU setting with its PF, so when enabling ATS on the VF, we allocated a pci_ats struct for the PF if it didn't already have one. We held the sriov->lock to serialize threads concurrently enabling ATS on several VFS so only one would allocate the PF pci_ats. Gregor reported a deadlock here: pci_enable_sriov sriov_enable virtfn_add mutex_lock(dev->sriov->lock) # acquire sriov->lock pci_device_add device_add BUS_NOTIFY_ADD_DEVICE notifier chain iommu_bus_notifier amd_iommu_add_device # iommu_ops.add_device init_iommu_group iommu_group_get_for_dev iommu_group_add_device __iommu_attach_device amd_iommu_attach_device # iommu_ops.attach_device attach_device pci_enable_ats mutex_lock(dev->sriov->lock) # deadlock There's no reason to delay allocating the pci_ats struct, and if we allocate it for each device at enumeration-time, there's no need for locking in pci_enable_ats(). Allocate pci_ats struct during enumeration, when we initialize other capabilities. Note that this implementation requires ATS to be enabled on the PF first, before on any of the VFs because the PF controls the STU for all the VFs. Link: http://permalink.gmane.org/gmane.linux.kernel.iommu/9433 Reported-by: Gregor Dick Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel drivers/pci/ats.c | 98 +++++++++++++++++++++---------------------------- drivers/pci/probe.c | 3 ++ drivers/pci/remove.c | 1 + include/linux/pci-ats.h | 2 +- include/linux/pci.h | 9 +++++ 5 files changed, 56 insertions(+), 57 deletions(-) commit 2ec3182f9c20a9eef0dacc0512cf2ca2df7be5ad Author: Dongsu Park Date: Fri Dec 19 14:53:03 2014 +0100 Documentation: update notes in biovecs about arbitrarily sized bios Update block/biovecs.txt so that it includes a note on what kind of effects arbitrarily sized bios would bring to the block layer. Also fix a trivial typo, bio_iter_iovec. Cc: Christoph Hellwig Cc: Kent Overstreet Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe Documentation/block/biovecs.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c Author: Kent Overstreet Date: Tue May 19 14:31:01 2015 +0200 block: remove bio_get_nr_vecs() We can always fill up the bio now, no need to estimate the possible size based on queue parameters. Acked-by: Steven Whitehouse Signed-off-by: Kent Overstreet [hch: rebased and wrote a changelog] Signed-off-by: Christoph Hellwig Signed-off-by: Ming Lin Signed-off-by: Jens Axboe block/bio.c | 23 ----------------------- drivers/md/dm-io.c | 2 +- fs/btrfs/compression.c | 5 +---- fs/btrfs/extent_io.c | 9 ++------- fs/btrfs/inode.c | 3 +-- fs/btrfs/scrub.c | 18 ++---------------- fs/direct-io.c | 2 +- fs/ext4/page-io.c | 3 +-- fs/ext4/readpage.c | 2 +- fs/f2fs/data.c | 2 +- fs/gfs2/lops.c | 9 +-------- fs/logfs/dev_bdev.c | 4 ++-- fs/mpage.c | 4 ++-- fs/nilfs2/segbuf.c | 2 +- fs/xfs/xfs_aops.c | 3 +-- include/linux/bio.h | 1 - 16 files changed, 18 insertions(+), 74 deletions(-) commit 6cf66b4caf9c71f64a5486cadbd71ab58d0d4307 Author: Kent Overstreet Date: Mon Dec 22 12:48:42 2014 +0100 fs: use helper bio_add_page() instead of open coding on bi_io_vec Call pre-defined helper bio_add_page() instead of open coding for iterating through bi_io_vec[]. Doing that, it's possible to make some parts in filesystems and mm/page_io.c simpler than before. Acked-by: Dave Kleikamp Cc: Christoph Hellwig Cc: Al Viro Cc: linux-fsdevel@vger.kernel.org Signed-off-by: Kent Overstreet [dpark: add more description in commit message] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe fs/buffer.c | 7 ++----- fs/jfs/jfs_logmgr.c | 14 ++++---------- mm/page_io.c | 8 +++----- 3 files changed, 9 insertions(+), 20 deletions(-) commit 8ae126660fddbeebb9251a174e6fa45b6ad8f932 Author: Kent Overstreet Date: Mon Apr 27 23:48:34 2015 -0700 block: kill merge_bvec_fn() completely As generic_make_request() is now able to handle arbitrarily sized bios, it's no longer necessary for each individual block driver to define its own ->merge_bvec_fn() callback. Remove every invocation completely. Cc: Jens Axboe Cc: Lars Ellenberg Cc: drbd-user@lists.linbit.com Cc: Jiri Kosina Cc: Yehuda Sadeh Cc: Sage Weil Cc: Alex Elder Cc: ceph-devel@vger.kernel.org Cc: Alasdair Kergon Cc: Mike Snitzer Cc: dm-devel@redhat.com Cc: Neil Brown Cc: linux-raid@vger.kernel.org Cc: Christoph Hellwig Cc: "Martin K. Petersen" Acked-by: NeilBrown (for the 'md' bits) Acked-by: Mike Snitzer Signed-off-by: Kent Overstreet [dpark: also remove ->merge_bvec_fn() in dm-thin as well as dm-era-target, and resolve merge conflicts] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe block/blk-merge.c | 17 +----- block/blk-settings.c | 22 ------- drivers/block/drbd/drbd_int.h | 1 - drivers/block/drbd/drbd_main.c | 1 - drivers/block/drbd/drbd_req.c | 35 ------------ drivers/block/pktcdvd.c | 21 ------- drivers/block/rbd.c | 47 --------------- drivers/md/dm-cache-target.c | 21 ------- drivers/md/dm-crypt.c | 16 ------ drivers/md/dm-era-target.c | 15 ----- drivers/md/dm-flakey.c | 16 ------ drivers/md/dm-linear.c | 16 ------ drivers/md/dm-log-writes.c | 16 ------ drivers/md/dm-raid.c | 19 ------ drivers/md/dm-snap.c | 15 ----- drivers/md/dm-stripe.c | 21 ------- drivers/md/dm-table.c | 8 --- drivers/md/dm-thin.c | 31 ---------- drivers/md/dm-verity.c | 16 ------ drivers/md/dm.c | 127 +---------------------------------------- drivers/md/dm.h | 2 - drivers/md/linear.c | 43 -------------- drivers/md/md.c | 26 --------- drivers/md/md.h | 12 ---- drivers/md/multipath.c | 21 ------- drivers/md/raid0.c | 56 ------------------ drivers/md/raid0.h | 2 - drivers/md/raid1.c | 58 +------------------ drivers/md/raid10.c | 121 +-------------------------------------- drivers/md/raid5.c | 32 ----------- include/linux/blkdev.h | 10 ---- include/linux/device-mapper.h | 4 -- 32 files changed, 9 insertions(+), 859 deletions(-) commit 7140aafce2fc14c5af02fdb7859b6bea0108be3d Author: Kent Overstreet Date: Wed Sep 25 13:37:01 2013 -0700 md/raid5: get rid of bio_fits_rdev() Remove bio_fits_rdev() as sufficient merge_bvec_fn() handling is now performed by blk_queue_split() in md_make_request(). Cc: Neil Brown Cc: linux-raid@vger.kernel.org Acked-by: NeilBrown Signed-off-by: Kent Overstreet [dpark: add more description in commit message] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe drivers/md/raid5.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) commit 7ef6b12a1966f273afb750e19e1e8129bea48fec Author: Ming Lin Date: Wed May 6 22:51:24 2015 -0700 md/raid5: split bio for chunk_aligned_read If a read request fits entirely in a chunk, it will be passed directly to the underlying device (providing it hasn't failed of course). If it doesn't fit, the slightly less efficient path that uses the stripe_cache is used. Requests that get to the stripe cache are always completely split up as necessary. So with RAID5, ripping out the merge_bvec_fn doesn't cause it to stop work, but could cause it to take the less efficient path more often. All that is needed to manage this is for 'chunk_aligned_read' do some bio splitting, much like the RAID0 code does. Cc: Neil Brown Cc: linux-raid@vger.kernel.org Acked-by: NeilBrown Signed-off-by: Ming Lin Signed-off-by: Jens Axboe drivers/md/raid5.c | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) commit b49a0871be31a745b2ef7912653683a1876ff701 Author: Ming Lin Date: Fri May 22 00:46:56 2015 -0700 block: remove split code in blkdev_issue_{discard,write_same} The split code in blkdev_issue_{discard,write_same} can go away now that any driver that cares does the split. We have to make sure bio size doesn't overflow. For discard, we set max discard sectors to (1<<31)>>9 to ensure it doesn't overflow bi_size and hopefully it is of the proper granularity as long as the granularity is a power of two. Acked-by: Christoph Hellwig Signed-off-by: Ming Lin Signed-off-by: Jens Axboe block/blk-lib.c | 47 +++++++++++------------------------------------ 1 file changed, 11 insertions(+), 36 deletions(-) commit 0e28997ec476bad4c7dbe0a08775290051325f53 Author: Kent Overstreet Date: Mon Dec 2 18:30:25 2013 -0800 btrfs: remove bio splitting and merge_bvec_fn() calls Btrfs has been doing bio splitting from btrfs_map_bio(), by checking device limits as well as calling ->merge_bvec_fn() etc. That is not necessary any more, because generic_make_request() is now able to handle arbitrarily sized bios. So clean up unnecessary code paths. Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Signed-off-by: Kent Overstreet Signed-off-by: Chris Mason [dpark: add more description in commit message] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe fs/btrfs/volumes.c | 72 ------------------------------------------------------ 1 file changed, 72 deletions(-) commit 749b61dab30736eb95b1ee23738cae90973d4fc3 Author: Kent Overstreet Date: Sat Nov 23 23:11:25 2013 -0800 bcache: remove driver private bio splitting code The bcache driver has always accepted arbitrarily large bios and split them internally. Now that every driver must accept arbitrarily large bios this code isn't nessecary anymore. Cc: linux-bcache@vger.kernel.org Signed-off-by: Kent Overstreet [dpark: add more description in commit message] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe drivers/md/bcache/bcache.h | 18 -------- drivers/md/bcache/io.c | 101 +----------------------------------------- drivers/md/bcache/journal.c | 4 +- drivers/md/bcache/request.c | 16 +++---- drivers/md/bcache/super.c | 32 +------------ drivers/md/bcache/util.h | 5 ++- drivers/md/bcache/writeback.c | 4 +- 7 files changed, 18 insertions(+), 162 deletions(-) commit c66a14d07c136cc35d4dcb84bfc7bc188be24d4c Author: Kent Overstreet Date: Sat Nov 23 22:30:22 2013 -0800 block: simplify bio_add_page() Since generic_make_request() can now handle arbitrary size bios, all we have to do is make sure the bvec array doesn't overflow. __bio_add_page() doesn't need to call ->merge_bvec_fn(), where we can get rid of unnecessary code paths. Removing the call to ->merge_bvec_fn() is also fine, as no driver that implements support for BLOCK_PC commands even has a ->merge_bvec_fn() method. Cc: Christoph Hellwig Cc: Jens Axboe Signed-off-by: Kent Overstreet [dpark: rebase and resolve merge conflicts, change a couple of comments, make bio_add_page() warn once upon a cloned bio.] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe block/bio.c | 135 +++++++++++++++++++++++++----------------------------------- 1 file changed, 55 insertions(+), 80 deletions(-) commit 54efd50bfd873e2dbf784e0b21a8027ba4299a3e Author: Kent Overstreet Date: Thu Apr 23 22:37:18 2015 -0700 block: make generic_make_request handle arbitrarily sized bios The way the block layer is currently written, it goes to great lengths to avoid having to split bios; upper layer code (such as bio_add_page()) checks what the underlying device can handle and tries to always create bios that don't need to be split. But this approach becomes unwieldy and eventually breaks down with stacked devices and devices with dynamic limits, and it adds a lot of complexity. If the block layer could split bios as needed, we could eliminate a lot of complexity elsewhere - particularly in stacked drivers. Code that creates bios can then create whatever size bios are convenient, and more importantly stacked drivers don't have to deal with both their own bio size limitations and the limitations of the (potentially multiple) devices underneath them. In the future this will let us delete merge_bvec_fn and a bunch of other code. We do this by adding calls to blk_queue_split() to the various make_request functions that need it - a few can already handle arbitrary size bios. Note that we add the call _after_ any call to blk_queue_bounce(); this means that blk_queue_split() and blk_recalc_rq_segments() don't need to be concerned with bouncing affecting segment merging. Some make_request_fn() callbacks were simple enough to audit and verify they don't need blk_queue_split() calls. The skipped ones are: * nfhd_make_request (arch/m68k/emu/nfblock.c) * axon_ram_make_request (arch/powerpc/sysdev/axonram.c) * simdisk_make_request (arch/xtensa/platforms/iss/simdisk.c) * brd_make_request (ramdisk - drivers/block/brd.c) * mtip_submit_request (drivers/block/mtip32xx/mtip32xx.c) * loop_make_request * null_queue_bio * bcache's make_request fns Some others are almost certainly safe to remove now, but will be left for future patches. Cc: Jens Axboe Cc: Christoph Hellwig Cc: Al Viro Cc: Ming Lei Cc: Neil Brown Cc: Alasdair Kergon Cc: Mike Snitzer Cc: dm-devel@redhat.com Cc: Lars Ellenberg Cc: drbd-user@lists.linbit.com Cc: Jiri Kosina Cc: Geoff Levand Cc: Jim Paris Cc: Philip Kelleher Cc: Minchan Kim Cc: Nitin Gupta Cc: Oleg Drokin Cc: Andreas Dilger Acked-by: NeilBrown (for the 'md/md.c' bits) Acked-by: Mike Snitzer Reviewed-by: Martin K. Petersen Signed-off-by: Kent Overstreet [dpark: skip more mq-based drivers, resolve merge conflicts, etc.] Signed-off-by: Dongsu Park Signed-off-by: Ming Lin Signed-off-by: Jens Axboe block/blk-core.c | 19 ++-- block/blk-merge.c | 159 ++++++++++++++++++++++++++-- block/blk-mq.c | 4 + block/blk-sysfs.c | 3 + drivers/block/drbd/drbd_req.c | 2 + drivers/block/pktcdvd.c | 6 +- drivers/block/ps3vram.c | 2 + drivers/block/rsxx/dev.c | 2 + drivers/block/umem.c | 2 + drivers/block/zram/zram_drv.c | 2 + drivers/md/dm.c | 2 + drivers/md/md.c | 2 + drivers/s390/block/dcssblk.c | 2 + drivers/s390/block/xpram.c | 2 + drivers/staging/lustre/lustre/llite/lloop.c | 2 + include/linux/blkdev.h | 3 + 16 files changed, 192 insertions(+), 22 deletions(-) commit bdd2648e50508cbb2eb6d1c303e4d2d6d7505400 Author: Bartlomiej Zolnierkiewicz Date: Wed Aug 12 07:41:11 2015 +0900 ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12 The new CPU clock type allows the use of generic CPUfreq driver. Switch Exynos4x12 to using generic cpufreq driver. Previously (when exynos-cpufreq driver was used with boost functionality) ARM_EXYNOS_CPU_FREQ_BOOST_SW config option (which enabled boost functionality) selected EXYNOS_THERMAL one. After switching Exynos4x12 platforms to use cpufreq-dt driver boost support is enabled in the cpufreq-dt driver itself (because there are turbo OPPs defined in the board's DTS file). However we still would like to allow enabling boost support only if thermal support is also enabled for Exynos platforms. To achieve this make ARCH_EXYNOS config option select THERMAL and EXYNOS_THERMAL ones. Please also note that the switch to use the generic cpufreq-dt driver fixes the minor issue present with the old code (support for 'boost' mode in the exynos-cpufreq driver was enabled for all supported SoCs even though 'boost' frequency was provided only for Exynos4x12 ones). Cc: Tomasz Figa Cc: Thomas Abraham Cc: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Acked-by: Viresh Kumar Tested-by: Tobias Jakobi Signed-off-by: Bartlomiej Zolnierkiewicz Tested-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/Kconfig | 2 ++ arch/arm/mach-exynos/exynos.c | 2 ++ 2 files changed, 4 insertions(+) commit 86a76027457633488b0a83d5e2bb944159885605 Author: Masami Hiramatsu Date: Thu Aug 13 06:55:41 2015 +0900 perf probe: Fix to add missed brace around if block The commit 75186a9b09e4 (perf probe: Fix to show lines of sys_ functions correctly) introduced a bug by a missed brace around if block. This fixes to add it. Signed-off-by: Masami Hiramatsu Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Fixes: 75186a9b09e4 ("perf probe: Fix to show lines of sys_ functions correctly") Link: http://lkml.kernel.org/r/20150812215541.9088.62425.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dwarf-aux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2e169bb3ccc20fea5e6f59d1abcea249c6598163 Author: Joerg Roedel Date: Thu Aug 13 12:01:10 2015 +0200 iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h Avoid extern declarations in c files. Signed-off-by: Joerg Roedel drivers/iommu/io-pgtable.c | 5 ----- drivers/iommu/io-pgtable.h | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) commit 6e6cfbc859481b2af7282170ff732fa5e035d842 Author: Joerg Roedel Date: Thu Aug 13 11:15:13 2015 +0200 iommu/msm: Use BUG_ON instead of if () BUG() Found by a coccicheck script. Signed-off-by: Joerg Roedel drivers/iommu/msm_iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 543c8dcf1d3762c6fe372acf78eedc8898709106 Author: Joerg Roedel Date: Thu Aug 13 11:56:59 2015 +0200 iommu/vt-d: Access iomem correctly This fixes wrong accesses to iomem introduced by the kdump fixing code. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 15 +++++++++------ drivers/iommu/intel_irq_remapping.c | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) commit b690420a406256c83ef2c7e96466052e5cab7676 Author: Joerg Roedel Date: Thu Aug 13 11:32:18 2015 +0200 iommu/vt-d: Make two functions static These functions are only used in that file and can be static. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit dc02e46e8d0234eed9f6e42f50763b406c380bc4 Author: Joerg Roedel Date: Thu Aug 13 11:15:13 2015 +0200 iommu/vt-d: Use BUG_ON instead of if () BUG() Found by a coccicheck script. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 30e93761fbf706c0f8a6f7d1abc1b0ddbeea208c Author: Joerg Roedel Date: Thu Aug 13 11:13:17 2015 +0200 iommu/vt-d: Return false instead of 0 in irq_remapping_cap() The function return type is bool, so return false instead of 0. Signed-off-by: Joerg Roedel drivers/iommu/irq_remapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 23d3a98c13ee0ffe2647121fac7533282643e6f1 Author: Joerg Roedel Date: Thu Aug 13 11:15:13 2015 +0200 iommu/amd: Use BUG_ON instead of if () BUG() Found by a coccicheck script. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 4 ++-- drivers/iommu/amd_iommu_v2.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 7aec51cbf0646cc15d719b08caea931576dc7f2a Author: Andi Kleen Date: Wed Aug 12 15:48:37 2015 -0700 perf tools: Support static linking with libdw The Fedora 22 version of libdw requires a couple of extra libraries to link. With a dynamic link the dependencies are pulled in automatically, but this doesn't work for static linking. Add the needed libraries explicitely to the feature probe and the Makefile. v2: Explicitly check for static linking and only add the dependencies when -static is set. This is to avoid regressions on Arnaldo's system. Signed-off-by: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1439419717-20601-1-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/build/feature/Makefile | 7 ++++++- tools/perf/config/Makefile | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) commit 4160cd9e5ef9ac9f1c9c429e1606bf08a56c8a49 Author: Joerg Roedel Date: Thu Aug 13 11:31:48 2015 +0200 iommu/amd: Make a symbol static Symbol is only used in that file and can be static. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a130e69f28ba1d180242b581a15d09f06dad9227 Author: Joerg Roedel Date: Thu Aug 13 11:07:25 2015 +0200 iommu/amd: Simplify allocation in irq_remapping_alloc() Allocate the irq data only in the loop. Signed-off-by: Joerg Roedel drivers/iommu/amd_iommu.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 5e3863a74fb70d6a432504ba2fa16a998cd3736b Author: Jonas Rabenstein Date: Fri Aug 14 02:36:14 2015 +0900 cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o Commit 966f2a71a92d ("cpufreq: exynos: remove Exynos4x12 specific cpufreq driver support") deleted option ARM_EXYNOS_CPUFREQ but missed to delete a rule in drivers/cpufreq/Makefile which depends on that option. Remove unselectable rule for arm-exynos-cpufreq.o from drivers/cpufreq/Makefile. Signed-off-by: Jonas Rabenstein Acked-by: Viresh Kumar Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim drivers/cpufreq/Makefile | 1 - 1 file changed, 1 deletion(-) commit ba032795463bfc461937dbde7a345103a47f969b Author: Marek Szyprowski Date: Fri Aug 14 02:29:48 2015 +0900 ARM: dts: add iommu property to JPEG device for exynos4 JPEG codec node has been added in parallel to the patch, which added support for IOMMU to Exynos platform, so JPEG device for Exynos4 SoCs lacked IOMMU property. This patch fixes this issue. Signed-off-by: Marek Szyprowski Reviewed-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4.dtsi | 1 + 1 file changed, 1 insertion(+) commit c8b34e36ca1a3e4c8ada87acefbb25119ee89347 Author: Alexis Ballier Date: Fri Aug 14 02:27:33 2015 +0900 ARM: dts: enable SPI1 for exynos4412-odroidu3 SPI1 is available on IO Port #2 (as depicted on their website) in PCB Revision 0.5 of Hardkernel Odroid U3 board. The shield connects a 256KiB spi-nor flash on that bus. Signed-off-by: Alexis Ballier Reviewed-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-odroidu3.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit e0b12512b40c7a1cc0825773d118ecfdb464be41 Author: Michal Suchanek Date: Thu Jul 30 23:12:43 2015 +0900 ARM: dts: Add SPI CS on exynos5250-snow Although there is only one choice of chipselect it is necessary to specify it. The driver cannot claim the gpio otherwise. Signed-off-by: Michal Suchanek Acked-by: Javier Martinez Canillas Acked-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250-snow.dts | 1 + 1 file changed, 1 insertion(+) commit 5600f8cc8aa8bdcf335e84a7f85eae204b379bae Author: Chanwoo Choi Date: Thu Jul 30 23:02:22 2015 +0900 ARM: dts: Add CPU cooling binding for exynos3250 boards This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board. Signed-off-by: Chanwoo Choi Acked-by: Kyungmin Park Acked-by Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250-monk.dts | 15 +++++++++++++++ arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++ arch/arm/boot/dts/exynos3250.dtsi | 1 + 3 files changed, 31 insertions(+) commit df09df6f9ac384fef825c2c21c62cd576acda17f Author: Chanho Park Date: Thu Jul 30 23:11:00 2015 +0900 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order The odroid-xu3 board which is based on exynos5422 not exynos5800 is booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and cpu4-7 are cortex-a15. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Chanho Park Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-cpus.dtsi | 81 ++++++++++++++++++++++ arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 + 2 files changed, 82 insertions(+) commit f44997412e5b39b6a1231f16555120c5b2aae0ed Author: Bartlomiej Zolnierkiewicz Date: Wed Aug 12 07:38:45 2015 +0900 ARM: dts: add CPU OPP and regulator supply property for exynos4x12 For Exynos4x12 platforms, add CPU operating points (using opp-v2 bindings) and CPU regulator supply properties for migrating from Exynos specific cpufreq driver to using generic cpufreq driver. Based on the earlier work by Thomas Abraham. Cc: Doug Anderson Cc: Andreas Faerber Cc: Thomas Abraham Reviewed-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Acked-by: Viresh Kumar Tested-by: Tobias Jakobi Signed-off-by: Bartlomiej Zolnierkiewicz Tested-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4212.dtsi | 81 ++++++++++++++++++++++++ arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 ++ arch/arm/boot/dts/exynos4412-origen.dts | 4 ++ arch/arm/boot/dts/exynos4412-trats2.dts | 4 ++ arch/arm/boot/dts/exynos4412.dtsi | 83 +++++++++++++++++++++++++ 5 files changed, 176 insertions(+) commit 48816affd931c44045913873dff21693cd7fc948 Author: Chanwoo Choi Date: Fri Jul 24 12:55:21 2015 +0900 ARM: dts: Add CPU OPP and regulator supply property for exynos3250 This patch add CPU operating points which include CPU frequency and regulator voltage to use generic cpufreq drivers. Signed-off-by: Chanwoo Choi Acked-by: Kyungmin Park Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250-monk.dts | 4 ++++ arch/arm/boot/dts/exynos3250-rinato.dts | 4 ++++ arch/arm/boot/dts/exynos3250.dtsi | 15 +++++++++++++++ 3 files changed, 23 insertions(+) commit 846c53009170bae6cfe0b75eb793c6966d2c0f83 Author: Thomas Abraham Date: Wed Jul 1 15:10:36 2015 +0200 ARM: dts: add CPU OPP and regulator supply property for exynos5250 For Exynos5250 platforms, add CPU operating points and CPU regulator supply properties for migrating from Exynos specific cpufreq driver to using generic cpufreq driver. Cc: Doug Anderson Cc: Andreas Faerber Signed-off-by: Thomas Abraham [b.zolnierkie: split Exynos5250 support from the original patch] [b.zolnierkie: added CPU regulator supply property for Spring boards] Signed-off-by: Bartlomiej Zolnierkiewicz Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Acked-by: Viresh Kumar Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250-arndale.dts | 4 ++++ arch/arm/boot/dts/exynos5250-smdk5250.dts | 4 ++++ arch/arm/boot/dts/exynos5250-snow.dts | 4 ++++ arch/arm/boot/dts/exynos5250-spring.dts | 4 ++++ arch/arm/boot/dts/exynos5250.dtsi | 22 ++++++++++++++++++++++ 5 files changed, 38 insertions(+) commit 58c036a7ac417013bc01d09ae876265069e189d9 Author: Chanwoo Choi Date: Fri Jul 24 12:58:41 2015 +0900 ARM: EXYNOS: Add exynos3250 compatible to use generic cpufreq driver This patch add exynos3250 compatible string to exynos_cpufreq_matches for supporting generic cpufreq driver on Exynos3250. Signed-off-by: Chanwoo Choi Acked-by: Kyungmin Park Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Kukjin Kim arch/arm/mach-exynos/exynos.c | 1 + 1 file changed, 1 insertion(+) commit c913f022dacad8c92ce1ed6bca7587e45a3b380e Author: Thomas Abraham Date: Wed Jul 1 15:10:37 2015 +0200 ARM: EXYNOS: switch to using generic cpufreq driver for exynos5250 The new CPU clock type allows the use of generic CPUfreq driver. Switch Exynos5250 to using generic cpufreq driver. Cc: Tomasz Figa Signed-off-by: Thomas Abraham [b.zolnierkie: split Exynos5250 support from the original patch] Signed-off-by: Bartlomiej Zolnierkiewicz Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Acked-by: Viresh Kumar Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/exynos.c | 1 + 1 file changed, 1 insertion(+) commit 966f2a71a92d1e7adafb5c62d1634beb451b1500 Author: Bartlomiej Zolnierkiewicz Date: Wed Aug 12 07:44:22 2015 +0900 cpufreq: exynos: remove Exynos4x12 specific cpufreq driver support Exynos4x12 based platforms have switched over to use generic cpufreq driver for cpufreq functionality. So the Exynos specific cpufreq support for these platforms can be removed. Also once Exynos4x12 based platforms support have been removed the shared exynos-cpufreq driver is no longer needed and can be deleted. Based on the earlier work by Thomas Abraham. Cc: Viresh Kumar Cc: Thomas Abraham Reviewed-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Acked-by: Viresh Kumar Tested-by: Tobias Jakobi Signed-off-by: Bartlomiej Zolnierkiewicz Tested-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim drivers/cpufreq/Kconfig.arm | 38 ------ drivers/cpufreq/Makefile | 2 - drivers/cpufreq/exynos-cpufreq.c | 234 ---------------------------------- drivers/cpufreq/exynos-cpufreq.h | 72 ----------- drivers/cpufreq/exynos4x12-cpufreq.c | 236 ----------------------------------- 5 files changed, 582 deletions(-) commit cd6aceef028afc3fa216e3e7bc94cc31632cad43 Author: Bartlomiej Zolnierkiewicz Date: Wed Aug 12 07:36:47 2015 +0900 clk: exynos4x12: add cpu clock configuration data and instantiate cpu clock With the addition of the new Samsung specific cpu-clock type, the arm clock can be represented as a cpu-clock type. Add the CPU clock configuration data and instantiate the CPU clock type for Exynos4x12. Based on the earlier work by Thomas Abraham. Cc: Tomasz Figa Cc: Michael Turquette Cc: Thomas Abraham Reviewed-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Acked-by: Sylwester Nawrocki Tested-by: Tobias Jakobi Signed-off-by: Bartlomiej Zolnierkiewicz Tested-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim drivers/clk/samsung/clk-exynos4.c | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit 41609892701e26724b8617201f43254cadf2e7ae Author: Viresh Kumar Date: Wed Aug 12 15:59:45 2015 +0530 blk-cgroup: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. Acked-by: Tejun Heo Signed-off-by: Viresh Kumar Signed-off-by: Jens Axboe include/linux/blk-cgroup.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11cec15bf3fb498206ef63b1fa26c27689e02d0e Author: Thierry Reding Date: Thu Aug 6 14:20:31 2015 +0200 iommu/tegra-smmu: Parameterize number of TLB lines The number of TLB lines was increased from 16 on Tegra30 to 32 on Tegra114 and later. Parameterize the value so that the initial default can be set accordingly. On Tegra30, initializing the value to 32 would effectively disable the TLB and hence cause massive latencies for memory accesses translated through the SMMU. This is especially noticeable for isochronuous clients such as display, whose FIFOs would continuously underrun. Fixes: 891846516317 ("memory: Add NVIDIA Tegra memory controller support") Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 9 +++++++-- drivers/memory/tegra/tegra114.c | 1 + drivers/memory/tegra/tegra124.c | 1 + drivers/memory/tegra/tegra30.c | 1 + include/soc/tegra/mc.h | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) commit 1ec0e115f8604940491861d207cc1e1478db97b3 Author: Tomeu Vizoso Date: Tue May 19 16:49:12 2015 +0200 ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze() This callback is expected to do the same as enter() but it has to guarantee that interrupts aren't enabled at any point in its execution, as the tick is frozen. It will be called when the system goes to suspend-to-idle and will reduce power usage because CPUs won't be awaken for unnecessary IRQs. By setting the CPUIDLE_FLAG_TIMER_STOP flag, we can reuse the same code for both the enter() and enter_freeze() callbacks. Signed-off-by: Tomeu Vizoso Cc: Rafael J. Wysocki Signed-off-by: Thierry Reding arch/arm/mach-tegra/cpuidle-tegra114.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit fc0cf1773434c153a831067a29935e4627803583 Author: Thierry Reding Date: Mon Feb 23 15:24:11 2015 +0100 ARM: tegra: Disable cpuidle if PSCI is available This is only relevant on Tegra114 and Tegra124, because earlier Tegra generations used Cortex-A9 without secure extensions. Signed-off-by: Thierry Reding arch/arm/mach-tegra/cpuidle-tegra114.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 592431b0369dc7a1f4a68f15ff0c48d94b66297f Author: Thierry Reding Date: Tue Aug 4 15:25:03 2015 +0200 soc/tegra: pmc: Use existing pclk reference The driver requests the pclk clock at probe time already and stores its reference to it in struct tegra_pmc, so there is no need to look it up everytime it is needed. Use the existing reference instead. Signed-off-by: Thierry Reding drivers/soc/tegra/pmc.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 4a4466a6a418b96d6cb07ffb46cefa13df8f12ef Author: Thierry Reding Date: Fri Jul 3 11:50:27 2015 +0200 soc/tegra: pmc: Remove unnecessary return statement Functions returning no value don't need an explicit return statement. Signed-off-by: Thierry Reding drivers/soc/tegra/pmc.c | 1 - 1 file changed, 1 deletion(-) commit e538674740e632b57091f72cc06c0b03b45fb021 Author: Andreas Gruenbacher Date: Tue Aug 11 11:30:31 2015 +0200 nfsd: Fix two typos in comments (espect -> expect) and (no -> know) Signed-off-by: Andreas Gruenbacher Signed-off-by: J. Bruce Fields fs/nfsd/nfs4acl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9462510ce31e2b91156bdcc33e4c737e6768e5f8 Author: Tomeu Vizoso Date: Tue Jul 14 10:29:55 2015 +0200 pinctrl: tegra: Only set the gpio range if needed If the gpio DT node has the gpio-ranges property, the range will be added by the gpio core and doesn't need to be added by the pinctrl driver. By having the gpio-ranges property, we have an explicit dependency from the gpio node to the pinctrl node and we can stop using the deprecated pinctrl_add_gpio_range() function. Signed-off-by: Tomeu Vizoso Acked-by: Stephen Warren Acked-by: Linus Walleij Signed-off-by: Thierry Reding drivers/pinctrl/pinctrl-tegra.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit c87fb4a378f93f114b9906e180d83877cee4e7f4 Author: J. Bruce Fields Date: Thu Aug 6 12:47:02 2015 -0400 lockd: NLM grace period shouldn't block NFSv4 opens NLM locks don't conflict with NFSv4 share reservations, so we're not going to learn anything new by watiting for them. They do conflict with NFSv4 locks and with delegations. Signed-off-by: J. Bruce Fields fs/lockd/svc.c | 1 + fs/nfs_common/grace.c | 23 +++++++++++++++++++++-- fs/nfsd/nfs4proc.c | 8 ++++---- fs/nfsd/nfs4state.c | 8 +++++--- include/linux/fs.h | 6 ++++++ 5 files changed, 37 insertions(+), 9 deletions(-) commit 4bc6603778e473938ae815123b786e724084790c Author: Jeff Layton Date: Thu Jul 30 09:52:13 2015 -0400 nfsd: include linux/nfs4.h in export.h export.h refers to the pnfs_layouttype enum, which is defined there. Signed-off-by: Jeff Layton Reviewed-by: Christoph Hellwig Signed-off-by: J. Bruce Fields fs/nfsd/export.h | 1 + 1 file changed, 1 insertion(+) commit 7c9fd23ff12e04f36be5ae5ff5dfe72fb913f215 Author: Masahiro Yamada Date: Fri Jul 31 14:58:21 2015 +0900 soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile Kbuild descends into drivers/soc/tegra/ only when CONFIG_ARCH_TEGRA is enabled. (see drivers/soc/Makefile) $(CONFIG_ARCH_TEGRA) in drivers/soc/tegra/Makefile always evaluates to 'y'. Signed-off-by: Masahiro Yamada Signed-off-by: Thierry Reding drivers/soc/tegra/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 15ee1f7d1432c8a781df5d8f92c18bd952088667 Author: Heiko Stuebner Date: Tue Aug 11 18:12:03 2015 +0800 clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks pclk_pd_pmu needs to keep running and with the upcoming gpio clock handling this is not always the case anymore. So add it to the list of critical clocks for now. Signed-off-by: Heiko Stuebner Signed-off-by: Lin Huang Reviewed-by: Douglas Anderson Acked-by: Stephen Boyd Signed-off-by: Linus Walleij drivers/clk/rockchip/clk-rk3288.c | 1 + 1 file changed, 1 insertion(+) commit 588c43a7bd5a53ae523b318e1db16bdd59963a3c Author: Thierry Reding Date: Mon Mar 23 10:45:12 2015 +0100 memory: tegra: Add Tegra210 support Add the table of memory clients and SWGROUPs for Tegra210 to enable SMMU support for this new SoC. Signed-off-by: Thierry Reding drivers/iommu/Kconfig | 2 +- drivers/memory/tegra/Makefile | 1 + drivers/memory/tegra/mc.c | 3 + drivers/memory/tegra/mc.h | 4 + drivers/memory/tegra/tegra210.c | 1080 ++++++++++++++++++++++++++++++ include/dt-bindings/memory/tegra210-mc.h | 36 + 6 files changed, 1125 insertions(+), 1 deletion(-) commit 3c01cf3befa66cc21f06672685cf59a53056887a Author: Paul Walmsley Date: Thu Jun 4 19:33:48 2015 +0000 memory: tegra: Add support for a variable-size client ID bitfield Recent versions of the Tegra MC hardware extend the size of the client ID bitfield in the MC_ERR_STATUS register by one bit. While one could simply extend the bitfield for older hardware, that would allow data from reserved bits into the driver code, which is generally a bad idea on principle. So this patch instead passes in the client ID mask from from the per-SoC MC data. There's no MC support for T210 (yet), but when that support winds up in the kernel, the appropriate soc->client_id_mask value for that chip will be 0xff. Based on an original patch by David Ung . Signed-off-by: Paul Walmsley Cc: Paul Walmsley Cc: Thierry Reding Cc: David Ung Signed-off-by: Thierry Reding drivers/memory/tegra/mc.c | 5 +++-- drivers/memory/tegra/tegra114.c | 1 + drivers/memory/tegra/tegra124.c | 2 ++ drivers/memory/tegra/tegra30.c | 1 + include/soc/tegra/mc.h | 2 ++ 5 files changed, 9 insertions(+), 2 deletions(-) commit 4080e99b8341f81c4ed1e17d8ef44d171c473a1b Author: Russell King Date: Mon Jul 27 13:30:12 2015 +0100 iommu/tegra-smmu: Factor out tegra_smmu_set_pde() This code is used both when creating a new page directory entry and when tearing it down, with only the PDE value changing between both cases. Factor the code out so that it can be reused. Signed-off-by: Russell King [treding@nvidia.com: make commit message more accurate] Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 49 ++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 21 deletions(-) commit 7ffc6f066eb73b07a0ef7c94d05107aef271ac21 Author: Russell King Date: Thu Aug 6 14:56:39 2015 +0200 iommu/tegra-smmu: Extract tegra_smmu_pte_get_use() Extract the use count reference accounting into a separate function and separate it from allocating the PTE. Signed-off-by: Russell King [treding@nvidia.com: extract and write commit message] Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 707917cbc6ac0c0ea968b5eb635722ea84808286 Author: Russell King Date: Mon Jul 27 13:30:02 2015 +0100 iommu/tegra-smmu: Use __GFP_ZERO to allocate zeroed pages Rather than explicitly zeroing pages allocated via alloc_page(), add __GFP_ZERO to the gfp mask to ask the allocator for zeroed pages. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) commit 05a65f06f69fa6c487c2933f2971d9ec4e33eb0d Author: Russell King Date: Mon Jul 27 13:29:57 2015 +0100 iommu/tegra-smmu: Remove PageReserved manipulation Remove the unnecessary manipulation of the PageReserved flags in the Tegra SMMU driver. None of this is required as the page(s) remain private to the SMMU driver. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 5 ----- 1 file changed, 5 deletions(-) commit e3c971960fd41fc55235ba05b95e053355cb0e73 Author: Russell King Date: Mon Jul 27 13:29:52 2015 +0100 iommu/tegra-smmu: Convert to use DMA API Use the DMA API instead of calling architecture internal functions in the Tegra SMMU driver. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 139 +++++++++++++++++++++++++++------------------ 1 file changed, 85 insertions(+), 54 deletions(-) commit d62c7a886c2bc9f9258164814245dc0678b9a52e Author: Russell King Date: Mon Jul 27 13:29:46 2015 +0100 iommu/tegra-smmu: smmu_flush_ptc() wants device addresses Pass smmu_flush_ptc() the device address rather than struct page pointer. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit b8fe03827b192a23d04e99c40d72e6b938fa6576 Author: Russell King Date: Mon Jul 27 13:29:41 2015 +0100 iommu/tegra-smmu: Split smmu_flush_ptc() smmu_flush_ptc() is used in two modes: one is to flush an individual entry, the other is to flush all entries. We know at the call site which we require. Split the function into smmu_flush_ptc_all() and smmu_flush_ptc(). Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 4b3c7d10765403ab19628fb7d530b8ce1c50b81d Author: Russell King Date: Mon Jul 27 13:29:36 2015 +0100 iommu/tegra-smmu: Move flush_dcache to tegra-smmu.c Drivers should not be using __cpuc_* functions nor outer_cache_flush() directly. This change partly cleans up tegra-smmu.c. The only difference between cache handling of the tegra variants is Denver, which omits the call to outer_cache_flush(). This is due to Denver being an ARM64 CPU, and the ARM64 architecture does not provide this function. (This, in itself, is a good reason why these should not be used.) Signed-off-by: Russell King [treding@nvidia.com: fix build failure on 64-bit ARM] Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 30 +++++++++++++++++++++++++----- drivers/memory/tegra/tegra114.c | 17 ----------------- drivers/memory/tegra/tegra124.c | 30 ------------------------------ drivers/memory/tegra/tegra30.c | 17 ----------------- include/soc/tegra/mc.h | 7 ------- 5 files changed, 25 insertions(+), 76 deletions(-) commit 32924c76b0cbc67aa4cf0741f7bc6c37f097aaf3 Author: Russell King Date: Mon Jul 27 13:29:31 2015 +0100 iommu/tegra-smmu: Use kcalloc() to allocate counter array Use kcalloc() to allocate the use-counter array for the page directory entries/page tables. Using kcalloc() allows us to be provided with zero-initialised memory from the allocators, rather than initialising it ourselves. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) commit 853520fa96511e4a49942d2cba34a329528c7e41 Author: Russell King Date: Mon Jul 27 13:29:26 2015 +0100 iommu/tegra-smmu: Store struct page pointer for page tables Store the struct page pointer for the second level page tables, rather than working back from the page directory entry. This is necessary as we want to eliminate the use of physical addresses used with arch-private functions, switching instead to use the streaming DMA API. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) commit 0b42c7c1132f331fba263f0d2ca23544770584b7 Author: Russell King Date: Mon Jul 27 13:29:21 2015 +0100 iommu/tegra-smmu: Fix page table lookup in unmap/iova_to_phys methods Fix the page table lookup in the unmap and iova_to_phys methods. Neither of these methods should allocate a page table; a missing page table should be treated the same as no mapping present. More importantly, using as_get_pte() for an IOVA corresponding with a non-present page table entry increments the use-count for the page table, on the assumption that the caller of as_get_pte() is going to setup a mapping. This is an incorrect assumption. Fix both of these bugs by providing a separate helper which only looks up the page table, but never allocates it. This is akin to pte_offset() for CPU page tables. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) commit 34d35f8cbe51bf93faf3214ee5b5d6f8ae7df4c1 Author: Russell King Date: Mon Jul 27 13:29:16 2015 +0100 iommu/tegra-smmu: Add iova_pd_index() and iova_pt_index() helpers Add a pair of helpers to get the page directory and page table indexes. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 8482ee5ea1097445f6498ee522965f5311667763 Author: Russell King Date: Mon Jul 27 13:29:10 2015 +0100 iommu/tegra-smmu: Factor out common PTE setting Factor out the common PTE setting code into a separate function. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) commit b98e34f0c6f1c4ac7af41afecc4a26f5f2ebe68d Author: Russell King Date: Mon Jul 27 13:29:05 2015 +0100 iommu/tegra-smmu: Fix unmap() method The Tegra SMMU unmap path has several problems: 1. as_pte_put() can perform a write-after-free 2. tegra_smmu_unmap() can perform cache maintanence on a page we have just freed. 3. when a page table is unmapped, there is no CPU cache maintanence of the write clearing the page directory entry, nor is there any maintanence of the IOMMU to ensure that it sees the page table has gone. Fix this by getting rid of as_pte_put(), and instead coding the PTE unmap separately from the PDE unmap, placing the PDE unmap after the PTE unmap has been completed. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) commit 9113785c3e918187b6b0c084c60e0344a2f1685c Author: Russell King Date: Mon Jul 27 13:29:00 2015 +0100 iommu/tegra-smmu: Fix iova_to_phys() method iova_to_phys() has several problems: (a) iova_to_phys() is supposed to return 0 if there is no entry present for the iova. (b) if as_get_pte() fails, we oops the kernel by dereferencing a NULL pointer. Really, we should not even be trying to allocate a page table at all, but should only be returning the presence of the 2nd level page table. This will be fixed in a subsequent patch. Treat both of these conditions as "no mapping" conditions. Signed-off-by: Russell King Signed-off-by: Thierry Reding drivers/iommu/tegra-smmu.c | 3 +++ 1 file changed, 3 insertions(+) commit 8152d8cc593095fab36d7b71365bd32c9c1dfd29 Author: Marcus Cooper Date: Wed Aug 12 19:27:48 2015 +0200 pinctrl: sun4i: add spdif to pin description. Signed-off-by: Marcus Cooper Reviewed-by: Hans de Goede Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 929550b9f9f870d73489df98318a740183c2e955 Author: Dirk Behme Date: Tue Aug 11 15:51:59 2015 +0300 gpio: mxc: fix section mismatch warning Fix the section mismatch warning WARNING: vmlinux.o(.text+0x2b2788): Section mismatch in reference from the function mxc_gpio_probe() to the function .init.text:mxc_gpio_init_gc() The function mxc_gpio_probe() references the function __init mxc_gpio_init_gc(). This is often because mxc_gpio_probe lacks a __init annotation or the annotation of mxc_gpio_init_gc is wrong. Signed-off-by: Dirk Behme Signed-off-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij drivers/gpio/gpio-mxc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39ba928f8b34720b60c68d4c1bb274ae219ab39e Author: Leilk Liu Date: Thu Aug 13 20:06:41 2015 +0800 spi: Mediatek: fixup cpu_to_le32 incorrect usage writel() already does a cpu_to_le32 conversion, so remove cpu_to_le32(). Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit d3fb9800146b7ad96b7604755c1a943fe1abbde2 Author: Viresh Kumar Date: Thu Aug 13 18:09:49 2015 +0530 regulator: core: Spelling fix Trivial spell fix, s/succesfully/successfully. Signed-off-by: Viresh Kumar Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0bf413558eb5668fe92b1a1931dc26b0df5908ae Merge: 3d3cacc ba68227 Author: Olof Johansson Date: Thu Aug 13 15:05:06 2015 +0200 Merge tag 'qcom-soc-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm into next/drivers Qualcomm ARM Based SoC Updates for 4.3 * Add SMEM driver * Add SMD driver * Add RPM over SMD driver * Select QCOM_SCM by default * tag 'qcom-soc-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm: devicetree: soc: Add Qualcomm SMD based RPM DT binding soc: qcom: Driver for the Qualcomm RPM over SMD soc: qcom: Add Shared Memory Driver soc: qcom: Add device tree binding for Shared Memory Device drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM soc: qcom: Add Shared Memory Manager driver Signed-off-by: Olof Johansson commit 129e5824cd96d9289679973f0ff7c48e88d569bb Author: Kinglong Mee Date: Mon Jul 27 11:10:15 2015 +0800 sunrpc: Switch to using hash list instead single list Switch using list_head for cache_head in cache_detail, it is useful of remove an cache_head entry directly from cache_detail. v8, using hash list, not head list Signed-off-by: Kinglong Mee Reviewed-by: NeilBrown Signed-off-by: J. Bruce Fields include/linux/sunrpc/cache.h | 4 +-- net/sunrpc/cache.c | 60 +++++++++++++++++++++++--------------------- 2 files changed, 33 insertions(+), 31 deletions(-) commit c8c081b70cb563cc4d41ab9933fa3323c6f6ffca Author: Kinglong Mee Date: Mon Jul 27 11:09:42 2015 +0800 sunrpc/nfsd: Remove redundant code by exports seq_operations functions Nfsd has implement a site of seq_operations functions as sunrpc's cache. Just exports sunrpc's codes, and remove nfsd's redundant codes. v8, same as v6 Signed-off-by: Kinglong Mee Reviewed-by: NeilBrown Signed-off-by: J. Bruce Fields fs/nfsd/export.c | 73 ++------------------------------------------ include/linux/sunrpc/cache.h | 5 +++ net/sunrpc/cache.c | 15 +++++---- 3 files changed, 17 insertions(+), 76 deletions(-) commit 9936f2ae37482aff54ce53918c69b378bb50097c Author: Kinglong Mee Date: Mon Jul 27 11:09:10 2015 +0800 sunrpc: Store cache_detail in seq_file's private directly Cleanup. Just store cache_detail in seq_file's private, an allocated handle is redundant. v8, same as v6. Signed-off-by: Kinglong Mee Reviewed-by: NeilBrown Signed-off-by: J. Bruce Fields net/sunrpc/cache.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit 7ba6cad6c88f1bf0b7d66d9628d7c3f36ecb4bfe Author: Kinglong Mee Date: Wed Jun 24 16:33:37 2015 +0800 nfsd: New helper nfsd4_cb_sequence_done() for processing more cb errors According to Christoph's advice, this patch introduce a new helper nfsd4_cb_sequence_done() for processing more callback errors, following the example of the client's nfs41_sequence_done(). Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4callback.c | 122 +++++++++++++++++++++++++++++++++++-------------- fs/nfsd/state.h | 2 +- 2 files changed, 88 insertions(+), 36 deletions(-) commit 509b642ec1cb161f0e9d349bb6bd416554955b3a Merge: ab39aab d93ac74 Author: Olof Johansson Date: Thu Aug 13 14:48:09 2015 +0200 Merge tag 'berlin64-for-v4.3-1' of git://git.infradead.org/users/hesselba/linux-berlin into next/arm64 Initial support for Marvell Berlin4CT ARM64 SoC * tag 'berlin64-for-v4.3-1' of git://git.infradead.org/users/hesselba/linux-berlin: arm64: dts: Add dts files for Marvell Berlin4CT SoC Signed-off-by: Olof Johansson commit 952cfbd38e263ae81fbb4e575fe40d220891d68b Author: Ulises Brindis Date: Wed Aug 5 10:23:07 2015 -0700 gpio/mxc: mask gpio interrupts in suspend Currently in the FSL platform all GPIO interrupts in a bank are muxed into two GPIO lines to the GPC interrupt controller. In each GPIO bank GPIOs 0-15 are OR'ed into one GPC interrupt controller interrupt and 16-31 are OR'ed into another. With the current code, if any of the 0-15 or 16-31 interrupts are marked as wakeup capable, all interrupts belonging to that sub-bank (either 0-15 or 16-31) will wake up the device. This is because interrupts are only being masked at the interrupt controller and not at the GPIO controller. This patch allows masking of GPIO interrupts at the GPIO controller during suspend if they have not been labeled wakeup capable. This patch uses preexisting IRQCHIP_MASK_ON_SUSPEND flag while initializing the GPIO interrupts to get the desired behavior. Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin Signed-off-by: Ulises Brindis Signed-off-by: Linus Walleij drivers/gpio/gpio-mxc.c | 1 + 1 file changed, 1 insertion(+) commit 627c89b4d7c0a916b7702e23ded6e063dcb14ad5 Author: Axel Lin Date: Wed Aug 5 22:37:41 2015 +0800 gpio: omap: Fix missing raw locks conversion Fix below build warning: CC drivers/gpio/gpio-omap.o drivers/gpio/gpio-omap.c: In function 'omap_gpio_irq_type': drivers/gpio/gpio-omap.c:504:3: warning: passing argument 1 of 'spin_unlock_irqrestore' from incompatible pointer type [enabled by default] include/linux/spinlock.h:360:29: note: expected 'struct spinlock_t *' but argument is of type 'struct raw_spinlock_t *' Fixes: commit 4dbada2be460 ("gpio: omap: use raw locks for locking") Signed-off-by: Axel Lin Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f6f02cd49d61e9856ff2c337578316a1a1b3f88 Merge: 3afa129 cbfe8fa Author: Linus Walleij Date: Thu Aug 13 14:42:55 2015 +0200 Merge tag 'v4.2-rc4' into devel Linux 4.2-rc4 commit 627b1516a390e19fb26b1c0c9bd2546722524965 Author: Wei Chen Date: Wed Aug 5 03:22:14 2015 +0000 pinctrl: atlas7: clear ugly branch statements for pull and drivestrength To set/get atlas7 pull & drive strength, we use lots of if/else to check pad type. But except mask value or immediate value, all actions in these conditional branches are the same. So we use predefined pull info table and drive strength table to reduce these redundancy code. Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 193 +++++++++++++++++----------------- 1 file changed, 94 insertions(+), 99 deletions(-) commit 94fdc2e627d1b479a117cd8b9ece5f4613a5c956 Author: Jes Sorensen Date: Thu Aug 6 12:46:31 2015 -0400 orinoco: Do not call wiphy_unregister() from free_orinocodev() alloc_orinocodev() would allocate the wiphy entry, but it would only get registered much later in orinoco_init(). If something failed in the init process inbetween the call to alloc_orinocodev() and the completion of orinoco_init(), the drivers would end up calling wiphy_unregister() with a NULL pointer causing beautiful OOPS fireworks. Explicitly call wiphy_unregister() instead in the right places. Signed-off-by: Jes Sorensen Signed-off-by: Kalle Valo drivers/net/wireless/orinoco/main.c | 2 -- drivers/net/wireless/orinoco/orinoco_cs.c | 1 + drivers/net/wireless/orinoco/orinoco_nortel.c | 5 ++++- drivers/net/wireless/orinoco/orinoco_pci.c | 5 ++++- drivers/net/wireless/orinoco/orinoco_plx.c | 5 ++++- drivers/net/wireless/orinoco/orinoco_usb.c | 2 ++ 6 files changed, 15 insertions(+), 5 deletions(-) commit cb9d61e5304e2880180e4ccf685a298c868094e0 Author: Aniket Nagarnaik Date: Thu Aug 6 00:39:16 2015 -0700 mwifiex: claim sdio bus while downloading the firmware Our 8887 A2 chip can have separate firmware images for bluetooth and WLAN. We observed an issue during parallel downloading of these images by btmrvl and mwifiex drivers. This patch claims sdio bus before starting of the firmware download in mwifiex and releases it after completion to fix the problem. Signed-off-by: Aniket Nagarnaik Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sdio.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2375fa2b36feaf34c7728ee999dc4d8f4d92031d Author: chunfan chen Date: Wed Aug 5 06:09:42 2015 -0700 mwifiex: fix unable to connect hidden SSID AP on DFS channel We will check if any hidden SSID found in passive scan channels and do specific SSID active scan for those channels. Signed-off-by: chunfan chen Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 1 + drivers/net/wireless/mwifiex/init.c | 2 +- drivers/net/wireless/mwifiex/main.h | 2 + drivers/net/wireless/mwifiex/scan.c | 143 +++++++++++++++++++++++++++++++++--- 4 files changed, 136 insertions(+), 12 deletions(-) commit eee7f1961b9d85d1fbd1febf73c90d421cc75536 Author: Zhaoyang Liu Date: Wed Aug 5 06:09:41 2015 -0700 mwifiex: add firmware dump support for SD8997 This patch adds firmware dump feature for SD8997 chipset. The difference here is only one memory type is needed to save all firmware information. Device dump information will be uploaded to usersapace file. Signed-off-by: Zhaoyang Liu Signed-off-by: Cathy Luo Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sdio.c | 147 +++++++++++++++++++++++++++++++++--- drivers/net/wireless/mwifiex/sdio.h | 11 ++- 2 files changed, 148 insertions(+), 10 deletions(-) commit 6d85ef00d9dfe3bb61b021476465fa4e371ed076 Author: Zhaoyang Liu Date: Wed Aug 5 06:09:40 2015 -0700 mwifiex: add support for 8997 chipset This patch adds support for 8997 chipset to mwifiex with SDIO/PCIe/USB interface. The corresponding firmware image files are located in: "mrvl/sd8997_uapsta.bin" "mrvl/pcie8997_uapsta.bin" "mrvl/usb8997_uapsta.bin" Signed-off-by: Zhaoyang Liu Signed-off-by: Cathy Luo Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/Kconfig | 12 +++---- drivers/net/wireless/mwifiex/pcie.c | 12 +++++-- drivers/net/wireless/mwifiex/pcie.h | 45 ++++++++++++++++++++++++- drivers/net/wireless/mwifiex/sdio.c | 5 +++ drivers/net/wireless/mwifiex/sdio.h | 65 ++++++++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/usb.c | 14 ++++++++ drivers/net/wireless/mwifiex/usb.h | 3 ++ 7 files changed, 147 insertions(+), 9 deletions(-) commit 9ef7e25ff62033065ec019425a9c769374455a1a Author: Thierry Reding Date: Tue Apr 14 14:57:14 2015 +0200 drm/panel: Add Samsung prefix to panel drivers The likelihood of getting a large number of panel drivers from different vendors is quite high. Add a prefix to the two existing Samsung panel drivers to set a guideline for future patch submissions. Using vendor prefixes consistently should allow a cleaner organization of the tree. Acked-by: Krzysztof Kozlowski Signed-off-by: Thierry Reding arch/arm/configs/exynos_defconfig | 2 +- arch/arm/configs/multi_v7_defconfig | 2 +- drivers/gpu/drm/panel/Kconfig | 8 +- drivers/gpu/drm/panel/Makefile | 4 +- drivers/gpu/drm/panel/panel-ld9040.c | 389 --------- drivers/gpu/drm/panel/panel-s6e8aa0.c | 1067 ------------------------- drivers/gpu/drm/panel/panel-samsung-ld9040.c | 389 +++++++++ drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 1067 +++++++++++++++++++++++++ 8 files changed, 1464 insertions(+), 1464 deletions(-) commit 3b1f0e86958b8afcfb6980f987c41e149480f9bd Author: Dan Carpenter Date: Tue Aug 4 10:49:27 2015 +0300 mwifiex: usb: return an error if kmalloc fails The current code returns success if kmalloc fails. Signed-off-by: Dan Carpenter Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/usb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3544f9f150bb58a3678c161a505b186893971c8a Author: Larry Finger Date: Mon Aug 3 16:15:53 2015 -0500 rtlwifi: rtl8192c-common: Fix two typos In this driver, two variables are masked by one quantity, and then tested against a second number with more bits that the mask. Accordingly, the test always fails. To minimize the possibility of such typos, a symbolic definition of the mask is created and used. The separate load and mask operations are also combined into a single statement. Reported-by: David Binderman Signed-off-by: Larry Finger Cc: David Binderman Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 8d882bcf82743f20b0546088f935a718b4ae6f60 Author: Larry Finger Date: Mon Aug 3 15:56:16 2015 -0500 rtlwifi: rtl8192ee: Fix firmware header endian issues This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192ee/fw.c | 12 ++++++------ drivers/net/wireless/rtlwifi/rtl8192ee/fw.h | 21 +-------------------- 2 files changed, 7 insertions(+), 26 deletions(-) commit 201b63c7c907bcc89bb11797ce2ca2a93027004b Author: Larry Finger Date: Mon Aug 3 15:56:15 2015 -0500 rtlwifi: rtl888ee: Fix firmware header endian issues This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8188ee/fw.c | 10 +++++----- drivers/net/wireless/rtlwifi/rtl8188ee/fw.h | 21 +-------------------- 2 files changed, 6 insertions(+), 25 deletions(-) commit b290b57d18aa0e1d35caf209ccc12ac3ef14a6b3 Author: Larry Finger Date: Mon Aug 3 15:56:14 2015 -0500 rtlwifi: rtl8192de: Fix firmware header endian issues This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192de/fw.h | 22 ---------------------- 1 file changed, 22 deletions(-) commit 253f10abb7c24665988cf0abda65acaa40ce5815 Author: Larry Finger Date: Mon Aug 3 15:56:13 2015 -0500 rtlwifi: rtl8821ae: Fix firmware endian issues This driver is converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8821ae/fw.c | 14 +++++++------- drivers/net/wireless/rtlwifi/rtl8821ae/fw.h | 23 ++--------------------- 2 files changed, 9 insertions(+), 28 deletions(-) commit 7c24d086ef9ccbffc46f5f9e2680f292ca356166 Author: Larry Finger Date: Mon Aug 3 15:56:12 2015 -0500 rtlwifi: rtl8723ae: rtl8723be: rtl8723com: Fix firmware header endian issues The drivers are converted to use the common firmware header struct. Because the old header definition failed to indicate that the multi-byte entries should be little endian, several problems were thus exposed. These are fixed. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8723ae/sw.c | 4 ++-- drivers/net/wireless/rtlwifi/rtl8723be/sw.c | 4 ++-- drivers/net/wireless/rtlwifi/rtl8723com/fw_common.c | 10 +++++----- drivers/net/wireless/rtlwifi/rtl8723com/fw_common.h | 19 ------------------- drivers/net/wireless/rtlwifi/wifi.h | 4 +--- 5 files changed, 10 insertions(+), 31 deletions(-) commit e41c513599187bd100644566bde86541c01db1d6 Author: Larry Finger Date: Mon Aug 3 15:56:11 2015 -0500 rtlwifi: rtl8192ce: rtl8192cu: Fix endian issue Commit e996db69833a (rtlwifi: rtl8192c: Add init codes for "fw_version" and "fw_subversion") added initialization for fw_version, but failed to note that the variable in the firmware header is little-endian. The following Sparse warning results: CHECK drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: warning: incorrect type in assignment (different base types) drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: expected unsigned short [unsigned] [usertype] fw_version drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: got restricted __le16 [usertype] version When fixing this problem, I noticed that several of the drivers contain nearly identical copies of the firmware header struct, and that only the one used in rtl8192c{e,u} had correct endian notation. The struct has been moved into a common header, and the other drivers will be fixed in subsequant patches. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 12 ++++++------ drivers/net/wireless/rtlwifi/rtl8192c/fw_common.h | 19 ------------------- drivers/net/wireless/rtlwifi/wifi.h | 21 +++++++++++++++++++-- 3 files changed, 25 insertions(+), 27 deletions(-) commit d3928d0946bf75dc6709a08b12839ecb889f2564 Author: Vineet Gupta Date: Thu Jul 9 13:43:18 2015 +0530 brcmfmac: dhd_sdio.c: use existing atomic_or primitive There's already a generic implementation so use that instead. Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit ab63cb8b0cc84a89f65e418357d7e6b9b914c89a Author: Nicholas Mc Guire Date: Thu May 14 18:56:16 2015 +0200 ath9k: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/link.c:197 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/link.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 61fc39204bc0db0070267fe0f7920c38b0af87ef Author: Nicholas Mc Guire Date: Thu May 14 18:43:41 2015 +0200 ath9k_htc: wmi: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/wmi.c:331 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_ATH9K_HTC=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/wmi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 39ce8150a079e3ae6ed9abf26d7918a558ef7c19 Author: Mika Westerberg Date: Tue Aug 4 15:03:14 2015 +0300 pinctrl: baytrail: Serialize all register access There is a hardware issue in Intel Baytrail where concurrent GPIO register access might result reads of 0xffffffff and writes might get dropped completely. Prevent this from happening by taking the serializing lock in all places where it is possible that more than one thread might be accessing the hardware concurrently. Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-baytrail.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 70a56550a664ce93583f59ef1b885e7616c942e4 Author: Nicholas Mc Guire Date: Thu May 14 18:25:26 2015 +0200 ath9k_htc: drv_init: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/htc_drv_init.c:81 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_ATH9K_HTC=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc_drv_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ab49db8e007c4479be1a682ea64d9b562aa4880 Author: Mika Westerberg Date: Tue Aug 4 15:03:13 2015 +0300 pinctrl: baytrail: Drop FSF mailing address The FSF address is already mentioned in the COPYING file. No need to duplicate that information to individual files. Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-baytrail.c | 5 ----- 1 file changed, 5 deletions(-) commit 34edd5f6839db083b625d473efa4145449cd1af0 Author: Nicholas Mc Guire Date: Thu May 14 17:29:54 2015 +0200 ath9k_htc: match wait_for_completion_timeout return type Return type of wait_for_completion_timeout is unsigned long not int. As time_left is exclusively used for wait_for_completion_timeout here its type is simply changed to unsigned long. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/ath9k/htc_hst.c:171 int return assigned to unsigned long ./drivers/net/wireless/ath/ath9k/htc_hst.c:277 int return assigned to unsigned long ./drivers/net/wireless/ath/ath9k/htc_hst.c:206 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_ATH9K_HTC=m Patch is against 4.1-rc3 (localversion-next is -next-20150514) Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/htc_hst.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 07a06ae99ef9b8eda3ec0b69c8f477856042a511 Author: Lin Huang Date: Tue Aug 11 18:12:04 2015 +0800 pinctrl: rockchip: only enable gpio clock when it setting gpio can keep state even the clock disable, for save power consumption, only enable gpio clock when it setting Signed-off-by: Lin Huang Reviewed-by: Heiko Stuebner Reviewed-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-rockchip.c | 55 +++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 4 deletions(-) commit d07cb049af1a3343cf2043618aaa29f8c84f4649 Author: Cheolhyun Park Date: Sun Apr 12 16:59:48 2015 +0000 rtlwifi: misspelled code and comments corrected. Signed-off-by: Cheolhyun Park Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192de/dm.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 43a0da25c0949f6dba0a8d6296907263f1b97ddd Merge: 0122a51 c020e37 Author: Mark Brown Date: Thu Aug 13 13:22:26 2015 +0100 Merge remote-tracking branch 'spi/fix/bcm2835' into spi-fix-bcm2835 commit c70336cc4ca1162808ee71dfe84696cb1cc91eac Author: Colin Ian King Date: Mon Aug 3 00:10:45 2015 +0100 pinctrl/mediatek: fix spelling mistake in dev_err error message Trivial change, fix spelling mistake 'invaild' -> 'invalid' in dev_err message. Signed-off-by: Colin Ian King Acked-by: Hongzhou Yang Signed-off-by: Linus Walleij drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ffebfc364dcaa5dea1a589d42207834b028df789 Author: Thierry Reding Date: Tue Apr 14 15:37:14 2015 +0200 drm/exynos: Remove PTN3460 dependency Now that the PTN3460 driver has been rewritten as a proper I2C driver and there is infrastructure to hook up the bridge with a DRM device, it is no longer necessary to have this dependency to ensure the correct build mode. Signed-off-by: Thierry Reding drivers/gpu/drm/exynos/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac22a1d3386e195c57e299da3bfad97a061b9616 Author: Chanwoo Choi Date: Thu Aug 13 09:19:43 2015 +0900 extcon: palmas: Fix build break due to devm_gpiod_get_optional API change With commit b17d1bf16cc7 ("gpio: make flags mandatory for gpiod_get functions") it becomes necessary to pass the flags argument. And this patch adds the gpio header file to fix the build breakage when build testing with random configuration files. Reported-by: Stephen Rothwell Signed-off-by: Chanwoo Choi Acked-by: Uwe Kleine-König drivers/extcon/extcon-palmas.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 459cc2c6800b545a482e428a631d99bca8da7790 Author: Thierry Reding Date: Thu Jul 30 10:34:24 2015 +0200 drm/tegra: sor: Add HDMI support The SOR1 introduced on Tegra210 supports HDMI 2.0 and DisplayPort. Add HDMI support and name the debugfs node after the type of SOR. The SOR introduced with Tegra124 is known simply as "sor", whereas the additional SOR found on Tegra210 is known as "sor1". Signed-off-by: Thierry Reding .../bindings/gpu/nvidia,tegra20-host1x.txt | 1 + drivers/gpu/drm/tegra/dc.h | 4 + drivers/gpu/drm/tegra/drm.c | 1 + drivers/gpu/drm/tegra/sor.c | 994 ++++++++++++++++++++- drivers/gpu/drm/tegra/sor.h | 86 ++ 5 files changed, 1052 insertions(+), 34 deletions(-) commit 3309ac836229d8bc3db7618e04a51334bef13b0a Author: Thierry Reding Date: Thu Jul 30 10:32:46 2015 +0200 drm/tegra: sor: Add Tegra210 eDP support The SOR found on Tegra210 is very similar to the version found on Tegra124, except that it no longer supports LVDS. Signed-off-by: Thierry Reding Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt | 7 ++++--- drivers/gpu/drm/tegra/drm.c | 1 + drivers/gpu/drm/tegra/sor.c | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) commit 003fc848774fcc7b7f14a2b4f3e6411764f43fc0 Author: Thierry Reding Date: Mon Aug 3 13:16:26 2015 +0200 drm/tegra: dc: Implement atomic DPMS Move all code into the new canonical ->disable() and ->enable() helper callbacks so that they play extra nice with atomic DPMS. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 202 +++++++++++++++++++++++---------------------- 1 file changed, 102 insertions(+), 100 deletions(-) commit 850bab448034f0a601727fe266afd0ef64fef6dc Author: Thierry Reding Date: Wed Jul 29 17:58:41 2015 +0200 drm/tegra: sor: Restore DPMS In order to restore DPMS with atomic mode-setting, move all code from the ->mode_set() callback into ->enable(). At the same time, rename the ->prepare() callback to ->disable() to use the names preferred by atomic mode-setting. This simplifies the calling sequence and will allow DPMS to use runtime PM in subsequent patches. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 220 +++++++++++++++++--------------------------- 1 file changed, 82 insertions(+), 138 deletions(-) commit 171e2e6dd912dac625e085919f0822cd94c04ff0 Author: Thierry Reding Date: Wed Jul 29 16:04:44 2015 +0200 drm/tegra: dsi: Restore DPMS In order to restore DPMS with atomic mode-setting, move all code from the ->mode_set() callback into ->enable(). At the same time, rename the ->prepare() callback to ->disable() to use the names preferred by atomic mode-setting. This simplifies the calling sequence and will allow DPMS to use runtime PM in subsequent patches. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dsi.c | 110 ++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 59 deletions(-) commit 29871b21c48c7b13adbd056755d923394ff6110b Author: Thierry Reding Date: Wed Jul 29 09:46:40 2015 +0200 drm/tegra: hdmi: Restore DPMS In order to restore DPMS with atomic mode-setting, move all code from the ->mode_set() callback into ->enable(). At the same time, rename the ->prepare() callback to ->disable() to use the names preferred by atomic mode-setting. This simplifies the calling sequence and will allow DPMS code to use runtime PM in subsequent patches. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/hdmi.c | 74 +++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 45 deletions(-) commit 32c3dee11e8e8ff790a8724c1bfe87a51976d7f8 Author: Thierry Reding Date: Wed Jul 29 10:08:17 2015 +0200 drm/tegra: rgb: Restore DPMS In order to restore DPMS with atomic mode-setting, move all code from the ->mode_set() callback into ->enable(). At the same time, rename the ->prepare() callback to ->disable() to use the names preferred by atomic mode-setting. This simplifies the calling sequence and will allow DPMS code to use runtime PM in subsequent patches. While at it, remove the enabled field that hasn't been used since the demidlayering of the output drivers done in preparation for the atomic mode-setting conversion. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/rgb.c | 49 ++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 36 deletions(-) commit 530239a8b82c0d051ccda341cb346d3f11a80e70 Author: Thierry Reding Date: Thu Aug 6 11:04:54 2015 +0200 drm/tegra: sor: Use DRM debugfs infrastructure for CRC Instead of duplicating most of the code to set up a debugfs file, use the existing DRM core debugfs infrastructure instead. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) commit 51511d05defe92715c19c3e583c9d1ac1c82e1e6 Author: Thierry Reding Date: Thu Jul 30 18:47:07 2015 +0200 drm/tegra: sor: Write correct head state registers The head state registers are per head, so they must be properly indexed. This has worked fine so far because all boards with eDP use it as the primary output, so it is very likely to end up attached to head 0. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 8044449556338fb27b1a03f6b1dbbdbc59e4ebfa Author: Thierry Reding Date: Wed Jul 29 18:20:01 2015 +0200 drm/tegra: sor: Constify display mode The data structure is always only read, never written, and can hence be referred to by a const pointer. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 066d30f8c7547f9ca744cd090092d66847e85de4 Author: Thierry Reding Date: Fri Jul 3 14:16:30 2015 +0200 drm/tegra: sor: Reset the correct debugfs fields When tearing down debugfs support, make sure to reset the fields to NULL in the correct order, otherwise the debugfs root will not be properly removed. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3ff1f22c882493dcceb25cbca5b516d8e4271151 Author: Thierry Reding Date: Fri Jul 3 14:14:29 2015 +0200 drm/tegra: sor: Set minor after debugfs initialization The DRM minor is needed to teardown debugfs, so it needs to be tracked to prevent a crash on driver removal. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 2 ++ 1 file changed, 2 insertions(+) commit 4dbdc740c4beec653920e81470a6e6d69c6ab064 Author: Thierry Reding Date: Mon Apr 27 15:04:26 2015 +0200 drm/tegra: sor: Provide error messages in probe When probing the SOR device fails, output proper error messages to help diagnose the cause of the failure. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) commit a9a9e4fd7c923707a11b1b386cc31156d474039c Author: Thierry Reding Date: Mon Apr 27 15:01:14 2015 +0200 drm/tegra: sor: Rename registers for consistency The TRM lists indexed registers without an underscore to separate name from index. Use that convention in the driver for consistency. While at it, rename some of the field names to the names used in the TRM. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/sor.c | 371 ++++++++++++++++++++++---------------------- drivers/gpu/drm/tegra/sor.h | 208 +++++++++++++------------ 2 files changed, 290 insertions(+), 289 deletions(-) commit 9e532b3ad9a7fc5f00d29c766439ffbdcc403146 Author: Thierry Reding Date: Fri Jul 3 14:56:46 2015 +0200 drm/tegra: dpaux: Disable interrupt when detached When the DPAUX isn't attached to an SOR the interrupts are not useful. This also prevents a race that could potentially cause a crash on driver removal. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dpaux.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 3227166c3bd64dc3a44b7a1bf79efff34ec27aa3 Author: Thierry Reding Date: Mon Apr 27 15:16:26 2015 +0200 drm/tegra: dpaux: Configure pads as I2C by default The DPAUX code paths already configure the pads in AUX mode, but there is no way to reconfigure them in I2C mode for HDMI (the DPAUX module is unused in that case). Enabling the pads in I2C mode by default is the quickest way to support HDMI. Eventually this may need an explicit call in the user drivers. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dpaux.c | 25 +++++++++++++++++++++++++ drivers/gpu/drm/tegra/dpaux.h | 2 ++ 2 files changed, 27 insertions(+) commit 08f580ef2fcef724db1107545bc14306b7c9eae2 Author: Thierry Reding Date: Mon Apr 27 14:50:30 2015 +0200 drm/tegra: dpaux: Provide error message in probe When probing the dpaux device fails, output proper error messages to help diagnose the cause of the failure. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dpaux.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) commit ddfb406b2f9f83e85734e43d043cdd1b2519df13 Author: Thierry Reding Date: Wed Apr 8 16:56:22 2015 +0200 drm/tegra: dsi: Add Tegra210 support The DSI host controller hasn't changed from Tegra132 to Tegra210, but different characterization parameters may be required. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 1 + drivers/gpu/drm/tegra/dsi.c | 5 +++++ drivers/gpu/drm/tegra/dsi.h | 4 ++++ 3 files changed, 10 insertions(+) commit c06c793084ecf62e77361e671465214a196a2f55 Author: Thierry Reding Date: Fri Apr 10 11:35:21 2015 +0200 drm/tegra: dsi: Add Tegra132 support The DSI host controller hasn't changed from Tegra124 to Tegra132, but different characterization parameters may be required. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 1 + drivers/gpu/drm/tegra/dsi.c | 1 + 2 files changed, 2 insertions(+) commit 7d3385875b7a4722dad4045c65fa51829acd5dff Author: Thierry Reding Date: Fri Apr 10 11:35:21 2015 +0200 drm/tegra: dsi: Add Tegra124 support The DSI host controller hasn't changed from Tegra114 to Tegra124, but different characterization parameters may be required. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 1 + drivers/gpu/drm/tegra/dsi.c | 1 + 2 files changed, 2 insertions(+) commit b8be0bdbd52d35aac30fb2d8c295f9a3000873f2 Author: Thierry Reding Date: Wed Apr 8 16:58:07 2015 +0200 drm/tegra: dsi: Use proper back-porch for non-sync video mode In video modes without sync pulses, the horizontal back-porch needs to include the horizontal sync width. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dsi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 472a6d1fd5f5d37a1c081e69f5c8ad5307ac358f Author: Thierry Reding Date: Wed Aug 5 16:39:55 2015 +0200 drm/tegra: dc: Rename BASE_COLOR_SIZE* fields Use an underscore to separate the prefix from the color size suffix. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.h | 9 +++++++++ drivers/gpu/drm/tegra/hdmi.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) commit 76ac3284bb708545e762091ba5d6d0f0dbc008bc Author: Thierry Reding Date: Fri Aug 7 09:26:57 2015 +0200 drm/tegra: dc: Don't explicitly set owner module The call to platform_driver_register() will already set up the .owner field, so there's no need to do it explicitly. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 1 - 1 file changed, 1 deletion(-) commit 8fd3ffa902a0d9f282ffa80599970ff1c823b1a8 Author: Thierry Reding Date: Mon Apr 27 14:48:35 2015 +0200 drm/tegra: dc: Rename register for consistency The horizontal pulse enable bits are named H_PULSE{0,1,2}_ENABLE in the TRM. Modify the driver to use the same naming for consistency. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.h | 6 +++--- drivers/gpu/drm/tegra/hdmi.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 791ddb1e1cea14aa278580b3832cd0f10252aafa Author: Thierry Reding Date: Tue Jul 28 21:27:05 2015 +0200 drm/tegra: dc: Record statistics Record interrupt statistics, such as the number of frames and VBLANKs received and the number of FIFO underflow and overflows. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 44 +++++++++++++++++++++++++++++++++++++++++--- drivers/gpu/drm/tegra/drm.h | 8 ++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) commit 01a5da0c104d0ce38d2847da2295c510becddbe0 Author: Thierry Reding Date: Mon Aug 3 13:18:41 2015 +0200 drm/tegra: dc: Request syncpoint earlier Request a syncpoint for display prior to registering the host1x client. This will ensure that the syncpoint will be acquired when the KMS driver initializes. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e83dcb5bb610a46d10d2d74a67132a75c49804e6 Author: Thierry Reding Date: Tue Jul 28 21:28:55 2015 +0200 drm/tegra: dc: Remove gratuituous blank line Blank lines at the end of functions are hideous, so get rid of it. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 1 - 1 file changed, 1 deletion(-) commit a1df3b24884d5d8946d6cdf44e6d403e3925b4c6 Author: Thierry Reding Date: Tue Jul 21 16:42:30 2015 +0200 drm/tegra: dc: Clarify comment about cursor treatment Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 6ca1f62f0d69120030469cc0b409bd521cbd67cc Author: Thierry Reding Date: Wed Apr 1 14:59:40 2015 +0200 drm/tegra: dc: Implement CRC debugfs interface Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 22 ++++++++++++++++++++++ drivers/gpu/drm/tegra/dc.h | 5 +++++ 2 files changed, 27 insertions(+) commit 5b4f516f5c6a2d3ac6edf750a40041842f928198 Author: Thierry Reding Date: Fri Mar 27 10:31:58 2015 +0100 drm/tegra: dc: Add Tegra210 support Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 12 ++++++++++++ drivers/gpu/drm/tegra/drm.c | 1 + 2 files changed, 13 insertions(+) commit 31930d4d0860fc87f93d9b76b0a4e6ac0b823dbf Author: Thierry Reding Date: Thu Jul 2 17:04:06 2015 +0200 drm/tegra: dc: Reset VBLANK to off Upon driver load, reset the VBLANK machinery to off to reflect the hardware state. Since the ->reset() callback is called from the initial drm_mode_config_reset() call, move the latter after the VBLANK machinery initialization by drm_vblank_init(). Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/dc.c | 2 ++ drivers/gpu/drm/tegra/drm.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit fb36d0eed4fe3359aca8e6000c1bd92cc5199718 Author: Thierry Reding Date: Mon Apr 27 15:12:39 2015 +0200 drm/tegra: output: Support low-active hotplug detect Support low-active hotplug detect signals by storing the GPIO flags parsed from device tree. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.h | 2 ++ drivers/gpu/drm/tegra/output.c | 20 ++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) commit 114bb13968162451f5e1d7fe793f9eb7e0083d9a Author: Nicolin Chen Date: Wed Aug 12 13:06:12 2015 -0700 ASoC: fsl-asoc-card: Specify codec_dai_name for DAI links The dev->name of CODEC might not be identical to its codec_dai_name, so using dev->name to probe the CODEC dai is not a correct approach. This patch specifies each supporting codec_dai_name instead of using dev->name any more. Signed-off-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl-asoc-card.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit a13f1dc4c3b7ac7de9d9ac266c0ed0374cae3421 Author: Thierry Reding Date: Tue Aug 11 13:22:44 2015 +0200 drm/tegra: Use SIMPLE_DEV_PM_OPS Use this macro to reduce some of the boilerplate. Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit cdc630b6c677b6d981b368baf44c8b4297adbb09 Author: Thierry Reding Date: Tue Jul 21 16:45:49 2015 +0200 drm/tegra: Allow VBLANK to be disabled Signed-off-by: Thierry Reding drivers/gpu/drm/tegra/drm.c | 1 + 1 file changed, 1 insertion(+) commit 15372d4be7f099662dc84e4e35e844bd4373d959 Author: Thierry Reding Date: Fri Apr 10 11:29:41 2015 +0200 gpu: host1x: mipi: Power down regulators when unused Keep track of the number of users of DSI and CSI pads and power down the regulators that supply the bricks when all users are gone. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 110 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 98 insertions(+), 12 deletions(-) commit 5e7752436e10427ba598de4f2f6b7889daf586cc Author: Thierry Reding Date: Wed Apr 8 17:23:20 2015 +0200 gpu: host1x: mipi: Add Tegra210 support Some changes are needed to the configuration settings for some lanes. In addition, the clock lanes for the CSI pads can no longer be calibrated. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) commit 7fd3ecad3f768fd2b39fc4db12044437fbf5d735 Author: Thierry Reding Date: Wed Apr 8 17:20:32 2015 +0200 gpu: host1x: mipi: Add Tegra132 support While Tegra132 has the same pads as Tegra124, some configuration values need to be programmed slightly differently. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit c22fb79099dbec82b8280106c43f6e800ecc854c Author: Thierry Reding Date: Wed Apr 8 17:19:19 2015 +0200 gpu: host1x: mipi: Constify OF match table This table is never modified and can therefore reside in read-only memory. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2ed264bf916b689fe0c71ac726995f0876062667 Author: Thierry Reding Date: Wed Apr 8 17:17:44 2015 +0200 gpu: host1x: mipi: Clear calibration status Before starting a new calibration cycle, make sure to clear the current status by writing a 1 to the various "calibration done" bits. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8ed5c0623272663783e052123fea02651464a0a5 Author: Thierry Reding Date: Wed Apr 8 17:06:08 2015 +0200 gpu: host1x: mipi: Fix clock lane register for DSI Use more consistent names for the clock lane configuration registers and fix the offset of the upper clock lane configuration register for the first DSI pad. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 83a3c223cc5678c5ced554fa2819747fd53437c7 Author: Thierry Reding Date: Wed Apr 8 17:03:49 2015 +0200 gpu: host1x: mipi: Parameterize to support future SoCs Parameterize more of the register programming to accomodate for changes required by future SoC generations. Signed-off-by: Thierry Reding drivers/gpu/host1x/mipi.c | 87 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 79 insertions(+), 8 deletions(-) commit 6e588a0d839b51bae49852b68740a25cacc91978 Author: Lars-Peter Clausen Date: Tue Aug 11 21:38:01 2015 +0200 ASoC: dapm: Consolidate path trace events The snd_soc_dapm_input_path and snd_soc_dapm_output_path trace events are identical except for the direction. Instead of having two events have a single one that has a field that contains the direction. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/trace/events/asoc.h | 53 +++++++++++++-------------------------------- sound/soc/soc-dapm.c | 9 -------- 2 files changed, 15 insertions(+), 47 deletions(-) commit a3423b02cf745c1418f1f199646c450d6fc9ca4e Author: Lars-Peter Clausen Date: Tue Aug 11 21:38:00 2015 +0200 ASoC: dapm: Consolidate input and output path handling After the recent cleanups and generalizations of the DAPM algorithm the handling of input and output paths is now fully symmetric. This means by making some slight changes to the data structure and using arrays with one entry for each direction, rather than separate fields, it is possible to create a generic implementation that is capable of handling both input and output paths. Unfortunately this generalization significantly increases the code size on the hot path of is_connected_{input,output}_ep() and dapm_widget_invalidate_{input,output}_paths(), which has a negative impact on the overall performance. The inner loops of those functions are quite small and the generic implementation adds extra pointer arithmetic in a few places. Testing on ARM shows that the combined code size of the specialized functions is about 50% larger than the generalized function in relative numbers. But in absolute numbers its less than 200 bytes, which is still quite small. On the other hand the generalized function increases the execution time of dapm_power_one_widget() by 30%. Given that this function is one of the most often called functions of the DAPM framework the trade-off of getting better performance at expense of generating slightly larger code at seems to be worth it. To avoid this still keep two versions of these functions around, one for input and one for output. But have a generic implementation of the algorithm which gets inlined by those two versions. And then let the compiler take care of optimizing it and removing he extra instructions. This still reduces the source code size as well as the makes making changes to the implementation more straight forward since the same change does no longer need to be done in two separate places. Also on the slow paths we can use a generic implementations that handle both input and output paths. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc-dapm.h | 69 ++++++++-- sound/soc/soc-dapm.c | 350 +++++++++++++++++++++++------------------------ 2 files changed, 227 insertions(+), 192 deletions(-) commit 30abbe7727b23c6661daeea5d36be36ed7a41665 Author: Lars-Peter Clausen Date: Tue Aug 11 21:37:59 2015 +0200 ASoC: dapm: dapm_dai_get_connected_widgets: Fix missing mutex unlock Make sure to unlock the DAPM mutex when dapm_widget_list_create() fails. This means the function will now generate a trace_snd_soc_dapm_connected event, even if the creation of the list fails. But that was the behavior before the patch that introduced the unlock issue, so that should be fine. Fixes: 1ce43acff0c0 ("ASoC: dapm: Simplify list creation in dapm_dai_get_connected_widgets()") Reported-by: Dan Carpenter Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e04cafbc38c70af2aad3810ce24ab0eba8114779 Author: Michal Kazior Date: Wed Aug 5 12:15:24 2015 +0200 ath10k: fix peer limit enforcement Firmware peer entries are involved in internal firmware vdev structures. This was not accounted for and could lead firmware to crash due to asking it to do more than it could. Fixes: 039a0051ec1a ("ath10k: allocate fw resources for iface combinations") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit adaeed74bc085bc59991cd6e23ee7f720b6c6aab Author: Michal Kazior Date: Wed Aug 5 12:15:23 2015 +0200 ath10k: don't remove peer that doesn't exist If peer creation failed during offchannel Tx the driver attempted to delete the peer nonetheless. This caused the ar->num_peers counter to be incorrectly decremented. This subsequently could cause the counter to drop below 0 and also eventually lead to firmware crash because host would think there are less peer entries created in firmware then there really were. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 16ea9b8ac45bf11d48af6013283e141e8ed86348 Author: Ricardo Ribalda Delgado Date: Wed Aug 12 18:04:04 2015 +0200 spi/spi-xilinx: Fix mixed poll/irq mode Once the module process a transfer in irq mode, the next poll transfer will not work because the transmitter is left in inhibited state. Fixes: 22417352f6b7f623 (Use polling mode on small transfers) Reported-by: Edward Kigwana Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-xilinx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 6f7429c29b9979d64d067543caec940bbc023340 Author: Michal Kazior Date: Wed Aug 5 12:08:38 2015 +0200 ath10k: fix hw reconfig on wow failure When WoWLAN resume fails with retval 1 mac80211 will attempt to reconfig the device in a similar manner when hw restart is requested. This wasn't handled properly and yielded call trace warnings and the device ended up not working. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wow.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) commit 84e3df60f0daba5b1e7874101502d0b030afb867 Author: Michal Kazior Date: Wed Aug 5 06:55:37 2015 +0200 ath10k: initialize fw_features var If firmware did not have any feature flags set the var would be left with values found on the stack (i.e. garbage) yielding print string like this: (...) features \xffffffa6m:^R\xfffffffbԂ\xffffffc4^E Fixes: b27bc5a40f91 ("ath10k: dump fw features during probing") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a48e2cc8992a13a58cff04e54e05f959d418554b Author: Vivek Natarajan Date: Tue Aug 4 10:45:12 2015 +0530 ath10k: Enable MU MIMO txbf support for QCA99X0 This patch enables MU-MIMO transmit beamforming support for QCA99X0 chipsets. Signed-off-by: Vivek Natarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 44 +++++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 5 ++++ 2 files changed, 49 insertions(+) commit 08e75ea84cb595c52f140049fcf6362679473592 Author: Vivek Natarajan Date: Tue Aug 4 10:45:11 2015 +0530 ath10k: Support different txbf configuration schemes qca61x4 uses the vdev param as a sole sufficient configuration for txbf while qca99x0 enables txbf during peer assoc by combining the vdev param value with peer assoc's vht capabilities This patch gets the appropriate txbf configuration scheme before passing the wmi command to enable the same in the firmware. Signed-off-by: Vivek Natarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 3 +++ drivers/net/wireless/ath/ath10k/wmi-ops.h | 10 ++++++++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 6 ++++++ drivers/net/wireless/ath/ath10k/wmi.c | 6 ++++++ drivers/net/wireless/ath/ath10k/wmi.h | 6 ++++++ 5 files changed, 31 insertions(+) commit 4585b000ace6438d0b142746baab658056b223d9 Author: Mika Westerberg Date: Mon Aug 3 12:46:38 2015 +0300 pinctrl: cherryview: Serialize all register access There is a hardware issue in Intel Braswell/Cherryview where concurrent GPIO register access might results reads of 0xffffffff and writes might get dropped. Prevent this from happening by taking the serializing lock for all places where it is possible that more than one thread might be accessing the hardware concurrently. Signed-off-by: Mika Westerberg Signed-off-by: Linus Walleij drivers/pinctrl/intel/pinctrl-cherryview.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 39b87ad166114b842159e5384a948b168cfa61d8 Author: Masahiro Yamada Date: Sat Aug 1 12:38:52 2015 +0900 pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting The initial version of this driver missed to add I2C ch6 pin-muxing. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/pinctrl-ph1-pro5.c | 5 +++++ 1 file changed, 5 insertions(+) commit 92092fe528e79c9bd25784ca0ef341d5a1d1b642 Author: Michal Kazior Date: Mon Aug 3 11:16:43 2015 +0200 ath10k: reject 11b tx fragmentation configuration Even though there's a WMI enum for fragmentation threshold no known firmware actually implements it. Moreover it is not possible to rely frame fragmentation to mac80211 because firmware clears the "more fragments" bit in frame control making it impossible for remote devices to reassemble frames. Hence implement a dummy callback just to say fragmentation isn't supported. This effectively prevents mac80211 from doing frame fragmentation in software. This fixes Tx becoming broken after setting fragmentation threshold. Fixes: 1010ba4c5d1c ("ath10k: unregister and remove frag_threshold callback") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 4dca0e6edd14e0c8afa19c8ad90f711f1563b52e Author: Michal Kazior Date: Mon Aug 3 11:16:42 2015 +0200 ath10k: remove futile fragmentation threshold config Commit 1010ba4c5d1c ("ath10k: unregister and remove frag_threshold callback") didn't remove all instances of (futile) fragmentation threshold configuration. No known firmware supports the parameter so don't even bother setting it. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 21 --------------------- 1 file changed, 21 deletions(-) commit 3afa129a9de0957d72165cf08a54e5c69938011c Author: Gregory Fong Date: Fri Jul 31 18:17:44 2015 -0700 gpio: brcmstb: support wakeup from S5 cold boot For wake from S5, we need to: - register a reboot handler - set wakeup capability before requesting IRQ so wakeup count is incremented - mask all GPIO IRQs and clear any pending interrupts during driver probe to since no driver will yet be registered to handle any IRQs carried over from boot at that time, and it's possible that the booted kernel does not request the same IRQ anyway. This means that /sys/.../power/wakeup_count is valid at boot time, and we can properly account for S5 wakeup stats. e.g.: ### After waking from S5 from a GPIO key # cat /sys/bus/platform/drivers/brcmstb-gpio/f04172c0.gpio/power/wakeup enabled # cat /sys/bus/platform/drivers/brcmstb-gpio/f04172c0.gpio/power/wakeup_count 1 Signed-off-by: Gregory Fong Reviewed-by: Florian Fainelli Signed-off-by: Linus Walleij drivers/gpio/gpio-brcmstb.c | 56 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 6 deletions(-) commit 19a7b6940b781256ea8821e803d1e5f2933224b1 Author: Gregory Fong Date: Fri Jul 31 18:17:43 2015 -0700 gpio: brcmstb: Add interrupt and wakeup source support Uses the gpiolib irqchip helpers. For this to work, the irq setup function is called once per bank instead of once per device. Note that all known uses of this block have a BCM7120 L2 interrupt controller as a parent. Supports interrupts for all GPIOs. In the IRQ handler, we check for raised IRQs for invalid GPIOs and warn (ratelimited) if they're encountered. Also, several drivers (e.g. gpio-keys) allow for GPIOs to be configured as wakeup sources, and this GPIO controller supports that through a separate interrupt path. The de-facto standard DT property "wakeup-source" is checked, since that indicates whether the GPIO controller hardware can wake. Uses the IRQCHIP_MASK_ON_SUSPEND irq_chip flag because UPG GIO doesn't have any of its own wakeup source configuration. Aside regarding gpiolib irqchip helpers: It wasn't obvious (to me) that you can have multiple chained irqchips and associated IRQ domains for a single parent IRQ, and as long as the xlate function is written correctly, a GPIO IRQ request end up checking the correct domain and will get associated with the correct IRQ. What helps make this clear is to read drivers/gpio/gpiolib-of.c: - of_gpiochip_find_and_xlate() - of_get_named_gpiod_flags() drivers/gpio/gpiolib.c: - gpiochip_find() Signed-off-by: Gregory Fong Reviewed-by: Florian Fainelli Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 1 + drivers/gpio/gpio-brcmstb.c | 262 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 257 insertions(+), 6 deletions(-) commit 77a775b7ccaf86b0bb67ceaaf3b6d2720e12b506 Author: Linus Walleij Date: Mon Aug 10 11:51:46 2015 +0200 gpio/ABI: document what is already the case commit 926b663ce8215ba448960e1ff6e58b67a2c3b99b "gpiolib: allow GPIOs to be named" added the ability to name GPIO lines by an array of names stored in the GPIO chip. This was in 2009 and has been an ABI since. Let's document it properly. Cc: Daniel Silverstone Cc: Markus Pargmann Cc: Johan Hovold Cc: Uwe Kleine-König Signed-off-by: Linus Walleij Documentation/ABI/testing/sysfs-gpio | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f9511a4fc47940c7b08ae51567bd9bddb54b8461 Author: Stephen Rothwell Date: Mon Jul 27 14:11:17 2015 +1000 clk: ti: fix for definition movement Signed-off-by: Stephen Rothwell Signed-off-by: Olof Johansson drivers/clk/ti/clk-814x.c | 2 ++ 1 file changed, 2 insertions(+) commit e7895461593506e2e86404a255208876340d4bca Merge: 93621d7 fd26f88 Author: Olof Johansson Date: Thu Aug 13 12:26:29 2015 +0200 Merge tag 'rpi-dt-for-armsoc-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi into next/dt - New Firmware node and accompanying binding document * tag 'rpi-dt-for-armsoc-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi: dt/bindings: Add binding for the Raspberry Pi firmware driver ARM: bcm2835: Add the firmware driver information to the RPi DT Signed-off-by: Olof Johansson commit 16478b61f0d88a08163b92af27f0e77f471576ce Author: Linus Walleij Date: Tue Aug 11 17:17:18 2015 +0200 ARM/fb: ep93xx: switch framebuffer to use modedb only All the EP93xx boards exclusively use modedb to look up video modes from the command line. Root out the parametrization of custom video modes from the platform data and board files and simplify the driver. Cc: Jean-Christophe Plagniol-Villard Reviewed-by: H Hartley Sweeten Acked-by: Tomi Valkeinen Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/mach-ep93xx/edb93xx.c | 2 -- arch/arm/mach-ep93xx/simone.c | 2 -- arch/arm/mach-ep93xx/snappercl15.c | 2 -- arch/arm/mach-ep93xx/vision_ep9307.c | 2 -- drivers/video/fbdev/ep93xx-fb.c | 30 ++++-------------------------- include/linux/platform_data/video-ep93xx.h | 8 -------- 6 files changed, 4 insertions(+), 42 deletions(-) commit 93621d7037084676b1fe7c1a8d59a98754f846ec Merge: 6d511a2 6855e5b Author: Olof Johansson Date: Thu Aug 13 12:19:38 2015 +0200 Merge tag 'socfpga_dts_for_v4.3_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt SoCFPGA DTS updates for v4.3, take 2 - Add DTS property "altr,modrst-offset" for reset driver to use - Add updated reset defines for the reset driver - Add reset property for EMACs on Arria10 * tag 'socfpga_dts_for_v4.3_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: Add resets for EMACs on Arria10 ARM: socfpga: dts: add "altr,modrst-offset" property dt-bindings: Add reset manager offsets for Arria10 Signed-off-by: Olof Johansson commit 6d511a26ce45fc05600f12f02200a65578d67a63 Merge: 85ef6b2 378abcd Author: Olof Johansson Date: Thu Aug 13 12:14:29 2015 +0200 Merge tag 'v4.3-rockchip32-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Some more devicetree changes, including usbphy support for the Cortex-A9 SoCs and actually enabling usb on the rk3066-marsboard, Two more veyron-devices - namely Speedy and Minnie and a fix for the tsadc. One slightly more interesting fix is the blocking of the last 16MB of memory on 4GB rk3288 devices. The rk3288 cannot use this area for dma operations, so things like the mmc or usb controllers regularly fail when trying to read data. This solution mimicks the solution from the ChromeOS kernel, who also do not seem to have found a better solution yet. Here it only moves to the devicetree. As this issue is also present on the arm64 rk3368, any future better solution to this problem would need to describe this in the devicetree as well and could then remove this block. * tag 'v4.3-rockchip32-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add veyron-minnie board ARM: dts: rockchip: reserve unusable memory region on rk3288 ARM: dts: rockchip: enable usb controller on marsboard ARM: dts: rockchip: add usb phys to Cortex-A9 socs ARM: dts: rockchip: set correct dwc2 params for cortex-a9 socs ARM: dts: rockchip: Add veyron-speedy board ARM: dts: rockchip: Use correct dts properties for tsadc node on veyron Signed-off-by: Olof Johansson commit 8943835e248bca0df431c717f4edce94fa2b8c8e Merge: fb3c442 9bb91ae Author: Olof Johansson Date: Thu Aug 13 12:13:54 2015 +0200 Merge tag 'v4.3-rockchip32-soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc Improve reliability of resume on rk3288 boards. For whatever reason resuming from suspend worked sucessfully on the rk3288-evb but not on other boards, like veyron-devices. Two problems seem to have existed. For one the stabilization delays for pmic and oscillator may have been to short and secondly the shallow suspend seems to need GPIO wakups enabled. Normally this should be covered by the more generic ARMINT wakeups already and the reason for this is still investigated at Rockchip, but meanwhile this makes boards actually resume. * tag 'v4.3-rockchip32-soc2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend ARM: rockchip: set correct stabilization thresholds in suspend ARM: rockchip: rename osc_switch_to_32k variable Signed-off-by: Olof Johansson commit fb3c44267684b76329b20317f2a62dacc452a09d Author: Masahiro Yamada Date: Sat Aug 8 21:13:44 2015 +0900 ARM: uniphier: drop v7_invalidate_l1 call at secondary entry This is unnecessary since commit 02b4e2756e01 ("ARM: v7 setup function should invalidate L1 cache"). Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/mach-uniphier/platsmp.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit ab39aab323a38a3fb079651952b13ba1868f90fd Merge: bcfff4d b6e1f7f Author: Olof Johansson Date: Thu Aug 13 12:10:09 2015 +0200 Merge tag 'v4.2-next-arm64-2' of https://github.com/mbgg/linux-mediatek into next/arm64 Add SMP support for mt6795 SoC. * tag 'v4.2-next-arm64-2' of https://github.com/mbgg/linux-mediatek: ARM64: dts: mt6795: enable basic SMP bringup for MT6795 Signed-off-by: Olof Johansson commit 80d352de659b57e69856b00d773d7abefe28bf32 Author: Alexandre Belloni Date: Fri Jul 31 19:30:07 2015 +0200 ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER CONFIG_ARM_AT91_ETHER doesn't exist anymore, both drivers have been merged in the macb driver. Signed-off-by: Alexandre Belloni Signed-off-by: Olof Johansson arch/arm/configs/at91_dt_defconfig | 1 - 1 file changed, 1 deletion(-) commit 5bfb1e4113ed88f0da07a3628f5b9be7b5c29384 Author: Josh Wu Date: Fri Jul 31 19:26:36 2015 +0200 ARM: at91/defconfig: at91_dt: enable DRM hlcdc support This patch adds drm atmel lcdc, simple panel and backlight options. Signed-off-by: Josh Wu Signed-off-by: Alexandre Belloni Signed-off-by: Olof Johansson arch/arm/configs/at91_dt_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit 3d3cacc0b8c624d042fe905bbc71f97a4d443cdc Merge: 0ff818e 44e259a Author: Olof Johansson Date: Thu Aug 13 12:02:07 2015 +0200 Merge tag 'mvebu-soc-4.3-2' of git://git.infradead.org/linux-mvebu into next/drivers mvebu soc changes for v4.3 (part #2) SoC part of the Dove PMU series * tag 'mvebu-soc-4.3-2' of git://git.infradead.org/linux-mvebu: ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets Signed-off-by: Olof Johansson commit 85ef6b26d1abc01101cd7a6c8094787990b95c1c Merge: eb2b508 15979ae Author: Olof Johansson Date: Thu Aug 13 11:59:56 2015 +0200 Merge tag 'mvebu-dt-4.3-3' of git://git.infradead.org/linux-mvebu into next/dt mvebu dt changes for v4.3 (part #3) - device tree part of the Dove PMU series - converting a new orion5x based platform to dt: Linkstation Mini * tag 'mvebu-dt-4.3-3' of git://git.infradead.org/linux-mvebu: ARM: dts: Convert Linkstation Mini to Device Tree ARM: dt: dove: add GPU power domain description ARM: dt: dove: add video decoder power domain description ARM: dt: dove: wire up RTC interrupt ARM: dt: Add PMU node, making PMU child devices childs of this node Signed-off-by: Olof Johansson commit eb2b5084366a93a5d40cd5746a2d178e02d7762c Merge: 1a08a84 761c586 Author: Olof Johansson Date: Thu Aug 13 11:58:22 2015 +0200 Merge tag 'at91-ab-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt Second batch of DT changes for 4.3: - Add the slow clock to the nodes that will use it - Add hlcd to the at91sam9x5 and at91sam9n12 - Add touchscreen and touch button support to the at91sam9x5ek * tag 'at91-ab-dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (22 commits) ARM: at91/dt: sama5d2: use slow clock where necessary ARM: at91/dt: at91sam9x5dm: add QT1070 touch button controller ARM: at91/dt: at91sam9x5dm: add support for the touschscreen ARM: at91/dt: add drm support for at91sam9n12ek ARM: at91/dt: enable lcd support for at91sam9x5 SoCs ARM: at91/dt: add at91sam9x5-ek Display Module dtsi ARM: at91/dt: include lcd dtsi in at91sam9x5 dtsis ARM: at91/dt: define hlcdc node in at91sam9x5_lcd.dtsi ARM: at91/dt: sama5d4: use slow clock where necessary ARM: at91/dt: sama5d3: use slow clock where necessary ARM: at91/dt: at91sam9x5: use slow clock where necessary ARM: at91/dt: at91sam9rl: use slow clock where necessary ARM: at91/dt: at91sam9n12: use slow clock where necessary ARM: at91/dt: at91sam9g45: use slow clock where necessary ARM: at91/dt: at91sam9263: use slow clock where necessary ARM: at91/dt: at91sam9261: use slow clock where necessary ARM: at91/dt: at91sam9260: use slow clock where necessary ARM: at91/dt: at91rm9200: use slow clock where necessary Documentation: dt: rtc: at91rm9200: add clocks property Documentation: watchdog: at91sam9_wdt: add clocks property ... Signed-off-by: Olof Johansson commit ae6c0aa6ae4d18d0ae74a58af5c521ec771e3730 Merge: b6bb424 152b283 Author: Paolo Bonzini Date: Thu Aug 13 11:51:50 2015 +0200 Merge tag 'kvm-s390-next-20150812' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: fix and feature for kvm/next (4.3) 1. error handling for irq routes 2. Gracefully handle STP time changes s390 supports a protocol for syncing different systems via the stp protocol that will steer the TOD clocks to keep all participating clocks below the round trip time between the system. In case of specific out of sync event Linux can opt-in to accept sync checks. This will result in non-monotonic jumps of the TOD clock, which Linux will correct via time offsets to keep the wall clock time monotonic. Now: KVM guests also base their time on the host TOD, so we need to fixup the offset for them as well. commit d330615b90d4997909806f8c22be6a3a2c3449b9 Author: Hans Ulli Kroll Date: Tue Aug 11 22:09:05 2015 +0200 ARM: gemini: Setup timer3 as free running timer In the original driver it is missed to setup a free running driver. This timer is needed for the scheduler. So setup it. Signed-off-by: Hans Ulli Kroll Reviewed-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/mach-gemini/time.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) commit 5dc90739888e741985036994e2e5700c6dc9d118 Author: Hans Ulli Kroll Date: Tue Aug 11 22:09:04 2015 +0200 ARM: gemini: Use timer1 for clockevent Use timer1 as clockevent timer. The old driver uses timer2, which has some issues to setup Signed-off-by: Hans Ulli Kroll Reviewed-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/mach-gemini/time.c | 94 +++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 34 deletions(-) commit 570ceed4e267a6d354653f4884bb8c2b4a975087 Author: Hans Ulli Kroll Date: Tue Aug 11 22:09:03 2015 +0200 ARM: gemini: Add missing register definitions for gemini timer Add missing register defintions for the gemini clocksource Also do some #define' cleanup to make the code more readable. Signed-off-by: Hans Ulli Kroll Reviewed-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/mach-gemini/include/mach/hardware.h | 3 - arch/arm/mach-gemini/time.c | 85 ++++++++++++++++++---------- 2 files changed, 55 insertions(+), 33 deletions(-) commit 75dbf00b443c1763138486e87f4978ff43506f9e Author: Dan Carpenter Date: Mon Jul 27 11:11:11 2015 +0300 mac80211: remove always true condition The outside if statement checks that IEEE80211_TX_INTFL_MLME_CONN_TX is set so this condition is always true. Checking twice upsets the static checkers. Signed-off-by: Dan Carpenter Signed-off-by: Johannes Berg net/mac80211/status.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 4b58c37bb9d4282446f7a0194dbc44325787ac8c Author: Johannes Berg Date: Wed Jul 8 15:41:48 2015 +0300 mac80211: remove ieee80211_aes_cmac_calculate_k1_k2() The iwlwifi driver was the only driver that used this, but as it turns out it never needed it, so we can remove it. Signed-off-by: Johannes Berg include/net/mac80211.h | 13 ------------- net/mac80211/aes_cmac.c | 17 ----------------- 2 files changed, 30 deletions(-) commit 2001a130d4fa8386b9d7978578dc40aa1f0dad6c Author: Johannes Berg Date: Fri Jun 19 10:20:10 2015 +0200 iwlwifi: mvm: don't set K1/K2 for AES-CMAC According to firmware engineers, the firmware has never required these fields and the values have always been calculated, they were just leftovers from a previous implementation. Therefore remove the unnecessary calculation. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h | 4 ++-- drivers/net/wireless/iwlwifi/mvm/sta.c | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) commit a54868b460b65bd93a5324a7fc35dfd556fe576c Author: Viresh Kumar Date: Thu Aug 6 14:41:13 2015 +0530 ARM: ep93xx/timer: Migrate to new 'set-state' interface Migrate EP93xx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Acked-by: Linus Walleij Reviewed-by: H Hartley Sweeten Signed-off-by: Olof Johansson arch/arm/mach-ep93xx/timer-ep93xx.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 36890997b0d219427e9d9d2aad5d46eb44fe808d Author: Geert Uytterhoeven Date: Sun Aug 2 11:09:54 2015 +0200 rfkill: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Johannes Berg net/rfkill/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8cbd4c2f6a996f6cf5dfdf8775d331606cff95bd Author: Felipe Balbi Date: Wed Aug 12 14:56:54 2015 -0500 arm: boot: dts: am4372: add ARM timers and SCU nodes AM437x devices sport SCU, TWD and Global timers, let's add them to DTS so they have a chance to probe and be used by Linux. Signed-off-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 6c36dfe949187dc2729abfad4b083758ac5c2e0e Author: Borislav Petkov Date: Wed Aug 12 18:29:45 2015 +0200 x86/ras: Move AMD MCE injector to arch/x86/ras/ This is an x86-specific module and would benefit from being closer to the arch code. Move it there. Update copyright while at it. Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1439396985-12812-14-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/Makefile | 2 + arch/x86/ras/Kconfig | 11 ++ arch/x86/ras/Makefile | 2 + arch/x86/ras/mce_amd_inj.c | 375 +++++++++++++++++++++++++++++++++++++++++++++ drivers/edac/Kconfig | 10 -- drivers/edac/Makefile | 1 - drivers/edac/mce_amd_inj.c | 375 --------------------------------------------- drivers/ras/Kconfig | 3 + 8 files changed, 393 insertions(+), 386 deletions(-) commit a79da38494ec23f1a7d6ee734e07e9575fd18b58 Author: Borislav Petkov Date: Wed Aug 12 18:29:44 2015 +0200 x86/mce: Add a wrapper around mce_log() for injection Will be used by an injector module in a following patch. Additionally, add a missing module export reported by 0-DAY kernel test. Reported-by: kbuild test robot Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1439396985-12812-13-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce-internal.h | 2 ++ arch/x86/kernel/cpu/mcheck/mce.c | 8 ++++++++ 2 files changed, 10 insertions(+) commit 9a7783d02197f299f71b4fa2364a345c05f92b83 Author: Borislav Petkov Date: Wed Aug 12 18:29:43 2015 +0200 x86/mce: Rename rcu_dereference_check_mce() to mce_log_get_idx_check() The "rcu_" prefix misleads for it being a proper RCU interface which is not. It basically checks whether we're preemptible or holding the chrdev_read mutex. Rename it accordingly. Signed-off-by: Borislav Petkov Acked-by: Paul E. McKenney Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1439396985-12812-12-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 9b45ef443acde55526485db37440cd3e8f03d544 Author: Borislav Petkov Date: Wed Aug 12 18:29:42 2015 +0200 RAS: Add a menuconfig option with descriptive text Text taken a previous patch from "Gong Chen" . Signed-off-by: Borislav Petkov Cc: Gong Chen Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1439396985-12812-11-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar drivers/ras/Kconfig | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) commit 1b48465500611a2dc5e75800c61ac352e22d41c3 Author: Xie XiuQi Date: Wed Aug 12 18:29:41 2015 +0200 x86/mce: Reenable CMCI banks when swiching back to interrupt mode Zhang Liguang reported the following issue: 1) System detects a CMCI storm on the current CPU. 2) Kernel disables the CMCI interrupt on banks owned by the current CPU and switches to poll mode 3) After the CMCI storm subsides, kernel switches back to interrupt mode 4) We expect the system to reenable the CMCI interrupt on banks owned by the current CPU mce_intel_adjust_timer |-> cmci_reenable |-> cmci_discover # owned banks are ignored here static void cmci_discover(int banks) ... for (i = 0; i < banks; i++) { ... if (test_bit(i, owned)) # ownd banks is ignore here continue; So convert cmci_storm_disable_banks() to cmci_toggle_interrupt_mode() which controls whether to enable or disable CMCI interrupts with its argument. NB: We cannot clear the owned bit because the banks won't be polled, otherwise. See: 27f6c573e0f7 ("x86, CMCI: Add proper detection of end of CMCI storms") for more info. Reported-by: Zhang Liguang Signed-off-by: Xie XiuQi Signed-off-by: Borislav Petkov Cc: # v3.15+ Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: huawei.libin@huawei.com Cc: linux-edac Cc: rui.xiang@huawei.com Link: http://lkml.kernel.org/r/1439396985-12812-10-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce_intel.c | 41 +++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 18 deletions(-) commit 8838eb6c0bf3b6a6494a163947ab3d1700ab45d2 Author: Ashok Raj Date: Wed Aug 12 18:29:40 2015 +0200 x86/mce: Clear Local MCE opt-in before kexec kexec could boot a kernel that could be legacy with no knowledge of LMCE. Hence we should make sure we clear LMCE optin before kexec reboot. Signed-off-by: Ashok Raj Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Aravind Gopalakrishnan Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1439396985-12812-9-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mce.h | 4 ++++ arch/x86/kernel/cpu/mcheck/mce.c | 30 ++++++++++++++++++++++++++++++ arch/x86/kernel/cpu/mcheck/mce_intel.c | 19 ++++++++++++++++++- arch/x86/kernel/process.c | 2 ++ arch/x86/kernel/smp.c | 2 ++ 5 files changed, 56 insertions(+), 1 deletion(-) commit 4d1d5cdc345d15e09518a2410f7fcd069465ffac Author: Ashok Raj Date: Wed Aug 12 18:29:39 2015 +0200 x86/mce: Remove unused function declarations Remove unused function declarations. Signed-off-by: Ashok Raj Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1439396985-12812-8-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mce.h | 4 ---- 1 file changed, 4 deletions(-) commit eef4dfa0cb83899c782935ac5345532f47073cea Author: Borislav Petkov Date: Wed Aug 12 18:29:38 2015 +0200 x86/mce: Kill drain_mcelog_buffer() This used to flush out MCEs logged during early boot and which were in the MCA registers from a previous system run. No need for that now, since we've moved to a genpool. Suggested-by: Tony Luck Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1439396985-12812-7-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mce.h | 2 +- arch/x86/kernel/cpu/mcheck/mce.c | 44 ++-------------------------------------- drivers/acpi/acpi_extlog.c | 2 +- drivers/edac/i7core_edac.c | 2 +- drivers/edac/mce_amd.c | 2 +- drivers/edac/sb_edac.c | 2 +- 6 files changed, 7 insertions(+), 47 deletions(-) commit f29a7aff4bd60ebc3da4982f80144a4158c4c74a Author: Chen, Gong Date: Wed Aug 12 18:29:37 2015 +0200 x86/mce: Avoid potential deadlock due to printk() in MCE context Printing in MCE context is a no-no, currently, as printk() is not NMI-safe. If some of the notifiers on the MCE chain call do so, we may deadlock. In order to avoid that, delay printk() to process context where it is safe. Reported-by: Xie XiuQi Signed-off-by: Chen, Gong [ Fold in subsequent patch from Boris for early boot logging. ] Signed-off-by: Tony Luck [ Kick irq_work in mce_log() directly. ] Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1439396985-12812-6-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce-apei.c | 1 - arch/x86/kernel/cpu/mcheck/mce.c | 4 ++-- arch/x86/kernel/cpu/mcheck/mce_intel.c | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) commit fd4cf79fcc4b5130ced8fd8c40378d3cec2e5fa8 Author: Chen, Gong Date: Wed Aug 12 18:29:36 2015 +0200 x86/mce: Remove the MCE ring for Action Optional errors Use unified genpool to save Action Optional error events and put Action Optional error handling in the same notification chain as MCE error decoding. Signed-off-by: Chen, Gong [ Fold in subsequent patch from Boris for early boot logging. ] Signed-off-by: Tony Luck [ Correct a lot. ] Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1439396985-12812-5-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/asm/mce.h | 2 +- arch/x86/kernel/cpu/mcheck/mce.c | 135 +++++++++++++++++---------------------- drivers/acpi/acpi_extlog.c | 2 +- drivers/edac/i7core_edac.c | 2 +- drivers/edac/mce_amd.c | 2 +- drivers/edac/sb_edac.c | 2 +- 6 files changed, 65 insertions(+), 80 deletions(-) commit 061120aed7081b9a4393fbe07b558192f40ad911 Author: Chen, Gong Date: Wed Aug 12 18:29:35 2015 +0200 x86/mce: Don't use percpu workqueues An MCE is a rare event. Therefore, there's no need to have per-CPU instances of both normal and IRQ workqueues. Make them both global. Signed-off-by: Chen, Gong [ Fold in subsequent patch from Rui/Boris/Tony for early boot logging. ] Signed-off-by: Tony Luck [ Massage commit message. ] Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1439396985-12812-4-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/mcheck/mce.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 648ed94038c030245a06e4be59744fd5cdc18c40 Author: Chen, Gong Date: Wed Aug 12 18:29:34 2015 +0200 x86/mce: Provide a lockless memory pool to save error records printk() is not safe to use in MCE context. Add a lockless memory allocator pool to save error records in MCE context. Those records will be issued later, in a printk-safe context. The idea is inspired by the APEI/GHES driver. We're very conservative and allocate only two pages for it but since we're going to use those pages throughout the system's lifetime, we allocate them statically to avoid early boot time allocation woes. Signed-off-by: Chen, Gong [ Rewrite. ] Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1439396985-12812-3-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/Kconfig | 1 + arch/x86/kernel/cpu/mcheck/Makefile | 2 +- arch/x86/kernel/cpu/mcheck/mce-genpool.c | 99 +++++++++++++++++++++++++++++++ arch/x86/kernel/cpu/mcheck/mce-internal.h | 12 ++++ arch/x86/kernel/cpu/mcheck/mce.c | 8 ++- 5 files changed, 120 insertions(+), 2 deletions(-) commit 20d51a426fe9a0d0a63cc3a7488f621c8bac37e1 Author: Borislav Petkov Date: Wed Aug 12 18:29:33 2015 +0200 x86/mce: Reuse one of the u16 padding fields in 'struct mce' ... to save the error severity of the MCE and whether the reported address of the error is usable. Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Link: http://lkml.kernel.org/r/1439396985-12812-2-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar arch/x86/include/uapi/asm/mce.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ed293d1ad2b0c28b6abc3bd728b07754bc00f1cd Author: Rob Herring Date: Sun Jul 12 09:26:45 2015 -0500 memory: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also set IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Acked-by: Roger Quadros Cc: linux-omap@vger.kernel.org Signed-off-by: Tony Lindgren drivers/memory/omap-gpmc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit a897b5f0393a8a05d230c9248dc5324fb30720a0 Merge: 5f1230c 71ef150 Author: Ingo Molnar Date: Thu Aug 13 09:23:53 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Allow selecting the type of callchains per event, including disabling callchains in all but one entry in an event list, to save space, and also to ask for the callchains collected in one event to be used in other events. (Kan Liang) - Beautify more syscall arguments in 'perf trace': (Arnaldo Carvalho de Melo) - A bunch more translate file/pathnames from pointers to strings. - Convert numbers to strings for the 'keyctl' syscall 'option' arg. - Add missing 'clockid' entries. - Fix 'perf probe -L sys_*' as it was not showing all the source code for syscall functions in the kernel. (Masami Hiramatsu) - Make ESC unzoom as well in the hists browser, i.e. in 'report' and 'top', as we're considering repurposing the right and left arrow keys to use in horizontal scrolling, i.e. leave just ESC to be used for what <- works now, and ENTER for what -> does (they are already aliases for ages). (Arnaldo Carvalho de Melo) Infrastructure fixes: - Check for SRCLINE_UNKNOWN case in "srcfile" processing (Andi Kleen) - Wrap the slsmg_{printf,write_nstring} slang functions behind ui_browser, so that we can make the ui_browser based browsers (annotate, menus, hists, etc) UI library agnostic and usable with multiple backends (slang now, GTK+ and others in the future, maybe) (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit e558017b558d2a477b68961b0da792d4346a01b4 Author: Fabio Estevam Date: Wed Aug 12 14:39:38 2015 -0300 crypto: caam - Remove unneeded 'ret' variable Variable 'ret' is only used for returning the value 0. We can make it simpler and just return 0 instead. The semantic patch that makes this change is available in scripts/coccinelle/misc/returnvar.cocci. Signed-off-by: Fabio Estevam Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ac8ad30777467c5258c52aa4899a8a07a3e56b54 Author: Fabio Estevam Date: Wed Aug 12 11:48:42 2015 -0300 crypto: caam - Fix error handling in caam_rng_init() In the error paths we should free the resources that were previously acquired, so fix it accordingly. Signed-off-by: Fabio Estevam Reviewed-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/caamrng.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 8669f34e122bad56e4d3ecde5f4720c40261bf4c Author: Wu Fengguang Date: Wed Aug 12 12:50:17 2015 +0800 crypto: qat - fix simple_return.cocci warnings drivers/crypto/qat/qat_common/adf_sriov.c:258:1-4: WARNING: end returns can be simpified and declaration on line 212 can be dropped Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Tadeusz Struk Signed-off-by: Fengguang Wu Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_sriov.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 18be4ebe1f6ba8f5c329a997c2b60c8bba1cf800 Author: Tadeusz Struk Date: Tue Aug 11 11:05:37 2015 -0700 crypto: qat - Fix unmet direct dependencies for QAT_DH895xCCVF Reported-by: Fengguang Wu Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 14fee74ca8370e4bfa5c9386e63bfa521b37a505 Author: Chen-Yu Tsai Date: Tue Aug 11 13:32:57 2015 +0800 ARM: dts: sun6i: Add security system crypto engine clock and device nodes A31/A31s have the same "Security System" crypto engine as A10/A20, but with a separate reset control. Signed-off-by: Chen-Yu Tsai Signed-off-by: Herbert Xu arch/arm/boot/dts/sun6i-a31.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 7ab64628bb4ab139aea9f1238ce6f945be580773 Author: Chen-Yu Tsai Date: Tue Aug 11 13:32:56 2015 +0800 crypto: sunxi-ss - Add optional reset control support On sun6i and later platforms, the reset control is split out of the clock gates. Add support for an optional reset control. Signed-off-by: Chen-Yu Tsai Signed-off-by: Herbert Xu drivers/crypto/sunxi-ss/sun4i-ss-core.c | 22 ++++++++++++++++++++++ drivers/crypto/sunxi-ss/sun4i-ss.h | 2 ++ 2 files changed, 24 insertions(+) commit ca6bc691b1b7cf45862410952806f73c1aa62fe6 Author: Chen-Yu Tsai Date: Tue Aug 11 13:32:55 2015 +0800 crypto: sunxi-ss - Document optional reset control bindings Later Allwinner SoCs split out the reset controls for individual modules out of the clock gate controls. The "Security System" crypto engine is no different. Signed-off-by: Chen-Yu Tsai Signed-off-by: Herbert Xu Documentation/devicetree/bindings/crypto/sun4i-ss.txt | 4 ++++ 1 file changed, 4 insertions(+) commit d420acd816c07c7be31bd19d09cbcb16e5572fa6 Author: Peter Zijlstra Date: Wed Aug 12 21:04:22 2015 +0200 jump_label/x86: Work around asm build bug on older/backported GCCs Boris reported that gcc version 4.4.4 20100503 (Red Hat 4.4.4-2) fails to build linux-next kernels that have this fresh commit via the locking tree: 11276d5306b8 ("locking/static_keys: Add a new static_key interface") The problem appears to be that even though @key and @branch are compile time constants, it doesn't see the following expression as an immediate value: &((char *)key)[branch] More recent GCCs don't appear to have this problem. In particular, Red Hat backported the 'asm goto' feature into 4.4, 'normal' 4.4 compilers will not have this feature and thus not run into this asm. The workaround is to supply both values to the asm as immediates and do the addition in asm. Suggested-by: H. Peter Anvin Reported-by: Boris Ostrovsky Tested-by: Boris Ostrovsky Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/jump_label.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e9a5e8cc55286941503f36c5b7485a5aa923b3f1 Author: David Howells Date: Thu Aug 13 04:03:12 2015 +0100 sign-file: Fix warning about BIO_reset() return value Fix the following warning: scripts/sign-file.c: In function ‘main’: scripts/sign-file.c:188: warning: value computed is not used whereby the result of BIO_ctrl() is cast inside of BIO_reset() to an integer of a different size - which we're not checking but probably should. Reported-by: James Morris Signed-off-by: David Howells scripts/sign-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 15ce414b82b07acb99afda6e4d9bd14f317b6011 Author: Richard Guy Briggs Date: Sat Aug 8 10:20:25 2015 -0400 fixup: audit: implement audit by executable The Intel build-bot detected a sparse warning with with a patch I posted a couple of days ago that was accepted in the audit/next tree: Subject: [linux-next:master 6689/6751] kernel/audit_watch.c:543:36: sparse: dereference of noderef expression Date: Friday, August 07, 2015, 06:57:55 PM From: kbuild test robot tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: e6455bc5b91f41f842f30465c9193320f0568707 commit: 2e3a8aeb63e5335d4f837d453787c71bcb479796 [6689/6751] Merge remote- tracking branch 'audit/next' sparse warnings: (new ones prefixed by >>) >> kernel/audit_watch.c:543:36: sparse: dereference of noderef expression kernel/audit_watch.c:544:28: sparse: dereference of noderef expression 34d99af5 Richard Guy Briggs 2015-08-05 541 int audit_exe_compare(struct task_struct *tsk, struct audit_fsnotify_mark *mark) 34d99af5 Richard Guy Briggs 2015-08-05 542 { 34d99af5 Richard Guy Briggs 2015-08-05 @543 unsigned long ino = tsk->mm- >exe_file->f_inode->i_ino; 34d99af5 Richard Guy Briggs 2015-08-05 544 dev_t dev = tsk->mm->exe_file- >f_inode->i_sb->s_dev; :::::: The code at line 543 was first introduced by commit :::::: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc audit: implement audit by executable tsk->mm->exe_file requires RCU access. The warning was reproduceable by adding "C=1 CF=-D__CHECK_ENDIAN__" to the build command, and verified eliminated with this patch. Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore kernel/audit_watch.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 772111ab01eace6a7e4cf821a4348cec64a97c92 Author: David Howells Date: Thu Aug 13 02:51:33 2015 +0100 PKCS#7: Add MODULE_LICENSE() to test module Add a MODULE_LICENSE() line to the PKCS#7 test key module to fix this warning: WARNING: modpost: missing MODULE_LICENSE() in crypto/asymmetric_keys/pkcs7_test_key.o Whilst we're at it, also add a module description. Reported-by: James Morris Signed-off-by: David Howells crypto/asymmetric_keys/pkcs7_key_type.c | 3 +++ 1 file changed, 3 insertions(+) commit 3d04c92403d377918c9a3bddab6ee103f0db25dd Author: Casey Schaufler Date: Wed Aug 12 11:56:02 2015 -0700 Smack - Fix build error with bringup unconfigured The changes for mounting binary filesystems was allied improperly, with the list of tokens being in an ifdef that it shouldn't have been. Fix that, and a couple style issues that were bothering me. Reported-by: Jim Davis Signed-off-by: Casey Schaufler security/smack/smack_lsm.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) commit e8fed985d7bd6cda695e196028b54a5f3d2d91bb Author: Rick Jones Date: Wed Aug 12 10:23:14 2015 -0700 documentation: bring vxlan documentation more up-to-date A few things have changed since the previous version of the vxlan documentation was written, so update it and correct some grammar and such while we are at it. Signed-off-by: Rick Jones Signed-off-by: David S. Miller Documentation/networking/vxlan.txt | 52 ++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 24 deletions(-) commit b0c6ce24911fcb64715de9569f0f7b4f54d1d045 Author: Fabio Estevam Date: Wed Aug 12 12:10:23 2015 -0300 net: fec: Remove unneeded use of IS_ERR_VALUE() macro There is no need to use the IS_ERR_VALUE() macro for checking the return value from pm_runtime_* functions. Just do a simple negative test instead. The semantic patch that makes this change is available in scripts/coccinelle/api/pm_runtime.cocci. Signed-off-by: Fabio Estevam Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 140d8b335a9beb234fd0ed9a15aa6a47f47fd771 Author: Wei-Chun Chao Date: Wed Aug 12 07:57:12 2015 -0700 bpf: fix bpf_perf_event_read() loop upper bound Verifier rejects programs incorrectly. Fixes: 35578d798400 ("bpf: Implement function bpf_perf_event_read()") Cc: Kaixu Xia Cc: Alexei Starovoitov Signed-off-by: Wei-Chun Chao Acked-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/verifier.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dcef70704d6c2792c6025ceba9708554d441a4bb Merge: 7655078 a4011fd Author: David S. Miller Date: Wed Aug 12 16:42:12 2015 -0700 Merge branch 'cxgb4-more-debug-info' Hariprasad Shenai says: ==================== Add some more debug info This patch series adds the following. Add more info for sge_qinfo dump Differentiate tid and stids between different regions, and add a debugfs entry to dump all the tid info This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: David S. Miller commit a4011fd470d334253a425942b29e65844642d0ff Author: Hariprasad Shenai Date: Wed Aug 12 16:55:07 2015 +0530 cxgb4: Add debugfs support to dump tid info Add debugfs support to dump tid info like stid, sftid, tids, atid and hwtids Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 68 ++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/sge.c | 9 ++- drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 4 ++ 3 files changed, 76 insertions(+), 5 deletions(-) commit 2248b29349fa8c59e8bf7e13197f7d5303c0a86a Author: Hariprasad Shenai Date: Wed Aug 12 16:55:06 2015 +0530 cxgb4: Differentiate between stids between server and filter region For T4 adapter, offloaded servers tid for IPv4 connections are allocated from filter region. So add a new field for server filter tid if server tid is allocated from filter region. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 15 ++++++++++----- drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) commit 9a1bb9f64e31febbcf289809343bc7bbbac15519 Author: Hariprasad Shenai Date: Wed Aug 12 16:55:05 2015 +0530 cxgb4: Differentiates between TIDs being used in TCAM and HASH For the tid info, differentiate from which region the TID is allocated from. It can be from TCAM region or HASH region. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 32 +++++++++++++++++++++---- drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 9 ++++++- drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 1 + 3 files changed, 36 insertions(+), 6 deletions(-) commit e106a4d9ede30cc83b95bbd8ccf75a4aad8b0557 Author: Hariprasad Shenai Date: Wed Aug 12 16:55:04 2015 +0530 cxgb4: Add some more details to sge qinfo Adding more details to sge qinfo for debugging purpose. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 61 +++++++++++++++++++--- 1 file changed, 53 insertions(+), 8 deletions(-) commit 76550786c6780d95db1b2de56a115a84347b242d Author: Mugunthan V N Date: Wed Aug 12 15:31:43 2015 +0530 net: ipv4: increase dhcp inter device timeout When a system has multiple ethernet devices and during DHCP request (for using NFS), the system waits only for HZ/2 which is 500mS before switching to another interface for DHCP. There are some routers (Ex: Trendnet routers) which responds to DHCP request at about 560mS. When the system has only one ethernet interface there is no issue as the timeout is 2S and the dev xid doesn't changes and only retries. But when the system has multiple Ethernet like DRA74x with CPSW in dual EMAC mode, the DHCP response is dropped as the dev xid changes while shifting to the next device. So changing inter device timeout to HZ (which is 1S). Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller net/ipv4/ipconfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ed3ccbd5ac11414d61c16182718e68868becc16 Author: Kaixu Xia Date: Wed Aug 12 09:37:53 2015 +0000 bpf: fix build warnings and add function read_trace_pipe() There are two improvements in this patch: 1. Fix the build warnings; 2. Add function read_trace_pipe() to print the result on the screen; Before this patch, we can get the result through /sys/kernel/de bug/tracing/trace_pipe and get nothing on the screen. By applying this patch, the result can be printed on the screen. $ ./tracex6 ... tracex6-705 [003] d..1 131.428593: : CPU-3 19981414 sshd-683 [000] d..1 131.428727: : CPU-0 221682321 sshd-683 [000] d..1 131.428821: : CPU-0 221808766 sshd-683 [000] d..1 131.428950: : CPU-0 221982984 sshd-683 [000] d..1 131.429045: : CPU-0 222111851 tracex6-705 [003] d..1 131.429168: : CPU-3 20757551 sshd-683 [000] d..1 131.429170: : CPU-0 222281240 sshd-683 [000] d..1 131.429261: : CPU-0 222403340 sshd-683 [000] d..1 131.429378: : CPU-0 222561024 ... Signed-off-by: Kaixu Xia Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller samples/bpf/tracex6_kern.c | 1 + samples/bpf/tracex6_user.c | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) commit 47b344b27a003fcdaccbdc07b3d558a7ccdfec04 Author: Ron Angeles Date: Tue Aug 11 23:01:20 2015 -0700 net: atl1c: add BQL support This BQL implementation is mostly derived from its related driver, alx. Tested on AR8131 (rev c0) [1969:1063]. Saturated a 100mbps link with 5 concurrent runs of netperf. Ping latency dropped from 14ms to 3ms. Signed-off-by: Ron Angeles Signed-off-by: David S. Miller drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 8d6a9f5676f0e734967ac3739f5c6a28a0b047d9 Author: Vitaly Kuznetsov Date: Wed Jul 1 11:31:27 2015 +0200 storvsc: use shost_for_each_device() instead of open coding Comment in struct Scsi_Host says that drivers are not supposed to access __devices directly. storvsc_host_scan() doesn't happen in irq context so we can just use shost_for_each_device(). Signed-off-by: Vitaly Kuznetsov Reviewed-by: Long Li Acked-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit cb1cf0804fe582f8a626c3cc591cb3127536137c Author: Vitaly Kuznetsov Date: Thu Jun 25 18:12:11 2015 +0200 storvsc: be more picky about scmnd->sc_data_direction Under the 'default' case in scmnd->sc_data_direction we have 3 options: - DMA_NONE which we handle correctly. - DMA_BIDIRECTIONAL which is never supposed to be set by SCSI stack. - Garbage value. Do WARN() and return -EINVAL in the last two cases. virtio_scsi does BUG_ON() here but it looks like an overkill. Reported-by: Radim Krčmář Signed-off-by: Vitaly Kuznetsov Acked-by: K. Y. Srinivasan Signed-off-by: James Bottomley drivers/scsi/storvsc_drv.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 10978e48ccc1718dce5c2d275b761ab99c593a81 Author: Seymour, Shane M Date: Wed Jun 24 06:54:35 2015 +0000 st: convert DRIVER_ATTR macros to DRIVER_ATTR_RO Convert DRIVER_ATTR macros to DRIVER_ATTR_RO requested by Greg KH. Also switched to using scnprintf instead of snprintf per Documentation/filesystems/sysfs.txt. Suggested-by: Greg Kroah-Hartman Signed-off-by: Shane Seymour Reviewed-by: Hannes Reinecke Reviewed-by: Greg Kroah-Hartman Acked-by: Kai Mäkisara Signed-off-by: James Bottomley drivers/scsi/st.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit b5960e6e2b5c52520cec5888c3feb71b71ba1980 Author: Andrew Schwartzmeyer Date: Tue Aug 11 17:14:32 2015 -0700 hv_netvsc: Implement set_channels ethtool op This enables the use of ethtool --set-channels devname combined N to change the number of vRSS queues. Separate rx, tx, and other parameters are not supported. The maximum is rsscap.num_recv_que. It passes the given value to rndis_filter_device_add through the device_info->num_chn field. If the procedure fails, it attempts to recover to the prior state. If the recovery fails, it logs an error and aborts. Current num_chn is saved and restored when changing the MTU. Signed-off-by: Andrew Schwartzmeyer Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/netvsc_drv.c | 97 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) commit 8ebdcc52b9b8a53e3ba2643f515d41fff44d4743 Author: Andrew Schwartzmeyer Date: Tue Aug 11 17:14:31 2015 -0700 hv_netvsc: Set vRSS with num_chn in RNDIS filter Uses device_info->num_chn to pass user provided number of vRSS queues (from ethtool --set-channels) to rndis_filter_device_add. If nonzero and less than the maximum, set net_device->num_chn to the given value; else default to prior algorithm. Always initialize struct device_info to 0, otherwise not all its fields are guaranteed to be 0, which is necessary when checking if num_chn has been purposefully set. Signed-off-by: Andrew Schwartzmeyer Reviewed-by: Haiyang Zhang 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 | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) commit d57f6232c157f03db7cb1ae62a3dcc548014a530 Author: Woojung.Huh@microchip.com Date: Tue Aug 11 15:23:33 2015 +0000 lan78xx: Remove BUG_ON() Removing BUG_ON() Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 31 ------------------------------- 1 file changed, 31 deletions(-) commit 81c38e811af6107b9941c6716e82c6fd93308541 Author: Woojung.Huh@microchip.com Date: Tue Aug 11 15:21:41 2015 +0000 lan78xx: Fix Smatch Warnings lan78xx.c:2282 tx_complete() warn: variable dereferenced before check 'skb' (see line 2249) lan78xx.c:2885 lan78xx_bh() info: ignoring unreachable code. lan78xx.c:3159 lan78xx_probe() info: ignoring unreachable code. Reported-by: Dan Carpenter Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/lan78xx.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit c3ffe0ca4a75ec1b5183e6141bed4dfcde4309fb Author: Tobias Klauser Date: Mon Aug 10 12:26:32 2015 +0200 net: eth: altera: Remove sgdmadesclen member from altera_tse_private altera_tse_private->sgdmadesclen is always assigned assigned the same value and never changes during runtime. Remove the struct member and use a new define for sizeof(struct sgdma_descrip) instead. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller drivers/net/ethernet/altera/altera_sgdma.c | 8 +++----- drivers/net/ethernet/altera/altera_sgdmahw.h | 1 + drivers/net/ethernet/altera/altera_tse.h | 1 - 3 files changed, 4 insertions(+), 6 deletions(-) commit 4b75de8615050c1b0dd8d7794838c42f74ed36ba Author: Eric W. Biederman Date: Wed Aug 12 15:00:12 2015 -0500 fs: Set the size of empty dirs to 0. Before the make_empty_dir_inode calls were introduce into proc, sysfs, and sysctl those directories when stated reported an i_size of 0. make_empty_dir_inode started reporting an i_size of 2. At least one userspace application depended on stat returning i_size of 0. So modify make_empty_dir_inode to cause an i_size of 0 to be reported for these directories. Cc: stable@vger.kernel.org Reported-by: Tejun Heo Acked-by: Tejun Heo Signed-off-by: "Eric W. Biederman" fs/libfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76c44f6d80e151d230844db7ffc058ac21b9e3f2 Author: Mikulas Patocka Date: Sun Jun 21 16:31:33 2015 -0400 dm snapshot: don't invalidate on-disk image on snapshot write overflow When the snapshot overflows because of a write to the origin, the on-disk image has to be invalidated. However, when the snapshot overflows because of a write to the snapshot, the on-disk image doesn't have to be invalidated. Change the behavior so that the on-disk image is not invalidated in this case. When the snapshot overflows, the variable snapshot_overflowed is set. All writes to the snapshot are disallowed to minimize filesystem corruption - this condition is cleared when the snapshot is deactivated and activated. The user can extend the overflowed snapshot, deactivate and activate it again, run fsck (if journaling filesystem is not used) mount it and recover the data. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/dm-snap.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit a93429c300483fa2509ae949a7915a01bd0acd20 Author: linux Date: Fri Jul 31 11:25:55 2015 +0800 hptiop: Support HighPoint RR36xx HBAs and Support SAS tape and SAS media changer Support HighPoint RR36xx HBAs which are based on Marvell Frey. Support SAS tape and SAS media changer. [jejb: remove now unused label] Signed-off-by: HighPoint Linux Team Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/hptiop.c | 97 ++++++++++++++++++++++++++++++++------------------- drivers/scsi/hptiop.h | 6 ++-- 2 files changed, 65 insertions(+), 38 deletions(-) commit faf00da544045fdc1454f3b9e6d7f65c841de302 Author: Eric W. Biederman Date: Mon Aug 10 18:25:44 2015 -0500 userns,pidns: Force thread group sharing, not signal handler sharing. The code that places signals in signal queues computes the uids, gids, and pids at the time the signals are enqueued. Which means that tasks that share signal queues must be in the same pid and user namespaces. Sharing signal handlers is fine, but bizarre. So make the code in fork and userns_install clearer by only testing for what is functionally necessary. Also update the comment in unshare about unsharing a user namespace to be a little more explicit and make a little more sense. Acked-by: Oleg Nesterov Signed-off-by: "Eric W. Biederman" kernel/fork.c | 8 ++++---- kernel/user_namespace.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) commit 12c641ab8270f787dfcce08b5f20ce8b65008096 Author: Eric W. Biederman Date: Mon Aug 10 17:35:07 2015 -0500 unshare: Unsharing a thread does not require unsharing a vm In the logic in the initial commit of unshare made creating a new thread group for a process, contingent upon creating a new memory address space for that process. That is wrong. Two separate processes in different thread groups can share a memory address space and clone allows creation of such proceses. This is significant because it was observed that mm_users > 1 does not mean that a process is multi-threaded, as reading /proc/PID/maps temporarily increments mm_users, which allows other processes to (accidentally) interfere with unshare() calls. Correct the check in check_unshare_flags() to test for !thread_group_empty() for CLONE_THREAD, CLONE_SIGHAND, and CLONE_VM. For sighand->count > 1 for CLONE_SIGHAND and CLONE_VM. For !current_is_single_threaded instead of mm_users > 1 for CLONE_VM. By using the correct checks in unshare this removes the possibility of an accidental denial of service attack. Additionally using the correct checks in unshare ensures that only an explicit unshare(CLONE_VM) can possibly trigger the slow path of current_is_single_threaded(). As an explict unshare(CLONE_VM) is pointless it is not expected there are many applications that make that call. Cc: stable@vger.kernel.org Fixes: b2e0d98705e60e45bbb3c0032c48824ad7ae0704 userns: Implement unshare of the user namespace Reported-by: Ricky Zhou Reported-by: Kees Cook Reviewed-by: Kees Cook Signed-off-by: "Eric W. Biederman" kernel/fork.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 1c46ae0af6df0bbde66c5e868563be57f18a27b4 Merge: a73e99c 41d903c Author: Greg Kroah-Hartman Date: Wed Aug 12 12:43:41 2015 -0700 Merge tag 'iio-for-4.3b-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: Second set of new device support, features and cleanup for the 4.3 cycle. Take 2 also includes a fix set that was too late for the 4.2 cycle. As we had a lot of tools and docs work in this set, I have broken those out into their own categories in this description. Fixes from the pull request '4th set of IIO fixes for the 4.2 cycle'. * Poll functions for both event chardev and the buffer one were returning negative error codes (via a positive value). * A recent change to lsiio adding some error handling that was wrong and stopped the tool working. * bmg160 was missing some dependencies in Kconfig * berlin2-adc had a misshandled register (wrote a value rather than a bitmap) New device support * TI opt3001 light sensor * TXC PA12 ALS and proximity sensor. * mcp3301 ADC support (in mcp320x driver) * ST lsm303agr accelerometer and magnetometer drivers (plus some st-sensors common support to allow different WHOAMI register addresses, devices with fixed scale and allow interrupt equiped magnetometers). * ADIS16305, ADIS16367, ADIS16445IMUs (in the adis16400 driver) * ADIS16266 gyro (in the adis16260 driver) * ADIS16137 gyro (in the adis16136 driver) New functionality * mmc35240 DT bindings. * Inverse unit conversion macros to aid handing of values written to sysfs attributes. Core cleanup * Forward declaration of struct iio_trigger to avoid a compile warning. Driver cleanup / fixes * mxs-lradc - Clarify which parts are supported. - Fix spelling erorrs. - Missing/extra includes - reorder includes - add datasheet name listings for all usable channels (to allow them to be bound by name from consumer drivers) * acpi-als - add some function prefixes as per general iio style. * bmc150_magn - replace a magic value with the existing define. * vf610 - determine possible sample frequencies taking into account the electrical characteristics (defining a minimum sample time) * dht11 - whitespace - additional docs - avoid mulitple assignments in one line - Use the new funciton ktime_get_resolution_ns to cleanup a nasty trick previously used for timing. * Fix all drivers that consider 0 a valid IRQ for historical reasons. * Export I2C module alias info where previously missing (to allow autoprobing) * Export OF module alias info where previously missing. * mmc35240 - switch some variables into arrays to improve readability. * mlx90614 - define some magic numbers for readability. * bmc150_magn - expand area locked by a mutex to cover all the use of the data->buffer. - use descriptive naming for a mask instead of a magic value. * berin2-adc - pass up an error code rather that a generic error - constify the iio_chan_spec - some other little tidy ups. * stk8312 - fix a dependency on triggered buffers in kconfig - add a check for invalid attribute values - improve error handling by returning error codes where possible and return immediately where relevant - rework macro defs to use GENMASK etc - change some variable types to reduce unnecessary casting - clean up code style - drop a local buffer copy for bulk reads and use the one in data->buffer instead. * adis16400 - the adis16448 gyroscope scale was wrong. * adis16480 - some more wrong scales for various parts. * adis16300 - has an undocumented product id and serial number registers so use them. * iio_simple_dummy - fix some wrong code indentation. * bmc150-accel - use the chip ID to detect the chip present rather than verifying the expected part was there. This was in response to a wrong ACPI entry on the WinBook TW100. * mma8452 - fix _get_hp_filter_index - drop a double include - pass up an error code rather than rewriting it - range check input values to attribute writes - register defs tidy up using GENMASK and reordering them to be easier to follow. - various coding style cleanups - put the Kconfig entry in the write place (alphabetically). Tools related * Tools cleanup - drop an explicity NULL comparison, some unnecessary braces, use the ARRAY_SIZE macro, send error messages to stderr instead of dropping them in the middle of normal output. * Fix tools to allow that scale and offset attributes are optional. * More tools fixes including allowing true 32bit data (previously an overflow prevented more than 31bits) * Drop a stray header guard that ended up in a c file. * Make calc_digits static as it isn't exported or in the header. * Set ci_array pointer to NULL after free as a protection against non safe usage of the tools core code. Also convert a double pointer to a single one as the extra level of indirection was unnecessary. Docs * DocBook introduction by Daniel Baluta. Glad we are beginning to draw together some more introductory docs to suplement the various tools / examples. * Drop bytes_per_datum sysfs attribute docs as it no longer exists. * A whole load of missing / fixing of kernel-doc for the core of IIO. * Document the trigger name sysfs attribute in the ABI docs. * Minor typos in the ABI docs related to power down modes. commit 15398566f0ea95c66d202b8705dba4f59b9ba01c Author: Guenter Roeck Date: Fri Aug 7 09:06:37 2015 -0700 hwmon: (ltc2978) Add support for LTC3887 LTC3887 is an enhanced version of LTC3880 and supports the same commands. Signed-off-by: Guenter Roeck Documentation/devicetree/bindings/hwmon/ltc2978.txt | 1 + Documentation/hwmon/ltc2978 | 19 ++++++++++++------- drivers/hwmon/pmbus/Kconfig | 3 ++- drivers/hwmon/pmbus/ltc2978.c | 19 ++++++++++++++----- 4 files changed, 29 insertions(+), 13 deletions(-) commit e8047a2686d32854e4b82bd5d328da61025fb01a Author: Guenter Roeck Date: Fri Aug 7 01:04:56 2015 -0700 hwmon: (ltc2978) Add additional chip IDs for LTM4676 and LTM4676A Per datasheet, the chip ID for LTM4676 is 0x448x. This was observed in real systems. In addition to that, chip ID 0x4401 was observed as well. Research shows that the chip ID has been changed from 0x440x to 0x448x in datasheet revision C. Add support for the additional chip ID. Also add the chip ID for LTM4676A, which is functionally identical to LTM4676. Reported-by: Ananda Babu Nettam Cc: Ananda Babu Nettam Cc: Amit U Jain Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit bf89386f166b18c21b2b7a2c5b6e496726c4f25f Author: Guenter Roeck Date: Mon Jun 8 10:29:45 2015 -0700 hwmon: (ltc2978) Add support for LTC3882 LTC3882 is mostly compatible with LTC3880. Major differences are that it does not measure the input current, and it no longer supports LTC's legacy mechanism to identify the chip. Signed-off-by: Guenter Roeck .../devicetree/bindings/hwmon/ltc2978.txt | 3 +- Documentation/hwmon/ltc2978 | 26 ++++++----- drivers/hwmon/pmbus/ltc2978.c | 50 +++++++++++++++++++--- 3 files changed, 62 insertions(+), 17 deletions(-) commit 836954dadcb351d65cf96584f22c9e437169bd49 Author: Guenter Roeck Date: Mon Jun 8 10:14:00 2015 -0700 hwmon: (ltc2978) Move code to read chip ID into separate function Verifying the chip type is getting more complicated with new chips, since not all chips support the same mechanism to read the chip type. Move the code into a separate function to simplify adding support for those chips. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 48 ++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 19 deletions(-) commit 58830550f009c5f60f702c9d3021f8c3be0012b0 Author: Trond Myklebust Date: Tue Aug 4 17:18:10 2015 -0400 NFSv4.1/pnfs: Remove redundant wakeup in pnfs_send_layoutreturn() pnfs_clear_layoutreturn_waitbit() should already be calling rpc_wake_up(&NFS_SERVER(ino)->roc_rpcwaitq) for us. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 1 - 1 file changed, 1 deletion(-) commit e1c06f80dcca54cd323d1b98eb385a2c05c6e06b Author: Trond Myklebust Date: Tue Aug 4 16:40:08 2015 -0400 NFSv4.1/pnfs: Remove redundant check in pnfs_layoutgets_blocked() layoutget now should already be serialised w.r.t. layout returns Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) commit 2d8ae84fbc32a14bba176cf9c20d5eb2a3d42791 Author: Trond Myklebust Date: Tue Aug 4 16:15:48 2015 -0400 NFSv4.1/pnfs: Remove redundant lo->plh_block_lgets in layoutreturn The NFS_LAYOUT_RETURN bit already suffices to ensure that layoutget is blocked. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 2 -- 1 file changed, 2 deletions(-) commit 5c4a79fb2b1cd80cb58986f6acf402721901c545 Author: Trond Myklebust Date: Tue Aug 4 15:57:13 2015 -0400 NFSv4.1/pnfs: Don't prevent layoutgets when doing return-on-close If there is an outstanding return-on-close, then we just want new layoutget requests to wait rather than fail. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8f70f53a87007bdbb34c79d11178a153914f5db1 Author: Trond Myklebust Date: Tue Aug 4 16:09:44 2015 -0400 NFSv4.1/pnfs: Fix serialisation of layout return and layoutget We should always test for outstanding layout returns, whether or not pnfs_should_retry_layoutget() is true. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a4497a58e4043a925b7b308bd2c32f0744eca440 Author: Trond Myklebust Date: Tue Aug 4 15:41:50 2015 -0400 NFSv4.1/pnfs: Remove redundant checks in pnfs_layoutgets_blocked() If there are no valid layout segments, then we should already have checked in pnfs_update_layout() whether or not this is the first layoutget. Signed-off-by: Trond Myklebust fs/nfs/pnfs.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 27571297a7e9a2a845c232813a7ba7e1227f5ec6 Author: Trond Myklebust Date: Mon Aug 3 17:38:33 2015 -0400 pNFS: Tighten up locking around DS commit buckets I'm not aware of any bugreports around this issue, but the locking around the pnfs_commit_bucket is inconsistent at best. This patch tightens it up by ensuring that the 'bucket->committing' list is always changed atomically w.r.t. the 'bucket->clseg' layout segment tracking. Signed-off-by: Trond Myklebust fs/nfs/pnfs_nfs.c | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) commit 442d75628a3040bbfeb4a1f743b70a8afec0adbc Author: Seymour, Shane M Date: Tue Jun 23 08:11:00 2015 +0000 st: convert to using driver attr groups for sysfs This patch changes the st driver to use attribute groups so driver sysfs files are created automatically. See the following for reference: http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/ Signed-off-by: Shane Seymour Reviewed-by: Greg Kroah-Hartman Acked-by: Kai Mäkisara Signed-off-by: James Bottomley drivers/scsi/st.c | 58 ++++++++++--------------------------------------------- 1 file changed, 10 insertions(+), 48 deletions(-) commit 0847ef88c3c9318d85e92fc42369df0e0190e1ab Author: Kinglong Mee Date: Thu Jul 30 21:40:06 2015 +0800 NFS: Remove duplicate svc_xprt_put from nfs41_callback_up The xprt created by svc_create_xprt have be added to serv->sv_permsocks. So putting the xprt directly is useless. Otherwise, there is a more svc_xprt_put after the xprt be freed. v2, same as v1. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/callback.c | 4 ---- 1 file changed, 4 deletions(-) commit efcbc04e16dfa95fef76309f89710dd1d99a5453 Author: NeilBrown Date: Thu Jul 30 13:00:56 2015 +1000 NFSv4: don't set SETATTR for O_RDONLY|O_EXCL It is unusual to combine the open flags O_RDONLY and O_EXCL, but it appears that libre-office does just that. [pid 3250] stat("/home/USER/.config", {st_mode=S_IFDIR|0700, st_size=8192, ...}) = 0 [pid 3250] open("/home/USER/.config/libreoffice/4-suse/user/extensions/buildid", O_RDONLY|O_EXCL NFSv4 takes O_EXCL as a sign that a setattr command should be sent, probably to reset the timestamps. When it was an O_RDONLY open, the SETATTR command does not identify any actual attributes to change. If no delegation was provided to the open, the SETATTR uses the all-zeros stateid and the request is accepted (at least by the Linux NFS server - no harm, no foul). If a read-delegation was provided, this is used in the SETATTR request, and a Netapp filer will justifiably claim NFS4ERR_BAD_STATEID, which the Linux client takes as a sign to retry - indefinitely. So only treat O_EXCL specially if O_CREAT was also given. Signed-off-by: NeilBrown Cc: stable@vger.kernel.org Signed-off-by: Trond Myklebust fs/nfs/nfs4proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ef8d792fabedeb932375b23735bc7a1a3e8684d Author: Kinglong Mee Date: Thu Jul 30 21:41:08 2015 +0800 NFS: Error out when register_shrinker fail in register_nfs_fs Commit 1d3d4437ea "vmscan: per-node deferred work" have made register_shrinker can return an intergater error. If register_shrinker() fail, the later unregister_shrinker() will cause a NULL pointer access. v2, same as v1. Signed-off-by: Kinglong Mee Signed-off-by: Trond Myklebust fs/nfs/super.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 3ff448b5b7dc7ad4d664588c343da1e5e2ce18dd Author: Alexey Khoroshilov Date: Fri Jun 12 01:50:45 2015 +0300 bfa: fix leak of bfad_im_port_index on module unload Resources allocated within bfad_im_port_index idr are not deallocated on module unload. The patch adds idr_destroy() in exit function. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Reviewed-by: Johannes Thumshirn Signed-off-by: James Bottomley drivers/scsi/bfa/bfad_im.c | 2 ++ 1 file changed, 2 insertions(+) commit 24a9a9610ce3ba36fd87c1d2f2c9106de6b7e832 Author: Jeff Layton Date: Mon Aug 3 07:44:53 2015 -0400 sunrpc: increase UNX_MAXNODENAME from 32 to __NEW_UTS_LEN bytes The current limit of 32 bytes artificially limits the name string that we end up stuffing into NFSv4.x client ID blobs. If you have multiple hosts with long hostnames that only differ near the end, then this can cause NFSv4 client ID collisions. Linux nodenames are actually limited to __NEW_UTS_LEN bytes (64), so use that as the limit instead. Also, use XDR_QUADLEN to specify the slack length, just for clarity and in case someone in the future changes this to something not evenly divisible by 4. Reported-by: Michael Skralivetsky Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust include/linux/sunrpc/auth.h | 8 ++++++-- net/sunrpc/auth_unix.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) commit c8ad8894e92b853df5a766061ee9cde7e10e682f Author: Trond Myklebust Date: Wed Aug 5 17:31:58 2015 -0400 NFSv4.2/pnfs: Use GFP_NOIO for layoutstat reporting in the writeback path Prevent a potential deadlock. Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 6 ++++-- fs/nfs/pnfs.c | 4 ++-- fs/nfs/pnfs.h | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) commit 41d903c00051d8f31c98a8136edbac67e6f8688f Author: Cristina Opriceana Date: Mon Aug 3 13:00:47 2015 +0300 iio: event: Remove negative error code from iio_event_poll Negative return values are not supported by iio_event_poll since its return type is unsigned int. Fixes: f18e7a068a0a3 ("iio: Return -ENODEV for file operations if the device has been unregistered") Signed-off-by: Cristina Opriceana Cc: Signed-off-by: Jonathan Cameron drivers/iio/industrialio-event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1bdc0293901cbea23c6dc29432e81919d4719844 Author: Cristina Opriceana Date: Mon Aug 3 13:37:40 2015 +0300 iio: industrialio-buffer: Fix iio_buffer_poll return value Change return value to 0 if no device is bound since unsigned int cannot support negative error codes. Fixes: f18e7a068 ("iio: Return -ENODEV for file operations if the device has been unregistered") Signed-off-by: Cristina Opriceana Cc: Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit af255cd562aaa72455f9022a26afacd68f3fbf73 Author: Linus Walleij Date: Tue Aug 4 16:21:49 2015 +0200 iio: lsiio: fix error code handling error commit acf50b3586f8d8a7530b905e111dda41876d38f4 "tools:iio:lsiio: add error handling" introduced error handling of errors returned from read_sysfs_string(), but with a simple if (retval), missing the fact that these functions return a positive value if the read was successful. As a result lsiio regresses and does not show any devices on my filesystem. Fix this by checking for only negative error codes. Cc: Hartmut Knaack Signed-off-by: Linus Walleij Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/lsiio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d099d7b8316f3ebd63472d207c4801a464330016 Author: Peng Tao Date: Mon Aug 10 16:47:32 2015 +0800 pnfs/flexfiles: LAYOUTSTATS ii_count should be ops instead of bytes Turned out I misinterpreted the spec... Cc: Tom Haynes Reported-by: Jean Spector Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust fs/nfs/flexfilelayout/flexfilelayout.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 06d2f6ca5a38abe92f1f3a132b331eee773868c3 Author: Markus Pargmann Date: Wed Jul 29 15:46:03 2015 +0200 iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required This patch adds selects for IIO_BUFFER and IIO_TRIGGERED_BUFFER. Without IIO_BUFFER, the driver does not compile. Signed-off-by: Markus Pargmann Reviewed-by: Srinivas Pandruvada Cc: Signed-off-by: Jonathan Cameron drivers/iio/gyro/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 57cb06762d5e587d58005b17b0fa99bd1e391c29 Author: Hartmut Knaack Date: Tue Jul 28 00:38:57 2015 +0200 iio:adc:berlin2-adc: Fix register definition Active channel number is stored in BERLIN2_SM_CTRL as value, instead of a bit map. The masks for channel interrupts and data ready are a 16 bits wide bit map each, instead of just 4 bits. Also correct the data mask for the temperature sensor, which was Reported-by: Antoine Tenart Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron drivers/iio/adc/berlin2-adc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ce83a4ca18391cfe823629c3863108d265e976f8 Author: Bart Van Assche Date: Fri Jun 5 14:20:40 2015 -0700 libfc: Fix a typo in a source code comment Signed-off-by: Bart Van Assche Signed-off-by: Vasu Dev Signed-off-by: James Bottomley drivers/scsi/libfc/fc_fcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a66ac17abf2bd03e30fbe20b1847258b960b683 Author: Johannes Thumshirn Date: Fri May 22 11:15:02 2015 +0200 mvsas: always iounmap resources In case pci_resource_start() or pci_resource_len() reutrn 0, mvsas_ioremap returns without doing an iounmap() of mvi->regs_ex. Found by the cocinelle tool. Signed-off-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/mvsas/mv_init.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit a30c2a3bf8571c6748dd16edc10b32d45ed71a72 Author: Thadeu Lima de Souza Cascardo Date: Thu Apr 30 09:13:05 2015 -0300 qla2xxx: prevent board_disable from running during EEH Commit f3ddac1918fe963bcbf8d407a3a3c0881b47248b ("[SCSI] qla2xxx: Disable adapter when we encounter a PCI disconnect.") has introduced a code that disables the board, releasing some resources, when reading 0xffffffff. In case this happens when there is an EEH, this read will trigger EEH detection and set PCI channel offline. EEH will be able to recover the card from this state by doing a reset, so it's a better option than simply disabling the card. Since eeh_check_failure will mark the channel as offline before returning the read value, in case there really was an EEH, we can simply check for pci_channel_offline, preventing the board_disable code from running if it's true. Without this patch, EEH code will try to access those same resources that board_disable will try to free. This race can cause EEH recovery to fail. [ 504.370577] EEH: Notify device driver to resume [ 504.370580] qla2xxx [0001:07:00.0]-9002:2: The device failed to resume I/O from slot/link_reset. Signed-off-by: Thadeu Lima de Souza Cascardo Acked-by: Himanshu Madhani Signed-off-by: James Bottomley drivers/scsi/qla2xxx/qla_isr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8571b1ecbd497d78923e046262872e3206b2deb Author: Suresh Thiagarajan Date: Thu Feb 12 12:04:37 2015 +0530 pm80xx: Added pm8006 controller support Signed-off-by: Suresh Thiagarajan Signed-off-by: Viswas G Acked-by: Jack Wang Signed-off-by: James Bottomley drivers/scsi/pm8001/pm8001_defs.h | 3 ++- drivers/scsi/pm8001/pm8001_init.c | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) commit 54fbde8a94a8a78547597215c9e4be590d075ee0 Author: Sinclair Yeh Date: Wed Jul 29 12:38:02 2015 -0700 drm/vmwgfx: Fix copyright headers Updating and fixing copyright headers. Bump version minor to signal vgpu10 support. Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 6 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_fence.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_reg.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_so.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_so.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 2 +- include/uapi/drm/vmwgfx_drm.h | 2 +- 30 files changed, 32 insertions(+), 32 deletions(-) commit fd11a3c0bd39162547e8abe44e1aaa11059c15f5 Author: Sinclair Yeh Date: Mon Aug 10 10:56:15 2015 -0700 drm/vmwgfx: Add DX query support. Various fixes. Add support for vgpu10 queries. Functional- and formatting fixes. Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 9 +- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 70 ++++++++++- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 10 ++ drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 209 ++++++++++++++++++++++++++++--- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 101 ++++++++++++++- 5 files changed, 373 insertions(+), 26 deletions(-) commit 0fca749e9a085ac4623a807ab12c37fc09851e3c Author: Neha Bhende Date: Mon Aug 10 10:51:07 2015 -0700 drm/vmwgfx: Add command parser support for a couple of DX commands Add support for SVGA_3D_CMD_DX_BUFFER_COPY and SVGA_3D_CMD_DX_PRED_COPY_REGION Signed-off-by: Neha Bhende Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 50 +++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) commit 2f633e5e40798d5c8db512118b5e464b62f7ff06 Author: Charmaine Lee Date: Mon Aug 10 10:45:11 2015 -0700 drm/vmwgfx: Command parser fixes for DX Implement support for a couple of missing commands and fix a command parser error path. Also fix uninitialized devcaps and surface size computation. Signed-off-by: Charmaine Lee Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 98 ++++++++++++++++++++++++++++----- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 1 + 4 files changed, 89 insertions(+), 15 deletions(-) commit d80efd5cb3dec16a8d1aea9b8a4a7921972dba65 Author: Thomas Hellstrom Date: Mon Aug 10 10:39:35 2015 -0700 drm/vmwgfx: Initial DX support Initial DX support. Co-authored with Sinclair Yeh, Charmaine Lee and Jakob Bornecrantz. Signed-off-by: Thomas Hellstrom Signed-off-by: Sinclair Yeh Signed-off-by: Charmaine Lee drivers/gpu/drm/vmwgfx/Makefile | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_binding.c | 1294 ++++++++++++++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_binding.h | 209 ++++ drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 5 +- drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c | 24 +- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 735 ++++++------- drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 662 +++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 54 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 175 ++- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 1468 ++++++++++++++++++++++--- drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 28 +- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 15 +- drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 169 +-- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 48 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 12 +- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 484 +++++++- drivers/gpu/drm/vmwgfx/vmwgfx_so.c | 555 ++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_so.h | 160 +++ drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 109 +- include/uapi/drm/vmwgfx_drm.h | 35 +- 22 files changed, 5411 insertions(+), 839 deletions(-) commit 8ce75f8ab9044fe11caaaf2b2c82471023212f9f Author: Sinclair Yeh Date: Wed Jul 8 21:20:39 2015 -0700 drm/vmwgfx: Update device includes for DX device functionality Add DX includes and move all device includes to a separate directory. Co-authored with Thomas Hellstrom, Charmaine Lee and above all, the VMware device team. Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom Signed-off-by: Charmaine Lee .../gpu/drm/vmwgfx/device_include/includeCheck.h | 3 + .../gpu/drm/vmwgfx/device_include/svga3d_caps.h | 110 + drivers/gpu/drm/vmwgfx/device_include/svga3d_cmd.h | 2071 +++++++++++++++ .../gpu/drm/vmwgfx/device_include/svga3d_devcaps.h | 457 ++++ drivers/gpu/drm/vmwgfx/device_include/svga3d_dx.h | 1487 +++++++++++ .../gpu/drm/vmwgfx/device_include/svga3d_limits.h | 99 + drivers/gpu/drm/vmwgfx/device_include/svga3d_reg.h | 50 + .../drm/vmwgfx/device_include/svga3d_surfacedefs.h | 1204 +++++++++ .../gpu/drm/vmwgfx/device_include/svga3d_types.h | 1633 ++++++++++++ .../gpu/drm/vmwgfx/device_include/svga_escape.h | 89 + .../gpu/drm/vmwgfx/device_include/svga_overlay.h | 199 ++ drivers/gpu/drm/vmwgfx/device_include/svga_reg.h | 1936 ++++++++++++++ drivers/gpu/drm/vmwgfx/device_include/svga_types.h | 46 + .../gpu/drm/vmwgfx/device_include/vm_basic_types.h | 21 + .../drm/vmwgfx/device_include/vmware_pack_begin.h | 25 + .../drm/vmwgfx/device_include/vmware_pack_end.h | 25 + drivers/gpu/drm/vmwgfx/svga3d_reg.h | 2675 -------------------- drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h | 973 ------- drivers/gpu/drm/vmwgfx/svga_escape.h | 89 - drivers/gpu/drm/vmwgfx/svga_overlay.h | 201 -- drivers/gpu/drm/vmwgfx/svga_reg.h | 1751 ------------- drivers/gpu/drm/vmwgfx/svga_types.h | 48 - drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 12 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 2 - drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_reg.h | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 2 +- 34 files changed, 9474 insertions(+), 5756 deletions(-) commit 5101020c78c9f242fe77bd7986bc24f7b800172a Author: Thomas Hellstrom Date: Fri Jul 10 22:31:08 2015 -0700 drm: export the DRM permission check code This way drm_ioctl_permit() can be used by drivers Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/drm_ioctl.c | 3 ++- include/drm/drmP.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 05c9501859c8bd80635d7299c384e2a8db7c0ce1 Author: Sinclair Yeh Date: Tue Aug 11 22:53:39 2015 -0700 drm/vmwgfx: Fix crash when unloading vmwgfx v2 This patch fixes two issues. One, when a surface is a proxy for a DMA buffer, it holds an extra reference that needs to be cleared. Two, when fbdev is enabled, we need to unpin the framebuffer before unloading the driver. This is done by a call to vmw_fb_off(). v2 Moved unreferencing surface to from vmw_framebuffer_surface_destroy() to vmw_kms_new_framebuffer() Added "struct vmw_framebuffer *vfb = NULL;" to silence a compiler warning. Removed error checking after calling vmw_surface/dmabuf_reference() Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 42 ++++++++++++++++--------------------- 2 files changed, 19 insertions(+), 24 deletions(-) commit df45e9d410fc07ab816b006414f52ec4e2fbf2d7 Author: Thomas Hellstrom Date: Wed Aug 12 09:30:09 2015 -0700 drm/vmwgfx: Fix framebuffer creation on older hardware On older hardware, texture max width and height is not available, so set it to something reasonable, like 8192. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 65ade7d34bb6436104f1fdcce899bd81707da2e1 Author: Sinclair Yeh Date: Thu Jul 16 10:49:13 2015 -0700 drm/vmwgfx: Fixed topology boundary checking for Screen Targets For a Screen Target capable display device, the display topology is limited by SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM. Two values are checked against this limit: 1. Size of the bounding box enclosing all the displays, and 2. Size of the total number of displays, e.g. framebuffers The limitations above mean we do not have exact max width and height for the topology. The best current option is to set those to the maximum texture width/height. Signed-off-by: Sinclair Yeh Reviewed-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) commit 9a5ad7d0e3e1c6c0c11df89fbc5376f8aaf7a90f Author: Jungseok Lee Date: Wed Aug 12 15:16:19 2015 +0100 arm64: Add __exception_irq_entry definition for function graph The gic_handle_irq() is defined with __exception_irq_entry attribute. A single remaining work is to add its definition as ARM did. Below shows how function graph data is changed with these hunks. A prologue of an interrupt handler is drawn as follows. - current status 0) 0.208 us | cpuidle_not_available(); 0) | default_idle_call() { 0) | arch_cpu_idle() { 0) | __handle_domain_irq() { 0) | irq_enter() { 0) 0.313 us | rcu_irq_enter(); 0) 0.261 us | __local_bh_disable_ip(); - with this change 0) 0.625 us | cpuidle_not_available(); 0) | default_idle_call() { 0) | arch_cpu_idle() { 0) ==========> | 0) | gic_handle_irq() { 0) | __handle_domain_irq() { 0) | irq_enter() { 0) 0.885 us | rcu_irq_enter(); 0) 0.781 us | __local_bh_disable_ip(); An epilogue of an interrupt handler is recorded as follows. - current status 0) 0.261 us | idle_cpu(); 0) | rcu_irq_exit() { 0) 0.521 us | rcu_eqs_enter_common.isra.46(); 0) 2.552 us | } 0) ! 322.448 us | } 0) ! 583.437 us | } 0) # 1656.041 us | } 0) # 1658.073 us | } - with this change 0) 0.677 us | idle_cpu(); 0) | rcu_irq_exit() { 0) 1.770 us | rcu_eqs_enter_common.isra.46(); 0) 7.968 us | } 0) # 1803.541 us | } 0) # 2626.667 us | } 0) # 2632.969 us | } 0) <========== | 0) # 14425.00 us | } 0) # 14430.98 us | } Cc: AKASHI Takahiro Cc: Marc Zyngier Cc: Rabin Vincent Cc: Steven Rostedt Signed-off-by: Jungseok Lee Signed-off-by: Will Deacon arch/arm64/include/asm/exception.h | 6 ++++++ arch/arm64/include/asm/traps.h | 23 +++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) commit 71ef150ee06df29c5b427307dc0bacfe06a8baea Author: Kan Liang Date: Tue Aug 11 06:30:50 2015 -0400 perf tests: Add tests to callgraph and time parse Add tests in tests/parse-events.c to check call-graph and time option. Signed-off-by: Kan Liang Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1439289050-40510-4-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/parse-events.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 9e207ddfa20781e56465ce9a537f0a377c9d34fb Author: Kan Liang Date: Tue Aug 11 06:30:49 2015 -0400 perf report: Show call graph from reference events Introduce --show-ref-call-graph for perf report to print reference callgraph for no callgraph event. Here is an example. perf report --show-ref-call-graph --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 5 of event 'cpu/cpu-cycles,call-graph=fp/' # Event count (approx.): 144985 # # Children Self Command Shared Object Symbol # ........ ........ ....... ................ ........................................ # 72.30% 0.00% sleep [kernel.vmlinux] [k] entry_SYSCALL_64_fastpath | ---entry_SYSCALL_64_fastpath | |--22.62%-- __GI___libc_nanosleep --77.38%-- [...] ...... # Samples: 6 of event 'cpu/instructions,call-graph=no/', show reference callgraph # Event count (approx.): 172780 # # Children Self Command Shared Object Symbol # ........ ........ ....... ................ ........................................ # 73.16% 0.00% sleep [kernel.vmlinux] [k] entry_SYSCALL_64_fastpath | ---entry_SYSCALL_64_fastpath | |--31.44%-- __GI___libc_nanosleep --68.56%-- [...] Signed-off-by: Kan Liang Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1439289050-40510-3-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 11 +++++++++++ tools/perf/builtin-report.c | 7 +++++++ tools/perf/ui/browsers/hists.c | 9 +++++++-- tools/perf/util/hist.c | 7 ++++++- tools/perf/util/symbol.h | 3 ++- 5 files changed, 33 insertions(+), 4 deletions(-) commit f9db0d0f1b2cf030083c83d3ed3a4bbae6bdc8b7 Author: Kan Liang Date: Tue Aug 11 06:30:48 2015 -0400 perf callchain: Allow disabling call graphs per event This patch introduce "call-graph=no" to disable per-event callgraph. Here is an example. perf record -e 'cpu/cpu-cycles,call-graph=fp/,cpu/instructions,call-graph=no/' sleep 1 perf report --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 6 of event 'cpu/cpu-cycles,call-graph=fp/' # Event count (approx.): 774218 # # Children Self Command Shared Object Symbol # ........ ........ ....... ................ ........................................ # 61.94% 0.00% sleep [kernel.vmlinux] [k] entry_SYSCALL_64_fastpath | ---entry_SYSCALL_64_fastpath | |--97.30%-- __brk | --2.70%-- mmap64 _dl_check_map_versions _dl_check_all_versions 61.94% 0.00% sleep [kernel.vmlinux] [k] perf_event_mmap | ---perf_event_mmap | |--97.30%-- do_brk | sys_brk | entry_SYSCALL_64_fastpath | __brk | --2.70%-- mmap_region do_mmap_pgoff vm_mmap_pgoff sys_mmap_pgoff sys_mmap entry_SYSCALL_64_fastpath mmap64 _dl_check_map_versions _dl_check_all_versions ...... # Samples: 6 of event 'cpu/instructions,call-graph=no/' # Event count (approx.): 359692 # # Children Self Command Shared Object Symbol # ........ ........ ....... ................ ................................. # 89.03% 0.00% sleep [unknown] [.] 0xffff6598ffff6598 89.03% 0.00% sleep ld-2.17.so [.] _dl_resolve_conflicts 89.03% 0.00% sleep [kernel.vmlinux] [k] page_fault Signed-off-by: Kan Liang Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1439289050-40510-2-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 3 ++- tools/perf/builtin-annotate.c | 2 ++ tools/perf/builtin-diff.c | 3 +++ tools/perf/tests/hists_cumulate.c | 4 ++++ tools/perf/util/evsel.c | 17 +++++++++++------ tools/perf/util/hist.c | 9 ++++++--- 6 files changed, 28 insertions(+), 10 deletions(-) commit d457c96392bb418bd998f3ccf93e0e4c958fcd0f Author: Kan Liang Date: Tue Aug 11 06:30:47 2015 -0400 perf callchain: Per-event type selection support This patchkit adds the ability to set callgraph mode (fp, dwarf, lbr) per event. This in term can reduce sampling overhead and the size of the perf.data. Here is an example. perf record -e 'cpu/cpu-cycles,period=1000,call-graph=fp,time=1/,cpu/instructions,call-graph=lbr/' sleep 1 perf evlist -v cpu/cpu-cycles,period=1000,call-graph=fp,time=1/: type: 4, size: 112, config: 0x3c, { sample_period, sample_freq }: 1000, sample_type: IP|TID|TIME|CALLCHAIN|PERIOD|IDENTIFIER, read_format: ID, disabled: 1, inherit: 1, mmap: 1, comm: 1, enable_on_exec: 1, task: 1, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1 cpu/instructions,call-graph=lbr/: type: 4, size: 112, config: 0xc0, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|CALLCHAIN|PERIOD|BRANCH_STACK|IDENTIFIER, read_format: ID, disabled: 1, inherit: 1, freq: 1, enable_on_exec: 1, sample_id_all: 1, exclude_guest: 1 Signed-off-by: Kan Liang Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1439289050-40510-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 3 ++ tools/perf/util/evsel.c | 62 ++++++++++++++++++++++++++++++-- tools/perf/util/evsel.h | 4 +++ tools/perf/util/parse-events.c | 12 +++++++ tools/perf/util/parse-events.h | 2 ++ tools/perf/util/parse-events.l | 2 ++ tools/perf/util/pmu.c | 4 ++- 7 files changed, 86 insertions(+), 3 deletions(-) commit 75186a9b09e47072f442f43e292cd47180b67b5c Author: Masami Hiramatsu Date: Wed Aug 12 10:24:07 2015 +0900 perf probe: Fix to show lines of sys_ functions correctly "perf probe --lines sys_poll" shows only the first line of sys_poll, because the SYSCALL_DEFINE macro: ---- SYSCALL_DEFINE*(foo,...) { body; } ---- is expanded as below (on debuginfo) ---- static inline int SYSC_foo(...) { body; } int SyS_foo(...) <- is an alias of sys_foo. { return SYSC_foo(...); } ---- So, "perf probe --lines sys_foo" decodes SyS_foo function and it also skips inlined functions(SYSC_foo) inside the target function because those functions are usually defined somewhere else. To fix this issue, this fix checks whether the inlined function is defined at the same point of the target function, and if so, it doesn't skip the inline function. Reported-by: Arnaldo Carvalho de Melo Signed-off-by: Masami Hiramatsu Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20150812012406.11811.94691.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dwarf-aux.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 228c37ff980f5643401a1667f5ab7c6f38602cf8 Author: David Howells Date: Tue Aug 11 12:38:54 2015 +0100 sign-file: Document dependency on OpenSSL devel libraries The revised sign-file program is no longer a script that wraps the openssl program, but now rather a program that makes use of OpenSSL's crypto library. This means that to build the sign-file program, the kernel build process now has a dependency on the OpenSSL development packages in addition to OpenSSL itself. Document this in Kconfig and in module-signing.txt. Signed-off-by: David Howells Reviewed-by: David Woodhouse Documentation/module-signing.txt | 3 +++ init/Kconfig | 4 ++++ 2 files changed, 7 insertions(+) commit 99db44350672c8a5ee9a7b0a6f4cd6ff10136065 Author: David Howells Date: Wed Aug 5 15:22:27 2015 +0100 PKCS#7: Appropriately restrict authenticated attributes and content type A PKCS#7 or CMS message can have per-signature authenticated attributes that are digested as a lump and signed by the authorising key for that signature. If such attributes exist, the content digest isn't itself signed, but rather it is included in a special authattr which then contributes to the signature. Further, we already require the master message content type to be pkcs7_signedData - but there's also a separate content type for the data itself within the SignedData object and this must be repeated inside the authattrs for each signer [RFC2315 9.2, RFC5652 11.1]. We should really validate the authattrs if they exist or forbid them entirely as appropriate. To this end: (1) Alter the PKCS#7 parser to reject any message that has more than one signature where at least one signature has authattrs and at least one that does not. (2) Validate authattrs if they are present and strongly restrict them. Only the following authattrs are permitted and all others are rejected: (a) contentType. This is checked to be an OID that matches the content type in the SignedData object. (b) messageDigest. This must match the crypto digest of the data. (c) signingTime. If present, we check that this is a valid, parseable UTCTime or GeneralTime and that the date it encodes fits within the validity window of the matching X.509 cert. (d) S/MIME capabilities. We don't check the contents. (e) Authenticode SP Opus Info. We don't check the contents. (f) Authenticode Statement Type. We don't check the contents. The message is rejected if (a) or (b) are missing. If the message is an Authenticode type, the message is rejected if (e) is missing; if not Authenticode, the message is rejected if (d) - (f) are present. The S/MIME capabilities authattr (d) unfortunately has to be allowed to support kernels already signed by the pesign program. This only affects kexec. sign-file suppresses them (CMS_NOSMIMECAP). The message is also rejected if an authattr is given more than once or if it contains more than one element in its set of values. (3) Add a parameter to pkcs7_verify() to select one of the following restrictions and pass in the appropriate option from the callers: (*) VERIFYING_MODULE_SIGNATURE This requires that the SignedData content type be pkcs7-data and forbids authattrs. sign-file sets CMS_NOATTR. We could be more flexible and permit authattrs optionally, but only permit minimal content. (*) VERIFYING_FIRMWARE_SIGNATURE This requires that the SignedData content type be pkcs7-data and requires authattrs. In future, this will require an attribute holding the target firmware name in addition to the minimal set. (*) VERIFYING_UNSPECIFIED_SIGNATURE This requires that the SignedData content type be pkcs7-data but allows either no authattrs or only permits the minimal set. (*) VERIFYING_KEXEC_PE_SIGNATURE This only supports the Authenticode SPC_INDIRECT_DATA content type and requires at least an SpcSpOpusInfo authattr in addition to the minimal set. It also permits an SPC_STATEMENT_TYPE authattr (and an S/MIME capabilities authattr because the pesign program doesn't remove these). (*) VERIFYING_KEY_SIGNATURE (*) VERIFYING_KEY_SELF_SIGNATURE These are invalid in this context but are included for later use when limiting the use of X.509 certs. (4) The pkcs7_test key type is given a module parameter to select between the above options for testing purposes. For example: echo 1 >/sys/module/pkcs7_test_key/parameters/usage keyctl padd pkcs7_test foo @s Signed-off-by: David Howells Reviewed-by: Marcel Holtmann Reviewed-by: David Woodhouse arch/x86/kernel/kexec-bzimage64.c | 4 +- crypto/asymmetric_keys/asymmetric_type.c | 11 +++ crypto/asymmetric_keys/pkcs7.asn1 | 6 +- crypto/asymmetric_keys/pkcs7_key_type.c | 14 +++- crypto/asymmetric_keys/pkcs7_parser.c | 138 +++++++++++++++++++++++++++++-- crypto/asymmetric_keys/pkcs7_parser.h | 15 +++- crypto/asymmetric_keys/pkcs7_verify.c | 65 ++++++++++++++- crypto/asymmetric_keys/verify_pefile.c | 7 +- include/crypto/pkcs7.h | 10 ++- include/crypto/public_key.h | 14 ++++ include/keys/system_keyring.h | 4 +- include/linux/oid_registry.h | 4 +- include/linux/verify_pefile.h | 6 +- kernel/module_signing.c | 3 +- kernel/system_keyring.c | 6 +- scripts/sign-file.c | 5 +- 16 files changed, 285 insertions(+), 27 deletions(-) commit f29299b4801076e14bb149cb2fc44bd8dc2f51cc Author: David Howells Date: Fri Jul 31 11:43:23 2015 +0100 KEYS: Add a name for PKEY_ID_PKCS7 Add a name for PKEY_ID_PKCS7 into the pkey_id_type_name array. Signed-off-by: David Howells crypto/asymmetric_keys/public_key.c | 1 + 1 file changed, 1 insertion(+) commit fd19a3d195be23e8d9d0d66576b96ea25eea8323 Author: David Howells Date: Wed Jul 29 16:58:32 2015 +0100 PKCS#7: Improve and export the X.509 ASN.1 time object decoder Make the X.509 ASN.1 time object decoder fill in a time64_t rather than a struct tm to make comparison easier (unfortunately, this makes readable display less easy) and export it so that it can be used by the PKCS#7 code too. Further, tighten up its parsing to reject invalid dates (eg. weird characters, non-existent hour numbers) and unsupported dates (eg. timezones other than 'Z' or dates earlier than 1970). Signed-off-by: David Howells Reviewed-by: David Woodhouse crypto/asymmetric_keys/x509_cert_parser.c | 87 +++++++++++++++++++++++-------- crypto/asymmetric_keys/x509_parser.h | 7 ++- crypto/asymmetric_keys/x509_public_key.c | 9 +--- 3 files changed, 72 insertions(+), 31 deletions(-) commit 770f2b98760ef0500183d7206724aac762433e2d Author: David Woodhouse Date: Mon Jul 20 21:16:34 2015 +0100 modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS Fix up the dependencies somewhat too, while we're at it. Signed-off-by: David Woodhouse Signed-off-by: David Howells kernel/Makefile | 25 ++++++++++++------------- kernel/system_certificates.S | 3 +++ scripts/Makefile | 3 ++- 3 files changed, 17 insertions(+), 14 deletions(-) commit 84706caae9e06363db4f956cde4f9715ce5c0ef3 Author: David Woodhouse Date: Mon Jul 20 21:16:33 2015 +0100 extract-cert: Cope with multiple X.509 certificates in a single file This is not required for the module signing key, although it doesn't do any harm — it just means that any additional certs in the PEM file are also trusted by the kernel. But it does allow us to use the extract-cert tool for processing the extra certs from CONFIG_SYSTEM_TRUSTED_KEYS, instead of that horrid awk|base64 hack. Also cope with being invoked with no input file, creating an empty output file as a result. Signed-off-by: David Woodhouse Signed-off-by: David Howells scripts/extract-cert.c | 58 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 12 deletions(-) commit ed8c20762a314124cbdd62e9d3e8aa7aa2a16020 Author: David Howells Date: Mon Jul 20 21:16:33 2015 +0100 sign-file: Generate CMS message as signature instead of PKCS#7 Make sign-file use the OpenSSL CMS routines to generate a message to be used as the signature blob instead of the PKCS#7 routines. This allows us to change how the matching X.509 certificate is selected. With PKCS#7 the only option is to match on the serial number and issuer fields of an X.509 certificate; with CMS, we also have the option of matching by subjectKeyId extension. The new behaviour is selected with the "-k" flag. Without the -k flag specified, the output is pretty much identical to the PKCS#7 output. Whilst we're at it, don't include the S/MIME capability list in the message as it's irrelevant to us. Signed-off-by: David Howells Reviewed-By: David Woodhouse Date: Mon Jul 20 21:16:33 2015 +0100 PKCS#7: Support CMS messages also [RFC5652] Since CMS is an evolution of PKCS#7, with much of the ASN.1 being compatible, add support for CMS signed-data messages also [RFC5652 sec 5]. Signed-off-by: David Howells Reviewed-By: David Woodhouse crypto/asymmetric_keys/pkcs7.asn1 | 10 +++++- crypto/asymmetric_keys/pkcs7_parser.c | 62 +++++++++++++++++++++++++++++++---- crypto/asymmetric_keys/pkcs7_parser.h | 5 ++- 3 files changed, 68 insertions(+), 9 deletions(-) commit a4c6e57f4f5fa65cbdb8cc1c14ff5ca7c56766c3 Author: David Howells Date: Mon Jul 20 21:16:32 2015 +0100 X.509: Change recorded SKID & AKID to not include Subject or Issuer The key identifiers fabricated from an X.509 certificate are currently: (A) Concatenation of serial number and issuer (B) Concatenation of subject and subjectKeyID (SKID) When verifying one X.509 certificate with another, the AKID in the target can be used to match the authoritative certificate. The AKID can specify the match in one or both of two ways: (1) Compare authorityCertSerialNumber and authorityCertIssuer from the AKID to identifier (A) above. (2) Compare keyIdentifier from the AKID plus the issuer from the target certificate to identifier (B) above. When verifying a PKCS#7 message, the only available comparison is between the IssuerAndSerialNumber field and identifier (A) above. However, a subsequent patch adds CMS support. Whilst CMS still supports a match on IssuerAndSerialNumber as for PKCS#7, it also supports an alternative - which is the SubjectKeyIdentifier field. This is used to match to an X.509 certificate on the SKID alone. No subject information is available to be used. To this end change the fabrication of (B) above to be from the X.509 SKID alone. The AKID in keyIdentifier form then only matches on that and does not include the issuer. Signed-off-by: David Howells Reviewed-By: David Woodhouse crypto/asymmetric_keys/x509_cert_parser.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 2c7fd3675ef1867d0d0c39e9f0bb5ddb67bfc7a7 Author: David Howells Date: Mon Jul 20 21:16:31 2015 +0100 PKCS#7: Check content type and versions We only support PKCS#7 signed-data [RFC2315 sec 9] content at the top level, so reject anything else. Further, check that the version numbers in SignedData and SignerInfo are 1 in both cases. Note that we don't restrict the inner content type. In the PKCS#7 code we don't parse the data attached there, but merely verify the signature over it. Signed-off-by: David Howells Reviewed-By: David Woodhouse crypto/asymmetric_keys/pkcs7.asn1 | 6 +-- crypto/asymmetric_keys/pkcs7_parser.c | 75 ++++++++++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 4 deletions(-) commit 63ab1749f39aeec27b0dcf71cd7996d862c5ad63 Author: Arnaldo Carvalho de Melo Date: Wed Aug 12 12:42:58 2015 -0300 perf hists browser: Make ESC unzoom as well In addition to <-, that may be repurposed for horizontal scrolling. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-w3rctelxr4yxrjufx7z3fclb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/hists.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit d4853630b334017cab9a4602f5e9677e3b792c8a Author: Thierry Reding Date: Wed Aug 12 17:00:35 2015 +0200 drm/atomic: Use KMS VBLANK API Instead of using the legacy VBLANK API, use the new KMS API. This is part of an effort to convert all existing users so that the KMS API can be changed to properly use per-CRTC data. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c30e11fc66fe21882c46e176ed695728ebd4293a Author: Thierry Reding Date: Wed Aug 12 17:00:33 2015 +0200 drm/irq: Document return values more consistently Some of the functions are documented inconsistently. Add Returns: sections where missing and use consistent style to describe the return value. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit cc1ef118fc099295ae6aabbacc8af94d8d8885eb Author: Thierry Reding Date: Wed Aug 12 17:00:31 2015 +0200 drm/irq: Make pipe unsigned and name consistent Name all references to the pipe number (CRTC index) consistently to make it easier to distinguish which is a pipe number and which is a pointer to struct drm_crtc. While at it also make all references to the pipe number unsigned because there is no longer any reason why it should ever be negative. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 316 +++++++++++++++++++++++----------------------- include/drm/drmP.h | 32 ++--- 2 files changed, 175 insertions(+), 173 deletions(-) commit 7d1de851632d013023cd7c89eb8664f62e5beb2c Author: Thierry Reding Date: Wed Aug 12 17:00:30 2015 +0200 drm/irq: Check for valid VBLANK before dereference When accessing the array of per-CRTC VBLANK structures we must always check that the index into the array is valid before dereferencing to avoid crashing. Signed-off-by: Thierry Reding [danvet: Squash in my own whitespace ocd fixup in drm_vblank_count.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit fc0a446152877d3a4e40166ddb19b6e0cb5f6567 Author: viresh kumar Date: Mon Aug 10 11:42:26 2015 +0530 dm: remove unlikely() before IS_ERR() IS_ERR() already contains an 'unlikely' compiler flag so there is no need to do that again from IS_ERR() callers. Signed-off-by: Viresh Kumar Signed-off-by: Mike Snitzer drivers/md/dm-snap-persistent.c | 2 +- drivers/md/dm-verity.c | 2 +- drivers/md/persistent-data/dm-block-manager.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) commit e80d1c805a3b2f0ad2081369be5dc5deedd5ee59 Author: Vivek Goyal Date: Fri Jul 31 09:20:36 2015 -0400 dm: do not override error code returned from dm_get_device() Some of the device mapper targets override the error code returned by dm_get_device() and return either -EINVAL or -ENXIO. There is nothing gained by this override. It is better to propagate the returned error code unchanged to caller. This work was motivated by hitting an issue where the underlying device was busy but -EINVAL was being returned. After this change we get -EBUSY instead and it is easier to figure out the problem. Signed-off-by: Vivek Goyal Signed-off-by: Mike Snitzer drivers/md/dm-crypt.c | 4 +++- drivers/md/dm-delay.c | 16 +++++++++++----- drivers/md/dm-flakey.c | 6 ++++-- drivers/md/dm-linear.c | 7 +++++-- drivers/md/dm-log-writes.c | 11 ++++++++--- drivers/md/dm-raid1.c | 8 +++++--- drivers/md/dm-stripe.c | 8 +++++--- 7 files changed, 41 insertions(+), 19 deletions(-) commit ab37844d6169c2dd6f96e665b07b692ba1a4c180 Author: Mikulas Patocka Date: Wed Jul 1 17:30:36 2015 -0400 dm: test return value for DM_MAPIO_SUBMITTED In properly written code we should not assume that DM_MAPIO_SUBMITTED is zero. We should test the return value for DM_MAPIO_SUBMITTED rather than testing it for zero. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer drivers/md/dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4fb9aa5abdb791defedb3a5ce254ad193e82d77b Author: Sami Tolvanen Date: Mon Jun 29 14:14:00 2015 +0100 dm verity: remove unused mempool Since commit 003b5c571 ("block: Convert drivers to immutable biovecs"), vec_mempool in struct dm_verity is no longer used. Remove it and related definitions. Signed-off-by: Sami Tolvanen Signed-off-by: Mike Snitzer drivers/md/dm-verity.c | 15 --------------- 1 file changed, 15 deletions(-) commit e44b6a5a3c711c1ada4cf7135bf9dbf860caffd2 Author: Joe Thornber Date: Thu Jul 30 09:29:40 2015 +0100 dm cache: move wake_waker() from free_migrations() to where it is needed This stops spurious wake ups from calls to prealloc_free_structs(). Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-target.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 8c747fd0c3f514233afaca98139c03cca2cf2d2f Author: Vivek Goyal Date: Mon Jul 6 11:55:41 2015 -0400 dm btree remove: remove unused function get_nr_entries() rebalance_children() calls get_nr_entries() and assigns the result to an unused local 'child_entries' variable. Remove get_nr_entries() and cleanup rebalance_children() accordingly. Signed-off-by: Vivek Goyal Signed-off-by: Mike Snitzer drivers/md/persistent-data/dm-btree-remove.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 0a8d4c3ef8f14cbd26d97767e3676722d4eebee5 Author: Vivek Goyal Date: Mon Jul 6 11:55:40 2015 -0400 dm btree: remove unused "dm_block_t root" parameter in btree_split_sibling() Signed-off-by: Vivek Goyal Signed-off-by: Mike Snitzer drivers/md/persistent-data/dm-btree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 4051aab762f161826f15ea63c8baaf33cb5e6fe3 Author: Joe Thornber Date: Fri Jun 26 13:25:12 2015 +0100 dm cache policy smq: change the mutex to a spinlock We no longer sleep in any of the smq functions, so this can become a spinlock. Switching from mutex to spinlock improves performance when the fast cache device is a very low latency device (e.g. NVMe SSD). The switch to spinlock also allows for removal of the extra tick_lock; which is no longer needed since the main lock being a spinlock now fulfills the locking requirements needed by interrupt context. Signed-off-by: Joe Thornber Signed-off-by: Mike Snitzer drivers/md/dm-cache-policy-smq.c | 110 ++++++++++++++------------------------- 1 file changed, 39 insertions(+), 71 deletions(-) commit 2a7d3d6d5ddbd202c09f228829cd03609a8efb23 Author: Thierry Reding Date: Wed Aug 12 17:00:24 2015 +0200 drm/irq: Remove negative CRTC index special-case The drm_send_vblank_event() function treats negative CRTC indices as meaning that a driver doesn't have proper VBLANK handling. This is the only place where DRM needs negative CRTC indices, so in order to enable subsequent cleanup, remove this special case and replace it by the more obvious check for whether or not VBLANK support was initialized. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b54a0935b03888c8412aa5acbf873af9d753fbdd Author: Thierry Reding Date: Wed Aug 12 16:54:29 2015 +0200 drm/plane: Remove redundant extern Use of the extern keyword for function prototypes is unnecessary, so it can be removed. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter include/drm/drm_plane_helper.h | 45 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 23 deletions(-) commit 45e3743aff6f3fbe3f08d43d443dc2d7b5396a31 Author: Thierry Reding Date: Wed Aug 12 16:54:28 2015 +0200 drm/plane: Use consistent data types for format count Rather than a mix of the the sized uint32_t and signed integer, use an unsized unsigned int to specify the format count. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 4 ++-- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/nouveau/dispnv04/overlay.c | 2 +- include/drm/drm_crtc.h | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) commit 798ae0f6693deac4a07377d0c45b4325b7026278 Author: Thierry Reding Date: Wed Aug 12 16:32:12 2015 +0200 vga_switcheroo: Remove unnecessary checks debugfs_remove() gracefully ignores NULL parameters, so the explicit checks can be removed. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vga_switcheroo.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 7491bfb446741b1dd65aadda54bade18bfaba442 Author: Thierry Reding Date: Wed Aug 12 16:32:11 2015 +0200 vga_switcheroo: Wrap overly long lines Wrap overly long lines to make checkpatch happy. While at it, also add blank lines after declarations to eliminate additional problems flagged by checkpatch. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vga_switcheroo.c | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) commit 9b0be1ebec804c5698541a86486a0b2a4143279d Author: Thierry Reding Date: Wed Aug 12 16:32:10 2015 +0200 vga_switcheroo: Use pr_fmt() Use pr_fmt() to define the "vga_switcheroo: " prefix that is prepended to all output messages emitted by pr_*() functions. This allows making existing strings much shorter and eliminates a bunch of warnings from checkpatch about lines being overly long. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vga_switcheroo.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) commit 713092783082a1469d329cb63be7c7a0992b2448 Author: Thierry Reding Date: Wed Aug 12 16:32:09 2015 +0200 vga_switcheroo: Cleanup header comment The header comment uses a weird combination of formatting styles. Make it consistent. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vga_switcheroo.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit bf8252b3fc247f8634df521af429101064fc43d1 Author: Thierry Reding Date: Wed Aug 12 16:32:08 2015 +0200 vga_switcheroo: Use pr_*() instead of printk() This silences a bunch of checkpatch warnings and makes the code shorter. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vga_switcheroo.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 5d90ccf908bd806f0767bc07310e4c25c8501369 Author: Thierry Reding Date: Wed Aug 12 16:32:07 2015 +0200 vgaarb: Fix a few checkpatch errors and warnings Wrap overly long lines (offending lines were mostly comments, so trivial to fix up) and a number of other coding style issues pointed out by the checkpatch tool. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vgaarb.c | 102 ++++++++++++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 42 deletions(-) commit 8b7e2e865fef94d6a46746c3b7f334b910814031 Author: Thierry Reding Date: Wed Aug 12 16:32:06 2015 +0200 vgaarb: Use vgaarb: prefix consistently in messages Define the pr_fmt() macro to causes all messages emitted by pr_*() functions to be prefixed with "vgaarb: ". Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vgaarb.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit eb6944f2fc01d5c83bce37fa0e68810565f78a75 Author: Thierry Reding Date: Wed Aug 12 16:32:05 2015 +0200 vgaarb: Stop complaining about absent devices Some setups do not register a default VGA device, in which case the VGA arbiter will still complain about the (non-existent) PCI device being a non-VGA device. Fix this by making the error message conditional on a default VGA device having been set up. Note that the easy route of erroring out early isn't going to work because otherwise priv->target won't be properly updated. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/vga/vgaarb.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 50d78bcf5d06871a0b3adcb3cbec6e6ca33f226a Author: Frederic Danis Date: Wed Aug 12 12:46:01 2015 +0200 Bluetooth: hci_bcm: Fix "implicit declaration" The kbuild test robot reported implicit declaration of function 'acpi_dev_get_resources'. Surround ACPI function by CONFIG_ACPI test. Reported-by: kbuild test robot Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 62aaefa7d03804aef30639ab362f845b1f3e92ed Author: Uwe Kleine-König Date: Wed Aug 12 09:20:56 2015 +0200 Bluetooth: hci_bcm: improve use of gpios API devm_gpiod_get currently has an optional parameter to set initial direction and value for the requested gpio. Make use of this to simplify the driver and make it not fail to build when this parameter is made mandatory (which is scheduled for 4.3-rc1). Moreover use the _optional variant of devm_gpiod_get to simplify error handling (which also gets more strict for free). Signed-off-by: Uwe Kleine-König Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) commit f303e50766298feac17c8715e29ecd14b2c12680 Author: Joerg Roedel Date: Thu Jul 23 18:37:13 2015 +0200 iommu/vt-d: Avoid duplicate device_domain_info structures When a 'struct device_domain_info' is created as an alias for another device, this struct will not be re-used when the real device is encountered. Fix that to avoid duplicate device_domain_info structures being added. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 08a7f456a759e971caf0cc13987a963de2b0ae7c Author: Joerg Roedel Date: Thu Jul 23 18:09:11 2015 +0200 iommu/vt-d: Only insert alias dev_info if there is an alias For devices without an PCI alias there will be two device_domain_info structures added. Prevent that by checking if the alias is different from the device. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 127c761598f7fbe7ffe6650cdc491eb57c5aaecd Author: Joerg Roedel Date: Thu Jul 23 17:44:46 2015 +0200 iommu/vt-d: Pass device_domain_info to __dmar_remove_one_dev_info This struct contains all necessary information for the function already. Also handle the info->dev == NULL case while at it. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) commit 2309bd793ead6d5e4ace611502aa87b3202856ca Author: Joerg Roedel Date: Wed Jul 22 17:29:47 2015 +0200 iommu/vt-d: Remove dmar_global_lock from device_notifier The code in the locked section does not touch anything protected by the dmar_global_lock. Remove it from there. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 2 -- 1 file changed, 2 deletions(-) commit 55d940430ab91b89ff5fc7240555544d86475783 Author: Joerg Roedel Date: Wed Jul 22 16:50:40 2015 +0200 iommu/vt-d: Get rid of domain->iommu_lock When this lock is held the device_domain_lock is also required to make sure the device_domain_info does not vanish while in use. So this lock can be removed as it gives no additional protection. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 87 +++++++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 38 deletions(-) commit de7e888646466e6c32cdd41124c0164cfed4abcb Author: Joerg Roedel Date: Wed Jul 22 11:58:07 2015 +0200 iommu/vt-d: Only call domain_remove_one_dev_info to detach old domain There is no need to make a difference here between VM and non-VM domains, so simplify this code here. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit d160aca5276d093fc68d6ff48888586c90309d03 Author: Joerg Roedel Date: Wed Jul 22 11:52:53 2015 +0200 iommu/vt-d: Unify domain->iommu attach/detachment Move the code to attach/detach domains to iommus and vice verce into a single function to make sure there are no dangling references. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 125 +++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 76 deletions(-) commit c6c2cebd665933216785246a1d15b4112fa74bbf Author: Joerg Roedel Date: Wed Jul 22 13:11:53 2015 +0200 iommu/vt-d: Establish domain<->iommu link in dmar_insert_one_dev_info This makes domain attachment more synchronous with domain deattachment. The domain<->iommu link is released in dmar_remove_one_dev_info. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit dc534b25d11f42e6b4caa5b1918f549d9c0e9d4d Author: Joerg Roedel Date: Wed Jul 22 12:44:02 2015 +0200 iommu/vt-d: Pass an iommu pointer to domain_init() This allows to do domain->iommu attachment after domain_init has run. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 2452d9db1218fdb1c29afb921838c323987f5799 Author: Joerg Roedel Date: Thu Jul 23 16:20:14 2015 +0200 iommu/vt-d: Rename iommu_detach_dependent_devices() Rename this function and the ones further down its call-chain to domain_context_clear_*. In particular this means: iommu_detach_dependent_devices -> domain_context_clear iommu_detach_dev_cb -> domain_context_clear_one_cb iommu_detach_dev -> domain_context_clear_one These names match a lot better with its domain_context_mapping counterparts. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit e6de0f8dfcd0395efee874db97536531555d91af Author: Joerg Roedel Date: Wed Jul 22 16:30:36 2015 +0200 iommu/vt-d: Rename domain_remove_one_dev_info() Rename the function to dmar_remove_one_dev_info to match is name better with its dmar_insert_one_dev_info counterpart. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 5db31569e9503654477b504de7161d01f85f7261 Author: Joerg Roedel Date: Wed Jul 22 12:40:43 2015 +0200 iommu/vt-d: Rename dmar_insert_dev_info() Rename this function to dmar_insert_one_dev_info() to match the name better with its counter part function domain_remove_one_dev_info(). Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit cc4e2575cc96b1aac910f56e1d7ef45d219b40b2 Author: Joerg Roedel Date: Wed Jul 22 10:04:36 2015 +0200 iommu/vt-d: Move context-mapping into dmar_insert_dev_info Do the context-mapping of devices from a single place in the call-path and clean up the other call-sites. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) commit 76f45fe35c7a54e6fe5539660db2c8cfb23a2972 Author: Joerg Roedel Date: Tue Jul 21 18:25:11 2015 +0200 iommu/vt-d: Simplify domain_remove_dev_info() Just call domain_remove_one_dev_info() for all devices in the domain instead of reimplementing the functionality. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) commit b608ac3b6d54c38d6cf0eb91547f0f960633eb2d Author: Joerg Roedel Date: Tue Jul 21 18:19:08 2015 +0200 iommu/vt-d: Simplify domain_remove_one_dev_info() Simplify this function as much as possible with the new iommu_refcnt field. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 50 +++++++++++++++------------------------------ 1 file changed, 16 insertions(+), 34 deletions(-) commit 42e8c186b595a32918933b3dec445f0bf0f486f6 Author: Joerg Roedel Date: Tue Jul 21 15:50:02 2015 +0200 iommu/vt-d: Simplify io/tlb flushing in intel_iommu_unmap We don't need to do an expensive search for domain-ids anymore, as we keep track of per-iommu domain-ids. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit 29a27719abaa4d74aed928803c1aa9437bbdde89 Author: Joerg Roedel Date: Tue Jul 21 17:17:12 2015 +0200 iommu/vt-d: Replace iommu_bmp with a refcount This replaces the dmar_domain->iommu_bmp with a similar reference count array. This allows us to keep track of how many devices behind each iommu are attached to the domain. This is necessary for further simplifications and optimizations to the iommu<->domain attachment code. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 82 +++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 37 deletions(-) commit af1089ce388b2d14c8331b96567b7e3b7eb5f35b Author: Joerg Roedel Date: Tue Jul 21 15:45:19 2015 +0200 iommu/vt-d: Kill dmar_domain->id This field is now obsolete because all places use the per-iommu domain-ids. Kill the remaining uses of this field and remove it. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 0dc7971594aad73b50722878ea7175055a4fdfcd Author: Joerg Roedel Date: Tue Jul 21 15:40:06 2015 +0200 iommu/vt-d: Don't pre-allocate domain ids for si_domain There is no reason for this special handling of the si_domain. The per-iommu domain-id can be allocated on-demand like for any other domain. So remove the pre-allocation code. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) commit a1ddcbe9301023928f877b675a40914427928f2a Author: Joerg Roedel Date: Tue Jul 21 15:20:32 2015 +0200 iommu/vt-d: Pass dmar_domain directly into iommu_flush_iotlb_psi This function can figure out the domain-id to use itself from the iommu_did array. This is more reliable over different domain types and brings us one step further to remove the domain->id field. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) commit de24e55395698e29f2a0582ae1899fa0001f829a Author: Joerg Roedel Date: Tue Jul 21 14:53:04 2015 +0200 iommu/vt-d: Simplify domain_context_mapping_one Get rid of the special cases for VM domains vs. non-VM domains and simplify the code further to just handle the hardware passthrough vs. page-table case. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 60 ++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) commit 28ccce0d954a1cf3baba335bf12581357112fb35 Author: Joerg Roedel Date: Tue Jul 21 14:45:31 2015 +0200 iommu/vt-d: Calculate translation in domain_context_mapping_one There is no reason to pass the translation type through multiple layers. It can also be determined in the domain_context_mapping_one function directly. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 49 +++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 26 deletions(-) commit e2411427f7d3ddcf8d5f35d5ab0a397180deac3a Author: Joerg Roedel Date: Tue Jul 21 11:18:21 2015 +0200 iommu/vt-d: Get rid of iommu_attach_vm_domain() The special case for VM domains is not needed, as other domains could be attached to the iommu in the same way. So get rid of this special case. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) commit 8bf478163e69e42973c7070179a11815139e5bf0 Author: Joerg Roedel Date: Tue Jul 21 10:41:21 2015 +0200 iommu/vt-d: Split up iommu->domains array This array is indexed by the domain-id and contains the pointers to the domains attached to this iommu. Modern systems support 65536 domain ids, so that this array has a size of 512kb, per iommu. This is a huge waste of space, as the array is usually sparsely populated. This patch makes the array two-dimensional and allocates the memory for the domain pointers on-demand. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 54 ++++++++++++++++++++++++++++++++++++--------- include/linux/intel-iommu.h | 2 +- 2 files changed, 44 insertions(+), 12 deletions(-) commit 9452d5bfe5c3df6befb89835d2c44920e03bd390 Author: Joerg Roedel Date: Tue Jul 21 10:00:56 2015 +0200 iommu/vt-d: Add access functions for iommu->domains This makes it easier to change the layout of the data structure later. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit c0e8a6c8033e205835fa5e67db7ab4589d2491b2 Author: Joerg Roedel Date: Tue Jul 21 09:39:46 2015 +0200 iommu/vt-d: Keep track of per-iommu domain ids Instead of searching in the domain array for already allocated domain ids, keep track of them explicitly. Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 54 ++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 25 deletions(-) commit 517dfdb315fa2da9b144f6fa494b4f54b490de7e Author: Arnaldo Carvalho de Melo Date: Tue Aug 11 12:50:55 2015 -0300 perf ui browser: Introduce ui_browser__printf() To remove direct access to libslang functions, with the immediate goal of implementing horizontal scrolling at the ui_browser level, but also because we may at some point want to implement ui_browser with other UIs in addition to the current libslang implementation. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-w0niblabqrkecs4o0eogfy6c@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browser.c | 9 +++++++++ tools/perf/ui/browser.h | 1 + tools/perf/ui/browsers/annotate.c | 19 ++++++++++--------- tools/perf/ui/browsers/hists.c | 16 ++++++++-------- tools/perf/ui/browsers/map.c | 9 ++++----- tools/perf/ui/libslang.h | 3 +++ 6 files changed, 35 insertions(+), 22 deletions(-) commit 26270a008251ec36431623bd992252934bbe529a Author: Arnaldo Carvalho de Melo Date: Tue Aug 11 12:24:27 2015 -0300 perf ui browser: Introduce ui_browser__write_nstring() To remove direct access to libslang functions, with the immediate goal of implementing horizontal scrolling at the ui_browser level, but also because we may at some point want to implement ui_browser with other UIs in addition to the current libslang implementation. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-437ineavoejzou727mr9bxpi@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browser.c | 8 +++++++- tools/perf/ui/browser.h | 2 ++ tools/perf/ui/browsers/annotate.c | 24 ++++++++++++------------ tools/perf/ui/browsers/header.c | 2 +- tools/perf/ui/browsers/hists.c | 10 +++++----- tools/perf/ui/browsers/map.c | 2 +- tools/perf/ui/browsers/scripts.c | 2 +- tools/perf/ui/tui/util.c | 2 +- 8 files changed, 30 insertions(+), 22 deletions(-) commit b62bee1bdea6d78e444183b04c81ce982a371571 Author: Arnaldo Carvalho de Melo Date: Tue Aug 11 11:05:36 2015 -0300 perf trace: Beautify keyctl's option arg 8.697 (0.103 ms): pool/2343 keyctl(option: GET_PERSISTENT, arg2: 1000, arg3: 4294967294, arg4: 140703061514067, arg5: 140703692383680) = 1023192809 8.763 (0.049 ms): pool/2343 keyctl(option: SEARCH, arg2: 1023192809, arg3: 140703745767772, arg4: 140703745767832, arg5: 4294967294) = 140224497 8.789 (0.016 ms): pool/2343 keyctl(option: SEARCH, arg2: 140224497, arg3: 140703745767814, arg4: 140703745767900) = 512300257 8.807 (0.011 ms): pool/2343 keyctl(option: READ, arg2: 512300257 ) = 13 8.822 (0.008 ms): pool/2343 keyctl(option: READ, arg2: 512300257, arg3: 140703061514000, arg4: 13 ) = 13 8.837 (0.007 ms): pool/2343 keyctl(option: READ, arg2: 140224497 ) = 4 8.852 (0.009 ms): pool/2343 keyctl(option: READ, arg2: 140224497, arg3: 140703061514000, arg4: 4 ) = 4 8.869 (0.010 ms): pool/2343 keyctl(option: SEARCH, arg2: 140224497, arg3: 140703745767772, arg4: 140703061514032) = -1 ENOKEY Required key not available 8.892 (0.017 ms): pool/2343 keyctl(option: DESCRIBE, arg2: 512300257 ) = 43 8.910 (0.012 ms): pool/2343 keyctl(option: DESCRIBE, arg2: 512300257, arg3: 140703061544384, arg4: 43) = 43 Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-013ab219irsxngyumrf5gp8s@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 8d8c66a248dfb9a7e517822b5ef87e357b1605bf Author: Arnaldo Carvalho de Melo Date: Tue Aug 11 10:57:02 2015 -0300 perf trace: Use the FD beautifier for socket syscall fds But we really should have something like 'strace -yy' here... Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-eyrt1ypfq68u4ljagyk2nj1i@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 76b10655818c939e257377f83992975a5f55ffb3 Author: Andi Kleen Date: Tue Aug 11 06:36:55 2015 -0700 perf sort: Check for SRCLINE_UNKNOWN case in "srcfile" processing Handle the SRCLINE_UNKNOWN case correctly when processing "srcfile". Commiter note: We can't just free it, as it was't allocated via malloc, its a guard variable. Reported-by: Namhyung Kim Signed-off-by: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20150811133655.GC4524@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 2 ++ 1 file changed, 2 insertions(+) commit 28ebb87c73f9c17266d4f7570d65a1e695df7d9d Author: Arnaldo Carvalho de Melo Date: Tue Aug 11 10:38:38 2015 -0300 perf trace: Add missing clockid entries We were missing: CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM, CLOCK_BOOTTIME_ALARM, CLOCK_SGI_CYCLE and CLOCK_TAI. Add them. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-d67rwqtwm9jyenwes98kr0cr@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 090389b6d95c046cc6caca2e7e00adc27829acf2 Author: Arnaldo Carvalho de Melo Date: Mon Aug 10 19:20:52 2015 -0300 perf trace: Associate some more syscall args with the getname beautifier This time using 'trinity' to test these: fchmodat, futimesat, llistxattr, lremovexattr, lstat, mknodat, mq_unlink, stat and vmsplice. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-a1uqu249nwwh0ixrhm80k4a4@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit dcfcf2c2cd71906073beef32aadb1989e8996951 Author: Xiubo Li Date: Wed Aug 12 14:38:18 2015 +0800 ASoC: fsl: fix typos for sound/soc/fsl/* There are too much noise about the typos for fsl's drivers. So I fix all the typos here in this patch in almost every file I touched. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown sound/soc/fsl/eukrea-tlv320.c | 2 +- sound/soc/fsl/fsl_sai.h | 12 ++++++------ sound/soc/fsl/fsl_spdif.c | 6 +++--- sound/soc/fsl/fsl_ssi.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) commit b486afbd1baf796a9e4b793b2f9121c12e1469af Author: Xiubo Li Date: Wed Aug 12 15:02:19 2015 +0800 regmap: fix typos in regmap.c There are two typos in drivers/base/regmap/regmap.c, and they may introduce some noise when checking new patches. Signed-off-by: Xiubo Li Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3cb5ff0220e31bd1043bb18fd5765c9f86928491 Author: Jamie Lentin Date: Tue Aug 11 22:40:52 2015 +0100 HID: lenovo: Hide middle-button press until release Don't relay a middle button press to userspace until release, and then only if there was no scroll events inbetween. This is closer to what Xorg's wheel emulation does, and avoids spurious middle-click pastes. Signed-off-by: Jamie Lentin Signed-off-by: Jiri Kosina drivers/hid/hid-lenovo.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit dbfebb44b7c650dd134a8be07f9afd5862150987 Author: Jamie Lentin Date: Tue Aug 11 22:40:51 2015 +0100 HID: lenovo: Add missing return-value check Signed-off-by: Jamie Lentin Signed-off-by: Jiri Kosina drivers/hid/hid-lenovo.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 7f65068fb77f173c5466545fc11818de7a35c1f3 Author: Jamie Lentin Date: Tue Aug 11 22:40:50 2015 +0100 HID: lenovo: Use constants for axes names Signed-off-by: Jamie Lentin Signed-off-by: Jiri Kosina drivers/hid/hid-lenovo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 609ca5f3cb32c2d11fd8cabe293ff3689e7d2613 Author: Mark Brown Date: Mon Aug 10 19:43:47 2015 +0100 regulator: core: Use class device list for regulator_list in late init The regulator_list has exactly the same contents as the list that the driver core maintains of regulator_class members so is redundant. As a first step in converting over to use the class device list convert our iteration in late_initcall() to use the class device iterator. Signed-off-by: Mark Brown drivers/regulator/core.c | 106 ++++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 51 deletions(-) commit 2f9b660b2128c92d66f18ac7fbd7c39a91cec159 Author: Markus Pargmann Date: Wed Aug 12 12:12:28 2015 +0200 regmap: Fix integertypes for register address and value These values are defined as unsigned int in the struct and are assigned to int values. This patch fixes the type to be unsigned int instead. Signed-off-by: Markus Pargmann Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f120cd6533d21075ab103ae6c225b1697853660d Author: Marc Zyngier Date: Mon Jun 23 13:59:13 2014 +0100 KVM: arm/arm64: timer: Allow the timer to control the active state In order to remove the crude hack where we sneak the masked bit into the timer's control register, make use of the phys_irq_map API control the active state of the interrupt. This causes some limited changes to allow for potential error propagation. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/reset.c | 4 +--- arch/arm64/kvm/reset.c | 4 +--- include/kvm/arm_arch_timer.h | 7 +++++-- virt/kvm/arm/arch_timer.c | 29 ++++++++++++++++++++++------- 4 files changed, 29 insertions(+), 15 deletions(-) commit 773299a570725d1f253d6046cd6475209b0dcd55 Author: Marc Zyngier Date: Fri Jul 24 11:30:43 2015 +0100 KVM: arm/arm64: vgic: Prevent userspace injection of a mapped interrupt Virtual interrupts mapped to a HW interrupt should only be triggered from inside the kernel. Otherwise, you could end up confusing the kernel (and the GIC's) state machine. Rearrange the injection path so that kvm_vgic_inject_irq is used for non-mapped interrupts, and kvm_vgic_inject_mapped_irq is used for mapped interrupts. The latter should only be called from inside the kernel (timer, irqfd). Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier include/kvm/arm_vgic.h | 2 + virt/kvm/arm/vgic.c | 103 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 72 insertions(+), 33 deletions(-) commit 6e84e0e0677281b4e7fc634c7e9d085fbcf41b10 Author: Marc Zyngier Date: Mon Jun 8 16:13:30 2015 +0100 KVM: arm/arm64: vgic: Add vgic_{get,set}_phys_irq_active In order to control the active state of an interrupt, introduce a pair of accessors allowing the state to be set/queried. This only affects the logical state, and the HW state will only be applied at world-switch time. Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier include/kvm/arm_vgic.h | 2 ++ virt/kvm/arm/vgic.c | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) commit 08fd6461e8752d2db233c1f237fa5771bcefc63f Author: Marc Zyngier Date: Mon Jun 8 16:06:13 2015 +0100 KVM: arm/arm64: vgic: Allow HW interrupts to be queued to a guest To allow a HW interrupt to be injected into a guest, we lookup the guest virtual interrupt in the irq_phys_map list, and if we have a match, encode both interrupts in the LR. We also mark the interrupt as "active" at the host distributor level. On guest EOI on the virtual interrupt, the host interrupt will be deactivated. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier virt/kvm/arm/vgic.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 3 deletions(-) commit 6c3d63c9a26ba56e2ca63a9f68d52f77ae551d91 Author: Marc Zyngier Date: Mon Jun 23 17:37:18 2014 +0100 KVM: arm/arm64: vgic: Allow dynamic mapping of physical/virtual interrupts In order to be able to feed physical interrupts to a guest, we need to be able to establish the virtual-physical mapping between the two worlds. The mappings are kept in a set of RCU lists, indexed by virtual interrupts. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/arm.c | 2 + include/kvm/arm_vgic.h | 25 ++++++ virt/kvm/arm/vgic.c | 209 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 235 insertions(+), 1 deletion(-) commit 7a67b4b7e04b30345584c1b76a80db628530bf21 Author: Marc Zyngier Date: Fri Jun 5 16:45:29 2015 +0100 KVM: arm/arm64: vgic: Relax vgic_can_sample_irq for edge IRQs We only set the irq_queued flag for level interrupts, meaning that "!vgic_irq_is_queued(vcpu, irq)" is a good enough predicate for all interrupts. This will allow us to inject edge HW interrupts, for which the state ACTIVE+PENDING is not allowed. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier virt/kvm/arm/vgic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb182cf84568cc33ab41121bc8cc999f7aacbd47 Author: Marc Zyngier Date: Mon Jun 8 15:37:26 2015 +0100 KVM: arm/arm64: vgic: Allow HW irq to be encoded in LR Now that struct vgic_lr supports the LR_HW bit and carries a hwirq field, we can encode that information into the list registers. This patch provides implementations for both GICv2 and GICv3. Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier include/linux/irqchip/arm-gic-v3.h | 3 +++ include/linux/irqchip/arm-gic.h | 3 ++- virt/kvm/arm/vgic-v2.c | 16 +++++++++++++++- virt/kvm/arm/vgic-v3.c | 21 ++++++++++++++++++--- 4 files changed, 38 insertions(+), 5 deletions(-) commit 32d2d8010cd7080a0f1712f1084b92657858428e Author: Marc Zyngier Date: Mon Jun 8 15:21:32 2015 +0100 KVM: arm/arm64: vgic: Convert struct vgic_lr to use bitfields As we're about to cram more information in the vgic_lr structure (HW interrupt number and additional state information), we switch to a layout similar to the HW's: - use bitfields to save space (we don't need more than 10 bits to represent the irq numbers) - source CPU and HW interrupt can share the same field, as a SGI doesn't have a physical line. Reviewed-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier include/kvm/arm_vgic.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit abdf58438356c7baf34bdd98084b094ca3a6a23f Author: Marc Zyngier Date: Mon Jun 8 15:00:28 2015 +0100 arm/arm64: KVM: Move vgic handling to a non-preemptible section As we're about to introduce some serious GIC-poking to the vgic code, it is important to make sure that we're going to poke the part of the GIC that belongs to the CPU we're about to run on (otherwise, we'd end up with some unexpected interrupts firing)... Introducing a non-preemptible section in kvm_arch_vcpu_ioctl_run prevents the problem from occuring. Reviewed-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/kvm/arm.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit 9a99d050705318d1cb27979e1c810464347db9db Author: Marc Zyngier Date: Fri Jun 5 09:33:28 2015 +0100 arm/arm64: KVM: Fix ordering of timer/GIC on guest entry As we now inject the timer interrupt when we're about to enter the guest, it makes a lot more sense to make sure this happens before the vgic code queues the pending interrupts. Otherwise, we get the interrupt on the following exit, which is not great for latency (and leads to all kind of bizarre issues when using with active interrupts at the HW level). Signed-off-by: Marc Zyngier Reviewed-by: Alex Bennée Reviewed-by: Christoffer Dall arch/arm/kvm/arm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 48f8bd57756573b08520629a2413227fcdf058f5 Author: Vladimir Murzin Date: Tue Jul 28 10:42:23 2015 +0100 arm64: KVM: remove remaining reference to vgic_sr_vectors Since commit 8a14849 (arm64: KVM: Switch vgic save/restore to alternative_insn) vgic_sr_vectors is not used anymore, so remove remaining leftovers and kill the structure. Signed-off-by: Vladimir Murzin Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_host.h | 5 ----- arch/arm64/kernel/asm-offsets.c | 2 -- 2 files changed, 7 deletions(-) commit bca556ac468ab4744692926b67cb525cdce850c9 Author: Suzuki K. Poulose Date: Wed Jun 17 10:00:46 2015 +0100 arm64/kvm: Add generic v8 KVM target This patch adds a generic ARM v8 KVM target cpu type for use by the new CPUs which eventualy ends up using the common sys_reg table. For backward compatibility the existing targets have been preserved. Any new target CPU that can be covered by generic v8 sys_reg tables should make use of the new generic target. Signed-off-by: Suzuki K. Poulose Acked-by: Marc Zyngier Signed-off-by: Marc Zyngier arch/arm64/include/uapi/asm/kvm.h | 10 ++++++++-- arch/arm64/kvm/guest.c | 3 ++- arch/arm64/kvm/sys_regs_generic_v8.c | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-) commit 5f1230c9b80b89f404938ff88dfa64a963f74f2c Merge: 709bc87 4605bb5 Author: Ingo Molnar Date: Wed Aug 12 12:16:11 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Introduce 'srcfile' sort key: (Andi Kleen) # perf record -F 10000 usleep 1 # perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile # Overhead Source File 26.49% copy_page_64.S 5.49% signal.c 0.51% msr.h # It can be combined with other fields, for instance, experiment with '-s srcfile,symbol'. There are some oddities in some distros and with some specific DSOs, being investigated, so your mileage may vary. - Update the column width for the "srcline" sort key (Arnaldo Carvalho de Melo) - Support per-event 'freq' term: (Namhyung Kim) $ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1 $ perf evlist -F cpu/instructions,freq=1234/: sample_freq=1234 cycles: sample_period=1000 $ Infrastructure changes: - Move perf_counts struct and functions into separate object (Jiri Olsa) - Unset perf_event_attr::freq when period term is set (Jiri Olsa) - Move callchain option parsing code to util.c (Kan Liang) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 9b9412dc7008f360c8e8ed10a654d3c8719f69d8 Merge: 58ccab9 3dbe43f Author: Ingo Molnar Date: Wed Aug 12 12:12:12 2015 +0200 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu Pull RCU changes from Paul E. McKenney: - The combination of tree geometry-initialization simplifications and OS-jitter-reduction changes to expedited grace periods. These two are stacked due to the large number of conflicts that would otherwise result. [ With one addition, a temporary commit to silence a lockdep false positive. Additional changes to the expedited grace-period primitives (queued for 4.4) remove the cause of this false positive, and therefore include a revert of this temporary commit. ] - Documentation updates. - Torture-test updates. - Miscellaneous fixes. Signed-off-by: Ingo Molnar commit ff277d4250fe715b6666219b1a3423b863418794 Author: Andrea Parri Date: Wed Aug 5 15:56:19 2015 +0200 sched/deadline: Fix comment in enqueue_task_dl() The "dl_boosted" flag is set by comparing *absolute* deadlines (c.f., rt_mutex_setprio()). Signed-off-by: Andrea Parri Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438782979-9057-2-git-send-email-parri.andrea@gmail.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4ffa08ed4cc4c5d47d197d749aae6f79af91eb73 Author: Andrea Parri Date: Wed Aug 5 15:56:18 2015 +0200 sched/deadline: Fix comment in push_dl_tasks() The comment is "misleading"; fix it by adapting a comment from push_rt_tasks(). Signed-off-by: Andrea Parri Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438782979-9057-1-git-send-email-parri.andrea@gmail.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c37067e27867db172b988cc11b9ff921175dee5 Author: Peter Zijlstra Date: Fri May 15 17:43:36 2015 +0200 sched: Change the sched_class::set_cpus_allowed() calling context Change the calling context of sched_class::set_cpus_allowed() such that we can assume the task is inactive. This allows us to easily make changes that affect accounting done by enqueue/dequeue. This does in fact completely remove set_cpus_allowed_rt() and greatly reduces set_cpus_allowed_dl(). Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dedekind1@gmail.com Cc: juri.lelli@arm.com Cc: mgorman@suse.de Cc: riel@redhat.com Cc: rostedt@goodmis.org Link: http://lkml.kernel.org/r/20150515154833.667516139@infradead.org Signed-off-by: Ingo Molnar kernel/sched/core.c | 23 +++++++++++++++++++++++ kernel/sched/deadline.c | 39 ++------------------------------------- kernel/sched/rt.c | 45 +-------------------------------------------- 3 files changed, 26 insertions(+), 81 deletions(-) commit c5b2803840817115e9b568d5054e5007ae36176b Author: Peter Zijlstra Date: Fri May 15 17:43:35 2015 +0200 sched: Make sched_class::set_cpus_allowed() unconditional Give every class a set_cpus_allowed() method, this enables some small optimization in the RT,DL implementation by avoiding a double cpumask_weight() call. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dedekind1@gmail.com Cc: juri.lelli@arm.com Cc: mgorman@suse.de Cc: riel@redhat.com Cc: rostedt@goodmis.org Link: http://lkml.kernel.org/r/20150515154833.614517487@infradead.org Signed-off-by: Ingo Molnar kernel/sched/core.c | 17 +++++++++++------ kernel/sched/deadline.c | 20 ++++++++++++-------- kernel/sched/fair.c | 1 + kernel/sched/idle_task.c | 1 + kernel/sched/rt.c | 12 ++++++++---- kernel/sched/sched.h | 2 ++ kernel/sched/stop_task.c | 1 + 7 files changed, 36 insertions(+), 18 deletions(-) commit 25834c73f93af7f0712c98ca4593691592e6b360 Author: Peter Zijlstra Date: Fri May 15 17:43:34 2015 +0200 sched: Fix a race between __kthread_bind() and sched_setaffinity() Because sched_setscheduler() checks p->flags & PF_NO_SETAFFINITY without locks, a caller might observe an old value and race with the set_cpus_allowed_ptr() call from __kthread_bind() and effectively undo it: __kthread_bind() do_set_cpus_allowed() sched_setaffinity() if (p->flags & PF_NO_SETAFFINITIY) set_cpus_allowed_ptr() p->flags |= PF_NO_SETAFFINITY Fix the bug by putting everything under the regular scheduler locks. This also closes a hole in the serialization of task_struct::{nr_,}cpus_allowed. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Mike Galbraith Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dedekind1@gmail.com Cc: juri.lelli@arm.com Cc: mgorman@suse.de Cc: riel@redhat.com Cc: rostedt@goodmis.org Link: http://lkml.kernel.org/r/20150515154833.545640346@infradead.org Signed-off-by: Ingo Molnar include/linux/kthread.h | 1 + include/linux/sched.h | 7 ------- kernel/kthread.c | 20 +++++++++++++++++--- kernel/sched/core.c | 36 ++++++++++++++++++++++++++++++++---- kernel/workqueue.c | 6 ++---- 5 files changed, 52 insertions(+), 18 deletions(-) commit 7855a35ac07a350e2cd26f09568a6d8e372be358 Author: Byungchul Park Date: Mon Aug 10 18:02:55 2015 +0900 sched: Ensure a task has a non-normalized vruntime when returning back to CFS Current code ensures that a task has a normalized vruntime when switching away from the fair class, but it does not ensure the task has a non-normalized vruntime when switching back to the fair class. This is an example breaking this consistency: 1. a task is in fair class and !queued 2. changes its class to RT class (still !queued) 3. changes its class to fair class again (still !queued) Signed-off-by: Byungchul Park Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1439197375-27927-1-git-send-email-byungchul.park@lge.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit e237882b8f83dd1a0eece1608bcb689d4f4b221b Author: Aravind Gopalakrishnan Date: Mon Aug 10 20:20:48 2015 -0500 sched/numa: Fix NUMA_DIRECT topology identification Systems which have all nodes at a distance of at most 1 hop should be identified as 'NUMA_DIRECT'. However, the scheduler incorrectly identifies it as 'NUMA_BACKPLANE'. This is because 'n' is assigned to sched_max_numa_distance but the code (mis)interprets it to mean 'number of hops'. Rik had actually used sched_domains_numa_levels for detecting a 'NUMA_DIRECT' topology: http://marc.info/?l=linux-kernel&m=141279712429834&w=2 But that was changed when he removed the hops table in the subsequent version: http://marc.info/?l=linux-kernel&m=141353106106771&w=2 Fixing the issue here. Signed-off-by: Aravind Gopalakrishnan Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Rik van Riel Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1439256048-3748-1-git-send-email-Aravind.Gopalakrishnan@amd.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 29f5f4860a8ef9407736594ec43b4fa4152ac7fa Author: Mark Brown Date: Fri Aug 7 20:01:32 2015 +0100 regulator: core: Move more deallocation into class unregister We really ought to be using the class dvice lifetime management features more than we are rather than open coding them so take a step towards that by moving some of the simplest deallocations to the dev_release() function. Signed-off-by: Mark Brown drivers/regulator/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 1768514eebfa888563049fa165449a1c1eba92d8 Author: Mark Brown Date: Fri Aug 7 21:19:26 2015 +0100 regulator: core: Reduce rdev locking region when releasing regulator When we release a regulator we need to remove references to it from the rdev which means locking the rdev. Currently we also free resources associated with the regulator inside the rdev lock but there is no need to do this, we can reduce the region the lock is held by restricting it to just actions that affect the rdev. Signed-off-by: Mark Brown drivers/regulator/core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 16eefbd1ed4ff474807b1aad50bc2f6317fcb9f4 Author: Peter Zijlstra Date: Mon Aug 3 11:29:30 2015 +0200 x86/kconfig: Enable CONFIG_JUMP_LABEL in the defconfigs Enable CONFIG_JUMP_LABEL in the defconfigs, the feature already deals with GCC not having the asm-goto feature so will not break the build on older compilers. Having it enabled generates a faster kernel at very little extra cost since we already include all the code patching code by having KPROBES enabled. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/configs/i386_defconfig | 1 + arch/x86/configs/x86_64_defconfig | 1 + 2 files changed, 2 insertions(+) commit 0ca326de7aa9cb253db9c1a3eb3f0487c8dbf912 Author: Will Deacon Date: Thu Aug 6 17:54:44 2015 +0100 locking, ARM, atomics: Define our SMP atomics in terms of _relaxed() operations By defining our SMP atomics in terms of relaxed operations, we gain a small reduction in code size and have acquire/release/fence variants generated automatically by the core code. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-9-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar arch/arm/include/asm/atomic.h | 37 ++++++++++++++------------------- arch/arm/include/asm/cmpxchg.h | 47 +++++++----------------------------------- 2 files changed, 24 insertions(+), 60 deletions(-) commit cd074aea9261784e44f292e1132830ec221802c6 Author: Will Deacon Date: Thu Aug 6 17:54:43 2015 +0100 locking, include/llist: Use linux/atomic.h instead of asm/cmpxchg.h Including an asm/ header directly is best avoided, so use linux/atomic.h instead of asm/cmpxchg.h in linux/llist.h. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-8-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar include/linux/llist.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 77e430e3e45662b696dc49aa53ea0f7ac63f2574 Author: Will Deacon Date: Thu Aug 6 17:54:42 2015 +0100 locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics The qrwlock implementation is slightly heavy in its use of memory barriers, mainly through the use of _cmpxchg() and _return() atomics, which imply full barrier semantics. This patch modifies the qrwlock code to use the more relaxed atomic routines so that we can reduce the unnecessary barrier overhead on weakly-ordered architectures. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-7-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar include/asm-generic/qrwlock.h | 13 ++++++------- kernel/locking/qrwlock.c | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 19 deletions(-) commit 2b2a85a4d3534b8884fcfa5bb52837f0e1c672bc Author: Will Deacon Date: Thu Aug 6 17:54:41 2015 +0100 locking/qrwlock: Implement queue_write_unlock() using smp_store_release() Since the following commit: 536fa402221f ("compiler: Allow 1- and 2-byte smp_load_acquire() and smp_store_release()") smp_store_release() supports byte accesses, so use that in writer unlock and remove the conditional macro override. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Waiman Long Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-6-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar arch/x86/include/asm/qrwlock.h | 10 ---------- include/asm-generic/qrwlock.h | 9 +-------- 2 files changed, 1 insertion(+), 18 deletions(-) commit f5468ffde13fc991bd4d6bdec507ffd5777865bd Author: Will Deacon Date: Thu Aug 6 17:54:40 2015 +0100 locking/lockref: Remove homebrew cmpxchg64_relaxed() macro definition cmpxchg64_relaxed() is now defined by linux/atomic.h, so we can remove our local definition from the lockref code. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-5-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar lib/lockref.c | 8 -------- 1 file changed, 8 deletions(-) commit 6d79ef2d30ee5af7315535d1e7bf6fce0008f815 Author: Will Deacon Date: Thu Aug 6 17:54:39 2015 +0100 locking, asm-generic: Add _{relaxed|acquire|release}() variants for 'atomic_long_t' This patch adds 'atomic_long_t' wrappers for the new relaxed atomic operations. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-4-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar include/asm-generic/atomic-long.h | 86 +++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 27 deletions(-) commit 586b610e43a5ad5096640312fefa6ce931738c7d Author: Will Deacon Date: Thu Aug 6 17:54:38 2015 +0100 locking, asm-generic: Rework atomic-long.h to avoid bulk code duplication We can use some (admittedly ugly) macros to generate the 32-bit and 64-bit based atomic_long implementations from the same code. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-3-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar include/asm-generic/atomic-long.h | 189 ++++++++------------------------------ 1 file changed, 40 insertions(+), 149 deletions(-) commit 654672d4ba1a6001c365833be895f9477c4d5eab Author: Will Deacon Date: Thu Aug 6 17:54:37 2015 +0100 locking/atomics: Add _{acquire|release|relaxed}() variants of some atomic operations Whilst porting the generic qrwlock code over to arm64, it became apparent that any portable locking code needs finer-grained control of the memory-ordering guarantees provided by our atomic routines. In particular: xchg, cmpxchg, {add,sub}_return are often used in situations where full barrier semantics (currently the only option available) are not required. For example, when a reader increments a reader count to obtain a lock, checking the old value to see if a writer was present, only acquire semantics are strictly needed. This patch introduces three new ordering semantics for these operations: - *_relaxed: No ordering guarantees. This is similar to what we have already for the non-return atomics (e.g. atomic_add). - *_acquire: ACQUIRE semantics, similar to smp_load_acquire. - *_release: RELEASE semantics, similar to smp_store_release. In memory-ordering speak, this means that the acquire/release semantics are RCpc as opposed to RCsc. Consequently a RELEASE followed by an ACQUIRE does not imply a full barrier, as already documented in memory-barriers.txt. Currently, all the new macros are conditionally mapped to the full-mb variants, however if the *_relaxed version is provided by the architecture, then the acquire/release variants are constructed by supplementing the relaxed routine with an explicit barrier. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman.Long@hp.com Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1438880084-18856-2-git-send-email-will.deacon@arm.com Signed-off-by: Ingo Molnar include/linux/atomic.h | 323 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 323 insertions(+) commit ba33034fffc1189d95301bd865f1c799256e72a2 Author: Christian Borntraeger Date: Tue Aug 4 09:55:48 2015 +0200 locking, compiler.h: Cast away attributes in the WRITE_ONCE() magic The kernel build bot showed a new warning triggered by commit: 76695af20c01 ("locking, arch: use WRITE_ONCE()/READ_ONCE() in smp_store_release()/smp_load_acquire()") because Sparse does not like WRITE_ONCE() accessing elements from the (sparse) RCU address space: fs/afs/inode.c:448:9: sparse: incorrect type in initializer (different address spaces) fs/afs/inode.c:448:9: expected struct afs_permits *__val fs/afs/inode.c:448:9: got void [noderef] * Solution is to force cast away the sparse attributes for the initializer of the union in WRITE_ONCE(). (And as this now gets too long, also split the macro into multiple lines.) Signed-off-by: Christian Borntraeger Signed-off-by: Peter Zijlstra (Intel) Cc: Andrey Konovalov Cc: Linus Torvalds Cc: Paul McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438674948-38310-2-git-send-email-borntraeger@de.ibm.com Signed-off-by: Ingo Molnar include/linux/compiler.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit f52609fdabb1c726f8b9fdf64df3161781aa186e Merge: 20f9ed1 41b9e9f Author: Ingo Molnar Date: Wed Aug 12 11:44:30 2015 +0200 Merge branch 'locking/arch-atomic' into locking/core, because it's ready for upstream Signed-off-by: Ingo Molnar commit 709bc871923c12b284424f9d47b99dc975ba8b29 Author: Takao Indoh Date: Tue Aug 4 18:36:55 2015 +0900 perf/x86/intel/pt: Clean up files of Intel Processor Trace This patch just cleans up some files of Intel Processor Trace, does not change its behavior. This patch removes unused definitions and replaces a constant value with a macro. Signed-off-by: Takao Indoh Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: H.Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438681015-5124-1-git-send-email-indou.takao@jp.fujitsu.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/intel_pt.h | 33 ++++++------------------------- arch/x86/kernel/cpu/perf_event_intel_pt.c | 10 +++++----- 2 files changed, 11 insertions(+), 32 deletions(-) commit c2ad6b51efc5f27d70ce952decd2a15679b83600 Author: Alexander Shishkin Date: Tue Jul 28 09:00:04 2015 +0300 perf/ring-buffer: Clarify the use of page::private for high-order AUX allocations A question [1] was raised about the use of page::private in AUX buffer allocations, so let's add a clarification about its intended use. The private field and flag are used by perf's rb_alloc_aux() path to tell the pmu driver the size of each high-order allocation, so that the driver can program those appropriately into its hardware. This only matters for PMUs that don't support hardware scatter tables. Otherwise, every page in the buffer is just a page. This patch adds a comment about the private field to the AUX buffer allocation path. [1] http://marc.info/?l=linux-kernel&m=143803696607968 Reported-by: Mathieu Poirier Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438063204-665-1-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar kernel/events/ring_buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 19b3340cf58d14decf2898fc795cc2b1fa49e79e Author: Peter Zijlstra Date: Thu Aug 6 17:26:58 2015 +0200 perf/x86: Fix MSR PMU driver Currently we only update the sysfs event files per available MSR, we didn't actually disallow creating unlisted events. Rework things such that the dectection, sysfs listing and event creation are better coordinated. Sadly it appears it's impossible to probe R/O MSRs under virt. This means we have to do the full model table to avoid listing all MSRs all the time. Tested-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Acked-by: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_msr.c | 168 +++++++++++++++++------------------ 1 file changed, 84 insertions(+), 84 deletions(-) commit 3d325bf0da91ca5d22f2525a72308dafd4fc0977 Merge: f1d800b d7a702f Author: Ingo Molnar Date: Wed Aug 12 11:39:19 2015 +0200 Merge branch 'perf/urgent' into perf/core, to pick up fixes before applying new changes Signed-off-by: Ingo Molnar commit 8de4efdaf3db897022fd20cc7b9168678417926c Author: Hans de Goede Date: Sat Aug 8 17:58:41 2015 +0200 mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs Add a cell for the usb power_supply part of the axp20x PMICs. Note that this cell is only for the usb power_supply part and not the ac-power / battery-charger / rtc-backup-bat-charger bits. Depending on the board each of those must be enabled / disabled separately in devicetree as most boards do not use all 4. So in dt each one needs its own child-node of the axp20x node. Another reason for using separate child nodes for each is so that other devicetree nodes can have a power-supply property with a phandle referencing a node representing a single power-supply. The decision to use a separate devicetree node for each is reflected on the kernel side by each getting its own mfd-cell / platform_device and platform-driver. Note this commit also makes some whitespace changes to the intialization of existing cells in axp20x_cells, these are pure whitespace changes, functionally nothing changes. Signed-off-by: Bruno Prémont Signed-off-by: Hans de Goede Acked-by: Maxime Ripard Signed-off-by: Lee Jones drivers/mfd/axp20x.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 553ed4b5dff66dbb10c20599e493b72ec6af72ab Author: Bruno Prémont Date: Sat Aug 8 17:58:40 2015 +0200 mfd: axp20x: Add missing registers, and mark more registers volatile Add an extra set of registers which is necessary tu support the PMICs battery charger function, and mark registers which contain status bits, gpio status, and adc readings as volatile. Signed-off-by: Bruno Prémont Signed-off-by: Hans de Goede Acked-by: Maxime Ripard Signed-off-by: Lee Jones drivers/mfd/axp20x.c | 8 +++++++- include/linux/mfd/axp20x.h | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) commit 3762aede11e516b7a392afdc1e070171e6f6cd00 Author: Charles Keepax Date: Tue Aug 11 09:34:31 2015 +0100 mfd: arizona: Fixup some formatting/white space errors Clear out a few checkpatch warnings and white space errors. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 05743b3a09e905b4b09681639fa386feb6a96b5a Author: Keerthy Date: Fri Aug 7 10:37:19 2015 +0530 ARM: dts: AM4372: Add the am4372-rtc compatible string am4372-rtc string was already part of dts, introduced to identify the rtc specific to am4372 family of SoCs. It was removed in one of the previous patches. Adding back the same with appropriate documentation. Signed-off-by: Keerthy Signed-off-by: Tony Lindgren Documentation/devicetree/bindings/rtc/rtc-omap.txt | 1 + arch/arm/boot/dts/am4372.dtsi | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) commit aced04843278662c9058a8ff72619af9a4d84065 Merge: ed05637 dff8a20 Author: Tony Lindgren Date: Wed Aug 12 01:38:08 2015 -0700 Merge branch 'for-4.3/ti-clk-dt' of https://github.com/t-kristo/linux-pm into omap-for-v4.3/dt-v2 commit bea047e075784471461c4338d0ffa45cb1378d67 Author: Sjoerd Simons Date: Tue Jul 28 11:52:42 2015 +0200 clk: rockchip: Fix SPIF special clock definition Neither spdif_src nor spdif_pll exists, judging by the vendor kernel in both cases spdif_pre was meant. This brings the naming in line and hierachy in line with that of sclk_i2s0. Also allow sclk_spdif and spdif_frac to change their parents rate as that the upstream dividers are purely there to feed sclk_spdif Signed-off-by: Sjoerd Simons Reviewed-by: Heiko Stuebner Signed-off-by: Michael Turquette drivers/clk/rockchip/clk-rk3188.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d24d2ec60f7b52c0eca1c52f821777329e5ffac1 Author: Eric Anholt Date: Mon Jul 20 12:33:04 2015 -0700 clk: bcm2835: Drop the fixed sys_pclk. Nothing uses it, and I can't find any evidence that anything ever has. Its role is now filled by the core clock in the firmware driver. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Michael Turquette drivers/clk/clk-bcm2835.c | 5 ----- 1 file changed, 5 deletions(-) commit e6500344edbbc405cde8d20a9c0d165a4efa9142 Author: Heiko Stuebner Date: Wed Apr 22 22:53:05 2015 +0200 clk: track the orphan status of clocks and their children While children of orphan clocks are not carried in the orphan-list itself, they're nevertheless orphans in their own right as they also don't have an input-rate available. To ease tracking if a clock is an orphan or has an orphan in its parent path introduce an orphan field into struct clk and update it and the fields in child-clocks when a clock gets added or removed from the orphan-list. Suggested-by: Stephen Boyd Signed-off-by: Heiko Stuebner Cc: Boris Brezillon Cc: Alex Elder Cc: Alexandre Belloni Cc: Stephen Warren Cc: Max Filippov Cc: kernel@pengutronix.de Cc: Zhangfei Gao Cc: Santosh Shilimkar Cc: Chao Xie Cc: Jason Cooper Cc: Stefan Wahren Cc: Andrew Bresticker Cc: Robert Jarzmik Cc: Georgi Djakov Cc: Sylwester Nawrocki Cc: Geert Uytterhoeven Cc: Barry Song Cc: Dinh Nguyen Cc: Viresh Kumar Cc: Gabriel FERNANDEZ Cc: emilio@elopez.com.ar Cc: Peter De Schrijver Cc: Tero Kristo Cc: Ulf Hansson Cc: Pawel Moll Cc: Michal Simek [sboyd@codeaurora.org: s/clk/core/ in new function] Signed-off-by: Stephen Boyd drivers/clk/clk.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) commit ee38b2698ae234c03f65ccafa1811d4dda3c316d Author: Maxime Ripard Date: Fri Jul 31 19:46:22 2015 +0200 clk: sunxi: Add a simple gates driver The gates were handled with a common piece of framework that was registering all gates array, that was not using the CLK_OF_DECLARE logic, and was not using clock-indices but some private masks that were pretty much equivalent. Move this code in a new driver that handles all the gates array and solves both these issues. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette [sboyd@codeaurora.org: Include clk.h for consumer API usage] Signed-off-by: Stephen Boyd drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk-simple-gates.c | 158 +++++++++++++++++++++++++++++++ drivers/clk/sunxi/clk-sunxi.c | 177 ----------------------------------- 3 files changed, 159 insertions(+), 177 deletions(-) commit 06f282757acb92b5bdb208bebd38a4785fae49bd Author: Maxime Ripard Date: Fri Jul 31 19:46:21 2015 +0200 ARM: sun9i: Wrap the clock-indices Wrap the clock-indices to match the wrapping of the clock-output-names in order to make it easier to match indices to names. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette arch/arm/boot/dts/sun9i-a80.dtsi | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) commit c0a6e360a42a327c1b270d8e0f625175d4ecb500 Author: Maxime Ripard Date: Fri Jul 31 19:46:20 2015 +0200 ARM: sun8i: Add clock indices The A23 and A33 gates have a non continuous set of clock IDs that are valid. Add the clock-indices property to the DT to express this. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette arch/arm/boot/dts/sun8i-a23-a33.dtsi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 6bfe30b2fd405052af0172b276f64be8dce4ede9 Author: Maxime Ripard Date: Fri Jul 31 19:46:19 2015 +0200 ARM: sun7i: Add clock indices The A20 gates have a non continuous set of clock IDs that are valid. Add the clock-indices property to the DT to express this. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette arch/arm/boot/dts/sun7i-a20.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit dbbb69223c603a08a176b1f3242e7d47a030d94e Author: Maxime Ripard Date: Fri Jul 31 19:46:18 2015 +0200 ARM: sun6i: Add clock indices The A31 gates have a non continuous set of clock IDs that are valid. Add the clock-indices property to the DT to express this. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette arch/arm/boot/dts/sun6i-a31.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit dd4de433aa7110c83ba12d1d70d35f4cf6aec543 Author: Maxime Ripard Date: Fri Jul 31 19:46:17 2015 +0200 ARM: sun5i: Add clock indices The A10s and A13 gates have a non continuous set of clock IDs that are valid. Add the clock-indices property to the DT to express this. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette arch/arm/boot/dts/sun5i-a10s.dtsi | 23 +++++++++++++++++++++-- arch/arm/boot/dts/sun5i-a13.dtsi | 18 +++++++++++++++++- arch/arm/boot/dts/sun5i.dtsi | 1 + 3 files changed, 39 insertions(+), 3 deletions(-) commit a38540068f6eaf2420a281185aab1b49bea3759b Author: Maxime Ripard Date: Fri Jul 31 19:46:16 2015 +0200 ARM: sun4i: Add clock indices The A10 gates have a non continuous set of clock IDs that are valid. Add the clock-indices property to the DT to express this. Signed-off-by: Maxime Ripard Signed-off-by: Michael Turquette arch/arm/boot/dts/sun4i-a10.dtsi | 69 ++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 17 deletions(-) commit 5c489ccad8bff90a12de245995d6f146e7a6ba01 Merge: e8f35aa 3713e3f Author: Michael Turquette Date: Tue Aug 11 10:44:24 2015 -0700 Merge tag 'imx-clk-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-next The i.MX clock updates for 4.3: - Provide a better IPU clock initial settings on imx6dl for getting HDMI and LVDS at the same time. - Add clock driver support for i.MX6UL SoC - Add a second clock for RTC device on i.MX31 and i.MX35 commit e69948a0a5309f3ef5715cb4ca7a9bd77d64e2cf Author: Alexander Duyck Date: Tue Aug 11 13:35:01 2015 -0700 net: Document xfrm4_gc_thresh and xfrm6_gc_thresh This change adds documentation for xfrm4_gc_thresh and xfrm6_gc_thresh based on the comments in commit eeb1b73378b56 ("xfrm: Increase the garbage collector threshold"). Signed-off-by: Alexander Duyck Signed-off-by: Steffen Klassert Documentation/networking/ip-sysctl.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 9afac933433ca71e0f78958a1286a8d3b9de5582 Author: Anshuman Khandual Date: Thu Aug 6 18:35:07 2015 +0530 powerpc/prom: Use DRCONF flags while processing detected LMBs Replace hard coded values with existing DRCONF flags while procesing detected LMBs from the device tree. Does not change any functionality. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/kernel/prom.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 8218a3031c204b20582ba689aaf3bb6d318779d3 Author: Anshuman Khandual Date: Wed Jul 29 12:40:04 2015 +0530 powerpc/xmon: Drop the valid variable completely in dump_segments() The value of 'valid' is always zero when 'esid' is zero, and if 'esid' is non-zero then the value of 'valid' is irrelevant because we are using logical or in the if expression. In fact 'valid' can be dropped completely from dump_segments() by simply doing the check with SLB_ESID_V directly in the if. Signed-off-by: Anshuman Khandual [mpe: Rewrite change log] Signed-off-by: Michael Ellerman arch/powerpc/xmon/xmon.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 9c61f7a0ad6fdff85b0c4c648e0c94947ea05c76 Author: Anshuman Khandual Date: Wed Jul 29 12:40:03 2015 +0530 powerpc/prom: Simplify the logic to fetch SLB size The code to fetch the SLB size from the device tree wants to first look for "slb-size" and then if that's not found "ibm,slb-size". We can simplify the code by looking for the properties and then if we find one of them we set mmu_slb_size. We also change the function name from check_cpu_slb_size() to init_mmu_slb_size() as the function doesn't check anything, it only initialises mmu_slb_size. Signed-off-by: Anshuman Khandual [mpe: Rewrite change log] Signed-off-by: Michael Ellerman arch/powerpc/kernel/prom.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 79d0be7407955a268bcee5a33e338e14fdc74bfa Author: Anshuman Khandual Date: Wed Jul 29 12:40:02 2015 +0530 powerpc/slb: Add documentation on runtime patching of SLB encoding This patch adds some documentation to patch_slb_encoding() explaining how it works. Signed-off-by: Anshuman Khandual [mpe: Update change log and mention the signedness of the immediate] Signed-off-by: Michael Ellerman arch/powerpc/mm/slb.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit 2be682af48e8236558da702fe67e178cfe7524a1 Author: Anshuman Khandual Date: Wed Jul 29 12:39:59 2015 +0530 powerpc/slb: Rename all the 'slot' occurrences to 'entry' The SLB code uses 'slot' and 'entry' interchangeably, change it to always use 'entry'. Signed-off-by: Anshuman Khandual [mpe: Rewrite change log] Signed-off-by: Michael Ellerman arch/powerpc/mm/slb.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 752b8adec4a776b4fdf01cf9443921bb3ba38779 Author: Anshuman Khandual Date: Wed Jul 29 12:39:58 2015 +0530 powerpc/slb: Remove a duplicate extern variable This patch just removes one redundant entry for one extern variable 'slb_compare_rr_to_size' from the scope. This patch does not change any functionality. Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/mm/slb.c | 1 - 1 file changed, 1 deletion(-) commit 83c3fee7e78f5a937b734f1ba954c5cdcb2be755 Author: Daniel Axtens Date: Fri Aug 7 13:18:20 2015 +1000 cxl: sparse: Silence iomem warning in debugfs file creation An IO address, tagged with __iomem, is passed to debugfs_create_file as private data. This requires that it be cast to void *. The cast drops the __iomem annotation and so creates a sparse warning: drivers/misc/cxl/debugfs.c:51:57: warning: cast removes address space of expression The address space marker is added back in the file operations (fops_io_u64). Silence the warning with __force. Signed-off-by: Daniel Axtens Acked-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d6b040e73387570521da4aedfd03d2643acdae7 Author: Daniel Axtens Date: Fri Aug 7 13:18:18 2015 +1000 cxl: sparse: Make declarations static A few declarations were identified by sparse as needing to be static: drivers/misc/cxl/irq.c:408:6: warning: symbol 'afu_irq_name_free' was not declared. Should it be static? drivers/misc/cxl/irq.c:467:6: warning: symbol 'afu_register_hwirqs' was not declared. Should it be static? drivers/misc/cxl/file.c:254:6: warning: symbol 'afu_compat_ioctl' was not declared. Should it be static? drivers/misc/cxl/file.c:399:30: warning: symbol 'afu_master_fops' was not declared. Should it be static? Make them static. Signed-off-by: Daniel Axtens Acked-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/file.c | 4 ++-- drivers/misc/cxl/irq.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit aa62efff65ba572814511efa68cb158fe9e960c4 Author: David Howells Date: Tue Aug 11 13:29:48 2015 +0100 MAINTAINERS: The keyrings mailing list has moved The keyrings mailing list has moved to keyrings@vger.kernel.org Signed-off-by: David Howells Signed-off-by: James Morris MAINTAINERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 60c0745a80be075bbd4e0925e4b740b3e588a445 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:13 2015 +0200 ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 4b31bad51f83bcce039e43f1659ffcb4bff454dc Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:12 2015 +0200 ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 797a0626e08ca4af539cd4888ebbc8c5aacc993d Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:11 2015 +0200 ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. Notable exceptions are the "display" and "sound" nodes, which represent multiple SoC devices, each having their own MSTP clocks. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 88 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 8 deletions(-) commit 484adb005886b1db79050afc7074d2356618b0c2 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:10 2015 +0200 ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. Notable exceptions are the "display" and "sound" nodes, which represent multiple SoC devices, each having their own MSTP clocks. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 86 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 9 deletions(-) commit 33c3632a3f692d82ee0d080350bcd6d1c4cd151f Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:09 2015 +0200 ARM: shmobile: r8a7779 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7779.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit a670f3667a0ad53eef1f66fde41acca890462ec9 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:08 2015 +0200 ARM: shmobile: r8a7778 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. A notable exception is the "sound" node, which represents multiple SoC devices, each having their own MSTP clocks. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7778.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit cbe1f83818c6e2c05fca5045fcc4807177988d61 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:07 2015 +0200 ARM: shmobile: r7s72100 dtsi: Add CPG/MSTP Clock Domain Add an appropriate "#power-domain-cells" property to the cpg_clocks device node, to create the CPG/MSTP Clock Domain. Add "power-domains" properties to all device nodes for devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock. This applies to most on-SoC devices, which have a one-to-one mapping from SoC device to DT device node. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman arch/arm/boot/dts/r7s72100.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 3f3f0ea0afe031ca20e48a212f4faa00f9920450 Merge: 94bdc48 f04b486 Author: Simon Horman Date: Wed Aug 12 11:15:19 2015 +0900 Merge branch 'clk-for-v4.3' into dt-for-v4.3 commit f04b486d34ac6bab2aaa3988ee098b2bad3950de Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:06 2015 +0200 clk: shmobile: rz: Add CPG/MSTP Clock Domain support Add Clock Domain support to the RZ Clock Pulse Generator (CPG) driver using the generic PM Domain. This allows to power-manage the module clocks of SoC devices that are part of the CPG/MSTP Clock Domain using Runtime PM, or for system suspend/resume. SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock should be tagged in DT with a proper "power-domains" property. Signed-off-by: Geert Uytterhoeven Acked-by: Stephen Boyd Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman .../bindings/clock/renesas,rz-cpg-clocks.txt | 29 ++++++++++++++++++++-- arch/arm/mach-shmobile/Kconfig | 1 + drivers/clk/shmobile/clk-rz.c | 3 +++ 3 files changed, 31 insertions(+), 2 deletions(-) commit 63e05d9365dc25ae71bdde436b27c49daedf1977 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:05 2015 +0200 clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support Add Clock Domain support to the R-Car Gen2 Clock Pulse Generator (CPG) driver using the generic PM Domain. This allows to power-manage the module clocks of SoC devices that are part of the CPG/MSTP Clock Domain using Runtime PM, or for system suspend/resume. SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock should be tagged in DT with a proper "power-domains" property. Signed-off-by: Geert Uytterhoeven Acked-by: Stephen Boyd Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman .../clock/renesas,rcar-gen2-cpg-clocks.txt | 26 ++++++++++++++++++++-- drivers/clk/shmobile/clk-rcar-gen2.c | 2 ++ 2 files changed, 26 insertions(+), 2 deletions(-) commit b31fc90c14d9e584ac19983686cecab3e0764289 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:04 2015 +0200 clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support Add Clock Domain support to the R-Car H1 Clock Pulse Generator (CPG) driver using the generic PM Domain. This allows to power-manage the module clocks of SoC devices that are part of the CPG/MSTP Clock Domain using Runtime PM, or for system suspend/resume. SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock should be tagged in DT with a proper "power-domains" property. Also update the reg property in the DT binding doc example to match the actual dtsi, which uses #address-cells and #size-cells == 1, not 2. Signed-off-by: Geert Uytterhoeven Acked-by: Stephen Boyd Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman .../bindings/clock/renesas,r8a7779-cpg-clocks.txt | 30 +++++++++++++++++++--- drivers/clk/shmobile/clk-r8a7779.c | 2 ++ 2 files changed, 28 insertions(+), 4 deletions(-) commit 8bc964aa25e56b7445ffebffccd455f959370a16 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:03 2015 +0200 clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support Add Clock Domain support to the R-Car M1A Clock Pulse Generator (CPG) driver using the generic PM Domain. This allows to power-manage the module clocks of SoC devices that are part of the CPG/MSTP Clock Domain using Runtime PM, or for system suspend/resume. SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock should be tagged in DT with a proper "power-domains" property. Signed-off-by: Geert Uytterhoeven Acked-by: Stephen Boyd Reviewed-by: Ulf Hansson Signed-off-by: Simon Horman .../bindings/clock/renesas,r8a7778-cpg-clocks.txt | 29 +++++++++++++++++++--- arch/arm/mach-shmobile/Kconfig | 1 + drivers/clk/shmobile/clk-r8a7778.c | 2 ++ 3 files changed, 29 insertions(+), 3 deletions(-) commit 752b5ed5f6998e118626feea7375782c4cf5aad6 Author: Geert Uytterhoeven Date: Tue Aug 4 14:28:02 2015 +0200 clk: shmobile: Add CPG/MSTP Clock Domain support Add Clock Domain support to the Clock Pulse Generator (CPG) Module Stop (MSTP) Clocks driver using the generic PM Domain. This allows to power-manage the module clocks of SoC devices that are part of the CPG/MSTP Clock Domain using Runtime PM, or for system suspend/resume. SoC devices that are part of the CPG/MSTP Clock Domain and can be power-managed through an MSTP clock should be tagged in DT with a proper "power-domains" property. The CPG/MSTP Clock Domain code will scan such devices for clocks that are suitable for power-managing the device, by looking for a clock that is compatible with "renesas,cpg-mstp-clocks". Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Stephen Boyd Reviewed-by: Ulf Hansson Reviewed-by: Kevin Hilman Signed-off-by: Simon Horman drivers/clk/shmobile/clk-mstp.c | 87 +++++++++++++++++++++++++++++++++++++++++ include/linux/clk/shmobile.h | 12 ++++++ 2 files changed, 99 insertions(+) commit 2b347c6494cbc6bfdc81b5201b8aa34afb2c3500 Author: Krzysztof Kozlowski Date: Wed Aug 12 07:47:17 2015 +0900 ARM: exynos_defconfig: Enable cpufreq-dt driver With the latest patches the cpufreq-dt can be used on multiple Exynos SoCs: 3250, 4210, 4212, 4412 and 5250. Enable it along with default ondemand governor to conserve the energy, reduce temperature while maintaining acceptable performance. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit c3e71f4b5f580b43e0eb3be18059c8844d8713e7 Author: Javier Martinez Canillas Date: Thu Jul 16 08:39:42 2015 +0200 ARM: multi_v7_defconfig: Enable max77802 regulator The Exynos5420 based Peach Pit and Exynos5800 based Peach Pi Chromebooks use the Maxim max77802 Power Management IC (PMIC). This PMIC has besides other devices, a set of regulators that can be controller over I2C. Commit f3caa529c6f5 ("ARM: multi_v7_defconfig: Enable max77802 regulator, rtc and clock drivers") was supposed to enable the config option for the regulator driver as a module but the final version that landed did not include this. The commit was modified and the REGULATOR_MAX77802 removed since it was thought to be useless. Unfortunately that's not the case for the mentioned reason above so this patch enables the needed Kconfig option. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski [kgene@kernel.org: fixed ordering according to make savedefconfig] Signed-off-by: Kukjin Kim arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit ca05189716c2ce02c60303e9c1228a61d1cb9542 Author: Mauro Carvalho Chehab Date: Tue Aug 11 19:24:05 2015 -0300 [media] c8sectpfe: use a new Kconfig menu for DVB platform drivers While this is the first DVB platform drivers, let's keep the Kconfig options well organized, adding it on its own DVB menu. Of course, it should depend on MEDIA_DIGITAL_TV_SUPPORT, as this enables all DVB-related menus. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7d0ddc91c854f1f42fd7165e259b3573f53c1d73 Author: Mauro Carvalho Chehab Date: Tue Aug 11 19:08:59 2015 -0300 [media] tda10071: use div_s64() when dividing a s64 integer Otherwise, it will break on 32 bits archs. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53cc7c9043f0a68a66e53623b114c86051a7250c Author: Mauro Carvalho Chehab Date: Tue Aug 11 18:58:31 2015 -0300 [media] c8sectpfe: fix pinctrl dependencies compiling on some archs fail with: drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c:540:8: error: implicit declaration of function ‘pinctrl_select_state’ [-Werror=implicit-function-declaration] ret = pinctrl_select_state(fei->pinctrl, tsin->pstate); That's due the need of including pinctrl.h header and because CONFIG_PINCTRL needs to be true. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/Kconfig | 3 ++- drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 9f61668073a8d80650622e792aff876db9ca23c6 Author: Daniel Wagner Date: Mon Aug 10 14:35:46 2015 +0200 tracing: Allow triggers to filter for CPU ids and process names By extending the filter rules by more generic fields we can write triggers filters like echo 'stacktrace if cpu == 1' > \ /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger or echo 'stacktrace if comm == sshd' > \ /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger CPU and COMM are not part of struct trace_entry. We could add the two new fields to ftrace_common_field list and fix up all depending sides. But that looks pretty ugly. Another thing I would like to avoid that the 'format' file contents changes. All this can be avoided by introducing another list which contains non field members of struct trace_entry. Link: http://lkml.kernel.org/r/1439210146-24707-1-git-send-email-daniel.wagner@bmw-carit.de Signed-off-by: Daniel Wagner Signed-off-by: Steven Rostedt kernel/trace/trace_events.c | 25 ++++++++++++++++++ kernel/trace/trace_events_filter.c | 54 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 77 insertions(+), 2 deletions(-) commit 2696f495bdc046d84da6c909a1e7f535138a2a62 Author: Shraddha Barke Date: Thu Aug 6 06:54:22 2015 -0300 [media] Staging: media: lirc: use USB API functions rather than constants This patch introduces the use of the function usb_endpoint_type. The Coccinelle semantic patch that makes these changes is as follows: @@ struct usb_endpoint_descriptor *epd; @@ - (epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) + usb_endpoint_type(epd) Signed-off-by: Shraddha Barke Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_imon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7229f8c143dd932719530fb2fe4883f011917554 Author: pradheep Date: Mon Aug 3 04:56:31 2015 -0300 [media] staging:media:lirc Remove the extra braces in if statement of lirc_imon This patche removes the extra braces found in drivers/staging/media/lirc/lirc_imon.c to fix the warning thrown by checkpatch.pl Signed-off-by: Pradheep Shrinivasan Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_imon.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 73c8f0cbb04ab6bb549d74324fdc2b8b49330724 Author: Kishon Vijay Abraham I Date: Tue Jul 28 19:09:10 2015 +0530 ARM: dts: am57xx-evm: Add 'gpios' property with gpio2_8 gpio2_8 is connected to the PCIe_RESETn line and it has to be driven low to reset the PCIe cards. Add gpios property to PCIe DT node. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Bjorn Helgaas Acked-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 4 ++++ arch/arm/boot/dts/dra7.dtsi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 5473387b9382a35967d1fcd550482efa3a31d44f Author: Zahari Doychev Date: Mon Aug 3 08:57:19 2015 -0300 [media] coda: drop zero payload bitstream buffers The buffers with zero payload are now dumped in coda_fill_bitstream and not passed to coda_bitstream_queue. This avoids unnecessary fifo addition and buffer sequence counter increment. Signed-off-by: Zahari Doychev Acked-by: Philipp Zabel Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 78bdcad05ea17fa1fe4644324b877162b1df4e16 Author: Kishon Vijay Abraham I Date: Tue Jul 28 19:09:09 2015 +0530 PCI: dra7xx: Add support to make GPIO drive PERST# line The PERST# line in am57x-evm is connected to a GPIO line and PERST# should be driven high to indicate the clocks are stable (As per Figure 2-10: Power Up of the PCIe CEM spec 3.0). Add support to make GPIO drive PERST# line. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Bjorn Helgaas Documentation/devicetree/bindings/pci/ti-pci.txt | 3 +++ drivers/pci/host/pci-dra7xx.c | 24 ++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit efb4b8b60d79f52a72e3698aa14e6ad2ad25db34 Author: Javier Martinez Canillas Date: Thu Jul 30 13:18:36 2015 -0300 [media] staging: media: lirc: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_zilog.c | 1 + 1 file changed, 1 insertion(+) commit ed8d1cf07cb16dacc5414cb46a5a48517c9b98f9 Author: Javier Martinez Canillas Date: Thu Jul 30 13:18:29 2015 -0300 [media] Export I2C module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ir-kbd-i2c.c | 1 + drivers/media/i2c/s5k6a3.c | 1 + 2 files changed, 2 insertions(+) commit 389c7094ec241ee8ebe358ba10fe392018692c8c Author: Kishon Vijay Abraham I Date: Fri Jul 31 17:55:12 2015 +0530 PCI: dra7xx: Clear MSE bit during suspend so clocks will idle DRA7xx requires the MSE bit to be cleared to set the master in standby mode. (In DRA7xx TRM_vE, section 24.9.4.5.2.2.1 PCIe Controller Master Standby Behavior advises to use the clearing of the local MSE bit to set the master in standby. Without this some of the clocks do not idle). Clear the MSE bit on suspend and enable it on resume. Clearing MSE bit is required to get clocks to be idled after suspend. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Sekhar Nori Signed-off-by: Bjorn Helgaas Reviewed-by: Jingoo Han drivers/pci/host/pci-dra7xx.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit e52eb445ea1d97bf7fb92d2297e487a305392136 Author: Kishon Vijay Abraham I Date: Fri Jul 31 17:55:11 2015 +0530 PCI: dra7xx: Add PM support Add PM support to pci-dra7xx so PCI clocks can be disabled during suspend and enabled during resume without affecting PCI functionality. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Bjorn Helgaas Reviewed-by: Jingoo Han drivers/pci/host/pci-dra7xx.c | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 0e2bdb0e7abf4b5170874e415ec42df547916dd3 Author: Kishon Vijay Abraham I Date: Fri Jul 31 17:55:10 2015 +0530 PCI: dra7xx: Disable pm_runtime on get_sync failure Fix the error handling when pm_runtime_get_sync() fails. If pm_runtime_get_sync() fails, call pm_runtime_disable() so there are no unbalanced pm_runtime_enable() calls. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Bjorn Helgaas Reviewed-by: Jingoo Han drivers/pci/host/pci-dra7xx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 05aa7d6a72c1fca809e4d8bfdc5fa202cb8bed37 Author: Hauke Mehrtens Date: Sat Jul 25 21:15:24 2015 +0200 PCI: iproc: Allow BCMA bus driver to be built as module Change CONFIG_PCIE_IPROC_BCMA to tristate to make it possible to build this driver as a module. Signed-off-by: Hauke Mehrtens Signed-off-by: Bjorn Helgaas Acked-by: Ray Jui drivers/pci/host/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95e16587ccd0f330e349360de048ebd4432d4b2c Author: Alex Williamson Date: Mon Aug 10 12:32:04 2015 -0600 PCI: Add ACS quirks for Intel I219-LM/V The Intel 100-series chipset now includes the integrated Ethernet as part of a multifunction package. The Ethernet function does not include native ACS support, but Intel confirms that the device is not capable of peer-to- peer within the package. We can therefore quirk it to expose the isolation. Signed-off-by: Alex Williamson Signed-off-by: Bjorn Helgaas Acked-by: John Ronciak drivers/pci/quirks.c | 3 +++ 1 file changed, 3 insertions(+) commit 3e14675335a15e1a91573837a15ff3bbb50bc14f Author: Rob Herring Date: Mon Jul 27 15:55:21 2015 -0500 PCI: Kill off set_irq_flags() usage set_irq_flags is ARM-specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions, and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE, and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Signed-off-by: Bjorn Helgaas Acked-by: Jingoo Han CC: Kishon Vijay Abraham I CC: Murali Karicheri CC: Thierry Reding CC: Stephen Warren CC: Alexandre Courbot CC: Jingoo Han CC: Pratyush Anand CC: Simon Horman CC: Michal Simek CC: "Sören Brinkmann" drivers/pci/host/pci-dra7xx.c | 1 - drivers/pci/host/pci-keystone-dw.c | 2 -- drivers/pci/host/pci-tegra.c | 1 - drivers/pci/host/pci-xgene-msi.c | 1 - drivers/pci/host/pcie-designware.c | 1 - drivers/pci/host/pcie-rcar.c | 1 - drivers/pci/host/pcie-xilinx.c | 2 -- 7 files changed, 9 deletions(-) commit ea9eb698b2f59e16fbf9f480a9b35ddfb3c3a789 Author: Alexander Aring Date: Tue Aug 11 21:44:10 2015 +0200 documentation: networking: add 6lowpan documentation This patch adds a 6lowpan.txt into the networking documentation directory. Currently this documentation describes how the lowpan private data of net devices will be handled. Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Suggested-by: Jukka Rissanen Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann Documentation/networking/6lowpan.txt | 50 ++++++++++++++++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 51 insertions(+) commit 4ae935c127f701bc06afd0d5567e17511a6d25e8 Author: Alexander Aring Date: Tue Aug 11 21:44:09 2015 +0200 6lowpan: move module_init into core functionality This patch moves module_init of 6lowpan module into core functionality of 6lowpan module. To load the ipv6 module at probing of the 6lowpan module should be core functionality. Loading next header compression modules is iphc specific. Nevertheless we only support IPHC for the generic 6LoWPAN branch right now so we can put it into the core functionality. If possible new compression formats are introduced nhc should load only when iphc is build. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/core.c | 20 ++++++++++++++++++++ net/6lowpan/iphc.c | 19 ------------------- 2 files changed, 20 insertions(+), 19 deletions(-) commit b72f6f51dc5abce94c1b5ee0186e9407ea0f919f Author: Alexander Aring Date: Tue Aug 11 21:44:08 2015 +0200 6lowpan: add generic 6lowpan netdev private data This patch introduced the 6lowpan netdev private data struct. We name it lowpan_priv and it's placed at the beginning of netdev private data. All lowpan interfaces should allocate this room at first of netdev private data. 6LoWPAN LL private data can be allocate by additional netdev private data, e.g. dev->priv_size should be "sizeof(struct lowpan_priv) + sizeof(LL_LOWPAN_PRIVATE_DATA)". Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/6lowpan.h | 23 +++++++++++++++++++++++ net/6lowpan/Makefile | 2 +- net/6lowpan/core.c | 20 ++++++++++++++++++++ net/bluetooth/6lowpan.c | 9 ++++++--- net/ieee802154/6lowpan/6lowpan_i.h | 3 ++- net/ieee802154/6lowpan/core.c | 4 +++- 6 files changed, 55 insertions(+), 6 deletions(-) commit a42bbba5afd8613374ed043af3b3eda7e0e0e6bb Author: Alexander Aring Date: Tue Aug 11 21:44:07 2015 +0200 Bluetooth: 6lowpan: change netdev_priv to lowpan_dev The usually way to get the btle lowpan private data is to use the introduced lowpan_dev inline function. This patch will cleanup by using lowpan_dev consequently. Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 118612fb91657f041f47d7a29d09e02a86a62ed7 Author: Frederic Danis Date: Tue Aug 11 16:35:38 2015 +0200 Bluetooth: hci_bcm: Add suspend/resume PM functions Add reference to hci_uart structure to bcm_device. This allows suspend/resume callbacks to manage UART flow control. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 67 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) commit ae056908862bf1ec8d56bc365280f3dab7941886 Author: Frederic Danis Date: Tue Aug 11 16:35:37 2015 +0200 Bluetooth: hci_bcm: Retrieve UART speed from ACPI Parse platform_device's ACPI to retrieve UART init speed. When BCM device is open, check if its TTY has same parent as one of the platform devices saved. If yes, use platform_device's init speed. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 9e6080936c3e507da60492a8a606bdd1164baa81 Author: Frederic Danis Date: Tue Aug 11 16:35:36 2015 +0200 net: rfkill: gpio: Remove BCM2E39 support Power management support for BCM2E39 is now performed in Bluetooth BCM UART driver. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann net/rfkill/rfkill-gpio.c | 1 - 1 file changed, 1 deletion(-) commit 0395ffc1ee0509df11ad830772c22d13627e02ec Author: Frederic Danis Date: Tue Aug 11 16:35:35 2015 +0200 Bluetooth: hci_bcm: Add PM for BCM devices Retrieve "shutdown" and "device_wakeup" GPIOs from ACPI. Set device off during platform device enumeration. Set device on only when attached. As driver can be unbound we need to check if the bcm_device still exists before calling GPIO's functions, this is protected using device_list_lock. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/hci_bcm.c | 216 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 214 insertions(+), 2 deletions(-) commit 7612cf97ec8533b361529fc864508d1caaf47a87 Author: Mauro Carvalho Chehab Date: Tue Aug 11 16:13:54 2015 -0300 [media] c8sectpfe: don't go past channel_data array As reported by smatch: drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c:365 find_channel() error: buffer overflow 'fei->channel_data' 8 <= 63 It seems that a cut-and-paste type of error occurred here: the channel_data array size is C8SECTPFE_MAX_TSIN_CHAN, and not C8SECTPFE_MAXCHANNEL. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 409e9eff727295b93a5dde51988a6f8646e5aa6b Author: Mauro Carvalho Chehab Date: Tue Aug 11 16:09:21 2015 -0300 [media] c8sectpfe: Allow compiling it with COMPILE_TEST While it won't work, it is good to allow it to build with COMPILE_TEST, as we can check if other patches would break compilation for this driver. Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/c8sectpfe/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 95d66b161630c9fd26324262732b3854e497a802 Author: Peter Griffin Date: Thu Jul 30 14:09:01 2015 -0300 [media] MAINTAINERS: Add c8sectpfe driver directory to STi section Add the new c8sectpfe demux driver to the STi section of the MAINTAINERS file. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 850a3f7d5911bbbdf3eedf2db9083546d49ea806 Author: Peter Griffin Date: Thu Jul 30 14:09:00 2015 -0300 [media] c8sectpfe: Add Kconfig and Makefile for the driver This patch adds the Kconfig and Makefile for the c8sectpfe driver so it will be built. It also selects additional demodulator and tuners which are required by the supported NIM cards. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 4 +++- drivers/media/platform/Makefile | 1 + drivers/media/platform/sti/c8sectpfe/Kconfig | 28 +++++++++++++++++++++++++++ drivers/media/platform/sti/c8sectpfe/Makefile | 9 +++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) commit 03ad477615c98239cfa41a28c1c38a9a6d6ba291 Author: Peter Griffin Date: Thu Jul 30 14:08:59 2015 -0300 [media] c8sectpfe: Add c8sectpfe debugfs support Some basic debugfs support to dump the IP registers. Further statistics could easily be added in the future for example for each enabled tsin channel we could expose number of corrupt packets received etc. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab .../platform/sti/c8sectpfe/c8sectpfe-debugfs.c | 271 +++++++++++++++++++++ .../platform/sti/c8sectpfe/c8sectpfe-debugfs.h | 26 ++ 2 files changed, 297 insertions(+) commit e77a0cbe6c087d3f181d9058879c45f9b19cce90 Author: Peter Griffin Date: Thu Jul 30 14:08:58 2015 -0300 [media] c8sectpfe: Add support for various ST NIM cards This patch adds support for the following 2 NIM cards: - 1) B2100A (2x stv0367 demods & 2x NXP tda18212 tuners) 2) STV0903-6110NIM (stv0903 demod + 6110 tuner, lnb24) A NIM card is a cold plugable expansion card which usually features a demodulator / tuner combination. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab .../media/platform/sti/c8sectpfe/c8sectpfe-dvb.c | 244 +++++++++++++++++++++ .../media/platform/sti/c8sectpfe/c8sectpfe-dvb.h | 20 ++ 2 files changed, 264 insertions(+) commit b5e208a6843225d90c297da273d4d2ebd027417b Author: Peter Griffin Date: Thu Jul 30 14:08:57 2015 -0300 [media] c8sectpfe: Add LDVB helper functions These functions are used by the core code for creating the LDVB devices and adapter. Addtionally some older SoC's (and potentially newer ones) have different frontend HW which would allow those devices to be easily supported in the future by keeping the code specific to the IP separate from the more generic code. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab .../platform/sti/c8sectpfe/c8sectpfe-common.c | 265 +++++++++++++++++++++ .../platform/sti/c8sectpfe/c8sectpfe-common.h | 64 +++++ 2 files changed, 329 insertions(+) commit c5f5d0f99794cfb675ecacfe37a1b33b352b9752 Author: Peter Griffin Date: Thu Jul 30 14:08:56 2015 -0300 [media] c8sectpfe: STiH407/10 Linux DVB demux support This patch adds support for the c8sectpfe input HW found on STiH407/410 SoC's. It currently supports the TS input block, memdma engine and hw PID filtering blocks of the C8SECTPFE subsystem. The driver creates one LinuxDVB adapter, and a demux/dvr/frontend set of devices for each tsin channel which is specificed in the DT. It has been tested with multiple tsin channels tuned, locked, and grabbing TS simultaneously. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab .../media/platform/sti/c8sectpfe/c8sectpfe-core.c | 1235 ++++++++++++++++++++ .../media/platform/sti/c8sectpfe/c8sectpfe-core.h | 288 +++++ 2 files changed, 1523 insertions(+) commit adc6310ca49e2c007e1a86ff11a4c215687116d4 Merge: cdf0969 ba14d9e Author: David S. Miller Date: Tue Aug 11 12:03:20 2015 -0700 Merge branch 'mv88e6xxx-switchdev-fdb' Vivien Didelot says: ==================== net: dsa: mv88e6xxx: support switchdev FDB objects This patchset refactors the FDB management in the mv88e6xxx code and adds the glue in DSA to use the switchdev FDB objects. Below is an usage example (ports 0-2 belongs to br0, ports 3-4 belongs to br1): # bridge fdb add 3c:97:0e:11:30:6e dev swp2 # bridge fdb add 3c:97:0e:11:40:78 dev swp3 # bridge fdb add 3c:97:0e:11:50:86 dev swp4 # bridge fdb del 3c:97:0e:11:40:78 dev swp3 # bridge fdb 01:00:5e:00:00:01 dev eth0 self permanent 01:00:5e:00:00:01 dev eth1 self permanent 00:50:d2:10:78:15 dev swp0 master br0 permanent 3c:97:0e:11:30:6e dev swp2 self static 00:50:d2:10:78:15 dev swp3 master br1 permanent 3c:97:0e:11:50:86 dev swp4 self static # cat /sys/kernel/debug/dsa0/atu # DB T/P Vec State Addr # 001 Port 004 e 3c:97:0e:11:30:6e # 004 Port 010 e 3c:97:0e:11:50:86 For the 88E6xxx switches, FIDs 1 to num_ports will be reserved for non-bridged ports and bridge groups, and the remaining will be later used by VLANs. This change is necessary to welcome the support for hardware VLANs (which will follow soon). Changes in v3: - reorder commits to improve bisectability and minimize diffs - add an ndm_state member in switchdev_fdb_obj instead of an is_static boolean - drop the need to convert unsigned char *addr to u8 addr[ETH_ALEN] (it is casted to char pointer anyway) Changes in v2: - remove ndo_bridge_{get,set,del}link from switchdev/DSA glue code - use ether_addr_copy instead of memcpy for MAC addresses - constify MAC address in port_fdb_{add,del} - split the mv88e6xxx code refactoring into several patches ==================== Signed-off-by: David S. Miller commit ba14d9eb1999cad5b810f1fd97d1cb2d3f00869e Author: Vivien Didelot Date: Mon Aug 10 09:09:53 2015 -0400 net: dsa: add support for switchdev FDB objects Implement the switchdev_port_obj_{add,del,dump} functions in DSA to support the SWITCHDEV_OBJ_PORT_FDB objects. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller net/dsa/slave.c | 142 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 61 deletions(-) commit ce80e7bc57e25062c361de8fb6444129a63bac6d Author: Vivien Didelot Date: Mon Aug 10 09:09:52 2015 -0400 net: switchdev: support static FDB addresses This patch adds an ndm_state member to the switchdev_obj_fdb structure, in order to support static FDB addresses. Set Rocker ndm_state to NUD_REACHABLE. Signed-off-by: Vivien Didelot Acked-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 1 + include/net/switchdev.h | 1 + net/switchdev/switchdev.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) commit 1d1940464e4846912a4f1480648a1571065f1eea Author: Vivien Didelot Date: Mon Aug 10 09:09:51 2015 -0400 net: dsa: mv88e6xxx: rework FDB Get Next operation Add a low level _mv88e6xxx_atu_getnext function for convenient access to the hardware, and rework the FDB Get Next operation. This will ease the future integration with VLAN IDs. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 80 +++++++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 21 deletions(-) commit fd231c829b252303183d1f2f0c11003908f7bb9a Author: Vivien Didelot Date: Mon Aug 10 09:09:50 2015 -0400 net: dsa: mv88e6xxx: rework FDB add/del operations Add a mv88e6xxx_atu_entry structure and a low level function for the ATU Load operation, and provide FDB add and delete wrappers functions. This implementation handles the eventual trunk mapping. If the related bit is set, then the ATU data register would contain the trunk ID, and not the port vector. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 69 +++++++++++++++++++++++++++++++++++++-------- drivers/net/dsa/mv88e6xxx.h | 10 +++++++ 2 files changed, 67 insertions(+), 12 deletions(-) commit 2a778e1b58990e15de5cba4badec1fa7ecb87e80 Author: Vivien Didelot Date: Mon Aug 10 09:09:49 2015 -0400 net: dsa: change FDB routines prototypes Change the prototype of port_getnext to include a vid parameter. This is necessary to introduce the support for VLAN. Also rename the fdb_{add,del,getnext} function pointers to port_fdb_{add,del,getnext} since they are specific to a given port. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6171.c | 6 +++--- drivers/net/dsa/mv88e6352.c | 6 +++--- drivers/net/dsa/mv88e6xxx.c | 2 +- drivers/net/dsa/mv88e6xxx.h | 2 +- include/net/dsa.h | 17 +++++++++++------ net/dsa/slave.c | 16 +++++++++------- 6 files changed, 28 insertions(+), 21 deletions(-) commit c5723ac51f2a1eaa69d831b919129a3c2b7efeee Author: Vivien Didelot Date: Mon Aug 10 09:09:48 2015 -0400 net: dsa: mv88e6xxx: rename ATU MAC accessors Rename the __mv88e6xxx_{read,write}_addr functions to more explicit _mv88e6xxx_atu_mac_{read,write} functions, which also respect the single underscore convention used in the file (meaning SMI lock must be held). Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 194fea7bd8786e2b9332df3c6b21b53f15e5fa5a Author: Vivien Didelot Date: Mon Aug 10 09:09:47 2015 -0400 net: dsa: mv88e6xxx: extend fid mask The driver currently manages one FID per port (or bridge group), with a mask of DSA_MAX_PORTS bits, where 0 means that the FID is in use. The Marvell 88E6xxx switches support up to 4094 FIDs (from 1 to 0xfff; FID 0 means that multiple address databases are not being used). This patch changes the fid_mask for an fid_bitmap of 4096 bits. >From now on, FIDs 1 to num_ports are reserved for non-bridged ports and bridge groups (a bridge group gets the FID of its first member). The remaining bits will be reserved for VLAN entries. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 20 +++++++++++++------- drivers/net/dsa/mv88e6xxx.h | 8 +++++--- 2 files changed, 18 insertions(+), 10 deletions(-) commit a08df0f0f745400249b0a95c704e569a4dd84fd7 Author: Vivien Didelot Date: Mon Aug 10 09:09:46 2015 -0400 net: dsa: mv88e6xxx: define GLOBAL_ATU_FID Define register GLOBAL_ATU_FID instead of the raw value 0x01. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 2 +- drivers/net/dsa/mv88e6xxx.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit cdf0969763e020923abe28fddc605add572febc2 Author: David S. Miller Date: Tue Aug 11 12:00:37 2015 -0700 Revert "Merge branch 'mv88e6xxx-switchdev-fdb'" This reverts commit f1d5ca434413b20cd3f8c18ff2b634b7782149a5, reversing changes made to 4933d85c5173832ebd261756522095837583c458. I applied v2 instead of v3. Signed-off-by: David S. Miller drivers/net/dsa/mv88e6171.c | 6 +- drivers/net/dsa/mv88e6352.c | 6 +- drivers/net/dsa/mv88e6xxx.c | 223 +++++++++++------------------------ drivers/net/dsa/mv88e6xxx.h | 31 ++--- drivers/net/ethernet/rocker/rocker.c | 2 +- include/net/dsa.h | 16 +-- include/net/switchdev.h | 3 +- net/bridge/br_fdb.c | 2 +- net/dsa/slave.c | 218 ++++++++++++++++------------------ net/switchdev/switchdev.c | 7 +- 10 files changed, 197 insertions(+), 317 deletions(-) commit 5d8877b6ae0d47897b821b8a11a2e8dee9a22686 Author: Peter Griffin Date: Thu Jul 30 14:08:55 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 Signed-off-by: Mauro Carvalho Chehab arch/arm/boot/dts/stihxxx-b2120.dtsi | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 179dd8c0348af75b02c7d72eaaf1cb179f1721ef Author: Peter Griffin Date: Thu Jul 30 14:08:54 2015 -0300 [media] c8sectpfe: Add DT bindings documentation for c8sectpfe driver This patch adds the DT bindings documentation for the c8sectpfe LinuxDVB demux driver whose IP is in the STiH407 family silicon SoC's. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab .../bindings/media/stih407-c8sectpfe.txt | 89 ++++++++++++++++++++++ include/dt-bindings/media/c8sectpfe.h | 12 +++ 2 files changed, 101 insertions(+) commit 548146fbbc120404b716f548dc3183b41735aec5 Author: Joe Perches Date: Thu Jul 30 14:08:53 2015 -0300 [media] dvb-pll: Convert struct dvb_pll_desc uses to const Convert the struct dvb_pll_desc uses to const and change the "entries" fixed array size from 12 to [] It saves a couple KB overall and remove ~5KB of data. $ size drivers/media/dvb-frontends/dvb-pll.o* text data bss dec hex filename 8520 1552 2120 12192 2fa0 drivers/media/dvb-frontends/dvb-pll.o.new 5624 6363 2120 14107 371b drivers/media/dvb-frontends/dvb-pll.o.old [PG] Patch taken from https://lkml.org/lkml/2015/6/24/721 with commit message updated. Signed-off-by: Joe Perches Signed-off-by: Peter Griffin Reviewed-by: Michael Ira Krufky Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/dvb-pll.c | 50 +++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) commit 6930f6696e73efe35e9e315588b1912c3d0d2df3 Author: Peter Griffin Date: Thu Jul 30 14:08:52 2015 -0300 [media] stv0367: Add support for 16Mhz reference clock The B2100A dvb NIM card from ST has 2x stv0367 demodulators and 2x TDA18212 silicon tuners, with a 16Mhz crystal. To get this working properly with the upstream driver we need to add support for the 16Mhz reference clock. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stv0367.c | 5 +++++ 1 file changed, 5 insertions(+) commit 86a10283e2d5e49b2e1827b0b0720734e7f69ff6 Author: Peter Griffin Date: Thu Jul 30 14:08:51 2015 -0300 [media] stv0367: Refine i2c error trace to include i2c address When using stv0367 demodulator with STi STB platforms, we can have easily have four or more stv0367 demods running in the system at one time. As typically the b2120 reference design ships with a b2004a daughter board, which can accept two dvb NIM cards, and each b2100A NIM has 2x stv0367 demods and 2x NXPs tuner on it. In such circumstances it is useful to print the i2c address on error messages to know which one is failing due to I2C issues. Signed-off-by: Peter Griffin Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/stv0367.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 2c9c3bbbbfe9f7f700c30d9ac40c1abca59d39ee Author: Kaixu Xia Date: Tue Aug 11 08:56:51 2015 +0000 bpf: s390: Fix build error caused by the struct bpf_array member name changed There is a build error that "'struct bpf_array' has no member named 'prog'" on s390. In commit 2a36f0b92eb6 ("bpf: Make the bpf_prog_array_map more generic"), the member 'prog' of struct bpf_array is replaced by 'ptrs'. So this patch fixes it. Fixes: 2a36f0b92eb6 ("bpf: Make the bpf_prog_array_map more generic") Reported-by: Wu Fengguang Signed-off-by: Kaixu Xia Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 15ee8fcdd2d24351022e12a92c764edaf2f60e51 Merge: 07a51cd 46b903a Author: David S. Miller Date: Tue Aug 11 11:47:57 2015 -0700 Merge branch 'thunder-acpi' David Daney says: ==================== net: thunder: Add ACPI support. Change from v1: Drop PHY binding part, use fwnode_property* APIs. The first patch (1/2) rearranges the existing code a little with no functional change to get ready for the second. The second (2/2) does the actual work of adding support to extract the needed information from the ACPI tables. ==================== Signed-off-by: David S. Miller commit 46b903a01c053d0c94975ea7a6819618f121d3d6 Author: David Daney Date: Mon Aug 10 17:58:37 2015 -0700 net, thunder, bgx: Add support to get MAC address from ACPI. Currently there is no way to get the MAC address in a firmware independent manner, so set the MAC address of the device directly from the ACPI tables. The binding agrees with the proposed standard here: http://www.uefi.org/sites/default/files/resources/nic-request-v2.pdf Based on code from: Narinder Dhillon Tomasz Nowicki Robert Richter Signed-off-by: Tomasz Nowicki Signed-off-by: Robert Richter Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 86 ++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) commit de387e1156c76b273529f1803c6bd87b61eac2c5 Author: Robert Richter Date: Mon Aug 10 17:58:36 2015 -0700 net: thunder: Factor out DT specific code in BGX Separate DT code in preparation for follow-on ACPI integration. Based on code from: Tomasz Nowicki Signed-off-by: Robert Richter Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 48 +++++++++++++++++------ 1 file changed, 35 insertions(+), 13 deletions(-) commit 8853780ec1e37bb91a1ccef9c05e412cb1cfd9e0 Author: Mauro Carvalho Chehab Date: Tue Aug 11 15:36:15 2015 -0300 [media] ascot2e: don't use variable length arrays The Linux stack is short; we need to be able to count the number of bytes used at stack on each function. So, we don't like to use variable-length arrays, as complained by smatch: drivers/media/dvb-frontends/horus3a.c:57:19: warning: Variable length array is used. The max usecase of the driver seems to be 10 bytes + 1 for the register. So, let's be safe and allocate 11 bytes for the write buffer. This should be enough to cover all cases. If not, let's print an error message. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/ascot2e.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 4aabd91625d0887210f68382f3fccb29a4586792 Author: Mauro Carvalho Chehab Date: Tue Aug 11 15:29:54 2015 -0300 [media] horus3a: don't use variable length arrays The Linux stack is short; we need to be able to count the number of bytes used at stack on each function. So, we don't like to use variable-length arrays, as complained by smatch: drivers/media/dvb-frontends/horus3a.c:57:19: warning: Variable length array is used. The max usecase of the driver seems to be 5 bytes + 1 for the register. So, let's be safe and allocate 6 bytes for the write buffer. This should be enough to cover all cases. If not, let's print an error message. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/horus3a.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit d13a7b674af085eb67df73a20f5cc77310dd8602 Author: Mauro Carvalho Chehab Date: Tue Aug 11 15:22:36 2015 -0300 [media] cxd2841er: don't use variable length arrays The Linux stack is short; we need to be able to count the number of bytes used at stack on each function. So, we don't like to use variable-length arrays, as complained by smatch: drivers/media/dvb-frontends/cxd2841er.c:205:19: warning: Variable length array is used. The max usecase of the driver seems to be 15 bytes + 1 for the register. So, let's be safe and allocate 17 bytes for the write buffer. This should be enough to cover all cases. If not, let's print an error message. Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cxd2841er.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 9b7493d00c06013fb9192ea23cc83a1a2d003d61 Author: Zidan Wang Date: Tue Aug 11 11:14:26 2015 +0800 ASoC: fsl-sai: add 32 bit word length support Add 32 bit word length support. There are no code changes required in the SAI driver since it has already wirten the word width to the corresponding register. Signed-off-by: Zidan Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_sai.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit decd36b6c43a1051bab97571cf4c0ec8450268b0 Author: Chao Yu Date: Fri Aug 7 18:42:09 2015 +0800 f2fs: remove inmem radix tree Previously, we use radix tree to index all registered page entries for atomic file, but now we only use radix tree to see whether current page is indexed or not, since the other user of radix tree is gone in commit 042b7816aaeb ("f2fs: remove unnecessary call to invalidate inmemory pages"). So in this patch, we try to use one more efficient way: Introducing a macro ATOMIC_WRITTEN_PAGE, and setting it as page private value to indicate page indexing status. By using this way, we can save memory and lookup time. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 20 ++++++++++++++++++-- fs/f2fs/f2fs.h | 1 - fs/f2fs/segment.c | 25 +++++++++---------------- fs/f2fs/segment.h | 9 +++++++++ fs/f2fs/super.c | 1 - 5 files changed, 36 insertions(+), 20 deletions(-) commit c15e8599ffe1b4f866691424d07037c467c23a2f Author: Chao Yu Date: Fri Aug 7 18:39:32 2015 +0800 f2fs: report EINVAL for unalignment direct IO We run ltp testcase with f2fs and obtain a TFAIL in diotest4, the result in detail is as fallow: dio04 <<>> tag=dio04 stime=1432278894 cmdline="diotest4" contacts="" analysis=exit <<>> diotest4 1 TPASS : Negative Offset diotest4 2 TPASS : removed diotest4 3 TFAIL : diotest4.c:129: write allows odd count.returns 1: Success diotest4 4 TFAIL : diotest4.c:183: Odd count of read and write diotest4 5 TPASS : Read beyond the file size ...... the result of ext4 with same environment: dio04 <<>> tag=dio04 stime=1432259643 cmdline="diotest4" contacts="" analysis=exit <<>> diotest4 1 TPASS : Negative Offset diotest4 2 TPASS : removed diotest4 3 TPASS : Odd count of read and write diotest4 4 TPASS : Read beyond the file size ...... The reason is that when triggering DIO in f2fs, we will return zero value in ->direct_IO if writer's buffer offset, file offset and transfer size is not alignment to block size of filesystem, resulting in falling back into buffered write instead of returning -EINVAL. This patch fixes that problem by returning correct error number for above case, and removing the judgement condition in check_direct_IO to make sure the verification will be enabled for direct reader too. Besides, Jaegeuk Kim pointed out that there is expectional cases we should always make direct-io falling back into buffered write, such as dio in encrypted file. Signed-off-by: Yunlei He [Chao Yu make small change and add detail description in commit message] Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 52b1eaf4c59a3bbd07afbb4ab4f43418a807d02e Author: Kozlov Sergey Date: Tue Jul 28 11:33:04 2015 -0300 [media] netup_unidvb: NetUP Universal DVB-S/S2/T/T2/C PCI-E card driver Add NetUP Dual Universal CI PCIe board driver. The board has - two CI slots - two I2C adapters - SPI master bus for accessing flash memory containing FPGA firmware No changes required. Signed-off-by: Kozlov Sergey Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 + drivers/media/pci/Kconfig | 1 + drivers/media/pci/Makefile | 3 +- drivers/media/pci/netup_unidvb/Kconfig | 12 + drivers/media/pci/netup_unidvb/Makefile | 9 + drivers/media/pci/netup_unidvb/netup_unidvb.h | 133 +++ drivers/media/pci/netup_unidvb/netup_unidvb_ci.c | 248 +++++ drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 1001 ++++++++++++++++++++ drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c | 381 ++++++++ drivers/media/pci/netup_unidvb/netup_unidvb_spi.c | 252 +++++ 10 files changed, 2048 insertions(+), 1 deletion(-) commit c8946c8d5ab8725bd763fc98c0ec6e1e94e6f6a0 Author: Mauro Carvalho Chehab Date: Tue Aug 11 15:08:47 2015 -0300 [media] cxd2841er: declare static functions as such drivers/media/dvb-frontends/cxd2841er.c:992:5: warning: no previous prototype for 'cxd2841er_get_carrier_offset_t2' [-Wmissing-prototypes] int cxd2841er_get_carrier_offset_t2( ^ drivers/media/dvb-frontends/cxd2841er.c:1032:5: warning: no previous prototype for 'cxd2841er_get_carrier_offset_c' [-Wmissing-prototypes] int cxd2841er_get_carrier_offset_c( ^ drivers/media/dvb-frontends/cxd2841er.c:1360:5: warning: no previous prototype for 'cxd2841er_read_snr_t2' [-Wmissing-prototypes] int cxd2841er_read_snr_t2(struct cxd2841er_priv *priv, u32 *snr) ^ Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/cxd2841er.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a6dc60ff1209df29ee4668024e93d31f31421932 Author: Kozlov Sergey Date: Tue Jul 28 11:33:03 2015 -0300 [media] cxd2841er: Sony CXD2841ER DVB-S/S2/T/T2/C demodulator driver Add DVB-C/T/T2/S/S2 demodulator frontend driver Sony CXD2841ER chip. Signed-off-by: Kozlov Sergey Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 + drivers/media/dvb-frontends/Kconfig | 7 + drivers/media/dvb-frontends/Makefile | 1 + drivers/media/dvb-frontends/cxd2841er.c | 2719 ++++++++++++++++++++++++++ drivers/media/dvb-frontends/cxd2841er.h | 65 + drivers/media/dvb-frontends/cxd2841er_priv.h | 43 + 6 files changed, 2844 insertions(+) commit 9b850ca4f1c5acd7fcbbd4b38a2d27132801a8d5 Author: John Lin Date: Tue Aug 11 14:27:25 2015 +0800 ASoC: rt5640: fix line out no sound issue The power for line out was not turned on when line out is enabled. So we add "LOUT amp" widget to turn on the power for line out. Signed-off-by: John Lin Signed-off-by: Mark Brown Cc: stable@vger.kernel.org sound/soc/codecs/rt5640.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) commit e025273b86fb4a6440192b809e05332777c3faa5 Author: Kozlov Sergey Date: Tue Jul 28 11:33:02 2015 -0300 [media] lnbh25: LNBH25 SEC controller driver Add DVB SEC frontend driver for STM LNBH25PQR chip. [mchehab@osg.samsung.com: fix merge conflict: fe_sec_voltage_t should not be used in kernelspace anymore. instead, it should use enum fe_sec_voltage] Signed-off-by: Kozlov Sergey Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 ++ drivers/media/dvb-frontends/Kconfig | 8 ++ drivers/media/dvb-frontends/Makefile | 1 + drivers/media/dvb-frontends/lnbh25.c | 189 +++++++++++++++++++++++++++++++++++ drivers/media/dvb-frontends/lnbh25.h | 56 +++++++++++ 5 files changed, 263 insertions(+) commit dacf9ce80b41667abb51a2a751a2dfe30e1f9a2b Author: Kozlov Sergey Date: Tue Jul 28 11:33:01 2015 -0300 [media] ascot2e: Sony Ascot2e DVB-C/T/T2 tuner driver Add DVB-T/T2/C frontend driver for Sony Ascot2e (CXD2861ER) chip. Signed-off-by: Kozlov Sergey Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 + drivers/media/dvb-frontends/Kconfig | 7 + drivers/media/dvb-frontends/Makefile | 1 + drivers/media/dvb-frontends/ascot2e.c | 540 ++++++++++++++++++++++++++++++++++ drivers/media/dvb-frontends/ascot2e.h | 58 ++++ 5 files changed, 615 insertions(+) commit a5d32b358254ff90f5dcd7ae2798b5d40503013a Author: Kozlov Sergey Date: Tue Jul 28 11:33:00 2015 -0300 [media] horus3a: Sony Horus3A DVB-S/S2 tuner driver Add DVB-S/S2 frontend driver for Sony Horus3A (CXD2832AER) chip Signed-off-by: Kozlov Sergey Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 9 + drivers/media/dvb-frontends/Kconfig | 7 + drivers/media/dvb-frontends/Makefile | 1 + drivers/media/dvb-frontends/horus3a.c | 421 ++++++++++++++++++++++++++++++++++ drivers/media/dvb-frontends/horus3a.h | 58 +++++ 5 files changed, 496 insertions(+) commit efaa6e266ba70439da00e7f1c8a218e243ae140a Author: Russell King Date: Fri Jul 24 10:21:02 2015 +0100 firmware: qcom_scm-32: replace open-coded call to __cpuc_flush_dcache_area() Rathe rthan directly accessing architecture internal functions, provide an "method"-centric wrapper for qcom_scm-32 to do what's necessary to ensure that the secure monitor can see the data. This is called "secure_flush_area" and ensures that the specified memory area is coherent across the secure boundary. Acked-by: Andy Gross Reviewed-by: Stephen Boyd Signed-off-by: Russell King arch/arm/include/asm/cacheflush.h | 17 +++++++++++++++++ drivers/firmware/qcom_scm-32.c | 4 +--- 2 files changed, 18 insertions(+), 3 deletions(-) commit 3139f43f8eca4d3a8a0ffe3b0b9cd8ebe0e3be95 Author: Christian Löpke Date: Sat Jul 18 04:15:01 2015 -0300 [media] Technisat SkyStar USB HD,(DVB-S/S2) too much URBs for arm devices Using 8 URBs results in a consecutive buffer allocation of too much memory for some arm devices. As we use isochronuous transfers the number of URBs can be reduced without risking data-loss. Signed-off-by: Christian Loepke Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/technisat-usb2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 731a981e1059dd68c97212ccc9c0e1f169c1a77b Author: Tejun Heo Date: Tue Aug 11 13:35:42 2015 -0400 cgroup: make cftype->private a unsigned long It's pretty unusual to have an int as a private data field and it makes it impossible to carray a pointer value through it. Let's make it an unsigned long. AFAICS, this shouldn't break anything. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Johannes Weiner include/linux/cgroup-defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b81c842355ac96097ba32ad5632e9ef0ff59f92 Author: Sasha Levin Date: Mon Aug 10 19:05:18 2015 -0400 block: don't access bio->bi_error after bio_put() Commit 4246a0b6 ("block: add a bi_error field to struct bio") has added a few dereferences of 'bio' after a call to bio_put(). This causes use-after-frees such as: [521120.719695] BUG: KASan: use after free in dio_bio_complete+0x2b3/0x320 at addr ffff880f36b38714 [521120.720638] Read of size 4 by task mount.ocfs2/9644 [521120.721212] ============================================================================= [521120.722056] BUG kmalloc-256 (Not tainted): kasan: bad access detected [521120.722968] ----------------------------------------------------------------------------- [521120.722968] [521120.723915] Disabling lock debugging due to kernel taint [521120.724539] INFO: Slab 0xffffea003cdace00 objects=32 used=25 fp=0xffff880f36b38600 flags=0x46fffff80004080 [521120.726037] INFO: Object 0xffff880f36b38700 @offset=1792 fp=0xffff880f36b38800 [521120.726037] [521120.726974] Bytes b4 ffff880f36b386f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.727898] Object ffff880f36b38700: 00 88 b3 36 0f 88 ff ff 00 00 d8 de 0b 88 ff ff ...6............ [521120.728822] Object ffff880f36b38710: 02 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.729705] Object ffff880f36b38720: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ................ [521120.730623] Object ffff880f36b38730: 00 00 00 00 00 00 00 00 01 00 00 00 00 02 00 00 ................ [521120.731621] Object ffff880f36b38740: 00 02 00 00 01 00 00 00 d0 f7 87 ad ff ff ff ff ................ [521120.732776] Object ffff880f36b38750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.733640] Object ffff880f36b38760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.734508] Object ffff880f36b38770: 01 00 03 00 01 00 00 00 88 87 b3 36 0f 88 ff ff ...........6.... [521120.735385] Object ffff880f36b38780: 00 73 22 ad 02 88 ff ff 40 13 e0 3c 00 ea ff ff .s".....@..<.... [521120.736667] Object ffff880f36b38790: 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00 ................ [521120.737596] Object ffff880f36b387a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.738524] Object ffff880f36b387b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.739388] Object ffff880f36b387c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.740277] Object ffff880f36b387d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.741187] Object ffff880f36b387e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.742233] Object ffff880f36b387f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ [521120.743229] CPU: 41 PID: 9644 Comm: mount.ocfs2 Tainted: G B 4.2.0-rc6-next-20150810-sasha-00039-gf909086 #2420 [521120.744274] ffff880f36b38000 ffff880d89c8f638 ffffffffb6e9ba8a ffff880101c0e5c0 [521120.745025] ffff880d89c8f668 ffffffffad76a313 ffff880101c0e5c0 ffffea003cdace00 [521120.745908] ffff880f36b38700 ffff880f36b38798 ffff880d89c8f690 ffffffffad772854 [521120.747063] Call Trace: [521120.747520] dump_stack (lib/dump_stack.c:52) [521120.748053] print_trailer (mm/slub.c:653) [521120.748582] object_err (mm/slub.c:660) [521120.749079] kasan_report_error (include/linux/kasan.h:20 mm/kasan/report.c:152 mm/kasan/report.c:194) [521120.750834] __asan_report_load4_noabort (mm/kasan/report.c:250) [521120.753580] dio_bio_complete (fs/direct-io.c:478) [521120.755752] do_blockdev_direct_IO (fs/direct-io.c:494 fs/direct-io.c:1291) [521120.759765] __blockdev_direct_IO (fs/direct-io.c:1322) [521120.761658] blkdev_direct_IO (fs/block_dev.c:162) [521120.762993] generic_file_read_iter (mm/filemap.c:1738) [521120.767405] blkdev_read_iter (fs/block_dev.c:1649) [521120.768556] __vfs_read (fs/read_write.c:423 fs/read_write.c:434) [521120.772126] vfs_read (fs/read_write.c:454) [521120.773118] SyS_pread64 (fs/read_write.c:607 fs/read_write.c:594) [521120.776062] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:186) [521120.777375] Memory state around the buggy address: [521120.778118] ffff880f36b38600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [521120.779211] ffff880f36b38680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [521120.780315] >ffff880f36b38700: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [521120.781465] ^ [521120.782083] ffff880f36b38780: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [521120.783717] ffff880f36b38800: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [521120.784818] ================================================================== This patch fixes a few of those places that I caught while auditing the patch, but the original patch should be audited further for more occurences of this issue since I'm not too familiar with the code. Signed-off-by: Sasha Levin Signed-off-by: Jens Axboe drivers/md/dm-crypt.c | 8 +++++--- drivers/md/dm-io.c | 4 +++- drivers/md/raid5.c | 3 ++- fs/direct-io.c | 5 ++++- 4 files changed, 14 insertions(+), 6 deletions(-) commit 1ed8111443ae8caa455e7107031da36d1a6d351a Author: Nicolas Boichat Date: Tue Aug 11 18:04:21 2015 +0800 regmap: Move documentation to regmap.h Init functions defined in regmap*.c files are now prefixed with __, take lockdep key and class parameters, and should not be called directly: move the documentation to regmap.h, where the macros are defined. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown drivers/base/regmap/regmap-ac97.c | 19 ----- drivers/base/regmap/regmap-i2c.c | 19 ----- drivers/base/regmap/regmap-mmio.c | 23 ----- drivers/base/regmap/regmap-spi.c | 19 ----- drivers/base/regmap/regmap-spmi.c | 34 -------- drivers/base/regmap/regmap.c | 25 ------ include/linux/regmap.h | 173 +++++++++++++++++++++++++++++++++++--- 7 files changed, 162 insertions(+), 150 deletions(-) commit 38d6211e8565af5855385825a4fdc7261eb3740e Author: Nadav Haklai Date: Tue Aug 11 11:58:47 2015 +0200 spi: orion: On a38x, implement "50MHZ SPI AC timing" Erratum No. FE-9144572 Description: On Armada 38x, the device SPI interface supports frequencies of up to 50 MHz. However, due to this erratum, when the device core clock is 250 MHz and the SPI interfaces is configured for 50MHz SPI clock and CPOL=CPHA=1, there might occur data corruption on reads from the SPI device. Workaround: Work in one of the following configurations: 1. Set CPOL=CPHA=0 in "SPI Interface Configuration Register". 2. Set TMISO_SAMPLE value to 0x2 in "SPI Timing Parameters 1 Register" before setting the interface. [gregory.clement@free-electrons.com}: port to v4.2-rc, use is_errata_50mhz_ac instead of using a new ARMADA_380_SPI spi type. Signed-off-by: Nadav Haklai Signed-off-by: Gregory CLEMENT Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-orion.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) commit dd6ff6a05b3d467acff47131759e15d40933656c Author: David Härdeman Date: Wed Jul 22 17:55:24 2015 -0300 [media] rc-core: improve the lirc protocol reporting Commit 275ddb40bcf686d210d86c6718e42425a6a0bc76 removed the lirc "protocol" but kept backwards compatibility by always listing the protocol as present and enabled. This patch further improves the logic by only listing the protocol if the lirc module is loaded (or if lirc is builtin). Signed-off-by: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 1af2cc64b18c29f1d774caa7e592c781bee6a7eb Author: Geert Uytterhoeven Date: Tue Aug 11 14:47:18 2015 +0200 ASoC: rsnd: Silence DMA slave ID compile warning on 64-bit On arm64: sound/soc/sh/rcar/dma.c: In function 'rsnd_dmaen_init': sound/soc/sh/rcar/dma.c:180:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (void *)id); ^ include/linux/dmaengine.h:1185:75: note: in definition of macro 'dma_request_channel' #define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) ^ Add an intermediate cast to "uintptr_t" to kill the compile warning. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3176bf2d7ccd64da9be7b07036e0ba8293179906 Author: Zidan Wang Date: Tue Aug 11 19:25:15 2015 +0800 ASoC: wm8960: update pll and clock setting function Add sysclk auto mode. When it's sysclk auto mode, if the MCLK is available for clock configure, using MCLK to provide sysclk directly, otherwise, search a available pll out frequcncy and set pll. Configure clock in hw_params may cause problems when using bypass style paths without hw_params in machine driver getting called. So add configure clock to set_bias_level. Signed-off-by: Zidan Wang Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8960.c | 220 +++++++++++++++++++++++++++++++++++++--------- sound/soc/codecs/wm8960.h | 1 + 2 files changed, 180 insertions(+), 41 deletions(-) commit 7abc01b346e67534cc0307544e563e5497280296 Author: Leilk Liu Date: Tue Aug 11 18:43:09 2015 +0800 spi: mediatek: fix endian warnings This patch fixes endian warnings detected by sparse: - sparse: incorrect type in argument 1 (different base types) expected unsigned int [unsigned] val got restricted __le32 [usertype] - sparse: incorrect type in argument 1 (different base types) expected unsigned int [unsigned] val got restricted __le32 [usertype] Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 571a963768e7711e0bb5a30f71247b46ec9ca7b9 Author: Ruben Wisniewski Date: Tue Jun 16 21:06:23 2015 +0200 batman-adv: Avoid u32 overflow during gateway select The gateway selection based on fast connections is using a single value calculated from the average tq (0-255) and the download bandwidth (in 100Kibit). The formula for the first step (tq ** 2 * 10000 * bandwidth) tends to overflow a u32 with low bandwidth settings like 50 [100KiBit] and a tq value of over 92. Changing this to a 64 bit unsigned integer allows to support a bandwidth_down with up to ~2.8e10 [100KiBit] and a perfect tq of 255. This is ~6.6 times higher than the maximum possible value of the gateway announcement TVLV. This problem only affects the non-default gw_sel_class 1. Signed-off-by: Ruben Wisniewsi [sven@narfation.org: rewritten commit message] Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e071d93eb40c969dc8c578dde5ddd89a30fb01cb Author: Sven Eckelmann Date: Mon Jun 22 09:13:23 2015 +0200 batman-adv: Replace gw_reselect divisor with simple shift The gw_factor is divided by BATADV_TQ_LOCAL_WINDOW_SIZE ** 2 * 64. But the rest of the calculation has nothing to do with the tq window size and therefore the calculation is just (tmp_gw_factor / (64 ** 3)). Replace it with a simple shift to avoid a costly 64-bit divide when the max_gw_factor is changed from u32 to u64. This type change is necessary to avoid an overflow bug. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Antonio Quartulli net/batman-adv/gateway_client.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit f103a9c1a0ea1730fa3398366ffcc41c25ad8c9e Author: Krzysztof Kozlowski Date: Fri Jul 10 03:34:28 2015 -0300 [media] staging: 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: Mauro Carvalho Chehab drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c | 1 - 1 file changed, 1 deletion(-) commit a53546751da4099d9802618313f57ee01c2efdc4 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:34:26 2015 -0300 [media] staging: iio: 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: Mauro Carvalho Chehab drivers/staging/iio/addac/adt7316-i2c.c | 1 - drivers/staging/iio/light/isl29018.c | 1 - drivers/staging/iio/light/isl29028.c | 1 - 3 files changed, 3 deletions(-) commit acda7cf4463ae58e68cebeb0f72599fddfeeebb9 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:34:27 2015 -0300 [media] staging: media: 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: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_zilog.c | 1 - drivers/staging/media/mn88472/mn88472.c | 1 - drivers/staging/media/mn88473/mn88473.c | 1 - 3 files changed, 3 deletions(-) commit ebf8dce56a25f77545f43a15a8205a6ef4fd1ac0 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:48 2015 -0300 [media] 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: Mauro Carvalho Chehab drivers/media/usb/go7007/s2250-board.c | 1 - drivers/media/v4l2-core/tuner-core.c | 1 - 2 files changed, 2 deletions(-) commit 8972943c0e002541a7cede3e6612a3f775496fa2 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:47 2015 -0300 [media] tuners: 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: Mauro Carvalho Chehab drivers/media/tuners/e4000.c | 1 - drivers/media/tuners/fc2580.c | 1 - drivers/media/tuners/it913x.c | 1 - drivers/media/tuners/m88rs6000t.c | 1 - drivers/media/tuners/si2157.c | 1 - drivers/media/tuners/tda18212.c | 1 - drivers/media/tuners/tua9001.c | 1 - 7 files changed, 7 deletions(-) commit f77658bda96431801dcd078765ba92adcd02aaaa Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:46 2015 -0300 [media] radio: 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: Mauro Carvalho Chehab drivers/media/radio/radio-tea5764.c | 1 - drivers/media/radio/saa7706h.c | 1 - drivers/media/radio/tef6862.c | 1 - 3 files changed, 3 deletions(-) commit dfadaccabf93362cda7232eb9684b2eae7f2abf9 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:44 2015 -0300 [media] i2c: 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: Mauro Carvalho Chehab drivers/media/i2c/adv7170.c | 1 - drivers/media/i2c/adv7175.c | 1 - drivers/media/i2c/adv7180.c | 1 - drivers/media/i2c/adv7343.c | 1 - drivers/media/i2c/adv7511.c | 1 - drivers/media/i2c/adv7604.c | 1 - drivers/media/i2c/adv7842.c | 1 - drivers/media/i2c/bt819.c | 1 - drivers/media/i2c/bt856.c | 1 - drivers/media/i2c/bt866.c | 1 - drivers/media/i2c/cs5345.c | 1 - drivers/media/i2c/cs53l32a.c | 1 - drivers/media/i2c/cx25840/cx25840-core.c | 1 - drivers/media/i2c/ks0127.c | 1 - drivers/media/i2c/m52790.c | 1 - drivers/media/i2c/msp3400-driver.c | 1 - drivers/media/i2c/mt9v011.c | 1 - drivers/media/i2c/ov7640.c | 1 - drivers/media/i2c/ov7670.c | 1 - drivers/media/i2c/saa6588.c | 1 - drivers/media/i2c/saa6752hs.c | 1 - drivers/media/i2c/saa7110.c | 1 - drivers/media/i2c/saa7115.c | 1 - drivers/media/i2c/saa7127.c | 1 - drivers/media/i2c/saa717x.c | 1 - drivers/media/i2c/saa7185.c | 1 - drivers/media/i2c/sony-btf-mpx.c | 1 - drivers/media/i2c/tda7432.c | 1 - drivers/media/i2c/tda9840.c | 1 - drivers/media/i2c/tea6415c.c | 1 - drivers/media/i2c/tea6420.c | 1 - drivers/media/i2c/ths7303.c | 1 - drivers/media/i2c/tvaudio.c | 1 - drivers/media/i2c/tvp5150.c | 1 - drivers/media/i2c/tw9903.c | 1 - drivers/media/i2c/tw9906.c | 1 - drivers/media/i2c/upd64031a.c | 1 - drivers/media/i2c/upd64083.c | 1 - drivers/media/i2c/vp27smpx.c | 1 - drivers/media/i2c/vpx3220.c | 1 - drivers/media/i2c/wm8739.c | 1 - drivers/media/i2c/wm8775.c | 1 - 42 files changed, 42 deletions(-) commit f078818770e719b3c15b0ee26ace6b6088514152 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:43 2015 -0300 [media] dvb-frontends: 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: Mauro Carvalho Chehab drivers/media/dvb-frontends/rtl2832_sdr.c | 1 - 1 file changed, 1 deletion(-) commit 04d8be053fbeac656f8db2acb768179be9997b0a Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:42 2015 -0300 [media] dvb-frontends: 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: Mauro Carvalho Chehab drivers/media/dvb-frontends/a8293.c | 1 - drivers/media/dvb-frontends/af9033.c | 1 - drivers/media/dvb-frontends/au8522_decoder.c | 1 - drivers/media/dvb-frontends/m88ds3103.c | 1 - drivers/media/dvb-frontends/rtl2830.c | 1 - drivers/media/dvb-frontends/rtl2832.c | 1 - drivers/media/dvb-frontends/si2168.c | 1 - drivers/media/dvb-frontends/sp2.c | 1 - drivers/media/dvb-frontends/tda10071.c | 1 - drivers/media/dvb-frontends/ts2020.c | 1 - 10 files changed, 10 deletions(-) commit 38dcdca38739b95a29c6d03009c3f63b0d959398 Author: Vaishali Thakkar Date: Fri Jun 26 01:34:37 2015 -0300 [media] pctv452e: 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. Note that the 6 in the third argument of memset appears to represent an ethernet address size (ETH_ALEN). The Coccinelle semantic patch that makes this change is as follows: // @eth_zero_addr@ expression e; @@ -memset(e,0x00,6); +eth_zero_addr(e); // Signed-off-by: Vaishali Thakkar Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/dvb-usb/pctv452e.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fd26f8830979de48eb3f1c253eb9d2ee2e468eb6 Author: Eric Anholt Date: Thu Jun 4 13:11:45 2015 -0700 dt/bindings: Add binding for the Raspberry Pi firmware driver This driver will provide support for calls into the firmware that will be used by other drivers like cpufreq and vc4. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Lee Jones .../bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 8278780e3d3effe8f1db495f7329dbedaf035c46 Author: Geert Uytterhoeven Date: Mon Jun 29 10:46:49 2015 -0300 [media] tuners: Make all TV tuners visible if COMPILE_TEST=y Make the TV tuners menu visible when compile-testing, to allow selecting additional drivers on top of the drivers that are already automatically selected if MEDIA_SUBDRV_AUTOSELECT is enabled. Without this, many drivers stay disabled during e.g. allmodconfig. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mauro Carvalho Chehab drivers/media/tuners/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b35ef52672997d7be71c8d8921099b7c8e3158a5 Author: Eric Anholt Date: Thu Jun 4 13:11:47 2015 -0700 ARM: bcm2835: Add the firmware driver information to the RPi DT Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Lee Jones arch/arm/boot/dts/bcm2835-rpi.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit fa9163b570d9cecedcfb45116f2a20dd03fb9cae Author: Vaishali Thakkar Date: Fri Jun 26 01:47:49 2015 -0300 [media] ttpci: 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. Note that the 6 in the third argument of memset appears to represent an ethernet address size (ETH_ALEN). The Coccinelle semantic patch that makes this change is as follows: // @eth_zero_addr@ expression e; @@ -memset(e,0x00,6); +eth_zero_addr(e); // Signed-off-by: Vaishali Thakkar Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ttpci/budget-av.c | 2 +- drivers/media/pci/ttpci/ttpci-eeprom.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) commit a73df85892964a436f9c7f2f803e143b8c97d1ac Author: Maninder Singh Date: Thu Jun 25 06:58:58 2015 -0300 [media] usb/airspy: removing unneeded goto This patch removes unneded goto, reported by coccinelle. Signed-off-by: Maninder Singh Reviewed-by: Akhilesh Kumar Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/airspy/airspy.c | 3 --- 1 file changed, 3 deletions(-) commit 845249172a363c2217af5926fac17f58c7228aa4 Author: Inki Dae Date: Tue Aug 11 21:23:49 2015 +0900 drm/atomic: fix null pointer access to mode_fixup callback This patch fixes null pointer access incurred when encoder driver didn't set its own mode_fixup callback. mode_fixup callback shoudn't be called if the callback of drm_encoder_helper_funcs is NULL. Changelog v2: - change it to else if Signed-off-by: Inki Dae Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 360325755336893869c419013ec0e33757432cbb Author: Anson Huang Date: Thu Aug 6 16:16:01 2015 +0800 ARM: dts: imx6ul: add snvs power key support Add i.MX6UL SNVS power key support. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5b032872c9c8a7abe3b19757f6873cc8b9864fc3 Author: Anson Huang Date: Tue Aug 4 23:54:58 2015 +0800 ARM: dts: imx6ul: add RTC support Add RTC support for i.MX6UL. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 18619ff55d613dc5c8276ae70e5ca4e48c609f44 Author: Anson Huang Date: Tue Aug 4 01:12:12 2015 +0800 ARM: dts: imx6ul: enable GPC as extended interrupt controller Enable GPC as extended interrupt controller of GIC, as GPC needs to manage wakeup source for low power modes. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul.dtsi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 461aa6d723ef7bfd0dcc44676976711e2c3445c6 Author: Anson Huang Date: Wed Aug 5 21:57:55 2015 +0800 ARM: dts: imx6sx: correct property name for wakeup source Commit(def56bb input: snvs_pwrkey: use "wakeup-source" as deivce tree property name) replaces the property name of "wakeup" with "wakeup-source", update this change in i.MX6SX dtsi accordingly. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sx.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit def0641e2f61a545a852887e15a19231c4c863c4 Author: Stefan Agner Date: Wed May 27 14:47:52 2015 +0200 ARM: dts: add property for maximum ADC clock frequencies The ADC clock frequency is limited depending on modes used. Add device tree property which allow to set the mode used and the maximum frequency ratings for the instance. These allows to set the ADC clock to a frequency which is within specification according to the actual mode used. Acked-by: Fugang Duan Signed-off-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit abb9f253cd9873f1826c4accdad89ec3fe80de21 Author: Frank Li Date: Wed Jul 29 01:50:00 2015 +0800 ARM: dts: imx7d: enable snvs rtc, onoffkey and power off Change SNVS rtc to syscon interface. Enable onoff key and power off function. Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit 5e8cdb01397fa2f2e368f44049c7a2b17a95ce9c Author: Fugang Duan Date: Tue Jul 28 15:30:42 2015 +0800 ARM: dts: imx6ul-14x14-evk: add fec1 and fec2 support Add ethernet fec1 and fec2 support for i.MX6ul 14x14 evk board. Signed-off-by: Fugang Duan Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul-14x14-evk.dts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 01f3dc7de3293a7ef3839b8173d348cfed2b7252 Author: Fugang Duan Date: Tue Jul 28 15:30:41 2015 +0800 ARM: dts: imx: add fec1 and fec2 nodes for SOC i.MX6UL SOC i.MX6UL has two ethernet MACs, add fec1 and fec2 support for i.MX6UL. Signed-off-by: Fugang Duan Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul.dtsi | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 91eca8d57c392620fa4c4917036925a38ef3f99e Author: Philippe Reynes Date: Sun Jul 26 23:37:53 2015 +0200 ARM: dts: imx27: add support of internal rtc Add support of internal rtc on imx27. Signed-off-by: Philippe Reynes Signed-off-by: Shawn Guo arch/arm/boot/dts/imx27.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 4f182ff7d43240aa7dbfd771954adfa1626f1cf6 Author: Stefan Agner Date: Wed Jul 15 16:50:17 2015 +0200 ARM: dts: vf-colibri: define stdout-path property Define Vybrid's UART0, connected to the Colibri pinout UART_A, as standard output. Signed-off-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vf-colibri-eval-v3.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 055223d4d22da918c3d4dae9122736dfd23ec4a4 Author: Claudiu Manoil Date: Tue Jul 28 17:43:56 2015 +0300 ARM: dts: ls1021a: Enable the eTSEC ports on QDS and TWR This enables the available eTSEC ethernet ports for the ls1021aqds and ls1021atwr boards. For the QDS, SGMII connections (via riser cards) are assumed for the eTSEC0 and eTSEC1 ports as default configuration. Signed-off-by: Alison Wang Signed-off-by: Claudiu Manoil Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a-qds.dts | 20 ++++++++++++++++++++ arch/arm/boot/dts/ls1021a-twr.dts | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) commit d69cb5d7ea1664225042c28313d93e6ad6ee506f Author: Claudiu Manoil Date: Tue Jul 28 17:43:55 2015 +0300 ARM: dts: ls1021a: Add the eTSEC controller nodes Add basic support for all the eTSEC controllers on the ls1021a SoC. Second interrupt group register blocks and their corresponding Rx/Tx/Err interrupt sources are included as well for each eTSEC node. Signed-off-by: Alison Wang Signed-off-by: Claudiu Manoil Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a.dtsi | 88 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) commit 5ff807a56767cd810dde0cec850caf8b6f504737 Author: Frank Li Date: Tue Jul 21 03:33:53 2015 +0800 ARM: dts: imx6ul: add qspi support enable qspi support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul-14x14-evk.dts | 25 +++++++++++++++++++++++++ arch/arm/boot/dts/imx6ul.dtsi | 13 +++++++++++++ 2 files changed, 38 insertions(+) commit 4e06dfabe83f757b9dd720592f7546480d1ac45f Author: Frank Li Date: Tue Jul 21 03:33:52 2015 +0800 ARM: dts: imx6ul: fix low case define in imx6ul-pinfunc.h some pin name should be capital "_B" instead of "_b" Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul-pinfunc.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit cad2cb69f5f03edef09cbd2e920ba66192647322 Author: Frank Li Date: Fri Jul 17 04:03:16 2015 +0800 ARM: dts: imx6ul: add usb host and function support Enable usb host and function driver Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul-14x14-evk.dts | 11 +++++++++++ arch/arm/boot/dts/imx6ul.dtsi | 27 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) commit 9b1793afef83e088ca38f2a348a958e6ceea8e0c Author: Sanchayan Maity Date: Thu Jul 16 20:43:19 2015 +0530 ARM: dts: vfxxx: Add io-channel-cells property for ADC node This commit adds io-channel-cells property to the ADC node. This property is required in order for an IIO consumer driver to work. Especially required for Colibri VF50, as the touchscreen driver uses ADC channels with the ADC driver based on IIO framework. Signed-off-by: Sanchayan Maity Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 50897cb6fa45981454a52546dbc3b1a53d195f08 Author: Alison Wang Date: Wed Jul 15 16:02:46 2015 +0800 ARM: dts: ls1021a: Add dts nodes for audio on LS1021A This patch adds dts nodes for audio on LS1021A. Signed-off-by: Alison Wang Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a-qds.dts | 69 +++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/ls1021a-twr.dts | 61 ++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/ls1021a.dtsi | 14 ++++---- 3 files changed, 138 insertions(+), 6 deletions(-) commit 0f92fd49ffc4e687fcdc64242b225d4cfffaa1b2 Author: Peter Chen Date: Fri Mar 13 14:21:43 2015 +0800 ARM: imx6qdl-sabreauto.dtsi: enable USB support Add USBOTG and USB host 1 support Signed-off-by: Peter Chen Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 95d739b5ca6dc42206a9b4c0a2005f6e2170c62a Author: Frank Li Date: Wed May 27 00:25:59 2015 +0800 ARM: dts: imx: update snvs to use syscon access register snvs is MFP device. Change dts to use syscon to allocate register resource. snvs power off also switch to common syscon-poweroff Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl.dtsi | 21 +++++++++++---------- arch/arm/boot/dts/imx6sl.dtsi | 21 +++++++++++---------- arch/arm/boot/dts/imx6sx.dtsi | 19 ++++++++++--------- arch/arm/boot/dts/vfxxx.dtsi | 11 +++++------ 4 files changed, 37 insertions(+), 35 deletions(-) commit a5fcccbc6ef8a6a0e015f3b72a2d8fcac8210425 Author: Frank Li Date: Fri Jul 10 02:09:45 2015 +0800 ARM: dts: imx: add imx6ul and imx6ul evk board support Add new SOC i.MX6UL dtb file support, including evk board support i.MX6 Ultralite processor include one ARM cortext-A7 core. Offer high perfomance and lowest power consumption. Main included: - 4 MMC/SD/SDIO - 2 USB 2.0 OTG - 3 I2S/SAI/AC97 - 4 eCSPI - 4 I2C - 2 ENET - 2 CAN - 3 wdog - ASRC - 8 uart - LCDIF - PXP Signed-off-by: Anson Huang Signed-off-by: Fugang Duan Signed-off-by: Fancy Fang Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/imx6ul-14x14-evk.dts | 278 +++++++++++++++ arch/arm/boot/dts/imx6ul.dtsi | 607 +++++++++++++++++++++++++++++++++ 3 files changed, 887 insertions(+) commit 7eeb662ad27862d965b9692f7ca649d70947db76 Author: Frank Li Date: Fri Jul 10 02:09:44 2015 +0800 ARM: dts: add i.mx6ul pin function include file add pin mux define file Signed-off-by: Bai Ping Signed-off-by: Anson Huang Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6ul-pinfunc.h | 938 +++++++++++++++++++++++++++++++++++++ 1 file changed, 938 insertions(+) commit f3ff96e90733c24dc2f7e510822eb177d22683ed Author: Frank Li Date: Fri Jul 10 02:09:43 2015 +0800 Document: dt: binding: imx: update document for imx6ul support This part just add necessary change to boot imx6ul. Update clock and pinctrl for imx6ul Signed-off-by: Frank Li Signed-off-by: Shawn Guo .../devicetree/bindings/clock/imx6ul-clock.txt | 13 ++++++++ .../bindings/pinctrl/fsl,imx6ul-pinctrl.txt | 36 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) commit 3b7816bade36f4f04a61d3c2920b5a110f23ce84 Author: Cory Tusar Date: Wed Jul 8 16:51:06 2015 -0400 ARM: dts: vfxxx: Include support for esdhc0 functionality. Extend the existing Vybrid eSDHC devicetree implementation to also describe the esdhc0 functional block. Tested on a custom VF610-based board with a Toshiba THGBM1G5D2EBAI7 eMMC module attached to esdhc0. Signed-off-by: Cory Tusar Acked-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ed339363de1b5c4630268aa7f934503aaccccb70 Author: Fabio Estevam Date: Mon Jul 13 13:03:05 2015 -0300 ARM: dts: imx6qdl-sabreauto: 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 HSD100PXN1 LVDS panel. Signed-off-by: Fabio Estevam Acked-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 6f5e69672e814e599baf735cda9e1c360d145cd0 Author: Cory Tusar Date: Wed Jul 8 16:21:16 2015 -0400 ARM: dts: vfxxx: Include support for qspi1 functionality. This commit extends the existing Vybrid QSPI devicetree implementation to also describe the qspi1 functional block. Signed-off-by: Cory Tusar Reviewed-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit f4b89232f24a9dc37f72874bc418454e9363f52a Author: Cory Tusar Date: Wed Jul 8 16:21:15 2015 -0400 ARM: dts: vf610: Add missing QuadSPI register mapping and names. Both 'reg' and 'reg-names' are required properties according to binding documentation, and both should contain two items. Signed-off-by: Cory Tusar Acked-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c47d6e380bcf6b45b481a14ea90b4b7aaa95027f Author: Haikun Wang Date: Wed Jul 8 10:43:40 2015 +0800 ARM: dts: ls1021a: Update 'dspi' device node compatible string Freescale DSPI driver has been updated and supports TCF interrupt type now. In the new driver we choose the interrupt type according the compatible string of the device node. This patch update the compatible string of DSPI device node of LS1021A in order to use the correct interrupt type. Signed-off-by: Haikun Wang Signed-off-by: Shawn Guo arch/arm/boot/dts/ls1021a.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3adab7c796f60338f9c1c7bdbc7f24eaf39acf96 Author: Frank Li Date: Tue Jun 30 22:58:11 2015 +0800 ARM: dts: imx7d: add cortex-a7 coresight component Added etm, etb, funnel and replicator usage example: echo 1 >/sys/bus/coresight/devices/30086000.etr/enable_sink echo 1 >/sys/bus/coresight/devices/3007c000.etm/enable_source coresight-tmc 30086000.etr: TMC enabled coresight-replicator replicator.1: REPLICATOR enabled coresight-tmc 30084000.tmc: TMC enabled coresight-funnel 30083000.funnel: FUNNEL inport 0 enabled coresight-funnel 30041000.funnel: FUNNEL inport 0 enabled coresight-etm3x 3007c000.etm: ETM tracing enabled etm enable here. trace data save at /dev/30086000.etr cat /dev/30086000.etr > trace.data coresight-tmc 30086000.etr: TMC read start coresight-tmc 30086000.etr: TMC read end use ptm2human(https://github.com/hwangcc23/ptm2human) to show trace data ptm2human -i trace.data Signed-off-by: Frank Li Acked-by: Mathieu Poirier Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 203 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) commit 7804fbcfe5156ff7eb802c2c71f0dca74d4f7f34 Author: Fabio Estevam Date: Mon Jun 29 13:16:54 2015 -0300 ARM: dts: imx6qdl-nitrogen6x: 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 HSD100PXN1 LVDS panel. Signed-off-by: Fabio Estevam Tested-by: Gary Bisson Acked-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit b6db3097db6bcd75061d0a0fdae1fbbcffc1bf2d Author: Fabio Estevam Date: Mon Jun 29 13:16:53 2015 -0300 ARM: dts: imx6qdl-sabrelite: 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 HSD100PXN1 LVDS panel. Signed-off-by: Fabio Estevam Tested-by: Gary Bisson Acked-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit d23dfefaf0b4b85756fa2bc90cae21c7d50043c4 Author: Fabio Estevam Date: Mon Jun 29 10:05:42 2015 -0300 ARM: dts: imx6sl-warp: Add changes for rev1.12 Warp board rev1.12 is the version of the hardware that will be publicly available for the customers. It uses UART5 as the Bluetooth serial port as well as some additional signals for HOSTWAKE on Wifi and Bluetooth. Make the changes to support the rev1.12 hardware. Signed-off-by: Fabio Estevam Acked-by: Otavio Salvador Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sl-warp.dts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit d28be499c45e6e16d7a042ce280eb872dc06952b Author: Fabio Estevam Date: Fri Jun 26 14:10:53 2015 -0300 ARM: dts: imx6qdl-sabresd: 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 HSD100PXN1 LVDS panel. Signed-off-by: Fabio Estevam Acked-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit d7f005e8392e41014864b717e00a0777ebcfc64e Author: Linus Walleij Date: Tue Aug 11 17:11:29 2015 +0200 pinctrl: nomadik: reflect current input value Let us see the current value on the input line in debugfs. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik.c | 5 +++++ 1 file changed, 5 insertions(+) commit 8a0fa1843638c5078e6606114ed8bdf9ea56fab1 Author: Shawn Guo Date: Mon Jul 13 15:58:51 2015 +0800 rtc: snvs: select option REGMAP_MMIO Select REGMAP_MMIO to fix the following build error seen with x86_64 randconfig. drivers/built-in.o: In function `snvs_rtc_probe': rtc-snvs.c:(.text+0x567730): undefined reference to `devm_regmap_init_mmio_clk' Reported-by: kbuild test robot Signed-off-by: Shawn Guo Acked-by: Frank Li Acked-by: Alexandre Belloni drivers/rtc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 28c0a8433dd56146627d00907ad99084654741e8 Author: Eddie Huang Date: Thu Aug 6 15:22:11 2015 +0800 i2c: mediatek: Fixup i2c ack error interrupt handling When occur i2c ack error, i2c controller generate two interrupts, first is the ack error interrupt, then the complete interrupt. i2c interrupt handler should keep the two interrupt value, and only call complete() for the complete interrupt. Signed-off-by: Liguo Zhang Signed-off-by: Eddie Huang Reviewed-by: Daniel Kurtz Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-mt65xx.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit ea89ef1f7bf7c71b4f533a6ffb3f6f124890b37b Author: Eddie Huang Date: Thu Aug 6 15:22:10 2015 +0800 i2c: mediatek: Reset DMA engine in hardware init function Reset DMA in hardware init function to avoid unknown hardware state before do any I2C operation. Signed-off-by: Liguo Zhang Signed-off-by: Eddie Huang Reviewed-by: Daniel Kurtz Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-mt65xx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5cc596c66fe7c725ec049ae2093e7242034c97d6 Author: Geert Uytterhoeven Date: Mon Jun 29 10:46:48 2015 -0300 [media] i2c: Make all i2c devices visible if COMPILE_TEST=y Make the i2c devices menu visible when compile-testing, to allow selecting additional drivers on top of the drivers that are already automatically selected if MEDIA_SUBDRV_AUTOSELECT is enabled. Without this, many drivers stay disabled during e.g. allmodconfig. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6df34051d8bd8807c873e1bb92b905e370ff3f5b Author: Geert Uytterhoeven Date: Mon Jun 29 10:46:47 2015 -0300 [media] dvb-frontends: Make all DVB Frontends visible if COMPILE_TEST=y Make the DVB Frontends menu visible when compile-testing, to allow selecting additional drivers on top of the drivers that are already automatically selected if MEDIA_SUBDRV_AUTOSELECT is enabled. Without this, many drivers stay disabled during e.g. allmodconfig. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e3f2987f3acbdc99b1f527392a40783323b266b Author: Luis R. Rodriguez Date: Wed Jun 24 14:23:20 2015 -0300 [media] x86/mm/pat, drivers/media/ivtv: move pat warn and replace WARN() with pr_warn() On built-in kernels this warning will always splat as this is part of the module init. Fix that by shifting the PAT requirement check out under the code that does the "quasi-probe" for the device. This device driver relies on an existing driver to find its own devices, it looks for that device driver and its own found devices, then uses driver_for_each_device() to try to see if it can probe each of those devices as a frambuffer device with ivtvfb_init_card(). We tuck the PAT requiremenet check then on the ivtvfb_init_card() call making the check at least require an ivtv device present before complaining. Reported-by: Fengguang Wu [0-day test robot] Signed-off-by: Luis R. Rodriguez Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtvfb.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 7ac5f8315e3daf277ae47620bffe412ef2bf3ab4 Author: Antonio Borneo Date: Tue Jun 23 11:53:19 2015 -0300 [media] s5c73m3: Remove redundant spi driver bus initialization In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_register_driver(), so we can drop the manual assignment. Signed-off-by: Antonio Borneo Reviewed-by: Andrzej Hajda Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/s5c73m3/s5c73m3-spi.c | 1 - 1 file changed, 1 deletion(-) commit e8e9055594e3d9177416aa4e7ff8619cda3745a9 Author: Krzysztof Hałasa Date: Fri Jun 19 07:20:40 2015 -0300 [media] pci/Kconfig: don't use MEDIA_ANALOG_TV_SUPPORT for grabber cards I noticed certain cards are currently under MEDIA_ANALOG_TV_SUPPORT but it seems they are frame grabbers (with CVBS, Svideo etc. inputs) rather than TV receivers (with analog TV tuners). MEDIA_CAMERA_SUPPORT maybe isn't the best name (only "meye" driver seems to drive a real camera in a laptop) but it at least doesn't select the TUNERs. Perhaps the following patch would make sense. Signed-off-by: Krzysztof Ha?asa Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dd30acc889f586cecdea0d7f401f3dc80752b41e Author: Inha Song Date: Fri Aug 7 10:35:59 2015 +0900 mfd: wm8994: Fix NULL pointer exception on missing pdata If we use the dev_get_platdata, pdata can be NULL in DT environments. Actually, NULL pointer exception is occurs with error messages like this: [ 1.226583] Unable to handle kernel NULL pointer dereference at virtual address 00000044 [ 1.467910] [] (wm8994_irq_init) from [] (wm8994_i2c_probe+0x684/0x858) [ 1.476241] [] (wm8994_i2c_probe) from [] (i2c_device_probe+0x11c/0x17c) In wm8994-core, we already checked whether platform data is NULL and set the wm8994->pdata to platform data if platform data is not NULL. So, we can use wm8994->pdata instead of platform data. Signed-off-by: Inha Song Acked-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/wm8994-irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff066f731a71409a3c29d8bd1d702867167c6994 Author: Constantine Shulyupin Date: Thu Aug 6 01:20:56 2015 +0300 of: Add vendor prefix for Nuvoton Signed-off-by: Constantine Shulyupin Signed-off-by: Lee Jones Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit f3151ab4a7320ce3f48955fe796bd90dd00881ab Author: Henry Chen Date: Mon Aug 10 21:10:45 2015 +0800 mfd: mt6397: Implement wake handler and suspend/resume to handle wake up event Implement .irq_set_wake() to get who is wakeup source and setup on suspend/reumse. Enable mt6393_irq as wake up source properly to pinctrl by enable_irq_wake()/enable_irq_wake(). Signed-off-by: Henry Chen Signed-off-by: Lee Jones drivers/mfd/mt6397-core.c | 49 +++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/mt6397/core.h | 1 + 2 files changed, 50 insertions(+) commit d9c93f5de8c84ccbb58fd88a530b730643fbb129 Author: Boris Brezillon Date: Fri Jul 31 18:45:54 2015 +0200 mfd: atmel-hlcdc: Add support for new SoCs Add the compatible strings for the at91sam9x5, at91sam9n12, sama5d4 and sama5d2 SoCs. Update the documentation accordingly. Signed-off-by: Boris Brezillon Signed-off-by: Nicolas Ferre Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt | 4 ++++ drivers/mfd/atmel-hlcdc.c | 4 ++++ 2 files changed, 8 insertions(+) commit 4895e493f91bff7f96f328b883c7f6448aa6abc6 Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:41 2015 +0200 mfd: Export OF module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Lee Jones drivers/mfd/rt5033.c | 1 + drivers/mfd/tps65217.c | 1 + drivers/mfd/tps65218.c | 1 + 3 files changed, 3 insertions(+) commit 0f63bdedcc749917e74093ecbd8dae7b77934f19 Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:26 2015 +0200 mfd: stw481x: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Lee Jones drivers/mfd/stw481x.c | 1 + 1 file changed, 1 insertion(+) commit 68b6fd02e6a62d6bdb62e7e74e7c62a8ec54346e Author: S Twiss Date: Thu Jul 23 17:17:41 2015 +0100 mfd: da9062: Support for the DA9063 OnKey in the DA9062 core Add MFD core driver support for a OnKey component - MFD core adds the resource da9062_onkey_resources[] for the OnKey - An appropriate value has been added into mfd_cell da9062_devs[] to support component .name = "da9062-onkey" and .of_compatible = "dlg,da9062-onkey" Signed-off-by: Steve Twiss Signed-off-by: Lee Jones drivers/mfd/da9062-core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e5ad234485ee868c09f2d59b2ed94d6c6e6d3f19 Author: Thomas Gleixner Date: Mon Jul 13 20:44:59 2015 +0000 mfd: max899x: Avoid redundant irq_data lookup It's pretty silly to do irq_data *d = irq_get_irq_data(irq_data->irq); because that results in d = irq_data, but goes through a lookup of the irq_data. Use irq_data directly. Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/max8997-irq.c | 7 +++---- drivers/mfd/max8998-irq.c | 9 +++------ 2 files changed, 6 insertions(+), 10 deletions(-) commit 0d674d93a08f0073a9eb290bbac56fdedc4f319d Author: Thomas Gleixner Date: Mon Jul 13 20:44:57 2015 +0000 mfd: ucb1x00: Prepare ucb1x00_irq for irq argument removal irq is incremented for no value in the for loop. Remove it. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/ucb1x00-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1e84aa445893a608445af2fda5d8a03c0a86af84 Author: Jiang Liu Date: Mon Jul 13 20:44:56 2015 +0000 mfd: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Do the same change to avoid the pattern "irq_get_chip_data(data->irq)". Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/ezx-pcap.c | 2 +- drivers/mfd/max8997-irq.c | 8 ++++---- drivers/mfd/mt6397-core.c | 8 ++++---- drivers/mfd/t7l66xb.c | 2 +- drivers/mfd/tc6393xb.c | 2 +- drivers/mfd/twl6030-irq.c | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) commit 079140f5cee9d8e0290de12ac1bf74f1ebe72881 Author: Thomas Gleixner Date: Mon Jul 13 20:44:54 2015 +0000 mfd: tc6393xb: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/tc6393xb.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit de7c9e0da9ca5962ed562296eaa521e5cc492322 Author: Thomas Gleixner Date: Mon Jul 13 20:44:52 2015 +0000 mfd: t7l66xb: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/t7l66xb.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit b79f04382e265cd6e927977581d2fddb53ef916a Author: Thomas Gleixner Date: Mon Jul 13 20:44:51 2015 +0000 mfd: pm8921: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Reported-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/pm8921-core.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 59fa909e774d80c20cf69e98fd2ba76bcc0f3fbc Author: Thomas Gleixner Date: Mon Jul 13 20:44:49 2015 +0000 mfd: jz4740: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/jz4740-adc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 073f7f99a0054a3af6ecef1d0ce12aab9c800460 Author: Thomas Gleixner Date: Mon Jul 13 20:44:47 2015 +0000 mfd: htc-egpio: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/htc-egpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c89fc9ac88ad99c0e629204d1b62af57367fd32d Author: Thomas Gleixner Date: Mon Jul 13 20:44:46 2015 +0000 mfd: ezx-pcap: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Signed-off-by: Lee Jones drivers/mfd/ezx-pcap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9bd09f345e62257958342f712efef644494274fb Author: Rob Herring Date: Mon Jul 27 15:55:20 2015 -0500 mfd: Kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Acked-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/88pm860x-core.c | 4 ---- drivers/mfd/ab8500-core.c | 4 ---- drivers/mfd/arizona-irq.c | 7 ------- drivers/mfd/asic3.c | 4 ++-- drivers/mfd/db8500-prcmu.c | 1 - drivers/mfd/ezx-pcap.c | 6 +----- drivers/mfd/htc-egpio.c | 4 ++-- drivers/mfd/htc-i2cpld.c | 6 +----- drivers/mfd/lp8788-irq.c | 5 ----- drivers/mfd/max8925-core.c | 5 +---- drivers/mfd/max8997-irq.c | 5 +---- drivers/mfd/max8998-irq.c | 5 +---- drivers/mfd/mt6397-core.c | 4 ---- drivers/mfd/pm8921-core.c | 5 +---- drivers/mfd/rc5t583-irq.c | 4 +--- drivers/mfd/stmpe.c | 7 ------- drivers/mfd/t7l66xb.c | 6 ------ drivers/mfd/tc3589x.c | 7 ------- drivers/mfd/tc6393xb.c | 4 ++-- drivers/mfd/tps6586x.c | 7 ------- drivers/mfd/tps65912-irq.c | 8 +------- drivers/mfd/twl4030-irq.c | 11 +---------- drivers/mfd/twl6030-irq.c | 13 ------------- drivers/mfd/ucb1x00-core.c | 2 +- drivers/mfd/wm831x-irq.c | 7 ------- drivers/mfd/wm8350-irq.c | 8 +------- drivers/mfd/wm8994-irq.c | 7 ------- 27 files changed, 17 insertions(+), 139 deletions(-) commit 035faf4bd2776237940c95d08bfe8928fe0a80e1 Author: Linus Walleij Date: Wed Jul 22 09:55:43 2015 +0200 mfd: ipaq-micro: Convert to built-in platform driver Signal that this is a built-in driver and call its probe function immediately on init. Suppress binding attributes and delete the .remove() function since it is never unloaded. Tag probe() and functions only called from probe() with __init. Delete all module macros since this is a pure built-in. Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ipaq-micro.c | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) commit 31115336d95d7d9ebb4b1bb8449876f798b0b2f7 Author: Linus Walleij Date: Wed Jul 22 09:55:42 2015 +0200 mfd: ipaq-micro: Convert prints to debug prints There is a special function for debug prints rather than the usual hexdump function, let's use it. Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ipaq-micro.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7d60bfc945c7c59bd852a5bedefb7ecb6bbef7ec Author: Linus Walleij Date: Wed Jul 22 09:55:41 2015 +0200 mfd: ipaq-micro: Clean up development cruft Clean out a misspelled "HW" (MW) and remove commented-out codeline. Signed-off-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/ipaq-micro.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2f5532a231de3bf9d6e87623f0b307362946e52d Author: S Twiss Date: Tue Jul 21 11:29:06 2015 +0100 devicetree: da9062: Add device tree bindings for DA9062 RTC Add device tree bindings for the DA9062 RTC driver component Signed-off-by: Steve Twiss Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/da9062.txt | 9 +++++++++ 1 file changed, 9 insertions(+) commit ca1ce176af986213bfdc86ce73c05ab0d2aa3578 Author: S Twiss Date: Tue Jul 21 11:29:06 2015 +0100 mfd: da9062: Support for the DA9063 RTC in the DA9062 core Add MFD core driver support for a RTC component - MFD core adds the RTC resources da9062_rtc_resources[] for the RTC alarm and tick timer IRQ - An appropriate mfd_cell has been added into da9062_devs[] to support a component .name = "da9062-rtc" and .of_compatible = "dlg,da9062-rtc" Signed-off-by: Steve Twiss Signed-off-by: Lee Jones drivers/mfd/da9062-core.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 496e43aeacab245ca57139e89d83655f8370e0ef Author: Richard Fitzgerald Date: Mon Jul 20 16:53:47 2015 +0100 mfd: arizona: Specify regmap endianness Explicitly set the regmap endianness instead of relying on the default being correct. Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones drivers/mfd/wm5102-tables.c | 4 ++++ drivers/mfd/wm5110-tables.c | 4 ++++ drivers/mfd/wm8997-tables.c | 2 ++ drivers/mfd/wm8998-tables.c | 2 ++ 4 files changed, 12 insertions(+) commit 34885237bf7d744433d3c4558a852e20fb2c2837 Author: Chris Zhong Date: Mon Jul 20 17:23:52 2015 +0800 mfd: rk808: dt: Add the description about dvs gpio for rk808 add the description about dvs1, dvs2, and add the example. Signed-off-by: Chris Zhong Reviewed-by: Doug Anderson Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/rk808.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit f1837e4ad502d6b15be864ace04b681e5b0fd49e Author: Bjorn Andersson Date: Tue Jul 14 23:40:34 2015 -0700 mfd: pm8921: Implement irq_get_irqchip_state Implement irq_chip->irq_get_irqchip_state to make it possible for PMIC block drivers to access the IRQ real time status bits. The status bits are used for various kinds of input signals, e.g. GPIO. Signed-off-by: Bjorn Andersson Acked-by: Linus Walleij Signed-off-by: Lee Jones drivers/mfd/pm8921-core.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit ea31c0cf9b071127a3f16f02b7494b9e5fd6f71f Author: Boris Brezillon Date: Tue Jul 7 19:16:43 2015 +0200 mfd: atmel-hlcdc: Implement config synchronization Some HLCDC registers cannot be written until the hardware has finished applying the previous configuration request. If they are written while an action is still in progress, the new configuration might be silently ignored, resulting in unpredictable behavior. Hide the config synchronization stuff in a regmap implementation and use this implementation instead of the generic mmio one. Signed-off-by: Boris Brezillon Acked-by: Nicolas Ferre Signed-off-by: Lee Jones drivers/mfd/atmel-hlcdc.c | 51 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) commit 3811405e2f9bc6f39c0cd5aadf95a957ae27b395 Author: Javier Martinez Canillas Date: Fri Jul 17 10:17:58 2015 +0200 MAINTAINERS: Add an entry for the Maxim MAX77802 PMIC drivers I added support for the max77802 drivers and have been maintaining them. So add an entry for these drivers to make tools like get_maintainer.pl to work and make people submitting patches add me to the CC list. Signed-off-by: Javier Martinez Canillas Acked-by: Krzysztof Kozlowski Signed-off-by: Lee Jones MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 377452f444a63475072cac13159295faac792450 Author: Javier Martinez Canillas Date: Fri Jul 17 10:17:57 2015 +0200 MAINTAINERS: Add Device Tree binding doc for max77686 regulator The Device Tree binding documentation for the Maxim max77686 regulators has been moved from the Multi-Function Device DT binding section to its own Documentation/devicetree/bindings/regulator/max77686.txt file. Use a wilcard so both the mfd and regulator DT bindings are resolved. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03b42710420f2db5cc1e3506625e1311becb286b Author: Steve Twiss Date: Fri Jul 17 10:55:10 2015 +0100 mfd: da9063: Fix missing DA9063_M_DVC_RDY mask bit Fix a missing DVC_RDY interrupt mask in struct regmap_irq definition. The original submission of this driver did not contain all interrupt masking definitions in the struct regmap_irq contained in the file da9063-irq.c The solution is to add a DA9063_IRQ_DVC_RDY entry to enum da9063_irqs list and to add the corresponding values to compensate for the missing mask bit in the static const struct regmap_irq da9063_irqs[] table. Signed-off-by: Steve Twiss Signed-off-by: Adam Ward Signed-off-by: Lee Jones drivers/mfd/da9063-irq.c | 4 ++++ include/linux/mfd/da9063/core.h | 1 + 2 files changed, 5 insertions(+) commit d8d79f8f60c4363a0fa490ff1626be4bd5e003a3 Author: Michal Suchanek Date: Sat Jul 11 14:59:56 2015 +0200 mfd: axp20x: Add axp152 support The axp152 is a stripped down version of the axp202 pmic with the battery charging function removed as it is intended for top-set boxes. Signed-off-by: Michal Suchanek Signed-off-by: Hans de Goede Signed-off-by: Lee Jones drivers/mfd/axp20x.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/mfd/axp20x.h | 61 +++++++++++++++++++++++++++++++++- 2 files changed, 143 insertions(+), 1 deletion(-) commit 18ca2ba5995d950619589355c3bc760b2a91e2bf Author: Michael Brunner Date: Tue Jul 14 13:20:50 2015 +0200 mfd: kempld-core: Add support for COMe-bBL6 and COMe-cBW6 to Kontron PLD driver This patch adds the DMI system ID of the Kontron COMe-bBL6 and COME-cBW6 boards to the Kontron PLD driver. The list of supported products in the module description is also updated. Signed-off-by: Michael Brunner Acked-by: Christian Rauch Reviewed-by: Guenter Roeck Signed-off-by: Lee Jones drivers/mfd/Kconfig | 2 ++ drivers/mfd/kempld-core.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) commit 13e72a49376efb9c743578b707033f1cb8865a55 Author: Hans de Goede Date: Sat Jul 11 14:59:55 2015 +0200 mfd: axp20x: Add binding documentation for AXP152 PMIC Add devicetree binding documentation for the AXP152 PMIC, this is a stripped down version of the AXP202 PMIC with the battery charging function removed. Signed-off-by: Michal Suchanek Signed-off-by: Hans de Goede Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/axp20x.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 51d0eb81b106a577d686e9ced5aacdc85afb5d0a Author: Ivan T. Ivanov Date: Wed Jul 8 12:40:05 2015 +0300 mfd: qcom-rpm: Add apq8064 QDSS clock resource Qualcomm Debug Subsystem clock is used by CoreSight components. Add required definitions for it. qcom_rpm_resource::status_id is not used by driver, so just mark it as ~0. Signed-off-by: Ivan T. Ivanov Signed-off-by: Lee Jones drivers/mfd/qcom_rpm.c | 1 + 1 file changed, 1 insertion(+) commit 0e777366fb0eba6facc44f0604fe6adbaf21d604 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:05:40 2015 +0900 mfd: Drop owner assignment from i2c_drivers i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Lee Jones drivers/mfd/88pm800.c | 1 - drivers/mfd/88pm805.c | 1 - drivers/mfd/88pm860x-core.c | 1 - drivers/mfd/aat2870-core.c | 1 - drivers/mfd/ab3100-core.c | 1 - drivers/mfd/adp5520.c | 1 - drivers/mfd/arizona-i2c.c | 1 - drivers/mfd/as3711.c | 1 - drivers/mfd/as3722.c | 1 - drivers/mfd/axp20x.c | 1 - drivers/mfd/bcm590xx.c | 1 - drivers/mfd/cros_ec_i2c.c | 1 - drivers/mfd/da903x.c | 1 - drivers/mfd/da9052-i2c.c | 1 - drivers/mfd/da9055-i2c.c | 1 - drivers/mfd/da9063-i2c.c | 1 - drivers/mfd/intel_soc_pmic_core.c | 1 - drivers/mfd/lm3533-core.c | 1 - drivers/mfd/lp3943.c | 1 - drivers/mfd/lp8788.c | 1 - drivers/mfd/max14577.c | 1 - drivers/mfd/max77686.c | 1 - drivers/mfd/max77693.c | 1 - drivers/mfd/max8907.c | 1 - drivers/mfd/max8925-i2c.c | 1 - drivers/mfd/max8997.c | 1 - drivers/mfd/max8998.c | 1 - drivers/mfd/mc13xxx-i2c.c | 1 - drivers/mfd/palmas.c | 1 - drivers/mfd/rc5t583.c | 1 - drivers/mfd/retu-mfd.c | 1 - drivers/mfd/sec-core.c | 1 - drivers/mfd/si476x-i2c.c | 1 - drivers/mfd/smsc-ece1099.c | 1 - drivers/mfd/stmpe-i2c.c | 1 - drivers/mfd/tc3589x.c | 1 - drivers/mfd/tps6507x.c | 1 - drivers/mfd/tps65090.c | 1 - drivers/mfd/tps65217.c | 1 - drivers/mfd/tps65218.c | 1 - drivers/mfd/tps6586x.c | 1 - drivers/mfd/tps65910.c | 1 - drivers/mfd/tps65912-i2c.c | 1 - drivers/mfd/tps80031.c | 1 - drivers/mfd/twl6040.c | 1 - drivers/mfd/wm831x-i2c.c | 1 - drivers/mfd/wm8350-i2c.c | 1 - drivers/mfd/wm8400-core.c | 1 - drivers/mfd/wm8994-core.c | 1 - 49 files changed, 49 deletions(-) commit 66f2752fbb3b50ef816c41f07a6654610bb648ac Author: Axel Lin Date: Tue Jul 7 19:10:59 2015 +0800 mfd: wm8994-regmap: Constify reg_default tables These reg_default tables are not modified after initialized, so make them const. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/wm8994-regmap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e6c7efa7ee2eb7c15ea0fc0bd7ab6dc808cb57a3 Author: Charles Keepax Date: Tue Jun 30 11:23:53 2015 +0100 mfd: arizona: Fixup register table definitions The regmap register definitions have been a source of many small fixes as issues are discovered. As such I made a small automated tool to check these definitions. This patch fixes the issues (mostly harmless) located by that tool, the issues fall into three catagories: 1) Volatile registers that have a default in the defaults table (default has been removed from the table since it is redundant) 2) Registers that are marked as volatile but unreadable (register has been removed from the volatile list since it is obviously not being used) 3) Registers that arn't readable but have an entry in the defaults table (again removed since it is redundant) 4) Readable non-volatile registers that are missing a default, these are dangerous as they won't get synced during a cache sync. Fortunately, most of them seem to be registers that shouldn't be there (for example wm5102 had readable registers for DRC2 and ISRC3 which is doesn't have) Hopefully another tool will be produced to check the actual default values themselves but that is outside the scope of this patch. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/wm5102-tables.c | 47 ++------------------------------------------- drivers/mfd/wm5110-tables.c | 10 ---------- drivers/mfd/wm8997-tables.c | 6 ++---- 3 files changed, 4 insertions(+), 59 deletions(-) commit 922e3c220c6a5ab4aee066a9fc9aa17fcb0e4740 Author: S Twiss Date: Wed Jul 1 14:11:33 2015 +0100 mfd: da9062: dt: Add bindings for DA9062 driver Add device Tree Bindings for the DA9062 driver Signed-off-by: Steve Twiss Signed-off-by: Lee Jones Documentation/devicetree/bindings/mfd/da9062.txt | 79 ++++++++++++++++++++++++ 1 file changed, 79 insertions(+) commit 9b40b030c4ad685732dd3ad5b57249db52a74e71 Author: S Twiss Date: Wed Jul 1 14:11:32 2015 +0100 mfd: da9062: Supply core driver Add MFD core driver support for DA9062 Signed-off-by: Steve Twiss Signed-off-by: Lee Jones drivers/mfd/Kconfig | 12 + drivers/mfd/Makefile | 3 +- drivers/mfd/da9062-core.c | 512 ++++++++++++++++ include/linux/mfd/da9062/core.h | 50 ++ include/linux/mfd/da9062/registers.h | 1108 ++++++++++++++++++++++++++++++++++ 5 files changed, 1684 insertions(+), 1 deletion(-) commit 78b7d84c8f6e49f68d7b63c4d67242d4c1bfbadd Author: Maninder Singh Date: Thu Jul 2 08:52:58 2015 +0530 mfd: t7l66xb: Remove unnecessary pdata check o Making pdata NULL check to (!pdata) as coding standard and all other checks in file. o Removing redundant check of pdata, because we already check for pdata, and also derefernced before this check. Signed-off-by: Maninder Singh Signed-off-by: Lee Jones drivers/mfd/t7l66xb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 088d862c53f9664d8bca9f56fb4590e36fbf587a Author: Axel Lin Date: Tue Jul 7 08:52:06 2015 +0800 mfd: tps6586x: Fix up define for TPS6586X_MAX_REGISTER The latest valid register is TPS6586X_VERSIONCRC. Signed-off-by: Axel Lin Signed-off-by: Lee Jones drivers/mfd/tps6586x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6887b042c52ee05a405bae859f410c2f63b45339 Author: Richard Fitzgerald Date: Fri Jul 3 16:16:35 2015 +0100 mfd: arizona: Add support for WM8998 and WM1814 Signed-off-by: Richard Fitzgerald Signed-off-by: Lee Jones drivers/mfd/Kconfig | 6 + drivers/mfd/Makefile | 3 + drivers/mfd/arizona-core.c | 105 ++- drivers/mfd/arizona-i2c.c | 8 + drivers/mfd/arizona-irq.c | 9 + drivers/mfd/arizona.h | 5 + drivers/mfd/wm8998-tables.c | 1592 +++++++++++++++++++++++++++++++++ include/linux/mfd/arizona/core.h | 3 + include/linux/mfd/arizona/pdata.h | 2 + include/linux/mfd/arizona/registers.h | 220 +++++ 10 files changed, 1945 insertions(+), 8 deletions(-) commit bc00d68f2f209dd7ad01f64c3bdf67e608c363f1 Author: Vaibhav Hiremath Date: Fri Jun 26 18:38:11 2015 +0530 mfd: 880m80x: Make use of BIT() macro Instead of hard coding the shift for bit definition, use BIT() macro. Signed-off-by: Vaibhav Hiremath Signed-off-by: Lee Jones include/linux/mfd/88pm80x.h | 162 ++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 81 deletions(-) commit acdecb04e2115747f260700384f2c403c8e9693e Author: Javier Martinez Canillas Date: Thu Jun 25 02:20:44 2015 +0200 mfd: Remove MFD_CROS_EC_SPI depends on OF The ChromeOS EC SPI transport driver has a dependency on OF because it uses some OF helpers from the header. But there isn't a need for an explicit dependency since the header has stub functions if CONFIG_OF is not defined. Also, MFD_CROS_EC_SPI already depends on MFD_CROS_EC which in turn has a dependency on OF so in practice can't be selected without CONFIG_OF. Signed-off-by: Javier Martinez Canillas Signed-off-by: Lee Jones drivers/mfd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00b6e9ff01a8f41816060b2f70752f66f100fecd Author: Charles Keepax Date: Fri Jun 19 11:24:27 2015 +0100 mfd: arizona: Update several pdata members to unsigned Device tree and ACPI primarily deal with unsigned ints, many of the pdata members in the Arizona driver are signed ints but are only ever assigned positive values. Changing these pdata fields to unsigned ints avoids us having to choose between overly verbose code and Sparse warnings. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones include/linux/mfd/arizona/pdata.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 16f6a0df1d319705abf068bd1ebada344ad9d04f Author: Charles Keepax Date: Sun Jun 14 15:41:49 2015 +0100 mfd: arizona: Fix race between runtime suspend and IRQs The function arizona_irq_thread (the threaded handler for the arizona IRQs) calls pm_runtime_get_sync at the start to ensure that the chip is active as we handle the IRQ. If the chip is part way through a runtime suspend when an IRQ arrives the PM core will wait for the suspend to complete, before resuming. However, since commit 4f0216409f7c ("mfd: arizona: Add better support for system suspend") the runtime suspend function may call disable_irq, if the chip is going to fully power off, which will try to wait for any outstanding IRQs to complete. This results in deadlock as the IRQ thread is waiting for the PM operation to complete and the PM thread is waiting for the IRQ to complete. To avoid this situation we use disable_irq_nosync, which allows the suspending thread to finish the suspend without waiting for the IRQ to complete. This is safe because if an IRQ is being processed it can only be blocked at the pm_runtime_get_sync at the start of the handler otherwise it wouldn't be possible to suspend. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones drivers/mfd/arizona-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c465875aa3934c0fdcc26f936322455569e89add Author: Mathias Krause Date: Sat Jun 13 14:20:51 2015 +0200 mfd: intel_soc_pmic: Constify ACPI device ids Constify the ACPI device ID array, it doesn't need to be writable at runtime. Signed-off-by: Mathias Krause Signed-off-by: Lee Jones drivers/mfd/intel_soc_pmic_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d548ca43d0333a0c4af0c79e9e6aafc29cd5a854 Merge: 4b45efe 82805d1 2a7a0e9 Author: Lee Jones Date: Tue Aug 11 15:08:04 2015 +0100 Merge branches 'ib-mfd-base-acpi-dma-4.3', 'ib-mfd-clocksource-rtc-watchdog-4.3' and 'ib-mfd-i2c-x86-watchdog-4.3' into ibs-for-mfd-merged commit d5cf4023ebcbae13e14e3ab3c55cb744321b352e Author: Tadeusz Struk Date: Mon Aug 10 13:00:02 2015 -0700 crypto: qat - Fix adf_isr_resource_free name clash When both PF and VF drivers are build in linker complains about multiple definition of adf_isr_resource_[alloc/free] functions. Reported-by: Fengguang Wu Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c | 4 ++-- drivers/crypto/qat/qat_dh895xccvf/adf_drv.h | 4 ++-- drivers/crypto/qat/qat_dh895xccvf/adf_isr.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) commit 5cd01fe19be0e4ff3f0abfd6defc55a3b5dce224 Author: Paulo Flabiano Smorigo Date: Mon Aug 10 16:14:17 2015 -0300 Fix email address mistypo for NX/VMX crypto driver maintainers Signed-off-by: Herbert Xu MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2a7a0e9bf7b32e838d873226808ab8a6c00148f7 Author: Matt Fleming Date: Thu Aug 6 13:46:26 2015 +0100 watchdog: iTCO_wdt: Add support for TCO on Intel Sunrisepoint The revision of the watchdog hardware in Sunrisepoint necessitates a new "version" inside the TCO watchdog driver because some of the register layouts have changed. Also update the Kconfig entry to select both the LPC and SMBus drivers since the TCO device is on the SMBus in Sunrisepoint. Signed-off-by: Matt Fleming Reviewed-by: Guenter Roeck Signed-off-by: Lee Jones drivers/watchdog/Kconfig | 3 +- drivers/watchdog/iTCO_wdt.c | 71 ++++++++++++++++++++++++++++----------------- 2 files changed, 46 insertions(+), 28 deletions(-) commit 9424693035a57961a8eb09e96aab315a7096535d Author: Mika Westerberg Date: Thu Aug 6 13:46:25 2015 +0100 i2c: i801: Create iTCO device on newer Intel PCHs 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. In order to support the iTCO watchdog on newer PCHs we need to create the platform device here in the SMBus driver and pass all known resources using platform data. Signed-off-by: Mika Westerberg Signed-off-by: Matt Fleming Reviewed-by: Guenter Roeck Acked-by: Wolfram Sang Signed-off-by: Lee Jones drivers/i2c/busses/i2c-i801.c | 120 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) commit 420b54de25828c45f3fc1f12d52d9657f5e90a53 Author: Matt Fleming Date: Thu Aug 6 13:46:24 2015 +0100 mfd: watchdog: iTCO_wdt: Expose watchdog properties using platform data Intel Sunrisepoint (Skylake PCH) has the iTCO watchdog accessible across the SMBus, unlike previous generations of PCH/ICH where it was on the LPC bus. Because it's on the SMBus, it doesn't make sense to pass around a 'struct lpc_ich_info', and leaking the type of bus into the iTCO watchdog driver is kind of backwards anyway. This change introduces a new 'struct itco_wdt_platform_data' for use inside the iTCO watchdog driver and by the upcoming Intel Sunrisepoint code, which neatly avoids having to include lpc_ich headers in the i801 i2c driver. This change is overdue because lpc_ich_info has already found its way into other TCO watchdog users, notably the intel_pmc_ipc driver where the watchdog actually isn't on the LPC bus as far as I can see. A simple translation layer is provided for converting from the existing 'struct lpc_ich_info' inside the lpc_ich mfd driver. Signed-off-by: Matt Fleming Acked-by: Darren Hart [drivers/x86 refactoring] Reviewed-by: Guenter Roeck Signed-off-by: Lee Jones drivers/mfd/lpc_ich.c | 32 +++++++++++++++++++++++++++++--- drivers/platform/x86/intel_pmc_ipc.c | 9 ++++----- drivers/watchdog/iTCO_wdt.c | 11 +++++------ include/linux/mfd/lpc_ich.h | 6 ------ include/linux/platform_data/itco_wdt.h | 19 +++++++++++++++++++ 5 files changed, 57 insertions(+), 20 deletions(-) commit b0c49e2acc6e0e1bf5ae80a3afd63bdcfce19883 Author: Mauro Carvalho Chehab Date: Tue Aug 11 10:30:24 2015 -0300 [media] mantis: remove an uneeded goto Gotos makes a little harder to check the code. In this particular case, the goto is doing nothing but jumping into a return. Instead, just replace the goto by the return, making it simpler. Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/mantis_dma.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 1a08a84cc68e87d541a9b6e00d53243c2de68011 Merge: 1e86355 94bdc48 Author: Olof Johansson Date: Tue Aug 11 15:31:53 2015 +0200 Merge tag 'renesas-dt3-for-v4.3' 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.3 * Add JPU support: r8a7791 and r8a7790 SoCs * Add MMCIF and PFC support: r8a7794 SoC * Add initial support for r8a7794/silk * Add missing "gpio-ranges" to gpio nodes: sh73a0, r8a7740 and r8a73a4 SoCs * tag 'renesas-dt3-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: sh73a0 dtsi: Add missing "gpio-ranges" to gpio node ARM: shmobile: r8a7740 dtsi: Add missing "gpio-ranges" to gpio node ARM: shmobile: r8a73a4 dtsi: Add missing "gpio-ranges" to gpio node ARM: shmobile: silk: add eMMC DT support ARM: shmobile: r8a7794: add MMCIF DT support ARM: shmobile: silk: add Ether DT support ARM: shmobile: silk: initial device tree ARM: shmobile: r8a7794: add PFC DT support ARM: shmobile: r8a7791: Add JPU device node. ARM: shmobile: r8a7790: Add JPU device node. Signed-off-by: Olof Johansson commit 4f2f1f76dc8c5cb6528d7451de6eacdbf8fb0cbf Author: Linus Walleij Date: Tue Jul 28 02:11:36 2015 +0200 ARM: nomadik: push accelerometer down to boards The two Nomadik variants have the accelerometer mounted on different I2C lines. Push the definition down to the top-level board DTS files to get things right. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-nomadik-nhk15.dts | 5 +++++ arch/arm/boot/dts/ste-nomadik-s8815.dts | 8 ++++++++ arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 5 ----- 3 files changed, 13 insertions(+), 5 deletions(-) commit 98badfd31ccb1448866b99cb6a64ad227d141d22 Author: Linus Walleij Date: Mon Jul 27 22:40:53 2015 +0200 ARM: nomadik: move l2x0 setup to device tree The cache setup magic value in the Nomadik machine is plain wrong, the correct settings can be done using device tree in accordance with the settings from ST's own port. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 7 +++++++ arch/arm/mach-nomadik/cpu-8815.c | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) commit 1cb3375bb53719a2d90793b5bc47f99c21dc6b72 Author: Linus Walleij Date: Thu Jul 23 23:14:20 2015 +0200 ARM: nomadik: selectively enable UART0 on boards The S8815 board is using RX/TX on UART0, and the NHK8815 is using RX/TX and CTS/RTS (the latter connected to a Bluetooth chip). Activate the right groups with the u0 UART0 function on each board and undisable it. Get rid of the old erroneous default definition from the SoC file. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-nomadik-nhk15.dts | 16 ++++++++++++++++ arch/arm/boot/dts/ste-nomadik-s8815.dts | 18 +++++++++++++++++- arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 10 ---------- 3 files changed, 33 insertions(+), 11 deletions(-) commit 4cec8cd790e3645d2e5ddf01cbe4ed2a90dcd94f Author: Linus Walleij Date: Sat May 30 17:30:26 2015 +0200 ARM: nomadik: move hog code to use DT hogs Instead of introducing a board-specific DT node for biasing the MMC/SD and SATA ports, use the new device tree hogs. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/boot/dts/ste-nomadik-nhk15.dts | 18 +++++++++-------- arch/arm/boot/dts/ste-nomadik-s8815.dts | 18 +++++++++-------- arch/arm/mach-nomadik/cpu-8815.c | 36 --------------------------------- 3 files changed, 20 insertions(+), 52 deletions(-) commit 919db5c3199cbd7cf503cdc42f3467a524d1f9ff Author: Fabio Estevam Date: Mon Aug 10 14:11:41 2015 -0300 [media] mantis: Fix error handling in mantis_dma_init() Current code assigns 0 to variable 'err', which makes mantis_dma_init() to return success even if mantis_alloc_buffers() fails. Fix it by checking the return value from mantis_alloc_buffers() and propagating it in the case of error. Reported-by: RUC_Soft_Sec Signed-off-by: Fabio Estevam Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/mantis/mantis_dma.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8e8a6b23f115906678252190c8fcf4168cc60fd5 Author: Hans Verkuil Date: Tue Jul 28 05:33:55 2015 -0300 [media] mt9v032: fix uninitialized variable warning drivers/media/i2c/mt9v032.c: In function ‘mt9v032_probe’: CC [M] drivers/media/i2c/s5k4ecgx.o drivers/media/i2c/mt9v032.c:996:20: warning: ‘pdata’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (pdata && pdata->link_freqs) { ^ It can indeed be uninitialized in one corner case. Initialize to NULL. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/mt9v032.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9deb6ad661c1656dc770d35336a84b0d885c3ff2 Author: Philipp Zabel Date: Thu Aug 6 09:38:02 2015 -0300 [media] v4l2: move tracepoint generation into separate file To compile videobuf2-core as a module, the vb2_* tracepoints must be exported from the videodev module. Instead of exporting vb2 tracepoint symbols from v4l2-ioctl.c, move the tracepoint generation into a separate file. This patch fixes the following build error in the modpost stage, introduced by 2091f5181c66 ("[media] videobuf2: add trace events"): ERROR: "__tracepoint_vb2_buf_done" undefined! ERROR: "__tracepoint_vb2_dqbuf" undefined! ERROR: "__tracepoint_vb2_qbuf" undefined! ERROR: "__tracepoint_vb2_buf_queue" undefined! Suggested-by: Steven Rostedt Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/Makefile | 3 +++ drivers/media/v4l2-core/v4l2-ioctl.c | 1 - drivers/media/v4l2-core/v4l2-trace.c | 11 +++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) commit b1304f9bdc3df8f213550b15cdfd7262420ef328 Author: Prashant Laddha Date: Mon Aug 3 05:36:43 2015 -0300 [media] vivid: support cvt, gtf timings for video out The generation of cvt, gtf timings is already supported by v4l2-ctl. This patch adds support for setting cvt,gtf timings for video out. While enabling cvt,gtf in vivid capture, the vivid video out was missed out. Adding it now. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vivid/vivid-vid-out.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 1e86355adc6df3e228e7fd053d25e301fe768094 Merge: 63ef577 ed05637 Author: Olof Johansson Date: Tue Aug 11 15:23:24 2015 +0200 Merge tag 'omap-for-v4.3/dt-pt3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Omap device tree changes for v4.3 merge window. Pretty much all just trivial additions to configure devices for various SoCs and boards: - Updates for omap3-devkit8000 board support - M3 coprosessor, regulator, mux, RTC and eMMC updates for am437x - MMC, regmap, mux and dwc3 updates for dra7 and omap5 * tag 'omap-for-v4.3/dt-pt3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (27 commits) ARM: dts: omap3-devkit8000: Add ADS7846 Touchscreen support ARM: dts: omap3-devkit8000: add LCD panels ARM: dts: omap3-devkit8000: Add DSS' DVI support ARM: dts: omap3-devkit8000: Add S-video output support ARM: dts: omap3-devkit8000: Add keymap support ARM: dts: omap3-devkit8000: Add PMU stat support ARM: dts: omap3-devkit8000: Add user button support ARM: dts: am437x-gp-evm: Add regulator-always-on and regulator-boot-on for RTC DCDCs ARM: dts: AM4372: Reorder the rtc compatible string ARM: dts: am437x-gp-evm: Add eMMC support ARM: dts: am437x-gp-evm: Add gpio-hog for configuring eMMC/NAND driver ARM: dts: am43xx: Introduce MUX_MODE9 for pinctrl ARM: dts: dra72-evm: Fix spurious card insert/removal interrupt ARM: dts: dra7-evm: Fix spurious card insert/removal interrupt ARM: dts: am57xx-beagle-x15: mmc1: remove redundant pbias-supply property ARM: dts: dra7-evm: Add MMCSD card removal GPIO ARM: dts: dra72-evm: Set max clock frequency of MMC1 and MMC2 ARM: dts: dra7-evm: add evm_3v3_sd regulator ARM: dts: dra72-evm: add evm_3v3_sd regulator ARM: dts: AM4372: Add the wkup_m3_ipc node ... Signed-off-by: Olof Johansson commit 63ef577d9ae51a2c4c34670f8f1eeded0be629b2 Author: Masahiro Yamada Date: Thu Aug 6 19:37:46 2015 +0900 ARM: dts: UniPhier: add reference daughter board This is used as a base board for reference core modules. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts | 1 + arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts | 1 + arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts | 1 + arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts | 1 + arch/arm/boot/dts/uniphier-ref-daughter.dtsi | 50 ++++++++++++++++++++++++++++ 5 files changed, 54 insertions(+) commit b6bb424b407ee0162fc492e6149847d0aa0034ff Author: Wei Huang Date: Fri Aug 7 15:53:30 2015 -0400 KVM: x86/vPMU: Fix unnecessary signed extension for AMD PERFCTRn According to AMD programmer's manual, AMD PERFCTRn is 64-bit MSR which, unlike Intel perf counters, doesn't require signed extension. This patch removes the unnecessary conversion in SVM vPMU code when PERFCTRn is being updated. Signed-off-by: Wei Huang Reviewed-by: Andrew Jones Signed-off-by: Paolo Bonzini arch/x86/kvm/pmu_amd.c | 2 -- 1 file changed, 2 deletions(-) commit b78bda5fd8d04029ca3da512b83e8e636791db53 Author: Gregory Fong Date: Thu Aug 6 19:22:38 2015 -0700 ARM: brcmstb: select ARCH_DMA_ADDR_T_64BIT for LPAE Broadcom STB (BRCMSTB) has some 64-bit capable DMA and therefore needs dma_addr_t to be a 64-bit size. One user is the Broadcom SATA3 AHCI controller driver. Signed-off-by: Gregory Fong Signed-off-by: Florian Fainelli Signed-off-by: Olof Johansson arch/arm/mach-bcm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit aeaeba1b6f0988ad4d9773ba2f1312e3f1436efa Author: Gregory Fong Date: Tue Aug 4 18:43:28 2015 -0700 ARM: BCM: Enable ARM erratum 798181 for BRCMSTB Commit 04fcab32d3fa1d3f6afe97e0ab431c5572e07a2c ("ARM: 8111/1: Enable erratum 798181 for Broadcom Brahma-B15") enables this erratum for affected Broadcom Brahma-B15 CPUs when CONFIG_ARM_ERRATA_798181=y. Let's make sure that config option is actually set. Signed-off-by: Gregory Fong Signed-off-by: Florian Fainelli Signed-off-by: Olof Johansson arch/arm/mach-bcm/Kconfig | 1 + 1 file changed, 1 insertion(+) commit e73ff4d29a780f2b09913cc8599a94e737546310 Author: Gregory Fong Date: Fri Jul 31 18:17:45 2015 -0700 ARM: dts: brcmstb: add BCM7445 GPIO nodes Need the aon_pm_l2_intc and irq0_aon_intc descriptions, so included those as well. Signed-off-by: Gregory Fong Signed-off-by: Florian Fainelli Signed-off-by: Olof Johansson arch/arm/boot/dts/bcm7445.dtsi | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit 1ff80363524cf78e2894b1c6fdd5b7b03ea41994 Author: Felix Fietkau Date: Wed Jul 29 23:51:00 2015 +0200 ARM: BCM5301X: Add profiling support Signed-off-by: Felix Fietkau Signed-off-by: Hauke Mehrtens Signed-off-by: Florian Fainelli Signed-off-by: Olof Johansson arch/arm/boot/dts/bcm5301x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit db44f1342d8c2606dbbcbcab83741a3d1c872cff Author: Hauke Mehrtens Date: Wed Jul 29 23:50:59 2015 +0200 ARM: BCM5301X: activate some additional options in pl310 cache controller In the default Broadcom SDK the shared override is activated for this cache controller, do the same in the upstream code. Data and instruction prefetching is not activated by default for this cache controller on the bcm53xx SoC, do it manually like it is done in the vendor SDK. Signed-off-by: Hauke Mehrtens Signed-off-by: Florian Fainelli Signed-off-by: Olof Johansson arch/arm/boot/dts/bcm5301x.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit efd16bda273a9be4f41343482c7c83e40f1cb4c8 Merge: 7776f8e 8248112 Author: Olof Johansson Date: Tue Aug 11 15:13:03 2015 +0200 Merge tag 'arm-soc/for-4.3/maintainers' of http://github.com/broadcom/stblinux into next/fixes-non-critical This pull request contains the following changes to the MAINTAINERS file: - Add Eric Anholt as a 3rd maintainer for the Raspberry Pi platform code/drivers - Add linux-arm-kernel for all bcm2835 related drivers * tag 'arm-soc/for-4.3/maintainers' of http://github.com/broadcom/stblinux: MAINTAINERS: Explicitly add linux-arm-kernel for bcm2835 MAINTAINERS: Add myself as a bcm2835 co-maintainer. Signed-off-by: Olof Johansson commit 603242a88ac44771442b077e0c9cb4d3af2b796f Author: Nicholas Krause Date: Wed Aug 5 10:44:40 2015 -0400 kvm: x86: Fix error handling in the function kvm_lapic_sync_from_vapic This fixes error handling in the function kvm_lapic_sync_from_vapic by checking if the call to kvm_read_guest_cached has returned a error code to signal to its caller the call to this function has failed and due to this we must immediately return to the caller of kvm_lapic_sync_from_vapic to avoid incorrectly call apic_set_tpc if a error has occurred here. Signed-off-by: Nicholas Krause Signed-off-by: Paolo Bonzini arch/x86/kvm/lapic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 42d0a99fd64ce01950d57c140aafa59defbb2ebb Merge: a5e921b 2cd2124 Author: Olof Johansson Date: Tue Aug 11 15:10:01 2015 +0200 Merge tag 'sirf-dts-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux into next/dt ARM: sirf: dts update for 4.3 some missed dt nodes or props for sirf dts for 4.3. Among them: - G2D - PWM - JPEG - Multimedia - PMU(performance monitor unit) - GMAC - SDR(software digital radio) and its DMA - pinmux for NAND - GPIO key * tag 'sirf-dts-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux: ARM: dts: atlas7: add a GPIO key for rearview button ARM: dts: atlas7: put pinctl property to get pinmux for NAND ARM: dts: atlas7: add software digital radio nodes and its DMA channels ARM: dts: atlas7: add lost PWM node ARM: dts: atlas7: add lost G2D node ARM: dts: atlas7: add multimedia codec node ARM: dts: atlas7: add alias name for spi device ARM: dts: atlas7: add lost gmac node ARM: dts: atlas7: add performance monitor unit node ARM: dts: atlas7: add lost jpeg node Signed-off-by: Olof Johansson commit a5e921b4771fbdaad97171184725ff60d8e8a7b0 Author: Masahiro Yamada Date: Tue Aug 4 20:21:04 2015 +0900 ARM: dts: uniphier: add ProXstream2 and PH1-LD6b SoC/board support Initial version of DTSI for ProXstream2 and PH1-LD6b and DTS for PH1-LD6b reference board. Signed-off-by: Masahiro Yamada [olof: sort Makefile entries] Signed-off-by: Olof Johansson arch/arm/boot/dts/Makefile | 5 +- arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts | 105 +++++++++++ arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi | 67 +++++++ arch/arm/boot/dts/uniphier-proxstream2.dtsi | 273 ++++++++++++++++++++++++++++ 4 files changed, 448 insertions(+), 2 deletions(-) commit 474e5ac6247f10924ef4c349c32b2cf303d51210 Author: Masahiro Yamada Date: Tue Aug 4 20:21:03 2015 +0900 ARM: dts: uniphier: add PH1-Pro5 SoC support Initial version of UniPhier PH1-Pro5 device tree. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-pro5.dtsi | 252 +++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) commit 68f46897ea7efbcb30d19304072074fac4569c54 Author: Masahiro Yamada Date: Tue Aug 4 20:21:02 2015 +0900 ARM: dts: uniphier: add I2C controller device nodes Add I2C controller device nodes for PH1-sLD3, PH1-LD4, PH1-sLD8 (FIFO-less I2C) and PH1-Pro4 (FIFO-builtin I2C). Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts | 8 +++ arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 58 ++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts | 10 ++++ arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 82 +++++++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts | 9 ++++ arch/arm/boot/dts/uniphier-ph1-sld3.dtsi | 61 +++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts | 8 +++ arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 58 ++++++++++++++++++++ arch/arm/boot/dts/uniphier-pinctrl.dtsi | 20 +++++++ 9 files changed, 314 insertions(+) commit b9efb8e30e99fe8ca9f886e0332eb0f29b6b48bb Merge: da5df64 5e080b0 Author: Olof Johansson Date: Tue Aug 11 15:01:26 2015 +0200 Merge tag 'samsung-dt-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt Samsung 1st DT updates for v4.3 - for exynos3250 : update video-phy node with syscon phandle - for exynos4210 : add CPU OPP and regulator supply property : use labels for overriding nodes for exynos4210-universal_c210 - for exynos4412-trats2 : set max17047 over heat and voltage thresholds - for exynos5250 and 5420 : extend exynos5250/5420-pinctrl nodes using labels : include exynos5250/5420-pinctrl after the nodes definitions - for exynos5410-smdk5410 : clean up indentation - for exynos5422-odroidxu3 : define default thermal-zones for exynos5422 : enable USB3 regulators, TMU and thermal-zones : add pwm-fan node * tag 'samsung-dt-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: dts: Extend exynos5420-pinctrl nodes using labels instead of paths ARM: dts: Include exynos5420-pinctrl after the nodes were defined for exynos5420 ARM: dts: Extend exynos5250-pinctrl nodes using labels instead of paths ARM: dts: Include exynos5250-pinctrl after the nodes were defined for exynos5250 ARM: dts: Enable thermal-zones for exynos5422-odroidxu3 ARM: dts: Define default thermal-zones for exynos5422 ARM: dts: Enable TMU for exynos5422-odroidxu3 ARM: dts: Add pwm-fan node for exynos5422-odroidxu3 ARM: dts: Use labels for overriding nodes for exynos4210-universal_c210 ARM: dts: Set max17047 over heat and voltage thresholds for exynos4412-trats2 ARM: dts: Enable USB3 regulators for exynos5422-odroidxu3 ARM: dts: Clean up indentation for exynos5410-smdk5410 ARM: dts: add CPU OPP and regulator supply property for exynos4210 ARM: dts: Update video-phy node with syscon phandle for exynos3250 Signed-off-by: Olof Johansson commit 28d250c4ed03e148ea98db6e5bb614002606adc2 Merge: fc293f5 d306d08 Author: Olof Johansson Date: Tue Aug 11 14:59:02 2015 +0200 Merge tag 'samsung-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/cleanup Samsung cleanup for v4.3 - make the following headers local watchdog-reset, onenand-core, irq-uart, backlight, ata-core, regs-usb-hsotg-phy, spi-core, nand-core, fb-core and regs-srom headers - make the following c file local s5p-dev-mfc, dev-backlight and setup-camif c file - remove keypad-core.h file - drop owner assignment in pmu.c - remove duplicated define of SLEEP_MAGIC - make exynos5420_powerdown_conf() staic * tag 'samsung-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: SAMSUNG: remove keypad-core header in plat-samsung ARM: SAMSUNG: local watchdog-reset header in mach-s3c64xx ARM: SAMSUNG: local onenand-core header in mach-s3c64xx ARM: SAMSUNG: local irq-uart header in mach-s3c64xx ARM: SAMSUNG: local backlight header in mach-s3c64xx ARM: SAMSUNG: local ata-core header in mach-s3c64xx ARM: SAMSUNG: local regs-usb-hsotg-phy header in mach-s3c64xx ARM: SAMSUNG: local spi-core header in mach-s3c24xx ARM: SAMSUNG: local nand-core header in mach-s3c24xx ARM: SAMSUNG: local fb-core header in mach-s3c24xx ARM: SAMSUNG: local regs-srom header in mach-exynos ARM: SAMSUNG: make local s5p-dev-mfc in mach-exynos ARM: SAMSUNG: make local dev-backlight in mach-s3c64xx ARM: SAMSUNG: make local setup-camif in mach-s3c24xx ARM: EXYNOS: Drop owner assignment in pmu.c ARM: EXYNOS: Remove duplicated define of SLEEP_MAGIC ARM: EXYNOS: Make local function static Signed-off-by: Olof Johansson commit 7111cddd518f7d51d72118b3cb42a8c6d3a00401 Author: William Towle Date: Thu Jul 23 09:21:34 2015 -0300 [media] media: adv7604: reduce support to first (digital) input Using adv7611_read_cable_det() for ADV7612 means that full support for '.max_port = ADV7604_PAD_HDMI_PORT_B,' isn't available due to the need for multiple port reads to determine cable detection, and an agreed mechanism for communicating the separate statuses. This patch replaces adv7611_read_cable_det() with a functionally identical copy, commented appropriately. Earlier submissions [leading to commit 8331d30b] also set .cp_csc, which is used in a cp_read() call within adv76xx_log_status(). Signed-off-by: William Towle Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit c1362384a85e429cd4e6f5fd65f130770224bcef Author: William Towle Date: Thu Jul 23 09:21:33 2015 -0300 [media] media: adv7604: fix probe of ADV7611/7612 Prior to commit f862f57d ("[media] media: i2c: ADV7604: Migrate to regmap"), the local variable 'val' contained the combined register reads used in the chipset version ID test. Restore this expectation so that the comparison works as it used to. Signed-off-by: William Towle Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16225ea7fa6843482c562f033b7ec270651636e9 Author: Hans Verkuil Date: Mon Jun 15 08:33:40 2015 -0300 [media] soc_camera: always release queue for queue owner Always release the queue if the owner closes its filehandle and not when it is the last open filehandle. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 2d703835b02c0d1adbea4b1eeac188be8e76710b Author: Hans Verkuil Date: Mon Jun 15 08:33:39 2015 -0300 [media] soc_camera: pass on streamoff error If streamoff returned an error, then pass that on to the caller. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9f317de424dfb57d8c3d3152ace24904bc402810 Author: Hans Verkuil Date: Mon Jun 15 08:33:38 2015 -0300 [media] soc_camera: compliance fixes - REQBUFS(0) will stop streaming, free buffers and release the file ownership. - Return ENOTTY for create_bufs for a vb1 driver - Return EBUSY if there is a different streaming owner and set the new owner on success. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit eb01b1bca9ac7644f178384a594881f2b3433773 Author: Hans Verkuil Date: Mon Jun 15 08:33:37 2015 -0300 [media] soc_camera: fix expbuf support - For vb1 drivers just return -ENOTTY. - For vb2 drivers allow vb2_expbuf without there being a stream owner: the vb2_expbuf function will return the correct error message in that case. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit d53c0f72757664d9011263cf655f49959d644028 Author: Hans Verkuil Date: Mon Jun 15 08:33:36 2015 -0300 [media] soc_camera: fix enum_input Fill in the std field from the video_device tvnorms field. This fixes a v4l2-compliance failure. Signed-off-by: Hans Verkuil Signed-off-by: Rob Taylor Acked-by: Guennadi Liakhovetski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/soc_camera.c | 3 +++ 1 file changed, 3 insertions(+) commit fd41c1af4ed14f9bc8591687c29d8a21d5a63d51 Author: Hans Verkuil Date: Mon Jun 15 08:33:35 2015 -0300 [media] sh_mobile_ceu_camera: set field to FIELD_NONE Make sure that 'field' isn't FIELD_ANY when the driver is first loaded. Fixes a v4l2-compliance failure. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c | 1 + 1 file changed, 1 insertion(+) commit 31d38d33d79fe48258c54474a411b201833016f3 Author: Hans Verkuil Date: Mon Jun 15 08:33:34 2015 -0300 [media] sh_mobile_ceu_camera: fix querycap Fill in the bus_info and driver fields. Found by v4l2-compliance. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c | 2 ++ 1 file changed, 2 insertions(+) commit d9db01fbab33d7644934ca1c71b1d6908dd56a7f Author: Hans Verkuil Date: Mon Jun 15 08:33:33 2015 -0300 [media] mt9t112: JPEG -> SRGB The JPEG colorspace should only be used for JPEG encoded images. This is just a regular sRGB sensor. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/soc_camera/mt9t112.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 517ef25521ad7fd61ec411871525ebc28b2170a6 Author: Hans Verkuil Date: Mon Jun 15 08:33:32 2015 -0300 [media] ak881x: simplify standard checks Simplify confusing conditions. This also swaps the checks for NTSC and PAL: to be consistent with other drivers check for NTSC first. So if the user sets both NTSC and PAL bits, then NTSC wins. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/ak881x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1f3375e0b257d086efe2b7d3d705e47c3e4a6c2d Author: Hans Verkuil Date: Mon Jun 15 08:33:31 2015 -0300 [media] tw9910: init priv->scale and update standard When the standard changes the VACTIVE and VDELAY values need to be updated. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/soc_camera/tw9910.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit 9212e1d8722d28a06a763f46b783881dcde1fb34 Author: Hans Verkuil Date: Mon Jun 15 08:33:30 2015 -0300 [media] tw9910: don't use COLORSPACE_JPEG This is an SDTV video receiver, so the colorspace should be SMPTE170M. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/soc_camera/tw9910.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fc293f5f2a2d94b889666c3dc3faa09f6b55e3e3 Author: Olof Johansson Date: Tue Aug 11 14:43:05 2015 +0200 ARM: shmobile: Fix mismerges Turns out I fumbled a couple of the merge resolutions for marzen board removal. Signed-off-by: Olof Johansson arch/arm/boot/dts/Makefile | 4 +--- arch/arm/mach-shmobile/Makefile | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) commit 073b795efb5c3ed8ddfea4042d5d0d3f8e4409e8 Author: Hans Verkuil Date: Mon Jun 15 08:33:28 2015 -0300 [media] sh-veu: initialize timestamp_flags and copy timestamp info This field wasn't set, causing WARN_ON's from the vb2 core. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_veu.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 7776f8e3f8708787d0d70aa08dedba714b2b54af Merge: bc0195a 2cc6b81 Author: Olof Johansson Date: Tue Aug 11 14:38:36 2015 +0200 Merge tag 'samsung-non-critical-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/fixes-non-critical Samsung non-critical fixes for v4.3 - fix sparse warning for returning iomem - fix clock-frequency of display timing0 for exynos3250-rinato * tag 'samsung-non-critical-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: EXYNOS: Use IOMEM_ERR_PTR when function returns iomem ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato Signed-off-by: Olof Johansson commit 0695726e85b45f3298f64fa4cee89f40f923fb8c Author: Daniel Vetter Date: Mon Aug 10 13:34:08 2015 +0200 drm/i915: Use CONFIG_DRM_FBDEV_EMULATION Instead of our own duplicated one. This fixes a bug in the driver unload code if DRM_FBDEV_EMULATION=n but DRM_I915_FBDEV=y because we try to unregister the nonexistent fbdev drm_framebuffer. Cc: Archit Taneja Cc: Maarten Lankhorst Reported-by: Maarten Lankhorst Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Kconfig | 15 --------------- drivers/gpu/drm/i915/Makefile | 2 +- drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_display.c | 4 ++-- drivers/gpu/drm/i915/intel_dp_mst.c | 4 ++-- drivers/gpu/drm/i915/intel_drv.h | 2 +- 7 files changed, 8 insertions(+), 23 deletions(-) commit 42a7b32b73d6bf22e4bdd7bf68746e2d71f4cd8d Author: David Ahern Date: Mon Aug 10 16:58:11 2015 -0600 xfrm: Add oif to dst lookups Rules can be installed that direct route lookups to specific tables based on oif. Plumb the oif through the xfrm lookups so it gets set in the flow struct and passed to the resolver routines. Signed-off-by: David Ahern Signed-off-by: Steffen Klassert include/net/xfrm.h | 7 +++++-- net/ipv4/xfrm4_policy.c | 11 ++++++----- net/ipv6/xfrm6_policy.c | 7 ++++--- net/xfrm/xfrm_policy.c | 24 ++++++++++++++---------- 4 files changed, 29 insertions(+), 20 deletions(-) commit df367561ffe5a66cd0b2970fdb8897d5487d38e6 Author: Andrzej Hajda Date: Fri Aug 7 09:59:34 2015 +0200 net/xfrm: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Steffen Klassert net/xfrm/xfrm_user.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit eae8dee992af622fd992cb2370cd596ac80ef141 Author: Thomas Egerer Date: Mon Jul 27 10:50:19 2015 +0200 xfrm6: Fix IPv6 ECN decapsulation Using ipv6_get_dsfield on the outer IP header implies that inner and outer header are of the the same address family. For interfamily tunnels, particularly 646, the code reading the DSCP field obtains the wrong values (IHL and the upper four bits of the DSCP field). This can cause the code to detect a congestion encoutered state in the outer header and enable the corresponding bits in the inner header, too. Since the DSCP field is stored in the xfrm mode common buffer independently from the IP version of the outer header, it's safe (and correct) to take this value from there. Signed-off-by: Thomas Egerer Signed-off-by: Steffen Klassert net/ipv6/xfrm6_mode_tunnel.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 267897a4708fd7a0592333f33a4a7c393c999ab7 Author: Antti Palosaari Date: Tue Apr 21 11:14:44 2015 -0300 [media] tda10071: implement DVBv5 statistics Implement DVBv5 CNR, signal strength, BER and block errors. Wrap legacy DVBv3 statistics to DVBv5 internally. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 258 ++++++++++++++-------------- drivers/media/dvb-frontends/tda10071_priv.h | 7 +- 2 files changed, 135 insertions(+), 130 deletions(-) commit 4c4acb7a7e81e41901825ca2afb064ada672b39c Author: Antti Palosaari Date: Tue Apr 21 11:16:44 2015 -0300 [media] tda10071: do not get_frontend() when not ready This is a bit hack, but returning error when driver is not tuned yet causes DVBv5 zap stop polling DVBv5 statistics. Thus return 0 even callback is called during invalid device state. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e14432a5b7302c1f5c6c094de176ae111697bbab Author: Antti Palosaari Date: Tue Apr 21 09:58:15 2015 -0300 [media] tda10071: protect firmware command exec with mutex There should be clearly some lock in order to make sure firmware command in execution is not disturbed by another command. It has worked as callbacks are serialized somehow pretty well and command execution happens usually without any delays. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 12 +++++++++--- drivers/media/dvb-frontends/tda10071_priv.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) commit 308ac9143ee2208f54d061eca54a89da509b5d92 Author: Daniel Borkmann Date: Sat Aug 8 21:40:01 2015 +0200 netfilter: nf_conntrack: push zone object into functions This patch replaces the zone id which is pushed down into functions with the actual zone object. It's a bigger one-time change, but needed for later on extending zones with a direction parameter, and thus decoupling this additional information from all call-sites. No functional changes in this patch. The default zone becomes a global const object, namely nf_ct_zone_dflt and will be returned directly in various cases, one being, when there's f.e. no zoning support. Signed-off-by: Daniel Borkmann Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nf_conntrack.h | 10 ++- include/net/netfilter/nf_conntrack_core.h | 3 +- include/net/netfilter/nf_conntrack_expect.h | 11 +++- include/net/netfilter/nf_conntrack_zones.h | 33 +++++++--- net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 2 +- net/ipv4/netfilter/nf_conntrack_proto_icmp.c | 3 +- net/ipv4/netfilter/nf_defrag_ipv4.c | 11 ++-- net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 2 +- net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c | 3 +- net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 12 ++-- net/netfilter/ipvs/ip_vs_nfct.c | 2 +- net/netfilter/nf_conntrack_core.c | 75 ++++++++++++++--------- net/netfilter/nf_conntrack_expect.c | 21 ++++--- net/netfilter/nf_conntrack_netlink.c | 84 ++++++++++++++------------ net/netfilter/nf_conntrack_pptp.c | 3 +- net/netfilter/nf_conntrack_standalone.c | 17 ++++-- net/netfilter/nf_nat_core.c | 19 +++--- net/netfilter/nf_synproxy_core.c | 4 +- net/netfilter/xt_CT.c | 6 +- net/netfilter/xt_connlimit.c | 9 +-- net/sched/act_connmark.c | 5 +- 21 files changed, 203 insertions(+), 132 deletions(-) commit 54ab48ed5db69212b9b6abc88d21cbbd5c16e7c3 Author: Antti Palosaari Date: Mon Apr 20 22:21:44 2015 -0300 [media] tda10071: convert to regmap I2C API Use regmap API for I2C operations. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/Kconfig | 1 + drivers/media/dvb-frontends/tda10071.c | 263 +++++++++------------------- drivers/media/dvb-frontends/tda10071_priv.h | 2 + 3 files changed, 87 insertions(+), 179 deletions(-) commit fca3e00760edc18955483b25d835630ee1bf3e97 Author: Antti Palosaari Date: Mon Apr 20 20:04:00 2015 -0300 [media] tda10071: rename device state struct to dev Rename device state struct from 'priv' to 'dev'. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 268 ++++++++++++++-------------- drivers/media/dvb-frontends/tda10071_priv.h | 2 +- 2 files changed, 135 insertions(+), 135 deletions(-) commit 59ca2ce1d5c289e73173d91a139dd4c6cbeb75a2 Author: Antti Palosaari Date: Mon Apr 20 19:54:56 2015 -0300 [media] tda10071: remove legacy media attach All users are now using I2C binding and old attach could be removed. Use I2C client for proper logging at the same. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/tda10071.c | 275 ++++++++++------------------ drivers/media/dvb-frontends/tda10071.h | 63 +------ drivers/media/dvb-frontends/tda10071_priv.h | 8 +- 3 files changed, 108 insertions(+), 238 deletions(-) commit 3250a550c48d075b01226f5561c21bc3a1e63dae Author: Antti Palosaari Date: Mon Apr 20 18:57:03 2015 -0300 [media] a8293: coding style issues Remove FSF address from license. Indent parameter correctly. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/a8293.c | 6 +----- drivers/media/dvb-frontends/a8293.h | 4 ---- 2 files changed, 1 insertion(+), 9 deletions(-) commit 4bef67e311d6f9908eeae054d5b8611138956abc Author: Antti Palosaari Date: Mon Apr 20 18:47:44 2015 -0300 [media] a8293: improve LNB register programming logic On power-on LNB power supply voltage is disabled, due to that no need to disable it during probe. Tone is supply is hard-coded as external tone coming from the demodulator. Program both voltage and tone on set_voltage(). Use register cache to prevent unneeded programming. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/a8293.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 2c509b866bd299ab83cf1a4fb478055154845c8a Author: Antti Palosaari Date: Mon Apr 20 18:16:19 2015 -0300 [media] a8293: use i2c_master_send / i2c_master_recv for I2C I/O As driver is now proper I2C client driver, we could use correct functions for I2C I/O. Also rename state from priv to dev. Fix logging too. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/a8293.c | 80 +++++++++---------------------------- 1 file changed, 18 insertions(+), 62 deletions(-) commit 55881b4fb50976a2956e6de3001bbe0a37e8be9a Author: Antti Palosaari Date: Mon Apr 20 17:39:33 2015 -0300 [media] a8293: remove legacy media attach Remove legacy media attach as all users are on I2C bindings now. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-frontends/a8293.c | 63 +------------------------------------ drivers/media/dvb-frontends/a8293.h | 18 ----------- 2 files changed, 1 insertion(+), 80 deletions(-) commit d029419dc6176ee860ef73baceec92de3efc4704 Author: Antti Palosaari Date: Thu Apr 16 22:55:31 2015 -0300 [media] em28xx: remove unused a8293 SEC config Devices that were using a8293 SEC are converted to I2C platform data thus that old config structure is left unused. Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/em28xx/em28xx-dvb.c | 4 ---- 1 file changed, 4 deletions(-) commit cebbb7396b4493cf72e832cb2aa06f42b1957c7c Author: Maarten Lankhorst Date: Tue Aug 11 09:54:59 2015 +0200 drm/core: Set mode to NULL when connectors in a set drops to 0. Without this when a MST connector is removed drm_atomic_helper_set_config can complain about set->mode && !set->num_connectors. ------------[ cut here ]------------ WARNING: CPU: 2 PID: 2403 at drivers/gpu/drm/drm_atomic_helper.c:1673 drm_atomic_helper_set_config+0x22e/0x420() CPU: 2 PID: 2403 Comm: kms_flip Not tainted 4.2.0-rc5 #4233 Hardware name: NUC5i7RYB, BIOS RYBDWi35.86A.0246.2015.0309.1355 03/09/2015 ffffffff81ac75e8 ffff88004e4ffbf8 ffffffff81714c34 0000000080000000 0000000000000000 ffff88004e4ffc38 ffffffff8107bf81 ffff88004e4ffc48 ffff8800d8ca0690 ffff8800d8d7a080 ffff8800d8cc2290 ffff8800d07bc9f0 Call Trace: [] dump_stack+0x4f/0x7b [] warn_slowpath_common+0x81/0xc0 [] warn_slowpath_null+0x15/0x20 [] drm_atomic_helper_set_config+0x22e/0x420 [] ? drm_atomic_helper_plane_set_property+0x84/0xc0 [] drm_mode_set_config_internal+0x61/0x100 [] restore_fbdev_mode+0xbd/0xe0 [] drm_fb_helper_restore_fbdev_mode_unlocked+0x24/0x70 [] intel_fbdev_restore_mode+0x21/0x80 [i915] [] i915_driver_lastclose+0x9/0x10 [i915] [] drm_lastclose+0x29/0x130 [] drm_release+0x314/0x500 [] __fput+0xe5/0x1f0 [] ____fput+0x9/0x10 [] task_work_run+0x88/0xb0 [] do_exit+0x37f/0xa90 [] ? selinux_file_ioctl+0x48/0xc0 [] ? security_file_ioctl+0x3e/0x60 [] do_group_exit+0x40/0xa0 [] SyS_exit_group+0xf/0x10 [] entry_SYSCALL_64_fastpath+0x12/0x6a ---[ end trace 0daf358c49351567 ]--- Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 992cbf19b32900efa17850b9fa0031fd623edd4d Author: Daniel Vetter Date: Thu Aug 6 15:06:40 2015 +0200 drm/atomic: Call ww_acquire_done after check phase is complete We want to make sure that no one tries to acquire more locks and states, and ww mutexes provide debug facilities for that. So use them. v2: Only call acquire_done when ->atomic_check was successful to avoid falling over an -EDEADLK (spotted by Maarten). Cc: Rob Clark Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 3 +++ 1 file changed, 3 insertions(+) commit 460e8e2cf464dee6f8a3fc1b81340d818d1ad9e4 Author: Daniel Vetter Date: Wed Jul 29 12:51:41 2015 +0200 drm/atomic: Paper over locking WARN in default_state_clear In commit 6f75cea66c8dd043ced282016b21a639af176642 Author: Daniel Vetter Date: Wed Nov 19 18:38:07 2014 +0100 drm/atomic: Only destroy connector states with connection mutex held I tried to fix races of atomic commits against connector hot-unplugging. The idea is to ensure lifetimes by holding the connection_mutex long enough. That works for synchronous commits, but not for async ones. For async atomic commit we really need to fix up connector lifetimes for real. But that's a much bigger task, so just add more duct-tape: For cleaning up connector states we currently don't need the connector itself. So NULL it out and remove the locking check. Of course that check was to protect the entire sequence, but the modeset itself should be save since currently DP MST hot-removal does a dpms-off. And that should synchronize with any outstanding async atomic commit. Or at least that's my hope, this is all a giant mess. Reported-by: Maarten Lankhorst Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit fbb40b285713cbb992466df8c838edb217e98fa6 Author: Daniel Vetter Date: Mon Aug 10 11:55:37 2015 +0200 drm/edid: Use ARRAY_SIZE in drm_add_modes_noedid Spotted while reading code for random reasons. Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_edid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2143287d4ed7b7c712aa053f0fb592cdcb71525e Author: Daniel Vetter Date: Thu Jul 9 23:32:46 2015 +0200 drm/qxl: Don't take dev->struct_mutex in bo_force_delete It really doesn't protect anything which doesn't have other locks already. It also doesn't seem to be wired up into the driver unload code fwiw, but that's a different issue. Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/qxl/qxl_object.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c325f88d7d8a58fbfaaa5bb9c1d39f2cb4fba827 Author: Daniel Vetter Date: Thu Jul 9 23:32:45 2015 +0200 drm/nouveau: Don't take dev->struct_mutex in ttm_fini This is only called in driver load/unload paths, no need to grab any locks at all. Also, ttm takes care of itself anyway. Cc: Ben Skeggs Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/nouveau/nouveau_ttm.c | 2 -- 1 file changed, 2 deletions(-) commit 648a4ce7ca209db92db5c3cecb05c14d147a2e6a Author: Daniel Vetter Date: Thu Jul 9 23:32:42 2015 +0200 drm/rockchip: 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). Aside: I stumbled over the mmap handler which directly does a dma_mmap_attrs. But totally fails to grab a reference on the underlying object and hence looks like it happily just leaks the ptes since there's no guarantee the mmap isn't still around when gem_free_object is called. Which the kerneldoc of dma_mmap_attrs explicitly forbids. v2: Fixup compile fail 0-day spotted. Cc: Mark Yao Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 8d59604547c45332062bde1e25364a9820145fb1 Author: Hans Verkuil Date: Mon Jul 20 10:18:22 2015 -0300 [media] bt819/saa7110/vpx3220: remove legacy control ops The zoran driver has now been converted to the control framework which means that these three subdevice drivers no longer need to support the legacy core control ops since the last bridge driver that needed that has now been converted. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/bt819.c | 11 ----------- drivers/media/i2c/saa7110.c | 11 ----------- drivers/media/i2c/vpx3220.c | 7 ------- 3 files changed, 29 deletions(-) commit e56c597b027ba95a9ce6719462793da4a91d27d2 Author: Hans Verkuil Date: Mon Jul 20 10:18:21 2015 -0300 [media] zoran: convert to the control framework and to v4l2_fh Switch this driver to the control framework and to v4l2_fh for handling control events. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/zoran/zoran.h | 4 ++ drivers/media/pci/zoran/zoran_card.c | 5 +++ drivers/media/pci/zoran/zoran_driver.c | 69 +++++++--------------------------- 3 files changed, 23 insertions(+), 55 deletions(-) commit 7b962d43ef875f3a524e92ca944816b862470e21 Author: Hans Verkuil Date: Mon Jul 20 10:18:20 2015 -0300 [media] zoran: use standard core lock Use the standard core lock to take care of serializing ioctl calls and to serialize file operations. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/zoran/zoran.h | 3 +- drivers/media/pci/zoran/zoran_card.c | 6 +- drivers/media/pci/zoran/zoran_driver.c | 249 ++++++++------------------------- 3 files changed, 60 insertions(+), 198 deletions(-) commit 8148802f186bc09b7d61f9be5cb8d287928c8b50 Author: Hans Verkuil Date: Mon Jul 20 10:18:19 2015 -0300 [media] zoran: remove unused read/write functions The zoran_read/write functions always return an error. Just remove them. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/zoran/zoran_driver.c | 25 ------------------------- 1 file changed, 25 deletions(-) commit 160d75724ae7db78112bbdef447f1a7b0f40bdf4 Author: Hans Verkuil Date: Mon Jul 20 10:18:18 2015 -0300 [media] zoran: remove unnecessary memset There is no need to zero the v4l2_capability struct, the v4l2 core has done that already. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/zoran/zoran_driver.c | 1 - 1 file changed, 1 deletion(-) commit 0a6b9b04dbe81d781720e077aea147805af0ee87 Author: Hans Verkuil Date: Mon Jul 20 10:09:33 2015 -0300 [media] fsl-viu: drop format names The names of the pixelformats is set by the core. So there no longer is any need for drivers to fill it in. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/fsl-viu.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 9acc8093282456f920f7d3e34b0b1b58c3f07dbd Author: Hans Verkuil Date: Mon Jul 20 10:09:32 2015 -0300 [media] fsl-viu: small fixes - Fix an off-by-one index check in vidioc_enum_fmt() - Fill in the pix.sizeimage field in vidioc_try_fmt_cap() - Fix an off-by-one index check in vidioc_s_input() Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/fsl-viu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 7fe0b3d7c721ddb5a37e868ad27c2476b4042a54 Author: Hans Verkuil Date: Mon Jul 20 10:09:31 2015 -0300 [media] fsl-viu: add control event support Convert the driver to use v4l2_fh in order to support control events. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/fsl-viu.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) commit e299bc99bfa7188d3b52c9aed28e0882f5abd137 Author: Hans Verkuil Date: Mon Jul 20 10:09:30 2015 -0300 [media] fsl-viu: fill in colorspace, always set field to interlaced - fill in the missing colorspace value. - don't reject incorrect field values, always replace with a valid value. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/fsl-viu.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 282b3fb831d64b38cac67a912d99ca3dd547aac9 Author: Hans Verkuil Date: Mon Jul 20 10:09:29 2015 -0300 [media] fsl-viu: fill in bus_info in vidioc_querycap The bus_info field was never filled. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/fsl-viu.c | 1 + 1 file changed, 1 insertion(+) commit 1fea3d6069ae446e084177430f66c11cd4fc8751 Author: Hans Verkuil Date: Mon Jul 20 10:09:28 2015 -0300 [media] fsl-viu: convert to the control framework Interestingly enough, the existing control handling code basically did nothing. At least the new code will inherit the controls from the saa7115 driver. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/fsl-viu.c | 110 +++++---------------------------------- 1 file changed, 14 insertions(+), 96 deletions(-) commit df3cfa6d9265f10fabc3c44f852d6b6bbf26029e Author: Hans Verkuil Date: Mon Jul 20 09:59:38 2015 -0300 [media] usbvision: move init code to probe() These things are only initialized if you start streaming video, but they are also used in the disconnect function. So just init them always during probe time. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-core.c | 4 ---- drivers/media/usb/usbvision/usbvision-video.c | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) commit 94384014f6ef8091bf31b68721761e68f77ad214 Author: Hans Verkuil Date: Mon Jul 20 09:59:37 2015 -0300 [media] usbvision: fix standards for S-Video/Composite inputs The standards supported by S-Video and Composite inputs are not limited by PAL, so make it more generic. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8926e8453476ef3c714d659803068b0f26dd656c Author: Hans Verkuil Date: Mon Jul 20 09:59:36 2015 -0300 [media] usbvision: fix DMA from stack warnings In various places the stack was used to provide buffers for USB data, but this should be allocated memory. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-core.c | 18 ++++++++++-------- drivers/media/usb/usbvision/usbvision-i2c.c | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) commit e2c84ccb0fbe5e524d15bb09c042a6ca634adaed Author: Hans Verkuil Date: Mon Jul 20 09:59:35 2015 -0300 [media] usbvision: fix locking error If remove_pending is non-zero, then the v4l2_lock is never unlocked. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4eeda6faaec4b11e3738ba3ad533d440f628faca Author: Hans Verkuil Date: Mon Jul 20 09:59:34 2015 -0300 [media] usbvision: set field and colorspace Set the colorspace and field in vidioc_try_fmt_vid_cap(). Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 2 ++ 1 file changed, 2 insertions(+) commit 64d416ec965360734beb295fe43c24f36ab465ca Author: Hans Verkuil Date: Mon Jul 20 09:59:33 2015 -0300 [media] usbvision: frequency fixes - setup initial radio and tv frequencies. - set/get the correct frequency (radio vs tv). - disable tuner/freq ioctls if there is no tuner. - fix some tuner index checks. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 44 +++++++++++++++++---------- drivers/media/usb/usbvision/usbvision.h | 3 +- 2 files changed, 30 insertions(+), 17 deletions(-) commit cbe12cc66e9c03ebd62a5937aada4240924dbe75 Author: Hans Verkuil Date: Mon Jul 20 09:59:32 2015 -0300 [media] usbvision: the radio device node has wrong caps The radio device node had the same caps as the video node. Fix this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 601ecab34bab60896aa135ebde0d2b629d491821 Author: Hans Verkuil Date: Mon Jul 20 09:59:31 2015 -0300 [media] usbvision: remove g/s_audio and for radio remove enum/g/s_input The g/s_audio ioctls didn't do anything, so remove them all for both video and radio nodes and remove V4L2_CAP_AUDIO. The enum/g/s_input ioctls are invalid for radio nodes, so remove them from the radio ioctl_ops. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 29 --------------------------- 1 file changed, 29 deletions(-) commit 2b43665ffbca7fe38617442cf731332afc94ead2 Author: Hans Verkuil Date: Mon Jul 20 09:59:30 2015 -0300 [media] usbvision: return valid error in usbvision_register_video() Don't return -1, return a proper error code. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit fd95870d1bd6d7da7e7d0c550bfaae6d76f0799f Author: Hans Verkuil Date: Mon Jul 20 09:59:29 2015 -0300 [media] usbvision: convert to the control framework Convert this driver to the control framework and struct v4l2_fh (needed for handling control events). Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-video.c | 69 ++++++++++----------------- drivers/media/usb/usbvision/usbvision.h | 2 + 2 files changed, 28 insertions(+), 43 deletions(-) commit 62e259493d779b0e2c1a675ab733136511310821 Author: Hans Verkuil Date: Mon Jul 20 09:59:28 2015 -0300 [media] usbvision: remove power_on_at_open and timed power off This causes lots of problems and is *very* slow as well. One of the main problems is that this prohibits the use of the control framework since subdevs will be unloaded on power off which is not allowed as long as they are used by a usb device. Apparently the reason for doing this is to turn off a noisy tuner. My hardware has no problem with that, and I wonder whether the hardware with that noisy tuner wasn't just functioning improperly as I have never heard of noisy tuners. Contact me if you have one of those devices and I can take a look whether the tuner can't be powered off if necessary by letting the tuner subdevice go into standby mode. Unloading the tuner module is just evil and is not the right approach. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/usbvision/usbvision-core.c | 49 ------------------ drivers/media/usb/usbvision/usbvision-video.c | 71 ++++----------------------- drivers/media/usb/usbvision/usbvision.h | 5 -- 3 files changed, 9 insertions(+), 116 deletions(-) commit ed099f66dadd8bac93571fb28b05bdae066b39a2 Author: Masanari Iida Date: Mon Jul 13 20:36:50 2015 -0300 [media] DocBook: Fix typo in intro.xml This patch fix spelling typos in intro.xml. This xml file is not created from comments within source, I fix the xml file. Signed-off-by: Masanari Iida [hans.verkuil@cisco.com: removed mention of obsolete devfs] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/dvb/intro.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 207dab5ff84b7d8d9c6e580b6065465f061b76dd Author: Mikhail Ulyanov Date: Wed Jul 22 08:23:05 2015 -0300 [media] MAINTAINERS: V4L2: PLATFORM: Add entry for Renesas JPEG Processing Unit driver Update RENESAS JPU driver maintainer in MAINTAINERS file. Signed-off-by: Mikhail Ulyanov Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 2c42cdbaec56a9565a2717b450506150c9c55103 Author: Mikhail Ulyanov Date: Wed Jul 22 08:23:03 2015 -0300 [media] V4L2: platform: Add Renesas R-Car JPEG codec driver Here's the driver for the Renesas R-Car JPEG processing unit. The driver is implemented within the V4L2 framework as a memory-to-memory device. It presents two video nodes to userspace, one for the encoding part, and one for the decoding part. It was found that the only working mode for encoding is no markers output, so we generate markers with software. In the current version of driver we also use software JPEG header parsing because with hardware parsing performance is lower than desired. >From a userspace point of view the process is typical (S_FMT, REQBUF, optionally QUERYBUF, QBUF, STREAMON, DQBUF) for both the source and destination queues. STREAMON can return -EINVAL in case of mismatch of output and capture queues format. Also during decoding driver can return buffers if queued buffer with JPEG image contains image with inappropriate subsampling (e.g. 4:2:0 in JPEG and 4:2:2 in capture). If JPEG image and queue format dimensions differ driver will return buffer on QBUF with VB2_BUF_STATE_ERROR flag. During encoding the available formats are: V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV16, V4L2_PIX_FMT_NV16M for source and V4L2_PIX_FMT_JPEG for destination. During decoding the available formats are: V4L2_PIX_FMT_JPEG for source and V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_NV16M, V4L2_PIX_FMT_NV12, V4L2_PIX_FMT_NV16 for destination. Performance of current version: 1280x800 NV12 image encoding/decoding decoding ~122 FPS encoding ~191 FPS Signed-off-by: Mikhail Ulyanov Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/Kconfig | 12 + drivers/media/platform/Makefile | 1 + drivers/media/platform/rcar_jpu.c | 1794 +++++++++++++++++++++++++++++++++++++ 3 files changed, 1807 insertions(+) commit 6951813e66e07f18c9a425c3fbd966947ea401ab Author: Mikhail Ulyanov Date: Wed Jul 22 08:23:04 2015 -0300 [media] devicetree: bindings: Document Renesas R-Car JPEG Processing Unit Add Renesas R-Car JPEG processing unit driver device tree bindings documentation. Signed-off-by: Mikhail Ulyanov Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../devicetree/bindings/media/renesas,jpu.txt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 6d7570c42b963004ecfb42d9625c898eb3087b02 Author: Laura Abbott Date: Thu Jul 23 19:28:48 2015 -0300 [media] v4l2-ioctl: Give more information when device_caps are missing Currently, the warning for missing device_caps gives a backtrace like so: [] dump_stack+0x45/0x57 [] warn_slowpath_common+0x8a/0xc0 [] warn_slowpath_null+0x1a/0x20 [] v4l_querycap+0x43/0x80 [videodev] [] __video_do_ioctl+0x2a4/0x320 [videodev] [] ? do_last+0x195/0x1210 [] video_usercopy+0x22e/0x5b0 [videodev] [] ? v4l_querycap+0x80/0x80 [videodev] [] video_ioctl2+0x15/0x20 [videodev] [] v4l2_ioctl+0x113/0x150 [videodev] [] do_vfs_ioctl+0x2f8/0x4f0 [] ? __audit_syscall_entry+0xb4/0x110 [] ? do_audit_syscall_entry+0x6c/0x70 [] SyS_ioctl+0x81/0xa0 [] ? __audit_syscall_exit+0x1f6/0x2a0 [] system_call_fastpath+0x12/0x17 This indicates that device_caps are missing but doesn't give much of a clue which driver is actually at fault. Improve the warning output by showing the capabilities and the responsible driver. Signed-off-by: Laura Abbott Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ioctl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b0527115af80970d65ae37c468e05e7bde82ce81 Author: Hans Verkuil Date: Mon Jul 20 06:47:23 2015 -0300 [media] tc358743: remove unused variable The bt pointer was never used, remove it. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 3 --- 1 file changed, 3 deletions(-) commit e752577ed7bf55c81e10343fced8b378cda2b63b Author: Hans Verkuil Date: Mon Jul 20 04:58:24 2015 -0300 [media] v4l2-mem2mem: drop lock in v4l2_m2m_fop_mmap The v4l2_m2m_fop_mmap function takes the core mutex, but this will result in a potential circular locking dependency: [ 262.517164] ====================================================== [ 262.517166] [ INFO: possible circular locking dependency detected ] [ 262.517169] 4.2.0-rc2-koryphon #844 Not tainted [ 262.517171] ------------------------------------------------------- [ 262.517173] v4l2-compliance/1379 is trying to acquire lock: [ 262.517175] (&dev->dev_mutex){+.+.+.}, at: [] v4l2_m2m_fop_mmap+0x2b/0x90 [v4l2_mem2mem] [ 262.517187] but task is already holding lock: [ 262.517189] (&mm->mmap_sem){++++++}, at: [] vm_mmap_pgoff+0x69/0xc0 [ 262.517199] which lock already depends on the new lock. [ 262.517202] the existing dependency chain (in reverse order) is: [ 262.517204] -> #1 (&mm->mmap_sem){++++++}: [ 262.517209] [] __lock_acquire+0x62b/0xe80 [ 262.517215] [] lock_acquire+0x65/0x90 [ 262.517218] [] __might_fault+0x75/0xa0 [ 262.517222] [] video_usercopy+0x3e9/0x4e0 [videodev] [ 262.517231] [] video_ioctl2+0x10/0x20 [videodev] [ 262.517238] [] v4l2_ioctl+0xc3/0xe0 [videodev] [ 262.517243] [] do_vfs_ioctl+0x2fc/0x550 [ 262.517248] [] SyS_ioctl+0x74/0x80 [ 262.517252] [] entry_SYSCALL_64_fastpath+0x12/0x76 [ 262.517258] -> #0 (&dev->dev_mutex){+.+.+.}: [ 262.517262] [] validate_chain.isra.38+0xd04/0x1170 [ 262.517266] [] __lock_acquire+0x62b/0xe80 [ 262.517270] [] lock_acquire+0x65/0x90 [ 262.517273] [] mutex_lock_interruptible_nested+0x6c/0x4b0 [ 262.517279] [] v4l2_m2m_fop_mmap+0x2b/0x90 [v4l2_mem2mem] [ 262.517284] [] v4l2_mmap+0x4f/0x90 [videodev] [ 262.517288] [] mmap_region+0x38c/0x5b0 [ 262.517293] [] do_mmap_pgoff+0x2f5/0x3e0 [ 262.517297] [] vm_mmap_pgoff+0x8a/0xc0 [ 262.517300] [] SyS_mmap_pgoff+0x1cb/0x270 [ 262.517304] [] SyS_mmap+0x1d/0x20 [ 262.517309] [] entry_SYSCALL_64_fastpath+0x12/0x76 [ 262.517313] other info that might help us debug this: [ 262.517315] Possible unsafe locking scenario: [ 262.517318] CPU0 CPU1 [ 262.517319] ---- ---- [ 262.517321] lock(&mm->mmap_sem); [ 262.517324] lock(&dev->dev_mutex); [ 262.517327] lock(&mm->mmap_sem); [ 262.517329] lock(&dev->dev_mutex); [ 262.517332] *** DEADLOCK *** Since vb2_fop_mmap doesn't take the lock, neither should v4l2_m2m_fop_mmap. Signed-off-by: Hans Verkuil Tested-by: Mikhail Ulyanov Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-mem2mem.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 7a1d4e7c064c0eddd90f0204cecd294d0dc5b36a Author: Andrzej Pietrasiewicz Date: Fri Jul 3 07:04:38 2015 -0300 [media] s5p-jpeg: Eliminate double kfree() video_unregister_device() calls device_unregister(), which calls put_device(), which calls kobject_put(), and if this is the last reference then kobject_release() is called, which calls kobject_cleanup(), which calls ktype's release method which happens to be device_release() in this case, which calls dev->release(), which happens to be v4l2_device_release() in this case, which calls vdev->release(), which happens to be video_device_release(). But video_device_release() is called explicitly both in error recovery path of s5p_jpeg_probe() and in s5p_jpeg_remove(). The pointers in question are not nullified between the two calls, so this is harmful. This patch fixes the driver so that video_device_release() is not called twice for the same object. Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-jpeg/jpeg-core.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 1af21985473d72965807ef5e5cc02528aa8c01e4 Author: Marek Szyprowski Date: Wed Jun 3 07:36:23 2015 -0300 [media] s5p-mfc: add additional check for incorrect memory configuration MFC hardware is known to trash random memory if one tries to use a buffer which has lower DMA addresses than the configured DMA base address. This patch adds a check for this case and proper error handling. Signed-off-by: Marek Szyprowski Acked-by: Kamil Debski [s.nawrocki@samsung.com: fixed typo (addres -> address] Signed-off-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_opr.c | 11 +++++++++-- drivers/media/platform/s5p-mfc/s5p_mfc_opr.h | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c | 12 +++++++----- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 8 +++++--- 4 files changed, 22 insertions(+), 11 deletions(-) commit 490a977a1038a7f6a6edf30b2555a6890cf24cab Author: Marek Szyprowski Date: Wed Jun 3 07:36:22 2015 -0300 [media] s5p-mfc: add return value check in mfc_sys_init_cmd alloc_dev_context_buffer method might fail, so add proper return value check. Signed-off-by: Marek Szyprowski Acked-by: Kamil Debski Signed-off-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v6.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit d44da04682033ad4c34d97861aef8ad5f7a8c2b5 Author: Seung-Woo Kim Date: Wed May 13 04:25:25 2015 -0300 [media] s5p-mfc: fix state check from encoder queue_setup MFCINST_GOT_INST state is set to encoder context with set_format only for capture buffer. In queue_setup of encoder called during reqbufs, it is checked MFCINST_GOT_INST state for both capture and output buffer. So this patch fixes encoder to check MFCINST_GOT_INST state only for capture buffer from queue_setup. Signed-off-by: Seung-Woo Kim Signed-off-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4f50efadcb9710876c6d02f60931e5fcc896ddaf Author: Nicholas Mc Guire Date: Wed Jun 10 06:02:03 2015 -0300 [media] s5p-tv: fix wait_event_timeout return handling event API conformance testing with coccinelle spatches are being used to locate API usage inconsistencies this triggert with: ./drivers/media/platform/s5p-tv/mixer_reg.c:364 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. An appropriately named variable of type long is inserted and the call fixed up aswell as the negative return check dropped. Signed-off-by: Nicholas Mc Guire Signed-off-by: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-tv/mixer_reg.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 264d1cf86c9f801339d272c3067d98eef91611a0 Author: Krzysztof Kozlowski Date: Fri Jul 10 03:19:45 2015 -0300 [media] s5p-tv: 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: Sylwester Nawrocki Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/s5p-tv/hdmiphy_drv.c | 1 - drivers/media/platform/s5p-tv/sii9234_drv.c | 1 - 2 files changed, 2 deletions(-) commit e4001885ca4fa3107898205503f2552ed50f4f02 Author: Axel Lin Date: Tue Aug 11 09:15:30 2015 +0800 spi: mt65xx: Fix module alias Remove extra space and make the alias matches driver name. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a4401687c11def29fe5a9b23ab98bf7ab1dce61 Author: Vineet Gupta Date: Sat Aug 8 17:51:58 2015 +0530 ARC: Enable optimistic spinning for LLSC config Suggested-by: Peter Zijlstra (Intel) Signed-off-by: Vineet Gupta arch/arc/Kconfig | 1 + 1 file changed, 1 insertion(+) commit b7182d1a788461c36bad5a13b78d0779a6376f5c Author: Baruch Siach Date: Tue Aug 11 12:08:32 2015 +0300 MAINTAINERS: add git tree for the arc architecture Signed-off-by: Baruch Siach Signed-off-by: Vineet Gupta MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 72d4d0e48995c91ddf5d1f86612c979eca95bd06 Author: Dan Carpenter Date: Tue Aug 11 00:29:55 2015 +0300 quota: remove an unneeded condition We know "ret" is zero here so we can remove this condition. Signed-off-by: Dan Carpenter Signed-off-by: Jan Kara fs/quota/quota.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 41450b1b5ba101bf470b4fdf0407b30696e86bd3 Merge: fe14f39 6ac7ada Author: Takashi Iwai Date: Tue Aug 11 09:40:16 2015 +0200 Merge branch 'for-linus' into for-next commit 33836ee98533fd27baa89dabca48f8d4e69dd438 Author: yalin wang Date: Mon Aug 10 22:41:43 2015 +0800 hwmon:change sht15_reverse() This change sht15_reverse() to be generic bitrev8(). Signed-off-by: yalin wang Signed-off-by: Guenter Roeck drivers/hwmon/sht15.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) commit cfca3789e0678c57e09dfb1a09fdfce427b7c92e Author: Guenter Roeck Date: Fri Aug 7 20:55:59 2015 -0700 hwmon: (pmbus) Add device IDs for TPS544{B,C}2{0,5} Add device IDs and references for Texas Instruments TPS544B20, TPS544B25, TPS544C20, and TPS544C25 to the generic PMBus driver. Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck Documentation/hwmon/pmbus | 8 ++++++-- drivers/hwmon/pmbus/Kconfig | 3 ++- drivers/hwmon/pmbus/pmbus.c | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) commit 6d212b8adce4ddaa20229f781cc86bccb396a9fe Author: Sebastian Krzyszkowiak Date: Sun Jul 19 01:10:21 2015 +0200 ideapad-laptop: add alternative representation for Yoga 2 to DMI table There is at least one (mine) Yoga 2 Pro in existence that has incorrect product version stored in DMI (reading as "INVALID"), causing it to not be recognized as Yoga 2 by ideapad-laptop module, which in turn causes non-existent hardware rfkills to be always reported as blocked. This change adds a second check by board name, which is "Yoga2". Looks like it also happens to be "INVALID" on some other Yoga 2 machines where product version is correct instead, so the original check is left intact to catch both cases. Signed-off-by: Sebastian Krzyszkowiak Signed-off-by: Darren Hart drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 97ade7697bb104523417d0f9b5e38a8bf55ed7f1 Author: Łukasz Stelmach Date: Wed Jul 29 21:31:23 2015 +0200 asus-laptop: Add key found on Asus F3M Asus F3M has two keys labeled with an icon of a touchpad. The first, reported as 0x6B is next to the power key and the second, reported as 0x6A, is F9 combined with Fn button. When I was pressing the latter, I was getting "Unknown key 6a pressed" message before applying this patch. Asus F3M does not support WMI so the commit does not update key mappings in the asus-nb-wmi.c file. I have not tested this mapping on any other Asus laptop. Signed-off-by: Łukasz Stelmach Signed-off-by: Darren Hart drivers/platform/x86/asus-laptop.c | 1 + 1 file changed, 1 insertion(+) commit e88e28795cb043e65a5197238471c2f573fef3cd Author: Azael Avalos Date: Mon Aug 3 11:44:08 2015 -0600 MAINTAINERS: Remove Toshiba Linux mailing list address As of March 31th 2015, the mailing-list service finished [1]. This patch simply removes such address. [1] http://goo.gl/F6jS5r Signed-off-by: Azael Avalos Signed-off-by: Darren Hart MAINTAINERS | 1 - 1 file changed, 1 deletion(-) commit 07a51cd3794960548627a27aae68c1446341db32 Author: Atzm Watanabe Date: Mon Aug 10 23:39:09 2015 +0900 vxlan: fix fdb_dump index calculation When too many remotes are bound to an FDB entry, index may not be increased. This problem will be caused on the large scale environment that is based on the unicast default destination, for instance. Signed-off-by: Atzm Watanabe Signed-off-by: David S. Miller drivers/net/vxlan.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 85998229161f8a83863c371aa021bdb0887b9a63 Author: Yong Li Date: Tue Aug 11 10:43:05 2015 +0800 cc2520: set the default fifo pin value from platform data When the device tree support is disabled, the fifo_pin is uninitialized, this patch will set the fifo_pin value based on platform data Signed-off-by: Yong Li Acked-by: Varka Bhadram Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 1 + 1 file changed, 1 insertion(+) commit ed8db18dea26850a73075d0aefcaebb78cc1fe19 Author: Fabio Estevam Date: Mon Aug 10 09:54:28 2015 -0300 mellanox: mlxsw: Use '%zx' to print size_t format Use '%zx' to print size_t format in order to fix the following build warning: drivers/net/ethernet/mellanox/mlxsw/item.h:65:3: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'size_t' [-Wformat=] Signed-off-by: Fabio Estevam Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/item.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fa92a31b3335478c545cdc8e79e1e9b788184e6b Author: Hans de Goede Date: Mon Aug 10 10:45:45 2015 +0200 ideapad-laptop: Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list Like some of the other Yoga models the Lenovo Yoga 3 14 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 3 14 to the no_hw_rfkill dmi list, fixing the wifi breakage. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1239050 Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede Signed-off-by: Darren Hart drivers/platform/x86/ideapad-laptop.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 92b19ff50e8f242392d78b2aacc5b5b672f1796b Author: Dan Williams Date: Mon Aug 10 23:07:06 2015 -0400 cleanup IORESOURCE_CACHEABLE vs ioremap() Quoting Arnd: I was thinking the opposite approach and basically removing all uses of IORESOURCE_CACHEABLE from the kernel. There are only a handful of them.and we can probably replace them all with hardcoded ioremap_cached() calls in the cases they are actually useful. All existing usages of IORESOURCE_CACHEABLE call ioremap() instead of ioremap_nocache() if the resource is cacheable, however ioremap() is uncached by default. Clearly none of the existing usages care about the cacheability. Particularly devm_ioremap_resource() never worked as advertised since it always fell back to plain ioremap(). Clean this up as the new direction we want is to convert ioremap_() usages to memremap(..., flags). Suggested-by: Arnd Bergmann Reviewed-by: Christoph Hellwig Signed-off-by: Dan Williams arch/arm/mach-clps711x/board-cdb89712.c | 2 +- arch/powerpc/kernel/pci_of_scan.c | 2 +- arch/sparc/kernel/pci.c | 3 +-- drivers/pci/probe.c | 3 +-- drivers/pnp/manager.c | 2 -- drivers/scsi/aic94xx/aic94xx_init.c | 7 +------ drivers/scsi/arcmsr/arcmsr_hba.c | 5 +---- drivers/scsi/mvsas/mv_init.c | 15 ++++----------- drivers/video/fbdev/ocfb.c | 1 - lib/devres.c | 13 ++++--------- lib/pci_iomap.c | 7 ++----- 11 files changed, 16 insertions(+), 44 deletions(-) commit 2584cf83578c26db144730ef498f4070f82ee3ea Author: Dan Williams Date: Mon Aug 10 23:07:05 2015 -0400 arch, drivers: don't include directly, use instead Preparation for uniform definition of ioremap, ioremap_wc, ioremap_wt, and ioremap_cache, tree-wide. Acked-by: Christoph Hellwig Signed-off-by: Dan Williams arch/arm/mach-shmobile/pm-rcar.c | 2 +- arch/ia64/kernel/cyclone.c | 2 +- drivers/isdn/icn/icn.h | 2 +- drivers/mtd/devices/slram.c | 2 +- drivers/mtd/nand/diskonchip.c | 2 +- drivers/mtd/onenand/generic.c | 2 +- drivers/scsi/sun3x_esp.c | 2 +- drivers/staging/comedi/drivers/ii_pci20kc.c | 1 + drivers/tty/serial/8250/8250_core.c | 2 +- drivers/video/fbdev/s1d13xxxfb.c | 3 +-- drivers/video/fbdev/stifb.c | 1 + include/linux/io-mapping.h | 2 +- include/linux/mtd/map.h | 2 +- include/video/vga.h | 2 +- 14 files changed, 14 insertions(+), 13 deletions(-) commit 124fe20d94630b6f173dae5eb815e6e6e350c72d Author: Dan Williams Date: Mon Aug 10 23:07:05 2015 -0400 mm: enhance region_is_ram() to region_intersects() region_is_ram() is used to prevent the establishment of aliased mappings to physical "System RAM" with incompatible cache settings. However, it uses "-1" to indicate both "unknown" memory ranges (ranges not described by platform firmware) and "mixed" ranges (where the parameters describe a range that partially overlaps "System RAM"). Fix this up by explicitly tracking the "unknown" vs "mixed" resource cases and returning REGION_INTERSECTS, REGION_MIXED, or REGION_DISJOINT. This re-write also adds support for detecting when the requested region completely eclipses all of a resource. Note, the implementation treats overlaps between "unknown" and the requested memory type as REGION_INTERSECTS. Finally, other memory types can be passed in by name, for now the only usage "System RAM". Suggested-by: Luis R. Rodriguez Reviewed-by: Toshi Kani Signed-off-by: Dan Williams include/linux/mm.h | 9 +++++++- kernel/resource.c | 61 ++++++++++++++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 26 deletions(-) commit 5ab16579020edb79e215b401399f88c7e07fdaf9 Merge: 459c15e 41a2d57 Author: James Morris Date: Tue Aug 11 11:18:53 2015 +1000 Merge branch 'smack-for-4.3' of https://github.com/cschaufler/smack-next into next commit a73e99cb67e7438e5ab0c524ae63a8a27616c839 Author: Jason A. Donenfeld Date: Mon Aug 10 17:49:51 2015 +0200 staging: ozwpan: Remove from tree Ozwpan is completely unmaintained and potentially a security problem. As this is a staging driver, it should be removed, since it has been abandoned. Cc: Shigekatsu Tateno Signed-off-by: Jason A. Donenfeld Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 5 - drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - drivers/staging/ozwpan/Kconfig | 9 - drivers/staging/ozwpan/Makefile | 16 - drivers/staging/ozwpan/README | 25 - drivers/staging/ozwpan/TODO | 14 - drivers/staging/ozwpan/ozappif.h | 36 - drivers/staging/ozwpan/ozcdev.c | 554 -------- drivers/staging/ozwpan/ozcdev.h | 17 - drivers/staging/ozwpan/ozdbg.h | 54 - drivers/staging/ozwpan/ozeltbuf.c | 252 ---- drivers/staging/ozwpan/ozeltbuf.h | 65 - drivers/staging/ozwpan/ozhcd.c | 2301 -------------------------------- drivers/staging/ozwpan/ozhcd.h | 15 - drivers/staging/ozwpan/ozmain.c | 71 - drivers/staging/ozwpan/ozpd.c | 886 ------------ drivers/staging/ozwpan/ozpd.h | 134 -- drivers/staging/ozwpan/ozproto.c | 813 ----------- drivers/staging/ozwpan/ozproto.h | 62 - drivers/staging/ozwpan/ozprotocol.h | 375 ------ drivers/staging/ozwpan/ozurbparanoia.c | 54 - drivers/staging/ozwpan/ozurbparanoia.h | 19 - drivers/staging/ozwpan/ozusbif.h | 43 - drivers/staging/ozwpan/ozusbsvc.c | 263 ---- drivers/staging/ozwpan/ozusbsvc.h | 32 - drivers/staging/ozwpan/ozusbsvc1.c | 472 ------- 27 files changed, 6590 deletions(-) commit 86d80f973434de24d8a807a92cd59d5ced7bd519 Author: Trond Myklebust Date: Fri Jul 31 16:24:30 2015 -0400 NFSv4.1/pnfs: Fix atomicity of commit list updates pnfs_layout_mark_request_commit() needs to ensure that it adds the request to the commit list atomically with all the other updates in order to prevent corruption to buckets[ds_commit_idx].wlseg due to races with pnfs_generic_clear_request_commit(). Fixes: 338d00cfef07d ("pnfs: Refactor the *_layout_mark_request_commit...") Cc: stable@vger.kernel.org # v4.0+ Signed-off-by: Trond Myklebust fs/nfs/internal.h | 15 ++++++++++----- fs/nfs/pnfs_nfs.c | 5 +++-- fs/nfs/write.c | 29 ++++++++++++++++++++++++----- 3 files changed, 37 insertions(+), 12 deletions(-) commit 025bcc154027fc52b1aee192c4599bb6ee6a3c9c Author: Jason Gerecke Date: Mon Aug 3 10:18:10 2015 -0700 HID: wacom: Simplify 'wacom_pl_irq' Unlike other IRQ functions, 'wacom_pl_irq' uses the second element of the 'tool' array to store information about its single pen. This makes the function more difficult to understand (since it doesn't follow the general pattern of other IRQ functions) and prevents the possibility of refactoring how pen state is stored. This patch rewrites 'wacom_pl_irq' to follow the usual IRQ conventions, including storing tool type in 'tool[0]' and implicitly tracking prox with the 'id[0]' variable. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 84 +++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 49 deletions(-) commit 41a2d5751616e38d1e293e3cb35a6e2bc7a03473 Author: Roman Kubiak Date: Mon Aug 10 16:54:25 2015 +0200 Kernel threads excluded from smack checks Adds an ignore case for kernel tasks, so that they can access all resources. Since kernel worker threads are spawned with floor label, they are severely restricted by Smack policy. It is not an issue without onlycap, as these processes also run with root, so CAP_MAC_OVERRIDE kicks in. But with onlycap turned on, there is no way to change the label for these processes. Signed-off-by: Roman Kubiak Acked-by: Casey Schaufler security/smack/smack_access.c | 6 ++++++ 1 file changed, 6 insertions(+) commit e5f6450c3f40668de0b9c4cbc53bb345242df78f Author: Jiri Kosina Date: Sun Aug 9 09:11:34 2015 +0200 MAINTAINERS: update my e-mail address Update my e-mail address to the generic kernel.org one. Signed-off-by: Jiri Kosina Signed-off-by: Jiri Kosina MAINTAINERS | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 0ff252c1976da5d80db1377eb39b551931e61826 Author: Ben Young Tae Kim Date: Mon Aug 10 14:24:17 2015 -0700 Bluetooth: hciuart: Add support QCA chipset for UART QCA61x4 chips have supported sleep feature using In-Band-Sleep commands to enable sleep feature based on H4 protocol. After sending patch/nvm configuration is done, IBS mode will be up and running Signed-off-by: Ben Young Tae Kim Signed-off-by: Marcel Holtmann drivers/bluetooth/Kconfig | 13 + drivers/bluetooth/Makefile | 1 + drivers/bluetooth/hci_ldisc.c | 6 + drivers/bluetooth/hci_qca.c | 969 ++++++++++++++++++++++++++++++++++++++++++ drivers/bluetooth/hci_uart.h | 8 +- 5 files changed, 996 insertions(+), 1 deletion(-) commit 83e81961ff7ef75f97756f316caea5aa6bcc19cc Author: Ben Young Tae Kim Date: Mon Aug 10 14:24:12 2015 -0700 Bluetooth: btqca: Introduce generic QCA ROME support This is for supporting BT for QCA ROME with vendor specific HCI commands and initialization on the chip. This will have USB/UART implementation both, but for now, adding UART vendor specific commands to patch downloading and set Bluetooth device address using vendor specific command. Signed-off-by: Ben Young Tae Kim Signed-off-by: Marcel Holtmann drivers/bluetooth/Kconfig | 4 + drivers/bluetooth/Makefile | 1 + drivers/bluetooth/btqca.c | 392 +++++++++++++++++++++++++++++++++++++++++++++ drivers/bluetooth/btqca.h | 135 ++++++++++++++++ 4 files changed, 532 insertions(+) commit d3d73f4b38a8ece19846b8fa2519cdc8583f35bb Author: Daniel Axtens Date: Fri Aug 7 13:18:17 2015 +1000 cxl: Compile with -Werror It's a good idea, and it brings us in line with the rest of arch/powerpc. Signed-off-by: Daniel Axtens Acked-by: Michael Neuling Signed-off-by: Michael Ellerman drivers/misc/cxl/Makefile | 2 ++ 1 file changed, 2 insertions(+) commit bec7a630a66a7d688486ae7ceb3f0b5307bdb2c5 Author: yalin wang Date: Mon Aug 10 17:15:57 2015 +0800 isdn: Remove reverse_bits(), use revbit8() This change isdn driver, remove reverse_bits() function, use the generic revbit8() function instead. Signed-off-by: yalin wang Signed-off-by: David S. Miller drivers/isdn/mISDN/dsp_audio.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) commit 2f3a87326dd4948d21eee8245cde43e8fca9dddf Author: Dan Carpenter Date: Sat Aug 8 22:15:59 2015 +0300 cxgb4: cleanup some indenting Add or remove some tabs so that statements line up correctly. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6bc6d0a88179b732b9a5e40e05099dc219d1b3cb Author: Andrew Lunn Date: Sat Aug 8 17:09:14 2015 +0200 dsa: Support multiple MDIO busses When using a cluster of switches, some topologies will have an MDIO bus per switch, not one for the whole cluster. Allow this to be represented in the device tree, by adding an optional mii-bus property at the switch level. The old platform_device method of instantiation supports this already, so only the device tree binding needs extending with an additional optional phandle. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/dsa/dsa.txt | 5 +++++ net/dsa/dsa.c | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) commit 966bce38e7fdb75eedaec90e40e4d22b9fbce79f Author: Andrew Lunn Date: Sat Aug 8 17:04:50 2015 +0200 net: dsa: mv88e6352: Use mnemonics for EEPROM registers and bits Add register definitions #defines for accessing the EEPROM. Signed-off-by: Andrew Lunn Acked-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/dsa/mv88e6352.c | 18 ++++++++++-------- drivers/net/dsa/mv88e6xxx.h | 8 ++++++-- 2 files changed, 16 insertions(+), 10 deletions(-) commit c73a91b8f944992ec6675fcd34247b9cdf8482ea Merge: fb81139 9f57c67 Author: David S. Miller Date: Mon Aug 10 14:03:55 2015 -0700 Merge branch 'ovs-gre' Pravin B Shelar says: ==================== GRE: Use flow based tunneling for OVS GRE vport. Following patches make use of new Using GRE tunnel meta data collection feature. This allows us to directly use netdev based GRE tunnel implementation. While doing so I have removed GRE demux API which were targeted for OVS. Most of GRE protocol code is now consolidated in ip_gre module. v5-v4: Fixed Kconfig dependency for vport-gre module. v3-v4: Added interface to ip-gre device to enable meta data collection. While doing this I split second patch into two patches. v2-v3: Add API to create GRE flow based device. ==================== Signed-off-by: David S. Miller commit 9f57c67c379d88a10e8ad676426fee5ae7341b14 Author: Pravin B Shelar Date: Fri Aug 7 23:51:52 2015 -0700 gre: Remove support for sharing GRE protocol hook. Support for sharing GREPROTO_CISCO port was added so that OVS gre port and kernel GRE devices can co-exist. After flow-based tunneling patches OVS GRE protocol processing is completely moved to ip_gre module. so there is no need for GRE protocol hook. Following patch consolidates GRE protocol related functions into ip_gre module. Signed-off-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/gre.h | 80 ++----------------- net/ipv4/gre_demux.c | 201 +---------------------------------------------- net/ipv4/ip_gre.c | 215 +++++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 206 insertions(+), 290 deletions(-) commit b2acd1dc3949cd60c571844d495594f05f0351f4 Author: Pravin B Shelar Date: Fri Aug 7 23:51:47 2015 -0700 openvswitch: Use regular GRE net_device instead of vport Using GRE tunnel meta data collection feature, we can implement OVS GRE vport. This patch removes all of the OVS specific GRE code and make OVS use a ip_gre net_device. Minimal GRE vport is kept to handle compatibility with current userspace application. Signed-off-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/gre.h | 12 +-- net/ipv4/gre_demux.c | 34 ------- net/ipv4/ip_gre.c | 36 +++++++ net/openvswitch/Kconfig | 2 +- net/openvswitch/vport-gre.c | 237 ++++---------------------------------------- 5 files changed, 61 insertions(+), 260 deletions(-) commit 2e15ea390e6f4466655066d97e22ec66870a042c Author: Pravin B Shelar Date: Fri Aug 7 23:51:42 2015 -0700 ip_gre: Add support to collect tunnel metadata. Following patch create new tunnel flag which enable tunnel metadata collection on given device. Signed-off-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 7 +- include/uapi/linux/if_tunnel.h | 1 + net/ipv4/ip_gre.c | 195 +++++++++++++++++++++++++++++++++++++---- net/ipv4/ip_tunnel.c | 37 ++++++-- net/ipv4/ipip.c | 2 +- net/ipv6/sit.c | 2 +- 6 files changed, 216 insertions(+), 28 deletions(-) commit a9020fde67a6eb77f8130feff633189f99264db1 Author: Pravin B Shelar Date: Fri Aug 7 23:51:33 2015 -0700 openvswitch: Move tunnel destroy function to oppenvswitch module. This function will be used in gre and geneve vport implementations. Signed-off-by: Pravin B Shelar Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/vport-netdev.c | 21 ++++++++++++++++++--- net/openvswitch/vport-netdev.h | 2 +- net/openvswitch/vport-vxlan.c | 17 +---------------- 3 files changed, 20 insertions(+), 20 deletions(-) commit fb811395cd5a71b9e94a068f524a6f4a21b67bdb Author: Rick Jones Date: Fri Aug 7 11:10:37 2015 -0700 net: add explicit logging and stat for neighbour table overflow Add an explicit neighbour table overflow message (ratelimited) and statistic to make diagnosing neighbour table overflows tractable in the wild. Diagnosing a neighbour table overflow can be quite difficult in the wild because there is no explicit dmesg logged. Callers to neighbour code seem to use net_dbg_ratelimit when the neighbour call fails which means the "base message" is not emitted and the callback suppressed messages from the ratelimiting can end-up juxtaposed with unrelated messages. Further, a forced garbage collection will increment a stat on each call whether it was successful in freeing-up a table entry or not, so that statistic is only a hint. So, add a net_info_ratelimited message and explicit statistic to the neighbour code. Signed-off-by: Rick Jones Signed-off-by: David S. Miller include/net/neighbour.h | 1 + include/uapi/linux/neighbour.h | 1 + net/core/neighbour.c | 14 ++++++++++---- 3 files changed, 12 insertions(+), 4 deletions(-) commit a7854037da006a7472c48773e3190db55217ec9b Author: Nikolay Aleksandrov Date: Fri Aug 7 19:40:45 2015 +0300 bridge: netlink: add support for vlan_filtering attribute This patch adds the ability to toggle the vlan filtering support via netlink. Since we're already running with rtnl in .changelink() we don't need to take any additional locks. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/uapi/linux/if_link.h | 1 + net/bridge/br_netlink.c | 14 +++++++++++++- net/bridge/br_private.h | 7 +++++++ net/bridge/br_vlan.c | 18 ++++++++++++------ 4 files changed, 33 insertions(+), 7 deletions(-) commit e72ee3ed51542092d83001be6803468e4b91e7be Merge: 07151bc 02509f1 Author: David S. Miller Date: Mon Aug 10 13:34:29 2015 -0700 Merge branch 'qlcnic-enhancements' Shahed Shaikh says: ==================== qlcnic: enhancements This series adds few enhancements. o Patch from Harish reorders the sequence of header files inclusion, keeping kernel's header files on top. o Firmware introduced a new feature which allows driver to increases the size of firmware dump of iSCSI function which is being collected by NIC driver. o Print buffer address which is holding a firmware dump. o Use vzalloc() instead kzalloc() for allocating large chunk of memory which will avoid potential memory allocation failure. o Add new device ID for 0x8C30 which is a 83xx series based VF function. Please apply this series to net-next. ==================== Signed-off-by: David S. Miller commit 02509f171d2379e79328f5e447e6c97c58ae8d52 Author: Shahed Shaikh Date: Fri Aug 7 07:17:07 2015 -0400 qlcnic: Update version to 5.3.63 Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0e90ad9bfdcc8835945ccb49f39c21ff3cb0b785 Author: Shahed Shaikh Date: Fri Aug 7 07:17:06 2015 -0400 qlcnic: Don't use kzalloc unncecessarily for allocating large chunk of memory Driver allocates a large chunk of temporary buffer using kzalloc to copy FW image. As there is no real need of this memory to be physically contiguous, use vzalloc instead. Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit da286a6fd1e6913779c0a479f428ec3763dfc16c Author: Shahed Shaikh Date: Fri Aug 7 07:17:05 2015 -0400 qlcnic: Add new VF device ID 0x8C30 This is a 83xx series based VF device Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 12 ++++++++---- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 5 ++++- 2 files changed, 12 insertions(+), 5 deletions(-) commit 642de51025c3623a9d8c7f3b5e930be0fa95b536 Author: Shahed Shaikh Date: Fri Aug 7 07:17:04 2015 -0400 qlcnic: Print firmware minidump buffer and template header addresses Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d01a6d3c8ae1425565ff1615d29fab6023c82932 Author: Shahed Shaikh Date: Fri Aug 7 07:17:03 2015 -0400 qlcnic: Add support to enable capability to extend minidump for iSCSI In some cases it is required to capture minidump for iSCSI functions as part of default minidump collection process. To enable this, firmware exports it's capability and driver need to enable that capability by issuing a mailbox command. With this feature, firmware can provide additional iSCSI function's minidump with smaller minidump capture mask (0x1f). Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 1 + .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 26 ++++++++++++++++++ .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 1 + drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h | 1 + .../net/ethernet/qlogic/qlcnic/qlcnic_minidump.c | 32 ++++++++++++++++++++++ 5 files changed, 61 insertions(+) commit a930a4639d8ce8882a44adcafcfa20049bd67cdf Author: Harish Patil Date: Fri Aug 7 07:17:02 2015 -0400 qlcnic: Rearrange ordering of header files inclusion Include local headers files after kernel's header files. Signed-off-by: Harish Patil Signed-off-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 2 -- drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 5 +++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 1 + drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 6 +++--- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 9 ++++----- drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c | 4 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h | 3 ++- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 3 ++- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 3 ++- drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c | 7 +++---- 10 files changed, 22 insertions(+), 21 deletions(-) commit 07151bc9f7f53731b355b704141ffaccc8d08752 Author: Madalin Bucur Date: Fri Aug 7 17:07:50 2015 +0800 net: phy: select copper mode when Marvel 88e1111 in SGMII For the Marvel 88e1111 PHY only two SGMII modes are available, both allowing only SGMII to copper mode (with or without clock). SGMII to fiber mode is not supported. Make sure the fiber/copper registers selector bits are cleared for selecting copper mode. Signed-off-by: Madalin Bucur Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/marvell.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c4bc44c65b6b24722506ad5d1bbf557a71d3df90 Author: Kevin Hao Date: Fri Aug 7 13:52:37 2015 +0800 net: fec: fix the race between xmit and bdp reclaiming path When we transmit a fragmented skb, we may run into a race like the following scenario (assume txq->cur_tx is next to txq->dirty_tx): cpu 0 cpu 1 fec_enet_txq_submit_skb reserve a bdp for the first fragment fec_enet_txq_submit_frag_skb update the bdp for the other fragment update txq->cur_tx fec_enet_tx_queue bdp = fec_enet_get_nextdesc(txq->dirty_tx, fep, queue_id); This bdp is the bdp reserved for the first segment. Given that this bdp BD_ENET_TX_READY bit is not set and txq->cur_tx is already pointed to a bdp beyond this one. We think this is a completed bdp and try to reclaim it. update the bdp for the first segment update txq->cur_tx So we shouldn't update the txq->cur_tx until all the update to the bdps used for fragments are performed. Also add the corresponding memory barrier to guarantee that the update to the bdps, dirty_tx and cur_tx performed in the proper order. Signed-off-by: Kevin Hao Signed-off-by: David S. Miller drivers/net/ethernet/freescale/fec_main.c | 35 ++++++++++++++++++------------- 1 file changed, 20 insertions(+), 15 deletions(-) commit 4605bb55b91449a1a953a51f0334d3bc02351adb Author: Namhyung Kim Date: Sun Aug 9 15:45:24 2015 +0900 perf evlist: Be more specific on -F/--freq Currently perf evlist -F shows the number as if it's always sampling frequency. But we now support per-event freq/period settings. So it'd better to show more detailed info whether it's freq or period. $ perf record -e 'cpu/config=1/,cpu/config=2,period=300000/' sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.017 MB perf.data ] $ perf evlist -F cpu/config=1/: sample_freq=4000 cpu/config=2,period=300000/: sample_period=300000 Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: David Ahern Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1439102724-14079-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 09af2a553577a6e53e40011a910be0f27ce56f3e Author: Namhyung Kim Date: Sun Aug 9 15:45:23 2015 +0900 perf record: Support per-event freq term Now perf can set per-event value of time and (sampling) period. But I guess most users like me just want to set frequency rather than period. So add the 'freq' term in the event parser. Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa Cc: David Ahern Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1439102724-14079-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 1 + tools/perf/util/evsel.c | 4 ++++ tools/perf/util/evsel.h | 2 ++ tools/perf/util/parse-events.c | 6 ++++++ tools/perf/util/parse-events.h | 1 + tools/perf/util/parse-events.l | 1 + tools/perf/util/pmu.c | 2 +- 7 files changed, 16 insertions(+), 1 deletion(-) commit 31191a85fb875cf123cea56bbfd34f4b941f3c79 Author: Andi Kleen Date: Fri Aug 7 15:54:24 2015 -0700 perf report: Add support for srcfile sort key In some cases it's useful to characterize samples by file. This is useful to get a higher level categorization, for example to map cost to subsystems. Add a srcfile sort key to perf report. It builds on top of the existing srcline support. Commiter notes: E.g.: # perf record -F 10000 usleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.016 MB perf.data (13 samples) ] [root@zoo ~]# perf report -s srcfile --stdio # Total Lost Samples: 0 # # Samples: 13 of event 'cycles' # Event count (approx.): 869878 # # Overhead Source File # ........ ........... 60.99% . 20.62% paravirt.h 14.23% rmap.c 4.04% signal.c 0.11% msr.h # The first line is collecting all the files for which srcfiles couldn't somehow get resolved to: # perf report -s srcfile,dso --stdio # Total Lost Samples: 0 # # Samples: 13 of event 'cycles' # Event count (approx.): 869878 # # Overhead Source File Shared Object # ........ ........... ................ 40.97% . ld-2.20.so 20.62% paravirt.h [kernel.vmlinux] 20.02% . libc-2.20.so 14.23% rmap.c [kernel.vmlinux] 4.04% signal.c [kernel.vmlinux] 0.11% msr.h [kernel.vmlinux] # XXX: Investigate why that is not resolving on Fedora 21, Andi says he hasn't seen this on Fedora 22. Signed-off-by: Andi Kleen Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438988064-21834-1-git-send-email-andi@firstfloor.org [ Added column length update, from 0e65bdb3f90f ('perf hists: Update the column width for the "srcline" sort key') ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 2 ++ tools/perf/util/hist.c | 5 +++ tools/perf/util/hist.h | 1 + tools/perf/util/sort.c | 52 ++++++++++++++++++++++++++++++++ tools/perf/util/sort.h | 2 ++ 5 files changed, 62 insertions(+) commit e8e6d37e73e6b950c891c780745460b87f4755b6 Author: Arnaldo Carvalho de Melo Date: Mon Aug 10 16:53:54 2015 -0300 perf hists: Update the column width for the "srcline" sort key When we introduce a new sort key, we need to update the hists__calc_col_len() function accordingly, otherwise the width will be limited to strlen(header). We can't update it when obtaining a line value for a column (for instance, in sort__srcline_cmp()), because we reset it all when doing a resort (see hists__output_recalc_col_len()), so we need to, from what is in the hist_entry fields, set each of the column widths. Cc: Namhyung Kim Cc: Andi Kleen Cc: Jiri Olsa Fixes: 409a8be61560 ("perf tools: Add sort by src line/number") Link: http://lkml.kernel.org/n/tip-jgbe0yx8v1gs89cslr93pvz2@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 3 +++ 1 file changed, 3 insertions(+) commit 9056fff3d5190617a93a4ae658a2ea7b96772834 Merge: c862399 8fcd461 Author: J. Bruce Fields Date: Mon Aug 10 16:16:03 2015 -0400 Merge branch 'for-4.2' into for-4.3 commit c8623999ffddb8f906154b195aa80d2d279d814f Author: Kinglong Mee Date: Mon Jul 13 17:35:37 2015 +0800 nfsd: Remove unused clientid arguments from, find_lockowner_str{_locked} Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 76f6c9e176dda6e34cbe0f0ca99d59f646a9c950 Author: Kinglong Mee Date: Mon Jul 13 17:35:10 2015 +0800 nfsd: Use lk_new_xxx instead of v.new.xxx for nfs4_lockowner Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit e7969315f472aeddf39d6db34cc3f6bf3316fd62 Author: Kinglong Mee Date: Mon Jul 13 17:34:19 2015 +0800 nfsd: Remove macro LOFF_OVERFLOW Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 7a5e8d5b5cdbd05f8b65a7bbcd62e70a9f48eecb Author: Kinglong Mee Date: Mon Jul 13 17:33:55 2015 +0800 nfsd: Remove duplicate checking of nfsd_net in nfs4_laundromat() Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 2 -- 1 file changed, 2 deletions(-) commit efde6b4d4e668f16bc91e9a462e1ec3c99d41136 Author: Kinglong Mee Date: Mon Jul 13 17:33:24 2015 +0800 nfsd: Remove unused values in nfs4_setlease() Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 871860225b32920dd685c6da488956f1c75bf676 Author: Kinglong Mee Date: Mon Jul 13 17:32:59 2015 +0800 nfsd: Remove nfs4_set_claim_prev() Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit f5e22bb6d91aba04fd252c1067b79c0227599a6a Author: Kinglong Mee Date: Mon Jul 13 17:32:34 2015 +0800 nfsd: Drop duplicate checking of seqid in nfsd4_create_session() Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 6cd22668e8c8e2618c1883c835de10e11395123b Author: Kinglong Mee Date: Mon Jul 13 17:32:05 2015 +0800 nfsd: Remove unneeded values in nfsd4_open() Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4proc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 41eb16702c6e4294685e65e0a63f11cfc816cb96 Author: Kinglong Mee Date: Mon Jul 13 17:29:41 2015 +0800 nfsd: Add missing gen_confirm in nfsd4_setclientid() Commit 294ac32e99 "nfsd: protect clid and verifier generation with client_lock" moved gen_confirm() to gen_clid(). After that commit, setclientid will return a bad reply with all-zero verifier after copy_clid(). Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 19311aa8353644c18d609291e0078843d1c22ece Author: Kinglong Mee Date: Sat Jul 18 07:33:31 2015 +0800 nfsd: New counter for generating client confirm verifier If using clientid_counter, it seems possible that gen_confirm could generate the same verifier for the same client in some situations. Add a new counter for client confirm verifier to make sure gen_confirm generates a different verifier on each call for the same clientid. Signed-off-by: Kinglong Mee Reviewed-by: Jeff Layton Signed-off-by: J. Bruce Fields fs/nfsd/netns.h | 1 + fs/nfsd/nfs4state.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit d50ffded7947c052ca91bf02e08d71e3aef8b789 Author: Kinglong Mee Date: Thu Jul 16 12:05:07 2015 +0800 nfsd: Fix memory leak of so_owner.data in nfs4_stateowner v2, new helper nfs4_free_stateowner for freeing so_owner.data and sop Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 47e970bee7e83d997be11d91d2fbc7f64c8bb89e Author: Kinglong Mee Date: Tue Jul 21 13:09:17 2015 +0800 nfsd: Add layouts checking in client_has_state() Layout is a state resource, nfsd should check it too. v2, drop unneeded updating in nfsd4_renew() v3, fix compile error without CONFIG_NFSD_PNFS Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 3 +++ 1 file changed, 3 insertions(+) commit af9dbaf48d00a34c2933ed0c0e9c82b37eb16356 Author: Kinglong Mee Date: Mon Jul 13 17:30:51 2015 +0800 nfsd: Fix a memory leak of struct file_lock Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4state.c | 1 + 1 file changed, 1 insertion(+) commit 1b6dc1dffbb142de60eb65f6155276ac31ff5474 Author: Jeff Layton Date: Mon Jun 8 12:11:10 2015 -0700 nfsd/sunrpc: factor svc_rqst allocation and freeing from sv_nrthreads refcounting In later patches, we'll want to be able to allocate and free svc_rqst structures without monkeying with the serv->sv_nrthreads refcount. Factor those pieces out of their respective functions. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc.h | 3 +++ net/sunrpc/svc.c | 54 ++++++++++++++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 18 deletions(-) commit d70bc0c67c7aaf0d00084b2f91b44fe1a8ae4e15 Author: Jeff Layton Date: Mon Jun 8 12:09:54 2015 -0700 nfsd/sunrpc: move pool_mode definitions into svc.h In later patches, we're going to need to allow code external to svc.c to figure out what pool_mode is in use. Move these definitions into svc.h to prepare for that. Also, make the svc_pool_map object available and exported so that other modules can peek in there to get insight into what pool mode is in use. Likewise, export svc_pool_map_get/put function to make it safe to do so. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc.h | 25 +++++++++++++++++++++++++ net/sunrpc/svc.c | 31 +++++++------------------------ 2 files changed, 32 insertions(+), 24 deletions(-) commit 598e2359090d393b01a8e10386dc3056ccfa47ae Author: Jeff Layton Date: Mon Jun 8 12:08:33 2015 -0700 nfsd/sunrpc: abstract out svc_set_num_threads to sv_ops Add an operation that will do setup of the service. In the case of a classic thread-based service that means starting up threads. In the case of a workqueue-based service, the setup will do something different. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields fs/nfsd/nfssvc.c | 8 +++++--- include/linux/sunrpc/svc.h | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) commit b9e13cdfac70e38ade17b53810a36968c5842339 Author: Jeff Layton Date: Mon Jun 8 12:06:51 2015 -0700 nfsd/sunrpc: turn enqueueing a svc_xprt into a svc_serv operation For now, all services use svc_xprt_do_enqueue, but once we add workqueue-based service support, we'll need to do something different. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields fs/lockd/svc.c | 3 ++- fs/nfs/callback.c | 1 + fs/nfsd/nfssvc.c | 11 ++++++----- include/linux/sunrpc/svc.h | 3 +++ include/linux/sunrpc/svc_xprt.h | 1 + net/sunrpc/svc_xprt.c | 10 +++++----- 6 files changed, 18 insertions(+), 11 deletions(-) commit 758f62fff9ad630f05866a1dd6ae9453a7730c2e Author: Jeff Layton Date: Mon Jun 8 12:05:56 2015 -0700 nfsd/sunrpc: move sv_module parm into sv_ops ...not technically an operation, but it's more convenient and cleaner to pass the module pointer in this struct. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields fs/nfsd/nfssvc.c | 3 ++- include/linux/sunrpc/svc.h | 9 ++++++--- net/sunrpc/svc.c | 8 +++----- 3 files changed, 11 insertions(+), 9 deletions(-) commit c369014f1776367269c8fbb5ea8932826d89ce2f Author: Jeff Layton Date: Mon Jun 8 12:04:46 2015 -0700 nfsd/sunrpc: move sv_function into sv_ops Since we now have a container for holding svc_serv operations, move the sv_function into it as well. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields fs/nfsd/nfssvc.c | 3 ++- include/linux/sunrpc/svc.h | 11 +++-------- net/sunrpc/svc.c | 8 +++----- 3 files changed, 8 insertions(+), 14 deletions(-) commit ea126e74353453d15fc0a181910ae1e25162f2a1 Author: Jeff Layton Date: Mon Jun 8 12:03:32 2015 -0700 nfsd/sunrpc: add a new svc_serv_ops struct and move sv_shutdown into it In later patches we'll need to abstract out more operations on a per-service level, besides sv_shutdown and sv_function. Declare a new svc_serv_ops struct to hold these operations, and move sv_shutdown into this struct. Signed-off-by: Shirley Ma Acked-by: Jeff Layton Tested-by: Shirley Ma Signed-off-by: J. Bruce Fields fs/lockd/svc.c | 6 +++++- fs/nfs/callback.c | 5 ++++- fs/nfsd/nfssvc.c | 6 +++++- include/linux/sunrpc/svc.h | 20 ++++++++++---------- net/sunrpc/svc.c | 18 +++++++++--------- 5 files changed, 33 insertions(+), 22 deletions(-) commit cc9a903d915c21626b6b2fbf8ed0ff16a7f82210 Author: Chuck Lever Date: Fri Aug 7 16:55:46 2015 -0400 svcrdma: Change maximum server payload back to RPCSVC_MAXPAYLOAD Both commit 0380a3f375 ("svcrdma: Add a separate "max data segs" macro for svcrdma") and commit 7e5be28827bf ("svcrdma: advertise the correct max payload") are incorrect. This commit reverts both changes, restoring the server's maximum payload size to 1MB. Commit 7e5be28827bf based the server's maximum payload on the _client's_ RPCRDMA_MAX_DATA_SEGS value. That was wrong. Commit 0380a3f375 tried to fix this so that the client maximum payload size could be raised without affecting the server, but managed to confuse matters more on the server side. More importantly, limiting the advertised maximum payload size was meant to be a workaround, not the actual fix. We need to revisit https://bugzilla.linux-nfs.org/show_bug.cgi?id=270 A Linux client on a platform with 64KB pages can overrun and crash an x86_64 NFS/RDMA server when the r/wsize is 1MB. An x86/64 Linux client seems to work fine using 1MB reads and writes when the Linux server's maximum payload size is restored to 1MB. BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=270 Fixes: 0380a3f375 ("svcrdma: Add a separate "max data segs" macro") Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 9 ++------- net/sunrpc/xprtrdma/svc_rdma_transport.c | 2 +- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 3 files changed, 3 insertions(+), 9 deletions(-) commit 5cef897652f224442c013d9e9425536b38385351 Author: Arnaldo Carvalho de Melo Date: Mon Aug 10 15:45:55 2015 -0300 perf hists: hist_entry__cmp() may use he_tmp.hists, initialize it The iter_add_next_cumulative_entry() function calls hist_entry__cmp(), which may want to access the hists where this hist_entry is stored, initialize it to let that happen and avoid segfaults. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-iqg98sfn4fvwcxp0pdvqauie@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/hist.c | 1 + 1 file changed, 1 insertion(+) commit fa1422207756833096b54356a539e3a7d7edec4f Author: Jakub Pawlowski Date: Fri Aug 7 20:22:56 2015 +0200 Bluetooth: Enable new connection establishment procedure. Currently, when trying to connect to already paired device that just rotated its RPA MAC address, old address would be used and connection would fail. In order to fix that, kernel must scan and receive advertisement with fresh RPA before connecting. This patch enables new connection establishment procedure. Instead of just sending HCI_OP_LE_CREATE_CONN to controller, "connect" will add device to kernel whitelist and start scan. If advertisement is received, it'll be compared against whitelist and then trigger connection if it matches. That fixes mentioned reconnect issue for already paired devices. It also make whole connection procedure more robust. We can try to connect to multiple devices at same time now, even though controller allow only one. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_core.c | 6 ++++-- net/bluetooth/mgmt.c | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) commit cc2b6911a205b327b29c1d771925f8ab2f80295f Author: Jakub Pawlowski Date: Fri Aug 7 20:22:55 2015 +0200 Bluetooth: timeout handling in new connect procedure Currently, when trying to connect to already paired device that just rotated its RPA MAC address, old address would be used and connection would fail. In order to fix that, kernel must scan and receive advertisement with fresh RPA before connecting. This patch makes sure that when new procedure is in use, and we're stuck in scan phase because no advertisement was received and timeout happened, or app decided to close socket, scan whitelist gets properly cleaned up. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 28a667c9c279df5a6467842ee2b3b73ddf874732 Author: Jakub Pawlowski Date: Fri Aug 7 20:22:54 2015 +0200 Bluetooth: advertisement handling in new connect procedure Currently, when trying to connect to already paired device that just rotated its RPA MAC address, old address would be used and connection would fail. In order to fix that, kernel must scan and receive advertisement with fresh RPA before connecting. This path makes sure that after advertisement is received from device that we try to connect to, it is properly handled in check_pending_le_conn and trigger connect attempt. It also modifies hci_le_connect to make sure that connect attempt will be properly continued. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann net/bluetooth/hci_conn.c | 52 +++++++++++++++++++++++++++++++++-------------- net/bluetooth/hci_event.c | 51 ++++++++++++++++++++++++++-------------------- net/bluetooth/mgmt.c | 6 ++++++ 3 files changed, 72 insertions(+), 37 deletions(-) commit f75113a26008980ca13834fb6573145523596776 Author: Jakub Pawlowski Date: Fri Aug 7 20:22:53 2015 +0200 Bluetooth: add hci_connect_le_scan Currently, when trying to connect to already paired device that just rotated its RPA MAC address, old address would be used and connection would fail. In order to fix that, kernel must scan and receive advertisement with fresh RPA before connecting. This patch adds hci_connect_le_scan with dependencies, new method that will be used to connect to remote LE devices. Instead of just sending connect request, it adds a device to whitelist. Later patches will make use of this whitelist to send conenct request when advertisement is received, and properly handle timeouts. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 6 ++ net/bluetooth/hci_conn.c | 174 +++++++++++++++++++++++++++++++++++++++ net/bluetooth/hci_core.c | 33 ++++++++ 3 files changed, 213 insertions(+) commit e7d9ab731ac7babaf2e1b7b5e2280f5f555d263f Author: Jakub Pawlowski Date: Fri Aug 7 20:22:52 2015 +0200 Bluetooth: add hci_lookup_le_connect This patch adds hci_lookup_le_connect method, that will be used to check wether outgoing le connection attempt is in progress. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 20 ++++++++++++++++++++ net/bluetooth/hci_conn.c | 5 ++--- net/bluetooth/hci_event.c | 4 ++-- net/bluetooth/hci_request.c | 6 ++---- net/bluetooth/mgmt.c | 2 +- 5 files changed, 27 insertions(+), 10 deletions(-) commit 158e92185075184ebc5f25bab61fdd598693e28d Author: Jakub Pawlowski Date: Fri Aug 7 20:22:51 2015 +0200 Bluetooth: preparation for new connect procedure Currently, when trying to connect to already paired device that just rotated its RPA MAC address, old address would be used and connection would fail. In order to fix that, kernel must scan and receive advertisement with fresh RPA before connecting. This patch adds some fields to hci_conn_params, in preparation to new connect procedure. explicit_connect will be used to override any current auto_connect action, and connect to device when ad is received. HCI_AUTO_CONN_EXPLICIT was added to auto_connect enum. When this value will be used, explicit connect is the only action, and params can be removed after successful connection. HCI_CONN_SCANNING is added to hci_conn flags. When it's set, connect is scan phase. It gets cleared when advertisement is received, and HCI_OP_LE_CREATE_CONN is sent. Signed-off-by: Jakub Pawlowski Signed-off-by: Marcel Holtmann include/net/bluetooth/hci_core.h | 3 +++ 1 file changed, 3 insertions(+) commit 6394328ab8a2ab6b127ae85f716943d92595878d Author: Chao Yu Date: Fri Aug 7 18:36:06 2015 +0800 f2fs: report error of fill_zero fill_zero can fail due to a lot of reason, but previously we do not handle its return value, so its callers such as punch_hole/f2fs_zero_range may report success, but actually can fail because of error occurs inside fill_zero. This patch fixes to report correct return value of fill_zero. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 56 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 18 deletions(-) commit 2db0f71f56795f6b04d386b15c3b32b570558ebd Author: Bjorn Helgaas Date: Wed Jul 1 17:17:49 2015 -0500 PCI: pciehp: Remove ignored MRL sensor interrupt events We queued interrupt events for the MRL being opened or closed, but the code in interrupt_event_handler() that handles these events ignored them. Stop enabling MRL interrupts and remove the ignored events. Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/pciehp.h | 10 ++++------ drivers/pci/hotplug/pciehp_hpc.c | 17 +++-------------- 2 files changed, 7 insertions(+), 20 deletions(-) commit 58fa2405bd44805cb6166603100b0183ce26a0c8 Author: Bjorn Helgaas Date: Wed Jul 1 17:01:03 2015 -0500 PCI: pciehp: Remove unused interrupt events The list of interrupt events (INT_BUTTON_IGNORE, INT_PRESENCE_ON, etc.) was copied from other hotplug drivers, but pciehp doesn't use them all. Remove the interrupt events that aren't used by pciehp. Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/pciehp.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 1469d17dd341458267a08c8d8bb517cb986ec56d Author: Jarod Wilson Date: Tue Jul 21 12:25:30 2015 -0400 PCI: pciehp: Handle invalid data when reading from non-existent devices It's platform-dependent, but an MMIO read to a non-existent PCI device generally returns data with all bits set. This happens when the host bridge or Root Complex times out waiting for a response from the device and fabricates return data to complete the CPU's read. One example, reported in the bugzilla below, involved this hierarchy: pci 0000:00:1c.0: PCI bridge to [bus 02-3a] Root Port pci 0000:02:00.0: PCI bridge to [bus 03-0a] Upstream Port pci 0000:03:03.0: PCI bridge to [bus 05-07] Downstream Port pci 0000:05:00.0: PCI bridge to [bus 06-07] Thunderbolt Upstream Port pci 0000:06:00.0: PCI bridge to [bus 07] Thunderbolt Downstream Port pci 0000:07:00.0: BCM57762 NIC Unplugging the Thunderbolt switch and the NIC below it resulted in this: pciehp 0000:03:03.0: Surprise Removal tg3 0000:07:00.0: tg3_abort_hw timed out, TX_MODE_ENABLE will not clear MAC_TX_MODE=ffffffff pciehp 0000:06:00.0: unloading service driver pciehp pciehp 0000:06:00.0: pcie_isr: intr_loc 11f pciehp 0000:06:00.0: Switch interrupt received pciehp 0000:06:00.0: Latch open on Slot pciehp 0000:06:00.0: Attention button interrupt received pciehp 0000:06:00.0: Button pressed on Slot pciehp 0000:06:00.0: Presence/Notify input change pciehp 0000:06:00.0: Card present on Slot pciehp 0000:06:00.0: Power fault interrupt received pciehp 0000:06:00.0: Data Link Layer State change pciehp 0000:06:00.0: Link Up event The pciehp driver correctly noticed that the Thunderbolt switch (05:00.0 and 06:00.0) and NIC (07:00.0) had been removed, and it called their driver remove methods. Since the NIC was already gone, tg3 received 0xffffffff when it tried to read from the device. The resulting timeout is a tg3 issue and not of interest here. Similarly, since the 06:00.0 Thunderbolt switch was already gone, pcie_isr() received 0xffff when it tried to read PCI_EXP_SLTSTA, and pciehp thought that was valid status showing that many events had happened: the latch had been opened, the attention button had been pressed, a card was now present, and the link was now up. These are all wrong, of course, but pciehp went on to try to power up and enumerate devices below the non-existent bridge: pciehp 0000:06:00.0: PCI slot - powering on due to button press pciehp 0000:06:00.0: Surprise Insertion pci 0000:07:00.0 id reading try 50 times with interval 20 ms to get ffffffff [bhelgaas: changelog, also check in pcie_poll_cmd() & pcie_do_write_cmd()] Link: https://bugzilla.kernel.org/show_bug.cgi?id=99841 Suggested-by: Bjorn Helgaas Signed-off-by: Jarod Wilson Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/pciehp_hpc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 9b412590faaea65dab54f9bc5ae5b48ba0e73c5d Author: Bertold Van den Bergh Date: Mon Aug 3 15:45:41 2015 +0200 ath: Make ath_opmode_to_string understand OCB mode Make ath_opmode_to_string return "OCB" for NL80211_IFTYPE_OCB. Currently it will return "UNKNOWN". Signed-off-by: Bertold Van den Bergh Signed-off-by: Kalle Valo drivers/net/wireless/ath/debug.c | 2 ++ 1 file changed, 2 insertions(+) commit 53cd2fdb00aab34f91762f6345f83625a30480f0 Author: Hauke Mehrtens Date: Sun Aug 2 20:26:52 2015 +0200 bcma: fix access to host_pdev for PCIe devices bus->host_pdev is part of a union so bus->host_pdev != NULL is probably also true for PCIe devices, because there it accesses bus->host_pci. If we access the dev member at the offset defined in struct platform_device in struct pci_dev instead we probably get something else. This patch adds a new function which returns the host dev struct and NULL if we do not have a host dev. When this gets registered on MIPS brcm47xx we do not have a host dev in some situations. This function could also be used in other places. This problem was introduced in this commit: commit cae761b5a6bdc597ba476a040fdcd5b4bc559b85 Author: Rafa? Mi?ecki Date: Sun Jun 28 17:17:13 2015 +0200 bcma: populate bus DT subnodes as platform_device-s Signed-off-by: Hauke Mehrtens Signed-off-by: Kalle Valo drivers/bcma/bcma_private.h | 1 + drivers/bcma/main.c | 30 +++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) commit 78623bfb6f4cbdba3183621e8e0e781611217022 Author: Jakub Kicinski Date: Fri Jul 31 15:04:49 2015 +0200 mt7601u: lock out rx path and tx status reporting mac80211 requires that rx path does not run concurrently with tx status reporting. Add a spinlock which will ensure that. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/dma.c | 2 ++ drivers/net/wireless/mediatek/mt7601u/init.c | 1 + drivers/net/wireless/mediatek/mt7601u/mac.c | 4 ++-- drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 4 +++- drivers/net/wireless/mediatek/mt7601u/tx.c | 3 +++ 5 files changed, 11 insertions(+), 3 deletions(-) commit 4513493d188d5e3052aee68eda85eaaa1a4e41c2 Author: Jakub Kicinski Date: Fri Jul 31 15:04:48 2015 +0200 mt7601u: fix tx status reporting contexts mac80211 requires that rx path does not run concurrently with tx status reporting. Since rx path is run in driver tasklet, tx status cannot be reported directly from interrupt context (there would be no way to lock it out). Add tasklet for tx and move all possible code from irq handler there. Note: tx tasklet is needed because workqueue is queued very rarely and that kills TCP performance. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/dma.c | 30 +++++++++++++++++++++---- drivers/net/wireless/mediatek/mt7601u/init.c | 1 + drivers/net/wireless/mediatek/mt7601u/mac.c | 4 ++++ drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 2 ++ 4 files changed, 33 insertions(+), 4 deletions(-) commit d9517c0a5d7468a7ea63086057604fcb0fff480e Author: Jakub Kicinski Date: Fri Jul 31 15:04:47 2015 +0200 mt7601u: use correct ieee80211_rx variant Rx is run inside a tasklet so ieee80211_rx() should be used instead of ieee80211_rx_ni(). Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bed429e1ae8b7ee207e01f3aa60dcc0d06a8ed4d Author: Jakub Kicinski Date: Fri Jul 31 15:04:46 2015 +0200 mt7601u: fix dma from stack address DMA to variables located on the stack is a bad idea. For simplicity and to avoid frequent allocations create a buffer inside the device structure. Protect this buffer with vendor_req_mutex. Don't protect vendor requests which don't use this buffer. Signed-off-by: Jakub Kicinski Signed-off-by: Kalle Valo drivers/net/wireless/mediatek/mt7601u/mt7601u.h | 4 +- drivers/net/wireless/mediatek/mt7601u/usb.c | 63 ++++++++++++------------- drivers/net/wireless/mediatek/mt7601u/usb.h | 2 + 3 files changed, 34 insertions(+), 35 deletions(-) commit 7845af35e0deeb7537de759ebc69d6395d4123bf Author: Eliad Peller Date: Thu Jul 30 22:38:22 2015 +0300 wlcore: add p2p device support When starting a p2p mgmt interface, enable its device role. This allows us to keep the sta role disabled and scan on the dev role. In general, p2p management interfaces cannot send vif-specific commands to FW, as the vif role id is invalid. Only off-channel data and scans happen on this vif, so most ops are not relevant. If the vif is a p2p mgmt vif, block some mac80211 ops. Configure rate policies for p2p mgmt interface, as otherwise p2p packets come out with arbitrary rates. Since wpa_supplicant currently doesn't support standalone p2p device mode (without another attached managed interface), add p2p device to the allowed interface combinations without decreasing the allowed station count. Moreover, increase the station count in some cases, as AP mode usually starts as station interface, and the AP interface is now different from the p2p management one). Signed-off-by: Arik Nemtsov Signed-off-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl12xx/scan.c | 6 ++- drivers/net/wireless/ti/wl18xx/main.c | 48 ++++++++++++++++++++- drivers/net/wireless/ti/wl18xx/scan.c | 6 ++- drivers/net/wireless/ti/wlcore/cmd.c | 26 +++++++----- drivers/net/wireless/ti/wlcore/init.c | 2 +- drivers/net/wireless/ti/wlcore/init.h | 1 + drivers/net/wireless/ti/wlcore/main.c | 69 +++++++++++++++++++++++++------ drivers/net/wireless/ti/wlcore/wlcore_i.h | 5 +++ 8 files changed, 136 insertions(+), 27 deletions(-) commit c32e35f29ce96da371e798a8a04ed299f4ecfc44 Author: Eliad Peller Date: Thu Jul 30 22:38:21 2015 +0300 wlcore: add generic_cfg_feature command definitions Add definitions and function prototypes for generic_cfg command. Signed-off-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/cmd.c | 30 ++++++++++++++++++++++++++++++ drivers/net/wireless/ti/wlcore/cmd.h | 15 +++++++++++++++ 2 files changed, 45 insertions(+) commit 8698a3a4fff2b63831fdc0283da87f9f46c2aeb8 Author: Eliad Peller Date: Thu Jul 30 22:38:20 2015 +0300 wl18xx: use long intervals in sched scan Add support for long intervals on sched scan. If configured, the original request interval will be used num_short_interval times, and then the long interval will be used. While on it, fix the scan command field names to reflect the expected value is in ms (rather than secs). These values will be taken from the conf file, so bump its version accordingly. Signed-off-by: Eyal Shapira Signed-off-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/main.c | 2 ++ drivers/net/wireless/ti/wl18xx/scan.c | 17 ++++++++++++++--- drivers/net/wireless/ti/wl18xx/scan.h | 4 ++-- drivers/net/wireless/ti/wlcore/conf.h | 11 ++++++++++- drivers/net/wireless/ti/wlcore/scan.h | 6 ++++++ 5 files changed, 34 insertions(+), 6 deletions(-) commit 6d5c898798aca634f493cabd2e7a47407ee5e95d Author: Machani, Yaniv Date: Thu Jul 30 22:38:19 2015 +0300 wlcore/wl18xx : add time sync event handling Added support for a new time sync event the event data contains the WiLink TSF value. To trigger the event, a HW modification is required, so as a supporting firmware binary. Signed-off-by: Yaniv Machani Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/event.c | 13 +++++++++++++ drivers/net/wireless/ti/wl18xx/event.h | 12 ++++++++---- drivers/net/wireless/ti/wl18xx/main.c | 4 ++-- 3 files changed, 23 insertions(+), 6 deletions(-) commit 100a008331072e678ffcf2d903e48c633c2795fe Author: Amitkumar Karwar Date: Tue Jul 28 07:22:20 2015 -0700 mwifiex: correct TDLS link delete failure message priority Commit d8d2f19feb16 ("mwifiex: silence TDLS link delete failure for nonexistent link") lowers the priority of error message when TDLS link is already deleted. But it had got increased by commit acebe8c10a6e ("mwifiex: change dbg print func to mwifiex_dbg") Reported-by: Nicholas Mc Guire Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sta_cmdresp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f8db91840747e95df231f67dfa09eafeb4cc6d0 Author: Alexander Aring Date: Mon Aug 10 21:15:59 2015 +0200 ieee802154: 6lowpan: fix error frag handling This patch fixes the error handling for lowpan_xmit_fragment by replace "-PTR_ERR" to "PTR_ERR". PTR_ERR returns already a negative errno code. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/ieee802154/6lowpan/tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c91208d819c814e7f418c7a083059cf533ad0396 Author: Alexander Aring Date: Mon Aug 10 21:15:58 2015 +0200 ieee802154: add ack request default handling This patch introduce a new mib entry which isn't part of 802.15.4 but useful as default behaviour to set the ack request bit or not if we don't know if the ack request bit should set. This is currently used for stacks like IEEE 802.15.4 6LoWPAN. Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 5 +++++ include/net/nl802154.h | 4 ++++ net/ieee802154/6lowpan/tx.c | 2 +- net/ieee802154/nl802154.c | 33 +++++++++++++++++++++++++++++++++ net/ieee802154/rdev-ops.h | 13 +++++++++++++ net/ieee802154/trace.h | 19 +++++++++++++++++++ net/mac802154/cfg.c | 11 +++++++++++ 7 files changed, 86 insertions(+), 1 deletion(-) commit fc0719e6a144402197a2147117f10b66ee623fbb Author: Alexander Aring Date: Mon Aug 10 21:15:57 2015 +0200 at86rf230: use STATE_TX_ARET mode only This patch changes the state change behaviour of at86rf230 to always TX_ARET mode. According the at86rf2xx datasheets TX_ARET mode doesn't mean to be always waiting for ack frames after transmit. The transceiver will automatically wait for ack frames or not if the acknowledge request bit is set. See section "TX_ARET_ON – Transmit with Automatic Frame Retransmission and CSMA-CA Retry". Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 52 ++++++++++---------------------------- 1 file changed, 14 insertions(+), 38 deletions(-) commit 89c7d788f89d58136a2e5596796c298942ee32d6 Author: Alexander Aring Date: Mon Aug 10 21:15:56 2015 +0200 mac802154: change frame_retries behaviour This patch changes the default minimum value of frame_retries to 0 and changes the frame_retries default value to 3 which is also 802.15.4 default. We don't use the frame_retries "-1" value as indicator for no-aret mode anymore, instead we checking on the ack request bit inside the 802.15.4 frame control field. This allows a acknowledge handling per frame. This checking is done by transceiver or inside xmit callback of driver layer. If a transceiver doesn't support ARET handling the transmit functionality ignores ack frames then, which isn't well but should not effect anything of current functionality. Reviewed-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 3 +-- net/mac802154/main.c | 9 +++------ 2 files changed, 4 insertions(+), 8 deletions(-) commit 91f02b3dd8311b48c021e8667a84dfc2d6445a03 Author: Alexander Aring Date: Mon Aug 10 21:15:55 2015 +0200 mac802154: cfg: remove test and set checks This patch removes several checks if a value is really changed. This makes only sense if we have another layer call e.g. calling the driver_ops which is done by callbacks like "set_channel". For MAC settings which need to be set by phy registers (if the phy supports that handling) this is set by doing an interface up currently and are not direct driver_ops calls, so we remove the checks from these configuration callbacks. Reviewed-by: Stefan Schmidt Suggested-by: Phoebe Buckheister Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/cfg.c | 16 ---------------- 1 file changed, 16 deletions(-) commit 09095fdc9e5d5438051fc4e92867f1aff764cd21 Author: Alexander Aring Date: Mon Aug 10 21:15:54 2015 +0200 mac802154: fix wpan mac setting while lowpan is there If we currently change the mac address inside the wpan interface while we have a lowpan interface on top of the wpan interface, the mac address setting doesn't reach the lowpan interface. The effect would be that the IPv6 lowpan interface has the old SLAAC address and isn't working anymore because the lowpan interface use in internal mechanism sometimes dev->addr which is the old mac address of the wpan interface. This patch checks if a wpan interface belongs to lowpan interface, if yes then we need to check if the lowpan interface is down and change the mac address also at the lowpan interface. When the lowpan interface will be set up afterwards, it will use the correct SLAAC address which based on the updated mac address setting. Reviewed-by: Stefan Schmidt Tested-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/iface.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 51e0e5d8124ece158927a4c2288c0929d3b53aa3 Author: Alexander Aring Date: Mon Aug 10 21:15:53 2015 +0200 ieee802154: 6lowpan: remove multiple lowpan per wpan support We currently supports multiple lowpan interfaces per wpan interface. I never saw any use case into such functionality. We drop this feature now because it's much easier do deal with address changes inside the under laying wpan interface. This patch removes the multiple lowpan interface and adds a lowpan_dev netdev pointer into the wpan_dev, if this pointer isn't null the wpan interface belongs to the assigned lowpan interface. Reviewed-by: Stefan Schmidt Tested-by: Stefan Schmidt Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 3 ++ net/ieee802154/6lowpan/6lowpan_i.h | 8 ----- net/ieee802154/6lowpan/core.c | 67 +++++++++++--------------------------- net/ieee802154/6lowpan/rx.c | 38 +++++---------------- 4 files changed, 30 insertions(+), 86 deletions(-) commit 77e867b5f133f6bb3debcfcc75ce4536d644e62e Author: Lukasz Duda Date: Mon Aug 10 21:15:52 2015 +0200 6lowpan: Fix extraction of flow label field The lowpan_fetch_skb function is used to fetch the first byte, which also increments the data pointer in skb structure, making subsequent array lookup of byte 0 actually being byte 1. To decompress the first byte of the Flow Label when the TF flag is set to 0x01, the second half of the first byte is needed. The patch fixes the extraction of the Flow Label field. Acked-by: Jukka Rissanen Signed-off-by: Lukasz Duda Signed-off-by: Glenn Ruben Bakke Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/6lowpan/iphc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4863e4cc31d647e11f69e1f4d37a870ff3094fcc Author: Aniket Nagarnaik Date: Thu Aug 6 03:43:09 2015 -0700 Bluetooth: btmrvl: release sdio bus after firmware is up We will not release sdio bus until firmware is completely downloaded and becomes ready. Our 8887 A2 chip can have separate firmware images for WLAN and bluetooth. This patch fixes an issue observed when both drivers simultaneously try to download respective firmwares. Signed-off-by: Aniket Nagarnaik Signed-off-by: Amitkumar Karwar Signed-off-by: Marcel Holtmann drivers/bluetooth/btmrvl_sdio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0208bc8803918d7e84f247f1d4f1730171a24c16 Author: Dan Carpenter Date: Sat Aug 1 15:30:08 2015 +0300 Bluetooth: Fix breakage in amp_write_rem_assoc_frag() We should be passing the pointer itself instead of the address of the pointer. This was a copy and paste bug when we replaced the calls to hci_send_cmd(). Originally, the arguments were "len, cp" but we overwrote them with "sizeof(cp), &cp" by mistake. Fixes: b3d3914006a0 ('Bluetooth: Move amp assoc read/write completed callback to amp.c') Signed-off-by: Dan Carpenter Signed-off-by: Marcel Holtmann net/bluetooth/amp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdbbd38106c9f72c569be18314f68387e384536c Author: Alexandre Belloni Date: Mon Aug 10 16:28:07 2015 +0200 spi: atmel: remove useless include Definitions from linux/platform_data/atmel.h are not used, remove the include. Signed-off-by: Alexandre Belloni Signed-off-by: Mark Brown drivers/spi/spi-atmel.c | 1 - 1 file changed, 1 deletion(-) commit e6bbe1d05353a29628a4ca72d88bac0bdcec5f38 Merge: 7e34d70 f7644cb Author: Greg Kroah-Hartman Date: Mon Aug 10 10:01:33 2015 -0700 Merge 4.2-rc6 into usb-next We want the USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit f70d6318320983a8d2fac28cfe8d22dfd5e52a73 Merge: b963e72 f7644cb Author: Greg Kroah-Hartman Date: Mon Aug 10 09:07:25 2015 -0700 Merge 4.2-rc6 into staging-next We want the IIO and staging fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit 38755e897ec2c371b8e71561622d525b3b94012b Author: Randy Dunlap Date: Sun Aug 9 18:37:36 2015 -0700 libata: fix libata-core.c kernel-doc warning Fix kernel-doc warning in libata-core.c: Warning(..//drivers/ata/libata-core.c:4763): No description found for parameter 'tag' Signed-off-by: Randy Dunlap Signed-off-by: Tejun Heo drivers/ata/libata-core.c | 1 + 1 file changed, 1 insertion(+) commit 9cfaf082b8775e9f99fa5f2e8b2ae0ca8baff785 Author: Leonidas Da Silva Barbosa Date: Sat Aug 8 18:31:01 2015 -0300 crypto: nx - Removing CTR mode from NX driver CTR hardware implementation does not match with kernel spec causing a counter bug where just low 8 bytes are used for counter, when should be all 16bytes. Since we already have other counter modes working according with specs not worth to keep CTR itself on NX. Signed-off-by: Leonidas S. Barbosa Signed-off-by: Herbert Xu drivers/crypto/nx/nx-aes-ctr.c | 21 --------------------- drivers/crypto/nx/nx.c | 9 +-------- drivers/crypto/nx/nx.h | 1 - 3 files changed, 1 insertion(+), 30 deletions(-) commit 4cd38750632b864dd56d94e675f5f91ce7723749 Author: Leonidas Da Silva Barbosa Date: Sat Aug 8 18:29:27 2015 -0300 Update NX crypto driver maintainers and adding VMX maintainers Marcelo and Fin are no long IBMers, thus no longer NX maintainers. Updating with the new names. Adding VMX crypto maintainers. Signed-off-by: Leonidas S. Barbosa Signed-off-by: Herbert Xu MAINTAINERS | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 3388a614b609ad9ac4f542e56ada737557a19651 Author: Tadeusz Struk Date: Fri Aug 7 11:34:42 2015 -0700 PCI: Add quirk for Intel DH895xCC VF PCI config erratum The PCI capabilities list for Intel DH895xCC VFs (device id 0x0443) with QuickAssist Technology is prematurely terminated in hardware. Workaround the issue by hard-coding the known expected next capability pointer and saving the PCIE cap into internal buffer. Patch generated against cryptodev-2.6 Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/pci/quirks.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) commit 89c07b8a18a264ba84d135e07b1ee057839d3bda Author: Tadeusz Struk Date: Fri Aug 7 11:34:36 2015 -0700 crypto: qat - Add FW const table Some VF drivers need FW const table, so the PF driver needs to load it. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_admin.c | 107 +++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) commit dd0f368398ea100e34259bf812bc482e15c81991 Author: Tadeusz Struk Date: Fri Aug 7 11:34:31 2015 -0700 crypto: qat - Add qat dh895xcc VF driver Add code specific for the dh895xcc 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_dh895xccvf/Makefile | 5 + .../qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c | 172 +++++++++ .../qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.h | 68 ++++ drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 393 +++++++++++++++++++++ drivers/crypto/qat/qat_dh895xccvf/adf_drv.h | 57 +++ drivers/crypto/qat/qat_dh895xccvf/adf_isr.c | 258 ++++++++++++++ 8 files changed, 965 insertions(+) commit ed8ccaef52fa03fb03cff45b380f72c9f869f273 Author: Tadeusz Struk Date: Fri Aug 7 11:34:25 2015 -0700 crypto: qat - Add support for SRIOV Add code that enables SRIOV on dh895xcc devices. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/Makefile | 1 + drivers/crypto/qat/qat_common/adf_accel_devices.h | 37 ++ drivers/crypto/qat/qat_common/adf_aer.c | 3 + drivers/crypto/qat/qat_common/adf_cfg.c | 3 + drivers/crypto/qat/qat_common/adf_cfg_common.h | 3 +- drivers/crypto/qat/qat_common/adf_common_drv.h | 37 +- drivers/crypto/qat/qat_common/adf_ctl_drv.c | 6 +- drivers/crypto/qat/qat_common/adf_dev_mgr.c | 283 +++++++++++++- drivers/crypto/qat/qat_common/adf_init.c | 10 +- drivers/crypto/qat/qat_common/adf_pf2vf_msg.c | 336 +++++++++++++++++ drivers/crypto/qat/qat_common/adf_pf2vf_msg.h | 144 ++++++++ drivers/crypto/qat/qat_common/adf_sriov.c | 406 +++++++++++++++++++++ drivers/crypto/qat/qat_common/qat_crypto.c | 4 +- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 24 +- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 4 + drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 80 ++-- drivers/crypto/qat/qat_dh895xcc/adf_isr.c | 139 +++++-- 17 files changed, 1426 insertions(+), 94 deletions(-) commit a57331394cf5228555dbf4bca21abb2fc1597f04 Author: Tadeusz Struk Date: Fri Aug 7 11:34:20 2015 -0700 crypto: qat - Move adf admin and adf hw arbitrer to common code Adf admin and HW arbiter function can be used by dh895xcc specific code well as the new dh895xccvf and future devices so moving them to qat_common so that they can be shared. 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 | 5 +- drivers/crypto/qat/qat_common/adf_admin.c | 185 +++++++++++++++++++++ drivers/crypto/qat/qat_common/adf_common_drv.h | 7 +- drivers/crypto/qat/qat_common/adf_hw_arbiter.c | 168 +++++++++++++++++++ drivers/crypto/qat/qat_common/adf_init.c | 84 +--------- drivers/crypto/qat/qat_common/adf_transport.c | 7 +- drivers/crypto/qat/qat_common/qat_crypto.c | 3 +- drivers/crypto/qat/qat_dh895xcc/Makefile | 5 +- drivers/crypto/qat/qat_dh895xcc/adf_admin.c | 145 ---------------- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 6 +- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 5 - drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 3 - drivers/crypto/qat/qat_dh895xcc/adf_drv.h | 9 - drivers/crypto/qat/qat_dh895xcc/adf_hw_arbiter.c | 159 ------------------ drivers/crypto/qat/qat_dh895xcc/qat_admin.c | 107 ------------ 16 files changed, 378 insertions(+), 522 deletions(-) commit 104880a6b470958ddc30e139c41aa4f6ed3a5234 Author: Herbert Xu Date: Fri Aug 7 16:42:59 2015 +0800 crypto: authencesn - Convert to new AEAD interface This patch converts authencesn to the new AEAD interface. Signed-off-by: Herbert Xu crypto/authencesn.c | 720 ++++++++++++++++------------------------------------ 1 file changed, 222 insertions(+), 498 deletions(-) commit 0e91657e331d55d4fd4d298cf9e9eecf23a3dd45 Author: Brian Norris Date: Thu Aug 6 14:49:00 2015 -0700 crypto: doc - make URL into hyperlink The HTML output works a little nicer that way. Signed-off-by: Brian Norris Signed-off-by: Herbert Xu Documentation/DocBook/crypto-API.tmpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 35a3bb3d39d5a84b1adc02e5289d01a33d1073b6 Author: Aaron Sierra Date: Wed Aug 5 16:52:08 2015 -0500 crypto: talitos - Prevent panic in probe error path The probe error path for this driver, for all intents and purposes, is the talitos_remove() function due to the common "goto err_out". Without this patch applied, talitos_remove() will panic under these two conditions: 1. If the RNG device hasn't been registered via talitos_register_rng() prior to entry into talitos_remove(), then the attempt to unregister the RNG "device" will cause a panic. 2. If the priv->chan array has not been allocated prior to entry into talitos_remove(), then the per-channel FIFO cleanup will panic because of the dereference of that NULL "array". Both of the above scenarios occur if talitos_probe_irq() fails. This patch resolves issue #1 by introducing a boolean to mask the hwrng_unregister() call in talitos_unregister_rng() if RNG device registration was unsuccessful. It resolves issue #2 by checking that priv->chan is not NULL in the per-channel FIFO cleanup for loop. Signed-off-by: Aaron Sierra Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 13 +++++++++++-- drivers/crypto/talitos.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) commit ab86ca0755eccfdb0b2ffa3fe17cb41a6e61848b Author: Victoria Milhoan Date: Wed Aug 5 11:28:47 2015 -0700 ARM: imx_v6_v7_defconfig: Select CAAM Select CAAM for i.MX6 devices. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu arch/arm/configs/imx_v6_v7_defconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bf83490ee4207de3af59b63870eb9f72f1e523f1 Author: Victoria Milhoan Date: Wed Aug 5 11:28:48 2015 -0700 crypto: caam - Detect hardware features during algorithm registration Register only algorithms supported by CAAM hardware, using the CHA version and instantiation registers to identify hardware capabilities. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 68 ++++++++++++++++++++++++++++++++++++++---- drivers/crypto/caam/caamhash.c | 38 ++++++++++++++++++----- drivers/crypto/caam/caamrng.c | 6 +++- drivers/crypto/caam/regs.h | 16 ++++++++-- 4 files changed, 110 insertions(+), 18 deletions(-) commit 350cdfeba888c21341ad2989c5930a2708def579 Author: Steve Cornelius Date: Wed Aug 5 11:28:46 2015 -0700 crypto: caam - Enable MXC devices to select CAAM driver in Kconfig Allow CAAM to be selected in the kernel for Freescale i.MX devices if ARCH_MXC is enabled. Signed-off-by: Steve Cornelius Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b15e9ea583c718095a05b3e5164628111ab33f90 Author: Victoria Milhoan Date: Thu Aug 6 11:42:37 2015 -0700 ARM: dts: mx6sx: Add CAAM device node Add CAAM device node to the i.MX6SX device tree. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu arch/arm/boot/dts/imx6sx.dtsi | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit d462ce996a88b8fc8722d2e88750c654c17c690e Author: Victoria Milhoan Date: Wed Aug 5 11:28:44 2015 -0700 ARM: dts: mx6qdl: Add CAAM device node Add CAAM device node to the i.MX6 device tree. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu arch/arm/boot/dts/imx6qdl.dtsi | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit dd503f66098e37dd0090897c099fa6ca343db84d Author: Victoria Milhoan Date: Wed Aug 5 11:28:43 2015 -0700 ARM: clk-imx6q: Add CAAM clock support Add CAAM clock support to the i.MX6 clocking infrastructure. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/clk/imx/clk-imx6q.c | 3 +++ include/dt-bindings/clock/imx6qdl-clock.h | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) commit ff1a15d9e79886e253dd4a0fe5c03d130879f58e Author: Victoria Milhoan Date: Wed Aug 5 11:28:42 2015 -0700 crypto: caam - Added clocks and clock-names properties to SEC4.0 device tree binding The clocks and clock-names properties describe input clocks that may be required for enablement of CAAM. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu Documentation/devicetree/bindings/crypto/fsl-sec4.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit ec0273039b6606ae08132f41854381e0d7371ded Author: Victoria Milhoan Date: Wed Aug 5 11:28:41 2015 -0700 crypto: caam - Use local sg pointers to walk the scatterlist Avoid moving the head of the scatterlist entry by using temporary pointers to walk the scatterlist. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/sg_sw_sec4.h | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit 7d5196aba3c81999d56b26daa5ea7590513cdc1f Author: Victoria Milhoan Date: Wed Aug 5 11:28:40 2015 -0700 crypto: caam - Correct DMA unmap size in ahash_update_ctx() This change fixes: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 456 at lib/dma-debug.c:1103 check_unmap+0x438/0x958() caam_jr 2101000.jr0: DMA-API: device driver frees DMA memory with different size [device address=0x000000003a241080] [map ] Modules linked in: tcrypt(+) CPU: 0 PID: 456 Comm: insmod Not tainted 4.1.0-248766-gf823586-dirty #82 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [<80015e0c>] (unwind_backtrace) from [<80012764>] (show_stack+0x10/0x14) [<80012764>] (show_stack) from [<806df8e8>] (dump_stack+0x84/0xc4) [<806df8e8>] (dump_stack) from [<800266fc>] (warn_slowpath_common+0x84/0xb4) [<800266fc>] (warn_slowpath_common) from [<8002675c>] (warn_slowpath_fmt+0x30/0x40) [<8002675c>] (warn_slowpath_fmt) from [<802c7db8>] (check_unmap+0x438/0x958) [<802c7db8>] (check_unmap) from [<802c835c>] (debug_dma_unmap_page+0x84/0x8c) [<802c835c>] (debug_dma_unmap_page) from [<804d3b94>] (ahash_update_ctx+0xb08/0xec4) [<804d3b94>] (ahash_update_ctx) from [<7f002984>] (test_ahash_pnum.isra.9.constprop.19+0x2b8/0x514 [tcrypt]) [<7f002984>] (test_ahash_pnum.isra.9.constprop.19 [tcrypt]) from [<7f005998>] (do_test+0x2db8/0x37cc [tcrypt]) [<7f005998>] (do_test [tcrypt]) from [<7f00b050>] (tcrypt_mod_init+0x50/0x9c [tcrypt]) [<7f00b050>] (tcrypt_mod_init [tcrypt]) from [<80009730>] (do_one_initcall+0x8c/0x1d4) [<80009730>] (do_one_initcall) from [<806dda4c>] (do_init_module+0x5c/0x1a8) [<806dda4c>] (do_init_module) from [<80085308>] (load_module+0x17e0/0x1da0) [<80085308>] (load_module) from [<80085998>] (SyS_init_module+0xd0/0x120) [<80085998>] (SyS_init_module) from [<8000f4c0>] (ret_fast_syscall+0x0/0x3c) ---[ end trace 60807cfb6521c79f ]--- Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/caamhash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dde20ae9d63835178ef4ba9655f530e052c08ab9 Author: Victoria Milhoan Date: Wed Aug 5 11:28:39 2015 -0700 crypto: caam - Change kmalloc to kzalloc to avoid residual data Since fields must be ORed in to operate correctly using any order of operations, changed allocations of the combination of extended descriptor structs + hardware scatterlists to use kzalloc() instead of kmalloc(), so as to ensure that residue data would not be ORed in with the correct data. Signed-off-by: Steve Cornelius Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 12 ++++++------ drivers/crypto/caam/caamhash.c | 25 ++++++++++++------------- 2 files changed, 18 insertions(+), 19 deletions(-) commit 1f06ec1d48f31a454e4292f3761a4f4178bb916c Author: Victoria Milhoan Date: Wed Aug 5 11:28:38 2015 -0700 crypto: caam - Modify Freescale CAAM driver Scatter Gather entry definition Modify the Scatter-Gather entry definitions for the Freescale CAAM driver to include support for both 64- and 32-bit DMA pointers. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/desc.h | 25 +++++++++++++++++++++---- drivers/crypto/caam/sg_sw_sec4.h | 1 - 2 files changed, 21 insertions(+), 5 deletions(-) commit 24821c4652dbf85a69e732574874dc191a813da4 Author: Victoria Milhoan Date: Wed Aug 5 11:28:37 2015 -0700 crypto: caam - Enable and disable clocks on Freescale i.MX platforms ARM-based systems may disable clocking to the CAAM device on the Freescale i.MX platform for power management purposes. This patch enables the required clocks when the CAAM module is initialized and disables the required clocks when the CAAM module is shut down. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/compat.h | 1 + drivers/crypto/caam/ctrl.c | 88 ++++++++++++++++++++++++++++++++++++++++++++ drivers/crypto/caam/intern.h | 5 +++ 3 files changed, 94 insertions(+) commit 509da8fda4f06d7914dbada7af121c9f00284173 Author: Victoria Milhoan Date: Wed Aug 5 11:28:36 2015 -0700 crypto: caam - Add setbits32/clrbits32/clrsetbits primitives for ARM compatibility Add set/clear 32-bit primitives for compatibility with ARM devices since the primitives were previously only defined for the Power architecture. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 6 +++--- drivers/crypto/caam/regs.h | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) commit e7472422392461f59bc5d7ddd8542c6a48740336 Author: Victoria Milhoan Date: Wed Aug 5 11:28:35 2015 -0700 crypto: caam - Add cache coherency support Freescale i.MX6 ARM platforms do not support hardware cache coherency. This patch adds cache coherency support to the CAAM driver. Signed-off-by: Victoria Milhoan Tested-by: Horia Geantă Signed-off-by: Herbert Xu drivers/crypto/caam/caamhash.c | 2 +- drivers/crypto/caam/caamrng.c | 4 ++++ drivers/crypto/caam/jr.c | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) commit bf20d772174bbb6b1a7c0b34f04f51caebe2d6aa Merge: e94c6a7 443c0d7 Author: Herbert Xu Date: Mon Aug 10 23:17:13 2015 +0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Merge the crypto tree to pull in the authencesn fix. commit ab35a7d0ee59a36c9c567defe43c1adb72e9240c Author: Jiri Olsa Date: Sat Aug 8 19:12:10 2015 +0200 perf tools: Unset perf_event_attr::freq when period term is set We need to unset 'perf_event_attr::freq' bit (default 1) when 'period' term is specified within event definition like: -e 'cpu/cpu-cycles,call-graph=fp,time,period=100000' otherwise it will handle the period value as frequency (and fail if it crossed the maximum allowed frequency value). Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: Kan Liang Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20150808171210.GC17040@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 1 + 1 file changed, 1 insertion(+) commit a9710ba091b0dcdace90f791706e9192313ffb7c Author: Andi Kleen Date: Fri Aug 7 15:24:05 2015 -0700 perf tools: Support full source file paths for srcline For perf report/script srcline currently only the base file name of the source file is printed. This is a good default because it usually fits on the screen. But in some cases we want to know the full file name, for example to aggregate hits per file. In the later case we need more than the base file name to resolve file naming collisions: for example the kernel source has ~70 files named "core.c" It's also useful as input to post processing tools which want to point to the right file. Add a flag to allow full file name output. Add an option to perf report/script to enable this option. Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438986245-15191-1-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 2 ++ tools/perf/Documentation/perf-script.txt | 3 +++ tools/perf/builtin-report.c | 2 ++ tools/perf/builtin-script.c | 2 ++ tools/perf/util/srcline.c | 6 +++++- tools/perf/util/util.h | 1 + 6 files changed, 15 insertions(+), 1 deletion(-) commit 81497953e37bc28209d9a647171ea93b4a99fc57 Merge: fa8ad78 be12039 Author: Russell King Date: Fri Aug 7 19:58:48 2015 +0100 Merge branch 'psci/for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux into devel-stable commit fe14f39e88c8ac16d0a051f8444a2294f8cb358c Author: Takashi Iwai Date: Mon Aug 10 16:53:32 2015 +0200 ALSA: hda - Fix pin config and mapping on Alienware 15 Alienware 15 has CA0132 codec for its onboard sound, but the pin config and mapping seem quite different from other Creative boards. This patch corrects them, at least, for providing the right headphone and mic jack notification, as well as removing the non-existing SPDIF pins. Even with this fix, not all stuff works perfectly yet, mainly because of the badly written ca0132 driver code -- it has too many implicit assumptions of pin configs and maps. Nevertheless, this is a small good step forward. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101981 Signed-off-by: Takashi Iwai sound/pci/hda/patch_ca0132.c | 87 ++++++++++++++++++++++++++++++-------------- 1 file changed, 59 insertions(+), 28 deletions(-) commit cfd093bbb5fe84ec8c7bb069fe618159a8b601f5 Author: Joachim Eastwood Date: Sun Aug 9 00:02:41 2015 +0200 phy: lpc18xx-usb-otg: fix clock order in phy init Changing the frequency of the USB clock must be done before the PLL is powered on (prepared). This matters when the USB clock is not setup by either boot ROM or boot loader. Reorder the function calls to adhere to the order noted in the user manual. Signed-off-by: Joachim Eastwood Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-lpc18xx-usb-otg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3f6175ece947358e988af149ecca0d31100ee6c4 Author: Mark Brown Date: Mon Aug 10 13:02:53 2015 +0100 ALSA: echoaudio: Use standard C definitions of true and false The echoaudio locally defines TRUE and FALSE. Not only is this redundant given that C now has a boolean type it results in lots of warnings as other headers also define these macros, causing duplicate definitions. Fix this by removing the local defines and converting all local users to use the standard C true and false instead, simply removing the macros is less safe due to implicit inclusion of the other definitons. [fixed overlooked replacement of FALSE by tiwai] Signed-off-by: Mark Brown Signed-off-by: Takashi Iwai sound/pci/echoaudio/darla20_dsp.c | 6 +++--- sound/pci/echoaudio/darla24_dsp.c | 6 +++--- sound/pci/echoaudio/echo3g_dsp.c | 16 ++++++++-------- sound/pci/echoaudio/echoaudio.c | 2 +- sound/pci/echoaudio/echoaudio.h | 7 ++----- sound/pci/echoaudio/echoaudio_3g.c | 12 ++++++------ sound/pci/echoaudio/echoaudio_dsp.c | 26 +++++++++++++------------- sound/pci/echoaudio/echoaudio_gml.c | 4 ++-- sound/pci/echoaudio/gina20.c | 2 +- sound/pci/echoaudio/gina20_dsp.c | 8 ++++---- sound/pci/echoaudio/gina24_dsp.c | 22 +++++++++++----------- sound/pci/echoaudio/indigo_dsp.c | 6 +++--- sound/pci/echoaudio/indigodj_dsp.c | 6 +++--- sound/pci/echoaudio/indigodjx_dsp.c | 6 +++--- sound/pci/echoaudio/indigoio_dsp.c | 6 +++--- sound/pci/echoaudio/indigoiox_dsp.c | 6 +++--- sound/pci/echoaudio/layla20.c | 2 +- sound/pci/echoaudio/layla20_dsp.c | 12 ++++++------ sound/pci/echoaudio/layla24_dsp.c | 26 +++++++++++++------------- sound/pci/echoaudio/mia.c | 2 +- sound/pci/echoaudio/mia_dsp.c | 8 ++++---- sound/pci/echoaudio/mona_dsp.c | 20 ++++++++++---------- 22 files changed, 104 insertions(+), 107 deletions(-) commit 92b7cb5dc885b38b21093eefed8028b615952965 Author: Roger Quadros Date: Mon Aug 3 17:40:51 2015 +0300 extcon: palmas: Support GPIO based USB ID detection Some palmas based chip variants do not have OTG based ID logic. For these variants we rely on GPIO based USB ID detection. These chips do have VBUS comparator for VBUS detection so we continue to use the old way of detecting VBUS. Signed-off-by: Roger Quadros Acked-by: Chanwoo Choi Acked-by: Lee Jones Signed-off-by: Chanwoo Choi .../devicetree/bindings/extcon/extcon-palmas.txt | 5 +- drivers/extcon/extcon-palmas.c | 129 ++++++++++++++++++--- drivers/extcon/extcon-usb-gpio.c | 1 + include/linux/mfd/palmas.h | 7 ++ 4 files changed, 126 insertions(+), 16 deletions(-) commit a1c173dac102d7d91e5cafdb8cb212300063eaa3 Author: Jason Gerecke Date: Wed Aug 5 15:45:30 2015 -0700 HID: wacom: Do not repeatedly attempt to set device mode on error As an extension of aef3156d7, there is no sense in repeatedly calling the 'wacom_set_report' and 'wacom_get_report' functions if they return an error. Getting an error from them implies that the device is out to lunch: either a hard error code was returned or repeated attempts at recovering from a "soft" error all failed. In either case, doing even more retries is not likely to resolve whatever is wrong. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e5b94083d0996b4c69674c8a5563c2eb272557ba Author: Fang, Yang A Date: Fri Aug 7 14:08:15 2015 -0700 ASoC: max98090: Fix sequencing when starting additional routes Enforce correct device sequencing when configuring a new audio route when there is an existing active audio route(s). This patch fixed recording noise issue while playback is active. We have some registers which require the device to be in full shutdown or to enter full shutdown before the register settings will take effect. Currently the driver is not shutting down the device when a new audio route is created. If a new audio route is made active while there is already an active audio route, then the required register sequencing is violated. A hardware shutdown toggle when creating a new audio route corrects the sequencing error. The device must remain in hardware shutdown for 40ms to allow the internal hardware core to fully shutdown. Signed-off-by: Fang, Yang A Signed-off-by: Sathyanarayana Nujella Acked-by: Anish Kumar Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 46 +++++++++++++++++++++++++++++++++++++++------ sound/soc/codecs/max98090.h | 1 + 2 files changed, 41 insertions(+), 6 deletions(-) commit 141518b64f611536fb7968d291c794d71879099e Author: Daniel Vetter Date: Thu Jul 9 23:32:41 2015 +0200 drm/cma-helper: 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). Cc: Laurent Pinchart Cc: Rob Clark Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem_cma_helper.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 6cc56234fe4d76a4c0cfefbf196a33718ba9db73 Author: Daniel Vetter Date: Thu Jul 9 23:32:40 2015 +0200 drm/cirrus: 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). Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/cirrus/cirrus_main.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) commit bf89209a6de37074e3ccdb7b40500798de750698 Author: Daniel Vetter Date: Thu Jul 9 23:32:39 2015 +0200 drm/mga200g: Hold a proper reference for cursor_set Looking up an obj, immediate dropping the acquired reference and then continuing to use it isn't how this is supposed to work. Fix this by holding a reference for the entire function. While at it stop grabbing dev->struct_mutex, it doesn't protect anything here. Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/mgag200/mgag200_cursor.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 34c294f5a6c0dca7fb75ddc1be3ec8974b24455f Author: Daniel Vetter Date: Thu Jul 9 23:32:38 2015 +0200 drm/mga200g: 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). Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/mgag200/mgag200_main.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit 37ae75c8fdf5c48293e8a3c39ace8a68fbcca019 Author: Daniel Vetter Date: Thu Jul 9 23:32:37 2015 +0200 drm/bochs: 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). Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/bochs/bochs_mm.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) commit a66b2ea224c40cf341ca2096aad225536aa25956 Author: Daniel Vetter Date: Thu Jul 9 23:32:36 2015 +0200 drm/ast: 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). Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/ast/ast_main.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 8d77a9404ec38be34ffc491a2022022a56e72c90 Author: Daniel Vetter Date: Thu Jul 9 23:32:35 2015 +0200 drm/gem: Be more friendly with locking checks BUG_ON kills the driver, WARN_ON is much friendlier. And usually nothing bad happens when the locking is slightly busted. v2: Fix typos in commit message Thierry spotted. Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b5cf544934fe15f7b2f8bd26696284606f9e7d3 Author: Viresh Kumar Date: Thu Jul 16 16:56:18 2015 +0530 cris/time: Migrate to new 'set-state' interface Migrate cris driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Mikael Starvik Cc: Jesper Nilsson Cc: Rabin Vincent Cc: Guenter Roeck Cc: linux-cris-kernel@axis.com Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/cris/arch-v32/kernel/time.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit ecbebcb868bed598354d3b6d94cfeb10e440e4ca Author: Viresh Kumar Date: Thu Jul 16 16:56:35 2015 +0530 kernel: broadcast-hrtimer: Migrate to new 'set-state' interface Migrate broadcast-hrtimer driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. Cc: Thomas Gleixner Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano kernel/time/tick-broadcast-hrtimer.c | 49 +++++++++++++++--------------------- 1 file changed, 20 insertions(+), 29 deletions(-) commit 8e40fc4b782dc582fbf77ee3ff1d735a1d788a76 Author: Viresh Kumar Date: Thu Jul 16 16:56:33 2015 +0530 xtensa/time: Migrate to new 'set-state' interface Migrate xtensa driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Chris Zankel Cc: Max Filippov Cc: linux-xtensa@linux-xtensa.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/xtensa/kernel/time.c | 53 +++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 27 deletions(-) commit 3078c8df2c03ebad334e1efe7e0867d8b0cd2764 Author: Viresh Kumar Date: Thu Jul 16 16:56:32 2015 +0530 unicore/time: Migrate to new 'set-state' interface Migrate unicore driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything for PERIODIC or RESUME modes and so their callbacks aren't implemented. Cc: Guan Xuetao Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/unicore32/kernel/time.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) commit 71b5280b79359ca3c6c21d46b6b14a3ae93d8330 Author: Viresh Kumar Date: Thu Jul 16 16:56:31 2015 +0530 um/time: Migrate to new 'set-state' interface Migrate um driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jeff Dike Cc: Richard Weinberger Cc: user-mode-linux-devel@lists.sourceforge.net Cc: user-mode-linux-user@lists.sourceforge.net Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/um/kernel/time.c | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) commit ff4aea45c7f9c73889f08976ad65b31dbc35047e Author: Viresh Kumar Date: Thu Jul 16 16:56:29 2015 +0530 sparc/time: Migrate to new 'set-state' interface Migrate sparc drivers to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything which switching to few clockevent modes and so their callbacks aren't implemented. Cc: "David S. Miller" Cc: sparclinux@vger.kernel.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/sparc/kernel/sun4m_smp.c | 2 +- arch/sparc/kernel/time_32.c | 57 ++++++++++++++++++++----------------------- arch/sparc/kernel/time_64.c | 33 ++++++++----------------- 3 files changed, 38 insertions(+), 54 deletions(-) commit d5ed65d83c27aee1c07bf4879cce539055d0c27f Author: Viresh Kumar Date: Thu Jul 16 16:56:28 2015 +0530 sh/localtimer: Migrate to new 'set-state' interface Migrate sh driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: linux-sh@vger.kernel.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/sh/kernel/localtimer.c | 6 ------ 1 file changed, 6 deletions(-) commit 07d93ebdbffac61201d2f7fb81d08872df402f91 Author: Viresh Kumar Date: Thu Jul 16 16:56:27 2015 +0530 score/time: Migrate to new 'set-state' interface Migrate score driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in ONESHOT/SHUTDOWN/RESUME modes and so callbacks for them aren't implemented. Cc: Chen Liqin Cc: Lennox Wu Cc: Michael Opdenacker Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/score/kernel/time.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) commit 07aeed3f9ba2a846d07fa870c26c3634e849d4e4 Author: Viresh Kumar Date: Thu Jul 16 16:56:26 2015 +0530 s390/time: Migrate to new 'set-state' interface Migrate s390 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux390@de.ibm.com Cc: linux-s390@vger.kernel.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/s390/kernel/time.c | 6 ------ 1 file changed, 6 deletions(-) commit 37a13e78e017c31fbb98a148b54c2552dc08d788 Author: Viresh Kumar Date: Thu Jul 16 16:56:25 2015 +0530 powerpc/time: Migrate to new 'set-state' interface Migrate powerpc driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in ->set_mode(ONSHOT) and so set_state_oneshot() isn't implemented. Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/powerpc/kernel/time.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 00c5a0acd11ec157585d290469b6c82ddd816663 Author: Viresh Kumar Date: Thu Jul 16 16:56:24 2015 +0530 openrisc/time: Migrate to new 'set-state' interface Migrate openrisc driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: Jonas Bonn Cc: linux@lists.openrisc.net Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/openrisc/kernel/time.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit 032facef42a1a15be4a038e5e45819b941c2a6a8 Author: Viresh Kumar Date: Thu Jul 16 16:56:22 2015 +0530 mn10300/cevt-mn10300: Migrate to new 'set-state' interface Migrate mn10300 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: David Howells Cc: Koichi Yasutake Cc: linux-am33-list@redhat.com Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/mn10300/kernel/cevt-mn10300.c | 7 ------- 1 file changed, 7 deletions(-) commit 9797529d8981b2d2dce116ba7cf0641e13a5774b Author: Viresh Kumar Date: Thu Jul 16 16:56:21 2015 +0530 microblaze/timer: Migrate to new 'set-state' interface Migrate microblaze driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in ->set_mode(RESUME or ONESHOT) and so tick_resume() set_state_oneshot() aren't implemented. Cc: Michal Simek Cc: "David S. Miller" Cc: Richard Cochran Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/microblaze/kernel/timer.c | 46 +++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 27 deletions(-) commit 677e6fe06378829a4263f65ee32c4b7242410636 Author: Viresh Kumar Date: Thu Jul 16 16:56:17 2015 +0530 c6x/timer64: Migrate to new 'set-state' interface Migrate c6x driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in ->set_mode(RESUME) and so tick_resume() isn't implemented. Cc: Mark Salter Cc: Aurelien Jacquiot Cc: linux-c6x-dev@linux-c6x.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/c6x/platforms/timer64.c | 52 +++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 25 deletions(-) commit 067f96218c60266d606258e246df269dfd34d1e6 Author: Viresh Kumar Date: Thu Jul 16 16:56:16 2015 +0530 blackfin/time-ts: Migrate to new 'set-state' interface Migrate blackfin driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in ->set_mode(RESUME) and so tick_resume() isn't implemented. Cc: Steven Miao Cc: adi-buildroot-devel@lists.sourceforge.net Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/blackfin/kernel/time-ts.c | 136 +++++++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 66 deletions(-) commit 6ec81932988b231e3038f7b73d58b2f9ce1e7ab0 Author: Viresh Kumar Date: Thu Jul 16 16:56:13 2015 +0530 alpha/time: Migrate to new 'set-state' interface Migrate alpha driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. rtc clockevent device wasn't doing anything in set-mode and so its set-state callbacks aren't implemented. Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Matt Turner Cc: Christoph Lameter Cc: linux-alpha@vger.kernel.org Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/alpha/kernel/time.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit fc2b2f5df6d8dbf78c958a34628a3880150d6c9e Author: Viresh Kumar Date: Mon Jul 27 15:02:00 2015 +0530 clockevents/drivers/h8300_timer8: Migrate to new 'set-state' interface Migrate h8300_timer8 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/h8300_timer8.c | 51 +++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit 452b13248fe8499b2d9a487999d3610095aecca5 Author: Viresh Kumar Date: Tue Jul 21 08:01:14 2015 +0530 clocksource/drivers/sh_tmu: Fix traceback spotted in -next Traceback in -next due to commit 'clockevents/drivers/sh_tmu: Migrate to new 'set-state' interface'. Commit ("clockevents/drivers/sh_tmu: Migrate to new 'set-state' interface") in -next causes the following traceback. This is seen with qemu runs for the sh target. ------------[ cut here ]------------ WARNING: at drivers/clocksource/sh_tmu.c:202 Modules linked in: CPU: 0 PID: 0 Comm: swapper Not tainted 4.2.0-rc3-next-20150720 #1 task: 8c411ed8 ti: 8c40e000 task.ti: 8c40e000 PC is at sh_tmu_disable+0x40/0x60 PR is at sh_tmu_clock_event_shutdown+0x8/0x20 PC : 8c271220 SP : 8c40ff10 SR : 400081f1 TEA : 00000000 R0 : 8c271240 R1 : 8fc08cfc R2 : 00000000 R3 : 3fffffff R4 : 8fc08c00 R5 : 00000001 R6 : 00000002 R7 : ffffffff R8 : 00000001 R9 : 8fc08c20 R10 : 00000000 R11 : 00000000 R12 : 8c012820 R13 : 00000000 R14 : 00000000 MACH: 3b9ac9ff MACL: 80000000 GBR : 00000000 PR : 8c271248 Call trace: [<8c065836>] clockevents_switch_state+0x16/0x60 [<8c06588c>] clockevents_shutdown+0xc/0x40 [<8c066330>] tick_check_new_device+0x90/0xc0 [<8c065556>] clockevents_register_device+0x56/0x120 [<8c0662a0>] tick_check_new_device+0x0/0xc0 [<8c27167a>] sh_tmu_probe+0x29a/0x4e0 [<8c18a994>] kasprintf+0x14/0x20 [<8c442782>] early_platform_driver_probe+0x20e/0x2bc [<8c1fade0>] platform_match+0x0/0x100 [<8c33babc>] printk+0x0/0x24 [<8c434892>] start_kernel+0x32e/0x574 [<8c33babc>] printk+0x0/0x24 [<8c17d320>] strlen+0x0/0x58 [<8c43430c>] unknown_bootoption+0x0/0x1e0 [<8c011024>] _stext+0x24/0x30 ---[ end trace cb88537fdc8fa200 ]--- Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Tested-by: Geert Uytterhoeven drivers/clocksource/sh_tmu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 005e56272b28193540dcd1dab3dadb3da8375eaf Author: Daniel Lezcano Date: Tue Aug 4 11:59:42 2015 +0200 clockevents/drivers/timer-atmel-pit: Fix typo in structure initialization Reported-by: Peter Mamonov Signed-off-by: Daniel Lezcano drivers/clocksource/timer-atmel-pit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit daea72831d3a18c561f028258ca5fb65ac3c8947 Author: Viresh Kumar Date: Mon Jul 6 15:39:19 2015 +0530 clockevents/drivers/timer-sp804: Migrate to new 'set-state' interface Migrate timer-sp driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. There are few more changes worth noticing: - The clockevent device was disabled by writing: 'TIMER_CTRL_32BIT | TIMER_CTRL_IE' to ctrl register earlier. i.e. by un-setting the TIMER_CTRL_ENABLE bit. Its done by writing zero now and should have the same effect. - For shutdown and resume we were writing the same value twice to the register (to disable the timer), which is fixed now. - Switching to oneshot mode was divided into two parts earlier: - Firstly set_mode() was writing: 'TIMER_CTRL_32BIT | TIMER_CTRL_IE | TIMER_CTRL_ONESHOT' to ctrl register (device not enabled yet) - Then sp804_set_next_event() was enabling the device by writing 'readl(ctrl) | TIMER_CTRL_ENABLE' to the ctrl register. This was unnecessarily complicated. - Change this to: Stop device on set_state_oneshot and configure it in sp804_set_next_event(). Cc: Daniel Lezcano Cc: Russell King Cc: Sudeep Holla Cc: Arnd Bergmann Cc: Catalin Marinas Cc: Olof Johansson Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/timer-sp804.c | 54 +++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) commit 26b91f043abda63dd240374f0eac05e7283a509c Author: Viresh Kumar Date: Mon Jul 6 15:39:18 2015 +0530 clockevents/drivers/timer-imx-gpt: Migrate to new 'set-state' interface Migrate timer-imx-gpt driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Also drop: - 'imx_timer.cem': It was caching the last state of the clockevent device. The same behavior can be achieved by using clockevents state helpers. These helpers are only required for oneshot mode as shutdown/resume wouldn't be done twice by the core. - 'clock_event_mode_label': CLOCK_EVT_MODE_* shouldn't be used anymore by drivers. The prints are modified to print the set-state functions name now to debug the driver. Cc: Shawn Guo Cc: Daniel Lezcano Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/timer-imx-gpt.c | 75 +++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 37 deletions(-) commit 8c436f84800c570ecde517dcd8709258bb34e498 Author: Geert Uytterhoeven Date: Tue Jul 14 14:00:47 2015 +0200 clockevents/drivers/sh_cmt: Remove obsolete sh-cmt-48 platform_device_id entry Since the removal of the r8a7740 legacy SoC code in commit 44d88c754e57a6d9 ("ARM: shmobile: Remove legacy SoC code for R-Mobile A1"), all former users of the "sh-cmt-48-gen2" platform device name 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. Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Lezcano Acked-by: Simon Horman drivers/clocksource/sh_cmt.c | 1 - 1 file changed, 1 deletion(-) commit 8b5f0010fe0d666bb8dfc74b881f2401324a0e89 Author: Jisheng Zhang Date: Sat Jul 4 13:06:43 2015 +0800 clockevents/drivers/dw_apb_timer: Add dynamic irq flag to the timer Commit d2348fb6fdc6 ("tick: Dynamically set broadcast irq affinity") adds one excellent feature CLOCK_EVT_FEAT_DYNIRQ to let the core set the interrupt affinity of the broadcast interrupt to the cpu which has the earliest expiry time. This patch adds CLOCK_EVT_FEAT_DYNIRQ flag to avoid unnecessary wakeups and IPIs when the dw_apb_timer is used as broadcast timer. A simple test: ~ # rm /tmp/test.sh ~ # cat > /tmp/test.sh cat /proc/interrupts for i in `seq 10` ; do sleep $i; done cat /proc/interrupts ~ # chmod +x /tmp/test.sh ~ # taskset 0x2 /tmp/test.sh without the patch: CPU0 CPU1 27: 115 36 GIC 27 arch_timer 45: 62 0 GIC 45 mmc0 160: 88 0 interrupt-controller 8 timer 227: 0 0 interrupt-controller 4 f7e81400.i2c 228: 0 0 interrupt-controller 5 f7e81800.i2c 229: 0 0 interrupt-controller 7 dw_spi65535 230: 0 0 interrupt-controller 21 f7e84000.i2c 231: 0 0 interrupt-controller 20 f7e84800.i2c 265: 445 0 interrupt-controller 8 serial IPI0: 0 0 CPU wakeup interrupts IPI1: 0 11 Timer broadcast interrupts IPI2: 56 104 Rescheduling interrupts IPI3: 0 0 Function call interrupts IPI4: 0 4 Single function call interrupts IPI5: 0 0 CPU stop interrupts IPI6: 25 27 IRQ work interrupts IPI7: 0 0 completion interrupts IPI8: 0 0 CPU backtrace Err: 0 CPU0 CPU1 27: 115 38 GIC 27 arch_timer 45: 62 0 GIC 45 mmc0 160: 160 0 interrupt-controller 8 timer 227: 0 0 interrupt-controller 4 f7e81400.i2c 228: 0 0 interrupt-controller 5 f7e81800.i2c 229: 0 0 interrupt-controller 7 dw_spi65535 230: 0 0 interrupt-controller 21 f7e84000.i2c 231: 0 0 interrupt-controller 20 f7e84800.i2c 265: 514 0 interrupt-controller 8 serial IPI0: 0 0 CPU wakeup interrupts IPI1: 0 83 Timer broadcast interrupts IPI2: 56 104 Rescheduling interrupts IPI3: 0 0 Function call interrupts IPI4: 0 4 Single function call interrupts IPI5: 0 0 CPU stop interrupts IPI6: 25 46 IRQ work interrupts IPI7: 0 0 completion interrupts IPI8: 0 0 CPU backtrace Err: 0 cpu0 get 160-88=72 timer interrupts, CPU1 got 83-11=72 broadcast timer IPIs So, overall system got 72+72=144 wake ups and 72 broadcast timer IPIs With the patch: CPU0 CPU1 27: 107 37 GIC 27 arch_timer 45: 62 0 GIC 45 mmc0 160: 66 7 interrupt-controller 8 timer 227: 0 0 interrupt-controller 4 f7e81400.i2c 228: 0 0 interrupt-controller 5 f7e81800.i2c 229: 0 0 interrupt-controller 7 dw_spi65535 230: 0 0 interrupt-controller 21 f7e84000.i2c 231: 0 0 interrupt-controller 20 f7e84800.i2c 265: 311 0 interrupt-controller 8 serial IPI0: 0 0 CPU wakeup interrupts IPI1: 2 4 Timer broadcast interrupts IPI2: 58 100 Rescheduling interrupts IPI3: 0 0 Function call interrupts IPI4: 0 4 Single function call interrupts IPI5: 0 0 CPU stop interrupts IPI6: 21 24 IRQ work interrupts IPI7: 0 0 completion interrupts IPI8: 0 0 CPU backtrace Err: 0 CPU0 CPU1 27: 107 39 GIC 27 arch_timer 45: 62 0 GIC 45 mmc0 160: 69 75 interrupt-controller 8 timer 227: 0 0 interrupt-controller 4 f7e81400.i2c 228: 0 0 interrupt-controller 5 f7e81800.i2c 229: 0 0 interrupt-controller 7 dw_spi65535 230: 0 0 interrupt-controller 21 f7e84000.i2c 231: 0 0 interrupt-controller 20 f7e84800.i2c 265: 380 0 interrupt-controller 8 serial IPI0: 0 0 CPU wakeup interrupts IPI1: 3 6 Timer broadcast interrupts IPI2: 60 100 Rescheduling interrupts IPI3: 0 0 Function call interrupts IPI4: 0 4 Single function call interrupts IPI5: 0 0 CPU stop interrupts IPI6: 21 45 IRQ work interrupts IPI7: 0 0 completion interrupts IPI8: 0 0 CPU backtrace Err: 0 cpu0 got 69-66=3, cpu1 got 75-7=68 timer interrupts. cpu0 got 3-2=1 broadcast timer IPIs, cpu1 got 6-4=2 broadcast timer IPIs. So, overall system got 3+68+1+2=74 wakeups and 1+2=3 broadcast timer IPIs This patch removes 50% wakeups and almost 100% broadcast timer IPIs! Signed-off-by: Jisheng Zhang Signed-off-by: Daniel Lezcano drivers/clocksource/dw_apb_timer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 79e436d3a7d0510dfe6be3973efd78f6ccfe1492 Author: Viresh Kumar Date: Thu Jun 18 16:24:20 2015 +0530 clockevents/drivers/exynos_mct: Migrate to new 'set-state' interface Migrate exynos_mct driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Kukjin Kim Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/exynos_mct.c | 85 +++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 45 deletions(-) commit cf4541c101ea497f68639cc94a2639a05cc3710f Author: Viresh Kumar Date: Thu Jun 18 16:24:38 2015 +0530 clockevents/drivers/tcb_clksrc: Migrate to new 'set-state' interface Migrate tcb_clksrc driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Nicolas Ferre Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/tcb_clksrc.c | 93 ++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 42 deletions(-) commit f0753793d33931bffbc7eee3289bf4d289728ef6 Author: Viresh Kumar Date: Thu Jun 18 16:24:55 2015 +0530 clockevents/drivers/zevio: Migrate to new 'set-state' interface Migrate zevio driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Daniel Tang Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/zevio-timer.c | 44 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 23 deletions(-) commit 214bc755b67029821106acc0b73abdc9b4ca6968 Author: Viresh Kumar Date: Thu Jun 18 16:24:54 2015 +0530 clockevents/drivers/vt8500: Migrate to new 'set-state' interface Migrate vt8500 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Tony Prisk Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/vt8500_timer.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) commit 9552a6af8c807ab547c053399b40bd05781fa0a8 Author: Viresh Kumar Date: Thu Jun 18 16:24:53 2015 +0530 clockevents/drivers/vf_pit: Migrate to new 'set-state' interface Migrate vf_pit driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jingchang Lu Cc: Stefan Agner Cc: Shawn Guo Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Stefan Agner drivers/clocksource/vf_pit_timer.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 8ff8fc13bdd4f1474720669042fccfbf304638f1 Author: Viresh Kumar Date: Thu Jun 18 16:24:52 2015 +0530 clockevents/drivers/u300: Migrate to new 'set-state' interface Migrate u300 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Linus Walleij Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Linus Walleij drivers/clocksource/timer-u300.c | 155 +++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 78 deletions(-) commit 7486f5ad27f6833397d55972878e7d73e84bede2 Author: Viresh Kumar Date: Thu Jun 18 16:24:51 2015 +0530 clockevents/drivers/sun5i: Migrate to new 'set-state' interface Migrate sun5i driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Maxime Ripard Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Maxime Ripard drivers/clocksource/timer-sun5i.c | 45 ++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 19 deletions(-) commit 8e8af4cd3b4227d1bc64db0f0a4081095eb519b2 Author: Viresh Kumar Date: Thu Jun 18 16:24:50 2015 +0530 clockevents/drivers/stm32: Migrate to new 'set-state' interface Migrate stm32 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Maxime Coquelin Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Tested-by: Maxime Coquelin Acked-by: Maxime Coquelin drivers/clocksource/timer-stm32.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 53cba064443c1f36a55aa9dbc38f1d0d2aac96a4 Author: Viresh Kumar Date: Thu Jun 18 16:24:49 2015 +0530 clockevents/drivers/prima2: Migrate to new 'set-state' interface Migrate prima2 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Barry Song Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/timer-prima2.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) commit 634eb0ec8c210ca3ea81b5b9493b4a39999bbf4a Author: Viresh Kumar Date: Thu Jun 18 16:24:48 2015 +0530 clockevents/drivers/keystone: Migrate to new 'set-state' interface Migrate keystone driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Also pass the mode-mask to keystone_timer_config() instead of the mode as mode macro's aren't valid anymore. Cc: Santosh Shilimkar Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/timer-keystone.c | 44 +++++++++++++----------------------- 1 file changed, 16 insertions(+), 28 deletions(-) commit f710bdeecffe9ce3ad8bdc358c6109d3848f6352 Author: Viresh Kumar Date: Thu Jun 18 16:24:47 2015 +0530 clockevents/drivers/integrator: Migrate to new 'set-state' interface Migrate integrator driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. For oneshot mode the clkevt device was first getting disabled by clearing TIMER_CTRL_ENABLE bits in TIMER_CTRL register, followed by clearing TIMER_CTRL_PERIODIC bit. Both these are done with a single write operation now. Cc: Linus Walleij Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Linus Walleij drivers/clocksource/timer-integrator-ap.c | 58 ++++++++++++++++++------------- 1 file changed, 33 insertions(+), 25 deletions(-) commit e0d1ca332c1e91febd0de0ef69a45957cdc39fd8 Author: Viresh Kumar Date: Thu Jun 18 16:24:46 2015 +0530 clockevents/drivers/digicolor: Migrate to new 'set-state' interface Migrate digicolor driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Baruch Siach Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Baruch Siach Tested-by: Baruch Siach drivers/clocksource/timer-digicolor.c | 41 +++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 19 deletions(-) commit 8ab282305f88c693275925330a0f93b16cab9c37 Author: Viresh Kumar Date: Thu Jun 18 16:24:45 2015 +0530 clockevents/drivers/atmel-st: Migrate to new 'set-state' interface Migrate atmel-st driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Jean-Christophe Plagniol-Villard Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Alexandre Belloni Tested-by: Alexandre Belloni drivers/clocksource/timer-atmel-st.c | 69 ++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 27 deletions(-) commit 85250fb89be3792c8a6793a594e30307c4e39214 Author: Viresh Kumar Date: Thu Jun 18 16:24:44 2015 +0530 clockevents/drivers/atmel: Migrate to new 'set-state' interface Migrate atmel driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Jean-Christophe Plagniol-Villard Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Alexandre Belloni drivers/clocksource/timer-atmel-pit.c | 41 +++++++++++++++-------------------- 1 file changed, 18 insertions(+), 23 deletions(-) commit 1e729d378e75063bf3fa91c62ea372fb73012b24 Author: Viresh Kumar Date: Thu Jun 18 16:24:43 2015 +0530 clockevents/drivers/atlas7: Migrate to new 'set-state' interface Migrate atlas7 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Barry Song Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/timer-atlas7.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) commit 5dd2482c8e7d8108e8d5d59a25f7b7a16d1ea64e Author: Viresh Kumar Date: Thu Jun 18 16:24:42 2015 +0530 clockevents/drivers/orion: Migrate to new 'set-state' interface Migrate orion driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jason Cooper Cc: Andrew Lunn Cc: Sebastian Hesselbarth Cc: Gregory Clement Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/time-orion.c | 46 +++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 20 deletions(-) commit 20bf54f1172931df634d8f8cf05ba2c2d371dc10 Author: Viresh Kumar Date: Thu Jun 18 16:24:41 2015 +0530 clockevents/drivers/efm32: Migrate to new 'set-state' interface Migrate efm32 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. There is nothing to be done for resume state and so isn't implemented. Cc: Uwe Kleine-König Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/time-efm32.c | 66 +++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 31 deletions(-) commit d96f4412bcbd6698b6241146f01021dabdf052f3 Author: Viresh Kumar Date: Thu Jun 18 16:24:40 2015 +0530 clockevents/drivers/time-armada-370-xp: Migrate to new 'set-state' interface Migrate time-armada-370-xp driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jason Cooper Cc: Andrew Lunn Cc: Gregory Clement Cc: Sebastian Hesselbarth Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/time-armada-370-xp.c | 53 +++++++++++++++++--------------- 1 file changed, 28 insertions(+), 25 deletions(-) commit 4134d29bfc4703d4000fc3a49ea4aeeae494d85a Author: Viresh Kumar Date: Fri Jul 3 14:24:35 2015 +0530 clockevents/drivers/tegra20: Migrate to new 'set-state' interface Migrate tegra20 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Thierry Reding Cc: Stephen Warren Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/tegra20_timer.c | 45 ++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 21 deletions(-) commit 6de6c977bdf61b1ca6f321aba468275c32952d79 Author: Viresh Kumar Date: Thu Jun 18 16:24:37 2015 +0530 clockevents/drivers/sun4i: Migrate to new 'set-state' interface Migrate sun4i driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Maxime Ripard Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Maxime Ripard drivers/clocksource/sun4i_timer.c | 41 +++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 19 deletions(-) commit 2bcc4da3d45c5c69e529f7f454191a749277ab1d Author: Viresh Kumar Date: Thu Jun 18 16:24:36 2015 +0530 clockevents/drivers/sh_tmu: Migrate to new 'set-state' interface Migrate sh_tmu driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Magnus Damm Cc: Laurent Pinchart Cc: Paul Mundt Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Laurent Pinchart drivers/clocksource/sh_tmu.c | 63 +++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 33 deletions(-) commit 19a9ffb3d6e9ed1d3a46aee18d0b7f8eff41c82b Author: Viresh Kumar Date: Thu Jun 18 16:24:35 2015 +0530 clockevents/drivers/sh_mtu2: Migrate to new 'set-state' interface Migrate sh_mtu2 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Magnus Damm Cc: Laurent Pinchart Cc: Paul Mundt Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Laurent Pinchart drivers/clocksource/sh_mtu2.c | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) commit 051b782e2406af7f831602c70f887ca9b510b511 Author: Viresh Kumar Date: Thu Jun 18 16:24:34 2015 +0530 clockevents/drivers/sh_cmt: Migrate to new 'set-state' interface Migrate sh_cmt driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Magnus Damm Cc: Laurent Pinchart Cc: Paul Mundt Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Laurent Pinchart drivers/clocksource/sh_cmt.c | 62 ++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit b49b570474490bad8ee5289b103563d978f20a7e Author: Viresh Kumar Date: Thu Jun 18 16:24:33 2015 +0530 clockevents/drivers/samsung_pwm: Migrate to new 'set-state' interface Migrate samsung_pwm driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Tomasz Figa Cc: Kukjin Kim Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/samsung_pwm_timer.c | 41 +++++++++++++++------------------ 1 file changed, 19 insertions(+), 22 deletions(-) commit 99b3fa72efc545a7e21955c17f6a2f6f87dfacde Author: Viresh Kumar Date: Thu Jun 18 16:24:32 2015 +0530 clockevents/drivers/rockchip: Migrate to new 'set-state' interface Migrate rockchip driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything for oneshot or resume modes, and so the callbacks aren't provided. Cc: Heiko Stuebner Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/rockchip_timer.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit 736b2df2abc1f128ce381e9f2e578502cabc2973 Author: Viresh Kumar Date: Thu Jun 18 16:24:31 2015 +0530 clockevents/drivers/qcom: Migrate to new 'set-state' interface Migrate qcom driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Periodic mode isn't supported by the driver and so the callback isn't provided anymore. Cc: Stephen Boyd Cc: Kumar Gala Cc: Andy Gross Cc: David Brown Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Stephen Boyd drivers/clocksource/qcom-timer.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) commit 47d490ea1529633f02209fcb4e89438995375a6f Author: Viresh Kumar Date: Thu Jun 18 16:24:30 2015 +0530 clockevents/drivers/pxa: Migrate to new 'set-state' interface Migrate pxa driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Both oneshot and shutdown modes had exactly same code and so only a single callback is sufficient now, which will be called for both the modes. Cc: Robert Jarzmik Cc: Russell King Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Robert Jarzmik drivers/clocksource/pxa_timer.c | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) commit 9b0af69947562858059b379794b6e94309f367ed Author: Viresh Kumar Date: Thu Jun 18 16:24:29 2015 +0530 clockevents/drivers/nomadik-mtu: Migrate to new 'set-state' interface Migrate nomadik-mtu driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Linus Walleij Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Linus Walleij drivers/clocksource/nomadik-mtu.c | 58 ++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 28 deletions(-) commit eb8703e2ef7c311900174818e884bd49f64d4511 Author: Viresh Kumar Date: Thu Jun 18 16:24:28 2015 +0530 clockevents/drivers/mxs: Migrate to new 'set-state' interface Migrate mxs driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Also drop: - 'mxs_clockevent_mode': as we have helpers available from core for the same. same state twice and so perhaps the check wasn't required. - 'clock_event_mode_label': CLOCK_EVT_MODE_* shouldn't be used anymore by drivers and it was used just to print old-state:new-state. The debug prints are called from mxs_irq_clear() now based on the state-name passed to it. The printed name will be same for shutdown and resume states as they use the same callback pointer. Cc: Shawn Guo Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/mxs_timer.c | 80 +++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 48 deletions(-) commit a2b7e10d29051a084b490c2911c3e1388b5f9677 Author: Viresh Kumar Date: Thu Jun 18 16:24:27 2015 +0530 clockevents/drivers/mtk: Migrate to new 'set-state' interface Migrate mtk driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Matthias Brugger Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/mtk_timer.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit 37ae24716a584da33253cf6630a91c01b6656cc0 Author: Viresh Kumar Date: Thu Jun 18 16:24:26 2015 +0530 clockevents/drivers/moxart: Migrate to new 'set-state' interface Migrate moxart driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jonas Jensen Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/moxart_timer.c | 49 ++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 23 deletions(-) commit d47409347e76ca5e7cdbbb515a9000878b5222cc Author: Viresh Kumar Date: Thu Jun 18 16:24:25 2015 +0530 clockevents/drivers/mips-gic: Migrate to new 'set-state' interface Migrate mips-gic driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: Andrew Bresticker Cc: Steven J. Hill Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/mips-gic-timer.c | 7 ------- 1 file changed, 7 deletions(-) commit 3f583d01d796f7b9fda0203b134585ca06a242ad Author: Viresh Kumar Date: Thu Jun 18 16:24:24 2015 +0530 clockevents/drivers/metag_generic: Migrate to new 'set-state' interface Migrate metag_generic driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. Even the WARN() for periodic or unused modes isn't required anymore as the core is taking care of that now. So, this patch doesn't provide any set-state callbacks. Cc: James Hogan Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/metag_generic.c | 20 -------------------- 1 file changed, 20 deletions(-) commit 40117bd559d3119eb06206f5323680d712db7775 Author: Viresh Kumar Date: Thu Jun 18 16:24:23 2015 +0530 clockevents/drivers/meson6: Migrate to new 'set-state' interface Migrate meson6 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Carlo Caione Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Carlo Caione drivers/clocksource/meson6_timer.c | 50 ++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 23 deletions(-) commit 8eda41b0863ca82010010e951b7aa13b66a06e78 Author: Viresh Kumar Date: Thu Jun 18 16:24:22 2015 +0530 clockevents/drivers/i8253: Migrate to new 'set-state' interface Migrate i8253 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Russell King Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano arch/x86/kernel/i8253.c | 2 +- drivers/clocksource/i8253.c | 77 ++++++++++++++++++++++----------------------- 2 files changed, 39 insertions(+), 40 deletions(-) commit 737663401897f84610d00552eeb83ffa4d730142 Author: Viresh Kumar Date: Thu Jun 18 16:24:21 2015 +0530 clockevents/drivers/fsl_ftm: Migrate to new 'set-state' interface Migrate fsl_ftm driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Xiubo Li Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/fsl_ftm_timer.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) commit 226be92b3e6ec2412cd29520fa09fb41a2606cb6 Author: Viresh Kumar Date: Thu Jun 18 16:24:19 2015 +0530 clockevents/drivers/dw_apb: Migrate to new 'set-state' interface Migrate dw_apb driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jacob Pan Cc: Jamie Iles Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/dw_apb_timer.c | 143 +++++++++++++++++++++---------------- 1 file changed, 81 insertions(+), 62 deletions(-) commit 5c78b265454e6199754b61fa33ea3c1337e6aeab Author: Viresh Kumar Date: Thu Jun 18 16:24:18 2015 +0530 clockevents/drivers/dummy_timer: Migrate to new 'set-state' interface Migrate dummy_timer driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: Mark Rutland Signed-off-by: Viresh Kumae Signed-off-by: Daniel Lezcano drivers/clocksource/dummy_timer.c | 10 ---------- 1 file changed, 10 deletions(-) commit bd88420c589afc0c58542a5d1953637ef2fa64e4 Author: Viresh Kumar Date: Thu Jun 18 16:24:17 2015 +0530 clockevents/drivers/clps711x: Migrate to new 'set-state' interface Migrate clps711x driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Cc: Alexander Shiyan Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/clps711x-timer.c | 6 ------ 1 file changed, 6 deletions(-) commit 5c0a4bbefc0571ba3addb39da0eb53368c018b64 Author: Viresh Kumar Date: Thu Jun 18 16:24:16 2015 +0530 clockevents/drivers/cadence_ttc: Migrate to new 'set-state' interface Migrate cadence_ttc driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Michal Simek Cc: Sören Brinkmann Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano Tested-by: Sören Brinkmann drivers/clocksource/cadence_ttc_timer.c | 59 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 27 deletions(-) commit 3465f60917f2dbbc227e2a2e7913ad75bb604c12 Author: Viresh Kumar Date: Tue Jun 30 14:30:48 2015 +0530 clockevents/drivers/asm9260: Migrate to new 'set-state' interface Migrate asm9260 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. As a default the timer was stopped when entering in the set_mode(RESUME) function, now this is done explicitly with the new API. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Oleksij Rempel Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/asm9260_timer.c | 64 ++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 25 deletions(-) commit 0fae62eafec3c033d49160344228a4fa7d6303bc Author: Geert Uytterhoeven Date: Tue Jun 23 14:56:29 2015 +0200 clockevents/drivers/sh_cmt: Remove obsolete sh-cmt-48-gen2 platform_device_id entry Since commit 914d7d148411997c ("ARM: shmobile: r8a73a4: Remove legacy code"), all former users of the "sh-cmt-48-gen2" platform device name 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. Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Lezcano Acked-by: Simon Horman drivers/clocksource/sh_cmt.c | 1 - 1 file changed, 1 deletion(-) commit 59252d187763ef3675fba1623be6996761fc2400 Author: Geert Uytterhoeven Date: Tue Jun 23 14:56:28 2015 +0200 clockevents/drivers/sh_cmt: Remove obsolete sh-cmt-32-fast platform_device_id entry Since commit 59b89af1d5551c12 ("ARM: shmobile: sh7372: Remove Legacy C SoC code"), there are no more users left of the "sh-cmt-32-fast" platform device name. Hence remove the corresponding platform_device_id entry from the driver. Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Lezcano Acked-by: Simon Horman drivers/clocksource/sh_cmt.c | 1 - 1 file changed, 1 deletion(-) commit 479a932982944786269296a31682e5642f87b89a Author: Alexey Klimov Date: Sun Jun 21 23:41:39 2015 +0300 clockevents/drivers/exynos_mct: Remove unneeded container_of() Patch removes unneeded container_of() macro in exynos4_local_timer_setup(). Instead let's pass mevt pointer to setup and stop functions from exynos4_mct_cpu_notify() and let them get evt pointer. Tested on odroid-xu3. Signed-off-by: Alexey Klimov Acked-by: Stephen Boyd Signed-off-by: Daniel Lezcano Reviewed-by: Krzysztof Kozlowski drivers/clocksource/exynos_mct.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 02760b116c56376ad564e959f81835008848861d Author: Antonio Borneo Date: Wed Jun 17 19:42:30 2015 +0800 clockevents/drivers/Kconfig: Replace USE_OF with OF USE_OF is used as intermediate Kconfig option by few arch's (ARM, MIPS, Xtensa); in all these cases it implies setting option OF too. Replace the only instance of USE_OF in clocksource with OF. Signed-off-by: Antonio Borneo Signed-off-by: Daniel Lezcano drivers/clocksource/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86e488adaab77a733b01e759bf7bfda054479660 Author: Sudeep Holla Date: Wed Jul 22 13:28:51 2015 +0100 mailbox: arm_mhu: reduce txpoll_period from 10ms to 1 ms Since the mailbox core users hrtimers now, it can handle much higher resolutions. We can reduce the txpoll_period to 1 ms as the transmit usually takes just few microseconds. Reported-and-suggested-by: Juri Lelli Signed-off-by: Sudeep Holla Signed-off-by: Jassi Brar drivers/mailbox/arm_mhu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0cc67945ea5933d53db69606312cf52f553d1b81 Author: Sudeep Holla Date: Fri Jul 31 11:48:05 2015 +0100 mailbox: switch to hrtimer for tx_complete polling The mailbox core uses jiffy based timer to handle polling for the transmit completion. If the client/protocol have/support notification of the last packet transmit completion via ACK packet, then we tick the Tx state machine immediately in the callback. However if the client doesn't support that mechanism we might end-up waiting for atleast a jiffy even though the remote is ready to receive the next request. This patch switches the timer used for that polling from jiffy-based to hrtimer-based so that we can support polling at much higher time resolution. Reported-and-suggested-by: Juri Lelli Signed-off-by: Sudeep Holla Signed-off-by: Jassi Brar drivers/mailbox/mailbox.c | 27 +++++++++++++++------------ include/linux/mailbox_controller.h | 7 ++++--- 2 files changed, 19 insertions(+), 15 deletions(-) commit 64d0ed94f5dfde5efac15941128f60edf7f15c17 Author: Jason Gerecke Date: Wed Aug 5 15:45:30 2015 -0700 HID: wacom: Do not repeatedly attempt to set device mode on error As an extension of aef3156d7, there is no sense in repeatedly calling the 'wacom_set_report' and 'wacom_get_report' functions if they return an error. Getting an error from them implies that the device is out to lunch: either a hard error code was returned or repeated attempts at recovering from a "soft" error all failed. In either case, doing even more retries is not likely to resolve whatever is wrong. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1ecb40643a9af05683b7a898d7141884bcb28a82 Author: Andrzej Hajda Date: Fri Aug 7 09:59:09 2015 +0200 m68k/bootinfo: Use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Geert Uytterhoeven arch/m68k/kernel/bootinfo_proc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 519f648e15ccded12e7ce4a26c7959c4ac46b145 Author: Geert Uytterhoeven Date: Mon Jul 6 09:43:22 2015 +0200 m68k/defconfig: Update defconfigs for v4.2-rc1 Signed-off-by: Geert Uytterhoeven arch/m68k/configs/amiga_defconfig | 15 +++++++++++---- arch/m68k/configs/apollo_defconfig | 15 +++++++++++---- arch/m68k/configs/atari_defconfig | 15 +++++++++++---- arch/m68k/configs/bvme6000_defconfig | 15 +++++++++++---- arch/m68k/configs/hp300_defconfig | 15 +++++++++++---- arch/m68k/configs/mac_defconfig | 15 +++++++++++---- arch/m68k/configs/multi_defconfig | 15 +++++++++++---- arch/m68k/configs/mvme147_defconfig | 15 +++++++++++---- arch/m68k/configs/mvme16x_defconfig | 15 +++++++++++---- arch/m68k/configs/q40_defconfig | 15 +++++++++++---- arch/m68k/configs/sun3_defconfig | 15 +++++++++++---- arch/m68k/configs/sun3x_defconfig | 15 +++++++++++---- 12 files changed, 132 insertions(+), 48 deletions(-) commit d15135bd94bfb94077484baae0e53e3675541763 Author: Geert Uytterhoeven Date: Mon Jul 6 09:38:14 2015 +0200 m68k/defconfig: Disable experimental CONFIG_DM_CACHE Signed-off-by: Geert Uytterhoeven arch/m68k/configs/amiga_defconfig | 1 - arch/m68k/configs/apollo_defconfig | 1 - arch/m68k/configs/atari_defconfig | 1 - arch/m68k/configs/bvme6000_defconfig | 1 - arch/m68k/configs/hp300_defconfig | 1 - arch/m68k/configs/mac_defconfig | 1 - arch/m68k/configs/multi_defconfig | 1 - arch/m68k/configs/mvme147_defconfig | 1 - arch/m68k/configs/mvme16x_defconfig | 1 - arch/m68k/configs/q40_defconfig | 1 - arch/m68k/configs/sun3_defconfig | 1 - arch/m68k/configs/sun3x_defconfig | 1 - 12 files changed, 12 deletions(-) commit 66621f96c95175cc64d91dd213781bf65bbf8ec4 Author: Colin Ian King Date: Fri Jul 17 13:01:23 2015 +0100 i2c: viperboard: clean up inconsistent indenting Minor clean up of indenting, no functional change Signed-off-by: Colin Ian King [wsa: squashed two lines into one] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-viperboard.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a1f64317bbf5febe4c763cd6e022d533a802b847 Author: Masahiro Yamada Date: Tue Jul 21 16:14:36 2015 +0900 i2c: cadence: set THIS_MODULE to the owner of the adapter The owner of the adapter is missing, while this driver is tristate. Signed-off-by: Masahiro Yamada Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-cadence.c | 1 + 1 file changed, 1 insertion(+) commit 6e24d205a8aa78227c6f2573ed725b4517b5b1b3 Author: Wolfram Sang Date: Sat Aug 8 20:30:36 2015 +0200 hwmon: ina209: move binding docs to proper place The I2C dir is not for I2C client devices! Move it to the proper folder. Signed-off-by: Wolfram Sang Acked-by: Guenter Roeck Documentation/devicetree/bindings/hwmon/ina209.txt | 18 ++++++++++++++++++ Documentation/devicetree/bindings/i2c/ina209.txt | 18 ------------------ 2 files changed, 18 insertions(+), 18 deletions(-) commit 8113627c3f777473262192dfb2c693f0e1f78ef5 Author: Wolfram Sang Date: Sat Aug 8 20:30:35 2015 +0200 hwmon: ina2xx: move binding docs to proper place The I2C dir is not for I2C client devices! Move it to the proper folder. Signed-off-by: Wolfram Sang Acked-by: Guenter Roeck Documentation/devicetree/bindings/hwmon/ina2xx.txt | 22 ++++++++++++++++++++++ Documentation/devicetree/bindings/i2c/ina2xx.txt | 22 ---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) commit 220c04f834f7bd76e1a33711add61735796dc7f2 Author: Wolfram Sang Date: Sat Aug 8 20:30:34 2015 +0200 hwmon: max6697: move binding docs to proper place The I2C dir is not for I2C client devices! Move it to the proper folder. Signed-off-by: Wolfram Sang Acked-by: Guenter Roeck .../devicetree/bindings/hwmon/max6697.txt | 64 ++++++++++++++++++++++ Documentation/devicetree/bindings/i2c/max6697.txt | 64 ---------------------- 2 files changed, 64 insertions(+), 64 deletions(-) commit 301b06f80fb120b36ad6981038ffe8a0b5039d44 Author: Wolfram Sang Date: Sat Aug 8 20:30:33 2015 +0200 rtc: bq32k: move binding docs to proper place The I2C dir is not for I2C client devices! Move it to the proper folder. Signed-off-by: Wolfram Sang Acked-by: Pavel Machek Documentation/devicetree/bindings/i2c/ti,bq32k.txt | 18 ------------------ Documentation/devicetree/bindings/rtc/ti,bq32k.txt | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 18 deletions(-) commit c49c1f0873faddf78c3545a8e25dfe23e8d15c2f Author: Javier Martinez Canillas Date: Fri Aug 7 14:04:19 2015 +0200 misc: eeprom: Export I2C module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c:" regardless if the driver later is match using the I2C id_table or the of_match_table. So the driver needs to export the I2C table and this be built into the module or udev won't have the necessary information to auto load the correct module when the device is added. Signed-off-by: Javier Martinez Canillas Reviewed-by: Jean Delvare Signed-off-by: Wolfram Sang drivers/misc/eeprom/max6875.c | 1 + 1 file changed, 1 insertion(+) commit fb427466dcde21fc4aab27153735bdd5c62b422d Author: Jarkko Nikula Date: Fri Aug 7 14:53:03 2015 +0300 i2c: designware: Make debug print in i2c_dw_isr() shorter Printing adapter name is irrelevant from this debug print and makes output needlessly long. Having already device and functions names printed here is enough for debugging. While at it remove extra space from "enabled= 0x" and use "%#x" for printing "0x" prefixed hexadecimal values. Signed-off-by: Jarkko Nikula [wsa: made it a oneliner] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0d1ad98dd837c069572d16faf77fa7f50748c7d5 Author: Vladimir Zapolskiy Date: Mon Jul 27 17:30:51 2015 +0300 i2c: arb-gpio-challenge: use of_get_i2c_adapter_by_node interface This change is needed to properly lock I2C parent bus driver. Prior to this change i2c_put_adapter() is misused, which may lead to an overflow over zero of I2C bus driver user counter. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48e9743dd6483c5fd3f10c8e42c60d52d64b0e27 Author: Vladimir Zapolskiy Date: Mon Jul 27 17:30:50 2015 +0300 i2c: core: add and export of_get_i2c_adapter_by_node() interface of_find_i2c_adapter_by_node() call requires quite often missing put_device(), and i2c_put_adapter() releases a device locked by i2c_get_adapter() only. In general module_put(adapter->owner) and put_device(dev) are not interchangeable. This is a common error reproduction scenario as a result of the misusage described above (for clearness this is run on iMX6 platform with HDMI and I2C bus drivers compiled as kernel modules): root@mx6q:~# lsmod | grep i2c i2c_imx 10213 0 root@mx6q:~# lsmod | grep dw_hdmi_imx dw_hdmi_imx 3631 0 dw_hdmi 11846 1 dw_hdmi_imx imxdrm 8674 3 dw_hdmi_imx,imx_ipuv3_crtc,imx_ldb drm_kms_helper 113765 5 dw_hdmi,imxdrm,imx_ipuv3_crtc,imx_ldb root@mx6q:~# rmmod dw_hdmi_imx root@mx6q:~# lsmod | grep i2c i2c_imx 10213 -1 ^^^^^ root@mx6q:~# rmmod i2c_imx rmmod: ERROR: Module i2c_imx is in use To fix existing users of these interfaces and to avoid any further confusion and misusage in future, add one more interface of_get_i2c_adapter_by_node(), it is similar to i2c_get_adapter() in sense that an I2C bus device driver found and locked by user can be correctly unlocked by i2c_put_adapter(). Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 18 ++++++++++++++++++ include/linux/i2c.h | 7 +++++++ 2 files changed, 25 insertions(+) commit 611e12ea0f121a31d9e9c4ce2a18a77abc2f28d6 Author: Vladimir Zapolskiy Date: Mon Jul 27 17:30:49 2015 +0300 i2c: core: manage i2c bus device refcount in i2c_[get|put]_adapter In addition to module_get()/module_put() add get_device()/put_device() calls into i2c_get_adapter()/i2c_put_adapter() exported interfaces. This is done to lock I2C bus device, if it is in use by a client. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Wolfram Sang drivers/i2c/i2c-core.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 141124e6e0db645396321aabed01c5e0b12cccc1 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:23:17 2015 +0900 misc: 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: Wolfram Sang drivers/misc/ad525x_dpot-i2c.c | 1 - drivers/misc/apds990x.c | 1 - drivers/misc/bh1770glc.c | 1 - drivers/misc/bmp085-i2c.c | 1 - drivers/misc/eeprom/at24.c | 1 - drivers/misc/isl29003.c | 1 - drivers/misc/lis3lv02d/lis3lv02d_i2c.c | 1 - drivers/misc/ti-st/st_kim.c | 1 - drivers/misc/tsl2550.c | 1 - 9 files changed, 9 deletions(-) commit 069d5b745b2a98ebc8c239fe0b7bdb6c5ff0f475 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:52:31 2015 +0900 i2c: 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: Wolfram Sang drivers/i2c/i2c-slave-eeprom.c | 1 - drivers/i2c/muxes/i2c-mux-pca9541.c | 1 - drivers/i2c/muxes/i2c-mux-pca954x.c | 1 - 3 files changed, 3 deletions(-) commit b0898fdaffb2932aba0108986b90d9d69888e189 Author: Andy Shevchenko Date: Wed Jul 8 13:15:36 2015 +0300 i2c: designware-pci: use IRQF_COND_SUSPEND flag The mentioned flag fixes a warning on Intel Edison board since one of the I2C controller shares IRQ line with watchdog timer. Signed-off-by: Andy Shevchenko Acked-by: Mika Westerberg Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-designware-pcidrv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8ab7f089ec003f817f74c45a2563ed40a50de208 Author: Denis Carikli Date: Thu Jul 23 12:03:47 2015 +0200 DT: i2c: Add ADS7828 and ADS7830 to list of trivial devices This adds devicetree documentation for the bindings of the ads7828 driver. Signed-off-by: Denis Carikli Acked-by: Guenter Roeck Signed-off-by: Wolfram Sang Documentation/devicetree/bindings/i2c/trivial-devices.txt | 2 ++ 1 file changed, 2 insertions(+) commit 82cd5d041c8c2cdceaa6833d2f73905279d1c94f Author: Ondrej Zary Date: Mon Jul 13 19:31:12 2015 +0200 i2c: parport: Add VCT-jig adapter Add support for VCT-jig parallel port I2C adapter to i2c-parport. The adapter schematic can be found here (in the RAR file): http://remont-aud.net/shop/22/desc/vct-jig-komplekt-dlja-samostojatelnoj-sborki Signed-off-by: Ondrej Zary Reviewed-by: Jean Delvare Signed-off-by: Wolfram Sang Documentation/i2c/busses/i2c-parport | 1 + drivers/i2c/busses/i2c-parport.h | 8 ++++++++ 2 files changed, 9 insertions(+) commit 63cab195bf498676619951e81ad5791e9d47c420 Author: Anurag Kumar Vulisha Date: Fri Jul 10 20:10:14 2015 +0530 i2c: removed work arounds in i2c driver for Zynq Ultrascale+ MPSoC Cadence 1.0 version has bugs which have been fixed in the cadence 1.4 version. This patch removes the quirks present in the driver for cadence 1.4 version. Signed-off-by: Anurag Kumar Vulisha [wsa: fixed indentation issues in r1p10_i2c_def] Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-cadence.txt | 6 +- drivers/i2c/busses/i2c-cadence.c | 68 ++++++++++++++++++---- 2 files changed, 62 insertions(+), 12 deletions(-) commit d57f5dedde18253d5c72a823c0a7ff3b20b57560 Author: Laxman Dewangan Date: Tue Jun 30 16:24:27 2015 +0530 i2c: tegra: add support for fast plus (FM+) mode clock rate Tegra I2C controller required to configure the clock divisor register inside controller to different value based on the clock speed. The recommended clock divisor for the I2C controller for standard/fast mode is 0x19 and for fast-mode plus is 0x10. Add support to configure clock divisor register of I2C controller based on bus clock rate. This clock divisor is supported form T114 onwards. Signed-off-by: Chaitanya Bandi Signed-off-by: Laxman Dewangan Tested-by: Stephen Warren Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-tegra.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 6f4664b2e2c2cfa35b48271423c5e602b6970f14 Author: Laxman Dewangan Date: Tue Jun 30 16:24:26 2015 +0530 i2c: tegra: update CONFIG_LOAD for new conifiguration Once the new configuration is set on the conifg register of I2C controller, it is require to update the CONFIG_LOAD register to transfer the new SW configuration to actual HW internal registers that would be used in the actual logic. It is like, SW is programming only shadow registers through regular configuration and when these load_config bit fields are set to 1, it causes the regular/shadows registers configuration transferred to the HW internal active registers. So SW has to set these bit fields at the end of all regular registers configuration. And these config_load bits are HW auto-clear bits. HW clears these bit fields once the register configuration is moved to HW internal active registers. So SW has to wait until these bits are auto-cleared before going for any further programming This mechanism is supported on T124 and after this SoCs. Signed-off-by: Chaitanya Bandi Signed-off-by: Laxman Dewangan Tested-by: Stephen Warren Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-tegra.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 77441ac00d324c037c088da090fa505b45dad9d4 Author: Wolfram Sang Date: Tue Jul 14 14:07:08 2015 +0200 i2c: omap: fix cleanup regression Patch "i2c: omap: abolish variable name confusion" triggered a coccinelle warning which we fix here: drivers/i2c/busses/i2c-omap.c:1333:5-24: pm_runtime_get_sync returns < 0 as error. Unecessary IS_ERR_VALUE at line 1334 Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b0c8dc3104253a5e4b2ec923eeb48cece0abcb9 Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:19 2015 +0530 i2c: xiic: Do not continue in case of errors in Rx In case of error conditions like Arbitration lost or NACK lets signal the waiting process. Handle error cases in the Rx path Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 2 ++ 1 file changed, 2 insertions(+) commit 7f9906bd7f7211327ba58657caa216608f9c93de Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:18 2015 +0530 i2c: xiic: Service all interrupts in isr Currently only one interrupt is serviced in the isr. In case the multiple interrupts happen simultenously we service and ack only one of them. Check for all the causes in the isr and service them. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 542e2a9b739068c1b72db530987382662201469a Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:17 2015 +0530 i2c: xiic: Remove the Addressed as slave interrupt Currently there is no slave mode support in the driver also in the isr we just ack it and do nothing. So disable the AAS interrupt. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b33aa252785eb6de2f5325a3338fa917a9b4bc66 Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:15 2015 +0530 i2c: xiic: Remove busy loop while waiting for bus busy Remove the busy loop while waiting for bus busy. Instead let the processor sleep. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e6c9a037bc8afdce055a2a23bb61903b3844dfda Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:14 2015 +0530 i2c: xiic: Remove the disabling of interrupts Currently before every transfer the interrupts are disabled. So incase the slave nacks in the middle of the transfer the current transfer is not aborted. Upon enabling the interrupts conditions like NACK , arbitration lost will not be masked. Remove the disabling of the interrupts. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 7 ------- 1 file changed, 7 deletions(-) commit d701667bb3318f27152ad61a6f5cc8b36cc5fcad Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:13 2015 +0530 i2c: xiic: Do not reset controller before every transfer Currently before every transfer the controller is reinitialised. We are already resetting the controller upon errors so upon every transfer is a performance kill. Remove the same. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 1 - 1 file changed, 1 deletion(-) commit fcc2fac60a95b4e63682ae4128e86d8768602fab Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:12 2015 +0530 i2c: xiic: move the xiic_process to thread context The xiic_process is a 154 line code that runs in isr context currently move it to thread context. Also the name xiic_process suggests that the intension was to run in process context. Signed-off-by: Shubhrajyoti Datta [wsa: initialized irqreturn_t to IRQ_NONE instead of IRQ_HANDLED] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) commit 0387fc1645fed3b723e8556d83452bc09f79fd24 Author: Shubhrajyoti Datta Date: Wed Jun 17 20:48:11 2015 +0530 i2c: xiic: Remove the disabling of interrupts Currently the interrupts are disabled at the start of the isr and enabled at the end of the isr. Remove the same. In case the slave device NACKs the transaction while in the isr the transfer will continue and the NACK interrupt will arrive only after the isr is serviced. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-xiic.c | 3 --- 1 file changed, 3 deletions(-) commit 51fcce86a70f6f63d733619afc425821118838dc Author: Vaibhav Hiremath Date: Tue Jul 14 13:06:45 2015 +0530 i2c: pxa: Use devm_ variants in probe function This patch cleans up i2c_pxa_probe() function, - Use devm_ variants wherever This will clean both probe exit and i2c_pxa_remove() functions - Check platform resource before parsing any other data from DT/platform - Use dev_err on failure from i2c_add_numbered_adapter() - Use pr_info instead of printk for KERN_INFO Signed-off-by: Vaibhav Hiremath Acked-by: Robert Jarzmik [wsa: removed unneeded error prinout after devm_ioremap_resource] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pxa.c | 77 +++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 51 deletions(-) commit 3a2dc1677b60af250bea85d470ef5151c70a1264 Author: Vaibhav Hiremath Date: Tue Jul 14 13:06:44 2015 +0530 i2c: pxa: Update debug function to dump more info on error Update i2c_pxa_scream_blue_murder() fn to print more information in case of error. Also, use dev_err variants instead of printk. Signed-off-by: Jett.Zhou Signed-off-by: Vaibhav Hiremath Cc: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pxa.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) commit e2b498fd55a871ab3913914b982e3dd07d32e90e Author: Yipeng Yao Date: Tue Jul 14 13:06:43 2015 +0530 i2c: pxa: Fix compile warning in 64bit mode Fix below warning message, coming from 64 bit toolchain. drivers/i2c/busses/i2c-pxa.c:1237:15: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] Signed-off-by: Yipeng Yao [vaibhav.hiremath@linaro.org: Updated Changelog] Signed-off-by: Vaibhav Hiremath Cc: Wolfram Sang Acked-by: Robert Jarzmik Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pxa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8bd75bd3038df5e743c7daa84c2d34d13493b395 Author: Shouming Wang Date: Tue Jul 14 13:06:42 2015 +0530 i2c: pxa: Return I2C_RETRY when timeout in pio mode In case of timeout in pio mode of operation return I2C_RETRY. This behavior will be same as interrupt mode of operation. Signed-off-by: Shouming Wang [vaibhav.hiremath@linaro.org: Updated changelog] Signed-off-by: Vaibhav Hiremath Acked-by: Robert Jarzmik Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pxa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e087b4272effeacc10629316d47a257c88f82898 Author: Vaibhav Hiremath Date: Tue Jul 14 13:06:41 2015 +0530 i2c: pxa: No need to set slave addr for i2c master mode reset Normally i2c controller works as master, so slave addr is not needed, or it will impact some slave device (eg. ST NFC chip) i2c accesses, because it has the same i2c address with controller. For example, On the pxa1928 based platform, where PMIC (88pm860) is present @0x30 address on TWSI0 interface, and if we set 0x30 as a slave address in pxa1928 TWSI0 module, all the transactions towards PMIC would go for toss. Signed-off-by: Jett.Zhou Signed-off-by: Vaibhav Hiremath Acked-by: Robert Jarzmik Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pxa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit abf8a1fba9a48535595857ed46ad642272eea05c Author: Leilei Shang Date: Tue Jul 14 13:06:40 2015 +0530 i2c: pxa: keep i2c irq ON in suspend During suspend there may still be some i2c access happening, as the interrupt is shared between multiple drivers. And if we don't keep i2c irq ON, there may be i2c access timeout if i2c is in irq mode of operation. Signed-off-by: Raul Xiong Signed-off-by: Xiaofan Tian [vaibhav.hiremath@linaro.org: updated Changelog] Signed-off-by: Vaibhav Hiremath Cc: Wolfram Sang Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-pxa.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5faf6e1f58b4488a8b24a722ccf317ed67a8e8d8 Author: Wolfram Sang Date: Sat Jul 11 09:46:23 2015 +0200 i2c: emev2: add driver Add a basic driver for the Renesas EMEV2 SoC. Based on the driver from the BSP which was first worked on by Ian, and made ready for upstream by me. Signed-off-by: Ian Molton Reviewed-by: Laurent Pinchart Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang .../devicetree/bindings/i2c/i2c-emev2.txt | 22 ++ drivers/i2c/busses/Kconfig | 7 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-emev2.c | 332 +++++++++++++++++++++ 4 files changed, 362 insertions(+) commit e1069878b957c5f6d0eb2f441a8372db8d6198b2 Author: Wolfram Sang Date: Sat Jul 11 09:46:22 2015 +0200 clk: shmobile: emev2: deassert reset for IIC0/1 We have a driver now for IIC, so disable reset for them. Signed-off-by: Wolfram Sang Acked-by: Stephen Boyd Signed-off-by: Wolfram Sang drivers/clk/shmobile/clk-emev2.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 1c4828f916ffd5b7cc4d57d832cce615475b36da Author: Felipe Balbi Date: Mon Jul 13 15:38:04 2015 -0500 i2c: omap: on ->remove() call pm_runtime_put_sync() we're about to remove the module, so we can't really schedule a PM transition in the future, we must wait for it to finish. Signed-off-by: Felipe Balbi Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63f8f85625fa726bdf28862dd4d2e1bf3d230bb8 Author: Felipe Balbi Date: Mon Jul 13 15:38:03 2015 -0500 i2c: omap: abolish variable name confusion struct device pointers are usually called dev. Calling our struct omap_i2c_dev pointers also dev has caused enough confusion. This is the result of a few simple sed rules to convert all struct omap_i2c_dev pointers to be called omap instead. Signed-off-by: Felipe Balbi Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 598 +++++++++++++++++++++--------------------- 1 file changed, 299 insertions(+), 299 deletions(-) commit c680e3291857216465714ba1d3336befaa5b4725 Author: Felipe Balbi Date: Mon Jul 13 15:38:02 2015 -0500 i2c: omap: switch to dev_get_drvdata() there's no need to fetch the platform_device in order to dereference it back to the dev pointer to access drvdata, we can use dev_get_drvdata() instead. Signed-off-by: Felipe Balbi Acked-by: Alexander Sverdlin Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-omap.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 20226118bceed7b432f4bc5bae34c1c160689bf7 Author: Sudip Mukherjee Date: Thu Jun 18 18:33:47 2015 +0530 i2c: parport: start using pr_fmt Start using pr_fmt and convert all remaining printk to use pr_* family of macros. Signed-off-by: Sudip Mukherjee [wsa: remove print on kzalloc failure] Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-parport.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit c5f3d544a7f29b16de37c10f51b38c4b7ad31804 Author: Sudip Mukherjee Date: Thu Jun 18 18:33:46 2015 +0530 i2c: parport: use dev_* Now parport is using device model so use dev_* macros instead of printk. Signed-off-by: Sudip Mukherjee Signed-off-by: Wolfram Sang drivers/i2c/busses/i2c-parport.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 2cf1b5ce16b61259e3633fb61e6fedaad6e25fc5 Merge: ecea499 e577516 Author: David S. Miller Date: Sun Aug 9 22:54:10 2015 -0700 Merge branch 'mlxsw-fixes' Jiri Pirko says: ==================== mlxsw: Couple of fixes/adjustments Ido Schimmel (5): mlxsw: Call free_netdev when removing port mlxsw: Make system port to local port mapping explicit mlxsw: Simplify mlxsw_sx_port_xmit function mlxsw: Use correct skb length when dumping payload mlxsw: Fix use-after-free bug in mlxsw_sx_port_xmit Jiri Pirko (2): mlxsw: Make pci module dependent on HAS_DMA and HAS_IOMEM mlxsw: Strip FCS from incoming packets ==================== Signed-off-by: David S. Miller commit e577516b9db3e0f19df82b6430fe3b06e05d6304 Author: Ido Schimmel Date: Thu Aug 6 16:41:58 2015 +0200 mlxsw: Fix use-after-free bug in mlxsw_sx_port_xmit Store the length of the skb before transmitting it and use it for stats instead of skb->len, since skb might have been freed already. This issue was discovered using the Kernel Address sanitizer (KASan). Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3bfcd34764cbd3bcb48f6e9009eacf1d19856213 Author: Ido Schimmel Date: Thu Aug 6 16:41:57 2015 +0200 mlxsw: Use correct skb length when dumping payload Do not use the length of the transmitted skb (which was freed), but that of the response skb. This issue was discovered using the Kernel Address sanitizer (KASan). Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d003462a50de8605e66be0966e6370ab9821e07e Author: Ido Schimmel Date: Thu Aug 6 16:41:56 2015 +0200 mlxsw: Simplify mlxsw_sx_port_xmit function Previously we only checked if the transmission queue is not full in the middle of the xmit function. This lead to complex logic due to the fact that sometimes we need to reallocate the headroom for our Tx header. Allow the switch driver to know if the transmission queue is not full before sending the packet and remove this complex logic. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 10 ++++++++++ drivers/net/ethernet/mellanox/mlxsw/core.h | 5 +++++ drivers/net/ethernet/mellanox/mlxsw/pci.c | 20 +++++++++++++++----- drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 25 ++++++++++--------------- 4 files changed, 40 insertions(+), 20 deletions(-) commit 7b7b9cff7468fdf38ab189dde6ecb4750b171bc8 Author: Jiri Pirko Date: Thu Aug 6 16:41:55 2015 +0200 mlxsw: Strip FCS from incoming packets FCS of incoming packets is already checked by HW. Just strip it out. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/pci.c | 6 +++++- drivers/net/ethernet/mellanox/mlxsw/pci.h | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit 74ed207e2a82dece0de0849df62cd450dec9d4d7 Author: Jiri Pirko Date: Thu Aug 6 16:41:54 2015 +0200 mlxsw: Make pci module dependent on HAS_DMA and HAS_IOMEM This resolves compile errors on um-allyesconfig. Note that there are many other drivers which have the same issue. Reported-by: kbuild test robot Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e61011b5e044b15727fc6ee330c17f1fc69faef8 Author: Ido Schimmel Date: Thu Aug 6 16:41:53 2015 +0200 mlxsw: Make system port to local port mapping explicit System ports are unique identifiers in a multi-ASIC environment that represent all the available ports in the system. Local ports on the other hand, are unique only within the local ASIC. Since system port to local port mapping is not part of the HW-SW contract and since only single-ASIC configurations are currently supported, set an explicit 1:1 mapping by configuring the Switch System Port Record (SSPR) register. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/reg.h | 60 ++++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 18 ++++++++ 2 files changed, 78 insertions(+) commit 26a80f6e542e6b86c9ad9c3d217d74ca8c3fed66 Author: Ido Schimmel Date: Thu Aug 6 16:41:52 2015 +0200 mlxsw: Call free_netdev when removing port When removing a port's netdevice we should also free the memory allocated by alloc_etherdev(). Do this by calling free_netdev() at the end of the teardown sequence. Reported-by: Or Gerlitz Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 1 + 1 file changed, 1 insertion(+) commit ecea49914b329e3f5cf746979c10e05e6bdad77a Author: Masanari Iida Date: Thu Aug 6 21:27:54 2015 +0900 net: ethernet: Fix double word "the the" in eth.c This patch fix double word "the the" in Documentation/DocBook/networking/API-eth-get-headlen.html Documentation/DocBook/networking/netdev.html Documentation/DocBook/networking.xml These files are generated from comment in source, so I have to fix comment in net/ethernet/eth.c. Signed-off-by: Masanari Iida Signed-off-by: David S. Miller net/ethernet/eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0024f8920045c6a57d98b44290bbaebb0e3c6c00 Author: Shaohui Xie Date: Thu Aug 6 19:03:35 2015 +0800 net: phy: add RealTek RTL8211DN phy id RTL8211DN is compatible with RTL8211E. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/realtek.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 118d5234636ca3718f47ca2c8a3b117c19dfdffd Author: Robert Shearman Date: Thu Aug 6 11:04:56 2015 +0100 mpls: Enforce payload type of traffic sent using explicit NULL RFC 4182 s2 states that if an IPv4 Explicit NULL label is the only label on the stack, then after popping the resulting packet must be treated as a IPv4 packet and forwarded based on the IPv4 header. The same is true for IPv6 Explicit NULL with an IPv6 packet following. Therefore, when installing the IPv4/IPv6 Explicit NULL label routes, add an attribute that specifies the expected payload type for use at forwarding time for determining the type of the encapsulated packet instead of inspecting the first nibble of the packet. Signed-off-by: Robert Shearman Signed-off-by: David S. Miller net/mpls/af_mpls.c | 71 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 27 deletions(-) commit d74a790d5237e7f56677030d932bc4f37ec36c92 Merge: f1d5ca4 47efb30 Author: David S. Miller Date: Sun Aug 9 22:50:06 2015 -0700 Merge branch 'bpf-perf' Kaixu Xia says: ==================== bpf: Introduce the new ability of eBPF programs to access hardware PMU counter This patchset is base on the net-next: git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git commit 9dc20a649609c95ce7c5ac4282656ba627b67d49. Previous patch v6 url: https://lkml.org/lkml/2015/8/4/188 changes in V7: - rebase the whole patch set to net-next tree(9dc20a64); - split out the core perf APIs into Patch 1/5; - change the return value of function perf_event_attrs() from struct perf_event * to const struct perf_event * in Patch 1/5; - rename the function perf_event_read_internal() to perf_event_ read_local() and rewrite it in Patch 1/5; - rename the function check_func_limit() to check_map_func _compatibility() and remove the unnecessary pass pointer to a pointer in Patch 4/5; changes in V6: - make the Patch 1/4 commit message more meaning and readable; - remove the unnecessary comment in Patch 2/4 and make it clean; - declare the function perf_event_release_kernel() in include/ linux/perf_event.h to fix the build error when CONFIG_PERF_EVENTS isn't configured in Patch 2/4; - add function perf_event_attrs() to get the struct perf_event_attr in Patch 2/4. - move the related code from kernel/trace/bpf_trace.c to kernel/ events/core.c and add function perf_event_read_internal() to avoid poking inside of the event outside of perf code in Patch 3/4; - generial the func & map match-pair with an array in Patch 3/4; changes in V5: - move struct fd_array_map_ops* fd_ops to bpf_map; - move array perf event decrement refcnt function to map_free; - fix the NULL ptr of perf_event_get(); - move bpf_perf_event_read() to kernel/bpf/bpf_trace.c; - get rid of the remaining struct bpf_prog; - move the unnecessay cast on void *; changes in V4: - make the bpf_prog_array_map more generic; - fix the bug of event refcnt leak; - use more useful errno in bpf_perf_event_read(); changes in V3: - collapse V2 patches 1-3 into one; - drop the function map->ops->map_traverse_elem() and release the struct perf_event in map_free; - only allow to access bpf_perf_event_read() from programs; - update the perf_event_array_map elem via xchg(); - pass index directly to bpf_perf_event_read() instead of MAP_KEY; changes in V2: - put atomic_long_inc_not_zero() between fdget() and fdput(); - limit the event type to PERF_TYPE_RAW and PERF_TYPE_HARDWARE; - Only read the event counter on current CPU or on current process; - add new map type BPF_MAP_TYPE_PERF_EVENT_ARRAY to store the pointer to the struct perf_event; - according to the perf_event_map_fd and key, the function bpf_perf_event_read() can get the Hardware PMU counter value; Patch 5/5 is a simple example and shows how to use this new eBPF programs ability. The PMU counter data can be found in /sys/kernel/debug/tracing/trace(trace_pipe).(the cycles PMU value when 'kprobe/sys_write' sampling) $ cat /sys/kernel/debug/tracing/trace_pipe $ ./tracex6 ... syslog-ng-548 [000] d..1 76.905673: : CPU-0 681765271 syslog-ng-548 [000] d..1 76.905690: : CPU-0 681787855 syslog-ng-548 [000] d..1 76.905707: : CPU-0 681810504 syslog-ng-548 [000] d..1 76.905725: : CPU-0 681834771 syslog-ng-548 [000] d..1 76.905745: : CPU-0 681859519 syslog-ng-548 [000] d..1 76.905766: : CPU-0 681890419 syslog-ng-548 [000] d..1 76.905783: : CPU-0 681914045 syslog-ng-548 [000] d..1 76.905800: : CPU-0 681935950 syslog-ng-548 [000] d..1 76.905816: : CPU-0 681958299 ls-690 [005] d..1 82.241308: : CPU-5 3138451 sh-691 [004] d..1 82.244570: : CPU-4 7324988 <...>-699 [007] d..1 99.961387: : CPU-7 3194027 <...>-695 [003] d..1 99.961474: : CPU-3 288901 <...>-695 [003] d..1 99.961541: : CPU-3 383145 <...>-695 [003] d..1 99.961591: : CPU-3 450365 <...>-695 [003] d..1 99.961639: : CPU-3 515751 <...>-695 [003] d..1 99.961686: : CPU-3 579047 ... The detail of patches is as follow: Patch 1/5 add the necessary core perf APIs perf_event_attrs(), perf_event_get(),perf_event_read_local() when accessing events counters in eBPF programs Patch 2/5 rewrites part of the bpf_prog_array map code and make it more generic; Patch 3/5 introduces a new bpf map type. This map only stores the pointer to struct perf_event; Patch 4/5 implements function bpf_perf_event_read() that get the selected hardware PMU conuter; Patch 5/5 gives a simple example. ==================== Signed-off-by: David S. Miller commit 47efb30274cbec1bd3c0c980a7ece328df2c16a8 Author: Kaixu Xia Date: Thu Aug 6 07:02:36 2015 +0000 samples/bpf: example of get selected PMU counter value This is a simple example and shows how to use the new ability to get the selected Hardware PMU counter value. Signed-off-by: Kaixu Xia Signed-off-by: David S. Miller samples/bpf/Makefile | 4 +++ samples/bpf/bpf_helpers.h | 2 ++ samples/bpf/tracex6_kern.c | 26 ++++++++++++++++++ samples/bpf/tracex6_user.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+) commit 35578d7984003097af2b1e34502bc943d40c1804 Author: Kaixu Xia Date: Thu Aug 6 07:02:35 2015 +0000 bpf: Implement function bpf_perf_event_read() that get the selected hardware PMU conuter According to the perf_event_map_fd and index, the function bpf_perf_event_read() can convert the corresponding map value to the pointer to struct perf_event and return the Hardware PMU counter value. Signed-off-by: Kaixu Xia Signed-off-by: David S. Miller include/linux/bpf.h | 1 + include/uapi/linux/bpf.h | 1 + kernel/bpf/verifier.c | 48 +++++++++++++++++++++++++++++++++--------------- kernel/trace/bpf_trace.c | 31 +++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 15 deletions(-) commit ea317b267e9d03a8241893aa176fba7661d07579 Author: Kaixu Xia Date: Thu Aug 6 07:02:34 2015 +0000 bpf: Add new bpf map type to store the pointer to struct perf_event Introduce a new bpf map type 'BPF_MAP_TYPE_PERF_EVENT_ARRAY'. This map only stores the pointer to struct perf_event. The user space event FDs from perf_event_open() syscall are converted to the pointer to struct perf_event and stored in map. Signed-off-by: Kaixu Xia Signed-off-by: David S. Miller include/linux/bpf.h | 1 + include/uapi/linux/bpf.h | 1 + kernel/bpf/arraymap.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) commit 2a36f0b92eb638dd023870574eb471b1c56be9ad Author: Wang Nan Date: Thu Aug 6 07:02:33 2015 +0000 bpf: Make the bpf_prog_array_map more generic All the map backends are of generic nature. In order to avoid adding much special code into the eBPF core, rewrite part of the bpf_prog_array map code and make it more generic. So the new perf_event_array map type can reuse most of code with bpf_prog_array map and add fewer lines of special code. Signed-off-by: Wang Nan Signed-off-by: Kaixu Xia Signed-off-by: David S. Miller arch/x86/net/bpf_jit_comp.c | 6 ++-- include/linux/bpf.h | 8 +++-- kernel/bpf/arraymap.c | 80 +++++++++++++++++++++++++++------------------ kernel/bpf/core.c | 2 +- kernel/bpf/syscall.c | 2 +- 5 files changed, 60 insertions(+), 38 deletions(-) commit ffe8690c85b8426db7783064724d106702f1b1e8 Author: Kaixu Xia Date: Thu Aug 6 07:02:32 2015 +0000 perf: add the necessary core perf APIs when accessing events counters in eBPF programs This patch add three core perf APIs: - perf_event_attrs(): export the struct perf_event_attr from struct perf_event; - perf_event_get(): get the struct perf_event from the given fd; - perf_event_read_local(): read the events counters active on the current CPU; These APIs are needed when accessing events counters in eBPF programs. The API perf_event_read_local() comes from Peter and I add the corresponding SOB. Signed-off-by: Kaixu Xia Signed-off-by: Peter Zijlstra Signed-off-by: David S. Miller include/linux/perf_event.h | 10 ++++++ kernel/events/core.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) commit f1d5ca434413b20cd3f8c18ff2b634b7782149a5 Merge: 4933d85 8782051 Author: David S. Miller Date: Sun Aug 9 22:48:10 2015 -0700 Merge branch 'mv88e6xxx-switchdev-fdb' Vivien Didelot says: ==================== net: dsa: mv88e6xxx: support switchdev FDB objects This patchset refactors the DSA and mv88e6xxx code to use the switchdev FDB objects. The first two patches add minor but necessary changes to switchdev, the third one implements the switchdev glue in DSA for FDB routines, and the remaining ones refactor the FDB access functions in the mv88e6xxx code. Below is an usage example (ports 0-2 belongs to br0, ports 3-4 belongs to br1): # bridge fdb add 3c:97:0e:11:30:6e dev swp2 # bridge fdb add 3c:97:0e:11:40:78 dev swp3 # bridge fdb add 3c:97:0e:11:50:86 dev swp4 # bridge fdb del 3c:97:0e:11:40:78 dev swp3 # bridge fdb 01:00:5e:00:00:01 dev eth0 self permanent 01:00:5e:00:00:01 dev eth1 self permanent 00:50:d2:10:78:15 dev swp0 master br0 permanent 3c:97:0e:11:30:6e dev swp2 self static 00:50:d2:10:78:15 dev swp3 master br1 permanent 3c:97:0e:11:50:86 dev swp4 self static # cat /sys/kernel/debug/dsa0/atu # DB T/P Vec State Addr # 001 Port 004 e 3c:97:0e:11:30:6e # 004 Port 010 e 3c:97:0e:11:50:86 For the 88E6xxx switches, FIDs 1 to num_ports will be reserved for non-bridged ports and bridge groups, and the remaining will be later used by VLANs. This change is necessary to welcome the support for hardware VLANs (which will follow soon). Changes in v2: - remove ndo_bridge_{get,set,del}link from switchdev/DSA glue code - use ether_addr_copy instead of memcpy for MAC addresses - constify MAC address in port_fdb_{add,del} - split the mv88e6xxx code refactoring into several patches ==================== Signed-off-by: David S. Miller commit 878205101ff1bedfc504bfaa5e999bf426bacd89 Author: Vivien Didelot Date: Thu Aug 6 01:44:08 2015 -0400 net: dsa: mv88e6xxx: rework FDB add/del operations Add a low level function for the ATU Load operation, and provide FDB add and delete wrappers functions. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6171.c | 2 + drivers/net/dsa/mv88e6352.c | 2 + drivers/net/dsa/mv88e6xxx.c | 110 +++++++++++++++++++++++++++++--------------- drivers/net/dsa/mv88e6xxx.h | 8 ++-- 4 files changed, 80 insertions(+), 42 deletions(-) commit 6630e236179f278b5d471c10d458df309067341c Author: Vivien Didelot Date: Thu Aug 6 01:44:07 2015 -0400 net: dsa: mv88e6xxx: rework FDB getnext operation This commit adds a low level _mv88e6xxx_atu_getnext function and helpers to rewrite the mv88e6xxx_port_fdb_getnext operation. A mv88e6xxx_atu_entry structure is added for convenient access to the hardware, and GLOBAL_ATU_FID is defined instead of the raw 0x01 value. The previous implementation did not handle the eventual trunk mapping. If the related bit is set, then the ATU data register would contain the trunk ID, and not the port vector. Check this in the FDB getnext operation and do not handle it (yet). Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6171.c | 1 + drivers/net/dsa/mv88e6352.c | 1 + drivers/net/dsa/mv88e6xxx.c | 97 +++++++++++++++++++++++++++++++++------------ drivers/net/dsa/mv88e6xxx.h | 15 ++++++- 4 files changed, 87 insertions(+), 27 deletions(-) commit 395059fb9269d97198ae3c94a798851e43062da6 Author: Vivien Didelot Date: Thu Aug 6 01:44:06 2015 -0400 net: dsa: mv88e6xxx: rename ATU MAC accessors Rename the __mv88e6xxx_{read,write}_addr functions to more explicit _mv88e6xxx_atu_mac_{read,write} functions, which also respect the single underscore convention used in the file (meaning SMI lock must be held). In the meantime, define their MAC address parameters as an array of ETH_ALEN bytes instead of a char pointer. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 368b1d9c10acf99a855961ae6a1430591ee55f03 Author: Vivien Didelot Date: Thu Aug 6 01:44:05 2015 -0400 net: dsa: mv88e6xxx: extend fid mask The driver currently manages one FID per port (or bridge group), with a mask of DSA_MAX_PORTS bits, where 0 means that the FID is in use. The Marvell 88E6xxx switches support up to 4094 FIDs (from 1 to 0xfff; FID 0 means that multiple address databases are not being used). This patch changes the fid_mask for an fid_bitmap of 4096 bits. >From now on, FIDs 1 to num_ports are reserved for non-bridged ports and bridge groups (a bridge group gets the FID of its first member). The remaining bits will be reserved for VLAN entries. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 20 +++++++++++++------- drivers/net/dsa/mv88e6xxx.h | 8 +++++--- 2 files changed, 18 insertions(+), 10 deletions(-) commit 55045ddded0f39d84c2ca019508973be8c595a78 Author: Vivien Didelot Date: Thu Aug 6 01:44:04 2015 -0400 net: dsa: add support for switchdev FDB objects Remove the fdb_{add,del,getnext} function pointer in favor of new port_fdb_{add,del,getnext}. Implement the switchdev_port_obj_{add,del,dump} functions in DSA to support the SWITCHDEV_OBJ_PORT_FDB objects. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6171.c | 3 - drivers/net/dsa/mv88e6352.c | 3 - include/net/dsa.h | 16 ++-- net/dsa/slave.c | 218 +++++++++++++++++++++++--------------------- 4 files changed, 126 insertions(+), 114 deletions(-) commit 890248261a18c7ae22923095dfadea2c0a2a304a Author: Vivien Didelot Date: Thu Aug 6 01:44:03 2015 -0400 net: switchdev: support static FDB addresses This patch adds a is_static boolean to the switchdev_obj_fdb structure, in order to set the ndm_state to either NUD_NOARP or NUD_REACHABLE. Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller include/net/switchdev.h | 1 + net/switchdev/switchdev.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 1525c386a1f01612c6f3f27241113d7fc8e6d72d Author: Vivien Didelot Date: Thu Aug 6 01:44:02 2015 -0400 net: switchdev: change fdb addr for a byte array The address in the switchdev_obj_fdb structure is currently represented as a pointer. Replacing it for a 6-byte array allows switchdev to carry addresses directly read from hardware registers, not stored by the switch chip driver (as in Rocker). Signed-off-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 2 +- include/net/switchdev.h | 2 +- net/bridge/br_fdb.c | 2 +- net/switchdev/switchdev.c | 5 +++-- 4 files changed, 6 insertions(+), 5 deletions(-) commit 4933d85c5173832ebd261756522095837583c458 Author: Masanari Iida Date: Thu Aug 6 12:52:47 2015 +0900 net:wimax: Fix doucble word "the the" in networking.xml This patch fix a double word "the the" in Documentation/DocBook/networking.xml and Documentation/DocBook/networking/API-Wimax-report-rfkill-sw.html. These files are generated from comment in source, so I had to fix the typo in net/wimax/io-rfkill.c Signed-off-by: Masanari Iida Signed-off-by: David S. Miller net/wimax/op-rfkill.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6855e5b7090330add9521d8947017875d5f4f88e Author: Dinh Nguyen Date: Fri Jul 24 15:13:17 2015 -0500 ARM: socfpga: dts: Add resets for EMACs on Arria10 Add the reset property for the EMAC controllers on Arria10. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_arria10.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 1a94acf858000836d28b13942eebf5cbffc9ac34 Author: Dinh Nguyen Date: Fri Jul 24 14:05:06 2015 -0500 ARM: socfpga: dts: add "altr,modrst-offset" property The "altr,modrst-offset" property represents the offset into the reset manager that is the first register to be used by the driver to bring peripherals out of reset. Signed-off-by: Dinh Nguyen Documentation/devicetree/bindings/reset/socfpga-reset.txt | 2 ++ arch/arm/boot/dts/socfpga.dtsi | 1 + arch/arm/boot/dts/socfpga_arria10.dtsi | 1 + 3 files changed, 4 insertions(+) commit 007bb689b3dbad83cdab0ad192bc6ed0162451e0 Author: Dinh Nguyen Date: Fri Jul 24 00:01:55 2015 -0500 dt-bindings: Add reset manager offsets for Arria10 The reset manager for is pretty similar to the one for SoCFPGA cyclone5/arria5 except for a few offsets. This patch adds those offsets. Signed-off-by: Dinh Nguyen include/dt-bindings/reset/altr,rst-mgr-a10.h | 110 +++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) commit a598af7f0279195abffbfb9bf2070457e9c89ff3 Author: Dan Carpenter Date: Tue Aug 4 10:47:23 2015 +0300 extcon: Fix signedness bugs about break error handling Unsigned is never less than zero so this error handling won't work. Fixes: be052cc87745 ('extcon: Fix hang and extcon_get/set_cable_state().') Signed-off-by: Dan Carpenter Reviewed-by: Roger Quadros [cw00.choi: Change the patch title and fix signedness bug of find_cable_index_by_id() ] Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bef025a1f8e0e566f954613f4e5087f6b156e2a5 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:50:20 2015 +0900 extcon: 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: Chanwoo Choi drivers/extcon/extcon-rt8973a.c | 1 - drivers/extcon/extcon-sm5502.c | 1 - 2 files changed, 2 deletions(-) commit bb327e92a9651c4d9bbf8ee9a367d575d7e6a102 Author: Charles Keepax Date: Tue Jun 30 13:32:39 2015 +0100 extcon: arizona: Simplify pdata symantics for micd_dbtime Currently micd_dbtime can be set to 0 for default, 1 for 4 measurements, or a greater than 16-bit value for 2 measurements. This patch simplifies the symantics to 2 for 2 measurements, 4 for 4 measurements and any other value for the default. I am not super keen on changing the symantics of the pdata at this stage in the drivers life, but acceptance of the DT binding for this field has been made conditional on this happening. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 57f70ef9bd19378b51a282be6b46b45b70d4980d Author: Charles Keepax Date: Thu Jun 25 16:47:02 2015 +0100 extcon: arizona: Declare 3-pole jack if we detect open circuit on mic Detecting an open-circuit on the microphone pin, usually means the headset has a microphone but the cable is faulty. Currently the code will simply stop detecting and declare nothing in this situation. It is better to declare this as headphones such that the user can still use their headset as plain headphones even if the microphone is faulty. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 3 +++ 1 file changed, 3 insertions(+) commit 7eae43aeab27e8f65c0a2e31567fafcfc7aa4649 Author: Chanwoo Choi Date: Sun Jun 21 23:48:36 2015 +0900 extcon: Add exception handling to prevent the NULL pointer access This patch check whether argument is NULL to prevent NULL pointer access. Signed-off-by: Chanwoo Choi drivers/extcon/extcon.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) commit 0ffe8cbd51dafa5ad6686435bb1bd0afdd2b006b Author: Charles Keepax Date: Fri Jun 19 17:23:32 2015 +0100 extcon: arizona: Ensure variables are set for headphone detection The detecting flag really refers to the microphone detection stage and as such should be cleared before arizona_identify_headphones is called. Also the mic flag should be set before identify headphones is called as well. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 8e5838dd7b8c226cca235aa64c2f210517ef9b64 Author: Charles Keepax Date: Fri Jun 19 17:23:31 2015 +0100 extcon: arizona: Use gpiod inteface to handle micd_pol_gpio gpio Convert to using the newer gpiod interface for the micd_pol_gpio. Although we still carry support for the old gpio interface from pdata. Signed-off-by: Charles Keepax [cw00.choi: Modify the patch titlei to include the detailed content] Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) commit 4778d44ff3126b64f784ce9bf2b9dd3dbab1551b Author: Charles Keepax Date: Fri Jun 19 17:23:30 2015 +0100 extcon: arizona: Add basic microphone detection DT/ACPI bindings This patch adds bindings for the basic microphone detection platform data. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit feffb0cc63015798803082a330d2fd96b00e1773 Author: Charles Keepax Date: Fri Jun 19 17:23:29 2015 +0100 extcon: arizona: Update to use the new device properties API The device properties API will load data from both device tree and ACPI, update the binding to use this API instead of the OF API. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi drivers/extcon/extcon-arizona.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 1fe189bfb0fa2b01cea6464a0a6a98f5f118a376 Author: Chanwoo Choi Date: Thu Jun 11 20:46:07 2015 +0900 extcon: palmas: Remove the mutually_exclusive array This patch removes the mutually_exclusive array of extcon-palmas.c. After used the unique id of each external connector on 2a9de9c0f08d ("extcon: Use the unique id for external connector instead of string"), extcon driver can't directly handle the bit value indicating the external connectors. Signed-off-by: Chanwoo Choi drivers/extcon/extcon-palmas.c | 3 --- 1 file changed, 3 deletions(-) commit 2519b7650e99d90643a7a20d623513de9c95a817 Author: Chanwoo Choi Date: Thu Jun 11 20:17:02 2015 +0900 extcon: Remove optional print_state() function pointer of struct extcon_dev This patch removes the optional print_state() function pointer which included in 'struct extcon_dev' because the extcon must maintain the consistent name of extcon device on sysfs instead of inconsistent state of external connectors. Signed-off-by: Chanwoo Choi drivers/extcon/extcon-gpio.c | 18 ------------------ drivers/extcon/extcon.c | 8 -------- include/linux/extcon.h | 5 ----- 3 files changed, 31 deletions(-) commit 85a77ff0160ab0a70eb4e8b14200e29b4d35c355 Author: Chanwoo Choi Date: Thu Jun 11 14:58:47 2015 +0900 extcon: Remove duplicate header file in extcon.h This patch removes the duplicate header file in extcon.h. Signed-off-by: Chanwoo Choi include/linux/extcon.h | 2 -- 1 file changed, 2 deletions(-) commit 135d9f7d135a11ff4a5279325b06c5e8c82952b5 Author: Jaewon Kim Date: Fri Jun 5 13:32:27 2015 +0900 extcon: max77843: Clear IRQ bits state before request IRQ IRQ signal before driver probe is needless because driver sends current state after platform booting done. So, this patch clears MUIC IRQ bits before request IRQ. Signed-off-by: Jaewon Kim Acked-by: MyungJoo Ham Signed-off-by: Chanwoo Choi drivers/extcon/extcon-max77843.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 5d44f4b3484e85c8d4527ecaca5e536da774ae21 Merge: 4816693 f7644cb Author: Greg Kroah-Hartman Date: Sun Aug 9 16:28:09 2015 -0700 Merge 4.2-rc6 into char-misc-next We want the fixes in Linus's tree in here as well. Signed-off-by: Greg Kroah-Hartman commit 1f61cab8a729e00af77b51b44c3a8dc8ef3b3eb9 Author: Guenter Roeck Date: Mon Jun 8 11:15:23 2015 -0700 hwmon: (pmbus) Add support for MAX20751 MAX20751 is a multiphase power controller with internal buck converter. It uses VR12.0 to report the output voltage. This requires an explicit driver, since the VR version can not be auto-detected. The chip supports a manufacturer specific command to fine-tune the output voltage. This command is not currently supported. Signed-off-by: Guenter Roeck Documentation/hwmon/max20751 | 77 ++++++++++++++++++++++++++++++++++++++++++ MAINTAINERS | 7 ++++ drivers/hwmon/pmbus/Kconfig | 10 ++++++ drivers/hwmon/pmbus/Makefile | 1 + drivers/hwmon/pmbus/max20751.c | 64 +++++++++++++++++++++++++++++++++++ 5 files changed, 159 insertions(+) commit 068c227056b9223fea1a759e08db2558d5cbb5ad Author: Guenter Roeck Date: Mon Jul 20 09:47:33 2015 -0700 hwmon: (pmbus) Add support for VR12 Newer chips such as MAX20751 support VR12. Add support for it. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/pmbus.c | 1 + drivers/hwmon/pmbus/pmbus.h | 2 ++ drivers/hwmon/pmbus/pmbus_core.c | 16 ++++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) commit ead8080351c988b9c4bb5ec261d7b4c97ebb2773 Author: Justin Maggard Date: Wed Aug 5 12:53:08 2015 -0700 hwmon: (it87) Add support for IT8732F Add support for the IT8732F. This chip is pretty similar to IT8721F, with the main difference being that the ADC LSB is 10.9 mV instead of 12 mV. Signed-off-by: Justin Maggard Signed-off-by: Guenter Roeck Documentation/hwmon/it87 | 35 ++++++++++++++++++++++------------- drivers/hwmon/Kconfig | 4 ++-- drivers/hwmon/it87.c | 43 ++++++++++++++++++++++++++++++++++++------- 3 files changed, 60 insertions(+), 22 deletions(-) commit 1c6e8f6ba89c59270db223284d47e3c928c6fbfc Author: Constantine Shulyupin Date: Tue Jul 28 01:01:07 2015 +0300 hwmon: (nct7802) Add auto_point attributes Introduced REG_PWM, pwm[1..3]_auto_point[1..5]_temp, pwm[1..3]_auto_point[1..5]_pwm, nct7802_auto_point_attrs, nct7802_auto_point_group, updated nct7802_regmap_is_volatile Signed-off-by: Constantine Shulyupin Signed-off-by: Guenter Roeck Documentation/hwmon/nct7802 | 3 +- drivers/hwmon/nct7802.c | 130 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 127 insertions(+), 6 deletions(-) commit a1dc86ebd2f2eb6652c8be9311c16acccd1708f8 Author: Rabin Vincent Date: Sun Jul 19 00:29:14 2015 +0200 hwmon: (lm70) add device tree support Allow the lm70 to be probed from a device tree. Signed-off-by: Rabin Vincent Signed-off-by: Guenter Roeck Documentation/devicetree/bindings/hwmon/lm70.txt | 21 +++++++++++++++ drivers/hwmon/lm70.c | 34 +++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) commit aeaa4d9f812bfd841643b37f65c6b6597045be37 Author: Guenter Roeck Date: Mon Jun 8 11:01:50 2015 -0700 hwmon: (ltc2978) LTM4676 supports CLEAR_PEAKS Use the CLEAR_PEAKS command on LTM4676. Reviewed-by: Jean Delvare Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/ltc2978.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 68a403823600fc9d8277f930981d3a013353b2fe Author: Guenter Roeck Date: Tue Mar 17 13:19:51 2015 -0700 hwmon: (adm1275) Add support for ADM1293 and ADM1294 ADM1293 and ADM1294 are mostly compatible with other chips of the same series, but have more configuration options. There are also some differences in register details. Signed-off-by: Guenter Roeck Documentation/hwmon/adm1275 | 40 +++++++----- drivers/hwmon/pmbus/Kconfig | 4 +- drivers/hwmon/pmbus/adm1275.c | 141 +++++++++++++++++++++++++++++++++++++++--- 3 files changed, 158 insertions(+), 27 deletions(-) commit 48065a138acb8435c60739ffa62622d69f61b712 Author: Guenter Roeck Date: Sun Jul 5 13:45:43 2015 -0700 hwmon: (pmbus) Add support for lowest power value attributes Add support for powerX_input_lowest for both input and output power. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/pmbus.h | 50 +++++++++++++++++++++------------------- drivers/hwmon/pmbus/pmbus_core.c | 8 +++++++ 2 files changed, 34 insertions(+), 24 deletions(-) commit 9048539b7cd6ca99e03e6d9745779473349426f7 Author: Guenter Roeck Date: Sat Jul 4 10:09:54 2015 -0700 hwmon: (adm1275) Introduce new feature flags Introduce have_vout, have_vaux_status, have_pin_max, and have_uc_fault to simplify adding support for new chips. Also simplify error returns where appropriate to return immediately on error. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/adm1275.c | 97 ++++++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 43 deletions(-) commit 904b296f308dc70d5560a2b4311bbe255de12fd7 Author: Guenter Roeck Date: Sat Jul 4 08:39:18 2015 -0700 hwmon: (adm1275) Introduce configuration data structure for coeffcients Each new chip supported by the driver has a new set of coefficients, making hard-coding coefficients more and more cumbersome. Introduce a datastructure and table to simplify configuration. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/adm1275.c | 113 +++++++++++++++++++++++++----------------- 1 file changed, 68 insertions(+), 45 deletions(-) commit 99b416085ce99b03b8be63d6ba8872902e9809ae Author: Guenter Roeck Date: Sat Jul 4 09:19:48 2015 -0700 hwmon: (adm1275) Use BIT macro Use BIT macro to simplify adding new bit masks. Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/adm1275.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit a07d73113febf0e17299338b9a6401955fe63b14 Author: Axel Lin Date: Fri Jul 10 13:00:08 2015 +0800 hwmon: (pmbus_core) Constify pmbus_regulator_ops pmbus_regulator_ops is not modified after initialized, so make it const. Signed-off-by: Axel Lin Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/pmbus.h | 2 +- drivers/hwmon/pmbus/pmbus_core.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7b7a8b4237a0d7808df5aa12f49f7979f879cf12 Author: Axel Lin Date: Fri Jul 10 12:59:13 2015 +0800 hwmon: (pmbus) Explicitly set regulator type for pmbus_regulator_ops The pmbus_regulator_ops is for voltage regulators, so explicitly set regulator type for better readability. Signed-off-by: Axel Lin Signed-off-by: Guenter Roeck drivers/hwmon/pmbus/pmbus.h | 1 + 1 file changed, 1 insertion(+) commit d4068a59277d0ad5374f71163d45599d589bd617 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:51:32 2015 +0900 hwmon: (g762) Drop owner assignment from struct 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: Guenter Roeck drivers/hwmon/g762.c | 1 - 1 file changed, 1 deletion(-) commit d8363bb5ad4ff3986c03c6895cc74e2a30041aee Author: George Joseph Date: Tue Jul 7 19:16:53 2015 -0600 hwmon: (f71882fg) Add support for f81768d Add f81768d (id 0x1210) currently found on Jetway motherboards. It has 11 voltages but otherwise needed no special handling in this driver. Signed-off-by: George Joseph Signed-off-by: Guenter Roeck drivers/hwmon/f71882fg.c | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) commit 5102f022688ccd59b1fe4efc8a46ec3aca02dfc5 Author: Constantine Shulyupin Date: Wed Jul 8 00:40:10 2015 +0300 hwmon: (nct7802) Add pwmX_enable attribute Introduced REG_SMARTFAN_EN, SMARTFAN_EN_SHIFT, pwmX_enable, show_pwm_enable, store_pwm_enable. Signed-off-by: Constantine Shulyupin Signed-off-by: Guenter Roeck drivers/hwmon/nct7802.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit 3e40b8602aa5309e0b117701c36971367af40682 Author: Peter Hung Date: Tue Jul 7 16:22:38 2015 +0800 hwmon:(f71882fg) Fix f81866a voltage protection The f81866a voltage-1 protector(VIN1) address is differ from f71882. f71882 status:12H, beep:13H, v-high:32H f81866a status:16H, beep:17H, v-high:3aH Signed-off-by: Peter Hung Signed-off-by: Guenter Roeck drivers/hwmon/f71882fg.c | 50 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 9 deletions(-) commit dcd956fc0b01135e6a00922165e653178d2b177b Author: Peter Hung Date: Tue Jul 7 16:22:37 2015 +0800 hwmon: (f71882fg) Fix f81866a temp/beep setting The temperature value of Fintek F81866 is the same with f71882fg. It located with 0x6c + 2*(nr), others located with 0x6c + 2*(nr+1). We change the rule in f71882fg_probe(), If type = f71858fg/f8000/f81866a. the temp_start will set to 0, others are 1. The F81866 over-temperature beep setting is not the same with f71882fg too. They are using the same address 63H, but F81866 is using bit 0/1/2 & 4/5/6, others are using bit 1/2/3 & 5/6/7, So we copy from fxxxx_temp_beep_attr[] to f81866_temp_beep_attr and change bit setting. Signed-off-by: Peter Hung Signed-off-by: Guenter Roeck drivers/hwmon/f71882fg.c | 60 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 8 deletions(-) commit 2725fe2b74e264a649af72beaaf6cc2c2e1f3495 Author: Peter Hung Date: Tue Jul 7 16:22:36 2015 +0800 hwmon: (f71882fg) Add support for F81866 and F71868 Add New Fintek SuperIO F81866(0x1010) & F71868(0x1106) with H/W Monitor functions. We increased F71882FG_MAX_INS from 9 to 10 to read F71868 10 voltage sets. Signed-off-by: Peter Hung Signed-off-by: Guenter Roeck drivers/hwmon/f71882fg.c | 53 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 15 deletions(-) commit 876420e05a0fda4801c0a0de67e9bbe9831dffee Author: Constantine Shulyupin Date: Sun Jul 5 01:41:31 2015 +0300 hwmon: (nct7802) Add pwm mode attributes Introduced: show_pwm_mode, pwm1_mode, pwm2_mode, pwm2_mode Signed-off-by: Guenter Roeck drivers/hwmon/nct7802.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit ea33597c6f9862d7b926bdb9c3ac25012f307dd5 Author: Constantine Shulyupin Date: Sat Jul 4 21:49:51 2015 +0300 hwmon: (nct7802) Add pwm control Added fan output control registers. Modes of operation are PWM (default) and DC. Introduced show_pwm, store_pwm, nct7802_pwm_attrs, nct7802_pwm_group. Signed-off-by: Guenter Roeck drivers/hwmon/nct7802.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit fcdc5739dce03d8050ebfa7153412c2efcdee94f Author: Constantine Shulyupin Date: Wed Jul 1 09:52:23 2015 +0300 hwmon: (nct7802) add temperature sensor type attribute Sensor type: 3 diode (current mode), MD=1 4 thermistor, MD=2 Reference: Nuvoton Hardware Monitoring IC NCT7802Y 7.2.32 Mode Selection Register Location : Index 22h Signed-off-by: Constantine Shulyupin Signed-off-by: Guenter Roeck drivers/hwmon/nct7802.c | 72 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 12 deletions(-) commit b179b037e568a27ab3e8f5bedea1f4455aba7378 Author: Stefan Haberland Date: Fri Aug 7 13:20:16 2015 +0200 s390/dasd: enhance CUIR scope detection This patch adds an enhanced detection for control unit initiated reconfiguration request scope. The first approach assumed the scope of the reconfiguration request to be restricted to the path on which the message was received. The enhanced approach determines the full scope of the reconfiguration request by evaluating additional path and device selection information contained in the reconfiguration message. Reviewed-by: Peter Oberparleiter Reviewed-by: Sebastian Ott Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd_eckd.c | 323 +++++++++++++++++++++++++++++++---------- drivers/s390/block/dasd_eckd.h | 11 +- 2 files changed, 255 insertions(+), 79 deletions(-) commit 1eb38023ddb480276c6b75e0db6463c47251eb7b Author: Stefan Haberland Date: Fri Aug 7 13:19:03 2015 +0200 s390/dasd: fix failing path verification DASD path verification requires the usage of sleep_on_immediatly to ensure that no other I/O request is blocking the recovery of disconnected devices. But two concurrent path verification workers for the same device may kill each others requests due to the usage of the immediate sleep_on function. This may lead to unsuccessful path verifications. Prevent that two parallel path verification workers conflict with each other by implementing a device flag signalling a already running worker. Signed-off-by: Stefan Haberland Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd_eckd.c | 8 ++++++-- drivers/s390/block/dasd_int.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) commit 46cd28555ffaa40162290dba203daad0ff6f7abd Merge: da2f0f7 e33e17e Author: Chris Mason Date: Sun Aug 9 07:35:33 2015 -0700 Merge branch 'jeffm-discard-4.3' into for-linus-4.3 commit da2f0f74cf7d074e5a8918c8efdf6aba4a989b4a Author: Chris Mason Date: Thu Jul 2 13:57:22 2015 -0700 Btrfs: add support for blkio controllers This attaches accounting information to bios as we submit them so the new blkio controllers can throttle on btrfs filesystems. Not much is required, we're just associating bios with blkcgs during clone, calling wbc_init_bio()/wbc_account_io() during writepages submission, and attaching the bios to the current context during direct IO. Finally if we are splitting bios during btrfs_map_bio, this attaches accounting information to the split. The end result is able to throttle nicely on single disk filesystems. A little more work is required for multi-device filesystems. Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 1 + fs/btrfs/extent_io.c | 16 +++++++++++++--- fs/btrfs/inode.c | 6 +++++- fs/btrfs/super.c | 1 + fs/btrfs/volumes.c | 8 ++++++++ 5 files changed, 28 insertions(+), 4 deletions(-) commit a4027a20c57a2c8779e17a61425737634bb7163d Author: Byongho Lee Date: Fri Jul 10 13:10:26 2015 +0900 Btrfs: remove unused mutex from struct 'btrfs_fs_info' The code using 'ordered_extent_flush_mutex' mutex has removed by below commit. - 8d875f95da43c6a8f18f77869f2ef26e9594fecc btrfs: disable strict file flushes for renames and truncates But the mutex still lives in struct 'btrfs_fs_info'. So, this patch removes the mutex from struct 'btrfs_fs_info' and its initialization code. Signed-off-by: Byongho Lee Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ctree.h | 6 ------ fs/btrfs/disk-io.c | 1 - 2 files changed, 7 deletions(-) commit 4a770891d9ddf94df985ca438e78d355b8469247 Author: Omar Sandoval Date: Fri Jun 19 11:52:52 2015 -0700 Btrfs: fix parity scrub of RAID 5/6 with missing device When testing the previous patch, Zhao Lei reported a similar bug when attempting to scrub a degraded RAID 5/6 filesystem with a missing device, leading to NULL pointer dereferences from the RAID 5/6 parity scrubbing code. The first cause was the same as in the previous patch: attempting to call bio_add_page() on a missing block device. To fix this, scrub_extent_for_parity() can just mark the sectors on the missing device as errors instead of attempting to read from it. Additionally, the code uses scrub_remap_extent() to map the extent of the corresponding data stripe, but the extent wasn't already mapped. If scrub_remap_extent() finds a missing block device, it doesn't initialize extent_dev, so we're left with a NULL struct btrfs_device. The solution is to use btrfs_map_block() directly. Reported-by: Zhao Lei Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/scrub.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) commit 73ff61dbe5edeb1799d7e91c8b0641f87feb75fa Author: Omar Sandoval Date: Fri Jun 19 11:52:51 2015 -0700 Btrfs: fix device replace of a missing RAID 5/6 device The original implementation of device replace on RAID 5/6 seems to have missed support for replacing a missing device. When this is attempted, we end up calling bio_add_page() on a bio with a NULL ->bi_bdev, which crashes when we try to dereference it. This happens because btrfs_map_block() has no choice but to return us the missing device because RAID 5/6 don't have any alternate mirrors to read from, and a missing device has a NULL bdev. The idea implemented here is to handle the missing device case separately, which better only happen when we're replacing a missing RAID 5/6 device. We use the new BTRFS_RBIO_REBUILD_MISSING operation to reconstruct the data from parity, check it with scrub_recheck_block_checksum(), and write it out with scrub_write_block_to_dev_replace(). Reported-by: Philip Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96141 Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/scrub.c | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 147 insertions(+), 10 deletions(-) commit b4ee1782686d5b7a97826d67fdeaefaedbca23ce Author: Omar Sandoval Date: Fri Jun 19 11:52:50 2015 -0700 Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operation The current RAID 5/6 recovery code isn't quite prepared to handle missing devices. In particular, it expects a bio that we previously attempted to use in the read path, meaning that it has valid pages allocated. However, missing devices have a NULL blkdev, and we can't call bio_add_page() on a bio with a NULL blkdev. We could do manual manipulation of bio->bi_io_vec, but that's pretty gross. So instead, add a separate path that allows us to manually add pages to the rbio. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/raid56.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++------- fs/btrfs/raid56.h | 10 +++++-- fs/btrfs/scrub.c | 3 +- 3 files changed, 86 insertions(+), 14 deletions(-) commit 7cb2c4202ed5730ecbf13c5d34c2cadff4cbe88f Author: Omar Sandoval Date: Fri Jun 19 11:52:49 2015 -0700 Btrfs: count devices correctly in readahead during RAID 5/6 replace Commit 5fbc7c59fd22 ("Btrfs: fix unfinished readahead thread for raid5/6 degraded mounting") fixed a problem where we would skip a missing device when we shouldn't have because there are no other mirrors to read from in RAID 5/6. After commit 2c8cdd6ee4e7 ("Btrfs, replace: write dirty pages into the replace target device"), the fix doesn't work when we're doing a missing device replace on RAID 5/6 because the replace device is counted as a mirror so we're tricked into thinking we can safely skip the missing device. The fix is to count only the real stripes and decide based on that. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/reada.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 03679ade86b2b1c370c8790f1ffcbcdef6d49f9f Author: Omar Sandoval Date: Fri Jun 19 11:52:48 2015 -0700 Btrfs: remove misleading handling of missing device scrub scrub_submit() claims that it can handle a bio with a NULL block device, but this is misleading, as calling bio_add_page() on a bio with a NULL ->bi_bdev would've already crashed. Delete this, as we're about to properly handle a missing block device. Signed-off-by: Omar Sandoval Signed-off-by: Chris Mason fs/btrfs/scrub.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) commit 293a8489f300536dc6d996c35a6ebb89aa03bab2 Author: Mark Fasheh Date: Tue Jun 30 14:42:06 2015 -0700 btrfs: fix clone / extent-same deadlocks Clone and extent same lock their source and target inodes in opposite order. In addition to this, the range locking in clone doesn't take ordering into account. Fix this by having clone use the same locking helpers as btrfs-extent-same. In addition, I do a small cleanup of the locking helpers, removing a case (both inodes being the same) which was poorly accounted for and never actually used by the callers. Signed-off-by: Mark Fasheh Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) commit 4a3560c4f3f0f92d3b673944753e3e947e030bc4 Author: Liu Bo Date: Fri Aug 7 16:48:41 2015 +0800 Btrfs: fix defrag to merge tail file extent The file layout is [extent 1]...[extent n][4k extent][HOLE][extent x] extent 1~n and 4k extent can be merged during defrag, and the whole defrag bytes is larger than our defrag thresh(256k), 4k extent as a tail is left unmerged since we check if its next extent can be merged (the next one is a hole, so the check will fail), the layout thus can be [new extent][4k extent][HOLE][extent x] (1~n) To fix it, beside looking at the next one, this also looks at the previous one by checking @defrag_end, which is set to 0 when we decide to stop merging contiguous extents, otherwise, we can merge the previous one with our extent. Also, this makes btrfs behave consistent with how xfs and ext4 do. Signed-off-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit acdf898de8903f50bb10bbce4b774432bcd63c85 Author: Liu Bo Date: Tue Jul 28 18:03:30 2015 +0800 Btrfs: fix warning in backref walking When we do backref walking, we search firstly in queued delayed refs and then the on-disk backrefs, but we parse differently for shared references, for delayed refs we also add 'ref->root' while for on-disk backrefs we don't, this can prevent us from merging refs indexed by the same bytenr and cause find_parent_nodes() to throw a warning at 'WARN_ON(ref->count < 0)', for example, when we have a shared data extent with 'ref_cnt=1' and a delayed shared data with a BTRFS_DROP_DELAYED_REF, that happens. For shared references, no matter if it's delayed or on-disk, ref->root is not at all used, instead it's ref->parent that really matters, so this has delayed refs handled as the same way as on-disk refs. Signed-off-by: Liu Bo Signed-off-by: Chris Mason fs/btrfs/backref.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 166f66d0bc94a14ec4bc6ee6ab079532df4a8d9e Author: Zhaolei Date: Thu Aug 6 22:39:36 2015 +0800 btrfs: Add WARN_ON() for double lock in btrfs_tree_lock() When a task trying to double lock a extent buffer, there are no lockdep warning about it because this lock may be in "blocking_lock" state, and make us hard to debug. This patch add a WARN_ON() for above condition, it can not report all deadlock cases(as lock between tasks), but at least helps us some. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/locking.c | 1 + 1 file changed, 1 insertion(+) commit 9ed0dea09fc5e8cb1926c15fc986a46a2db43da6 Author: Zhaolei Date: Thu Aug 6 22:16:24 2015 +0800 btrfs: Remove root argument in extent_data_ref_count() Because it is never used. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit d02207512df120a37a8f1e50a5f90c555266282c Author: Zhaolei Date: Thu Aug 6 22:16:23 2015 +0800 btrfs: Fix wrong comment of btrfs_alloc_tree_block() These wrong comment was copyed from another function(expired) from init, this patch fixed them. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 3 --- 1 file changed, 3 deletions(-) commit 93314e3b64fd2e77237fdba7cfcc0d38dcd05579 Author: Zhaolei Date: Thu Aug 6 21:56:58 2015 +0800 btrfs: abort transaction on btrfs_reloc_cow_block() When btrfs_reloc_cow_block() failed in __btrfs_cow_block(), current code just return a err-value to caller, but leave new_created extent buffer exist and locked. Then subsequent code (in relocate) try to lock above eb again, and caused deadlock without any dmesg. (eb lock use wait_event(), so no lockdep message) It is hard to do recover work in __btrfs_cow_block() at this error point, but we can abort transaction to avoid deadlock and operate on unstable state.a It also helps developer to find wrong place quickly. (better than a frozen fs without any dmesg before patch) Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/ctree.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 147d256e0980e31505d25d721be979d6a8d2148c Author: Zhaolei Date: Thu Aug 6 20:58:11 2015 +0800 btrfs: Remove unnecessary variants in relocation.c These arguments are not used in functions, remove them for cleanup and make kernel stack happy. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/ctree.h | 3 +-- fs/btrfs/relocation.c | 13 +++++-------- fs/btrfs/transaction.c | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) commit dc2ee4e244138124a05cdc39365b38d4cc77e3fa Author: Zhaolei Date: Wed Aug 5 18:00:04 2015 +0800 btrfs: Cleanup: Remove chunk_objectid argument from btrfs_relocate_chunk() Remove chunk_objectid argument from btrfs_relocate_chunk() because it is not necessary, it can also cleanup some code in caller for prepare its value. Signed-off-by: Zhao Lei Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/volumes.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 4624900dd353488479a12abf8dffe2c1786cdb89 Author: Zhaolei Date: Wed Aug 5 18:00:03 2015 +0800 btrfs: Cleanup: Remove objectid's init-value in create_reloc_inode() objectid's init-value is not used in any case, remove it. Signed-off-by: Zhao Lei Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/relocation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b3576e450a1539492e26e2d7b1e2e69578c032e Author: Zhaolei Date: Wed Aug 5 18:00:02 2015 +0800 btrfs: Error handle for get_ref_objectid_v0() in relocate_block_group() We need error checking code for get_ref_objectid_v0() in relocate_block_group(), to avoid unpredictable result, especially for accessing uninitialized value(when function failed) after this line. Signed-off-by: Zhao Lei Reviewed-by: David Sterba Signed-off-by: Chris Mason fs/btrfs/relocation.c | 4 ++++ 1 file changed, 4 insertions(+) commit 55e3a601c81cdca4497bf855fa4d331f8e830744 Author: Zhaolei Date: Wed Aug 5 16:43:30 2015 +0800 btrfs: Fix data checksum error cause by replace with io-load. xfstests btrfs/070 sometimes failed. In my test machine, its fail rate is about 30%. In another vm(vmware), its fail rate is about 50%. Reason: btrfs/070 do replace and defrag with fsstress simultaneously, after above operation, checksum error is found by scrub. Actually, it have no relationship with defrag operation, only replace with fsstress can trigger this bug. New data writen to target device have possibility rewrited by old data from source device by replace code in debug, to avoid above problem, we can set target block group to readonly in replace period, so new data requested by other operation will not write to same place with replace code. Before patch(4.1-rc3): 30% failed in 100 xfstests. After patch: 0% failed in 300 xfstests. It also happened in btrfs/071 as it's another scrub with IO load tests. Reported-by: Qu Wenruo Signed-off-by: Qu Wenruo Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 34 +++++++++++++++++++++++++++------- fs/btrfs/volumes.c | 2 ++ 2 files changed, 29 insertions(+), 7 deletions(-) commit b708ce969af3ceadca18aac5bffe48fe977473b1 Author: Zhaolei Date: Wed Aug 5 16:43:29 2015 +0800 btrfs: use scrub_pause_on/off() to reduce code in scrub_enumerate_chunks() Use new intruduced scrub_pause_on/off() can make this code block clean and more readable. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 0e22be890ef385de6816ec87a8a41c0b0f4a7a23 Author: Zhaolei Date: Wed Aug 5 16:43:28 2015 +0800 btrfs: Separate scrub_blocked_if_needed() to scrub_pause_on/off() It can reduce current duplicated code which is similar to scrub_blocked_if_needed() but can not call it because little different. It also used by my next patch which is in same case. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 868f401ae38acb439005626c04d575e64c5ae760 Author: Zhaolei Date: Wed Aug 5 16:43:27 2015 +0800 btrfs: Use ref_cnt for set_block_group_ro() More than one code call set_block_group_ro() and restore rw in fail. Old code use bool bit to save blockgroup's ro state, it can not support parallel case(it is confirmd exist in my debug log). This patch use ref count to store ro state, and rename set_block_group_ro/set_block_group_rw to inc_block_group_ro/dec_block_group_ro. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/ctree.h | 6 +++--- fs/btrfs/extent-tree.c | 42 +++++++++++++++++++++--------------------- fs/btrfs/relocation.c | 14 ++++++-------- 3 files changed, 30 insertions(+), 32 deletions(-) commit d7cad2389560f3249435ac928bc13e9408ae467e Author: Zhao Lei Date: Wed Jul 22 13:14:48 2015 +0800 btrfs: Bypass unrelated items before accessing its contents in scrub When we access extent_root in scrub_stripe() and scrub_raid56_parity(), we need bypass unrelated tree item firstly before using its contents to do other condition. It is not a bug fix, only making code sequence in logic. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit fe8cf654b1ccf7f0b49cc0de9e6ad8a56529e384 Author: Zhao Lei Date: Wed Jul 22 13:14:47 2015 +0800 btrfs: Load only necessary csums into list in scrub We need not load csum of whole strip in scrub because strip is trimed before use, it is to say, what we really need to calculate csum is data between [extent_logical, extent_len). This patch changed to use above segment for btrfs_lookup_csums_range() in scrub_stripe() Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit a0dd59de3c73fbb3b738eaf333732f2f27254a2c Author: Zhao Lei Date: Tue Jul 21 15:42:26 2015 +0800 btrfs: Fix calculate typo caused by ambiguous meaning of logic_end For example, in scrub_raid56_parity(), following lines are used to judge is all data processed: place1: if (key.objectid > logic_end) ... place2: if (logic_start >= logic_end) ... ... (place2 is typo, is should be ">", it is copied from other place, where logic_end's meaning is different, long story...) We can fix above typo directly, but the root reason is ambiguous meaning of logic_end in scrub raid56 parity. In other place, XXX_end is pointed to data which is not included, and we need to process segment of [XXX_start, XXX_end). But for scrub raid56 parity, logic_end is pointed to lattest data need to process, and introduced many "+ 1" and "- 1" in code as below: length = sparity->logic_end - sparity->logic_start + 1 logic_end - logic_start + 1 stripe_logical + increment - 1 This patch changed logic_end's meaning to make it in normal understanding in raid56 parity functions and data struct alone with above bugfix. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6fa96d72f79a15579da2bb63c65cafb210915b48 Author: Zhao Lei Date: Tue Jul 21 12:22:30 2015 +0800 btrfs: Free checksum list on scrub_extent() fail When scrub_extent() failed, we need to free previois created checksum list. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit f2f66a2f886383fb76aca8ecc1bcc116c5d1f6fe Author: Zhao Lei Date: Tue Jul 21 12:22:29 2015 +0800 btrfs: Check cancel and pause in interval of scrub operation Old code checking cancel and pause request inside scrub stripe operation, like: loop() { if (parity) { scrub_parity_stripe(); continue; } check_cancel_and_pause() scrub_normal_stripe(); } Reason is when introduce raid56 stripe scrub, new code is inserted simplely to front of loop. Better to: loop() { check_cancel_and_pause() if (parity) scrub_parity_stripe(); else scrub_normal_stripe(); } This patch adjusted code place to realize above sequence. Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit 78fa177029802f7f10953d357067171f39a79b81 Author: Zhao Lei Date: Mon Jul 20 17:54:50 2015 +0800 btrfs: Show detail information when mount failed on missing devices When mount failed because missing device, we can see following dmesg: [ 1060.267743] BTRFS: too many missing devices, writeable mount is not allowed [ 1060.273158] BTRFS: open_ctree failed This patch add missing_device_number and tolerated_missing_device_number to above output, to let user know what really happened, and helps bug-report and debug. dmesg after patch: [ 127.050367] BTRFS: missing devices(1) exceeds the limit(0), writeable mount is not allowed [ 127.056099] BTRFS: open_ctree failed Changelog v1->v2: 1: Changed to more clear description, suggested-by: Anand Jain Suggested-by: Anand Jain Signed-off-by: Zhao Lei Reviewed-by: Anand Jain Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit a323e8139c3617b2bf975317725d0fd962886d06 Author: Zhao Lei Date: Thu Jul 23 12:29:49 2015 +0800 btrfs: Fix scrub panic when leaf crosses stripes Scrub panic in following operation: mkfs.ext4 /dev/vdh btrfs-convert /dev/vdh mount /dev/vdh /mnt/tmp1 btrfs scrub start -B /dev/vdh (panic) Reason: 1: In some case, leaf created by btrfs-convert was splited into 2 strips. 2: Scrub bypassed part of above wrong leaf data, but remain data caused panic in scrub_checksum_tree_block(). For reason 1: we can get following information after some simple operation. a. mkfs.ext4 /dev/vdh btrfs-convert /dev/vdh b. btrfs-debug-tree /dev/vdh we can see following item in extent tree: item 25 key (27054080 METADATA_ITEM 0) itemoff 15083 itemsize 33 Its logical address is [27054080, 27070464) and acrossed 2 strips: [27000832, 27066368) [27066368, 27131904) Will be fixed in btrfs-progs(btrfs-convert, btrfsck, ...) For reason 2: Scrub is trying to do a "bypass" in this case, but the result is "panic", because current code lacks of some condition in bypass, and let some wrong leaf data escaped. This patch fixed above scrub code. Before patch: # btrfs scrub start -B /dev/vdh (panic) After patch: # btrfs scrub start -B /dev/vdh scrub done for 353cec8f-da31-4a94-aa35-be72d997b06e ... # dmesg ... [ 59.088697] BTRFS error (device vdh): scrub: tree block 27054080 spanning stripes, ignored. logical=27000832 [ 59.089929] BTRFS error (device vdh): scrub: tree block 27054080 spanning stripes, ignored. logical=27066368 # Reported-by: Chris Murphy Signed-off-by: Zhao Lei Signed-off-by: Chris Mason fs/btrfs/scrub.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 18aa09229741364280d0a1670597b5207fc05b8d Author: Filipe Manana Date: Wed Aug 5 16:49:08 2015 +0100 Btrfs: fix stale dir entries after removing a link and fsync We have one more case where after a log tree is replayed we get inconsistent metadata leading to stale directory entries, due to some directories having entries pointing to some inode while the inode does not have a matching BTRFS_INODE_[REF|EXTREF]_KEY item. To trigger the problem we need to have a file with multiple hard links belonging to different parent directories. Then if one of those hard links is removed and we fsync the file using one of its other links that belongs to a different parent directory, we end up not logging the fact that the removed hard link doesn't exists anymore in the parent directory. Simple reproducer: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { _cleanup_flakey rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _need_to_be_root _supported_fs generic _supported_os Linux _require_scratch _require_dm_flakey _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey # Create our test directory and file. mkdir $SCRATCH_MNT/testdir touch $SCRATCH_MNT/foo ln $SCRATCH_MNT/foo $SCRATCH_MNT/testdir/foo2 ln $SCRATCH_MNT/foo $SCRATCH_MNT/testdir/foo3 # Make sure everything done so far is durably persisted. sync # Now we remove one of our file's hardlinks in the directory testdir. unlink $SCRATCH_MNT/testdir/foo3 # We now fsync our file using the "foo" link, which has a parent that # is not the directory "testdir". $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo # Silently drop all writes and unmount to simulate a crash/power # failure. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again, mount to trigger journal/log replay. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey # After the journal/log is replayed we expect to not see the "foo3" # link anymore and we should be able to remove all names in the # directory "testdir" and then remove it (no stale directory entries # left after the journal/log replay). echo "Entries in testdir:" ls -1 $SCRATCH_MNT/testdir rm -f $SCRATCH_MNT/testdir/* rmdir $SCRATCH_MNT/testdir _unmount_flakey status=0 exit The test fails with: $ ./check generic/107 FSTYP -- btrfs PLATFORM -- Linux/x86_64 debian3 4.1.0-rc6-btrfs-next-11+ MKFS_OPTIONS -- /dev/sdc MOUNT_OPTIONS -- /dev/sdc /home/fdmanana/btrfs-tests/scratch_1 generic/107 3s ... - output mismatch (see .../results/generic/107.out.bad) --- tests/generic/107.out 2015-08-01 01:39:45.807462161 +0100 +++ /home/fdmanana/git/hub/xfstests/results//generic/107.out.bad @@ -1,3 +1,5 @@ QA output created by 107 Entries in testdir: foo2 +foo3 +rmdir: failed to remove '/home/fdmanana/btrfs-tests/scratch_1/testdir': Directory not empty ... _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent \ (see /home/fdmanana/git/hub/xfstests/results//generic/107.full) _check_dmesg: something found in dmesg (see .../results/generic/107.dmesg) Ran: generic/107 Failures: generic/107 Failed 1 of 1 tests $ cat /home/fdmanana/git/hub/xfstests/results//generic/107.full (...) checking fs roots root 5 inode 257 errors 200, dir isize wrong unresolved ref dir 257 index 3 namelen 4 name foo3 filetype 1 errors 5, no dir item, no inode ref (...) And produces the following warning in dmesg: [127298.759064] BTRFS info (device dm-0): failed to delete reference to foo3, inode 258 parent 257 [127298.762081] ------------[ cut here ]------------ [127298.763311] WARNING: CPU: 10 PID: 7891 at fs/btrfs/inode.c:3956 __btrfs_unlink_inode+0x182/0x35a [btrfs]() [127298.767327] BTRFS: Transaction aborted (error -2) (...) [127298.788611] Call Trace: [127298.789137] [] dump_stack+0x4f/0x7b [127298.790090] [] ? console_unlock+0x356/0x3a2 [127298.791157] [] warn_slowpath_common+0xa1/0xbb [127298.792323] [] ? __btrfs_unlink_inode+0x182/0x35a [btrfs] [127298.793633] [] warn_slowpath_fmt+0x46/0x48 [127298.794699] [] __btrfs_unlink_inode+0x182/0x35a [btrfs] [127298.797640] [] btrfs_unlink_inode+0x1e/0x40 [btrfs] [127298.798876] [] btrfs_unlink+0x60/0x9b [btrfs] [127298.800154] [] vfs_unlink+0x9c/0xed [127298.801303] [] do_unlinkat+0x12b/0x1fb [127298.802450] [] ? lockdep_sys_exit_thunk+0x12/0x14 [127298.803797] [] SyS_unlinkat+0x29/0x2b [127298.805017] [] system_call_fastpath+0x12/0x6f [127298.806310] ---[ end trace bbfddacb7aaada7b ]--- [127298.807325] BTRFS warning (device dm-0): __btrfs_unlink_inode:3956: Aborting unused transaction(No such entry). So fix this by logging all parent inodes, current and old ones, to make sure we do not get stale entries after log replay. This is not a simple solution such as triggering a full transaction commit because it would imply full transaction commit when an inode is fsynced in the same transaction that modified it and reloaded it after eviction (because its last_unlink_trans is set to the same value as its last_trans as of the commit with the title "Btrfs: fix stale dir entries after unlink, inode eviction and fsync"), and it would also make fstest generic/066 fail since one of the fsyncs triggers a full commit and the next fsync will not find the inode in the log anymore (therefore not removing the xattr). Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 158 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 138 insertions(+), 20 deletions(-) commit dd81d459a37d73cfa39896bd070e7b92e66e3628 Author: Naohiro Aota Date: Tue Jun 30 11:25:43 2015 +0900 btrfs: fix search key advancing condition The search key advancing condition used in copy_to_sk() is loose. It can advance the key even if it reaches sk->max_*: e.g. when the max key = (512, 1024, -1) and the current key = (512, 1025, 10), it increments the offset by 1, continues hopeless search from (512, 1025, 11). This issue make ioctl() to take unexpectedly long time scanning all the leaf a blocks one by one. This commit fix the problem using standard way of key comparison: btrfs_comp_cpu_keys() Signed-off-by: Naohiro Aota Reviewed-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ioctl.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit d6589101b67a55107652050dfbf414403a93e351 Author: Filipe Manana Date: Wed Jul 29 17:21:17 2015 +0100 Btrfs: teach backref walking about backrefs with underflowed offset values When cloning/deduplicating file extents (through the clone and extent_same ioctls) we can get data back references with offset values that are a result of an unsigned integer arithmetic underflow, that is, values that are much larger then they could be otherwise. This is not a problem when decrementing or dropping the back references (happens when we overwrite the extents or punch a hole for example, through __btrfs_drop_extents()), since we compute the same too large offset value, but it is a problem for the backref walking code, used by an incremental send and the ioctls that are used by the btrfs tool "inspect-internal" commands, as it makes it miss the corresponding file extent items because the search key is set for an extent item that starts at an offset matching the exceptionally large offset value of the data back reference. For an incremental send this causes the send ioctl to fail with -EIO. So teach the backref walking code to deal with these cases by setting the search key's offset to 0 if the backref's offset value is larger than LLONG_MAX (the largest possible file offset). This makes sure the backref walking code finds the corresponding file extent items at the expense of scanning more items and leafs in the btree. Fixing the clone/dedup ioctls to not produce such underflowed results would require major changes breaking backward compatibility, updating user space tools, etc. Simple reproducer case for fstests: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { rm -fr $send_files_dir rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _supported_fs btrfs _supported_os Linux _require_scratch _require_cloner _need_to_be_root send_files_dir=$TEST_DIR/btrfs-test-$seq rm -f $seqres.full rm -fr $send_files_dir mkdir $send_files_dir _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount # Create our test file with a single extent of 64K starting at file # offset 128K. $XFS_IO_PROG -f -c "pwrite -S 0xaa 128K 64K" $SCRATCH_MNT/foo \ | _filter_xfs_io _run_btrfs_util_prog subvolume snapshot -r $SCRATCH_MNT \ $SCRATCH_MNT/mysnap1 # Now clone parts of the original extent into lower offsets of the file. # # The first clone operation adds a file extent item to file offset 0 # that points to our initial extent with a data offset of 16K. The # corresponding data back reference in the extent tree has an offset of # 18446744073709535232, which is the result of file_offset - data_offset # = 0 - 16K. # # The second clone operation adds a file extent item to file offset 16K # that points to our initial extent with a data offset of 48K. The # corresponding data back reference in the extent tree has an offset of # 18446744073709518848, which is the result of file_offset - data_offset # = 16K - 48K. # # Those large back reference offsets (result of unsigned arithmetic # underflow) confused the back reference walking code (used by an # incremental send and the multiple inspect-internal ioctls) and made it # miss the back references, which for the case of an incremental send it # made it fail with -EIO and print a message like the following to # dmesg: # # "BTRFS error (device sdc): did not find backref in send_root. \ # inode=257, offset=0, disk_byte=12845056 found extent=12845056" # $CLONER_PROG -s $(((128 + 16) * 1024)) -d 0 -l $((16 * 1024)) \ $SCRATCH_MNT/foo $SCRATCH_MNT/foo $CLONER_PROG -s $(((128 + 48) * 1024)) -d $((16 * 1024)) \ -l $((16 * 1024)) $SCRATCH_MNT/foo $SCRATCH_MNT/foo _run_btrfs_util_prog subvolume snapshot -r $SCRATCH_MNT \ $SCRATCH_MNT/mysnap2 _run_btrfs_util_prog send $SCRATCH_MNT/mysnap1 -f $send_files_dir/1.snap _run_btrfs_util_prog send -p $SCRATCH_MNT/mysnap1 $SCRATCH_MNT/mysnap2 \ -f $send_files_dir/2.snap echo "File digest in the original filesystem:" md5sum $SCRATCH_MNT/mysnap2/foo | _filter_scratch # Now recreate the filesystem by receiving both send streams and verify # we get the same file contents that the original filesystem had. _scratch_unmount _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount _run_btrfs_util_prog receive $SCRATCH_MNT -f $send_files_dir/1.snap _run_btrfs_util_prog receive $SCRATCH_MNT -f $send_files_dir/2.snap echo "File digest in the new filesystem:" md5sum $SCRATCH_MNT/mysnap2/foo | _filter_scratch status=0 exit The test's expected golden output is: wrote 65536/65536 bytes at offset 131072 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) File digest in the original filesystem: 6c6079335cff141b8a31233ead04cbff SCRATCH_MNT/mysnap2/foo File digest in the new filesystem: 6c6079335cff141b8a31233ead04cbff SCRATCH_MNT/mysnap2/foo But it failed with: (...) @@ -1,7 +1,5 @@ QA output created by 097 wrote 65536/65536 bytes at offset 131072 XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) -File digest in the original filesystem: -6c6079335cff141b8a31233ead04cbff SCRATCH_MNT/mysnap2/foo -File digest in the new filesystem: -6c6079335cff141b8a31233ead04cbff SCRATCH_MNT/mysnap2/foo ... $ cat /home/fdmanana/git/hub/xfstests/results//btrfs/097.full (...) ERROR: send ioctl failed with -5: Input/output error Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/backref.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit bde6c242027b0f1d697d5333950b3a05761d40e4 Author: Filipe Manana Date: Fri Jul 24 00:00:19 2015 +0100 Btrfs: fix stale dir entries after unlink, inode eviction and fsync If we remove a hard link from an inode, the inode gets evicted, then we fsync the inode and then power fail/crash, when the log tree is replayed, the parent directory inode still has entries pointing to the name that no longer exists, while our inode no longer has the BTRFS_INODE_REF_KEY item matching the deleted hard link (as expected), leaving the filesystem in an inconsistent state. The stale directory entries can not be deleted (an attempt to delete them causes -ESTALE errors), which makes it impossible to delete the parent directory. This happens because we track the id of the transaction where the last unlink operation for the inode happened (last_unlink_trans) in an in-memory only field of the inode, that is, a value that is never persisted in the inode item stored on the fs/subvol btree. So if an inode is evicted and loaded again, the value for last_unlink_trans is set to 0, which prevents the fsync from logging the parent directory at btrfs_log_inode_parent(). So fix this by setting last_unlink_trans to the id of the transaction that last modified the inode when we load the inode. This is a pessimistic approach but it always ensures correctness with the trade off of ocassional full transaction commits when an fsync is done against the inode in the same transaction where it was evicted and reloaded when our inode is a directory and often logging its parent unnecessarily when our inode is not a directory. The following test case for fstests triggers the problem: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { _cleanup_flakey rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _need_to_be_root _supported_fs generic _supported_os Linux _require_scratch _require_dm_flakey _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey # Create our test file with 2 hard links. mkdir $SCRATCH_MNT/testdir touch $SCRATCH_MNT/testdir/foo ln $SCRATCH_MNT/testdir/foo $SCRATCH_MNT/testdir/bar # Make sure everything done so far is durably persisted. sync # Now remove one of the links, trigger inode eviction and then fsync # our inode. unlink $SCRATCH_MNT/testdir/bar echo 2 > /proc/sys/vm/drop_caches $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/testdir/foo # Silently drop all writes on our scratch device to simulate a power failure. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again and mount the fs to trigger log/journal replay. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey # Now verify our directory entries. echo "Entries in testdir:" ls -1 $SCRATCH_MNT/testdir # If we remove our inode, its parent should become empty and therefore we should # be able to remove the parent. rm -f $SCRATCH_MNT/testdir/* rmdir $SCRATCH_MNT/testdir _unmount_flakey # The fstests framework will call fsck against our filesystem which will verify # that all metadata is in a consistent state. status=0 exit The test failed on btrfs with: generic/098 4s ... - output mismatch (see /home/fdmanana/git/hub/xfstests/results//generic/098.out.bad) --- tests/generic/098.out 2015-07-23 18:01:12.616175932 +0100 +++ /home/fdmanana/git/hub/xfstests/results//generic/098.out.bad 2015-07-23 18:04:58.924138308 +0100 @@ -1,3 +1,6 @@ QA output created by 098 Entries in testdir: +bar foo +rm: cannot remove '/home/fdmanana/btrfs-tests/scratch_1/testdir/foo': Stale file handle +rmdir: failed to remove '/home/fdmanana/btrfs-tests/scratch_1/testdir': Directory not empty ... (Run 'diff -u tests/generic/098.out /home/fdmanana/git/hub/xfstests/results//generic/098.out.bad' to see the entire diff) _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent (see /home/fdmanana/git/hub/xfstests/results//generic/098.full) $ cat /home/fdmanana/git/hub/xfstests/results//generic/098.full (...) checking fs roots root 5 inode 258 errors 2001, no inode item, link count wrong unresolved ref dir 257 index 0 namelen 3 name foo filetype 1 errors 6, no dir index, no inode ref unresolved ref dir 257 index 3 namelen 3 name bar filetype 1 errors 5, no dir item, no inode ref Checking filesystem on /dev/sdc (...) Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/inode.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit bb53eda9029fd52b466fa501ba4aa58e94789b18 Author: Filipe Manana Date: Wed Jul 15 23:26:43 2015 +0100 Btrfs: fix stale directory entries after fsync log replay We have another case where after an fsync log replay we get an inode with a wrong link count (smaller than it should be) and a number of directory entries greater than its link count. This happens when we add a new link hard link to our inode A and then we fsync some other inode B that has the side effect of logging the parent directory inode too. In this case at log replay time we add the new hard link to our inode (the item with key BTRFS_INODE_REF_KEY) when processing the parent directory but we never adjust the link count of our inode A. As a result we get stale dir entries for our inode A that can never be deleted and therefore it makes it impossible to remove the parent directory (as its i_size can never decrease back to 0). A simple reproducer for fstests that triggers this issue: seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { _cleanup_flakey rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter . ./common/dmflakey # real QA test starts here _need_to_be_root _supported_fs generic _supported_os Linux _require_scratch _require_dm_flakey _require_metadata_journaling $SCRATCH_DEV rm -f $seqres.full _scratch_mkfs >>$seqres.full 2>&1 _init_flakey _mount_flakey # Create our test directory and files. mkdir $SCRATCH_MNT/testdir touch $SCRATCH_MNT/testdir/foo touch $SCRATCH_MNT/testdir/bar # Make sure everything done so far is durably persisted. sync # Create one hard link for file foo and another one for file bar. After # that fsync only the file bar. ln $SCRATCH_MNT/testdir/bar $SCRATCH_MNT/testdir/bar_link ln $SCRATCH_MNT/testdir/foo $SCRATCH_MNT/testdir/foo_link $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/testdir/bar # Silently drop all writes on scratch device to simulate power failure. _load_flakey_table $FLAKEY_DROP_WRITES _unmount_flakey # Allow writes again and mount the fs to trigger log/journal replay. _load_flakey_table $FLAKEY_ALLOW_WRITES _mount_flakey # Now verify both our files have a link count of 2. echo "Link count for file foo: $(stat --format=%h $SCRATCH_MNT/testdir/foo)" echo "Link count for file bar: $(stat --format=%h $SCRATCH_MNT/testdir/bar)" # We should be able to remove all the links of our files in testdir, and # after that the parent directory should become empty and therefore # possible to remove it. rm -f $SCRATCH_MNT/testdir/* rmdir $SCRATCH_MNT/testdir _unmount_flakey # The fstests framework will call fsck against our filesystem which will verify # that all metadata is in a consistent state. status=0 exit The test fails with: -Link count for file foo: 2 +Link count for file foo: 1 Link count for file bar: 2 +rm: cannot remove '/home/fdmanana/btrfs-tests/scratch_1/testdir/foo_link': Stale file handle +rmdir: failed to remove '/home/fdmanana/btrfs-tests/scratch_1/testdir': Directory not empty (...) _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent And fsck's output: (...) checking fs roots root 5 inode 258 errors 2001, no inode item, link count wrong unresolved ref dir 257 index 5 namelen 8 name foo_link filetype 1 errors 4, no inode ref Checking filesystem on /dev/sdc (...) So fix this by marking inodes for link count fixup at log replay time whenever a directory entry is replayed if the entry was created in the transaction where the fsync was made and if it points to a non-directory inode. This isn't a new problem/regression, the issue exists for a long time, possibly since the log tree feature was added (2008). Signed-off-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/tree-log.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 4 deletions(-) commit b963e7223cb3278dda35a6550a8df08ff2be2ee5 Author: Daniel Machon Date: Sat Aug 8 20:43:25 2015 +0200 Staging: lustre/lustre/ptlrpc: service.c: Fixed issue with global integer being initialized to 0 Fixed global integer initialization issue. Global variables should not be explicitly initialized to 0 or NULL. Signed-off-by: Daniel Machon Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 550d35d816da2ad141cf05f176118df6f2c75cdb Author: Daniel Machon Date: Sat Aug 8 20:34:59 2015 +0200 Staging: lustre/lnet/selftest: framework.c: Fixed coding style issues Fixed coding style issues where statement should be on the next line Signed-off-by: Daniel Machon Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/selftest/framework.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit c915aadb5d5ffddfd59170931873a5b102aa7d31 Author: Daniel Machon Date: Sat Aug 8 20:00:07 2015 +0200 Staging: wilc1000: wilc_platform.h: Fixed include guard spelling error Fixed spelling error Signed-off-by: Daniel Machon Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_platform.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 78174adaf59e85274bb3dde5c5084619ed06020b Author: Chandra S Gorentla Date: Sat Aug 8 17:41:36 2015 +0530 staging: wilc1000: Remove braces for single statement 'if' and 'else' Fixes the checkpatch.pl warning - braces {} are not necessary for any arm of this statement Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 10 ++++----- drivers/staging/wilc1000/host_interface.c | 19 ++++++++--------- drivers/staging/wilc1000/linux_wlan.c | 25 +++++++++-------------- drivers/staging/wilc1000/wilc_debugfs.c | 10 ++++----- drivers/staging/wilc1000/wilc_memory.c | 5 ++--- drivers/staging/wilc1000/wilc_spi.c | 15 ++++++-------- drivers/staging/wilc1000/wilc_strutils.c | 5 ++--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 20 ++++++++---------- drivers/staging/wilc1000/wilc_wlan.c | 20 ++++++++---------- 9 files changed, 52 insertions(+), 77 deletions(-) commit 17aacd43c8d4e733d77f093a18de9d8d2b115407 Author: Chandra S Gorentla Date: Sat Aug 8 17:41:35 2015 +0530 staging: wilc1000: Remove ' ' before quoted '\n' Fixes the checkpatch.pl warning - 'unnecessary whitespace before a quoted newline'. Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 20 +++++------ drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 42 +++++++++++------------ drivers/staging/wilc1000/wilc_wlan.c | 10 +++--- drivers/staging/wilc1000/wilc_wlan_cfg.c | 8 ++--- 4 files changed, 40 insertions(+), 40 deletions(-) commit 1bff1fe8c9dbb1a35d3129caaea9e91d4368b36a Author: Chandra S Gorentla Date: Sat Aug 8 17:41:34 2015 +0530 staging: wilc1000: Remove unused extern declarations 'extern' declarations which are not referenced within the file are removed. Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 1 - drivers/staging/wilc1000/linux_wlan_sdio.c | 1 - drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 -- drivers/staging/wilc1000/wilc_wlan.c | 3 --- 4 files changed, 7 deletions(-) commit a2b4041ab6ec8b6f07d2da2c993b003dd39f0868 Author: Chandra S Gorentla Date: Sat Aug 8 17:41:33 2015 +0530 staging: wilc1000: Add space between the braces Inserted space between nested braces. This fixes the checkpatch.pl error - space required after that close brace '}'. Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7e34d70a7163b236f520ef4fc0d7c50093dd3746 Author: Tal Shorer Date: Fri Aug 7 22:35:51 2015 +0300 usb: hcd.h: Fix the values of SetHubDepth and GetPortErrorCount to match USB 3.1 specification >From the usb 3.1 spec available at http://www.usb.org/developers/docs/ table 10-7 (Hub Class Requests) specifies the values for SetHubDepth and GetPortErrorCount as: Request bmRequestType bRequest wValue wIndex wLength Data SetHubDepth 00100000B SET_HUB_DEPTH Hub Depth Zero Zero None GetPortErrorCount 10100011B GET_PORT_ERR_COUNT Zero Port Two Number of Link Errors on this port Fix these two values to match the spec. Signed-off-by: Tal Shorer Signed-off-by: Greg Kroah-Hartman include/linux/usb/hcd.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 166b8639f52ebeec1bfbe966239530a83040c428 Author: Chase Metzger Date: Sat Aug 8 01:03:34 2015 -0700 usb: core: hub.c: Removed some warnings generated by checkpatch.pl Removed some checkpatch.pl warnings saying there was an unwanted space between function names and their arguments. Signed-off-by: Chase Metzger Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hub.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit f355e830a54ebe1601613d78a8d5b85eeafde358 Author: Kris Borer Date: Fri Aug 7 07:22:44 2015 -0400 usb: devio: fix spacing Fix two occurrences of the checkpatch.pl error: ERROR: space prohibited before that ',' (ctx:WxW) Fix one occurrence of the checkpatch error: ERROR: space required before the open parenthesis '(' Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/devio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 40a3b775f49c2784c96b19170fd2478e5e5511a1 Author: Lu Baolu Date: Thu Aug 6 19:24:01 2015 +0300 xhci: xHCI 1.1: Stopped - Short Packet Capability (SPC) This patch enables xhci driver to support SPC by handling Stopped - Short Packet event in transfer event path. If SPC = '1' and the stop endpoint command is executed, after a Short Packet condition has been detected, but before the end of the TD has been reached, (i.e. the TD is in progress for pipe), then a Transfer Event TRB with its Completion Code set to Stopped - Short Packet and its TRB Transfer Length set to value of the EDTLA shall be forced for the interrupted TRB, irrespective of whether its IOC or ISP flags are set. This Transfer Event TRB will precede the Command Completion Event TRB for the command, and is referred to as a Stopped Transfer Event. Signed-off-by: Lu Baolu Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-dbg.c | 2 ++ drivers/usb/host/xhci-ring.c | 44 +++++++++++++++++++++++++++++++++++++++++--- drivers/usb/host/xhci.h | 6 ++++-- 3 files changed, 47 insertions(+), 5 deletions(-) commit 79b8094f60d8ce54ee76e631ab665c5e3012e6ba Author: Lu Baolu Date: Thu Aug 6 19:24:00 2015 +0300 xhci: xHCI 1.1: Contiguous Frame ID Capability (CFC) If the Contiguous Frame ID Capability is supported (CFC = 1), then the xHC shall match the Frame ID in every Isoch TD with SIA = 0 against the Frame Index of the MFINDEX register. This rule ensures resynchronization of Isoch TDs even if some are dropped due to Missed Service Errors or Stopping the endpoint. This patch enables xHCI driver to support CFC by calculating and setting the Frame ID field of an Isoch TRB. [made some dbg messages checkpatch friendly -Mathias] Signed-off-by: Lu Baolu Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-dbg.c | 2 + drivers/usb/host/xhci-ring.c | 191 ++++++++++++++++++++++++++++++++++++++++--- drivers/usb/host/xhci.h | 7 ++ 3 files changed, 187 insertions(+), 13 deletions(-) commit 4758dcd19a7d9ba9610b38fecb93f65f56f86346 Author: Reyad Attiyat Date: Thu Aug 6 19:23:58 2015 +0300 usb: xhci: Add support for URB_ZERO_PACKET to bulk/sg transfers This commit checks for the URB_ZERO_PACKET flag and creates an extra zero-length td if the urb transfer length is a multiple of the endpoint's max packet length. Signed-off-by: Reyad Attiyat Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci-ring.c | 66 ++++++++++++++++++++++++++++++++++---------- drivers/usb/host/xhci.c | 5 ++++ 2 files changed, 57 insertions(+), 14 deletions(-) commit 6c05cb145d6716f00d452aeb27916efb6d190cca Author: Rafał Miłecki Date: Thu Aug 6 19:23:57 2015 +0300 usb: xhci: make USB_XHCI_PLATFORM selectable Right now xhci-plat-hcd can be built when using one of platform specific drivers only (mvebu/rcar). There shouldn't be such limitation as some platforms may not require any quirks and may want to just use a generic driver ("generic-xhci" / "xhci-hcd"). Signed-off-by: Rafał Miłecki Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman drivers/usb/host/Kconfig | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 95ddd3f4b17e1df20b5e23d7b81614e7c8a643da Author: Joo Aun Saw Date: Sat Jul 25 01:23:29 2015 +1000 tools: iio: remove unnecessary double pointer Remove unnecessary double pointer from channel sorting function. Signed-off-by: Joo Aun Saw Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 12 ++++++------ tools/iio/iio_utils.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 6b20f40679108e3c04e9bdb3d719e364ec29289e Author: Joo Aun Saw Date: Sat Jul 25 01:23:28 2015 +1000 tools: iio: Set caller's ci_array pointer to NULL after free On error, caller's ci_array is freed and set to NULL to avoid potential double free if some other user of this code is not sufficiently careful. Counter is reset to zero for consistency. Signed-off-by: Joo Aun Saw Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 2 ++ 1 file changed, 2 insertions(+) commit bdb25b0af8bd225ddf82083d767fada56fb2c1ae Author: Vladimir Barinov Date: Wed Jul 29 15:57:41 2015 +0300 iio: Fix typos in ABI documentation Fix typos in ABI documentation Signed-off-by: Vladimir Barinov Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 076a30c411ba2b91a18d44a5a01977035cdd7716 Author: Kan Liang Date: Thu Aug 6 15:44:52 2015 -0400 perf callchain: Move option parsing code to util.c Move callchain option parse related code to util.c, to avoid dragging more object files into the python binding. Signed-off-by: Kan Liang Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438890294-33409-1-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/callchain.c | 89 +------------------------------------------- tools/perf/util/callchain.h | 1 + tools/perf/util/util.c | 90 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/util.h | 2 + 4 files changed, 94 insertions(+), 88 deletions(-) commit d809560b36a7ed31fbaf3719fdf79ddcbd30950b Author: Jiri Olsa Date: Fri Aug 7 12:51:03 2015 +0200 perf stat: Move perf_counts struct and functions into separate object Moving 'struct perf_counts' and associated functions into separate object, so we could remove stat.c object dependency from python build. It makes the python code to build properly, because it fails to load due to missing stat-shadow.c object dependency if some patches from Kan Liang are applied. So apply this one, then Kan's. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20150807105103.GB8624@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 1 + tools/perf/util/Build | 1 + tools/perf/util/counts.c | 52 ++++++++++++++++++++++++++++++++++++++ tools/perf/util/counts.h | 37 +++++++++++++++++++++++++++ tools/perf/util/evsel.h | 2 +- tools/perf/util/python-ext-sources | 2 +- tools/perf/util/stat.c | 49 ----------------------------------- tools/perf/util/stat.h | 30 ---------------------- 8 files changed, 93 insertions(+), 81 deletions(-) commit 8838cc7f3c584d6aaf56c66577f8a2bfb21081ec Author: Hartmut Knaack Date: Sun Aug 2 22:43:52 2015 +0200 iio:accel:mma8452: reorder Kconfig entry Move the entry in Kconfig to its alphabetically correct position. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 686027fbc602e715aae2d1b7987daefc2ff82a8a Author: Hartmut Knaack Date: Sun Aug 2 22:43:51 2015 +0200 iio:accel:mma8452: coding style cleanup Some coding style cleanups, mainly indicated by checkpatch.pl, which includes indentation changes, drop spaces after casts and befor tabs. Also insert empty lines after logical blocks and before unconditional returns. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 106 ++++++++++++++++++++++++++++---------------- 1 file changed, 68 insertions(+), 38 deletions(-) commit 69abff81d7fa59a0dfca5c72a7f1006f17a06d11 Author: Hartmut Knaack Date: Sun Aug 2 22:43:50 2015 +0200 iio:accel:mma8452: rework register definitions Rework register definitions to be sorted by register and bit number, with bit definitions cascaded under the appropriate register, use GENMASK for consecutive bitmasks and realign properly. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 93 ++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 48 deletions(-) commit 11218226184b6b2be5cde4bf16f647dda225d4f3 Author: Hartmut Knaack Date: Sun Aug 2 22:43:49 2015 +0200 iio:accel:mma8452: check values to be written Check values to be written to the device for valid lower and upper bounds. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit b9fddcdb44c2e274193b119dd6c3af3a9324640a Author: Hartmut Knaack Date: Sun Aug 2 22:43:48 2015 +0200 iio:accel:mma8452: pass up real error code Pass up the error code provided by functions. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8337455296385b45822dc46c2b25db4c361d734c Author: Hartmut Knaack Date: Sun Aug 2 22:43:47 2015 +0200 iio:accel:mma8452: drop double include One inclusion of linux/iio/trigger_consumer.h is sufficient. Fixes: ae6d9ce05691b ("iio: mma8452: Add support for interrupt driven triggers.") Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 1 - 1 file changed, 1 deletion(-) commit 001fceb9c64a39aebb85d31134182d39c1628a21 Author: Hartmut Knaack Date: Sun Aug 2 22:43:46 2015 +0200 iio:accel:mma8452: fix _get_hp_filter_index To iterate through the available frequencies of mma8452_hp_filter_cutoff[], the array size of a row of that table needs to be provided to _get_int_plus_micros_index(). Fixes: 1e79841a00e46 ("iio: mma8452: Add highpass filter configuration.") Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ad4bf37017621e25fe157fa095fd8849779a873 Author: Bastien Nocera Date: Thu Jul 23 17:21:07 2015 +0200 iio:accel:bmc150-accel: Use the chip ID to detect sensor variant Instead of using the I2C or ACPI ID to determine which variant of the chipset to use, determine that from the chip ID. Under Windows, the same driver is used for those variants and, despite incorrect ACPI data, it is able to load and operate the accelerometer. Fixes the accelerometer failing with: bmc150_accel i2c-BMA250E:00: Invalid chip f8 on the WinBook TW100 Signed-off-by: Bastien Nocera Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 46 +++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 27 deletions(-) commit c4eaab798bd459f0c3f8917e74abf1851f3e1cb5 Author: Bastien Nocera Date: Thu Jul 23 17:20:59 2015 +0200 iio:accel:bmc150-accel: Move bmc150_accel_chip_init() Move bmc150_accel_chip_init() so that we can use bmc150_accel_chip_info_tbl[] in it. Signed-off-by: Bastien Nocera Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 114 +++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 57 deletions(-) commit ee33ddd2915cca51ce9acb1e5584631b74d92b3c Author: Lars Svensson Date: Wed Aug 5 14:15:12 2015 +0200 staging: iio_simple_dummy: Fix indentation errors Fixing indentation errors in drivers/staging/iio/iio_simple_dummy_events.c. Signed-off-by: Lars Svensson Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/staging/iio/iio_simple_dummy_events.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5450c360d4608b70ebd85f4ae2f2ce779a296a93 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:21 2015 +0200 iio: adis16136: Add ADIS16137 support The ADIS16137 is register map compatible to the ADIS16136, but has a different scale factor for the gyroscope output. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/gyro/adis16136.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 72d9c9869df3149316af6cd70585eee15f643f40 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:20 2015 +0200 iio: adis16400: Add ADIS16445 support The ADIS16445 is similar to the ADIS16448, but without the magnetometer and pressure channels as well as different scale factors for the gyroscope and accelerometer outputs. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16400_core.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit dc8615ce34cf72955f098750eef81a5501c107d1 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:19 2015 +0200 iio: adis16400: Add ADIS16367 support The ADIS16367 is mostly register compatible to the ADIS16360. The only difference is the scale factor for the gyroscope output. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16400_core.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit f1afda124badf1cf4b013722d55934536ff0892c Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:18 2015 +0200 iio: adis16260: Add ADIS16266 support The ADIS16266 is mostly register compatible to the ADIS16260. The difference is a different gyroscope scale factor as well not having the relative angular displacement channel. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/gyro/adis16260.c | 137 +++++++++++++++++++++++++++++++------------ 1 file changed, 98 insertions(+), 39 deletions(-) commit 3c386760790e3d3d5cb3ac2f0e09f3710eab7f99 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:17 2015 +0200 iio: adis16400: Add ADIS16305 support The ADIS16305 is fully register map compatible to the ADIS16300. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16400_core.c | 1 + 1 file changed, 1 insertion(+) commit bd95a89e7a80cb0ee57e9ccd62de0dd80f98a270 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:16 2015 +0200 iio: adis16400: adis16300 has product ID and serial number The ADIS16300 has the product ID and serial number registers, they are just not documented. Set the appropriate flags so the driver makes use of them. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16400_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7abad1063deb0f77d275c61f58863ec319c58c5c Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:15 2015 +0200 iio: adis16480: Fix scale factors The different devices support by the adis16480 driver have slightly different scales for the gyroscope and accelerometer channels. Signed-off-by: Lars-Peter Clausen Cc: Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16480.c | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) commit c689a923c867eac40ed3826c1d9328edea8b6bc7 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:14 2015 +0200 iio: Add inverse unit conversion macros Add inverse unit conversion macro to convert from standard IIO units to units that might be used by some devices. Those are useful in combination with scale factors that are specified as IIO_VAL_FRACTIONAL. Typically the denominator for those specifications will contain the maximum raw value the sensor will generate and the numerator the value it maps to in a specific unit. Sometimes datasheets specify those in different units than the standard IIO units (e.g. degree/s instead of rad/s) and so we need to do a unit conversion. From a mathematical point of view it does not make a difference whether we apply the unit conversion to the numerator or the inverse unit conversion to the denominator since (x / y) / z = x / (y * z). But as the denominator is typically a larger value and we are rounding both the numerator and denominator to integer values using the later method gives us a better precision (E.g. the relative error is smaller if we round 8000.3 to 8000 rather than rounding 8.3 to 8). This is where in inverse unit conversion macros will be used. Marked for stable as used by some upcoming fixes. Signed-off-by: Lars-Peter Clausen Cc: Signed-off-by: Jonathan Cameron include/linux/iio/iio.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 8166537283b31d7abaae9e56bd48fbbc30cdc579 Author: Lars-Peter Clausen Date: Wed Aug 5 15:38:13 2015 +0200 iio: adis16400: Fix adis16448 gyroscope scale Use the correct scale for the adis16448 gyroscope output. Signed-off-by: Lars-Peter Clausen Cc: Signed-off-by: Jonathan Cameron drivers/iio/imu/adis16400_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e563b0dabcce7cad80af9bb40b220004f411092 Author: Cristina Opriceana Date: Thu Aug 6 14:56:02 2015 +0300 iio: trigger: Add missing fields in kernel docs Fix kernel docs warnings by adding the missing description for each of the existing function parameters. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/iio/industrialio-trigger.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) commit 655665d67c8465501a46aa8ffde4e6e29201ba99 Author: Cristina Opriceana Date: Thu Aug 6 14:17:53 2015 +0300 iio: Documentation: Add trigger name attribute ABI documentation This patch adds an entry in ABI Documentation for the name attribute issued when a trigger is created. Signed-off-by: Cristina Opriceana Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio-trigger-sysfs | 9 +++++++++ 1 file changed, 9 insertions(+) commit aab978772a4fbe71d8231cb58d0989737db27a36 Author: Daniel Baluta Date: Tue Aug 4 17:20:08 2015 +0300 DocBook: Add initial documentation for IIO This is intended to help developers faster find their way inside the Industrial I/O core and reduce time spent on IIO drivers development. Signed-off-by: Daniel Baluta Acked-by: Crt Mori Reviewed-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron Documentation/DocBook/Makefile | 2 +- Documentation/DocBook/iio.tmpl | 697 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 698 insertions(+), 1 deletion(-) commit ad30bad3a5474f2585a7f2a35d4705c7f85210f3 Author: Pengyu Ma Date: Tue Aug 4 16:32:18 2015 +0800 iio: declare struct to fix warning When compile iio related driver the following warning shown: include/linux/iio/trigger.h:35:34: warning: 'struct iio_trigger' declared inside parameter list int (*set_trigger_state)(struct iio_trigger *trig, bool state); include/linux/iio/trigger.h:38:18: warning: 'struct iio_dev' declared inside parameter list struct iio_dev *indio_dev); 'struct iio_dev' and 'struct iio_trigger' was used before declaration, forward declaration for these structs to fix warning. Signed-off-by: Pengyu Ma Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron include/linux/iio/trigger.h | 3 +++ 1 file changed, 3 insertions(+) commit 7a9fbd250ce274a1a625b1e2055abfe26328e46b Author: Hartmut Knaack Date: Wed Jul 29 23:39:40 2015 +0200 iio:accel:stk8312: drop local buffer Drop the local buffer in stk8312_trigger_handler() and use data->buffer instead for bulk reads. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit dca5d2846514c0f3d95827d291310a403fc0ebb7 Author: Hartmut Knaack Date: Wed Jul 29 23:39:39 2015 +0200 iio:accel:stk8312: code style cleanup Adjust some indentation issues to make checkpatch.pl happy in strict mode. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 7d73e02c5d11ac1298b0a363b57d713969c02bbd Author: Hartmut Knaack Date: Wed Jul 29 23:39:38 2015 +0200 iio:accel:stk8312: use appropriate variable types Adapt some variable types to reduce unnecessary casting. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 03ecd50c50450b3e3173c9dda8adab241b46ae1e Author: Hartmut Knaack Date: Wed Jul 29 23:39:37 2015 +0200 iio:accel:stk8312: rework macro definitions Make use of BIT to describe register bits, GENMASK for consecutive bitmasks, rename and sort existing definitions, replace magic value with an expressive definition, drop an unused definition. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 18422bb3c1d89b510bb7c590c716dd6ad8e1a1e4 Author: Hartmut Knaack Date: Wed Jul 29 23:39:36 2015 +0200 iio:accel:stk8312: improve error handling Improve error handling in the following ways: - set return value on error condition to an appropriate error code - return error code immediately in case of an error (slightly changes code structure) - pass up real error code - add missing error handling - return 0 when error have been caught already - put device back in active mode after error occurs Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 60 ++++++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 22 deletions(-) commit 378abcdf3297613f6712343ce3a79b7d6abdf955 Author: Alexandru M Stan Date: Wed Jul 29 20:57:20 2015 +0200 ARM: dts: rockchip: add veyron-minnie board Also known as the Asus Chromebook Flip. Signed-off-by: Alexandru M Stan Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson Documentation/devicetree/bindings/arm/rockchip.txt | 7 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/rk3288-veyron-minnie.dts | 226 +++++++++++++++++++++ 3 files changed, 234 insertions(+) commit b21bcfc9fda56bac573367d18ce3e4dbf3cdedf9 Author: Heiko Stuebner Date: Sat Aug 1 13:00:49 2015 +0200 ARM: dts: rockchip: reserve unusable memory region on rk3288 The all current Rockchip SoCs supporting 4GB of ram have problems accessing the memory region 0xfe000000~0xff000000. This also seems to includes the rk3368 arm64 soc. All current code handling dma memory oddities I could find, seem to involve soc-specific code (zone-dma or so) while this issue is shared between arm32 and arm64 socs from Rockchip, which would need to have this described in the soc devicetree on both socs. Limiting the dma-zone alone also does not solve the issue and as the dma-masks need to be a power-of-two in the kernel, the next lower dma-mask brings memory usable for dma down to 2GB. So as a stop-gap block off the affected region to prevent its use by devices with 4GB of memory, like some recent Chromebooks. Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson arch/arm/boot/dts/rk3288.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 67867fc3382911f1c5eba1a35654d8dbdb9cd92a Author: Heiko Stuebner Date: Sun Aug 2 22:34:17 2015 +0200 ARM: dts: rockchip: enable usb controller on marsboard This enables the previously disabled usb controllers on the marsboard and makes it possible to for example mount usb mass storage devices. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3066a-marsboard.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 760bb9773f26c09f5e54bf0f7adb6644d689557c Author: Heiko Stuebner Date: Sat Aug 1 20:28:36 2015 +0200 ARM: dts: rockchip: add usb phys to Cortex-A9 socs This adds the usbphy nodes to rk3066 and rk3188, which share the usb hosts in rk3xxx.dtsi and also enables it on boards based around these socs. The usb-phy itself is the same as used on the rk3288 already. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3066a-marsboard.dts | 4 ++++ arch/arm/boot/dts/rk3066a-rayeager.dts | 4 ++++ arch/arm/boot/dts/rk3066a.dtsi | 22 ++++++++++++++++++++++ arch/arm/boot/dts/rk3188-radxarock.dts | 4 ++++ arch/arm/boot/dts/rk3188.dtsi | 22 ++++++++++++++++++++++ arch/arm/boot/dts/rk3xxx.dtsi | 4 ++++ 6 files changed, 60 insertions(+) commit ec32bd9fcadc26d8a184c9a09ec3fe29e097c175 Author: Heiko Stuebner Date: Sun Aug 2 22:29:33 2015 +0200 ARM: dts: rockchip: set correct dwc2 params for cortex-a9 socs According to the manual, the fifo sizes are the same as on later socs like the rk3288 and this also fixes an error about "insufficient fifo memory", as it seems the values read from the ip are wrong. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3xxx.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 6b7e26547fad7ace3dcb27a5babd2317fb9d1e12 Author: Andy Lutomirski Date: Thu Aug 6 14:45:45 2015 -0700 x86/vdso: Emit a GNU hash Some dynamic loaders may be slightly faster if a GNU hash is available. Strangely, this seems to have no effect at all on the vdso size. This is unlikely to have any measurable effect on the time it takes to resolve vdso symbols (since there are so few of them). In some contexts, it can be a win for a different reason: if every DSO has a GNU hash section, then libc can avoid calculating SysV hashes at all. Both musl and glibc appear to have this optimization. It's plausible that this breaks some ancient glibc version. If so, then, depending on what glibc versions break, we could either require COMPAT_VDSO for them or consider reverting. Signed-off-by: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Isaac Dunham Cc: Linus Torvalds Cc: Nathan Lynch Cc: Peter Zijlstra Cc: Rich Felker Cc: Thomas Gleixner Cc: musl@lists.openwall.com Link: http://lkml.kernel.org/r/fd56cc057a2d62ab31c56a48d04fccb435b3fd4f.1438897382.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1eaef888158dc441dcd00c20779251cfa5e756b3 Author: Chris Metcalf Date: Wed Aug 5 10:03:32 2015 -0400 tile: Reorganize _switch_to() Move the simulator bits into finish_arch_post_lock_switch() and properly call __switch_to() from _switch_to(). Signed-off-by: Chris Metcalf Cc: Cc: Linus Torvalds Cc: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438783412-10990-1-git-send-email-cmetcalf@ezchip.com [ Made it a delta to: fe363adb9225 ("sched, tile: Remove finish_arch_switch"). ] Signed-off-by: Ingo Molnar arch/tile/include/asm/switch_to.h | 2 ++ arch/tile/kernel/process.c | 16 ++++------------ 2 files changed, 6 insertions(+), 12 deletions(-) commit f1d800bf615b84ca253af372d2dac8cdef743a20 Merge: 1354ac6 9bc898c Author: Ingo Molnar Date: Sat Aug 8 10:05:17 2015 +0200 Merge tag 'perf-ebpf-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/ebpf library + llvm/clang infrastructure changes from Arnaldo Carvalho de Melo: Infrastructure changes: - Add library for interfacing with the kernel eBPF infrastructure, with tools/perf/ targeted as a first user. (Wang Nan) - Add llvm/clang infrastructure for building BPF object files from C source code. (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit c60232029aee84f69da0e74aa6f6d249edbbc80b Author: Scott Wood Date: Sat Jul 18 14:24:58 2015 -0500 powerpc/fsl: Force coherent memory on e500mc derivatives In CoreNet systems it is not allowed to mix M and non-M mappings to the same memory, and coherent DMA accesses are considered to be M mappings for this purpose. Ignoring this has been observed to cause hard lockups in non-SMP kernels on e6500. Furthermore, e6500 implements the LRAT (logical to real address table) which allows KVM guests to control the WIMGE bits. This means that KVM cannot force the M bit on the way it usually does, so the guest had better set it itself. Signed-off-by: Scott Wood arch/powerpc/include/asm/pte-common.h | 3 ++- arch/powerpc/kernel/exceptions-64e.S | 13 ++++++++----- arch/powerpc/kernel/fsl_booke_entry_mapping.S | 15 +++++++++------ arch/powerpc/mm/fsl_booke_mmu.c | 2 +- 4 files changed, 20 insertions(+), 13 deletions(-) commit 0d61f0b3e222b588480e2ad1e85bb2ea57561c4b Author: Scott Wood Date: Sat Jul 18 14:24:57 2015 -0500 powerpc/booke64: Move mb() to __set_pte_at() with kernel-addr test map_kernel() doesn't catch all places that create kernel PTEs. In particular, vmalloc() calls set_pte_at() directly. This causes a crash when booting a non-SMP kernel on e6500. Move the sync to __set_pte(), to be executed only for kernel addresses. Signed-off-by: Scott Wood arch/powerpc/include/asm/pgtable.h | 11 +++++++++++ arch/powerpc/mm/pgtable_64.c | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) commit cf184dc2dd33847f4b211b01d8c7ec0526e6c5e4 Author: Jaiprakash Singh Date: Wed May 20 21:17:11 2015 -0500 fsl_ifc: Change IO accessor based on endianness IFC IO accressor are set at run time based on IFC IP registers endianness.IFC node in DTS file contains information about endianness. Signed-off-by: Jaiprakash Singh Signed-off-by: Scott Wood Acked-by: Brian Norris .../bindings/memory-controllers/fsl/ifc.txt | 3 + drivers/memory/fsl_ifc.c | 43 ++-- drivers/mtd/nand/fsl_ifc_nand.c | 258 +++++++++++---------- include/linux/fsl_ifc.h | 50 ++++ 4 files changed, 213 insertions(+), 141 deletions(-) commit 3fa647bff31fe7b8818a40742506d47d0dc7f8f5 Author: Shaohui Xie Date: Fri Jul 24 11:46:33 2015 +0800 powerpc/config: enable aquantia PHY Aquantia PHYs used on platforms such as T2080RDB, T1024RDB. Signed-off-by: Shaohui Xie Signed-off-by: Scott Wood arch/powerpc/configs/85xx-hw.config | 1 + 1 file changed, 1 insertion(+) commit b6808fb731b9a39cc2b676576f76df978208eec6 Author: Shaohui Xie Date: Fri Jul 24 11:45:33 2015 +0800 powerpc/85xx: enable teranetics PHY The PHY uses XAUI interface to connect to MAC, mostly the PHY used on riser card. Signed-off-by: Shaohui Xie Signed-off-by: Scott Wood arch/powerpc/configs/85xx-hw.config | 1 + 1 file changed, 1 insertion(+) commit add888d6b2db1c52a273093f741e449cf9a28342 Author: Shengzhou Liu Date: Tue Jul 7 14:17:41 2015 +0800 powerpc/t1023rdb: add ina220 current sensor node Add support for INA220 current sensor. Signed-off-by: Shengzhou Liu Signed-off-by: Scott Wood arch/powerpc/boot/dts/t1023rdb.dts | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 4a6b8a4b20e22e0c170ecd785009fadd7d611e0e Author: Shengzhou Liu Date: Tue Jul 7 14:17:40 2015 +0800 powerpc/t1024rdb: add ina220 current sensor node Add support for INA220 current sensor. Signed-off-by: Shengzhou Liu Signed-off-by: Scott Wood arch/powerpc/boot/dts/t1024rdb.dts | 6 ++++++ 1 file changed, 6 insertions(+) commit 295ffb41896f566d4bd6f93fc230f5d411d373cb Author: LEROY Christophe Date: Tue May 19 12:07:57 2015 +0200 powerpc/32: Few optimisations in memcpy This patch adds a few optimisations in memcpy functions by using lbzu/stbu instead of lxb/stb and by re-ordering insn inside a loop to reduce latency due to loading Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/lib/copy_32.S | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 0b05e2d671c40cfb57e66e4e402320d6e056b2f8 Author: LEROY Christophe Date: Tue May 19 12:07:55 2015 +0200 powerpc/32: cacheable_memcpy becomes memcpy cacheable_memcpy uses dcbz instruction and is more efficient than memcpy when the destination is in RAM. If the destination is in an io area, memcpy_toio() is normally used, not memcpy This patch renames memcpy as generic_memcpy, and renames cacheable_memcpy as memcpy On MPC885, we get approximatly 7% increase of the transfer rate on an FTP reception Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/lib/copy_32.S | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit c152f149ce8e47bc04061a9e9e5f53e219ee5b95 Author: LEROY Christophe Date: Tue May 19 12:07:52 2015 +0200 powerpc/32: Merge the new memset() with the old one cacheable_memzero() which has become the new memset() and the old memset() are quite similar, so just merge them. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/lib/copy_32.S | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) commit 5b2a32e806342f237f68435a50e1071f7f32b5c5 Author: LEROY Christophe Date: Tue May 19 12:07:50 2015 +0200 powerpc/32: memset(0): use cacheable_memzero cacheable_memzero uses dcbz instruction and is more efficient than memset(0) when the destination is in RAM This patch renames memset as generic_memset, and defines memset as a prolog to cacheable_memzero. This prolog checks if the byte to set is 0. If not, it falls back to generic_memcpy() cacheable_memzero disappears as it is not referenced anywhere anymore Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/lib/copy_32.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit df087e450d7ddc0b15bd8824206d964720b4f5e4 Author: LEROY Christophe Date: Tue May 19 12:07:48 2015 +0200 Partially revert "powerpc: Remove duplicate cacheable_memcpy/memzero functions" This partially reverts commit 'powerpc: Remove duplicate cacheable_memcpy/memzero functions ("b05ae4ee602b7dc90771408ccf0972e1b3801a35")' Functions cacheable_memcpy/memzero are more efficient than memcpy/memset as they use the dcbz instruction which avoids refill of the cacheline with the data that we will overwrite. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/lib/copy_32.S | 127 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) commit 934628c7e69dc4481011df2c1db86f6be50dad29 Author: LEROY Christophe Date: Tue May 19 12:07:46 2015 +0200 powerpc: use memset_io() to clear CPM Muram CPM muram is not cached, so use memset_io() instead of memset() Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/sysdev/cpm_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f7d2b74a9dd9140053f143e1c94da0fef3c1109 Author: Scott Wood Date: Wed Apr 15 19:40:23 2015 -0500 powerpc/mm: Don't call __flush_dcache_icache_phys() with PA>VA __flush_dcache_icache_phys() requires the ability to access the memory with the MMU disabled, which means that on a 32-bit system any memory above 4 GiB is inaccessible. In particular, mpc86xx is 32-bit and can have more than 4 GiB of RAM. Signed-off-by: Scott Wood arch/powerpc/include/asm/cacheflush.h | 7 ++++++- arch/powerpc/mm/mem.c | 14 +++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) commit 501c8de7b061d2dc0c21a0a79fee3eddf30af8dd Author: LEROY Christophe Date: Tue May 19 17:18:57 2015 +0200 powerpc: add support for csum_add() The C version of csum_add() as defined in include/net/checksum.h gives the following assembly in ppc32: 0: 7c 04 1a 14 add r0,r4,r3 4: 7c 64 00 10 subfc r3,r4,r0 8: 7c 63 19 10 subfe r3,r3,r3 c: 7c 63 00 50 subf r3,r3,r0 and the following in ppc64: 0xc000000000001af8 <+0>: add r3,r3,r4 0xc000000000001afc <+4>: cmplw cr7,r3,r4 0xc000000000001b00 <+8>: mfcr r4 0xc000000000001b04 <+12>: rlwinm r4,r4,29,31,31 0xc000000000001b08 <+16>: add r3,r4,r3 0xc000000000001b0c <+20>: clrldi r3,r3,32 0xc000000000001b10 <+24>: blr include/net/checksum.h also offers the possibility to define an arch specific function. This patch provides a specific csum_add() inline function. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/include/asm/checksum.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 92c985f1d76c228abe202cb3004f03c9b45860d1 Author: LEROY Christophe Date: Tue May 19 17:18:55 2015 +0200 powerpc: put csum_tcpudp_magic inline csum_tcpudp_magic() is only a few instructions, and does modify really few registers. So it is not worth having it as a separate function and suffer function branching and saving of volatile registers. This patch makes it inline by use of the already existing csum_tcpudp_nofold() function. Signed-off-by: Christophe Leroy Signed-off-by: Scott Wood arch/powerpc/include/asm/checksum.h | 21 ++++++++++++--------- arch/powerpc/lib/checksum_32.S | 16 ---------------- arch/powerpc/lib/checksum_64.S | 21 --------------------- 3 files changed, 12 insertions(+), 46 deletions(-) commit 44d5401425db90dc46a0ca000bdc41429768d351 Author: Scott Wood Date: Wed Jul 29 18:14:04 2015 -0500 powerpc/85xx: Use kconfig fragments Unify mpc85xx and corenet configs using fragments, to ease maintenance and avoid the sort of drift that the previous patch fixed. Hardware and software options are separated, with the hope that other embedded platforms could share the software options, and to make it easier to maintain custom/alternate configs that focus on either hardware or software options. Due to the previous patch, this patch should not affect the results of any of the affected defconfigs -- only how those results are achieved. The resulting config is more or less the union of the options that any of the configs previously selected. No attempt was made in this (or the previous) patch to edit out questionable options, but this patch will make it easier to do so in future patches. Signed-off-by: Scott Wood arch/powerpc/Makefile | 20 ++ arch/powerpc/configs/85xx-32bit.config | 5 + arch/powerpc/configs/85xx-64bit.config | 4 + arch/powerpc/configs/85xx-hw.config | 140 +++++++++++++ arch/powerpc/configs/85xx-smp.config | 2 + arch/powerpc/configs/altivec.config | 1 + arch/powerpc/configs/corenet32_smp_defconfig | 264 ------------------------ arch/powerpc/configs/corenet64_smp_defconfig | 259 ------------------------ arch/powerpc/configs/corenet_basic_defconfig | 1 + arch/powerpc/configs/fsl-emb-nonhw.config | 126 ++++++++++++ arch/powerpc/configs/mpc85xx_basic_defconfig | 23 +++ arch/powerpc/configs/mpc85xx_defconfig | 288 -------------------------- arch/powerpc/configs/mpc85xx_smp_defconfig | 289 --------------------------- 13 files changed, 322 insertions(+), 1100 deletions(-) commit 7e2ad2ef851545c9bd0b5aadc8026c6901a87c50 Author: Scott Wood Date: Thu Jul 30 18:08:56 2015 -0500 powerpc/85xx: Make defconfigs consistent The mpc85xx and corenet configs have many differences between them that can't be explained by the target hardware of each config. The next patch will consolidate these targets using kconfig fragments; this patch shows what the resulting defconfigs will look like (generated by using savedefconfig on a fragment-generated config). Signed-off-by: Scott Wood arch/powerpc/configs/corenet32_smp_defconfig | 97 ++++++++++++++++++++++++---- arch/powerpc/configs/corenet64_smp_defconfig | 97 +++++++++++++++++++++++++--- arch/powerpc/configs/mpc85xx_defconfig | 40 +++++++++++- arch/powerpc/configs/mpc85xx_smp_defconfig | 59 +++++++++++++++-- 4 files changed, 262 insertions(+), 31 deletions(-) commit ecc7456880e0ae393ecee85127c71fc508bce74c Author: Michael Ellerman Date: Thu Jul 23 16:22:53 2015 +1000 powerpc: Update corenet32_smp_defconfig for modern distros corenet32_smp_defconfig is missing some things that modern distros require, enable them. Signed-off-by: Michael Ellerman Signed-off-by: Scott Wood arch/powerpc/configs/corenet32_smp_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit f728b8b7d0d18142fd7591b566aae2352e433d7e Author: Yao Yuan Date: Thu Jul 23 11:00:46 2015 +0800 powerpc/corenet32: enable DMA in defconfig By default we enable DMA(CONFIG_FSL_DMA) support which are needed on P2041RDB, P3041DS, P4080DS, B4860QDS, etc. Signed-off-by: Yuan Yao Signed-off-by: Scott Wood arch/powerpc/configs/corenet32_smp_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 7a2efb3a88b4d8ba5ab4ca5dacff22122ac51f28 Author: Yangbo Lu Date: Wed May 6 14:29:08 2015 +0800 powerpc/corenet: enable eSDHC Signed-off-by: Yangbo Lu Signed-off-by: Scott Wood arch/powerpc/configs/corenet32_smp_defconfig | 2 ++ arch/powerpc/configs/corenet64_smp_defconfig | 2 ++ 2 files changed, 4 insertions(+) commit 21c36d35711d24a7689b7fb9606ce78f3b4c3d3b Author: Bartlomiej Zolnierkiewicz Date: Fri Aug 7 13:59:16 2015 +0200 cpufreq-dt: make scaling_boost_freqs sysfs attr available when boost is enabled Make scaling_boost_freqs sysfs attribute is available when cpufreq-dt driver is used and boost support is enabled. Suggested-by: Viresh Kumar Acked-by: Viresh Kumar Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 9 ++++++++- include/linux/cpufreq.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) commit 00dabd57e8207c6c7f3a5decc2c56e54951d568a Merge: 74d3329 a622789 Author: Rafael J. Wysocki Date: Sat Aug 8 03:13:49 2015 +0200 Merge tag 'pull_req_20150803' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq Pull devfreq changes for v4.3 from MyungJoo Ham. - Device driver update to support additional hardare - Documentation error fix * tag 'pull_req_20150803' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq: PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding commit 3fc147e9156f6c176e5543c59d31182252f14933 Author: Heiko Stuebner Date: Tue Aug 4 21:37:01 2015 +0200 PM / AVS: rockchip-io: add io selectors and supplies for rk3368 This adds the necessary data for handling io voltage domains on the rk3368. As interesting tidbit, the rk3368 contains two separate iodomain areas. One in the regular General Register Files (GRF) and one in PMUGRF in the pmu power domain. Signed-off-by: Heiko Stuebner Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki .../bindings/power/rockchip-io-domain.txt | 14 +++++ drivers/power/avs/rockchip-io-domain.c | 59 ++++++++++++++++++++++ 2 files changed, 73 insertions(+) commit 28c1f1628ee4b163e615eefe1b6463e3d229a873 Author: Heiko Stuebner Date: Tue Aug 4 21:36:12 2015 +0200 PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS The rockchip io-domain driver currently only depends on ARCH_ROCKCHIP itself. This makes it possible to select the power-domain driver, but not the POWER_AVS class and results in the iodomain-driver not getting build in this case. So add the additional dependency, which also results in the driver config option now being placed nicely into the AVS submenu. Fixes: 662a958638bd ("PM / AVS: rockchip-io: add driver handling Rockchip io domains") Signed-off-by: Heiko Stuebner Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/power/avs/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ddb2c42b677eb2883e532f0928e445fc205d0019 Author: Axel Lin Date: Thu Aug 6 12:29:37 2015 +0800 mtd: brcmnand: Fix misuse of IS_ENABLED While IS_ENABLED() is perfectly fine for CONFIG_* symbols, it is not for other symbols such as __BIG_ENDIAN that is provided directly by the compiler. Switch to use CONFIG_CPU_BIG_ENDIAN instead of __BIG_ENDIAN. Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller") Signed-off-by: Axel Lin Signed-off-by: Brian Norris drivers/mtd/nand/brcmnand/brcmnand.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 10e4ea75149d11883a9e04c3b32ee1d7600d481e Author: Tom Herbert Date: Wed Aug 5 09:39:27 2015 -0700 net: Fix race condition in store_rps_map There is a race condition in store_rps_map that allows jump label count in rps_needed to go below zero. This can happen when concurrently attempting to set and a clear map. Scenario: 1. rps_needed count is zero 2. New map is assigned by setting thread, but rps_needed count _not_ yet incremented (rps_needed count still zero) 2. Map is cleared by second thread, old_map set to that just assigned 3. Second thread performs static_key_slow_dec, rps_needed count now goes negative Fix is to increment or decrement rps_needed under the spinlock. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/core/net-sysfs.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit b17c858def70b03a1652dcb74e061e8077f72c42 Author: Sudip Mukherjee Date: Fri Aug 7 16:06:34 2015 +0530 staging: rtl8188eu: remove multiple blank line Multiple blank lines is against the kernel coding style and checkpatch complains for that. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_recv.c | 26 -------------------------- 1 file changed, 26 deletions(-) commit a45515f3838328334cfac3d1fcddca9f67fb9172 Author: Sudip Mukherjee Date: Fri Aug 7 16:06:33 2015 +0530 staging: rtl8188eu: remove unused function The function rtw_init_recvframe() was not being used. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_recv.c | 8 -------- 1 file changed, 8 deletions(-) commit fbd0968708c5e6a4811e62b103fa3d8c165f65c3 Author: Sudip Mukherjee Date: Fri Aug 7 16:06:32 2015 +0530 staging: rtl8188eu: remove exit label An exit label which does nothing except return, is not worth having. So remove it. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_recv.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit ea31f616b630723bc220ff4daa123774532f96ea Author: Sudip Mukherjee Date: Fri Aug 7 16:06:31 2015 +0530 staging: rtl8188eu: remove unused define _RECV_OSDEP_C_ was only defined here but never checked anywhere. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/recv_linux.c | 2 -- 1 file changed, 2 deletions(-) commit 469d3807e7f99f950348af5f031a580f13863263 Author: Sudip Mukherjee Date: Fri Aug 7 16:06:30 2015 +0530 staging: rtl8188eu: rearrange code Re-arrange the code to directly return success or failure, thus removing the variable used in the function. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/recv_linux.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 0b47649c78c09afa43e93e902027d211cd1c6991 Author: Sudip Mukherjee Date: Fri Aug 7 16:06:29 2015 +0530 staging: rtl8188eu: make function void The return value of rtw_os_recv_resource_alloc() is never checked, so make it as void. Moreover as of now the function can not fail. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_recv.c | 2 +- drivers/staging/rtl8188eu/include/recv_osdep.h | 2 +- drivers/staging/rtl8188eu/os_dep/recv_linux.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) commit 1695cd29b24eca077fa8ae467f1184009ceb9d05 Author: Sudip Mukherjee Date: Fri Aug 7 16:06:28 2015 +0530 staging: rtl8188eu: remove unused argument The function rtw_os_recv_resource_alloc() only uses the argument struct recv_frame *. So remove the other unused argument. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_recv.c | 2 +- drivers/staging/rtl8188eu/include/recv_osdep.h | 3 +-- drivers/staging/rtl8188eu/os_dep/recv_linux.c | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) commit f6356a9617cbaebf1159fe50f2e05d57e7e4242e Author: Chaehyun Lim Date: Fri Aug 7 09:02:04 2015 +0900 staging: wilc1000: remove WILC_memcmp function Remove WILC_memcmp function because it is changed to memcmp. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.c | 9 --------- drivers/staging/wilc1000/wilc_strutils.h | 13 ------------- 2 files changed, 22 deletions(-) commit 1a646e7e9e4227d4eeb9ccbbc2d976b3b256a1e6 Author: Chaehyun Lim Date: Fri Aug 7 09:02:03 2015 +0900 staging: wilc1000: use memcmp instead of WILC_memcmp Use memcmp instead of WILC_memcmp. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 20 +++++++------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 32 +++++++++++------------ 2 files changed, 26 insertions(+), 26 deletions(-) commit 70b801cb539ae812662927bb327668aa3c7c21ab Author: Chaehyun Lim Date: Fri Aug 7 09:02:02 2015 +0900 staging: wilc1000: remove WILC_memset function Remove WILC_memset function because it is changed to memset. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_strutils.c | 9 --------- drivers/staging/wilc1000/wilc_strutils.h | 12 ------------ 2 files changed, 21 deletions(-) commit 2cc468378a4f8dd3517d9fc1d613c2f328e070c4 Author: Chaehyun Lim Date: Fri Aug 7 09:02:01 2015 +0900 staging: wilc1000: use memset instead of WILC_memset Use memset instead of WILC_memset. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 16 +-- drivers/staging/wilc1000/host_interface.c | 134 +++++++++++----------- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 16 +-- 3 files changed, 83 insertions(+), 83 deletions(-) commit 741a3b0745596f18a20da30b167e46c11bb3ce53 Author: Andrzej Hajda Date: Fri Aug 7 09:59:25 2015 +0200 staging/lustre: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/acl.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit e8f35aabae837e6d1a1d82a8cc54f8ce7366ed49 Author: Andrzej Hajda Date: Fri Aug 7 09:59:16 2015 +0200 clk/mmp: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-mix.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 7fb539eda2be9fce93b7f1cc933ef318e9c3771b Author: Joshua Clayton Date: Wed Aug 5 17:17:21 2015 -0700 staging: rtl8712: change SupportedRates to rates Change the value to a name that conforms to Linux coding style. "rates" is equally expressive in this context, and I have left alone a comment and function name that describe the rates as supported rates. Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/ieee80211.c | 25 +++++++++++-------------- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 18 ++++++++---------- drivers/staging/rtl8712/wlan_bssdef.h | 2 +- 3 files changed, 20 insertions(+), 25 deletions(-) commit db55b1652e5b126d0dbfd1ce0bcbaacddac8f36e Author: Joshua Clayton Date: Wed Aug 5 17:17:20 2015 -0700 staging: rtl8712: remove typedefs Coding style fix. Get rid of typedefs NDIS_802_11_RATES and NDIS_802_11_RATES_EX Undo any casting that was done as a result of the typedef. Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 12 ++++++------ drivers/staging/rtl8712/wlan_bssdef.h | 7 +------ 2 files changed, 7 insertions(+), 12 deletions(-) commit 986fc8e7410d65fe5adfee787ce14d56f72b4c4c Author: Joshua Clayton Date: Wed Aug 5 17:17:19 2015 -0700 staging: rtl8712: rename function Rename r8712_get_ndis_wlan_bssid_ex_sz() to r8712_get_wlan_bssid_ex_sz(), which corresponds to the struct whose size it measures. Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_cmd.c | 8 ++++---- drivers/staging/rtl8712/rtl871x_mlme.c | 16 ++++++++-------- drivers/staging/rtl8712/rtl871x_mlme.h | 2 +- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) commit 44367877c6c5048ac352c529c63ce0698c1ddd5c Author: Joshua Clayton Date: Wed Aug 5 17:17:18 2015 -0700 staging: rtl8712: remove duplicate struct struct ndis_wlan_bssid_ex is a doppelganger of struct wlan_bssid_ex, and is used about a third as often. Switch all instances to wlan_bssid_ex, and remove ndis_wlan_bssid_ex This also gets rid of a use of typedef NDIS_802_11_RATES_EX Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_cmd.c | 11 ++++------- drivers/staging/rtl8712/rtl871x_event.h | 2 +- drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 10 +++++----- drivers/staging/rtl8712/rtl871x_mlme.c | 23 +++++++++++------------ drivers/staging/rtl8712/rtl871x_mlme.h | 2 +- drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 4 ++-- drivers/staging/rtl8712/wlan_bssdef.h | 23 ++--------------------- 7 files changed, 26 insertions(+), 49 deletions(-) commit ebe92393cac834c89c774f93d92c8118b69e6016 Author: Joshua Clayton Date: Wed Aug 5 17:17:17 2015 -0700 staging: rtl8712: removed unused wrapper structs Remove wrapper structs that just wrap struct ndis_wlan_bssid_ex, and are unused. Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_cmd.h | 18 ------------------ 1 file changed, 18 deletions(-) commit 9bdb70ecddd4441be8818ab2f6cbea269c84b3fb Author: Joshua Clayton Date: Wed Aug 5 17:17:16 2015 -0700 staging: rtl8712: fix comment The old comment refers to a typedef name which is being removed, and to a style of calculation which is no longer being used. It falsely states that IELength is variable length, instead of IEs. Change comment to simply state that the IEs field is a buffer of variable size and that IELength refers to the current size. Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/wlan_bssdef.h | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 881edf67b26813f91288790bbb575c570b9de901 Author: Joshua Clayton Date: Wed Aug 5 17:17:15 2015 -0700 staging: rtl8712: simplify size calculation replace item-by-item size calculation of a struct with the size of the struct. This gets rid of a use of typedef NDIS_802_11_RATES_EX Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_cmd.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 4063ea9af6d287975732a0c992e7fe870591d365 Author: Sudip Mukherjee Date: Fri Aug 7 17:34:06 2015 +0530 staging: sm750fb: simplify return Lets return the return value directly instead of using a variable to store the result. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit f8fbc838f4b2cd72da11568b09b956806b98c29e Author: Sudip Mukherjee Date: Fri Aug 7 17:34:05 2015 +0530 staging: sm750fb: rearrange code Rearrange the code to remove one exit label which also makes the code less indented and more readable. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit d11ac7cbcc266c6c2a6ae504e070b6dc4536c1f7 Author: Sudip Mukherjee Date: Fri Aug 7 17:34:04 2015 +0530 staging: sm750fb: fix multiline comment Multiline comments are edited to be in the kernel coding style. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 63 +++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 24 deletions(-) commit 13ef3458227d4095a4f86270b1f29690dfc248bd Author: Sudip Mukherjee Date: Fri Aug 7 17:34:03 2015 +0530 staging: sm750fb: space around operator Kernel coding style says to have a space around the operators. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) commit 5fd93ddf32f3ae77e66bee9c341036e03dd389ae Author: Sudip Mukherjee Date: Fri Aug 7 17:34:02 2015 +0530 staging: sm750fb: remove multiple blank line Multiple blank lines are not kernel coding style and so checkpatch complains. Remove them. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 26 -------------------------- 1 file changed, 26 deletions(-) commit 5dab10f444774dd119e3c370cd332df9c1c646c7 Author: Joshua Clayton Date: Wed Aug 5 17:17:14 2015 -0700 staging: rtl8712: fix buggy size calculation r8712_get_ndis_wlan_bssid_ex_sz has a "6 * sizeof(unsigned long)" where the underlying struct has a 6 * unsigned char. Simplify the calculation by just subtracting the variable part from the size of the struct. This also gets rid of a use of typedef NDIS_802_11_RATES_EX Signed-off-by: Joshua Clayton Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_mlme.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 8a1d7b09e7e3c2c7097712331ac64ccfdbcf8f6d Author: Miguel Bernabeu Diaz Date: Wed Aug 5 23:49:57 2015 +0200 Staging: lustre: lnet: Remove unnecessary parentheses on return Removed three instances of parentheses in return calls that are unnecessary and do not contribute to readability. Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 276479ff684792fefadec795afd1cb84a81dc8e5 Author: Miguel Bernabeu Diaz Date: Wed Aug 5 23:48:48 2015 +0200 staging: lustre: Fix space before '[' error Fix checkpatch.pl error: ERROR: space prohibited before open square bracket '[' Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 270f0c31b47eeedee7d6c538c0f5753df24a7726 Author: Miguel Bernabeu Diaz Date: Wed Aug 5 23:47:41 2015 +0200 staging: lustre: Fix space before '(' warnings Fix several instances of checkpatch.pl warning: WARNING: space prohibited between function name and open parenthesis '(' Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 100 ++++++++++----------- 1 file changed, 50 insertions(+), 50 deletions(-) commit 83b912c67b0b42af7bb7cbcb9d4fdb64bcd8dc65 Author: Miguel Bernabeu Diaz Date: Wed Aug 5 23:45:50 2015 +0200 staging: lustre: Fix space before '++' error Fix checkpatch.pl error: ERROR: space prohibited before that '++' (ctx:WxO) Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e39f6efaa1d9203527683213a1cf039c4d6c29aa Author: Miguel Bernabeu Diaz Date: Wed Aug 5 23:44:36 2015 +0200 staging: lustre: Fix code indent error Fix checkpatch.pl error: ERROR: code indent should use tabs where possible Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 66a84f8ae131a7111ce8a6b0a77edf42b2c01d6c Author: Miguel Bernabeu Diaz Date: Wed Aug 5 23:43:08 2015 +0200 staging: lustre: Unnecessary line continuation Fix checkpatch.pl warning: WARNING: Avoid unnecessary line continuations Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c9eda12565a7df27bf67af99830923d4887c74b5 Author: Stuart Yoder Date: Thu Aug 6 20:09:24 2015 -0500 staging: fsl-mc: add DPAA2 overview readme add README file providing an overview of the DPAA2 architecture and how it is integrated in Linux Signed-off-by: Stuart Yoder Signed-off-by: Greg Kroah-Hartman drivers/staging/fsl-mc/README.txt | 364 ++++++++++++++++++++++++++++++++++++++ drivers/staging/fsl-mc/TODO | 4 - 2 files changed, 364 insertions(+), 4 deletions(-) commit 44ae5443ef9fac059a2892cbb3f7e4d95f7f8d12 Author: Navy Cheng Date: Thu Aug 6 09:47:57 2015 +0800 Staging: vme: remove an unnecessary and wrong warning message The wrong warning message in vme_user_probe() will mislead developers and users. As the error message which prompt cdev_add() error already exists, just remove the unnecessary and wrong message. Signed-off-by: Navy Cheng Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e2622fb31635d3ffd8a2aa3d7f253d2c13c71ad3 Author: Okash Khawaja Date: Wed Aug 5 21:13:52 2015 +0100 staging: octeon: fix coding style warnings for block comments The Linux kernel coding style suggests starting every line in a block comment with an asterisk and finishing the block comment with */ on a separate line. This patch fixes those warnings, clearing all warnings and errors in this file, as reported by the checkpatch script. Signed-off-by: Okash Khawaja Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-rgmii.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit dbb588a4f7bf5dd8ad871f5d5dec228295cc4b7e Author: Fabio Falzoi Date: Sun Aug 2 22:30:14 2015 +0200 Staging: fbtft: Use a struct to describe each LCD controller Use a struct flexfb_lcd_controller to holds chip properties, instead of relying on a long 'if - else if' chain. This allows to: - use a simple linear search to verify if a certain LCD controller model is supported or not. - add support for a new LCD chip controller simply defining a new flexfb_lcd_controller struct. Signed-off-by: Fabio Falzoi Acked-by: Noralf Trønnes Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 232 ++++++++++++++++++++++++----------------- 1 file changed, 136 insertions(+), 96 deletions(-) commit 25e66320167117d428d2c99076be5e5de557b7d1 Author: Johannes Postma Date: Fri Aug 7 14:04:34 2015 +0100 staging: rtl8723au: rtl8723a_hal_init: Improve code readability This patch improves code readability in the function rtl8723a_cal_txdesc_chksum. It improves the readability of the argument of the function le16_to_cpu. Signed-off-by: Johannes Postma Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8fc8cf4482fa1b983a5e971aa037aaa76179b28c Author: Johannes Postma Date: Thu Aug 6 12:21:52 2015 +0100 staging: rtl8723au: Fix sparse warning: cast to restricted __le16 usPtr is used as __le16 *, but was defined as u16 *. This was reported by sparse as: drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c:1850:29: warning: cast to restricted __le16 This patch fixes the type of usPtr. Signed-off-by: Johannes Postma Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a6779f564bf2f2748a9960a563b5b606d4bedc7 Author: Sudip Mukherjee Date: Fri Aug 7 18:31:15 2015 +0530 MAINTAINERS: update maintainers list Now since sm712fb has moved out of staging update the maintainers list accordingly. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 5b55f52d13d3643e7d62ad2f37f55d8e7f5f0c8e Author: Sudip Mukherjee Date: Fri Aug 7 18:31:14 2015 +0530 Documentation/fb: add documentation for sm712fb Create the documentation for SM712. Mention all the supported modes and how to use. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman Documentation/fb/sm712fb.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 1461d66728648540a043ba69ace1081ed5006faf Author: Sudip Mukherjee Date: Fri Aug 7 18:31:13 2015 +0530 staging: sm7xxfb: merge sm712fb with fbdev Now since all cleanups are done and the code is ready to be merged lets move it out of staging into fbdev location. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - drivers/staging/sm7xxfb/Kconfig | 13 - drivers/staging/sm7xxfb/Makefile | 1 - drivers/staging/sm7xxfb/TODO | 12 - drivers/staging/sm7xxfb/sm7xx.h | 116 --- drivers/staging/sm7xxfb/sm7xxfb.c | 1653 ------------------------------------- drivers/video/fbdev/Kconfig | 14 + drivers/video/fbdev/Makefile | 1 + drivers/video/fbdev/sm712.h | 116 +++ drivers/video/fbdev/sm712fb.c | 1653 +++++++++++++++++++++++++++++++++++++ 11 files changed, 1784 insertions(+), 1798 deletions(-) commit b96e53df92ab6ed1ca58639f0bbfacaf717e285b Author: H Hartley Sweeten Date: Wed Aug 5 10:45:23 2015 -0700 staging: comedi: me4000: update MODULE_DESCRIPTION Change the MODULE_DESCRIPTION to something more useful than "Comedi low- level driver" Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4627c547c031459ad9f504d95c6a56a1d7a1e079 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:22 2015 -0700 staging: comedi: me4000: updata driver status in comedi comment Firmware loading was fixed by: Commit: ac584af5 "staging: comedi: me4000: fix firmware downloading" Change the driver status to "untested" and remove the comments about the driver being broken, Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 751dcb48c7ec8585644d2e62d81ce54228e92c8b Author: H Hartley Sweeten Date: Wed Aug 5 10:45:21 2015 -0700 staging: comedi: me4000: cleanup multi-line comments Format the multi-line comments in the kernel CodingStyle. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 74 ++++++++++++++++----------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit 3fe6929bbbca11b015d182d4864d92d0bf5c244d Author: H Hartley Sweeten Date: Wed Aug 5 10:45:20 2015 -0700 staging: comedi: me4000: usleep_range is preferred over udelay Fix checkpatch issue: "CHECK: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt". `udelay()` is only used in the firmware upload process. Replace them with `usleep_range()` with a reasonable upper limit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 7022781c460290687b374dab1c230c06091bba10 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:19 2015 -0700 staging: comedi: me4000: introduce me4000_ai_get_sample() The hardware returns two's complement values for the analog input samples. These need to be converted to the unsigned binary format that the comedi core expects. Introduce a helper function to handle this. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 36d59d70babc9ad4275d0c7c5e63241a077f572c Author: H Hartley Sweeten Date: Wed Aug 5 10:45:18 2015 -0700 staging: comedi: me4000: comedi_handle_events() will stop conversions The irq handler does not need to manually stop conversions and disable interrupts when "end-of-acquisition", "error", or "overflow" events are detected. The comedi_handle_events() will call the subdevice (*cancel) when these are detected and stop the acquisition. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 54 +++++---------------------------- 1 file changed, 7 insertions(+), 47 deletions(-) commit b36e4fa78ddbb342480031beec5fc63473b340e0 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:17 2015 -0700 staging: comedi: me4000: tidy up analog output subdevice init For aesthetics, add some white space to the analog output subdevice initialization. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) commit 607d993942512f6b005b0465be85f21db7725ecc Author: H Hartley Sweeten Date: Wed Aug 5 10:45:16 2015 -0700 staging: comedi: me4000: fix me4000_detach() There is no real reason to reset the board when detaching. The comedi core will ensure that any commands are canceled before the detach. But the PLX interrupts should be disabled. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 8f3f3eb7a264630a73c23cecfa2af2235775e09a Author: H Hartley Sweeten Date: Wed Aug 5 10:45:15 2015 -0700 staging: comedi: me4000: only enable PLX interrupt if we have and irq Currently me4000_reset() always enables the PLX interrupt. Move the enable of the interrupt into me4000_auto_attach() and only do the enable if we actually have and irq. Make sure the PLX interrupt is disabled in me4000_reset() before we try to request the irq. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit b047d9ccc3a40b672594b4eab1eac91d7efebcd9 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:14 2015 -0700 staging: comedi: me4000: introduce me4000_ai_reset() Introduce a helper function to stop any ai conversions and reset the ai control register. This consolidates the common code in me4000_reset() and me4000_ai_cancel(). Use the new helper in the ai (*insn_read) to ensure that the ai control register is set to a known state after reading the samples. The ai control register will now always be '0' after the (*cancel) of a command or doing an (*insn_read). Knowing this the programming of the register for single acquisition mode in the (*insn_read) can be simplified. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 56 ++++++++++++++------------------- 1 file changed, 23 insertions(+), 33 deletions(-) commit a31b50ed1b600ed198252acccf6ec570fabcfc03 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:13 2015 -0700 staging: comedi: me4000: clear the ME4000_AI_CTRL_REG in me4000_reset() Reset the analog input control register after ensuring that any active conversions have been stopped. This mimics what the ai subdevice (*cancel) does. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 3 +++ 1 file changed, 3 insertions(+) commit 2ff848c3be2d066ec0dc05f8477f97d9daa24e0d Author: H Hartley Sweeten Date: Wed Aug 5 10:45:12 2015 -0700 staging: comedi: me4000: remove unnecessary me4000_ai_cancel() The comedi core ensures that the subdevice is not busy before it allows starting a new command. The subdevice (*cancel) is called when the subdevice is set to not busy. In this driver the me4000_ai_cancel() is the ai (*cancel) so the extra call in the ai (*do_cmd) is not necessary. Remove it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 6 ------ 1 file changed, 6 deletions(-) commit 78e4a573bfb01c287af8b81cd9d0a7329cbae7ca Author: H Hartley Sweeten Date: Wed Aug 5 10:45:11 2015 -0700 staging: comedi: me4000: remove unnecessary ai control register reset The me4000_ai_cancel() already reset this register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 3 --- 1 file changed, 3 deletions(-) commit 6847df631faedfef33170eed8d81430a4917b8b0 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:10 2015 -0700 staging: comedi: me4000: fix me4000_ai_cancel() The STOP and IMMEDIATE_STOP bits in the ME4000_AI_CTRL_REG should be set, not cleared, to stop any running conversions. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ffaeab349d0c5c28019ed395dac2c962560c34f6 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:09 2015 -0700 staging: comedi: me4000: return void from me4000_ai_write_chanlist() This function always returns 0 and the return value is never checked. Just return void. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 576694d83e4b014f66e673fced80fb40be3c35b9 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:08 2015 -0700 staging: comedi: me4000: absorb ai_write_timer() This function is only called by me4000_ai_do_cmd(). Absorb it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 35 +++++++++++++-------------------- 1 file changed, 14 insertions(+), 21 deletions(-) commit 11e480c3a64355b55ac23aaa3250fcc85f260530 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:07 2015 -0700 staging: comedi: me4000: absorb ai_prepare() This function never fails and it's only called by me4000_ai_do_cmd(). Absorb it and remove the unnecessary failure check. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) commit 272e426ebca118cf202e4cf43dddf65ff358e953 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:06 2015 -0700 staging: comedi: me4000: simplify ai_prepare() The ai (*do_cmd_test) validates the trigger sources in Step 2b to ensure that they are compatible. Save the 'ai_ctrl_mode' that will be used in the private data so that ai_prepare(), which is called by the ai (*do_cmd), does not have to recheck the sources in order to figure it out. Also, tidy up the stop trigger checks so that the ME4000_AI_CTRL_HF_IRQ bit is set in the common code path. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 52 ++++++++++++--------------------- 1 file changed, 18 insertions(+), 34 deletions(-) commit 0f97f5c92d4dcd561df1c9c064243fedf328177b Author: H Hartley Sweeten Date: Wed Aug 5 10:45:05 2015 -0700 staging: comedi: me4000: move ai command timing values into private data The ai (*do_cmd_test) calls me4000_ai_round_cmd_args() to calculate the timing values needed to the command. The the command test passes, the core will then call the ai (*do_cmd) which then has to call me4000_ai_round_cmd_args() again in order to get the same values to pass to ai_prepare() in order to program the timing. Add members to the private data to allow the (*do_cmd_test) to calculate and save to values needed by ai_prepare(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 109 +++++++++++++++----------------- 1 file changed, 52 insertions(+), 57 deletions(-) commit c72c4c6e3ab4e1a280ab21fd2a6063b4d37fd4ff Author: H Hartley Sweeten Date: Wed Aug 5 10:45:04 2015 -0700 staging: comedi: me4000: return void from ai_round_cmd_args() This function always succeeds. Change the return type to void and remove the unnecessary error check in me4000_ai_do_cmd(). Move the function call in me4000_ai_do_cmd_test() from before Step 1 to Step 3 where the arguments are validated. There is no reason to get the values if the previous steps fail. 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/me4000.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit 55fb972ee8881e665c9251fa6cb806ab6e1bcadc Author: H Hartley Sweeten Date: Wed Aug 5 10:45:03 2015 -0700 staging: comedi: me4000: tidy up ME4000_DIO_CTRL_REG bit defines Use the BIT() marco to define the bits of this register. For aesthetics, rename all the defines to remove the '_BIT' from the name. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 51 ++++++++++++++++----------------- 1 file changed, 25 insertions(+), 26 deletions(-) commit 7e92a5eba35e801c2af07814d400858e8f290cb9 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:02 2015 -0700 staging: comedi: me4000: tidy up ME4000_AO_CTRL_REG bit defines Use the BIT() marco to define the bits of this register. For aesthetics, rename all the defines to remove the '_BIT' from the name. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 4831748e7001b998adc209241f2d1fe9cd5c55c8 Author: H Hartley Sweeten Date: Wed Aug 5 10:45:01 2015 -0700 staging: comedi: me4000: tidy up ME4000_AO_STATUS_REG bit defines Use the BIT() marco to define the bits of this register. For aesthetics, rename all the defines to remove the '_BIT' from the name. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2ec0019a2f7605aad91b7684ca404757446ea1ad Author: H Hartley Sweeten Date: Wed Aug 5 10:45:00 2015 -0700 staging: comedi: me4000: tidy up ME4000_IRQ_STATUS_REG bit defines Use the BIT() marco to define the bits of this register. For aesthetics, rename all the defines to remove the '_BIT' from the name. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit da772ad9a83ef3db24be12f355a4a90a21c1f209 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:59 2015 -0700 staging: comedi: me4000: tidy up ME4000_AI_CTRL_REG bit defines Use the BIT() marco to define the bits of this register. For aesthetics, rename all the defines to remove the '_BIT' from the name. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 123 ++++++++++++++++---------------- 1 file changed, 61 insertions(+), 62 deletions(-) commit a9b586a52a97ca537882a879de583002d74d9e27 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:58 2015 -0700 staging: comedi: me4000: tidy up ME4000_AI_STATUS_REG bit defines Use the BIT() marco to define the bits of this register. For aesthetics, rename all the defines to remove the '_BIT' from the name. Also, use ME4000_AI_STATUS_REG instead of ME4000_AI_CTRL_REG when reading the register (they happen to be the same). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 36 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) commit e978426116ba68069b8dd1a6492ec8a958f27218 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:57 2015 -0700 staging: comedi: me4000: use comedi_range_is_bipolar() in ai (*insn_read) Use the helper function to check the range type instead of relying on the value. For aesthetics, rename the local variable used for the range. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 959717a3f67a7b7ce0bded0ec7d0e7e2e74c786c Author: H Hartley Sweeten Date: Wed Aug 5 10:44:56 2015 -0700 staging: comedi: me4000: use correct types for extracted chanspec values The chanspec channel, range, and aref are unsigned int values. Use the correct types when extracting them. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fb7891e48fc2eac16f615e81df06b7510981ef73 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:55 2015 -0700 staging: comedi: me4000: fix me4000_ai_insn_read() The coemdi (*insn_read) functions are supposed to read insn->n values from the hardware. Make this function work like the core expects. Use the comedi_offset_munge() helper to munge the two's complement values to offset binary. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit 023c129f0a90edf1a9cf2c7ba9086f029f56d488 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:54 2015 -0700 staging: comedi: me4000: use comedi_timeout() to wait for ai (*insn_read) Use the comedi_timeout() helper to busy-wait for the analog input end-of- conversion instead of the udelay(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit a0861f87185a51b44c972a01bfc9730cb9cbbc2d Author: H Hartley Sweeten Date: Wed Aug 5 10:44:53 2015 -0700 staging: comedi: me4000: tidy up ME4000_AI_CHANNEL_LIST_REG bit defines Use the BIT() macro to define the bits of this register. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 518c5b64f6014192e5f9bc3bb1ebf2311e14b621 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:52 2015 -0700 staging: comedi: me4000: fix ai_write_chanlist() Rename this function so it has namespace associated with the driver. The last entry of the chanlist needs the ME4000_AI_LIST_LAST_ENTRY bit set to end the list. Fix the function and tidy if up a bit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) commit 245bd462440ca5914286c71051fdc5af506e76cb Author: H Hartley Sweeten Date: Wed Aug 5 10:44:51 2015 -0700 staging: comedi: me4000: simplify analog input range programming The comedi_lrange table for the analog inputs is inverted compared to the values that need to be written to the ME4000_AI_CHANNEL_LIST_REG to select the range. Create a macro, ME4000_AI_LIST_RANGE(), to handle the inversion. Remove the old defines and simplify the code a bit. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 41 ++++++++------------------------- 1 file changed, 9 insertions(+), 32 deletions(-) commit 271f5aa04be0ff3d0c6fc8ccc31a6b0d3294461b Author: H Hartley Sweeten Date: Wed Aug 5 10:44:50 2015 -0700 staging: comedi: me4000: remove unnecessary ME4000_AI_LIST_INPUT_SINGLE_ENDED This define evaluates to 0 and is OR'ed with the 'entry' value that is written to the ME4000_AI_CHANNEL_LIST_REG when the channel aref is a single-ended type (AREF_GROUND or AREF_COMMON). OR'ing a zero value is pretty silly, just remove it. Remove the switch() in me4000_ai_insn_read() to simplify the code. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 3674a87ebe73be57fe412b8906b0004c6372bac4 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:49 2015 -0700 staging: comedi: me4000: rename local variables used for 'dev->private' In comedi drivers the local variable used for the dev->private pointer is normally named 'devpriv'. For aesthetics, rename the variables in this driver. Also, rename the struct to follow the norm. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 44 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit e5f663502228edd9c540c9d550dea59cbdb13d3a Author: H Hartley Sweeten Date: Wed Aug 5 10:44:48 2015 -0700 staging: comedi: me4000: refactor 'ai_sh_nchan' boardinfo Some of the boards supported by this driver can do analog input sample & hold on 8 of the channels. The 'ai_sh_nchan' member of the boardinfo is used to indicate which boards support this feature. To save a bit of space, convert this member to a bit-field, 'can_do_sh_ai'. Note, this feature is not currently supported. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 77714d31f6cd6886dadbdb34cf32eddc2853eb50 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:47 2015 -0700 staging: comedi: me4000: refactor 'ao_fifo' boardinfo This member of the boardinfo is always '4' for the boards that have an analog output FIFO. Covert it to a bit-field, 'has_ao_fifo', to save a bit of space. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit aed9b66316d2c6eb22c2a80a8af4d1f7beffe309 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:46 2015 -0700 staging: comedi: me4000: refactor 'ao_nchan' boardinfo For the boards that have analog output capability, there are always 4 analog output channels. Convert the 'ao_nchan' member of the boardinfo into a bit-field, 'has_ao', to save a bit of space and set the analog output subdevice 'n_chan' to 4 when supported. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 56f71de601468efc12d90db9cad6ccec062b74b8 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:45 2015 -0700 staging: comedi: me4000: refactor 'ai_diff_nchan' boardinfo This member of the boardinfo is only used as a flag indicating that the board supports differential analog inputs. Convert the member to a bit- field to save a bit of space. For aesthetics, rename the member to 'can_do_diff_ai'. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit 13a463ae576d2e238647b2e2bbfda0512b22dabf Author: H Hartley Sweeten Date: Wed Aug 5 10:44:44 2015 -0700 staging: comedi: me4000: make boardinfo flags bit-fields Change the boardinfo 'has_counter' and 'ai_trig_analog' flags into bit-fields to save a bit of space. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4ec85dadb7c7bb6cf84f18b7207f60efe0095d72 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:43 2015 -0700 staging: comedi: me4000: remove 'board' from me4000_ai_check_chanlist() The maximum differential channel is half the subdevice 'n_chan'. Use that instead and remove the need for the 'board' variable. Also, the comedi core does no validate the aref flags. Add a check to ensure that the subdevice actually supports the AREF_DIFF mode. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 1a02387063fbd32f51c98540499b90acc8b4317f Author: H Hartley Sweeten Date: Wed Aug 5 10:44:42 2015 -0700 staging: comedi: me4000: remove 'board' from me4000_ai_insn_read() The 'board' pointer is only used in this function to verify that the 'chan' is valid for an aref of AREF_DIFF. For differential inputs, the maximum channel is half the subdevice 'n_chan'. Use that instead and remove the 'board' variable. Also, the comedi core does not validate the aref flags. Add a check to ensure that the subdevice actually supports the AREF_DIFF mode. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 03611e5491e488f30a5b7653e02ee65032cfba14 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:41 2015 -0700 staging: comedi: me4000: remove 'chan' check in me4000_ai_insn_read() The comedi core validates that the 'chan' is valid for the subdevice before calling the (*insn_read) operation. Remove the unnecessary check. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 5 ----- 1 file changed, 5 deletions(-) commit 31bebc030fb2a6e2e7e7ea19ce58a0f196280281 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:40 2015 -0700 staging: comedi: me4000: only set SDF_DIFF when supported Some of the boards supported by this driver do not have differential analog inputs. Only set the SDF_DIFF subdev_flag when the board supports it. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 14aa4789f0519d0d97f6bf672a077582b08f2cf6 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:39 2015 -0700 staging: comedi: me4000: all board types have analog inputs All the boards supported by this driver have analog inputs. They just differ in the number of channels (32 or 16). Always initialize the analog input subdevice in me4000_auto_attach(). Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 39 +++++++++++++-------------------- 1 file changed, 15 insertions(+), 24 deletions(-) commit d855370186564b2dbfeb82547248a5e1f5f200b4 Author: H Hartley Sweeten Date: Wed Aug 5 10:44:38 2015 -0700 staging: comedi: me4000: remove 'dio_nchan' boardinfo All the boards supported by this driver have 32 digital I/O channels. Remove the unnecessary boardinfo. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/me4000.c | 38 +++++++-------------------------- 1 file changed, 8 insertions(+), 30 deletions(-) commit 71d0f562358c3274e78ef371dfeb71ad5e86cb91 Author: Dmitry Torokhov Date: Wed Aug 5 12:01:30 2015 -0700 Input: elan_i2c - enable asynchronous probing It takes a bit of time to go through controller power up sequence and initialization. To not stall the overall boot progress let's probe the controller asynchronously, given that userspace is usually prepared for hot-plugging of input devices and thus does not rely on particular ordering. Signed-off-by: Dmitry Torokhov drivers/input/mouse/elan_i2c_core.c | 1 + 1 file changed, 1 insertion(+) commit 9f6a07b67fc032fce28248da62d9342fd4e89954 Author: Dmitry Torokhov Date: Tue Apr 14 18:18:34 2015 -0700 Input: elants_i2c - enable asynchronous probing It takes a bit of time to go through controller power up sequence and initialization. To not stall the overall boot progress let's probe the controller asynchronously, given that userspace is usually prepared for hot-plugging of input devices and thus does not rely on particular ordering. Signed-off-by: Dmitry Torokhov Reviewed-by: Benson Leung Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/elants_i2c.c | 1 + 1 file changed, 1 insertion(+) commit afe10358e47a3ea1f69005cb1be78170d23f8afa Author: Dmitry Torokhov Date: Thu Apr 16 18:14:55 2015 -0700 Input: elants_i2c - wire up regulator support Elan touchscreen controllers use two power supplies, vcc33 and vccio, and we need to enable them before trying to access the device. On X86 firmware usually does this, but on ARM it is usually left to the kernel. Signed-off-by: Dmitry Torokhov Reviewed-by: Benson Leung Reviewed-by: Scott Liu Signed-off-by: Dmitry Torokhov .../devicetree/bindings/input/elants_i2c.txt | 3 + drivers/input/touchscreen/elants_i2c.c | 184 ++++++++++++++++++--- 2 files changed, 165 insertions(+), 22 deletions(-) commit 00159f19a5057cb779146afce1cceede692af346 Author: Dmitry Torokhov Date: Thu Aug 6 19:15:30 2015 -0700 Input: do not emit unneeded EV_SYN when suspending Do not emit EV_SYN/SYN_REPORT on suspend if there were no keys that are still pressed as we are suspending the device (and in all other cases when input core is forcibly releasing keys via input_dev_release_keys() call). Reviewed-by: Benson Leung Signed-off-by: Dmitry Torokhov drivers/input/input.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit e05176a3283822bd32a1f3d929ce2050232299a8 Author: Wenyu Zhang Date: Wed Aug 5 00:30:47 2015 -0700 openvswitch: Make 100 percents packets sampled when sampling rate is 1. When sampling rate is 1, the sampling probability is UINT32_MAX. The packet should be sampled even the prandom32() generate the number of UINT32_MAX. And none packet need be sampled when the probability is 0. Signed-off-by: Wenyu Zhang Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit da8b43c0e1dcea3bcac5f37ea59934ddaa137aed Author: Alexei Starovoitov Date: Tue Aug 4 22:51:07 2015 -0700 vxlan: combine VXLAN_FLOWBASED into VXLAN_COLLECT_METADATA IFLA_VXLAN_FLOWBASED is useless without IFLA_VXLAN_COLLECT_METADATA, so combine them into single IFLA_VXLAN_COLLECT_METADATA flag. 'flowbased' doesn't convey real meaning of the vxlan tunnel mode. This mode can be used by routing, tc+bpf and ovs. Only ovs is strictly flow based, so 'collect metadata' is a better name for this tunnel mode. Signed-off-by: Alexei Starovoitov Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 17 ++++++----------- include/net/vxlan.h | 4 +--- include/uapi/linux/if_link.h | 1 - net/openvswitch/vport-vxlan.c | 2 +- 4 files changed, 8 insertions(+), 16 deletions(-) commit e03c512841aa60363a6a5dcfb1e6fc19f35ec22d Merge: 1ebd08a 467fa15 Author: David S. Miller Date: Fri Aug 7 11:29:58 2015 -0700 Merge branch 'rds-tcp-netns' Sowmini Varadhan says: ==================== RDS-TCP: Network namespace support This patch series contains the set of changes to correctly set up the infra for PF_RDS sockets that use TCP as the transport in multiple network namespaces. Patch 1 in the series is the minimal set of changes to allow a single instance of RDS-TCP to run in any (i.e init_net or other) net namespace. The changes in this patch set ensure that the execution of 'modprobe [-r] rds_tcp' sets up the kernel TCP sockets relative to the current netns, so that RDS applications can send/recv packets from that netns, and the netns can later be deleted cleanly. Patch 2 of the series further allows multiple RDS-TCP instances, one per network namespace. The changes in this patch allows dynamic creation/tear-down of RDS-TCP client and server sockets across all current and future namespaces. v2 changes from RFC sent out earlier: David Ahern comments in patch 1, net_device notifier in patch 2, patch 3 broken off and submitted separately. v3: Cong Wang review comments. ==================== Signed-off-by: David S. Miller commit 467fa15356acfb7b2efa38839c3e76caa4e6e0ea Author: Sowmini Varadhan Date: Wed Aug 5 01:43:26 2015 -0400 RDS-TCP: Support multiple RDS-TCP listen endpoints, one per netns. Register pernet subsys init/stop functions that will set up and tear down per-net RDS-TCP listen endpoints. Unregister pernet subusys functions on 'modprobe -r' to clean up these end points. Enable keepalive on both accept and connect socket endpoints. The keepalive timer expiration will ensure that client socket endpoints will be removed as appropriate from the netns when an interface is removed from a namespace. Register a device notifier callback that will clean up all sockets (and thus avoid the need to wait for keepalive timeout) when the loopback device is unregistered from the netns indicating that the netns is getting deleted. Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller net/rds/tcp.c | 161 +++++++++++++++++++++++++++++++++++++++++++++----- net/rds/tcp.h | 7 ++- net/rds/tcp_connect.c | 6 +- net/rds/tcp_listen.c | 38 +++--------- 4 files changed, 162 insertions(+), 50 deletions(-) commit d5a8ac28a7ff2f250d1bedbb6008dd2f6f6f1638 Author: Sowmini Varadhan Date: Wed Aug 5 01:43:25 2015 -0400 RDS-TCP: Make RDS-TCP work correctly when it is set up in a netns other than init_net Open the sockets calling sock_create_kern() with the correct struct net pointer, and use that struct net pointer when verifying the address passed to rds_bind(). Signed-off-by: Sowmini Varadhan Signed-off-by: David S. Miller net/rds/bind.c | 3 ++- net/rds/connection.c | 16 ++++++++++------ net/rds/ib.c | 2 +- net/rds/ib_cm.c | 5 +++-- net/rds/iw.c | 2 +- net/rds/iw_cm.c | 5 +++-- net/rds/rds.h | 23 +++++++++++++++++++---- net/rds/send.c | 3 ++- net/rds/tcp.c | 4 ++-- net/rds/tcp_connect.c | 3 ++- net/rds/tcp_listen.c | 16 ++++++++++++---- net/rds/transport.c | 4 ++-- 12 files changed, 59 insertions(+), 27 deletions(-) commit b6e1f7f966e6d929b24f4318c717bb832afce8c7 Author: Scott Shu Date: Tue Aug 4 10:47:37 2015 +0800 ARM64: dts: mt6795: enable basic SMP bringup for MT6795 This patch adds support SMP on MediaTek MT6795 Cortex-A53 Octa-core SoC. Signed-off-by: Scott Shu Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt6795.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 0630db4f7a43a7d03560ba898134971c53d22a4a Author: Thierry Reding Date: Fri Aug 7 18:10:17 2015 +0200 drm: Remove two-level menu in Kconfig The Direct Rendering Manager Kconfig option is already a separate menu, so remove the extra level to make it easier to navigate. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/video/Kconfig | 2 -- 1 file changed, 2 deletions(-) commit 4299aaaa5da01f46f9186c4bb958200cf9c73532 Author: kbuild test robot Date: Fri Aug 7 22:33:11 2015 +0800 spi: mediatek: mtk_spi_driver can be static Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown drivers/spi/spi-mt65xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 761c5867ef031fae244d030bc17c93f5a3df106f Author: Alexandre Belloni Date: Fri Aug 7 12:54:10 2015 +0200 ARM: at91/dt: sama5d2: use slow clock where necessary The watchdog, the reset controller, the RTC, the shutdown controller, the timer counters and the LCD PWM need the slow clock, add it to the currently defined nodes. Signed-off-by: Alexandre Belloni arch/arm/boot/dts/sama5d2.dtsi | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 921f9a6ca5982efb2a300d45078617ad88f448a4 Author: Nicolas Ferre Date: Wed Mar 25 17:31:09 2015 +0100 ARM: at91/dt: at91sam9x5dm: add QT1070 touch button controller The display module for at91sam9x5-ek has a few touch buttons, add support for those. Signed-off-by: Nicolas Ferre Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9x5dm.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 8cf5938713e11cb0a47737c6fa550f444f7ea8b4 Author: Alexandre Belloni Date: Fri Jul 31 23:17:10 2015 +0200 ARM: at91/dt: at91sam9x5dm: add support for the touschscreen The display module on the at91sam9x5-ek has a resistive touchscreen, add it. Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9x5dm.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit a437fc59e8a604667634697a13183dc673559348 Author: Bo Shen Date: Wed Mar 25 18:41:31 2015 +0800 ARM: at91/dt: add drm support for at91sam9n12ek Add drm support for at91sam9n12ek board. Signed-off-by: Bo Shen Signed-off-by: Josh Wu Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9n12.dtsi | 71 +++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/at91sam9n12ek.dts | 61 +++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) commit 432a4a82d06fbbf40a76b7cf2c3494c75eaf9863 Author: Boris Brezillon Date: Thu Jul 31 09:37:06 2014 +0200 ARM: at91/dt: enable lcd support for at91sam9x5 SoCs Use the at91sam9x5 display module dtsi in the relevant board dts. Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9g15ek.dts | 25 +++++++++++++++++++++++++ arch/arm/boot/dts/at91sam9g35ek.dts | 21 +++++++++++++++++++++ arch/arm/boot/dts/at91sam9x35ek.dts | 20 ++++++++++++++++++++ 3 files changed, 66 insertions(+) commit 0171d1d8cf54d4389e596e45c1e5faad73d93eba Author: Boris Brezillon Date: Thu Jul 31 09:34:54 2014 +0200 ARM: at91/dt: add at91sam9x5-ek Display Module dtsi All the at91sam9x5-ek share the share display module, add a dtsi to describe it. Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9x5dm.dtsi | 74 +++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) commit c052a72ade4dd7ad0e9ddc7a424f93c04657c19d Author: Boris Brezillon Date: Thu Jul 31 09:36:10 2014 +0200 ARM: at91/dt: include lcd dtsi in at91sam9x5 dtsis Actually make use of at91sam9x5_lcd.dtsi in the relevant SoC dtsis. Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9g15.dtsi | 1 + arch/arm/boot/dts/at91sam9g35.dtsi | 1 + arch/arm/boot/dts/at91sam9x35.dtsi | 1 + 3 files changed, 3 insertions(+) commit eeff040ab2f9579bdfa1c4df6a35b2d1cdeeaf31 Author: Boris Brezillon Date: Thu Jul 31 09:35:31 2014 +0200 ARM: at91/dt: define hlcdc node in at91sam9x5_lcd.dtsi Define at91sam9x5 hlcdc node for the SoCs with an LCD controller. Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9x5_lcd.dtsi | 139 ++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) commit 99d27b1b52bd5cdf9bd9f7661ca8641e9a1b55e6 Author: David Woodhouse Date: Mon Jul 20 21:16:31 2015 +0100 modsign: Add explicit CONFIG_SYSTEM_TRUSTED_KEYS option Let the user explicitly provide a file containing trusted keys, instead of just automatically finding files matching *.x509 in the build tree and trusting whatever we find. This really ought to be an *explicit* configuration, and the build rules for dealing with the files were fairly painful too. Fix applied from James Morris that removes an '=' from a macro definition in kernel/Makefile as this is a feature that only exists from GNU make 3.82 onwards. Signed-off-by: David Woodhouse Signed-off-by: David Howells Documentation/module-signing.txt | 15 +++-- init/Kconfig | 13 ++++ kernel/Makefile | 125 ++++++++++++++++++++------------------- 3 files changed, 89 insertions(+), 64 deletions(-) commit fb1179499134bc718dc7557c7a6a95dc72f224cb Author: David Woodhouse Date: Mon Jul 20 21:16:30 2015 +0100 modsign: Use single PEM file for autogenerated key The current rule for generating signing_key.priv and signing_key.x509 is a classic example of a bad rule which has a tendency to break parallel make. When invoked to create *either* target, it generates the other target as a side-effect that make didn't predict. So let's switch to using a single file signing_key.pem which contains both key and certificate. That matches what we do in the case of an external key specified by CONFIG_MODULE_SIG_KEY anyway, so it's also slightly cleaner. Signed-off-by: David Woodhouse Signed-off-by: David Howells .gitignore | 1 + Documentation/module-signing.txt | 9 ++++----- Makefile | 4 ++-- init/Kconfig | 4 ++-- kernel/Makefile | 15 +++++++-------- 5 files changed, 16 insertions(+), 17 deletions(-) commit 1329e8cc69b93a0b1bc6d197b30dcff628c18dbf Author: David Woodhouse Date: Mon Jul 20 21:16:30 2015 +0100 modsign: Extract signing cert from CONFIG_MODULE_SIG_KEY if needed Where an external PEM file or PKCS#11 URI is given, we can get the cert from it for ourselves instead of making the user drop signing_key.x509 in place for us. Signed-off-by: David Woodhouse Signed-off-by: David Howells Documentation/module-signing.txt | 11 ++-- init/Kconfig | 8 +-- kernel/Makefile | 38 +++++++++++ scripts/Makefile | 3 +- scripts/extract-cert.c | 132 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 181 insertions(+), 11 deletions(-) commit 19e91b69d77bab16405cc284b451378e89a4110c Author: David Woodhouse Date: Mon Jul 20 21:16:29 2015 +0100 modsign: Allow external signing key to be specified Signed-off-by: David Woodhouse Signed-off-by: David Howells Documentation/module-signing.txt | 31 ++++++++++++++++++++++++++----- Makefile | 2 +- init/Kconfig | 14 ++++++++++++++ kernel/Makefile | 5 +++++ 4 files changed, 46 insertions(+), 6 deletions(-) commit 6e3e281f39af78bd680b82d9762bf6c4f8f3f5f4 Author: David Woodhouse Date: Mon Jul 20 21:16:29 2015 +0100 modsign: Allow signing key to be PKCS#11 This is only the key; the corresponding *cert* still needs to be in $(topdir)/signing_key.x509. And there's no way to actually use this from the build system yet. Signed-off-by: David Woodhouse Signed-off-by: David Howells scripts/sign-file.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) commit af1eb2913275c3ab1598b0c24c893499092df08a Author: David Woodhouse Date: Mon Jul 20 21:16:28 2015 +0100 modsign: Allow password to be specified for signing key We don't want this in the Kconfig since it might then get exposed in /proc/config.gz. So make it a parameter to Kbuild instead. This also means we don't have to jump through hoops to strip quotes from it, as we would if it was a config option. Signed-off-by: David Woodhouse Signed-off-by: David Howells Reviewed-by: Mimi Zohar Documentation/kbuild/kbuild.txt | 5 +++++ Documentation/module-signing.txt | 3 +++ scripts/sign-file.c | 27 ++++++++++++++++++++++++++- 3 files changed, 34 insertions(+), 1 deletion(-) commit caf6fe91ddf62a96401e21e9b7a07227440f4185 Author: David Woodhouse Date: Mon Jul 20 21:16:28 2015 +0100 modsign: Abort modules_install when signing fails Signed-off-by: David Woodhouse Signed-off-by: David Howells scripts/Makefile.modinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 091f6e26eb326adbd718f406e440c838bed8ebb6 Author: David Howells Date: Mon Jul 20 21:16:28 2015 +0100 MODSIGN: Extract the blob PKCS#7 signature verifier from module signing Extract the function that drives the PKCS#7 signature verification given a data blob and a PKCS#7 blob out from the module signing code and lump it with the system keyring code as it's generic. This makes it independent of module config options and opens it to use by the firmware loader. Signed-off-by: David Howells Cc: Luis R. Rodriguez Cc: Rusty Russell Cc: Ming Lei Cc: Seth Forshee Cc: Kyle McMartin include/keys/system_keyring.h | 5 +++++ init/Kconfig | 29 ++++++++++++++++--------- kernel/module_signing.c | 44 +------------------------------------ kernel/system_keyring.c | 50 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 53 deletions(-) commit 1c39449921fc6db1f942051f79868a19c92f4d47 Author: David Howells Date: Mon Jul 20 21:16:27 2015 +0100 system_keyring.c doesn't need to #include module-internal.h system_keyring.c doesn't need to #include module-internal.h as it doesn't use the one thing that exports. Remove the inclusion. Signed-off-by: David Howells kernel/system_keyring.c | 1 - 1 file changed, 1 deletion(-) commit 23dfbbabbb3a62104b040b422121c84800312ad0 Author: Luis R. Rodriguez Date: Mon Jul 20 21:16:27 2015 +0100 sign-file: Add option to only create signature file Make the -d option (which currently isn't actually wired to anything) write out the PKCS#7 message as per the -p option and then exit without either modifying the source or writing out a compound file of the source, signature and metadata. This will be useful when firmware signature support is added upstream as firmware will be left intact, and we'll only require the signature file. The descriptor is implicit by file extension and the file's own size. Signed-off-by: Luis R. Rodriguez Signed-off-by: David Howells scripts/sign-file.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 3f1e1bea34740069f70c6bc92d0f712345d5c28e Author: David Howells Date: Mon Jul 20 21:16:27 2015 +0100 MODSIGN: Use PKCS#7 messages as module signatures Move to using PKCS#7 messages as module signatures because: (1) We have to be able to support the use of X.509 certificates that don't have a subjKeyId set. We're currently relying on this to look up the X.509 certificate in the trusted keyring list. (2) PKCS#7 message signed information blocks have a field that supplies the data required to match with the X.509 certificate that signed it. (3) The PKCS#7 certificate carries fields that specify the digest algorithm used to generate the signature in a standardised way and the X.509 certificates specify the public key algorithm in a standardised way - so we don't need our own methods of specifying these. (4) We now have PKCS#7 message support in the kernel for signed kexec purposes and we can make use of this. To make this work, the old sign-file script has been replaced with a program that needs compiling in a previous patch. The rules to build it are added here. Signed-off-by: David Howells Tested-by: Vivek Goyal Makefile | 2 +- init/Kconfig | 1 + kernel/module_signing.c | 220 +++++-------------------- scripts/Makefile | 2 + scripts/sign-file | 421 ------------------------------------------------ 5 files changed, 48 insertions(+), 598 deletions(-) commit bc1c373dd2a5113800360f7152be729c9da996cc Author: David Howells Date: Mon Jul 20 21:16:27 2015 +0100 MODSIGN: Provide a utility to append a PKCS#7 signature to a module Provide a utility that: (1) Digests a module using the specified hash algorithm (typically sha256). [The digest can be dumped into a file by passing the '-d' flag] (2) Generates a PKCS#7 message that: (a) Has detached data (ie. the module content). (b) Is signed with the specified private key. (c) Refers to the specified X.509 certificate. (d) Has an empty X.509 certificate list. [The PKCS#7 message can be dumped into a file by passing the '-p' flag] (3) Generates a signed module by concatenating the old module, the PKCS#7 message, a descriptor and a magic string. The descriptor contains the size of the PKCS#7 message and indicates the id_type as PKEY_ID_PKCS7. (4) Either writes the signed module to the specified destination or renames it over the source module. This allows module signing to reuse the PKCS#7 handling code that was added for PE file parsing for signed kexec. Note that the utility is written in C and must be linked against the OpenSSL crypto library. Note further that I have temporarily dropped support for handling externally created signatures until we can work out the best way to do those. Hopefully, whoever creates the signature can give me a PKCS#7 certificate. Signed-off-by: David Howells Tested-by: Vivek Goyal include/crypto/public_key.h | 1 + scripts/sign-file.c | 205 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 206 insertions(+) commit 4ebdb76f7da662346267384440492bb9d87c2aa3 Author: David Howells Date: Mon Jul 20 21:16:26 2015 +0100 PKCS#7: Allow detached data to be supplied for signature checking purposes It is possible for a PKCS#7 message to have detached data. However, to verify the signatures on a PKCS#7 message, we have to be able to digest the data. Provide a function to supply that data. An error is given if the PKCS#7 message included embedded data. This is used in a subsequent patch to supply the data to module signing where the signature is in the form of a PKCS#7 message with detached data, whereby the detached data is the module content that is signed. Signed-off-by: David Howells Tested-by: Vivek Goyal crypto/asymmetric_keys/pkcs7_verify.c | 25 +++++++++++++++++++++++++ include/crypto/pkcs7.h | 3 +++ 2 files changed, 28 insertions(+) commit 4573b64a31cd8cb4cfeb1d1b95536cfe71980cf4 Author: David Howells Date: Mon Jul 20 21:16:26 2015 +0100 X.509: Support X.509 lookup by Issuer+Serial form AuthorityKeyIdentifier If an X.509 certificate has an AuthorityKeyIdentifier extension that provides an issuer and serialNumber, then make it so that these are used in preference to the keyIdentifier field also held therein for searching for the signing certificate. If both the issuer+serialNumber and the keyIdentifier are supplied, then the certificate is looked up by the former but the latter is checked as well. If the latter doesn't match the subjectKeyIdentifier of the parent certificate, EKEYREJECTED is returned. This makes it possible to chain X.509 certificates based on the issuer and serialNumber fields rather than on subjectKeyIdentifier. This is necessary as we are having to deal with keys that are represented by X.509 certificates that lack a subjectKeyIdentifier. Signed-off-by: David Howells Tested-by: Vivek Goyal crypto/asymmetric_keys/pkcs7_trust.c | 10 ++-- crypto/asymmetric_keys/pkcs7_verify.c | 47 +++++++++++++----- crypto/asymmetric_keys/x509_public_key.c | 84 ++++++++++++++++++++++---------- include/crypto/public_key.h | 3 +- 4 files changed, 103 insertions(+), 41 deletions(-) commit b92e6570a992c7d793a209db282f68159368201c Author: David Howells Date: Mon Jul 20 21:16:26 2015 +0100 X.509: Extract both parts of the AuthorityKeyIdentifier Extract both parts of the AuthorityKeyIdentifier, not just the keyIdentifier, as the second part can be used to match X.509 certificates by issuer and serialNumber. Signed-off-by: David Howells Tested-by: Vivek Goyal crypto/asymmetric_keys/Makefile | 8 +- crypto/asymmetric_keys/pkcs7_trust.c | 4 +- crypto/asymmetric_keys/pkcs7_verify.c | 12 ++- crypto/asymmetric_keys/x509_akid.asn1 | 35 ++++++++ crypto/asymmetric_keys/x509_cert_parser.c | 142 +++++++++++++++++++----------- crypto/asymmetric_keys/x509_parser.h | 5 +- crypto/asymmetric_keys/x509_public_key.c | 8 +- 7 files changed, 145 insertions(+), 69 deletions(-) commit c05cae9a58dca6dcbc6e66b228a9589c6b60880c Author: David Howells Date: Wed Jul 29 21:14:00 2015 +0100 ASN.1: Copy string names to tokens in ASN.1 compiler Copy string names to tokens in ASN.1 compiler rather than storing a pointer into the source text. This means we don't have to use "%*.*s" all over the place. Signed-off-by: David Howells Reviewed-by: David Woodhouse scripts/asn1_compiler.c | 155 +++++++++++++++++++++++------------------------- 1 file changed, 73 insertions(+), 82 deletions(-) commit ae44a2f6a03338cb9d2bd32864f686c732b7841f Author: David Howells Date: Wed Aug 5 14:07:01 2015 +0100 ASN.1: Add an ASN.1 compiler option to dump the element tree Add an ASN.1 compiler option to dump the element tree to stdout. Signed-off-by: David Howells Reviewed-By: David Woodhouse scripts/asn1_compiler.c | 88 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 12 deletions(-) commit 2f3cc24f07b8bfe8302a46ceb1ed58cde62cbd09 Author: Robert Baldyga Date: Fri Aug 7 14:13:34 2015 +0200 usb: musb: gadget: fix build break by adding missing 'break' Add missing break after 'default' label to fix compilation error. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/musb/musb_gadget.c | 1 + 1 file changed, 1 insertion(+) commit 38a986c0750db23aeb5968f8b6d37298b9be4b11 Author: Krzysztof Kozlowski Date: Thu Jul 30 10:36:44 2015 +0900 Input: Remove the max77843 haptic driver The max77693 haptic driver supports Maxim 77843 device so remove the max77843 driver. Signed-off-by: Krzysztof Kozlowski Acked-by: Dmitry Torokhov Signed-off-by: Mark Brown drivers/input/misc/Kconfig | 12 -- drivers/input/misc/Makefile | 1 - drivers/input/misc/max77843-haptic.c | 359 ----------------------------------- 3 files changed, 372 deletions(-) commit 56bbc99e6914eb183fb083f737178a1757083d41 Author: Krzysztof Kozlowski Date: Thu Jul 30 10:36:43 2015 +0900 Input: max77693: Add support for Maxim 77843 The Maxim 77843 haptic driver differs from 77693 by: 1. Setting the bias. 2. Different configuration register. 3. Not enabling the low-sys DAC. 4. Using same regmap for PMIC and haptic blocks. Incorporate all differences into max77693 haptic driver so both devices can be supported. Signed-off-by: Krzysztof Kozlowski Acked-by: Dmitry Torokhov Signed-off-by: Mark Brown drivers/input/misc/Kconfig | 6 ++--- drivers/input/misc/max77693-haptic.c | 48 +++++++++++++++++++++++++++++++++--- 2 files changed, 48 insertions(+), 6 deletions(-) commit 6eaa247a5bab775e45a74b52c17bf8bc37fd5f6f Author: Krzysztof Kozlowski Date: Thu Jul 30 10:36:42 2015 +0900 Input: max77693: Prepare for adding support for Maxim 77843 Prepare the driver for supporting two devices: Maxim 77693 and 77843: 1. Add table of device ids and store current device type for later usage. 2. Differentiate the haptic device configuration. Signed-off-by: Krzysztof Kozlowski Acked-by: Dmitry Torokhov Signed-off-by: Mark Brown drivers/input/misc/max77693-haptic.c | 41 ++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 7 deletions(-) commit b3d8ba746b5109dc890e7480db5d014d19ae6a05 Author: Krzysztof Kozlowski Date: Thu Jul 30 10:36:41 2015 +0900 Input: max77693: Remove a read-only pwm_divisor field Storing a predefined PWM divisor in state container structure is meaningless. The field, after initialization, is only read so this only obfuscates the code. Remove the field and use directly enum value. Signed-off-by: Krzysztof Kozlowski Acked-by: Dmitry Torokhov Signed-off-by: Mark Brown drivers/input/misc/max77693-haptic.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 9bc898c7019383b6aa2ae6cb2928c4ca926449f0 Author: Wang Nan Date: Wed Jul 8 10:04:02 2015 +0000 perf tests: Add LLVM test for eBPF on-the-fly compiling Previous patches introduce llvm__compile_bpf() to compile source file to eBPF object. This patch adds testcase to test it. It also tests libbpf by opening generated object after applying next patch which introduces HAVE_LIBBPF_SUPPORT option. Since llvm__compile_bpf() prints long messages which users who don't explicitly test llvm doesn't care, this patch set verbose to -1 to suppress all debug, warning and error message, and hint user use 'perf test -v' to see the full output. For the same reason, if clang is not found in PATH and there's no [llvm] section in .perfconfig, skip this test. Signed-off-by: Wang Nan Acked-by: 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/n/1436445342-1402-17-git-send-email-wangnan0@huawei.com [ Add tools/lib/bpf/ to tools/perf/MANIFEST, so that the tarball targets build ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/MANIFEST | 1 + tools/perf/tests/Build | 1 + tools/perf/tests/builtin-test.c | 4 ++ tools/perf/tests/llvm.c | 98 +++++++++++++++++++++++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/util/llvm-utils.c | 9 ++++ tools/perf/util/llvm-utils.h | 10 +++++ 7 files changed, 124 insertions(+) commit 0c6d18bfd551622b438e216e4863155f47907b0d Author: Wang Nan Date: Thu Jun 11 11:25:49 2015 +0000 perf tools: Auto detecting kernel include options To help user find correct kernel include options, this patch extracts them from kbuild system by an embedded script kinc_fetch_script, which creates a temporary directory, generates Makefile and an empty dummy.o then use the Makefile to fetch $(NOSTDINC_FLAGS), $(LINUXINCLUDE) and $(EXTRA_CFLAGS) options. The result is passed to compiler script using 'KERNEL_INC_OPTIONS' environment variable. Because options from kbuild contains relative path like 'Iinclude/generated/uapi', the work directory must be changed. This is done by previous patch. Signed-off-by: Wang Nan Acked-by: 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/1436445342-1402-16-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/llvm-utils.c | 60 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 5 deletions(-) commit d325d7887b960627dc686d70d07682e18383f9c4 Author: Wang Nan Date: Tue Jul 14 06:40:02 2015 +0000 perf tools: Auto detecting kernel build directory This patch detects kernel build directory by checking the existence of include/generated/autoconf.h. clang working directory is changed to kbuild directory if it is found, to help user use relative include path. Following patch will detect kernel include directory, which contains relative include patch so this workdir changing is needed. Users are allowed to set 'kbuild-dir = ""' manually to disable this checking. Signed-off-by: Wang Nan Acked-by: 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/n/tip-owyfwfbemrjn0tlj6tgk2nf5@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/llvm-utils.c | 80 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) commit 36cc093520b9a6348292c253d3ec03bb67a84da8 Author: Arnaud Pouliquen Date: Thu Jul 16 11:36:07 2015 +0200 ASoC: sti: Add IEC control Add control to configure IEC60958 settings. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif_player.c | 77 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 4 deletions(-) commit 3cfe7a74d42b7e3644f8b2b26aa20146d4f90f0f Author: Nicolas Boichat Date: Wed Jul 8 14:30:18 2015 +0800 regmap: Use different lockdep class for each regmap init call Lockdep validator complains about recursive locking and deadlock when two different regmap instances are called in a nested order. That happens anytime a regmap read/write call needs to access another regmap. This is because, for performance reason, lockdep groups all locks initialized by the same mutex_init() in the same lock class. Therefore all regmap mutexes are in the same lock class, leading to lockdep "nested locking" warnings if a regmap accesses another regmap. In general, it is impossible to establish in advance the hierarchy of regmaps, so we make sure that each regmap init call initializes its own static lock_class_key. This is done by wrapping all regmap_init calls into macros. This also allows us to give meaningful names to the lock_class_key. For example, in rt5677 case, we have in /proc/lockdep_chains: irq_context: 0 [ffffffc0018d2198] &dev->mutex [ffffffc0018d2198] &dev->mutex [ffffffc001bd7f60] rt5677:5104:(&rt5677_regmap)->_lock [ffffffc001bd7f58] rt5677:5096:(&rt5677_regmap_physical)->_lock [ffffffc001b95448] &(&base->lock)->rlock The above would have resulted in a lockdep recursive warning previously. This is not the case anymore as the lockdep validator now clearly identifies the 2 regmaps as separate. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown drivers/base/regmap/regmap-ac97.c | 22 +++-- drivers/base/regmap/regmap-i2c.c | 22 +++-- drivers/base/regmap/regmap-mmio.c | 27 ++++-- drivers/base/regmap/regmap-spi.c | 22 +++-- drivers/base/regmap/regmap-spmi.c | 44 +++++---- drivers/base/regmap/regmap.c | 31 +++--- include/linux/regmap.h | 192 ++++++++++++++++++++++++++++---------- 7 files changed, 250 insertions(+), 110 deletions(-) commit 331a5fc9f2ed28033ddda89acb2a9b43592a545d Author: Nicolas Boichat Date: Wed Jul 8 14:30:17 2015 +0800 thermal: sti: Add parentheses around bridge->ops->regmap_init call regmap_init(...) is a macro since commit "regmap: Use different lockdep class for each regmap init call". That same name is used as a function pointer: prevent its expansion by adding parentheses around the function pointer. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown drivers/thermal/st/st_thermal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bbb4d872c795ab3a1c0610f69d05fcd93aef83f6 Author: Nicolas Boichat Date: Wed Jul 8 14:30:16 2015 +0800 mfd: vexpress: Add parentheses around bridge->ops->regmap_init call regmap_init(...) is a macro since commit "regmap: Use different lockdep class for each regmap init call". That same name is used as a function pointer: prevent its expansion by adding parentheses around the function pointer. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown drivers/bus/vexpress-config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a568231f463225eb31593f71446a267a03ae0528 Author: Leilk Liu Date: Fri Aug 7 15:19:50 2015 +0800 spi: mediatek: Add spi bus for Mediatek MT8173 This patch adds basic spi bus for MT8173. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/Kconfig | 9 + drivers/spi/Makefile | 1 + drivers/spi/spi-mt65xx.c | 749 +++++++++++++++++++++++++++++++ include/linux/platform_data/spi-mt65xx.h | 22 + 4 files changed, 781 insertions(+) commit 0d850e7cdc69962e85abd7f7dcd2359f293f835a Author: Leilk Liu Date: Fri Aug 7 15:19:49 2015 +0800 spi: Mediatek: Document devicetree bindings for spi bus Signed-off-by: Leilk Liu Signed-off-by: Mark Brown .../devicetree/bindings/spi/spi-mt65xx.txt | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit c9b1e834bc8decaf979344e8121e4ad1ded8dc8a Author: Jeeja KP Date: Sat Aug 1 19:40:44 2015 +0530 ASoC: Intel: Skylake: Add pipe management helpers To manage DSP we need to create processing pipeline and on cleanup destroy them. So we add create and destroy routines for pipelines The pipelines need to to be executed so we add pipeline run and stop routines All these send required IPCs to DSP using IPC routines added earlier Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 126 +++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-topology.h | 10 +++ 2 files changed, 136 insertions(+) commit beb73b266a75602084361c5ef0baa5bc14637f4b Author: Jeeja KP Date: Sat Aug 1 19:40:43 2015 +0530 ASoC: Intel: Skylake: Add DSP module init and binding routines A module needs to be instantiated and then connected with other modules. On cleanup we need to disconnect the module. This is achieved by helpers module init, bind and unbind which are added here Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 183 +++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-topology.h | 9 ++ 2 files changed, 192 insertions(+) commit a0ffe48bb5d45fcef444e8a03c75fb7b73a5af29 Author: Hardik T Shah Date: Sat Aug 1 19:40:42 2015 +0530 ASoC: Intel: Skylake: Add helpers for SRC and converter modules SRC and converter modules are required to do frequency and channel conversion in DSP. Both take base module configuration and additional SRC and converter parameters. The helpers here are added to calculate the values for these modules Signed-off-by: Hardik T Shah Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 64 +++++++++++++++++++++++++++++++--- sound/soc/intel/skylake/skl-topology.h | 16 +++++++++ 2 files changed, 76 insertions(+), 4 deletions(-) commit 23db472bba549dcd1c7592b5af95cc9ba4b9b5c9 Author: Jeeja KP Date: Sat Aug 1 19:40:41 2015 +0530 ASoC: Intel: Skylake: Add helpers for DSP module configuration This adds helper functions to calculate parameters required for base module format and copier module. A generic module is modelled by base module. Copier module is responsible for getting/sending data to FE (host DMAs) and BE (link HDA DMA, SSP, PDM) This also ads module pin management helpers which help in finding pins to use or freeing them up Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-messages.c | 386 +++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-topology.h | 251 +++++++++++++++++ sound/soc/intel/skylake/skl-tplg-interface.h | 88 ++++++ 3 files changed, 725 insertions(+) commit aba3dd5ace59d038a9d69e0f5319b6fec61012c8 Author: Jeeja KP Date: Sat Aug 1 19:40:40 2015 +0530 ASoC: Intel: Skylake: Use acpi header for NHLT header Instead of defining own acpi header, use the available acpi header defined in acpi framework. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-nhlt.c | 1 - sound/soc/intel/skylake/skl-nhlt.h | 14 ++------------ 2 files changed, 2 insertions(+), 13 deletions(-) commit 9f2dd0270d81b283e11e39f9276113aef391e420 Author: Jeeja KP Date: Sat Aug 1 19:40:39 2015 +0530 ASoC: Intel: Skylake: Fix the NHLT rate size Sampling rate type needs to be u32 instead of u8, nhlt wav format description expected u32 for rate, passing u8 will fetch NULL config in skl_get_ep_blob(). 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 4cea3a9cb30a962fa759fcb081fb83351113d9c4 Author: Wang Nan Date: Thu Jun 11 10:31:09 2015 +0000 perf tools: Call clang to compile C source to object code This is the core patch for supporting eBPF on-the-fly compiling, does the following work: 1. Search clang compiler using search_program(). 2. Run command template defined in llvm-bpf-cmd-template option in [llvm] config section using read_from_pipe(). Patch of clang and source code path is injected into shell command using environment variable using force_set_env(). Commiter notice: When building with DEBUG=1 we get a compiler error that gets fixed with the same approach described in commit b236512280fb: perf kmem: Fix compiler warning about may be accessing uninitialized variable The last argument to strtok_r doesn't need to be initialized, its just a placeholder to make this routine reentrant, but gcc doesn't know about that and complains, breaking the build, fix it by setting it to NULL. Signed-off-by: Wang Nan Acked-by: 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/n/1436445342-1402-14-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/llvm-utils.c | 226 +++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/llvm-utils.h | 3 + 2 files changed, 229 insertions(+) commit aa61fd05ca79666c973d5b15e0f91ecdc7dcfa21 Author: Wang Nan Date: Tue Jul 21 11:13:34 2015 +0000 perf tools: Introduce llvm config options This patch introduces [llvm] config section with 5 options. Following patches will use then to config llvm dynamica compiling. 'llvm-utils.[ch]' is introduced in this patch for holding all llvm/clang related stuffs. Example: [llvm] # Path to clang. If omit, search it from $PATH. clang-path = "/path/to/clang" # Cmdline template. Following line shows its default value. # Environment variable is used to passing options. # # *NOTE*: -D__KERNEL__ MUST appears before $CLANG_OPTIONS, # so user have a chance to use -U__KERNEL__ in $CLANG_OPTIONS # to cancel it. clang-bpf-cmd-template = "$CLANG_EXEC -D__KERNEL__ $CLANG_OPTIONS \ $KERNEL_INC_OPTIONS -Wno-unused-value \ -Wno-pointer-sign -working-directory \ $WORKING_DIR -c $CLANG_SOURCE -target \ bpf -O2 -o -" # Options passed to clang, will be passed to cmdline by # $CLANG_OPTIONS. clang-opt = "-Wno-unused-value -Wno-pointer-sign" # kbuild directory. If not set, use /lib/modules/`uname -r`/build. # If set to "" deliberately, skip kernel header auto-detector. kbuild-dir = "/path/to/kernel/build" # Options passed to 'make' when detecting kernel header options. kbuild-opts = "ARCH=x86_64" Signed-off-by: Wang Nan Acked-by: 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/1437477214-149684-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/config.c | 4 ++++ tools/perf/util/llvm-utils.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/llvm-utils.h | 36 +++++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+) commit 9a208effd1832e50e1f7ea002f400f8b9ca8b1ed Author: Wang Nan Date: Wed Jul 1 02:14:10 2015 +0000 bpf tools: Link all bpf objects onto a list To allow enumeration of all bpf_objects, keep them in a list (hidden to caller). bpf_object__for_each_safe() is introduced to do this iteration. It is safe even user close the object during iteration. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-23-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 32 ++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.h | 7 +++++++ 2 files changed, 39 insertions(+) commit aa9b1ac33c7979d0d91eff8b70cffc4916f5555c Author: Wang Nan Date: Wed Jul 1 02:14:08 2015 +0000 bpf tools: Introduce accessors for struct bpf_program This patch introduces accessors for user of libbpf to retrieve section name and fd of a opened/loaded eBPF program. 'struct bpf_prog_handler' is used for that purpose. Accessors of programs section name and file descriptor are provided. Set/get private data are also impelmented. Signed-off-by: Wang Nan Acked-by: 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 Link: http://lkml.kernel.org/r/1435716878-189507-21-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.h | 24 +++++++++++++++++ 2 files changed, 96 insertions(+) commit 55cffde2e1a41109cb49f8e94de954c8240242b5 Author: Wang Nan Date: Wed Jul 1 02:14:07 2015 +0000 bpf tools: Load eBPF programs in object files into kernel This patch utilizes previous introduced bpf_load_program to load programs in the ELF file into kernel. Result is stored in 'fd' field in 'struct bpf_program'. During loading, it allocs a log buffer and free it before return. Note that that buffer is not passed to bpf_load_program() if the first loading try is successful. Doesn't use a statically allocated log buffer to avoid potention multi-thread problem. Instructions collected during opening is cleared after loading. load_program() is created for loading a 'struct bpf_insn' array into kernel, bpf_program__load() calls it. By this design we have a function loads instructions into kernel. It will be used by further patches, which creates different instances from a program and load them into kernel. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-20-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) commit 7bf98369a73a9a84c56b3f2b247ea8f0eaf8668b Author: Wang Nan Date: Wed Jul 1 02:14:06 2015 +0000 bpf tools: Introduce bpf_load_program() to bpf.c bpf_load_program() can be used to load bpf program into kernel. To make loading faster, first try to load without logbuf. Try again with logbuf if the first try failed. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-19-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/bpf.c | 34 ++++++++++++++++++++++++++++++++++ tools/lib/bpf/bpf.h | 7 +++++++ 2 files changed, 41 insertions(+) commit 8a47a6c522c0593a977069b0b1e5a0725ca0e32e Author: Wang Nan Date: Wed Jul 1 02:14:05 2015 +0000 bpf tools: Relocate eBPF programs If an eBPF program accesses a map, LLVM generates a load instruction which loads an absolute address into a register, like this: ld_64 r1, ... call 2 That ld_64 instruction will be recorded in relocation section. To enable the usage of that map, relocation must be done by replacing the immediate value by real map file descriptor so it can be found by eBPF map functions. This patch to the relocation work based on information collected by patches: 'bpf tools: Collect symbol table from SHT_SYMTAB section', 'bpf tools: Collect relocation sections from SHT_REL sections' and 'bpf tools: Record map accessing instructions for each program'. For each instruction which needs relocation, it inject corresponding file descriptor to imm field. As a part of protocol, src_reg is set to BPF_PSEUDO_MAP_FD to notify kernel this is a map loading instruction. This is the final part of map relocation patch. The principle of map relocation is described in commit message of 'bpf tools: Collect symbol table from SHT_SYMTAB section'. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-18-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 52d3352e79815307521bef6121dba00b6c3477c6 Author: Wang Nan Date: Wed Jul 1 02:14:04 2015 +0000 bpf tools: Create eBPF maps defined in an object file This patch creates maps based on 'map' section in object file using bpf_create_map(), and stores the fds into an array in 'struct bpf_object'. Previous patches parse ELF object file and collects required data, but doesn't play with the kernel. They belong to the 'opening' phase. This patch is the first patch in 'loading' phase. The 'loaded' field is introduced in 'struct bpf_object' to avoid loading an object twice, because the loading phase clears resources collected during the opening which becomes useless after loading. In this patch, maps_buf is cleared. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-17-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.h | 4 ++ 2 files changed, 106 insertions(+) commit e3ed2fef22b694cf07b06abaa6481a9e6f868e1f Author: Wang Nan Date: Wed Jul 1 02:14:03 2015 +0000 bpf tools: Add bpf.c/h for common bpf operations This patch introduces bpf.c and bpf.h, which hold common functions issuing bpf syscall. The goal of these two files is to hide syscall completely from user. Note that bpf.c and bpf.h deal with kernel interface only. Things like structure of 'map' section in the ELF object is not cared by of bpf.[ch]. We first introduce bpf_create_map(). Note that, since functions in bpf.[ch] are wrapper of sys_bpf, they don't use OO style naming. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-16-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/Build | 2 +- tools/lib/bpf/bpf.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/bpf.h | 16 ++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) commit 340909152ae5a588b9a77a85df35d61ec3523833 Author: Wang Nan Date: Wed Jul 1 02:14:02 2015 +0000 bpf tools: Record map accessing instructions for each program This patch records the indices of instructions which are needed to be relocated. That information is saved in the 'reloc_desc' field in 'struct bpf_program'. In the loading phase (this patch takes effect in the opening phase), the collected instructions will be replaced by map loading instructions. Since we are going to close the ELF file and clear all data at the end of the 'opening' phase, the ELF information will no longer be valid in the 'loading' phase. We have to locate the instructions before maps are loaded, instead of directly modifying the instruction. 'struct bpf_map_def' is introduced in this patch to let us know how many maps are defined in the object. This is the third part of map relocation. The principle of map relocation is described in commit message of 'bpf tools: Collect symbol table from SHT_SYMTAB section'. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-15-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.h | 13 ++++++ 2 files changed, 137 insertions(+) commit b62f06e81bcf28d47fe736fe2beae40f15f496be Author: Wang Nan Date: Wed Jul 1 02:14:01 2015 +0000 bpf tools: Collect relocation sections from SHT_REL sections This patch collects relocation sections into 'struct object'. Such sections are used for connecting maps to bpf programs. 'reloc' field in 'struct bpf_object' is introduced for storing such information. This patch simply store the data into 'reloc' field. Following patch will parse them to know the exact instructions which are needed to be relocated. Note that the collected data will be invalid after ELF object file is closed. This is the second patch related to map relocation. The first one is 'bpf tools: Collect symbol table from SHT_SYMTAB section'. The principle of map relocation is described in its commit message. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-14-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit a5b8bd47dcc574cd3a71357b3a0f586969e4b887 Author: Wang Nan Date: Wed Jul 1 02:14:00 2015 +0000 bpf tools: Collect eBPF programs from their own sections This patch collects all programs in an object file into an array of 'struct bpf_program' for further processing. That structure is for representing each eBPF program. 'bpf_prog' should be a better name, but it has been used by linux/filter.h. Although it is a kernel space name, I still prefer to call it 'bpf_program' to prevent possible confusion. bpf_object__add_program() creates a new 'struct bpf_program' object. It first init a variable in stack using bpf_program__init(), then if success, enlarges obj->programs array and copy the new object in. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-13-git-send-email-wangnan0@huawei.com [ Made bpf_object__add_program() propagate the error (-EINVAL or -ENOMEM) ] Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) commit bec7d68cb561e94f8a44c2b73c468b534c05f20d Author: Wang Nan Date: Wed Jul 1 02:13:59 2015 +0000 bpf tools: Collect symbol table from SHT_SYMTAB section This patch collects symbols section. This section is useful when linking BPF maps. What 'bpf_map_xxx()' functions actually require are map's file descriptors (and the internal verifier converts fds into pointers to 'struct bpf_map'), which we don't know when compiling. Therefore, we should make compiler generate a 'ldr_64 r1, ' instruction, and fill the 'imm' field with the actual file descriptor when loading in libbpf. BPF programs should be written in this way: struct bpf_map_def SEC("maps") my_map = { .type = BPF_MAP_TYPE_HASH, .key_size = sizeof(unsigned long), .value_size = sizeof(unsigned long), .max_entries = 1000000, }; SEC("my_func=sys_write") int my_func(void *ctx) { ... bpf_map_update_elem(&my_map, &key, &value, BPF_ANY); ... } Compiler should convert '&my_map' into a 'ldr_64, r1, ' instruction, where imm should be the address of 'my_map'. According to the address, libbpf knows which map it actually referenced, and then fills the imm field with the 'fd' of that map created by it. However, since we never really 'link' the object file, the imm field is only a record in relocation section. Therefore libbpf should do the relocation: 1. In relocation section (type == SHT_REL), positions of each such 'ldr_64' instruction are recorded with a reference of an entry in symbol table (SHT_SYMTAB); 2. From records in symbol table we can find the indics of map variables. Libbpf first record SHT_SYMTAB and positions of each instruction which required bu such operation. Then create file descriptor. Finally, after map creation complete, replace the imm field. This is the first patch of BPF map related stuff. It records SHT_SYMTAB into object's efile field for further use. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-12-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 0b3d1efade1b7e2ccaf79c40a7481c93cfb5090a Author: Wang Nan Date: Wed Jul 1 02:13:58 2015 +0000 bpf tools: Collect map definitions from 'maps' section If maps are used by eBPF programs, corresponding object file(s) should contain a section named 'map'. Which contains map definitions. This patch copies the data of the whole section. Map data parsing should be acted just before map loading. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-11-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit cb1e5e961991ee9b2cbfd3bf06ef490ea578cd2f Author: Wang Nan Date: Wed Jul 1 02:13:57 2015 +0000 bpf tools: Collect version and license from ELF sections Expand bpf_obj_elf_collect() to collect license and kernel version information in eBPF object file. eBPF object file should have a section named 'license', which contains a string. It should also have a section named 'version', contains a u32 LINUX_VERSION_CODE. bpf_obj_validate() is introduced to validate object file after loaded. Currently it only check existence of 'version' section. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-10-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 296036653ae8b1367ec9d06d65377c2e2371b153 Author: Wang Nan Date: Wed Jul 1 02:13:56 2015 +0000 bpf tools: Iterate over ELF sections to collect information bpf_obj_elf_collect() is introduced to iterate over each elf sections to collection information in eBPF object files. This function will futher enhanced to collect license, kernel version, programs, configs and map information. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-9-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit cc4228d57c4c35ae0a29efa1e7687a817dc038d9 Author: Wang Nan Date: Wed Jul 1 02:13:55 2015 +0000 bpf tools: Check endianness and make libbpf fail early Check endianness according to EHDR. Code is taken from tools/perf/util/symbol-elf.c. Libbpf doesn't magically convert missmatched endianness. Even if we swap eBPF instructions to correct byte order, we are unable to deal with endianness in code logical generated by LLVM. Therefore, libbpf should simply reject missmatched ELF object, and let LLVM to create good code. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-8-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 6c956392b0486c170e382476ab9dd97a696fd169 Author: Wang Nan Date: Wed Jul 1 02:13:54 2015 +0000 bpf tools: Read eBPF object from buffer To support dynamic compiling, this patch allows caller to pass a in-memory buffer to libbpf by bpf_object__open_buffer(). libbpf calls elf_memory() to open it as ELF object file. Because __bpf_object__open() collects all required data and won't need that buffer anymore, libbpf uses that buffer directly instead of clone a new buffer. Caller of libbpf can free that buffer or use it do other things after bpf_object__open_buffer() return. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-7-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 62 ++++++++++++++++++++++++++++++++++++++++---------- tools/lib/bpf/libbpf.h | 2 ++ 2 files changed, 52 insertions(+), 12 deletions(-) commit 1a5e3fb1e9a4a3e3695cd57c33c169a90d16fd3b Author: Wang Nan Date: Wed Jul 1 02:13:53 2015 +0000 bpf tools: Open eBPF object file and do basic validation This patch defines basic interface of libbpf. 'struct bpf_object' will be the handler of each object file. Its internal structure is hide to user. eBPF object files are compiled by LLVM as ELF format. In this patch, libelf is used to open those files, read EHDR and do basic validation according to e_type and e_machine. All elf related staffs are grouped together and reside in efile field of 'struct bpf_object'. bpf_object__elf_finish() is introduced to clear it. After all eBPF programs in an object file are loaded, related ELF information is useless. Close the object file and free those memory. The zfree() and zclose() functions are introduced to ensure setting NULL pointers and negative file descriptors after resources are released. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-6-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.h | 8 +++ 2 files changed, 166 insertions(+) commit b3f59d66e22b8be4ccae67c8eaffa2cbb9e54eb1 Author: Wang Nan Date: Wed Jul 1 02:13:52 2015 +0000 bpf tools: Allow caller to set printing function By libbpf_set_print(), users of libbpf are allowed to register he/she own debug, info and warning printing functions. Libbpf will use those functions to print messages. If not provided, default info and warning printing functions are fprintf(stderr, ...); default debug printing is NULL. This API is designed to be used by perf, enables it to register its own logging functions to make all logs uniform, instead of separated logging level control. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-5-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/lib/bpf/libbpf.c | 40 ++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.h | 12 ++++++++++++ 2 files changed, 52 insertions(+) commit 1b76c13e4b36f978ea45af079f38ad423a229630 Author: Wang Nan Date: Wed Jul 1 02:13:51 2015 +0000 bpf tools: Introduce 'bpf' library and add bpf feature check This is the first patch of libbpf. The goal of libbpf is to create a standard way for accessing eBPF object files. This patch creates 'Makefile' and 'Build' for it, allows 'make' to build libbpf.a and libbpf.so, 'make install' to put them into proper directories. Most part of Makefile is borrowed from traceevent. Before building, it checks the existence of libelf in Makefile, and deny to build if not found. Instead of throwing an error if libelf not found, the error raises in a phony target "elfdep". This design is to ensure 'make clean' still workable even if libelf is not found. Because libbpf requires 'kern_version' field set for 'union bpf_attr' (bpfdep" is used for that dependency), Kernel BPF API is also checked by intruducing a new feature check 'bpf' into tools/build/feature, which checks the existence and version of linux/bpf.h. When building libbpf, it searches that file from include/uapi/linux in kernel source tree (controlled by FEATURE_CHECK_CFLAGS-bpf). Since it searches kernel source tree it reside, installing of newest kernel headers is not required, except we are trying to port these files to an old kernel. To avoid checking that file when perf building, the newly introduced 'bpf' feature check doesn't added into FEATURE_TESTS and FEATURE_DISPLAY by default in tools/build/Makefile.feature, but added into libbpf's specific. Signed-off-by: Wang Nan Acked-by: 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 Bcc: pi3orama@163.com Link: http://lkml.kernel.org/r/1435716878-189507-4-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/feature/Makefile | 6 +- tools/build/feature/test-bpf.c | 18 ++++ tools/lib/bpf/.gitignore | 2 + tools/lib/bpf/Build | 1 + tools/lib/bpf/Makefile | 195 +++++++++++++++++++++++++++++++++++++++++ tools/lib/bpf/libbpf.c | 14 +++ tools/lib/bpf/libbpf.h | 11 +++ 7 files changed, 246 insertions(+), 1 deletion(-) commit 99d49e3af6dfde62caffb2913807fdaf293a9e3d Author: Frans Klaver Date: Thu Sep 4 00:58:23 2014 +0200 mod_devicetable: add space before */ Match the style of the other one-line comments. Signed-off-by: Frans Klaver Reviewed-by: Hannes Reinecke Signed-off-by: Jiri Kosina include/linux/mod_devicetable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d23684d2738f1c4492d221b37eaee0028df93328 Author: Colin Ian King Date: Wed Jul 29 19:19:45 2015 +0100 scsi: a100u2w: trivial typo in printk Trivial typo fix, \b should be \n Signed-off-by: Colin Ian King Reviewed-by: Hannes Reinecke Signed-off-by: Jiri Kosina drivers/scsi/a100u2w.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e9e346a37b2bdcabc65d2537feccc3b563c1ac43 Author: Masanari Iida Date: Tue Jul 28 20:11:23 2015 +0900 i2c: Fix typo in i2c-bfin-twi.c This patch fix some typos found in a printk message and MODULE_DESCRIPTION. Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina drivers/i2c/busses/i2c-bfin-twi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 96bab82f6ba3c4e116ee89989b3854dde6c0cd2d Author: Andrzej Hajda Date: Fri Aug 7 09:59:35 2015 +0200 ALSA: firewire: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Takashi Iwai sound/firewire/oxfw/oxfw-stream.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit e1c05067c323fb92d27418fb3586171bd7ce2e12 Author: Masahiro Yamada Date: Tue Jul 7 10:14:59 2015 +0900 treewide: fix typos in comment blocks Looks like the word "contiguous" is often mistyped. Signed-off-by: Masahiro Yamada Signed-off-by: Jiri Kosina arch/mips/kernel/setup.c | 2 +- drivers/gpio/gpiolib-acpi.c | 2 +- drivers/gpu/drm/via/via_dmablit.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 2 +- drivers/media/platform/exynos4-is/fimc-m2m.c | 2 +- drivers/media/v4l2-core/videobuf2-memops.c | 2 +- drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +- drivers/net/wireless/ath/ath6kl/wmi.c | 4 ++-- drivers/usb/gadget/udc/bdc/bdc.h | 2 +- fs/ocfs2/ocfs2_fs.h | 4 ++-- include/media/videobuf-core.h | 2 +- mm/nommu.c | 10 +++++----- 12 files changed, 18 insertions(+), 18 deletions(-) commit 6ade97724fb571338a0f82ecaac5bced2f43f042 Author: Benjamin Herr Date: Sat Jul 18 14:31:40 2015 +0200 Doc: fix trivial typo in SubmittingPatches This patch changes the tense of a verb in SubmittingPatches to ensure grammatical validity of the containing sentence. Signed-off-by: Benjamin Herr Signed-off-by: Jiri Kosina Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 377a51a6b8c09b39b540e5a80ad7029a450cee71 Author: Geert Uytterhoeven Date: Mon Jul 6 15:40:22 2015 +0200 proportions: Spelling s/consitent/consistent/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Jiri Kosina include/linux/proportions.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57d4248731f6ff7502ead0fedb6ad35c90dead31 Author: Geert Uytterhoeven Date: Mon Jul 6 15:39:17 2015 +0200 dm: Spelling s/consitent/consistent/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Jiri Kosina drivers/md/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f367f0288c44c706ed4b2622aee451498fb3ab3 Author: Nik Nyby Date: Mon Jul 6 10:59:48 2015 -0400 aic7xxx: Fix typo in error message This fixes "referenced" where it is spelled "referrenced". Signed-off-by: Nik Nyby Signed-off-by: Jiri Kosina drivers/scsi/aic7xxx/aic7xxx_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 831527b7304d06ea24afd2d01956dad06cd34043 Author: Nik Nyby Date: Mon Jul 6 10:28:41 2015 -0400 pcmcia: Fix typo in locking documentation This fixes a typo in the docs: "devie" -> "device". Signed-off-by: Nik Nyby Signed-off-by: Jiri Kosina Documentation/pcmcia/locking.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1635e88885a8e16dec21206c981421f1f3c3b1df Author: Axel Lin Date: Thu Aug 6 10:35:23 2015 +0800 regmap: debugfs: Fix misuse of IS_ENABLED IS_ENABLED should only be used for CONFIG_* symbols. I have done a small test: #define REGMAP_ALLOW_WRITE_DEBUGFS IS_ENABLED(REGMAP_ALLOW_WRITE_DEBUGFS) returns 0. #define REGMAP_ALLOW_WRITE_DEBUGFS 0 IS_ENABLED(REGMAP_ALLOW_WRITE_DEBUGFS) returns 0. #define REGMAP_ALLOW_WRITE_DEBUGFS 1 IS_ENABLED(REGMAP_ALLOW_WRITE_DEBUGFS) returns 1. #define REGMAP_ALLOW_WRITE_DEBUGFS 2 IS_ENABLED(REGMAP_ALLOW_WRITE_DEBUGFS) returns 0. So fix the misuse of IS_ENABLED(REGMAP_ALLOW_WRITE_DEBUGFS) and switch to use #if defined(REGMAP_ALLOW_WRITE_DEBUGFS) instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/base/regmap/regmap-debugfs.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 47268a4f9d179020cff766848086318a9e90d013 Author: Nik Nyby Date: Tue Jun 30 17:25:27 2015 -0400 scsi/arcmsr: Fix typos in error log This fixes some typos in one of the error logs. Signed-off-by: Nik Nyby Signed-off-by: Jiri Kosina drivers/scsi/arcmsr/arcmsr_hba.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4bb138a47b7f8a2867dd3ec1f897a07323598345 Author: Masanari Iida Date: Sun May 10 00:55:18 2015 +0900 drm/nouveau/gr: Fix typo in nv10.c This patch fix spelling typo in printk within nv10.c Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 804ff603d2fe98c48aac4e2d6e4f5db687d78812 Author: Masanari Iida Date: Thu May 7 23:21:27 2015 +0900 [SCSI] Fix printk typos in drivers/scsi This patch fix spme spelling typos in printk within drivers/scsi. Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina drivers/scsi/53c700.c | 2 +- drivers/scsi/scsi_transport_iscsi.c | 2 +- drivers/scsi/scsi_transport_spi.c | 4 ++-- drivers/scsi/wd719x.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 376c0afe2f0047d091956a95e382e1edd104ea72 Author: Andrzej Hajda Date: Fri Aug 7 09:59:37 2015 +0200 ASoC: topology: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Mark Brown sound/soc/soc-topology.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b42e093e59c320e91b9c2de73bf3f0429fc45307 Author: Andrzej Hajda Date: Fri Aug 7 09:59:36 2015 +0200 ASoC: intel: use kmemdup rather than duplicating its implementation The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda Signed-off-by: Mark Brown sound/soc/intel/atom/sst/sst_ipc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 839b47bca58ac67657c7afea363ede72c1a2480c Author: Geert Uytterhoeven Date: Mon Jul 6 15:41:18 2015 +0200 staging: comedi: Grammar s/Enable support a/Enable support for a/ Signed-off-by: Geert Uytterhoeven Reviewed-by: Ian Abbott Signed-off-by: Jiri Kosina drivers/staging/comedi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d41e36a0ab358a40aa2ec7014f38b80ed22773c6 Author: Geert Uytterhoeven Date: Mon Jul 6 15:38:11 2015 +0200 Btrfs: Spelling s/consitent/consistent/ Signed-off-by: Geert Uytterhoeven Acked-by: David Sterba Signed-off-by: Jiri Kosina fs/btrfs/qgroup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79398057a75a3e76047845af70036e6bfff1751b Author: Diego Viola Date: Mon Jul 6 14:33:21 2015 -0300 README: GTK+ is a acronym Signed-off-by: Diego Viola Signed-off-by: Jiri Kosina README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99876030b3d8b9c4395f96c9538a129aa644cc51 Author: Nik Nyby Date: Tue Jun 30 17:03:18 2015 -0400 ASoC: omap: Fix typo in config option description This fixes a typo in the description for SND_OMAP_SOC_HDMI_AUDIO. Signed-off-by: Nik Nyby Acked-by: Peter Ujfalusi Signed-off-by: Jiri Kosina sound/soc/omap/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e49e399b420a8a8a8ebbdf03099a5b4d7541331 Author: Nik Nyby Date: Mon Jun 29 16:16:20 2015 -0400 mm: tlb.c: Fix error message This fixes a typo in two error messages, from "Reigster" to "Register". Signed-off-by: Nik Nyby Signed-off-by: Jiri Kosina arch/ia64/mm/tlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d31e77177dfc82670c182e3c4c2456c055cca1d7 Author: Nik Nyby Date: Mon Jun 29 15:24:38 2015 -0400 ntfs: super.c: Fix error log "transation" should be "transaction" Signed-off-by: Nik Nyby Signed-off-by: Jiri Kosina fs/ntfs/super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 253508cadddbb676b05f03ada93d0f986df107f5 Author: Nik Nyby Date: Fri Jun 26 12:05:39 2015 -0400 fix typo in Documentation/SubmittingPatches This adds a missing letter in Documentation/SubmittingPatches. Signed-off-by: Nik Nyby Signed-off-by: Jiri Kosina Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bd0a1d6c10a43280a85f7283351623d16e21d9fc Author: Masanari Iida Date: Thu Jun 4 00:54:34 2015 +0900 scsi:fcoe: Fix typo "a ethernet" in fcoe_transport.c This patch fix some "a ethernet" in MODULE_DESCRIPTIONS in fcoe_transport.c Signed-off-by: Masanari Iida Acked-by: Vasu Dev Signed-off-by: Jiri Kosina drivers/scsi/fcoe/fcoe_transport.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1066c48281d0401cafff58e7eff1820936eef489 Author: Diego Viola Date: Sun May 31 15:52:41 2015 -0300 drivers/usb/gadget/composite.c: i18n is not an acronym Signed-off-by: Diego Viola Signed-off-by: Jiri Kosina drivers/usb/gadget/composite.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7cd71c3ba166913a0afb8ac0d6bd5d2730fea6df Author: Mark Brown Date: Fri Aug 7 13:00:35 2015 +0100 regulator: core: Drop regulator_list_mutex when we're done with it on remove When removing a regulator we hold regulator_list_mutex in order to ensure the regualtor doesn't become removed again. However we only need to protect the list until we remove the regulator from the list so move the unlock earlier to reduce the locked region. Signed-off-by: Mark Brown drivers/regulator/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60acc4ebe710a8e5c56a8488e91c8b1903289ca8 Author: Laurent Pinchart Date: Wed May 27 15:05:42 2015 +0300 treewide: Fix typo compatability -> compatibility Even though 'compatability' has a dedicated entry in the Wiktionary, it's listed as 'Mispelling of compatibility'. Fix it. Signed-off-by: Laurent Pinchart Acked-by: David S. Miller Acked-by: Daniel Vetter for the atomic_helper.c Signed-off-by: Jiri Kosina arch/metag/include/asm/elf.h | 2 +- arch/powerpc/kvm/book3s.c | 2 +- arch/sparc/include/uapi/asm/pstate.h | 2 +- drivers/gpu/drm/drm_atomic_helper.c | 4 ++-- drivers/media/dvb-frontends/au8522_dig.c | 2 +- drivers/net/wireless/ipw2x00/ipw2100.h | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) commit b527538fe6f9506d619c09ee5f86b27d91e779e4 Author: Masanari Iida Date: Thu May 21 22:41:10 2015 +0900 w1: Fix typo in MODULE_DESCRIPTION in matrox_w1.c This patch fix spelling typo in matrox_w1.c Signed-off-by: Masanari Iida Acked-by: Evgeniy Polyakov Signed-off-by: Jiri Kosina drivers/w1/masters/matrox_w1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3da56d1663158a23818a5b94721cd79f7e4342d7 Author: Frans Klaver Date: Thu May 21 22:35:57 2015 +0200 kernel: exit: fix typo in comment s,critiera,criteria, While at it, add a comma, because it makes sense grammatically. Signed-off-by: Frans Klaver Signed-off-by: Jiri Kosina kernel/exit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eaf593c38d793ef1e63c90150a1555f5e6631b56 Author: Geert Uytterhoeven Date: Thu May 21 14:12:29 2015 +0200 freevxfs: Grammar s/an negative/a negative/ Signed-off-by: Geert Uytterhoeven Signed-off-by: Jiri Kosina fs/freevxfs/vxfs_lookup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8ffcf711c2d58ffb8d3aaa1c7e1d075f13be852 Author: Geert Uytterhoeven Date: Thu May 21 14:02:18 2015 +0200 ASoC: fsl_esai: Spelling s/specifially/specifically/ Signed-off-by: Geert Uytterhoeven Acked-by: Nicolin Chen Signed-off-by: Jiri Kosina sound/soc/fsl/fsl_esai.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 971bd8fa369a37b047c26e9a47d4c1f5d2dce4d3 Author: Masanari Iida Date: Wed May 20 23:54:02 2015 +0900 treewide: Fix typo in printk This patch fix spelling typo inv various part of sources. Signed-off-by: Masanari Iida Acked-by: Randy Dunlap Signed-off-by: Jiri Kosina arch/powerpc/sysdev/fsl_pci.c | 2 +- drivers/crypto/img-hash.c | 2 +- drivers/input/touchscreen/ili210x.c | 4 ++-- drivers/isdn/mISDN/dsp_cmx.c | 2 +- drivers/mailbox/arm_mhu.c | 2 +- drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c | 2 +- drivers/regulator/max77843.c | 2 +- drivers/usb/dwc2/core.c | 2 +- fs/ecryptfs/mmap.c | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) commit 152b28392a8d9dd08e789b48b602eb75eef436fa Author: Nicholas Krause Date: Thu Aug 6 13:05:54 2015 -0400 KVM: s390: Fix assumption that kvm_set_irq_routing is always run successfully This fixes the assumption that kvm_set_irq_routing is always run successfully by instead making it equal to the variable r which we use for returning in the function kvm_arch_vm_ioctl instead of making r equal to zero when calling this particular function and incorrectly making the caller of kvm_arch_vm_ioctl think the function has run successfully. Signed-off-by: Nicholas Krause Message-Id: <1438880754-27149-1-git-send-email-xerofoify@gmail.com> Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 16fd6572e48a3e3ab42cba72a9d7d57881c5fdfd Author: Alexandre Belloni Date: Wed Jul 29 14:10:07 2015 +0200 ARM: at91/dt: sama5d4: use slow clock where necessary The watchdog, the reset controller, the RTC, the shutdown controller, the timer counters and the LCD PWM need the slow clock, add it where necessary. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/sama5d4.dtsi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 288fb7ff8eed8a611af0fa35648a035976ed5108 Author: Alexandre Belloni Date: Wed Jul 29 14:10:06 2015 +0200 ARM: at91/dt: sama5d3: use slow clock where necessary The watchdog, the reset controller, the RTC, the shutdown controller, the timer counters and the LCD PWM need the slow clock, add it where necessary. [boris.brezillon@free-electrons.com: add tcb clocks] Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/sama5d3.dtsi | 8 ++++++-- arch/arm/boot/dts/sama5d3_tcb1.dtsi | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) commit 39c6491505ce872fa52c4961e21ee13ca7675739 Author: Alexandre Belloni Date: Wed Jul 29 14:10:06 2015 +0200 ARM: at91/dt: at91sam9x5: use slow clock where necessary The watchdog, the reset controller, the RTC, the shutdown controller, the timer counters and the LCD PWM need the slow clock, add it where necessary, The LCD PWM will be handled later. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9x5.dtsi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 8c945b7e4eceb09ecb1405b02561fcc1b058a8eb Author: Alexandre Belloni Date: Wed Jul 29 14:10:05 2015 +0200 ARM: at91/dt: at91sam9rl: use slow clock where necessary The watchdog, the reset controller, the RTC, the real-time timer, the shutdown controller and the timer counter need the slow clock, add it where necessary. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9rl.dtsi | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 67451069d4442d2833c906facaff20aa532dea22 Author: Alexandre Belloni Date: Wed Jul 29 14:10:05 2015 +0200 ARM: at91/dt: at91sam9n12: use slow clock where necessary The watchdog, the reset controller, the RTC, the shutdown controller, the timer counters and the LCD PWM need the slow clock, add it where necessary. The LCD PWM will be handled later. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9n12.dtsi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 6b2717928c6a938dcd2d1cc6a3054be86117700e Author: Alexandre Belloni Date: Wed Jul 29 14:10:04 2015 +0200 ARM: at91/dt: at91sam9g45: use slow clock where necessary The watchdog, the reset controller, the RTC, the real-time timer, the shutdown controller and the timer counters need the slow clock, add it where necessary. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9g45.dtsi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 53b0b37852134b19df04cadf7526ddf6650e9915 Author: Alexandre Belloni Date: Wed Jul 29 14:10:03 2015 +0200 ARM: at91/dt: at91sam9263: use slow clock where necessary The watchdog, the reset controller, the two real-time timers, the shutdown controller and the timer counter need the slow clock, add it where necessary. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9263.dtsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 547eab90f9ee6495e1a61520c38a7386e8898fad Author: Alexandre Belloni Date: Wed Jul 29 14:09:54 2015 +0200 ARM: at91/dt: at91sam9261: use slow clock where necessary The watchdog, the reset controller, the real-time timer, the shutdown controller and the timer counter need the slow clock, add it where necessary. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9261.dtsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit d0c7faba1f37885cd2de66b62d00240623c5e59c Author: Alexandre Belloni Date: Wed Jul 29 14:09:53 2015 +0200 ARM: at91/dt: at91sam9260: use slow clock where necessary The watchdog, the reset controller, the real-time timer, the shutdown controller, the timer counters need the slow clock, add it where necessary. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91sam9260.dtsi | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 07e15f2155a6cc57dc945e67aaa1267b254cba0f Author: Alexandre Belloni Date: Wed Jul 29 14:09:52 2015 +0200 ARM: at91/dt: at91rm9200: use slow clock where necessary The system timer, the RTC and the timer counters need the slow clock, add it. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni arch/arm/boot/dts/at91rm9200.dtsi | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit e1162cba4e44bd97d7e690bf664afc71a85b1413 Author: Alexandre Belloni Date: Thu Jul 30 00:49:44 2015 +0200 Documentation: dt: rtc: at91rm9200: add clocks property The RTC needs an input clock, it is the slow clock. It is required as it will not function without it. Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt | 2 ++ 1 file changed, 2 insertions(+) commit d79e327aa58505fe693ef4a5157cc61eb968be02 Author: Alexandre Belloni Date: Thu Jul 30 00:43:07 2015 +0200 Documentation: watchdog: at91sam9_wdt: add clocks property The watchdog has an input clock, the slow clock. It is required as it will not function without it. Reviewed-by: Guenter Roeck Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni Documentation/devicetree/bindings/watchdog/atmel-wdt.txt | 2 ++ 1 file changed, 2 insertions(+) commit 04600560a01270ef3a9bdeaeeebcfa23df81a327 Author: Boris Brezillon Date: Fri Jul 31 02:11:14 2015 +0200 Documentation: dt: atmel-at91: add slow clock to tcb The timer counters need the slow clock. It is required as they will not function without it. Signed-off-by: Boris Brezillon Signed-off-by: Alexandre Belloni Documentation/devicetree/bindings/arm/atmel-at91.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fe2edd9cbb7763c68350e267f8060113ce9848fe Author: Alexandre Belloni Date: Thu Jul 30 01:02:36 2015 +0200 Documentation: dt: atmel-at91: add clocks to system timer, rstc and shdwc The system timer (at91rm9200), the reset controller and the shutdown controller need an input clock. This is the slow clock and they will not function without it. Also fix the shutdown controller example. Acked-By: Sebastian Reichel Acked-by: Boris Brezillon Signed-off-by: Alexandre Belloni Documentation/devicetree/bindings/arm/atmel-at91.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 3499abb249bb5ed9d21031944bc3059ec4aa2909 Author: Andreas Schultz Date: Wed Aug 5 17:51:45 2015 +0200 netfilter: nfacct: per network namespace support - Move the nfnl_acct_list into the network namespace, initialize and destroy it per namespace - Keep track of refcnt on nfacct objects, the old logic does not longer work with a per namespace list - Adjust xt_nfacct to pass the namespace when registring objects Signed-off-by: Andreas Schultz Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/nfnetlink_acct.h | 3 +- include/net/net_namespace.h | 3 ++ net/netfilter/nfnetlink_acct.c | 71 ++++++++++++++++++++++---------- net/netfilter/xt_nfacct.c | 2 +- 4 files changed, 56 insertions(+), 23 deletions(-) commit d2168e849ebf617b2b7feae44c0c0baf739cb610 Author: Pablo Neira Ayuso Date: Wed Aug 5 12:38:44 2015 +0200 netfilter: nft_limit: add per-byte limiting This patch adds a new NFTA_LIMIT_TYPE netlink attribute to indicate the type of limiting. Contrary to per-packet limiting, the cost is calculated from the packet path since this depends on the packet length. The burst attribute indicates the number of bytes in which the rate can be exceeded. Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nf_tables.h | 7 ++++ net/netfilter/nft_limit.c | 63 ++++++++++++++++++++++++++++++-- 2 files changed, 66 insertions(+), 4 deletions(-) commit 8bdf3626425520e9bc55996d5d46f60e12dd3ad7 Author: Pablo Neira Ayuso Date: Sun Aug 2 14:24:24 2015 +0200 netfilter: nft_limit: constant token cost per packet The cost per packet can be calculated from the control plane path since this doesn't ever change. Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_limit.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit 3e87baafa4f476017b2453e52a1ca7308b4e6ad5 Author: Pablo Neira Ayuso Date: Sun Aug 2 18:02:14 2015 +0200 netfilter: nft_limit: add burst parameter This patch adds the burst parameter. This burst indicates the number of packets that can exceed the limit. Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nf_tables.h | 2 ++ net/netfilter/nft_limit.c | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) commit f8d3a6bc76011bb86d2515ebd0b3b300641f2f8c Author: Pablo Neira Ayuso Date: Sun Aug 2 14:16:42 2015 +0200 netfilter: nft_limit: factor out shared code with per-byte limiting This patch prepares the introduction of per-byte limiting. Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_limit.c | 86 +++++++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 33 deletions(-) commit dba27ec1bc382014aa2ba46e96f421b5f6536dae Author: Pablo Neira Ayuso Date: Fri Jul 31 14:10:22 2015 +0200 netfilter: nft_limit: convert to token-based limiting at nanosecond granularity Rework the limit expression to use a token-based limiting approach that refills the bucket gradually. The tokens are calculated at nanosecond granularity instead jiffies to improve precision. Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_limit.c | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) commit 09e4e42a00b99e94cfce27e63b06daca0c26e841 Author: Pablo Neira Ayuso Date: Fri Jul 31 14:16:51 2015 +0200 netfilter: nft_limit: rename to nft_limit_pkts To prepare introduction of bytes ratelimit support. Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_limit.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit d877f07112f1e5a247c6b585c971a93895c9f738 Author: Pablo Neira Ayuso Date: Sun May 31 18:04:11 2015 +0200 netfilter: nf_tables: add nft_dup expression This new expression uses the nf_dup engine to clone packets to a given gateway. Unlike xt_TEE, we use an index to indicate output interface which should be fine at this stage. Moreover, change to the preemtion-safe this_cpu_read(nf_skb_duplicated) from nf_dup_ipv{4,6} to silence a lockdep splat. Based on the original tee expression from Arturo Borrero Gonzalez, although this patch has diverted quite a bit from this initial effort due to the change to support maps. Signed-off-by: Pablo Neira Ayuso include/net/netfilter/nft_dup.h | 9 +++ include/uapi/linux/netfilter/nf_tables.h | 14 ++++ net/ipv4/netfilter/Kconfig | 6 ++ net/ipv4/netfilter/Makefile | 1 + net/ipv4/netfilter/nf_dup_ipv4.c | 2 +- net/ipv4/netfilter/nft_dup_ipv4.c | 110 +++++++++++++++++++++++++++++++ net/ipv6/netfilter/Kconfig | 6 ++ net/ipv6/netfilter/Makefile | 1 + net/ipv6/netfilter/nf_dup_ipv6.c | 2 +- net/ipv6/netfilter/nft_dup_ipv6.c | 108 ++++++++++++++++++++++++++++++ 10 files changed, 257 insertions(+), 2 deletions(-) commit bbde9fc1824aab58bc78c084163007dd6c03fe5b Author: Pablo Neira Ayuso Date: Sun May 31 17:54:44 2015 +0200 netfilter: factor out packet duplication for IPv4/IPv6 Extracted from the xtables TEE target. This creates two new modules for IPv4 and IPv6 that are shared between the TEE target and the new nf_tables dup expressions. Signed-off-by: Pablo Neira Ayuso include/net/netfilter/ipv4/nf_dup_ipv4.h | 7 ++ include/net/netfilter/ipv6/nf_dup_ipv6.h | 7 ++ net/ipv4/netfilter/Kconfig | 6 ++ net/ipv4/netfilter/Makefile | 2 + net/ipv4/netfilter/nf_dup_ipv4.c | 120 +++++++++++++++++++++++ net/ipv6/netfilter/Kconfig | 6 ++ net/ipv6/netfilter/Makefile | 2 + net/ipv6/netfilter/nf_dup_ipv6.c | 96 +++++++++++++++++++ net/netfilter/Kconfig | 2 + net/netfilter/xt_TEE.c | 158 ++----------------------------- 10 files changed, 254 insertions(+), 152 deletions(-) commit 24b7811fa5de7bbbab3b782a38889034ea267f70 Author: Pablo Neira Ayuso Date: Wed Jul 1 16:38:10 2015 +0200 netfilter: xt_TEE: get rid of WITH_CONNTRACK definition Use IS_ENABLED(CONFIG_NF_CONNTRACK) instead. Signed-off-by: Pablo Neira Ayuso net/netfilter/xt_TEE.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 0c45e76960ded9da56bd66e603a7f0cae215f87e Author: Pablo Neira Ayuso Date: Mon Jun 8 14:42:40 2015 +0200 netfilter: nft_counter: convert it to use per-cpu counters This patch converts the existing seqlock to per-cpu counters. Suggested-by: Eric Dumazet Suggested-by: Patrick McHardy Signed-off-by: Pablo Neira Ayuso net/netfilter/nft_counter.c | 97 ++++++++++++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 28 deletions(-) commit 12e035968191c05a574c9c20367cb3090bc7d99d Author: Felix Fietkau Date: Thu Aug 6 12:44:30 2015 +0200 ath9k: fix build with CONFIG_ATH9K_STATION_STATISTICS=y kbuild bot reported that commit 592fa228f213 ("ath9k: remove struct ath_atx_ac") broke the build when CONFIG_ATH9K_STATION_STATISTICS is y. Reported-by: kbuild test robot Fixes: 592fa228f213 ("ath9k: remove struct ath_atx_ac") Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/debug_sta.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) commit f968393161de7612800ea650d435ebe26d38e3a5 Merge: 74d3329 f5b8319 Author: Joerg Roedel Date: Fri Aug 7 10:07:24 2015 +0200 Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu commit aad1b688c996b4a247c4a8fd1bd6c5c563963ddb Author: Martin Schwidefsky Date: Fri Aug 7 08:55:48 2015 +0200 s390/vdso: emit a GNU hash As proposed by Andy Lutomirski create the SysV and the GNU hash for the vdso objects. This may make some dynamic loaders a bit faster. Signed-off-by: Martin Schwidefsky arch/s390/kernel/vdso32/Makefile | 2 +- arch/s390/kernel/vdso64/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7cde4910a5adcab62506eff49f4500053464fc8a Author: Michael Holzheu Date: Wed Aug 5 11:23:53 2015 +0200 s390/numa: make core to node mapping data dynamic The core to node mapping data consumes about 2 KB bss data. To save memory for the non-NUMA case, make the data dynamic. In addition change the "core_to_node" array from "int" to "s32" which saves 1 KB also for the NUMA case. Suggested-by: Heiko Carstens Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/numa/mode_emu.c | 68 ++++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 27 deletions(-) commit 854508c0d0bbcf2f80fa1f79af5cb9ce219b2e9c Author: Guenter Roeck Date: Tue Aug 4 23:38:23 2015 -0700 s390/lib: export __delay __delay is exported by most architectures, and may be used in modules. Since it is not exported for s390, s390:allmodconfig currently fails to build with ERROR: "__delay" [drivers/net/phy/mdio-octeon.ko] undefined! Fixes: a6d678645210 ("net: mdio-octeon: Modify driver to work on both ThunderX and Octeon") Cc: Radha Mohan Chintakuntla Cc: David Daney Signed-off-by: Guenter Roeck Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/lib/delay.c | 1 + 1 file changed, 1 insertion(+) commit b2f4de8b843567504ee12b652b35819b60e25a86 Author: Peter Senna Tschudin Date: Tue Aug 4 17:11:47 2015 +0200 s390: remove unneeded variables This patch remove unneeded variables used to store return values. These issues were detected with the Coccinelle script: scripts/coccinelle/misc/returnvar.cocci [heiko.carstens@de.ibm.com]: make qeth_l[2/3]_stop() return void Signed-off-by: Peter Senna Tschudin Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/cio/eadm_sch.c | 3 +-- drivers/s390/net/qeth_l2_main.c | 5 +---- drivers/s390/net/qeth_l3_main.c | 5 +---- 3 files changed, 3 insertions(+), 10 deletions(-) commit 3b97487445ef3833fcb88ca4bb469b6df3b44329 Author: Peter Senna Tschudin Date: Tue Aug 4 17:11:15 2015 +0200 s390: remove unneeded semicolon Remove unneeded semicolon. The semantic patch that detects this change is available at scripts/coccinelle/misc/semicolon.cocci. Signed-off-by: Peter Senna Tschudin Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky drivers/s390/block/dasd_alias.c | 6 +++--- drivers/s390/char/monreader.c | 2 +- drivers/s390/scsi/zfcp_fsf.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 3a3814c28b13d038ce5e055fc01f9a7aa5b821b9 Author: Michael Holzheu Date: Sat Aug 1 18:12:41 2015 +0200 s390/topology: remove topology lock Since we are already protected by the "sched_domains_mutex" lock, we can safely remove the topology lock. Reviewed-by: Heiko Carstens Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/kernel/topology.c | 11 ++++------- arch/s390/numa/mode_emu.c | 7 ++++++- 2 files changed, 10 insertions(+), 8 deletions(-) commit 1ebd08a7e5ef6265092eae19a547674733dc1c01 Merge: d92cff8 d2d7d4e Author: David S. Miller Date: Fri Aug 7 00:19:09 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-08-05 This series contains updates to i40e, i40evf and e1000e. Anjali adds support for x772 devices to i40e and i40evf. With the added support, x772 supports offloading of the outer UDP transmit and receive checksum for tunneled packets. Also supports evicting ATR filters in the hardware, so update the driver with this new feature set. Raanan provides several fixes for e1000e, first rectifies the Energy Efficient Ethernet in Sx code so that it only applies to parts that actually support EEE in Sx. Fix whitespace and moved ICH8 related define to the proper context. Fixed the ASPM locking which was reported by Bjorn Helgaas. Fix a workaround implementation for systime which could experience a large non-linear increment of the systime value when checking for overflow. ==================== Signed-off-by: David S. Miller commit 1354ac6ad84395660f551d0614a6ca39e5bfe8e3 Merge: b6b6c18 141b2d3 Author: Ingo Molnar Date: Fri Aug 7 09:11:30 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - IPC and cycle accounting in 'perf annotate'. (Andi Kleen) - Display cycles in branch sort mode in 'perf report'. (Andi Kleen) - Add total time column to 'perf trace' syscall stats summary. (Milian Woff) Infrastructure changes: - PMU helpers to use in Intel PT. (Adrian Hunter) - Fix perf-with-kcore script not to split args with spaces. (Adrian Hunter) - Add empty Build files for some more architectures. (Ben Hutchings) - Move 'perf stat' config variables to a struct to allow using some of its functions in more places. (Jiri Olsa) - Add DWARF register names for 'xtensa' arch. (Max Filippov) - Implement BPF programs attached to uprobes. (Wang Nan) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit d92cff89a0c80e7e49796366e441d97f07b5d321 Author: Jason A. Donenfeld Date: Tue Aug 4 18:26:19 2015 +0200 net_dbg_ratelimited: turn into no-op when !DEBUG The pr_debug family of functions turns into a no-op when -DDEBUG is not specified, opting instead to call "no_printk", which gets compiled to a no-op (but retains gcc's nice warnings about printf-style arguments). The problem with net_dbg_ratelimited is that it is defined to be a variant of net_ratelimited_function, which expands to essentially: if (net_ratelimit()) pr_debug(fmt, ...); When DEBUG is not defined, then this becomes, if (net_ratelimit()) ; This seems benign, except it isn't. Firstly, there's the obvious overhead of calling net_ratelimit needlessly, which does quite some book keeping for the rate limiting. Given that the pr_debug and net_dbg_ratelimited family of functions are sprinkled liberally through performance critical code, with developers assuming they'll be compiled out to a no-op most of the time, we certainly do not want this needless book keeping. Secondly, and most visibly, even though no debug message is printed when DEBUG is not defined, if there is a flood of invocations, dmesg winds up peppered with messages such as "net_ratelimit: 320 callbacks suppressed". This is because our aforementioned net_ratelimit() function actually prints this text in some circumstances. It's especially odd to see this when there isn't any other accompanying debug message. So, in sum, it doesn't make sense to have this function's current behavior, and instead it should match what every other debug family of functions in the kernel does with !DEBUG -- nothing. This patch replaces calls to net_dbg_ratelimited when !DEBUG with no_printk, keeping with the idiom of all the other debug print helpers. Also, though not strictly neccessary, it guards the call with an if (0) so that all evaluation of any arguments are sure to be compiled out. Signed-off-by: Jason A. Donenfeld Signed-off-by: David S. Miller include/linux/net.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9610c8abd2d278a957b1b586390b8c928980e79b Author: Tony Lindgren Date: Thu Aug 6 22:09:40 2015 -0700 ARM: OMAP2+: Fix power domain operations regression caused by 81xx I managed to mess up omap3 power domain operations with commit 7c80a3f89c51 ("ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x"), by default we should keep on using the omap3_pwrdm_operations, only 81xx needs custom handling. This causes omap3 PM to break so we won't hit off mode any longer causing idle power consumption go up from less than 10mW to over 50 mW. Fixs: 7c80a3f89c51 ("ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x") Signed-off-by: Tony Lindgren arch/arm/mach-omap2/powerdomains3xxx_data.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b49d15d138aa4632f35a2db93dee775d920f3653 Author: NeilBrown Date: Fri Aug 7 13:45:25 2015 +1000 twl4030_charger: fix compile error when TWL4030_MADC not available. We can only use the madc to check for 'ac' availability if the madc has been compiled in. If not: assume always using USB. Reported-by: Tony Lindgren Signed-off-by: NeilBrown Acked-by: Tony Lindgren Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 3dcb615e6841eb945a49f605743a6923ed591400 Author: Roopa Prabhu Date: Tue Aug 4 06:36:24 2015 -0700 af_mpls: add null dev check in find_outdev This patch adds null dev check for the 'cfg->rc_via_table == NEIGH_LINK_TABLE or dev_get_by_index() failed' case Reported-by: Dan Carpenter Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/mpls/af_mpls.c | 3 +++ 1 file changed, 3 insertions(+) commit 3c621818404bbb0bed1a8892d843b499182fa7e9 Merge: c71b5ad 86bf172 Author: David S. Miller Date: Thu Aug 6 22:02:32 2015 -0700 Merge branch 'test-bpf-next' Nicolas Schichan says: ==================== test_bpf improvements Please find below the patch series with my latest changes to test_bpf. The first patch checks for unexpected NULL generated skbs before running the filter. The second patch adds the possibility for tests to generate fragmented skbs. The third patch tests LD_ABS and LD_IND on fragmented skbs. The fourth patch adds the possibility to restrict the tests being run by specifying the name/id/range of the test(s) to run via module parameters. The fifth patch tests LD_ABS and LD_IND on non fragmented skbs with various sizes and alignments. The sixth and final patch checks that the interpreter or JIT correctly resets A and X to 0. This serie is against today's net-next tree. Changes in V2: * move declaration of 'ptr' in if() block in patch 2/6. * fix various typos in patch 4/6 * rework default init of test_range array and cleanup exclude_test() return condition in patch 4/6. ==================== Signed-off-by: David S. Miller commit 86bf1721b2263607588b23b22e78c971379972b5 Author: Nicolas Schichan Date: Tue Aug 4 15:19:12 2015 +0200 test_bpf: add tests checking that JIT/interpreter sets A and X to 0. It is mandatory for the JIT or interpreter to reset the A and X registers to 0 before running the filter. Check that it is the case on various ALU and JMP instructions. Signed-off-by: Nicolas Schichan Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) commit 08fcb08fc06758411d099bcd6a60d6cdee2d50a7 Author: Nicolas Schichan Date: Tue Aug 4 15:19:11 2015 +0200 test_bpf: add more tests for LD_ABS and LD_IND. This exerces the LD_ABS and LD_IND instructions for various sizes and alignments. This also checks that X when used as an offset to a BPF_IND instruction first in a filter is correctly set to 0. Signed-off-by: Nicolas Schichan Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 296 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) commit d2648d4e268cee60c9c917a04c3fbc4e8c3bbc7e Author: Nicolas Schichan Date: Tue Aug 4 15:19:10 2015 +0200 test_bpf: add module parameters to filter the tests to run. When developping on the interpreter or a particular JIT, it can be interesting to restrict the tests list to a specific test or a particular range of tests. This patch adds the following module parameters to the test_bpf module: * test_name=: only the specified named test will be run. * test_id=: only the test with the specified id will be run (see the output of test_bpf without parameters to get the test id). * test_range=,: only the tests within IDs in the specified id range are run (see the output of test_bpf without parameters to get the test ids). Any invalid range, test id or test name will result in -EINVAL being returned and no tests being run. Signed-off-by: Nicolas Schichan Acked-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/test_bpf.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) commit 2cf1ad759307f4ef2a27a59f3071e357ec487841 Author: Nicolas Schichan Date: Tue Aug 4 15:19:09 2015 +0200 test_bpf: test LD_ABS and LD_IND instructions on fragmented skbs. These new tests exercise various load sizes and offsets crossing the head/fragment boundary. Signed-off-by: Nicolas Schichan Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) commit bac142acb90e952899cb8204fad12ef7d1e42f94 Author: Nicolas Schichan Date: Tue Aug 4 15:19:08 2015 +0200 test_bpf: allow tests to specify an skb fragment. This introduce a new test->aux flag (FLAG_SKB_FRAG) to tell the populate_skb() function to add a fragment to the test skb containing the data specified in test->frag_data). Signed-off-by: Nicolas Schichan Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) commit e34684f88efd9cf29ad5ff4750a0f5586383141f Author: Nicolas Schichan Date: Tue Aug 4 15:19:07 2015 +0200 test_bpf: avoid oopsing the kernel when generate_test_data() fails. Signed-off-by: Nicolas Schichan Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: David S. Miller lib/test_bpf.c | 5 +++++ 1 file changed, 5 insertions(+) commit c71b5ad06e7306f73815cd64a5fe039a67126c99 Merge: adc4cc9 efea389 Author: David S. Miller Date: Thu Aug 6 22:00:59 2015 -0700 Merge branch 'mlx5e-next' Amir Vadai says: ==================== net/mlx5e: Driver updates 04-Aug-2015 This patchset introduces two features to the ConnectX-4 driver: Patch 8/8 ("Support physical port counters") exposes some hardware counters through ethtool. Rest of the patches are preparation and usage of what we call light-weight netdev open/close. Some flows that used to be in the ndo_open/stop are moved to the PCI probe/remove flows - i.e. we will make the netdev open/close operations more "light-weight". The benefits of this change are: 1) Reduce the execution time of the stop/open operations. 2) Avoid saving SW shadows of resource configurations that must persist through stop/open operations (e.g flow table steering rules), and avoid deleting/applying them from/to the device upon netdev stop/open. 3) Avoid synchronizing threads that access those resources with the netdev stop/open threads. Instead of create/destroy the resource during netdev open/stop, This patchset changes the behavior such that upon netdev stop, traffic is redirected to a "Drop RQ" (a RQ that silently drops, at the NIC HW level all incoming traffic). After redirecting the traffic, RX/TX software resources could be destroyed. During netdev open, the RX/TX rings are created and traffic is redirected to the RX rings. Patchset was applied and tested over commit ba7591d ("ebpf: add skb->hash to offset map for usage in {cls, act}_bpf or filters") ==================== Signed-off-by: David S. Miller commit efea389d3cc6427a9a94e92b2d7bf4c862f2cfcf Author: Gal Pressman Date: Tue Aug 4 14:05:47 2015 +0300 net/mlx5_core: Support physical port counters Added physical port counters in the following standard formats to ethtool statistics: - IEEE 802.3 - RFC2863 - RFC2819 Signed-off-by: Gal Pressman Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 75 ++++++++++++++++++++++ .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 10 ++- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 42 ++++++++++++ include/linux/mlx5/device.h | 10 +++ include/linux/mlx5/driver.h | 1 + 5 files changed, 137 insertions(+), 1 deletion(-) commit 9b37b07fcb0e00a9c0b605b7b28c2d200f4eb064 Author: Achiad Shochat Date: Tue Aug 4 14:05:46 2015 +0300 net/mlx5e: Take advantage of the light-weight netdev open/stop Now that TIRs, TISs and flow tables are kept alive while the netdev is stopped (after executing ndo_stop()) we can do the following improvements: - Obsolete the active_vlans SW shadow. - Do not delete/add flow table rules upon ndo_stop/open. In addition to simplifying the flow, this change also fastens the ndo_open/close operations. - Obsolete synchronization of threads accessing the flow tables with the netdev stop/open threads. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 5 +- .../ethernet/mellanox/mlx5/core/en_flow_table.c | 109 +++++---------------- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 24 ++--- 3 files changed, 32 insertions(+), 106 deletions(-) commit 1cefa326ff26dddb2c4a7f43802ce0ba5c35a2ba Author: Achiad Shochat Date: Tue Aug 4 14:05:45 2015 +0300 net/mlx5e: Disable async events before unregister_netdev() It does not make sense to allow events while the netdev is unregistered. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 40ab6a6ebeebbcfc313233f5aa0d55930734f529 Author: Achiad Shochat Date: Tue Aug 4 14:05:44 2015 +0300 net/mlx5e: Rename/move functions following the ndo_stop flow change Rename some functions that used to be invoked upon ndo_open/stop and are now invoked upon create/destroy_netdev() in order to better hint their place in the flow. Change some functions location in the file so that functions involved in ndo_open/stop flow will not be interleaved with other functions. This is a cosmetic change, no logical change here. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 +- .../ethernet/mellanox/mlx5/core/en_flow_table.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 606 ++++++++++----------- 3 files changed, 306 insertions(+), 308 deletions(-) commit 5c50368f38317627421bf24a0b66b1af0d44eddc Author: Achiad Shochat Date: Tue Aug 4 14:05:43 2015 +0300 net/mlx5e: Light-weight netdev open/stop Create/destroy TIRs, TISs and flow tables upon PCI probe/remove rather than upon the netdev ndo_open/stop. Upon ndo_stop(), redirect all RX traffic to the (lately introduced) "Drop RQ" and then close only the RX/TX rings, leaving the TIRs, TISs and flow tables alive. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 237 ++++++++++++++------- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 12 ++ drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 2 + include/linux/mlx5/mlx5_ifc.h | 9 +- 4 files changed, 184 insertions(+), 76 deletions(-) commit d9eea403ca81f60cd535d354c77ada4c2bee8d66 Author: Achiad Shochat Date: Tue Aug 4 14:05:42 2015 +0300 net/mlx5_core: Introduce access function to modify RSS/LRO params To be used by the mlx5 Eth driver in following commit. This is in preparation for netdev "light-weight" open/stop flow change described in previous commit. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 12 ++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 2 ++ include/linux/mlx5/mlx5_ifc.h | 9 ++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) commit 50cfa25aba67c658979c5a3188d514ee6780364b Author: Achiad Shochat Date: Tue Aug 4 14:05:41 2015 +0300 net/mlx5e: Introduce the "Drop RQ" RX traffic routed to this RQ will be silently dropped, at the NIC HW level. This is in preparation for netdev "light-weight" open/stop flow change described in previous commit. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 3 + drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 122 ++++++++++++++++++++-- 2 files changed, 114 insertions(+), 11 deletions(-) commit 4cbeaff54f00f39493c4251bf115d02e26ac8bf2 Author: Achiad Shochat Date: Tue Aug 4 14:05:40 2015 +0300 net/mlx5e: Unify the RX flow Generally an RX packet flows through the following objects: Flow table --> TIR --> RQT --> RQ Where: - TIR stands for "Transport Interface Receive", defining the RSS and LRO paramaters. - RQT stands for "RQ Table", implementing the RSS indirection table. - RQ stands for "Receive Queue" For flows that do not need LRO, nor RSS, the driver made a shortcut to the above RX flow by pointing to the RQ directly from the TIR, yielding this flow: Flow table --> TIR --> RQ In this commit we remove this shortcut by "inserting" a single-RQ RQT between the TIR and the RQ, i.e RX packets will reach the same RQ but will go through an RQT of size 1, pointing to just a single RQ. This way the RX traffic re-direction to/from the "Drop RQ" will be more uniform (AKA "one flow"), as it will involve only RQTs re-direction and no TIRs re-direction. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 10 +-- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 93 ++++++++++++++++------- 2 files changed, 69 insertions(+), 34 deletions(-) commit adc4cc99b765d49b0613365a89212cfc75c06c22 Merge: 5a9348b 32a7432 Author: David S. Miller Date: Thu Aug 6 21:59:27 2015 -0700 Merge branch 'cpsw-next' Mugunthan V N says: ==================== CPSW interrupt handling cleanup and performance improvement This patch series removes the irq controller disable interrupt and adding a napi for tx event handling which improves the performance by ~180Mbps on dra7-evm [ 5] local 192.168.10.116 port 5001 connected with 192.168.10.165 port 44176 [ 5] 0.0-60.0 sec 1.48 GBytes 210 Mbits/sec [ 4] local 192.168.10.116 port 5001 connected with 192.168.10.165 port 33257 [ 4] 0.0-60.0 sec 2.71 GBytes 386 Mbits/sec Changes from initial version: * Added a patch to have napi only for first interface as there is no use of having seperate napis for each interface as the interrupt is shared by both interface and only one napi is scheduled for each interrupt. ==================== Signed-off-by: David S. Miller commit 32a7432c0fb8b0117961bdc7ab256667d039de16 Author: Mugunthan V N Date: Tue Aug 4 16:06:20 2015 +0530 drivers: net: cpsw: add separate napi for tx Instead of processing tx events in isr adding separate napi for tx which improves performance by ~180Mbps with omap2plus_defconfig on DRA74x platform. Also cleaning up rx napis by renaming to napi_rx for better understanding the code. Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 44 +++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) commit d354eb85d61803e07831b68d1985cd9cfe2f8b59 Author: Mugunthan V N Date: Tue Aug 4 16:06:19 2015 +0530 drivers: net: cpsw: dual_emac: simplify napi usage Since interrupt is shared between the two ethernet interface and in isr only one napi is scheduled at an instance so having two napis doesn't make any difference. So making napi also as a common resource for the dual ethernet interfaces. Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) commit 870915feabdc3af5f0ebb72d1fcf96bff01837b0 Author: Mugunthan V N Date: Tue Aug 4 16:06:18 2015 +0530 drivers: net: cpsw: remove disable_irq/enable_irq as irq can be masked from cpsw itself CPSW interrupts can be disabled by masking CPSW interrupts and clearing interrupt by writing appropriate EOI. So removing all disable_irq/enable_irq as discussed in [1] [1] http://patchwork.ozlabs.org/patch/492741/ Signed-off-by: Mugunthan V N Signed-off-by: David S. Miller drivers/net/ethernet/ti/cpsw.c | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) commit 5a9348b54d396c0b8bb877abcb107293034a87de Author: Dan Carpenter Date: Tue Aug 4 10:44:22 2015 +0300 mpls: small cleanup in inet/inet6_fib_lookup_dev() We recently changed this code from returning NULL to returning ERR_PTR. There are some left over NULL assignments which we can remove. We can preserve the error code from ip_route_output() instead of always returning -ENODEV. Also these functions use a mix of gotos and direct returns. There is no cleanup necessary so I changed the gotos to direct returns. Signed-off-by: Dan Carpenter Acked-by: Roopa Prabhu Acked-by: Robert Shearman Signed-off-by: David S. Miller net/mpls/af_mpls.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 02b52428475672a241365910949deb6fe95d043c Merge: ff14702 2971ff6 Author: David S. Miller Date: Thu Aug 6 21:54:13 2015 -0700 Merge branch 'bnx2x-cnic-bnx2fc-bd-support' Yuval Mintz says: ==================== bnx2x, cnic, bnx2fc: add support for BD Commit 230d00eb4bfe ("bnx2x: new Multi-function mode - BD") added support for a new multi-function mode, but it added only the support required by bnx2x for L2 interfaces. This adds the required changes to support the new multi-function mode in the offloaded storage protocols. Dave, Please consider applying this series to `net-next'. Do notice that this involves non-networking driver changes - but sending this as a single series seemed like the best approach as we had to have bnx2x changes to support the new functionality. If this is problematic, please tell us what's the preferred solution here. Changes from previous versions ------------------------------ - From v1 - no actual changes; v1 failed to reach netdev so in order to keep things in line I've termed this one v2. ==================== Signed-off-by: David S. Miller commit 2971ff67bd3283d187bd7a7906adfbbaad2257e1 Author: Joe Carnuccio Date: Tue Aug 4 09:37:30 2015 +0300 bnx2fc: Read npiv table from nvram and create vports. Signed-off-by: Joe Carnuccio Signed-off-by: Chad Dupuis Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 66 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit 97ac4ef78e6d44019745de7761da8536a9068cf8 Author: Yuval Mintz Date: Tue Aug 4 09:37:29 2015 +0300 bnx2x: Add BD support for storage Commit 230d00eb4bfe ("bnx2x: new Multi-function mode - BD") adds support for the new mode in bnx2x. This expands this support by implementing APIs required by our storage drivers to support that mode. Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 12 +++ .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 19 +++++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 85 ++++++++++++++++++++++ 4 files changed, 118 insertions(+), 2 deletions(-) commit 9b8d5044024df97edfcce8f0c4a6ca0abd99300e Author: Adheer Chandravanshi Date: Tue Aug 4 09:37:28 2015 +0300 cnic: Add the interfaces to get FC-NPIV table. Signed-off-by: Adheer Chandravanshi Signed-off-by: Chad Dupuis Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/cnic.c | 18 ++++++++++++++++++ drivers/net/ethernet/broadcom/cnic_if.h | 16 ++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) commit eddb755428e6e723bf587a4e2c15055c8ac02f5b Author: Tej Parkash Date: Tue Aug 4 09:37:27 2015 +0300 cnic: Populate upper layer driver state in MFW Signed-off-by: Tej Parkash Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/cnic.c | 18 +++++++++++++++--- drivers/net/ethernet/broadcom/cnic_if.h | 5 +++++ 2 files changed, 20 insertions(+), 3 deletions(-) commit ff1470284493ca18da852e36afe39d29d0feb875 Author: Scott Feldman Date: Mon Aug 3 22:31:18 2015 -0700 rocker: use netdev_err after register_netdev After successful register_netdev, we can use netdev_err rather the more generic dev_err. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c4f7780a5dd6773a653c87bf7ee61c6aea6a4e7 Author: Scott Feldman Date: Mon Aug 3 22:31:17 2015 -0700 rocker: NULL port if port probe fails Set port to NULL if port probe fails so we don't try to remove partially initialized port on port probe err cleanup path. Signed-off-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 1 + 1 file changed, 1 insertion(+) commit 459c15e53cf7e4e88a78ecfb109af5a267c5500a Merge: 730daa1 233ce79 Author: James Morris Date: Fri Aug 7 13:27:58 2015 +1000 Merge tag 'asn1-fixes-20150805' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into next commit 5aecc3c8a24a7c2db29ec4a927bbb08befcb508e Author: Ethan Zhao Date: Wed Aug 5 09:28:50 2015 +0900 intel_pstate: append more Oracle OEM table id to vendor bypass list Append more Oracle X86 servers that have their own power management, SUN FIRE X4275 M3 SUN FIRE X4170 M3 and SUN FIRE X6-2 Signed-off-by: Ethan Zhao Acked-by: Viresh Kumar Acked-by: Kristen Carlson Accardi Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 4 ++++ 1 file changed, 4 insertions(+) commit 1c9391238753ffb370f02743b5f43bac6dea304b Author: Kristen Carlson Accardi Date: Wed Aug 5 12:47:14 2015 -0700 intel_pstate: Add SKY-S support Whitelist the SKL-S processor Signed-off-by: Kristen Carlson Accardi Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 1 + 1 file changed, 1 insertion(+) commit d15fa86276e8515443251c0d18930e392bc5afc5 Author: Viresh Kumar Date: Wed Jul 29 16:23:11 2015 +0530 cpufreq: dt: Add support for turbo/boost mode With opp-v2 DT bindings, few OPPs can be used only for the boost mode. But using such OPPs require the boost mode to be supported by cpufreq driver. We will parse DT bindings only during ->init() and so can enable boost support only after registering cpufreq driver. This enables boost support as soon as any policy has boost/turbo OPPs for its CPUs. We don't need to disable boost support as that is done by the core, when the driver is unregistered. Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 2e02d8723edf6599988852a8ade8f83b2f766cb8 Author: Viresh Kumar Date: Wed Jul 29 16:23:10 2015 +0530 cpufreq: dt: Add support for operating-points-v2 bindings Support for parsing operating-points-v2 bindings is in place now, lets modify cpufreq-dt driver to use them. For backward compatibility we will continue to support earlier bindings. Special handling for that is required, to make sure OPPs are initialized for all the CPUs. Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq-dt.c | 56 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 10 deletions(-) commit 44139ed4943ee8ec186eea3e9072ca16d2b48133 Author: Viresh Kumar Date: Wed Jul 29 16:23:09 2015 +0530 cpufreq: Allow drivers to enable boost support after registering driver In some cases it wouldn't be known at time of driver registration, if the driver needs to support boost frequencies. For example, while getting boost information from DT with opp-v2 bindings, we need to parse the bindings for all the CPUs to know if turbo/boost OPPs are supported or not. One way out to do that efficiently is to delay supporting boost mode (i.e. creating /sys/devices/system/cpu/cpufreq/boost file), until the time OPP bindings are parsed. At that point, the driver can enable boost support. This can be done at ->init(), where the frequency table is created. To do that, the driver requires few APIs from cpufreq core that let him do this. This patch provides these APIs. Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 68 +++++++++++++++++++++++++++++++------------- drivers/cpufreq/freq_table.c | 15 ++++++++++ include/linux/cpufreq.h | 12 ++++++++ 3 files changed, 75 insertions(+), 20 deletions(-) commit 79eea44a5d7b9170d12d75c701d8c0e2d8d83c06 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 29 16:23:08 2015 +0530 cpufreq: Update boost flag while initializing freq table from OPPs cpufreq table entries for OPPs with turbo modes enabled, should be marked with CPUFREQ_BOOST_FREQ flag. This ensures that these states are only used while operating in boost or turbo mode. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_opp.c | 4 ++++ 1 file changed, 4 insertions(+) commit 2dc36ecfaa0e668eabdc6b7df4592a08ef8776ee Merge: 19445b2 144c8e1 Author: Rafael J. Wysocki Date: Fri Aug 7 03:25:16 2015 +0200 Merge branch 'pm-cpufreq' into pm-opp commit 19445b25e350ebebaa304bb2135619f643302947 Author: Bartlomiej Zolnierkiewicz Date: Thu Jul 9 17:43:35 2015 +0200 PM / OPP: add dev_pm_opp_is_turbo() helper Add dev_pm_opp_is_turbo() helper to verify if an opp is to be used only for turbo mode or not. Reviewed-by: Stephen Boyd Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 34 ++++++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 7 +++++++ 2 files changed, 41 insertions(+) commit 8d4d4e98acd68c31435ebb7beea591dbf60b9eb2 Author: Viresh Kumar Date: Fri Jun 12 17:10:38 2015 +0530 PM / OPP: Add helpers for initializing CPU OPPs With "operating-points-v2" its possible to tell which devices share OPPs. We already have infrastructure to decode that information. This patch adds following APIs: - of_get_cpus_sharing_opps: Returns cpumask of CPUs sharing OPPs (only valid with v2 bindings). - of_cpumask_init_opp_table: Initializes OPPs for all CPUs present in cpumask. - of_cpumask_free_opp_table: Frees OPPs for all CPUs present in cpumask. - set_cpus_sharing_opps: Sets which CPUs share OPPs (only valid with old OPP bindings, as this information isn't present in DT). Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 175 +++++++++++++++++++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 23 +++++++ 2 files changed, 198 insertions(+) commit ad656a6a8b1c8b4b2e723646e0402867f2f45395 Author: Viresh Kumar Date: Sat Jun 13 15:10:21 2015 +0530 PM / OPP: Add support for opp-suspend With "operating-points-v2" bindings, it's possible to specify the OPP to which the device must be switched, before suspending. This patch adds support for getting that information. Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 064416586190cb058d4c76a4e26b1996f434b6ca Author: Viresh Kumar Date: Wed Jul 29 16:23:04 2015 +0530 PM / OPP: Add OPP sharing information to OPP library An opp can be shared by multiple devices, for example its very common for CPUs to share the OPPs, i.e. when they share clock/voltage rails. This patch adds support of shared OPPs to the OPP library. Instead of a single device, dev_opp will now contain a list of devices that use it. It also senses if the device (we are trying to initialize OPPs for) shares OPPs with a device added earlier and in that case we update the list of devices managed by OPPs instead of duplicating OPPs again. The same infrastructure will be used for the old OPP bindings, with later patches. Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 174 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 150 insertions(+), 24 deletions(-) commit 3ca9bb33c627f22640cfca97fdf88eec0a120dfd Author: Viresh Kumar Date: Wed Jul 29 16:23:03 2015 +0530 PM / OPP: Add clock-latency-ns support With "operating-points-v2" bindings, clock-latency is defined per OPP. Users of this value expect a single value which defines the latency to switch to any clock rate. Find maximum clock-latency-ns from the OPP table to service requests from such users. Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 41 +++++++++++++++++++++++++++++++++++++++-- include/linux/pm_opp.h | 6 ++++++ 2 files changed, 45 insertions(+), 2 deletions(-) commit 274659029c9de5b11678d3a52a45e3dbc9177a48 Author: Viresh Kumar Date: Wed Jul 29 16:23:02 2015 +0530 PM / OPP: Add support to parse "operating-points-v2" bindings This adds support in OPP library to parse and create list of OPPs from operating-points-v2 bindings. It takes care of most of the properties of new bindings (except shared-opp, which will be handled separately). For backward compatibility, we keep supporting earlier bindings. We try to search for the new bindings first, in case they aren't present we look for the old deprecated ones. There are few things marked as TODO: - Support for multiple OPP tables - Support for multiple regulators They should be fixed separately. Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 257 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 233 insertions(+), 24 deletions(-) commit 23dacf6d2e993551ef3ae0629baf6f473930513c Author: Viresh Kumar Date: Wed Jul 29 16:23:01 2015 +0530 PM / OPP: Break _opp_add_dynamic() into smaller functions Later commits would add support for new OPP bindings and this would be required then. So, lets do it in a separate patch to make it easily reviewable. Another change worth noticing is INIT_LIST_HEAD(&opp->node). We weren't doing it earlier as we never tried to delete a list node before it is added to list. But this wouldn't be the case anymore. We might try to delete a node (just to reuse the same code paths), without it being getting added to the list. Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 125 ++++++++++++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 49 deletions(-) commit aa5f2f854f03e6dc3dec8874bbcff1452b4bc09e Author: Viresh Kumar Date: Wed Jul 29 16:23:00 2015 +0530 PM / OPP: Allocate dev_opp from _add_device_opp() There is no need to complicate _opp_add_dynamic() with allocation of dev_opp as well. Allocate it from _add_device_opp() instead. Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 50 ++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 23 deletions(-) commit 3bac42caec612a1b82db7944570353cddca6a013 Author: Viresh Kumar Date: Wed Jul 29 16:22:59 2015 +0530 PM / OPP: Create _remove_device_opp() for freeing dev_opp This will be used from multiple places later. Lets create a separate routine for that. Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 737002b5de3d15b3012feea17f782a628b24699b Author: Viresh Kumar Date: Wed Jul 29 16:22:58 2015 +0530 PM / OPP: Relocate few routines In order to prepare for the later commits, this relocates few routines towards the top as they will be used earlier in the code. Reviewed-by: Stephen Boyd Reviewed-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/base/power/opp.c | 277 ++++++++++++++++++++++++----------------------- 1 file changed, 139 insertions(+), 138 deletions(-) commit 3566c5b277a41e912d15cd583c4604c95bb6b3f8 Author: Viresh Kumar Date: Thu Jul 30 22:27:19 2015 +0530 PM / OPP: Create a directory for opp bindings More platform specific extended opp bindings will follow and it would be easy to manage them with a directory for opp. Lets create that and move the existing opp bindings into it. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/opp/opp.txt | 465 ++++++++++++++++++++++++ Documentation/devicetree/bindings/power/opp.txt | 465 ------------------------ 2 files changed, 465 insertions(+), 465 deletions(-) commit ba4539ffc19b090841cd32ffe2c57d937e311857 Author: Viresh Kumar Date: Wed Jul 29 16:22:56 2015 +0530 PM / OPP: Update bindings to make opp-hz a 64 bit value With a 32 bit value, the maximum frequency that the bindings can support is ~ 4 GHz. And that might fall short of what newer systems may have. Allow opp-hz to be a 64 bit big-endian value. Suggested-by: Stephen Boyd Suggested-by: Bartlomiej Zolnierkiewicz Signed-off-by: Viresh Kumar Acked-by: Rob Herring Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/power/opp.txt | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 10742619ac63641bcce0a7c07f0dc7509201ed72 Author: Nicolas Iooss Date: Sat Aug 1 21:32:17 2015 +0800 ACPI: fix acpi_debugfs_init prototype acpi_debugfs_init function is declared with return type int in drivers/acpi/internal.h when CONFIG_DEBUG_FS is enabled, but its definition in drivers/acpi/debugfs.c has return type void. This is due to commit aecad432fd68 ("ACPI: Cleanup custom_method debug stuff"), which changed the return type from int to void without updating the declaration. Fix this inconsistency by updating acpi_debugfs_init prototype. While at it, include internal.h in debugfs.c so that the compiler can check that the declaration and definition remain compatible. Signed-off-by: Nicolas Iooss Signed-off-by: Rafael J. Wysocki drivers/acpi/debugfs.c | 2 ++ drivers/acpi/internal.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit cb4ff766c42f0511ead5488b8de77fd392677464 Author: Lv Zheng Date: Wed Aug 5 16:24:04 2015 +0800 ACPI / Documentation: Update method tracing documentation. This patch updates method tracing documentation. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki Documentation/acpi/method-tracing.txt | 204 ++++++++++++++++++++++++++++++---- 1 file changed, 185 insertions(+), 19 deletions(-) commit a0186bcf7c21907c78ab2b4bc50f3fb2b5047806 Author: Lv Zheng Date: Wed Aug 5 16:23:57 2015 +0800 ACPI / sysfs: Add support to allow leading "\" missing in trace_method_name. Since _SB.PCI0 can be used as relative path from root and can be easily converted into internal trace_method_name format, we allow users to specify trace_method_name using relative paths from root. Note this is useful for grub2 for which users failed to pass "\" from the grub configuration file. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/sysfs.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit 7901a052a981691d18f4e8f91fc27e40849b7336 Author: Lv Zheng Date: Wed Aug 5 16:23:51 2015 +0800 ACPI / sysfs: Update method tracing facility. This patch updates the method tracing facility as the acpi_debug_trace() API has been updated to allow it to trace AML interpreter execution, the meanings and the usages of the API parameters are changed due to the updates. The new API: 1. Uses ACPI_TRACE_ENABLED flag to indicate the enabling of the tracer; 2. Allows tracer still can be enabled when method name is not specified so that the AML interpreter execution can be traced without knowing the method name, which is useful for kernel boot tracing; 3. Supports arbitrary full path name, it doesn't need to be a name related to an entrance of acpi_evaluate_object(). Note that the sysfs parameters are also updated so that when reading the attribute files, ACPICA internal settings are returned. In order to make the sysfs parameters (acpi.trace_state) available during boot, this patch adds code to bypass ACPICA semaphore/mutex invocations when acpi mutex utilities haven't been initialized. This patch doesn't update documentation of method tracing facility, it will be updated by further patches. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/osl.c | 8 +++ drivers/acpi/sysfs.c | 136 +++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 108 insertions(+), 36 deletions(-) commit 93d988310bb2f5ed16ba075bbc4281aa06907e72 Author: Lv Zheng Date: Wed Aug 5 16:23:43 2015 +0800 ACPI / sysfs: Add ACPI_LV_REPAIR debug level. This patch updates debug_level file, adding ACPI_LV_REPAIR. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/sysfs.c | 1 + 1 file changed, 1 insertion(+) commit 6d63e354af8ca57f41ab3958b30a980a0bb50ada Merge: 74d3329 40913fe Author: Rafael J. Wysocki Date: Fri Aug 7 02:40:55 2015 +0200 Merge branch 'acpica' into acpi-trace commit ff3e9a7307db12a553c20bd92a7cade072445244 Author: Chris Metcalf Date: Thu Aug 6 20:22:40 2015 -0400 tile/vdso: emit a GNU hash as well In principle, including the GNU hash can allow libc to avoid calculating SysV hashes at all. Signed-off-by: Chris Metcalf arch/tile/kernel/vdso/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 34d99af52ad40bd498ba66970579a5bc1fb1a3bc Author: Richard Guy Briggs Date: Wed Aug 5 16:29:37 2015 -0400 audit: implement audit by executable This adds the ability audit the actions of a not-yet-running process. This patch implements the ability to filter on the executable path. Instead of just hard coding the ino and dev of the executable we care about at the moment the rule is inserted into the kernel, use the new audit_fsnotify infrastructure to manage this dynamically. This means that if the filename does not yet exist but the containing directory does, or if the inode in question is unlinked and creat'd (aka updated) the rule will just continue to work. If the containing directory is moved or deleted or the filesystem is unmounted, the rule is deleted automatically. A future enhancement would be to have the rule survive across directory disruptions. This is a heavily modified version of a patch originally submitted by Eric Paris with some ideas from Peter Moody. Cc: Peter Moody Cc: Eric Paris Signed-off-by: Richard Guy Briggs [PM: minor whitespace clean to satisfy ./scripts/checkpatch] Signed-off-by: Paul Moore include/linux/audit.h | 1 + include/uapi/linux/audit.h | 5 ++++- kernel/audit.h | 4 ++++ kernel/audit_tree.c | 2 ++ kernel/audit_watch.c | 31 +++++++++++++++++++++++++++ kernel/auditfilter.c | 53 +++++++++++++++++++++++++++++++++++++++++++++- kernel/auditsc.c | 3 +++ 7 files changed, 97 insertions(+), 2 deletions(-) commit 7f49294282c49ef426ed05eb4959728524ba140c Author: Richard Guy Briggs Date: Wed Aug 5 16:29:36 2015 -0400 audit: clean simple fsnotify implementation This is to be used to audit by executable path rules, but audit watches should be able to share this code eventually. At the moment the audit watch code is a lot more complex. That code only creates one fsnotify watch per parent directory. That 'audit_parent' in turn has a list of 'audit_watches' which contain the name, ino, dev of the specific object we care about. This just creates one fsnotify watch per object we care about. So if you watch 100 inodes in /etc this code will create 100 fsnotify watches on /etc. The audit_watch code will instead create 1 fsnotify watch on /etc (the audit_parent) and then 100 individual watches chained from that fsnotify mark. We should be able to convert the audit_watch code to do one fsnotify mark per watch and simplify things/remove a whole lot of code. After that conversion we should be able to convert the audit_fsnotify code to support that hierarchy if the optimization is necessary. Move the access to the entry for audit_match_signal() to the beginning of the audit_del_rule() function in case the entry found is the same one passed in. This will enable it to be used by audit_autoremove_mark_rule(), kill_rules() and audit_remove_parent_watches(). This is a heavily modified and merged version of two patches originally submitted by Eric Paris. Cc: Peter Moody Cc: Eric Paris Signed-off-by: Richard Guy Briggs [PM: added a space after a declaration to keep ./scripts/checkpatch happy] Signed-off-by: Paul Moore kernel/Makefile | 2 +- kernel/audit.h | 14 ++++ kernel/audit_fsnotify.c | 216 ++++++++++++++++++++++++++++++++++++++++++++++++ kernel/auditfilter.c | 2 +- 4 files changed, 232 insertions(+), 2 deletions(-) commit 141b2d3161f19a774b3ceaa8faed5e63484a4684 Author: Adrian Hunter Date: Fri Jul 17 19:33:51 2015 +0300 perf tools: Extend the event parser maximum error index Extend the event parser maximum error index from 10 to 13. That allows PMU config terms of up to 10 characters to display un-truncated in the error message. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-17-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/parse-events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0efe6b67690b6546daa0d2f34a17eb3ca46c9dea Author: Adrian Hunter Date: Fri Jul 17 19:33:50 2015 +0300 perf tools: Validate config term maximum value Currently the value of a PMU config term is silently truncated if it is too big. This is an impediment to validating the value for other criteria later on i.e. the user provides an invalid value that gets truncated to a valid one. The maximum value validation is only done for the parser where the error is passed back to the user. In other cases the silent truncation continues so as not to affect tools that perhaps rely on it. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-16-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit 09ff607176ab2bf7e038150100fdf9290a6fbe47 Author: Adrian Hunter Date: Fri Jul 17 19:33:49 2015 +0300 perf tools: Add perf_pmu__format_bits() Add perf_pmu__format_bits() to get the format bits for a PMU config term. Intel PT will use this to validate terms and to record format bits to enable later interpreting the config from the attribute stored in the perf.data file. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-15-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/pmu.c | 17 ++++++++++++++++- tools/perf/util/pmu.h | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) commit 8bd1b2d2578ca2688969352ed1f8a0a8f10dbb63 Author: Adrian Hunter Date: Fri Jul 17 19:33:47 2015 +0300 perf tools: Fix perf-with-kcore handling of arguments containing spaces Fix the perf-with-kcore script so that it doesn't split arguments that contain spaces. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-13-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/perf-with-kcore.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit f70cfa07e3675a115265e32d6357272275358cdb Author: Adrian Hunter Date: Fri Jul 17 19:33:46 2015 +0300 perf auxtrace: Fix period type 'i' not working PERF_ITRACE_PERIOD_INSTRUCTIONS is zero so it got overwritten by the default period type. Fix by checking if the period type was set rather than if the value was zero when applying the default. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1437150840-31811-12-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/auxtrace.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 74d4582f430a797564f92fbff0bd3a21945528b7 Author: Max Filippov Date: Sat Jul 18 11:30:11 2015 +0300 perf tools xtensa: Add DWARF register names Signed-off-by: Max Filippov Cc: Chris Zankel Cc: Marc Gauthier Cc: Paul Mackerras Cc: Peter Zijlstra Cc: linux-xtensa@linux-xtensa.org Link: http://lkml.kernel.org/r/1437208216-15729-9-git-send-email-jcmvbkbc@gmail.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/xtensa/Build | 1 + tools/perf/arch/xtensa/Makefile | 3 +++ tools/perf/arch/xtensa/util/Build | 1 + tools/perf/arch/xtensa/util/dwarf-regs.c | 25 +++++++++++++++++++++++++ 4 files changed, 30 insertions(+) commit 40997d6cf9fc40c85dba479e162a89e7530eb360 Author: Andi Kleen Date: Sat Jul 18 08:24:53 2015 -0700 perf report: Display cycles in branch sort mode Display the cycles by default in branch sort mode. To make enough room for the new column I removed dso_to. It is usually redundant with dso_from. Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-9-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/sort.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a18b027efe1a2a502d98a8d0ea0391a72bf3f696 Author: Andi Kleen Date: Sat Jul 18 08:24:52 2015 -0700 perf top: Add branch annotation code to top Now that we can process branch data in annotate it makes sense to support enabling branch recording from top too. Most of the code needed for this is already in shared code with report. But we need to add: - The option parsing code (using shared code from the previous patch) - Document the options - Set up the IPC/cycles accounting state in the top session - Call the accounting code in the hist iter callback Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-8-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-top.txt | 21 +++++++++++++++++++++ tools/perf/builtin-top.c | 9 +++++++++ 2 files changed, 30 insertions(+) commit f8f4aaead579c947fb8fc051c9d242037025caf3 Author: Andi Kleen Date: Sat Jul 18 08:24:51 2015 -0700 perf annotate: Finally display IPC and cycle accounting Add two new columns to the annotate display and display the average cycles and the compute IPC if available. When the LBR was not in any branch mode the IPC computation is automatically disabled. We still display the cycle information. Example output (with made up numbers): The second column is the IPC and third average cycles. │ __attribute__((noinline)) f2() │ { 5.15 0.07 │ push %rbp 0.01 0.07 │ mov %rsp,%rbp │ c = a / b; 9.87 0.07 │ mov a,%eax 0.07 │ mov b,%ecx 0.07 │ cltd 4.92 0.07 123│ idiv %ecx 70.79 0.07 │ mov %eax,__TMC_END__ │ } 9.25 0.07 │ pop %rbp 0.01 0.07 123│ ← retq v2: Fix display problems. Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-7-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/annotate.c | 57 +++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 17 deletions(-) commit 30e863bb6f708c0abd422fbb0e6b295f5ee6407b Author: Andi Kleen Date: Sat Jul 18 08:24:50 2015 -0700 perf annotate: Compute IPC and basic block cycles Compute the IPC and the basic block cycles for the annotate display. IPC is computed by counting the instructions, and then dividing the accounted cycles by that count. The actual IPC computation can only be done at annotate time, because we need to parse the objdump output first to know the number of instructions in the basic block. The cycles/IPC are also put into the perf function annotation so that the display code can show them. Again basic block overlaps are not handled, with the longest winning, but there are some heuristics to hide the IPC when the longest is not the most common. v2: Compute IPC correctly. Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-6-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/ui/browsers/annotate.c | 73 ++++++++++++++++++++++++++++++++++++++- tools/perf/util/annotate.h | 2 ++ 2 files changed, 74 insertions(+), 1 deletion(-) commit 57849998e2cd24d50295076a1bbd2f029e2d7c38 Author: Andi Kleen Date: Sat Jul 18 08:24:49 2015 -0700 perf report: Add processing for cycle histograms Call the earlier added cycle histogram infrastructure from the perf report hist iter callback. For this we walk the branch records. This allows to use cycle histograms when browsing perf report annotate. v2: Rename flag Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-5-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 3 +++ tools/perf/util/hist.c | 33 +++++++++++++++++++++++++++++++++ tools/perf/util/hist.h | 3 +++ 3 files changed, 39 insertions(+) commit d4957633bf9dab70e566e7dbb2b8d0c61c3a2f1e Author: Andi Kleen Date: Sat Jul 18 08:24:48 2015 -0700 perf report: Add infrastructure for a cycles histogram This adds the basic infrastructure to keep track of cycle counts per basic block for annotate. We allocate an array similar to the normal accounting, and then account branch cycles there. We handle two cases: cycles per basic block with start and cycles per branch (these are later used for either IPC or just cycles per BB) In the start case we cannot handle overlaps, so always the longest basic block wins. For the cycles per branch case everything is accurately accounted. v2: Remove unnecessary checks. Slight restructure. Move symbol__get_annotation to another patch. Move histogram allocation. v3: Merged with current tree Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-4-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-annotate.c | 1 + tools/perf/util/annotate.c | 127 +++++++++++++++++++++++++++++++++++++++++- tools/perf/util/annotate.h | 17 ++++++ 3 files changed, 142 insertions(+), 3 deletions(-) commit 98df858ed46ddaaf9be3573eb2b63b57a68c6af7 Author: Andi Kleen Date: Sat Jul 18 08:24:47 2015 -0700 perf report: Add flag for non ANY branch mode Later patches need to cheaply check that the branch mode is in ANY. Add a new function to check all event attrs and add a flag to the report state, which is then initialized. v2: Rename flag Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-3-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-report.c | 7 +++++++ tools/perf/util/evlist.c | 10 ++++++++++ tools/perf/util/evlist.h | 1 + 3 files changed, 18 insertions(+) commit 0e332f033a8216fa03792fde69882f66500848c7 Author: Andi Kleen Date: Sat Jul 18 08:24:46 2015 -0700 perf tools: Add support for cycles, weight branch_info field cycles is a new branch_info field available on some CPUs that indicates the time deltas between branches in the LBR. Add a sort key and output code for the cycles to allow to display the basic block cycles individually in perf report. We also pass in the cycles for weight when LBRs are processed, which allows to get global and local weight, to get an estimate of the total cost. And also print the cycles information for perf report -D. I also added printing for the previously missing LBR flags (mispredict etc.) Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1437233094-12844-2-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-report.txt | 1 + tools/perf/util/event.h | 3 ++- tools/perf/util/hist.c | 3 ++- tools/perf/util/hist.h | 1 + tools/perf/util/session.c | 16 ++++++++++++---- tools/perf/util/sort.c | 24 ++++++++++++++++++++++++ tools/perf/util/sort.h | 1 + 7 files changed, 43 insertions(+), 6 deletions(-) commit 93df8a1ed6231727c5db94a80b1a6bd5ee67cec3 Author: Ben Hutchings Date: Tue Aug 4 17:10:27 2015 +0100 perf tools: Add empty Build files for architectures lacking them perf currently fails to build on MIPS as there is no tools/perf/arch/mips/Build file. Adding an empty file fixes this as there are no MIPS-specific sources to build. It looks like the same is needed for Alpha and PA-RISC, though I haven't been able to test those. Signed-off-by: Ben Hutchings Fixes: 5e8c0fb6a957 ("perf build: Add arch x86 objects building") Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1438704627.7315.2.camel@decadent.org.uk Signed-off-by: Arnaldo Carvalho de Melo tools/perf/arch/alpha/Build | 1 + tools/perf/arch/mips/Build | 1 + tools/perf/arch/parisc/Build | 1 + 3 files changed, 3 insertions(+) commit b325e832e9478b920c1b8366623fe456a3527513 Author: Murali Karicheri Date: Tue Aug 4 12:36:43 2015 -0400 ARM: keystone: add documentation for SoCs and EVMs Currently there is no general documentation on Keystone SoCs in the Linux Documentation folder of the source tree. This patch adds some essential documentation with links to help users of Keystone Linux and also provide links to existing documents where necessary. Signed-off-by: Murali Karicheri Signed-off-by: Jonathan Corbet Documentation/arm/keystone/Overview.txt | 73 +++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit f80010eb230b94e8d9cf5bf83373a097fb5b2dcc Author: Jiri Olsa Date: Tue Jul 21 14:31:27 2015 +0200 perf stat: Move counter processing code into stat object Moving counter processing code into stat object as perf_stat__process_counter. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-8-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 141 +--------------------------------------------- tools/perf/util/stat.c | 139 +++++++++++++++++++++++++++++++++++++++++++++ tools/perf/util/stat.h | 3 + 3 files changed, 143 insertions(+), 140 deletions(-) commit 5e5fe748bec771a810b1f44ec9c19e4b92685246 Author: Jiri Olsa Date: Tue Jul 21 14:31:26 2015 +0200 perf stat: Pass 'struct perf_stat_config' into process_counter() Passing 'struct perf_stat_config' into process_counter(), so that we can make process_counter() non static and use it from other places. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-7-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit a4c6ebede2f99fc3aaa5a42228a16747d0aa2504 Author: Danilo Cesar Lemes de Paula Date: Tue Aug 4 09:04:08 2015 -0300 scripts/kernel-doc Allow struct arguments documentation in struct body Describing arguments at top of a struct definition works fine for small/medium size structs, but it definitely doesn't work well for struct with a huge list of elements. Keeping the arguments list inside the struct body makes it easier to maintain the documentation. ie: /** * struct my_struct - short description * @a: first member * @b: second member * * Longer description */ struct my_struct { int a; int b; /** * @c: This is longer description of C * * You can use paragraphs to describe arguments * using this method. */ int c; }; This patch allows the use of this kind of syntax. Only one argument per comment and user can use how many paragraphs he needs. It should start with /**, which is already being used by kernel-doc. If those comment doesn't follow those rules, it will be ignored. Signed-off-by: Danilo Cesar Lemes de Paula 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 Signed-off-by: Jonathan Corbet scripts/kernel-doc | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) commit ec0d3d1fd292adb80372193c03d859e9cbefd367 Author: Jiri Olsa Date: Tue Jul 21 14:31:25 2015 +0200 perf stat: Move 'interval' into struct perf_stat_config Moving 'interval' into struct perf_stat_config. The point is to centralize the base stat config so it could be used localy together with other stat routines in other parts of perf code. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-6-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 14 +++++++++----- tools/perf/util/stat.h | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) commit 5821522e9484a8b503f89aa546085900b99589e9 Author: Jiri Olsa Date: Tue Jul 21 14:31:24 2015 +0200 perf stat: Move 'output' into struct perf_stat_config Moving 'output' into struct perf_stat_config. The point is to centralize the base stat config so it could be used localy together with other stat routines in other parts of perf code. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-5-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 35 +++++++++++++++++++++++------------ tools/perf/util/stat.h | 1 + 2 files changed, 24 insertions(+), 12 deletions(-) commit 711a572ea8ae7e9ab6575403c6d632d058d5cb3d Author: Jiri Olsa Date: Tue Jul 21 14:31:23 2015 +0200 perf stat: Move 'scale' into struct perf_stat_config Moving 'scale' into struct perf_stat_config. The point is to centralize the base stat config so it could be used localy together with other stat routines in other parts of perf code. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-4-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 12 ++++++------ tools/perf/util/stat.h | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) commit 421a50f3fafaf271bb3293378eaafca71337dfec Author: Jiri Olsa Date: Tue Jul 21 14:31:22 2015 +0200 perf stat: Introduce struct perf_stat_config Moving 'aggr_mode' into new struct. The point is to centralize the base stat config so it could be used localy together with other stat routines in other parts of perf code. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-stat.c | 39 ++++++++++++++++++++++----------------- tools/perf/util/stat.h | 4 ++++ 2 files changed, 26 insertions(+), 17 deletions(-) commit 64e32895f9d87aaa0842c07d0b17f4895955db20 Author: Jakub Wilk Date: Mon Jul 27 10:15:18 2015 +0200 SubmittingPatches: remove stray quote character Signed-off-by: Jakub Wilk Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60004ca5dcfbf43182a9ba42bcbbf216c3684433 Merge: 7c97211 e9c9963 Author: Jonathan Corbet Date: Thu Aug 6 12:57:44 2015 -0600 Merge branch 'doc/4.3-reproducible' into docs-next Ben Hutchings writes: As part of the reproducible builds project, Jérémy Bobbio identified several time-dependent and non-deterministic functions in the document build process (htmldocs, mandocs targets). This patch series should fix all of those. I ended up reverting one patch that introduced problems. commit e9c9963b439db734e9705f96909c5a3388dd81bb Author: Jonathan Corbet Date: Thu Aug 6 12:44:23 2015 -0600 Revert "DocBook: Avoid building man pages repeatedly and inconsistently" This reverts commit b44158b17099ed5c7c8f4bfb7029942adbfbc318. This commit introduced warnings and possibly inconsistent results into the doc build process. The goal is good but it will need to be achieved another way. Reported-by: Masanari Iida Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 10 +--------- Documentation/DocBook/device-drivers.tmpl | 6 ------ Documentation/DocBook/gadget.tmpl | 3 --- Documentation/DocBook/kernel-api.tmpl | 6 ------ 4 files changed, 1 insertion(+), 24 deletions(-) commit 84cb777e67814f2e06a99ff228f743409e9617e9 Author: Richard Guy Briggs Date: Wed Aug 5 23:48:20 2015 -0400 audit: use macros for unset inode and device values Clean up a number of places were casted magic numbers are used to represent unset inode and device numbers in preparation for the audit by executable path patch set. Signed-off-by: Richard Guy Briggs [PM: enclosed the _UNSET macros in parentheses for ./scripts/checkpatch] Signed-off-by: Paul Moore include/linux/audit.h | 3 +++ kernel/audit.c | 2 +- kernel/audit_watch.c | 8 ++++---- kernel/auditsc.c | 6 +++--- 4 files changed, 11 insertions(+), 8 deletions(-) commit 5a023b57a8e96327925a39312bccc443a7c540b6 Author: Wang Nan Date: Fri Jun 19 08:42:48 2015 +0000 perf tools: Add missing forward declaration of struct map to probe-event.h Commit 7b6ff0bdbf4f7f429c2116cca92a6d171217449e ("perf probe ppc64le: Fixup function entry if using kallsyms lookup") adds 'struct map' into probe-event.h but not forward declares it. This patch fixes it. 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 Fixes: 7b6ff0bdbf4f ("perf probe ppc64le: Fixup function entry if using kallsyms lookup") Link: http://lkml.kernel.org/n/1436445342-1402-30-git-send-email-wangnan0@huawei.com [ No need to include map.h, just forward declare 'struct map' ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.h | 2 ++ 1 file changed, 2 insertions(+) commit 0af0885ef69c182d1fa6bb201cd0570e9aa384eb Author: Wang Nan Date: Fri Jul 31 10:35:33 2015 -0300 perf tools: Introduce veprintf va_args alternative to eprintf(). Signed-off-by: Wang Nan Acked-by: 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/n/1436445342-1402-19-git-send-email-wangnan0@huawei.com [ split from another patch ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/debug.c | 5 +++++ tools/perf/util/debug.h | 1 + 2 files changed, 6 insertions(+) commit 04a22fae4cbc1f7d3f7471e9b36359f98bd3f043 Author: Wang Nan Date: Wed Jul 1 02:13:50 2015 +0000 tracing, perf: Implement BPF programs attached to uprobes By copying BPF related operation to uprobe processing path, this patch allow users attach BPF programs to uprobes like what they are already doing on kprobes. After this patch, users are allowed to use PERF_EVENT_IOC_SET_BPF on a uprobe perf event. Which make it possible to profile user space programs and kernel events together using BPF. Because of this patch, CONFIG_BPF_EVENTS should be selected by CONFIG_UPROBE_EVENT to ensure trace_call_bpf() is compiled even if KPROBE_EVENT is not set. Signed-off-by: Wang Nan Acked-by: 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/1435716878-189507-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo include/linux/trace_events.h | 5 +++++ kernel/events/core.c | 4 ++-- kernel/trace/Kconfig | 2 +- kernel/trace/trace_uprobe.c | 5 +++++ 4 files changed, 13 insertions(+), 3 deletions(-) commit 098d2164e3441c252eaa28906d45e16b7bf1bd2b Author: Wang Nan Date: Wed Jul 1 02:13:49 2015 +0000 bpf: Use correct #ifdef controller for trace_call_bpf() Commit e1abf2cc8d5d80b41c4419368ec743ccadbb131e ("bpf: Fix the build on BPF_SYSCALL=y && !CONFIG_TRACING kernels, make it more configurable") updated the building condition of bpf_trace.o from CONFIG_BPF_SYSCALL to CONFIG_BPF_EVENTS, but the corresponding #ifdef controller in trace_events.h for trace_call_bpf() was not changed. Which, in theory, is incorrect. With current Kconfigs, we can create a .config with CONFIG_BPF_SYSCALL=y and CONFIG_BPF_EVENTS=n by unselecting CONFIG_KPROBE_EVENT and selecting CONFIG_BPF_SYSCALL. With these options, trace_call_bpf() will be defined as an extern function, but if anyone calls it a symbol missing error will be triggered since bpf_trace.o was not built. This patch changes the #ifdef controller for trace_call_bpf() from CONFIG_BPF_SYSCALL to CONFIG_BPF_EVENTS. I'll show its correctness: Before this patch: BPF_SYSCALL BPF_EVENTS trace_call_bpf bpf_trace.o y y normal compiled n n inline not compiled y n normal not compiled (incorrect) n y impossible (BPF_EVENTS depends on BPF_SYSCALL) After this patch: BPF_SYSCALL BPF_EVENTS trace_call_bpf bpf_trace.o y y normal compiled n n inline not compiled y n inline not compiled (fixed) n y impossible (BPF_EVENTS depends on BPF_SYSCALL) So this patch doesn't break anything. QED. 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/1435716878-189507-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo include/linux/trace_events.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 788a6cddda9ba83276e37567c17bb78406904074 Author: Frank Li Date: Tue Aug 4 10:26:16 2015 -0500 mtd: spi-nor: fsl-quadspi: fix unsupported cmd when run flash_erase Erase function will use cmd 0x20 (SPINOR_OP_BE_4K) if kenrel enable option CONFIG_MTD_SPI_NOR_USE_4K_SECTORS. This command is not in fsl-quadspi driver LUT. So driver continue report fsl-quadspi 21e0000.qspi: Unsupported cmd 0x20. This patch fix this issue. Signed-off-by: Frank Li Acked-by: Han Xu Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 8b8319c8b7d0385659c2df6376955cb6a1d918b6 Author: Frank Li Date: Tue Aug 4 10:26:10 2015 -0500 mtd: spi-nor: fsl-quadspi: reset the module in the probe The uboot may run the QuadSpi controler with command: #sf probe So we should reset the module in the probe. This patch also clear the pending interrupts which arised by the uboot code. Signed-off-by: Huang Shijie Signed-off-by: Frank Li Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5cc66cb7345d1bac71e94d7fd05dc86506f59dfe Author: Frank Li Date: Tue Aug 4 10:26:04 2015 -0500 mtd: spi-nor: fsl-quadspi: workaround qspi can't wakeup from wait mode QSPI1 cannot wake up CCM from WAIT mode on SX ARD board, add pmqos to let PM NOT enter WAIT mode when accessing QSPI1, refer to TKT245618. Signed-off-by: Frank Li Signed-off-by: Han Xu Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit cacbef40aac478fb25fb7d18ac22d41a11ce06e2 Author: Allen Xu Date: Tue Aug 4 10:25:58 2015 -0500 mtd: spi-nor: fsl-quadspi: i.MX6SX: fixed the random QSPI access failed issue We found there is a low probability(5%) QSPI access timeout issue, usually it happened on kernel boot stage, the first time kernel tried to access QSPI chip. The READ_ID command was sent but not executed, consequently the probe function failed. The root cause is that the divider is not glitchless in i.MX6SX chip. If qspi clock enabled then change clock frequency by call clk_set_rate, there will be glitch at low possiblity rate and pass to qspi controller. The controler will be hang by this glitch. Based on the new clock flag(CLK_SET_RATE_GATE) and new framework, we need to change the approach of seting clock rate. 1. Disable clock. 2. call clk_set_rate. 3. Enable clock again. Signed-off-by: Han Xu Signed-off-by: Frank Li Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 81 +++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 25 deletions(-) commit cb94d0bb41e43b4fdd219ad930686397814bcd8d Author: Frank Li Date: Tue Aug 4 10:25:52 2015 -0500 Documentation: fsl-quadspi: Add fsl, imx6ul-qspi compatible string new compatible string: "fsl,imx6ul-qspi". Signed-off-by: Frank Li Signed-off-by: Brian Norris Documentation/devicetree/bindings/mtd/fsl-quadspi.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 74a081d14f579d0a1de845ba63e8ee5f0c511258 Author: Frank Li Date: Tue Aug 4 10:25:47 2015 -0500 mtd: spi-nor: fsl-quadspi: add i.mx6ul support Add i.mx6ul chip support Signed-off-by: Frank Li Acked-by: Han xu Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 151b49e19119da28dfcd29561147ec56913cbe61 Author: Frank Li Date: Tue Aug 4 10:25:41 2015 -0500 Documentation: fsl-quadspi: Add fsl, imx7d-qspi compatible string new compatible string: "fsl,imx7d-qspi" Signed-off-by: Frank Li Signed-off-by: Brian Norris Documentation/devicetree/bindings/mtd/fsl-quadspi.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d371cbfc151c6a7229150da0954d1f74ea4dcd39 Author: Frank Li Date: Tue Aug 4 10:25:35 2015 -0500 mtd: spi-nor: fsl-quadspi: add imx7d support Support i.mx7d. quadspi in i.mx7d increase rxfifo. require fill at least 16byte to trigger data transfer. Signed-off-by: Frank Li Signed-off-by: Han Xu Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 80d37724089bc5d09fa12601a763bde01899ba88 Author: Han Xu Date: Tue Aug 4 10:25:29 2015 -0500 mtd: spi-nor: fsl-quadspi: use quirk to distinguish different qspi version add several quirk to distinguish different version of qspi module. Signed-off-by: Han Xu Signed-off-by: Frank Li Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) commit 49bd706aac8fe7fa90988ecd3fd5c276575b194e Author: Han Xu Date: Tue Aug 4 10:25:22 2015 -0500 mtd: spi-nor: fsl-quadspi: dynamically map memory space for AHB read QSPI may failed to map enough memory (256MB) for AHB read in previous implementation, especially in 3G/1G memory layout kernel. Dynamically map memory to avoid such issue. This implementation generally map QUADSPI_MAX_IOMAP (default 4MB) memory for AHB read, it should be enough for common scenarios, and the side effect (0.6% performance drop) is minor. Previous implementation root@imx6qdlsolo:~# dd if=/dev/mtd0 of=/dev/null bs=1K count=32K 32768+0 records in 32768+0 records out 33554432 bytes (34 MB) copied, 2.16006 s, 15.5 MB/s root@imx6qdlsolo:~# dd if=/dev/mtd0 of=/dev/null bs=32M count=1 1+0 records in 1+0 records out 33554432 bytes (34 MB) copied, 1.43149 s, 23.4 MB/s After applied the patch root@imx6qdlsolo:~# dd if=/dev/mtd0 of=/dev/null bs=1K count=32K 32768+0 records in 32768+0 records out 33554432 bytes (34 MB) copied, 2.1743 s, 15.4 MB/s root@imx6qdlsolo:~# dd if=/dev/mtd0 of=/dev/null bs=32M count=1 1+0 records in 1+0 records out 33554432 bytes (34 MB) copied, 1.43158 s, 23.4 MB/s Signed-off-by: Han Xu Signed-off-by: Frank Li Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 55 ++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 7 deletions(-) commit 15979aeeb548e020b6107214f0405be894891a57 Author: Benjamin Cama Date: Thu Aug 6 18:29:52 2015 +0200 ARM: dts: Convert Linkstation Mini to Device Tree The title says it all. The name of the dts file as been changed to better reflect the manufacturer's device name (LS-WSGL), rather than the original "lsmini", which exists in a kirkwood version too. [gregory.clement@free-electrons.com]: use tab instead of space to indent dts at line 185. Reslove merge conflict with patch "ARM: dts: orion5x: add buffalo linkstation ls-wtgl" in the file arch/arm/boot/dts/Makefile. Signed-off-by: Benjamin Cama Acked-by: Andrew Lunn Acked-by: Alexey Kopytko Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/orion5x-lswsgl.dts | 276 ++++++++++++++++++++++++++++++++++ arch/arm/mach-orion5x/Kconfig | 6 +- arch/arm/mach-orion5x/Makefile | 1 - arch/arm/mach-orion5x/lsmini-setup.c | 280 ----------------------------------- 5 files changed, 280 insertions(+), 284 deletions(-) commit 2e8328fb87d02569511c4808a1b3f44f67bd83fd Author: Felipe Balbi Date: Thu Aug 6 11:29:19 2015 -0500 usb: gadget: legacy: nokia: add CONFIG_BLOCK dependency g_nokia now has mass_storage function, so it should depend on CONFIG_BLOCK. Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 4a1e9211809d4130fe23cad1bea222222d6e94f4 Author: Felipe Balbi Date: Thu Aug 6 11:23:32 2015 -0500 usb: gadget: f_mass_storage: add mising was originally being pulled indirectly through some other header, however it's not anymore, so we need to include it directly Reported-by: Jim Davis Suggested-by: Alan Stern Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 1 + 1 file changed, 1 insertion(+) commit b0a688ddcc5015eb26000c63841db7c46cfb380a Author: Felipe Balbi Date: Thu Aug 6 10:51:29 2015 -0500 usb: musb: cppi41: allow it to work again since commit 33c300cb90a6 ("usb: musb: dsps: don't fake of_node to musb core") we have been preventing CPPI 4.1 from probing due to NULL of_node. We can't revert said commit otherwise a different regression would show up, so the fix is to look for the parent device's (glue layer's) of_node instead, since that's the thing which is actually described in DTS. Signed-off-by: Felipe Balbi drivers/usb/musb/musb_cppi41.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 03840fad004ce8a56bc8b3bb60a2df10f6f9481e Author: Felipe Balbi Date: Thu Aug 6 10:47:16 2015 -0500 usb: musb: gadget: remove remaining DMA ifdeferry Commit fb91cddc54e7 ("usb: musb: Remove DMA ifdef for musb_gadget.c short_packet") tried to remove DMA ifdeferry from musb_gadget.c but ended up leaving some around. Remove them so that when building kernels with all DMA engines enabled, we don't end up trying to allocte channels twice. Signed-off-by: Felipe Balbi drivers/usb/musb/musb_gadget.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) commit adab43396ed4830c7cee29837e8cedcddb2b5315 Author: Robert Baldyga Date: Thu Aug 6 14:11:16 2015 +0200 usb: gadget: remove gadget_chips.h This header file contains helpers for quirks based on UDC controller name. Since we have generic quirk bitfields in usb_gadget structure for all of these quirks we don't need to have this header any longer. This patch removes gadget_chips.h file and makes sure that it's no longer included anywhere in kernel sources. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 2 - drivers/usb/gadget/function/f_acm.c | 1 - drivers/usb/gadget/function/f_mass_storage.c | 1 - drivers/usb/gadget/function/f_obex.c | 1 - drivers/usb/gadget/function/f_serial.c | 1 - drivers/usb/gadget/function/f_sourcesink.c | 1 - drivers/usb/gadget/function/u_ether.h | 2 - drivers/usb/gadget/function/u_uac1.h | 2 - drivers/usb/gadget/legacy/audio.c | 1 - drivers/usb/gadget/legacy/gmidi.c | 2 - drivers/usb/gadget/legacy/hid.c | 1 - drivers/usb/gadget/legacy/nokia.c | 1 - drivers/usb/gadget/legacy/printer.c | 2 - drivers/usb/gadget/legacy/serial.c | 1 - drivers/usb/gadget/udc/gadget_chips.h | 55 ---------------------------- 15 files changed, 74 deletions(-) commit 26b8aa458c7d99181ceb07f27da9bd7d94185e35 Author: Robert Baldyga Date: Thu Aug 6 14:11:15 2015 +0200 usb: musb: gadget: add musb_match_ep() function Add 'match_ep' callback to utilize chip-specific knowledge in endpoint matching process. Function does the same that was done by chip-specific code inside of epautoconf. Now this code can be removed from there to separate generic code from platform specific logic. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 23 ----------------------- drivers/usb/musb/musb_gadget.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 23 deletions(-) commit 8cc67b7bff2fc1adfd080233d35aacba4411cf87 Author: Robert Baldyga Date: Thu Aug 6 14:11:14 2015 +0200 usb: gadget: goku_udc: add goku_match_ep() function Add 'match_ep' callback to utilize chip-specific knowledge in endpoint matching process. Function does the same that was done by chip-specific code inside of epautoconf. Now this code can be removed from there to separate generic code from platform specific logic. [ balbi@ti.com : fix build breakage ] Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 20 ++------------------ drivers/usb/gadget/udc/goku_udc.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 18 deletions(-) commit 3e8b231818c25a250c36f8bfb944aa1fd2b13396 Author: Robert Baldyga Date: Thu Aug 6 14:11:13 2015 +0200 usb: gadget: net2280: add net2280_match_ep() function Add 'match_ep' callback to utilize chip-specific knowledge in endpoint matching process. Function does the same that was done by chip-specific code inside of epautoconf. Now this code can be removed from there to separate generic code from platform specific logic. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 23 +---------------------- drivers/usb/gadget/udc/net2280.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 22 deletions(-) commit b0aea0037c8896b8e69cad3f6e828782789c1edf Author: Robert Baldyga Date: Thu Aug 6 14:11:12 2015 +0200 usb: gadget: move find_ep() from epautoconf to udc-core Move find_ep() to udc-core and rename it to gadget_find_ep_by_name(). It can be used in UDC drivers, especially in 'match_ep' callback after moving chip-specific endpoint matching logic from epautoconf to UDC drivers. Replace all calls of find_ep() function with gadget_find_ep_by_name(). Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 30 +++++++++--------------------- drivers/usb/gadget/udc/udc-core.c | 21 +++++++++++++++++++++ include/linux/usb/gadget.h | 8 +++++++- 3 files changed, 37 insertions(+), 22 deletions(-) commit 4278c687f697b651ab0c771114564da5ed006f22 Author: Robert Baldyga Date: Thu Aug 6 14:11:11 2015 +0200 usb: gadget: move ep_matches() from epautoconf to udc-core Move ep_matches() function to udc-core and rename it to usb_gadget_ep_match_desc(). This function can be used by UDC drivers in 'match_ep' callback to avoid writing lots of repetitive code. Replace all calls of ep_matches() with usb_gadget_ep_match_desc(). Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 95 +++++---------------------------------- drivers/usb/gadget/udc/udc-core.c | 69 ++++++++++++++++++++++++++++ include/linux/usb/gadget.h | 8 ++++ 3 files changed, 88 insertions(+), 84 deletions(-) commit 596c154d62330ea0bb4e3c3e50afa3682e50b617 Author: Robert Baldyga Date: Thu Aug 6 14:11:10 2015 +0200 usb: gadget: add 'ep_match' callback to usb_gadget_ops Add callback that is called by epautoconf to allow UDC driver match the best endpoint for specific descriptor. It's intended to supply mechanism which allows to get rid of chip-specific endpoint matching code from epautoconf. If gadget has set 'ep_match' callback we prefer to call it first, and if it fails to find matching endpoint, then we try to use default matching algorithm. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 6 ++++++ include/linux/usb/gadget.h | 3 +++ 2 files changed, 9 insertions(+) commit 834fd46ddb50953cf3fd9caa3f35485715c62ea3 Author: Milian Wolff Date: Thu Aug 6 11:24:29 2015 +0200 perf trace: Add total time column to summary. It is cumbersome to manually calculate the total time spent in a given syscall by multiplying the average value with the number of calls. Instead, we now do this directly inside perf trace. Note that this is also done by 'strace', which even adds a column with relative numbers - something we could do in the future. Example: perf trace -s find /some/folder > /dev/null Summary of events: find (19976), 700123 events, 100.0%, 0.000 msec syscall calls total min avg max stddev (msec) (msec) (msec) (msec) (%) --------------- -------- --------- --------- --------- --------- ------ read 4 0.006 0.001 0.002 0.003 27.42% write 8046 9.617 0.001 0.001 0.035 0.56% open 34196 40.384 0.001 0.001 0.071 0.30% close 68375 57.104 0.001 0.001 0.076 0.25% stat 4 0.004 0.001 0.001 0.001 3.14% fstat 34189 27.518 0.001 0.001 0.060 0.34% mmap 13 0.029 0.001 0.002 0.003 10.74% mprotect 6 0.018 0.002 0.003 0.005 17.04% munmap 3 0.014 0.003 0.005 0.006 24.87% brk 87 0.490 0.001 0.006 0.016 6.50% ioctl 3 0.004 0.001 0.001 0.003 36.39% access 1 0.004 0.004 0.004 0.004 0.00% uname 1 0.001 0.001 0.001 0.001 0.00% getdents 68393 143.600 0.001 0.002 0.187 0.95% fchdir 68371 56.980 0.001 0.001 0.111 0.39% arch_prctl 1 0.001 0.001 0.001 0.001 0.00% openat 34184 41.737 0.001 0.001 0.102 0.41% newfstatat 34184 41.180 0.001 0.001 0.064 0.34% Signed-off-by: Milian Wolff Tested-by: Arnaldo Carvalho de Melo LPU-Reference: 1438853069-5902-1-git-send-email-milian.wolff@kdab.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 26bf956aa9952a8141a12f314df70dcd020572d6 Author: Robert Baldyga Date: Thu Aug 6 14:11:09 2015 +0200 usb: gadget: epautoconf: rework ep_matches() function Rework ep_matches() function to make it shorter and more readable. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 81 ++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 49 deletions(-) commit f5b831907da3e64bfb0288089a5c07124266b1a5 Author: Robin Murphy Date: Wed Jul 29 19:46:12 2015 +0100 iommu/io-pgtable: Remove flush_pgtable callback With the users fully converted to DMA API operations, it's dead, Jim. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/io-pgtable-arm.c | 6 ------ drivers/iommu/io-pgtable.h | 2 -- 2 files changed, 8 deletions(-) commit 857c88ca62f1e2594e1e760ef9a45ec1961f2a53 Author: Robin Murphy Date: Wed Jul 29 19:46:11 2015 +0100 iommu/arm-smmu: Remove arm_smmu_flush_pgtable() With the io-pgtable code now enforcing its own appropriate sync points, the vestigial flush_pgtable callback becomes entirely redundant, so remove it altogether. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 10 ---------- 1 file changed, 10 deletions(-) commit 4103d662cbd0c045d7a44a18c82172220478b20c Author: Robin Murphy Date: Wed Jul 29 19:46:10 2015 +0100 iommu/arm-smmu: Remove arm_smmu_flush_pgtable() With the io-pgtable code now enforcing its own appropriate sync points, the vestigial flush_pgtable callback becomes entirely redundant, so remove it altogether. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/arm-smmu.c | 13 ------------- 1 file changed, 13 deletions(-) commit 87a91b15d691d6f4aa0a5baffb5767bbc6e4a8c4 Author: Robin Murphy Date: Wed Jul 29 19:46:09 2015 +0100 iommu/io-pgtable-arm: Centralise sync points With all current users now opted in to DMA API operations, make the iommu_dev pointer mandatory, rendering the flush_pgtable callback redundant for cache maintenance. However, since the DMA calls could be nops in the case of a coherent IOMMU, we still need to ensure the page table updates are fully synchronised against a subsequent page table walk. In the unmap path, the TLB sync will usually need to do this anyway, so just cement that requirement; in the map path which may consist solely of cacheable memory writes (in the coherent case), insert an appropriate barrier at the end of the operation, and obviate the need to call flush_pgtable on every individual update for synchronisation. Signed-off-by: Robin Murphy [will: slight clarification to tlb_sync comment] Signed-off-by: Will Deacon drivers/iommu/io-pgtable-arm.c | 43 +++++++++++++++++++++++------------------- drivers/iommu/io-pgtable.h | 4 +++- 2 files changed, 27 insertions(+), 20 deletions(-) commit ff2ed96dde3b30d8f1b2ab0d9b164140f2278e6e Author: Robin Murphy Date: Wed Jul 29 19:46:08 2015 +0100 iommu/ipmmu-vmsa: Clean up DMA API usage With the correct DMA API calls now integrated into the io-pgtable code, let that handle the flushing of non-coherent page table updates. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/ipmmu-vmsa.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) commit bdc6d973473f32891a8518c51b210ce7daaa10ac Author: Robin Murphy Date: Wed Jul 29 19:46:07 2015 +0100 iommu/arm-smmu: Clean up DMA API usage With the correct DMA API calls now integrated into the io-pgtable code, let that handle the flushing of non-coherent page table updates. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit 2df7a25ce4a79092946330ac4b7a2fbb5944d1d6 Author: Robin Murphy Date: Wed Jul 29 19:46:06 2015 +0100 iommu/arm-smmu: Clean up DMA API usage With the correct DMA API calls now integrated into the io-pgtable code, let that handle the flushing of non-coherent page table updates. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/arm-smmu.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) commit f8d5496131554f61b0fd931fa046f0233fe2aac2 Author: Robin Murphy Date: Wed Jul 29 19:46:04 2015 +0100 iommu/io-pgtable-arm: Allow appropriate DMA API use Currently, users of the LPAE page table code are (ab)using dma_map_page() as a means to flush page table updates for non-coherent IOMMUs. Since from the CPU's point of view, creating IOMMU page tables *is* passing DMA buffers to a device (the IOMMU's page table walker), there's little reason not to use the DMA API correctly. Allow IOMMU drivers to opt into DMA API operations for page table allocation and updates by providing their appropriate device pointer. The expectation is that an LPAE IOMMU should have a full view of system memory, so use streaming mappings to avoid unnecessary pressure on ZONE_DMA, and treat any DMA translation as a warning sign. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon drivers/iommu/Kconfig | 3 +- drivers/iommu/io-pgtable-arm.c | 107 ++++++++++++++++++++++++++++++++--------- drivers/iommu/io-pgtable.h | 3 ++ 3 files changed, 89 insertions(+), 24 deletions(-) commit 85430968ae72650a63f77f05a29d5c56e41581db Author: Will Deacon Date: Mon Aug 3 10:35:40 2015 +0100 iommu/arm-smmu: Treat unknown OAS as 48-bit A late change to the SMMUv3 architecture ensures that the OAS field will be monotonically increasing, so we can assume that an unknown OAS is at least 48-bit and use that, rather than fail the device probe. Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 06059d5090118b047c5b6a621c8b57a068f7ce2c Merge: 80aa931 8c10342 Author: Daniel Vetter Date: Thu Aug 6 14:27:09 2015 +0200 Merge tag 'topic/drm-misc-2015-07-28' into drm-intel-next-queued We need a few core drm patches to be able to merge Maarten's series to convert DPMS over to atomic. Signed-off-by: Daniel Vetter commit a03fdcb1863297481a4b817c2a759cafcbdfa0ae Author: Archit Taneja Date: Wed Aug 5 12:28:57 2015 +0530 drm: Add top level Kconfig option for DRM fbdev emulation Legacy fbdev emulation support via DRM is achieved through KMS FB helpers. Most modesetting drivers enable provide fbdev emulation by default by selecting KMS FB helpers. A few provide a separate Kconfig option for the user to enable or disbale fbdev emulation. Enabling fbdev emulation is finally a distro-level decision. Having a top level Kconfig option for fbdev emulation helps by providing a uniform way to enable/disable fbdev emulation for any modesetting driver. It also lets us remove unnecessary driver specific Kconfig options that causes bloat. With a top level Kconfig in place, we can stub out the fb helper functions when not needed without breaking functionality. Having stub functions also prevents drivers to require wrapping fb helper function calls with #ifdefs. DRM_FBDEV_EMULATION defaults to y since many drivers enable fbdev emulation by default and majority of distributions expect the fbdev interface in the kernel. Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/Kconfig | 13 ++++ drivers/gpu/drm/Makefile | 2 +- include/drm/drm_fb_helper.h | 185 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 199 insertions(+), 1 deletion(-) commit 2c4124fdeaea4b70120da3bddf90c4587e65bbc6 Author: Geert Uytterhoeven Date: Tue Aug 4 15:22:11 2015 +0200 drm/fb-helper: Move drm_fb_helper_force_kernel_mode() inside #ifdef If CONFIG_MAGIC_SYSRQ is not set: drivers/gpu/drm/drm_fb_helper.c:390:13: warning: 'drm_fb_helper_force_kernel_mode' defined but not used [-Wunused-function] static bool drm_fb_helper_force_kernel_mode(void) ^ Move drm_fb_helper_force_kernel_mode() inside the existing #ifdef to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 50 ++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 3d9e35a92e935e1f968e79f0e0b72ce4b9f14c3e Author: Geert Uytterhoeven Date: Tue Aug 4 15:22:10 2015 +0200 drm/fb-helper: Clarify drm_fb_helper_restore_fbdev_mode*() As of commit 5ea1f752ae04be40 ("drm: add drm_fb_helper_restore_fbdev_mode_unlocked()"), drm_fb_helper_restore_fbdev_mode() is no longer public, and drivers should call drm_fb_helper_restore_fbdev_mode_unlocked() from their ->lastclose callbacks instead. Update the documentation to reflect this, and absorb the one liner drm_fb_helper_restore_fbdev_mode() into its single caller. Signed-off-by: Geert Uytterhoeven Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) commit 55579cfe67d76394be46f00acef8854d08db5362 Author: Viresh Kumar Date: Fri Jul 31 14:08:24 2015 +0530 drivers: gpu: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. Signed-off-by: Viresh Kumar Reviewed-by: Sinclair Yeh Signed-off-by: Daniel Vetter drivers/gpu/drm/ttm/ttm_tt.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 0843010bbd60acf9e5a588828ad227937085e7b1 Author: Archit Taneja Date: Fri Jul 31 16:22:01 2015 +0530 drm/virtio: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - add missing header for virtgpu_fb.c Cc: David Airlie Cc: Gerd Hoffmann Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/virtio/virtgpu_fb.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit 2dbaf392d27e8072268595fba557cbe4f4d43f01 Author: Archit Taneja Date: Fri Jul 31 16:22:00 2015 +0530 drm/amdgpu: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - Fixed PTR_ERR issue mentioned by kbuild bot Cc: Fengguang Wu Cc: Alex Deucher Cc: Oded Gabbay Cc: "Christian König" Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 45 +++++++++++----------------------- 1 file changed, 14 insertions(+), 31 deletions(-) commit 6a752972a33f7763453134a09ed8091bbeea55fc Author: Archit Taneja Date: Fri Jul 31 16:21:59 2015 +0530 drm/bochs: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - remove unused variable device in bochsfb_create Cc: David Airlie Cc: Gerd Hoffmann Cc: Daniel Vetter Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/bochs/bochs_drv.c | 4 ++-- drivers/gpu/drm/bochs/bochs_fbdev.c | 36 +++++++++++------------------------- 2 files changed, 13 insertions(+), 27 deletions(-) commit b166aeb99faa0b42f75ab4f48e98afa44d6a8958 Author: Archit Taneja Date: Fri Jul 31 16:21:57 2015 +0530 drm/nouveau: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - remove unused variable pdev in nouveau_fbcon_create Cc: David Airlie Cc: Ben Skeggs Cc: Alexandre Courbot Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/nouveau/nouveau_fbcon.c | 39 ++++++++++----------------------- 1 file changed, 12 insertions(+), 27 deletions(-) commit 21cff14847421ff75d110890ccea729d8ad1b174 Author: Archit Taneja Date: Fri Jul 31 16:21:56 2015 +0530 drm/i915: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - No changes Cc: Daniel Vetter Cc: Jani Nikula Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 40 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) commit 00450052436f87742bfb9edfb325e1337a79489c Author: Archit Taneja Date: Fri Jul 31 16:21:54 2015 +0530 drm/radeon: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - Fix build break because of missing include of drm_fb_helper in radeon_drv.c Cc: Alex Deucher Cc: "Christian König" Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/radeon/radeon_fb.c | 42 +++++++++++--------------------------- 1 file changed, 12 insertions(+), 30 deletions(-) commit 4f72a6eaedf71f3d7729086ca34703b3615f59d0 Author: Archit Taneja Date: Fri Jul 31 16:21:53 2015 +0530 drm/mgag200: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Don't touch remove_conflicting_framebuffers v2: - remove unused goto label 'out' Cc: Daniel Vetter Cc: David Airlie Cc: Alex Deucher Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/mgag200/mgag200_fb.c | 39 ++++++++---------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) commit 231e6faf027ae5e86539bb5a3cdb2b22a96dae8c Author: Archit Taneja Date: Fri Jul 31 16:21:48 2015 +0530 drm/omap: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v3: - Update error handling for new drm_fb_helper funcs. Check using IS_ERR() instead of checking for NULL. Reported-by: Dan Carpenter v2: - No changes Cc: Tomi Valkeinen Cc: Laurent Pinchart Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/omapdrm/omap_fbdev.c | 38 ++++++++++++------------------------ 1 file changed, 13 insertions(+), 25 deletions(-) commit 2b9e6e376af5171444a1cdcc134ed502e33d1fb2 Author: Archit Taneja Date: Fri Jul 31 16:21:44 2015 +0530 drm/cirrus: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. v3: - Don't touch remove_conflicting_framebuffers v2: - Remove stray goto label out_iounmap Cc: Thierry Reding Cc: Zach Reizner Cc: Russell King Cc: Fabian Frederick Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/cirrus/cirrus_drv.c | 4 ++-- drivers/gpu/drm/cirrus/cirrus_fbdev.c | 41 +++++++---------------------------- 2 files changed, 10 insertions(+), 35 deletions(-) commit f8c2ba316b64b02e43738c41b07a5d9319165f99 Author: Daniel Vetter Date: Wed Jul 29 08:32:43 2015 +0200 drm: Fixup locking WARNINGs in drm_mode_config_reset With commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c Author: Daniel Vetter Date: Thu Jul 9 23:44:28 2015 +0200 drm: Check locking in drm_for_each_connector we started checking the locking in drm_for_each_connector but somehow I totally missed drm_mode_config_reset. There's no problem there since this function should only be called in single-threaded contexts (driver load or resume), so just wrap the loop with the right lock. v2: Drink coffee and all that ... Cc: Laurent Pinchart Reported-by: Laurent Pinchart Tested-by: Laurent Pinchart Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 2 ++ 1 file changed, 2 insertions(+) commit bf9e37baac6db7318862447973bd68b5acae4bef Author: Daniel Vetter Date: Tue Jul 28 13:18:42 2015 +0200 drm: Remove __drm_modeset_lock_all The last user is gone, no need for trylocking any more in this legacy helper. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_modeset_lock.c | 52 ++++++++------------------------------ include/drm/drm_modeset_lock.h | 1 - 2 files changed, 11 insertions(+), 42 deletions(-) commit dd908c864d9a8347216291b4b61074777458373a Author: Daniel Vetter Date: Tue Jul 28 13:18:41 2015 +0200 drm/fb-helper: Stop using trylocks in force_restore Since the panic handling is gone this is only used for force-restoring the fbdev/fbcon from sysrq, and that's done with a work item. No need any more to do trylocks, we can just do normal locking. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit c50bfd08d60cefbe1714c4a53b1c325982858549 Author: Daniel Vetter Date: Tue Jul 28 13:18:40 2015 +0200 drm/fbdev: Return -EBUSY when oopsing Trying to do anything with kms drivers when oopsing has become a failing proposition. But since we can end up in the fbdev code simply due to the console unblanking that's done unconditionally just removing our panic handler isn't enough. We need to block all fbdev callbacks when oopsing. There was already one in the blank handler, but it failed silently. That makes it impossible for drivers (like i915) who subclass these functions to figure this out. Instead consistently return -EBUSY so that everyone knows that we really don't want to be bothered right now. This also allows us to remove a pile of FIXMEs from the i915 fbdev code (since due to the failure code they now won't attempt to grab dangerous locks any more). Cc: Dave Airlie Cc: Rodrigo Vivi Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 24 ++++++++++++------------ drivers/gpu/drm/i915/intel_fbdev.c | 21 --------------------- 2 files changed, 12 insertions(+), 33 deletions(-) commit 85f2edf2115d6aa0d7613f96dd3903b8d5f4a56d Author: Archit Taneja Date: Wed Jul 22 14:58:20 2015 +0530 drm/fb_cma_helper: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. Cc: Lars-Peter Clausen Cc: Daniel Vetter Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_cma_helper.c | 45 +++++++++---------------------------- 1 file changed, 11 insertions(+), 34 deletions(-) commit 41ba2f3415741c28c589fd5734237d062c3d54fc Author: Archit Taneja Date: Wed Jul 22 14:58:16 2015 +0530 drm/udl: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v2: - remove unused variable device in udlfb_create Cc: David Airlie Cc: Haixia Shi Cc: "Stéphane Marchesin" Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/udl/udl_fb.c | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) commit e7cd84cf7da4e28749ae8b05fcd706db32496320 Author: Archit Taneja Date: Wed Jul 22 14:58:13 2015 +0530 drm/qxl: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. Cc: David Airlie Cc: Frediano Ziglio Cc: Maarten Lankhorst Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/qxl/qxl_fb.c | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) commit 546187c85d4d4eab6f71dabbfda76672a69af434 Author: Archit Taneja Date: Wed Jul 22 14:58:10 2015 +0530 drm/gma500: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v2: - removed unused variable 'device' in psbfb_create Cc: Patrik Jakobsson Cc: Daniel Vetter Signed-off-by: Archit Taneja Reviewed-by: Patrik Jakobsson Signed-off-by: Daniel Vetter drivers/gpu/drm/gma500/accel_2d.c | 6 ++--- drivers/gpu/drm/gma500/framebuffer.c | 48 ++++++++++++------------------------ 2 files changed, 19 insertions(+), 35 deletions(-) commit 7c7d4507fb04bbeab44755162394951bc29146fb Author: Archit Taneja Date: Wed Jul 22 14:58:09 2015 +0530 drm/exynos: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v2: - Remove unnecessary dealloc cmap in error handling path Cc: Inki Dae Cc: Joonyoung Shim Cc: Seung-Woo Kim Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 47 ++++++++----------------------- 1 file changed, 12 insertions(+), 35 deletions(-) commit 778014f0c80815e5e1ff079343da9673cb4db1a4 Author: Archit Taneja Date: Wed Jul 22 14:58:08 2015 +0530 drm/msm: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. Cc: Rob Clark Cc: Stephane Viau Cc: Hai Li Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/msm/msm_fbdev.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) commit 0f7d9052fb705e629c3f998051e835c97eb44749 Author: Archit Taneja Date: Wed Jul 22 14:58:07 2015 +0530 drm/tegra: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. v2: - Fix up error handling path in tegra_fbdev_probe Cc: Thierry Reding Cc: "Terje Bergström" Cc: Stephen Warren Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/tegra/fb.c | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit 990e8440f2f8b9428125a32805c67ab22e78a7d9 Author: Archit Taneja Date: Wed Jul 22 14:58:05 2015 +0530 drm/ast: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. Cleaned up the error handling in astfb_create a bit. v2: - removed unused variable 'device' in astfb_create Cc: David Airlie Cc: "Y.C. Chen" Cc: Alex Deucher Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/ast/ast_fb.c | 48 ++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 31 deletions(-) commit e8b70e4dd7b5dad7c2379de6e0851587bf86bfd6 Author: Archit Taneja Date: Wed Jul 22 14:58:04 2015 +0530 drm/armada: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. Cc: Russell King Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/armada/armada_fbdev.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) commit df3b031cef742e924aa96fec7fc128d2611e4c1f Author: Archit Taneja Date: Wed Jul 22 14:58:03 2015 +0530 drm/rockchip: Use new drm_fb_helper functions Use the newly created wrapper drm_fb_helper functions instead of calling core fbdev functions directly. They also simplify the fb_info creation. This is an effort to create a top level drm fbdev emulation option. Cc: Mark Yao Cc: Daniel Vetter Cc: Rob Clark Cc: Daniel Kurtz Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 47 +++++++-------------------- 1 file changed, 12 insertions(+), 35 deletions(-) commit fdefa58a5097b397ce2d3f6b6f8caa14aacfb70d Author: Archit Taneja Date: Fri Jul 31 16:21:43 2015 +0530 drm/fb_helper: Create a wrapper for fb_set_suspend Some drm drivers call fb_set_suspend. Create a drm_fb_helper function that wraps around these calls. This is part of an effort to prevent drm drivers from calling fbdev functions directly, in order to make fbdev emulation a top level drm option. v3: - Fixed kerneldoc errors v2: - Added kerneldocs - Added a check for non-NULL fb_helper before proceeding. This will make the helpers work when we have a module param for fbdev emulation - Follow the drm way of aligning of arguments in func definitions Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 14 ++++++++++++++ include/drm/drm_fb_helper.h | 2 ++ 2 files changed, 16 insertions(+) commit 742547b73d27e7bce2d0dd0f1b95692436f30950 Author: Archit Taneja Date: Fri Jul 31 16:21:42 2015 +0530 drm/fb_helper: Create wrappers for blit, copyarea and fillrect funcs drm drivers that emulate fbdev populate their fb_fillrect, fb_copyarea and fb_imageblit fb_ops with the help of cfb_* or sys_* fbdev core helper functions. Create drm_fb_helper functions that wrap around these calls. This is part of an effort to prevent drm drivers from calling fbdev functions directly, in order to make fbdev emulation a top level drm option. v3: - Fixed kerneldoc errors v2: - Added kerneldocs - Follow the drm way of aligning of arguments in func definitions - Remove unnecessary checks for non NULL fb_info Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/Kconfig | 6 +++ drivers/gpu/drm/drm_fb_helper.c | 84 +++++++++++++++++++++++++++++++++++++++++ include/drm/drm_fb_helper.h | 14 +++++++ 3 files changed, 104 insertions(+) commit cbb1a82e5608fd6511940d27c231f0f4e2495b04 Author: Archit Taneja Date: Fri Jul 31 16:21:41 2015 +0530 drm/fb_helper: Create wrappers for fb_sys_read/write funcs Some drm drivers populate their fb_ops with fb_sys_read/write fb sysfs ops. Create a drm_fb_helper function that wraps around these calls. This is part of an effort to prevent drm drivers from calling fbdev functions directly, in order to make fbdev emulation a top level drm option. v3: - Fix kerneldoc errors v2: - Added kerneldocs - Follow the drm way of aligning of arguments in func definitions - Remove unnecessary checks for non NULL fb_info Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/Kconfig | 1 + drivers/gpu/drm/drm_fb_helper.c | 32 ++++++++++++++++++++++++++++++++ include/drm/drm_fb_helper.h | 5 +++++ 3 files changed, 38 insertions(+) commit 47074ab7951c1fcfc3ff637eb8401c3a71272057 Author: Archit Taneja Date: Wed Jul 22 14:57:57 2015 +0530 drm/fb_helper: Create a wrapper for unlink_framebuffer Some drm drivers call unlink_framebuffer. Create a drm_fb_helper function that wraps around these calls. This is part of an effort to prevent drm drivers from calling fbdev functions directly, in order to make fbdev emulation a top level drm option. v2: - Added kerneldocs - Added a check for non-NULL fb_helper before proceeding. This will make the helpers work when we have a module param for fbdev emulation Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 13 +++++++++++++ include/drm/drm_fb_helper.h | 2 ++ 2 files changed, 15 insertions(+) commit b8017d6c33be9862505a9154e302c4b00cbfca43 Author: Archit Taneja Date: Wed Jul 22 14:57:56 2015 +0530 drm/fb_helper: Add drm_fb_helper functions to manage fb_info creation Every drm driver calls framebuffer_alloc, fb_alloc_cmap, unregister_framebuffer, fb_dealloc_cmap and framebuffer_release in order to emulate fbdev support. Create drm_fb_helper functions that perform the above operations. This is part of an effort to prevent drm drivers from calling fbdev functions directly. It also removes repetitive code from drivers. There are some drivers that call alloc_apertures after framebuffer_alloc and some that don't. Make the helper always call alloc_apertures. This would make certain drivers allocate memory for apertures but not use them. Since it's a small amount of memory, it shouldn't be an issue. v2: - Added kerneldocs - Added a check for non-NULL fb_helper before proceeding. This will make the helpers work when we have a module param for fbdev emulation Signed-off-by: Archit Taneja Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 80 +++++++++++++++++++++++++++++++++++++++++ include/drm/drm_fb_helper.h | 4 +++ 2 files changed, 84 insertions(+) commit c201d00f4a4c004482aec7de1bffdfe2d85e65cf Author: Daniel Vetter Date: Thu Aug 6 14:09:35 2015 +0200 drm/omap: Fixup compile fail Maarten didn't fully test his patches on all drm drivers and apparently missed a few places when grepping. Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/omapdrm/omap_crtc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 4ca7deb1e15e0030d04051cf4285e88249ebe252 Author: Axel Lin Date: Wed Aug 5 22:34:22 2015 +0800 ASoC: topology: Use kcalloc instead of kzalloc for array allocation Also remove unnecessary memset. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/soc-topology.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 9176c6657b5c313cf504d157e6d91496ee5c8708 Author: Sifan Naeem Date: Thu Aug 6 10:33:01 2015 +0100 spi: img-spfi: fix kbuild test robot warning drivers/spi/spi-img-spfi.c: In function 'img_spfi_setup': drivers/spi/spi-img-spfi.c:446: warning: 'ret' may be used uninitialized in this function. Fixes: commit b03ba9e314c1 ("spi: img-spfi: fix multiple calls to request gpio") Signed-off-by: Sifan Naeem Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-img-spfi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9bb91ae970dd004393a3d7d09bdcc30dfe2f8693 Author: Heiko Stuebner Date: Wed Jul 22 17:18:03 2015 +0200 ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend PMU_GPIOINT_WAKEUP_EN seems needed when entering the shallow suspend (with logic staying on) but does not seem to be needed for the deep suspend for unknown reasons. Testing revealed that this setting really is necessary to reliably resume the veyron devices from suspend. Reported-by: Chris Zhong Signed-off-by: Heiko Stuebner Reviewed-by: Chris Zhong Tested-by: Chris Zhong Reviewed-by: Douglas Anderson arch/arm/mach-rockchip/pm.c | 9 ++++++--- arch/arm/mach-rockchip/pm.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) commit d1d3a1a1d745095261d4a927c0c06588e5bc7f6f Author: Heiko Stuebner Date: Wed Jul 22 17:04:47 2015 +0200 ARM: rockchip: set correct stabilization thresholds in suspend Currently the stabilization thresholds for the oscillator and external pmu are statically set to 30ms based on a 32kHz clock rate. This leaves out the case when we don't switch to the 32kHz clock when only entering the shallow suspend mode where the logic keeps running. So, set the correct threshold after we have determined if we switch to the 32kHz clock or stay with the 24MHz one. Also set the oscillator- stabilization to 0 if it is kept running during suspend, as it of course does not need to stabilize then. Reported-by: Chris Zhong Signed-off-by: Heiko Stuebner Reviewed-by: Chris Zhong Tested-by: Chris Zhong Reviewed-by: Douglas Anderson arch/arm/mach-rockchip/pm.c | 22 +++++++++++++++++++--- arch/arm/mach-rockchip/pm.h | 4 ---- 2 files changed, 19 insertions(+), 7 deletions(-) commit 41fe6a01726b79b8531fed0a94b55d89a69ea5ee Author: Heiko Stuebner Date: Wed Aug 5 00:14:55 2015 +0200 ARM: rockchip: rename osc_switch_to_32k variable The variable name is misleading, as the deep suspend mode always switches the main supplying clock to the 32kHz source. Additionally the main oscillator remains running in some cases, which this var indicates. So rename it to osc_disable to clarity. Signed-off-by: Heiko Stuebner Reviewed-by: Chris Zhong Tested-by: Chris Zhong Reviewed-by: Douglas Anderson arch/arm/mach-rockchip/pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 75f940615aa93cb681b36e355b3f9509d955f547 Author: Viresh Kumar Date: Fri Jun 12 13:30:17 2015 +0530 clockevents/drivers/em_sti: Migrate to new 'set-state' interface Migrate em_sti driver to the new 'set-state' interface provided by the clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. NOTE: This also drops a special check: if (old_mode == CLOCK_EVT_MODE_ONESHOT) em_sti_stop(p, USER_CLOCKEVENT); as it doesn't look like that important. This driver only supports ONESHOT and we can only move only to SHUTDOWN from ONESHOT and. Also on second call (on shutdown), em_sti_stop() would return without disabling the device again. Acked-by: Daniel Lezcano Cc: Magnus Damm Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/em_sti.c | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit 8f9327cbb6e87ce1bed3e5dfbac70d8a96c6d1cc Author: Viresh Kumar Date: Fri Jun 12 13:30:16 2015 +0530 clockevents/drivers/cs5535: Migrate to new 'set-state' interface Migrate cs5535 driver to the new 'set-state' interface provided by the clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Acked-by: Daniel Lezcano Cc: Andres Salomon Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/cs5535-clockevt.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) commit b4cf5d710fdf297692d5c0f36cddbbeaa690e323 Author: Viresh Kumar Date: Fri Jun 12 13:30:15 2015 +0530 clockevents/drivers/bcm_kona: Migrate to new 'set-state' interface Migrate bcm_kona driver to the new 'set-state' interface provided by the clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Oneshot callback isn't required as it was empty. Acked-by: Ray Jui Cc: Florian Fainelli Cc: Ray Jui Cc: Scott Branden Cc: bcm-kernel-feedback-list@broadcom.com Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/bcm_kona_timer.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) commit 4996978490f7e48f29408e499c7e542ac1e2c5b8 Author: Viresh Kumar Date: Fri Jun 12 13:30:14 2015 +0530 clockevents/drivers/bcm2835: Migrate to new 'set-state' interface Migrate bcm2835 driver to the new 'set-state' interface provided by the clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in the ->set_mode() callback. So, this patch doesn't provide any set-state callbacks. Acked-by: Daniel Lezcano Tested-by: Stephen Warren Cc: Stephen Warren Cc: Lee Jones Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/bcm2835_timer.c | 16 ---------------- 1 file changed, 16 deletions(-) commit e511e6c3cd9baa3177f29aeb30c4ac7150c5f93b Author: Viresh Kumar Date: Fri Jun 12 13:30:13 2015 +0530 clockevents/drivers/arm_global_timer: Migrate to new 'set-state' interface Migrate arm_global_timer driver to the new 'set-state' interface provided by the clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Acked-by: Daniel Lezcano Acked-by: Maxime Coquelin Acked-by: Srinivas Kandagatla Cc: Srinivas Kandagatla Cc: Maxime Coquelin Cc: Patrice Chotard Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/arm_global_timer.c | 37 ++++++++++++++++------------------ 1 file changed, 17 insertions(+), 20 deletions(-) commit 46c5bfdda3de91ba4324d73403af7dfb60f5ee38 Author: Viresh Kumar Date: Fri Jun 12 13:30:12 2015 +0530 clockevents/drivers/arm_arch_timer: Migrate to new 'set-state' interface Migrate arm_arch_timer driver to the new 'set-state' interface provided by the clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Marc Zyngier Signed-off-by: Viresh Kumar Signed-off-by: Daniel Lezcano drivers/clocksource/arm_arch_timer.c | 52 +++++++++++++++--------------------- 1 file changed, 22 insertions(+), 30 deletions(-) commit ac1125daf02b81cabb19f35963906335e3d4a155 Author: Anatol Pomozov Date: Wed Aug 5 14:58:33 2015 -0700 ASoC: rl6231: Simplify DMIC divider calculation expression Existing implementation checks all divider values and tracks 'red' proximity value for the frequency. But as divider array is monotonically increasing the first divider that gives DMIC rate in 3MHz range is the best one we should use. No need for 'red' zone tracking. Additionally make sure that DMIC frequency is higher 1MHz. Signed-off-by: Anatol Pomozov Acked-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rl6231.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit ed05637c30e6d13e5793aab64d6a6e57e30228af Author: Anthoine Bourgeois Date: Wed Aug 5 23:47:09 2015 +0200 ARM: dts: omap3-devkit8000: Add ADS7846 Touchscreen support This patch is the touchscreen part for LCD screens sold with devkit8000 board. Signed-off-by: Anthoine Bourgeois Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit bcfff4d961fb71c6bea0424a84aaef115b7edaee Author: Jisheng Zhang Date: Mon Aug 3 21:24:46 2015 +0200 arm64: Enable Marvell Berlin SoC family in defconfig Enable Marvell Berlin SoC family in arm64 defconfig. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth Signed-off-by: Olof Johansson arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) commit dd40fd9245fdb5a69b301e358df0b231d2db1db0 Author: Jisheng Zhang Date: Mon Aug 3 21:24:45 2015 +0200 arm64: Enable Marvell Berlin SoC family in Kconfig This patch introduces ARCH_BERLIN to enable Marvell Berlin SoC family in Kconfig. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth Signed-off-by: Olof Johansson arch/arm64/Kconfig.platforms | 6 ++++++ 1 file changed, 6 insertions(+) commit d304f99c9cee11fc23ccd29e4506d646df58122f Merge: 1ff2b94 8faf355 Author: Olof Johansson Date: Thu Aug 6 10:12:52 2015 +0200 Merge tag 'sunxi-defconfig-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/defconfig Allwinner defconfig changes for 4.3 Two patches that enable various Allwinner related drivers drivers both in sunxi_defconfig and in multi_v7_defconfig * tag 'sunxi-defconfig-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I, cryptodev ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON, FHANDLE Signed-off-by: Olof Johansson commit da5df6440834c64943e09c254dcfb8336ffbac15 Merge: 027b4a6 60018d0 Author: Olof Johansson Date: Thu Aug 6 10:12:13 2015 +0200 Merge tag 'sunxi-dt-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt Allwinner Device Tree changes for 4.3 A bunch of device tree patches that: - Enable the OTG controller on some boards - Various additions to the existing boards - New boards: A33 Ippo Q8H, Iteaduino Plus, * tag 'sunxi-dt-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (35 commits) ARM: dts: sun7i: Change cubietruck wifi enable pin to use mmc-pwrseq ARM: dts: sun5i: hsg-h702: Enable USB OTG controller ARM: dts: sun5i: hsg-h702: Enable side volume buttons with LRADC ARM: dts: sun8i: Enable USB DRC on Ippo Q8H-A33 tablet ARM: dts: sun5i: Enable USB DRC on A13 OLinuxIno ARM: dts: sun5i: Enable USB DRC on A10s OLinuxIno Micro ARM: dts: sun4i: Enable USB DRC on A10 OLinuxIno Lime ARM: sunxi: dt: Convert users to the PIO interrupts binding ARM: dts: sun4i: Add Iteaduino Plus A10 ARM: dts: A10s-OLinuxIno: Add a node for axp152 pmic ARM: dts: axp152: Add a dtsi file for the axp152 pmic ARM: dts: sun6i: Enable otg controller on the cs908 ARM: dts: sun4i: Enable otg controller on the mini-x ARM: dts: sun4i: Enable otg controller on the ba10-tvbox ARM: dts: sunxi: Add regulator-boot-on to usb host port regulator nodes devicetree: Add msi to the vendor-prefix list ARM: sun8i: dts: Add Ippo-q8h v1.2 with A33 ARM: dts: sun8i: sina33: Enable USB hosts ARM: dts: sun8i: Enable USB host on GA10H-A33 tablets ARM: dts: sun8i: Enable USB DRC on GA10H-A33 tablets ... Signed-off-by: Olof Johansson commit c00def71efd919e8ae835a25f4f4c80a4b2d36d3 Author: Linus Walleij Date: Mon Aug 3 09:26:52 2015 +0200 ARM: ux500: simplify secondary CPU boot This removes a lot of ancient cruft from the Ux500 SMP boot. Instead of the pen grab/release, just point the ROM to secondary_boot() and start the second CPU there, then send the IPI. Use our own SMP enable method. This enables us to remove the last static mapping and get both CPUs booting properly. Tested this and it just works. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson arch/arm/mach-ux500/Makefile | 2 +- arch/arm/mach-ux500/cpu-db8500.c | 1 - arch/arm/mach-ux500/headsmp.S | 37 ----------- arch/arm/mach-ux500/platsmp.c | 132 ++++++++++++--------------------------- arch/arm/mach-ux500/setup.h | 1 - 5 files changed, 40 insertions(+), 133 deletions(-) commit 58e00a6c92d41e302880cae71b0f94b7a4d40c5d Merge: ff20775 bf64dd2 Author: Olof Johansson Date: Thu Aug 6 10:11:36 2015 +0200 Merge branch 'fixes' into next/cleanup * fixes: (28 commits) ARM: ux500: add an SMP enablement type and move cpu nodes ARM: dts: keystone: fix dt bindings to use post div register for mainpll ARM: nomadik: disable UART0 on Nomadik boards ARM: dts: i.MX35: Fix can support. ARM: OMAP2+: hwmod: Fix _wait_target_ready() for hwmods without sysc ARM: dts: add CPU OPP and regulator supply property for exynos4210 ARM: dts: Update video-phy node with syscon phandle for exynos3250 ARM: keystone: dts: rename pcie nodes to help override status ARM: keystone: dts: fix dt bindings for PCIe ARM: pxa: fix dm9000 platform data regression ARM: DRA7: hwmod: fix gpmc hwmod ARM: dts: Correct audio input route & set mic bias for am335x-pepper ARM: OMAP2+: Add HAVE_ARM_SCU for AM43XX MAINTAINERS: digicolor: add dts files ARM: ux500: fix MMC/SD card regression ARM: ux500: define serial port aliases ARM: dts: OMAP5: Add #iommu-cells property to IOMMUs ARM: dts: OMAP4: Add #iommu-cells property to IOMMUs ARM: dts: Fix frequency scaling on Gumstix Pepper ARM: dts: configure regulators for Gumstix Pepper ... commit ff20775d189cf8f36684c88f6f95e00d21bc783c Merge: 39aa437 c99cd90 Author: Olof Johansson Date: Thu Aug 6 10:09:08 2015 +0200 Merge tag 'renesas-marzen-board-removal-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup Renesas ARM Based SoC Marzen Board Removal for v4.3 * Remove legacy r8a7779 SoC code * Remove legacy marzen board code * tag 'renesas-marzen-board-removal-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7779: Remove legacy SoC code ARM: shmobile: marzen: Remove legacy board code ARM: shmobile: r8a7779: Cleanup header file ARM: shmobile: marzen-reference: Remove C board code ARM: shmobile: r8a7779: Generic SMP ops ARM: shmobile: r8a7779: Generic CCF and timer support Signed-off-by: Olof Johansson commit 98c6d5552d45d4c2308c5890ac8fa70d640e50b8 Author: Anthoine Bourgeois Date: Wed Aug 5 23:47:08 2015 +0200 ARM: dts: omap3-devkit8000: add LCD panels Devkit8000 was sold with a 4.3" LCD or 7.0" or without. This patch creates one dts file per bundle. Signed-off-by: Anthoine Bourgeois Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/omap3-devkit8000-common.dtsi | 369 +++++++++++++++++++++ arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi | 38 +++ arch/arm/boot/dts/omap3-devkit8000-lcd43.dts | 37 +++ arch/arm/boot/dts/omap3-devkit8000-lcd70.dts | 37 +++ arch/arm/boot/dts/omap3-devkit8000.dts | 364 +------------------- 6 files changed, 488 insertions(+), 359 deletions(-) commit b02f46b9e0dfe11cb1cff8eeb400e4085a9abbc9 Author: Anthoine Bourgeois Date: Tue Aug 4 22:53:30 2015 +0200 ARM: dts: omap3-devkit8000: Add DSS' DVI support This commit adds the support of DVI output on the devkit8000 board. Signed-off-by: Anthoine Bourgeois [tony@atomide.com: added missing sign as noted by Anthoine] Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000.dts | 103 ++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) commit f1022b9ce17cd55690a94ddf8492e543b4cd7663 Author: Anthoine Bourgeois Date: Tue Aug 4 22:53:29 2015 +0200 ARM: dts: omap3-devkit8000: Add S-video output support This commit adds the support of TV output on the devkit8000 board. Signed-off-by: Anthoine Bourgeois [tony@atomide.com: added missing sign as noted by Anthoine] Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000.dts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 26fa89239201d6c5f767ebe7c2353d469ebf6222 Author: Anthoine Bourgeois Date: Tue Aug 4 22:53:28 2015 +0200 ARM: dts: omap3-devkit8000: Add keymap support The keymap is convert in devicetree from the legacy board file. Signed-off-by: Anthoine Bourgeois [tony@atomide.com: added missing sign as noted by Anthoine] Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit f67879078fdde59b5372b021eef6c74b832ca20e Author: Anthoine Bourgeois Date: Tue Aug 4 22:53:27 2015 +0200 ARM: dts: omap3-devkit8000: Add PMU stat support This patch declares the LEDB usage to the PMU stat monitor. Signed-off-by: Anthoine Bourgeois [tony@atomide.com: added missing sign as noted by Anthoine] Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000.dts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit d6c8a9108037eada09fc8f91e81464172fd89050 Merge: 754d5c7 f49310d Author: Olof Johansson Date: Thu Aug 6 09:32:32 2015 +0200 Merge tag 'zynqmp-dt-for-4.3' of https://github.com/Xilinx/linux-xlnx into next/arm64 arm: Xilinx ZynqMP dt patches for v4.3 - Add SATA, GPIO, CAN, SMMU, USB, SPI, I2C, watchdog and sdhci for zynqmp - Sort nodes in dtsi * tag 'zynqmp-dt-for-4.3' of https://github.com/Xilinx/linux-xlnx: ARM64: zynqmp: Move SPI nodes to the right location ARM64: zynqmp: Move uart and ttcs to the right location ARM64: zynqmp: Enable spi flashes on ep108 ARM64: zynqmp: Add eeprom memories on i2c bus ARM64: zynqmp: Enable sdhci on ep108 ARM64: zynqmp: Enable watchdog on ep108 ARM64: zynqmp: Add DWC3 usb support ARM64: zynqmp: Add SMMU support ARM64: zynqmp: Add CANs node for platform ARM64: zynqmp: Use zynqmp specific compatible string for gpio devicetree: xilinx: zynqmp: add sata node Signed-off-by: Olof Johansson commit 052633c1ec042503cc78d678238714ea554a18e7 Merge: 5d7e73b 75118fd Author: Kalle Valo Date: Thu Aug 6 10:27:59 2015 +0300 Merge tag 'iwlwifi-next-for-kalle-2015-08-04' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next * Deprecate -10.ucode * Clean ups towards multiple Rx queues * Add support for longer CMD IDs. This will be required by new firmwares since we are getting close to the u8 limit. * bugfixes for the D0i3 power state * Add basic support for FTM * More random that doesn't really stand out commit ab00639e778e63ccbca5ff7c99832dfff515fe13 Author: Anthoine Bourgeois Date: Tue Aug 4 22:53:26 2015 +0200 ARM: dts: omap3-devkit8000: Add user button support This patch links the user button to the BTN_EXTRA action. Signed-off-by: Anthoine Bourgeois [tony@atomide.com: added missing sign as noted by Anthoine] Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-devkit8000.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 1e9f747400f5b061bb088a41c4616342a14fb976 Author: Dave Gerlach Date: Wed Aug 5 16:19:46 2015 +0530 ARM: dts: am437x-gp-evm: Add regulator-always-on and regulator-boot-on for RTC DCDCs DCDC5 and DCDC6 supply rtc and need to be on for accessing the module. On A1 revision of the TPS65218, FSEAL bit would be undefined without coin-cell present which in many cases led to it being set, causing DCDC5 and DCDC6 to stay active, but also leading to unexplained failures when it was not. On B1 revision, FSEAL is always 0 when no coin-cell is present so this patch is required on boards with B1 revision to ever work. This implementation works on boards with either A1 or B1 revision and makes sure that DCDC5 and DCDC6 always stay active. Signed-off-by: Dave Gerlach Signed-off-by: Keerthy Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 5d9ef0cf28fe9edadbc74556dca16725180c2765 Author: Keerthy Date: Wed Aug 5 16:19:45 2015 +0530 ARM: dts: AM4372: Reorder the rtc compatible string Compared to da830-rtc compatibility am3352-rtc is more compatible to the one in am437x. Hence adding the am3352-rtc compatible to cover the entire feature set. The ti,am4372-rtc has no Documentation and not used even in the driver hence removing it. Signed-off-by: Keerthy Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5d7e73ba2fd54b17aa8a9f0bcc228a4200d094ad Author: Guy Mishol Date: Mon Jul 27 17:25:49 2015 +0300 wlcore: add antenna diversity reading comments add comments to the antenna diversity reading Signed-off-by: Guy Mishol Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/rx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 6c6317321107bee5aad2d85d848b0597428343d8 Author: Amitkumar Karwar Date: Mon Jul 27 05:02:27 2015 -0700 mwifiex: add missing skb_push() in mwifiex_check_uap_capabilties For PCIe/USB chipsets, preallocated skb buffers are reused for event handling. mwifiex_check_uap_capabilties() performs skb_pull(). This patch adds missing skb_push() to restore skb's data pointer/length. This bug was introduced by commit debfc6008169 ("mwifiex: update AP WMM settings from BSS_START event") Signed-off-by: Amitkumar Karwar Signed-off-by: Nishant Sarmukadam Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/uap_event.c | 2 ++ 1 file changed, 2 insertions(+) commit d1c5409612ad25d8a35a49a89ad302fc797eeb8e Author: Guy Mishol Date: Mon Jul 27 09:46:02 2015 +0300 wl18xx: add dynamic fw traces add option to dynamically configure the fw which debug traces to open Signed-off-by: Guy Mishol Signed-off-by: Eliad Peller Signed-off-by: Kalle Valo drivers/net/wireless/ti/wl18xx/acx.c | 27 +++++++++++++++++ drivers/net/wireless/ti/wl18xx/acx.h | 13 ++++++++- drivers/net/wireless/ti/wl18xx/debugfs.c | 50 ++++++++++++++++++++++++++++++++ drivers/net/wireless/ti/wl18xx/main.c | 5 ++++ drivers/net/wireless/ti/wlcore/wlcore.h | 3 ++ 5 files changed, 97 insertions(+), 1 deletion(-) commit 2728cecdc7d6bf3d216fc406718d88c35f4d09eb Author: Amitkumar Karwar Date: Wed Jul 22 04:53:45 2015 -0700 mwifiex: corrections in PCIe event skb handling Preallocated event SKBs are getting reused for PCIe chipset. Their physical addresses are shared with firmware so that firmware can write data into them. This patch makes sure that SKB is cleared and length is set to default while submitting it to firmware. Signed-off-by: Amitkumar Karwar Signed-off-by: Zhaoyang Liu Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/pcie.c | 2 ++ 1 file changed, 2 insertions(+) commit d788ac29793ae591801103b714c20ca3ae311c21 Author: Zhaoyang Liu Date: Wed Jul 22 04:53:44 2015 -0700 mwifiex: fix system crash observed during initialisation System crash was observed if one of the driver initialisation commands is timed out. The reason is our timeout handler triggers firmware dump, meanwhile driver initialisation error paths have already freed the adapter structure. Firmware hasn't yet completely initialized. So collecting firmware dump is not needed in this case. Command timeout handler is modified in this patch to fix the crash issue. Signed-off-by: Zhaoyang Liu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 398750992ebe8a3f26d9c1c978911b55c2b2ff8b Author: Zhaoyang Liu Date: Wed Jul 22 04:53:43 2015 -0700 mwifiex: fix command timeout for PCIe chipsets When WLAN interface is up and running, driver unload and load was causing command timeout error. We enable Rx data by updating RX ring read pointer in init_fw_port(). It should be done when FW is completely intialialised. Command timeout is fixed in this patch by moving init_fw_port() call to mwifiex_init_fw_complete(). Signed-off-by: Zhaoyang Liu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/init.c | 5 ----- drivers/net/wireless/mwifiex/util.c | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-) commit 3afafd6dcc0cb894a2a6cc1a42bb6f84a0519f16 Author: Xinming Hu Date: Wed Jul 22 04:53:42 2015 -0700 mwifiex: using right aid value for tdls action frame Variable pos is u8 here, so memcpy is needed to store u16 aid. At the same time, aid should be platform independent, upper layer utility(wpa_supplicant,etc.,) parse it as le16, so keep it le16 here. Signed-off-by: Xinming Hu Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/tdls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d70d848a75fd65b28835a843bcc4faec2f5803ea Author: Felix Fietkau Date: Wed Jul 22 13:06:14 2015 +0200 ath9k: remove the sched field in struct ath_atx_tid Use list_empty(&tid->list) instead Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/ath9k.h | 1 - drivers/net/wireless/ath/ath9k/xmit.c | 23 ++++++++--------------- 2 files changed, 8 insertions(+), 16 deletions(-) commit 592fa228f213932dc5ec433aade654d7352b3e08 Author: Felix Fietkau Date: Wed Jul 22 13:06:13 2015 +0200 ath9k: remove struct ath_atx_ac struct ath_atx_ac contains a list of active TIDs belonging to one WMM AC. This patch changes the code to track active station TIDs in the txq directly. Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/ath9k.h | 12 +--- drivers/net/wireless/ath/ath9k/xmit.c | 128 ++++++++++----------------------- 2 files changed, 41 insertions(+), 99 deletions(-) commit f419c5f1d8d28391a025618dee7e1a4fdc7a5654 Author: Felix Fietkau Date: Wed Jul 22 13:06:12 2015 +0200 ath9k: add fast-xmit support Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/init.c | 1 + 1 file changed, 1 insertion(+) commit 1738203ee7291b5e93670d19a663fae03155aebc Author: Janusz.Dziedzic@tieto.com Date: Tue Jul 21 11:11:43 2015 +0200 ath9k: setup rxfilter when offchannel Setup rxfiler correctly for offchannel ctx. This fix problem we didn't configure rxfilter, next didn't receive probe requests and next failed p2p_find. This was seen when ath9k loaded with use_chanctx=1 Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/main.c | 3 +++ 1 file changed, 3 insertions(+) commit f3771c08282afa1354c2e5a2fdade587f30db4fd Author: Janusz.Dziedzic@tieto.com Date: Tue Jul 21 11:11:42 2015 +0200 ath9k: setup rxfilter for all chanctx While mac80211 setup this per HW, set same rxfilter configuration for all chanctx. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d83520b7cd6e8c5399b1bd0d2f6f9ce733b10454 Author: Janusz.Dziedzic@tieto.com Date: Tue Jul 21 11:11:41 2015 +0200 ath9k: handle RoC cancel correctly In case we will get ROC cancel from mac80211 we should not call ieee80211_remain_on_channel_expired(). In other case I hit such warning on MIPS and p2p negotiation failed (tested with use_chanctx=1). ath: phy0: Starting RoC period ath: phy0: Channel definition created: 2412 MHz ath: phy0: Assigned next_chan to 2412 MHz ath: phy0: Offchannel duration for chan 2412 MHz : 506632 ath: phy0: ath_chanctx_set_next: current: 2412 MHz, next: 2412 MHz ath: phy0: Stopping current chanctx: 2412 ath: phy0: Flush timeout: 200 ath: phy0: ath_chanctx_set_next: Set channel 2412 MHz ath: phy0: Set channel: 2412 MHz width: 0 ath: phy0: Reset to 2412 MHz, HT40: 0 fastcc: 0 ath: phy0: cur_chan: 2412 MHz, event: ATH_CHANCTX_EVENT_TSF_TIMER, state: ATH_CHANCTX_STATE_IDLE ath: phy0: ath_offchannel_channel_change: offchannel state: ATH_OFFCHANNEL_ROC_START ath: phy0: cur_chan: 2412 MHz, event: ATH_CHANCTX_EVENT_SWITCH, state: ATH_CHANCTX_STATE_IDLE ath: phy0: Cancel RoC ath: phy0: RoC aborted ath: phy0: RoC request on vif: 00:03:7f:4e:a0:cd, type: 1 duration: 500 ath: phy0: Starting RoC period ath: phy0: Channel definition created: 2412 MHz ath: phy0: Assigned next_chan to 2412 MHz ath: phy0: Offchannel duration for chan 2412 MHz : 506705 ath: phy0: ath_chanctx_set_next: current: 2412 MHz, next: 2412 MHz ath: phy0: ath_offchannel_channel_change: offchannel state: ATH_OFFCHANNEL_ROC_START ath: phy0: cur_chan: 2412 MHz, event: ATH_CHANCTX_EVENT_SWITCH, state: ATH_CHANCTX_STATE_IDLE ------------[ cut here ]------------ WARNING: CPU: 0 PID: 3312 at drivers/net/wireless/ath/ath9k/main.c:2319 Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/ath9k.h | 9 ++++++++- drivers/net/wireless/ath/ath9k/channel.c | 23 ++++++++++++++++------- drivers/net/wireless/ath/ath9k/main.c | 4 ++-- 3 files changed, 26 insertions(+), 10 deletions(-) commit eb61f9f623f78f463ec08b1c4a1defea9b511312 Author: Janusz.Dziedzic@tieto.com Date: Tue Jul 21 11:11:40 2015 +0200 ath9k: advertise p2p dev support when chanctx Advertise p2p device support when ath9k loaded with use_chanctx=1. This will fix problem, when first interface is an AP and next we would like to run p2p_find. Before p2p find (scan phase) failed with EOPNOTSUPP. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/init.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c5bc15fce6aa33b7aeba4e049ceacfab66fa4a9f Author: Andreas Fenkart Date: Fri Jul 17 09:13:06 2015 +0200 mwifiex: simplify mwifiex_complete_cmd 600f5d909a54("mwifiex: cleanup ioctl wait queue and abstraction layer") introduced the wakeup_interruptible suppression in mwifiex_complete_cmd b1a47aa5e1e1("mwifiex: fix system hang issue in cmd timeout error case") then added wakup_interruptible to mwifiex_cmd_timeout_func the single place setting a status of ETIMEDOUT. Instead of doing extra work, using the standard call-chain will have the same effect: mwifiex_cancel_pending_ioctl -> mwifiex_recycle_cmd_node -> mwifiex_insert_cmd_to_free_q -> mwifiex_complete_cmd -> wake_up_interruptible The difference is that previously the condition was not set to true, but that's probably just an oversight in b1a47aa5e1e1 and shouldn't have any consequence Signed-off-by: Andreas Fenkart Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 1 - drivers/net/wireless/mwifiex/sta_ioctl.c | 4 ++-- drivers/net/wireless/mwifiex/util.c | 12 ++++-------- 3 files changed, 6 insertions(+), 11 deletions(-) commit e9f21d403699a4d299a02df107326f11acecd13e Author: Andreas Fenkart Date: Fri Jul 17 09:13:05 2015 +0200 mwifiex: remove CMD_F_CANCELED flag CMD_F_CANCELED was used to abort mwifiex_process_cmdresp in case it already started or starts processing the cmd. But this was probably not working the way intended: - it is racy: mwifiex_process_cmdresp might already have passed that test and is continuing to use the cmd node being recycled - mwifiex_process_cmdresp repeatedly uses adapter->curr_cmd which we just set to NULL - mwifiex_recycle_cmd_node will clear the flag The reason why it probably works is that mwifiex_cancel_pending_ioctl is only called from mwifiex_cmd_timeout_func, where the there is little chance of a command response still arriving Signed-off-by: Andreas Fenkart Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 23 ++++++++++------------- drivers/net/wireless/mwifiex/fw.h | 1 - 2 files changed, 10 insertions(+), 14 deletions(-) commit aeb03000837eec7df4f57034106542efd60be02b Author: Andreas Fenkart Date: Fri Jul 17 09:13:04 2015 +0200 mwifiex: remove redundant reset of cmd_wait_q status mwifiex_cancel_pending_ioctl is called only from mwifiex_cmd_timeout_func. There the wait_q status is set to -ETIMEDWAIT before calling this function. Whether we reset the status to -1 or leave it at -ETIMEDWAIT at end doesn't matter since both are != 0 hence mean failure Signed-off-by: Andreas Fenkart Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 1 - 1 file changed, 1 deletion(-) commit e3a3ef25b8cb6d7a20b52dfdadd56516041ffb51 Author: Andreas Fenkart Date: Fri Jul 17 09:13:03 2015 +0200 mwifiex: remove explicit mwifiex_complete_cmd calls standard call chain when releasing a cmd node: mwifiex_recycle_cmd_node -> mwifiex_insert_cmd_to_free_q -> mwifiex_complete_cmd, if wait_q_enabled calling mwifiex_complete_cmd explicitly and setting wait_q_enabled = false is redundant Signed-off-by: Andreas Fenkart Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cmdevt.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit b4336a282db86b298b70563f8ed51782b36b772c Author: Andreas Fenkart Date: Thu Jul 16 18:50:01 2015 +0200 mwifiex: sdio: reset adapter using mmc_hw_reset Since 1fb654fd97ff("mmc: sdio: add reset callback to bus operations"), sdio cards can be power cycled using mmc_hw_reset. The use mmc_remove_host/mmc_add_host is discouraged, because these are internal functions to the mmc core and should only be used by mmc hosts Signed-off-by: Andreas Fenkart Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/sdio.c | 51 ++++++++++++++++++++++++++----------- drivers/net/wireless/mwifiex/sdio.h | 3 +++ 2 files changed, 39 insertions(+), 15 deletions(-) commit b6b6c18fcd9af2a71d7b2cfca0388a928308f963 Merge: 75f8085 f151f53 Author: Ingo Molnar Date: Thu Aug 6 08:51:18 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: New features: - Deref sys_enter pointer args with contents from probe:vfs_getname, showing pathnames instead of pointers in many syscalls in 'perf trace'. (Arnaldo Carvalho de Melo) - Make 'perf trace' write to stderr by default, just like 'strace'. (Milian Woff) Infrastructure changes: - color_vfprintf() fixes. (Andi Kleen, Jiri Olsa) - Allow enabling/disabling PERF_SAMPLE_TIME per event. (Kan Liang) - Fix build errors with mipsel-linux-uclibc compiler. (Petri Gynther) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 19c871ce3ac5f99d4354b0345c7560f6d0f760bd Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:07 2015 +0300 wil6210: support future boot loaders Boot loader versions as backward compatible, starting from v1 Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) commit 409ead544d747a5e80fdd3626a7fd75d6990a2fb Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:06 2015 +0300 wil6210: report boot loader error Boot loader reports error starting from the struct v2. Print error info before reset (power up state) in debug mode, and print same info as error if target reset timed out. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/boot_loader.h | 5 ++++ drivers/net/wireless/ath/wil6210/main.c | 37 +++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) commit 93cb679a768bb526a60a9c4ce30beb45465334be Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:05 2015 +0300 wil6210: system power management Support for the system suspend/resume. In preparation for the run-time PM, implementation made run-time PM friendly: common for system and run-time PM code factored out as generic functions, albeit is_runtime parameter value is always false currently. For debug purposes, "PM" debug category introduced. Policy: AP-like interface can't be suspended; otherwise suspend is allowed. Hardware brought down if interface was up. Connection, if existed, get lost. Interface will be brought up upon resume if it was up before suspend. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/Makefile | 1 + drivers/net/wireless/ath/wil6210/pcie_bus.c | 69 ++++++++++++++++++++ drivers/net/wireless/ath/wil6210/pm.c | 98 +++++++++++++++++++++++++++++ drivers/net/wireless/ath/wil6210/wil6210.h | 5 ++ 4 files changed, 173 insertions(+) commit 0553640d28baf77cf0fb91c8a834059f0b9be972 Author: Vladimir Shulman Date: Thu Jul 30 13:52:04 2015 +0300 wil6210: allow to handle Rx on 2 cores Allow network stack part of Rx processing to run on separate core, relaxing CPU utilization on the core used for Rx NAPI. If RXHASH feature is enabled, the driver sets rxhash of each skb to 1 to enable RPS. The core for processing the rx skb is determined by RPS mechanism according to rx_cpus bit mask which is configured at user level. For processing skbs on different core from the core which processes the interrupts, it is recommended not to enable core 0 in rx_cpus bit mask. Signed-off-by: Vladimir Shulman Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/netdev.c | 3 ++- drivers/net/wireless/ath/wil6210/txrx.c | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit b9eeb512496f1b1b5a6e0748c947277d95003af5 Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:03 2015 +0300 wil6210: use inline functions for register access Replace macros like "R", "W", "S", "C", defined multiple times, with inline functions "wil_[rwsc]". Use "readl" and "writel" instead of "ioread32" and "iowrite32" since it is granted that memory transactions are used, not port ones like IN/OUT Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/debugfs.c | 8 +- drivers/net/wireless/ath/wil6210/ethtool.c | 14 +--- drivers/net/wireless/ath/wil6210/fw.c | 10 --- drivers/net/wireless/ath/wil6210/fw_inc.c | 16 ++-- drivers/net/wireless/ath/wil6210/interrupt.c | 110 ++++++++++++--------------- drivers/net/wireless/ath/wil6210/ioctl.c | 4 +- drivers/net/wireless/ath/wil6210/main.c | 94 ++++++++++------------- drivers/net/wireless/ath/wil6210/pcie_bus.c | 2 +- drivers/net/wireless/ath/wil6210/txrx.c | 6 +- drivers/net/wireless/ath/wil6210/wil6210.h | 31 +++++++- drivers/net/wireless/ath/wil6210/wmi.c | 26 +++---- 11 files changed, 151 insertions(+), 170 deletions(-) commit bd2d18b50631c027af7674c3f328913c3b87d422 Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:02 2015 +0300 wil6210: remove 3-MSI support In the recent kernel versions, multiple MSI is not well supported. In particular, it is not supported on x86 and ARM architectures. Also, internal interrupt handling logic is simpler and more effective when using single interrupt. Remove support for 3 MSI, convert module parameter "use_msi" from int with range [0,1,3] to boolean. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/interrupt.c | 55 +++------------------------ drivers/net/wireless/ath/wil6210/pcie_bus.c | 56 ++++++---------------------- drivers/net/wireless/ath/wil6210/wil6210.h | 3 +- 3 files changed, 18 insertions(+), 96 deletions(-) commit 91a8edcc3173958fd8102343a8a7919a7b703ef0 Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:01 2015 +0300 wil6210: detailed statistics for Rx reorder drop Rx drops may be for 2 reasons: frame is old, or it is duplicate. On the debugfs "stations" entry, provide counters per reorder buffer for total frames processed, drops for these 2 reasons. Also add debug print for dropped frames. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/debugfs.c | 6 +++++- drivers/net/wireless/ath/wil6210/rx_reorder.c | 8 ++++++-- drivers/net/wireless/ath/wil6210/wil6210.h | 15 ++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) commit 5421bf0c1e37642f42758fe1c73e43b27901dd61 Author: Vladimir Kondratiev Date: Thu Jul 30 13:52:00 2015 +0300 wil6210: unify wmi_set_ie() error handling When printing error message, provide string describing IE kind. Derive it from IE type This allows removing of error messages printing in callers Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 29 ++++++++--------------------- drivers/net/wireless/ath/wil6210/wmi.c | 19 +++++++++++++++++-- 2 files changed, 25 insertions(+), 23 deletions(-) commit cab5abbf9d0ef8b36d5f5181f0087ed3836385d0 Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:59 2015 +0300 wil6210: sort IEs handling sort overall IE's handling prepare code (disabled for now) to add IEs for the beacon Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 78 +++++++++++------------------ 1 file changed, 29 insertions(+), 49 deletions(-) commit a3ce5ccd50ee24313fa3e55d2cafc6da7dfcbe18 Author: Dedy Lansky Date: Thu Jul 30 13:51:58 2015 +0300 wil6210: treat "unhandled event" as warning instead of error FW is allowed to generate WMI events that are not handled by this driver. Treat such case as warning instead of error. Signed-off-by: Dedy Lansky Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 90d89e9aaa9923cd44bd5bf8a26abb7834581ba6 Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:57 2015 +0300 wil6210: improve mgmt frame handling Check event length; hex dump both Rx and Tx frames Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wmi.c | 54 +++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 10 deletions(-) commit 3d4bde15315605d2490eafe9f763897e69f9125e Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:56 2015 +0300 wil6210: TSO implementation Driver report supported TSO (v4 & v6) and IP checksum offload in addition to previously supported features. In data path skbs are checked for non-zero gso_size, and when detected sent to additional function for processing TSO SKBs. Since HW does not fully support TSO, additional effort is required from the driver. Driver partitions the data into mss sized descriptors which are then DMAed to the HW. Signed-off-by: Vladimir Shulman Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/netdev.c | 4 +- drivers/net/wireless/ath/wil6210/txrx.c | 371 +++++++++++++++++++++++++++++- drivers/net/wireless/ath/wil6210/txrx.h | 8 + 3 files changed, 371 insertions(+), 12 deletions(-) commit 67131a1dba5f45cee78e9de09605cbdda1a1ce6c Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:55 2015 +0300 wil6210: skip HW version check for chip debugging When loading with debug_fw flag, do not bail out on unknown chipId Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8ad6600fbdd699f0d7a3ec250d20256a7ec98889 Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:54 2015 +0300 wil6210: use wil_fw_error_recovery() Use function wil_fw_error_recovery() instead of inline equivalent code Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3e9191fce2d6b36a429dc046cdc1f7e8ec70465c Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:53 2015 +0300 wil6210: wait for del_station to complete Multiple del_station requests may be sent to the driver by the supplicant when turning down AP. This may overflow mailbox between the FW and ucode Wait till disconnect of one STA completed before sending next command. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wmi.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit 8a9d1dc5741da8575e3393de392cc1704ecd4fe7 Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:52 2015 +0300 wil6210: use <> vs. "" for global include linux/device.h should be included using <>, not "" since it is not local include Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/wil_platform.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ea06188fd8cb4c6bb85663b6dedcab22f7ffba7 Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:51 2015 +0300 wil6210: print "ulong" fields in hex format in the debugfs In the debugfs, there is "ulong" attribute printing. It is used for bitmap printing, and more appropriate format would be hexadecimal, not decimal. Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6093e66b6b456f4526e190b00d362520b787889b Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:50 2015 +0300 wil6210: count drops in Rx block ack reorder When performing Rx reordering, count skb's dropped per reorder buffer; and print dropped packets count on the "stations" debugfs entry Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/debugfs.c | 2 +- drivers/net/wireless/ath/wil6210/rx_reorder.c | 2 ++ drivers/net/wireless/ath/wil6210/wil6210.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) commit f1ad8c9346de80c91d7f35d4a1b0d1f2b93b3661 Author: Vladimir Kondratiev Date: Thu Jul 30 13:51:49 2015 +0300 wil6210: support boot loader struct v0 & v1 There are 2 versions of boot loader struct: v0 and v1. In the v1, boot loader build version added; as well as RF status. Support both versions. Boot loader structure v1 has RF status; ignore RF error if firmware not going to be loaded; driver can still be used to interact with the HW Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/boot_loader.h | 56 +++++++++++++++++ drivers/net/wireless/ath/wil6210/main.c | 85 ++++++++++++++++++++------ drivers/net/wireless/ath/wil6210/wil6210.h | 10 --- 3 files changed, 124 insertions(+), 27 deletions(-) commit 197165d44925bd0fa892990851dee4d312a44b39 Author: Naveen N. Rao Date: Fri Apr 24 14:24:44 2015 +0530 powerpc/ftrace: add powerpc timebase as a trace clock source Add a new powerpc-specific trace clock using the timebase register, similar to x86-tsc. This gives us - a fast, monotonic, hardware clock source for trace entries, and - a clock that can be used to correlate events across cpus as well as across hypervisor and guests. Signed-off-by: Naveen N. Rao Acked-by: Steven Rostedt Signed-off-by: Michael Ellerman Documentation/trace/ftrace.txt | 5 +++++ arch/powerpc/include/asm/Kbuild | 1 - arch/powerpc/include/asm/trace_clock.h | 19 +++++++++++++++++++ arch/powerpc/kernel/Makefile | 1 + arch/powerpc/kernel/trace_clock.c | 15 +++++++++++++++ 5 files changed, 40 insertions(+), 1 deletion(-) commit 35a7f41cc6bb7013e344502b03c5583d04228bd3 Author: Wei Yongjun Date: Thu Apr 16 20:18:50 2015 +0800 powerpc/4xx: Fix return value check in hsta_msi_probe() In case of error, the functions platform_get_resource() and kmalloc() returns NULL not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. Signed-off-by: Wei Yongjun Signed-off-by: Michael Ellerman arch/powerpc/sysdev/ppc4xx_hsta_msi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 12a8343e99a8af50b2a1cd8da72d34b6e860da0f Author: Chao Yu Date: Wed Aug 5 17:23:54 2015 +0800 f2fs: recover invalid/reserved block address for fsynced file When testing with generic/101 in xfstests, error message outputed as below: --- tests/generic/101.out +++ results//generic/101.out.bad @@ -10,10 +10,14 @@ File foo content after log replay: 0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa * -0200000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +0200000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb * 0372000 ... (Run 'diff -u tests/generic/101.out results/generic/101.out.bad' to see the entire diff) The test flow is like below: 1. pwrite foo -S 0xaa 0 64K 2. pwrite foo -S 0xbb 64K 61K 3. sync 4. truncate foo 64K 5. truncate foo 125K 6. fsync foo 7. flakey drop writes 8. umount After this test, we expect the data of recovered file will have the first 64k of data filling with value 0xaa and the next 61k of data filling with value 0x00 because we have fsynced it before dropping writes in dm. In f2fs, during recovering, we will only recover the valid block address in direct node page if it is marked as a fsynced dnode, but block address which means invalid/reserved (with value NULL_ADDR/NEW_ADDR) will not be recovered. So, the file recovered shows its incorrect data 0xbb in range of [61k, 125k]. In this patch, we fix to recover invalid/reserved block during recover flow. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/recovery.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) commit 759af1c9c16fec5323111b799ce25a3d8864df7e Author: Fan Li Date: Wed Aug 5 15:52:16 2015 +0800 f2fs: use extent cache to optimize f2fs_reserve_block In some cases, we only need the block address when we call f2fs_reserve_block, other fields of struct dnode_of_data aren't necessary. We can try extent cache first for such cases in order to speed up the process. Signed-off-by: Fan li Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 16 +++++++++++++++- fs/f2fs/f2fs.h | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) commit a368c29cf105485d2c34fb5d09d2dbe813e483e1 Author: Paul Bolle Date: Fri Jul 31 14:14:20 2015 +0200 windfarm: remove three exported but unused functions wf_find_control(), wf_find_sensor(), and wf_is_overtemp() are exported but unused. Remove these three functions. Signed-off-by: Paul Bolle Signed-off-by: Michael Ellerman drivers/macintosh/windfarm.h | 4 ---- drivers/macintosh/windfarm_core.c | 42 --------------------------------------- 2 files changed, 46 deletions(-) commit ca94bbab1a0336f34066f27c503767b8181db5b1 Author: Paul Bolle Date: Fri Jul 31 14:12:20 2015 +0200 windfarm: make wf_critical_overtemp() static wf_critical_overtemp() is exported. But nothing uses that export. That's unsurprising because there's no header that defines it. Stop exporting that function and make it static. Signed-off-by: Paul Bolle Signed-off-by: Michael Ellerman drivers/macintosh/windfarm_core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fe2b592173ff0274e70dc44d1d28c19bb995aa7c Author: Paul Bolle Date: Fri Jul 31 14:08:58 2015 +0200 windfarm: decrement client count when unregistering wf_unregister_client() increments the client count when a client unregisters. That is obviously incorrect. Decrement that client count instead. Fixes: 75722d3992f5 ("[PATCH] ppc64: Thermal control for SMU based machines") Signed-off-by: Paul Bolle Signed-off-by: Michael Ellerman drivers/macintosh/windfarm_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a825ac078b50266fb09168547752dd73c2fd4b4a Author: Joe Perches Date: Mon Jun 29 14:30:39 2015 -0700 powerpc: Remove redundant breaks break; break; isn't useful. Remove one. Signed-off-by: Joe Perches Signed-off-by: Michael Ellerman arch/powerpc/kernel/kvm.c | 1 - arch/powerpc/xmon/xmon.c | 1 - 2 files changed, 2 deletions(-) commit ae2a84b4074cff81957bae01bc1e0d50712f3dd3 Author: Kevin Hao Date: Fri Jun 12 10:26:37 2015 +0800 powerpc: pci: use %pR for printing struct resource Use %pR to simplify the debug code. This also make the debug info more readable. Signed-off-by: Kevin Hao [mpe: Unsplit multi-line printk strings] Signed-off-by: Michael Ellerman arch/powerpc/kernel/pci-common.c | 72 ++++++++++------------------------------ 1 file changed, 18 insertions(+), 54 deletions(-) commit 368857c16c595eb7537cc0846708ddaa57a3a25b Author: Daniel Axtens Date: Wed Jul 29 14:07:22 2015 +1000 cxl: Don't ignore add_process_element() result when attaching context Currently when attaching a context in dedicated mode, we ignore the result of add_process_element(), which could potentially fail. If add_process_element() returns an error, pass it back to the caller. Signed-off-by: Daniel Axtens Signed-off-by: Michael Ellerman drivers/misc/cxl/native.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 62521ea6db1045a746d4625f40ef6be8b74f126d Author: Mahesh Salgaonkar Date: Tue Aug 4 16:48:56 2015 +0530 powerpc/powernv: Invoke opal_cec_reboot2() on unrecoverable HMI. Invoke new opal_cec_reboot2() call with reboot type OPAL_REBOOT_PLATFORM_ERROR (for unrecoverable HMI interrupts) to inform BMC/OCC about this error, so that BMC can collect relevant data for error analysis and decide what component to de-configure before rebooting. Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-hmi.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit e784b6499d9cba83b7f3f032b7ee01f7ca96ad91 Author: Mahesh Salgaonkar Date: Fri Jul 31 21:24:38 2015 +0530 powerpc/powernv: Invoke opal_cec_reboot2() on unrecoverable machine check errors. On non-recoverable MCE errors in kernel space, Linux kernel panics and system reboots. On BMC based system opal-prd runs as a daemon in the host. Hence, kernel crash may prevent opal-prd to detect and analyze this MCE error. This may land us in a situation where the faulty memory never gets de-configured and Linux would keep hitting same MCE error again and again. If this happens in early stage of kernel initialization, then Linux will keep crashing and rebooting in a loop. This patch fixes this issue by invoking new opal_cec_reboot2() call with reboot type OPAL_REBOOT_PLATFORM_ERROR to inform BMC/OCC about this error, so that BMC can collect relevant data for error analysis and decide what component to de-configure before rebooting. This patch is dependent on OPAL patchset posted on skiboot mailing list at https://lists.ozlabs.org/pipermail/skiboot/2015-July/001771.html that introduces opal_cec_reboot2() opal call. Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 9 ++++++- arch/powerpc/include/asm/opal.h | 1 + arch/powerpc/platforms/powernv/opal-wrappers.S | 1 + arch/powerpc/platforms/powernv/opal.c | 35 ++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) commit 1852ae276ba6d5d481c3fb193054ebb67068be5c Author: Mahesh Salgaonkar Date: Tue May 5 13:35:43 2015 +0530 powerpc/powernv: Pull all HMI events before panic. In the event of unrecovered HMI the existing code panics as soon as it receives the first unrecovered HMI event. This makes host to report partial information about HMIs before panic. There may be more errors which would have caused the HMI and hence more HMI event would have been generated waiting to be pulled by host. This patch implements a logic to pull and display all the HMI event before going down panic path. Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/opal-hmi.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit c33e11d0dd2ebd2cd528aa8e9ef46afdd4d766b0 Author: Mahesh Salgaonkar Date: Tue May 5 13:34:58 2015 +0530 powerpc/powernv: display reason for Malfunction Alert HMI. The V2 version of HMI event now carries additional information for Malfunction Alert. It now contains error information about CORE and NX checkstop. This patch checks and displays the check stop reason before panic. Signed-off-by: Mahesh Salgaonkar Acked-by: Stewart Smith Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 61 ++++++++++++++ arch/powerpc/platforms/powernv/opal-hmi.c | 132 ++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+) commit 3d8cc00073d6750ffe883685e49b2e4a0f596370 Author: Thomas Gleixner Date: Sat Aug 1 07:06:58 2015 +0000 dmaengine: ipu: Consolidate duplicated irq handlers The functions irq_irq_err and ipu_irq_fn are identical plus/minus the comments. Remove one. Signed-off-by: Thomas Gleixner Cc: Vinod Koul Cc: Dan Williams Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/ipu/ipu_irq.c | 46 ++++------------------------------------------ 1 file changed, 4 insertions(+), 42 deletions(-) commit 425e20fd08a53ad06c562960d594505813c7910c Author: Thomas Gleixner Date: Sat Aug 1 07:06:58 2015 +0000 dmaengine: ipu: Prepare irq handlers for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Vinod Koul Cc: Dan Williams Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/ipu/ipu_irq.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 67a6eedc4d2cc609620d27e33f72b8f90e61e0a7 Author: Maxime Ripard Date: Mon Jul 6 12:19:24 2015 +0200 dmaengine: xdmac: Add scatter gathered memset support The XDMAC also supports memset operations over discontiguous areas. Add the necessary logic to support this. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 166 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 165 insertions(+), 1 deletion(-) commit 50c7cd2bd3786258606c6c7c8356064c08ab2383 Author: Maxime Ripard Date: Mon Jul 6 12:19:23 2015 +0200 dmaengine: Add scatter-gathered memset The current API allows the driver to accelerate memset by using the DMA controller. However, it does so over a contiguous memory area, which might proves inefficient when you have to do it over a non-contiguous yet repititive pattern, since you have to create a number of descriptors and then submit each other. Add a memset operation going over a scatter list to handle such cases in a single call. Signed-off-by: Maxime Ripard Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul include/linux/dmaengine.h | 5 +++++ 1 file changed, 5 insertions(+) commit e91a398c31cef2d51786642e372c503cd43fba90 Author: Rafael J. Wysocki Date: Sat Aug 1 02:39:43 2015 +0200 ACPI / bus: Move duplicate code to a separate new function After merging commit 712e960f0ee9 (ACPI / PM: Attach ACPI power domain only once) with commit 1dcc3d3362b0 (ACPI / bus: Move ACPI bus type registration) there is some duplicate code in acpi_device_is_first_physical_node() and acpi_companion_match() that can be moved to a separate routine and called from both places. Signed-off-by: Rafael J. Wysocki Reviewed-by: Mika Westerberg Reviewed-by: Hanjun Guo drivers/acpi/bus.c | 51 ++++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) commit 7fc80964e80bcf93cff0f7ba2aa8095d48f940d6 Author: Daniel Machon Date: Wed Aug 5 00:09:35 2015 +0200 wilc1000: wilc_wfi_cfgoperations.c: Fixed initialization of global boolean. Globals are initialized to zero or NULL by GCC. No need to explicitly initialize them. Signed-off-by: Daniel Machon Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4816693286d4ff9219b1cc72c2ab9c589448ebcb Author: Dan Williams Date: Thu Jul 30 12:54:40 2015 -0400 toshiba laptop: replace ioremap_cache with ioremap With ioremap_cache being replaced with memremap there is no longer a guarantee that a mapping will silently fall back to an uncached mapping. Explicitly use a vanilla ioremap() for this short lived mapping. Cc: Arnd Bergmann Cc: Jonathan Buzzard Signed-off-by: Dan Williams Signed-off-by: Greg Kroah-Hartman drivers/char/toshiba.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71db87ba570038497db1227b7dc61113c4156565 Author: Viresh Kumar Date: Thu Jul 30 15:04:01 2015 +0530 bus: subsys: update return type of ->remove_dev() to void Its return value is not used by the subsys core and nothing meaningful can be done with it, even if we want to use it. The subsys device is anyway getting removed. Update prototype of ->remove_dev() to make its return type as void. Fix all usage sites as well. Signed-off-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman arch/sh/kernel/cpu/sh4/sq.c | 3 +-- arch/tile/kernel/sysfs.c | 11 ++++------- arch/x86/kernel/cpu/microcode/core.c | 5 ++--- drivers/cpufreq/cpufreq.c | 12 +++++------- drivers/net/rionet.c | 4 +--- include/linux/device.h | 2 +- 6 files changed, 14 insertions(+), 23 deletions(-) commit 52cdbdd49853dfa856082edb0f4c4c0249d9df07 Author: Grygorii Strashko Date: Mon Jul 27 20:43:01 2015 +0300 driver core: correct device's shutdown order Now device's shutdown sequence is performed in reverse order of their registration in devices_kset list and this sequence corresponds to the reverse device's creation order. So, devices_kset data tracks "parent<-child" device's dependencies only. Unfortunately, that's not enough and causes problems in case of implementing board's specific shutdown procedures. For example [1]: "DRA7XX_evm uses PCF8575 and one of the PCF output lines feeds to MMC/SD and this line should be driven high in order for the MMC/SD to be detected. This line is modelled as regulator and the hsmmc driver takes care of enabling and disabling it. In the case of 'reboot', during shutdown path as part of it's cleanup process the hsmmc driver disables this regulator. This makes MMC boot not functional." To handle this issue the .shutdown() callback could be implemented for PCF8575 device where corresponding GPIO pins will be configured to states, required for correct warm/cold reset. This can be achieved only when all .shutdown() callbacks have been called already for all PCF8575's consumers. But devices_kset is not filled correctly now: devices_kset: Device61 4e000000.dmm devices_kset: Device62 48070000.i2c devices_kset: Device63 48072000.i2c devices_kset: Device64 48060000.i2c devices_kset: Device65 4809c000.mmc ... devices_kset: Device102 fixedregulator-sd ... devices_kset: Device181 0-0020 // PCF8575 devices_kset: Device182 gpiochip496 devices_kset: Device183 0-0021 // PCF8575 devices_kset: Device184 gpiochip480 As can be seen from above .shutdown() callback for PCF8575 will be called before its consumers, which, in turn means, that any changes of PCF8575 GPIO's pins will be or unsafe or overwritten later by GPIO's consumers. The problem can be solved if devices_kset list will be filled not only according device creation order, but also according device's probing order to track "supplier<-consumer" dependencies also. Hence, as a fix, lets add devices_kset_move_last(), devices_kset_move_before(), devices_kset_move_after() and call them from device_move() and also add call of devices_kset_move_last() in really_probe(). After this change all entries in devices_kset will be sorted according to device's creation ("parent<-child") and probing ("supplier<-consumer") order. devices_kset after: devices_kset: Device121 48070000.i2c devices_kset: Device122 i2c-0 ... devices_kset: Device147 regulator.24 devices_kset: Device148 0-0020 devices_kset: Device149 gpiochip496 devices_kset: Device150 0-0021 devices_kset: Device151 gpiochip480 devices_kset: Device152 0-0019 ... devices_kset: Device372 fixedregulator-sd devices_kset: Device373 regulator.29 devices_kset: Device374 4809c000.mmc devices_kset: Device375 mmc0 [1] http://www.spinics.net/lists/linux-mmc/msg29825.html Cc: Sekhar Nori Signed-off-by: Grygorii Strashko Signed-off-by: Greg Kroah-Hartman drivers/base/base.h | 1 + drivers/base/core.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/base/dd.c | 8 ++++++++ 3 files changed, 58 insertions(+) commit 82b2c3c5b838b4fac9471eab320670aff5a822e0 Author: Tomeu Vizoso Date: Mon Jun 29 16:59:02 2015 +0200 driver core: fix docbook for device_private.device This field refers to the public device struct, not to classes. Signed-off-by: Tomeu Vizoso Signed-off-by: Greg Kroah-Hartman drivers/base/base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1d0fbb3467b5a82e33ab57f27b870c1b8275f45d Author: Luis R. Rodriguez Date: Fri Jul 24 15:10:22 2015 -0700 selftests: firmware: skip timeout checks for kernels without user mode helper The CONFIG_FW_LOADER_USER_HELPER is mostly disabled these days, so skip timeout setting for these kernels. Signed-off-by: Luis R. Rodriguez Acked-by: Kees Cook Signed-off-by: Greg Kroah-Hartman tools/testing/selftests/firmware/fw_filesystem.sh | 25 ++++++++++++++++++----- tools/testing/selftests/firmware/fw_userhelper.sh | 12 ++++++++++- 2 files changed, 31 insertions(+), 6 deletions(-) commit d2d7d4e4a60f1aeefb38d7a0bede3742ddb76a68 Author: Raanan Avargil Date: Sun Jul 19 16:33:21 2015 +0300 e1000e: Increase driver version number Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 37b12910dd11d9ab969f2c310dc9160b7f3e3405 Author: Raanan Avargil Date: Sun Jul 19 16:33:20 2015 +0300 e1000e: Fix tight loop implementation of systime read algorithm Change the algorithm. Read systimel twice and check for overflow. If there was no overflow, use the first value. If there was an overflow, read systimeh again and use the second systimel value. Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 31 ++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit 2758f9edb7bd5a06a2ecee83cc2ebaf8822a0cb5 Author: Raanan Avargil Date: Mon Jul 6 17:57:36 2015 +0300 e1000e: Fix incorrect ASPM locking This patch fixes wrong locking usage. In the context of slot reset, we should use lock. And during resume, there is no need of lock. Reported-by: Bjorn Helgaas Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d582891594104adeea89307ddd31b31bcf2d95fa Author: Raanan Avargil Date: Mon Jul 6 16:58:54 2015 +0300 e1000e: Cosmetic changes 1) Replace spaces with tab. 2) Move ich8lan related define to the proper context. Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/ich8lan.h | 4 ++-- drivers/net/ethernet/intel/e1000e/regs.h | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) commit f5ac7445ebdbfa8cd2d90ef2a58b8f4455bcb664 Author: Raanan Avargil Date: Mon Jul 6 16:48:00 2015 +0300 e1000e: Fix EEE in Sx implementation This patch implements the EEE in Sx code so that it only applies to parts that support EEE in Sx (as opposed to all parts that support EEE). It also uses the existing eee_advert and eee_lp_abiliity to set just the bits (100/1000) that should be set. Signed-off-by: Raanan Avargil Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 7073f46e443ecb5a48221160aa39773ccb520b0f Author: Shannon Nelson Date: Fri Jun 5 12:20:34 2015 -0400 i40e: Add AQ commands for NVM Update for X722 X722 does NVM update via the adminq queue, so we need to add support for that. Signed-off-by: Shannon Nelson Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_nvm.c | 129 +++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) commit 52eb95ef3286f10c4584c3dcb25d4be7d8e1faeb Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:33 2015 -0400 i40e/i40evf: Add ATR HW eviction support for X722 X722 supports evicting ATR filters in the HW. With this patch, we enable the feature in the driver and avoid filter deletion by the driver. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 10 ++++++++++ drivers/net/ethernet/intel/i40e/i40e_type.h | 4 ++++ 2 files changed, 14 insertions(+) commit 0d8e14392f7697e5ee241d49fce3355f22406d3e Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:32 2015 -0400 i40e: Add IWARP support for X722 X722 supports IWARP, this patch handles checking for PE critical errors. Since the driver doesn't support the IWARP interface for now, this patch just does bare minimum to log a message oif a PE critical error happens. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 527274c78ea7e0cad8b44ea25509c42aa605634e Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:31 2015 -0400 i40e/i40evf: Add TX/RX outer UDP checksum support for X722 X722 supports offloading of outer UDP TX and RX checksum for tunneled packets. This patch exposes the support and leaves it enabled by default. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 2 ++ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 16 +++++++++++++++- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 2 ++ drivers/net/ethernet/intel/i40e/i40e_type.h | 10 ++++++++-- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 13 +++++++++++++ drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 2 ++ drivers/net/ethernet/intel/i40evf/i40e_type.h | 10 ++++++++-- 7 files changed, 50 insertions(+), 5 deletions(-) commit 8e0764b4d6be42459b6f517e199b8c7df43cc15c Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:30 2015 -0400 i40e/i40evf: Add support for writeback on ITR feature for X722 X722 fixes an issue from X710 where TX descriptor WB would not happen if the interrupts were disabled. In order for the write backs to happen a bit needs to be set in the dynamic interrupt control register called WB_ON_ITR. With this feature, the SW driver need not arm SW interrupts to work around the issue in X710. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 1 + drivers/net/ethernet/intel/i40e/i40e_main.c | 2 ++ drivers/net/ethernet/intel/i40e/i40e_txrx.c | 46 +++++++++++++++++++++------ drivers/net/ethernet/intel/i40e/i40e_txrx.h | 2 ++ drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 38 ++++++++++++++++------ drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 2 ++ drivers/net/ethernet/intel/i40evf/i40evf.h | 1 + 7 files changed, 74 insertions(+), 18 deletions(-) commit e25d00b87b26f96f91434e6608dc4b05f5ef5498 Author: Anjali Singhai Jain Date: Tue Jun 23 19:00:04 2015 -0400 i40e/i40evf: RSS changes for X722 X722 uses the admin queue to configure RSS. This patch adds the necessary flow changes to configure RSS through AQ. It also adds the separate VMDQ2 lookup tables and hash key programming for X722. X722 also exposes a different set of PCTYPES for RSS, this patch accommodates those changes. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 7 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 156 ++++++++++++++----- drivers/net/ethernet/intel/i40e/i40e_txrx.h | 12 ++ drivers/net/ethernet/intel/i40e/i40e_type.h | 15 +- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 +- drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 12 ++ drivers/net/ethernet/intel/i40evf/i40e_type.h | 15 +- drivers/net/ethernet/intel/i40evf/i40evf.h | 2 + drivers/net/ethernet/intel/i40evf/i40evf_main.c | 166 ++++++++++++++++----- 9 files changed, 307 insertions(+), 89 deletions(-) commit da48c9a2aa3a93b4f19e3a37b8fa1cd7fe7005bb Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:28 2015 -0400 i40e/i40evf: Update register.h file for X722 Update the i40e and i40evf register.h file with the registers for X722. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_register.h | 1931 ++++++++++++++++++++- drivers/net/ethernet/intel/i40evf/i40e_register.h | 62 +- 2 files changed, 1991 insertions(+), 2 deletions(-) commit e50c8d6d3d3f5807aaaeaaec42774cd02fd5076f Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:27 2015 -0400 i40e/i40evf: Update FW API with X722 support This patch does the firmware API update to support the new X722 device. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 48 ++++++ drivers/net/ethernet/intel/i40e/i40e_common.c | 163 +++++++++++++++++++++ drivers/net/ethernet/intel/i40e/i40e_prototype.h | 11 ++ .../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 49 ++++++- drivers/net/ethernet/intel/i40evf/i40e_common.c | 163 +++++++++++++++++++++ drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 11 ++ 6 files changed, 444 insertions(+), 1 deletion(-) commit d502ce01d21bf4092f282cae5817e7d140e21816 Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:26 2015 -0400 i40e/i40evf: Add flags for X722 capabilities Add capabilities flags specific to X722. Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 7 +++++++ drivers/net/ethernet/intel/i40e/i40e_main.c | 8 ++++++++ drivers/net/ethernet/intel/i40evf/i40evf.h | 7 ++++++- 3 files changed, 21 insertions(+), 1 deletion(-) commit 87e6c1d78706b97018de3169d0edd661f640a425 Author: Anjali Singhai Jain Date: Fri Jun 5 12:20:25 2015 -0400 i40e/i40evf: Add device ids for X722 Adding device ids for new hardware X722 Signed-off-by: Anjali Singhai Jain Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_common.c | 10 ++++++++++ drivers/net/ethernet/intel/i40e/i40e_main.c | 3 +++ drivers/net/ethernet/intel/i40e/i40e_type.h | 10 +++++++++- drivers/net/ethernet/intel/i40evf/i40e_common.c | 9 +++++++++ drivers/net/ethernet/intel/i40evf/i40e_type.h | 10 +++++++++- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 1 + 6 files changed, 41 insertions(+), 2 deletions(-) commit ecc87eed7beeb50c0be0b73322d62135277ea2b0 Author: Andy Shevchenko Date: Wed Aug 5 16:51:11 2015 +0300 device property: fix potential NULL pointer dereference In device_add_property_set() we check pset parameter for a NULL, but few lines later we do a pointer arithmetic without check that will crash kernel in the set_secondary_fwnode(). Here we check if pset parameter is NULL and return immediately. Fixes: 16ba08d5c9ec (device property: Introduce firmware node type for platform data) Signed-off-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki drivers/base/property.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 71cf5aeeb8e2154efda5f40be50c925f15057755 Author: Mathias Krause Date: Sun Jul 19 20:06:22 2015 +0200 kernel, cpu: Remove bogus __ref annotations cpu_chain lost its __cpuinitdata annotation long ago in commit 5c113fbeed7a ("fix cpu_chain section mismatch..."). This and the global __cpuinit annotation drop in v3.11 vanished the need to mark all users, including transitive ones, with the __ref annotation. Just get rid of it to not wrongly hide section mismatches. Signed-off-by: Mathias Krause Cc: Paul Gortmaker Cc: Thomas Gleixner Cc: H. Peter Anvin Cc: Ingo Molnar Cc: Linus Torvalds Signed-off-by: Greg Kroah-Hartman kernel/cpu.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit eda5867b6992e3de888b516c0ff0fa1f1ee881af Author: Mathias Krause Date: Sun Jul 19 20:06:21 2015 +0200 cpu: Remove bogus __ref annotation of cpu_subsys_online() In commit 0db0628d9012 ("kernel: delete __cpuinit usage from all core kernel files") cpu_up() lost its __cpuinit annotation, vanishing the need for cpu_subsys_online() to have a __ref annotation. Just drop it to be able to catch real section mismatches in the future. Signed-off-by: Mathias Krause Cc: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/base/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a885de67157e8e65b92af2e0a77f6eadd112d0b7 Author: Vladimir Zapolskiy Date: Wed Jul 29 23:26:28 2015 +0300 firmware: fix wrong memory deallocation in fw_add_devm_name() Device resource data allocated with devres_alloc() must be deallocated by devres_free(). Signed-off-by: Vladimir Zapolskiy Acked-by: Ming Lei Signed-off-by: Greg Kroah-Hartman drivers/base/firmware_class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a782a7e46bb50822fabfeb7271605762a59c86df Author: Thomas Gleixner Date: Sun Aug 2 20:38:27 2015 +0000 x86/irq: Store irq descriptor in vector array We can spare the irq_desc lookup in the interrupt entry code if we store the descriptor pointer in the vector array instead the interrupt number. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Peter Zijlstra Cc: Rusty Russell Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/20150802203609.717724106@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 6 ++--- arch/x86/include/asm/irq.h | 4 +++- arch/x86/kernel/apic/vector.c | 51 ++++++++++++++++++++----------------------- arch/x86/kernel/irq.c | 37 ++++++++++++++----------------- arch/x86/kernel/irq_32.c | 9 ++++---- arch/x86/kernel/irq_64.c | 9 +++----- arch/x86/kernel/irqinit.c | 4 ++-- arch/x86/lguest/boot.c | 4 +++- 8 files changed, 58 insertions(+), 66 deletions(-) commit f61ae4fb66a4f7ae49e3456003fc4328d6db09c9 Author: Thomas Gleixner Date: Sun Aug 2 20:38:26 2015 +0000 genirq: Provide irq_desc_has_action If we have a reference to irq_desc already, there is no point to do another lookup. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Peter Zijlstra Cc: Rusty Russell Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/20150802203609.638130301@linutronix.de Signed-off-by: Thomas Gleixner include/linux/irqdesc.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 44825757a3ee37c030165a94d6b4dd79c564f661 Author: Thomas Gleixner Date: Sun Aug 2 20:38:25 2015 +0000 x86/irq: Get rid of an indentation level Make the code simpler to read. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Peter Zijlstra Cc: Rusty Russell Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/20150802203609.555253675@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/irq.c | 72 +++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 37 deletions(-) commit 7276c6a2cb5f7ae46fd0c9539af02dbcb7c4f3f5 Author: Thomas Gleixner Date: Sun Aug 2 20:38:25 2015 +0000 x86/irq: Rename VECTOR_UNDEFINED to VECTOR_UNUSED VECTOR_UNDEFINED is a misnomer. The vector is defined, but unused. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Peter Zijlstra Cc: Rusty Russell Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/20150802203609.477282494@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/include/asm/hw_irq.h | 2 +- arch/x86/kernel/apic/vector.c | 15 +++++++-------- arch/x86/kernel/irq.c | 8 ++++---- arch/x86/kernel/irqinit.c | 4 ++-- 4 files changed, 14 insertions(+), 15 deletions(-) commit 24c70e07a0311a98dbb5e7a7472fa96a22b789d3 Author: Thomas Gleixner Date: Sun Aug 2 20:38:24 2015 +0000 x86/irq: Replace numeric constant Use the proper define instead of 0. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Peter Zijlstra Cc: Rusty Russell Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/20150802203609.385495420@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit df54c4934e030e73cb6a7bd6713f697350dabd0b Author: Thomas Gleixner Date: Sun Aug 2 20:38:23 2015 +0000 x86/irq: Protect smp_cleanup_move smp_cleanup_move fiddles without protection in the interrupt descriptors and the vector array. A concurrent irq setup/teardown or affinity setting can pull the rug under that operation. Add proper locking. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Peter Zijlstra Cc: Rusty Russell Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/20150802203609.222975294@linutronix.de Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit ad3f8d5afe503faa78d61a50a1f6eec3afa7c787 Author: Thomas Gleixner Date: Tue Aug 4 14:02:56 2015 +0930 x86/lguest: Do not setup unused irq vectors No point in assigning the interrupt vectors if there is no interrupt chip installed. Move it to lguest_setup_irq() and call it from lguest_enable_irq. [ rusty: Typo fix and error handling ] Signed-off-by: Thomas Gleixner Signed-off-by: Rusty Russell Link: http://lkml.kernel.org/r/1438662776-4823-2-git-send-email-rusty@rustcorp.com.au Signed-off-by: Thomas Gleixner arch/x86/lguest/boot.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) commit 27a6f41c1a20a3339f456647a21e45fca5b82b62 Author: Rusty Russell Date: Tue Aug 4 14:02:55 2015 +0930 x86/lguest: Clean up lguest_setup_irq We make it static and hoist it higher in the file for the next patch. We also give a nice panic if it fails during boot. Signed-off-by: Rusty Russell Link: http://lkml.kernel.org/r/1438662776-4823-1-git-send-email-rusty@rustcorp.com.au Signed-off-by: Thomas Gleixner arch/x86/lguest/boot.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) commit 223e8f01b072152cc4336e7dcb1cf8c21ab34432 Author: Seymour, Shane M Date: Thu Jun 25 02:33:08 2015 +0000 sysfs.txt: update show method notes about sprintf/snprintf/scnprintf usage Changed the documentation to allow sprintf() when the buffer provided by sysfs cannot be overflowed. Explicitly say snprintf() must never be used in a show function to format data to be returned to user space. Change based on a discussion about the patch st: convert DRIVER_ATTR macros to DRIVER_ATTR_RO Suggested-by: Greg Kroah-Hartman Signed-off-by: Shane Seymour Signed-off-by: Greg Kroah-Hartman Documentation/filesystems/sysfs.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 64526370d11ce8868ca495723d595b61e8697fbf Author: Masahiro Yamada Date: Wed Jul 15 10:29:00 2015 +0900 devres: fix devres_get() Currently, devres_get() passes devres_free() the pointer to devres, but devres_free() should be given with the pointer to resource data. Fixes: 9ac7849e35f7 ("devres: device resource management") Signed-off-by: Masahiro Yamada Acked-by: Tejun Heo Cc: stable # 2.6.21+ Signed-off-by: Greg Kroah-Hartman drivers/base/devres.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b7edaca4e825fd5d7a6ddce3548cc1f7a7337cf8 Merge: c948c26 cbfe8fa Author: Thomas Gleixner Date: Wed Aug 5 23:55:52 2015 +0200 Merge branch 'linus' into x86/apic Pull in upstream changes to avoid conflicts commit 8c85fc9ae69a4510ba5e2bd5fac2c1d9d60967ad Author: Richard Guy Briggs Date: Wed Aug 5 15:23:09 2015 -0400 audit: make audit_del_rule() more robust Move the access to the entry for audit_match_signal() to earlier in the function in case the entry found is the same one passed in. This will enable it to be used by audit_remove_mark_rule(). Signed-off-by: Richard Guy Briggs [PM: tweaked subject line as it no longer made sense after multiple revs] Signed-off-by: Paul Moore kernel/auditfilter.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 2664e0386e813158b599a73164f8f7ddb2b0eb6d Author: Vladimir Zapolskiy Date: Mon Jul 27 00:18:50 2015 +0300 misc: eeprom: max6875: clean up max6875_read() The change removes redundant sysfs binary file boundary check, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/eeprom/max6875.c | 6 ------ 1 file changed, 6 deletions(-) commit 79dedbddd0eea471d78ef82eb7c42b8fb1bdef65 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:18:49 2015 +0300 misc: eeprom: clean up eeprom_read() The change removes redundant sysfs binary file boundary check, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Reviewed-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman drivers/misc/eeprom/eeprom.c | 5 ----- 1 file changed, 5 deletions(-) commit b5da83d4a9c929ac197313b5d6c5d771447fb59e Author: Vladimir Zapolskiy Date: Mon Jul 27 00:18:48 2015 +0300 misc: eeprom: 93xx46: clean up eeprom_93xx46_bin_read/write The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/eeprom/eeprom_93xx46.c | 14 -------------- 1 file changed, 14 deletions(-) commit 2b6e5ba3d2ed958f6c32bfc84cdab3377e391f02 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:18:47 2015 +0300 misc: ds1682: clean up ds1682_eeprom_read() and ds1682_eeprom_write() The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Greg Kroah-Hartman drivers/misc/ds1682.c | 12 ------------ 1 file changed, 12 deletions(-) commit acb921a5a1e5fb2b864be25caf7317531f91a832 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:18:46 2015 +0300 misc: cxl: clean up afu_read_config() The sanity checks for overflow are not needed, because this is done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Cc: Ian Munsie Acked-by: Michael Neuling Reviewed-by: Daniel Axtens Signed-off-by: Greg Kroah-Hartman drivers/misc/cxl/sysfs.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 594069bc3d333101fb187fc708d75d3ef491869a Author: Partha Pratim Mukherjee Date: Mon Jul 27 16:15:19 2015 -0700 fs/char_dev.c: fix incorrect documentation for unregister_chrdev_region The current documentation for unregister_chrdev_region says that it return a range of device numbers which is incorrect. Instead it unregister a range of device numbers. Fix the documentation to make this clear. Signed-off-by: Partha Pratim Mukherjee Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman fs/char_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7390d7c52684ea338621eb3826a60e33a2bab9d Author: Vaishali Thakkar Date: Tue Jul 7 12:23:49 2015 +0530 w1: Use module_pci_driver Use module_pci_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return pci_register_driver(&x); } @b depends on a@ identifier e, a.x; @@ -static e(...) { pci_unregister_driver(&x); } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_pci_driver; @@ -module_exit(e); +module_pci_driver(x); Signed-off-by: Vaishali Thakkar Acked-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman drivers/w1/masters/matrox_w1.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit 01c48a59bae36f08ba27ed6bfe789aa0d14ee2a1 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:38:10 2015 +0900 w1: 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: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman drivers/w1/masters/ds2482.c | 1 - 1 file changed, 1 deletion(-) commit aee4b9bd4505d0a82cae42c35d7d4a0c08725cec Author: Srinivas Kandagatla Date: Mon Jul 27 12:17:24 2015 +0100 nvmem: Add to MAINTAINERS for nvmem framework This patch adds MAINTAINERS to nvmem framework. Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 3d0b16a66c8a9d10294572c6f79df4f15a27825d Author: Maxime Ripard Date: Mon Jul 27 12:17:09 2015 +0100 nvmem: sunxi: Move the SID driver to the nvmem framework Now that we have the nvmem framework, we can consolidate the common driver code. Move the driver to the framework, and hopefully, it will fix the sysfs file creation race. Signed-off-by: Maxime Ripard [srinivas.kandagatla: Moved to regmap based EEPROM framework] Signed-off-by: Srinivas Kandagatla Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-driver-sunxi-sid | 22 --- .../bindings/misc/allwinner,sunxi-sid.txt | 17 -- .../bindings/nvmem/allwinner,sunxi-sid.txt | 21 +++ drivers/misc/eeprom/Kconfig | 13 -- drivers/misc/eeprom/Makefile | 1 - drivers/misc/eeprom/sunxi_sid.c | 156 ------------------- drivers/nvmem/Kconfig | 11 ++ drivers/nvmem/Makefile | 2 + drivers/nvmem/sunxi_sid.c | 171 +++++++++++++++++++++ 9 files changed, 205 insertions(+), 209 deletions(-) commit b470d6d7a5dfe41112d55c39eac67ddc5afac80d Author: Srinivas Kandagatla Date: Mon Jul 27 12:16:59 2015 +0100 nvmem: qfprom: Add bindings for qfprom This patch adds bindings for qfprom found in QCOM SOCs. QFPROM driver is based on simple nvmem framework. Signed-off-by: Srinivas Kandagatla Reviewed-by: Stephen Boyd Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/nvmem/qfprom.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 4ab11996b489ad65092216315484824ed32018f8 Author: Srinivas Kandagatla Date: Mon Jul 27 12:15:00 2015 +0100 nvmem: qfprom: Add Qualcomm QFPROM support. This patch adds QFPROM support driver which is used by other drivers like thermal sensor and cpufreq. On MSM parts there are some efuses (called qfprom) these fuses store things like calibration data, speed bins.. etc. Drivers like cpufreq, thermal sensors would read out this data for configuring the driver. Signed-off-by: Srinivas Kandagatla Reviewed-by: Stephen Boyd Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman drivers/nvmem/Kconfig | 15 +++++++++ drivers/nvmem/Makefile | 4 +++ drivers/nvmem/qfprom.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) commit 354ebb541dfa37a83395e5a9b7d68c34f80fffc0 Author: Srinivas Kandagatla Date: Mon Jul 27 12:14:14 2015 +0100 Documentation: nvmem: add nvmem api level and how-to doc This patch add basic how-to and api summary documentation for simple NVMEM framework. Signed-off-by: Srinivas Kandagatla Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman Documentation/nvmem/nvmem.txt | 152 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) commit 2af38ab572b031a4111f01153cc020b1038b427b Author: Srinivas Kandagatla Date: Mon Jul 27 12:13:58 2015 +0100 nvmem: Add bindings for simple nvmem framework This patch adds bindings for simple nvmem framework which allows nvmem consumers to talk to nvmem providers to get access to nvmem cell data. Signed-off-by: Maxime Ripard [Maxime Ripard: intial version of eeprom framework] Signed-off-by: Srinivas Kandagatla Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/nvmem/nvmem.txt | 80 +++++++++++++++++++++++ 1 file changed, 80 insertions(+) commit e2a5402ec7c6d0442cca370a0097e75750f81398 Author: Srinivas Kandagatla Date: Mon Jul 27 12:13:45 2015 +0100 nvmem: Add nvmem_device based consumer apis. This patch adds read/write apis which are based on nvmem_device. It is common that the drivers like omap cape manager or qcom cpr driver to access bytes directly at particular offset in the eeprom and not from nvmem cell info in DT. These driver would need to get access to the nvmem directly, which is what these new APIS provide. These wrapper apis would help such users to avoid code duplication in there drivers and also avoid them reading a big eeprom blob and parsing it internally in there driver. Signed-off-by: Srinivas Kandagatla Tested-by: Stefan Wahren Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman drivers/nvmem/core.c | 258 +++++++++++++++++++++++++++++++++++++++++ include/linux/nvmem-consumer.h | 73 ++++++++++++ 2 files changed, 331 insertions(+) commit 69aba7948cbe53f2f1827e84e9dd0ae470a5072e Author: Srinivas Kandagatla Date: Mon Jul 27 12:13:34 2015 +0100 nvmem: Add a simple NVMEM framework for consumers This patch adds just consumers part of the framework just to enable easy review. Up until now, nvmem drivers were stored in drivers/misc, where they all had to duplicate pretty much the same code to register a sysfs file, allow in-kernel users to access the content of the devices they were driving, etc. This was also a problem as far as other in-kernel users were involved, since the solutions used were pretty much different from on driver to another, there was a rather big abstraction leak. This introduction of this framework aims at solving this. It also introduces DT representation for consumer devices to go get the data they require (MAC Addresses, SoC/Revision ID, part numbers, and so on) from the nvmems. Having regmap interface to this framework would give much better abstraction for nvmems on different buses. Signed-off-by: Maxime Ripard [Maxime Ripard: intial version of the framework] Signed-off-by: Srinivas Kandagatla Tested-by: Stefan Wahren Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman drivers/nvmem/core.c | 421 ++++++++++++++++++++++++++++++++++++++++- include/linux/nvmem-consumer.h | 61 ++++++ 2 files changed, 481 insertions(+), 1 deletion(-) commit eace75cfdcf7d9937d8c1fb226780123c64d72c4 Author: Srinivas Kandagatla Date: Mon Jul 27 12:13:19 2015 +0100 nvmem: Add a simple NVMEM framework for nvmem providers This patch adds just providers part of the framework just to enable easy review. Up until now, NVMEM drivers like eeprom were stored in drivers/misc, where they all had to duplicate pretty much the same code to register a sysfs file, allow in-kernel users to access the content of the devices they were driving, etc. This was also a problem as far as other in-kernel users were involved, since the solutions used were pretty much different from on driver to another, there was a rather big abstraction leak. This introduction of this framework aims at solving this. It also introduces DT representation for consumer devices to go get the data they require (MAC Addresses, SoC/Revision ID, part numbers, and so on) from the nvmems. Having regmap interface to this framework would give much better abstraction for nvmems on different buses. Signed-off-by: Maxime Ripard [Maxime Ripard: intial version of eeprom framework] Signed-off-by: Srinivas Kandagatla Tested-by: Stefan Wahren Tested-by: Philipp Zabel Tested-by: Rajendra Nayak Signed-off-by: Greg Kroah-Hartman drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/nvmem/Kconfig | 13 ++ drivers/nvmem/Makefile | 6 + drivers/nvmem/core.c | 406 +++++++++++++++++++++++++++++++++++++++++ include/linux/nvmem-consumer.h | 23 +++ include/linux/nvmem-provider.h | 47 +++++ 7 files changed, 498 insertions(+) commit 4edd70c133f3921c594883d8f9da31a7261f8b4f Author: Sudip Mukherjee Date: Mon Jul 20 17:27:24 2015 +0530 auxdisplay: ks0108: use new parport device model Modify auxdisplay driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/auxdisplay/ks0108.c | 76 ++++++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 29 deletions(-) commit c9efdbe63410984668a4983cc46e31a7b3f0c74e Author: Sudip Mukherjee Date: Mon Jul 20 17:27:23 2015 +0530 auxdisplay: ks0108: use min_t Using min_t() is preffered than using min(). Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/auxdisplay/ks0108.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 7faad1dfbbe008fe564d94c1b154695fcc13d748 Author: Sudip Mukherjee Date: Mon Jul 20 17:27:22 2015 +0530 auxdisplay: ks0108: start using pr_* Start using pr_* macros instead of using printk and in the process define pr_fmt. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/auxdisplay/ks0108.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit bab383de3b84e584b0f09227151020b2a43dc34c Author: Sudip Mukherjee Date: Mon Jul 20 17:27:21 2015 +0530 auxdisplay: ks0108: fix refcount parport_find_base() will implicitly do parport_get_port() which increases the refcount. Then parport_register_device() will again increment the refcount. But while unloading the module we are only doing parport_unregister_device() decrementing the refcount only once. We add an parport_put_port() to neutralize the effect of parport_get_port(). Cc: # 2.6.32+ Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/auxdisplay/ks0108.c | 1 + 1 file changed, 1 insertion(+) commit d25ded8d3c6ecc3043763d4330c964603dc61bd4 Author: Finn Thain Date: Fri Jul 3 13:35:36 2015 +1000 char/nvram: Use bitwise OR to obtain Atari video mode data Signed-off-by: Finn Thain Acked-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/char/nvram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff63ec1312dabd28876c9c03b5ed172a879bfb60 Author: Mark Brown Date: Fri Jul 31 09:37:30 2015 -0600 coresight: Fix implicit inclusion of linux/sched.h The patch "Coresight: Add an interface for supporting ETM3/4 Context ID tracing" adds uses of find_task_by_vpid() and task_pid_nr() from linux/sched.h but does not include that header causing build errors in at least an ARM allmodconfig where it is not implicitly included. Add an explicit include to fix that. Signed-off-by: Mark Brown Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman include/linux/coresight.h | 1 + 1 file changed, 1 insertion(+) commit f8b66fe52d3ae97df9f2eef6410bd5aef095914c Author: Masanari Iida Date: Fri Jul 31 09:37:29 2015 -0600 Doc: trace: Fix typo in coresight.txt This patch fix spelling typos found in coresight.txt Signed-off-by: Masanari Iida Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman Documentation/trace/coresight.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f67b467aab10685f695190d2f471221e7a314374 Author: Chunyan Zhang Date: Fri Jul 31 09:37:28 2015 -0600 coresight-etm4x: Support context-ID tracing when PID namespace is enabled Like ETTv3, ETMv4 also needs the similar modifications to support Context ID tracing when PID namespace is enabled. Signed-off-by: Chunyan Zhang Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm4x.c | 21 +++++++++++++++------ drivers/hwtracing/coresight/coresight-etm4x.h | 3 +++ 2 files changed, 18 insertions(+), 6 deletions(-) commit a440617e0d882a35accdd32dd7ae180885c6b28c Author: Chunyan Zhang Date: Fri Jul 31 09:37:27 2015 -0600 coresight-etm3x: Support context-ID tracing when PID namespace is enabled The Coresight ETM drivers already support context-ID tracing, but it won't work when PID namespace is enabled. This is because when using PID namespace a process id (ie. VPID) seen from the current namespace differs from the id (ie. PID) seen by kernel. So when users write the process id seen by themselves to ETM, there needs to be a translation from VPID to PID, as such ETM drivers will write the PID into the Context ID register correctly. Signed-off-by: Chunyan Zhang Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm.h | 3 +++ drivers/hwtracing/coresight/coresight-etm3x.c | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) commit 722102274ab1206634d31abe4f438a911a0945d2 Author: Chunyan Zhang Date: Fri Jul 31 09:37:26 2015 -0600 Coresight: Add an interface for supporting ETM3/4 Context ID tracing If PID namespace is enabled, everytime users configure the Context ID register to trace the specific process, there needs to be a translation between the real PID seen from the kernel and VPID seen from the namespace in which the user's process resides . This patch just adds the translation interface for ETMs. Signed-off-by: Chunyan Zhang Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman include/linux/coresight.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit cd196ac3fa5a574f3ddf37b66fbe8c58225c3355 Author: Chunyan Zhang Date: Fri Jul 31 09:37:25 2015 -0600 coresight-etm4x: Change the name of the ctxid_val to ctxid_pid 'ctxid_val' array was used to store the value of ETM context ID comparator which actually stores the process ID to be traced, so using 'ctxid_pid' as its name instead make it easier to understand. This patch also changes the ABI, it is normally not allowed, but fortunately it is a testing ABI and very new for now. Nevertheless, if you don't think it should be changed, we could always add an alias for userspace. Signed-off-by: Chunyan Zhang Reviewed-by: Mark Brown Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 2 +- drivers/hwtracing/coresight/coresight-etm4x.c | 20 ++++++++++---------- drivers/hwtracing/coresight/coresight-etm4x.h | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) commit 414a1417d7b35e0e72edb16e45840e242cb6b52e Author: Chunyan Zhang Date: Fri Jul 31 09:37:24 2015 -0600 coresight-etm3x: Change the name of the ctxid_val to ctxid_pid 'ctxid_val' array was used to store the value of ETM context ID comparator which actually stores the process ID to be traced, so using 'ctxid_pid' as its name instead make it easier to understand. This patch also changes the ABI, it is normally not allowed, but fortunately it is a testing ABI and very new for now. Nevertheless, if you don't think it should be changed, we could always add an alias for userspace. Signed-off-by: Chunyan Zhang Reviewed-by: Mark Brown Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman .../ABI/testing/sysfs-bus-coresight-devices-etm3x | 2 +- drivers/hwtracing/coresight/coresight-etm.h | 4 ++-- drivers/hwtracing/coresight/coresight-etm3x.c | 16 ++++++++-------- 3 files changed, 11 insertions(+), 11 deletions(-) commit c35aaa13794a0c5b752af19993222d08497e7036 Author: Vaishali Thakkar Date: Fri Jul 31 09:37:23 2015 -0600 coresight: replicator: Use builtin_platform_driver() Macro builtin_platform_driver can be used for builtin drivers that don't do anything in driver init. This file depends on Kconfig CONFIG_CORESIGHT_LINKS_AND_SINKS which eventually depends on CORESIGHT. Both CONFIG_CORESIGHT_LINKS_AND_SINKS and CORESIGHT are bool. So, use builtin_platform_driver and remove some boilerplate code. Also, remove header file init.h as functionality like module_init and module_exit is now relocated to module.h. Signed-off-by: Vaishali Thakkar Suggested-by: Paul Bolle Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-replicator.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 27d3fd3d0d89030798121718637d6b0ed59e0ca5 Author: Ivan T. Ivanov Date: Fri Jul 31 09:37:22 2015 -0600 coresight-etm3x: Add Qualcomm PTM v1.1 peripheral ID Add Qualcomm's PTM v1.1 peripheral ID to supported devices. This device could be found at least in MSM8974 and APQ8064 chipsets. Signed-off-by: Ivan T. Ivanov Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman drivers/hwtracing/coresight/coresight-etm3x.c | 5 +++++ 1 file changed, 5 insertions(+) commit e5742ef1279e4cfe52fee7056b15a848ffe5c723 Author: Mathieu Poirier Date: Fri Jul 31 09:37:21 2015 -0600 coresight: binding for ETMv4 coresight drivers Adding compatible string for new coresight ETMv4 tracer. Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/arm/coresight.txt | 1 + 1 file changed, 1 insertion(+) commit 686079c9b71a4673d0068ea4538f22359070ee33 Author: Geert Uytterhoeven Date: Mon Jun 29 09:12:38 2015 +0200 uio: UIO_PRUSS should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_alloc_coherent" [drivers/uio/uio_pruss.ko] undefined! ERROR: "dma_free_coherent" [drivers/uio/uio_pruss.ko] undefined! Add a dependency on HAS_DMA to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/uio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d12f569c9b57ecdb18631d0b54c5224da5a1c233 Author: Vaishali Thakkar Date: Wed Jul 8 10:24:27 2015 +0530 uio: uio_fsl_elbc_gpcm: Use module_platform_driver Use module_platform_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return platform_driver_register(&x); } @b depends on a@ identifier e, a.x; @@ -static e(...) { platform_driver_unregister(&x); } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_platform_driver; @@ -module_exit(e); +module_platform_driver(x); Signed-off-by: Vaishali Thakkar Signed-off-by: Greg Kroah-Hartman drivers/uio/uio_fsl_elbc_gpcm.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit e2ef93930326134001523016782daddf1a4b78a2 Author: Johannes Thumshirn Date: Wed Jul 8 17:24:46 2015 +0200 uio: Destroy uio_idr on module exit Destroy uio_idr on module exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Signed-off-by: Greg Kroah-Hartman drivers/uio/uio.c | 1 + 1 file changed, 1 insertion(+) commit 513da46d4b72bf6c4c956c57044fcbcfe321deeb Author: Jürg Billeter Date: Wed Jun 24 12:24:06 2015 +0200 ti-st: st_kim: use gpio_set_value_cansleep to fix warning GPIO accessor functions may sleep. Signed-off-by: Jürg Billeter Signed-off-by: Greg Kroah-Hartman drivers/misc/ti-st/st_kim.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c0bd1b9e58959c51a4c939505f89721dfbc73c44 Author: Rob Herring Date: Wed Jul 22 13:17:15 2015 -0500 Revert "ti-st: add device tree support" This reverts commit 46d0d33350e9b32642d745a8b46a954910196b4d. This binding is horrible and never should have been merged. It is not documented nor are there any in tree users, so reverting it will not break anything we care about. Lets revert it before we do have users. The problems with it are: - It is not documented. - The GPIO connection is described with a custom property and uses Linux GPIO numbering. - The UART connection is described using the Linux tty device name. Cc: Gigi Joseph Cc: Greg Kroah-Hartman Signed-off-by: Rob Herring Signed-off-by: Greg Kroah-Hartman drivers/misc/ti-st/st_kim.c | 94 ++++---------------------------------------- drivers/misc/ti-st/st_ll.c | 17 +------- include/linux/ti_wilink_st.h | 1 - 3 files changed, 9 insertions(+), 103 deletions(-) commit d0f36c46deea97bd16b9277be2f1acac74d76037 Author: Devesh Sharma Date: Mon Aug 3 13:05:04 2015 -0400 xprtrdma: take HCA driver refcount at client This is a rework of the following patch sent almost a year back: http://www.mail-archive.com/linux-rdma%40vger.kernel.org/msg20730.html In presence of active mount if someone tries to rmmod vendor-driver, the command remains stuck forever waiting for destruction of all rdma-cm-id. in worst case client can crash during shutdown with active mounts. The existing code assumes that ia->ri_id->device cannot change during the lifetime of a transport. xprtrdma do not have support for DEVICE_REMOVAL event either. Lifting that assumption and adding support for DEVICE_REMOVAL event is a long chain of work, and is in plan. The community decided that preventing the hang right now is more important than waiting for architectural changes. Thus, this patch introduces a temporary workaround to acquire HCA driver module reference count during the mount of a nfs-rdma mount point. Signed-off-by: Devesh Sharma Signed-off-by: Chuck Lever Reviewed-by: Sagi Grimberg Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) commit 1241d7bf2ac8838d0d2d0b54a6173ac3eb3747a4 Author: Chuck Lever Date: Mon Aug 3 13:04:54 2015 -0400 core: Remove the ib_reg_phys_mr() and ib_rereg_phys_mr() verbs The verbs are obsolete. The ib_rereg_phys_mr() verb is not used by kernel ULPs, and the last ib_reg_phys_mr() call site in the kernel tree has now been removed. Two staging tree call sites remain in the Lustre client. The Lustre team has been notified of the deprecation of reg_phys_mr. Signed-off-by: Chuck Lever Acked-by: Doug Ledford Signed-off-by: Anna Schumaker drivers/infiniband/core/verbs.c | 67 ----------------------------------------- include/rdma/ib_verbs.h | 46 ---------------------------- 2 files changed, 113 deletions(-) commit 860477d1ff176549f2bf438b61e5c1ec6b1d43e5 Author: Chuck Lever Date: Mon Aug 3 13:04:45 2015 -0400 xprtrdma: Count RDMA_NOMSG type calls RDMA_NOMSG type calls are less efficient than RDMA_MSG. Count NOMSG calls so administrators can tell if they happen to be used more than expected. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 1 + net/sunrpc/xprtrdma/transport.c | 5 +++-- net/sunrpc/xprtrdma/xprt_rdma.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) commit 763f7e4e4b9033ac6a0f13aa37ba43636fc3c0af Author: Chuck Lever Date: Mon Aug 3 13:04:36 2015 -0400 xprtrdma: Clean up xprt_rdma_print_stats() checkpatch.pl complained about the seq_printf() format string split across lines and the use of %Lu. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/transport.c | 48 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 25 deletions(-) commit 2fcc213a18644610c79edbb5e847d73c6c5d5ded Author: Chuck Lever Date: Mon Aug 3 13:04:26 2015 -0400 xprtrdma: Fix large NFS SYMLINK calls Repair how rpcrdma_marshal_req() chooses which RDMA message type to use for large non-WRITE operations so that it picks RDMA_NOMSG in the correct situations, and sets up the marshaling logic to SEND only the RPC/RDMA header. Large NFSv2 SYMLINK requests now use RDMA_NOMSG calls. The Linux NFS server XDR decoder for NFSv2 SYMLINK does not handle having the pathname argument arrive in a separate buffer. The decoder could be fixed, but this is simpler and RDMA_NOMSG can be used in a variety of other situations. Ensure that the Linux client continues to use "RDMA_MSG + read list" when sending large NFSv3 SYMLINK requests, which is more efficient than using RDMA_NOMSG. Large NFSv4 CREATE(NF4LNK) requests are changed to use "RDMA_MSG + read list" just like NFSv3 (see Section 5 of RFC 5667). Before, these did not work at all. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker fs/nfs/nfs3xdr.c | 1 + fs/nfs/nfs4xdr.c | 4 +++- net/sunrpc/xprtrdma/rpc_rdma.c | 25 ++++++++++++++++--------- 3 files changed, 20 insertions(+), 10 deletions(-) commit 677eb17e94edfbbea3b7e628d8aa046930f102c3 Author: Chuck Lever Date: Mon Aug 3 13:04:17 2015 -0400 xprtrdma: Fix XDR tail buffer marshalling Currently xprtrdma appends an extra chunk element to the RPC/RDMA read chunk list of each NFSv4 WRITE compound. The extra element contains the final GETATTR operation in the compound. The result is an extra RDMA READ operation to transfer a very short piece of each NFS WRITE compound (typically 16 bytes). This is inefficient. It is also incorrect. The client is sending the trailing GETATTR at the same Position as the preceding WRITE data payload. Whether or not RFC 5667 allows the GETATTR to appear in a read chunk, RFC 5666 requires that these two separate RPC arguments appear at two distinct Positions. It can also be argued that the GETATTR operation is not bulk data, and therefore RFC 5667 forbids its appearance in a read chunk at all. Although RFC 5667 is not precise about when using a read list with NFSv4 COMPOUND is allowed, the intent is that only data arguments not touched by NFS (ie, read and write payloads) are to be sent using RDMA READ or WRITE. The NFS client constructs GETATTR arguments itself, and therefore is required to send the trailing GETATTR operation as additional inline content, not as a data payload. NB: This change is not backwards compatible. Some older servers do not accept inline content following the read list. The Linux NFS server should handle this content correctly as of commit a97c331f9aa9 ("svcrdma: Handle additional inline content"). Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 44 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) commit 33943b2974734ca5e5bef583d09ddd1eded6a77b Author: Chuck Lever Date: Mon Aug 3 13:04:08 2015 -0400 xprtrdma: Don't provide a reply chunk when expecting a short reply Currently Linux always offers a reply chunk, even when the reply can be sent inline (ie. is smaller than 1KB). On the client, registering a memory region can be expensive. A server may choose not to use the reply chunk, wasting the cost of the registration. This is a change only for RPC replies smaller than 1KB which the server constructs in the RPC reply send buffer. Because the elements of the reply must be XDR encoded, a copy-free data transfer has no benefit in this case. Signed-off-by: Chuck Lever Reviewed-by: Sagi Grimberg Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) commit 02eb57d8f44caa582e297f51f3555d47767c5fe9 Author: Chuck Lever Date: Mon Aug 3 13:03:58 2015 -0400 xprtrdma: Always provide a write list when sending NFS READ The client has been setting up a reply chunk for NFS READs that are smaller than the inline threshold. This is not efficient: both the server and client CPUs have to copy the reply's data payload into and out of the memory region that is then transferred via RDMA. Using the write list, the data payload is moved by the device and no extra data copying is necessary. Signed-off-by: Chuck Lever Reviewed-by: Devesh Sharma Reviewed-By: Sagi Grimberg Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) commit 5457ced0b504b41afe9439a6533066dea2fc0e1a Author: Chuck Lever Date: Mon Aug 3 13:03:49 2015 -0400 xprtrdma: Account for RPC/RDMA header size when deciding to inline When the size of the RPC message is near the inline threshold (1KB), the client would allow messages to be sent that were a few bytes too large. When marshaling RPC/RDMA requests, ensure the combined size of RPC/RDMA header and RPC header do not exceed the inline threshold. Endpoints typically reject RPC/RDMA messages that exceed the size of their receive buffers. The two server implementations I test with (Linux and Solaris) use receive buffers that are larger than the client’s inline threshold. Thus so far this has been benign, observed only by code inspection. Signed-off-by: Chuck Lever Reviewed-by: Devesh Sharma Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) commit b3221d6a53c44cd572a3a400abdd1e2a24bea587 Author: Chuck Lever Date: Mon Aug 3 13:03:39 2015 -0400 xprtrdma: Remove logic that constructs RDMA_MSGP type calls RDMA_MSGP type calls insert a zero pad in the middle of the RPC message to align the RPC request's data payload to the server's alignment preferences. A server can then "page flip" the payload into place to avoid a data copy in certain circumstances. However: 1. The client has to have a priori knowledge of the server's preferred alignment 2. Requests eligible for RDMA_MSGP are requests that are small enough to have been sent inline, and convey a data payload at the _end_ of the RPC message Today 1. is done with a sysctl, and is a global setting that is copied during mount. Linux does not support CCP to query the server's preferences (RFC 5666, Section 6). A small-ish NFSv3 WRITE might use RDMA_MSGP, but no NFSv4 compound fits bullet 2. Thus the Linux client currently leaves RDMA_MSGP disabled. The Linux server handles RDMA_MSGP, but does not use any special page flipping, so it confers no benefit. Clean up the marshaling code by removing the logic that constructs RDMA_MSGP type calls. This also reduces the maximum send iovec size from four to just two elements. /proc/sys/sunrpc/rdma_inline_write_padding is a kernel API, and thus is left in place. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/rpc_rdma.c | 92 +++++++++++------------------------------ net/sunrpc/xprtrdma/verbs.c | 47 ++++++++------------- net/sunrpc/xprtrdma/xprt_rdma.h | 19 +++++---- 3 files changed, 51 insertions(+), 107 deletions(-) commit d1ed857e5707e073973cfb1b8df801053a356518 Author: Chuck Lever Date: Mon Aug 3 13:03:30 2015 -0400 xprtrdma: Clean up rpcrdma_ia_open() Untangle the end of rpcrdma_ia_open() by moving DMA MR set-up, which is different for each registration method, to the .ro_open functions. This is refactoring only. No behavior change is expected. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/fmr_ops.c | 19 ++++++++++++ net/sunrpc/xprtrdma/frwr_ops.c | 5 ++++ net/sunrpc/xprtrdma/physical_ops.c | 25 +++++++++++++++- net/sunrpc/xprtrdma/verbs.c | 60 ++++++++++++-------------------------- net/sunrpc/xprtrdma/xprt_rdma.h | 3 +- 5 files changed, 67 insertions(+), 45 deletions(-) commit e531dcabec8dc2ee141aab01ddf20ca87c52d916 Author: Chuck Lever Date: Mon Aug 3 13:03:20 2015 -0400 xprtrdma: Remove last ib_reg_phys_mr() call site All HCA providers have an ib_get_dma_mr() verb. Thus rpcrdma_ia_open() will either grab the device's local_dma_key if one is available, or it will call ib_get_dma_mr(). If ib_get_dma_mr() fails, rpcrdma_ia_open() fails and no transport is created. Therefore execution never reaches the ib_reg_phys_mr() call site in rpcrdma_register_internal(), so it can be removed. The remaining logic in rpcrdma_{de}register_internal() is folded into rpcrdma_{alloc,free}_regbuf(). This is clean up only. No behavior change is expected. Signed-off-by: Chuck Lever Reviewed-by: Devesh Sharma Reviewed-By: Sagi Grimberg Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 102 +++++++++------------------------------- net/sunrpc/xprtrdma/xprt_rdma.h | 1 - 2 files changed, 21 insertions(+), 82 deletions(-) commit d23109302390d61d83675a86453674446eccb776 Author: Chuck Lever Date: Mon Aug 3 13:03:09 2015 -0400 xprtrdma: Don't fall back to PHYSICAL memory registration PHYSICAL memory registration uses a single rkey for all of the client's memory, thus is insecure. It is still useful in some cases for testing. Retain the ability to select PHYSICAL memory registration capability via /proc/sys/sunrpc/rdma_memreg_strategy, but don't fall back to it if the HCA does not support FRWR or FMR. This means amso1100 no longer works out of the box with NFS/RDMA. When using amso1100 HCAs, set the memreg_strategy sysctl to 6 before performing NFS/RDMA mounts. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Reviewed-by: Christoph Hellwig Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/verbs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 061dff29f8f62c21c9222897e4d121b4a5fa50da Author: Chuck Lever Date: Mon Aug 3 13:02:59 2015 -0400 xprtrdma: Increase default credit limit In preparation for similar increases on NFS/RDMA servers, bump the advertised credit limit for RPC/RDMA to 128. This allocates some extra resources, but the client will continue to allow only the number of RPCs in flight that the server requests via its advertised credit limit. Signed-off-by: Chuck Lever Reviewed-By: Sagi Grimberg Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker include/linux/sunrpc/xprtrdma.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 864be126fe5f325ec4b3e28173ca5cad2b8ee28c Author: Chuck Lever Date: Mon Aug 3 13:02:50 2015 -0400 xprtrdma: Raise maximum payload size to one megabyte The point of larger rsize and wsize is to reduce the per-byte cost of memory registration and deregistration. Modern HCAs can typically handle a megabyte or more with a single registration operation. Signed-off-by: Chuck Lever Reviewed-by: Devesh Sharma Reviewed-By: Sagi Grimberg Tested-by: Devesh Sharma Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/xprt_rdma.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5231eb9773c61a2a17590eabcadf4aecf44100bd Author: Chuck Lever Date: Mon Aug 3 13:02:41 2015 -0400 xprtrdma: Make xprt_setup_rdma() agnostic to family of server address In particular, recognize when an IPv6 connection is bound. Signed-off-by: Chuck Lever Tested-by: Devesh Sharma Reviewed-by: Christoph Hellwig Signed-off-by: Anna Schumaker net/sunrpc/xprtrdma/transport.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit eb79100fe6a696bfbad21aaf8e373d72763c7462 Author: Xavier Deguillard Date: Fri Jun 12 11:43:23 2015 -0700 VMware balloon: Add support for balloon capabilities. In order to extend the balloon protocol, the hypervisor and the guest driver need to agree on a set of supported functionality to use. Signed-off-by: Xavier Deguillard Acked-by: Dmitry Torokhov Signed-off-by: Philip P. Moltmann Acked-by: Andy King Signed-off-by: Greg Kroah-Hartman drivers/misc/vmw_balloon.c | 74 +++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 30 deletions(-) commit ef0f8f1129844cab9b0fb14aab0d7d7598d81103 Author: Xavier Deguillard Date: Fri Jun 12 11:43:22 2015 -0700 VMware balloon: partially inline vmballoon_reserve_page. This split the function in two: the allocation part is inlined into the inflate function and the lock part is kept into his own function. This change is needed in order to be able to allocate more than one page before doing the hypervisor call. Signed-off-by: Xavier Deguillard Acked-by: Dmitry Torokhov Signed-off-by: Philip P. Moltmann Acked-by: Andy King Signed-off-by: Greg Kroah-Hartman drivers/misc/vmw_balloon.c | 98 ++++++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 56 deletions(-) commit d0ec4230a077521a984ac604acbd8c15cc12a664 Author: Tejun Heo Date: Wed Aug 5 16:03:19 2015 -0400 cgroup: export cgrp_dfl_root While cgroup subsystems can't be modules, blkcg supports dynamically loadable policies which interact with cgroup core. Export cgrp_dfl_root so that cgroup_on_dfl() can be used in those modules. Signed-off-by: Tejun Heo Acked-by: Li Zefan Cc: Johannes Weiner kernel/cgroup.c | 1 + 1 file changed, 1 insertion(+) commit f151f53aa4f54a647353e1935e4c6cef7f094dd4 Author: Petri Gynther Date: Tue Aug 4 17:38:01 2015 -0700 perf tools: Fix build errors with mipsel-linux-uclibc compiler linux/tools$ make ARCH=mips CROSS_COMPILE=mipsel-linux- perf ... config/Makefile:256: *** No gnu/libc-version.h found, please install glibc-dev[el]. Stop. make[1]: *** [all] Error 2 make: *** [perf] Error 2 ... In file included from builtin-sched.c:13:0: util/cloexec.h:8:12: error: redundant redeclaration of ‘sched_getcpu’ [-Werror=redundant-decls] extern int sched_getcpu(void) __THROW; mipsel-buildroot-linux-uclibc/sysroot/usr/include/bits/sched.h:88:12: note: previous declaration of ‘sched_getcpu’ was here extern int sched_getcpu (void) __THROW; uclibc info: sysroot/usr/include/bits/uClibc_config.h __UCLIBC_MAJOR__ 0 __UCLIBC_MINOR__ 9 __UCLIBC_SUBLEVEL__ 33 sysroot/usr/include/features.h __UCLIBC__ 1 __GLIBC__ 2 __GLIBC_MINOR__ 2 Signed-off-by: Petri Gynther Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1438735081-24131-1-git-send-email-pgynther@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/build/feature/test-glibc.c | 11 +++++++++++ tools/perf/util/cloexec.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) commit 007d66a0bd43d886eb3e4aceaf1a96b8743ccaff Author: Milian Wolff Date: Wed Aug 5 16:52:23 2015 -0300 perf trace: Write to stderr by default Without this patch, it is cumbersome to read the trace output but ignoring the normal, potentially verbose, output of the debuggee. One common example is doing something like the following: perf trace -s find /tmp > /dev/null Without this patch, the trace summary will be lost. Now, it will still be printed at the end. This behavior is also applied by strace. Cc: Milian Wolff Cc: David Ahern Link: http://lkml.kernel.org/n/tip-tqnks6y2cnvm5f9g2dsfr7zl@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7a001d2067830a98e65d1bbbf99a6d435d70616 Author: Andi Kleen Date: Mon Aug 3 17:50:02 2015 -0700 perf tools: Do not include escape sequences in color_vfprintf return color_vprintf was including the length of the invisible escape sequences in its return argument. Don't include them to make the return value usable for indentation calculations. v2: Add comment, rebase Signed-off-by: Andi Kleen Cc: Jiri Olsa Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1438649408-20807-3-git-send-email-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/color.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8011de7ab3b10c5352f3f0708f517de2722b0957 Author: Jiri Olsa Date: Mon Aug 3 17:50:01 2015 -0700 perf tools: Remove trail argument to color vsprintf Seems like it's always '\n' through color_fprintf_ln, which is not used at all, removing.. ;-) Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1438649408-20807-2-git-send-email-andi@firstfloor.org Signed-off-by: Andi Kleen Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/color.c | 16 ++-------------- tools/perf/util/color.h | 1 - 2 files changed, 2 insertions(+), 15 deletions(-) commit c3a6a8c40538f609923acf9473250266283269a5 Author: Kan Liang Date: Tue Aug 4 04:30:20 2015 -0400 perf tools: Refine parse/config callchain functions Pass global callchain_param into parse_callchain_record_opt and perf_evsel__config_callgraph as parameter. So we can reuse these functions to parse/config local param for callchain. Signed-off-by: Kan Liang Acked-by: Jiri Olsa Cc: Andi Kleen Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438677022-34296-3-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 2 +- tools/perf/util/callchain.c | 14 +++++++------- tools/perf/util/callchain.h | 2 +- tools/perf/util/evsel.c | 11 ++++++----- 4 files changed, 15 insertions(+), 14 deletions(-) commit a53870c0ebe0b84a6e1a09785d24b0f0e6729962 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:05:03 2015 +0000 usb: misc: ftdi-elan: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/misc/ftdi-elan.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit eb82122a665b31ff9c40f1b4b66be71f0ef21bd3 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:04:35 2015 +0000 usb: serial: mxuport: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/serial/mxuport.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit f1cda54cfb71720058cd65b2f1be7f2a86889935 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:04:09 2015 +0000 usb: host: xhci: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 8602b08ab641a6004efa553c8089180c40bc1f72 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:03:45 2015 +0000 usb: host: u132-hcd: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/host/u132-hcd.c | 35 +++++++++-------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) commit aa31a0909cc44bf2f75c14e800caff2d06ff725e Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:03:20 2015 +0000 usb: host: oxu210hp-hcd: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/host/oxu210hp-hcd.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 16f9c3fd25b957f4df0fd5d9bf70249495c1a421 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:02:55 2015 +0000 usb: host: ehci-st: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-st.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit e94a7369a9293de2674de322d1e5253d63ba42ff Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:02:28 2015 +0000 usb: musb: musb_dsps: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/musb/musb_dsps.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit a9c5d8feb9e751a7521f1a5fa0d56901824e2ad8 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:02:03 2015 +0000 usb: phy: phy-keystone: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/phy/phy-keystone.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 082155eabfabd9148cc7e81c995e2c482075ccc3 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:01:31 2015 +0000 usb: phy: phy-mxs-usb: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Greg Kroah-Hartman drivers/usb/phy/phy-mxs-usb.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 135551ea1abd5038d14825514df7e259fd500033 Author: Kris Borer Date: Tue Aug 4 08:39:31 2015 -0400 usb: devio: remove assignment from if condition Fix five occurrences of the checkpatch.pl error: ERROR: do not use assignment in if condition The semantic patch that makes this change is: // @@ identifier i; expression E; statement S1, S2; @@ + i = E; if ( - (i = E) + i ) S1 else S2 @@ identifier i; expression E; statement S; constant c; binary operator b; @@ + i = E; if ( - (i = E) + i b c ) S // Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/devio.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit b4629a7bdfd8fcafc90ded7e6a1f88099105842d Author: Alban Bedel Date: Tue Aug 4 10:59:17 2015 +0200 usb: ehci-platform: Fix using multiple controllers from OF When using OF defined controllers the platform data struct is shared between all devices, so it can't be used for device specific settings. However it is currently used for the OF properties needs-reset-on-resume and has-transaction-translator. To fix this issue move setting hcd->has_tt to the probe and move pdata->reset_on_resume to the private data. Signed-off-by: Alban Bedel Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-platform.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit d719b76c1306370d146c517e33b25f756b9a12d5 Author: Stephen Boyd Date: Tue Jun 16 11:37:16 2015 -0700 spmi: Select IRQ_DOMAIN instead of depend on it IRQ_DOMAIN is a hidden config option, so depending on it doesn't make any sense. Select the config option because it's required to compile this driver. Signed-off-by: Stephen Boyd Reviewed-by: Andy Gross Signed-off-by: Greg Kroah-Hartman drivers/spmi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 60be42306f838d9231398bdb7d4ff3451ae13601 Author: Courtney Cavin Date: Thu Jul 30 10:53:54 2015 -0700 spmi: pmic-arb: add support for irq_get_irqchip_state Reviewed-by: Andy Gross Signed-off-by: Courtney Cavin Signed-off-by: Bjorn Andersson Tested-by: Tim Bird Signed-off-by: Greg Kroah-Hartman drivers/spmi/spmi-pmic-arb.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit a9fce374815d8ab94a3e6259802a944e2cc21408 Author: Ankit Gupta Date: Mon Jun 22 16:38:46 2015 -0600 spmi: add command tracepoints for SPMI Add tracepoints to retrieve information about read, write and non-data commands. For performance measurement support tracepoints are added at the beginning and at the end of transfers. Following is a list showing the new tracepoint events. The "cmd" parameter here represents the opcode, SID, and full 16-bit address. spmi_write_begin: cmd and data buffer. spmi_write_end : cmd and return value. spmi_read_begin : cmd. spmi_read_end : cmd, return value and data buffer. spmi_cmd : cmd. The reason that cmd appears at both the beginning and at the end event is that SPMI drivers can request commands concurrently. cmd helps in matching the corresponding events. SPMI tracepoints can be enabled like: echo 1 >/sys/kernel/debug/tracing/events/spmi/enable and will dump messages that can be viewed in /sys/kernel/debug/tracing/trace that look like: ... spmi_read_begin: opc=56 sid=00 addr=0x0000 ... spmi_read_end: opc=56 sid=00 addr=0x0000 ret=0 len=02 buf=0x[01-40] ... spmi_write_begin: opc=48 sid=00 addr=0x0000 len=3 buf=0x[ff-ff-ff] Suggested-by: Sagar Dharia Acked-by: Steven Rostedt Reviewed-by: Stephen Boyd Signed-off-by: Gilad Avidov Signed-off-by: Ankit Gupta Signed-off-by: Greg Kroah-Hartman drivers/spmi/spmi.c | 22 +++++++- include/trace/events/spmi.h | 135 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+), 3 deletions(-) commit 6497a8757361a88b73fc3814d2ee9b9fc105fa42 Author: Eli Billauer Date: Wed Aug 5 13:03:26 2015 +0300 char: xillybus: Allow 64-bit DMA on PCIe interface Until now, only 32-bit DMA addressing was allowed, following a report on some old Intel machine that dropped 64-bit PCIe packets, even though pci_set_dma_mask() was successful with DMA_BIT_MASK(64). But then came TI's Keystone II chip (ARM Cortex A15 + DSPs), which refuses 32-bit DMA addressing (for good reasons). So 64-bit DMA is allowed as a fallback option. Signed-off-by: Eli Billauer Signed-off-by: Greg Kroah-Hartman drivers/char/xillybus/xillybus_pcie.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit d3159455bf46b71d0a4f2bb5d9cb92b64056e2b1 Author: Peter Hung Date: Wed Aug 5 14:44:53 2015 +0800 serial: 8250_pci: fix mode after S3/S4 resume for F81504/508/512 Fix RS232/485 mode incorrect setting after S3/S4 resume for F81504/508/512 We had add RS232/485 RTS control with fecf27a373f5. But when it resume from S3/S4, the mode register 0x40 + 0x08 * idx + 7 will rewrite to 0x01 (RS232 mode). This patch will modify 2 sections. One is pci_fintek_init(), if it called when first init, it will write mode register with 0x01. If it called from S3/S4 resume, it's will get the relative port data and pass it to pci_fintek_rs485_config() with NULL rs485 parameter. The another modification is in pci_fintek_rs485_config(). It'll re-apply old configuration when the parameter rs485 is NULL. Signed-off-by: Peter Hung Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit 6255049d397b28fdedab0b6c5f85072b3177e4a4 Author: Miguel Bernabeu Diaz Date: Wed Aug 5 22:33:23 2015 +0200 staging: lustre: Fix style warning on header Fix checkpatch.pl warning: WARNING: Use #include instead of Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f016420d368480762061632f9a9254fd3a89239 Author: Shraddha Barke Date: Wed Aug 5 01:52:45 2015 +0530 Staging: lustre: obdclass: Use kasprintf This patch uses kasprintf which combines kzalloc and sprintf. kasprintf also takes care of the size calculation. Semantic patch used is as follows: @@ expression a,flag; expression list args; statement S; @@ a = - \(kmalloc\|kzalloc\)(...,flag) + kasprintf (flag,args) <... when != a if (a == NULL || ...) S ...> - sprintf(a,args); Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/obd_mount.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 91f2208c37ab08343b118601eaa0d9bb76fc8762 Author: Shraddha Barke Date: Tue Aug 4 23:20:51 2015 +0530 Staging: lustre: mgc: Replace comma with a semicolon Replace comma between expression statements by a semicolon. The semantic patch used is as follows: @@ expression e1,e2; @@ e1 - , + ; e2; Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mgc/mgc_request.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 48177898f05916b64935118633353dbc448d3c24 Author: Shraddha Barke Date: Tue Aug 4 23:20:52 2015 +0530 Staging: netlogic: Replace comma with a semicolon Replace comma between expression statements by a semicolon. The semantic patch used is as follows: @@ expression e1,e2; @@ e1 - , + ; e2; Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/netlogic/platform_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b37465e40915a657e60593e068aa3ab447931b1 Author: Shraddha Barke Date: Tue Aug 4 23:20:50 2015 +0530 Staging: lustre: libcfs: Replace comma with a semicolon Replace comma between expression statements by a semicolon. The semantic patch used is as follows: @@ expression e1,e2; @@ e1 - , + ; e2; Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/libcfs_string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b7856753856b4e6a20c1c91c6db03852e90de273 Author: Shraddha Barke Date: Tue Aug 4 23:02:34 2015 +0530 Staging: lustre: osc: Drop unnecessary cast on void * This patch does away with the cast on void * as it is unnecessary. Semantic patch used is as follows: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_request.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 45b30514a34fa7fcb7a84be799ca5fc53d33a4d7 Author: Shraddha Barke Date: Tue Aug 4 23:02:35 2015 +0530 Staging: lustre: lov: Drop unnecessary cast on void * This patch does away with the cast on void * as it is unnecessary. Semantic patch used is as follows: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_obd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a12aaa92f3ccd15015e01373c2b60a3841aaebbb Author: Shraddha Barke Date: Tue Aug 4 23:02:33 2015 +0530 Staging: lustre: libcfs: Drop unnecessary cast on void* This patch does away with the cast on void * as it is unnecessary. Semantic patch used is as follows: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 946b254697655f0ea0c54b1b0e20fb3b9aab99da Author: Neil Horman Date: Tue Aug 4 15:09:47 2015 -0400 staging: unisys: visornic: Convert to using napi Switch the visornic over to use napi. Currently there is a kernel thread that sits and waits on a wait queue to get notified of incoming virtual interrupts. It would be nice if we could handle frame reception using the standard napi processing instead. This patch creates our napi instance and has the rx thread schedule it Given that the unisys hypervisor currently requires that queue servicing be done by a polling loop that wakes up every 2ms, lets instead also convert that to a timer, which is simpler, and allows us to remove all the thread starting and stopping code. Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 202 ++++++++++-------------- 1 file changed, 82 insertions(+), 120 deletions(-) commit 6212990a87588869aa9a93fa5b861d3abf1be783 Author: Chandra S Gorentla Date: Wed Aug 5 22:11:57 2015 +0530 drivers: staging: wilc1000: remove space after '(' The character ' ' is removed after the character '('. This fixes the checkpatch.pl error - "space prohibited after that open parenthesis '('". Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a96c47e1978a874e87e7fea3ebb178eaf8730d46 Author: Chandra S Gorentla Date: Wed Aug 5 22:11:55 2015 +0530 drivers: staging: wilc1000: use 'void' for no arguments functions Added 'void' keyword in the paranthesis of function definitions, when there are no arguments to the functions. This fixes the checkpatch.pl error - "Bad function definition 'function()' should probably be function(void)". Signed-off-by: Chandra S Gorentla Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_mon.c | 2 +- drivers/staging/wilc1000/linux_wlan.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 1913221c0e3025a93c3c106ec0167f8240df4d35 Author: Daniel Machon Date: Wed Aug 5 08:18:31 2015 +0200 staging: wilc1000: wilc_cfgoperations.c: Fixed coding styles issues. Fixed coding styles issues with braces. Signed-off-by: Daniel Machon Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit eeb1c0629539b1393d0b5ffea9cc2d71e6e933bf Author: Shraddha Barke Date: Wed Aug 5 01:29:22 2015 +0530 Staging: wilc1000: Remove typedefs for struct The Linux kernel coding style guidelines suggest not using typedefs for structure and enum types. This patch gets rid of the typedefs for Ack_session_info_t. The following Coccinelle semantic patch detects the cases for struct type: @tn@ identifier i; type td; @@ -typedef struct i { ... } -td ; @@ type tn.td; identifier tn.i; @@ -td + struct i Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2cb1df7ebd8b8807a204ffb0692751b15d4cb1bf Author: Lars Svensson Date: Wed Aug 5 14:15:12 2015 +0200 staging: iio_simple_dummy: Fix indentation errors Fixing indentation errors in drivers/staging/iio/iio_simple_dummy_events.c. Signed-off-by: Lars Svensson Acked-by: Daniel Baluta Signed-off-by: Greg Kroah-Hartman drivers/staging/iio/iio_simple_dummy_events.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fce7f39356c511e263e97094bd18dee40fca6511 Author: Lior Pugatch Date: Tue Aug 4 22:18:04 2015 +0300 staging: vt6655: Fixed C99 style comment to C89 style. Patch created to satisfy checkpatch.pl Signed-off-by: Lior Pugatch Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/rxtx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c9a47627f7988470ad391091ed9334018e5144a2 Author: Ting-Chih Hsiao Date: Tue Aug 4 11:21:10 2015 +0800 staging: rtl8723au: fix up coding style warnings reported by checkpatch.pl. remove spaces at the start of a line align enum variable with other parameters Signed-off-by: Ting-Chih Hsiao Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/odm_RegConfig8723A.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f72f130d87ff05144553af4894c0c52c57d60930 Author: Oleg Drokin Date: Mon Aug 3 21:57:45 2015 -0400 staging/lustre: Properly reference kthread_run instead of cfs_daemonize cfs_daemonize is long gone and replaced by a proper call to kthread_run, so update the comment to reflect that fact. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/lustre_net.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 967ef593bf26bdd9ddabef8eb8c1ddd8f5d2074a Author: Oleg Drokin Date: Mon Aug 3 21:57:44 2015 -0400 staging/lustre/ptlrpc: Remove stray cfs_daemonize comment Ever since daemonize was removed in 3.18, there are no longer any flags passed to kthread_run. Most of the comments were deleted, but this one lingered on until now. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/pinger.c | 2 -- 1 file changed, 2 deletions(-) commit d27da4dae5f487d64ba52c3d505cc587c19af578 Author: Ian Abbott Date: Wed Aug 5 18:13:26 2015 +0100 staging: comedi: improve comedi_check_chanlist() documentation Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/range.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 1a59adb222bc4758241eb4ff253faa5b1ebd4cab Author: Ted Chen Date: Wed Aug 5 01:18:46 2015 +0800 staging: comedi: do not return -ENOSYS. fixed coding style issue by replacing ENOSYS with EIO because it means 'invalid syscall nr' and nothing else. Signed-off-by: Ted Chen Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2537468cee9ff2b9d4c425e2f8141aaa274dc495 Author: Jandy Gou Date: Wed Aug 5 10:09:02 2015 +0800 Staging: android: timed_gpio.c: fix coding style errors remove extra space and replace tab to space after a variable Signed-off-by: Jandy Gou Signed-off-by: Greg Kroah-Hartman drivers/staging/android/timed_gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f39c4280a3872b0e6c7b01076132c12ad7a90392 Author: Vitaly Kuznetsov Date: Wed Aug 5 00:52:48 2015 -0700 Drivers: hv: vmbus: use cpu_hotplug_enable/disable Commit e513229b4c38 ("Drivers: hv: vmbus: prevent cpu offlining on newer hypervisors") was altering smp_ops.cpu_disable to prevent CPU offlining. We can bo better by using cpu_hotplug_enable/disable functions instead of such hard-coding. Reported-by: Radim Kr.má Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) commit 32145c4677d2c46b9d877a33ae82c6fcacd002f9 Author: Vitaly Kuznetsov Date: Wed Aug 5 00:52:47 2015 -0700 cpu-hotplug: export cpu_hotplug_enable/cpu_hotplug_disable Hyper-V module needs to disable cpu hotplug (offlining) as there is no support from hypervisor side to reassign already opened event channels to a different CPU. Currently it is been done by altering smp_ops.cpu_disable but it is hackish. Signed-off-by: Vitaly Kuznetsov Reviewed-by: Thomas Gleixner Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman kernel/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 89af7ba5740b5937d10c8de93e79e71e5a933041 Author: Vitaly Kuznetsov Date: Wed Aug 5 00:52:46 2015 -0700 cpu-hotplug: convert cpu_hotplug_disabled to a counter As a prerequisite to exporting cpu_hotplug_enable/cpu_hotplug_disable functions to modules we need to convert cpu_hotplug_disabled to a counter to properly support disable -> disable -> enable call sequences. E.g. after Hyper-V vmbus module (which is supposed to be the first user of exported cpu_hotplug_enable/cpu_hotplug_disable) did cpu_hotplug_disable() hibernate path calls disable_nonboot_cpus() and if we hit an error in _cpu_down() enable_nonboot_cpus() will be called on the failure path (thus making cpu_hotplug_disabled = 0 and leaving cpu hotplug in 'enabled' state). Same problem is possible if more than 1 module use cpu_hotplug_disable/cpu_hotplug_enable on their load/unload paths. When one of these modules is been unloaded it is logical to leave cpu hotplug in 'disabled' state. To support the change we need to increse cpu_hotplug_disabled counter in disable_nonboot_cpus() unconditionally as all users of disable_nonboot_cpus() are supposed to do enable_nonboot_cpus() in case an error was returned. Signed-off-by: Vitaly Kuznetsov Reviewed-by: Thomas Gleixner Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman Documentation/power/suspend-and-cpuhotplug.txt | 6 +++--- kernel/cpu.c | 21 +++++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) commit 54bf725e5d21022b25fe0d3c103fe82ed13b870b Author: Dexuan Cui Date: Wed Aug 5 00:52:45 2015 -0700 Drivers: hv: vmbus: document the VMBus sysfs files The 4 sysfs files should be stable ABIs to the user space. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman Documentation/ABI/stable/sysfs-bus-vmbus | 29 +++++++++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 30 insertions(+) commit 502d84bd1aa2445b13ff75e8ac2a39d249f791ee Author: Dexuan Cui Date: Wed Aug 5 00:52:44 2015 -0700 tools: hv: add a python script lsvmbus to list VMBus devices By default lsvmbus lists all the devices in the VMBus. With -v or -vv, more information is printed, including the VMBus Rel_ID, class ID, device ID and which channel is bound to which virtual processor, etc. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman tools/hv/lsvmbus | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) commit 042ab0313bbb7e776e9510da3f07fb300d08a8ba Author: Dexuan Cui Date: Wed Aug 5 00:52:43 2015 -0700 Drivers: hv: vmbus: add a sysfs attr to show the binding of channel/VP This is useful to analyze performance issue. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit ca9357bd26c2f8e7b909321eedd651f52cc30d04 Author: K. Y. Srinivasan Date: Wed Aug 5 00:52:42 2015 -0700 Drivers: hv: vmbus: Implement a clocksource based on the TSC page The current Hyper-V clock source is based on the per-partition reference counter and this counter is being accessed via s synthetic MSR - HV_X64_MSR_TIME_REF_COUNT. Hyper-V has a more efficient way of computing the per-partition reference counter value that does not involve reading a synthetic MSR. We implement a time source based on this mechanism. Tested-by: Vivek Yadav Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman arch/x86/include/uapi/asm/hyperv.h | 2 + drivers/hv/hv.c | 83 ++++++++++++++++++++++++++++++++++++++ drivers/hv/hyperv_vmbus.h | 9 +++++ 3 files changed, 94 insertions(+) commit bc609cb47fb2e74654e23cef0a1d4db38b6570a3 Author: Viresh Kumar Date: Wed Aug 5 00:52:41 2015 -0700 drivers/hv: Migrate to new 'set-state' interface Migrate hv driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: "K. Y. Srinivasan" Cc: Haiyang Zhang Cc: devel@linuxdriverproject.org Signed-off-by: Viresh Kumar Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv.c | 45 +++++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 26 deletions(-) commit a5cca686ce0ef4909deaee4ed46dd991e3a9ece4 Author: Christopher Oo Date: Wed Aug 5 00:52:40 2015 -0700 Drivers: hv_vmbus: Fix signal to host condition Fixes a bug where previously hv_ringbuffer_read would pass in the old number of bytes available to read instead of the expected old read index when calculating when to signal to the host that the ringbuffer is empty. Since the previous write size is already saved, also changes the hv_need_to_signal_on_read to use the previously read value rather than recalculating it. Signed-off-by: Christopher Oo Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/ring_buffer.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) commit 3b71107d73b16074afa7658f3f0fcf837aabfe24 Author: Dexuan Cui Date: Wed Aug 5 00:52:39 2015 -0700 Drivers: hv: vmbus: Further improve CPU affiliation logic Keep track of CPU affiliations of sub-channels within the scope of the primary channel. This will allow us to better distribute the load amongst available CPUs. Signed-off-by: Dexuan Cui Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 20 ++++++++++++++++++-- include/linux/hyperv.h | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) commit 9f01ec53458d9e9b68f1c555e773b5d1a1f66e94 Author: K. Y. Srinivasan Date: Wed Aug 5 00:52:38 2015 -0700 Drivers: hv: vmbus: Improve the CPU affiliation for channels The current code tracks the assigned CPUs within a NUMA node in the context of the primary channel. So, if we have a VM with a single NUMA node with 8 VCPUs, we may end up unevenly distributing the channel load. Fix the issue by tracking affiliations globally. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 11 ++++++----- drivers/hv/hv.c | 9 +++++++++ drivers/hv/hyperv_vmbus.h | 5 +++++ include/linux/hyperv.h | 1 - 4 files changed, 20 insertions(+), 6 deletions(-) commit 3546448338e76a52d4f86eb3680cb2934e22d89b Author: Jake Oshins Date: Wed Aug 5 00:52:37 2015 -0700 drivers:hv: Move MMIO range picking from hyper_fb to hv_vmbus This patch deletes the logic from hyperv_fb which picked a range of MMIO space for the frame buffer and adds new logic to hv_vmbus which picks ranges for child drivers. The new logic isn't quite the same as the old, as it considers more possible ranges. Signed-off-by: Jake Oshins Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 88 +++++++++++++++++++++++++++++++++++++++-- drivers/video/fbdev/hyperv_fb.c | 46 ++++++++++----------- include/linux/hyperv.h | 7 +++- 3 files changed, 110 insertions(+), 31 deletions(-) commit 7f163a6fd957a85f7f66a129db1ad243a44399ee Author: Jake Oshins Date: Wed Aug 5 00:52:36 2015 -0700 drivers:hv: Modify hv_vmbus to search for all MMIO ranges available. This patch changes the logic in hv_vmbus to record all of the ranges in the VM's firmware (BIOS or UEFI) that offer regions of memory-mapped I/O space for use by paravirtual front-end drivers. The old logic just found one range above 4GB and called it good. This logic will find any ranges above 1MB. It would have been possible with this patch to just use existing resource allocation functions, rather than keep track of the entire set of Hyper-V related MMIO regions in VMBus. This strategy, however, is not sufficient when the resource allocator needs to be aware of the constraints of a Hyper-V virtual machine, which is what happens in the next patch in the series. So this first patch exists to show the first steps in reworking the MMIO allocation paths for Hyper-V front-end drivers. Signed-off-by: Jake Oshins Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 116 +++++++++++++++++++++++++++++++--------- drivers/video/fbdev/hyperv_fb.c | 2 +- include/linux/hyperv.h | 2 +- 3 files changed, 92 insertions(+), 28 deletions(-) commit 6fd3850227961d70594acd45d146ad28367415b5 Author: James Chen Date: Mon Jul 20 11:16:36 2015 -0700 Input: elants_i2c - disable idle mode before updating firmware If the device is in idle mode and is in the middle of a scan it may not have a chance to react to the reset and then IAP commands within required time interval and firmware update may fail. Let's bring the device out of idle mode before attempting to reset it so that the scan period is smaller and thus it can react to the command quicker. Signed-off-by: James Chen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/elants_i2c.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit f368ed6088ae9c1fbe1c897bb5f215ce5e63fa1e Author: Greg Kroah-Hartman Date: Thu Jul 30 15:59:57 2015 -0700 char: make misc_deregister a void function With well over 200+ users of this api, there are a mere 12 users that actually checked the return value of this function. And all of them really didn't do anything with that information as the system or module was shutting down no matter what. So stop pretending like it matters, and just return void from misc_deregister(). If something goes wrong in the call, you will get a WARNING splat in the syslog so you know how to fix up your driver. Other than that, there's nothing that can go wrong. Cc: Alasdair Kergon Cc: Neil Brown Cc: Oleg Drokin Cc: Andreas Dilger Cc: "Michael S. Tsirkin" Cc: Wim Van Sebroeck Cc: Christine Caulfield Cc: David Teigland Cc: Mark Fasheh Acked-by: Joel Becker Acked-by: Alexandre Belloni Acked-by: Alessandro Zummo Acked-by: Mike Snitzer Signed-off-by: Greg Kroah-Hartman drivers/char/misc.c | 9 +++------ drivers/md/dm-ioctl.c | 4 +--- drivers/misc/vmw_vmci/vmci_host.c | 7 +------ drivers/rtc/rtc-ds1374.c | 5 ++--- drivers/staging/android/ashmem.c | 7 +------ drivers/staging/android/ion/ion_test.c | 3 ++- drivers/staging/lustre/lustre/libcfs/module.c | 4 +--- drivers/vhost/scsi.c | 4 ++-- drivers/watchdog/at91rm9200_wdt.c | 5 ++--- drivers/watchdog/ks8695_wdt.c | 9 +++------ drivers/watchdog/ts72xx_wdt.c | 3 ++- fs/btrfs/super.c | 3 +-- fs/dlm/plock.c | 3 +-- fs/dlm/user.c | 9 +++------ fs/ocfs2/stack_user.c | 9 +-------- include/linux/miscdevice.h | 2 +- 16 files changed, 27 insertions(+), 59 deletions(-) commit 027b4a6d6affec15626e3e985852cf67a6a89842 Author: Joachim Eastwood Date: Fri Jul 31 00:24:27 2015 +0200 ARM: dts: lpc4350-hitex-eval: add emc pins and static memory devices Setup the emc pins used by external memory devices and add configuration for the devices found on the Hitex eval board. The Hitex eval board has a NOR Flash attached to chip select 0 and 512 kB of SRAM on chip select 2. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc4350-hitex-eval.dts | 164 +++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) commit aceacfa6ac41f2fcb0889351d7f13a849a379b3c Author: Ariel D'Alessandro Date: Fri Jul 31 00:24:26 2015 +0200 ARM: dts: lpc4350-hitex-eval: add ethernet Enable Ethernet and add pin muxing and set the correct frequency on the enet tx clock input. Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc4350-hitex-eval.dts | 60 ++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 5e6472001e529ef4c81068d7826064568dd9d104 Author: Ariel D'Alessandro Date: Fri Jul 31 00:24:25 2015 +0200 ARM: dts: lpc4350-hitex-eval: add pinctrl and uart0 muxing Setup pin muxing and properties for the debug console on uart0. Signed-off-by: Ariel D'Alessandro Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc4350-hitex-eval.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 41a0dec9163c0f9a0f14d79d0bcca4dd1c2005b6 Author: Joachim Eastwood Date: Fri Jul 31 00:24:24 2015 +0200 ARM: dts: lpc4357-ea4357: add mmio-gpio leds Hook up LEDs on the outputs from the D-type flip-flop found on the address/data bus. Note that the LEDx label in the schematics is reversed in regard to the bits on the data bus. Hence the reverse ordering used here. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) commit 3c6abb97f343aec1df1f1cc213886ccfd2f38c6b Author: Joachim Eastwood Date: Fri Jul 31 00:24:23 2015 +0200 ARM: dts: lpc4357-ea4357: add emc pins and static memory devices Setup the emc pins used by external memory devices and add configuration for the devices found on the EA4357 devkit. The EA4357 devkit has a NOR Flash attached to chip select 0 and a D-type flip-flop used for LEDs on chip select 2. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 164 ++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) commit fd0cb235dfff271340485b2323170eaf968c0ab6 Author: Joachim Eastwood Date: Fri Jul 31 00:24:22 2015 +0200 ARM: dts: lpc4357-ea4357: add usb0 Enable USB0 on the EA4357 devkit and setup the required USB0 control pins. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 50016385c2a5d484aa2a8defff23d4b2e2927006 Author: Joachim Eastwood Date: Fri Jul 31 00:24:21 2015 +0200 ARM: dts: lpc18xx: add pl172 memory-controller node All devices in the LPC18xx/43xx familiy contain a ARM PL172 MultiPort Memory Controller (MPMC). Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc18xx.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 9cf6267d166a8dc004bbbcdb5b6a371bdd33842b Author: Joachim Eastwood Date: Fri Jul 31 00:24:20 2015 +0200 ARM: dts: lpc18xx: add pl111 lcd controller node NXP LPC185x and LPC435x/70 devices contain a ARM PL111 lcd controller. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc18xx.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 6d6d6b559f322183e5ca94908eac153a85a8b4a3 Author: Joachim Eastwood Date: Fri Jul 31 00:24:19 2015 +0200 ARM: dts: lpc18xx: add usb otg phy node Add the USB OTG phy under the CREG syscon node and attach it to the USB0 EHCI controller. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson arch/arm/boot/dts/lpc18xx.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 824811293538f5cafaa6d19e3458a13eafa92a32 Author: Eric Anholt Date: Wed Jul 22 12:55:37 2015 -0700 MAINTAINERS: Explicitly add linux-arm-kernel for bcm2835 get_maintainers.pl would list linux-arm-kernel for most bcm2835 changes because it's under arch/arm, but might not for other bcm2835 drivers. Most ARM architectures appear to list linux-arm-kernel as an appropriate list as well. Signed-off-by: Eric Anholt Suggested-by: Stephen Warren Signed-off-by: Florian Fainelli MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 10b9e8871558f8dd9485dce003ba1f3285aabbeb Author: Eric Anholt Date: Wed Jul 22 12:55:36 2015 -0700 MAINTAINERS: Add myself as a bcm2835 co-maintainer. The current maintainers have limited free time to work on the architecture, and I'm motivated to do so for my work on graphics for Broadcom. Arnd and Florian suggested to me that this might be the way forward. Signed-off-by: Eric Anholt Acked-by: Stephen Warren Signed-off-by: Florian Fainelli MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 44e259ac909f3b41786cf732a44b5cf8444e098a Author: Russell King Date: Wed Jul 15 19:59:36 2015 +0100 ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets The PMU device contains an interrupt controller, power control and resets. The interrupt controller is a little sub-standard in that there is no race free way to clear down pending interrupts, so we try to avoid problems by reducing the window as much as possible, and clearing as infrequently as possible. The interrupt support is implemented using an IRQ domain, and the parent interrupt referenced in the standard DT way. The power domains and reset support is closely related - there is a defined sequence for powering down a domain which is tightly coupled with asserting the reset. Hence, it makes sense to group these two together, and in order to avoid any locking contention disrupting this sequence, we avoid the use of syscon or regmap. This patch adds the core PMU driver: power domains must be defined in the DT file in order to make use of them. The reset controller can be referenced in the standard way for reset controllers. Signed-off-by: Russell King Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/Kconfig | 1 + arch/arm/mach-mvebu/dove.c | 2 + drivers/soc/Makefile | 1 + drivers/soc/dove/Makefile | 1 + drivers/soc/dove/pmu.c | 412 +++++++++++++++++++++++++++++++++++++++++++ include/linux/soc/dove/pmu.h | 6 + 6 files changed, 423 insertions(+) commit cba3bbcba41f8534df5529752d10dc69b7b38eda Author: Russell King Date: Wed Jul 15 19:59:52 2015 +0100 ARM: dt: dove: add GPU power domain description Add the description of the GPU power domain to the PMU DT entry. Signed-off-by: Russell King Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 7c2293f523c67511581711b244022e4a1efdc0a6 Author: Russell King Date: Wed Jul 15 19:59:46 2015 +0100 ARM: dt: dove: add video decoder power domain description Add the description of the video decoder power domain to the PMU DT entry. Signed-off-by: Russell King Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 71296a39c5e5daad7d46a9e759e0c6f8338649aa Author: Russell King Date: Wed Jul 15 19:59:41 2015 +0100 ARM: dt: dove: wire up RTC interrupt Now that we have a PMU driver, we can wire up the RTC interrupt in the DT description for Dove. Signed-off-by: Russell King Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 1 + 1 file changed, 1 insertion(+) commit 8e7c6a3269d4e22827715c23c854636115f51c23 Author: Russell King Date: Wed Jul 15 19:59:31 2015 +0100 ARM: dt: Add PMU node, making PMU child devices childs of this node Add the PMU node, and move the child devices of the PMU node beneath this new node, giving it a "simple-bus" so that the OF platform device creator will create these child devices. No functional change from this is expected. The PMU provides multiple features, including an interrupt, reset, power and isolation controller. Signed-off-by: Russell King Signed-off-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/dove.dtsi | 590 +++++++++++++++++++++++--------------------- 1 file changed, 304 insertions(+), 286 deletions(-) commit 320677123905fd1dd122895cd5fb870ee9e1380b Author: Kan Liang Date: Tue Aug 4 04:30:19 2015 -0400 perf tools: Per-event time support This patchkit adds the ability to turn off time stamps per event. One usaful case for partial time is to work with per-event callgraph to enable "PEBS threshold > 1" (https://lkml.org/lkml/2015/5/10/196), which can significantly reduce the sampling overhead. The event samples with time stamps off will not be ordered. Signed-off-by: Kan Liang Acked-by: Jiri Olsa Cc: Andi Kleen Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438677022-34296-2-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 4 +++- tools/perf/util/evsel.c | 14 +++++++++++--- tools/perf/util/evsel.h | 2 ++ tools/perf/util/parse-events.c | 12 ++++++++++++ tools/perf/util/parse-events.h | 1 + tools/perf/util/parse-events.l | 1 + tools/perf/util/pmu.c | 2 +- 7 files changed, 31 insertions(+), 5 deletions(-) commit 34221118cb13f8b37480bce7286a1b44e90773d8 Author: Arnaldo Carvalho de Melo Date: Tue Aug 4 23:31:25 2015 -0300 perf trace: Use vfs_getname syscall arg beautifier in more syscalls Those were covered and tested in this cset: access, chdir, chmod, chown, chroot, creat, getxattr, inotify_add_watch, lchown, lgetxattr, listxattr, lsetxattr, mkdir, mkdirat, mknod, rmdir, faccessat, newfstatat, openat, readlink, readlinkat, removexattr, setxattr, statfs, swapon, swapoff, truncate, unlinkat, utime, utimes, utimensat. E.g.: # trace -e statfs,access,mkdir mkdir /tmp/bla 0.285 (0.020 ms): mkdir/2799 access(filename: /etc/ld.so.preload, mode: R ) = -1 ENOENT No such file or directory 1.070 (0.032 ms): mkdir/2799 statfs(pathname: /sys/fs/selinux, buf: 0x7ffeafbdc930) = 0 1.087 (0.013 ms): mkdir/2799 statfs(pathname: /sys/fs/selinux, buf: 0x7ffeafbdc820) = 0 1.189 (0.014 ms): mkdir/2799 access(filename: /etc/selinux/config ) = 0 1.905 (0.610 ms): mkdir/2799 mkdir(pathname: /tmp/bla, mode: 511 ) = 0 # Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-wbqtnlktquun3wtpjdz3okul@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo and an empty message aborts the commit. tools/perf/builtin-trace.c | 74 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 65 insertions(+), 9 deletions(-) commit 39aa437e18cac7acae55481ed73feea0de497399 Merge: e8d36d5 f4acd12 Author: Olof Johansson Date: Wed Aug 5 17:24:11 2015 +0200 Merge branch 'queue/irq/arm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next/cleanup Merge "ARM: Interrupt cleanups and API change preparation" from Thomas Gleixner: The following patch series contains the following changes: - Consolidation of chained interrupt handler setup/removal - Switch to functions which avoid a redundant interrupt descriptor lookup - Preparation of interrupt flow handlers for the 'irq' argument removal * 'queue/irq/arm' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: ARM/orion/gpio: Prepare gpio_irq_handler for irq argument removal ARM/pxa: Prepare balloon3_irq_handler for irq argument removal ARM/pxa: Prepare *_irq_handler for irq argument removal ARM/dove: Prepare pmu_irq_handler for irq argument removal ARM/sa1111: Prepare sa1111_irq_handler for irq argument removal ARM/locomo: Prepare locomo_handler for irq argument removal ARM, irq: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc ARM/LPC32xx: Use irq_set_handler_locked() ARM/irq: Use access helper irq_data_get_affinity_mask() ARM/locomo: Consolidate chained IRQ handler install/remove ARM/orion: Consolidate chained IRQ handler install/remove Signed-off-by: Olof Johansson commit ae9d2fb482fa48f637b6705e6fef6f7f999ec779 Author: Paul Moore Date: Wed Aug 5 11:19:45 2015 -0400 audit: fix uninitialized variable in audit_add_rule() As reported by the 0-Day testing service: kernel/auditfilter.c: In function 'audit_rule_change': >> kernel/auditfilter.c:864:6: warning: 'err' may be used uninit... int err; Cc: Richard Guy Briggs Signed-off-by: Paul Moore kernel/auditfilter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e90c2d2850d9d034e814a328725a4b15878f0357 Author: Chao Yu Date: Tue Jul 28 18:36:47 2015 +0800 f2fs: invalidate temporary meta page To avoid meeting garbage data in next free node block at the end of warm node chain when doing recovery, we will try to zero out that invalid block. If the device is not support discard, our way for zeroing out block is: grabbing a temporary zeroed page in meta inode, then, issue write request with this page. But, we forget to release that temporary page, so our memory usage will increase without gaining any hit ratio benefit, so it's better to free it for saving memory. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 13 ++++++++++++- fs/f2fs/f2fs.h | 2 +- fs/f2fs/recovery.c | 11 ++++++++++- fs/f2fs/segment.c | 9 ++++++--- 4 files changed, 29 insertions(+), 6 deletions(-) commit 470f00e9686f0b338a457568229fe7b7d44b8e6a Author: Chao Yu Date: Tue Jul 14 18:14:06 2015 +0800 f2fs: fix to release inode page correctly In following call path, we will pass a locked and referenced ipage pointer to get_new_data_page: - init_inode_metadata - make_empty_dir - get_new_data_page There are two exit paths in get_new_data_page when error occurs: 1) grab_cache_page fails, ipage will not be released; 2) f2fs_reserve_block fails, ipage will be released in callee. So, it's not consistent for error handling in get_new_data_page. For f2fs_reserve_block, it's not very easy to change the rule of error handling, since it's already complicated. Here we deside to choose an easy way to fix this issue: If any error occur in get_new_data_page, we will ensure releasing ipage in this function. The same issue is in f2fs_convert_inline_dir, fix that too. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 11 +++++++++-- fs/f2fs/inline.c | 13 ++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) commit 7a04f64d4d5367ade827d75388d66054b535e201 Author: Liu Xue Date: Mon Jul 27 10:17:59 2015 +0000 f2fs: unify f2fs_bug_on when check blocks and segment Replace BUG_ON with f2fs_bug_on to deal with block and segment validity check failed. Signed-off-by: Xue Liu Signed-off-by: Jaegeuk Kim fs/f2fs/segment.h | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) commit f3f338caad3428fbc4bb563828efc6ecce4d956b Author: Chao Yu Date: Wed Jul 29 17:33:13 2015 +0800 f2fs: freeze filesystem when fail to update meta page due to IO error In get_meta_page, we guarantee no failure for the returned page, but sometimes, IO error from device will incur returning an non-updated page. Then, we still use this page as updated one, exception could happen when using this kind of page. So in this condition, we'd better freeze fs by making fs readonly and and stop doing checkpoint. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5768dcdd7f7675f9540e648428c8a1cd7208a0fe Author: Fan Li Date: Tue Aug 4 13:27:51 2015 +0800 f2fs: change the timing of f2fs_wait_on_page_writeback some backing devices need pages to be stable during writeback. It doesn't matter if the page is completely overwritten or already uptodate, it needs to wait before write. Signed-off-by: Fan li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit edb27deea7cabfff8feb8c62aae647b7673be734 Author: Jaegeuk Kim Date: Sat Jul 25 00:52:52 2015 -0700 f2fs: handle error cases in commit_inmem_pages This patch adds to handle error cases in commit_inmem_pages. If an error occurs, it stops to write the pages and return the error right away. Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 7 +++++-- fs/f2fs/segment.c | 10 ++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) commit a6d494b6d84697f954aaade204e8a5843078a94f Author: Chao Yu Date: Fri Jul 24 18:26:26 2015 +0800 f2fs: fix to build free nids from readaheaded nat pages When there is no enough free nids in free nid cache, we will try to readahead FREE_NID_PAGES:4 nat pages into page cache of meta_inode, then, reading nat entries in nat page for adding free nids to free nid cache. But when traversing all nat pages we readaheaded in a circulation, our exit condition is not set right, one more nat page will be scanned without readaheading, resulting worse read performance. This patch fixes to read the correct number nat pages to avoid bad performance. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4e762723a90109c968c6c58f7d9bf4541c22928 Author: Chao Yu Date: Fri Jul 24 18:24:45 2015 +0800 f2fs: fix inline data/dentry stat number leak If we clear inline data/dentry flag in handle_failed_inode, we will fail to decline the stat count of inline data/dentry in f2fs_evict_inode due to no flag in inode. So remove the wrong clearing. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/inode.c | 2 -- 1 file changed, 2 deletions(-) commit f4c9c743acedc2f083e6a1d4e186df6a2c12b2fd Author: Chao Yu Date: Fri Jul 17 18:06:35 2015 +0800 f2fs: convert inline data before set atomic/volatile flag In f2fs_ioc_start_{atomic,volatile}_write, if we failed in converting inline data, we will report error to user, but still remain atomic/volatile flag in inode, it will impact further writes for this file. Fix it. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit a5f64b6aa69b5cc05e198291811a2f3faf95b463 Author: Chao Yu Date: Fri Jul 17 18:05:21 2015 +0800 f2fs: fix to wait all atomic written pages writeback This patch fixes the incorrect range (0, LONG_MAX) which is used in ranged fsync. If we use LONG_MAX as the parameter for indicating the end of file we want to synchronize, in 32-bits architecture machine, these datas after 4GB offset may not be persisted in storage after ->fsync returned. Here, we alter LONG_MAX to LLONG_MAX to fix this issue. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a2905443cf27f9c14889428f14fccfb98ed97f4 Author: Chao Yu Date: Fri Jul 17 18:02:39 2015 +0800 f2fs: skip writing in ->writepages when no dirty pages exist When flushing comes from background, if there is no dirty page in the mapping of inode, we'd better to skip seeking dirty page from mapping for writebacking. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 ++++ 1 file changed, 4 insertions(+) commit 737f18992ee81cab897336e84c5c7f4e179dfd61 Author: Tiezhu Yang Date: Fri Jul 17 12:56:00 2015 +0800 f2fs: optimize f2fs_write_cache_pages The if statement "goto continue_unlock" is exactly the same when each if condition is true that is depended on the value of both "step" and "is_cold_data(page)" are 0 or 1. That means when the value of "step" equals to "is_cold_data(page)", the if condition is true and the if statement "goto continue_unlock" appears only once, so it can be optimized to reduce the duplicated code. Signed-off-by: Tiezhu Yang Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 55f57d2c4259a9a4048cf4629a2c6ba53729188d Author: Chao Yu Date: Thu Jul 16 18:19:02 2015 +0800 f2fs: fix double lock in handle_failed_inode In handle_failed_inode, there is a potential deadlock which can happen in below call path: - f2fs_create - f2fs_lock_op down_read(cp_rwsem) - f2fs_add_link - __f2fs_add_link - init_inode_metadata - f2fs_init_security failed - truncate_blocks failed - handle_failed_inode - f2fs_truncate - truncate_blocks(..,true) - write_checkpoint - block_operations - f2fs_lock_all down_write(cp_rwsem) - f2fs_lock_op down_read(cp_rwsem) So in this path, we pass parameter to f2fs_truncate to make sure cp_rwsem in truncate_blocks will not be locked again. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 2 +- fs/f2fs/file.c | 6 +++--- fs/f2fs/inode.c | 4 ++-- fs/f2fs/super.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit ecbaa4068f88f96a8ffde37d532e618508394b53 Author: Chao Yu Date: Thu Jul 16 18:18:11 2015 +0800 f2fs: reduce region of cp_rwsem covered in f2fs_do_collapse In f2fs_do_collapse, region cp_rwsem covered is large, since it will be held until all blocks are left shifted, so if we try to collapse small area at the beginning of large file, checkpoint who want to grab writer's lock of cp_rwsem will be delayed for long time. In order to avoid this condition, altering to lock/unlock cp_rwsem each shift operation. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 0f825ee6e873ac0daf5394c5ec76ca2f3d540370 Author: Fan Li Date: Wed Jul 15 18:05:17 2015 +0800 f2fs: add new interfaces for extent tree Add a lookup and a insertion interface for extent tree. The new lookup return the insert position and the prev/next extents closest to the offset we lookup when find no match. The new insertion uses above parameters to improve performance. There are three possible insertions after the lookup in f2fs_update_extent_tree, two of them insert parts of removed extent back to tree, since no merge happens during this process, new insertion skips the merge check in this scanario; the another insertion inserts a new extent to tree, new insertion uses prev/next extent and insert position to insert this extent directly, and save the time of searching down the tree. As long as tree remains unchanged between lookup and insertion, this would work fine. And the new lookup would be useful when add multi-blocks extent support for insertion interface. Signed-off-by: Fan li Signed-off-by: Jaegeuk Kim fs/f2fs/extent_cache.c | 139 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 132 insertions(+), 7 deletions(-) commit 86531d6b84bc096d5d9dbc23333df0ab8d347763 Author: Jaegeuk Kim Date: Wed Jul 15 13:08:21 2015 -0700 f2fs: callers take care of the page from bio error This patch changes for a caller to handle the page after its bio gets an error. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 4 +++- fs/f2fs/data.c | 27 +++++++++++++-------------- fs/f2fs/node.c | 21 ++++++++++----------- 3 files changed, 26 insertions(+), 26 deletions(-) commit 727edac572034557d207b293a47de25145e3d58c Author: Chao Yu Date: Wed Jul 15 17:29:49 2015 +0800 f2fs: use atomic_t to record hit ratio info of extent cache Variables for recording extent cache ratio info were updated without protection, this patch tries to alter them to atomic_t type for more accurate stat. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 7 +++++-- fs/f2fs/extent_cache.c | 6 +++--- fs/f2fs/f2fs.h | 7 ++++--- 3 files changed, 12 insertions(+), 8 deletions(-) commit d5e8f6c9800c382cc55d8df801775d51311f8f21 Author: Chao Yu Date: Wed Jul 15 17:28:53 2015 +0800 f2fs: stat inline xattr inode number This patch adds to stat the number of inline xattr inode for showing in debugfs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/debug.c | 4 ++++ fs/f2fs/f2fs.h | 16 +++++++++++++++- fs/f2fs/inode.c | 2 ++ fs/f2fs/namei.c | 1 + 4 files changed, 22 insertions(+), 1 deletion(-) commit 1b77c416e7dfe317277057c32baa67ea9e486ae7 Author: Jaegeuk Kim Date: Mon Jul 13 18:31:24 2015 -0700 f2fs: use a page temporarily for encrypted gced page That encrypted page is used temporarily, so we don't need to mark it accessed. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit f6af5df0c7d7b7d0a80a2f4ac4171912312b55d4 Author: Lars-Peter Clausen Date: Wed Aug 5 16:19:31 2015 +0200 ALSA: aoa-soundbus: Switch to dev_pm_ops Update the aoa-soundbus framework to use dev_pm_ops rather than the deprecated legacy suspend and resume callbacks. Since there isn't anything special to do at the bus level the bus driver does not have to implement any callbacks. The device driver core will automatically pick up and execute the device's PM ops. As there is only a single aoa-soundbus driver implementing suspend and resume, update both the core and driver at the same time to avoid unnecessary code churn. Signed-off-by: Lars-Peter Clausen Signed-off-by: Takashi Iwai sound/aoa/fabrics/layout.c | 21 ++++++++++++--------- sound/aoa/soundbus/core.c | 28 ---------------------------- sound/aoa/soundbus/soundbus.h | 2 -- 3 files changed, 12 insertions(+), 39 deletions(-) commit 2cd212427fa9cbf19c1f353d6e14b959e8f112f7 Author: Andy Sun Date: Tue Jul 28 16:38:39 2015 +0800 ARM: dts: atlas7: add a GPIO key for rearview button Touching this key will trigger a camera event for rearview. Signed-off-by: Andy Sun Signed-off-by: Barry Song arch/arm/boot/dts/atlas7-evb.dts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 627830756dcf647349c25f4212e777e2146465d4 Author: Huayi Li Date: Tue Jul 28 16:03:38 2015 +0800 ARM: dts: atlas7: put pinctl property to get pinmux for NAND Nand controller often share some pins with sd/mmc controller on atlas and prima series, nand node can be disabled if the pins are used by sd/mmc controller. Signed-off-by: Huayi Li Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 4e881aa890391140af4a03e2d116b68723efe61a Author: Yonghui Zhang Date: Tue Jul 28 15:59:41 2015 +0800 ARM: dts: atlas7: add software digital radio nodes and its DMA channels this patch adds SDR(software digital raio) nodes and the DMA channels for it. Signed-off-by: Yonghui Zhang Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) commit 5e3773b2b8c576c48aac8c2e59f88fc73803677e Author: Guo Zeng Date: Tue Jul 28 15:56:34 2015 +0800 ARM: dts: atlas7: add lost PWM node this patch adds lost PWM node, and also fixes the ranges of its parent node. Signed-off-by: Guo Zeng Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit d9615f8bf5d93afcd6cce35c81d06030a82e93ef Author: Dongli Li Date: Tue Jul 28 15:48:22 2015 +0800 ARM: dts: atlas7: add lost G2D node this patch adds lost G2D node, and also fixes the range of its parent node. Signed-off-by: Dongli Li Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit f3a19caa52ec8a5d27583a094f957d71e66b9afe Author: Xiaofeng Fei Date: Tue Jul 28 15:40:37 2015 +0800 ARM: dts: atlas7: add multimedia codec node this patch adds multimedia video codec node, and also fixes the ranges of its parent node. Signed-off-by: Xiaofeng Fei Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit d015642e124ec3a90d1699293bbd2514f9b525ea Author: Qipan Li Date: Mon Feb 9 14:29:46 2015 +0800 ARM: dts: atlas7: add alias name for spi device spi framework can use alias name of spi device to retrieve the bus id, so bus id will not be dynamical but statical and it will be easier for test for a specified spi device with a fixed name like use spidev. Signed-off-by: Qipan Li Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 153645b3e0373e276e3641e8b784f186bcc18b7e Author: Ye He Date: Tue Jul 28 15:31:34 2015 +0800 ARM: dts: atlas7: add lost gmac node this patch adds lost ethernet gmac node, and also fix the ranges of its parent node. Signed-off-by: Ye He Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit c95c621157c53f890f55983cd57c128255091f1f Author: Ye He Date: Tue Jul 28 15:26:59 2015 +0800 ARM: dts: atlas7: add performance monitor unit node Signed-off-by: Ye He Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 81a85f9ebca5713a99c827e446768b9223f63a25 Author: Lily.Li Date: Tue Jul 28 15:17:43 2015 +0800 ARM: dts: atlas7: add lost jpeg node this patch adds lost jpeg node, and also fix the ranges of its parent node. Signed-off-by: Lily.Li Signed-off-by: Barry Song arch/arm/boot/dts/atlas7.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit f994592d9386548d15cea597cde37a858b61c762 Author: Arnaldo Carvalho de Melo Date: Tue Aug 4 22:30:09 2015 -0300 perf trace: Deref sys_enter pointer args with contents from probe:vfs_getname To work like strace and dereference syscall pointer args we need to insert probes (or tracepoints) right after we copy those bytes from userspace. Since we're formatting the syscall args at raw_syscalls:sys_enter time, we need to have a formatter that just stores the position where, later, when we get the probe:vfs_getname, we can insert the pointer contents. Now, if a probe:vfs_getname with this format is in place: # perf probe -l probe:vfs_getname (on getname_flags:72@/home/git/linux/fs/namei.c with pathname) That was, in this case, put in place with: # perf probe 'vfs_getname=getname_flags:72 pathname=filename:string' Added new event: probe:vfs_getname (on getname_flags:72 with pathname=filename:string) You can now use it in all perf tools, such as: perf record -e probe:vfs_getname -aR sleep 1 # Then 'perf trace' will notice that and do the pointer -> contents expansion: # trace -e open touch /tmp/bla 0.165 (0.010 ms): touch/17752 open(filename: /etc/ld.so.cache, flags: CLOEXEC) = 3 0.195 (0.011 ms): touch/17752 open(filename: /lib64/libc.so.6, flags: CLOEXEC) = 3 0.512 (0.012 ms): touch/17752 open(filename: /usr/lib/locale/locale-archive, flags: CLOEXEC) = 3 0.582 (0.012 ms): touch/17752 open(filename: /tmp/bla, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: 438) = 3 # Roughly equivalent to strace's output: # strace -rT -e open touch /tmp/bla 0.000000 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 <0.000039> 0.000317 open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 <0.000102> 0.001461 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 <0.000072> 0.000405 open("/tmp/bla", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3 <0.000055> 0.000641 +++ exited with 0 +++ # Now we need to either look for at all syscalls that are marked as pointers and have some well known names ("filename", "pathname", etc) and set the arg formatter to the one used for the "open" syscall in this patch. This implementation works for syscalls with just a string being copied from userspace, for matching syscalls with more than one string being copied via the same probe/trace point (vfs_getname) we need to extend the vfs_getname probe spec to include the pointer too, but there are some problems with that in 'perf probe' or the kernel kprobes code, need to investigate before considering supporting multiple strings per syscall. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-xvuwx6nuj8cf389kf9s2ue2s@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 76 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) commit e4d44e830a4bbeb0cf6fdd24c24794a2e599e26d Author: Arnaldo Carvalho de Melo Date: Tue Aug 4 22:17:29 2015 -0300 perf trace: Use a constant for the syscall formatting buffer We were using it as a magic number, 1024, fix that. Eventually we need to stop doing it per line, and do it per arg, traversing the args at output time, to avoid the memmove() calls that will be used in the next cset to replace pointers present at raw_syscalls:sys_enter time with its contents that appear at probe:vfs_getname time, before raw_syscalls:sys_exit time. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-4sz3wid39egay1pp8qmbur4u@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 08c987763ad3bc1aef133bcac073198ff86efa85 Author: Arnaldo Carvalho de Melo Date: Tue Aug 4 17:01:04 2015 -0300 perf trace: Remember if the vfs_getname tracepoint/kprobe is in place So that we can later decide if we will store where to expand the pathname once we are handling vfs_getname or if we should instead just go on and straight away print the pointer. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-ytxk5s5jpc50wahffmlxgxuw@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 2e5e5f876143b147b98d0c0854b5fc577412b05b Author: Arnaldo Carvalho de Melo Date: Mon Aug 3 17:12:29 2015 -0300 perf trace: Do not show syscall tracepoint filter in the --no-syscalls case We were accessing trace->syscalls.events members even when that struct wasn't initialized, i.e. --no-syscalls was specified on the command line, fix it to show that, still in debug mode, when we have an event qualifier list, i.e. when we actually are doing subset syscall tracing. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Fixes: 19867b6186f3 ("perf trace: Use event filters for the event qualifier list") Link: http://lkml.kernel.org/n/tip-7980ym6vujgh3yiai0cqzc88@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d422e62562e0dcef0ace4cd4fc4b4519d0a55ab4 Merge: 8ec4198 514f161 Author: Will Deacon Date: Wed Aug 5 14:14:06 2015 +0100 Merge branch 'aarch64/psci/drivers' into aarch64/for-next/core Move our PSCI implementation out into drivers/firmware/ where it can be shared with arch/arm/. Conflicts: arch/arm64/kernel/psci.c commit 8833c01af6aa8e42fcbc74d76646ead05d0183a7 Author: Vaishali Thakkar Date: Mon Aug 3 17:27:34 2015 +0530 ASoC: tegra: Use devm_clk_get This patch introduces the use of managed resource function devm_clk_get instead of clk_get and removes corresponding calls to clk_put in the probe and remove functions. To be compatible with the change various gotos are replaced with direct returns, and unneeded labels are dropped. Signed-off-by: Vaishali Thakkar Signed-off-by: Mark Brown sound/soc/tegra/tegra30_ahub.c | 49 ++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 33 deletions(-) commit 709bc0657fe6f9f55fdaab246135ff73ba7796e4 Author: Fugang Duan Date: Tue Jul 28 15:30:40 2015 +0800 ARM: imx6ul: add fec MAC refrence clock and phy fixup init Add FEC MAC refrence clock init. Add phy fixup init for i.MX6ul 14x14 evk board that installs KSZ8081 phy. For the phy, there needs extra phy fixup for MII and RMII mode. Signed-off-by: Fugang Duan Signed-off-by: Shawn Guo arch/arm/mach-imx/mach-imx6ul.c | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit 9f55eb92441883a1afca48dc8d32bf62c4d8e833 Author: Fugang Duan Date: Tue Jul 28 15:30:39 2015 +0800 ARM: imx6ul: add fec bits to GPR syscon definition FEC requires additional bits to select refrence clock. Signed-off-by: Fugang Duan Signed-off-by: Shawn Guo include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 233ce79db4b23a174bcf30bde5d6ad913d5f46d3 Author: David Howells Date: Wed Aug 5 12:54:46 2015 +0100 ASN.1: Handle 'ANY OPTIONAL' in grammar An ANY object in an ASN.1 grammar that is marked OPTIONAL should be skipped if there is no more data to be had. This can be tested by editing X.509 certificates or PKCS#7 messages to remove the NULL from subobjects that look like the following: SEQUENCE { OBJECT(2a864886f70d01010b); NULL(); } This is an algorithm identifier plus an optional parameter. The modified DER can be passed to one of: keyctl padd asymmetric "" @s Tested-by: Marcel Holtmann Reviewed-by: David Woodhouse include/linux/asn1_ber_bytecode.h | 17 +++++++++++------ lib/asn1_decoder.c | 8 ++++++++ scripts/asn1_compiler.c | 3 ++- 3 files changed, 21 insertions(+), 7 deletions(-) commit b970499878563437a43eab2dd2faa9217142fb98 Author: Axel Lin Date: Sat Aug 1 10:04:52 2015 +0800 ASoC: wm8753: Drop wm8753_writeable function When .max_register is set and .writeable_reg is not implement, registers between 0 and .max_register are writeable. This is the same as current implementation of wm8753_writeable(), so just drop implementation for .writeable_reg callback. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/wm8753.c | 6 ------ 1 file changed, 6 deletions(-) commit f611cdd8eb33ac6ca1196319b27b7f7f24ef98a9 Author: Axel Lin Date: Sat Aug 1 10:03:42 2015 +0800 ASoC: wm8731: Drop wm8731_writeable function When .max_register is set and .writeable_reg is not implement, registers between 0 and .max_register are writeable. This is the same as current implementation of wm8731_writeable(), so just drop implementation for .writeable_reg callback. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/wm8731.c | 6 ------ 1 file changed, 6 deletions(-) commit 6f55a041378f8688ab4afd2702416cd5318fa73d Author: Axel Lin Date: Thu Jul 30 10:24:03 2015 +0800 ASoC: wm8741: Simplify wm8741_set_dai_sysclk implementation Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/wm8741.c | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) commit 2e45a25f9cb6546d8b3c20d9461e21f8c0a75a8a Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:10 2015 +0200 ASoC: wm_hubs: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm_hubs.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 5092e76b8ab406af56b6a24629a7daf30ea94f78 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:09 2015 +0200 ASoC: wm9713: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm9713.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 0894e2b3cddaf00a52302d0eb83edb717c6fb913 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:08 2015 +0200 ASoC: wm9090: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm9090.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 5d9a5e609bd026294c0d5c02372303cb969c9d98 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:07 2015 +0200 ASoC: wm9081: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm9081.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f1022087d372b02c8ffe5e1e084a3de763bea16b Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:06 2015 +0200 ASoC: wm8993: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8993.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 00769dbe3982c76dd68dac1d3f54328fa935bd21 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:05 2015 +0200 ASoC: wm8991: Don't use range container for TLVs with one entry For TLVs with only a single entry it is not necessary to use a range container. Use DECLARE_TLV_DB_LINEAR() directly instead of a combination of TLV_DB_RANGE_HEAD() and TLV_DB_LINEAR_ITEM(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8991.c | 52 ++++++++--------------------------------------- 1 file changed, 9 insertions(+), 43 deletions(-) commit dfd0edda1fb3cd7a7cdde56467d718b1e49e32d5 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:04 2015 +0200 ASoC: wm8990: Don't use range container for TLV with one entry For TLVs with only a single entry it is not necessary to use a range container. Use DECLARE_TLV_DB_SCALE() directly instead of a combination of TLV_DB_RANGE_HEAD() and TLV_DB_SCALE_ITEM(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8990.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit fcbb71e9ccac59940b619bdd5a51c96495dd4731 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:03 2015 +0200 ASoC: wm8962: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8962.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 5d272d89339a4f8c1905d5bdf5851346582b78f2 Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:02 2015 +0200 ASoC: wm8961: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8961.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 11c3727c4e625c248ff3b546290aade1399affec Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:01 2015 +0200 ASoC: wm8753: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8753.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 7d711f63e36737968dcda5ce28fed3fb3e12fbdc Author: Lars-Peter Clausen Date: Sun Aug 2 17:20:00 2015 +0200 ASoC: wm8737: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8737.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 0b65e6c7e22c93139b2b4efdd7ba6bd7bfa27fa7 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:59 2015 +0200 ASoC: wm8400: Don't use range container for TLV with one entry For TLVs with only a single entry it is not necessary to use a range container. Use DECLARE_TLV_DB_SCALE() directly instead of a combination of TLV_DB_RANGE_HEAD() and TLV_DB_SCALE_ITEM(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8400.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit d3d383ba8b49fbb2024851442e09a104b1f030fe Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:58 2015 +0200 ASoC: wm8350: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/wm8350.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 5ee0b8f8296f237604f0ff72f03e7836f5e164b4 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:57 2015 +0200 ASoC: uda1380: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda1380.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 2524911e300771954698f384bd7f44543b2af2de Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:56 2015 +0200 ASoC: twl4030: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/twl4030.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 4e0e5f8084cf9766ea70234f90271e03fd8aa56d Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:55 2015 +0200 ASoC: tpa6130a2: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown sound/soc/codecs/tpa6130a2.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit f9d54802b6339cc3d4bdf30ca3648790064462d2 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:54 2015 +0200 ASoC: ssm2602: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm2602.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 53eb1ca3caab417f1f686627bbf6bfa7d54cb5a8 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:53 2015 +0200 ASoC: sgtl5000: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/sgtl5000.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 53f28609b0091c1e450105aaef924320aa748082 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:52 2015 +0200 ASoC: rt5677: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit dea6d32e9efea0a75b5fb367fd53fa0562154852 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:51 2015 +0200 ASoC: rt5670: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5670.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 8e3648e10fd832e4e07bc3c0cf0e37f95de60082 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:50 2015 +0200 ASoC: rt5651: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5651.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6d698a83fa768be38780d54fc6c244c99cf7684d Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:49 2015 +0200 ASoC: rt5645: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 8295822dac5d78e62beb6a13bbb2d82e36ba763c Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:48 2015 +0200 ASoC: rt5640: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5640.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 7f708abeac7d12f00b200848aa0cafe589ea8454 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:47 2015 +0200 ASoC: rt5631: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5631.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit d6e3bb7aca7fbd092f1a19991526c095e59f8531 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:46 2015 +0200 ASoC: max9877: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9877.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit e0340985999fbee1a51bd4653d90ca19a8a7acdc Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:45 2015 +0200 ASoC: max9850: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9850.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 54c2011f5a7c31ec4e2ddb8694b559e29673941e Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:44 2015 +0200 ASoC: max98095: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) commit 8896bc3e089b39d077c7afbf785166aac28e5151 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:43 2015 +0200 ASoC: max98090: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) commit 80170468deec8fe851957d1e1cc3cf680ae46804 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:42 2015 +0200 ASoC: max98088: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98088.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) commit 44744eeccff7de65f98f2d5db804adc51bfd3333 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:41 2015 +0200 ASoC: max9768: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9768.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 4689ac530efa8dadfb3ef8a284f9b2b14b75ad5f Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:40 2015 +0200 ASoC: jz4740: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/jz4740.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit e27c8404a4745b3efeec1457e6b72f448ab4a785 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:39 2015 +0200 ASoC: da9055: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/da9055.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 32e933be3f221723ace230fe1293eb3b3b3466ff Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:38 2015 +0200 ASoC: da7213: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7213.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 6c1e1bfe22d6dc45384acebe0722d35e89011cc2 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:37 2015 +0200 ASoC: da7210: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da7210.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit 0c8129152cb849183a204fe0ce95673e4c88d2f6 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:36 2015 +0200 ASoC: cs42l73: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l73.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 37879bafc2e0932279ad440d5a81c323e0c5c58c Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:35 2015 +0200 ASoC: cs42l56: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l56.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 0a017768e8964ab4a6a68ad47a042d28b35695fb Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:34 2015 +0200 ASoC: cs42l52: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l52.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit ec7e4dc85cd7a2498d6ab71e9f77f49b41729fb4 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:33 2015 +0200 ASoC: alc5632: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/alc5632.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c8aeb0f60f648fbb77c1d5b3edda86e08bf53b30 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:32 2015 +0200 ASoC: alc5623: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/alc5623.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 31581f3c09e796d5faac183eadfe06dca2223a5e Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:31 2015 +0200 ASoC: adau1373: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/adau1373.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) commit 69dae09f2da83c96de6c8573061bd38e9989e873 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:30 2015 +0200 ASoC: ab8500: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ab8500-codec.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit f17cbcfef3cf6d91a374817f84c66951c84f11e2 Author: Lars-Peter Clausen Date: Sun Aug 2 17:19:29 2015 +0200 ASoC: 88pm860x: Replace TLV_DB_RANGE_HEAD with DECLARE_TLV_DB_RANGE DECLARE_TLV_DB_RANGE() has the advantage over using TLV_DB_RANGE_HEAD() that it automatically calculates the number of items in the TLV and is hence less prone to manual error. Generate using the following coccinelle script // @@ declarer name DECLARE_TLV_DB_RANGE; identifier tlv; constant x; @@ -unsigned int tlv[] = { - TLV_DB_RANGE_HEAD(x), +DECLARE_TLV_DB_RANGE(tlv, ... -}; +); // Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/88pm860x-codec.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) commit cec13c26e90e53015360c09574a7a2cde8d29495 Author: Philippe Reynes Date: Sun Jul 26 23:37:52 2015 +0200 rtc: mxc: add support of device tree Add device tree support for the mxc rtc driver. Acked-by: Alexandre Belloni Signed-off-by: Philippe Reynes Signed-off-by: Shawn Guo drivers/rtc/rtc-mxc.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) commit 61186371570e3ca62585e29e307f7a9c42ab789a Author: Philippe Reynes Date: Sun Jul 26 23:37:51 2015 +0200 dt-binding: document the binding for mxc rtc This adds documentation of device tree bindings for the mxc rtc. Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Signed-off-by: Philippe Reynes Signed-off-by: Shawn Guo Documentation/devicetree/bindings/rtc/rtc-mxc.txt | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit 8f5fe77828e16ef6fd8e4931ab177b41449ce8fc Author: Philippe Reynes Date: Sun Jul 26 23:37:50 2015 +0200 rtc: mxc: use a second rtc clock The mxc RTC needs two clocks, one for the input reference, and one for the IP. But this driver was only using one clock (for the reference). This patch add the second clock (for the IP). Acked-by: Alexandre Belloni Signed-off-by: Philippe Reynes Signed-off-by: Shawn Guo drivers/rtc/rtc-mxc.c | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) commit 3713e3f5e9274bbe52e94716bde303071364c1ed Author: Philippe Reynes Date: Sun Jul 26 23:37:49 2015 +0200 clk: imx35: define two clocks for rtc The imx35 don't define clocks for rtc. This patch add two clocks, as needed by the mxc rtc driver. Signed-off-by: Philippe Reynes Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx35.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 00a48fe341ed497be64df2c6875af0da45d6ae90 Author: Philippe Reynes Date: Sun Jul 26 23:37:48 2015 +0200 clk: imx31: add a second rtc clock The mxc rtc driver needs two clock. It was defined only one clock, so we define the second clock. Signed-off-by: Philippe Reynes Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx31.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6a5278ee34e7fd4b051fd107a94a099778458d8c Author: Thomas Hellstrom Date: Tue Aug 4 15:37:16 2015 +0200 drm/vmwgfx: Fix an uninitialized value Reported by Intel's kbuild robot. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh Reviewed-by: Brian Paul drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e3cc8cff629c9697ac27c95a89dda7c7785b6b4 Author: Thomas Hellstrom Date: Tue Aug 4 15:34:14 2015 +0200 drm/vmwgfx: Fix compiler warning with 32-bit dma_addr_t When the size of dma_addr_t was 32 bits, the compiler warned about the size of the 32 bit shift being larger than the size of the data type. Reported by Intel's kbuild robot. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh Reviewed-by: Brian Paul drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit b9eb1a6174e58eb8beea664ffc20d152230d8004 Author: Thomas Hellstrom Date: Thu Apr 2 02:39:45 2015 -0700 drm/vmwgfx: Kill a bunch of sparse warnings We're giving up all attempts to keep cpu- and device byte ordering separate. This silences sparse when compiled using make C=2 CF="-D__CHECK_ENDIAN__" Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/svga3d_reg.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 8 +++---- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 12 +++++------ drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 6 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 18 ++++++++-------- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 8 +++---- drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 37 ++++++++++++++++---------------- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 8 +++---- drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 32 +++++++++++++-------------- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 10 ++++----- drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 14 ++++++------ drivers/gpu/drm/vmwgfx/vmwgfx_reg.h | 6 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 17 ++++++--------- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 10 ++++----- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 4 ++-- 20 files changed, 103 insertions(+), 107 deletions(-) commit f6b05004538ab0933c7527f10a2a6ed88c620f99 Author: Thomas Hellstrom Date: Mon Jun 29 12:59:58 2015 -0700 drm/vmwgfx: Fix kms preferred mode sorting The preferred mode typically didn't end up first, since the function drm_mode_connector_list_update() reordered the modes. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 352b20dc51488b264abe6b9755395c63c90e807b Author: Thomas Hellstrom Date: Mon Jun 29 12:57:37 2015 -0700 drm/vmwgfx: Reinstate the legacy display system dirty callback It somehow got lost in a rewrite. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit a278724aa23c544c2087cb7537db6b950877c291 Author: Thomas Hellstrom Date: Mon Jun 29 12:55:07 2015 -0700 drm/vmwgfx: Implement fbdev on kms v2 With screen targets the old legacy display system fbdev doesn't work satisfactory anymore. At best the resolution is severely restricted. Therefore implement fbdev on top of the kms system. With this change, fbdev will be using whatever KMS backend is chosen. There are helpers available for this, so in the future we'd probably want to implement the helper callbacks instead of calling into our KMS implementation directly. v2: Make sure we take the mode_config mutex around modesetting, Also clear the initial framebuffer using vzalloc instead of vmalloc. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 22 +- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 555 +++++++++++++++++++++++------------ drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 63 +++- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 8 + drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 1 - drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 1 - 6 files changed, 436 insertions(+), 214 deletions(-) commit fd006a43a8c4c9356ace60eacd8ae68954fa25e0 Author: Thomas Hellstrom Date: Sun Jun 28 02:50:56 2015 -0700 drm/vmwgfx: Add a kernel interface to create a framebuffer v2 The kernel interface is needed for fbdev, and needs to be free from a file_priv member. To accomplish this, remove the fb surface mutex and list which isn't used anymore, anyway. Finally, make the pin() and unpin() pin the framebuffer for all display system backends, so that fbdev can pin its framebuffer before mapping it. v2: Address review comments: - Fix vmw_framebuffer_unpin() to handle also the surface framebuffer case. - Fix vmw_kms_new_framebuffer() to actually use the only_2d parameter. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 2 - drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 2 - drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 162 +++++++++++++++++++++--------------- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 8 +- 4 files changed, 102 insertions(+), 72 deletions(-) commit 9b590783b3d6d2e06516788d1061176109677409 Author: Thomas Hellstrom Date: Fri Jun 26 04:46:52 2015 -0700 drm/vmwgfx: Avoid cmdbuf alloc sleeping if !TASK_RUNNING If the command buffer pool is out of space, the code waits until space is available. However since the condition code tries to allocate a range manager node while !TASK_RUNNING we get a kernel warning. Avoid this by pre-allocating the mm node. This will also probably be more efficient. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 83 ++++++++++++++-------------------- 1 file changed, 34 insertions(+), 49 deletions(-) commit 6bf6bf03b37b5ba0f3399fa9bb3d62edfa117c87 Author: Thomas Hellstrom Date: Fri Jun 26 02:22:40 2015 -0700 drm/vmwgfx: Convert screen targets to new helpers v3 Also implements the missing readback function and fixes page flip in case of no event. v2: - Adapt to the work done for screen targets for 2d, in particular Handle proxy surface updates. - Remove execbuf quirks since we now use fifo reserve / commit. - Revert the initial placement of vmw dma buffers. v3: Address review comments. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 5 - drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 24 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 149 ++++- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 37 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 996 ++++++++++++------------------- 6 files changed, 534 insertions(+), 679 deletions(-) commit 10b1e0ca9c32deb3a9b0ecc93fc4920fc24b4a57 Author: Thomas Hellstrom Date: Fri Jun 26 02:14:27 2015 -0700 drm/vmwgfx: Convert screen objects to the new helpers This makes it possible to use the same function for surface dirty and present. Also fixes page flip without events. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 6 - drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 319 +++-------------- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 33 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 642 +++++++++++++++++++++-------------- 4 files changed, 444 insertions(+), 556 deletions(-) commit 1a4b172ac96edd7f571772e83c09c5a18718a4fa Author: Thomas Hellstrom Date: Fri Jun 26 02:03:53 2015 -0700 drm/vmwgfx: Add kms helpers for dirty- and readback functions We need to make the dirty- and readback functions callable without a struct drm_file pointer. We also need to unify the handling of dirty- and readback cliprects that are now implemented in various places across the kms system, som add helpers to facilitate this. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 10 +- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 19 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 292 +++++++++++++++++++++++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 71 +++++++- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 18 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +- 6 files changed, 391 insertions(+), 21 deletions(-) commit 459d0fa7359654e5e076e84fc58512f00f70fee9 Author: Thomas Hellstrom Date: Fri Jun 26 00:25:37 2015 -0700 drm/vmwgfx: Introduce a pin count to allow for recursive pinning v2 v2: Fix dma buffer validation on resource pinning. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 182 ++++++++++++++----------------- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 31 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 33 +++--- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 81 +++++++------- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 36 +++--- 9 files changed, 179 insertions(+), 196 deletions(-) commit f89c6c321c4a7c0188922f331b70d83af01ab53e Author: Sinclair Yeh Date: Fri Jun 26 01:54:28 2015 -0700 drm/vmwgfx: Replace SurfaceDMA usage with SurfaceCopy in 2D VMs This patch address the following underlying issues with SurfaceDMA * SurfaceDMA command does not work in a 2D VM, but we can wrap a proxy surface around the same DMA buffer and use the SurfaceCopy command which does work in a 2D VM. * Wrapping a DMA buffer with a proxy surface also gives us an added optimization path for the case when the DMA buf dimensions match the mode. In this case, the DMA buf can be pinned as the display surface, saving an extra copy. This only works in a 2D VM because we won't be doing any rendering operations directly to the display surface. v2 * Moved is_dmabuf_proxy field to vmw_framebuffer_surface * Undone coding style changes * Addressed other issues from review Signed-off-by: Sinclair Yeh Reviewed-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 20 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 107 ++++++++++++++++++-- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 165 +++++++++++++++++++++++++++---- 7 files changed, 266 insertions(+), 35 deletions(-) commit 35c051258e8fd7cb97222f4aa887bcd404c156d0 Author: Sinclair Yeh Date: Fri Jun 26 01:42:06 2015 -0700 drm/vmwgfx: Implement screen targets Add support for the screen target device interface. Add a getparam parameter and bump minor to signal availability. Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/Makefile | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 24 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 15 +- drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 4 + drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 62 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 20 + drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 1364 +++++++++++++++++++++++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 4 + include/uapi/drm/vmwgfx_drm.h | 1 + 10 files changed, 1475 insertions(+), 24 deletions(-) commit c9146cd918852ba6ec1af3bb376ac88edc15e3d9 Author: Thomas Hellstrom Date: Mon Mar 2 23:45:04 2015 -0800 drm/vmwgfx: Add "quirk" to handling command verification exceptions For certain surface copies, we don't have a user space handle for the destination surface. In such cases, we are going to trust that our caller is giving us the right surface ID. To do this case, we created a quirk flag that may be useful in the future for handling other cases. Signed-off-by: Thomas Hellstrom Signed-off-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 4 ++++ drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 10 ++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 6 +++--- 4 files changed, 19 insertions(+), 5 deletions(-) commit c8261a961ece4206bd60708eafa24ab81347f87c Author: Sinclair Yeh Date: Fri Jun 26 01:23:42 2015 -0700 vmwgfx: Major KMS refactoring / cleanup in preparation of screen targets Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 22 +- drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 562 +++++--------------------------- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 80 +++-- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 45 ++- drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 6 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 424 ++++++++++++++++++++++-- 7 files changed, 597 insertions(+), 546 deletions(-) commit 233826a74881e38aca20ced22842322269877612 Author: Sinclair Yeh Date: Thu Mar 5 01:06:13 2015 -0800 drm/vmwgfx: Refactor vmw_gb_surface_define_ioctl() Refactored vmw_gb_surface_define_ioctl() and made the surface definition part a separate function. This way other parts of vmwgfx can use it to allocate kernel-visible GB surfaces. Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 9 ++ drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 195 ++++++++++++++++++++++---------- 2 files changed, 143 insertions(+), 61 deletions(-) commit 7b64115fc79c766ba2f89ec822427d720f395f3f Author: Sinclair Yeh Date: Fri Feb 27 04:44:24 2015 -0800 drm/vmwgfx: SVGA device definition update Update device definition headers to support screen targets. Signed-off-by: Sinclair Yeh Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/svga3d_reg.h | 56 ++++++++++++++++++++++-- drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h | 67 +++++++++++++++++++++++++++-- 2 files changed, 117 insertions(+), 6 deletions(-) commit ed93394c14ba50e3e53ef289116625f0f05f8616 Author: Thomas Hellstrom Date: Mon Mar 2 23:26:06 2015 -0800 drm/vmwgfx: Add an interface to pin a resource v3 For screen targets it appears we need to pin surfaces while they are bound as screen targets, so add a small interface to do that. v2: Always increase pin_count on pin. v3: Add missing reservation sem. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 4 ++ drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 91 +++++++++++++++++++++++++++++++- 2 files changed, 94 insertions(+), 1 deletion(-) commit ee511a835a681ee147666a0c85b96f8a43aae2d5 Author: Thomas Hellstrom Date: Thu Jun 25 12:00:39 2015 -0700 drm/vmwgfx: Fix an overlay lockdep error Fix a circular locking dependency between struct vmw_overlay::mutex and struct vmw_private::reservation_sem Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 3eab3d9eef65041952fd7b15a2eba13cb308968d Author: Thomas Hellstrom Date: Thu Jun 25 11:57:56 2015 -0700 drm/vmwgfx: Add command buffer support v3 Add command buffer support. Currently we don't implement preemption or fancy error handling. Tested with a couple of mesa-demos, compiz/unity and viewperf maya-03. v2: - Synchronize with pending work at command buffer manager takedown. - Add an interface to flush the current command buffer for latency-critical command batches and apply it to framebuffer dirtying. v3: - Minor fixes of definitions and typos to address reviews. - Removed new or moved branch predictor hints. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/Makefile | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 13 + drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 1315 +++++++++++++++++++++++++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 26 + drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 40 + drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 180 ++++- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 67 +- drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 41 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 + 10 files changed, 1656 insertions(+), 33 deletions(-) commit cb09bbcc429a290d01ebf23b9f0193dee0da6779 Author: Thomas Hellstrom Date: Thu Jun 25 11:15:11 2015 -0700 vmwgfx: Update device headers for command buffers. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/svga3d_reg.h | 2 - drivers/gpu/drm/vmwgfx/svga_reg.h | 187 ++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/vmwgfx/svga_types.h | 3 + 3 files changed, 190 insertions(+), 2 deletions(-) commit 13eec7eaae00276c952852f4c2723cd55ac0fb8c Author: Thomas Hellstrom Date: Thu Jun 25 11:12:17 2015 -0700 drm/vmwgfx: Fix OTABLE takedown Don't fence and free the BO if command submission fails. Signed-off-by: Thomas Hellstrom drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 153b3d5b037eeb01d1e5610958a5bbd79885b2be Author: Thomas Hellstrom Date: Thu Jun 25 10:47:43 2015 -0700 vmwgfx: Rework device initialization This commit reworks device initialization so that we always enable the FIFO at driver load, deferring SVGA enable until either first modeset or fbdev enable. This should always leave the fifo properly enabled for render- and control nodes. In addition, *) We disable the use of VRAM when SVGA is not enabled. *) We simplify PM support so that we only throw out resources on hibernate, not on suspend, since the device keeps its state on suspend. Signed-off-by: Thomas Hellstrom Reviewed-by: Sinclair Yeh drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 8 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 337 ++++++++++++++++++-------------- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 19 +- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4 + drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 12 +- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 6 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 12 +- 10 files changed, 230 insertions(+), 174 deletions(-) commit 12617971c443c50750a12a77ea0e08319d161975 Author: Thomas Hellstrom Date: Thu Jun 25 10:10:36 2015 -0700 drm/vmwgfx: Fix an fb unlocking bug A regression introduced when the master ttm lock was split into two. Reported-and-tested-by: Brian Paul Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0d62e9dd6da45bbf0f33a8617afc5fe774c8f45f Author: David Howells Date: Wed Aug 5 12:54:46 2015 +0100 ASN.1: Fix non-match detection failure on data overrun If the ASN.1 decoder is asked to parse a sequence of objects, non-optional matches get skipped if there's no more data to be had rather than a data-overrun error being reported. This is due to the code segment that decides whether to skip optional matches (ie. matches that could get ignored because an element is marked OPTIONAL in the grammar) due to a lack of data also skips non-optional elements if the data pointer has reached the end of the buffer. This can be tested with the data decoder for the new RSA akcipher algorithm that takes three non-optional integers. Currently, it skips the last integer if there is insufficient data. Without the fix, #defining DEBUG in asn1_decoder.c will show something like: next_op: pc=0/13 dp=0/270 C=0 J=0 - match? 30 30 00 - TAG: 30 266 CONS next_op: pc=2/13 dp=4/270 C=1 J=0 - match? 02 02 00 - TAG: 02 257 - LEAF: 257 next_op: pc=5/13 dp=265/270 C=1 J=0 - match? 02 02 00 - TAG: 02 3 - LEAF: 3 next_op: pc=8/13 dp=270/270 C=1 J=0 next_op: pc=11/13 dp=270/270 C=1 J=0 - end cons t=4 dp=270 l=270/270 The next_op line for pc=8/13 should be followed by a match line. This is not exploitable for X.509 certificates by means of shortening the message and fixing up the ASN.1 CONS tags because: (1) The relevant records being built up are cleared before use. (2) If the message is shortened sufficiently to remove the public key, the ASN.1 parse of the RSA key will fail quickly due to a lack of data. (3) Extracted signature data is either turned into MPIs (which cope with a 0 length) or is simpler integers specifying algoritms and suchlike (which can validly be 0); and (4) The AKID and SKID extensions are optional and their removal is handled without risking passing a NULL to asymmetric_key_generate_id(). (5) If the certificate is truncated sufficiently to remove the subject, issuer or serialNumber then the ASN.1 decoder will fail with a 'Cons stack underflow' return. This is not exploitable for PKCS#7 messages by means of removal of elements from such a message from the tail end of a sequence: (1) Any shortened X.509 certs embedded in the PKCS#7 message are survivable as detailed above. (2) The message digest content isn't used if it shows a NULL pointer, similarly, the authattrs aren't used if that shows a NULL pointer. (3) A missing signature results in a NULL MPI - which the MPI routines deal with. (4) If data is NULL, it is expected that the message has detached content and that is handled appropriately. (5) If the serialNumber is excised, the unconditional action associated with it will pick up the containing SEQUENCE instead, so no NULL pointer will be seen here. If both the issuer and the serialNumber are excised, the ASN.1 decode will fail with an 'Unexpected tag' return. In either case, there's no way to get to asymmetric_key_generate_id() with a NULL pointer. (6) Other fields are decoded to simple integers. Shortening the message to omit an algorithm ID field will cause checks on this to fail early in the verification process. This can also be tested by snipping objects off of the end of the ASN.1 stream such that mandatory tags are removed - or even from the end of internal SEQUENCEs. If any mandatory tag is missing, the error EBADMSG *should* be produced. Without this patch ERANGE or ENOPKG might be produced or the parse may apparently succeed, perhaps with ENOKEY or EKEYREJECTED being produced later, depending on what gets snipped. Just snipping off the final BIT_STRING or OCTET_STRING from either sample should be a start since both are mandatory and neither will cause an EBADMSG without the patches Reported-by: Marcel Holtmann Signed-off-by: David Howells Tested-by: Marcel Holtmann Reviewed-by: David Woodhouse lib/asn1_decoder.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3f3af97d8225a58ecdcde7217c030b17e5198226 Author: David Howells Date: Wed Aug 5 12:54:46 2015 +0100 ASN.1: Fix actions on CHOICE elements with IMPLICIT tags In an ASN.1 description where there is a CHOICE construct that contains elements with IMPLICIT tags that refer to constructed types, actions to be taken on those elements should be conditional on the corresponding element actually being matched. Currently, however, such actions are performed unconditionally in the middle of processing the CHOICE. For example, look at elements 'b' and 'e' here: A ::= SEQUENCE { CHOICE { b [0] IMPLICIT B ({ do_XXXXXXXXXXXX_b }), c [1] EXPLICIT C ({ do_XXXXXXXXXXXX_c }), d [2] EXPLICIT B ({ do_XXXXXXXXXXXX_d }), e [3] IMPLICIT C ({ do_XXXXXXXXXXXX_e }), f [4] IMPLICIT INTEGER ({ do_XXXXXXXXXXXX_f }) } } ({ do_XXXXXXXXXXXX_A }) B ::= SET OF OBJECT IDENTIFIER ({ do_XXXXXXXXXXXX_oid }) C ::= SET OF INTEGER ({ do_XXXXXXXXXXXX_int }) They each have an action (do_XXXXXXXXXXXX_b and do_XXXXXXXXXXXX_e) that should only be processed if that element is matched. The problem is that there's no easy place to hang the action off in the subclause (type B for element 'b' and type C for element 'e') because subclause opcode sequences can be shared. To fix this, introduce a conditional action opcode(ASN1_OP_MAYBE_ACT) that the decoder only processes if the preceding match was successful. This can be seen in an excerpt from the output of the fixed ASN.1 compiler for the above ASN.1 description: [ 13] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // e [ 14] = _tagn(CONT, CONS, 3), [ 15] = _jump_target(45), // --> C [ 16] = ASN1_OP_MAYBE_ACT, [ 17] = _action(ACT_do_XXXXXXXXXXXX_e), In this, if the op at [13] is matched (ie. element 'e' above) then the action at [16] will be performed. However, if the op at [13] doesn't match or is skipped because it is conditional and some previous op matched, then the action at [16] will be ignored. Note that to make this work in the decoder, the ASN1_OP_RETURN op must set the flag to indicate that a match happened. This is necessary because the _jump_target() seen above introduces a subclause (in this case an object of type 'C') which is likely to alter the flag. Setting the flag here is okay because to process a subclause, a match must have happened and caused a jump. This cannot be tested with the code as it stands, but rather affects future code. Signed-off-by: David Howells Reviewed-by: David Woodhouse include/linux/asn1_ber_bytecode.h | 3 ++- lib/asn1_decoder.c | 14 +++++++++++++- scripts/asn1_compiler.c | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) commit 8d9b21dcfe6814c92c9f445a7c742b7bab4f86b8 Author: David Howells Date: Wed Aug 5 12:54:45 2015 +0100 ASN.1: Fix handling of CHOICE in ASN.1 compiler Fix the handling of CHOICE types in the ASN.1 compiler to make SEQUENCE and SET elements in a CHOICE be correctly rendered as skippable and conditional as appropriate. For example, in the following ASN.1: Foo ::= SEQUENCE { w1 INTEGER, w2 Bar, w3 OBJECT IDENTIFIER } Bar ::= CHOICE { x1 Seq1, x2 [0] IMPLICIT OCTET STRING, x3 Seq2, x4 SET OF INTEGER } Seq1 ::= SEQUENCE { y1 INTEGER, y2 INTEGER, y3 INTEGER } Seq2 ::= SEQUENCE { z1 BOOLEAN, z2 BOOLEAN, z3 BOOLEAN } the output in foo.c generated by: ./scripts/asn1_compiler foo.asn1 foo.c foo.h included: // Bar // Seq1 [ 4] = ASN1_OP_MATCH, [ 5] = _tag(UNIV, CONS, SEQ), ... [ 13] = ASN1_OP_COND_MATCH_OR_SKIP, // x2 [ 14] = _tagn(CONT, PRIM, 0), // Seq2 [ 15] = ASN1_OP_MATCH, [ 16] = _tag(UNIV, CONS, SEQ), ... [ 24] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // x4 [ 25] = _tag(UNIV, CONS, SET), ... [ 27] = ASN1_OP_COND_FAIL, as a result of the CHOICE - but this is wrong on lines 4 and 15 because both of these should be skippable (one and only one of the four can be picked) and the one on line 15 should also be conditional so that it is ignored if anything before it matches. After the patch, it looks like: // Bar // Seq1 [ 4] = ASN1_OP_MATCH_JUMP_OR_SKIP, // x1 [ 5] = _tag(UNIV, CONS, SEQ), ... [ 7] = ASN1_OP_COND_MATCH_OR_SKIP, // x2 [ 8] = _tagn(CONT, PRIM, 0), // Seq2 [ 9] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // x3 [ 10] = _tag(UNIV, CONS, SEQ), ... [ 12] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // x4 [ 13] = _tag(UNIV, CONS, SET), ... [ 15] = ASN1_OP_COND_FAIL, where all four options are skippable and the second, third and fourth are all conditional, as is the backstop at the end. This hasn't been a problem so far because in the ASN.1 specs we have are either using primitives or are using SET OF and SEQUENCE OF which are handled correctly. Whilst we're at it, also make sure that element labels get included in comments in the output for elements that have complex types. This cannot be tested with the code as it stands, but rather affects future code. Signed-off-by: David Howells Reviewed-By: David Woodhouse scripts/asn1_compiler.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 63d5e127de8287c4ae80f43cda8cb9c06e612929 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:01:10 2015 +0900 mailbox: 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 Acked-by: Lee Jones Reviewed-by: Eric Anholt Signed-off-by: Jassi Brar drivers/mailbox/bcm2835-mailbox.c | 1 - 1 file changed, 1 deletion(-) commit eb157c81d046d01c468df7e27d33563dce413154 Author: Roger Quadros Date: Tue Aug 4 18:35:00 2015 +0300 ARM: dts: am437x-gp-evm: Add eMMC support Add eMMC pinmux and mmc2 related bits. We keep the mmc2 controller disabled as it conflits with gpmc/NAND. To enable emmc, simply set mmc2 controller node to "okay" and set the gpmc node to "disabled" and change the SelEMMCorNAND gpio-hog to output-high. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit 50336f5127640b1cc6a84c2a7853774a11e1e3c2 Author: Roger Quadros Date: Tue Aug 4 18:34:59 2015 +0300 ARM: dts: am437x-gp-evm: Add gpio-hog for configuring eMMC/NAND driver On this board either eMMC or NAND can work based on the level of spi2_cs0.gpio0_23. Add a gpio-hog to enable configuration of this pin in the device tree. Move pinmux for spi2_cs0 (SEL_eMMCorNANDn) out of NAND node into gpio0 so it is initialized with gpio0. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) commit 92814c4a2cae0f9668bc6521cb51453a81a39299 Author: Dave Gerlach Date: Tue Aug 4 18:34:58 2015 +0300 ARM: dts: am43xx: Introduce MUX_MODE9 for pinctrl Some pins on AM43XX support MODE9 for the pinctrl settings so add a binding to describe this. Signed-off-by: Dave Gerlach Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren include/dt-bindings/pinctrl/am43xx.h | 1 + 1 file changed, 1 insertion(+) commit d62ce9ffd8211a423c462811ef083d2493a44321 Author: Kishon Vijay Abraham I Date: Thu Jul 30 13:43:40 2015 +0530 ARM: dts: dra72-evm: Fix spurious card insert/removal interrupt ldo1_reg in addition to being connected to the io lines is also connected to the card detect line. On card removal, omap_hsmmc driver does a regulator_disable causing card detect line to be pulled down. This raises a card insertion interrupt and once the MMC core detects there is no card inserted, it does a regulator disable which again raises a card insertion interrupt. This happens in a loop causing infinite MMC interrupts. Fix it by making ldo1_reg as always_on. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 1 + 1 file changed, 1 insertion(+) commit 9f04ceebe21a8cc8930adbea0fcc538a46e7289a Author: Kishon Vijay Abraham I Date: Thu Jul 30 13:43:39 2015 +0530 ARM: dts: dra7-evm: Fix spurious card insert/removal interrupt ldo1_reg in addition to being connected to the io lines is also connected to the card detect line. On card removal, omap_hsmmc driver does a regulator_disable causing card detect line to be pulled down. This raises a card insertion interrupt and once the MMC core detects there is no card inserted, it does a regulator disable which again raises a card insertion interrupt. This happens in a loop causing infinite MMC interrupts. Fix it by making ldo1_reg as always_on. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7-evm.dts | 1 + 1 file changed, 1 insertion(+) commit 29d632c8bb35bad91c85ad091a7b70f11e6c4966 Author: Kishon Vijay Abraham I Date: Thu Jul 30 13:43:38 2015 +0530 ARM: dts: am57xx-beagle-x15: mmc1: remove redundant pbias-supply property pbias-supply is initialized in dra7.dtsi. Remove redundant initialization of pbias-supply from MMC1 dt node in am57xx-beagle-x15.dts Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/am57xx-beagle-x15.dts | 1 - 1 file changed, 1 deletion(-) commit f4eaf9e04874f03c13d40c8b8ed26ac6738af3e3 Author: Nishanth Menon Date: Thu Jul 30 13:43:37 2015 +0530 ARM: dts: dra7-evm: Add MMCSD card removal GPIO SDMMC Card Detect can be used over default GPIO map. Reported-by: Yan Liu Signed-off-by: Nishanth Menon Signed-off-by: Sekhar Nori Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7-evm.dts | 5 +++++ 1 file changed, 5 insertions(+) commit e23b27dbf88e31a4bd29b10917d74ba7d99d1e3c Author: Kishon Vijay Abraham I Date: Thu Jul 30 13:43:36 2015 +0530 ARM: dts: dra72-evm: Set max clock frequency of MMC1 and MMC2 MMC1 supports SDR104 and MMC2 supports HS200 both of which requires 192MHz clock. Set the maximum operating clock frequency to 192 MHz. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 2 ++ 1 file changed, 2 insertions(+) commit 4b93521587df9928a49bfdefd72d4e0ffe5b0fe2 Author: Balaji T K Date: Thu Jul 30 13:43:35 2015 +0530 ARM: dts: dra7-evm: add evm_3v3_sd regulator Add a node for evm_3v3_sd using onboard pcf GPIO expander which feeds on to mmc vdd. Update mapping for vmmc-supply and vmmc_aux-supply. evm_3v3_sd supplies to SD card vdd, and ldo1 to sdcard i/o lines. Signed-off-by: Balaji T K Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7-evm.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit a238707d9871381672cb3ee7bd6e66ede838c23f Author: Kishon Vijay Abraham I Date: Thu Jul 30 13:43:34 2015 +0530 ARM: dts: dra72-evm: add evm_3v3_sd regulator Add a node for evm_3v3_sd using pcf which feeds on to mmc vdd. Update mapping for vmmc-supply and vmmc_aux-supply. evm_3v3_sd supplies to SD card vdd, and ldo1 to sdcard i/o lines. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit f735d4af4b0ec3d87885710adf18b077480e7b19 Author: Xiao Guangrong Date: Wed Aug 5 12:04:27 2015 +0800 KVM: VMX: drop ept misconfig check The logic used to check ept misconfig is completely contained in common reserved bits check for sptes, so it can be removed Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 22 ---------------- arch/x86/kvm/mmu.h | 1 - arch/x86/kvm/vmx.c | 74 ++---------------------------------------------------- 3 files changed, 2 insertions(+), 95 deletions(-) commit 47ab8751695f71d85562ff497e21b521c789247c Author: Xiao Guangrong Date: Wed Aug 5 12:04:26 2015 +0800 KVM: MMU: fully check zero bits for sptes The #PF with PFEC.RSV = 1 is designed to speed MMIO emulation, however, it is possible that the RSV #PF is caused by real BUG by mis-configure shadow page table entries This patch enables full check for the zero bits on shadow page table entries (which includes not only bits reserved by the hardware, but also bits that will never be set in the SPTE), then dump the shadow page table hierarchy. Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) commit d625b155d21bdedf7d289d422d73c644e2205624 Author: Xiao Guangrong Date: Wed Aug 5 12:04:25 2015 +0800 KVM: MMU: introduce is_shadow_zero_bits_set() We have the same data struct to check reserved bits on guest page tables and shadow page tables, split is_rsvd_bits_set() so that the logic can be shared between these two paths Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) commit c258b62b264fdc469b6d3610a907708068145e3b Author: Xiao Guangrong Date: Wed Aug 5 12:04:24 2015 +0800 KVM: MMU: introduce the framework to check zero bits on sptes We have abstracted the data struct and functions which are used to check reserved bit on guest page tables, now we extend the logic to check zero bits on shadow page tables The zero bits on sptes include not only reserved bits on hardware but also the bits that SPTEs willnever use. For example, shadow pages will never use GB pages unless the guest uses them too. Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 8 +++++++ arch/x86/kvm/mmu.c | 50 +++++++++++++++++++++++++++++++++++++++++ arch/x86/kvm/mmu.h | 3 +++ arch/x86/kvm/svm.c | 1 + 4 files changed, 62 insertions(+) commit 81b8eebbc3511bfa21520314b07988a875a4d066 Author: Xiao Guangrong Date: Wed Aug 5 12:04:23 2015 +0800 KVM: MMU: split reset_rsvds_bits_mask_ept Since shadow ept page tables and Intel nested guest page tables have the same format, split reset_rsvds_bits_mask_ept so that the logic can be reused by later patches which check zero bits on sptes Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 6dc98b868bc5d44cd5fd9be2a35e3d87902e8818 Author: Xiao Guangrong Date: Wed Aug 5 12:04:22 2015 +0800 KVM: MMU: split reset_rsvds_bits_mask Since softmmu & AMD nested shadow page tables and guest page tables have the same format, split reset_rsvds_bits_mask so that the logic can be reused by later patches which check zero bits on sptes Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit a0a64f50aac731d42125dd8581b9a31e4fdb0f75 Author: Xiao Guangrong Date: Wed Aug 5 12:04:21 2015 +0800 KVM: MMU: introduce rsvd_bits_validate These two fields, rsvd_bits_mask and bad_mt_xwr, in "struct kvm_mmu" are used to check if reserved bits set on guest ptes, move them to a data struct so that the approach can be applied to check host shadow page table entries as well Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 8 +++-- arch/x86/kvm/mmu.c | 75 +++++++++++++++++++++++------------------ arch/x86/kvm/x86.c | 3 +- 3 files changed, 50 insertions(+), 36 deletions(-) commit d2b0f98125425c72a3f628fbe5498eb55329738b Author: Xiao Guangrong Date: Wed Aug 5 12:04:20 2015 +0800 KVM: MMU: move FNAME(is_rsvd_bits_set) to mmu.c FNAME(is_rsvd_bits_set) does not depend on guest mmu mode, move it to mmu.c to stop being compiled multiple times Signed-off-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 8 ++++++++ arch/x86/kvm/paging_tmpl.h | 13 ++----------- 2 files changed, 10 insertions(+), 11 deletions(-) commit 6f691251c0350ac52a007c54bf3ef62e9d8cdc5e Author: Xiao Guangrong Date: Wed Aug 5 12:04:19 2015 +0800 KVM: MMU: fix validation of mmio page fault We got the bug that qemu complained with "KVM: unknown exit, hardware reason 31" and KVM shown these info: [84245.284948] EPT: Misconfiguration. [84245.285056] EPT: GPA: 0xfeda848 [84245.285154] ept_misconfig_inspect_spte: spte 0x5eaef50107 level 4 [84245.285344] ept_misconfig_inspect_spte: spte 0x5f5fadc107 level 3 [84245.285532] ept_misconfig_inspect_spte: spte 0x5141d18107 level 2 [84245.285723] ept_misconfig_inspect_spte: spte 0x52e40dad77 level 1 This is because we got a mmio #PF and the handler see the mmio spte becomes normal (points to the ram page) However, this is valid after introducing fast mmio spte invalidation which increases the generation-number instead of zapping mmio sptes, a example is as follows: 1. QEMU drops mmio region by adding a new memslot 2. invalidate all mmio sptes 3. VCPU 0 VCPU 1 access the invalid mmio spte access the region originally was MMIO before set the spte to the normal ram map mmio #PF check the spte and see it becomes normal ram mapping !!! This patch fixes the bug just by dropping the check in mmio handler, it's good for backport. Full check will be introduced in later patches Reported-by: Pavel Shirshov Tested-by: Pavel Shirshov Signed-off-by: Xiao Guangrong Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini arch/x86/kvm/mmu.c | 45 --------------------------------------------- 1 file changed, 45 deletions(-) commit 9c33ae0c614c7a4e64c2781f473057a273b57544 Author: Alex Williamson Date: Tue Aug 4 10:58:26 2015 -0600 KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON The patch was munged on commit to re-order these tests resulting in excessive warnings when trying to do device assignment. Return to original ordering: https://lkml.org/lkml/2015/7/15/769 Fixes: 3e5d2fdceda1 ("KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type") Signed-off-by: Alex Williamson Reviewed-by: Xiao Guangrong Signed-off-by: Paolo Bonzini arch/x86/kvm/mtrr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c9ab94dfd2baf391f724d5dc28fcd8f71f7f311b Author: Suman Anna Date: Fri Jul 17 16:08:04 2015 -0500 ARM: dts: AM4372: Add the wkup_m3_ipc node Add the Wakeup M3 IPC device node for the wkup_m3_ipc driver on AM4372 SoC. This node uses the IPC registers, part of the Control Module, and is therefore added as a child of the scm node. Signed-off-by: Suman Anna Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 99937129075a907a5e4ba52cf0ebdbde9ff6be15 Author: Suman Anna Date: Fri Jul 17 16:08:03 2015 -0500 ARM: dts: AM33xx: Add the wkup_m3_ipc node Add the Wakeup M3 IPC node for the wkup_m3_ipc driver on AM33xx SoCs. This node uses the IPC registers, part of the Control Module, and is therefore added as a child of the scm node. Signed-off-by: Suman Anna Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/boot/dts/am33xx.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9f502ff55321a5270c3dfbb76ac3774e6b5d8097 Author: Takashi Iwai Date: Wed Aug 5 12:09:45 2015 +0200 ALSA: hda - yet another fix for Dell headset mic with ALC3266 It turned out that there are three variants of pin config values of NID 0x17 on Dell laptops with ALC3266 (alias of ALC298): 0x90170110, 0x90170140 and 0x90170150. The first two have been already covered by commits 703867e2f252 and 977e627684df, so this commit adds the missing last entry. While we're at it, rearrange the three entries in the order of pincfg values. Reported-by: Kailang Yang Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 00a6d6e50ff34aa2351746422e4a1c85c7765b15 Author: Oder Chiou Date: Wed Aug 5 10:03:18 2015 +0800 ASoC: Add function "rl6231_get_pre_div" to correct the dmic clock calculation Signed-off-by: Bard Liao Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rl6231.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/rl6231.h | 1 + sound/soc/codecs/rt5640.c | 7 ++++--- sound/soc/codecs/rt5645.c | 7 ++++--- sound/soc/codecs/rt5651.c | 7 ++++--- sound/soc/codecs/rt5670.c | 7 ++++--- sound/soc/codecs/rt5677.c | 5 ++++- 7 files changed, 68 insertions(+), 13 deletions(-) commit 33cb3a13ce61c7ef9ac94976c7ceb59ead1e8573 Author: Roger Quadros Date: Tue Aug 4 12:10:14 2015 +0300 ARM: dts: dra7: Add scm_conf@1c04 node This region contains CTRL_CORE_SMA_SW2..9 registers which are not specific to any domain and can be reasonably accessed via syscon driver. Signed-off-by: Roger Quadros Acked-by: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 5 +++++ 1 file changed, 5 insertions(+) commit 1c5cb6fdd69210f01d9925fd8232385a9c5baa9a Author: Roger Quadros Date: Mon Jul 27 13:27:29 2015 +0300 ARM: dts: dra7: fix pinmux@1400 resource length We need to add 4 bytes to include the last 32-bit register space. Signed-off-by: Roger Quadros Acked-by: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57fe9287c6bcd2261701f9793f690b165d02a962 Author: Roger Quadros Date: Mon Jul 27 13:27:28 2015 +0300 ARM: dts: dra7: Remove ctrl_core and ctrl_general nodes These nodes are wrongly placed. They must come under the scm node. Nobody uses them either so get rid of them. Signed-off-by: Roger Quadros Acked-by: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 10 ---------- 1 file changed, 10 deletions(-) commit 3f86e570f26837d9f48d64b7ece85853cb45becd Author: Sudeep Holla Date: Sat Aug 1 21:03:56 2015 +0530 ARM: davinci: cp_intc: use IRQCHIP_SKIP_SET_WAKE instead of irq_set_wake callback Commit 60f96b41f71d ("genirq: Add IRQCHIP_SKIP_SET_WAKE flag") introduced a new flag to skip the irq_set_wake callback in the irqchip core to avoid adding dummy irq_set_wake in the irqchip implementations. This patch removes the dummy callback and sets the IRQCHIP_SKIP_SET_WAKE flags. Cc: Sekhar Nori Cc: Kevin Hilman Signed-off-by: Sudeep Holla Signed-off-by: Sekhar Nori Signed-off-by: Olof Johansson arch/arm/mach-davinci/cp_intc.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 757fe8d514a9bab55156dfb2c4a03e56ba96a028 Author: Jarkko Nikula Date: Wed Aug 5 10:04:05 2015 +0300 spi: spi-pxa2xx: Remove unused legacy null dma buffer and allocation for it Remove null_dma_buf variable and extra allocation for it. It is not needed since commit 6356437e65c2 ("spi: spi-pxa2xx: remove legacy PXA DMA bits"). Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 4 +--- drivers/spi/spi-pxa2xx.h | 3 --- 2 files changed, 1 insertion(+), 6 deletions(-) commit 80aa93128653c5f2502053c0d9740b336d975667 Author: Jesse Barnes Date: Mon Aug 3 13:09:11 2015 -0700 drm/i915: disable_shared_pll doesn't work on pre-gen5 Looks like commit eddfcbcdc27fbecb33bff098967bbdd7ca75bfa6 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:53 2015 +0200 drm/i915: Update less state during modeset. introduced the unconditional calling of disable_shared_dpll, but didn't fix up pre-gen5 to avoid the BUG_ON at the top of the function. So change the BUG_ON into a gen check (alternately we could move the BUG_ON until later, since we shouldn't have a pll struct here either, but this seems clearer to read). This fixes a crash on load on my x200s platform. Signed-off-by: Jesse Barnes Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 245d96670d2655f70f4445d5247f26afbe705c84 Author: Arun Siluvery Date: Mon Aug 3 20:24:56 2015 +0100 drm/i915:skl: Add WaEnableGapsTsvCreditFix Cc: Ben Widawsky Cc: Joonas Lahtinen Signed-off-by: Arun Siluvery Tested-by: Ben Widawsky Reviewed-by: Ben Widawsky Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90854 Tested-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_pm.c | 6 ++++++ 2 files changed, 9 insertions(+) commit 9dd068a4b85a68733213c874d08ef768bbec8d01 Author: Matthias Brugger Date: Fri Jul 31 17:03:13 2015 +0200 soc: mediatek: Fix SCPSYS compilation SCPSYS driver misses the module.h include which makes it fail when compiling with allmodconf. This patch fixes this. Signed-off-by: Matthias Brugger Acked-by: Sascha Hauer Signed-off-by: Olof Johansson drivers/soc/mediatek/mtk-scpsys.c | 1 + 1 file changed, 1 insertion(+) commit 1ff2b94d15ab25cfe7d63a2038fe458269f07f35 Merge: e06b2d8 9e07b49 Author: Olof Johansson Date: Wed Aug 5 11:11:51 2015 +0200 Merge tag 'mvebu-config-4.3-2' of git://git.infradead.org/linux-mvebu into next/defconfig mvebu config changes for v4.3 (part #2) Improve dt support for orion5x * tag 'mvebu-config-4.3-2' of git://git.infradead.org/linux-mvebu: ARM: defconfig: orion5x: add DT support Signed-off-by: Olof Johansson commit ee224e175e9d837b3d572e863ac96109b58707ac Merge: e7482c7 dc57844 Author: Olof Johansson Date: Wed Aug 5 11:10:30 2015 +0200 Merge tag 'mvebu-dt-4.3-2' of git://git.infradead.org/linux-mvebu into next/dt mvebu dt changes for v4.3 (part #2) Add support Buffalo Linkstation LS-WTGL * tag 'mvebu-dt-4.3-2' of git://git.infradead.org/linux-mvebu: ARM: dts: orion5x: add buffalo linkstation ls-wtgl Signed-off-by: Olof Johansson commit 495078f892eef0ac791fd2b32393e1501b5c1c5e Author: Azael Avalos Date: Fri Jul 31 21:58:16 2015 -0600 toshiba_acpi: Bump driver version to 0.23 Given that some features were added (/dev/toshiba_acpi device), some clean-ups and minor (cosmetic) changes all over the driver code, bump the driver version to 0.23 to reflect these overall changes. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6b5354f422a1f1cd48a94ed64e54989f9ea7ee2 Author: Azael Avalos Date: Fri Jul 31 21:58:15 2015 -0600 toshiba_acpi: Remove unnecessary checks and returns in HCI/SCI functions A previous patch added explicit feature checks for support, *SUCCESS* and *FAILURE to the HCI/SCI *{get, set} functions. This patch removes some unnedded checks to the driver HCI/SCI functions given that the default error return value is now set to -EIO, there is no need to check for other error values other than the ones currently checking for. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 169 ++++++++++-------------------------- 1 file changed, 44 insertions(+), 125 deletions(-) commit f9fa55b97090bdc70683c96d425759ae3958ce24 Merge: b69354d 482d638 Author: Olof Johansson Date: Wed Aug 5 11:09:02 2015 +0200 Merge tag 'mvebu-soc-4.3-1' of git://git.infradead.org/linux-mvebu into next/soc mvebu soc changes for v4.3 (part #1) - Extend suspend to RAM support in order to add new mvebu SoC - Add standby support for all Armada 3xx/XP SoCs * tag 'mvebu-soc-4.3-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu: Warn about the wake-up sources not taken into account in suspend ARM: mvebu: Add standby support ARM: mvebu: Use __init for the PM initialization functions ARM: mvebu: prepare pm-board.c for the introduction of Armada 38x support ARM: mvebu: prepare mvebu_pm_store_bootinfo() to support multiple SoCs ARM: mvebu: do not check machine in mvebu_pm_init() ARM: mvebu: prepare set_cpu_coherent() for future extension Signed-off-by: Olof Johansson commit e1a949c1b9883d1d0586b0cbdd2c0cc3f55514bd Author: Azael Avalos Date: Fri Jul 31 21:58:14 2015 -0600 toshiba_acpi: Refactor *{get, set} functions return value This patch refactors the return value of the driver *{get, set} functions, since the driver default error value is -EIO. All the functions now check for TOS_FAILURE, TOS_NOT_SUPPORTED and TOS_SUCCESS. On TOS_FAILURE a pr_err message is printed informing the user of the error (no change was made to this, except the check was added to the functions not checking for this). On TOS_NOT_SUPPORTED we now return -ENODEV immediately (some functions were returning -EIO and some other were not checking) On TOS_SUCCESS* we now return 0 (as a side effect, a new success value was added, since some functions return one instead of zero to indicate success). As a special case, the LED functions now check for *FAILURE on *set, and check for TOS_FAILURE and TOS_SUCCESS on *get with their "default" return value set to LED_OFF. Also the {lcd, video}_proc* functions were adapted to reflect these changes to their parent HCI functions. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 177 +++++++++++++++++++++--------------- 1 file changed, 104 insertions(+), 73 deletions(-) commit 0409cbced3c9ab975e300584b6cc036c26974b43 Author: Azael Avalos Date: Fri Jul 31 21:58:13 2015 -0600 toshiba_acpi: Remove "*not supported" feature prints Currently the driver prints "*not supported" if any of the features queried are in fact not supported, let us print the available features instead. This patch removes all instances pr_info printing "*not supported", and add a new function called "print_supported_features", which will print the available laptop features. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 72 +++++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 26 deletions(-) commit ea215a3f909c570521a9cc276163837ffa2c621a Author: Azael Avalos Date: Fri Jul 31 21:58:12 2015 -0600 toshiba_acpi: Change *available functions return type This patch changes the *available functions return type from int to void. The checks for support of their respective features are done inside such functions and there was no need to return anything as we can flag the queried feature as supported inside these functions. The code was adapted accordingly to these changes and two new variables were created and another was changed from uint to bool. Also, the function toshiba_acceleremoter_supported was renamed to toshiba_accelerometer_available to maintain the naming consistency on the driver. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 129 +++++++++++++++++------------------- 1 file changed, 62 insertions(+), 67 deletions(-) commit 8ec41987436d566f7c4559c6871738b869f7ef07 Author: Will Deacon Date: Tue Aug 4 17:49:36 2015 +0100 arm64: mm: ensure patched kernel text is fetched from PoU The arm64 booting document requires that the bootloader has cleaned the kernel image to the PoC. However, when a CPU re-enters the kernel due to either a CPU hotplug "on" event or resuming from a low-power state (e.g. cpuidle), the kernel text may in-fact be dirty at the PoU due to things like alternative patching or even module loading. Thanks to I-cache speculation with the MMU off, stale instructions could be fetched prior to enabling the MMU, potentially leading to crashes when executing regions of code that have been modified at runtime. This patch addresses the issue by ensuring that the local I-cache is invalidated immediately after a CPU has enabled its MMU but before jumping out of the identity mapping. Any stale instructions fetched from the PoC will then be discarded and refetched correctly from the PoU. Patching kernel text executed prior to the MMU being enabled is prohibited, so the early entry code will always be clean. Reviewed-by: Mark Rutland Tested-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/kernel/head.S | 8 ++++++++ arch/arm64/kernel/sleep.S | 8 ++++++++ arch/arm64/mm/proc.S | 1 - 3 files changed, 16 insertions(+), 1 deletion(-) commit e7482c74f214a2633af4e8486b0cbe1066355ba1 Merge: 75d84ee b76da4d Author: Olof Johansson Date: Wed Aug 5 11:04:18 2015 +0200 Merge tag 'zynq-dt-for-4.3' of https://github.com/Xilinx/linux-xlnx into next/dt arm: Xilinx Zynq dt patches for v4.3 - Add ECC for Synopsys MC - Add OCM, pushbuttons to zc702 * tag 'zynq-dt-for-4.3' of https://github.com/Xilinx/linux-xlnx: ARM: zynq: DT: Add zc702 pushbuttons to DT as gpio-keys ARM: zynq: DT: Add missing interrupt for L2 pl310 Documentation: devicetree: Add ECC information to synopsys ddr controller ARM: dts: zynq: Add OCM node Signed-off-by: Olof Johansson commit a7f749f9c7e8222405740f6081bd183137d1d6f2 Author: Animesh Manna Date: Mon Aug 3 21:55:32 2015 +0530 drm/i915/gen9: Removed byte swapping for csr firmware This patch contains the changes to remove the byte swapping logic introduced with old dmc firmware. While debugging PC10 entry issue for skylake found with latest dmc firmware version 1.18 without byte swapping dmc is working fine and able to enter PC10. Note that apparently this was changed with dmc version 1.0 and earlier ones indeed are byteswapped like this ... v1: Initial version. v2: Corrected firmware size during memcpy(). (Suggested by Sunil) Cc: Daniel Vetter Cc: Damien Lespiau Cc: Imre Deak Cc: Sunil Kamath Signed-off-by: Animesh Manna Signed-off-by: Vathsala Nagaraju Reviewed-by: A.Sunil Kamath [danvet: Add note that this only holds for released dmc firmware.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_csr.c | 16 ++++------------ 2 files changed, 5 insertions(+), 13 deletions(-) commit 88cd622f9299c4c9e61e978bb9ef9d7599769ed0 Author: Andy Lutomirski Date: Fri Jul 31 14:41:10 2015 -0700 x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their TIF masks They are no longer used. Good riddance! Deleting the TIF_ macros is really nice. It was never clear why there were so many variants. Signed-off-by: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Eric Paris Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/22c61682f446628573dde0f1d573ab821677e06da.1438378274.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/common.c | 57 -------------------------------------- arch/x86/include/asm/ptrace.h | 1 - arch/x86/include/asm/signal.h | 1 - arch/x86/include/asm/thread_info.h | 16 ----------- 4 files changed, 75 deletions(-) commit 5d73fc70996d9de0d1b2fc87e62dc51153204eba Author: Andy Lutomirski Date: Fri Jul 31 14:41:09 2015 -0700 x86/entry/32: Migrate to C exit path This removes the hybrid asm-and-C implementation of exit work. Signed-off-by: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Eric Paris Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/2baa438619ea6c027b40ec9fceacca52f09c74d09.1438378274.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 62 +++++++++-------------------------------------- 1 file changed, 11 insertions(+), 51 deletions(-) commit c5f69fde26d1581ee495f68bb9de4049c8168a04 Author: Andy Lutomirski Date: Fri Jul 31 14:41:08 2015 -0700 x86/entry/32: Remove 32-bit syscall audit optimizations The asm audit optimizations are ugly and obfuscate the code too much. Remove them. This will regress performance if syscall auditing is enabled on 32-bit kernels and SYSENTER is in use. If this becomes a problem, interested parties are encouraged to implement the equivalent of the 64-bit opportunistic SYSRET optimization. Alternatively, a case could be made that, on 32-bit kernels, a less messy asm audit optimization could be done. 32-bit kernels don't have the complicated partial register saving tricks that 64-bit kernels have, so the SYSENTER post-syscall path could just call the audit hooks directly. Any reimplementation of this ought to demonstrate that it only calls the audit hook once per syscall, though, which does not currently appear to be true. Someone would have to make the case that doing so would be better than implementing opportunistic SYSEXIT, though. Signed-off-by: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Eric Paris Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/212be39dd8c90b44c4b7bbc678128d6b88bdb9912.1438378274.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 48 ++--------------------------------------------- 1 file changed, 2 insertions(+), 46 deletions(-) commit b69354dfe25bf0b103ef3ed6c881d34cc442265c Merge: c268a74 e4a9288 Author: Olof Johansson Date: Wed Aug 5 10:53:52 2015 +0200 Merge tag 'zynq-soc-for-4.3' of https://github.com/Xilinx/linux-xlnx into next/soc arm: Xilinx Zynq SoC patches for v4.2 - Fix earlyprintk, jump trampoline for SMP - Update git tree location - Setup PL310 aux (bit 22) * tag 'zynq-soc-for-4.3' of https://github.com/Xilinx/linux-xlnx: ARM: zynq: reserve space for jump target in secondary trampoline clk: zynq: remove redundant $(CONFIG_ARCH_ZYNQ) in Makefile MAINTAINERS: Update Zynq git tree location ARM: zynq: Set bit 22 in PL310 AuxCtrl register (6395/1) ARM: zynq: Fix earlyprintk in big endian mode Signed-off-by: Olof Johansson commit 754d5c784fde1d8649e237b46e9ceb234fb17de0 Merge: 70d334c 9943230 Author: Olof Johansson Date: Wed Aug 5 10:47:18 2015 +0200 Merge tag 'qcom-arm64-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm into next/arm64 Qualcomm ARM64 Updates for v4.3 * Add BLSP and required pinctrl info for MSM8916 * Add SDHC aliases and nodes for MSM8916 * Add USB nodes for MSM8916 * Add APQ8016 SBC specific USB configuration * Add APQ8016 LED configuration * tag 'qcom-arm64-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm: arm64: dts: qcom: Add apq8016-sbc board LED's related device nodes arm64: dts: qcom: Fix apq8016-sbc board USB related pin definitions arm64: dts: qcom: apq8016-sbc: Don't hog client driver pins arm64: dts: qcom: Add msm8916 USB configuration nodes arm64: dts: qcom: Add msm8916 sdhci configuration nodes arm64: dts: qcom: Add msm8916 BLSP device nodes arm64: dts: qcom: Extend msm8916 pinctrl device coverage Signed-off-by: Olof Johansson commit e06b2d86215a535d0f652c845c53b6825f58b9d8 Merge: d323c85 142f261 Author: Olof Johansson Date: Wed Aug 5 10:46:31 2015 +0200 Merge tag 'qcom-defconfig-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm into next/defconfig Qualcomm ARM Based defconfig Updates for v4.3 * Enable KS8851 for QCOM SoCs in qcom defconfig * tag 'qcom-defconfig-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm: ARM: qcom_defconfig: Enable options for KS8851 ethernet Signed-off-by: Olof Johansson commit 75d84eede45b5482543a8ba8bfbf1f1c1883c370 Merge: 85a82c5 baff39e Author: Olof Johansson Date: Wed Aug 5 10:45:45 2015 +0200 Merge tag 'qcom-dt-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm into next/dt Qualcomm ARM Based Device Tree Updates for v4.3 * Switch to use pinctrl compatible for GPIOs * Add RPM regulators for MSM8960 * Add SPI Ethernet support on MSM8960 CDP * Add SMEM support along with dependencies * Add PM8921 support for GPIO and MPP * Fix GSBI cell index * Switch to use real regulators on APQ8064 w/ SDCC * tag 'qcom-dt-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm: ARM: dts: qs600: Add real regulators to sdcc ARM: dts: ifc6410: add real regulators for sdcc nodes. ARM: dts: apq8064: remove temporary fixed regulator for mmc ARM: dts: apq8064: fix missing gsbi cell-index ARM: dts: apq8064: Add DT support for GSBI6 and for UART pin mux ARM: dts: apq8064: add pm8921 mpp support ARM: dts: apq8064: Add pm8921 mfd and its gpio node ARM: dts: msm8974: Add smem reservation and node ARM: dts: msm8974: Add tcsr mutex node ARM: dts: qcom: Add ks8851 node for wired ethernet ARM: dts: qcom: Add MSM8960 CDP RPM regulators ARM: dts: qcom: Add MSM8960 RPM and RPM regulator nodes ARM: dts: qcom: Replace gpio node with pinctrl node ARM: dts: qcom: Replace gpio node with pinctrl node Signed-off-by: Olof Johansson commit d323c85ce52b2ef9800ab1e4196fc4d784319de0 Author: Josh Wu Date: Thu Jul 30 19:18:19 2015 +0200 ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support Add Atmel-isi and ov2640 driver in defconfig Signed-off-by: Josh Wu [nicolas.ferre@atmel.com: make SOC_CAMERA_OV2640 selected as a module] Signed-off-by: Nicolas Ferre Signed-off-by: Olof Johansson arch/arm/configs/at91_dt_defconfig | 6 ++++++ 1 file changed, 6 insertions(+) commit c268a743103aebba8d81d3365107f7170653099e Author: Nicolas Ferre Date: Thu Jul 30 19:12:12 2015 +0200 ARM: at91/soc: add basic support for new sama5d2 SoC Add Kconfig entries, header file changes and addition to the documentation. The early debug infrastructure is also added for easy development. Signed-off-by: Ludovic Desroches Signed-off-by: Nicolas Ferre Acked-by: Alexandre Belloni Signed-off-by: Olof Johansson Documentation/arm/Atmel/README | 5 +++++ Documentation/devicetree/bindings/arm/atmel-at91.txt | 2 ++ arch/arm/Kconfig.debug | 6 ++++++ arch/arm/include/debug/at91.S | 5 ++++- arch/arm/mach-at91/Kconfig | 12 ++++++++++++ arch/arm/mach-at91/sama5.c | 3 +++ arch/arm/mach-at91/soc.h | 3 +++ 7 files changed, 35 insertions(+), 1 deletion(-) commit 85a82c55e28088c56ec47435d6e797a52c69e2c8 Merge: 46a51ab 22b5a0f Author: Olof Johansson Date: Wed Aug 5 10:39:05 2015 +0200 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.3: - some fixes on sama5d4 ADC definition - adding Image Sensor Interface (aka ISI) on at91sam9m10g45ek board - update rst controller compatible string on sama5 machines - new sama5d2 DT definition and its reference board: the sama5d2 Xplained. Minimal configuration for now. * tag 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91: ARM: at91/dt: add minimal sama5d2 Xplained board ARM: at91/dt: add basic dtsi for sama5d2 SoC ARM: at91/dt: sama5: update rstc to correct compatible string ARM: at91/dt: add isi & ov2640 dt nodes for at91sam9m10g45ek board ARM: at91/dt: sama5d4: move ADC pinctrl to board device trees ARM: at91/dt: sama5d4: fix external trigger property Signed-off-by: Olof Johansson commit 141a7bab2904461d834df3e91a63e88ed2535215 Merge: 27e50c9 4055a72 Author: Olof Johansson Date: Wed Aug 5 10:35:54 2015 +0200 Merge tag 'renesas-defconfig2-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/defconfig Second Round of Renesas ARM Based SoC Defconfig Updates for v4.3 * Enable fixed voltage regulator in shmobile_defconfig * tag 'renesas-defconfig2-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig Signed-off-by: Olof Johansson commit 22ce5628a1df81b50fc86fb686f470f15c1c96ef Author: Thulasimani,Sivakumar Date: Fri Jul 31 11:05:27 2015 +0530 drm/i915: read bpp from vbt only for older panels BPP bits defined in VBT should be used only on panels whose edid version is 1.3 or older. EDID version 1.4 introduced offsets where bpp is defined and read into display_info, hence bpp from VBT will be used only when bpc in display_info is zero. v2: use display_info.bpc for deciding when to use vbt_bpp (Jani) Signed-off-by: Sivakumar Thulasimani Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit d37ae19a6c21bc358f69e1dca410743c98347fe2 Author: Paulo Zanoni Date: Thu Jul 30 18:20:29 2015 -0300 drm/i915/skl: send opregion_nofify_adapter(PCI_D1) instead of PCI_D3 I was told that the "repurposed D1 definition" is still valid for SKL. It is BDW that is special due to its hotplug bug, so let's special-case BDW instead of HSW. Cc: Kristen Carlson Accardi Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit dcddab3aa025b161239ec309f1d4f199d91aca11 Author: Damien Lespiau Date: Thu Jul 30 18:20:27 2015 -0300 drm/i915: Extract a intel_power_well_disable() function Similar to the ->enable vfunc in patch "drm/i915: Extract a intel_power_well_enable() function". v2 (from Paulo): - Same s/i915_/intel_/ bikeshed as the previous patch. - Update the commit hash. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit e8ca932056c22dfce2fac00058203386b41f3af4 Author: Damien Lespiau Date: Thu Jul 30 18:20:26 2015 -0300 drm/i915: Extract a intel_power_well_enable() function We need a bit book keeping around power wells' ops->enable(), namely a nice debug message and updating hw_enabled. Let's introduce a intel_power_well_enable() function to make sure all the callers do the same things. v2 (from Paulo): - s/i915_power_well_enable/intel_power_well_enable/ since everything else on this file uses intel_ instead of i915_. - Fix typo in commit message. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit 0667405b6061be2949d841f05647e550d48c2765 Author: Marc Herbert Date: Wed Jul 29 12:21:22 2015 -0700 drm/i915/skl: revert duplicated WaBarrierPerformanceFixDisable:skl With this simple git diff command one can see that skl_init_workarounds() got two copies of WaBarrierPerformanceFixDisable:skl: git diff -U21 ca6e4405779e^1 ca6e4405779e drivers/gpu/drm/i915/intel_ringbuffer.c This happened when the backmerge of drm-intel-fixes-2015-07-15 Merged the same fix on both sides. Same fix but not identical enough for git: with a different surrounding context; hence the code duplication. This commit merely reverts the output of the git command above = the duplication introduced in the backmerge. (This duplication was found while running git sanity checks on a _linearized_ i915 forklift for ChromeOS.) Signed-off-by: Marc Herbert Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 7 ------- 1 file changed, 7 deletions(-) commit 30886c5afbb446ec1e3616beb2858fba74a23d14 Author: Rodrigo Vivi Date: Thu Jul 30 17:07:55 2015 -0700 drm/i915: VLV/CHV PSR: Increase wait delay time before active PSR. Since active function on VLV immediately activate PSR let's give more time for idleness. Different from core platforms where we have idle_frames count. Also kms_psr_sink_crc now is automated and always get this: [drm:intel_enable_pipe] enabling pipe A [drm:intel_edp_backlight_on] [drm:intel_panel_enable_backlight] pipe [drm:intel_panel_enable_backlight] pipe A [drm:intel_panel_actually_set_backlight] set backlight PWM = 7812 PSR gets enabled somewhere here after backlight. [drm:intel_get_hpd_pins] hotplug event received, stat 0x00000000, dig 0x0 [drm:vlv_pipe_set_fifo_size] Pipe A FIFO split 511 / 511 / 511 [drm:vlv_update_wm] Setting FIFO watermarks - A: plane=391, cursor=63, sp PSR gets flushed around here by intel_atomic_commit [drm:vlv_pipe_set_fifo_size] Pipe A FIFO split 511 / 511 / 511 [drm:vlv_update_wm] Setting FIFO watermarks - A: plane=391, cursor=63, sp [drm:intel_set_memory_cxsr] memory self-refresh is enabled [drm:intel_connector_check_state] [CONNECTOR:39:eDP-1] [drm:check_encoder_state] [ENCODER:30:DAC-30] [drm:check_encoder_state] [ENCODER:31:TMDS-31] [drm:check_encoder_state] [ENCODER:36:TMDS-36] [drm:check_encoder_state] [ENCODER:38:TMDS-38] [drm:check_crtc_state] [CRTC:21] [drm:check_crtc_state] [CRTC:26] [drm:intel_psr_activate [i915]] *ERROR* PSR Active [drm:intel_get_hpd_pins] hotplug event received, stat 0x00000000, dig 0x [drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* pipe A underrun [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO Underrun. It is true that in a product we won't keep disabling and enabling planes so frequently, but for safeness let's stay conservative. It is also true that 500ms is an etternity. But PSR is anyway a power saving feature for idle scenario. So if it is idle feature stays on and 500ms to get it reanabled is not that insane. v2: Rebase over intel_psr.c and fix typo. v3: Revival: Manual tests indicated that this is needed. With a short delay there is a huge risk of getting blank screens when planes are being enabled. v4: Revival 2 with reasonable delay. 1/2 sec instead of 5. VBT is 10 sec but actually time for link training what we aren't doing, but with only 100 sec in some cases kms_psr_sink_crc manual was showing blank screen, so let's use this for now. Also changed comment by a FIXME. v5: Rebase after a long time, remove FIXME and update comment above. v6: msecs_to_jiffies is already on delay. remove duplication. v7: use msecs_to_jiffies on schedule_delayed_work call. Reviewed-by: Durgadoss R (v4) Signed-off-by: Rodrigo Vivi Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com) Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 082dcc7c0c666df9a37879d79a15a8115f05a08f Author: Rodrigo Vivi Date: Thu Jul 30 16:26:39 2015 -0700 drm/i915: Split sink_crc function in start, stop and read. This is just a preparation patch to make clear what operation we are performing. There is no functional change on the sink crc logic. hsw_disable_ips has been moved a bit further in the start function to avoid disabling ips when sink crc is not going to be started. and to avoid goto on this function. v2: explain why hsw_disable_ips() call place has changed. Cc: Daniel Vetter Reviewed-by: Rafael Antognolli Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 89 +++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 39 deletions(-) commit 74b4ea1e4e8a5134b8a201e7fd6a3b529f7d0035 Author: Paulo Zanoni Date: Tue Jul 14 16:29:14 2015 -0300 drm/i915: special-case dirtyfb for frontbuffer tracking First, an introduction. We currently have two types of GTT mmaps: the "normal" old mmap, and the WC mmap. For frontbuffer-related features that have automatic hardware tracking, only the non-WC mmap writes are detected by the hardware. Since inside the Kernel both are treated as ORIGIN_GTT, any features ignoring ORIGIN_GTT because of the hardware tracking are destined to fail. One of the special rules defined for the WC mmaps is that the user should call the dirtyfb IOCTL after he is done using the pointers, so that results in an intel_fb_obj_flush() call. The problem is that the dirtyfb is passing ORIGIN_GTT, so it is being ignored by FBC - even though the hardware tracking is not detecing the WC mmap operations. So in order to fix that without having to give up the automatic hardware tracking for GTT mmaps we transform the flush operation from dirtyfb into a special operation: ORIGIN_DIRTYFB. This commit fixes all the kms_frontbuffer_tracking subtests that contain "fbc" and "mmap-wc" in their names and are currently failing (for a total of 16 subtests). Signed-off-by: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_display.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 4e1e26f1b09398fad93ba24be816368714bede7c Author: Paulo Zanoni Date: Tue Jul 14 16:29:13 2015 -0300 drm/i915: don't disable FBC for pipe A when flipping pipe B Use the appropriate call. I know there's a discussion about whether we need this call here at all, but removing the call means we'll only update FBC after we get the page flip IRQ. So the user may only see the new frame a little after it should. Let's wait just a little bit more before removing this call since we can rely in the HW tracking for accurate flips. Signed-off-by: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 698e84ed89ffa09c6f00148c72b058302c311b5d Author: Paulo Zanoni Date: Tue Jul 14 16:29:11 2015 -0300 drm/i915: don't call intel_fbc_update() at intel_unpin_work_fn() Because intel_unpin_work_fn() already calls intel_frontbuffer_flip_complete() which will call intel_fbc_flush() which will call intel_fbc_update() when needed. We couldn't fix this previously due to the fact that FBC was not properly behaving as intended on frontbuffer flushes, but now that this is fixed, we can remove the additional call. Signed-off-by: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 --- 1 file changed, 3 deletions(-) commit 6f4551fe8e7f3561b97b7f74d8f4af08db01de6f Author: Paulo Zanoni Date: Tue Jul 14 16:29:10 2015 -0300 drm/i915: fix FBC frontbuffer tracking flushing code Due to the way busy_bits was handled, we were not doing any flushes if we didn't previously get an invalidate. Since it's possible to get flushes without an invalidate first, remove the busy_bits early return. So now that we don't have the busy_bits guard anymore we'll need the origin check for the GTT tracking (we were not doing anything on GTT flushes due to the GTT check at invalidate()). As a last detail, since we can get multiple consecutive flushes, disable FBC before updating it, otherwise intel_fbc_update() will just keep FBC enabled instead of restarting it. Notice that this does not fix any of the current IGT tests due to the fact that we still have a few intel_fbc() calls at points where we also have the frontbuffer tracking calls: we didn't fully convert to frontbuffer tracking yet. Once we remove those calls and start relying only on the frontbuffer tracking infrastructure we'll need this patch. Signed-off-by: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_fbc.c | 13 +++++++------ drivers/gpu/drm/i915/intel_frontbuffer.c | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) commit 20f9ed1568c00bbd9e6af31341d25e06bc3d4a16 Author: kbuild test robot Date: Tue Aug 4 02:47:48 2015 +0800 locking/static_keys: Make verify_keys() static Signed-off-by: Fengguang Wu Cc: Jason Baron Cc: Linus Torvalds Cc: Peter Zijlstra (Intel) Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150803184748.GA80634@lkp-ib04 Signed-off-by: Ingo Molnar lib/test_static_keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit accd0b9ec015d611eb7783dd86f1bb31bf8d62ab Author: Denys Vlasenko Date: Tue Aug 4 16:15:16 2015 +0200 jiffies: Force inlining of {m,u}msecs_to_jiffies() With this config: http://busybox.net/~vda/kernel_config_OPTIMIZE_INLINING_and_Os gcc-4.7.2 generates many copies of these tiny functions: msecs_to_jiffies (45 copies): 55 push %rbp 48 89 e5 mov %rsp,%rbp e8 59 ec 03 00 callq __msecs_to_jiffies 5d pop %rbp c3 retq usecs_to_jiffies (10 copies): 55 push %rbp 48 89 e5 mov %rsp,%rbp e8 5d 54 5e ff callq __usecs_to_jiffies 5d pop %rbp c3 retq See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66122 This patch fixes this via s/inline/__always_inline/ text data bss dec filename 86970954 17195912 36659200 140826066 vmlinux.before 86966150 17195912 36659200 140821262 vmlinux Signed-off-by: Denys Vlasenko Cc: Andrew Morton Cc: David Rientjes Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Thomas Graf Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1438697716-28121-3-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar include/linux/jiffies.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d14edb1648221e59fc9fd47127fcc57bf26d759f Author: Denys Vlasenko Date: Tue Aug 4 16:15:15 2015 +0200 x86/hweight: Force inlining of __arch_hweight{32,64}() With this config: http://busybox.net/~vda/kernel_config_OPTIMIZE_INLINING_and_Os gcc-4.7.2 generates many copies of these tiny functions: __arch_hweight32 (35 copies): 55 push %rbp e8 66 9b 4a 00 callq __sw_hweight32 48 89 e5 mov %rsp,%rbp 5d pop %rbp c3 retq __arch_hweight64 (8 copies): 55 push %rbp e8 5e c2 8a 00 callq __sw_hweight64 48 89 e5 mov %rsp,%rbp 5d pop %rbp c3 retq See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66122 This patch fixes this via s/inline/__always_inline/ To avoid touching 32-bit case where such change was not tested to be a win, reformat __arch_hweight64() to have completely disjoint 64-bit and 32-bit implementations. IOW: made #ifdef / 32 bits and 64 bits instead of having #ifdef / #else / #endif inside a single function body. Only 64-bit __arch_hweight64() is __always_inline'd. text data bss dec filename 86971120 17195912 36659200 140826232 vmlinux.before 86970954 17195912 36659200 140826066 vmlinux Signed-off-by: Denys Vlasenko Cc: Andrew Morton Cc: David Rientjes Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Thomas Graf Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1438697716-28121-2-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/include/asm/arch_hweight.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 1a1d48a4a8fde49aedc045d894efe67173d59fe0 Author: Denys Vlasenko Date: Tue Aug 4 16:15:14 2015 +0200 linux/bitmap: Force inlining of bitmap weight functions With this config: http://busybox.net/~vda/kernel_config_OPTIMIZE_INLINING_and_Os gcc-4.7.2 generates many copies of these tiny functions: bitmap_weight (55 copies): 55 push %rbp 48 89 e5 mov %rsp,%rbp e8 3f 3a 8b 00 callq __bitmap_weight 5d pop %rbp c3 retq hweight_long (23 copies): 55 push %rbp e8 b5 65 8e 00 callq __sw_hweight64 48 89 e5 mov %rsp,%rbp 5d pop %rbp c3 retq See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66122 This patch fixes this via s/inline/__always_inline/ While at it, replaced two "__inline__" with usual "inline" (the rest of the source file uses the latter). text data bss dec filename 86971357 17195880 36659200 140826437 vmlinux.before 86971120 17195912 36659200 140826232 vmlinux Signed-off-by: Denys Vlasenko Cc: Andrew Morton Cc: David Rientjes Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Thomas Graf Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1438697716-28121-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar include/linux/bitmap.h | 2 +- include/linux/bitops.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit e94c6a7a6df189289f0e84c15916571f44cf1ec6 Author: Herbert Xu Date: Tue Aug 4 21:23:14 2015 +0800 crypto: authenc - Add Kconfig dependency on CRYPTO_NULL CRYPTO_AUTHENC needs to depend on CRYPTO_NULL as authenc uses null for copying. Reported-by: Reported-by: Fengguang Wu Signed-off-by: Herbert Xu crypto/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 9dc20a649609c95ce7c5ac4282656ba627b67d49 Merge: d1b22e4 a6cd379 Author: David S. Miller Date: Tue Aug 4 23:57:45 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next Pablo Neira Ayuso says: ==================== Netfilter updates for net-next The following patchset contains Netfilter updates for net-next, they are: 1) A couple of cleanups for the netfilter core hook from Eric Biederman. 2) Net namespace hook registration, also from Eric. This adds a dependency with the rtnl_lock. This should be fine by now but we have to keep an eye on this because if we ever get the per-subsys nfnl_lock before rtnl we have may problems in the future. But we have room to remove this in the future by propagating the complexity to the clients, by registering hooks for the init netns functions. 3) Update nf_tables to use the new net namespace hook infrastructure, also from Eric. 4) Three patches to refine and to address problems from the new net namespace hook infrastructure. 5) Switch to alternate jumpstack in xtables iff the packet is reentering. This only applies to a very special case, the TEE target, but Eric Dumazet reports that this is slowing down things for everyone else. So let's only switch to the alternate jumpstack if the tee target is in used through a static key. This batch also comes with offline precalculation of the jumpstack based on the callchain depth. From Florian Westphal. 6) Minimal SCTP multihoming support for our conntrack helper, from Michal Kubecek. 7) Reduce nf_bridge_info per skbuff scratchpad area to 32 bytes, from Florian Westphal. 8) Fix several checkpatch errors in bridge netfilter, from Bernhard Thaler. 9) Get rid of useless debug message in ip6t_REJECT, from Subash Abhinov. ==================== Signed-off-by: David S. Miller commit 703867e2f252bbd218668df4131ee1e60ba29ed3 Author: Woodrow Shen Date: Wed Aug 5 12:34:12 2015 +0800 ALSA: hda - Fix Dell laptop for internal mic/headset mic The new Dell laptop with ALC3266 can't use internal microphone to record. Also, the 3 ring headset mic doesn't work on it. For src of patch_realtek.c, only the pin cfg of Nid 0x17 is different, so the Nid 0x17 is added into pin quirk, and others are defined to macro ALC298_STANDARD_PINS in common use. Codec: Realtek ALC3266 Vendor Id: 0x10ec0298 Subsystem Id: 0x102806e5 BugLink: https://bugs.launchpad.net/bugs/1481575 Signed-off-by: Woodrow Shen Signed-off-by: Takashi Iwai sound/pci/hda/patch_realtek.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit ed9c87b33147e5b007e66a282b9c8c307fbf8bf9 Author: Jun Nie Date: Wed Aug 5 13:23:27 2015 +0800 dmaengine: zxdma: Fix force stop bug DMA will not stop when clearing enable bit till all transaction is done. The bug is exposed in audio playback because ring DMA chain never stop. Force hardware to stop with setting FORCE bit. Signed-off-by: Jun Nie Signed-off-by: Vinod Koul drivers/dma/zx296702_dma.c | 1 + 1 file changed, 1 insertion(+) commit 2092539b7735906deda8b1fca4b31b4c4eb65e0d Author: Jun Nie Date: Wed Aug 5 13:23:26 2015 +0800 dmaengine: zxdma: Fix data width bug Align src and dst width to fix data alignment issue as trailing single transaction that does not fill a full burst require identical src/dst data width. Burst length limitation can be addressed well too. Signed-off-by: Jun Nie Signed-off-by: Vinod Koul drivers/dma/zx296702_dma.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 379e4f756b915bcc35958365e5d1326b3b54efce Author: K. Y. Srinivasan Date: Sat Aug 1 16:08:21 2015 -0700 Drivers: hv: vmbus: Consider ND NIC in binding channels to CPUs We cycle through all the "high performance" channels to distribute load across the available CPUs. Process the NetworkDirect as a high performance device. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 1 + 1 file changed, 1 insertion(+) commit cc2dd4027a43bb36c846f195a764edabc0828602 Author: Denis V. Lunev Date: Sat Aug 1 16:08:20 2015 -0700 mshyperv: fix recognition of Hyper-V guest crash MSR's Hypervisor Top Level Functional Specification v3.1/4.0 notes that cpuid (0x40000003) EDX's 10th bit should be used to check that Hyper-V guest crash MSR's functionality available. This patch should fix this recognition. Currently the code checks EAX register instead of EDX. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman arch/x86/include/asm/mshyperv.h | 1 + arch/x86/kernel/cpu/mshyperv.c | 1 + drivers/hv/vmbus_drv.c | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) commit 4a54243fc08f0edda1303bb666f0da68c378c036 Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:19 2015 -0700 Drivers: hv: vmbus: don't send CHANNELMSG_UNLOAD on pre-Win2012R2 hosts Pre-Win2012R2 hosts don't properly handle CHANNELMSG_UNLOAD and wait_for_completion() hangs. Avoid sending such request on old hosts. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel_mgmt.c | 4 ++++ 1 file changed, 4 insertions(+) commit e26009aad095feae45a6e79bb022c55a969ecded Author: Nik Nyby Date: Sat Aug 1 16:08:18 2015 -0700 Drivers: hv: vmbus: fix typo in hv_port_info struct This fixes a typo: base_flag_bumber to base_flag_number Signed-off-by: Nik Nyby Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hyperv_vmbus.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9dd6a06430c94299651d74b9ed5ca8396ab8ff1f Author: Dan Carpenter Date: Sat Aug 1 16:08:17 2015 -0700 hv: util: checking the wrong variable We don't catch this allocation failure because there is a typo and we check the wrong variable. Fixes: 14b50f80c32d ('Drivers: hv: util: introduce hv_utils_transport abstraction') Signed-off-by: Dan Carpenter Reviewed-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 b81658cf5d44e07c70c93e3b2aefe848eaaba99f Author: K. Y. Srinivasan Date: Sat Aug 1 16:08:14 2015 -0700 Drivers: hv: vmbus: Permit sending of packets without payload The guest may have to send a completion packet back to the host. To support this usage, permit sending a packet without a payload - we would be only sending the descriptor in this case. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/channel.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b6ddeae1603dfa55e857ba1520f5acea83f8cf1c Author: Alex Ng Date: Sat Aug 1 16:08:13 2015 -0700 Drivers: hv: balloon: Enable dynamic memory protocol negotiation with Windows 10 hosts Support Win10 protocol for Dynamic Memory. Thia patch allows guests on Win10 hosts to hot-add memory even when dynamic memory is not enabled on the guest. Signed-off-by: Alex Ng Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_balloon.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit 25ef06fe27a292ad33155045ef7a123be4c0b6ab Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:12 2015 -0700 Drivers: hv: fcopy: dynamically allocate smsg_out in fcopy_send_data() struct hv_start_fcopy is too big to be on stack on i386, the following warning is reported: >> drivers/hv/hv_fcopy.c:159:1: warning: the frame size of 1088 bytes is larger than 1024 bytes [-Wframe-larger-than=] Reported-by: kbuild test robot Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_fcopy.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit b36fda339729a974a8838978dcdc581d8ce68fd9 Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:11 2015 -0700 Drivers: hv: kvp: check kzalloc return value kzalloc() return value check was accidentally lost in 11bc3a5fa91f: "Drivers: hv: kvp: convert to hv_utils_transport" commit. We don't need to reset kvp_transaction.state here as we have the kvp_timeout_func() timeout function and in case we're in OOM situation it is preferable to wait. Reported-by: Dan Carpenter Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv_kvp.c | 3 +++ 1 file changed, 3 insertions(+) commit 510f7aef65bb7ed22cf9c7f94f955727f963ede4 Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:10 2015 -0700 Drivers: hv: vmbus: prefer 'die' notification chain to 'panic' current_pt_regs() sometimes returns regs of the userspace process and in case of a kernel crash this is not what we need to report. E.g. when we trigger crash with sysrq we see the following: ... RIP: 0010:[] [] sysrq_handle_crash+0x16/0x20 RSP: 0018:ffff8800db0a7d88 EFLAGS: 00010246 RAX: 000000000000000f RBX: ffffffff820a0660 RCX: 0000000000000000 ... at the same time current_pt_regs() give us: ip=7f899ea7e9e0, ax=ffffffffffffffda, bx=26c81a0, cx=7f899ea7e9e0, ... These registers come from the userspace process triggered the crash. As we don't even know which process it was this information is rather useless. When kernel crash happens through 'die' proper regs are being passed to all receivers on the die_chain (and panic_notifier_list is being notified with the string passed to panic() only). If panic() is called manually (e.g. on BUG()) we won't get 'die' notification so keep the 'panic' notification reporter as well but guard against double reporting. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/vmbus_drv.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) commit b4370df2b1f5158de028e167974263c5757b34a6 Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:09 2015 -0700 Drivers: hv: vmbus: add special crash handler Full kernel hang is observed when kdump kernel starts after a crash. This hang happens in vmbus_negotiate_version() function on wait_for_completion() as Hyper-V host (Win2012R2 in my testing) never responds to CHANNELMSG_INITIATE_CONTACT as it thinks the connection is already established. We need to perform some mandatory minimalistic cleanup before we start new kernel. Reported-by: K. Y. Srinivasan Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman arch/x86/include/asm/mshyperv.h | 2 ++ arch/x86/kernel/cpu/mshyperv.c | 22 ++++++++++++++++++++++ drivers/hv/vmbus_drv.c | 14 ++++++++++++++ 3 files changed, 38 insertions(+) commit d7646eaa7678fe5adc42247b4bdfbe9d9db8c253 Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:08 2015 -0700 Drivers: hv: don't do hypercalls when hypercall_page is NULL At the very late stage of kexec a driver (which are not being unloaded) can try to post a message or signal an event. This will crash the kernel as we already did hv_cleanup() and the hypercall page is NULL. Move all common (between 32 and 64 bit code) declarations to the beginning of the do_hypercall() function. Unfortunately we have to write the !hypercall_page check twice to not mix declarations and code. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 2517281d63a2b09d94aedfb522943617048f337e Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:07 2015 -0700 Drivers: hv: vmbus: add special kexec handler When general-purpose kexec (not kdump) is being performed in Hyper-V guest the newly booted kernel fails with an MCE error coming from the host. It is the same error which was fixed in the "Drivers: hv: vmbus: Implement the protocol for tearing down vmbus state" commit - monitor pages remain special and when they're being written to (as the new kernel doesn't know these pages are special) bad things happen. We need to perform some minimalistic cleanup before booting a new kernel on kexec. To do so we need to register a special machine_ops.shutdown handler to be executed before the native_machine_shutdown(). Registering a shutdown notification handler via the register_reboot_notifier() call is not sufficient as it happens to early for our purposes. machine_ops is not being exported to modules (and I don't think we want to export it) so let's do this in mshyperv.c The minimalistic cleanup consists of cleaning up clockevents, synic MSRs, guest os id MSR, and hypercall MSR. Kdump doesn't require all this stuff as it lives in a separate memory space. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman arch/x86/include/asm/mshyperv.h | 2 ++ arch/x86/kernel/cpu/mshyperv.c | 24 ++++++++++++++++++++++++ drivers/hv/vmbus_drv.c | 14 ++++++++++++++ 3 files changed, 40 insertions(+) commit 2b94ed245861a7d378dcde6eef7fa7717e06e349 Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:06 2015 -0700 kexec: define kexec_in_progress in !CONFIG_KEXEC case If some piece of code wants to check kexec_in_progress it has to be put in #ifdef CONFIG_KEXEC block to not break the build in !CONFIG_KEXEC case. Overcome this limitation by defining kexec_in_progress to false. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman include/linux/kexec.h | 1 + 1 file changed, 1 insertion(+) commit 06210b42f33ea1c29a90f4db2d88be91c511154b Author: Vitaly Kuznetsov Date: Sat Aug 1 16:08:05 2015 -0700 Drivers: hv: vmbus: remove hv_synic_free_cpu() call from hv_synic_cleanup() We already have hv_synic_free() which frees all per-cpu pages for all CPUs, let's remove the hv_synic_free_cpu() call from hv_synic_cleanup() so it will be possible to do separate cleanup (writing to MSRs) and final freeing. This is going to be used to assist kexec. Signed-off-by: Vitaly Kuznetsov Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman drivers/hv/hv.c | 2 -- drivers/hv/vmbus_drv.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) commit 77a68e56aae141d3e9c740a0ac43362af75d4890 Author: Maxime Ripard Date: Mon Jul 20 10:41:32 2015 +0200 dmaengine: Add an enum for the dmaengine alignment constraints Most drivers need to set constraints on the buffer alignment for async tx operations. However, even though it is documented, some drivers either use a defined constant that is not matching what the alignment variable expects (like DMA_BUSWIDTH_* constants) or fill the alignment in bytes instead of power of two. Add a new enum for these alignments that matches what the framework expects, and convert the drivers to it. Signed-off-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/coh901318.c | 2 +- drivers/dma/dma-jz4780.c | 2 +- drivers/dma/edma.c | 2 +- drivers/dma/imx-dma.c | 2 +- drivers/dma/k3dma.c | 3 +-- drivers/dma/mic_x100_dma.h | 2 +- drivers/dma/mmp_pdma.c | 3 +-- drivers/dma/mmp_tdma.c | 3 +-- drivers/dma/ste_dma40.c | 2 +- drivers/dma/sun6i-dma.c | 2 +- drivers/dma/xgene-dma.c | 5 ++--- include/linux/dmaengine.h | 25 ++++++++++++++++++++----- 12 files changed, 32 insertions(+), 21 deletions(-) commit 28eb232f217583e7bece8e9d6b26cf55a694ceae Author: Axel Lin Date: Fri Jul 10 22:13:19 2015 +0800 dmaengine: ti-dma-crossbar: Fix checking return value of devm_ioremap_resource devm_ioremap_resource returns ERR_PTR on failure. Signed-off-by: Axel Lin Acked-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/ti-dma-crossbar.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 68be64ca7e2adc4f16077c3b0feb8719f89119bd Author: Jakub Kicinski Date: Fri Jul 31 14:44:24 2015 +0200 sc16is7xx: constify devtype devtype structures are all declared as const. Compiler does not complain because we cast their pointers to save them in .driver_data. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c64349722d141712d8500b5ad377d3117be46ba8 Author: Jakub Kicinski Date: Fri Jul 31 14:44:23 2015 +0200 sc16is7xx: support multiple devices We currently register the uart driver during device probe which makes it hard to support more than one chip. Move the driver registration to module init/exit time and preallocate space for up to 8 lines (4-8 chips). Reported-by: Michael Allwright Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 73 ++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 24 deletions(-) commit e92a886bf7841cd163860165db680cfbca5c7f0d Author: Jakub Kicinski Date: Fri Jul 31 14:44:22 2015 +0200 sc16is7xx: save and use per-chip line number In preparation of supporting multiple devices we should save the per-chip line number (0 or 1), because the uart_port line will reflect system-wide uart number and will be offseted for chips other than the first to register. Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) commit 8cd90e50d1408c65c355084b1c7f8f9085f49c6b Author: Jun Nie Date: Fri Jul 31 15:49:19 2015 +0800 uart: pl011: Add support to ZTE ZX296702 uart Support ZTE uart with some registers differing offset. Probe as platform device for not AMBA IP ID is available on ZTE uart. Signed-off-by: Jun Nie Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 4 +- drivers/tty/serial/amba-pl011.c | 195 +++++++++++++++++++++++++++++++++++++--- include/linux/amba/serial.h | 14 +++ 3 files changed, 197 insertions(+), 16 deletions(-) commit 09dcc7dfc05b31bf0bbcd1511cd1a2644908d5c8 Author: Jun Nie Date: Fri Jul 31 15:49:18 2015 +0800 uart: pl011: Improve LCRH register access decision Improve LCRH register access decision as ARM PL011 lcrh register serve as both TX and RX, while other SOC may implement TX and RX function with separated register. Signed-off-by: Jun Nie Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 2c096a9eedc6841d3610545f4e6c3d72bd0962be Author: Jun Nie Date: Fri Jul 31 15:49:17 2015 +0800 uart: pl011: Introduce register look up table Introduce register look up table as different SOC venders may have different register offset for the some register. Signed-off-by: Jun Nie Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 55 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 5 deletions(-) commit 7b753f318d1456c8e7740f3bd96d1dbb362d5449 Author: Jun Nie Date: Fri Jul 31 15:49:16 2015 +0800 uart: pl011: Introduce register accessor Introduce register accessor to ease loop up table access in later patch. Signed-off-by: Jun Nie Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 263 +++++++++++++++++++++------------------- 1 file changed, 141 insertions(+), 122 deletions(-) commit 534e14e2293d8cd714b94513686228453b21fae2 Author: Jun Nie Date: Fri Jul 31 15:49:15 2015 +0800 uart: pl011: Rename regs with enumeration Rename regs with enumeration to generalize register names. Signed-off-by: Jun Nie Reviewed-by: Peter Hurley Signed-off-by: Jun Nie Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/amba-pl011.c | 207 ++++++++++++++++++++++------------------ 1 file changed, 114 insertions(+), 93 deletions(-) commit 89c043a6cb2d4525d48a38ed78d5f0f5672338b3 Author: Adam Lee Date: Mon Aug 3 13:28:13 2015 +0800 serial: 8250_pci: Add support for Pericom PI7C9X795[1248] Pericom PI7C9X795[1248] are Uno/Dual/Quad/Octal UART devices, this patch enables them, also defines PCI_VENDOR_ID_PERICOM here. Signed-off-by: Adam Lee Cc: stable Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 82 ++++++++++++++++++++++++++++---------- 1 file changed, 61 insertions(+), 21 deletions(-) commit 736cd79f483fd7a1e0b71e6eaddf01d8d87fbbbb Author: Robert Baldyga Date: Fri Jul 31 10:58:28 2015 +0200 serial: samsung: fix DMA for FIFO smaller than cache line size So far DMA mode were activated when only number of bytes to send was equal or greater than min_dma_size. Due to requirement that DMA transaction buffer should be aligned to cache line size, the excessive bytes were written to FIFO before starting DMA transaction. The problem occurred when FIFO size were smaller than cache alignment, because writing all excessive bytes to FIFO would fail. It happened in DMA mode when PIO interrupts disabled, which caused driver hung. The solution is to test if buffer is alligned to cache line size before activating DMA mode, and if it's not, running PIO mode to align buffer and then starting DMA transaction. In PIO mode, when interrupts are enabled, lack of space in FIFO isn't the problem, so buffer aligning will always finish with success. Cc: # v3.18+ Reported-by: Krzysztof Kozlowski Signed-off-by: Robert Baldyga Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/samsung.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) commit 81ccb2a69f76b88295a1da9fc9484df715fe3bfa Author: Marek Szyprowski Date: Fri Jul 31 10:58:27 2015 +0200 serial: samsung: fix DMA mode enter condition for small FIFO sizes Due to some of serial ports can have FIFO size smaller than cache line size, and because of need to align DMA buffer address to cache line size, it's necessary to calculate minimum number of bytes for which we want to start DMA transaction to be at least cache line size. The simplest way to meet this requirement is to get maximum of cache line size and FIFO size. Cc: # v3.18+ Reported-by: Krzysztof Kozlowski Signed-off-by: Marek Szyprowski Signed-off-by: Robert Baldyga Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/samsung.c | 13 +++++++++++-- drivers/tty/serial/samsung.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) commit 9e31364fc3272073ec8c5fac18a3e01d4f013418 Author: Peter Hurley Date: Fri Jul 31 16:59:52 2015 -0400 serial: core: Remove tty port activate() and shutdown() methods serial core does not use tty_port_open() or tty_port_close(); serial core defines and extends it's own tty open() and close() methods (uart_open() and uart_close(), respectively). Remove the tty_port activate() and shutdown() initializations, and the uart_port_activate() function, which is never called. NB: uart_port_shutdown() is used by uart_close() => uart_shutdown() call chain (but not via the tty_port methods). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_core.c | 7 ------- 1 file changed, 7 deletions(-) commit 6fb98fb3031359af42a6ee6984b477cbcfdca7bd Author: Peter Hurley Date: Fri Jul 31 16:59:51 2015 -0400 serial: core: Use proper spinlock flavor in uart_close() uart_close() runs in non-atomic context only; use spin_lock/unlock_irq instead of saving the interrupt state (which == on). Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/serial_core.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 2a0e5ef6cfa24351791fbd4339f562211b83afae Author: Sekhar Nori Date: Thu Jul 30 18:27:47 2015 +0530 ARM: dts: dra7: workaround UART module disable errata Add "ti,dra742-uart" to the compatible list so the driver workaround for UART module disable errata is enabled. This does not break backward compatibility as existing DTBs should continue to work with newer kernels albeit without the capability to idle the UART module when DMA is used. Acked-by: Tony Lindgren Signed-off-by: Sekhar Nori Signed-off-by: Greg Kroah-Hartman arch/arm/boot/dts/dra7.dtsi | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit a649943522de07e67a5981b1ff227684b94bada4 Author: Cyrille Pitchen Date: Thu Jul 30 16:33:38 2015 +0200 tty/serial: at91: fix I/O accesses on RHR and THR for AVR32 This patch fixes I/O accesses on the Receiver Holding Register and on the Transmitter Holding Register. Indeed AVR32 can only perform 32bit I/O accesses on registers: using 8bit I/O accesses would read or write garbage data. Fixes: commit b5199d468177 ("tty/serial: at91: add support to FIFOs") Signed-off-by: Cyrille Pitchen Tested-by: Andy Shevchenko Acked-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) commit b737eeb09e3068b092e116f855aa1973fa24c88c Author: Geert Uytterhoeven Date: Sun Aug 2 11:09:52 2015 +0200 serial: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0a6c301a2db2f9af0478a83c15d8ec5cdac65eb9 Author: Qipeng Zha Date: Wed Jul 29 18:23:32 2015 +0800 serial: 8250: Auto CTS control by HW if AFE enabled According to DesignWare 8250 spec, if auto flow control mode is enabled, a change in CTS does not cause an interrupt, so sw-assisted CTS flow control mode will not work properly. There reported an GPS firmware download failure issue, and we verified the root cause is, the default sw-assisted CTS flow control mode can not work properly since no interrupt when got CTS signal. This patch is to enable auto CTS mode by defaut if CRTSCTS is enable for DesignWare 8250 controller. Signed-off-by: Huiquan Zhong Signed-off-by: Qipeng Zha Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_dw.c | 5 +++++ drivers/tty/serial/8250/8250_pci.c | 4 ++++ 2 files changed, 9 insertions(+) commit 7d07ada047a4e1f5ff98757ce34c0fdd13d8ec93 Author: Uwe Kleine-König Date: Mon Jul 27 18:09:33 2015 +0200 serial: mpc52xx: let tx_empty callback return either 0 or TIOCSER_TEMT Documenation/serial/driver requests that the tx_empty callback should return 0 if there are still chars in the fifo or shifter or TIOCSER_TEMT (0x01) if no character is pending to be sent. Fix the mpc52xx serial driver to not return MPC52xx_PSC_SR_TXEMP (i.e. 0x0800) but TIOCSER_TEMT as documented. Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/mpc52xx_uart.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 7b9c5162c1829686baea1962177842c3fa1ea81c Author: Niklas Cassel Date: Sat Jul 25 02:02:46 2015 +0200 serial: etraxfs-uart: use mctrl_gpio helpers for handling modem signals In order to use the mctrl_gpio helpers, we change the DT bindings: ri-gpios renamed to rng-gpios. cd-gpios renamed to dcd-gpios. However, no in-tree dts/dtsi specifies these, so no worries. Signed-off-by: Niklas Cassel Reviewed-by: Guenter Roeck Tested-by: Guenter Roeck Acked-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman .../bindings/serial/axis,etraxfs-uart.txt | 6 +++- drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/etraxfs-uart.c | 40 ++++++---------------- 3 files changed, 16 insertions(+), 31 deletions(-) commit 9625734ff75af35d9878c693e3f92237aa3c1ae6 Author: Niklas Cassel Date: Sat Jul 25 02:00:40 2015 +0200 serial: etraxfs-uart: remove empty functions Implementing enable_ms is optional by serial_core. check_modem_status is just an empty local function. Signed-off-by: Niklas Cassel Reviewed-by: Guenter Roeck Tested-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/etraxfs-uart.c | 10 ---------- 1 file changed, 10 deletions(-) commit eead035a35b59df9f956139cb2c73141751a246e Author: Tomas Winkler Date: Tue Aug 4 14:30:11 2015 +0300 mei: remove check on pm_runtime_active in __mei_cl_disconnect Remove bogus check on pm_runtime_active that prevented disconnection from a client in case the device was resuming from power gating but not yet active. Fix regression introduced by 18901357e70ae29e3fd1c58712a6847c2ae52eae mei: disconnect on connection request timeout Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 3 --- 1 file changed, 3 deletions(-) commit c9f85a90d41476aca2d3b60f98ab87d7ae1b8612 Author: Andreas Dannenberg Date: Tue Aug 4 11:36:17 2015 -0500 power: bq24190_charger: Fix charge type sysfs property Access to the BQ24190's configurable charge type property (none, trickle, fast) is being masked by an incorrect power_supply_property entry. After applying this patch a new 'charge_type' property will appear in the bq24190-charger sysfs folder backed up by getters/setters already present in the driver. Signed-off-by: Andreas Dannenberg Acked-by: Dan Murphy Acked-by: Andrew F. Davis Signed-off-by: Sebastian Reichel drivers/power/bq24190_charger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1e8b82c1ff3bc52c5e4265d66fe5c6da9a66e2e6 Author: Geert Uytterhoeven Date: Sun Aug 2 11:09:50 2015 +0200 power: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Sebastian Reichel drivers/power/Kconfig | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 63369b2b99d718ca2777bf8d71360de75888f05b Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:33 2015 +0200 power: Export I2C module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Sebastian Reichel drivers/power/bq24190_charger.c | 1 + drivers/power/rt5033_battery.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 2f2560e348a875104a0d5394c938da2a41e47228 Author: Jun Nie Date: Tue Jul 21 11:01:06 2015 +0800 dmaengine: zxdma: Support cyclic dma Support cyclic dma for audio playback Signed-off-by: Jun Nie Signed-off-by: Vinod Koul drivers/dma/zx296702_dma.c | 93 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 84 insertions(+), 9 deletions(-) commit 21ae40404f3ca66fb37dd26e7b67eb109f2453ab Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: Increase current carefully while watching voltage. The USB Battery Charging spec (BC1.2) suggests a dedicated charging port can deliver from 0.5 to 5.0A at between 4.75 and 5.25 volts. To choose the "correct" current voltage setting requires a trial and error approach: try to draw current and see if the voltage drops too low. Even with a configured Standard Downstream Port, it may not be possible to reliably pull 500mA - depending on cable quality and source quality I have reports of charging failure due to the voltage dropping too low. To address both these concerns, this patch introduce incremental current setting. The current pull from VBUS is increased in steps of 20mA every 100ms until the target is reached or until the measure voltage drops below 4.75V. If the voltage does go too low, the target current is reduced by 20mA and kept there. This applies to currents selected automatically, or to values set via sysfs. So setting a large value will cause the maximum available to be used - up to the limit of 1.7A imposed by the hardware. Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 67 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 61 insertions(+), 6 deletions(-) commit b04b908d8a2901c2cc59db87defd9c08bd4293cc Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: add ac/mode to match usb/mode This allows AC charging to be turned off, much like usb charging. "continuous" mode is not available though. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel .../ABI/testing/sysfs-class-power-twl4030 | 10 +++++++ drivers/power/twl4030_charger.c | 35 +++++++++++++++++----- 2 files changed, 37 insertions(+), 8 deletions(-) commit 7f4a633d21331155ee06c5ee44749ed35a3a3cc5 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: add software controlled linear charging mode. Add a 'continuous' option for usb charging which enables the "linear" charging mode of the twl4030. Linear charging does a good job with not-so-reliable power sources. Auto mode does not work well as it switches off when voltage drops momentarily. Care must be taken not to over-charge. It was used with a bike hub dynamo since a year or so. In that case there are automatically charging stops when the cyclist needs a break. Original-by: Andreas Kemnade Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel .../ABI/testing/sysfs-class-power-twl4030 | 9 ++++ drivers/power/twl4030_charger.c | 55 ++++++++++++++++++++-- 2 files changed, 59 insertions(+), 5 deletions(-) commit 22d4c33f7335ddf6deda26630c78650e133bfe72 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: enable manual enable/disable of usb charging. 'off' or 'auto' to /sys/class/power/twl4030_usb/mode will now enable or disable charging from USB port. Normally this is enabled on 'plug' and disabled on 'unplug'. Unplug will still disable charging. 'plug' will only enable it if 'auto' if selected. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel .../ABI/testing/sysfs-class-power-twl4030 | 11 ++++ drivers/power/twl4030_charger.c | 59 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) commit aca3c3546396b305fff79f09883cff48a908aac0 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: allow max_current to be managed via sysfs. 'max_current' sysfs attributes are created which allow the max to be set. Whenever a current source changes, the default is restored. This will be followed by a uevent, so user-space can decide to update again. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel .../ABI/testing/sysfs-class-power-twl4030 | 15 +++++ drivers/power/twl4030_charger.c | 72 ++++++++++++++++++++++ 2 files changed, 87 insertions(+) commit e4ae537e0482e99eeaa5373d39932fe65a477c21 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: distinguish between USB current and 'AC' current The twl4030 charger has two current sources, 'USB' and 'AC' (presumably "Accessory Charger" because it isn't Alternating Current). If 'AC' is providing current, we should set the current limit differently to when it isn't (and so USB is used). So split 'cur' into 'usb_cur' and 'ac_cur' and use accordingly. Now we must review the current setting on any interrupt or USB event which might indicate that the charger-source has changed. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) commit 056f6c87028544de934f27caf95aa1545d585767 Author: Geert Uytterhoeven Date: Fri Jul 10 12:07:25 2015 +0200 dmaengine: shdma: Make dummy shdma_chan_filter() always return false If CONFIG_SH_DMAE_BASE (which is required for DMA engine support for legacy SH, SH/R-Mobile, and R-Car Gen1, but not for R-Car Gen2) is not enabled, but CONFIG_RCAR_DMAC (for R-Car Gen2 DMA engine support) is, and the DTS doesn't provide a "dmas" property for a device, dma_request_slave_channel_compat() incorrectly succeeds, and returns a DMA channel. However, when trying to use that DMA channel later, it fails with: rcar-dmac e6700000.dma-controller: rcar_dmac_prep_slave_sg: bad parameter: len=1, id=-22 (Fortunately most drivers can handle this failure, and fall back to PIO) The reason for this is that a NULL legacy filter function is used, which actually means "all channels are OK", not "do not match". If CONFIG_SH_DMAE_BASE is enabled (like in shmobile_defconfig, which supports other SoCs besides R-Car Gen2), shdma_chan_filter() correctly returns false, as no available channel on R-Car Gen2 matches a shdma-base channel. If the DTS does provide a "dmas" property, dma_request_slave_channel() succeeds, and legacy filter-based matching is not used. To fix this, change shdma_chan_filter from being NULL to a dummy function that always returns false, like is done on other platforms. Signed-off-by: Geert Uytterhoeven Signed-off-by: Vinod Koul include/linux/shdma-base.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 8391ecf465ec5c8ccef547267df6d40beb8999a4 Author: Shengjiu Wang Date: Fri Jul 10 17:08:16 2015 +0800 dmaengine: imx-sdma: Add device to device support This patch adds DEV_TO_DEV support for i.MX SDMA driver to support data transfer between two peripheral FIFOs. The per_2_per script requires two peripheral addresses and two DMA requests, and it need to check the src addr and dst addr is in the SPBA bus space or in the AIPS bus space. Signed-off-by: Shengjiu Wang Signed-off-by: Vinod Koul drivers/dma/imx-sdma.c | 152 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 140 insertions(+), 12 deletions(-) commit 1098cb58aed8eb4e06302d947a38bbfb69c8b4ba Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: allow fine control of charger current. The twl4030 allows control of the incoming current. Part of this control is a 'CGAIN' setting which doubles the range for half the precision. This control affects several different current setting, so all need to be updated at once when CGAIN is changed. With this patch, all of these current setting are managed by the driver, but most are left at their default settings. The current drawn is set to 500mA if the allow_usb module parameter is set, and to 100mA otherwise. More fine control will appear in later patches. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 168 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 160 insertions(+), 8 deletions(-) commit 3b542f089dcbdcf1c21a01927fbc6d5116af01f6 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: split uA calculation into a function. We will need this calculation in other places, so create functions to map between register value and uA value. Acked-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 48 ++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 13 deletions(-) commit 6e37ec8c77e3e6580cbb844dfeea0fb3970c0a35 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: trust phy to determine when USB power is available. The usb phy driver already determines when VBUS is available, so repeating the test in the charger driver is pointless duplication. On probe, process the last event from the phy, and from then on, do whatever the phy tells us without double-checking. Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) commit 3fc3895e4fe17ee92ae1d1bb9f04da6069e8c370 Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node Now that twl4030_bci_probe can safely return -EPROBE_DEFER, do so when devm_usb_get_phy_by_node returns that error. Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 7396f708b9f1d8874dda9c6386c37b065d99b68f Author: Pavel Machek Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: convert to module_platform_driver instead of ..._probe. Drivers using module_platform_driver_probe cannot return EPROBE_DEFER from the probe function, which makes them rather useless these days... Convert to module_platform_driver() so EPROBE_DEFER can be used. Signed-off-by: Pavel Machek Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e57c4a67d71275e4a15b9f0f92a322ea27b26a6e Author: NeilBrown Date: Thu Jul 30 10:11:24 2015 +1000 twl4030_charger: use runtime_pm to keep usb phy active while charging. The twl4030 usb phy needs to be active while we are using the USB VBUS as a current source for charging. In particular, the usb3v1 regulator must be enabled and the PHY_PWR_PHYPWD bit must be set to keep the phy powered. commit ab37813f4093a5f59cb8e083cde277289dc72ed3 twl4030_charger: Allow charger to control the regulator that feeds it gave the charger control over the regulator, but didn't resolve the PHY_PWR_PHYPWD issue. Now that both of these are controlled by runtime_pm in phy-twl4030-usb, we can simply take a runtime_pm reference to the USB phy whenever the charger wants to use it as a current source. So this patch reverts the above commit, and adds the necessary runtime_pm calls. Acked-by: Lee Jones Signed-off-by: NeilBrown Signed-off-by: Sebastian Reichel drivers/mfd/twl-core.c | 9 ++++----- drivers/power/twl4030_charger.c | 18 +++++------------- 2 files changed, 9 insertions(+), 18 deletions(-) commit 5a4f3cf0d1f02884c0a64488d22b3bb4bce31b44 Merge: cd66d5c 5f22699 24b390a dff22d2 ccbc175 Author: Bjorn Helgaas Date: Tue Aug 4 20:54:05 2015 -0500 Merge branches 'pci/irq', 'pci/misc', 'pci/resource' and 'pci/virtualization' into next * pci/irq: PCI/MSI: Free legacy IRQ when enabling MSI/MSI-X PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq() PCI: Add pcibios_alloc_irq() and pcibios_free_irq() * pci/misc: PCI: Remove unused "pci_probe" flags PCI: Add VPD function 0 quirk for Intel Ethernet devices PCI: Add dev_flags bit to access VPD through function 0 PCI / ACPI: Fix pci_acpi_optimize_delay() comment PCI: Remove a broken link in quirks.c PCI: Remove useless redundant code PCI: Simplify pci_find_(ext_)capability() return value checks PCI: Move PCI_FIND_CAP_TTL to pci.h and use it in quirks PCI: Add pcie_downstream_port() (true for Root and Switch Downstream Ports) PCI: Fix pcie_port_device_resume() comment PCI: Shift PCI_CLASS_NOT_DEFINED consistently with other classes PCI: Revert aeb30016fec3 ("PCI: add Intel USB specific reset method") PCI: Fix TI816X class code quirk PCI: Fix generic NCR 53c810 class code quirk PCI: Use PCI_CLASS_SERIAL_USB instead of bare number PCI: Add quirk for Intersil/Techwell TW686[4589] AV capture cards PCI: Remove Intel Cherrytrail D3 delays * pci/resource: PCI: Call pci_read_bridge_bases() from core instead of arch code * pci/virtualization: PCI: Restore ACS configuration as part of pci_restore_state() commit cd66d5c3df7c96cbf75010b964b94032ceca8889 Merge: bc0195a 0f41421 8ef54f2 e4a8f8e Author: Bjorn Helgaas Date: Tue Aug 4 20:52:29 2015 -0500 Merge branches 'pci/host-designware', 'pci/host-xgene' and 'pci/host-xilinx' into next * pci/host-designware: PCI: designware: Don't complain missing *config* reg space if va_cfg0 is set * pci/host-xgene: PCI: xgene: Add support for a 64-bit prefetchable memory window arm64: dts: Add APM X-Gene PCIe 64-bit prefetchable window PCI: xgene: Drop owner assignment from platform_driver * pci/host-xilinx: PCI: xilinx: Check for MSI interrupt flag before handling as INTx commit a14c0f8fefcb95847fe3a94a4085a7ceb88f19e5 Author: Nick Dyer Date: Tue Aug 4 16:22:54 2015 -0700 MAINTAINERS: Add maintainer for atmel_mxt_ts Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) commit 507584e202c598b5ba2c3cf5fa283ebbda9edc26 Author: Nick Dyer Date: Tue Aug 4 16:58:05 2015 -0700 Input: atmel_mxt_ts - remove warning on zero T44 count Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit eafc0c8783f091ae9426fc8288054a99eb39207f Author: Nick Dyer Date: Tue Aug 4 16:57:40 2015 -0700 Input: atmel_mxt_ts - initialise input slots with INPUT_MT_DIRECT This indicates the device coordinates should be directly mapped to screen. This is valid since scaling/flipping/rotation should be done by configuring the MXT device. It also flags to Android using INPUT_PROP_DIRECT that the device should be treated as a touch screen by default, and removes the necessity for a default IDC file. Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 2 ++ 1 file changed, 2 insertions(+) commit 885f3fb9fa1f9e185e8a4e905157087495734349 Author: Nick Dyer Date: Tue Aug 4 16:57:25 2015 -0700 Input: atmel_mxt_ts - disable interrupt for 50ms after reset The CHG/interrupt line is momentarily set (approximately 100 ms) as an input after power-up or reset for diagnostic purposes. This may cause spurious interrupts, so disable interrupt handler during this period. Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 204476642db2ca3cd2e9b8380b58dc9f21a1e773 Author: Nick Dyer Date: Tue Aug 4 16:53:16 2015 -0700 Input: atmel_mxt_ts - improve device tree parsing Use function rather than loop, define np to reduce wrapping. Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit 50fabb02c7c08dace3562c05797a3c92591a9803 Author: Pan Xinhui Date: Tue Aug 4 16:53:04 2015 -0700 Input: atmel_mxt_ts - suspend/resume causes panic if input_dev fails to init input_dev may be NULL if mxt_initialize_input_device fails. But pm ops is still available and suspend/resume assume input_dev is not NULL. To fix this issue, we add a check if (!input_dev). Signed-off-by: Pan Xinhui Signed-off-by: Nick Dyer Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 146c6a662f6b16536581afc8ed4c11460301a82d Author: Nick Dyer Date: Tue Aug 4 16:49:34 2015 -0700 Input: atmel_mxt_ts - remove unused defines Many of these values are out of date and they aren't used in the driver - all they do is increase the size of the kernel source. Signed-off-by: Nick Dyer Acked-by: Benson Leung Acked-by: Yufeng Shen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 66 +------------------------------- 1 file changed, 1 insertion(+), 65 deletions(-) commit 7f3884f7de89c49439fdaa115f6d1caec3256cc3 Author: Nick Dyer Date: Tue Aug 4 16:36:29 2015 -0700 Input: atmel_mxt_ts - use deep sleep mode when stopped The hardcoded 0x83 CTRL setting overrides other settings in that byte, enabling extra reporting that may not be useful on a particular platform. Implement improved suspend mechanism via deep sleep. By writing zero to both the active and idle cycle times the maXTouch device can be put into a deep sleep mode, using minimal power. It is necessary to issue a calibrate command after the chip has spent any time in deep sleep, however a soft reset is unnecessary. Use the old method on Chromebook Pixel via platform data option. This patch also deals with the situation where the power configuration is zero on probe, which would mean that the device never wakes up to execute commands. After a config download, the T7 power configuration may have changed so it is necessary to re-read it. Signed-off-by: Nick Dyer Acked-by: Benson Leung Acked-by: Yufeng Shen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/atmel_mxt_ts.c | 119 ++++++++++++++++++++++++++--- drivers/platform/chrome/chromeos_laptop.c | 4 +- include/linux/i2c/atmel_mxt_ts.h | 25 ------ include/linux/platform_data/atmel_mxt_ts.h | 31 ++++++++ 4 files changed, 142 insertions(+), 37 deletions(-) commit aa7c043d9783f538319e77deeae5d90ff5d6907b Author: Richard Guy Briggs Date: Sat Aug 1 15:41:13 2015 -0400 audit: eliminate unnecessary extra layer of watch parent references The audit watch parent count was imbalanced, adding an unnecessary layer of watch parent references. Decrement the additional parent reference when a watch is reused, already having a reference to the parent. audit_find_parent() gets a reference to the parent, if the parent is already known. This additional parental reference is not needed if the watch is subsequently found by audit_add_to_parent(), and consumed if the watch does not already exist, so we need to put the parent if the watch is found, and do nothing if this new watch is added to the parent. If the parent wasn't already known, it is created with a refcount of 1 and added to the audit_watch_group, then incremented by one to be subsequently consumed by the newly created watch in audit_add_to_parent(). The rule points to the watch, not to the parent, so the rule's refcount gets bumped, not the parent's. See LKML, 2015-07-16 Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore kernel/audit_watch.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit f8259b262bedd5ec71e55de5953464ea86ff69d9 Author: Richard Guy Briggs Date: Sat Aug 1 15:41:12 2015 -0400 audit: eliminate unnecessary extra layer of watch references The audit watch count was imbalanced, adding an unnecessary layer of watch references. Only add the second reference when it is added to a parent. Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore kernel/audit_watch.c | 5 ++--- kernel/auditfilter.c | 16 +++------------- 2 files changed, 5 insertions(+), 16 deletions(-) commit 94bdc48d55ca10f90b4a625f0e443197e0013557 Author: Geert Uytterhoeven Date: Tue Aug 4 15:55:16 2015 +0200 ARM: shmobile: sh73a0 dtsi: Add missing "gpio-ranges" to gpio node If a GPIO driver uses gpiochip_add_pin_range() (which is usually the case for GPIO/PFC combos), the GPIO hogging mechanism configured from DT doesn't work: requesting hog GPIO led1-high (chip sh73a0_pfc, offset 20) failed The actual error code is -517 == -EPROBE_DEFER. The problem is that PFC+GPIO registration is handled in multiple steps: 1. pinctrl_register(), 2. gpiochip_add(), 3. gpiochip_add_pin_range(). Configuration of the hogs is handled in gpiochip_add(): gpiochip_add of_gpiochip_add of_gpiochip_scan_hogs gpiod_hog gpiochip_request_own_desc __gpiod_request chip->request pinctrl_request_gpio pinctrl_get_device_gpio_range However, at this point the GPIO controller hasn't been added to pinctrldev_list yet, so the range can't be found, and the operation fails with -EPROBE_DEFER. To fix this, add a "gpio-ranges" property to the gpio device node, so the ranges are added by of_gpiochip_add_pin_range(), which is called by of_gpiochip_add() before the call to of_gpiochip_scan_hogs(). Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij Signed-off-by: Simon Horman arch/arm/boot/dts/sh73a0.dtsi | 3 +++ 1 file changed, 3 insertions(+) commit 09d1c7b4babd3ef9bfc0a148931e5e5702db5e1b Author: Geert Uytterhoeven Date: Tue Aug 4 15:55:15 2015 +0200 ARM: shmobile: r8a7740 dtsi: Add missing "gpio-ranges" to gpio node If a GPIO driver uses gpiochip_add_pin_range() (which is usually the case for GPIO/PFC combos), the GPIO hogging mechanism configured from DT doesn't work: requesting hog GPIO lcd0 (chip r8a7740_pfc, offset 176) failed The actual error code is -517 == -EPROBE_DEFER. The problem is that PFC+GPIO registration is handled in multiple steps: 1. pinctrl_register(), 2. gpiochip_add(), 3. gpiochip_add_pin_range(). Configuration of the hogs is handled in gpiochip_add(): gpiochip_add of_gpiochip_add of_gpiochip_scan_hogs gpiod_hog gpiochip_request_own_desc __gpiod_request chip->request pinctrl_request_gpio pinctrl_get_device_gpio_range However, at this point the GPIO controller hasn't been added to pinctrldev_list yet, so the range can't be found, and the operation fails with -EPROBE_DEFER. To fix this, add a "gpio-ranges" property to the gpio device node, so the range is added by of_gpiochip_add_pin_range(), which is called by of_gpiochip_add() before the call to of_gpiochip_scan_hogs(). Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740.dtsi | 1 + 1 file changed, 1 insertion(+) commit 17ccec50cc40bef00b26d506d483e928804cb20e Author: Geert Uytterhoeven Date: Tue Aug 4 15:55:14 2015 +0200 ARM: shmobile: r8a73a4 dtsi: Add missing "gpio-ranges" to gpio node If a GPIO driver uses gpiochip_add_pin_range() (which is usually the case for GPIO/PFC combos), the GPIO hogging mechanism configured from DT doesn't work: requesting hog GPIO led1-high (chip r8a73a4_pfc, offset 28) failed The actual error code is -517 == -EPROBE_DEFER. The problem is that PFC+GPIO registration is handled in multiple steps: 1. pinctrl_register(), 2. gpiochip_add(), 3. gpiochip_add_pin_range(). Configuration of the hogs is handled in gpiochip_add(): gpiochip_add of_gpiochip_add of_gpiochip_scan_hogs gpiod_hog gpiochip_request_own_desc __gpiod_request chip->request pinctrl_request_gpio pinctrl_get_device_gpio_range However, at this point the GPIO controller hasn't been added to pinctrldev_list yet, so the range can't be found, and the operation fails with -EPROBE_DEFER. To fix this, add a "gpio-ranges" property to the gpio device node, so the ranges are added by of_gpiochip_add_pin_range(), which is called by of_gpiochip_add() before the call to of_gpiochip_scan_hogs(). Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Acked-by: Linus Walleij Signed-off-by: Simon Horman arch/arm/boot/dts/r8a73a4.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 8f46dcaea8d9d1552f4071f1ddeeca4427c1d83a Author: Chao Yu Date: Tue Jul 14 18:56:10 2015 +0800 f2fs: expose f2fs_write_cache_pages If there are gced dirty pages and normal dirty pages in the mapping of one inode, we might writeback them alternately with discontinuous block address, resulting in low performance. This patch introduces f2fs_write_cache_pages with codes copied from write_cache_pages in mm/page-writeback.c. In this function, we refactor flow with two steps: 1) writeback all cold type pages. 2) writeback all non-cold type pages. By using this method, f2fs will writeback dirty pages with the same temperature in bunch mode, it makes writeouted block being with more continuous address, so they can be merged as much as possible in f2fs bio cache, and also it will reduce the chance of submiting small IO from block layer. Test environment: 8g nokia sd card (very old sd card, but it shows better effect when testing with this patch, and with a 32g kingston sd card, I didn't see much more improvement). Test step: 1. touch testfile; 2. truncate -s 512K testfile; 3. write all pages with odd index; 4. trigger gc by ioctl; 5. write all pages with even index; 6. time fsync testfile. before: real 0m0.402s user 0m0.000s sys 0m0.000s after: real 0m0.143s user 0m0.004s sys 0m0.004s Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 135 insertions(+), 1 deletion(-) commit 037fe70c9a6cebe11ae13402994b844e907ebe0c Author: Chao Yu Date: Mon Jul 13 17:45:19 2015 +0800 f2fs: correct return value of ->setxattr This patch fixes to return correct error number of ->setxattr, which is reported by xfstest tests/generic/026 as below: generic/026 - output mismatch --- tests/generic/026.out +++ results/generic/026.out.bad @@ -4,6 +4,6 @@ 1 below acl max acl max 1 above acl max -chacl: cannot set access acl on "largeaclfile": Argument list too long +chacl: cannot set access acl on "largeaclfile": Numerical result out of range use 16 aces use 17 aces ... Ran: generic/026 Failures: generic/026 Failed 1 of 1 tests Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/xattr.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit bd936f840779366b61300c0f4f752dd1b52b1ca3 Author: Chao Yu Date: Mon Jul 13 17:44:25 2015 +0800 f2fs: cleanup write_orphan_inodes Previously, since 'commit 4531929e3922 ("f2fs: move grabing orphan pages out of protection region")' was committed, in write_orphan_inodes(), we will grab all meta page in a batch before we use them under spinlock, so that we can avoid large time delay of grabbing meta pages under spinlock. Now, 'commit d6c67a4fee86 ("f2fs: revmove spin_lock for write_orphan_inodes")' remove the spinlock in write_orphan_inodes, so there is no issue we describe above, we'd better recover to move the grab operation to original place for readability. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 5b3391244d1c89bb4c8e1b4e4916fb4965fb71f9 Author: Chao Yu Date: Mon Jul 13 17:43:19 2015 +0800 f2fs: warm up cold page after mmaped write With cost-benifit method, background gc will consider old section with fewer valid blocks as candidate victim, these old blocks in section will be treated as cold data, and laterly will be moved into cold segment. But if the gcing page is attached by user through buffered or mmaped write, we should reset the page as non-cold one, because this page may have more opportunity for further updating. So fix to add clearing code for the missed 'mmap' case. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 2 ++ 1 file changed, 2 insertions(+) commit c1c1b58359d45e1a9f236ce5a40d50720c07c70e Author: Chao Yu Date: Fri Jul 10 18:08:10 2015 +0800 f2fs: add new ioctl F2FS_IOC_GARBAGE_COLLECT When background gc is off, the only way to trigger gc is executing a force gc in some operations who wants to grab space in disk. The executing condition is limited: to execute force gc, we should wait for the time when there is almost no more free section for LFS allocation. This seems not reasonable for our user who wants to control triggering gc by himself. This patch introduces F2FS_IOC_GARBAGE_COLLECT interface for triggering garbage collection by using ioctl. It provides our users one more option to trigger gc. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 + fs/f2fs/file.c | 32 ++++++++++++++++++++++++++++++++ fs/f2fs/gc.h | 6 ++++++ 3 files changed, 39 insertions(+) commit a28ef1f5aebe1068fc5fd65c4699c1c3b1e9094b Author: Chao Yu Date: Wed Jul 8 17:59:36 2015 +0800 f2fs: maintain extent cache in separated file This patch moves extent cache related code from data.c into extent_cache.c since extent cache is independent feature, and its codes are not relate to others in data.c, it's better for us to maintain them in separated place. There is no functionality change, but several small coding style fixes including: * rename __drop_largest_extent to f2fs_drop_largest_extent for exporting; * rename misspelled word 'untill' to 'until'; * remove unneeded 'return' in the end of f2fs_destroy_extent_tree(). Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/Makefile | 2 +- fs/f2fs/data.c | 578 +---------------------------------------------- fs/f2fs/extent_cache.c | 594 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 22 +- 4 files changed, 610 insertions(+), 586 deletions(-) commit 3c7df87dad065a4656b13115593c59c8a324a108 Author: Fan Li Date: Wed Jul 8 16:02:54 2015 +0800 f2fs: don't try to split extents shorter than F2FS_MIN_EXTENT_LEN Since only parts of extents longer than F2FS_MIN_EXTENT_LEN will be kept in extent cache after split, extents already shorter than F2FS_MIN_EXTENT_LEN don't need to try split at all. Signed-off-by: Fan Li Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 90d4388ac2cec0c83cad7315d3cd0065553430e1 Author: Chao Yu Date: Wed Jul 8 18:24:38 2015 +0800 f2fs: fix to update page flag This patch fixes to update page flag (e.g. Uptodate/cold flag) in ->write_begin. Otherwise, page will be non-uptodate when we try to write entire page, and cold data flag in page will not be clean when gced page is being rewritten. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 7023a1ad17f4e21acb74167ab647cd123d9eb801 Author: Jaegeuk Kim Date: Mon Jun 29 16:34:39 2015 -0700 f2fs: shrink unreferenced extent_caches first If an extent_tree entry has a zero reference count, we can drop it from the cache in higher priority rather than currently referencing entries. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 51 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 10 deletions(-) commit bb96a8d51e523c162b436c4545eb1a4e9f9f530e Author: Chao Yu Date: Mon Jul 6 20:31:49 2015 +0800 f2fs: enhance multithread performance In ->writepages, we use writepages mutex lock to serialize all block address allocation and page submitting pairs from different inodes. This method makes our delayed dirty pages of one inode being written continously as many as possible. But there is one problem that we did not submit current cached bio in protection region of writepages mutex lock, so there is a small chance that we submit the one of other thread's as below, resulting in splitting more bios. thread 1 thread 2 ->writepages lock(writepages) ->write_cache_pages unlock(writepages) lock(writepages) ->write_cache_pages ->f2fs_submit_merged_bio ->writepage unlock(writepages) fs_mark-6535 [002] .... 2242.270230: f2fs_submit_write_bio: dev = (1,0), WRITE_SYNC, DATA, sector = 5766152, size = 524288 fs_mark-6536 [000] .... 2242.270361: f2fs_submit_write_bio: dev = (1,0), WRITE_SYNC, DATA, sector = 5767176, size = 4096 fs_mark-6536 [000] .... 2242.270370: f2fs_submit_write_bio: dev = (1,0), WRITE_SYNC, NODE, sector = 8138112, size = 4096 fs_mark-6535 [002] .... 2242.270776: f2fs_submit_write_bio: dev = (1,0), WRITE_SYNC, DATA, sector = 5767184, size = 516096 This may really increase time of block layer works, and may cause larger IO lantency. This patch moves the submitting operation into region of writepages mutex lock to avoid bio splits when concurrently writebacking is intensive. my test environment: virtual machine, intel cpu i5 2500, 8GB size memory, 4GB size ramdisk time fs_mark -t 16 -L 1 -s 524288 -S 1 -d /mnt/f2fs/ before: real 0m4.244s user 0m0.088s sys 0m12.336s after: real 0m3.822s user 0m0.072s sys 0m10.760s Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 741a7bea79eae6361c8d7499f1f6a900b65c120e Author: Chao Yu Date: Mon Jul 6 20:30:40 2015 +0800 f2fs: restrict multimedia filename When testing with fs_mark, some blocks were written out as cold data which were mixed with warm data, resulting in splitting more bios. This is because fs_mark will create file with random filename as below: 559551ee~~~~~~~~15Z29OCC05JCKQP60JQ42MKV 559551ee~~~~~~~~NZAZ6X8OA8LHIIP6XD0L58RM 559551ef~~~~~~~~B15YDSWAK789HPSDZKYTW6WM 559551f1~~~~~~~~2DAE5DPS79785BUNTFWBEMP3 559551f1~~~~~~~~1MYDY0BKSQCJPI32Q8C514RM 559551f1~~~~~~~~YQOTMAOMN5CVRFOUNI026MP4 559551f3~~~~~~~~1WF42LPRTQJNPPGR3EINKMPE 559551f3~~~~~~~~8Y2NRK7CEPPAA02LY936PJPG They are regarded as cold file since their filename are ended with multimedia files' extension, but this should be wrong as we only match the extension of filename, not the whole one. In this patch, we try to fix the format of multimedia filename to: "filename + '.' + extension", then we set cold file only its filename matches the format. So after this change, it will reduce the probability we set the wrong cold file, also it helps a little for fs_mark's performance on f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/namei.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 62d43eeb1724836e4bc5caa67678a7943a2a06b6 Author: Chao Yu Date: Mon Jul 6 20:29:46 2015 +0800 MAINTAINERS: add missed trace file for f2fs This patch adds missed trace file in maintainer-ship of f2fs, so it completes the description of files maintained in f2fs, and also it allows people to find correct mailing list by using get_maintainer.pl when only patching the trace file of f2fs. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit c1079892f4e8ecfd1bbc525cbfc1bd46b470888e Author: Nicholas Krause Date: Tue Jun 30 21:37:21 2015 -0400 f2fs: make the function check_dnode have a return type of bool and change it's name to is_alive This makes the function check_dnode have a return type of bool due to this particular function only ever returning either one or zero as its return value and changes the name of the function to is_alive in order to better explain this function's intended work of checking if a dnode is still in use by the filesystem. Signed-off-by: Nicholas Krause [Jaegeuk Kim: change the return value check for the renamed function] Signed-off-by: Jaegeuk Kim fs/f2fs/gc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 84bc926c076963d5b992640f5c8d242754801fd6 Author: Jaegeuk Kim Date: Mon Jun 29 16:01:14 2015 -0700 f2fs: check the largest extent at look-up time Because of the extent shrinker or other -ENOMEM scenarios, it cannot guarantee that the largest extent would be cached in the tree all the time. Instead of relying on extent_tree, we can simply check the cached one in extent tree accordingly. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 16 ++++++++++++++-- include/trace/events/f2fs.h | 12 ++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) commit 3e72f721390dc14e7b33fda812843c0725810106 Author: Jaegeuk Kim Date: Fri Jun 19 17:53:26 2015 -0700 f2fs: use extent_cache by default We don't need to handle the duplicate extent information. The integrated rule is: - update on-disk extent with largest one tracked by in-memory extent_cache - destroy extent_tree for the truncation case - drop per-inode extent_cache by shrinker Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 357 ++++++++++++++++------------------------------------- fs/f2fs/f2fs.h | 20 ++- fs/f2fs/inode.c | 18 ++- fs/f2fs/namei.c | 2 + fs/f2fs/shrinker.c | 2 + fs/f2fs/super.c | 8 +- 6 files changed, 142 insertions(+), 265 deletions(-) commit 7daaea256de42da112805703e3c77f08973156b3 Author: Jaegeuk Kim Date: Thu Jun 25 17:43:04 2015 -0700 f2fs: add noextent_cache mount option This patch adds noextent_cache mount option. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim Documentation/filesystems/f2fs.txt | 4 +++- fs/f2fs/super.c | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) commit 554df79e523d14dab475eb6650cb96617256ceea Author: Jaegeuk Kim Date: Fri Jun 19 13:41:23 2015 -0700 f2fs: shrink extent_cache entries This patch registers shrinking extent_caches. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 19 +++++++++++-------- fs/f2fs/f2fs.h | 2 +- fs/f2fs/segment.c | 3 ++- fs/f2fs/shrinker.c | 14 +++++++++++++- 4 files changed, 27 insertions(+), 11 deletions(-) commit 1b38dc8e74a366b92986755c304591e330f3c3e0 Author: Jaegeuk Kim Date: Fri Jun 19 15:36:07 2015 -0700 f2fs: shrink nat_cache entries This patch registers shrinking nat_cache entries. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/node.c | 6 +++--- fs/f2fs/segment.c | 8 ++++++-- fs/f2fs/shrinker.c | 11 +++++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) commit 2658e50de61429f57d9496bfe371f232e2d039a1 Author: Jaegeuk Kim Date: Fri Jun 19 12:01:21 2015 -0700 f2fs: introduce a shrinker for mounted fs This patch introduces a shrinker targeting to reduce memory footprint consumed by a number of in-memory f2fs data structures. In addition, it newly adds: - sbi->umount_mutex to avoid data races on shrinker and put_super - sbi->shruinker_run_no to not revisit objects Note that the basic implementation was copied from fs/ubifs/shrinker.c Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/Makefile | 1 + fs/f2fs/f2fs.h | 13 +++++++ fs/f2fs/shrinker.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/f2fs/super.c | 31 +++++++++++++++- 4 files changed, 148 insertions(+), 1 deletion(-) commit 244f4fc1c530c4e486f0e4f0909c0514e4539ba2 Author: Jaegeuk Kim Date: Mon Jun 22 18:22:38 2015 -0700 f2fs: set cached_en after checking finally This patch relocates cached_en not only to be covered by spin_lock, but also to set once after checking out completely. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit cbe91923a97c96d6a931f4b5b7e32083218a0251 Author: Jaegeuk Kim Date: Tue Jun 16 15:17:01 2015 -0700 f2fs: update on-disk extents even under extent_cache Previously, f2fs_update_extent_cache() updates in-memory extent_cache all the time, and then finally preserves its up-to-date extent into on-disk one during f2fs_evict_inode. But, in the following scenario: 1. mount 2. open & write an extent X 3. f2fs_evict_inode; on-disk extent is X 4. open & update the extent X with Y 5. sync; trigger checkpoint 6. power-cut after power-on, f2fs should serve extent Y, but we have an on-disk extent X. This causes a failure on xfstests/311. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7a2cb67867b9a7f28a7c4d0fadd2f337a6d46ff7 Author: Jaegeuk Kim Date: Thu Jun 18 14:17:04 2015 -0700 f2fs: fix wrong block address calculation for a split extent This patch fixes wrong calculation on block address field when an extent is split. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97a7b2c274d5dbe51170e099c16d49cfd1b467af Author: Jaegeuk Kim Date: Wed Jun 17 13:59:05 2015 -0700 f2fs: convert inline_data for various fallocate For newly added fallocate types, it should convert inline_data before handling block swapping. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/file.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit c9b63bd01dd8da096d079c490771ad8a049fd480 Author: Jaegeuk Kim Date: Tue Jun 23 10:36:08 2015 -0700 f2fs: avoid to use failed inode immediately Before iput is called, the inode number used by a bad inode can be reassigned to other new inode, resulting in any abnormal behaviors on the new inode. This should not happen for the new inode. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/f2fs.h | 1 + fs/f2fs/inode.c | 19 ++++++++++++------- fs/f2fs/namei.c | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) commit eca616f8c1d6c581f3785f0ee3e2a3887e084273 Author: Jaegeuk Kim Date: Mon Jun 15 14:52:29 2015 -0700 f2fs: avoid freed stat information The write_checkpoint can update stat information, so we should destroy the stat structure after it. Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/super.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5ac9f36fcacd532b218db1e0fd0f9e8a18321f22 Author: Chao Yu Date: Mon Jun 29 18:14:10 2015 +0800 f2fs: fix to record dirty page count for symlink Dirty page can be exist in mapping of newly created symlink, but previously we did not maintain the counting of dirty page for symlink like we maintained for regular/directory, so the counting we lookuped should be wrong. This patch adds missed dirty page counting for symlink to fix this issue. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim fs/f2fs/checkpoint.c | 3 ++- fs/f2fs/f2fs.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 92859a5efdfa71f712ec1d213f43061965d3e9b4 Author: Markus Elfring Date: Fri Jun 26 17:28:55 2015 +0200 f2fs crypto: delete an unnecessary check before the function call "key_put" The key_put() function tests whether its argument is NULL and then returns immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Jaegeuk Kim fs/f2fs/crypto_key.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 6abc8ca19df0078de17dc38340db3002ed489ce7 Author: Tejun Heo Date: Tue Aug 4 15:20:55 2015 -0400 cgroup: define controller file conventions Traditionally, each cgroup controller implemented whatever interface it wanted leading to interfaces which are widely inconsistent. Examining the requirements of the controllers readily yield that there are only a few control schemes shared among all. Two major controllers already had to implement new interface for the unified hierarchy due to significant structural changes. Let's take the chance to establish common conventions throughout all controllers. This patch defines CGROUP_WEIGHT_MIN/DFL/MAX to be used on all weight based control knobs and documents the conventions that controllers should follow on the unified hierarchy. Except for io.weight knob, all existing unified hierarchy knobs are already compliant. A follow-up patch will update io.weight. v2: Added descriptions of min, low and high knobs. Signed-off-by: Tejun Heo Acked-by: Johannes Weiner Cc: Li Zefan Cc: Peter Zijlstra Documentation/cgroups/unified-hierarchy.txt | 80 ++++++++++++++++++++++++++--- include/linux/cgroup.h | 9 ++++ 2 files changed, 81 insertions(+), 8 deletions(-) commit 7d6548abcf4ea4845db8a62a5875d93e2c1bf882 Author: Geert Uytterhoeven Date: Tue Aug 4 11:43:40 2015 -0700 Input: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Dmitry Torokhov drivers/input/keyboard/Kconfig | 4 ++-- drivers/input/misc/Kconfig | 11 ++++++----- drivers/input/mouse/Kconfig | 2 +- drivers/input/touchscreen/Kconfig | 8 ++++---- 4 files changed, 13 insertions(+), 12 deletions(-) commit b084a35663c3f1f7de1c45c4ae3006864c940fe7 Author: Avri Altman Date: Sun Jul 12 09:10:05 2015 +0300 iwlwifi: mvm: set different pm_timeout for action frames When building a Tx Command for management frames, we are lacking a check for action frames, for which we should set a different pm_timeout. This cause the fw to stay awake for 100TU after each such frame is transmitted, resulting an excessive power consumption. Signed-off-by: Avri Altman Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h | 12 ++++++++++++ drivers/net/wireless/iwlwifi/mvm/tx.c | 10 ++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) commit eed6e971973667d067d510e9540773ff0f9fe8fd Author: Assaf Krauss Date: Wed Jul 22 14:21:31 2015 +0300 iwlwifi: mvm: ToF - Set correct range request cmd id Command ID of ToF range request command adapted to new FW commands grouping scheme. Signed-off-by: Assaf Krauss Reviewed-by: Gregory Greenman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/tof.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e112018776a88b1e9c31fff3c6a9341c4f37c358 Author: Matti Gottlieb Date: Sun Jul 19 11:15:07 2015 +0300 iwlwifi: mvm: Add FW paging mechanism for the UMAC on SDIO Family 8000 products has 2 embedded processors, the first known as LMAC (lower MAC) and implements the functionality from previous products, the second one is known as UMAC (upper MAC) and is used mainly for driver offloads as well as new features. The UMAC is typically “less” real-time than the LMAC and is used for higher level controls. The UMAC's code/data size is estimated to be in the mega-byte arena, taking into account the code it needs to replace in the driver and the set of new features. In order to allow the UMAC to execute code that is bigger than its code memory, we allow the UMAC embedded processor to page out code pages on DRAM. When the device is slave on the bus(SDIO) the driver saves the UMAC's image pages in blocks of 32K in the DRAM and sends the layout of the pages to the FW. When the FW wants load / unload pages, it creates an interrupt, and the driver uploads / downloads the page to an address in the a specific address on the device's memory. The driver can support up to 1 MB of pages. Add paging mechanism for the UMAC on SDIO in order to allow the program to use a larger virtual space while using less physical memory on the device itself. Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-csr.h | 2 + drivers/net/wireless/iwlwifi/iwl-fw.h | 3 ++ drivers/net/wireless/iwlwifi/iwl-prph.h | 6 +++ drivers/net/wireless/iwlwifi/iwl-trans.h | 14 ++++++ drivers/net/wireless/iwlwifi/mvm/fw-api.h | 26 +++++++++++ drivers/net/wireless/iwlwifi/mvm/fw.c | 76 +++++++++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/mvm/ops.c | 1 + 7 files changed, 128 insertions(+) commit 26d535aedc0e9fcf2c8bee65b33cecb58ee8e8ed Author: Sara Sharon Date: Tue Apr 28 12:56:54 2015 +0300 iwlwifi: pcie: New RBD allocation model As a preperation for multiple RX queues change the RBD allocation model. The new model includes a background allocator. The allocator is called by the interrupt handler when there are two released buffers by the queue, and the allocator starts allocating eight pages per request. When the queue has released 8 pages it tries claiming the request. If the pages are not ready - it keeps claiming. This new model should make sure that RBDs are always available across the multiple queues. The RBDs are transferred between the allocator and the queue. The queue moves the free RBDs upon freeing them to the allocator. The allocator moves them back to the queue's possession when the request is claimed. The allocator has an initial pool to make sure there are always RBDs available for the request completion. Release of the buffers at exit is done per pools - the allocator frees its own initial pool and the queue frees its own pool. Existing code refactor - -Queue's initial pool is the size of the queue only as the allocation of the new buffers no longer uses this pool. -Removal of replenish background work, and replenish calls in the interrupt handler and restock(). -The replenish() and the rxq used_list are used only during initialization. -Moved page allocation to a new function for code reuse. New code - Allocator code - new structure and functions. Interrupt handler uses the allocator functions for replenishing buffers. Reuse of the restock() method. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fh.h | 6 - drivers/net/wireless/iwlwifi/pcie/internal.h | 51 ++- drivers/net/wireless/iwlwifi/pcie/rx.c | 473 ++++++++++++++++++++++----- 3 files changed, 435 insertions(+), 95 deletions(-) commit d4a81698540a644d1316bcd5836f3ae495844216 Merge: 36fb901 aecdc63 Author: Emmanuel Grumbach Date: Tue Aug 4 21:30:10 2015 +0300 Merge remote-tracking branch 'iwlwifi-fixes/master' into next Signed-off-by: Emmanuel Grumbach Conflicts: drivers/net/wireless/iwlwifi/pcie/internal.h commit 36fb90172688c8eeac67e1ef01d232549c9a6131 Author: Oren Givon Date: Wed Jul 15 15:47:28 2015 +0300 iwlwifi: mvm: add the ability to trigger only monitor dumps Change the FW debug trigger tlv to include a monitor only option. Setting this option to true will cause fw dump triggers to only collect monitor data and skip other dumps such as SMEM, SRAM, CSR, PRPH, etc. This option is used when accessing the different parts of the firmware memory is not wanted and can cause unwanted behavior like when debugging TX latency. Signed-off-by: Oren Givon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 3 + drivers/net/wireless/iwlwifi/iwl-trans.h | 9 +- drivers/net/wireless/iwlwifi/mvm/debugfs.c | 2 +- drivers/net/wireless/iwlwifi/mvm/fw.c | 19 ++- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 36 +++-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 6 +- drivers/net/wireless/iwlwifi/mvm/ops.c | 3 +- drivers/net/wireless/iwlwifi/pcie/trans.c | 217 ++++++++++++++++------------ 8 files changed, 177 insertions(+), 118 deletions(-) commit 206eea7833859f9e39c8a7439196743a2d8dfc9b Author: Johannes Berg Date: Fri Apr 17 16:38:31 2015 +0200 iwlwifi: pcie: support frag SKBs Allow frag SKBs in PCIe and advertise the maximum number of frags to the opmode. As a fallback. linearize the SKB if it exceeds the maximum number of fragments. This allows using the hardware better (filling more TBs) and should improve performance when used by the opmode. Also adjust tracing to be able to deal with this. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-devtrace-data.h | 7 ++- drivers/net/wireless/iwlwifi/iwl-trans.h | 7 +++ drivers/net/wireless/iwlwifi/pcie/internal.h | 6 ++ drivers/net/wireless/iwlwifi/pcie/trans.c | 2 + drivers/net/wireless/iwlwifi/pcie/tx.c | 70 ++++++++++++++++++++---- 5 files changed, 77 insertions(+), 15 deletions(-) commit 17564dde6024fcfe74cc0512e7837175aa5283d9 Author: Avraham Stern Date: Sun Mar 22 13:11:01 2015 +0200 iwlwifi: add new TLV capability flag for gscan support Gscan is a scan feature which is supported on certain devices only, hence the need for a TLV flag for it. For devices that support gscan store the gscan capabilities advertised by the FW so the driver can report it to upper layers. Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-drv.c | 40 ++++++++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/iwl-fw-file.h | 27 ++++++++++++++++++++ drivers/net/wireless/iwlwifi/iwl-fw.h | 25 +++++++++++++++++++ 3 files changed, 92 insertions(+) commit 9d012d0dbee1dcc4f7491925de41b4249b2cfb31 Author: Alexander Bondar Date: Thu Jun 4 10:32:43 2015 +0300 iwlwifi: Add max TX aggregation size for 8260 SDIO devices series Set max TX aggregation size for 8260 SDIO devices series to 40 frames. Fine tune max RX aggregation size - change it to 21. Signed-off-by: Alexander Bondar Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-8000.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit be681c7d103c4b3df5c51acaba5a578002a16488 Author: Avri Altman Date: Thu Jun 18 06:39:41 2015 +0300 iwlwifi: mvm: revert to our old skip over dtim policy Our firmware scheduler used to suffer from false wake-up on 500 time units. We had to came up with a formula to address this buggy behavior. Now that our firmware is fixed, we can go back to our old policy. Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/power.c | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) commit bd7fc617af118531e364d727ed02b0ded2bb4fc0 Author: Emmanuel Grumbach Date: Wed Jul 15 23:15:08 2015 +0300 iwlwifi: pcie: dump RBs when FW error occurs Add support for dumping all the RBs in the RX queue when FW error occurs. This will assist debugging. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-error-dump.h | 17 +++++++ drivers/net/wireless/iwlwifi/pcie/trans.c | 59 +++++++++++++++++++++++- 2 files changed, 74 insertions(+), 2 deletions(-) commit 192de2b406ab5cab0b87be6d8015dcfbec936e37 Author: Dor Shaish Date: Wed Jul 15 11:41:21 2015 +0300 iwlwifi: mvm: print secboot status registers on alive timeout Print the CPU1 and CPU2 secured boot status registers from the NIC to indicate a SYSASSERT during secured engine unlocking process on init/protocol image. Signed-off-by: Dor Shaish Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-prph.h | 2 ++ drivers/net/wireless/iwlwifi/mvm/fw.c | 5 +++++ 2 files changed, 7 insertions(+) commit 75118fdb63496e4611ab50380499ddd62b9de69f Author: David Spinadel Date: Wed Jun 24 11:03:56 2015 +0300 iwlwifi: mvm: clean up fw-api-scan.h Remove outdated and unused definitions Signed-off-by: David Spinadel Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 129 ------------------------- 1 file changed, 129 deletions(-) commit a6c4fb4441f4641609bbb3e40da438ed57629db0 Author: Matti Gottlieb Date: Wed Jul 15 16:19:29 2015 +0300 iwlwifi: mvm: Add FW paging mechanism for the UMAC on PCI Family 8000 products has 2 embedded processors, the first known as LMAC (lower MAC) and implements the functionality from previous products, the second one is known as UMAC (upper MAC) and is used mainly for driver offloads as well as new features. The UMAC is typically “less” real-time than the LMAC and is used for higher level controls. The UMAC's code/data size is estimated to be in the mega-byte arena, taking into account the code it needs to replace in the driver and the set of new features. In order to allow the UMAC to execute code that is bigger than its code memory, we allow the UMAC embedded processor to page out code pages on DRAM. When the device is master on the bus(PCI) the driver saves the UMAC's image pages in blocks of 32K in the DRAM and sends the layout of the pages to the FW. The FW can load / unload the pages on its own. The driver can support up to 1 MB of pages. Add paging mechanism for the UMAC on PCI in order to allow the program to use a larger virtual space while using less physical memory on the device. Signed-off-by: Eran Harary Signed-off-by: Matti Gottlieb Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-drv.c | 32 +++- drivers/net/wireless/iwlwifi/iwl-fw-file.h | 4 +- drivers/net/wireless/iwlwifi/iwl-fw.h | 40 +++++ drivers/net/wireless/iwlwifi/mvm/fw-api.h | 24 +++ drivers/net/wireless/iwlwifi/mvm/fw.c | 258 +++++++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/mvm/mvm.h | 5 + drivers/net/wireless/iwlwifi/mvm/ops.c | 1 + drivers/net/wireless/iwlwifi/pcie/trans.c | 18 +- 8 files changed, 378 insertions(+), 4 deletions(-) commit 0ab66e6d28f52677067a905ff2aac3367f8118ee Author: Sara Sharon Date: Mon Jul 13 14:23:59 2015 +0300 iwlwifi: mvm: add wide firmware command support for debug triggers Add support for extended command id in triggers handling. Extended command id header contains group id in addition to command id. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/ops.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 1230b16b448acfdfe7d0cac940311c9363861c03 Author: Avraham Stern Date: Thu Jul 9 17:17:03 2015 +0300 iwlwifi: mvm: add wide firmware command infrastructure for RX Add support for extended firmware event header that contains a group id as well as the command id. Signed-off-by: Avraham Stern Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/ops.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 6eb031d2fe2d9a3d7eaaba151c64e20bd0220fc9 Author: Sara Sharon Date: Mon Jul 13 14:50:47 2015 +0300 iwlwifi: add wide firmware command support for notifications Add support for extended command id in notification system. Extended command id header contains group id in addition to command id. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/mac80211.c | 2 +- drivers/net/wireless/iwlwifi/dvm/rxon.c | 3 ++- drivers/net/wireless/iwlwifi/dvm/ucode.c | 5 +++-- drivers/net/wireless/iwlwifi/iwl-notif-wait.c | 8 +++++--- drivers/net/wireless/iwlwifi/iwl-notif-wait.h | 5 +++-- drivers/net/wireless/iwlwifi/iwl-trans.h | 3 +++ drivers/net/wireless/iwlwifi/mvm/d3.c | 2 +- drivers/net/wireless/iwlwifi/mvm/fw.c | 4 ++-- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 2 +- drivers/net/wireless/iwlwifi/mvm/scan.c | 2 +- drivers/net/wireless/iwlwifi/mvm/time-event.c | 4 ++-- drivers/net/wireless/iwlwifi/mvm/tt.c | 3 ++- 12 files changed, 26 insertions(+), 17 deletions(-) commit 48ed7040315636f825c989e0752125ea275da82f Author: Nicholas Krause Date: Wed Jul 8 11:02:15 2015 -0400 iwlwifi: make various functions void in the file rs.c This makes various functions in the file rs.c void due to these functions never returning a error code to signal to their callers if and how they have failed to complete their intended work. Signed-off-by: Nicholas Krause Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/rs.c | 51 +++++++++++++++-------------------- 1 file changed, 21 insertions(+), 30 deletions(-) commit ca8c0f4bede6098f9d531365d2ad9d7a598327f6 Author: Johannes Berg Date: Mon Apr 20 17:54:54 2015 +0200 iwlwifi: mvm: move TX PN assignment for CCMP to the driver Move the TX PN assignment (for CCMP only) to the driver. This prepares the driver for future DSO (driver segmentation offload) where it will split an SKB into multiple MPDUs by itself. For TDLS, split out the CCMP TX command handling so that it won't get a PN assigned, the firmware assigns the PN in that case. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mac80211.c | 5 ++-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 15 ++++++++--- drivers/net/wireless/iwlwifi/mvm/tdls.c | 12 ++++++--- drivers/net/wireless/iwlwifi/mvm/tx.c | 41 +++++++++++++++++++---------- 4 files changed, 50 insertions(+), 23 deletions(-) commit 1dadafa86a779884f14a6e7a3ddde1a57b0a0a65 Author: Tim Gardner Date: Tue Aug 4 11:26:04 2015 -0600 workqueue: Make flush_workqueue() available again to non GPL modules Commit 37b1ef31a568fc02e53587620226e5f3c66454c8 ("workqueue: move flush_scheduled_work() to workqueue.h") moved the exported non GPL flush_scheduled_work() from a function to an inline wrapper. Unfortunately, it directly calls flush_workqueue() which is a GPL function. This has the effect of changing the licensing requirement for this function and makes it unavailable to non GPL modules. See commit ad7b1f841f8a54c6d61ff181451f55b68175e15a ("workqueue: Make schedule_work() available again to non GPL modules") for precedent. Signed-off-by: Tim Gardner Signed-off-by: Tejun Heo kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04b8637be92f284409651088f3856f4290a931d8 Author: Will Deacon Date: Tue Aug 4 18:52:09 2015 +0100 arm64: alternatives: ensure secondary CPUs execute ISB after patching In order to guarantee that the patched instruction stream is visible to a CPU, that CPU must execute an isb instruction after any related cache maintenance has completed. The instruction patching routines in kernel/insn.c get this right for things like jump labels and ftrace, but the alternatives patching omits it entirely leaving secondary cores in a potential limbo between the old and the new code. This patch adds an isb following the secondary polling loop in the altenatives patching. Signed-off-by: Will Deacon arch/arm64/kernel/alternative.c | 1 + 1 file changed, 1 insertion(+) commit 7f08a414f29e7daea661d03231998625257ed3f1 Author: Mark Rutland Date: Tue Aug 4 17:27:34 2015 +0100 arm64: make ll/sc __cmpxchg_case_##name asm consistent The ll/sc __cmpxchg_case_##name assembly mostly uses symbolic names for operands, but in a single case uses %2 to refer to what is otherwise known as %[v]. This makes the code more painful to read than is necessary. Use %[v] instead. Signed-off-by: Mark Rutland Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_ll_sc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b03ba9e314c12b2127243145b5c1f41b2408de62 Author: Sifan Naeem Date: Wed Jul 29 11:55:26 2015 +0100 spi: img-spfi: fix multiple calls to request gpio spfi_setup may be called many times by the spi framework, but gpio_request_one can only be called once without freeing, repeatedly calling gpio_request_one will cause an error to be thrown, which causes the request to spi_setup to be marked as failed. We can have a per-spi_device flag that indicates whether or not the gpio has been requested. If the gpio has already been requested use gpio_direction_output to set the direction of the gpio. Fixes: 8c2c8c03cdcb ("spi: img-spfi: Control CS lines with GPIO") Signed-off-by: Sifan Naeem Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-img-spfi.c | 49 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 8 deletions(-) commit d4ea7d86457a8d0ea40ce77bdeda1fc966cc35ec Author: Ian Campbell Date: Sat Aug 1 18:13:25 2015 +0100 regulator: axp20x: Add module alias This allows the module to be autoloaded. Together with 07949bf9c63c ("cpufreq: dt: allow driver to boot automatically") this is sufficient to allow a modular kernel (such as Debian's) to enable cpufreq on a Cubietruck. Signed-off-by: Ian Campbell Signed-off-by: Mark Brown drivers/regulator/axp20x-regulator.c | 1 + 1 file changed, 1 insertion(+) commit 5dbe135a153837ce9367bdfacf7aabfc6fb76f4b Author: Robert Baldyga Date: Fri Jul 31 16:00:51 2015 +0200 usb: gadget: epautoconf: remove ep and desc configuration from ep_matches() As function ep_matches() is used to match endpoint with usb descriptor it's highly unintuitive that it modifies endpoint and descriptor structures fields. This patch moves code configuring ep and desc from ep_matches() to usb_ep_autoconfig_ss(), so now function ep_matches() does nothing more than its name suggests. [ balbi@ti.com : fix build warning ] Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 66 +++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 32 deletions(-) commit b58713d53a8f41d57b24c93de0b1c7e9550ba70f Author: Robert Baldyga Date: Fri Jul 31 16:00:50 2015 +0200 usb: gadget: epautoconf: remove pxa quirk from ep_matches() The same effect can be achieved by using capabilities flags, so now we can get rid of handling of hardware specific limitations in generic code. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 5 ----- drivers/usb/gadget/udc/pxa25x_udc.c | 9 +++------ 2 files changed, 3 insertions(+), 11 deletions(-) commit b86f33a3a371a4c3aa8dbb2f4125634a4e0d09dc Author: Robert Baldyga Date: Fri Jul 31 16:00:49 2015 +0200 usb: gadget: epautoconf: add endpoint capabilities flags verification Introduce endpoint matching mechanism basing on endpoint capabilities flags. We check if endpoint supports transfer type and direction requested in ep descriptor. Since we have this new endpoint matching mechanism there is no need to have old code guessing endpoint capabilities basing on its name, so we are getting rid of it. Remove also the obsolete comment. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 96 +++++++++++++---------------------------- 1 file changed, 30 insertions(+), 66 deletions(-) commit 47bef386511517449e2f24a89a41084af53616f8 Author: Robert Baldyga Date: Fri Jul 31 16:00:48 2015 +0200 usb: gadget: atmel_usba_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/atmel_usba_udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 916f7ac5dbc312969a90bc35a5f4fcbfc2965d60 Author: Robert Baldyga Date: Fri Jul 31 16:00:47 2015 +0200 usb: renesas: gadget: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/mod_gadget.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 8501955e888662ca56775eec2eb804e7bc7fce0d Author: Robert Baldyga Date: Fri Jul 31 16:00:46 2015 +0200 usb: musb: gadget: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/musb/musb_gadget.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit eb4cbc19526d62657b838d6f0b694a000e5b4c81 Author: Robert Baldyga Date: Fri Jul 31 16:00:45 2015 +0200 usb: isp1760: udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/isp1760/isp1760-udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 927d9f77fe3d5f9261eeb465e2b60768e400ffc9 Author: Robert Baldyga Date: Fri Jul 31 16:00:44 2015 +0200 usb: gadget: udc-xilinx: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/udc-xilinx.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 0648772d51c0ff3949397cb0cbcf2435ee32c550 Author: Robert Baldyga Date: Fri Jul 31 16:00:43 2015 +0200 usb: gadget: s3c2410_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/s3c2410_udc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit bc1b9f300ae06c64fcd056fb959b3d709ad2ef33 Author: Robert Baldyga Date: Fri Jul 31 16:00:42 2015 +0200 usb: gadget: s3c-hsudc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/s3c-hsudc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 0ec8026d7afee625f52631708d84435ea4735da6 Author: Robert Baldyga Date: Fri Jul 31 16:00:41 2015 +0200 usb: gadget: r8a66597-udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/r8a66597-udc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit a180e3da97a323510071b2b5e42b5dc07df239da Author: Robert Baldyga Date: Fri Jul 31 16:00:40 2015 +0200 usb: gadget: pxa27x_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/pxa27x_udc.h | 40 +++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 15 deletions(-) commit 36411b6b042d350a43fe1e0d3ce78fbda30f4f02 Author: Robert Baldyga Date: Fri Jul 31 16:00:39 2015 +0200 usb: gadget: pxa25x_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/pxa25x_udc.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 85a4ed003b39f70ba478e613a9be2c334f1079e7 Author: Robert Baldyga Date: Fri Jul 31 16:00:38 2015 +0200 usb: gadget: pch_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/pch_udc.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 7d4ba80d3a91222de577b652a8936f935de8b409 Author: Robert Baldyga Date: Fri Jul 31 16:00:37 2015 +0200 usb: gadget: omap_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/omap_udc.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit c23c3c3c3059f3dc47268cd7a28b96b9efdbc1ea Author: Robert Baldyga Date: Fri Jul 31 16:00:36 2015 +0200 usb: gadget: net2280: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2280.c | 67 +++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 12 deletions(-) commit f95aec51da16250841a4254db36f9771446cdbb6 Author: Robert Baldyga Date: Fri Jul 31 16:00:35 2015 +0200 usb: gadget: net2272: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2272.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 43710a8dba9ae607decdeaf7a56a51dd5b42184e Author: Robert Baldyga Date: Fri Jul 31 16:00:34 2015 +0200 usb: gadget: mv_udc_core: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/mv_udc_core.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit c12a30629f8b5fe8c2aba42c3128df702bbc9e83 Author: Robert Baldyga Date: Fri Jul 31 16:00:33 2015 +0200 usb: gadget: mv_u3d_core: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/mv_u3d_core.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 8ddbf94fd5b536b3adf5ffa631c5951718e7301d Author: Robert Baldyga Date: Fri Jul 31 16:00:32 2015 +0200 usb: gadget: m66592-udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/m66592-udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 4d75c8bd613c5ba99ee02cfe38610c82e7fe8362 Author: Robert Baldyga Date: Fri Jul 31 16:00:31 2015 +0200 usb: gadget: lpc32xx_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/lpc32xx_udc.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 892269925991b449ae47dcc0debb324ae451022e Author: Robert Baldyga Date: Fri Jul 31 16:00:30 2015 +0200 usb: gadget: gr_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/gr_udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit b0bf5fbfbd30ffbb9e45169f78412f0596e16412 Author: Robert Baldyga Date: Fri Jul 31 16:00:29 2015 +0200 usb: gadget: goku_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/goku_udc.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 455d11c93582c4167f55af0969b83821450be120 Author: Robert Baldyga Date: Fri Jul 31 16:00:28 2015 +0200 usb: gadget: fusb300_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fusb300_udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 60a28c63712f190b45e9d8f0ca593c927970fd51 Author: Robert Baldyga Date: Fri Jul 31 16:00:27 2015 +0200 usb: gadget: fsl_udc_core: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fsl_udc_core.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit e8fc42f6a19af320d7a4718c05c3f249bf5d3151 Author: Robert Baldyga Date: Fri Jul 31 16:00:26 2015 +0200 usb: gadget: fsl_qe_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fsl_qe_udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 8d29237a436dc8e2b5c44dd0ca662a680f16deb5 Author: Robert Baldyga Date: Fri Jul 31 16:00:25 2015 +0200 usb: gadget: fotg210-udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fotg210-udc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 7a3b8e7098946b44c014f3df0ceef27fb273c142 Author: Robert Baldyga Date: Fri Jul 31 16:00:24 2015 +0200 usb: gadget: dummy-hcd: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/dummy_hcd.c | 95 ++++++++++++++++++++++++++++++++------ 1 file changed, 80 insertions(+), 15 deletions(-) commit b079dd6156a6544e0383642a9ec97d17485aa244 Author: Robert Baldyga Date: Fri Jul 31 16:00:23 2015 +0200 usb: gadget: bdc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/bdc/bdc_ep.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 1b0ba527702268992a62227dde4911477f057ca5 Author: Robert Baldyga Date: Fri Jul 31 16:00:22 2015 +0200 usb: gadget: bcm63xx_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/bcm63xx_udc.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) commit b9ed96d7d579416a8fd2e1cef66541bfdad2720f Author: Robert Baldyga Date: Fri Jul 31 16:00:21 2015 +0200 usb: gadget: at91_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/at91_udc.c | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) commit 6f02ac5ac9bba538593e4359dd5e83c4d42822fe Author: Robert Baldyga Date: Fri Jul 31 16:00:20 2015 +0200 usb: gadget: amd5536udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/amd5536udc.c | 88 ++++++++++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 10 deletions(-) commit a474d3b73ba7f22844e672ac004f01cd9b8be159 Author: Robert Baldyga Date: Fri Jul 31 16:00:19 2015 +0200 usb: dwc3: gadget: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 2954522f135246287c36524bc96e9dae8c40f8a9 Author: Robert Baldyga Date: Fri Jul 31 16:00:18 2015 +0200 usb: dwc2: gadget: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit a7e3f1410855db6b67ec29a386e74be2df3cc311 Author: Robert Baldyga Date: Fri Jul 31 16:00:17 2015 +0200 usb: chipidea: udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/chipidea/udc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 68b5c947515a252b9e416e419fca4c1382912948 Author: Robert Baldyga Date: Fri Jul 31 16:00:16 2015 +0200 staging: emxx_udc: add ep capabilities support Convert endpoint configuration to new capabilities model. Fixed typo in "epc-nulk" to "epc-bulk". Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/staging/emxx_udc/emxx_udc.c | 73 +++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 31 deletions(-) commit 80e6e3847f851fc05e63265050115e29e2a50d7e Author: Robert Baldyga Date: Fri Jul 31 16:00:15 2015 +0200 usb: gadget: add endpoint capabilities helper macros Add macros useful while initializing array of endpoint capabilities structures. These macros makes structure initialization more compact to decrease number of code lines and increase readability of code. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi include/linux/usb/gadget.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 734b5a2addd333829a6d647ee14a3609c7a87c44 Author: Robert Baldyga Date: Fri Jul 31 16:00:14 2015 +0200 usb: gadget: add endpoint capabilities flags Introduce struct usb_ep_caps which contains information about capabilities of usb endpoints - supported transfer types and directions. This structure should be filled by UDC driver for each of its endpoints, and will be used in epautoconf in new ep matching mechanism which will replace ugly guessing of endpoint capabilities basing on its name. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi include/linux/usb/gadget.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit cc476b42a39d5a66d94f46cade972dcb8ee278df Author: Robert Baldyga Date: Fri Jul 31 16:00:13 2015 +0200 usb: gadget: encapsulate endpoint claiming mechanism So far it was necessary for usb functions to set ep->driver_data in endpoint obtained from autoconfig to non-null value, to indicate that endpoint is claimed by function (in autoconfig it was checked if endpoint has set this field to non-null value, and if it has, it was assumed that it is claimed). It could cause bugs because if some function doesn't set this field autoconfig could return the same endpoint more than one time. To help to avoid such bugs this patch adds claimed flag to struct usb_ep, and encapsulates endpoint claiming mechanism inside usb_ep_autoconfig_ss() and usb_ep_autoconfig_reset(), so now usb functions don't need to perform any additional actions to mark endpoint obtained from autoconfig as claimed. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/epautoconf.c | 11 ++++++----- include/linux/usb/gadget.h | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) commit 94e5c23d3c52f58f4051810a15aeacc085127ad1 Author: Axel Lin Date: Tue Aug 4 13:52:22 2015 +0800 spi: pxa2xx: Add terminating entry for pxa2xx_spi_pci_compound_match Signed-off-by: Axel Lin Acked-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 1 + 1 file changed, 1 insertion(+) commit 89a6356676eba38e498507b5b67dcc07a714a149 Author: Colin Ian King Date: Fri Jul 31 13:42:29 2015 +0100 spi: spidev: fix inconsistent indenting Fix inconsistent indenting in spidev_open, no functional change. Signed-off-by: Colin Ian King Signed-off-by: Mark Brown drivers/spi/spidev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 0f4315a8f1a73f130bbc5dde134b704ea6dda56c Author: Felipe Balbi Date: Tue Aug 4 11:02:45 2015 -0500 usb: gadget: f_uac2: fix build warning commit 913e4a90b6f9 ("usb: gadget: f_uac2: finalize wMaxPacketSize according to bandwidth") added a possible build warning when calling min(). In order to fix the warning, we just make sure to call min_t() and tell that its arguments should be u16. Cc: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_uac2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7f352964852ede9e95d18fd3825c5200fb48b3a5 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:02:28 2015 +0000 usb: musb: musb_dsps: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Felipe Balbi drivers/usb/musb/musb_dsps.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit c5673f5ce4c0faa97df419877bcdebbd76d43151 Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:02:03 2015 +0000 usb: phy: phy-keystone: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Felipe Balbi drivers/usb/phy/phy-keystone.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 4b68b50fd45e2f429da574c74d9a3788a861434f Author: Saurabh Karajgaonkar Date: Tue Aug 4 14:01:31 2015 +0000 usb: phy: phy-mxs-usb: Simplify return statement Replace redundant variable use in return statement. Signed-off-by: Saurabh Karajgaonkar Signed-off-by: Felipe Balbi drivers/usb/phy/phy-mxs-usb.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 12d560f4ea87030667438a169912380be00cea4b Author: Paul E. McKenney Date: Tue Jul 14 18:35:23 2015 -0700 rcu,locking: Privatize smp_mb__after_unlock_lock() RCU is the only thing that uses smp_mb__after_unlock_lock(), and is likely the only thing that ever will use it, so this commit makes this macro private to RCU. Signed-off-by: Paul E. McKenney Cc: Will Deacon Cc: Peter Zijlstra Cc: Benjamin Herrenschmidt Cc: "linux-arch@vger.kernel.org" Documentation/memory-barriers.txt | 71 +++---------------------------------- arch/powerpc/include/asm/spinlock.h | 2 -- include/linux/spinlock.h | 10 ------ kernel/rcu/tree.h | 12 +++++++ 4 files changed, 16 insertions(+), 79 deletions(-) commit 3dbe43f6fba9f2a0e46e371733575a45704c22ab Merge: 8ff4fbf 96d7744 d6a8c6d Author: Paul E. McKenney Date: Tue Aug 4 08:42:02 2015 -0700 Merge branches 'doc.2015.07.15a' and 'torture.2015.07.15a' into HEAD doc.2015.07.15a: Documentation updates. torture.2015.07.15a: Torture-test updates. commit 8ff4fbfd69a6c7b9598f8c1f2df34f89bac02c1a Merge: 9a54f98 af859be Author: Paul E. McKenney Date: Tue Aug 4 08:40:58 2015 -0700 Merge branches 'fixes.2015.07.22a' and 'initexp.2015.08.04a' into HEAD fixes.2015.07.22a: Miscellaneous fixes. initexp.2015.08.04a: Initialization and expedited updates. (Single branch due to conflicts.) commit af859beaaba4d57883b08f4acbcb3974bc1f975e Author: Paul E. McKenney Date: Sun Jul 19 15:13:40 2015 -0700 rcu: Silence lockdep false positive for expedited grace periods In a CONFIG_PREEMPT=y kernel, synchronize_rcu_expedited() acquires the ->exp_funnel_mutex in rcu_preempt_state, then invokes synchronize_sched_expedited, which acquires the ->exp_funnel_mutex in rcu_sched_state. There can be no deadlock because rcu_preempt_state ->exp_funnel_mutex acquisition always precedes that of rcu_sched_state. But lockdep does not know that, so it gives false-positive splats. This commit therefore associates a separate lock_class_key structure with the rcu_sched_state structure's ->exp_funnel_mutex, allowing lockdep to see the lock ordering, avoiding the false positives. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 12 ++++++++++-- kernel/rcu/tree.h | 8 ++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) commit 9ee67421fe3b67a0796d6ea620fd5fcb037d3f89 Author: Arnaldo Carvalho de Melo Date: Mon Aug 3 16:27:40 2015 -0300 perf script: No tracepoints? Don't call libtraceevent. The libtraceevent handler (session->tevent) is only initialized when there are tracepoints in a perf.data event list, so do not call pevent_set_function_resolve() in those cases, fixing a segfault. Reported-by: Jiri Olsa Tested-by: Jiri Olsa Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-xyynkucl5p4bcs13zi4i4b1f@git.kernel.org Report-link: http://lkml.kernel.org/r/20150803174113.GA20282@krava.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6d3ec14d703c660c4baf8d726538b5415e23b4fb Author: Lukas Czerner Date: Tue Aug 4 11:21:52 2015 -0400 jbd2: limit number of reserved credits Currently there is no limitation on number of reserved credits we can ask for. If we ask for more reserved credits than 1/2 of maximum transaction size, or if total number of credits exceeds the maximum transaction size per operation (which is currently only possible with the former) we will spin forever in start_this_handle(). Fix this by adding this limitation at the start of start_this_handle(). This patch also removes the credit limitation 1/2 of maximum transaction size, since we really only want to limit the number of reserved credits. There is not much point to limit the credits if there is still space in the journal. This accidentally also fixes the online resize, where due to the limitation of the journal credits we're unable to grow file systems with 1k block size and size between 16M and 32M. It has been partially fixed by 2c869b262a10ca99cb866d04087d75311587a30c, but not entirely. Thanks Jan Kara for helping me getting the correct fix. Signed-off-by: Lukas Czerner Reviewed-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/transaction.c | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) commit 21caf3a765b0a88f8fedf63b36e5d15683b73fe5 Author: Lorenzo Nava Date: Thu Jul 2 17:28:03 2015 +0100 ARM: 8398/1: arm DMA: Fix allocation from CMA for coherent DMA This patch allows the use of CMA for DMA coherent memory allocation. At the moment if the input parameter "is_coherent" is set to true the allocation is not made using the CMA, which I think is not the desired behaviour. The patch covers the allocation and free of memory for coherent DMA. Signed-off-by: Lorenzo Nava Reviewed-by: Catalin Marinas Signed-off-by: Russell King arch/arm/mm/dma-mapping.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit fedf42b50d51758ce43fe0a652991dc01421f422 Author: Moritz Fischer Date: Thu Jul 30 18:13:56 2015 -0700 reset: reset-zynq: Adding support for Xilinx Zynq reset controller. This adds a reset controller driver to control the Xilinx Zynq AP-SoC's various resets. Signed-off-by: Moritz Fischer Reviewed-by: Michal Simek Acked-by: Sören Brinkmann Signed-off-by: Philipp Zabel drivers/reset/Makefile | 1 + drivers/reset/reset-zynq.c | 155 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) commit 575c215c00140e83b32ca6c01443b8a458e55c73 Author: Moritz Fischer Date: Thu Jul 30 18:13:54 2015 -0700 docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings. Signed-off-by: Moritz Fischer Reviewed-by: Michal Simek Acked-by: Sören Brinkmann Signed-off-by: Philipp Zabel .../devicetree/bindings/reset/zynq-reset.txt | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) commit 3f14a63a544374225c17221a5058748360428dc3 Author: Jason Gerecke Date: Mon Aug 3 10:17:05 2015 -0700 HID: wacom: Remove WACOM_QUIRK_NO_INPUT WACOM_QUIRK_NO_INPUT is a signal to the driver that input devices should not be created for a particular device. This quirk was used by the wireless receiver to prevent any devices from being created during the initial probe (defering it instead until we got a tablet connection event in 'wacom_wireless_work'). This quirk is not necessary now that a device_type is associated with each device. Any input device allocated by 'wacom_allocate_inputs' which is not necessary for a particular device is freed in 'wacom_register_inputs'. In particular, none of the wireless receivers devices have the pen, pad, or touch device types set so the same effect is achieved without the need to be explicit. We now return early in wacom_retrieve_hid_descriptor for wireless devices (to prevent the device_type from being overridden) but since we ignore the HID descriptor for the wireless reciever anyway, this is not an issue. Signed-off-by: Jason Gerecke Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 24 ++++++++++-------------- drivers/hid/wacom_wac.c | 4 ---- drivers/hid/wacom_wac.h | 1 - 3 files changed, 10 insertions(+), 19 deletions(-) commit ccad85cc1ee34509840e5af80a436ceaf0b71edb Author: Jason Gerecke Date: Mon Aug 3 10:17:04 2015 -0700 HID: wacom: Replace WACOM_QUIRK_MONITOR with WACOM_DEVICETYPE_WL_MONITOR The monitor interface on the wireless receiver is more logically expressed as a type of device instead of a quirk. Signed-off-by: Jason Gerecke Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 6 +++--- drivers/hid/wacom_wac.c | 4 +--- drivers/hid/wacom_wac.h | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) commit 8dc8641e619228153ab0bc609f9f534126e87c08 Author: Jason Gerecke Date: Mon Aug 3 10:17:03 2015 -0700 HID: wacom: Use calculated pkglen for wireless touch interface Commit 01c846f introduced the 'wacom_compute_pktlen' function which automatically determines the correct value for an interface's pkglen by scanning the HID descriptor. This function returns the correct value for the wireless receiver's touch interface, removing the need for us to set it manually here. Signed-off-by: Jason Gerecke Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 1 - 1 file changed, 1 deletion(-) commit a4198fd4b487afc60810f5a12b994721df220022 Author: Herbert Xu Date: Thu Jul 30 17:53:23 2015 +0800 crypto: testmgr - Reenable authenc tests Now that all implementations of authenc have been converted we can reenable the tests. Signed-off-by: Herbert Xu crypto/testmgr.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit aeb4c132f33d21f6cf37558a932e66e40dd8982e Author: Herbert Xu Date: Thu Jul 30 17:53:22 2015 +0800 crypto: talitos - Convert to new AEAD interface This patch converts talitos to the new AEAD interface. IV generation has been removed since it's equivalent to a software implementation. Signed-off-by: Herbert Xu drivers/crypto/talitos.c | 606 ++++++++++++++++++++++------------------------- 1 file changed, 277 insertions(+), 329 deletions(-) commit e19ab1211d2848ebd028c824041d8ea249fa3aae Author: Herbert Xu Date: Thu Jul 30 17:53:20 2015 +0800 crypto: qat - Convert to new AEAD interface This patch converts qat to the new AEAD interface. IV generation has been removed since it's equivalent to a software implementation. Signed-off-by: Herbert Xu Tested-by: Tadeusz Struk drivers/crypto/qat/qat_common/qat_algs.c | 327 ++++++++++++------------------- 1 file changed, 123 insertions(+), 204 deletions(-) commit c1359495c8a19fa686aa48512e0290d2f3846273 Author: Herbert Xu Date: Thu Jul 30 17:53:19 2015 +0800 crypto: picoxcell - Convert to new AEAD interface This patch converts picoxcell to the new AEAD interface. IV generation has been removed since it's equivalent to a software implementation. As picoxcell cannot handle SG lists longer than 16 elements, this patch has made the software fallback mandatory. If an SG list comes in that exceeds the limit, we will simply use the fallback. Signed-off-by: Herbert Xu drivers/crypto/picoxcell_crypto.c | 678 +++++++++++++++++--------------------- 1 file changed, 311 insertions(+), 367 deletions(-) commit d7295a8dc965ee0d5b3f9b1eb7f556c2bfa78420 Author: Herbert Xu Date: Thu Jul 30 17:53:18 2015 +0800 crypto: ixp4xx - Convert to new AEAD interface This patch converts ixp4xx to the new AEAD interface. IV generation has been removed since it's a purely software implementation. Signed-off-by: Herbert Xu drivers/crypto/ixp4xx_crypto.c | 313 +++++++++++++++++++++-------------------- 1 file changed, 158 insertions(+), 155 deletions(-) commit 479bcc7c5b9e1cbf3278462d786c37e468d5d404 Author: Herbert Xu Date: Thu Jul 30 17:53:17 2015 +0800 crypto: caam - Convert authenc to new AEAD interface This patch converts the authenc implementations in caam to the new AEAD interface. The biggest change is that seqiv no longer generates a random IV. Instead the IPsec sequence number is used as the IV. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 2603 +++++++++++++++++++++-------------------- 1 file changed, 1337 insertions(+), 1266 deletions(-) commit 92d95ba91772279b6ef9c6e09661f67abcf27259 Author: Herbert Xu Date: Thu Jul 30 17:53:16 2015 +0800 crypto: authenc - Convert to new AEAD interface This patch converts authenc to the new AEAD interface. Signed-off-by: Herbert Xu crypto/authenc.c | 584 +++++++++++++++++-------------------------------------- 1 file changed, 183 insertions(+), 401 deletions(-) commit 7079ce62c0e9bfcca35214105c08a2d00fbea9ee Author: Herbert Xu Date: Thu Jul 30 17:53:14 2015 +0800 crypto: testmgr - Disable authenc test and convert test vectors This patch disables the authenc tests while the conversion to the new IV calling convention takes place. It also replaces the authenc test vectors with ones that will work with the new IV convention. Signed-off-by: Herbert Xu crypto/testmgr.c | 26 ++++++------ crypto/testmgr.h | 122 +++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 109 insertions(+), 39 deletions(-) commit 1d6669fa83bc31b94f71ff12bbbed3516eefc705 Merge: 76bea64 17fb874 Author: Herbert Xu Date: Tue Aug 4 20:44:35 2015 +0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Merge the crypto tree to pull in the qat registration bug fix. commit fdf036507f1fc036d5a06753e9e8b13f46de73e8 Author: Fan Zhang Date: Wed May 13 10:58:41 2015 +0200 KVM: s390: host STP toleration for VMs If the host has STP enabled, the TOD of the host will be changed during synchronization phases. These are performed during a stop_machine() call. As the guest TOD is based on the host TOD, we have to make sure that: - no VCPU is in the SIE (implicitly guaranteed via stop_machine()) - manual guest TOD calculations are not affected "Epoch" is the guest TOD clock delta to the host TOD clock. We have to adjust that value during the STP synchronization and make sure that code that accesses the epoch won't get interrupted in between (via disabling preemption). Signed-off-by: Fan Zhang Reviewed-by: David Hildenbrand Reviewed-by: Christian Borntraeger Acked-by: Martin Schwidefsky Signed-off-by: Christian Borntraeger arch/s390/include/asm/etr.h | 3 +++ arch/s390/kernel/time.c | 16 +++++++++++++--- arch/s390/kvm/interrupt.c | 10 +++++++++- arch/s390/kvm/kvm-s390.c | 38 ++++++++++++++++++++++++++++++++++++++ arch/s390/kvm/priv.c | 2 ++ 5 files changed, 65 insertions(+), 4 deletions(-) commit f341b8dff9823a969be5fb3c958e5cb305ac67e8 Author: Martin Schwidefsky Date: Mon Aug 3 16:16:40 2015 +0200 s390/vtime: limit MT scaling value updates The MT scaling values are updated on each calll to do_account_vtime. This function is called for each HZ interrupt and for each context switch. Context switch can happen often, the STCCTM instruction on this path is noticeable. Limit the updates to once per jiffy. Signed-off-by: Martin Schwidefsky arch/s390/kernel/vtime.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 4c2880b31c700b03f3f115b5ca64be615783aa9c Author: Jon Hunter Date: Fri Jul 31 09:44:12 2015 +0100 irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance Commit 3228950621d9 ("irqchip: gic: Preserve gic V2 bypass bits in cpu ctrl register") added a new function, gic_cpu_if_up(), to program the GIC CPU_CTRL register. This function assumes that there is only one GIC instance present and hence always uses the chip data for the primary GIC controller. Although it is not common for there to be a secondary, some devices do support a secondary. Therefore, fix this by passing gic_cpu_if_up() a pointer to the appropriate chip data structure. Similarly, the function gic_cpu_if_down() only assumes that there is a single GIC instance present. Update this function so that an instance number is passed for the appropriate GIC and return an error code on failure. The vexpress TC2 (which has a single GIC) is currently the only user of this function and so update it accordingly. Note that because the TC2 only has a single GIC, the call to gic_cpu_if_down() should always be successful. Signed-off-by: Jon Hunter Reviewed-by: Marc Zyngier Cc: Cc: Russell King Cc: Nicolas Pitre Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438332252-25248-2-git-send-email-jonathanh@nvidia.com Signed-off-by: Thomas Gleixner arch/arm/mach-vexpress/tc2_pm.c | 2 +- drivers/irqchip/irq-gic.c | 18 ++++++++++++------ include/linux/irqchip/arm-gic.h | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) commit 567e5a014848c6aeb1d6fc862b1b5d0183760259 Author: Jon Hunter Date: Fri Jul 31 09:44:11 2015 +0100 irqchip/gic: Only allow the primary GIC to set the CPU map The gic_init_bases() function initialises an array that stores the mapping between the GIC and CPUs. This array is a global array that is unconditionally initialised on every call to gic_init_bases(). Although, it is not common for there to be more than one GIC instance, there are some devices that do support nested GIC controllers and gic_init_bases() can be called more than once. A 2nd call to gic_init_bases() will clear the previous CPU mapping and will only setup the mapping again for the CPU calling gic_init_bases(). Fix this by only allowing the CPU map to be configured for the primary GIC. For secondary GICs the CPU map is not relevant because these GICs do not directly route the interrupts to the main CPU(s) but to other GICs or devices. Signed-off-by: Jon Hunter Reviewed-by: Marc Zyngier Cc: Cc: Russell King Cc: Nicolas Pitre Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438332252-25248-1-git-send-email-jonathanh@nvidia.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit 5a7ff75a0c63222d138d944240146dc49a9624e1 Author: Heiko Carstens Date: Tue Aug 4 09:15:58 2015 +0200 s390/syscalls: ignore syscalls reachable via sys_socketcall x86 will wire up all syscalls reachable via sys_socketcall. Therefore this will yield a lot of warnings from the checksyscalls.sh scripts on s390 where we currently don't wire them up directly. This might change in the future, but this needs to be done carefully in order to not break anything. For the time being just tell the checksyscalls script to ignore the missing syscalls on s390. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/include/asm/unistd.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit a763bc8b656d11b7424cd2696e19efca301d8aa4 Author: Philipp Hachtmann Date: Fri May 8 17:40:44 2015 +0200 s390/numa: enable support in s390 configs Signed-off-by: Philipp Hachtmann Signed-off-by: Martin Schwidefsky arch/s390/Kconfig | 6 +++--- arch/s390/configs/default_defconfig | 2 ++ arch/s390/configs/gcov_defconfig | 2 ++ arch/s390/configs/performance_defconfig | 3 +++ 4 files changed, 10 insertions(+), 3 deletions(-) commit c29a7baf091fc6b2c9e40561030f8c62e6145a19 Author: Michael Holzheu Date: Thu Mar 6 18:47:21 2014 +0100 s390/numa: add emulation support NUMA emulation (aka fake NUMA) distributes the available memory to nodes without using real topology information about the physical memory of the machine. Splitting the system memory into nodes replicates the memory management structures for each node. Particularly each node has its own "mm locks" and its own "kswapd" task. For large systems, under certain conditions, this results in improved system performance and/or latency based on reduced pressure on the mm locks and the kswapd tasks. NUMA emulation distributes CPUs to nodes while respecting the original machine topology information. This is done by trying to avoid to separate CPUs which reside on the same book or even on the same MC. Because the current Linux scheduler code requires a stable cpu to node mapping, cores are pinned to nodes when the first CPU thread is set online. This patch is based on the initial implementation from Philipp Hachtmann. Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/Kconfig | 37 ++++ arch/s390/include/asm/numa.h | 4 + arch/s390/numa/Makefile | 1 + arch/s390/numa/mode_emu.c | 511 +++++++++++++++++++++++++++++++++++++++++++ arch/s390/numa/numa.c | 4 + arch/s390/numa/numa_mode.h | 1 + drivers/s390/char/sclp_cmd.c | 18 +- 7 files changed, 569 insertions(+), 7 deletions(-) commit 56113f6e6f8d57d3c184544c6421422558a9988e Author: Joe Perches Date: Mon Aug 3 10:49:29 2015 -0700 ASoC: atmel_ssc_dai: Correct misuse of 0x% Correct misuse of 0x%d in logging message. Signed-off-by: Joe Perches Signed-off-by: Mark Brown sound/soc/atmel/atmel_ssc_dai.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76bea64c4c8d7fa911eb485c4c2b8583e813331e Author: Aaron Sierra Date: Mon Aug 3 18:56:21 2015 -0500 crypto: talitos - Remove zero_entry static initializer Compiling the talitos driver with my GCC 4.3.1 e500v2 cross-compiler resulted in a failed build due to the anonymous union/structures introduced in this commit: crypto: talitos - enhanced talitos_desc struct for SEC1 The build error was: drivers/crypto/talitos.h:56: error: unknown field 'len' specified in initializer drivers/crypto/talitos.h:56: warning: missing braces around initializer drivers/crypto/talitos.h:56: warning: (near initialization for 'zero_entry.') drivers/crypto/talitos.h:57: error: unknown field 'j_extent' specified in initializer drivers/crypto/talitos.h:58: error: unknown field 'eptr' specified in initializer drivers/crypto/talitos.h:58: warning: excess elements in struct initializer drivers/crypto/talitos.h:58: warning: (near initialization for 'zero_entry') make[2]: *** [drivers/crypto/talitos.o] Error 1 make[1]: *** [drivers/crypto] Error 2 make: *** [drivers] Error 2 This patch eliminates the errors by relying on the C standard's implicit assignment of zero to static variables. Signed-off-by: Aaron Sierra Signed-off-by: Herbert Xu drivers/crypto/talitos.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit f6e45c24f401f3d0e648bfba304c83b64d763559 Author: Stephan Mueller Date: Mon Aug 3 09:08:05 2015 +0200 crypto: doc - AEAD API conversion The AEAD API changes are now reflected in the crypto API doc book. Signed-off-by: Stephan Mueller Signed-off-by: Herbert Xu Documentation/DocBook/crypto-API.tmpl | 4 ++-- include/crypto/aead.h | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) commit 327cbbabfb77c321fb9f21068c18e6bb951d07a7 Author: Colin Ian King Date: Mon Aug 3 00:05:03 2015 +0100 crypto: img-hash - fix spelling mistake in dev_err error message Trival change, fix spelling mistake 'aquire' -> 'acquire' in dev_err message. Signed-off-by: Colin Ian King Signed-off-by: Herbert Xu drivers/crypto/img-hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6cd379b4d68867295ea35a719008e86d7a2ee9f Author: Subash Abhinov Kasiviswanathan Date: Thu Jul 30 16:53:45 2015 +0000 netfilter: ip6t_REJECT: Remove debug messages from reject_tg6() Make it similar to reject_tg() in ipt_REJECT. Suggested-by: Pablo Neira Ayuso Signed-off-by: Subash Abhinov Kasiviswanathan Signed-off-by: Pablo Neira Ayuso net/ipv6/netfilter/ip6t_REJECT.c | 5 ----- 1 file changed, 5 deletions(-) commit 964927f3119289b72e34d8eea65b0fc62b47b499 Author: Roger Quadros Date: Wed Jul 8 13:42:32 2015 +0300 ARM: dts: dra7: Add named interrupt property for dwc3 Add interrupt names so that the same can be used for OTG easily. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 21 ++++++++++++++++++--- arch/arm/boot/dts/dra74x.dtsi | 7 ++++++- 2 files changed, 24 insertions(+), 4 deletions(-) commit 8d33c0934b2be2c90a750978acabf168311dad0a Author: Roger Quadros Date: Wed Jul 8 13:42:31 2015 +0300 ARM: dts: omap5: Add named interrupt property for dwc3 Add interrupt names so that the same can be used for OTG easily. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5.dtsi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 1d20e4bfd2af8ac6040008c02db276c9c971fc9b Author: Felipe Balbi Date: Wed Jul 8 13:42:30 2015 +0300 ARM: dts: am4372: Add named interrupt property for dwc3 Add interrupt names so that the same can be used for OTG easily. Signed-off-by: Felipe Balbi Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 93a1ceea104169c4faff112bf18a782a72e0483e Author: Alban Bedel Date: Mon Aug 3 19:23:53 2015 +0200 MIPS: ath79: Add the reset controller to the AR9132 dtsi Signed-off-by: Alban Bedel Acked-by: Ralf Baechle Signed-off-by: Philipp Zabel arch/mips/boot/dts/qca/ar9132.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit ff591a91225d3621a503bb18faa0f0d747a06e50 Author: Alban Bedel Date: Mon Aug 3 19:23:52 2015 +0200 reset: Add a driver for the reset controller on the AR71XX/AR9XXX The AR71XX/AR9XXX SoC have a simple reset controller with one bit per reset line. Signed-off-by: Alban Bedel Acked-by: Ralf Baechle Signed-off-by: Philipp Zabel arch/mips/Kconfig | 1 + drivers/reset/Makefile | 1 + drivers/reset/reset-ath79.c | 128 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 130 insertions(+) commit f25b5edac7be7d405965fb68c6b6f65d8852d860 Author: Alban Bedel Date: Mon Aug 3 19:23:51 2015 +0200 devicetree: Add bindings for the ATH79 reset controller Signed-off-by: Alban Bedel Acked-by: Ralf Baechle Signed-off-by: Philipp Zabel .../devicetree/bindings/reset/ath79-reset.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit d1b22e4d8e57e3914d706b108c5b1718d187557d Merge: a6affd2 f109ff1 Author: David S. Miller Date: Tue Aug 4 01:24:35 2015 -0700 Merge branch 'cxgb4-next' Hariprasad Shenai says: ==================== add meminfo, bist status and misc. fixes This patch series adds the following. Add support to dump memory address range of various hw modules Add support to dump edc bist status during ecc error Read correct bits of who am i register for T6 adapter and update T6 register range 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. V2: PATCH 3/4 ("cxgb4/cxgb4vf: read the correct bits of PL Who Am I register") Fix switch statement in get_chip_type() and some more style fixes based on review comment by Sergei Shtylyov ==================== Signed-off-by: David S. Miller commit f109ff110b0f3e34cea45996734da485a2fdaa42 Author: Hariprasad Shenai Date: Tue Aug 4 14:36:20 2015 +0530 cxgb4: Update T6 register ranges Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit d86bd29e0b31f30d5d85ab21385b59703ecc6464 Author: Hariprasad Shenai Date: Tue Aug 4 14:36:19 2015 +0530 cxgb4/cxgb4vf: read the correct bits of PL Who Am I register Read the correct bits of PL Who Am I for the Source PF field which has changed in T6 Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 34 ++++++++++++++++++++++++- drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 8 ++++-- drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 4 +++ drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c | 3 ++- 4 files changed, 45 insertions(+), 4 deletions(-) commit bf8ebb67dae0a07db7aebe7a65c178ff24d90842 Author: Hariprasad Shenai Date: Tue Aug 4 14:36:18 2015 +0530 cxgb4: Add support to dump edc bist status Add support to dump edc bist status for ECC data errors Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 39 ++++++++++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 5 ++-- 2 files changed, 42 insertions(+), 2 deletions(-) commit 5888111cb8f7368304db42787c9495d4b2b82e06 Author: Hariprasad Shenai Date: Tue Aug 4 14:36:17 2015 +0530 cxgb4: Add debugfs support to dump meminfo Add debug support to dump memory address ranges of various hardware modules of the adapter. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 285 +++++++++++++++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 122 +++++++++ 2 files changed, 407 insertions(+) commit 75f80859b130a1cc84e59e71295ce2dd51fe1c81 Author: Peter Zijlstra Date: Wed Jul 15 14:35:46 2015 +0200 perf/x86/intel/pebs: Robustify PEBS buffer drain Vince Weaver and Stephane Eranian reported warnings in the PEBS code when running the perf fuzzer. Stephane wrote: > I can reproduce the problem on my HSW running the fuzzer. > > I can see why this could be happening if you are mixing PEBS and non PEBS events > in the bottom 4 counters. I suspect: > for (bit = 0; bit < x86_pmu.max_pebs_events; bit++) { > if ((counts[bit] == 0) && (error[bit] == 0)) > continue; > > This test is not correct when you have non-PEBS events mixed with > PEBS events and they overflow at the same time. They will have > counts[i] != 0 but error[i] == 0, and thus you fall thru the loop > and hit the assert. Or it is something along those lines. The only way I can make this work is if ->status only has !PEBS events set, because if it has both set we'll take that slow path which masks out the !PEBS bits. After masking there are 3 options: - there is one bit set, and its @bit, we increment counts[bit]. - there are multiple bits set, we increment error[] for each set bit, we do not increment counts[]. - there are no bits set, we do nothing. The intent was to never increment counts[] for !PEBS events. Now if we start out with only a single !PEBS event set, we'll pass the test and increment counts[] for a !PEBS and hit the warn. Reported-by: Vince Weaver Reported-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 2a853e1123cbbb43ff74cc47b4ec582ce34df262 Author: Liang, Kan Date: Fri Jul 3 20:08:27 2015 +0000 perf/x86/intel/pebs: Fix event disable PEBS buffer drain When disabling a PEBS event, we need to drain the buffer. Doing so requires a correct cpuc->pebs_active mask. The current code clears the pebs_active bit before draining the buffer. Fix that. Signed-off-by: "Liang, Kan" Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/37D7C6CF3E00A74B8858931C1DB2F07701885A65@SHSMSX103.ccr.corp.intel.com [ Fixed the SOB. ] Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit b7b7c7821d932ba18ef6c8eafc8536066b4c2ef4 Author: Andy Lutomirski Date: Mon Jul 20 11:49:06 2015 -0400 perf/x86: Add an MSR PMU driver This patch adds an MSR PMU to support free running MSR counters. Such as time and freq related counters includes TSC, IA32_APERF, IA32_MPERF and IA32_PPERF, but also SMI_COUNT. The events are exposed in sysfs for use by perf stat and other tools. The files are under /sys/devices/msr/events/ Signed-off-by: Andy Lutomirski Signed-off-by: Kan Liang [ s/freq/msr/, added SMI_COUNT, fixed bugs. ] Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@kernel.org Cc: adrian.hunter@intel.com Cc: dsahern@gmail.com Cc: eranian@google.com Cc: jolsa@kernel.org Cc: mark.rutland@arm.com Cc: namhyung@kernel.org Link: http://lkml.kernel.org/r/1437407346-31186-1-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/Makefile | 2 + arch/x86/kernel/cpu/perf_event_msr.c | 242 +++++++++++++++++++++++++++++++++++ 2 files changed, 244 insertions(+) commit 070e98873cf7196cad58f8b6e5278dd5533c81f0 Author: Kan Liang Date: Thu Jul 2 08:12:52 2015 -0400 perf/x86/intel/uncore: Add Broadwell-DE uncore support The uncore subsystem for Broadwell-DE is similar to Haswell-EP. There are some differences in pci device IDs, box number and constraints. Please refer to the public document: http://www.intel.com/content/www/us/en/processors/xeon/xeon-d-1500-uncore-performance-monitoring.html Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1435839172-15114-1-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore.c | 6 + arch/x86/kernel/cpu/perf_event_intel_uncore.h | 2 + .../x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 164 +++++++++++++++++++++ 3 files changed, 172 insertions(+) commit 8c4fe7095d633dd5543690ea5c3d522c5cd989b6 Author: Andi Kleen Date: Tue Jun 30 16:33:24 2015 -0700 perf/x86/intel: Use 0x11 as extra reg test value The next patch adds a new perf extra register where 0x1ff is not a valid value. Use 0x11 instead. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435707205-6676-3-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47732d886385af769449022a02c7cf0ce45d8a5c Author: Andi Kleen Date: Mon Jun 29 14:22:13 2015 -0700 perf/x86: Make merge_attr() global to use from perf_event_intel merge_attr() allows to merge two sysfs attribute tables. Export it to be usable by other files too. Next patch is going to use that to extend the sysfs format attributes for a CPU. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1435612935-24425-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 2 +- arch/x86/kernel/cpu/perf_event.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 90405aa02247c1a6313c33e2253f9fd2299ae60b Author: Andi Kleen Date: Wed May 27 21:13:18 2015 -0700 perf/x86/intel/lbr: Limit LBR accesses to TOS in callstack mode In callstack mode the LBR is not a ring buffer, but a stack that grows up and down. This means in this case we don't need to access all LBRs, only the ones up to TOS. Do this optimization for the normal LBR read, and the context switch save/restore code. For save/restore it can be done unconditionally, as it only runs when call stack mode is active. This recovers some of the cost of going to 32 LBRs on Skylake. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@kernel.org Cc: eranian@google.com Cc: jolsa@redhat.com Link: http://lkml.kernel.org/r/1432786398-23861-6-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_lbr.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit e0573364b8c5b17401569ef581f1625803210f4d Author: Andi Kleen Date: Wed May 27 21:13:17 2015 -0700 perf/x86/intel/lbr: Use correct index to save/restore LBR_INFO with call stack Use the correct index to save/restore the LBR_INFO_x MSR in callstack mode. This is more a cleanup, as even with the wrong index the register was correctly saved/restored, and also LBR callgraph mode in perf tools do not really need anything in LBR_INFO. But still better to use the right index. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@kernel.org Cc: eranian@google.com Cc: jolsa@redhat.com Link: http://lkml.kernel.org/r/1432786398-23861-5-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_lbr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9a92e16fd7b4ccd9aabcbc4d42a3fb5f9a3cf4a1 Author: Andi Kleen Date: Sun May 10 12:22:44 2015 -0700 perf/x86/intel: Add Intel Skylake PMU support Add perf core PMU support for future Intel Skylake CPU cores. The code is based on Haswell/Broadwell. There is a new cache event list, based on the updated Haswell event list. Skylake has removed most counter constraints on basic events, so the basic constraints table now only has a single entry (plus the fixed counters). TSX support and various other setups are all shared with Haswell. Skylake has 32 LBR entries. Add a new LBR init function to set this up. The filters are all the same as Haswell. It also has a new LBR format with a separate LBR_INFO_* MSR, but that has been already added earlier. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-7-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 6 +- arch/x86/kernel/cpu/perf_event_intel.c | 232 +++++++++++++++++++++++++++++ arch/x86/kernel/cpu/perf_event_intel_ds.c | 22 +++ arch/x86/kernel/cpu/perf_event_intel_lbr.c | 20 +++ 4 files changed, 279 insertions(+), 1 deletion(-) commit 425507fa5f321bb5ce1b5eb57a9586e0cf0b9802 Author: Andi Kleen Date: Sun May 10 12:22:46 2015 -0700 perf/x86/intel/lbr: Optimize v4 LBR unfreezing In Arch perfmon v4 the GLOBAL_STATUS reset automatically unfreezes LBRs. So no need to do it manually in the LBR code. Add a check to skip it. v2: Move test up to beginning of function. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-9-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_lbr.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 0f29e573dd32bb8598e74271454e97c962da5e05 Author: Andi Kleen Date: Sun May 10 12:22:47 2015 -0700 perf/x86/intel: Move PMU ACK to after LBR read With Arch Perfmon v4 the PMU ack unfreezes the LBRs. So we need to do the PMU ack after the LBR reading, otherwise the LBRs would be polluted by the PMI handler. This is a minimal change. In principle the ACK could be moved much later. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-10-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8020bee1d0caa90e7b9d6f39ac1fdfaaee7f67f Author: Andi Kleen Date: Sun May 10 12:22:45 2015 -0700 perf/x86/intel: Handle new arch perfmon v4 status bits ArchPerfmon v4 has some new status bits in GLOBAL_STATUS. These need to be ignored when deciding whether a NMI was an NMI, to avoid eating all NMIs when they stay set, see: b292d7a10487 ("perf/x86/intel: ignore CondChgd bit to avoid false NMI handling") This patch ignores the new ASIF bit, which indicates that SGX interfered with the PMU, and also the new LBR freezing bits, which are set when the LBRs get frozen, plus the existing CondChange (set by JTAG debuggers and some buggy BIOSes) Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-8-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 50eab8f6ecd77ae4f9742f8e21ea50705ce0f830 Author: Andi Kleen Date: Sun May 10 12:22:43 2015 -0700 perf/x86/intel/lbr: Add support for LBRv5 Add support for the new LBRv5 format used on Intel Skylake CPUs. The flags for mispredict, abort, in_tx etc. moved to range of separate LBR_INFO_* MSRs. Teach the LBR code to read those. The original LBR registers stay the same, except they have full sign extension now. LBR_INFO also reports a cycle count to the last branch. Report the cycle information using the new "cycles" branch_info output field. In addition we have to context switch and clear the new INFO MSRs to avoid any information leaks. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-6-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 1 + arch/x86/kernel/cpu/perf_event_intel_lbr.c | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) commit 71ef3c6b9d4665ee7afbbe4c208a98917dcfc32f Author: Andi Kleen Date: Sun May 10 12:22:42 2015 -0700 perf: Add cycles to branch_info Intel Skylake supports reporting the time in cycles a branch in the LBR took, to give a rough indication of the basic block performance. Export the cycle information in the branch_info structure. This can be done by just reusing some currently zero padding. This is just the generic header change. The architecture still needs to fill it in. There's no attempt to convert to real time, as we really want cycles here. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-5-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar include/uapi/linux/perf_event.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b83ff1c8617aac03a1cf807aafa848fe0f0908f2 Author: Andi Kleen Date: Sun May 10 12:22:41 2015 -0700 x86: Add new MSRs and MSR bits used for Intel Skylake PMU support Add new MSRs (LBR_INFO) and some new MSR bits used by the Intel Skylake PMU driver. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-4-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr-index.h | 6 ++++++ arch/x86/include/asm/perf_event.h | 7 +++++++ 2 files changed, 13 insertions(+) commit a7b58d211ba18c9175b139e18b68c86a6bcc3c3f Author: Andi Kleen Date: Wed May 27 21:13:14 2015 -0700 perf/x86/intel/lbr: Allow time stamp for free running PEBSv3 With PEBSv3 the PEBS record contains a time stamp. That means we can allow free-running PEBS without a PMI even if the user program requested a time stamp. This avoids the need to use -T to get free running PEBS, and also avoids any problems with mis-identifying MMAPs later. Move the free_running_flags state into a variable in x86_pmu and use it. This only works when no explicit clock_id is set. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@kernel.org Cc: eranian@google.com Cc: jolsa@redhat.com Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/1432786398-23861-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 1 + arch/x86/kernel/cpu/perf_event_intel.c | 15 ++++++++++++++- arch/x86/kernel/cpu/perf_event_intel_ds.c | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) commit 2f7ebf2ec2a7b311318aae10b8373b0bd93001a7 Author: Andi Kleen Date: Sun May 10 12:22:40 2015 -0700 perf/x86/intel: Add support for PEBSv3 profiling PEBSv3 is the same as the existing PEBSv2 used on Haswell, but it adds a new TSC field. Add support to the generic PEBS handler to handle the new format, and overwrite the perf time stamp using the new native_sched_clock_from_tsc(). Right now the time stamp is just slightly more accurate, as it is nearer the actual event trigger point. With the PEBS threshold > 1 patchkit it will be much more accurate, avoid the problems with MMAP mismatches earlier. The accurate time stamping is only implemented for the default trace clock for now. v2: Use _skl prefix. Check for default clock_id. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-3-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_ds.c | 36 ++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) commit a94cab2376cb35f236be14e2833cef63a8762a31 Author: Andi Kleen Date: Sun May 10 12:22:39 2015 -0700 perf/x86: Add a native_perf_sched_clock_from_tsc() PEBSv3 has a raw TSC time stamp in its memory buffer that later needs to to be converted to perf_clock. Add a native_sched_clock_from_tsc() that works the same as native_sched_clock(), but starts with an already given TSC value. Paravirt is ignored, it will just get the native clock. But there isn't a para virtualized PEBS anyway. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/include/asm/tsc.h | 1 + arch/x86/kernel/tsc.c | 8 ++++++++ 2 files changed, 9 insertions(+) commit b1bf72d6691cc33fc7763fc8ec77df42ca1a8702 Author: Alexander Shishkin Date: Thu Jul 30 16:15:31 2015 +0300 perf/x86/intel/pt: Add new timing packet enables Intel PT chapter in the new Intel Architecture SDM adds several packets corresponding enable bits and registers that control packet generation. Also, additional bits in the Intel PT CPUID leaf were added to enumerate presence and parameters of these new packets and features. The packets and enables are: * CYC: cycle accurate mode, provides the number of cycles elapsed since previous CYC packet; its presence and available threshold values are enumerated via CPUID; * MTC: mini time counter packets, used for tracking TSC time between full TSC packets; its presence and available resolution options are enumerated via CPUID; * PSB packet period is now configurable, available period values are enumerated via CPUID. This patch adds corresponding bit and register definitions, pmu driver capabilities based on CPUID enumeration, new attribute format bits for the new featurens and extends event configuration validation function to take these into account. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1438262131-12725-1-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/msr-index.h | 8 ++++ arch/x86/kernel/cpu/intel_pt.h | 6 +++ arch/x86/kernel/cpu/perf_event_intel_pt.c | 68 ++++++++++++++++++++++++++++++- 3 files changed, 81 insertions(+), 1 deletion(-) commit 9a6694cfa2390181dec936a17c0d9d21ef7b08d9 Author: Alexander Shishkin Date: Thu Jul 30 16:48:24 2015 +0300 perf/x86/intel/pt: Do not force sync packets on every schedule-in Currently, the PT driver zeroes out the status register every time before starting the event. However, all the writable bits are already taken care of in pt_handle_status() function, except the new PacketByteCnt field, which in new versions of PT contains the number of packet bytes written since the last sync (PSB) packet. Zeroing it out before enabling PT forces a sync packet to be written. This means that, with the existing code, a sync packet (PSB and PSBEND, 18 bytes in total) will be generated every time a PT event is scheduled in. To avoid these unnecessary syncs and save a WRMSR in the fast path, this patch changes the default behavior to not clear PacketByteCnt field, so that the sync packets will be generated with the period specified as "psb_period" attribute config field. This has little impact on the trace data as the other packets that are normally sent within PSB+ (between PSB and PSBEND) have their own generation scenarios which do not depend on the sync packets. One exception where we do need to force PSB like this when tracing starts, so that the decoder has a clear sync point in the trace. For this purpose we aready have hw::itrace_started flag, which we are currently using to output PERF_RECORD_ITRACE_START. This patch moves setting itrace_started from perf core to the pmu::start, where it should still be 0 on the very first run. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1438264104-16189-1-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_pt.c | 7 +++++-- kernel/events/core.c | 2 -- 2 files changed, 5 insertions(+), 4 deletions(-) commit 27747f8bc355a2808ca9e490ab6866acd85b4c16 Author: Andy Lutomirski Date: Thu Jul 30 20:32:42 2015 -0700 perf/x86/hw_breakpoints: Fix check for kernel-space breakpoints The check looked wrong, although I think it was actually safe. TASK_SIZE is unnecessarily small for compat tasks, and it wasn't possible to make a range breakpoint so large it started in user space and ended in kernel space. Nonetheless, let's fix up the check for the benefit of future readers. A breakpoint is in the kernel if either end is in the kernel. Signed-off-by: Andy Lutomirski Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Brian Gerst Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/136be387950e78f18cea60e9d1bef74465d0ee8f.1438312874.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/hw_breakpoint.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit ab513927ab449af00cc70b0269e15ee80dd537f9 Author: Andy Lutomirski Date: Thu Jul 30 20:32:41 2015 -0700 perf/x86/hw_breakpoints: Improve range breakpoint validation Range breakpoints will do the wrong thing if the address isn't aligned. While we're there, add comments about why it's safe for instruction breakpoints. Signed-off-by: Andy Lutomirski Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Brian Gerst Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/ae25d14d61f2f43b78e0a247e469f3072df7e201.1438312874.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/hw_breakpoint.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit e5779e8e12299f77c2421a707855d8d124171d85 Author: Andy Lutomirski Date: Thu Jul 30 20:32:40 2015 -0700 perf/x86/hw_breakpoints: Disallow kernel breakpoints unless kprobe-safe Code on the kprobe blacklist doesn't want unexpected int3 exceptions. It probably doesn't want unexpected debug exceptions either. Be safe: disallow breakpoints in nokprobes code. On non-CONFIG_KPROBES kernels, there is no kprobe blacklist. In that case, disallow kernel breakpoints entirely. It will be particularly important to keep hw breakpoints out of the entry and NMI code once we move debug exceptions off the IST stack. Signed-off-by: Andy Lutomirski Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Brian Gerst Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/e14b152af99640448d895e3c2a8c2d5ee19a1325.1438312874.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/hw_breakpoint.c | 15 +++++++++++++++ include/linux/kprobes.h | 2 ++ kernel/kprobes.c | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) commit ae3f011fc25104a218caf4448b1d47ef1c9b3a42 Author: Kan Liang Date: Wed Jun 24 11:23:35 2015 -0700 perf/x86/intel: Fix SLM MSR_OFFCORE_RSP1 valid_mask AVG_LATENCY(bit 38) is only available on MSR_OFFCORE_RSP0. So the bit should be removed from RSP1 valid_mask. Since RSP0 and RSP1 may have different valid_mask, intel_alt_er should validate the config on the alternate offcore reg before replacing it. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435170215-5017-1-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit c749b3e96398fcc39286267b72fb8b85c0f757ea Author: Alexander Shishkin Date: Wed Jun 24 13:05:49 2015 +0300 perf/x86/intel/lbr: Kill off intel_pmu_needs_lbr_smpl for good The x86_lbr_exclusive commit (4807034248be "perf/x86: Mark Intel PT and LBR/BTS as mutually exclusive") mistakenly moved intel_pmu_needs_lbr_smpl() to perf_event.h, while another commit (a46a2300019 "perf: Simplify the branch stack check") removed it in favor of needs_branch_stack(). This patch gets rid of intel_pmu_needs_lbr_smpl() for good. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1435140349-32588-3-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.h | 14 -------------- 1 file changed, 14 deletions(-) commit e9b3bd379c283577e102529bfb22484238be7c91 Author: Alexander Shishkin Date: Wed Jun 24 13:05:48 2015 +0300 perf/x86/intel/bts: Drop redundant declarations Both intel_pmu_enable_bts() and intel_pmu_disable_bts() are in perf_event.h header file, no need to have them declared again in the driver. Signed-off-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@infradead.org Cc: adrian.hunter@intel.com Cc: hpa@zytor.com Link: http://lkml.kernel.org/r/1435140349-32588-2-git-send-email-alexander.shishkin@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_bts.c | 3 --- 1 file changed, 3 deletions(-) commit 3a999587b4a1815cf4dadddf6b5aad470f048239 Author: Andi Kleen Date: Sun Jun 14 22:57:41 2015 -0700 perf/x86/intel/uncore: Use Sandy Bridge client PMU on Haswell/Broadwell Haswell and Broadwell have the same uncore CBOX/ARB PMU as Sandy Bridge. Add the respective model numbers to enable the SNB uncore PMU. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/1434347862-28490-2-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore.c | 5 +++++ 1 file changed, 5 insertions(+) commit e3a13192d86048e91a2a1d534abe5ac2397d9113 Author: Andi Kleen Date: Sun Jun 14 22:57:40 2015 -0700 perf/x86/intel/uncore: Add support for ARB uncore PMU on Sandy/IvyBridge Add a new "ARB" uncore PMU that is used to monitor the uncore queue arbiter. This is useful to measure uncore queue occupancy and similar statistics. The registers all have the same format as the existing CBOX PMU. Also move the event constraints from the CBOX to ARB. The 0x80+ events are ARB events and cannot be scheduled on a CBOX PMU. Signed-off-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: eranian@google.com Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/1434347862-28490-1-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit 070a7cdfa4a0a799235d79e58e7b0b2d94dff190 Author: Vaishali Thakkar Date: Fri Jul 17 10:57:59 2015 +0530 perf/x86/intel/uncore: Remove use of macro DEFINE_PCI_DEVICE_TABLE() The DEFINE_PCI_DEVICE_TABLE() macro is deprecated. Use 'struct pci_device_id' instead of DEFINE_PCI_DEVICE_TABLE(), with the goal of getting rid of this macro completely. This Coccinelle semantic patch performs this transformation: @@ identifier a; declarer name DEFINE_PCI_DEVICE_TABLE; initializer i; @@ - DEFINE_PCI_DEVICE_TABLE(a) + const struct pci_device_id a[] = i; Signed-off-by: Vaishali Thakkar Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150717052759.GA6265@vaishali-Ideapad-Z570 Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3a2a7797326a4bc59b7ff0cc92c8b274abf21892 Author: Dasaratharaman Chandramouli Date: Tue May 26 11:47:39 2015 -0700 perf/x86/intel/rapl: Add support for Knights Landing (KNL) Knights Landing DRAM RAPL supports PKG and DRAM RAPL domains. DRAM RAPL has a different fixed energy unit (2^-16J) similar to that of HSW. Signed-off-by: Dasaratharaman Chandramouli Signed-off-by: Peter Zijlstra (Intel) Acked-by: Stephane Eranian Acked-by: Jacob Pan Cc: Arnaldo Carvalho de Melo Cc: H. Peter Anvin Cc: Jacob Pan Jun Cc: Linus Torvalds Cc: Nikhil Rao Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/aa63b4a3af3160152fea1a10c807f4200527280c.1432665809.git.dasaratharaman.chandramouli@intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event_intel_rapl.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit bef033a3c68a0cd31c81973946be768e9dd7ba42 Author: Ingo Molnar Date: Tue Aug 4 09:42:54 2015 +0200 sched, sparc32: Update scheduler comments in copy_thread() There's no finish_arch_switch() anymore in the latest scheduler tree. Also update some other details. Cc: David S. Miller Cc: Peter Zijlstra Cc: Mike Galbraith Cc: Linus Torvalds Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: sparclinux@vger.kernel.org Signed-off-by: Ingo Molnar arch/sparc/kernel/process_32.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 3c8e4793556981a7f532599959aa3303968056f0 Author: Peter Zijlstra Date: Wed Jul 29 17:31:47 2015 +0200 sched: Remove finish_arch_switch() One less arch hook.. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/sched/core.c | 1 - kernel/sched/sched.h | 3 --- 2 files changed, 4 deletions(-) commit fe363adb922583bacfbd5a30a4c773ccff9bb393 Author: Chris Metcalf Date: Wed Jul 29 13:06:29 2015 -0400 sched, tile: Remove finish_arch_switch Move the simulator bits into switch_to() and use finish_arch_post_lock_switch() for the homecache migration bits. Signed-off-by: Chris Metcalf Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/tile/include/asm/switch_to.h | 10 +++------- arch/tile/kernel/process.c | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) commit b31fdac2a921c8bf5ed9fe2c908625a54ce91e92 Author: Peter Zijlstra Date: Wed Jul 29 17:14:48 2015 +0200 sched, sh: Fold finish_arch_switch() into switch_to() The code looks buggy; why would we be restoring the previous task's DSP state after we've switched to the next task? Fix that and put the restore in switch_to(), removing the need for finish_arch_switch(). Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: michael@amarulasolutions.com Signed-off-by: Ingo Molnar arch/sh/include/asm/switch_to_32.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 08960e344800267df4980c2180e3c2c0c9b5f460 Author: Peter Zijlstra Date: Wed Jul 29 17:27:17 2015 +0200 sched, score: Remove finish_arch_switch() An empty implementation, make it go away. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/score/include/asm/switch_to.h | 2 -- 1 file changed, 2 deletions(-) commit dfdbd59712d58e2ead89df616798968392c5423b Author: Peter Zijlstra Date: Wed Jul 29 17:28:04 2015 +0200 sched, avr32: Remove finish_arch_switch() Fold the tracing hook into switch_to() in order to remove finish_arch_switch(). Signed-off-by: Peter Zijlstra (Intel) Acked-by: Hans-Christian Egtvedt Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/avr32/include/asm/switch_to.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 6916ce3ffff80f0102d39922ddb3b8c4540f2ea2 Author: Ralf Baechle Date: Wed Jul 29 12:14:42 2015 +0200 sched, MIPS: Get rid of finish_arch_switch() MIPS was using finish_arch_switch() as a hook to restore and initialize CPU context for all threads, even newly created kernel and user threads. This is however entirely solvable within switch_to() so get rid of finish_arch_switch() which is in the way of scheduler cleanups. Signed-off-by: Ralf Baechle Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/mips/include/asm/switch_to.h | 48 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 25 deletions(-) commit 7baa7aecdd2f009ddd00a4ad0690c6918bab5b01 Author: Will Deacon Date: Wed Jul 29 12:41:49 2015 +0100 sched, arm: Remove finish_arch_switch() Fold finish_arch_switch() into switch_to(). Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: linux@arm.linux.org.uk [ Fixed up the SOB chain. ] Signed-off-by: Ingo Molnar arch/arm/include/asm/switch_to.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 18f5a374b3db33720dc8c66cb94947585904d6c6 Author: Eliad Peller Date: Thu Jul 16 20:17:42 2015 +0300 iwlwifi: pcie: reset write pointer on ict reset Since the CSR_DRAM_INIT_TBL_WRITE_POINTER bit wasn't set on ict reset, in some flows (like disable ict followed by immediate reset ict) the driver and hardware went out of sync (the driver cleared the ict_index, while the hw kept it intact). Fix it by setting the flag when resetting ict. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-csr.h | 1 + drivers/net/wireless/iwlwifi/pcie/rx.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit 6dfb36c89dc21c2c77a4b8ea48679cbb15d158b4 Author: Eliad Peller Date: Thu Jul 9 14:17:24 2015 +0300 iwlwifi: call d3_suspend/resume in d0i3 case as well Some CSR registers have to be configured also in case of suspend/resume with unified image (which doesn't includes reconfiguration flow). Reuse the existing d3_suspend/d3_resume trans ops, while making sure some configurations are a bit different, according to the wowlan type. After this change, we no longer need the special wowlan_d0i3 configurations done in iwl_pci_resume, as they are already being done in the d3_resume op. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 6 ++++++ drivers/net/wireless/iwlwifi/pcie/drv.c | 13 +++-------- drivers/net/wireless/iwlwifi/pcie/trans.c | 36 +++++++++++++++++++++---------- 3 files changed, 34 insertions(+), 21 deletions(-) commit cdc306b2f604d59bb7fb558fadade195f1eb289e Author: Gregory Greenman Date: Mon Jul 20 12:55:34 2015 +0300 iwlwifi: mvm: ignore CQM when setting beacon filtering in D0i3 enter flow CQM overwrites a few thresholds in the bf command. On the other hand, when entering D0i3 the thresholds are set to higher values on purpose, so ignore CQM in this case. Signed-off-by: Gregory Greenman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/power.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f739c39ce630c97912a16639bd10231073aef6c8 Author: Gregory Greenman Date: Wed Jul 22 15:46:37 2015 +0300 iwlwifi: mvm: fix beacon filtering temperature thresholds for D0i3 The slow filtering threshold should be higher in D0i3 case. Signed-off-by: Gregory Greenman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/fw-api-power.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 93190fb0589f97bd603bd545459122a8f5532080 Author: Avri Altman Date: Sat Dec 27 09:09:47 2014 +0200 iwlwifi: mvm: Enable Rx Checksum hw TCP software implementation on the host requires extensive computing power. Offloading even some of the TCP/IP stack to the NIC might save a significant overhead. In order to enable this feature on our hw, we need to configure it first. Once done, we mark this capability, to be advertised later to the OS via ieee80211_register_hw. The driver Rx indications for TCP Checksum is integrated within the standard Rx status. The driver responds to those indications as follows: If the frame was tested by hw and checksum ok report CHECKSUM_UNNECESSARY. Otherwise, report CHECKSUM_NONE. Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-8000.c | 1 + drivers/net/wireless/iwlwifi/iwl-config.h | 2 ++ drivers/net/wireless/iwlwifi/iwl-fw-file.h | 2 ++ drivers/net/wireless/iwlwifi/iwl-prph.h | 3 +++ drivers/net/wireless/iwlwifi/mvm/fw-api.h | 31 +++++++++++++++++++++++++++-- drivers/net/wireless/iwlwifi/mvm/fw.c | 4 ++++ drivers/net/wireless/iwlwifi/mvm/mac80211.c | 6 ++++++ drivers/net/wireless/iwlwifi/mvm/mvm.h | 10 ++++++++++ drivers/net/wireless/iwlwifi/mvm/rx.c | 17 ++++++++++++++++ 9 files changed, 74 insertions(+), 2 deletions(-) commit 869f3b15c9fba037956f642b2023fd16d9ee2f56 Author: Haim Dreyfuss Date: Mon Jul 20 14:16:21 2015 +0300 iwlwifi: pcie: provide a way to stop configuration if it is forbidden The firmware debug infrastructure allows the user to provide a firmware that will toggle a few registers to configure the debugging capabilities. On certain devices, certain operations are forbidden. Executing a forbidden operation will cause the hardware to die in a way that only driver unload / load will bring it back to life. Fortunately, there is a way to know in advance if those operations will be accepted by the device. This is where the new PRPH_BLOCKBIT operation plays its role. If the bit X from PRPH register Y is set, then we should prevent any further register configuration. When that happens, drop a line in the kernel log since this is really an error state: the user won't have his device configured as he expected. Add operations that will be used in the future: INDIRECT_ASSIGN, INDIRECT_SETBIT, and INDIRECT_CLEARBIT. Other debugging configurations (such as destination configuration for the monitor) will take place in any case. Signed-off-by: Haim Dreyfuss Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 6 ++++++ drivers/net/wireless/iwlwifi/pcie/trans.c | 9 +++++++++ 2 files changed, 15 insertions(+) commit d0ab08d05e5ae84edda5bf86797cbc2daee75db2 Author: Ilan Peer Date: Wed Jun 24 09:23:01 2015 +0300 iwlwifi: mvm: Use the AP station for non_sta transmit In iwl_mvm_tx_skb_non_sta(), in case of managed interface, use the AP station for multicast frames instead of the auxiliary station as otherwise the frames can be sent to an absent P2P GO as the FW does not block transmissions for the auxiliary station since it is not associated with the station MAC context. Note that this is not possible for unicast frames, as a TDLS discovery response is sent without a station entry, and in this case the P2P GO NoA should not block transmission to the peer. Signed-off-by: Ilan Peer Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/tx.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) commit d576cd9d599604b9b712939c2ddea0db90463126 Author: Avri Altman Date: Sun Jun 28 08:10:46 2015 +0300 iwlwifi: mvm: update comment of power_scheme module parameter Signed-off-by: Avri Altman Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mvm.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c43fe907fec2c1925d423777ba14e0baf30c672c Author: Eliad Peller Date: Thu Jun 4 21:59:32 2015 +0300 iwlwifi: return error if d0i3 was aborted Allow the transport layer to return an error upon suspend. Signed-off-by: Eliad Peller Reviewed-by: Luciano Coelho Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-trans.h | 10 ++++++---- drivers/net/wireless/iwlwifi/mvm/d3.c | 8 ++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) commit 2d42801bd62eb2018da914272fd505a6d32004a8 Author: Eliad Peller Date: Wed Jun 17 15:32:37 2015 +0300 Revert "iwlwifi: mvm: move deferred d0i3 exit to resume_complete op" This reverts commit 088070a2f6575402d3dd82e1c5a4a8e1941805f6. When working in d0i3_on_idle mode, we explicitly go out of d0i3 on resume (so other potential commands could be sent). However, D0I3_DEFER_WAKEUP is currently cleared on resume complete (which happens only later on), causing d0i3 exit to timeout. Since mac80211 was modified to accept incoming frames once drv_resume was called, we can safely revert this patch, and handle the pending work on iwl_mvm_resume(). Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/d3.c | 58 +++++++++++++++++++++-------- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 13 ------- 2 files changed, 43 insertions(+), 28 deletions(-) commit 88742c9e84f73eeea4abe967d751b0e6318c2c2e Author: Johannes Berg Date: Tue Jun 30 15:31:22 2015 +0200 iwlwifi: mvm: move existing UMAC commands to group 1 Existing UMAC commands already use the long header, but are sent with group 0 and the long header inserted manually. Move them to the group 1 to take advantage of the header building in the low- level transport. Existing firmware ignores the group_id field (it's reserved) and the first firmware that really supports long command headers can parse all commands in both group 0 (with short header) and group 1 (with long header.) Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-trans.h | 5 +++++ drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h | 18 --------------- drivers/net/wireless/iwlwifi/mvm/fw-api-tof.h | 5 ----- drivers/net/wireless/iwlwifi/mvm/scan.c | 22 ++++++++---------- drivers/net/wireless/iwlwifi/mvm/tof.c | 31 ++++++++++---------------- drivers/net/wireless/iwlwifi/pcie/tx.c | 3 ++- 6 files changed, 28 insertions(+), 56 deletions(-) commit ab02165ccec4c78162501acedeef1a768acdb811 Author: Aviya Erenfeld Date: Tue Jun 9 16:45:52 2015 +0300 iwlwifi: add wide firmware command infrastructure for TX As the firmware is slowly running out of command IDs and grouping of commands is desirable anyway, the firmware is extending the command header from 4 bytes to 8 bytes to introduce a group (in place of the former flags field, since that's always 0 on commands and thus can be easily used to distinguish between the two. In order to support this most easily in the driver widen the command command ID used in the command sending functions and encode the new values (group and version) in the ID. That way existing code doesn't have to be changed (since the higher bits are 0 automatically) and newer code can easily use the new ID generation function to create a value to use in place of just the command ID. Signed-off-by: Aviya Erenfeld Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach .../net/wireless/iwlwifi/iwl-devtrace-iwlwifi.h | 14 +++-- drivers/net/wireless/iwlwifi/iwl-fw-file.h | 2 + drivers/net/wireless/iwlwifi/iwl-trans.h | 66 ++++++++++++++++++++-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 4 +- drivers/net/wireless/iwlwifi/mvm/ops.c | 2 + drivers/net/wireless/iwlwifi/mvm/utils.c | 4 +- drivers/net/wireless/iwlwifi/pcie/internal.h | 2 + drivers/net/wireless/iwlwifi/pcie/trans.c | 1 + drivers/net/wireless/iwlwifi/pcie/tx.c | 53 ++++++++++++----- 9 files changed, 121 insertions(+), 27 deletions(-) commit ce7929186a390b8630953be6d8225a9ae88030af Author: Gregory Greenman Date: Tue Jun 2 18:06:16 2015 +0300 iwlwifi: mvm: add basic Time of Flight (802.11mc FTM) support ToF is a time based method for measurement of the WiFi device location within a WiFi environment. The driver functionality provided by this patch is the interface for communication with FW and receiving location related updates from the FW. The interface provided by this patch is via debugfs. Signed-off-by: Gregory Greenman Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 2 + drivers/net/wireless/iwlwifi/mvm/Makefile | 1 + drivers/net/wireless/iwlwifi/mvm/constants.h | 1 + drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c | 751 +++++++++++++++++++++++++ drivers/net/wireless/iwlwifi/mvm/fw-api-tof.h | 391 +++++++++++++ drivers/net/wireless/iwlwifi/mvm/fw-api.h | 5 + drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 + drivers/net/wireless/iwlwifi/mvm/ops.c | 5 + drivers/net/wireless/iwlwifi/mvm/tof.c | 311 ++++++++++ drivers/net/wireless/iwlwifi/mvm/tof.h | 94 ++++ 10 files changed, 1563 insertions(+) commit 6bcb00f6183d1eb5d9f8548fe823be7e6d95b912 Author: Sara Sharon Date: Sun Jun 7 10:36:23 2015 +0300 iwlwifi: mvm: remove IWL_UCODE_TLV_API_BASIC_DWELL All the supported firmwares support this API. This includes removing dwell per band, as band is no longer a factor in calculating the dwell. Only basic dwell is used and FW will calculate the actual dwell time. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-fw-file.h | 4 -- drivers/net/wireless/iwlwifi/mvm/scan.c | 86 +++++++----------------------- 2 files changed, 20 insertions(+), 70 deletions(-) commit 30f27df9ba44422b718d244a677b1cc6a5bd5ded Author: Johannes Berg Date: Tue Jun 30 14:45:40 2015 +0200 iwlwifi: remove command header flags field The 'flags' field really has been reserved in the firmware API for a very long time, probably since 4965. As a consequence, the field is always 0 and checking for a IWL_CMD_FAILED_MSK flag makes no sense. Rename the field to 'reserved', get rid of IWL_CMD_FAILED_MSK and all the code for it. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/sta.c | 44 ++++++++++++-------------------- drivers/net/wireless/iwlwifi/iwl-trans.h | 6 +---- drivers/net/wireless/iwlwifi/mvm/fw.c | 7 ----- drivers/net/wireless/iwlwifi/mvm/nvm.c | 12 --------- drivers/net/wireless/iwlwifi/mvm/tdls.c | 9 +------ drivers/net/wireless/iwlwifi/mvm/utils.c | 5 ---- drivers/net/wireless/iwlwifi/pcie/tx.c | 2 +- 7 files changed, 19 insertions(+), 66 deletions(-) commit 31f920b63ae8ff5bf278a00dd8478e58ed89ff95 Author: Emmanuel Grumbach Date: Thu Jul 2 14:53:02 2015 +0300 iwlwifi: pcie: don't warn on long MPDUs when supported In iwlmvm firmwares, the Byte count written in the scheduler byte count table is in DWORDs and not in bytes. We should check that this value fits in the 12 bits and the value can be either in bits of in DWORD or bytes depending on the firmware. Check the value after the translation to DWORDs is done (if needed). Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/tx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 33b56af188ddbd1027b7eaff7abb1507b708f155 Author: Emmanuel Grumbach Date: Thu Jun 25 12:55:45 2015 +0300 iwlwifi: pcie: add missing calls to synchronize_irq() In a few places, we were disabling interrupts but didn't make sure that the interrupt handler has finished running. Add calls to synchronize_irq() to ensure we finish handling the interrupts before we free resources or other things that could lead to a crash if the interrupt were to be handled later. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/trans.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 1103323ca1aafb0aa32064abec736ea9f2ce66a6 Author: Emmanuel Grumbach Date: Wed Jun 24 14:58:13 2015 +0300 iwlwifi: pcie: cancel Tx timer upon firmware crash When the firmware crashes, we can't expect the Tx queues to progress. Cancel their timer. Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/rx.c | 4 ++++ 1 file changed, 4 insertions(+) commit 5bf12f6096ad615c90accc1f37935423ea1a3c26 Author: Ilan Peer Date: Wed Jun 24 10:25:26 2015 +0300 iwlwifi: mvm: Do not sample the device time for session protection Since the time-event is sent with the immediate flag set, there is no need to sample the device time. Signed-off-by: Ilan Peer Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/time-event.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f7e6469fc90aa388ac5047e1ba914b31af9240ae Author: Johannes Berg Date: Tue Jun 23 21:58:17 2015 +0200 iwlwifi: remove command and return value from opmode RX With the previous patch series, no opmode continues using the command or handler_status (i.e. the return value from the RX) so it can be removed now. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/agn.h | 5 ++--- drivers/net/wireless/iwlwifi/dvm/rx.c | 5 +---- drivers/net/wireless/iwlwifi/iwl-op-mode.h | 10 ++++------ drivers/net/wireless/iwlwifi/iwl-trans.h | 3 --- drivers/net/wireless/iwlwifi/mvm/ops.c | 13 +++++-------- drivers/net/wireless/iwlwifi/pcie/internal.h | 2 +- drivers/net/wireless/iwlwifi/pcie/rx.c | 12 +++--------- drivers/net/wireless/iwlwifi/pcie/tx.c | 5 +---- 8 files changed, 17 insertions(+), 38 deletions(-) commit 0416841d709e4d90913576cc43a397e450a745b1 Author: Johannes Berg Date: Tue Jun 23 21:22:09 2015 +0200 iwlwifi: mvm: remove command/return value from RX handlers In the mvm driver, neither the old command nor the return value are used, so remove them. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/coex.c | 44 +++++----- drivers/net/wireless/iwlwifi/mvm/coex_legacy.c | 31 +++---- drivers/net/wireless/iwlwifi/mvm/fw.c | 13 +-- drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c | 13 +-- drivers/net/wireless/iwlwifi/mvm/mvm.h | 107 ++++++++++--------------- drivers/net/wireless/iwlwifi/mvm/nvm.c | 11 +-- drivers/net/wireless/iwlwifi/mvm/ops.c | 22 ++--- drivers/net/wireless/iwlwifi/mvm/power.c | 7 +- drivers/net/wireless/iwlwifi/mvm/rx.c | 20 ++--- drivers/net/wireless/iwlwifi/mvm/scan.c | 35 +++----- drivers/net/wireless/iwlwifi/mvm/sta.c | 9 +-- drivers/net/wireless/iwlwifi/mvm/sta.h | 5 +- drivers/net/wireless/iwlwifi/mvm/tdls.c | 12 +-- drivers/net/wireless/iwlwifi/mvm/time-event.c | 7 +- drivers/net/wireless/iwlwifi/mvm/time-event.h | 5 +- drivers/net/wireless/iwlwifi/mvm/tt.c | 10 +-- drivers/net/wireless/iwlwifi/mvm/tx.c | 16 ++-- drivers/net/wireless/iwlwifi/mvm/utils.c | 4 +- 18 files changed, 139 insertions(+), 232 deletions(-) commit 73e686f399b3a11e4d26dc13b6f68380e31820dd Author: Johannes Berg Date: Tue Jun 23 21:22:09 2015 +0200 iwlwifi: dvm: remove command/return value from RX handlers After the previous patches, the command that's passed in nor the return value are used any more, so can be removed. While at it, make some functions static. Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/agn.h | 14 ++--- drivers/net/wireless/iwlwifi/dvm/dev.h | 5 +- drivers/net/wireless/iwlwifi/dvm/lib.c | 8 +-- drivers/net/wireless/iwlwifi/dvm/rx.c | 103 ++++++++++++-------------------- drivers/net/wireless/iwlwifi/dvm/scan.c | 25 +++----- drivers/net/wireless/iwlwifi/dvm/sta.c | 16 ++--- drivers/net/wireless/iwlwifi/dvm/tx.c | 18 ++---- 7 files changed, 65 insertions(+), 124 deletions(-) commit 121b80091916a3fc401f515c8c6cbdfe9ece3576 Author: Johannes Berg Date: Tue Jun 23 21:01:44 2015 +0200 iwlwifi: dvm: remove ADD_STA prints relying on station ID This makes the logging a little less useful, but as they're mostly synchronous commands it won't matter much. It gets rid of the dependency on the input command, which this is the only user of. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/sta.c | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) commit 4492bb6b10b1fbbc3fd4e8ea1b1bef51a1b2b31a Author: Johannes Berg Date: Tue Jun 23 20:56:45 2015 +0200 iwlwifi: dvm: move ADD_STA response handling to sync command This driver currently has some very confusing ADD_STA response handling that runs asynchronously in the background for all of the commands, but is only really necessary for synchronous ones (the really asynchronous ones can only be done for already existing stations), and for the sync ones it actually waits for the RX handler to return a status code. Rework this to keep the debug printing in the handler, but do the code that's supposed to have an effect only for sync commands in the command sending function. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/sta.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 2dc2a15ebd12c44074d0ea2eef3e97956df4bb86 Author: Johannes Berg Date: Tue Jun 16 17:09:18 2015 +0200 iwlwifi: mvm: LRU-assign key offsets The current key offset assignment algorithm always uses the lowest unused key offset, which will potentially lead to issues when the firmware will change to take the key material for TX from the key table rather than from the TX command. In order to avoid those issues (and avoid forgetting about them) change the key offset allocation algorithm now to avoid reusing key offsets quickly. The new algorithm always picks as the next offset the least recently freed offset, i.e. the offset that has been unused for the longest amount of time. This is implemented by having a generation counter for each key offset that is incremented every time a key is deleted, except for the one that's deleted, which is reset to zero. Thus the highest counter is the key that's been unused longest. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/mvm.h | 1 + drivers/net/wireless/iwlwifi/mvm/sta.c | 32 ++++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 6 deletions(-) commit 94ce9e5e73c71b26a19b83844f9840859f3b035b Author: Haim Dreyfuss Date: Sun Jun 14 11:17:07 2015 +0300 iwlwifi: pcie: Set scheduler to work on auto mode During NIC initialization shared HW is reset and this disables the scheduler. Some HW platforms do not activate the scheduler after it. Consequently all HCMD sent by the driver stay at the queues which cause to queue stuck. Set the scheduler to work on auto active mode so it would be activated upon change over one of the queues' write pointer. Signed-off-by: Haim Dreyfuss Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-prph.h | 1 + drivers/net/wireless/iwlwifi/pcie/tx.c | 1 + 2 files changed, 2 insertions(+) commit a6affd24f439feddec04bab4d1e3ad6579868367 Author: Robert Shearman Date: Mon Aug 3 17:50:04 2015 +0100 mpls: Use definition for reserved label checks In multiple locations there are checks for whether the label in hand is a reserved label or not using the arbritray value of 16. Factor this out into a #define for better maintainability and for documentation. Signed-off-by: Robert Shearman Acked-by: Roopa Prabhu Signed-off-by: David S. Miller include/uapi/linux/mpls.h | 2 ++ net/mpls/af_mpls.c | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) commit c961b1ccd0f258bdee808c61c2c2a0907a1fffda Merge: 58da018 0335f5b Author: David S. Miller Date: Mon Aug 3 22:26:14 2015 -0700 Merge branch 'lwtunnel-encap-local' Robert Shearman says: ==================== lwtunnel: encap locally-generated ipv4 packets Locally-generated IPv4 packets, such as from applications running on the host or traceroute/ping currently don't have lwtunnel output redirected encap applied. However, they should do in the same way as for forwarded packets and this patch series addresses that. ==================== Signed-off-by: David S. Miller commit 0335f5b500adcc28bc3fd5d8a1e4482c348cff4a Author: Robert Shearman Date: Mon Aug 3 17:39:21 2015 +0100 ipv4: apply lwtunnel encap for locally-generated packets lwtunnel encap is applied for forwarded packets, but not for locally-generated packets. This is because the output function is not overridden in __mkroute_output, unlike it is in __mkroute_input. The lwtunnel state is correctly set on the rth through the call to rt_set_nexthop, so all that needs to be done is to override the dst output function to be lwtunnel_output if there is lwtunnel state present and it requires output redirection. Signed-off-by: Robert Shearman Signed-off-by: David S. Miller net/ipv4/route.c | 2 ++ 1 file changed, 2 insertions(+) commit abf7c1c540f8330fead5d50730d92606dcbe7a7e Author: Robert Shearman Date: Mon Aug 3 17:39:20 2015 +0100 lwtunnel: set skb protocol and dev In the locally-generated packet path skb->protocol may not be set and this is required for the lwtunnel encap in order to get the lwtstate. This would otherwise have been set by ip_output or ip6_output so set skb->protocol prior to calling the lwtunnel encap function. Additionally set skb->dev in case it is needed further down the transmit path. Signed-off-by: Robert Shearman Signed-off-by: David S. Miller net/core/lwtunnel.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit d0a12625d2ff2c63321b3cf48c48184748ab577a Author: Tushar Dave Date: Wed Jun 10 13:34:24 2015 -0700 thermal: Add Intel PCH thermal driver This change adds a thermal driver for Wildcat Point platform controller hub. This driver register PCH thermal sensor as a thermal zone and associate critical and hot trips if present. Signed-off-by: Tushar Dave Reviewed-by: Pandruvada, Srinivas Signed-off-by: Zhang Rui drivers/thermal/Kconfig | 8 + drivers/thermal/Makefile | 1 + drivers/thermal/intel_pch_thermal.c | 286 ++++++++++++++++++++++++++++++++++++ 3 files changed, 295 insertions(+) commit 4e0fa71c934287c160e264b3d5dd0e5c0824f6f9 Author: Mayank Bareja Date: Mon Aug 3 11:23:01 2015 +0000 Staging: rtl8188eu/core: fixed code indentation warning as reported by checkpatch.pl fixed code indentation warning as detected with checkpatch.pl. Replaced spaces with tabs. Signed-off-by: Mayank Bareja Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_debug.c | 4 +-- drivers/staging/rtl8188eu/core/rtw_efuse.c | 2 +- drivers/staging/rtl8188eu/core/rtw_mlme.c | 4 +-- drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 8 +++--- drivers/staging/rtl8188eu/core/rtw_security.c | 2 +- drivers/staging/rtl8188eu/core/rtw_xmit.c | 36 +++++++++++++-------------- 6 files changed, 28 insertions(+), 28 deletions(-) commit 66e6d70df20046d3e2b04d9455dd68acfc5c61ef Author: Yash Shah Date: Mon Aug 3 11:18:31 2015 +0000 Staging: rts5208: Fix code indentation warning as detected by checkpatch.pl Fixed code indentation warning as detected by checkpatch.pl. Signed-off-by: Yash Shah Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/ms.c | 5 ++--- drivers/staging/rts5208/sd.c | 10 ++++------ 2 files changed, 6 insertions(+), 9 deletions(-) commit a96389d9add1bc9e32b73ead10cf255f7d598a0d Author: Zoltán Lajos Kis Date: Sun Aug 2 22:36:31 2015 +0200 staging: lustre: service.c: make local functions static Makes functions that are not used outside the file in which they are defined static, as reported by sparse: drivers/staging/lustre/lustre/ptlrpc/service.c:72:35: warning: symbol 'ptlrpc_alloc_rqbd' was not declared. Should it be static? 1065 drivers/staging/lustre/lustre/ptlrpc/service.c:105:1: warning: symbol 'ptlrpc_free_rqbd' was not declared. Should it be static? 1066 drivers/staging/lustre/lustre/ptlrpc/service.c:122:1: warning: symbol 'ptlrpc_grow_req_bufs' was not declared. Should it be static? 1067 drivers/staging/lustre/lustre/ptlrpc/service.c:3055:5: warning: symbol 'ptlrpc_svcpt_health_check' was not declared. Should it be static? Signed-off-by: Zoltán Lajos Kis " Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/service.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 5b34cd299319584f9fd342a5c01af83440d512bd Author: Zoltán Lajos Kis Date: Sun Aug 2 19:22:30 2015 +0200 staging: lustre: echo_client: fix sparse declaration warnings Fixes the following sparse warnings: drivers/staging/lustre/lustre/obdecho/echo_client.c:2142:5: warning: symbol 'echo_client_init' was not declared. Should it be static? drivers/staging/lustre/lustre/obdecho/echo_client.c:2157:6: warning: symbol 'echo_client_exit' was not declared. Should it be static? Signed-off-by: Zoltán Lajos Kis " Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdecho/echo_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5bb546f755380aa5129e480fb0cf04c0655ce13a Author: Kent Gustavsson Date: Sun Aug 2 18:14:50 2015 +0200 staging: rtl8192u: r819xU_firmware: fix coding style Line over 80 characters. This is for Eudyptula Challenge Signed-off-by: Kent Gustavsson Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r819xU_firmware.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 81e053c75a216573bbb10a0325832ca64bcb0404 Author: Oleg Drokin Date: Fri Jul 31 19:42:59 2015 -0400 staging/lustre: Get rid of inode_dio_write_done and inode_dio_read These primitives are long deprecated and unused. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 5 ----- drivers/staging/lustre/lustre/llite/llite_lib.c | 5 +---- drivers/staging/lustre/lustre/llite/vvp_io.c | 5 ++--- 3 files changed, 3 insertions(+), 12 deletions(-) commit 66a23f0cc28b6257328aa2e17499a1f3bd0bd18d Author: Oleg Drokin Date: Fri Jul 31 19:42:58 2015 -0400 staging/lustre: Get rid of ll_pagevec_ macros They are noop anyways. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 5 ----- drivers/staging/lustre/lustre/llite/dir.c | 4 ---- 2 files changed, 9 deletions(-) commit 9d5be52f985b3d0b0b6d0dcae8eb896418bd0d3a Author: Oleg Drokin Date: Fri Jul 31 19:42:57 2015 -0400 staging/lustre: Use hlist primitives directly Get rid of ll_d_hlist* compat defines. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 9 --------- drivers/staging/lustre/lustre/llite/dcache.c | 3 +-- drivers/staging/lustre/lustre/llite/namei.c | 10 ++++------ 3 files changed, 5 insertions(+), 17 deletions(-) commit 56ea686bb749d06bdb67cb95a873a87c5d1fc243 Author: Oleg Drokin Date: Fri Jul 31 19:42:56 2015 -0400 staging/lustre: Drop FMODE_UNSIGNED_OFFSET define It's not really used anywhere. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 4 ---- 1 file changed, 4 deletions(-) commit 1a3555cd3245b3204189a1118364ad41467b73ca Author: Oleg Drokin Date: Fri Jul 31 19:42:55 2015 -0400 staging/lustre: remove unused ll_quota_on and ll_quota_off They are not used anywhere, so safe to drop. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/include/linux/lustre_compat25.h | 31 ---------------------- 1 file changed, 31 deletions(-) commit c625ae0713f18d070ad94612fa3d7f46598f0086 Author: Oleg Drokin Date: Fri Jul 31 19:42:54 2015 -0400 staging/lustre: Drop SEEK_* definition checks SEEK_DATA and SEEK_HOLE are always defined in the kernel, drop the definition checks Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 7 ------- 1 file changed, 7 deletions(-) commit 08582d83e5a23aa2f6316421a4f14a44be3c8e32 Author: Mateusz Kulikowski Date: Thu Jul 30 23:48:50 2015 +0200 staging: rtl8192e: Rework EEPROM handling code Card configuration is stored in SPI EEPROM (93c46 or 93c56) working in 128|256x16 mode. Communication is handled using GPIO bitbang. >From behaviour perspective, delay after read was removed. It is not needed as we wait after reading GPIO mapped to PCI-E register - it should have no side effects. According to sample EEPROM datasheet (AT93Cx6), max frequency for worst case scenario (1.8V supply) is 250kHZ (vs. 1MHz for 5V). Driver generates ~50kHZ clock - margin should be big enough even for devices from other vendors. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h | 8 +- drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 120 ++++++++----------------- 2 files changed, 43 insertions(+), 85 deletions(-) commit fdc792cd1b5c86cb34770707aa1b04edce5288cf Author: Neil Horman Date: Fri Jul 31 18:56:32 2015 -0400 staging: unisys: visorchannel: Add peek function According to unisys, the s_par hypervisor has a bug in which it never triggers an interrupt. That makes the visornic effectively a 2ms poll loop. In order to just have the rx thread shceduling a napi poll every 2ms, lets instead give it the chance to check the response queue for data before we schedule. This helper provides that functionality Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 2 ++ drivers/staging/unisys/visorbus/visorchannel.c | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) commit fd93b8059294146a1c3dc9cf6b5616c22b7b47f7 Author: Geert Uytterhoeven Date: Sun Aug 2 11:09:51 2015 +0200 staging: android: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman drivers/staging/android/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 24b7d011a65042a8bd2f3b93c812c7eae3ead2d8 Author: Geert Uytterhoeven Date: Sun Aug 2 11:09:52 2015 +0200 staging: fbtft: Allow compile test of GPIO consumers if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where appropriate. Signed-off-by: Geert Uytterhoeven Acked-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ad6d8812aa9574b11d5f7a0d322d3b42be24206d Author: Noralf Trønnes Date: Thu Jul 30 19:55:01 2015 +0200 staging: fbtft: core: Don't set device platform_data Pass platform_data as an argument to fbtft_framebuffer_alloc() instead of using dev->platform_data. This fixes an issue where the device comes from Device Tree and fbtft_probe_common() sets dev->platform_data to allocated memory. When the module is reloaded, dev->platform_data points to freed memory. Signed-off-by: Noralf Trønnes Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-core.c | 12 +++++------- drivers/staging/fbtft/fbtft.h | 5 +++-- drivers/staging/fbtft/flexfb.c | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) commit bc7ac432536710193adfb7a05488f8c2e20fbbc2 Author: Randy Dunlap Date: Mon Aug 3 11:35:51 2015 -0700 staging: most: fix hdm-dim2 build error Fix build of hdm-dim2. Since it calls a function that is provided by AIM_NETWORK, make it depend on that symbol. Also fix a misspelling in the Kconfig file. drivers/built-in.o: In function `deliver_netinfo_thread': dim2_hdm.c:(.text+0x3a9563): undefined reference to `most_deliver_netinfo' Signed-off-by: Randy Dunlap Cc: Jain Roy Ambi Cc: Andrey Shvetsov Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-dim2/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f8ff8db038273c9b356c64857f396f037adaefca Author: Randy Dunlap Date: Mon Aug 3 11:35:47 2015 -0700 staging: most: fix aim-sound build errors Fix build errors: driver uses snd_pcm*() interfaces, so select SND_PCM. drivers/built-in.o: In function `audio_rx_completion': sound.c:(.text+0x3cd376): undefined reference to `snd_pcm_period_elapsed' drivers/built-in.o: In function `pcm_prepare': sound.c:(.text+0x3cd3b0): undefined reference to `snd_pcm_format_physical_width' sound.c:(.text+0x3cd3ce): undefined reference to `snd_pcm_format_big_endian' sound.c:(.text+0x3cd42c): undefined reference to `snd_pcm_format_big_endian' drivers/built-in.o: In function `pcm_hw_free': sound.c:(.text+0x3cd50a): undefined reference to `snd_pcm_lib_free_vmalloc_buffer' drivers/built-in.o: In function `pcm_hw_params': sound.c:(.text+0x3cd54c): undefined reference to `_snd_pcm_lib_alloc_vmalloc_buffer' drivers/built-in.o: In function `playback_thread': sound.c:(.text+0x3cd6a0): undefined reference to `snd_pcm_period_elapsed' drivers/built-in.o: In function `audio_probe_channel': sound.c:(.text+0x3cdc0b): undefined reference to `snd_pcm_new' sound.c:(.text+0x3cdc2b): undefined reference to `snd_pcm_set_ops' drivers/built-in.o:(.data+0x952d0): undefined reference to `snd_pcm_lib_ioctl' drivers/built-in.o:(.data+0x95318): undefined reference to `snd_pcm_lib_get_vmalloc_page' Signed-off-by: Randy Dunlap Acked-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-sound/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 2ae0751007cdf2deaa87e160f28c50a00b478883 Author: Christian Gromm Date: Mon Aug 3 13:44:30 2015 +0200 Staging: most: avoid possible integer overflow This patch prevents a potential integer overlow. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 155718cfd1dd1a92b7dbf84db41fe15f6b219cc0 Author: Tomas Winkler Date: Sun Aug 2 22:20:58 2015 +0300 mei: hbm: bump supported HBM version to 2.0 HBM 2.0 version for Sunrise point Skylake (PCH) based devices Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1625c7ec96942b87eee1463aed6ec0595698b931 Author: Tomas Winkler Date: Sun Aug 2 22:20:57 2015 +0300 mei: me: add sunrise point device ids Add MEI devices ids for Intel Sunrisepoint Skylake (PCH) Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-me-regs.h | 4 ++++ drivers/misc/mei/pci-me.c | 5 +++++ 2 files changed, 9 insertions(+) commit b9a1fc99588c2861d4dc26d53b0f47b495cc2964 Author: Alexander Usyskin Date: Sun Aug 2 22:20:56 2015 +0300 mei: me: d0i3: exit d0i3 on driver start and enter it on stop A BIOS may put the device in d0i3 on platform initialization so it won’t consume power even if the driver is not present, in turn the driver has to wake up the devices on load in order to perform the initialization sequence and move it back to low power state on driver remove. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-me.c | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) commit ebad6b945ee2e7e93454ba52030b93e08290317c Author: Alexander Usyskin Date: Sun Aug 2 22:20:55 2015 +0300 mei: me: d0i3: move mei_me_hw_reset down in the file Move mei_me_hw_reset down in the source file to avoid forward declarations when introducing d0i3 flow in the next patch. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-me.c | 103 ++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 51 deletions(-) commit 859ef2ffbfa785d273567467088cc8743f80b5bd Author: Alexander Usyskin Date: Sun Aug 2 22:20:54 2015 +0300 mei: me: d0i3: add d0i3 enter/exit state machine Rework mei power gating state machine to support entry and exit to and from D0i3 power state. The choice between legacy and D0i3 routines is conditioned on d0i3_supported flag. The patch introduces warning: drivers/misc/mei/hw-me.c:901:12: warning: ‘mei_me_d0i3_enter’ defined but not used [-Wunused-function] it will go away in consequent patch Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hbm.c | 13 +- drivers/misc/mei/hbm.h | 1 + drivers/misc/mei/hw-me.c | 337 ++++++++++++++++++++++++++++++++++++++++++++++- drivers/misc/mei/hw.h | 5 +- 4 files changed, 346 insertions(+), 10 deletions(-) commit 63f75232dbb17badc31c3cc6cc1434763d5a6009 Author: Alexander Usyskin Date: Sun Aug 2 22:20:53 2015 +0300 mei: hbm: reorganize the power gating responses Before adding support for D0i3 we need to reorganize the hbm pg handling Move HBM PG response code to dedicated functions in order to unclutter hbm command switch. Add check for the right system state before message processing and return -EPROTO in state mismatch case. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hbm.c | 85 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 15 deletions(-) commit 1fa55b4e0e161b3d16b52f5bab1b39b39607bc27 Author: Alexander Usyskin Date: Sun Aug 2 22:20:52 2015 +0300 mei: me: d0i3: enable d0i3 interrupts D0i3 adds additional interrupt reason bit, therefore we add a variable intr_source to save the interrupt causes for further dispatching. The interrupt cause is saved in the irq quick handler to achieve unified behavior for both MSI enabled and shared interrupt platforms. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-me-regs.h | 4 ++++ drivers/misc/mei/hw-me.c | 35 +++++++++++++++++------------------ drivers/misc/mei/hw-me.h | 2 ++ drivers/misc/mei/pci-me.c | 27 ++++++++++----------------- 4 files changed, 33 insertions(+), 35 deletions(-) commit bb9f4d26dda7d2a875cadc0f7eedee3d65d3d1f5 Author: Alexander Usyskin Date: Sun Aug 2 22:20:51 2015 +0300 mei: me: d0i3: add flag to indicate D0i3 support Detect d0i3 low power state during hw configuration, the value is set in HFS_1 pci config reigister. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-me-regs.h | 1 + drivers/misc/mei/hw-me.c | 10 +++++++++- drivers/misc/mei/hw-me.h | 6 ++++-- 3 files changed, 14 insertions(+), 3 deletions(-) commit 11830486c5717c713bb363b14944cda39e3034f9 Author: Tomas Winkler Date: Sun Aug 2 22:20:50 2015 +0300 mei: me: d0i3: add the control registers Starting with Intel Sunrisepoint (Skylake PCH) the MEI device supports D0i3 low power state. Add D0i3 control registers. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw-me-regs.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 71e117f28a6782fa2d31cce63340a9f18417afa4 Author: Alexander Usyskin Date: Wed Jul 29 14:59:33 2015 +0300 mei: hbm: add new error code MEI_CL_CONN_NOT_ALLOWED The device can return error 5 (NOT_ALLOWED) on connection attempt. This error can happen if: 1. An another connection attempt is in progress 2. There is an attempt to connect a fixed (connectionless) client 3. The number of available connections is exceeded (new in HBM 2.0) We should not hit that error unless there is an internal book keeping hiccup except option (3), therefore we translate the error code to errno EBUSY; Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hbm.c | 2 ++ drivers/misc/mei/hw.h | 1 + 2 files changed, 3 insertions(+) commit bb2ef9c39db2e3c2562b4e439b2b00dc42e2c026 Author: Alexander Usyskin Date: Sun Jul 26 09:54:23 2015 +0300 mei: bus: add and call callback on notify event Enable drivers on mei client bus to subscribe to asynchronous event notifications. Introduce events_mask to the existing callback infrastructure so it is possible to handle both RX and event notification. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 50 ++++++++++++++++++++++++++++++++++++++++++---- drivers/misc/mei/client.c | 2 ++ drivers/misc/mei/mei_dev.h | 1 + drivers/nfc/mei_phy.c | 3 ++- include/linux/mei_cl_bus.h | 4 ++++ 5 files changed, 55 insertions(+), 5 deletions(-) commit 237092bf034a648611f61eb1f0965e9ba1b08871 Author: Tomas Winkler Date: Sun Jul 26 09:54:22 2015 +0300 mei: implement fasync for event notification A process can be informed about client notification also via SIGIO with POLL_PRI event. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 27 +++++++++++++++++++++++++++ drivers/misc/mei/client.h | 1 + drivers/misc/mei/hbm.c | 6 ++---- drivers/misc/mei/main.c | 21 +++++++++++++++++++++ drivers/misc/mei/mei_dev.h | 2 ++ 5 files changed, 53 insertions(+), 4 deletions(-) commit 2c84c2970c1acf83827aa97ab0e6addc3d2aa960 Author: Tomas Winkler Date: Sun Jul 26 09:54:21 2015 +0300 mei: support polling for event notification Polling on priority events is translated on waiting for event notification. One need to enable notification prior for calling select or poll system call otherwise process will not wait. Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3c7c8468e5d993dfe377a67e41cbb23cda93af9e Author: Tomas Winkler Date: Sun Jul 26 09:54:20 2015 +0300 mei: add async event notification ioctls Add ioctl IOCTL_MEI_NOTIFY_SET for enabling and disabling async event notification. Add ioctl IOCTL_MEI_NOTIFY_GET for receiving and acking an event notification. Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman Documentation/ioctl/ioctl-number.txt | 2 + Documentation/misc-devices/mei/mei.txt | 45 ++++++++++++++++++++++- drivers/misc/mei/main.c | 67 ++++++++++++++++++++++++++++++++++ include/uapi/linux/mei.h | 19 ++++++++++ 4 files changed, 132 insertions(+), 1 deletion(-) commit b38a362fad6686dd580a50590053a76ded601a0b Author: Tomas Winkler Date: Sun Jul 26 09:54:19 2015 +0300 mei: add a handler that waits for notification on event mei_cl_notify_get is to be called by a host client to wait, receive, and ack the event notification. Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/misc/mei/client.h | 1 + drivers/misc/mei/hbm.c | 4 +++- drivers/misc/mei/mei_dev.h | 2 ++ 4 files changed, 58 insertions(+), 1 deletion(-) commit 51678ccb7b12dd428a84d466ff379a5e2d717f1f Author: Tomas Winkler Date: Sun Jul 26 09:54:18 2015 +0300 mei: add mei_cl_notify_request command Add per client notification request infrastructure that allows client to enable or disable async event notification. Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 143 +++++++++++++++++++++++++++++++++++++++++++ drivers/misc/mei/client.h | 6 ++ drivers/misc/mei/hbm.c | 5 +- drivers/misc/mei/interrupt.c | 7 +++ 4 files changed, 157 insertions(+), 4 deletions(-) commit 4d99877d871da0bbb924b2d7aa4ccb27e1ffa93a Author: Tomas Winkler Date: Sun Jul 26 09:54:17 2015 +0300 mei: enable async event notifications only from hbm version 2.0 Only FW version 2.0 and newer support the async event notification. For backward compatibility block the feature if the FW version is older then 2.0 Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/debugfs.c | 2 ++ drivers/misc/mei/hbm.c | 4 ++++ drivers/misc/mei/hw.h | 6 ++++++ drivers/misc/mei/mei_dev.h | 2 ++ 4 files changed, 14 insertions(+) commit 965ae37ab86eb8cd327c5752dc9e2190d33db25c Author: Tomas Winkler Date: Sun Jul 26 09:54:16 2015 +0300 mei: implement async notification hbm messages Implement sending and reception handlers for the async event notification hbm commands. Add client notification book keeping data required for the messages notify_en to indicate whether notification is enabled notify_ev to indicate whether an event is pending Signed-off-by: Tomas Winkler Signed-off-by: Alexander Usyskin Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hbm.c | 135 +++++++++++++++++++++++++++++++++++++++++++++ drivers/misc/mei/hbm.h | 2 + drivers/misc/mei/mei_dev.h | 8 +++ 3 files changed, 145 insertions(+) commit d3c1c809c476ba248175a89156f7d625caf5f9a6 Author: Tomas Winkler Date: Sun Jul 26 09:54:15 2015 +0300 mei: define async notification hbm commands FW has gained new capability where a FW client can asynchronously notify the host that an event has occurred in its process. The notification doesn't provide any data and host may need to query further the FW client in order to get details of the event. Host can subscribe or unsubscribe to the event notification via designated HBM commands, and also the notification is carried on a new HBM command. This patch adds definitions of asynchronous notification HBM commands. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/hw.h | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 18901357e70ae29e3fd1c58712a6847c2ae52eae Author: Alexander Usyskin Date: Thu Jul 23 21:37:13 2015 +0300 mei: disconnect on connection request timeout For the FW with HBM version >= 2.0 we don't need to reset the whole device in case of a particular client failing to connect, it is enough to send disconnect a request to bring the device to the stable state. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 85 ++++++++++++++++++++++++++++++-------------- drivers/misc/mei/debugfs.c | 2 ++ drivers/misc/mei/hbm.c | 4 +++ drivers/misc/mei/hw.h | 6 ++++ drivers/misc/mei/interrupt.c | 20 ++++++++++- drivers/misc/mei/mei_dev.h | 7 ++-- 6 files changed, 95 insertions(+), 29 deletions(-) commit 70ef835c84b3b88e274a53bf80a70940ae178a91 Author: Tomas Winkler Date: Thu Jul 23 21:37:12 2015 +0300 mei: support for dynamic clients HBM version 2.0 and above allows ME clients in the system to register/unregister after the system is fully initialized. Clients may be added or removed after enum_resp message was received 1. To preserve backward compatibility the driver can opt-in to receive client add messages by setting allow_add field in enum_req 2. A new client is added upon reception of MEI_HBM_ADD_CLIENT_REQ_CMD 3. A client is removed in a lazy manner when connection request respond with MEI_HBMS_CLIENT_NOT_FOUND status Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/debugfs.c | 2 + drivers/misc/mei/hbm.c | 92 +++++++++++++++++++++++++++++++++++++++++++++- drivers/misc/mei/hw.h | 50 ++++++++++++++++++++++++- drivers/misc/mei/mei_dev.h | 2 + 4 files changed, 144 insertions(+), 2 deletions(-) commit 6009595a66e460af0b170d736398c49395cb4499 Author: Tomas Winkler Date: Thu Jul 23 15:08:47 2015 +0300 mei: bus: link client devices instead of host clients MEI bus was designed around nfc and was hard to extend. Instead of the hard coded way of adding the devices on the mei bus we scan the whole me client list and create a device for each eligible me client (mei_cl_bus_rescan); currently we support only clients with single connection and fixed address clients. NFC radio name detection is run as a fixup routine The patch replaces handling the device list based on struct me_cl to device list based on me_cl_devices. The creating a connection is pushed from the device creation time to device enablement. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus-fixup.c | 288 ++++++++++--------------------------------- drivers/misc/mei/bus.c | 213 ++++++++++++++++++++++---------- drivers/misc/mei/client.c | 9 +- drivers/misc/mei/init.c | 2 +- drivers/misc/mei/mei_dev.h | 11 +- 5 files changed, 213 insertions(+), 310 deletions(-) commit b39910c2e0ac7c3d0e2f1999b04308c771b1d8fc Author: Tomas Winkler Date: Thu Jul 23 15:08:46 2015 +0300 mei: bus: simplify how we build nfc bus name Remove the dependency on struct ndev from the nfc device name creation function so it is possible to use it in a fixup routine Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus-fixup.c | 115 ++++++++++++++++++++----------------------- drivers/misc/mei/bus.c | 2 +- drivers/misc/mei/mei_dev.h | 2 +- 3 files changed, 55 insertions(+), 64 deletions(-) commit dd070a1694c563bd7ba5239dd3038ff1420cf856 Author: Tomas Winkler Date: Thu Jul 23 15:08:45 2015 +0300 mei: bus: blacklist clients by number of connections Currently we support only clients with single connection and fixed address clients so all other clients are blacklisted Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus-fixup.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 5b6dca29b416d8992d52d814aa4be5d7fc97799d Author: Tomas Winkler Date: Thu Jul 23 15:08:44 2015 +0300 mei: bus: blacklist the nfc info client Blacklist nfc info client which is only used for retrieval of the NFC radio version Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus-fixup.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit 71ce789115f878a07e4a6c43d6006cea6aee1078 Author: Tomas Winkler Date: Thu Jul 23 15:08:43 2015 +0300 mei: bus: enable running fixup routines before device registration Split the device registration into allocation and device struct initialization, device setup, and the final device registration. This why it is possible to run fixups and quirks during the setup stage on an initialized device. Each fixup routine effects do_match flag. If the flag is set to false at the end the device won't be registered on the bus. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus-fixup.c | 30 +++++++++++++++ drivers/misc/mei/bus.c | 91 ++++++++++++++++++++++++++++++++++++-------- drivers/misc/mei/mei_dev.h | 2 +- include/linux/mei_cl_bus.h | 4 ++ 4 files changed, 111 insertions(+), 16 deletions(-) commit 0ff0a8d853039aa60bba3ca3e04e4fb74584a736 Author: Tomas Winkler Date: Thu Jul 23 15:08:42 2015 +0300 mei: bus: add me client device list infrastructure Instead of holding the list of host clients (me_cl) we want to keep the list me client devices (mei_cl_device) This way we can create host to me client connection only when needed. Add list head to mei_cl_device and cl_bus_lock Add bus_added flag to the me client (mei_me_client) to track if the appropriate mei_cl_device was already created and is_added flag to mei_cl_device to track if it was already added to the device list across the bus rescans Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 1 + drivers/misc/mei/init.c | 1 + drivers/misc/mei/mei_dev.h | 6 ++++-- include/linux/mei_cl_bus.h | 4 ++++ 4 files changed, 10 insertions(+), 2 deletions(-) commit 512f64d9f7467597388ffbd5a21589ee3f375d8b Author: Tomas Winkler Date: Thu Jul 23 15:08:41 2015 +0300 mei: bus: add reference to bus device in struct mei_cl_client Add reference to the bus device (mei_device) for easier access. To ensures that referencing cldev->bus is valid during cldev life time we increase the bus ref counter on a client device creation and drop it on the device release. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 17 +++++++++++++++++ include/linux/mei_cl_bus.h | 3 +++ 2 files changed, 20 insertions(+) commit feb8cd0fe7d63fd259c28f8a52fc88745717c9ec Author: Tomas Winkler Date: Thu Jul 23 15:08:40 2015 +0300 mei: bus: revamp probe and remove functions Instead of generating device id on the fly during probing we find the matching id entry on the device id table. Get bus the module reference counter so it cannot be unloaded after the driver has bounded to the client device Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) commit 688a9cce0c8e9116038586ae1cd6adabb10fa5aa Author: Tomas Winkler Date: Thu Jul 23 15:08:39 2015 +0300 mei: bus: revamp device matching mei_cl_device_match now calls mei_cl_device_find that returns the matching device id in the device id table. We will utilize the mei_cl_device_find during probing to locate the matching entry. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 63 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 19 deletions(-) commit 48168f4561f479403dbd38379dc8793488a22a6a Author: Tomas Winkler Date: Thu Jul 23 15:08:38 2015 +0300 mei: bus: report if event registration failed If event registeration has failed, the caller should know about it. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 7e280ab694e2885ee300de9cf5e7047c68230148 Author: Tomas Winkler Date: Thu Jul 23 15:08:37 2015 +0300 mei: bus: don't enable events implicitly in device enable Do not enable events implicitly in mei_cl_enable_device, it should be done explicitly using mei_cl_register_event_cb so the events are enabled only when needed. The NFC drivers has been already using it that way so no need for further changes just remove the code from mei_cl_enable_device. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 3 --- 1 file changed, 3 deletions(-) commit 38d3c00d3f312989e50aaf6f4a4b490b4e1e4c37 Author: Tomas Winkler Date: Thu Jul 23 15:08:36 2015 +0300 mei: bus: rename uevent handler to mei_cl_device_uevent Rename mei_cl_uevent to mei_cl_device_uevent to match the naming convention of mei_cl_bus_type functions Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 6238299774377b12c3e24507b100b2687eb5ea32 Author: Tomas Winkler Date: Thu Jul 23 15:08:35 2015 +0300 mei: bus: move driver api functions at the start of the file To make the file more organize move mei client driver api to the start of the file and add Kdoc. There are no functional changes in this patch. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 799 +++++++++++++++++++++++++++---------------------- 1 file changed, 444 insertions(+), 355 deletions(-) commit a0a785c4ab91656a5413b4cd5bb8ed59f39f7446 Author: Tomas Winkler Date: Thu Jul 23 15:08:34 2015 +0300 mei: bus: rename nfc.c to bus-fixup.c The bus-fixup.c will be a place for fixups and quirks for all types of me client devices. As for now it contians only the fixup for setting the nfc device name on the me client bus. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/Makefile | 2 +- drivers/misc/mei/bus-fixup.c | 415 +++++++++++++++++++++++++++++++++++++++++++ drivers/misc/mei/nfc.c | 415 ------------------------------------------- 3 files changed, 416 insertions(+), 416 deletions(-) commit b37719c31f8448ba36abc218a96663b4a6c66eb6 Author: Tomas Winkler Date: Thu Jul 23 15:08:33 2015 +0300 mei: bus: fix drivers and devices names confusion In the mei bus layer there is use of different variables of driver and device types with no clear naming convention. There are generic struct device and struct driver, then mei_cl_{device, driver}, and finally mei_device which in this context serves as a bus device. The patch sets following naming convention: the variables of type struct device remains dev the variables of type struct driver remains drv the variables of type struct mei_cl_device are now cldev the variables of type struct mei_cl_driver are now cldrv the variables of type struct mei_device are now bus, in bus layer context Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/bus.c | 260 ++++++++++++++++++++++----------------------- drivers/misc/mei/mei_dev.h | 12 +-- drivers/misc/mei/nfc.c | 80 +++++++------- 3 files changed, 176 insertions(+), 176 deletions(-) commit 23253c31c6a7a3c5a437ec31830e2100484c0748 Author: Alexander Usyskin Date: Thu Jul 23 10:43:11 2015 +0300 mei: do not access freed cb in blocking write The mei_cl_write function is giving up on a write cb ownership after it was sent or queued. The write cb is then freed in the completion handler. Especially during blocking write mei_cl_write function waits for the completion handler and then access the freed memory to fetch the written size. The quick fix is to store the buffer size prior to sending, the size is not altered during the flow. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman drivers/misc/mei/client.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit a2e66ad34c10b27c6e408db50e6472c2aae2b5e8 Author: Valentin Rothberg Date: Wed Jul 29 09:08:53 2015 +0200 Documentation: sysfs-bus-usb: s/CONFIG_PM_RUNTIME/CONFIG_PM/ PM_RUNTIME has been replaced with PM by commit 464ed18ebdb6 ("PM: Eliminate CONFIG_PM_RUNTIME") hence substitute the reference on PM_RUNTIME with PM and re-arrange the text to 80 column break. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-usb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0bd38ae355227792dde3487779a9dc24d6b99631 Author: Valentin Rothberg Date: Mon Jul 27 12:33:05 2015 +0200 scripts/checkkconfigsymbols.py: support default statements Until now, checkkonfigsymbols.py did not check default statements for references on missing Kconfig symbols (i.e., undefined Kconfig options). Hence, add support to parse and check the Kconfig default statement. Signed-off-by: Valentin Rothberg Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit c745566306e363675d8aa43ee9f39232ade4d5e6 Author: Valentin Rothberg Date: Mon Jun 1 16:00:20 2015 +0200 checkkconfigsymbols.py: colored output Color output to make it more readable. Symbols will be printed yellow, relevant commits (see --find) red. Signed-off-by: Valentin Rothberg Acked-by: Stefan Hengelein Acked-by: Andreas Ruprecht Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit a42fa92ce77a9181f9baf57655acbb241ac4d306 Author: Valentin Rothberg Date: Mon Jun 1 16:00:19 2015 +0200 checkkconfigsymbols.py: find relevant commits Add option -f/--find to find relevant commits when using the --diff option. --find is useful in case a user wants to check commits that potentially cause a Kconfig symbol to be missing. This is done via 'git log -G $SYMBOL' (i.e., to get a list of commits that change $SYMBOL). The relevant commits are printed below the "SYMBOL\tFILES" line, followed by an empty line to increase readability. Signed-off-by: Valentin Rothberg Acked-by: Stefan Hengelein Acked-by: Andreas Ruprecht Signed-off-by: Greg Kroah-Hartman scripts/checkkconfigsymbols.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 58da018053531b9cb91423a64f2a762ef0fe7456 Author: Nikolay Aleksandrov Date: Tue Aug 4 01:19:58 2015 +0200 bridge: mdb: fix vlan_enabled access when vlans are not configured Instead of trying to access br->vlan_enabled directly use the provided helper br_vlan_enabled(). Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_mdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a5c90b29e5ccdb90922b808fd4831cfbaa63006c Author: Daniel Borkmann Date: Mon Aug 3 16:21:57 2015 +0200 act_bpf: properly support late binding of bpf action to a classifier Since the introduction of the BPF action in d23b8ad8ab23 ("tc: add BPF based action"), late binding was not working as expected. I.e. setting the action part for a classifier only via 'bpf index ', where is the index of an existing action, is being rejected by the kernel due to other missing parameters. It doesn't make sense to require these parameters such as BPF opcodes etc, as they are not going to be used anyway: in this case, they're just allocated/parsed and then freed again w/o doing anything meaningful. Instead, parse and verify the remaining parameters *after* the test on tcf_hash_check(), when we really know that we're dealing with creation of a new action or replacement of an existing one and where late binding is thus irrelevant. After patch, test case is now working: FOO="1,6 0 0 4294967295," tc actions add action bpf bytecode "$FOO" tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 action bpf index 1 tc actions show action bpf action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe index 1 ref 2 bind 1 tc filter show dev foo filter protocol all pref 49152 bpf filter protocol all pref 49152 bpf handle 0x1 flowid 1:1 bytecode '1,6 0 0 4294967295' action order 1: bpf bytecode '1,6 0 0 4294967295' default-action pipe index 1 ref 2 bind 1 Late binding of a BPF action can be useful for preloading maps (e.g. before they hit traffic) in case of eBPF programs, or to share a single eBPF action with multiple classifiers. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller net/sched/act_bpf.c | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) commit 90bb6bd385638f37d30dcc7342a62aff80089def Author: Shenwei Wang Date: Thu Jul 30 10:32:36 2015 -0500 Serial: imx: add dev_pm_ops to support suspend to ram/disk When system goes into low power states like SUSPEND_MEM and HIBERNATION, the hardware IP block may be powered off to reduce the power consumption. This power down may cause problems on some imx platforms, because the hardware settings are reset to its power on default values which may differ from the ones when it power off. This patch added the dev_pm_ops and implemented two callbacks: suspend_noirq and resume_noirq, which will save the necessory hardware parameters right before power down and recover them before system uses the hardware. Because added the dev_pm_ops, the old suspend/resume callbacks under platform_driver will not be called any more. Changed their prototypes and moved those two callbacks into dev_pm_ops too. Signed-off-by: Shenwei Wang Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 126 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 94 insertions(+), 32 deletions(-) commit e70e69bf205e6d1f742f1cf1935b155417c9e29a Author: Masahiro Yamada Date: Fri Jul 24 15:58:28 2015 +0900 serial: 8250_uniphier: call clk_disable_unprepare() on failure path If serial8250_register_8250_port() fails, disable and unprepare the clock before exiting. Fixes: 1a8d2903cb6a ("serial: 8250_uniphier: add UniPhier serial driver") Signed-off-by: Masahiro Yamada Reviewed-by: Matthias Brugger Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_uniphier.c | 1 + 1 file changed, 1 insertion(+) commit 24751e29fe313105c9dd5f9d1f27028c553381f6 Author: Vivien Didelot Date: Mon Aug 3 09:17:44 2015 -0400 net: dsa: mv88e6xxx: call _mv88e6xxx_stats_wait with SMI lock held At switch setup, _mv88e6xxx_stats_wait was called without holding the SMI mutex. Fix this by requesting the lock for this call. Also, return the _mv88e6xxx_stats_wait code, since it may fail. Signed-off-by: Vivien Didelot Reviewed-by: Guenter Roeck Signed-off-by: David S. Miller drivers/net/dsa/mv88e6xxx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit e44deb2f0cce9183ca94d14effd4170a35eec31d Author: Satish Ashok Date: Mon Aug 3 13:29:16 2015 +0200 bridge: mdb: add/del entry on all vlans if vlan_filter is enabled and vid is 0 Before this patch when a vid was not specified, the entry was added with vid 0 which is useless when vlan_filtering is enabled. This patch makes the entry to be added on all configured vlans when vlan filtering is enabled and respectively deleted from all, if the entry vid is 0. This is also closer to the way fdb works with regard to vid 0 and vlan filtering. Example: Setup: $ bridge vlan add vid 256 dev eth4 $ bridge vlan add vid 1024 dev eth4 $ bridge vlan add vid 64 dev eth3 $ bridge vlan add vid 128 dev eth3 $ bridge vlan port vlan ids eth3 1 PVID Egress Untagged 64 128 eth4 1 PVID Egress Untagged 256 1024 $ echo 1 > /sys/class/net/br0/bridge/vlan_filtering Before: $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 $ bridge mdb dev br0 port eth3 grp 239.0.0.1 temp After: $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 $ bridge mdb dev br0 port eth3 grp 239.0.0.1 temp vid 1 dev br0 port eth3 grp 239.0.0.1 temp vid 128 dev br0 port eth3 grp 239.0.0.1 temp vid 64 Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_mdb.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 8 deletions(-) commit fecf27a373f5a6b393e93b14f8460299b8abd6f9 Author: Peter Hung Date: Tue Jul 28 11:59:24 2015 +0800 serial: 8250_pci: add RS485 for F81504/508/512 Add RS485 control for Fintek F81504/508/512 F81504/508/512 can control their RTS with H/W mode. PCI configuration space for each port is 0x40 + idx * 8 + 7. When it set with 0x01, it's configured with RS232 mode. RTS is controlled by MCR. When it set with 0x11, it's configured with RS485 mode. RTS is controlled by H/W, RTS low with idle & RX, high with TX. When it set with 0x31, it's configured with RS485 mode. RTS is controlled by H/W, RTS high with idle & RX, low with TX. We will force 0x01 on pci_fintek_setup(). Signed-off-by: Peter Hung Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_pci.c | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit a3a10ce3429e5dee623ad5c8407ea58e204fcb0a Author: Richard Watts Date: Tue May 19 16:06:53 2015 +0100 Avoid usb reset crashes by making tty_io cdevs truly dynamic Avoid usb reset crashes by making tty_io cdevs truly dynamic Signed-off-by: Richard Watts Reported-by: Duncan Mackintosh Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 24 ++++++++++++++++-------- include/linux/tty_driver.h | 2 +- 2 files changed, 17 insertions(+), 9 deletions(-) commit 1fb6dd9da6ed4f2953b62162f3c498a1f6d7bfca Author: Leo Yan Date: Mon Aug 3 09:13:34 2015 +0800 clk: hisi: refine parameter checking for init *of_iomap()* will check the device node pointer, and if the pointer is NULL it will return error code. So refine clock's init flow by checking the device node with this simple way; and polish a little for the print out message. Signed-off-by: Leo Yan Signed-off-by: Stephen Boyd drivers/clk/hisilicon/clk.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 0edc535e96621e41e2d3e7c240e68524d1968807 Merge: 0fbd050 5e52796 Author: David S. Miller Date: Mon Aug 3 14:24:50 2015 -0700 Merge branch 'stacked-vlan-TSO' Toshiaki Makita says: ==================== Stacked vlan TSO for virtual devices Basically virtual devices do not need to segment double tagged packets. This patch set adds TSO feature for double tagged packets to several virtual devices, which can be realized by simply setting .ndo_features_check to passthru_features_check. ==================== Signed-off-by: David S. Miller commit 5e52796a9a3d56298273030cd438e8015a8d5683 Author: Toshiaki Makita Date: Fri Jul 31 15:03:27 2015 +0900 tuntap: Don't segment multiple tagged packets on tap device Tap devices don't need to segment multiple tagged packets. Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller drivers/net/tun.c | 1 + 1 file changed, 1 insertion(+) commit 6678053092e808485f4d56dca8705098436495e9 Author: Toshiaki Makita Date: Fri Jul 31 15:03:26 2015 +0900 bridge: Don't segment multiple tagged packets on bridge device Bridge devices don't need to segment multiple tagged packets since thier ports can segment them. Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller net/bridge/br_device.c | 1 + 1 file changed, 1 insertion(+) commit 1a04a82156ec31542b956548f9549339de8511d4 Author: Toshiaki Makita Date: Fri Jul 31 15:03:25 2015 +0900 veth: Don't segment multiple tagged packets on veth device Veth devices don't need to segment multiple tagged packets. Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller drivers/net/veth.c | 1 + 1 file changed, 1 insertion(+) commit f56e67b5154561dea2bac649085ee1fcb51006f8 Author: Toshiaki Makita Date: Fri Jul 31 15:03:24 2015 +0900 macvlan: Don't segment multiple tagged packets on macvlan device Macvlan/macvtap devices don't need to segment multiple tagged packets since the lower devices can segment them. Signed-off-by: Toshiaki Makita Signed-off-by: David S. Miller drivers/net/macvlan.c | 1 + 1 file changed, 1 insertion(+) commit 0fbd050a7d262b74527a289ae75a33626d1060a8 Author: Eric Dumazet Date: Fri Jul 31 18:25:17 2015 +0200 virtio_net: add gro capability Straightforward patch to add GRO processing to virtio_net. napi_complete_done() usage allows more aggressive aggregation, opted-in by setting /sys/class/net/xxx/gro_flush_timeout Tested: Setting /sys/class/net/xxx/gro_flush_timeout to 1000 nsec, Rick Jones reported following results. One VM of each on a pair of OpenStack compute nodes with E5-2650Lv3 CPUs and Intel 82599ES-based NICs. So, two "before" and two "after" VMs. The OpenStack compute nodes were running OpenStack Kilo, with VxLAN encapsulation being used through OVS so no GRO coming-up the host stack. The compute nodes themselves were running a 3.14-based kernel. Single-stream netperf, CPU utilizations and thus service demands are based on intra-guest reported CPU. Throughput Mbit/s, bigger is better Min Median Average Max 4.2.0-rc3+ 1364 1686 1678 1938 4.2.0-rc3+flush1k 1824 2269 2275 2647 Send Service Demand, smaller is better Min Median Average Max 4.2.0-rc3+ 0.236 0.558 0.524 0.802 4.2.0-rc3+flush1k 0.176 0.503 0.471 0.738 Receive Service Demand, smaller is better. Min Median Average Max 4.2.0-rc3+ 1.906 2.188 2.191 2.531 4.2.0-rc3+flush1k 0.448 0.529 0.533 0.692 Signed-off-by: Eric Dumazet Tested-by: Rick Jones Cc: "Michael S. Tsirkin" Acked-by: Michael S. Tsirkin Signed-off-by: David S. Miller drivers/net/virtio_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 95b9be64d1683c4552ab94d94c08bf833561b1c4 Author: Jiri Pirko Date: Sun Aug 2 20:56:38 2015 +0200 rocker: linearize skb in case frags would not fit into tx descriptor Suggested-by: Scott Feldman Signed-off-by: Jiri Pirko Acked-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 21518a6eb92afa9c285ae7b33dd9357a99224b8f Author: Ido Schimmel Date: Sun Aug 2 20:56:37 2015 +0200 rocker: enable support for scattered packets rocker supports the transmission of scattered packets, so let the kernel know about it by setting the NETIF_F_SG bit in the device's features. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Acked-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62f46669688bf13643b91bbc30f19da1095a5ed6 Author: Dirk Behme Date: Mon Aug 3 13:03:09 2015 -0700 Input: zforce - make the interrupt GPIO optional Add support for hardware which uses an I2C Serializer / Deserializer (SerDes) to communicate with the zFroce touch driver. In this case the SerDes will be configured as an interrupt controller and the zForce driver will have no access to poll the GPIO line. To support this, we add two dedicated new GPIOs in the device tree: reset-gpios and irq-gpios, with the irq-gpios being optional. To not break the existing device trees, the index based 'gpios' entries are still supported, but marked as deprecated. With this, if the interrupt GPIO is available, either via the old or new device tree style, the while loop will read and handle the packets as long as the GPIO indicates that the interrupt is asserted (existing, unchanged driver behavior). If the interrupt GPIO isn't available, i.e. not configured via the new device tree style, we are falling back to one read per ISR invocation (new behavior to support the SerDes). Note that the gpiod functions help to handle the optional GPIO: devm_gpiod_get_index_optional() will return NULL in case the interrupt GPIO isn't available. And gpiod_get_value_cansleep() does cover this, too, by returning 0 in this case. Signed-off-by: Dirk Behme Reviewed-by: Heiko Stuebner Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/zforce_ts.txt | 8 +-- drivers/input/touchscreen/zforce_ts.c | 63 +++++++++++++++++----- 2 files changed, 53 insertions(+), 18 deletions(-) commit d93ac74ad150c89f2d0a3b90754cbccdc6ab102c Author: Jisheng Zhang Date: Thu Jul 30 17:35:21 2015 +0800 arm64: dts: Add dts files for Marvell Berlin4CT SoC Add initial dtsi file to support Marvell Berlin4CT SoC with quad Cortex-A53 CPUs. It also adds dts file for Marvell Berlin4CT DMP board which is based on Berlin4CT SoC. Signed-off-by: Jisheng Zhang Signed-off-by: Sebastian Hesselbarth arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/marvell/Makefile | 5 + arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts | 66 +++++++++++ arch/arm64/boot/dts/marvell/berlin4ct.dtsi | 164 ++++++++++++++++++++++++++ 4 files changed, 236 insertions(+) commit e8054b654bf5d4f549f4f24b708acce6d2718b1b Author: Philipp Hachtmann Date: Thu Mar 6 18:39:39 2014 +0100 s390/numa: add topology tree infrastructure NUMA emulation needs proper means to mangle the book/mc/core topology of the machine. The topology tree (toptree) consistently maintains cpu masks for the root, each node, and all leaves of the tree while the user may use the toptree functions to rearrange the tree in various ways. This patch contains several changes from Michael Holzheu. Signed-off-by: Philipp Hachtmann Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/numa/Makefile | 1 + arch/s390/numa/toptree.c | 342 +++++++++++++++++++++++++++++++++++++++++++++++ arch/s390/numa/toptree.h | 60 +++++++++ 3 files changed, 403 insertions(+) commit 3a368f742da13955bed4a2efed85ed7c1d826bcc Author: Philipp Hachtmann Date: Thu Mar 6 18:25:13 2014 +0100 s390/numa: add core infrastructure Enable core NUMA support for s390 and add one simple default mode "plain" that creates one single NUMA node. This patch contains several changes from Michael Holzheu. Signed-off-by: Philipp Hachtmann Signed-off-by: Michael Holzheu Signed-off-by: Martin Schwidefsky arch/s390/Kbuild | 1 + arch/s390/Kconfig | 37 ++++++++ arch/s390/include/asm/mmzone.h | 16 ++++ arch/s390/include/asm/numa.h | 31 +++++++ arch/s390/include/asm/pci.h | 16 ++++ arch/s390/include/asm/topology.h | 39 ++++++++ arch/s390/include/asm/unistd.h | 12 +-- arch/s390/include/uapi/asm/unistd.h | 10 +- arch/s390/kernel/setup.c | 2 + arch/s390/kernel/syscalls.S | 10 +- arch/s390/kernel/topology.c | 21 +++-- arch/s390/mm/init.c | 2 +- arch/s390/numa/Makefile | 1 + arch/s390/numa/numa.c | 180 ++++++++++++++++++++++++++++++++++++ arch/s390/numa/numa_mode.h | 23 +++++ 15 files changed, 375 insertions(+), 26 deletions(-) commit 08b472f7b602c60c69f278ba1e15535f5c86ee24 Author: Axel Lin Date: Thu Jul 30 21:06:43 2015 +0800 regulator: mt6311: Trivial clean up Make mt6311_buck_ops, mt6311_ldo_ops and mt6311_regulators const and remove unneeded error variable in mt6311_i2c_probe(). Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/mt6311-regulator.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 232ff5eb2bf304fc699b132134437a7cb9b2ec16 Author: Chris Metcalf Date: Thu Jul 30 12:32:46 2015 -0400 tile: Remove finish_arch_switch Move the simulator bits into switch_to() and use finish_arch_post_lock_switch() for the homecache migration bits. Acked-by: Peter Zijlstra (Intel) Signed-off-by: Chris Metcalf arch/tile/include/asm/switch_to.h | 8 +++----- arch/tile/kernel/process.c | 5 +++++ 2 files changed, 8 insertions(+), 5 deletions(-) commit f47da2400e8828eda2ed4208fb312031f8b7d2ae Author: Jarkko Nikula Date: Mon Aug 3 13:41:11 2015 +0300 spi: spi-pxa2xx: Remove unused legacy PXA DMA API channel numbers These became unused by the commit 6356437e65c2 ("spi: spi-pxa2xx: remove legacy PXA DMA bits"). Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 2 -- drivers/spi/spi-pxa2xx.h | 2 -- 2 files changed, 4 deletions(-) commit 53e381627d34c4c7a3ea00c041c38f447828f755 Author: Henry Chen Date: Mon Aug 3 22:15:51 2015 +0800 regulator: mt6311: Modify the maximum voltage of buck. The maximum voltage of buck should be 1.39375V. 1.39375V = 0.6V + 0.00625V * 127, 127 is the max_sel of linear range. Reported-by: Axel Lin signed-off-by: Henry Chen Signed-off-by: Mark Brown drivers/regulator/mt6311-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e203db293863fa15b4b1917d4398fb5bd63c4e88 Author: Salva Peiró Date: Thu Jul 23 14:26:19 2015 +0200 iommu/omap: Fix debug_read_tlb() to use seq_printf() The debug_read_tlb() uses the sprintf() functions directly on the buffer allocated by buf = kmalloc(count), without taking into account the size of the buffer, with the consequence corrupting the heap, depending on the count requested by the user. The patch fixes the issue replacing sprintf() by seq_printf(). Signed-off-by: Salva Peiró Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu-debug.c | 48 ++++++++++++---------------------------- 1 file changed, 14 insertions(+), 34 deletions(-) commit 934c93b8c193b62fc86256ea64aef65e9a7b4e9e Author: Sascha Hauer Date: Mon Jul 6 09:46:17 2015 +0200 thermal: Add comment explaining test for critical temperature The code testing if a temperature should be emulated or not is not obvious. Add a comment explaining why this test is done. Signed-off-by: Sascha Hauer Reviewed-by: Mikko Perttunen Signed-off-by: Zhang Rui drivers/thermal/thermal_core.c | 5 +++++ 1 file changed, 5 insertions(+) commit 79e5421cf0bd9b3e56f523e95e3511757edb9616 Author: Sascha Hauer Date: Mon Jul 6 09:46:16 2015 +0200 thermal: Use IS_ENABLED instead of #ifdef Use IS_ENABLED(CONFIG_THERMAL_EMULATION) to make the code more readable and to get rid of the addtional #ifdef around the variable definitions in thermal_zone_get_temp(). Signed-off-by: Sascha Hauer Reviewed-by: Lukasz Majewski Signed-off-by: Zhang Rui drivers/thermal/thermal_core.c | 45 ++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 26 deletions(-) commit dbdf2532b46256584447cd7e742bfb1b31ac56c4 Author: Sascha Hauer Date: Mon Jul 6 09:46:15 2015 +0200 thermal: remove unnecessary call to thermal_zone_device_set_polling When the thermal zone has no get_temp callback then thermal_zone_device_register() calls thermal_zone_device_set_polling() with a polling delay of 0. This only cancels the poll_queue. Since the poll_queue hasn't been scheduled this is a no-op. Remove it. Signed-off-by: Sascha Hauer Acked-by: Eduardo Valentin Signed-off-by: Zhang Rui drivers/thermal/thermal_core.c | 3 --- 1 file changed, 3 deletions(-) commit f6be0584930995f88ea3381cbcbcb315c2a184ad Author: Sascha Hauer Date: Mon Jul 6 09:46:14 2015 +0200 thermal: trivial: fix typo in comment Signed-off-by: Sascha Hauer Acked-by: Eduardo Valentin Signed-off-by: Zhang Rui drivers/thermal/thermal_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17e8351a77397e8a83727eb17e3a3e9b8ab5257a Author: Sascha Hauer Date: Fri Jul 24 08:12:54 2015 +0200 thermal: consistently use int for temperatures The thermal code uses int, long and unsigned long for temperatures in different places. Using an unsigned type limits the thermal framework to positive temperatures without need. Also several drivers currently will report temperatures near UINT_MAX for temperatures below 0°C. This will probably immediately shut the machine down due to overtemperature if started below 0°C. 'long' is 64bit on several architectures. This is not needed since INT_MAX °mC is above the melting point of all known materials. Consistently use a plain 'int' for temperatures throughout the thermal code and the drivers. This only changes the places in the drivers where the temperature is passed around as pointer, when drivers internally use another type this is not changed. Signed-off-by: Sascha Hauer Acked-by: Geert Uytterhoeven Reviewed-by: Jean Delvare Reviewed-by: Lukasz Majewski Reviewed-by: Darren Hart Reviewed-by: Heiko Stuebner Reviewed-by: Peter Feuerer Cc: Punit Agrawal Cc: Zhang Rui Cc: Eduardo Valentin Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: Jean Delvare Cc: Peter Feuerer Cc: Heiko Stuebner Cc: Lukasz Majewski Cc: Stephen Warren Cc: Thierry Reding Cc: linux-acpi@vger.kernel.org Cc: platform-driver-x86@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-omap@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Cc: Guenter Roeck Cc: Rafael J. Wysocki Cc: Maxime Ripard Cc: Darren Hart Cc: lm-sensors@lm-sensors.org Signed-off-by: Zhang Rui drivers/acpi/thermal.c | 12 +++++----- drivers/hwmon/lm75.c | 2 +- drivers/hwmon/ntc_thermistor.c | 2 +- drivers/hwmon/tmp102.c | 2 +- drivers/input/touchscreen/sun4i-ts.c | 8 +++---- drivers/platform/x86/acerhdf.c | 9 ++++---- drivers/platform/x86/intel_mid_thermal.c | 9 ++++---- drivers/power/charger-manager.c | 2 +- drivers/power/power_supply_core.c | 2 +- drivers/thermal/armada_thermal.c | 2 +- drivers/thermal/db8500_thermal.c | 7 +++--- drivers/thermal/dove_thermal.c | 2 +- drivers/thermal/fair_share.c | 2 +- drivers/thermal/gov_bang_bang.c | 5 ++-- drivers/thermal/hisi_thermal.c | 4 ++-- drivers/thermal/imx_thermal.c | 27 +++++++++++----------- drivers/thermal/int340x_thermal/int3400_thermal.c | 2 +- .../thermal/int340x_thermal/int340x_thermal_zone.c | 10 ++++---- .../thermal/int340x_thermal/int340x_thermal_zone.h | 8 +++---- .../int340x_thermal/processor_thermal_device.c | 4 ++-- drivers/thermal/intel_quark_dts_thermal.c | 13 +++++------ drivers/thermal/intel_soc_dts_iosf.c | 8 +++---- drivers/thermal/kirkwood_thermal.c | 2 +- drivers/thermal/of-thermal.c | 14 +++++------ drivers/thermal/power_allocator.c | 16 ++++++------- drivers/thermal/qcom-spmi-temp-alarm.c | 2 +- drivers/thermal/rcar_thermal.c | 7 +++--- drivers/thermal/rockchip_thermal.c | 10 ++++---- drivers/thermal/samsung/exynos_tmu.c | 23 +++++++++--------- drivers/thermal/spear_thermal.c | 2 +- drivers/thermal/st/st_thermal.c | 5 ++-- drivers/thermal/step_wise.c | 4 ++-- drivers/thermal/tegra_soctherm.c | 4 ++-- drivers/thermal/thermal_core.c | 26 ++++++++++----------- drivers/thermal/thermal_hwmon.c | 10 ++++---- drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 10 ++++---- drivers/thermal/x86_pkg_temp_thermal.c | 10 ++++---- include/linux/thermal.h | 26 +++++++++------------ include/trace/events/thermal_power_allocator.h | 6 ++--- 39 files changed, 152 insertions(+), 167 deletions(-) commit 25a0a5ce16ecd7e60c4cf1436892433873e9d99d Author: Ni Wade Date: Tue Jul 14 15:40:56 2015 +0800 thermal: add available policies sysfs attribute The Linux thermal framework support to change thermal governor policy in userspace, but it can't show what available policies supported. This patch adds available_policies attribute to the thermal framework, it can list the thermal governors which can be used for a particular zone. This attribute is read only. Signed-off-by: Wei Ni Reviewed-by: Javi Merino Signed-off-by: Zhang Rui Documentation/thermal/sysfs-api.txt | 6 ++++++ drivers/thermal/thermal_core.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) commit b5e578631e5c1d77f58727ea0769dd55c462b572 Author: Pali Rohár Date: Tue Jul 28 20:44:41 2015 +0200 rx51-battery: Set name to rx51-battery For compatibility between board code and DT, set battery name to same value. Signed-off-by: Pali Rohár Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel drivers/power/rx51_battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f22dc4494e203d6987fc708f414b4adf8614036 Author: Jacob Pan Date: Mon Jun 29 08:53:18 2015 -0700 thermal/powerclamp: add cpu id for denlow platform Add support for Intel Denlow UP server platform. Signed-off-by: Jacob Pan Signed-off-by: Zhang Rui drivers/thermal/intel_powerclamp.c | 1 + 1 file changed, 1 insertion(+) commit 35676de2164ff37209431e7e0e49a7466720d9be Author: Radivoje Jovanovic Date: Fri Jul 31 08:07:54 2015 -0700 thermal/powerclamp: add cpu id for Skylake u/y Add support for Intel Skylake u/y Signed-off-by: Radivoje Jovanovic Signed-off-by: Zhang Rui drivers/thermal/intel_powerclamp.c | 1 + 1 file changed, 1 insertion(+) commit 286272137f66199f87ea254397181b9bab5e5467 Author: Radivoje Jovanovic Date: Fri Jul 31 08:07:45 2015 -0700 thermal/powerclamp: add cpu id for skylake h/s Add support for Intel Skylake H/S Signed-off-by: Radivoje Jovanovic Signed-off-by: Zhang Rui drivers/thermal/intel_powerclamp.c | 1 + 1 file changed, 1 insertion(+) commit 26305022e7ffdeff49b15c9ab18e2c0c880356da Author: Sebastian Reichel Date: Fri Jul 24 23:11:28 2015 +0200 MAINTAINERS: AVS is not maintained via power supply tree The adaptive voltage scaling framework is not maintained via the power supply tree and has its own entry in the MAINTAINERS file, so add an exception in the power supply entry. Signed-off-by: Sebastian Reichel Acked-by: Kevin Hilman MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 3f217e9e96daa3d7741bab705fe9c7798d9951a9 Author: Li Jun Date: Fri Jul 31 10:41:00 2015 +0800 usb: chipidea: add ci->is_otg condition for otg judgement Since some chipidea based controller is not otg capable, add ci->is_otg condition when setting is_otg flag for gadget. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Acked-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/chipidea/udc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a24b071bb4ac37ef51a0ed4765f89be05a617677 Author: Fupan Li Date: Mon Aug 3 19:19:43 2015 +0800 usb: gadget: f_printer: fix deadlock caused by nested spinlock Function printer_func_disable() has called spinlock on printer_dev->lock, and it'll call function chain of printer_reset_interface() | +---dwc3_gadget_ep_disable() | +---__dwc3_gadget_ep_disable() | +---dwc3_remove_requests() | +---dwc3_gadget_giveback() | +---rx_complete() in the protected block. However, rx_complete() in f_printer.c calls spinlock on printer_dev->lock again, which will cause system hang. The following steps can reproduce this hang: 1. Build the test program from Documentation/usb/gadget_printer.txt as g_printer 2. Plug in the USB device to a host(such as Ubuntu). 3. on the USB device system run: #modprobe g_printer.ko #./g_printer -read_data 4. Unplug the USB device from the host The system will hang later. In order to avoid this deadlock, moving the spinlock from printer_func_disable() into printer_reset_interface() and excluding the block of calling dwc3_gadget_ep_disable(), in which the critical resource will be protected by its spinlock in rx_complete(). This commit will fix the system hang with the following calltrace: INFO: rcu_preempt detected stalls on CPUs/tasks: { 3} (detected by 0, t=21006 jiffies, g=524, c=523, q=2) sending NMI to all CPUs: NMI backtrace for cpu 3 CPU: 3 PID: 718 Comm: irq/22-dwc3 Not tainted 3.10.38-ltsi-WR6.0.0.11_standard #2 Hardware name: Intel Corp. VALLEYVIEW B3 PLATFORM/NOTEBOOK, BIOS BYTICRB1.86C.0092.R32.1410021707 10/02/2014 task: f44f4c20 ti: f40f6000 task.ti: f40f6000 EIP: 0060:[] EFLAGS: 00000097 CPU: 3 EIP is at _raw_spin_lock_irqsave+0x35/0x40 EAX: 00000076 EBX: f80fad00 ECX: 00000076 EDX: 00000075 ESI: 00000096 EDI: ffffff94 EBP: f40f7e20 ESP: f40f7e18 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 CR0: 8005003b CR2: b77ac000 CR3: 01c30000 CR4: 001007f0 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: ffff0ff0 DR7: 00000400 Stack: f474a720 f80fad00 f40f7e3c f80f93cc c135d486 00000000 f474a720 f468fb00 f4bea894 f40f7e54 f7e35f19 ffffff00 f468fb00 f468fb24 00000086 f40f7e64 f7e36577 f468fb00 f4bea810 f40f7e74 f7e365a8 f468fb00 f4bea894 f40f7e9c Call Trace: [] rx_complete+0x1c/0xb0 [g_printer] [] ? vsnprintf+0x166/0x390 [] dwc3_gadget_giveback+0xc9/0xf0 [dwc3] [] dwc3_remove_requests+0x57/0x70 [dwc3] [] __dwc3_gadget_ep_disable+0x18/0x60 [dwc3] [] dwc3_gadget_ep_disable+0x89/0xf0 [dwc3] [] printer_reset_interface+0x31/0x50 [g_printer] [] printer_func_disable+0x20/0x30 [g_printer] [] composite_disconnect+0x4b/0x90 [libcomposite] [] dwc3_disconnect_gadget+0x38/0x43 [dwc3] [] dwc3_gadget_disconnect_interrupt+0x3e/0x5a [dwc3] [] dwc3_thread_interrupt+0x5c8/0x610 [dwc3] [] irq_thread_fn+0x18/0x30 [] irq_thread+0x100/0x130 [] ? irq_finalize_oneshot.part.29+0xb0/0xb0 [] ? wake_threads_waitq+0x40/0x40 [] ? irq_thread_dtor+0xb0/0xb0 [] kthread+0x94/0xa0 [] ret_from_kernel_thread+0x1b/0x28 [] ? kthread_create_on_node+0xc0/0xc0 Signed-off-by: Fupan Li Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_printer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 2f0bb2a0e7f5161e83615fb1283c5079566ed6a7 Author: Tony Lindgren Date: Mon Aug 3 05:37:10 2015 -0700 usb: musb: Allow building in all the DMA code With recent changes to MUSB code, we can now now get rid of the Kconfig choise for the DMA code and allow building in any of the desired DMA code. This makes life easier for distros. Signed-off-by: Tony Lindgren Signed-off-by: Felipe Balbi drivers/usb/musb/Kconfig | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) commit d3cb25a12138a09bc948c0091d3d42e519980659 Author: Pengyu Ma Date: Mon Aug 3 11:28:24 2015 +0800 usb: gadget: udc: fix spin_lock in pch_udc When remove module g_serial on quark platform, the following Warning on: Modules linked in: usb_f_acm u_serial g_serial(-) pch_udc libcomposite configfs udc_core ad7298 industrialio_triggered_buffer kfifo_buf tpm_i2c_infineon indus CPU: 0 PID: 369 Comm: modprobe Not tainted 3.14.29ltsi-WR7.0.0.0_standard #6 Hardware name: Intel Corp. QUARK/CrossHill, BIOS 0x010100F5 01/01/2014 f641df0c f641df0c f641dec8 c15ac7fa f641defc c103084f c16c2356 f641df28 00000171 c16b855c 000009dd c15b2d6f 000009dd c15b2d6f f6bd2000 faae5480 00000000 f641df14 c10308a3 00000009 f641df0c c16c2356 f641df28 f641df2c Call Trace: [] dump_stack+0x16/0x18 [] warn_slowpath_common+0x7f/0xa0 [] ? preempt_count_sub+0x6f/0xc0 [] ? preempt_count_sub+0x6f/0xc0 [] warn_slowpath_fmt+0x33/0x40 [] preempt_count_sub+0x6f/0xc0 [] pch_udc_pcd_pullup+0x32/0xa0 [pch_udc] [] usb_gadget_remove_driver+0x29/0x60 [udc_core] [] usb_gadget_unregister_driver+0x59/0x80 [udc_core] [] usb_composite_unregister+0x10/0x20 [libcomposite] [] cleanup+0xd/0xf [g_serial] [] SyS_delete_module+0xf7/0x150 [] ? ____fput+0xd/0x10 [] ? task_work_run+0x6e/0xa0 [] syscall_call+0x7/0x7 g_serial module on quark is depended on pch_udc module, ttyGSX cann't recieve data and warning on when remove g_serial. It was unlocked before the modification of the structure it was protecting, fix it as "lock -> unlock" to resolve this. Signed-off-by: Pengyu Ma Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/pch_udc.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit cf780b7dc795ff495629b9879dc874eda49ada62 Author: Vladimir Davydov Date: Mon Aug 3 15:32:26 2015 +0300 cgroup: fix idr_preload usage It does not make much sense to call idr_preload with the same gfp mask as the following idr_alloc, but this is what we do in cgroup_idr_alloc. This patch fixes the idr_preload usage by making cgroup_idr_alloc call idr_alloc w/o __GFP_WAIT. Since it is now safe to call cgroup_idr_alloc with GFP_KERNEL, the patch also fixes all its callers appropriately. Signed-off-by: Vladimir Davydov Signed-off-by: Tejun Heo kernel/cgroup.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit be120397e7709d9d5ed88317a385ce864a2603bc Author: Mark Rutland Date: Fri Jul 31 15:46:19 2015 +0100 ARM: migrate to common PSCI client code Now that the common PSCI client code has been factored out to drivers/firmware, and made safe for 32-bit use, move the 32-bit ARM code over to it. This results in a moderate reduction of duplicated lines, and will prevent further duplication as the PSCI client code is updated for PSCI 1.0 and beyond. The two legacy platform users of the PSCI invocation code are updated to account for interface changes. In both cases the power state parameter (which is constant) is now generated using macros, so that the pack/unpack logic can be killed in preparation for PSCI 1.0 power state changes. Signed-off-by: Mark Rutland Acked-by: Rob Herring Cc: Catalin Marinas Cc: Ashwin Chaugule Cc: Lorenzo Pieralisi Cc: Russell King Cc: Will Deacon Signed-off-by: Will Deacon arch/arm/Kconfig | 1 + arch/arm/include/asm/psci.h | 23 --- arch/arm/kernel/Makefile | 2 +- arch/arm/kernel/psci.c | 299 -------------------------------------- arch/arm/kernel/psci_smp.c | 29 +++- arch/arm/kernel/setup.c | 3 +- arch/arm/mach-highbank/highbank.c | 2 +- arch/arm/mach-highbank/pm.c | 16 +- drivers/cpuidle/cpuidle-calxeda.c | 15 +- 9 files changed, 46 insertions(+), 344 deletions(-) commit 37cf524f9360f9165d67459b7bf795c01824df98 Author: Grygorii Strashko Date: Fri Jul 31 15:46:18 2015 +0100 ARM: psci: boot_secondary: replace __pa with virt_to_idmap On some PAE systems (e.g. TI Keystone), memory is above the 32-bit addressable limit, and the interconnect provides an aliased view of parts of physical memory in the 32-bit addressable space. This alias is strictly for boot time usage, and is not otherwise usable because of coherency limitations. In this case, virt_to_phys(secondary_startup) would return the physical address of the secondary CPU boot entry point, but on such systems, this would be above the 4GB limit. A separate function, virt_to_idmap(), has been provided to return a usable physical address for functions in the identity mapping, and this must be used in preference to virt_to_phys() or __pa() to find the physical entry point for functions in the identity mapping range. For other systems, virt_to_idmap() and virt_to_phys() return identical physical addresses. Acked-by: Santosh Shilimkar Acked-by: Nicolas Pitre Tested-by Vitaly Andrianov Signed-off-by: Grygorii Strashko [Mark: apply rmk's suggested rewording] Signed-off-by: Mark Rutland Cc: Russell King Signed-off-by: Will Deacon arch/arm/kernel/psci_smp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2238c0827a9bfa8d517e3175110ed603fb7b9537 Author: Alex Williamson Date: Tue Jul 14 15:24:53 2015 -0600 iommu/vt-d: Report domain usage in sysfs Debugging domain ID leakage typically requires long running tests in order to exhaust the domain ID space or kernel instrumentation to track the setting and clearing of bits. A couple trivial intel-iommu specific sysfs extensions make it much easier to expose the IOMMU capabilities and current usage. Signed-off-by: Alex Williamson Signed-off-by: Joerg Roedel drivers/iommu/intel-iommu.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 50690762cfe32abadbaa5b22bebe3855e5b8ede8 Author: Dan Williams Date: Thu Jul 30 12:54:01 2015 -0400 iommu/vt-d: Fix leaked ioremap mapping iommu_load_old_irte() appears to leak the old_irte mapping after use. Cc: Joerg Roedel Signed-off-by: Dan Williams Signed-off-by: Joerg Roedel drivers/iommu/intel_irq_remapping.c | 2 ++ 1 file changed, 2 insertions(+) commit 2439d4aa9247f4c94351d0cf7d75c16146785eb8 Author: Kees Cook Date: Fri Jul 24 16:27:57 2015 -0700 iommu/vt-d: Avoid format string leaks into iommu_device_create This makes sure it won't be possible to accidentally leak format strings into iommu device names. Current name allocations are safe, but this makes the "%s" explicit. Signed-off-by: Kees Cook Signed-off-by: Joerg Roedel drivers/iommu/dmar.c | 2 +- drivers/iommu/intel-iommu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7b0ce727bf7ac5240a433109f53bf78788f9159b Author: Robin Murphy Date: Wed Jul 22 18:47:00 2015 +0100 of: iommu: Silence misleading warning Printing "IOMMU is currently not supported for PCI" for every PCI device probed on a DT-based system proves to be both irritatingly noisy and confusing to users who have misinterpreted it to mean they can no longer use VFIO device assignment. Since configuring DMA masks for PCI devices via of_dma_configure() has not in fact changed anything with regard to IOMMUs there really is nothing to warn about here; shut it up. Signed-off-by: Robin Murphy Acked-by: Marc Zyngier Signed-off-by: Joerg Roedel drivers/iommu/of_iommu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 5835b6a64ce39434d5cc9857769c73982d488b42 Author: Suman Anna Date: Mon Jul 20 17:33:32 2015 -0500 iommu/omap: Align code with open parenthesis Fix all the occurrences of the following check warning generated with the checkpatch --strict option: "CHECK: Alignment should match open parenthesis" Signed-off-by: Suman Anna Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit eb642a3f5afdb13aa2b7ba0bda314b0d2b62165d Author: Suman Anna Date: Mon Jul 20 17:33:31 2015 -0500 iommu/omap: Use BIT(x) macros in omap-iommu.h Switch to using the BIT(x) macros in omap-iommu.h where possible. This eliminates the following checkpatch check warning: "CHECK: Prefer using the BIT macro" A couple of the warnings were ignored for better readability of the bit-shift for the different values. Signed-off-by: Suman Anna Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu.h | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) commit 5ff98fa68c88d7babf96b7df7c713aaf2ed6558a Author: Suman Anna Date: Mon Jul 20 17:33:30 2015 -0500 iommu/omap: Use BIT(x) macros in omap-iopgtable.h Switch to using the BIT(x) macros in omap-iopgtable.h where possible. This eliminates the following checkpatch check warning: "CHECK: Prefer using the BIT macro" A couple of macros that used zero bit shifting are defined directly to avoid the above warning on one of the macros. Signed-off-by: Suman Anna Signed-off-by: Joerg Roedel drivers/iommu/omap-iopgtable.h | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit 99ee98d6ac964f1a2412d9fe08e577aa4f13905d Author: Suman Anna Date: Mon Jul 20 17:33:29 2015 -0500 iommu/omap: Remove unnecessary error traces on alloc failures Fix couple of checkpatch warnings of the type, "WARNING: Possible unnecessary 'out of memory' message" Signed-off-by: Suman Anna Reviewed-by: Laurent Pinchart Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 5b39a37abc007542995506ad0d8e4c3991e6970a Author: Suman Anna Date: Mon Jul 20 17:33:28 2015 -0500 iommu/omap: Remove trailing semi-colon from a macro Remove the trailing semi-colon in the DEBUG_FOPS_RO macro definition. This fixes the checking warning, "WARNING: macros should not use a trailing semicolon" Signed-off-by: Suman Anna Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu-debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc308f9f92b084a25989fd2002fac06cbf4a73d4 Author: Suman Anna Date: Mon Jul 20 17:33:27 2015 -0500 iommu/omap: Remove unused union fields There are couple of unions defined in the structures iotlb_entry and cr_regs. There are no usage/references to some of these union fields in the code, so clean them up and simplify the structures. Signed-off-by: Suman Anna Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu.h | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) commit ad8e29a0804494bff5f0059df3805423ed2020b8 Author: Suman Anna Date: Mon Jul 20 17:33:26 2015 -0500 iommu/omap: Protect omap-iopgtable.h against double inclusion Protect the omap-pgtable.h header against double inclusion in source code by using the standard include guard mechanism. Signed-off-by: Suman Anna Reviewed-by: Laurent Pinchart Signed-off-by: Joerg Roedel drivers/iommu/omap-iopgtable.h | 5 +++++ 1 file changed, 5 insertions(+) commit 69c2c196328e73d3091dd0be89ab4b0c2af4b210 Author: Suman Anna Date: Mon Jul 20 17:33:25 2015 -0500 iommu/omap: Move debugfs functions to omap-iommu-debug.c The main OMAP IOMMU driver file has some helper functions used by the OMAP IOMMU debugfs functionality, and there is already a dedicated source file omap-iommu-debug.c dealing with these debugfs routines. Move all these functions to the omap-iommu-debug.c file, so that all the debugfs related routines are in one place. The move required exposing some new functions and moving some definitions to the internal omap-iommu.h header file. Signed-off-by: Suman Anna Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu-debug.c | 111 +++++++++++++++++++++++++++++ drivers/iommu/omap-iommu.c | 148 +-------------------------------------- drivers/iommu/omap-iommu.h | 28 ++++++-- 3 files changed, 137 insertions(+), 150 deletions(-) commit 0cdbf727167a2fcc9ba2aaea98e2a76124ba072e Author: Suman Anna Date: Mon Jul 20 17:33:24 2015 -0500 iommu/omap: Remove all module references The OMAP IOMMU driver has been adapted to the IOMMU framework for a while now, and it does not support being built as a module anymore. So, remove all the module references from the OMAP IOMMU driver. While at it, also relocate a comment around the subsys_initcall to avoid a checkpatch strict warning about using a blank line after function/struct/union/enum declarations. Signed-off-by: Suman Anna Reviewed-by: Laurent Pinchart Signed-off-by: Joerg Roedel drivers/iommu/omap-iommu.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit a73622a70a31c846d9d2a971c78fd1ffab88afcd Author: Suman Anna Date: Mon Jul 20 17:33:23 2015 -0500 Documentation: dt: Add #iommu-cells info to OMAP iommu bindings The OMAP IOMMU bindings is updated to reflect the required #iommu-cells property. Signed-off-by: Suman Anna Reviewed-by: Laurent Pinchart Signed-off-by: Joerg Roedel Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt | 6 ++++++ 1 file changed, 6 insertions(+) commit 4a9e5ca1a54a3cb4a5f85359f646638cec567607 Author: Axel Lin Date: Wed Jul 15 15:33:51 2015 +0800 phy: Constify struct phy_ops variables The phy_ops variables are never modified after initialized in these drivers, so make them const. Signed-off-by: Axel Lin Acked-by: Patrice Chotard Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-armada375-usb2.c | 2 +- drivers/phy/phy-bcm-kona-usb2.c | 2 +- drivers/phy/phy-berlin-sata.c | 2 +- drivers/phy/phy-berlin-usb.c | 2 +- drivers/phy/phy-brcmstb-sata.c | 2 +- drivers/phy/phy-dm816x-usb.c | 2 +- drivers/phy/phy-exynos-dp-video.c | 2 +- drivers/phy/phy-exynos-mipi-video.c | 2 +- drivers/phy/phy-exynos5-usbdrd.c | 2 +- drivers/phy/phy-exynos5250-sata.c | 2 +- drivers/phy/phy-hix5hd2-sata.c | 2 +- drivers/phy/phy-miphy28lp.c | 2 +- drivers/phy/phy-miphy365x.c | 2 +- drivers/phy/phy-mvebu-sata.c | 2 +- drivers/phy/phy-omap-usb2.c | 2 +- drivers/phy/phy-qcom-apq8064-sata.c | 2 +- drivers/phy/phy-qcom-ipq806x-sata.c | 2 +- drivers/phy/phy-qcom-ufs-i.h | 2 +- drivers/phy/phy-qcom-ufs-qmp-14nm.c | 2 +- drivers/phy/phy-qcom-ufs-qmp-20nm.c | 2 +- drivers/phy/phy-qcom-ufs.c | 2 +- drivers/phy/phy-rcar-gen2.c | 2 +- drivers/phy/phy-rockchip-usb.c | 2 +- drivers/phy/phy-samsung-usb2.c | 2 +- drivers/phy/phy-spear1310-miphy.c | 2 +- drivers/phy/phy-spear1340-miphy.c | 2 +- drivers/phy/phy-stih41x-usb.c | 2 +- drivers/phy/phy-sun4i-usb.c | 2 +- drivers/phy/phy-sun9i-usb.c | 2 +- drivers/phy/phy-ti-pipe3.c | 2 +- drivers/phy/phy-tusb1210.c | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) commit 42ad8f6721720513f3569a67b157fcff068aa92d Author: Axel Lin Date: Fri Jun 5 08:27:03 2015 +0800 phy: ulpi_phy: Add const qualifier to ops The ops is never changed in ulpi_phy_create(), so make it const. Signed-off-by: Axel Lin Signed-off-by: Kishon Vijay Abraham I drivers/phy/ulpi_phy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8083526e0585e23447ac9ea94ca3f6d32d6dee8f Author: Hans de Goede Date: Fri Jul 31 10:01:42 2015 +0200 phy-sun4i-usb: Only check vbus-det on power-on on boards with vbus-det data->vbus_det is always 1 on boards without a (working) vbus-det, skip the vbus_det test on such boards. This fixes the sun4i usb phy code never turning on Vbus on such boards. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-sun4i-usb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3d772c4adbf94ce6971be2e9272157f831bccb8f Author: Hans de Goede Date: Fri Jul 31 10:01:41 2015 +0200 phy-sun4i-sub: Move vbus-detect helper functions up in the file Move vbus-detect helper functions up in the file, just moving some code around, no functional changes what so ever. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-sun4i-usb.c | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) commit 29d1dc62e1618192a25bd2eae9617529b9930cfc Author: Vincent Abriou Date: Mon Aug 3 14:22:16 2015 +0200 drm/sti: atomic crtc/plane update Better fit STI hardware structure. Planes are no more responsible of updating mixer information such as z-order and status. It is now up to the CRTC atomic flush to do it. Plane actions (enable or disable) are performed atomically. Disabling of a plane is synchronize with the vsync event. Signed-off-by: Vincent Abriou Reviewed-by: Benjamin Gaignard drivers/gpu/drm/sti/sti_compositor.c | 32 +-- drivers/gpu/drm/sti/sti_crtc.c | 133 +++++++--- drivers/gpu/drm/sti/sti_cursor.c | 211 +++++++++------ drivers/gpu/drm/sti/sti_cursor.h | 6 +- drivers/gpu/drm/sti/sti_gdp.c | 493 +++++++++++++++++++---------------- drivers/gpu/drm/sti/sti_gdp.h | 8 +- drivers/gpu/drm/sti/sti_hqvdp.c | 429 ++++++++++++++++-------------- drivers/gpu/drm/sti/sti_mixer.c | 10 +- drivers/gpu/drm/sti/sti_mixer.h | 11 +- drivers/gpu/drm/sti/sti_plane.c | 253 ++---------------- drivers/gpu/drm/sti/sti_plane.h | 66 ++--- drivers/gpu/drm/sti/sti_vid.c | 29 ++- drivers/gpu/drm/sti/sti_vid.h | 5 +- 13 files changed, 809 insertions(+), 877 deletions(-) commit 9e1f05b28009ca7de50fb92c227c8046f686e2c5 Author: Vincent Abriou Date: Fri Jul 31 11:32:34 2015 +0200 drm/sti: rename files and functions replace all "sti_drm_" occurences by "sti_" Signed-off-by: Vincent Abriou Reviewed-by: Benjamin Gaignard drivers/gpu/drm/sti/Makefile | 6 +- drivers/gpu/drm/sti/sti_compositor.c | 24 +-- drivers/gpu/drm/sti/sti_compositor.h | 2 +- drivers/gpu/drm/sti/sti_crtc.c | 322 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/sti/sti_crtc.h | 22 +++ drivers/gpu/drm/sti/sti_cursor.c | 2 +- drivers/gpu/drm/sti/sti_drm_crtc.c | 322 -------------------------------- drivers/gpu/drm/sti/sti_drm_crtc.h | 22 --- drivers/gpu/drm/sti/sti_drm_drv.c | 294 ------------------------------ drivers/gpu/drm/sti/sti_drm_drv.h | 35 ---- drivers/gpu/drm/sti/sti_drm_plane.c | 344 ----------------------------------- drivers/gpu/drm/sti/sti_drm_plane.h | 105 ----------- drivers/gpu/drm/sti/sti_drv.c | 294 ++++++++++++++++++++++++++++++ drivers/gpu/drm/sti/sti_drv.h | 35 ++++ drivers/gpu/drm/sti/sti_gdp.c | 2 +- drivers/gpu/drm/sti/sti_hqvdp.c | 6 +- drivers/gpu/drm/sti/sti_mixer.h | 2 +- drivers/gpu/drm/sti/sti_plane.c | 343 ++++++++++++++++++++++++++++++++++ drivers/gpu/drm/sti/sti_plane.h | 105 +++++++++++ drivers/gpu/drm/sti/sti_tvout.c | 8 +- drivers/gpu/drm/sti/sti_vid.c | 2 +- 21 files changed, 1148 insertions(+), 1149 deletions(-) commit 871bcdfea68560991bd650406e47a801ab9d635d Author: Vincent Abriou Date: Fri Jul 31 11:32:13 2015 +0200 drm/sti: code clean up Purpose is to simplify the STI driver: - remove layer structure - consider video subdev as part of the compositor (like mixer subdev) - remove useless STI_VID0 and STI_VID1 enum Signed-off-by: Vincent Abriou Reviewed-by: Benjamin Gaignard drivers/gpu/drm/sti/Makefile | 1 - drivers/gpu/drm/sti/sti_compositor.c | 135 ++++++++------- drivers/gpu/drm/sti/sti_compositor.h | 12 +- drivers/gpu/drm/sti/sti_cursor.c | 108 ++++++------ drivers/gpu/drm/sti/sti_cursor.h | 3 +- drivers/gpu/drm/sti/sti_drm_crtc.c | 34 ++-- drivers/gpu/drm/sti/sti_drm_plane.c | 322 +++++++++++++++++++++++------------ drivers/gpu/drm/sti/sti_drm_plane.h | 91 +++++++++- drivers/gpu/drm/sti/sti_gdp.c | 185 ++++++++++---------- drivers/gpu/drm/sti/sti_gdp.h | 3 +- drivers/gpu/drm/sti/sti_hdmi.c | 2 +- drivers/gpu/drm/sti/sti_hqvdp.c | 201 +++++++++++----------- drivers/gpu/drm/sti/sti_hqvdp.h | 12 -- drivers/gpu/drm/sti/sti_layer.c | 213 ----------------------- drivers/gpu/drm/sti/sti_layer.h | 131 -------------- drivers/gpu/drm/sti/sti_mixer.c | 55 +++--- drivers/gpu/drm/sti/sti_mixer.h | 16 +- drivers/gpu/drm/sti/sti_vid.c | 57 ++----- drivers/gpu/drm/sti/sti_vid.h | 18 +- 19 files changed, 713 insertions(+), 886 deletions(-) commit bf60b29f8e811c9593dcabaa4d25e412f9e10b73 Author: Vincent Abriou Date: Fri Jul 31 11:31:38 2015 +0200 drm/sti: fix dynamic z-ordering Apply the plane depth when the plane is updated. If the depth is different from the previous plane update, the register controlling the plane depth is cleaned and updated with the new depth. Signed-off-by: Vincent Abriou Reviewed-by: Benjamin Gaignard drivers/gpu/drm/sti/sti_drm_plane.c | 23 +++++++++-------------- drivers/gpu/drm/sti/sti_mixer.c | 19 ++++++++++++++----- drivers/gpu/drm/sti/sti_mixer.h | 2 +- 3 files changed, 24 insertions(+), 20 deletions(-) commit 53bdcf5f026c565e605ff4ced9178f85d48f69c5 Author: Benjamin Gaignard Date: Fri Jul 17 12:06:11 2015 +0200 drm: sti: fix sub-components bind Fix misunderstanding in how use component framework. drm_platform_init() is now call only when all the sub-components are register themselves instead of the previous broken two stages mechanism. Update bindings documentation. Signed-off-by: Benjamin Gaignard .../devicetree/bindings/gpu/st,stih4xx.txt | 72 +++++++++++----------- drivers/gpu/drm/sti/sti_drm_drv.c | 45 ++------------ drivers/gpu/drm/sti/sti_hdmi.c | 25 ++++---- drivers/gpu/drm/sti/sti_tvout.c | 46 ++------------ 4 files changed, 57 insertions(+), 131 deletions(-) commit 97942c2862d74689b6241802f2aa43972042389f Author: Robin Murphy Date: Fri Jul 31 18:28:34 2015 +0100 arm64: dma-mapping: Simplify pgprot handling Since __get_dma_pgprot() does The Right Thing(TM) in the non-coherent case, and the non-cacheable alias for DMA buffers is private to the kernel anyway, we can simplify things slightly and make the code more readable by just using PAGE_KERNEL as the base pgprot. Suggested-by: Catalin Marinas Reviewed-by: Catalin Marinas Signed-off-by: Robin Murphy Signed-off-by: Will Deacon arch/arm64/mm/dma-mapping.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 514f161abcda065914f7ea8954c815eee98074a5 Author: Mark Rutland Date: Fri Jul 31 15:46:20 2015 +0100 MAINTAINERS: add PSCI entry Add myself and Lorenzo as maintainers of the PSCI client code. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Cc: Lorenzo Pieralisi Cc: Will Deacon Signed-off-by: Will Deacon MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) commit 5211df00a4b595b96a7721a1253074b327945d33 Author: Mark Rutland Date: Fri Jul 31 15:46:17 2015 +0100 drivers: psci: support native SMC{32,64} calls A 32-bit OS cannot make calls with SMC64 IDs, while a 64-bit OS must invoke some PSCI functions with SMC64 IDs. This patch introduces and makes use of a new macro to choose the appropriate IDs based on the register width of the OS, which will allow 32-bit callers to use the PSCI client code. Signed-off-by: Mark Rutland Tested-by: Hanjun Guo Cc: Lorenzo Pieralisi Signed-off-by: Will Deacon drivers/firmware/psci.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit bff60792f994a87324ab57e89e945b4572b1ef77 Author: Mark Rutland Date: Fri Jul 31 15:46:16 2015 +0100 arm64: psci: factor invocation code to drivers To enable sharing with arm, move the core PSCI framework code to drivers/firmware. This results in a minor gain in lines of code, but this will quickly be amortised by the removal of code currently duplicated in arch/arm. Signed-off-by: Mark Rutland Acked-by: Catalin Marinas Reviewed-by: Hanjun Guo Tested-by: Hanjun Guo Cc: Lorenzo Pieralisi Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/Kconfig | 1 + arch/arm64/include/asm/acpi.h | 4 +- arch/arm64/include/asm/psci.h | 28 ---- arch/arm64/kernel/psci.c | 361 +---------------------------------------- arch/arm64/kernel/setup.c | 2 +- drivers/firmware/Kconfig | 3 + drivers/firmware/Makefile | 1 + drivers/firmware/psci.c | 369 ++++++++++++++++++++++++++++++++++++++++++ include/linux/psci.h | 52 ++++++ 9 files changed, 431 insertions(+), 390 deletions(-) commit 27e44646dc0083c931b71bbb8e179aeb38010d31 Author: Dinh Nguyen Date: Fri Jul 31 16:03:10 2015 -0500 reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property In order for the Arria10 to be able to re-use the reset driver for SoCFPGA Cyclone5/Arria5, we need to read the 'altr,modrst-offset' property from the device tree entry. The 'altr,modrst-offset' property is the first register into the reset manager that is used for bringing peripherals out of reset. The driver assumes a modrst-offset of 0x10 in order to support legacy Cyclone5/Arria5 hardware. Signed-off-by: Dinh Nguyen drivers/reset/reset-socfpga.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 27dc2fb18fe814fab0a5035859c77b279cdaec80 Author: Joachim Eastwood Date: Wed May 6 00:10:27 2015 +0200 doc: dt: add documentation for lpc1850-rgu reset driver Add device tree binding documentation for the Reset Generation Unit (RGU) found on NXP LPC18xx and LPC43xx devies. This documentation also includes a table which shows the RGU reset number and the connected peripheral. Signed-off-by: Joachim Eastwood Signed-off-by: Philipp Zabel .../devicetree/bindings/reset/nxp,lpc1850-rgu.txt | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) commit c392b65ba853f653cff3d1c7de2138bd6906d536 Author: Joachim Eastwood Date: Wed May 6 00:10:26 2015 +0200 reset: add driver for lpc18xx rgu Add reset driver for the Reset Generation Unit (RGU) found on NXP LPC18xx and LPC43xx devies. This reset controller features up to 64 reset lines connected to different blocks and peripheral in the SoC. Most reset lines on the controller are self clearing except for those dealing with the Cortex-M0 cores on LPC43xx devices. This driver also registers a restart handler that can be used to reset the entire device. Signed-off-by: Joachim Eastwood Signed-off-by: Philipp Zabel drivers/reset/Makefile | 1 + drivers/reset/reset-lpc18xx.c | 258 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 259 insertions(+) commit a518db45c2580fd726f6578539482596f46a8219 Author: Fabian Frederick Date: Mon Mar 16 20:54:37 2015 +0100 reset: sti: constify of_device_id array of_device_id is always used as const. (See driver.of_match_table and open firmware functions) Signed-off-by: Fabian Frederick Acked-by: Maxime Coquelin Acked-by: Patrice Chotard Signed-off-by: Philipp Zabel drivers/reset/sti/reset-stih407.c | 2 +- drivers/reset/sti/reset-stih415.c | 2 +- drivers/reset/sti/reset-stih416.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit efdf5aa8f175c18def6407bb2b51643e4da88259 Author: Philipp Zabel Date: Fri Feb 13 12:20:49 2015 +0100 ARM: STi: 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 STi reset constants in there, too, to avoid confusion. Signed-off-by: Philipp Zabel Acked-by: Patrice Chotard .../bindings/reset/st,sti-picophyreset.txt | 2 +- .../devicetree/bindings/reset/st,sti-powerdown.txt | 4 +- .../devicetree/bindings/reset/st,sti-softreset.txt | 4 +- arch/arm/boot/dts/stih407-family.dtsi | 2 +- arch/arm/boot/dts/stih415.dtsi | 2 +- arch/arm/boot/dts/stih416.dtsi | 2 +- drivers/reset/sti/reset-stih407.c | 2 +- drivers/reset/sti/reset-stih415.c | 2 +- drivers/reset/sti/reset-stih416.c | 2 +- .../dt-bindings/reset-controller/stih407-resets.h | 61 ---------------------- .../dt-bindings/reset-controller/stih415-resets.h | 27 ---------- .../dt-bindings/reset-controller/stih416-resets.h | 51 ------------------ include/dt-bindings/reset/stih407-resets.h | 61 ++++++++++++++++++++++ include/dt-bindings/reset/stih415-resets.h | 27 ++++++++++ include/dt-bindings/reset/stih416-resets.h | 51 ++++++++++++++++++ 15 files changed, 150 insertions(+), 150 deletions(-) commit b2f6dd7b94ee9c07b93fb8e69d782af6fde0410f Author: Philipp Zabel Date: Fri Feb 13 12:14:40 2015 +0100 MAINTAINERS: add include/dt-bindings/reset path to reset controller entry This is the path for reset definitions to be used in both device tree and reset controller drivers. Signed-off-by: Philipp Zabel MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 7ea241afbf4924c58d41078599f7a32ba49fb985 Author: Yuyang Du Date: Wed Jul 15 08:04:42 2015 +0800 sched/fair: Clean up load average references For cfs_rq, we have load.weight, runnable_load_avg, and load_avg. Clean up how they are used: - First, as group sched_entity already largely uses load_avg, we now expand to use load_avg in all cases. - Second, for CPU-wide load balancing, we choose to use runnable_load_avg in all cases, which is the same as before this series. Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: dietmar.eggemann@arm.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Cc: vincent.guittot@linaro.org Link: http://lkml.kernel.org/r/1436918682-4971-8-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) commit 139622343ef31941effc6de6a5a9320371a00e62 Author: Yuyang Du Date: Wed Jul 15 08:04:41 2015 +0800 sched/fair: Provide runnable_load_avg back to cfs_rq The cfs_rq's load_avg is composed of runnable_load_avg and blocked_load_avg. Before this series, sometimes the runnable_load_avg is used, and sometimes the load_avg is used. Completely replacing all uses of runnable_load_avg with load_avg may be too big a leap, i.e., the blocked_load_avg is concerned to result in overrated load. Therefore, we get runnable_load_avg back. The new cfs_rq's runnable_load_avg is improved to be updated with all of the runnable sched_eneities at the same time, so the one sched_entity updated and the others stale problem is solved. Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: dietmar.eggemann@arm.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Cc: vincent.guittot@linaro.org Link: http://lkml.kernel.org/r/1436918682-4971-7-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 2 ++ kernel/sched/fair.c | 55 ++++++++++++++++++++++++++++++++++++++++++---------- kernel/sched/sched.h | 2 ++ 3 files changed, 49 insertions(+), 10 deletions(-) commit 1269557889b477e3e43ab99a21035ddf8f7cea4d Author: Yuyang Du Date: Wed Jul 15 08:04:40 2015 +0800 sched/fair: Remove task and group entity load when they are dead When task exits or group is destroyed, the entity's load should be removed from its parent cfs_rq's load. Otherwise, it will take time for the parent cfs_rq to decay the dead entity's load to 0, which is not desired. Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: dietmar.eggemann@arm.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Cc: vincent.guittot@linaro.org Link: http://lkml.kernel.org/r/1436918682-4971-6-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 540247fb5ddf6d2364f90387fa1f8f428d15e683 Author: Yuyang Du Date: Wed Jul 15 08:04:39 2015 +0800 sched/fair: Init cfs_rq's sched_entity load average The runnable load and utilization averages of cfs_rq's sched_entity were not initiated. Like done to a task, give new cfs_rq' sched_entity start values to heavy its load in infant time. Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: dietmar.eggemann@arm.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Cc: vincent.guittot@linaro.org Link: http://lkml.kernel.org/r/1436918682-4971-5-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/core.c | 2 +- kernel/sched/fair.c | 11 ++++++----- kernel/sched/sched.h | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) commit 6c1d47c0827304949e0eb9479f4d587f226fac8b Author: Vincent Guittot Date: Wed Jul 15 08:04:38 2015 +0800 sched/fair: Implement update_blocked_averages() for CONFIG_FAIR_GROUP_SCHED=n The load and the utilization of idle CPUs must be updated periodically in order to decay the blocked part. If CONFIG_FAIR_GROUP_SCHED is not set, the load and util of idle cpus are not decayed and stay at the values set before becoming idle. Signed-off-by: Vincent Guittot Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: dietmar.eggemann@arm.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Link: http://lkml.kernel.org/r/1436918682-4971-4-git-send-email-yuyang.du@intel.com [ Fixed up the SOB chain. ] Signed-off-by: Ingo Molnar kernel/sched/fair.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9d89c257dfb9c51a532d69397f6eed75e5168c35 Author: Yuyang Du Date: Wed Jul 15 08:04:37 2015 +0800 sched/fair: Rewrite runnable load and utilization average tracking The idea of runnable load average (let runnable time contribute to weight) was proposed by Paul Turner and Ben Segall, and it is still followed by this rewrite. This rewrite aims to solve the following issues: 1. cfs_rq's load average (namely runnable_load_avg and blocked_load_avg) is updated at the granularity of an entity at a time, which results in the cfs_rq's load average is stale or partially updated: at any time, only one entity is up to date, all other entities are effectively lagging behind. This is undesirable. To illustrate, if we have n runnable entities in the cfs_rq, as time elapses, they certainly become outdated: t0: cfs_rq { e1_old, e2_old, ..., en_old } and when we update: t1: update e1, then we have cfs_rq { e1_new, e2_old, ..., en_old } t2: update e2, then we have cfs_rq { e1_old, e2_new, ..., en_old } ... We solve this by combining all runnable entities' load averages together in cfs_rq's avg, and update the cfs_rq's avg as a whole. This is based on the fact that if we regard the update as a function, then: w * update(e) = update(w * e) and update(e1) + update(e2) = update(e1 + e2), then w1 * update(e1) + w2 * update(e2) = update(w1 * e1 + w2 * e2) therefore, by this rewrite, we have an entirely updated cfs_rq at the time we update it: t1: update cfs_rq { e1_new, e2_new, ..., en_new } t2: update cfs_rq { e1_new, e2_new, ..., en_new } ... 2. cfs_rq's load average is different between top rq->cfs_rq and other task_group's per CPU cfs_rqs in whether or not blocked_load_average contributes to the load. The basic idea behind runnable load average (the same for utilization) is that the blocked state is taken into account as opposed to only accounting for the currently runnable state. Therefore, the average should include both the runnable/running and blocked load averages. This rewrite does that. In addition, we also combine runnable/running and blocked averages of all entities into the cfs_rq's average, and update it together at once. This is based on the fact that: update(runnable) + update(blocked) = update(runnable + blocked) This significantly reduces the code as we don't need to separately maintain/update runnable/running load and blocked load. 3. How task_group entities' share is calculated is complex and imprecise. We reduce the complexity in this rewrite to allow a very simple rule: the task_group's load_avg is aggregated from its per CPU cfs_rqs's load_avgs. Then group entity's weight is simply proportional to its own cfs_rq's load_avg / task_group's load_avg. To illustrate, if a task_group has { cfs_rq1, cfs_rq2, ..., cfs_rqn }, then, task_group_avg = cfs_rq1_avg + cfs_rq2_avg + ... + cfs_rqn_avg, then cfs_rqx's entity's share = cfs_rqx_avg / task_group_avg * task_group's share To sum up, this rewrite in principle is equivalent to the current one, but fixes the issues described above. Turns out, it significantly reduces the code complexity and hence increases clarity and efficiency. In addition, the new averages are more smooth/continuous (no spurious spikes and valleys) and updated more consistently and quickly to reflect the load dynamics. As a result, we have less load tracking overhead, better performance, and especially better power efficiency due to more balanced load. Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: dietmar.eggemann@arm.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Cc: vincent.guittot@linaro.org Link: http://lkml.kernel.org/r/1436918682-4971-3-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar include/linux/sched.h | 41 ++-- kernel/sched/core.c | 3 - kernel/sched/debug.c | 41 ++-- kernel/sched/fair.c | 630 ++++++++++++++++---------------------------------- kernel/sched/sched.h | 28 +-- 5 files changed, 249 insertions(+), 494 deletions(-) commit cd126afe838d7ea9b971cdea087fd498a7293c7f Author: Yuyang Du Date: Wed Jul 15 08:04:36 2015 +0800 sched/fair: Remove rq's runnable avg The current rq->avg is not used at all since its merge into the kernel, and the code is in the scheduler's hot path, so remove it. Tested-by: Dietmar Eggemann Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Dietmar Eggemann Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arjan@linux.intel.com Cc: bsegall@google.com Cc: fengguang.wu@intel.com Cc: len.brown@intel.com Cc: morten.rasmussen@arm.com Cc: pjt@google.com Cc: rafael.j.wysocki@intel.com Cc: umgwanakikbuti@gmail.com Cc: vincent.guittot@linaro.org Link: http://lkml.kernel.org/r/1436918682-4971-2-git-send-email-yuyang.du@intel.com Signed-off-by: Ingo Molnar kernel/sched/debug.c | 7 +------ kernel/sched/fair.c | 25 ++++--------------------- kernel/sched/sched.h | 2 -- 3 files changed, 5 insertions(+), 29 deletions(-) commit d308b9f1e4412bcf583c82c4ca15ef97cb8b0e6f Author: Oleg Nesterov Date: Tue Jun 30 03:29:58 2015 +0200 stop_machine: Remove cpu_stop_work's from list in cpu_stop_park() cpu_stop_park() does cpu_stop_signal_done() but leaves the work on stopper->works. The owner of this work can free/reuse this memory right after that and corrupt the list, so if this CPU becomes online again cpu_stopper_thread() will crash. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Tejun Heo Cc: Thomas Gleixner Cc: dave@stgolabs.net Cc: der.herr@hofr.at Cc: paulmck@linux.vnet.ibm.com Cc: riel@redhat.com Cc: viro@ZenIV.linux.org.uk Link: http://lkml.kernel.org/r/20150630012958.GA23944@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 9a301f22faac7fc2207ee49c1855a6b4ba9c5a52 Author: Oleg Nesterov Date: Tue Jun 30 03:29:55 2015 +0200 stop_machine: Use 'cpu_stop_fn_t' where possible Cosmetic, but 'cpu_stop_fn_t' actually makes the code more readable and it doesn't break cscope. And most of the declarations already use it. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Tejun Heo Cc: Thomas Gleixner Cc: dave@stgolabs.net Cc: der.herr@hofr.at Cc: paulmck@linux.vnet.ibm.com Cc: riel@redhat.com Cc: viro@ZenIV.linux.org.uk Link: http://lkml.kernel.org/r/20150630012955.GA23937@redhat.com Signed-off-by: Ingo Molnar include/linux/stop_machine.h | 8 ++++---- kernel/stop_machine.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) commit 7eeb088e72048bf4660f64fc3824c8066cf17591 Author: Oleg Nesterov Date: Tue Jun 30 03:29:51 2015 +0200 stop_machine: Unexport __stop_machine() The only caller outside of stop_machine.c is _cpu_down(), it can use stop_machine(). get_online_cpus() is fine under cpu_hotplug_begin(). Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Tejun Heo Cc: Thomas Gleixner Cc: dave@stgolabs.net Cc: der.herr@hofr.at Cc: paulmck@linux.vnet.ibm.com Cc: riel@redhat.com Cc: viro@ZenIV.linux.org.uk Link: http://lkml.kernel.org/r/20150630012951.GA23934@redhat.com Signed-off-by: Ingo Molnar include/linux/stop_machine.h | 22 ++-------------------- kernel/cpu.c | 2 +- kernel/stop_machine.c | 2 +- 3 files changed, 4 insertions(+), 22 deletions(-) commit b377c2a089d4538e6e62e51fa595c896c314d83d Author: Oleg Nesterov Date: Tue Jun 30 03:29:48 2015 +0200 stop_machine: Don't do for_each_cpu() twice in queue_stop_cpus_work() queue_stop_cpus_work() can do everything in one for_each_cpu() loop. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Tejun Heo Cc: Thomas Gleixner Cc: dave@stgolabs.net Cc: der.herr@hofr.at Cc: paulmck@linux.vnet.ibm.com Cc: riel@redhat.com Cc: viro@ZenIV.linux.org.uk Link: http://lkml.kernel.org/r/20150630012948.GA23927@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) commit 02cb7aa923ec553e6454ec766ded27b472326ebe Author: Oleg Nesterov Date: Tue Jun 30 03:29:44 2015 +0200 stop_machine: Move 'cpu_stopper_task' and 'stop_cpus_work' into 'struct cpu_stopper' Multpiple DEFINE_PER_CPU's do not make sense, move all the per-cpu variables into 'struct cpu_stopper'. Signed-off-by: Oleg Nesterov Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Tejun Heo Cc: Thomas Gleixner Cc: dave@stgolabs.net Cc: der.herr@hofr.at Cc: paulmck@linux.vnet.ibm.com Cc: riel@redhat.com Cc: viro@ZenIV.linux.org.uk Link: http://lkml.kernel.org/r/20150630012944.GA23924@redhat.com Signed-off-by: Ingo Molnar kernel/stop_machine.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit fe32d3cd5e8eb0f82e459763374aa80797023403 Author: Konstantin Khlebnikov Date: Wed Jul 15 12:52:04 2015 +0300 sched/preempt: Fix cond_resched_lock() and cond_resched_softirq() These functions check should_resched() before unlocking spinlock/bh-enable: preempt_count always non-zero => should_resched() always returns false. cond_resched_lock() worked iff spin_needbreak is set. This patch adds argument "preempt_offset" to should_resched(). preempt_count offset constants for that: PREEMPT_DISABLE_OFFSET - offset after preempt_disable() PREEMPT_LOCK_OFFSET - offset after spin_lock() SOFTIRQ_DISABLE_OFFSET - offset after local_bh_distable() SOFTIRQ_LOCK_OFFSET - offset after spin_lock_bh() Signed-off-by: Konstantin Khlebnikov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Graf Cc: Boris Ostrovsky Cc: David Vrabel Cc: Linus Torvalds Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: bdb438065890 ("sched: Extract the basic add/sub preempt_count modifiers") Link: http://lkml.kernel.org/r/20150715095204.12246.98268.stgit@buzz Signed-off-by: Ingo Molnar arch/x86/include/asm/preempt.h | 4 ++-- include/asm-generic/preempt.h | 5 +++-- include/linux/preempt.h | 19 ++++++++++++++----- include/linux/sched.h | 6 ------ kernel/sched/core.c | 6 +++--- 5 files changed, 22 insertions(+), 18 deletions(-) commit c56dadf39761a6157239cac39e3988998c994f98 Author: Konstantin Khlebnikov Date: Wed Jul 15 12:52:03 2015 +0300 sched/preempt, powerpc, kvm: Use need_resched() instead of should_resched() Function should_resched() is equal to (!preempt_count() && need_resched()). In preemptive kernel preempt_count here is non-zero because of vc->lock. Signed-off-by: Konstantin Khlebnikov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Graf Cc: Boris Ostrovsky Cc: David Vrabel Cc: Linus Torvalds Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150715095203.12246.72922.stgit@buzz Signed-off-by: Ingo Molnar arch/powerpc/kvm/book3s_hv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0fa2f5cb2b0ecd8d56baa51f35f09aab234eb0bf Author: Konstantin Khlebnikov Date: Wed Jul 15 12:52:01 2015 +0300 sched/preempt, xen: Use need_resched() instead of should_resched() This code is used only when CONFIG_PREEMPT=n and only in non-atomic context: xen_in_preemptible_hcall is set only in privcmd_ioctl_hypercall(). Thus preempt_count is zero and should_resched() is equal to need_resched(). Signed-off-by: Konstantin Khlebnikov Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Graf Cc: Boris Ostrovsky Cc: David Vrabel Cc: Linus Torvalds Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150715095201.12246.49283.stgit@buzz Signed-off-by: Ingo Molnar drivers/xen/preempt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63b0e9edceec10fa41ec33393a1515a5ff444277 Author: Mike Galbraith Date: Tue Jul 14 17:39:50 2015 +0200 sched/fair: Beef up wake_wide() Josef Bacik reported that Facebook sees better performance with their 1:N load (1 dispatch/node, N workers/node) when carrying an old patch to try very hard to wake to an idle CPU. While looking at wake_wide(), I noticed that it doesn't pay attention to the wakeup of a many partner waker, returning 1 only when waking one of its many partners. Correct that, letting explicit domain flags override the heuristic. While at it, adjust task_struct bits, we don't need a 64-bit counter. Tested-by: Josef Bacik Signed-off-by: Mike Galbraith [ Tidy things up. ] Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: kernel-team Cc: morten.rasmussen@arm.com Cc: riel@redhat.com Link: http://lkml.kernel.org/r/1436888390.7983.49.camel@gmail.com Signed-off-by: Ingo Molnar include/linux/sched.h | 4 +-- kernel/sched/fair.c | 67 +++++++++++++++++++++++++-------------------------- 2 files changed, 35 insertions(+), 36 deletions(-) commit fbd705a0c6184580d0e2fbcbd47a37b6e5822511 Author: Peter Zijlstra Date: Tue Jun 9 11:13:36 2015 +0200 sched: Introduce the 'trace_sched_waking' tracepoint Mathieu reported that since 317f394160e9 ("sched: Move the second half of ttwu() to the remote cpu") trace_sched_wakeup() can happen out of context of the waker. This is a problem when you want to analyse wakeup paths because it is now very hard to correlate the wakeup event to whoever issued the wakeup. OTOH trace_sched_wakeup() is issued at the point where we set p->state = TASK_RUNNING, which is right were we hand the task off to the scheduler, so this is an important point when looking at scheduling behaviour, up to here its been the wakeup path everything hereafter is due to scheduler policy. To bridge this gap, introduce a second tracepoint: trace_sched_waking. It is guaranteed to be called in the waker context. Reported-by: Mathieu Desnoyers Signed-off-by: Peter Zijlstra (Intel) Cc: Francis Giraldeau Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150609091336.GQ3644@twins.programming.kicks-ass.net Signed-off-by: Ingo Molnar include/trace/events/sched.h | 30 +++++++++++++++++++++--------- kernel/sched/core.c | 10 +++++++--- kernel/trace/trace_sched_switch.c | 2 +- kernel/trace/trace_sched_wakeup.c | 2 +- 4 files changed, 30 insertions(+), 14 deletions(-) commit 9d7fb04276481c59610983362d8e023d262b58ca Author: Peter Zijlstra Date: Tue Jun 30 11:30:54 2015 +0200 sched/cputime: Guarantee stime + utime == rtime While the current code guarantees monotonicity for stime and utime independently of one another, it does not guarantee that the sum of both is equal to the total time we started out with. This confuses things (and peoples) who look at this sum, like top, and will report >100% usage followed by a matching period of 0%. Rework the code to provide both individual monotonicity and a coherent sum. Suggested-by: Fredrik Markstrom Reported-by: Fredrik Markstrom Tested-by: Fredrik Markstrom Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Rik van Riel Cc: Stanislaw Gruszka Cc: Thomas Gleixner Cc: jason.low2@hp.com Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar include/linux/init_task.h | 10 +++++ include/linux/sched.h | 40 ++++++++++-------- kernel/fork.c | 7 ++-- kernel/sched/cputime.c | 101 +++++++++++++++++++++++++++------------------- 4 files changed, 97 insertions(+), 61 deletions(-) commit 781b0203423c228b100aaaf169c77b2b556f8a49 Author: Markus Elfring Date: Sat Jul 4 09:06:32 2015 +0200 sched, sysctl: Delete an unnecessary check before unregister_sysctl_table() The unregister_sysctl_table() 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: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/5597877E.3060503@users.sourceforge.net Signed-off-by: Ingo Molnar kernel/sched/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3fe33bcdd358dd8c641cf4d92c9d2d9972ca94dd Author: Xunlei Pang Date: Sat Jul 4 15:39:23 2015 +0800 sched/deadline: Remove a redundant condition from task_woken_dl() 'p' has been already queued at this point, so "!task_running(rq, p)" and "p->nr_cpus_allowed > 1" imply that "has_pushable_dl_tasks(rq)" is true, so it can be removed. Signed-off-by: Xunlei Pang Signed-off-by: Peter Zijlstra (Intel) Acked-by: Steven Rostedt Cc: Juri Lelli Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435995563-3723-2-git-send-email-xlpang@126.com Signed-off-by: Ingo Molnar kernel/sched/deadline.c | 1 - 1 file changed, 1 deletion(-) commit 8fd373548eed815858d7b5534971bdc64b4d8d2c Author: Xunlei Pang Date: Sat Jul 4 15:39:22 2015 +0800 sched/rt: Remove a redundant condition from task_woken_rt() 'p' has been already queued at this point, so "!task_running(rq, p)" and "p->nr_cpus_allowed > 1" imply that "has_pushable_tasks(rq)" is true, so it can be removed. Signed-off-by: Xunlei Pang Signed-off-by: Peter Zijlstra (Intel) Acked-by: Steven Rostedt Cc: Juri Lelli Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435995563-3723-1-git-send-email-xlpang@126.com Signed-off-by: Ingo Molnar kernel/sched/rt.c | 1 - 1 file changed, 1 deletion(-) commit 985d3a4c11cd28251bcc7925aa2d7a9038910384 Author: Yuyang Du Date: Mon Jul 6 06:11:51 2015 +0800 sched/fair: Avoid pulling all tasks in idle balancing In idle balancing where a CPU going idle pulls tasks from another CPU, a livelock may happen if the CPU pulls all tasks from another, makes it idle, and this iterates. So just avoid this. Reported-by: Rabin Vincent Signed-off-by: Yuyang Du Signed-off-by: Peter Zijlstra (Intel) Cc: Ben Segall Cc: Linus Torvalds Cc: Mike Galbraith Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Paul Turner Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150705221151.GF5197@intel.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 412758cb26704e5087ca2976ec3b28fb2bdbfad4 Author: Jason Baron Date: Thu Jul 30 03:59:48 2015 +0000 jump label, locking/static_keys: Update docs Signed-off-by: Jason Baron Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: benh@kernel.crashing.org Cc: bp@alien8.de Cc: davem@davemloft.net Cc: ddaney@caviumnetworks.com Cc: heiko.carstens@de.ibm.com Cc: linux-kernel@vger.kernel.org Cc: liuj97@gmail.com Cc: luto@amacapital.net Cc: michael@ellerman.id.au Cc: rabin@rab.in Cc: ralf@linux-mips.org Cc: rostedt@goodmis.org Cc: vbabka@suse.cz Cc: will.deacon@arm.com Link: http://lkml.kernel.org/r/6b50f2f6423a2244f37f4b1d2d6c211b9dcdf4f8.1438227999.git.jbaron@akamai.com Signed-off-by: Ingo Molnar Documentation/static-keys.txt | 99 +++++++++++++++++++++++-------------------- include/linux/jump_label.h | 67 ++++++++++++++++++++--------- 2 files changed, 98 insertions(+), 68 deletions(-) commit 2bf9e0ab08c64ac56067555911a1ae81ebff5f96 Author: Ingo Molnar Date: Mon Aug 3 11:42:57 2015 +0200 locking/static_keys: Provide a selftest The 'jump label' self-test is in reality testing static keys - rename things accordingly. Also prettify the code in various places while at it. Acked-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Jason Baron Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Shuah Khan Cc: Thomas Gleixner Cc: benh@kernel.crashing.org Cc: bp@alien8.de Cc: davem@davemloft.net Cc: ddaney@caviumnetworks.com Cc: heiko.carstens@de.ibm.com Cc: linux-kernel@vger.kernel.org Cc: liuj97@gmail.com Cc: luto@amacapital.net Cc: michael@ellerman.id.au Cc: rabin@rab.in Cc: ralf@linux-mips.org Cc: rostedt@goodmis.org Cc: vbabka@suse.cz Cc: will.deacon@arm.com Link: http://lkml.kernel.org/r/0c091ecebd78a879ed8a71835d205a691a75ab4e.1438227999.git.jbaron@akamai.com Signed-off-by: Ingo Molnar lib/Kconfig.debug | 6 +- lib/Makefile | 4 +- lib/test_jump_label.c | 225 --------------------- lib/test_jump_label_base.c | 68 ------- lib/test_static_key_base.c | 68 +++++++ lib/test_static_keys.c | 225 +++++++++++++++++++++ tools/testing/selftests/jumplabel/Makefile | 8 - .../testing/selftests/jumplabel/test_jump_label.sh | 16 -- tools/testing/selftests/static_keys/Makefile | 8 + .../selftests/static_keys/test_static_keys.sh | 16 ++ 10 files changed, 322 insertions(+), 322 deletions(-) commit 579e1acb153464649781fe5555b4892c0ff84a40 Author: Jason Baron Date: Thu Jul 30 03:59:44 2015 +0000 jump_label: Provide a self-test Signed-off-by: Jason Baron Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: benh@kernel.crashing.org Cc: bp@alien8.de Cc: davem@davemloft.net Cc: ddaney@caviumnetworks.com Cc: heiko.carstens@de.ibm.com Cc: linux-kernel@vger.kernel.org Cc: liuj97@gmail.com Cc: luto@amacapital.net Cc: michael@ellerman.id.au Cc: rabin@rab.in Cc: ralf@linux-mips.org Cc: rostedt@goodmis.org Cc: shuahkh@osg.samsung.com Cc: vbabka@suse.cz Cc: will.deacon@arm.com Link: http://lkml.kernel.org/r/0c091ecebd78a879ed8a71835d205a691a75ab4e.1438227999.git.jbaron@akamai.com Signed-off-by: Ingo Molnar lib/Kconfig.debug | 9 + lib/Makefile | 2 + lib/test_jump_label.c | 225 +++++++++++++++++++++ lib/test_jump_label_base.c | 68 +++++++ tools/testing/selftests/Makefile | 1 + tools/testing/selftests/jumplabel/Makefile | 8 + .../testing/selftests/jumplabel/test_jump_label.sh | 16 ++ 7 files changed, 329 insertions(+) commit ed79e946732e5311934d7f404b3b4e702e45cb97 Author: Heiko Carstens Date: Wed Jul 29 08:31:24 2015 +0200 s390/uaccess, locking/static_keys: employ static_branch_likely() Use the new static_branch_likely() primitive to make sure that the most likely case is executed without taking an unconditional branch. This wasn't possible with the old jump label primitives. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/20150729064600.GB3953@osiris Signed-off-by: Ingo Molnar arch/s390/lib/uaccess.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 3bbfafb77a06327fa1bc9f19bc55b5c558475091 Author: Peter Zijlstra Date: Fri Jul 24 16:34:32 2015 +0200 x86, tsc, locking/static_keys: Employ static_branch_likely() Because of the static_key restrictions we had to take an unconditional jump for the most likely case, causing $I bloat. Rewrite to use the new primitives. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/tsc.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) commit 1987c947d905baa05bee430178e8eef882f36bd4 Author: Peter Zijlstra Date: Mon Jul 27 18:32:09 2015 +0200 locking/static_keys: Add selftest Add a little selftest that validates all combinations. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/Kconfig | 6 ++++++ kernel/jump_label.c | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) commit 11276d5306b8e5b438a36bbff855fe792d7eaa61 Author: Peter Zijlstra Date: Fri Jul 24 15:09:55 2015 +0200 locking/static_keys: Add a new static_key interface There are various problems and short-comings with the current static_key interface: - static_key_{true,false}() read like a branch depending on the key value, instead of the actual likely/unlikely branch depending on init value. - static_key_{true,false}() are, as stated above, tied to the static_key init values STATIC_KEY_INIT_{TRUE,FALSE}. - we're limited to the 2 (out of 4) possible options that compile to a default NOP because that's what our arch_static_branch() assembly emits. So provide a new static_key interface: DEFINE_STATIC_KEY_TRUE(name); DEFINE_STATIC_KEY_FALSE(name); Which define a key of different types with an initial true/false value. Then allow: static_branch_likely() static_branch_unlikely() to take a key of either type and emit the right instruction for the case. This means adding a second arch_static_branch_jump() assembly helper which emits a JMP per default. In order to determine the right instruction for the right state, encode the branch type in the LSB of jump_entry::key. This is the final step in removing the naming confusion that has led to a stream of avoidable bugs such as: a833581e372a ("x86, perf: Fix static_key bug in load_mm_cr4()") ... but it also allows new static key combinations that will give us performance enhancements in the subsequent patches. Tested-by: Rabin Vincent # arm Signed-off-by: Peter Zijlstra (Intel) Acked-by: Michael Ellerman # ppc Acked-by: Heiko Carstens # s390 Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar arch/arm/include/asm/jump_label.h | 25 ++++-- arch/arm64/include/asm/jump_label.h | 18 +++- arch/mips/include/asm/jump_label.h | 19 ++++- arch/powerpc/include/asm/jump_label.h | 19 ++++- arch/s390/include/asm/jump_label.h | 19 ++++- arch/sparc/include/asm/jump_label.h | 35 ++++++-- arch/x86/include/asm/jump_label.h | 21 ++++- include/linux/jump_label.h | 149 +++++++++++++++++++++++++++++++--- kernel/jump_label.c | 37 +++++++-- 9 files changed, 298 insertions(+), 44 deletions(-) commit 706249c222f68471b6f8e9e8e9b77665c404b226 Author: Peter Zijlstra Date: Fri Jul 24 15:06:37 2015 +0200 locking/static_keys: Rework update logic Instead of spreading the branch_default logic all over the place, concentrate it into the one jump_label_type() function. This does mean we need to actually increment/decrement the enabled count _before_ calling the update path, otherwise jump_label_type() will not see the right state. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/jump_label.c | 88 +++++++++++++++++++++++------------------------------ 1 file changed, 38 insertions(+), 50 deletions(-) commit e33886b38cc82a9fc3b2d655dfc7f50467594138 Author: Peter Zijlstra Date: Fri Jul 24 15:03:40 2015 +0200 locking/static_keys: Add static_key_{en,dis}able() helpers Add two helpers to make it easier to treat the refcount as boolean. Suggested-by: Jason Baron Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar include/linux/jump_label.h | 20 ++++++++++++++++++++ kernel/sched/core.c | 6 ++---- 2 files changed, 22 insertions(+), 4 deletions(-) commit 7dcfd915bae51571bcc339d8e3dda027287880e5 Author: Peter Zijlstra Date: Fri Jul 24 15:02:27 2015 +0200 jump_label: Add jump_entry_key() helper Avoid some casting with a helper, also prepares the way for overloading the LSB of jump_entry::key. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/jump_label.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit a1efb01feca597b2abbc89873b40ef8ec6690168 Author: Peter Zijlstra Date: Fri Jul 24 14:55:40 2015 +0200 jump_label, locking/static_keys: Rename JUMP_LABEL_TYPE_* and related helpers to the static_key* pattern Rename the JUMP_LABEL_TYPE_* macros to be JUMP_TYPE_* and move the inline helpers into kernel/jump_label.c, since that's the only place they're ever used. Also rename the helpers where it's all about static keys. This is the second step in removing the naming confusion that has led to a stream of avoidable bugs such as: a833581e372a ("x86, perf: Fix static_key bug in load_mm_cr4()") Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar include/linux/jump_label.h | 25 +++++-------------------- kernel/jump_label.c | 25 ++++++++++++++++--------- 2 files changed, 21 insertions(+), 29 deletions(-) commit 76b235c6bcb16062d663e2ee96db0b69f2e6bc14 Author: Peter Zijlstra Date: Fri Jul 24 14:45:44 2015 +0200 jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} Since we've already stepped away from ENABLE is a JMP and DISABLE is a NOP with the branch_default bits, and are going to make it even worse, rename it to make it all clearer. This way we don't mix multiple levels of logic attributes, but have a plain 'physical' name for what the current instruction patching status of a jump label is. This is a first step in removing the naming confusion that has led to a stream of avoidable bugs such as: a833581e372a ("x86, perf: Fix static_key bug in load_mm_cr4()") Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org [ Beefed up the changelog. ] Signed-off-by: Ingo Molnar arch/arm/kernel/jump_label.c | 2 +- arch/arm64/kernel/jump_label.c | 2 +- arch/mips/kernel/jump_label.c | 2 +- arch/powerpc/kernel/jump_label.c | 2 +- arch/s390/kernel/jump_label.c | 2 +- arch/sparc/kernel/jump_label.c | 2 +- arch/x86/kernel/jump_label.c | 2 +- include/linux/jump_label.h | 4 ++-- kernel/jump_label.c | 18 +++++++++--------- 9 files changed, 18 insertions(+), 18 deletions(-) commit f320ead76a87a9c533f681ecce3bf3241d07c47d Merge: 76695af decd275 Author: Ingo Molnar Date: Mon Aug 3 11:04:00 2015 +0200 Merge branch 'x86/asm' into locking/core Upcoming changes to static keys is interacting/conflicting with the following pending TSC commits in tip:x86/asm: 4ea1636b04db x86/asm/tsc: Rename native_read_tsc() to rdtsc() ... So merge it into the locking tree to have a smoother resolution. Signed-off-by: Ingo Molnar commit 76695af20c015206cffb84b15912be6797d0cca2 Author: Andrey Konovalov Date: Sun Aug 2 17:11:04 2015 +0200 locking, arch: use WRITE_ONCE()/READ_ONCE() in smp_store_release()/smp_load_acquire() Replace ACCESS_ONCE() macro in smp_store_release() and smp_load_acquire() with WRITE_ONCE() and READ_ONCE() on x86, arm, arm64, ia64, metag, mips, powerpc, s390, sparc and asm-generic since ACCESS_ONCE() does not work reliably on non-scalar types. WRITE_ONCE() and READ_ONCE() were introduced in the following commits: 230fa253df63 ("kernel: Provide READ_ONCE and ASSIGN_ONCE") 43239cbe79fc ("kernel: Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val)") Signed-off-by: Andrey Konovalov Signed-off-by: Peter Zijlstra (Intel) Acked-by: Davidlohr Bueso Acked-by: Michael Ellerman (powerpc) Acked-by: Ralf Baechle Cc: Alexander Duyck Cc: Andre Przywara Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Catalin Marinas Cc: Christian Borntraeger Cc: David S. Miller Cc: Davidlohr Bueso Cc: Dmitry Vyukov Cc: Fenghua Yu Cc: H. Peter Anvin Cc: Heiko Carstens Cc: James Hogan Cc: Linus Torvalds Cc: Martin Schwidefsky Cc: Paul E. McKenney Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Russell King Cc: Thomas Gleixner Cc: Tony Luck Cc: Will Deacon Cc: linux-arch@vger.kernel.org Link: http://lkml.kernel.org/r/1438528264-714-1-git-send-email-andreyknvl@google.com Signed-off-by: Ingo Molnar arch/arm/include/asm/barrier.h | 4 ++-- arch/arm64/include/asm/barrier.h | 4 ++-- arch/ia64/include/asm/barrier.h | 4 ++-- arch/metag/include/asm/barrier.h | 4 ++-- arch/mips/include/asm/barrier.h | 4 ++-- arch/powerpc/include/asm/barrier.h | 4 ++-- arch/s390/include/asm/barrier.h | 4 ++-- arch/sparc/include/asm/barrier_64.h | 4 ++-- arch/x86/include/asm/barrier.h | 8 ++++---- include/asm-generic/barrier.h | 4 ++-- 10 files changed, 22 insertions(+), 22 deletions(-) commit 75d2270280686bff21b9ba66c7f3dd379c887981 Author: Waiman Long Date: Sat Jul 11 16:36:52 2015 -0400 locking/pvqspinlock: Only kick CPU at unlock time For an over-committed guest with more vCPUs than physical CPUs available, it is possible that a vCPU may be kicked twice before getting the lock - once before it becomes queue head and once again before it gets the lock. All these CPU kicking and halting (VMEXIT) can be expensive and slow down system performance. This patch adds a new vCPU state (vcpu_hashed) which enables the code to delay CPU kicking until at unlock time. Once this state is set, the new lock holder will set _Q_SLOW_VAL and fill in the hash table on behalf of the halted queue head vCPU. The original vcpu_halted state will be used by pv_wait_node() only to differentiate other queue nodes from the qeue head. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton 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/1436647018-49734-2-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock.c | 6 ++-- kernel/locking/qspinlock_paravirt.h | 66 +++++++++++++++++++++++++++---------- 2 files changed, 51 insertions(+), 21 deletions(-) commit ffffeaf318bd8da036eb8eb784b025a9f829201b Author: Waiman Long Date: Thu Jul 9 12:32:22 2015 -0400 locking/qrwlock: Reduce reader/writer to reader lock transfer latency Currently, a reader will check first to make sure that the writer mode byte is cleared before incrementing the reader count. That waiting is not really necessary. It increases the latency in the reader/writer to reader transition and reduces readers performance. This patch eliminates that waiting. It also has the side effect of reducing the chance of writer lock stealing and improving the fairness of the lock. Using a locking microbenchmark, a 10-threads 5M locking loop of mostly readers (RW ratio = 10,000:1) has the following performance numbers in a Haswell-EX box: Kernel Locking Rate (Kops/s) ------ --------------------- 4.1.1 15,063,081 4.1.1+patch 17,241,552 (+14.4%) Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Arnd Bergmann Cc: Douglas Hatch Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: Will Deacon Link: http://lkml.kernel.org/r/1436459543-29126-2-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar kernel/locking/qrwlock.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 3b3fdf10a8add87ef0050138d51bfee9ab4983df Author: Will Deacon Date: Mon Jul 13 16:58:30 2015 +0100 locking/pvqspinlock: Order pv_unhash() after cmpxchg() on unlock slowpath When we unlock in __pv_queued_spin_unlock(), a failed cmpxchg() on the lock value indicates that we need to take the slow-path and unhash the corresponding node blocked on the lock. Since a failed cmpxchg() does not provide any memory-ordering guarantees, it is possible that the node data could be read before the cmpxchg() on weakly-ordered architectures and therefore return a stale value, leading to hash corruption and/or a BUG(). This patch adds an smb_rmb() following the failed cmpxchg operation, so that the unhashing is ordered after the lock has been checked. Reported-by: Peter Zijlstra Signed-off-by: Will Deacon [ Added more comments] Signed-off-by: Peter Zijlstra (Intel) Acked-by: Waiman Long Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Paul McKenney Cc: Steve Capper Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150713155830.GL2632@arm.com Signed-off-by: Ingo Molnar kernel/locking/qspinlock_paravirt.h | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit ed2de9f74ecbbf3063d29b2334e7b455d7f35189 Author: Will Deacon Date: Thu Jul 16 16:10:06 2015 +0100 locking/Documentation: Clarify failed cmpxchg() memory ordering semantics A failed cmpxchg does not provide any memory ordering guarantees, a property that is used to optimise the cmpxchg implementations on Alpha, PowerPC and arm64. This patch updates atomic_ops.txt and memory-barriers.txt to reflect this. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Douglas Hatch Cc: H. Peter Anvin Cc: Jonathan Corbet Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: Waiman Long Link: http://lkml.kernel.org/r/20150716151006.GH26390@arm.com Signed-off-by: Ingo Molnar Documentation/atomic_ops.txt | 4 +++- Documentation/memory-barriers.txt | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) commit 0b792bf519e68108d577fcec815ab50913787012 Author: Peter Zijlstra Date: Tue Jul 21 12:13:43 2015 +0200 locking: Clean up pvqspinlock warning - Rename the on-stack variable to match the datastructure variable, - place the cmpxchg back under the comment that explains it, - clean up the WARN() statement to avoid superfluous conditionals and line-breaks. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Waiman Long Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar kernel/locking/qspinlock_paravirt.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 29b5357d25ba1528531ef9532b5743a32fdf8cd2 Author: Rabin Vincent Date: Fri Jul 31 14:48:57 2015 +0200 gpio: etraxfs: add interrupt support On ETRAX FS, all pins on the first port (and only the first port) have interrupt support. On ARTPEC-3, all pins on all ports have interrupt support. However, there are only eight interrupts. Each of the interrupts is associated with a group of pins and for each interrupt the one pin from the group which will trigger it can be selected. Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 1 + drivers/gpio/gpio-etraxfs.c | 259 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 253 insertions(+), 7 deletions(-) commit 3a7651e683701dbb4c7d02e20661c923fa4c6901 Merge: 5d285a7 cba77f0 74d3329 Author: Ingo Molnar Date: Mon Aug 3 10:52:25 2015 +0200 Merge branch 'locking/urgent', tag 'v4.2-rc5' into locking/core, to pick up fixes before applying new changes Signed-off-by: Ingo Molnar commit 8b67a1f0ad1f260f1a4032d5f7b032ac113bfa7d Author: Rabin Vincent Date: Fri Jul 31 14:48:56 2015 +0200 gpio: don't override irq_*_resources() callbacks If the driver has specified its own irq_{request/release}_resources() functions, don't override them. The gpio-etraxfs driver will use this. Signed-off-by: Rabin Vincent [Added a small comment blurb] Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit 11580297334c45c5aba47021aaa65136ad80d6ee Author: Hui Wang Date: Mon Aug 3 11:03:49 2015 +0800 ALSA: hda - remove no physical connection pins from pin_quirk table To cleanup the pin_quirk table: - rewrite the pin_config_match(), comparing all pins on the machine with the corresponding pins in the quirk table. - remove all 0x4xxxxxxx pin configurations from pin_quirk table - after removing the 0x4xxxxxxx pin configurations, some pin tables are exactly same, so removing the redudant pin tables. Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai sound/pci/hda/hda_auto_parser.c | 27 +++- sound/pci/hda/patch_realtek.c | 299 ++++------------------------------------ 2 files changed, 48 insertions(+), 278 deletions(-) commit ca67f10f27b6aace4a87713f038577994ec578af Author: Masahiro Yamada Date: Thu Jul 30 17:27:44 2015 +0900 pinctrl: join dev_dbg strings into a single line These are user-visible strings, so can exceed 80 columns. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/pinconf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 199071f108f5641badc2a6970e1fa7ec469d5d12 Author: Gerald Schaefer Date: Fri May 8 17:40:43 2015 +0200 s390/mm: make arch_add_memory() NUMA aware With NUMA support for s390, arch_add_memory() needs to respect the nid parameter. Signed-off-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/mm/init.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) commit ecf46abdd32a35fcd7dfeef72600a065425532b3 Author: Gerald Schaefer Date: Fri May 29 15:34:51 2015 +0200 s390/mm: enable gup code for NUMA Force get_user_page() to take the slow path for NUMA migration pages. Signed-off-by: Gerald Schaefer Signed-off-by: Martin Schwidefsky arch/s390/mm/gup.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit b54565b86824ecc9f0ad5d0ee69696f38edc50fd Author: Martin Schwidefsky Date: Tue Sep 23 14:01:34 2014 +0200 s390/mm: add NUMA balancing primitives Define pte_protnone and pmd_protnone for NUMA memory migration. Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pgtable.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 888d5e9804bb401f3531b700cc93da0bdf8496bf Author: Christian Borntraeger Date: Thu Jul 9 17:56:13 2015 +0200 KVM: s390: use pid of cpu thread for sampling tagging Right now we use the address of the sie control block as tag for the sampling data. This is hard to get for users. Let's just use the PID of the cpu thread to mark the hardware samples. Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky arch/s390/kernel/entry.S | 2 +- arch/s390/kernel/perf_cpum_sf.c | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) commit d0164ee20d98847d3c777a0ae90e678e7ac1e416 Author: Hendrik Brueckner Date: Mon Jun 29 16:43:06 2015 +0200 s390/kernel: remove save_fpu_regs() parameter and use __LC_CURRENT instead All calls to save_fpu_regs() specify the fpu structure of the current task pointer as parameter. The task pointer of the current task can also be retrieved from the CPU lowcore directly. Remove the parameter definition, load the __LC_CURRENT task pointer from the CPU lowcore, and rebase the FPU structure onto the task structure. Apply the same approach for the load_fpu_regs() function. Reviewed-by: Heiko Carstens Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/fpu-internal.h | 2 +- arch/s390/include/asm/switch_to.h | 2 +- arch/s390/kernel/asm-offsets.c | 8 +++----- arch/s390/kernel/compat_signal.c | 6 +++--- arch/s390/kernel/entry.S | 36 ++++++++++++++++++------------------ arch/s390/kernel/process.c | 4 ++-- arch/s390/kernel/ptrace.c | 12 ++++++------ arch/s390/kernel/signal.c | 6 +++--- arch/s390/kernel/traps.c | 6 +++--- arch/s390/kvm/kvm-s390.c | 10 +++++----- 10 files changed, 45 insertions(+), 47 deletions(-) commit 199dc6ed5179251fa6158a461499c24bdd99c836 Author: NeilBrown Date: Mon Aug 3 13:11:47 2015 +1000 md/raid0: update queue parameter in a safer location. When a (e.g.) RAID5 array is reshaped to RAID0, the updating of queue parameters (e.g. max number of sectors per bio) is done in the wrong place. It should be part of ->run, but it is actually part of ->takeover. This means it happens before level_store() calls: blk_set_stacking_limits(&mddev->queue->limits); and so it ineffective. This can lead to errors from underlying devices. So move all the relevant settings out of create_stripe_zones() and into raid0_run(). As this can lead to a bug-on it is suitable for any -stable kernel which supports reshape to RAID0. So 2.6.35 or later. As the bug has been present for five years there is no urgency, so no need to rush into -stable. Fixes: 9af204cf720c ("md: Add support for Raid5->Raid0 and Raid10->Raid0 takeover") Cc: stable@vger.kernel.org (v2.6.35+ - please delay until after -final release). Reported-by: Yi Zhang Signed-off-by: NeilBrown drivers/md/raid0.c | 75 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 36 deletions(-) commit 25eafe1a813681849ad3fb9effdfdce3e1b4335a Author: Benjamin Randazzo Date: Sat Jul 25 16:36:50 2015 +0200 md: simplify get_bitmap_file now that "file" is zeroed. There is no point assigning '\0' to file->pathname[0] as file is now zeroed out, so remove that branch and simplify the code. [Original patch combined this with the change to use kzalloc. I split the two so that the change to kzalloc is easier to backport. - neilb] Signed-off-by: Benjamin Randazzo Signed-off-by: NeilBrown drivers/md/md.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 109e2381749c1cfd94a0d22b2b54142539024973 Author: Roland Dreier Date: Thu Jul 23 14:53:32 2015 -0700 target: Drop iSCSI use of mutex around max_cmd_sn increment In a performance profile, taking a mutex in iscsit_increment_maxcmdsn() shows up very high. However taking a mutex around "sess->max_cmd_sn += 1" seems pretty silly: we're not serializing against other contexts in any useful way. I did a quick audit and there don't appear to be any other places that use max_cmd_sn within the mutex more than once, so this lock can't be providing any useful serialization. (Get correct values for logging - fix whitespace damage) Signed-off-by: Roland Dreier Signed-off-by: Spencer Baugh Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 18 +++++++++--------- drivers/target/iscsi/iscsi_target_configfs.c | 6 ++++-- drivers/target/iscsi/iscsi_target_device.c | 7 ++----- drivers/target/iscsi/iscsi_target_login.c | 2 +- drivers/target/iscsi/iscsi_target_nego.c | 9 +++------ drivers/target/iscsi/iscsi_target_tmr.c | 2 +- drivers/target/iscsi/iscsi_target_util.c | 7 ++++--- include/target/iscsi/iscsi_target_core.h | 2 +- 8 files changed, 25 insertions(+), 28 deletions(-) commit 24c7d6c7316c72301bf8ecfc1189fd476176fd75 Author: Sebastian Herbszt Date: Mon Aug 3 00:21:50 2015 +0200 qla2xxx: Update tcm_qla2xxx module description to 24xx+ Pre 24xx HBAs are not supported by tcm_qla2xxx, so go ahead and reflect this for informational purposes. Also fix QLogic spelling. Signed-off-by: Sebastian Herbszt Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/Kconfig | 4 ++-- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit a622789aeebdeaa52d68bbc3930edbc3e820b54a Author: Chanwoo Choi Date: Fri Jul 24 13:17:25 2015 +0900 PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2 This patch updates the documentation to include the information of PPMUv2. The PPMUv2 is used for Exynos5433 and Exynos7420 to monitor the performance of each IP in Exynos SoC. Cc: MyungJoo Ham Cc: Kyungmin Park Signed-off-by: Chanwoo Choi .../bindings/devfreq/event/exynos-ppmu.txt | 42 ++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit 3d87b02281a2ec977108ad90ce502e721b447301 Author: Chanwoo Choi Date: Fri Jul 24 13:17:24 2015 +0900 PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433 This patch adds the support for PPMU (Platform Performance Monitoring Unit) version 2.0 for Exynos5433 SoC. Exynos5433 SoC must need PPMUv2 which is quite different from PPMUv1.1. The exynos-ppmu.c driver supports both PPMUv1.1 and PPMUv2. Cc: MyungJoo Ham Cc: Kyungmin Park Signed-off-by: Chanwoo Choi drivers/devfreq/event/exynos-ppmu.c | 170 ++++++++++++++++++++++++++++++++++-- drivers/devfreq/event/exynos-ppmu.h | 70 +++++++++++++++ 2 files changed, 233 insertions(+), 7 deletions(-) commit a6415cddc4e6e1675a5648e7785aef716980c90c Author: David Disseldorp Date: Sat Aug 1 00:10:12 2015 -0700 iscsi-target: Add tpg_enabled_sendtargets for disabled discovery This patch adds a new tpg_enabled_sendtargets configfs attribute to allow in-band sendtargets discovery information to include target-portal-groups (TPGs) in !TPG_STATE_ACTIVE state. This functionality is useful for clustered iSCSI targets, where TPGTs handled on remote cluster nodes should be advertised in the SendTargets response. By default, this new attribute retains the default behaviour of existing code which to ignore portal-groups in !TPG_STATE_ACTIVE state. Signed-off-by: David Disseldorp Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 10 +++++----- drivers/target/iscsi/iscsi_target_configfs.c | 6 ++++++ drivers/target/iscsi/iscsi_target_tpg.c | 19 +++++++++++++++++++ drivers/target/iscsi/iscsi_target_tpg.h | 1 + include/target/iscsi/iscsi_target_core.h | 3 +++ 5 files changed, 34 insertions(+), 5 deletions(-) commit 9b0a18626288ecd62ad09a9c36a5ba318ea30087 Author: Javier Martinez Canillas Date: Mon Jul 13 08:58:51 2015 +0200 PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding The exynos-ppmu driver is only a clock consumer and not a clock provider but its Device Tree binding listed #clock-cells as an optional property. Signed-off-by: Javier Martinez Canillas Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham Documentation/devicetree/bindings/devfreq/event/exynos-ppmu.txt | 1 - 1 file changed, 1 deletion(-) commit 054531e7a5cb195140bead068b51cc6147c5c8bf Author: Sergei Shtylyov Date: Fri Jul 31 00:55:23 2015 +0300 ARM: shmobile: silk: add eMMC DT support Define the SILK board dependent part of the MMCIF device node (the board has eMMC chip) along with the necessary voltage regulator (note that the Vcc/Vccq regulator is dummy -- it's required by the MMCIF driver but doesn't actually exist on the board). 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 | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 6cdf6ba19c8b9a386ef882206b29d97a49271317 Author: Sergei Shtylyov Date: Fri Jul 31 00:54:05 2015 +0300 ARM: shmobile: r8a7794: add MMCIF DT support Define the generic R8A7794 part of the MMCIF0 device node. Based on the orginal patch by Shinobu Uehara . Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit ba7591d8b28bd16a2eface5d009ab0b60c7629a4 Author: Daniel Borkmann Date: Sat Aug 1 00:46:29 2015 +0200 ebpf: add skb->hash to offset map for usage in {cls, act}_bpf or filters Add skb->hash to the __sk_buff offset map, so it can be accessed from an eBPF program. We currently already do this for classic BPF filters, but not yet on eBPF, it might be useful as a demuxer in combination with helpers like bpf_clone_redirect(), toy example: __section("cls-lb") int ingress_main(struct __sk_buff *skb) { unsigned int which = 3 + (skb->hash & 7); /* bpf_skb_store_bytes(skb, ...); */ /* bpf_l{3,4}_csum_replace(skb, ...); */ bpf_clone_redirect(skb, which, 0); return -1; } I was thinking whether to add skb_get_hash(), but then concluded the raw skb->hash seems fine in this case: we can directly access the hash w/o extra eBPF helper function call, it's filled out by many NICs on ingress, and in case the entropy level would not be sufficient, people can still implement their own specific sw fallback hash mix anyway. 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 | 7 +++++++ 2 files changed, 8 insertions(+) commit c46309c7f8e7923a1311fbdf6884a59a5f9954cf Author: Yuval Mintz Date: Sun Aug 2 12:42:41 2015 +0300 bnx2x: Correct logic for pvid configuration. Commit 05cc5a39ddb7 ("bnx2x: add vlan filtering offload") has introduced an incorrect logic for checking whether pvid should be configured for a vf, causing the hypervisor driver to send unneeded ramrods for all of the vfs each time a pvid has changed. Reported-by: Dan Carpenter Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b41e63cf83affa50a6141eba52be1fbd05f29b21 Author: Hartmut Knaack Date: Tue Jul 28 00:49:22 2015 +0200 iio:accel:stk8312: check for invalid value Revision 1.2 of the datasheet recommends on page 22 to only write non-zero values read from OTP register 0x70 into AFECTRL register. Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 2 ++ 1 file changed, 2 insertions(+) commit 946448e08e2f693ff21418d92a598b7aa296816d Author: Hartmut Knaack Date: Tue Jul 28 00:49:21 2015 +0200 iio:accel:stk8312: add triggered buffer dependency Add the still missing dependencies for triggered buffer support. Fixes: 95c12bba51c37 ("iio: accel: Add buffer mode for Sensortek STK8312") Signed-off-by: Hartmut Knaack Reviewed-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit 546384c968383b512ba50f77c76ae7bdfa321f31 Author: Hartmut Knaack Date: Tue Jul 28 00:39:02 2015 +0200 iio:adc:berlin2-adc: use channel-array size directly Drop the otherwise unused definition of the channel-array size and use it directly in _probe - makes it a bit more obvious. Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron drivers/iio/adc/berlin2-adc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 609e9d88f277bfe83392595745cc3976d42125b2 Author: Hartmut Knaack Date: Tue Jul 28 00:39:01 2015 +0200 iio:adc:berlin2-adc: use short operator format Use augmented assignment to subtract the offset for negative temperature values. Specify the amount of private data to be allocated through devm_iio_device_alloc() with sizeof(*priv), as it is shorter and common practice in IIO. Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron drivers/iio/adc/berlin2-adc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 688febbd168c52ab54ad29c210aceecb72386398 Author: Hartmut Knaack Date: Tue Jul 28 00:39:00 2015 +0200 iio:adc:berlin2-adc: constify iio_chan_spec Mark berlin2_adc_channels array as constant. Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron drivers/iio/adc/berlin2-adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 19d566420b8c5a26d4f9666ef665e088173d3df3 Author: Hartmut Knaack Date: Tue Jul 28 00:38:58 2015 +0200 iio:adc:berlin2-adc: pass up real error code Pass up the real error code returned by platform_get_irq_byname(). Signed-off-by: Hartmut Knaack Acked-by: Antoine Tenart Signed-off-by: Jonathan Cameron drivers/iio/adc/berlin2-adc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5e37c523921480093323c06529ab854f0635c59d Author: Joo Aun Saw Date: Tue Jul 28 11:46:13 2015 +1000 tools: iio: iio_utils: Make calc_digits static Signed-off-by: Joo Aun Saw Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 280f09256ab6f6180132da193b9f2e0b2fa61c51 Author: Joo Aun Saw Date: Wed Jul 29 01:12:24 2015 +1000 tools: iio: iio_utils: remove unnecessary define guard Signed-off-by: Joo Aun Saw Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 5 ----- 1 file changed, 5 deletions(-) commit e7231491ce6ae2053569166f60835a5594b3c0af Author: Irina Tirdea Date: Fri Jul 24 16:28:06 2015 +0300 tools: iio: print error message when buffer enable fails Running generic_buffer without enabling any channel of the sensor will fail without printing any error message. Add an error message that indicates buffer enable failed. Signed-off-by: Irina Tirdea Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit ae067cb68d2ef42d4a84eeaf07411fe2936f48c4 Author: Irina Tirdea Date: Fri Jul 24 16:28:05 2015 +0300 tools: iio: fix mask for 32 bit sensor data When the the sensor data uses 32 bits out of 32, generic_buffer prints the value 0 for all data read. In this case, the mask is shifted 32 bits, which is beyond the size of an integer. This will lead to the mask always being 0. Before printing, the mask is applied to the raw value, thus generating a final value of 0. Fix the mask by shifting a 64 bit value instead of an integer. Signed-off-by: Irina Tirdea Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2854c098e222a706b91cc83b4a91dbfd97212765 Author: Cristina Opriceana Date: Fri Jul 24 16:26:09 2015 +0300 include: linux: iio: Add missing kernel doc field Fix kernel doc for the iio_dev_attr structure by adding its missing field. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron include/linux/iio/sysfs.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e52e95199d0c1aa8a06dbbc07b30562fded8b298 Author: Cristina Opriceana Date: Fri Jul 24 16:23:43 2015 +0300 include: linux: iio: Fix function parameter name in kernel doc Fix buffer name from kernel doc according to the function parameter. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron include/linux/iio/consumer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a316c01d59e9d45ede1083a81ae82eb15ae7eab3 Author: Cristina Opriceana Date: Fri Jul 24 16:21:50 2015 +0300 iio: event: Add missing fields in kernel docs Fix kernel docs warnings by adding the missing fields, each with its associated description. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/iio/industrialio-event.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 0123635a77f72e0787f6f8b3ac796a40f796fcc4 Author: Cristina Opriceana Date: Fri Jul 24 16:18:09 2015 +0300 iio: buffer: Fix kernel docs warnings Fix kernel docs for structures and functions in order to remove some warnings when the documentation gets generated. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 2498dcf6e09b3ecce2b32ed6434bd02fc4219d5b Author: Cristina Opriceana Date: Fri Jul 24 16:16:19 2015 +0300 iio: core: Add function params for kernel docs This patch adds the missing fields in kernel docs to remove some warnings that appear when the IIO Documentation DocBook is generated. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/iio/industrialio-core.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit 5ab744d0d6e7fc90572250239ac796cd79b0ed77 Author: Irina Tirdea Date: Thu Jul 23 20:15:02 2015 +0300 iio: magn: bmc150_magn: do not set power state twice when setting trigger state When setting the trigger state, the device power state is set through buffer preenable and postdisable hooks. There is no need to also set it in the trigger set state call. Remove duplicate set power state from the trigger set state call. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 019cc46d0a5c559bca6c7e949cc277f529a51296 Author: Irina Tirdea Date: Thu Jul 23 20:15:01 2015 +0300 iio: magn: bmc150_magn: add locking comment for runtime resume Runtime resume function is called with the data->mutex lock held. Add a comment to indicate this. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 3 +++ 1 file changed, 3 insertions(+) commit 1506f3cd0b8169773188a080d367c2ed019373a3 Author: Hartmut Knaack Date: Fri Jul 17 10:52:31 2015 +0200 iio:magnetometer:bmc150_magn: use descriptive name for mask Define and use a descriptive name for the repetition registers data mask, instead of a 'magic' value. Signed-off-by: Hartmut Knaack Acked-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 3021678a94cdb942bea4e634a37e91fe341b27b0 Author: Hartmut Knaack Date: Fri Jul 17 10:52:30 2015 +0200 iio:magnetometer:bmc150_magn: expand mutex in trigger_handler Keep the mutex locked, until the content of data->buffer has been pushed out. Signed-off-by: Hartmut Knaack Acked-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9ba1ab4d19a79b4bef4baf21f559f9dd8ba33f9 Author: Crt Mori Date: Mon Jul 20 21:38:27 2015 +0200 iio: mlx90614: Define magic numbers Translates the magic constant numbers to named macros and add some additional comments about their meaning. The diff is made towards togreg branch as that branch seems to have the most recent updates of mlx90614 driver (many are yet to be merged). Signed-off-by: Crt Mori Acked-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/temperature/mlx90614.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit 9e35d366a1e8bd710fbebcf9af90d3fafbc55e36 Author: Teodora Baluta Date: Fri Jul 31 17:27:24 2015 +0300 iio: mmc35240: minor change to improve code readibility This patch changes two variables to arrays to improve code readibility. Signed-off-by: Teodora Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 119c4fce683a22a2fdbe343e00bc1a20cc1dd11c Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:42 2015 +0200 iio: Export OF module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Jonathan Cameron drivers/iio/accel/mma8452.c | 1 + drivers/iio/light/cm32181.c | 1 + drivers/iio/light/cm3232.c | 1 + drivers/iio/light/cm36651.c | 1 + drivers/iio/light/gp2ap020a00f.c | 1 + 5 files changed, 5 insertions(+) commit 58e446fcc69436988fdab4a81981f44193f064f7 Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:28 2015 +0200 iio: Export I2C module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 1 + drivers/iio/accel/stk8ba50.c | 1 + drivers/iio/light/stk3310.c | 1 + 3 files changed, 3 insertions(+) commit 1234e3fda9aa24b2d650bbcd9ef09d5f6a12dc86 Author: Russell King Date: Fri Jul 24 09:10:55 2015 +0100 ARM: reduce visibility of dmac_* functions The dmac_* functions are private to the ARM DMA API implementation, and should not be used by drivers. In order to discourage their use, remove their prototypes and macros from asm/*.h. We have to leave dmac_flush_range() behind as Exynos and MSM IOMMU code use these; once these sites are fixed, this can be moved also. Signed-off-by: Russell King arch/arm/include/asm/cacheflush.h | 4 ---- arch/arm/include/asm/glue-cache.h | 2 -- arch/arm/mm/dma-mapping.c | 1 + arch/arm/mm/dma.h | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) commit d74892c5b291c0010295d26d6b1e11cd70451722 Author: Luiz Capitulino Date: Wed Jul 29 15:14:17 2015 -0400 clockevents: Drop redundant cpumask check in tick_check_new_device() The same check is performed by tick_check_percpu(). Signed-off-by: Luiz Capitulino Link: http://lkml.kernel.org/r/20150729151417.069d1bb0@redhat.com Signed-off-by: Thomas Gleixner kernel/time/tick-common.c | 3 --- 1 file changed, 3 deletions(-) commit 60018d027d792bdfe9d98c83a470fa2cdd6a0e1a Author: Hans de Goede Date: Fri Jul 31 17:41:52 2015 +0200 ARM: dts: sun7i: Change cubietruck wifi enable pin to use mmc-pwrseq The wifi-enable pin of the ap6210 module is not really a regulator, switch to the mmc-pwrseq framework for controlling it. This more accurately reflects how the hardware actually works. Signed-off-by: Hans de Goede [maxime: Changed the name of the pinctrl node and re-ordered it] Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) commit 5510b3c2a173921374ec847848fb20b98e1c698a Merge: 17f901e 7c764ce Author: David S. Miller Date: Fri Jul 31 23:52:20 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: arch/s390/net/bpf_jit_comp.c drivers/net/ethernet/ti/netcp_ethss.c net/bridge/br_multicast.c net/ipv4/ip_fragment.c All four conflicts were cases of simple overlapping changes. Signed-off-by: David S. Miller commit 36f024ed8fc96f50f01d171097237ebe51dadee7 Author: Thomas Gleixner Date: Fri Jul 31 22:12:29 2015 +0200 PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Duc Dang drivers/pci/host/pci-xgene-msi.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit f70229e2a342714c7431547676da2518a0a22b55 Author: Thomas Gleixner Date: Fri Jul 31 22:09:38 2015 +0200 unicore32/irq: Prepare puv3_gpio_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Guan Xuetao arch/unicore32/kernel/irq.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f5dbdd429f044b9658e27e76a0e896a99f03170f Author: Thomas Gleixner Date: Fri Jul 31 22:07:40 2015 +0200 tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Chris Metcalf arch/tile/kernel/pci_gx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 625b86ad26ad35200adc34094c04e04672384735 Author: Thomas Gleixner Date: Fri Jul 31 21:56:10 2015 +0200 m68k/irq: Prepare irq handlers for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Geert Uytterhoeven Cc: linux-m68k@lists.linux-m68k.org arch/m68k/coldfire/intc-5272.c | 4 +++- arch/m68k/mac/oss.c | 6 ++++-- arch/m68k/mac/psc.c | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) commit 9d8c94e48a5faafae1e52bec18b8d99211b2ccd4 Author: Viresh Kumar Date: Fri Jul 31 14:08:31 2015 +0530 drivers: target: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. Signed-off-by: Viresh Kumar Signed-off-by: Nicholas Bellinger drivers/target/tcm_fc/tfc_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17f901e8915cb922c2ca710835ef34f166f53ee9 Merge: db316d5 b567741 Author: David S. Miller Date: Fri Jul 31 17:07:12 2015 -0700 Merge branch 'ipv6-auto-flow-labels' Tom Herbert says: ==================== ipv6: Turn on auto IPv6 flow labels by default BSD (MacOS) has already turned on flow labels by default and this does not seem to be causing any problems in the Internet. Let's go ahead and turn them on by default. We'll continue to monitor for any devices start choking on them. Flow labels are important since they are the desired solution for network devices to perform ECMP and RSS (RFC6437 and RFC6438). Traditionally, devices perform a 5-tuple hash on packets that includes port numbers. For the most part, these devices can only compute 5-tuple hashes for TCP and UDP. This severely limits our ability to get good network load balancing for other protocols (IPIP, GRE,ESP, etc.), and hence we are limited in using other protocols. Unfortunately, this method is accepted as the de facto standard to the extent that there are several proposals to encapsulate protocols in UDP _just_ for the purposes for getting ECMP to work. With hosts generating flow labels and devices taking them as input into ECMP (several already do), we can start to fix this fundamental problem. This patch set: - Changes IPV6_FLOWINFO sockopt to be opt-out of flow labels for connections rather than opt-in - Disable flow label state ranges sysctl by default - Enable auto flow labels sysctl by default v2: - Added functions to create an skb->hash based on flowi4 and flowi6. These are called in output path when creating a packet - Call skb_get_hash_flowi6 in ip6_make_flowlabel - Implement the auto_flowlabels sysctl as a mode for auto flowlabels. There are four modes which correspond to flow labels being enabled and whether socket option can be used to opt in or opt out of using them ==================== Signed-off-by: David S. Miller commit b56774163f994efce3f5603f35aa4e677c3e725a Author: Tom Herbert Date: Fri Jul 31 16:52:14 2015 -0700 ipv6: Enable auto flow labels by default Initialize auto_flowlabels to one. This enables automatic flow labels, individual socket may disable them using the IPV6_AUTOFLOWLABEL socket option. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 2 +- include/net/ipv6.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit be26849bfb6fcee4123c687fc39bd6da1b3be328 Author: Tom Herbert Date: Fri Jul 31 16:52:13 2015 -0700 ipv6: Disable flowlabel state ranges by default Per RFC6437 stateful flow labels (e.g. labels set by flow label manager) cannot "disturb" nodes taking part in stateless flow labels. While the ranges only reduce the flow label entropy by one bit, it is conceivable that this might bias the algorithm on some routers causing a load imbalance. For best results on the Internet we really need the full 20 bits. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/ipv6/af_inet6.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 42240901f7c438636715b9cb6ed93f4441ffc091 Author: Tom Herbert Date: Fri Jul 31 16:52:12 2015 -0700 ipv6: Implement different admin modes for automatic flow labels Change the meaning of net.ipv6.auto_flowlabels to provide a mode for automatic flow labels generation. There are four modes: 0: flow labels are disabled 1: flow labels are enabled, sockets can opt-out 2: flow labels are allowed, sockets can opt-in 3: flow labels are enabled and enforced, no opt-out for sockets np->autoflowlabel is initialized according to the sysctl value. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 20 ++++++++---- include/net/ipv6.h | 59 ++++++++++++++++++++++++++-------- net/ipv6/af_inet6.c | 3 +- net/ipv6/ip6_gre.c | 4 +-- net/ipv6/ip6_tunnel.c | 2 +- net/ipv6/sysctl_net_ipv6.c | 7 +++- 6 files changed, 70 insertions(+), 25 deletions(-) commit 67800f9b1f4eb5bbefc32e3f5044097354bc85b3 Author: Tom Herbert Date: Fri Jul 31 16:52:11 2015 -0700 ipv6: Call skb_get_hash_flowi6 to get skb->hash in ip6_make_flowlabel We can't call skb_get_hash here since the packet is not complete to do flow_dissector. Create hash based on flowi6 instead. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/ipv6.h | 5 +++-- net/ipv6/ip6_gre.c | 5 +++-- net/ipv6/ip6_output.c | 4 ++-- net/ipv6/ip6_tunnel.c | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) commit f70ea018da0631e10c26a02f5a82d626ffef5bd7 Author: Tom Herbert Date: Fri Jul 31 16:52:10 2015 -0700 net: Add functions to get skb->hash based on flow structures Add skb_get_hash_flowi6 and skb_get_hash_flowi4 which derive an sk_buff hash from flowi6 and flowi4 structures respectively. These functions can be called when creating a packet in the output path where the new sk_buff does not yet contain a fully formed packet that is parsable by flow dissector. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/linux/skbuff.h | 21 +++++++++++++++++ net/core/flow_dissector.c | 58 +++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 75 insertions(+), 4 deletions(-) commit 4e0bec9e833a6884dc2e242e45e0ebd99f46624e Author: Radivoje Jovanovic Date: Fri Jul 31 08:07:36 2015 -0700 powercap / RAPL: Add support for Broadwell-H This patch enabled RAPL to support Broadwell-H Signed-off-by: Radivoje Jovanovic Signed-off-by: Rafael J. Wysocki drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+) commit 2cac1f700c2c6baf836f24c778a73a847a48f484 Author: Radivoje Jovanovic Date: Fri Jul 31 08:07:10 2015 -0700 powercap / RAPL: Add support for Skylake H/S This patche enabled RAPL to support Intel Skylake H/S Signed-off-by: Radivoje Jovanovic Signed-off-by: Rafael J. Wysocki drivers/powercap/intel_rapl.c | 1 + 1 file changed, 1 insertion(+) commit 948fa942dc6bb4000bdf94901e99570b7636ed7c Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:47 2015 +0200 staging: rtl8192e: probe: iounmap mmio when probe fails In case of probe failure, io memory was not released properly. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit cb7cca3ae8f152151104252298d2e1e91db6df92 Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:46 2015 +0200 staging: rtl8192e: Drop large switch in rtl92e_config_rf The same steps were made for each RF path independently. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 69 +++------------------- 1 file changed, 9 insertions(+), 60 deletions(-) commit 976a06cc89e817e94b0d87cf55bb46134c494060 Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:45 2015 +0200 staging: rtl8192e: Fix IW_IOCTL macro Macro caused checkpatch complaints - replace [] braces with () and use [] braces as array initializers. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 68 +++++++++++++++--------------- 1 file changed, 34 insertions(+), 34 deletions(-) commit 90959c3dfcb66cd8467ba0921469b62e42d7879c Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:44 2015 +0200 staging: rtl8192e: Remove phy_RF8256_Config_ParaFile Merge function into rtl92e_config_rf as having them separated gives no benefit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 72f1f75257de812137ee5110822370fadc4927f6 Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:43 2015 +0200 staging: rtl8192e: Simplify rtl92e_set_bandwidth Move phy version check outside of the loop. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 53 ++++++++-------------- 1 file changed, 18 insertions(+), 35 deletions(-) commit 99d4f5d236eb6a1eaaddb7179a251f385f7e4c2b Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:42 2015 +0200 staging: rtl8192e: Simplify rtl92e_is_halfn_supported_by_ap Function should return struct member - no extra logic is needed. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 2937a5d272031eb3e189d4383587bc9f62621c43 Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:41 2015 +0200 staging: rtl8192e: MgntActSet_RF_State: remove ProtectOrNot parameter It is set at the very beginning of function to a constant value. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 8 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 60 +++++++++++--------------- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 3 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 3 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 4 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 7 ++- 6 files changed, 36 insertions(+), 49 deletions(-) commit f2d4d4e1e203a242e98ee4038db0af37d5ac107b Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:40 2015 +0200 staging: rtl8192e: Remove rtl8192_data_hard_resume Function is empty; rtllib checks if handler is NULL. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 -------- 1 file changed, 8 deletions(-) commit f971e9f3ba70eac49ab9fbaa4f5bd5dfbaf9fe7b Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:39 2015 +0200 staging: rtl8192e: Remove rtl8192_data_hard_stop Function is empty; rtllib checks if handler is NULL. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ------ 1 file changed, 6 deletions(-) commit 45f57357f2a4ac71e4df7d3ca1a4ea234856d399 Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:38 2015 +0200 staging: rtl8192e: Remove ActUpdateChannelAccessSetting Function is empty and called only once. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 ------ drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 3 --- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 4 ---- 3 files changed, 13 deletions(-) commit 74214e526e605f155ba2609c516cf866ae965316 Author: Mateusz Kulikowski Date: Tue Jul 28 23:31:37 2015 +0200 staging: rtl8192e: Remove rtl8192_phy_updateInitGain Function is empty and called only once. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 1 - drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ---- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 1 - 3 files changed, 6 deletions(-) commit c15a7009325b84adac2eb0f3919d9c3ff8d5ed11 Author: Dan Carpenter Date: Thu Jul 30 00:36:32 2015 +0300 staging: comedi: das16: remove a duplicate condition We checked that "it->options[3]" was non-zero on the line before so there is no need to check again. Signed-off-by: Dan Carpenter Reviewed-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das16.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a9cf7250ba85427a372225067d57cf3ff4471047 Author: Dan Carpenter Date: Tue Jul 28 18:49:25 2015 +0300 staging: rtl8192e: don't just print an error and continue I was looking at how TOTAL_CAM_ENTRY is used and I saw this code. We print an error but continue writing "EntryNo" to a register as if it were valid. "EntryNo" is controlled by the user in rtl8192_ioctl() so it definitely can be invalid. I'm not positive what happens with the invalid data but it can't be good. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d1f0f3118e55ad80136d19dd4afdb32ccba26a42 Author: Dan Carpenter Date: Tue Jul 28 18:48:21 2015 +0300 Staging: rtl8192e: array overflow in rtl92e_set_swcam() "EntryNo" is comes from the user in the ioctl and it's a number between 0-255. The ieee->swcamtable[] array only has 32 elements so it can result in memory corruption. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 ++++ 1 file changed, 4 insertions(+) commit 881bf281237c3eaf7759040653e779c6cc6c2e00 Author: Alex Wilson Date: Fri Jul 31 11:08:29 2015 -0600 staging: panel: fix block comment usage Fixed two coding style warnings concerning multiline comments. Signed-off-by: Alex Wilson Signed-off-by: Greg Kroah-Hartman drivers/staging/panel/panel.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 7f44cb0ba88b40c09c5bdfc46186e09f42b1a9b0 Author: Viresh Kumar Date: Fri Jul 31 14:08:30 2015 +0530 drivers: staging: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there is no need to do that again from its callers. Drop it. This also replaces an IS_ERR(x) + (x == NULL) check to IS_ERR_OR_NULL check. Signed-off-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ashmem.c | 2 +- drivers/staging/lustre/include/linux/libcfs/libcfs.h | 2 +- drivers/staging/lustre/lustre/obdclass/lu_object.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) commit b3c1a61744d02ca2c249dae04c8eb8f5b0822bc3 Author: Michael Hornung Date: Fri Jul 31 22:18:17 2015 +0200 linux-next: drivers: staging: most: Fix return value * Fix sparse warning "Using plain integer as NULL pointer" Signed-off-by: Michael Hornung Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-network/networking.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59ed0480b95032418be6960375a13201c35364f7 Author: Christian Gromm Date: Thu Jul 30 18:19:41 2015 +0200 Staging: most: replace pr_*() functions by dev_*() This patch replaces pr_*() functions with dev_*(). Reported-by: Greg Kroah-Hartman Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-usb/hdm_usb.c | 116 +++++++++++++++++---------------- 1 file changed, 59 insertions(+), 57 deletions(-) commit 412c8232edfac024ed22bd1424f37f68fcbb555c Author: Christian Gromm Date: Thu Jul 30 18:18:55 2015 +0200 Staging: most: fix doing DMA on stack This patch fixes error "doing DMA on the stack" by using kzalloc for buffer allocation. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/hdm-usb/hdm_usb.c | 36 ++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) commit 3f78f6116d581e1342f56a4dacdd576d79b054c4 Author: Christian Gromm Date: Thu Jul 30 15:31:39 2015 +0200 Staging: most: replace min() by min_t() This patch fixes wrong casting. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6852ac9acbb8f11fe736116f7cc819891021404f Author: Christian Gromm Date: Thu Jul 30 15:31:37 2015 +0200 Staging: most: fix double unlock This patch fixes double unlocking of a spinlock the aim-v4l2 module. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Andrey Shvetsov Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-v4l2/video.c | 1 + 1 file changed, 1 insertion(+) commit 936d61eeac71504b52977cc9f9339cb86866c531 Author: Jignesh R Patel Date: Tue Jul 28 16:19:36 2015 +0530 staging: android: Fixed line over 80 char Fixes the following checkpatch warning: Warning: Line over 80 characters Signed-off-by: Jignesh R Patel Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_cma_heap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6ba4df24bb87246472be90b11fcecb720c2a15ba Author: Shraddha Barke Date: Mon Jul 27 23:30:52 2015 +0530 Staging:dgap :Compression of lines for immediate return This patch compresses two lines into a single line if immediate return statement is found. Remove variable rc as it is no longer needed. It is done using script Coccinelle. And coccinelle uses the following semantic patch for this compression function: @@ type T; identifier i,f; constant C; @@ - T i; ...when != i when strict ( return -C; | - i = + return f(...); - return i; ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bd1ccd33150261f0e58be6de615e4b14389ac208 Author: Freeman Zhang Date: Mon Jul 27 14:37:25 2015 +0800 staging: rtl8192u: Fix checkpatch issue with comma in r819xU_firmware.c Add space after ',' to fix the error message provided by checkpatch.pl: ERROR: space required after that ',' Signed-off-by: Freeman Zhang Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r819xU_firmware.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 61c854f510505177e95b0f2bc88249c4ed68f501 Author: Shraddha Barke Date: Mon Jul 27 15:36:26 2015 +0530 Staging : android :Replace comma with a semicolon Replace comma between expression statements by a semicolon. The semantic patch used is as follows: @@ expression e1,e2; @@ e1 - , + ; e2; Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ashmem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 740d6c17c8fe25b917273195db8d49d33b87e6ae Author: Ciprian Manea Date: Sun Jul 26 22:26:18 2015 +0100 staging: slicoss: Add blank line after variable declarations. This patch fixes the checkpatch.pl warning: WARNING: Missing a blank line after declarations + unsigned long flags; + pshmem = (struct slic_shmem *)(unsigned long) Signed-off-by: Ciprian Manea Signed-off-by: Greg Kroah-Hartman drivers/staging/slicoss/slicoss.c | 1 + 1 file changed, 1 insertion(+) commit 5a3a3f64cabe1590d76d6e8bc1b24c11219ab61e Author: Peter Huewe Date: Sat Jul 25 01:59:08 2015 +0200 staging/xgifb: fix dumpVGAReg compile error if DEBUG is set If DEBUG is set dumpVGAReg is called and tries to access XGISR which is defined as (xgifb_info->dev_info.P3c4) which is not known within this function. -> add as parameter to dumpVGAReg so xgifb_info becomes known Signed-off-by: Peter Huewe Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/XGI_main_26.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4bc8ff7479c57f2e0332d8b8dc7ba44b31b6839c Author: Kevin Darbyshire-Bryant Date: Sat Jul 25 10:48:28 2015 +0100 staging: octeon: add missing blank line after declarations Fixes checkpatch.pl WARNING: Missing a blank line after delarations Signed-off-by: Kevin Darbyshire-Bryant Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet.c | 1 + 1 file changed, 1 insertion(+) commit f3c709b8fc1bbdeddd9b9c1f7785b9b35d2301d9 Author: Navy Cheng Date: Mon Jul 27 16:09:35 2015 +0800 Staging: dgnc: dgnc_driver.h: remove unnecessary comments The public headers is well known by others and the redundant commits make the code mess. Remove the comments of the public headers to make the code tidy. Signed-off-by: Navy Cheng Signed-off-by: Greg Kroah-Hartman drivers/staging/dgnc/dgnc_driver.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 36927c1828c526c571973758b2d3a4bad051bc3f Author: Tim Sell Date: Tue Jul 28 12:29:11 2015 -0400 staging: unisys: visornic - consolidate+simplify xmit watermark checks The code that tests for high and low xmit watermarks was consolidatedand simplified. The output behavior should be identical, with the exception of an off-by-one error being corrected in the tests done when the counters overflowed. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 114 ++++++++++++++++-------- 1 file changed, 75 insertions(+), 39 deletions(-) commit cb84fca03d99ec1bb8d370b575aa2984b60a8374 Author: Tim Sell Date: Tue Jul 28 12:29:10 2015 -0400 staging: unisys: visornic: enable skb->len error-check, remove DEBUG blocks * A skb->len error-check was enabled (removed from a "#ifdef DEBUG" block). * Several unneeded "#ifdef DEBUG" blocks were removed. * A dev_err() was converted to the more-appropriate netdev_err(). Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 26 +++---------------------- 1 file changed, 3 insertions(+), 23 deletions(-) commit c847020e7ae07c6a3d68c9a617815b9d4f8a1e10 Author: Tim Sell Date: Tue Jul 28 12:29:09 2015 -0400 staging: unisys: visornic_resume needs to mirror _serverdown_complete Previously we simplified the serverdown function to basically turn it into a dev_close(), but missed the analogous logic in visornic_resume() (which is essentially the "book-end" of visornic_serverdown_complete()). As a result, during IO partition recovery, the nic would go closed when the IO partition went away, but would never be opened again when the IO partition came back. This patch changes visornic_resume() to use dev_open(), so that it once again plays nicely with visornic_serverdown_complete(). Because dev_open() forces us into the visornic_open() path, other logic in visornic_resume() was no longer necessary, and lended to simplifying visornic_resume() even more. Fixes: 36645d72a377 ("staging: unisys: simplify visornic_serverdown_complete") Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 56 ++++++++++++------------- 1 file changed, 26 insertions(+), 30 deletions(-) commit 6483783d24afc22248f3051326681a4327e29e72 Author: Tim Sell Date: Tue Jul 28 12:29:08 2015 -0400 staging: unisys: visornic - correctly reset flag prior to send_enbdis() Because devdata->enab_dis_acked is the flag used to determine whether an enable/disable operation to the IO partition has completed, it should always be cleared prior to initiating the operation. The call added to visornic_enable_with_timeout() added in this patch makes the usage there consistent with visornic_disable_with_timeout(). Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 1 + 1 file changed, 1 insertion(+) commit 6f562b21612d938cf43202ca3fe29636893aa5df Author: Tim Sell Date: Fri Jul 31 13:21:33 2015 -0400 staging: unisys: visornic - prevent lock recursion after IO recovery In the patch which changed the serverdown logic to by synchronous, we were mistakenly holding on to devdata->priv_lock in the call to visornic_serverdown_complete(), which ultimately ended up recursively attempting to grab the same lock via the path: --> dev_close --> visornic_close() --> visornic_disable_with_timeout() Evidence: BUG: spinlock recursion on CPU#0, kworker/u2:0/1567 lock: 0xffff88002d7e4c90, .magic: dead4ead, .owner: kworker/ .owner_cpu: 0 CPU: 0 PID: 1567 Comm: kworker/u2:0 Tainted: G WC 4.2.0-rc3-ARCH+ #60 Hardware name: Dell Inc. PowerEdge T110/ , BIOS 1.23 12/15/2009 Workqueue: visorchipset_controlvm controlvm_periodic_work [visorbus] ffff8800216a9380 ffff88002d167878 ffffffff81476874 000000000000061f ffff88002d7e4c90 ffff88002d167898 ffffffff8109e2bc ffff88002d7e4c90 ffffffff81763d7c ffff88002d1678b8 ffffffff8109e330 ffff88002d7e4c90 Call Trace: [] dump_stack+0x4f/0x73 [] spin_dump+0x7c/0xc0 [] spin_bug+0x30/0x40 [] do_raw_spin_lock+0x127/0x140 [] _raw_spin_lock_irqsave+0x4b/0x60 [] ? visornic_disable_with_timeout.clone.2+0x3c/ [visornic] [] ? _raw_spin_unlock_bh+0x39/0x40 [] visornic_disable_with_timeout.clone.2+0x3c/ [visornic] [] visornic_close+0xe/0x20 [visornic] [] __dev_close_many+0x92/0xe0 [] dev_close_many+0x7a/0x110 [] ? down+0x16/0x50 [] dev_close+0x3f/0x50 [] visornic_serverdown+0x91/0x1a0 [visornic] [] ? device_changestate_responder.clone. [visorbus] [] visornic_pause+0x15/0x20 [visornic] [] initiate_chipset_device_pause_resume+0x9f/0xe0 [visorbus] [] chipset_device_pause+0x13/0x20 [visorbus] [] device_epilog+0x12b/0x1a0 [visorbus] [] handle_command+0x72b/0x970 [visorbus] [] ? visorchannel_signalremove+0x6e/0x80 [visorbus] [] controlvm_periodic_work+0x271/0x420 [visorbus] [] process_one_work+0x1d2/0x540 [] ? process_one_work+0x139/0x540 [] ? __schedule+0x807/0xc30 [] worker_thread+0x57/0x4c0 [] ? process_scheduled_works+0x40/0x40 [] ? process_scheduled_works+0x40/0x40 [] kthread+0xe9/0x110 [] ? __init_kthread_worker+0x70/0x70 [] ret_from_fork+0x3f/0x70 [] ? __init_kthread_worker+0x70/0x70 BUG: spinlock lockup suspected on CPU#0, kworker/u2:0/1567 Fixes: f2b70efaf48f ("staging: unisys: Make serverdown synchronous") Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 30948df80c1d17a7dfe5f4efba7e8f4880fc7662 Author: Kees Cook Date: Tue Jul 28 12:29:06 2015 -0400 staging: unisys: avoid format string parsing This makes sure the kthread name can't be parsed as a format string. Signed-off-by: Kees Cook Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 59fd2c8bd11ff1cc9e8fd84f69d8047e63fad0a3 Author: Prarit Bhargava Date: Fri Jul 24 12:06:53 2015 -0400 drivers, staging, unisys Add modalias files to visorbus devices This patch adds modalias files that export the device UUID type to sysfs so that udev can autoload the appropriate device driver on demand. Note that is required a minor name change to the channel device sysfs files which are currently named visorbus_dev_groups, and are now named visorbus_channel_groups. Signed-off-by: Prarit Bhargava Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 45 +++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) commit f93b0cbfdf919c956ce8cdd1fff10068004ff3a5 Author: Prarit Bhargava Date: Fri Jul 24 12:06:52 2015 -0400 staging: unisys: add UUID strings to channel_guid.h Define additional strings for module loading code ease of use. Signed-off-by: Prarit Bhargava Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/channel_guid.h | 4 ++++ 1 file changed, 4 insertions(+) commit 4cc38b0849d68c5a43b1b57f771fa8c6fb779081 Author: Prarit Bhargava Date: Fri Jul 24 12:06:51 2015 -0400 drivers, staging, unisys, cleanup channel_guid.h This file has a lot of dead comments and needs to be cleaned up. Signed-off-by: Prarit Bhargava Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/channel_guid.h | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit cfa48d936a22928060c7f9d401e927af3d5f87cf Author: Mayank Bareja Date: Tue Jul 28 05:50:12 2015 +0000 Staging: rtl8188eu/hal: Fixed code indentation warning detected with checkpatch.pl fixed code indentation warning as reported by checkpatch.pl. Replaced Spaces with Tabs. Signed-off-by: Mayank Bareja Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/bb_cfg.c | 6 +++--- drivers/staging/rtl8188eu/hal/rf.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit f523c7d7a66d97d0584182eb3ff4b2425219f9d8 Author: Shraddha Barke Date: Mon Jul 27 19:07:57 2015 +0530 Staging : rtl8188eu : os_dep : Compression of lines for immediate return This patch compresses two lines into a single line if immediate return is found. Also remove variable ret as it is no longer needed. Semantic patch used for this is as follows: @@ type T; identifier i,f; constant C; @@ - T i; ...when != i when strict ( return -C; | - i = + return f(...); - return i; ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 26589720620e8fe429681f599fdc145c8f57a8c6 Author: Jakub Sitnicki Date: Wed Jul 29 10:15:18 2015 +0200 staging: rtl8188eu: don't duplicate ieee80211 WLAN_HT_CAP_SM_PS_* constants linux/ieee80211.h already defines constants for spatial multiplexing power save modes. Remove the duplicated definitions. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/wifi.h | 7 ------- 1 file changed, 7 deletions(-) commit b5efb33e5c6ea76d1f413bfd8e5d0a9811b958d0 Author: Jakub Sitnicki Date: Wed Jul 29 10:15:17 2015 +0200 staging: rtl8188eu: don't duplicate ieee80211 WLAN_AUTH_* constants linux/ieee80211.h already defines constants for authentication algorithms. Remove the duplicated definitions. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/include/ieee80211.h | 6 ------ 1 file changed, 6 deletions(-) commit 63d6c969b7424b014fc3cc43b549f63db166aa2a Author: Jakub Sitnicki Date: Wed Jul 29 10:15:16 2015 +0200 staging: rtl8188eu: wrap a long if condition and remove extra parenthesis Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 35cf0b5596c6936588726bd9fbc9789cac371561 Author: Jakub Sitnicki Date: Wed Jul 29 10:15:15 2015 +0200 staging: rtl8188eu: don't duplicate ieee80211 WLAN_EID_* constants linux/ieee80211.h already defines constants for information element IDs. Resolve discrepancies in naming and remove the duplicated definitions. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 2 +- drivers/staging/rtl8188eu/include/ieee80211.h | 38 -------------------------- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 2 +- 3 files changed, 2 insertions(+), 40 deletions(-) commit be3d2e0fe154f9da9098d59477ef08230a533426 Author: Dave Perez Date: Wed Jul 29 21:50:30 2015 -0400 Staging: rtl8188eu: fixed newlines after declarations This is a patch to the rtw_debug.c file that fixes styling errors relating to new lines after variable declarations. Signed-off-by: Dave Perez Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_debug.c | 2 ++ 1 file changed, 2 insertions(+) commit 176d1b96436dee996f5bd7b36429e6068a848478 Author: Oleg Drokin Date: Thu Jul 30 18:49:55 2015 -0400 staging/lustre/llite: Don't set page writeback on non-dirty page New writeback changes in 4.2-RC1 have exposed that we incorrectly set page_writeback on a page that is being written synchronously, which aside from this new crash (dereference of NULL inode->i_wb from set_page_writeback) likely threw off some related page statistics in the past. BUG: unable to handle kernel NULL pointer dereference at 0000000000000138 IP: [] __percpu_counter_add+0x1a/0x80 PGD 0 Oops: 0000 [#1] SMP DEBUG_PAGEALLOC Modules linked in: osc(C) lmv(C) fld(C) mgc(C) lustre(C) mdc(C) fid(C) lov(C) ksocklnd(C) ptlrpc(C) obdclass(C) lnet(C) libcfs(C) loop sha512_generic crc32 rpcsec_gss_krb5 microcode joydev i2c_piix4 acpi_cpufreq pcspkr nfsd syscopyarea sysfillrect sysimgblt drm_kms_helper ttm drm serio_raw virtio_blk [last unloaded: libcfs] CPU: 0 PID: 13328 Comm: cvs Tainted: G C 4.2.0-rc1-vm-nfs+ #30 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 task: ffff8800cc98a400 ti: ffff8801157e8000 task.ti: ffff8801157e8000 RIP: 0010:[] [] __percpu_counter_add+0x1a/0x80 RSP: 0018:ffff8801157eb698 EFLAGS: 00010086 RAX: 0000000000000003 RBX: ffffea0002b91cc0 RCX: 000000000000001a RDX: 0000000000000020 RSI: 0000000000000001 RDI: 00000000000000e8 RBP: ffff8801157eb6b8 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 00000000000000e8 R13: 0000000000000001 R14: ffff8800673587a8 R15: ffff8800673589b0 FS: 00007f6718b89800(0000) GS:ffff88011f400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000138 CR3: 000000009d51c000 CR4: 00000000000007f0 Stack: ffffffff811919e2 ffffea0002b91cc0 ffff880067358998 ffff880119419800 ffff8801157eb718 ffffffff81191a58 ffff8801157eb788 0000000000000282 ffff8800ce5ce920 0000000000000000 ffff8800a525af80 ffff880053f68f10 Call Trace: [] ? __test_set_page_writeback+0x72/0x240 [] __test_set_page_writeback+0xe8/0x240 [] vvp_page_prep_write+0x33/0xb0 [lustre] [] cl_page_invoke+0x57/0x90 [obdclass] [] cl_page_prep+0x2d/0x180 [obdclass] [] osc_io_submit+0x134/0x4a0 [osc] [] cl_io_submit_rw+0x53/0xb0 [obdclass] [] lov_io_submit+0x3a5/0x570 [lov] [] ? lockdep_init_map+0x5b/0x6d0 [] cl_io_submit_rw+0x53/0xb0 [obdclass] [] cl_io_submit_sync+0xed/0x1c0 [obdclass] [] vvp_page_sync_io.isra.15+0x4d/0x100 [lustre] [] ? cl_page_clip+0xff/0x130 [obdclass] [] vvp_io_commit_write+0x448/0x500 [lustre] [] cl_io_commit_write+0x9a/0x130 [obdclass] [] ll_commit_write+0xc2/0x230 [lustre] [] ll_write_end+0x2a/0x50 [lustre] [] generic_perform_write+0xfa/0x1b0 [] ? dentry_needs_remove_privs.part.16+0x1e/0x30 [] __generic_file_write_iter+0x190/0x1f0 [] generic_file_write_iter+0xea/0x1e0 [] vvp_io_write_start+0xa0/0x1e0 [lustre] [] cl_io_start+0x49/0x80 [obdclass] [] cl_io_loop+0x73/0xd0 [obdclass] [] ll_file_io_generic+0x45f/0x4b0 [lustre] [] ll_file_write_iter+0x6c/0xc0 [lustre] [] __vfs_write+0xaa/0xe0 [] vfs_write+0xa9/0x190 [] SyS_write+0x49/0xa0 [] entry_SYSCALL_64_fastpath+0x16/0x7a Code: 5b 41 5c 41 5d 41 5e 5d c3 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 55 41 54 53 49 89 fc 49 89 f5 48 83 ec 08 65 ff 05 8e d1 bf 7e <48> 8b 47 50 48 63 ca 65 8b 18 48 63 db 48 01 f3 48 39 cb 7d 0a Signed-off-by: Jinshan Xiong Signed-off-by: Oleg Drokin Reviewed-on: http://review.whamcloud.com/15610 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6854 Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/vvp_page.c | 27 +++++++++++++++--------- drivers/staging/lustre/lustre/obdclass/cl_page.c | 3 --- 2 files changed, 17 insertions(+), 13 deletions(-) commit 208bf77049a95cd023c8e884a28449a9182f1c1a Author: Viresh Kumar Date: Fri Jul 31 16:32:43 2015 +0530 staging: lustre: drop redundant check There is no need to verify that its an error, as we are anyway going to match the error value to -ENOENT. Drop the redundant check. Reported-by: "Kirill A. Shutemov" Signed-off-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/lu_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e56e17ea935a66fe3a6cd2445649a0d9365a8449 Author: Oleg Drokin Date: Thu Jul 30 18:28:04 2015 -0400 staging/lustre: use ATTR_OPEN directly, remove ATTR_RAW ATTR_RAW is unused. No point in redefining ATTR_OPEN as ATTR_FROM_OPEN Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/include/linux/lustre_patchless_compat.h | 12 ------------ drivers/staging/lustre/lustre/mdc/mdc_lib.c | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) commit b81f9b6db644c2ca0fbce1ac2eda8e74860e8c63 Author: Oleg Drokin Date: Thu Jul 30 18:28:02 2015 -0400 staging/lustre: ATTR_TIMES_SET is always defined, so don't check it Remove ATTR_TIMES_SET check as it's always present, move the mask of times define close to where it's used. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 6 ------ drivers/staging/lustre/lustre/llite/llite_lib.c | 2 ++ 2 files changed, 2 insertions(+), 6 deletions(-) commit e3befdc7579eee51407ad162a5614ba30c97a405 Author: Oleg Drokin Date: Thu Jul 30 18:27:59 2015 -0400 staging/lustre: replace ll_umode_t with umode_t umode_t is what we need anyway, so replace all users and drop the define. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 6 ------ drivers/staging/lustre/lustre/llite/namei.c | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) commit 6e74468da6965ca473a46a83f88e89c88d9811cc Author: Oleg Drokin Date: Thu Jul 30 18:27:56 2015 -0400 staging/lustre: remove *hw_segments compat defines queue_max_phys_segments, queue_max_hw_segments and bio_hw_segments are not used anywhere in the client code, so remove them Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 6 ------ 1 file changed, 6 deletions(-) commit 629819c7dedbbd6f38c075bb8aba1fe554be4cdb Author: Oleg Drokin Date: Thu Jul 30 18:27:55 2015 -0400 staging/lustre: Drop SLAB_DESTROY_BY_RCU redefine, it's always defined SLAB_DESTROY_BY_RCU is always defined in kernel slab.h, so no point in checking for it. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 6 ------ 1 file changed, 6 deletions(-) commit 5c8eae72ff46f0e70d03ae2e86e631d7a1ca4fe6 Author: Oleg Drokin Date: Thu Jul 30 18:27:54 2015 -0400 staging/lustre: Drop FS_HAS_FIEMAP compat macro FS_HAS_FIEMAP was some sort of old RHEL5 construct that's not really important anymore Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 5 ----- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) commit 5109ea606f9d9d26d2d69a0457d17267b8bfd629 Author: Oleg Drokin Date: Thu Jul 30 18:27:53 2015 -0400 staging/lustre: get rid of cfs_bio_* compat macroses This replaces cfs_bio_io_error with direct calls to bio_io_error and cfs_bio_end_io with bio_end_io Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/linux/lustre_compat25.h | 4 ---- drivers/staging/lustre/lustre/llite/lloop.c | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) commit b921ecea84a3f137f7c585af079f86922aa15aa4 Author: Oleg Drokin Date: Thu Jul 30 18:27:52 2015 -0400 staging/lustre: Remove unused ll_vfs_* compat defines Lustre defines quite a bit of those compatibility defines duplicating kernel vfs api, but they are not actually used in the client so remove them all and also ll_dirty_inode, ll_security_inode_unlink and cfs_path_put Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/include/linux/lustre_compat25.h | 25 ---------------------- 1 file changed, 25 deletions(-) commit 0d749519f0441144f7da53e157d11f0680c15313 Author: Shraddha Barke Date: Mon Jul 27 22:20:35 2015 +0530 Staging: lustre: Drop unnecessary cast This patch does away with the cast on void * as it is unnecessary. Semantic patch used is as follows: @r@ expression x; void* e; type T; identifier f; @@ ( *((T *)e) | ((T *)x)[...] | ((T *)x)->f | - (T *) e ) Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 01eb73d53070ca2c7a75c272291a79613604cd97 Author: Mario Bambagini Date: Tue Jul 28 22:08:52 2015 +0200 staging: lustre: added a space between concatenated strings A space has been inserted between two concatenated strings as required from checkpatch.pl These two updates do not lead to any problem as DFID is defined as a string in ./drivers/staging/lustre/lustre/include/lustre/lustre_user.h The script checkpatch.pl does not return any other warning/error. Signed-off-by: Mario Bambagini Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_capa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 911677393b13a3f2fc6db2e297b336fb2669f0f1 Author: Mario Bambagini Date: Tue Jul 28 22:08:51 2015 +0200 staging: lustre: modified comparisons against NULL The explicit comparisons against NULL has been modified to be shorter. Signed-off-by: Mario Bambagini Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_capa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6b0e2d6232e9a0b98d39647f3cc6ff5fd8f1cd92 Author: Mario Bambagini Date: Tue Jul 28 22:08:50 2015 +0200 staging: lustre: fixed bad alignment This patch fixes 7 bad alignments. When a line is split on more than one line, the other lines must be aligned with paranthesis. Signed-off-by: Mario Bambagini Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_capa.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e28e92b6d18199ad304f076fb24293d8c384cf1b Author: Mario Bambagini Date: Tue Jul 28 22:08:49 2015 +0200 staging: lustre: fixed comments without */ on a new line This patch fixes 4 comments without */ on a new line Signed-off-by: Mario Bambagini Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_capa.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit f926cac2f70e5dc62e9a11d8e599206c0ad357ba Author: Mario Bambagini Date: Tue Jul 28 22:08:48 2015 +0200 staging: lustre: fixed lines longer than 80 chars this set of patches fixes several code style problems: -patch 1: lines with more than 80 chars -patch 2: comments without */ on a separate line -patch 3: bad alignment of lines split on more than one line -patch 4: modified comparisons against NULL -patch 5: added spaces between concatenated strings This patch fixes 2 lines longer than 80 chars The first one is a function whose argument has been moved to next line. The second one is a comment split on two lines Signed-off-by: Mario Bambagini Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/llite_capa.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 585d84b4838ac061f935b5d5c84550ec9f5dee82 Author: Pan Li Date: Mon Jul 27 13:52:48 2015 +0800 staging: lustre: Remove unnecessary braces {} for single statement blocks Remove unnecessary braces {} for single line statement blocks. Signed-off-by: Pan Li Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 437dffebadd5cf22403505528f35b0c1b3aa34e2 Author: Pan Li Date: Mon Jul 27 13:50:34 2015 +0800 staging: lustre: Remove a trailing */ of a separate line. Remove a trailing */ of a separate comments block line. Signed-off-by: Pan Li Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 8de056a13fcd09a85a79f52f7fe72b3fa95ccd66 Author: Pan Li Date: Mon Jul 27 13:50:09 2015 +0800 staging: lustre: Add a blank line after declarations. Add a blank line after local variable declarations. Signed-off-by: Pan Li Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 2 ++ 1 file changed, 2 insertions(+) commit b16d335ddf0b89eae6b65d7c2e0c360846fc4846 Author: Pan Li Date: Mon Jul 27 13:49:11 2015 +0800 staging: lustre: Adjust code indent for macro and tail blackslash Adjust code indent for macro with tab, as well as tail blackslash. Signed-off-by: Pan Li Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 648d6e6ce4457f9558e1c9d5a8ed73e2baace312 Author: Pan Li Date: Mon Jul 27 13:48:10 2015 +0800 staging: lustre: Replace spaces at the start of a line. Replace the spaces at the start of a line with tab for indent. Signed-off-by: Pan Li Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit db316d57b63c07f2ebea596d7e21aa56549f54ab Merge: 0f7bffd 04ff53f Author: David S. Miller Date: Fri Jul 31 15:45:37 2015 -0700 Merge branch 'dsa-netconsole' Florian Fainelli says: ==================== net: GENET, SYSTEMPORT and DSA netconsole This patch series adds support for netconsole in the GENET, SYSTEMPORT and DSA drivers. A small refactoring to the DSA transmit path is required to avoid duplicating the dsa_netpoll_send_skb() into each and every tagging protocol supported. Testing on e.g: mv643xx_eth and/or e1000e would be much appreciated! Changes in v2: - properly disable/enable interrupts in GENET and SYSTEMPORT - pass the reallocated SKB back to dsa_slave_xmit() in case a tag protocol had to alter the original SKB ==================== Signed-off-by: David S. Miller commit 04ff53f96a931751a70c2bb3926770900b5fbebe Author: Florian Fainelli Date: Fri Jul 31 11:42:57 2015 -0700 net: dsa: Add netconsole support Add support for using DSA slave network devices with netconsole, which requires us to allocate and free custom netpoll instances and invoke the parent network device poll controller callback. In order for netconsole to work, we need to construct the DSA tag, but not queue the skb for transmission on the master network device xmit function. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/dsa_priv.h | 4 ++++ net/dsa/slave.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) commit 4ed70ce9f01c998999e48642a768d9013bee2c4f Author: Florian Fainelli Date: Fri Jul 31 11:42:56 2015 -0700 net: dsa: Refactor transmit path to eliminate duplication All tagging protocols do the same thing: increment device statistics, make room for the tag to be inserted, create the tag, invoke the parent network device transmit function. In order to prepare for adding netpoll support, which requires the tag creation, but not using the parent network device transmit function, do some little refactoring which eliminates duplication between the 4 tagging protocols supported. We need to return a sk_buff pointer back to the caller because the tag specific transmit function may have to reallocate the original skb (e.g: tag_trailer.c) and this is the one we should be transmitting, not the original sk_buff we were passed. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller net/dsa/dsa_priv.h | 4 ++-- net/dsa/slave.c | 27 +++++++++++++++++++-------- net/dsa/tag_brcm.c | 15 +++------------ net/dsa/tag_dsa.c | 12 +++--------- net/dsa/tag_edsa.c | 12 +++--------- net/dsa/tag_trailer.c | 12 +++--------- 6 files changed, 33 insertions(+), 49 deletions(-) commit 6cec4f5e00a34a1c7407af302470246dd4f8be28 Author: Florian Fainelli Date: Fri Jul 31 11:42:55 2015 -0700 net: systemport: Add netconsole support Implement a poll controller for netconsole which invokes the RX interrupt handler to poll for incoming packets, and cleans up all TX queues by invoking the TX interrupt handler. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bcmsysport.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 4d2e88828f25eb587b78a430e18071a5bc8d18c2 Author: Florian Fainelli Date: Fri Jul 31 11:42:54 2015 -0700 net: bcmgenet: Add netconsole support Implement a poll controller for netconsole which invokes both of our interrupt handlers for the different RX/TX queues. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 0f7bffd9e512b77279bbce704fad3cb1d6887958 Author: Nikolay Aleksandrov Date: Fri Jul 31 16:49:43 2015 +0200 bonding: add tlb_dynamic_lb netlink support tlb_dynamic_lb could be set only via sysfs, this patch allows it to be set via netlink. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/bonding/bond_netlink.c | 17 +++++++++++++++-- include/uapi/linux/if_link.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) commit b7a0925e47031d51041ce9a357edc02fb67d0b1d Merge: 774ad03 360d9bb Author: David S. Miller Date: Fri Jul 31 15:33:23 2015 -0700 Merge tag 'wireless-drivers-next-for-davem-2015-07-31' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== Major changes: mwifiex: * add TX DATA Pause support * add multichannel and TDLS channel switch support ath10k: * enable VHT for IBSS * initial work to support qca99x0 and the corresponding 10.4 firmware branch ==================== Signed-off-by: David S. Miller commit 774ad031dd6d2ef840375a662693952b73a3ae71 Author: Daniel Pieczko Date: Fri Jul 31 11:15:22 2015 +0100 sfc: MC allocations must be restored following an entity reset Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 273248202013aa9d6d1bb2c1c4e4034a2813453f Author: Daniel Pieczko Date: Fri Jul 31 11:14:54 2015 +0100 sfc: allow ethtool selftest and MC reboot to complete on an unprivileged function The policy in the net driver is to attempt MCDI commands and then handle any EPERM error codes appropriately when returned by unprivileged functions. The ethtool selftest contains some tests which are useful on an unprivileged function, such as the event queue interrupt tests, but other tests cannot be performed as the function does not have the required permissions. If a test returns -EPERM, act as though the test was not run and continue. Signed-off-by: Shradha Shah Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 8 ++++++++ drivers/net/ethernet/sfc/selftest.c | 14 +++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) commit bee8259dd31f419a883174556b11edc6f9a153d1 Author: Shaohui Xie Date: Fri Jul 31 16:58:42 2015 +0800 net: phy: add driver for aquantia phy This patch added driver to support Aquantia PHYs AQ1202, AQ2104, AQR105, AQR405, which accessed through clause 45. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 5 ++ drivers/net/phy/Makefile | 1 + drivers/net/phy/aquantia.c | 152 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 158 insertions(+) commit 85b1d8bbfd2ea6ae1dc6d0ccdb25abdcb52a5856 Author: Joe Perches Date: Thu Jul 30 23:54:28 2015 -0700 br2684: Remove unnecessary formatting macros b1 and bs Use vsprintf extension %pI4 instead. Signed-off-by: Joe Perches Signed-off-by: David S. Miller net/atm/br2684.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit e90fba8d9f6067cd511f7b855518eebda6bf2532 Author: hayeswang Date: Fri Jul 31 11:23:39 2015 +0800 r8152: disable the capability of zero length The UEFI driver would enable zero length, and the Linux driver doesn't need it. Zero length let the hw complete the transfer with length 0, when there is no received packet. It would add the load of USB host controller and reduce the performance. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f8a9b1bc1b238eed9987da747a0e52f5bb009980 Author: Alexei Starovoitov Date: Thu Jul 30 20:10:22 2015 -0700 vxlan: expose COLLECT_METADATA flag to user space Two vxlan driver flags FLOWBASED and COLLECT_METADATA need to be set to make use of its new flow mode. The former already exposed. Expose the latter. Signed-off-by: Alexei Starovoitov Acked-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 5 +++++ include/uapi/linux/if_link.h | 1 + 2 files changed, 6 insertions(+) commit 7576012e61d96a9369c8f98e6373a4de384d3126 Merge: d3aa45c bf21563 Author: David S. Miller Date: Fri Jul 31 15:21:30 2015 -0700 Merge branch 'mpls-build-fix' Roopa Prabhu says: ==================== af_mpls: fix undefined reference to ip6_route_output with CONFIG_IPV6=n This patch series uses ipv6_stub_impl.ipv6_dst_lookup instead of ip6_route_output. Follows the vxlan drivers usage of ipv6_stub_impl.ipv6_dst_lookup. There is no sk in the af_mpls context from where ipv6_stub_impl.ipv6_dst_lookup is used. sk appears to be needed to get the namespace 'net' and is optional otherwise. This patch series changes ipv6_stub_impl.ipv6_dst_lookup to take net argument. sk remains optional. v1 - v2: use IS_BUILTIN v2 - v3: Use new Kconfig option that depends on (IPV6 || IPV6=n) as suggested by Dave. Also uses IS_ERR as suggested by Thomas. v3 - v4: Include missed case of (MPLS_ROUTING=y && IPV6=m) reported by Dave. v4 - v5: Use ipv6_stub_impl.ipv6_dst_lookup as suggested by Hannes v5 - v6: protect against null ipv6_stub by statically declaring a ipv6_dst_lookup NOP func ==================== Signed-off-by: David S. Miller commit bf21563acc1de2391d21ac2141c3471aa4815c1a Author: Roopa Prabhu Date: Thu Jul 30 13:34:54 2015 -0700 af_mpls: fix undefined reference to ip6_route_output Undefined reference to ip6_route_output and ip_route_output was reported with CONFIG_INET=n and CONFIG_IPV6=n. This patch uses ipv6_stub_impl.ipv6_dst_lookup instead of ip6_route_output. And wraps affected code under IS_ENABLED(CONFIG_INET) and IS_ENABLED(CONFIG_IPV6). Reported-by: kbuild test robot Reported-by: Thomas Graf Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/mpls/af_mpls.c | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) commit 343d60aada5a358ca186d6e9e353230379c426d8 Author: Roopa Prabhu Date: Thu Jul 30 13:34:53 2015 -0700 ipv6: change ipv6_stub_impl.ipv6_dst_lookup to take net argument This patch adds net argument to ipv6_stub_impl.ipv6_dst_lookup for use cases where sk is not available (like mpls). sk appears to be needed to get the namespace 'net' and is optional otherwise. This patch series changes ipv6_stub_impl.ipv6_dst_lookup to take net argument. sk remains optional. All callers of ipv6_stub_impl.ipv6_dst_lookup have been modified to pass net. I have modified them to use already available 'net' in the scope of the call. I can change them to sock_net(sk) to avoid any unintended change in behaviour if sock namespace is different. They dont seem to be from code inspection. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller drivers/net/vxlan.c | 2 +- include/net/addrconf.h | 4 ++-- include/net/ipv6.h | 3 ++- net/ipv6/addrconf_core.c | 11 ++++++++++- net/ipv6/icmp.c | 6 +++--- net/ipv6/ip6_output.c | 12 ++++++------ net/tipc/udp_media.c | 3 ++- 7 files changed, 26 insertions(+), 15 deletions(-) commit d3aa45ce6b94c65b83971257317867db13e5f492 Author: Alexei Starovoitov Date: Thu Jul 30 15:36:57 2015 -0700 bpf: add helpers to access tunnel metadata Introduce helpers to let eBPF programs attached to TC manipulate tunnel metadata: bpf_skb_[gs]et_tunnel_key(skb, key, size, flags) skb: pointer to skb key: pointer to 'struct bpf_tunnel_key' size: size of 'struct bpf_tunnel_key' flags: room for future extensions First eBPF program that uses these helpers will allocate per_cpu metadata_dst structures that will be used on TX. On RX metadata_dst is allocated by tunnel driver. Typical usage for TX: struct bpf_tunnel_key tkey; ... populate tkey ... bpf_skb_set_tunnel_key(skb, &tkey, sizeof(tkey), 0); bpf_clone_redirect(skb, vxlan_dev_ifindex, 0); RX: struct bpf_tunnel_key tkey = {}; bpf_skb_get_tunnel_key(skb, &tkey, sizeof(tkey), 0); ... lookup or redirect based on tkey ... 'struct bpf_tunnel_key' will be extended in the future by adding elements to the end and the 'size' argument will indicate which fields are populated, thereby keeping backwards compatibility. The 'flags' argument may be used as well when the 'size' is not enough or to indicate completely different layout of bpf_tunnel_key. Signed-off-by: Alexei Starovoitov Acked-by: Thomas Graf Signed-off-by: David S. Miller include/net/dst_metadata.h | 1 + include/uapi/linux/bpf.h | 17 ++++++++++ net/core/dst.c | 35 +++++++++++++++++---- net/core/filter.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+), 6 deletions(-) commit 55d7de9de6c30adce8d675c7ce513e283829c2ff Author: Woojung.Huh@microchip.com Date: Thu Jul 30 19:45:21 2015 +0000 Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver Repost patch of driver for LAN7800 family of USB 2.0 & USB 3.0 to Gigabit Ethernet. - remove module param which can be configurable by standard mechanism. - remove other module parms except msg_level per review comment. - update to handle byte swap for statistics structure correctly. Signed-off-by: Woojung Huh Signed-off-by: David S. Miller drivers/net/usb/Kconfig | 10 + drivers/net/usb/Makefile | 1 + drivers/net/usb/lan78xx.c | 3530 +++++++++++++++++++++++++++++++++++++++++++++ drivers/net/usb/lan78xx.h | 1069 ++++++++++++++ 4 files changed, 4610 insertions(+) commit f6ef5a2a50816b58e3126206de13d0b9fdf89df5 Author: Randy Dunlap Date: Tue Jul 28 12:27:01 2015 -0700 nvdimm: fix inline function return type warning Fix multiple build warnings when CONFIG_BTT is not enabled: In file included from ../drivers/nvdimm/bus.c:29:0: ../drivers/nvdimm/nd.h:169:15: warning: return type defaults to 'int' [-Wreturn-type] static inline nd_btt_probe(struct nd_namespace_common *ndns, void *drvdata) ^ Signed-off-by: Randy Dunlap Cc: Dan Williams Cc: linux-nvdimm@lists.01.org Signed-off-by: Dan Williams drivers/nvdimm/nd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a6ed38361b1e0f08d630bd491051c254d1fc71b9 Author: Daniel Borkmann Date: Thu Jul 30 16:04:22 2015 +0200 bpf_jit_disasm: also support reading jit dump from file This patch adds support to read the dmesg BPF JIT dump also from a file instead of the klog buffer. I found this quite useful when going through some 'before/after patch' logs. It also fixes a regex leak found by valgrind when no image dump was found. Signed-off-by: Daniel Borkmann Signed-off-by: David S. Miller tools/net/bpf_jit_disasm.c | 109 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 90 insertions(+), 19 deletions(-) commit 2fd77fff4b440c29b48c31db0ce2aec7d319959f Author: Len Brown Date: Fri Jul 31 12:46:17 2015 -0400 PM / suspend: make sync() on suspend-to-RAM build-time optional The Linux kernel suspend path has traditionally invoked sys_sync() before freezing user threads. But sys_sync() can be expensive, and some user-space OS's do not want the kernel to pay the cost of sys_sync() on every suspend -- preferring invoke sync() from user-space if/when they want it. So make sys_sync on suspend build-time optional. The default is unchanged. Signed-off-by: Len Brown Signed-off-by: Rafael J. Wysocki kernel/power/Kconfig | 10 ++++++++++ kernel/power/suspend.c | 2 ++ 2 files changed, 12 insertions(+) commit 4305cd02436dbe0b61b1930f93053a699af40e6a Author: Lv Zheng Date: Tue Jul 28 13:25:32 2015 +0800 tools/power/acpi: Enable build for EC userspace tool This patch allows EC userspace tool to be built as an ACPI tool. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki tools/power/acpi/Makefile | 16 ++++++++-------- tools/power/acpi/tools/ec/Makefile | 33 ++++++++++++++------------------- 2 files changed, 22 insertions(+), 27 deletions(-) commit 391fc234b543991dd7d0361e634cdf5abfbdd0a3 Author: Lv Zheng Date: Tue Jul 28 13:25:25 2015 +0800 tools/power/acpi: Add descend support in ACPI tools Makefile This patch splits tools/power/acpi/Makefile to support descend compling for ACPI tools. In this patch tools/ec related stuff is removed as it is originally not enabled. Also a missing .o (utnonansi.o) is added to the acpidump/Makefile. Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki tools/power/acpi/Makefile | 168 ++++--------------------------- tools/power/acpi/Makefile.config | 92 +++++++++++++++++ tools/power/acpi/Makefile.rules | 37 +++++++ tools/power/acpi/tools/acpidump/Makefile | 53 ++++++++++ 4 files changed, 199 insertions(+), 151 deletions(-) commit 311fa6adf92c5110057daa439fdaff012864aa2b Author: Jon Hunter Date: Fri Jul 31 10:20:00 2015 +0100 PM / Domains: Return -EPROBE_DEFER if we fail to init or turn-on domain When a device is probed, the function dev_pm_domain_attach() is called to see if there is a power-domain that is associated with the device and needs to be turned on. If dev_pm_domain_attach() does not return -EPROBE_DEFER then the device will be probed. For devices using genpd, dev_pm_domain_attach() will call genpd_dev_pm_attach(). If genpd_dev_pm_attach() does not find a power domain associated with the device then it returns an error code not equal to -EPROBE_DEFER to allow the device to be probed. However, if genpd_dev_pm_attach() does find a power-domain that is associated with the device, then it does not return -EPROBE_DEFER on failure and hence the device will still be probed. Furthermore, genpd_dev_pm_attach() does not check the error code returned by pm_genpd_poweron() to see if the power-domain was turned on successfully. Fix this by checking the return code from pm_genpd_poweron() and returning -EPROBE_DEFER from genpd_dev_pm_attach on failure, if there is a power-domain associated with the device. Signed-off-by: Jon Hunter Acked-by: Ulf Hansson Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 885fb909dc17f9240ab3e3420f7f135ae82be01f Author: Geert Uytterhoeven Date: Mon Mar 16 15:47:12 2015 +0100 PM / Domains: Correct unit address in power-controller example In example 2 of the generic PM domains DT bindings, the unit address of the device node representing the child power controller doesn't match its "reg" property. Correct it. Signed-off-by: Geert Uytterhoeven Acked-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki Documentation/devicetree/bindings/power/power_domain.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba2bbfbf63075850bb523e2adb815d45e3509995 Author: Ulf Hansson Date: Thu Jun 18 15:17:53 2015 +0200 PM / Domains: Remove intermediate states from the power off sequence Genpd's ->runtime_suspend() (assigned to pm_genpd_runtime_suspend()) doesn't immediately walk the hierarchy of ->runtime_suspend() callbacks. Instead, pm_genpd_runtime_suspend() calls pm_genpd_poweroff() which postpones that until *all* the devices in the genpd are runtime suspended. When pm_genpd_poweroff() discovers that the last device in the genpd is about to be runtime suspended, it calls __pm_genpd_save_device() for *all* the devices in the genpd sequentially. Furthermore, __pm_genpd_save_device() invokes the ->start() callback, walks the hierarchy of the ->runtime_suspend() callbacks and invokes the ->stop() callback. This causes a "thundering herd" problem. Let's address this issue by having pm_genpd_runtime_suspend() immediately walk the hierarchy of the ->runtime_suspend() callbacks, instead of postponing that to the power off sequence via pm_genpd_poweroff(). If the selected ->runtime_suspend() callback doesn't return an error code, call pm_genpd_poweroff() to see if it's feasible to also power off the PM domain. Adopting this change enables us to simplify parts of the code in genpd, for example the locking mechanism. Additionally, it gives some positive side effects, as described below. i) One device's ->runtime_resume() latency is no longer affected by other devices' latencies in a genpd. The complexity genpd has to support the option to abort the power off sequence suffers from latency issues. More precisely, a device that is requested to be runtime resumed, may end up waiting for __pm_genpd_save_device() to complete its operations for *another* device. That's because pm_genpd_poweroff() can't confirm an abort request while it waits for __pm_genpd_save_device() to return. As this patch removes the intermediate states in pm_genpd_poweroff() while powering off the PM domain, we no longer need the ability to abort that sequence. ii) Make pm_runtime[_status]_suspended() reliable when used with genpd. Until the last device in a genpd becomes idle, pm_genpd_runtime_suspend() will return 0 without actually walking the hierarchy of the ->runtime_suspend() callbacks. However, by returning 0 the runtime PM core considers the device as runtime_suspended, so pm_runtime[_status]_suspended() will return true, even though the device isn't (yet) runtime suspended. After this patch, since pm_genpd_runtime_suspend() immediately walks the hierarchy of the ->runtime_suspend() callbacks, pm_runtime[_status]_suspended() will accurately reflect the status of the device. iii) Enable fine-grained PM through runtime PM callbacks in drivers/subsystems. There are currently cases were drivers/subsystems implements runtime PM callbacks to deploy fine-grained PM (e.g. gate clocks, move pinctrl to power-save state, etc.). While using the genpd, pm_genpd_runtime_suspend() postpones invoking these callbacks until *all* the devices in the genpd are runtime suspended. In essence, one runtime resumed device prevents fine-grained PM for other devices within the same genpd. After this patch, since pm_genpd_runtime_suspend() immediately walks the hierarchy of the ->runtime_suspend() callbacks, fine-grained PM is enabled throughout all the levels of runtime PM callbacks. iiii) Enable fine-grained PM for IRQ safe devices Per the definition for an IRQ safe device, its runtime PM callbacks must be able to execute in atomic context. In the path while genpd walks the hierarchy of the ->runtime_suspend() callbacks for the device, it uses a mutex. Therefore, genpd prevents that path to be executed for IRQ safe devices. As this patch changes pm_genpd_runtime_suspend() to immediately walk the hierarchy of the ->runtime_suspend() callbacks and without needing to use a mutex, fine-grained PM is enabled throughout all the levels of runtime PM callbacks for IRQ safe devices. Unfortunately this patch also comes with a drawback, as described in the summary below. Driver's/subsystem's runtime PM callbacks may be invoked even when the genpd hasn't actually powered off the PM domain, potentially introducing unnecessary latency. However, in most cases, saving/restoring register contexts for devices are typically fast operations or can be optimized in device specific ways (e.g. shadow copies of register contents in memory, device-specific checks to see if context has been lost before restoring context, etc.). Still, in some cases the driver/subsystem may suffer from latency if runtime PM is used in a very fine-grained manner (e.g. for each IO request or xfer). To prevent that extra overhead, the driver/subsystem may deploy the runtime PM autosuspend feature. Signed-off-by: Ulf Hansson Reviewed-by: Kevin Hilman Tested-by: Geert Uytterhoeven Tested-by: Lina Iyer Signed-off-by: Rafael J. Wysocki drivers/base/power/domain.c | 363 ++++++++------------------------------------ include/linux/pm_domain.h | 7 - 2 files changed, 62 insertions(+), 308 deletions(-) commit 144c8e172b5c388ddf41fa64e154f53384ec3448 Author: Chen Yu Date: Wed Jul 29 23:53:10 2015 +0800 intel_pstate: Fix possible overflow complained by Coverity Coverity scanning performed on intel_pstate.c shows possible overflow when doing left shifting: val = pstate << 8; since pstate is of type integer, while val is of u64, left shifting pstate might lead to potential loss of upper bits. Say, if pstate equals 0x4000 0000, after pstate << 8 we will get zero assigned to val. Although pstate will not likely be that big, this patch cast the left operand to u64 before performing the left shift, to avoid complaining from Coverity. Reported-by: Coquard, Christophe Signed-off-by: Chen Yu Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fba9573b33f8bddd772195c202f6b8ec0751cedd Author: Pan Xinhui Date: Thu Jul 30 18:10:40 2015 +0800 cpufreq: Correct a freq check in cpufreq_set_policy() This check was originally added by commit 9c9a43ed2734 ("[CPUFREQ] return error when failing to set minfreq").It attempt to return an error on obviously incorrect limits when we echo xxx >.../scaling_max,min_freq Actually we just need check if new_policy->min > new_policy->max. Because at least one of max/min is copied from cpufreq_get_policy(). For example, when we echo xxx > .../scaling_min_freq, new_policy is copied from policy in cpufreq_get_policy. new_policy->max is same with policy->max. new_policy->min is set to a new value. Let me explain it in deduction method, first statement in if (): new_policy->min > policy->max policy->max == new_policy->max ==> new_policy->min > new_policy->max second statement in if(): new_policy->max < policy->min policy->max < policy->min ==>new_policy->min > new_policy->max (induction method) So we have proved that we only need check if new_policy->min > new_policy->max. After apply this patch, we can also modify ->min and ->max at same time if new freq range is very much different from current freq range. For example, if current freq range is 480000-960000, then we want to set this range to 1120000-2240000, we would fail in the past because new_policy->min > policy->max. As long as the cpufreq range is valid, we has no reason to reject the user. So correct the check to avoid such case. Signed-off-by: Pan Xinhui Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 88bd64628f4f170491b47b90d772a229b0082859 Author: Thomas Gleixner Date: Fri Jul 31 21:53:12 2015 +0200 C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Mark Salter Cc: linux-c6x-dev@linux-c6x.org arch/c6x/platforms/megamod-pic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2b501769c442cf3d2abf388651fa17f46dcd0e5f Author: Thomas Gleixner Date: Fri Jul 31 21:50:30 2015 +0200 blackfin: Prepare irq handlers for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Steven Miao Cc: adi-buildroot-devel@lists.sourceforge.net arch/blackfin/mach-bf537/ints-priority.c | 4 +++- arch/blackfin/mach-common/ints-priority.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit badae6bc94ac0614240d93428350049fa891fcad Author: Thomas Gleixner Date: Fri Jul 31 21:47:35 2015 +0200 arc/irq: Prepare idu_cascade_isr for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Vineet Gupta arch/arc/kernel/mcip.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d7185a98d576e33982cd28e65889b3e4122fe5d8 Author: Jiang Liu Date: Mon Jun 1 16:05:35 2015 +0800 sparc/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: David S. Miller Link: http://lkml.kernel.org/r/1433145945-789-27-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/sparc/kernel/irq_64.c | 12 +++++++----- arch/sparc/kernel/leon_kernel.c | 6 +++--- 2 files changed, 10 insertions(+), 8 deletions(-) commit 6a4a5b34c315be04abdc366cda7a00b7249550f3 Author: Jiang Liu Date: Mon Jun 1 16:05:17 2015 +0800 sparc/irq: Use helper irq_data_get_irq_handler_data() Use helper function irq_data_get_irq_handler_data() to hide irq_desc implementation details. This allows to move irq_data->handler_data to irq_data_common, once all usage sites are converted. Signed-off-by: Jiang Liu Cc: David S. Miller Link: http://lkml.kernel.org/r/1433145945-789-9-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/sparc/kernel/irq_64.c | 15 +++++++++------ arch/sparc/kernel/sun4d_irq.c | 4 ++-- arch/sparc/kernel/sun4m_irq.c | 6 ++++-- 3 files changed, 15 insertions(+), 10 deletions(-) commit d2109a12198edf22eb85e475c223eea14b9c3fbe Author: Jiang Liu Date: Mon Jun 1 16:05:32 2015 +0800 parisc/irq: Use access helper irq_data_get_affinity_mask() Use access helper irq_data_get_affinity_mask() to hide implementation details of struct irq_desc. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: James E.J. Bottomley Cc: Helge Deller Link: http://lkml.kernel.org/r/1433145945-789-24-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/parisc/kernel/irq.c | 12 ++++++------ drivers/parisc/iosapic.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 9d03e784bc225e7ccaa53bcdb64c8ebf96f153d7 Author: Jiang Liu Date: Mon Jun 1 16:05:31 2015 +0800 mn10300/irq: Use access helper irq_data_get_affinity_mask() Use access helper irq_data_get_affinity_mask() to hide implementation details of struct irq_desc. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: linux-am33-list@redhat.com Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: David Howells Cc: Koichi Yasutake Link: http://lkml.kernel.org/r/1433145945-789-23-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/mn10300/kernel/cevt-mn10300.c | 2 +- arch/mn10300/kernel/irq.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) commit 4ba375016f0234f8d8e7572494eac09d0b1a7252 Author: Thomas Gleixner Date: Fri Jul 31 21:59:10 2015 +0200 irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal Make irq a local variable and retrieve domain from the irq descriptor which avoid a redundant lookup. Signed-off-by: Thomas Gleixner Cc: Ralf Baechle drivers/irqchip/irq-i8259.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0509cfde038d8afb0c1df1d52c90ae847b425d97 Author: Ralf Baechle Date: Wed Jul 8 14:46:08 2015 +0200 MIPS/irqchip: Move i8259 irqchip driver to drivers/irqchip Signed-off-by: Ralf Baechle Signed-off-by: Thomas Gleixner arch/mips/Kconfig | 4 - arch/mips/kernel/Makefile | 1 - arch/mips/kernel/i8259.c | 383 -------------------------------------------- drivers/irqchip/Kconfig | 4 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-i8259.c | 383 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 388 insertions(+), 388 deletions(-) commit fdd320da84c63092fe6e155cb7b8d80f7f765fa9 Author: Rafael J. Wysocki Date: Thu Jul 30 01:45:07 2015 +0200 cpufreq: Lock CPU online/offline in cpufreq_register_driver() To protect against races with concurrent CPU online/offline, call get_online_cpus() before registering a cpufreq driver. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit 194d99c7e3ce54a8c7d8adf79fb1d8ad49a9bf9f Author: Rafael J. Wysocki Date: Wed Jul 29 03:08:57 2015 +0200 cpufreq: Replace recover_policy with new_policy in cpufreq_online() The recover_policy is unsed in cpufreq_online() to indicate whether a new policy object is created or an existing one is reinitialized. The "recover" part of the name is slightly confusing (it should be "reinitialization" rather than "recovery") and the logical not (!) operator is applied to it in almost all of the checks it is used in, so replace that variable with a new one called "new_policy" that will be true in the case of a new policy creation. While at it, drop one of the labels that is jumped to from only one spot. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 0b275352872b2641ed5c94d0f0f8c7e907bf3e3f Author: Rafael J. Wysocki Date: Wed Jul 29 03:03:44 2015 +0200 cpufreq: Separate CPU device registration from CPU online To separate the CPU online interface from the CPU device registration, split cpufreq_online() out of cpufreq_add_dev() and make cpufreq_cpu_callback() call the former, while cpufreq_add_dev() itself will only be used as the CPU device addition subsystem interface callback. Signed-off-by: Rafael J. Wysocki Suggested-by: Russell King Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 90 +++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 43 deletions(-) commit 50ba22479c324c0d9dc8134d519dcba92d83a8a7 Merge: 71b6544 3431e49 Author: Rafael J. Wysocki Date: Fri Jul 31 21:40:03 2015 +0200 Merge back earlier ACPI PM material for v4.3. commit 1eddfe8edb8f85a0d7f793090abcbdf8741455de Author: Casey Schaufler Date: Thu Jul 30 14:35:14 2015 -0700 Smack: Three symbols that should be static The kbuild test robot reported a couple of these, and the third showed up by inspection. Making the symbols static is proper. Reported-by: Fengguang Wu Signed-off-by: Casey Schaufler security/smack/smack_lsm.c | 4 ++-- security/smack/smackfs.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 0b7367017087cfe6f4514eb9e9c108ac8d6a101b Author: Joel Porquet Date: Tue Jul 7 17:18:23 2015 -0400 irqchip: Remove header drivers/irqchip/irqchip.h All drivers using the macro IRQCHIP_DECLARE have been converted to using global header include/linux/irqchip.h. Local header drivers/irqchip/irqchip.h is now useless and can be removed. Signed-off-by: Joel Porquet Cc: vgupta@synopsys.com Cc: monstr@monstr.eu Cc: ralf@linux-mips.org Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/2818400.nekF4hg2Ig@joel-zenbook Signed-off-by: Thomas Gleixner drivers/irqchip/irqchip.h | 11 ----------- 1 file changed, 11 deletions(-) commit 0a271c2a34deb98a81f94fc87380287f3a8c9c72 Author: Joel Porquet Date: Tue Jul 7 17:17:33 2015 -0400 mips/irq: prepare for drivers/irqchip/irqchip.h removal The IRQCHIP_DECLARE macro migrated to 'include/linux/irqchip.h'. See commit 91e20b5040c67c51aad88cf87db4305c5bd7f79d ("irqchip: Move IRQCHIP_DECLARE macro to include/linux/irqchip.h"). This patch removes inclusions of private header 'drivers/irqchip/irqchip.h'and replaces them with the inclusion of 'include/linux/irqchip.h'. Signed-off-by: Joel Porquet Cc: vgupta@synopsys.com Cc: monstr@monstr.eu Cc: ralf@linux-mips.org Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/3357968.0IznKtY3Q9@joel-zenbook Signed-off-by: Thomas Gleixner arch/mips/ath79/irq.c | 1 - arch/mips/bmips/irq.c | 2 +- arch/mips/kernel/i8259.c | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) commit fd4b267b3d30f4742bdf7586fed5193b67938e32 Author: Joel Porquet Date: Tue Jul 7 17:13:15 2015 -0400 microblaze/irq: prepare for drivers/irqchip/irqchip.h removal The IRQCHIP_DECLARE macro migrated to 'include/linux/irqchip.h'. See commit 91e20b5040c67c51aad88cf87db4305c5bd7f79d ("irqchip: Move IRQCHIP_DECLARE macro to include/linux/irqchip.h"). This patch removes the inclusion of private header 'drivers/irqchip/irqchip.h' and replaces it with the inclusion of 'include/linux/irqchip.h'. Signed-off-by: Joel Porquet Cc: vgupta@synopsys.com Cc: monstr@monstr.eu Cc: ralf@linux-mips.org Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/12384045.pHnZrl3CFY@joel-zenbook Signed-off-by: Thomas Gleixner arch/microblaze/kernel/intc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 34cadd9c1bcbd5ad5a1f379b013526a8046d4aed Author: Jarkko Nikula Date: Thu Jul 30 16:30:07 2015 +0300 spi: pxa2xx: Add support for Intel Sunrisepoint Major difference in LPSS SPI between Intel Sunrisepoint PCH and earlier platforms is an integrated DMA (iDMA) engine. iDMA is an IP that is private for each LPSS host controller (UART/SPI/I2C). Other differences are private register space offset, a few private registers that are in different location and FIFO thresholds. Intel Sunrisepoint LPSS SPI and iDMA devices are probed and registered in MFD layer as platform devices. Here these compound devices are detected by matching against known PCI IDs. This allows us to share pxa2xx_spi_acpi_get_pdata() for setting up the platform data instead of duplicating it in MFD part. This patch adds configuration for Intel Sunrisepoint LPSS SPI, above detection and DMA filter function that picks the DMA channel only from an associated iDMA block. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx.c | 59 ++++++++++++++++++++++++++++++++++++++++++---- include/linux/pxa2xx_ssp.h | 1 + 2 files changed, 56 insertions(+), 4 deletions(-) commit bf08f39e6088c52c6fc7cce2ef7fbbd7bf4692b9 Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:45 2015 +0200 ASoC: Export OF module alias information in missing codec drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Mark Brown sound/soc/codecs/da9055.c | 1 + sound/soc/codecs/wm8510.c | 1 + sound/soc/codecs/wm8523.c | 1 + sound/soc/codecs/wm8580.c | 1 + 4 files changed, 4 insertions(+) commit 8faf3554cb7a83413f9dfbe1a3420a81c52efe47 Author: Chen-Yu Tsai Date: Fri Jul 31 22:56:42 2015 +0800 ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I, cryptodev Enable drivers for Allwinner P2WI, PWM, cryptodev (Security System) and sun6i DMA engine. Also enable EXTCON as PHY_SUN4I_USB depends on it. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/configs/multi_v7_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 9ac87c5a0b19417f925dc61cac7198d872159a2c Author: Will Deacon Date: Fri Jul 31 11:28:54 2015 +0100 ARM: 8407/1: switch_to: Remove finish_arch_switch Fold finish_arch_switch() into switch_to(), in preparation for the removal of the finish_arch_switch call from core sched code. Signed-off-by: Will Deacon Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Russell King arch/arm/include/asm/switch_to.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 787047eea24a2443c366679ae6b5a3873a33b64e Author: Stephen Boyd Date: Wed Jul 29 00:34:48 2015 +0100 ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable Writes to /sys/.../cpuX/online fail if we determine the platform doesn't support hotplug for that CPU. Furthermore, if the cpu_die op isn't specified the system hangs when we try to offline a CPU and it comes right back online unexpectedly. Let's figure this stuff out before we make the sysfs nodes so that the online file doesn't even exist if it isn't (at least sometimes) possible to hotplug the CPU. Add a new 'cpu_can_disable' op and repoint all 'cpu_disable' implementations at it because all implementers use the op to indicate if a CPU can be hotplugged or not in a static fashion. With PSCI we may need to add a 'cpu_disable' op so that the secure OS can be migrated off the CPU we're trying to hotplug. In this case, the 'cpu_can_disable' op will indicate that all CPUs are hotpluggable by returning true, but the 'cpu_disable' op will make a PSCI migration call and occasionally fail, denying the hotplug of a CPU. This shouldn't be any worse than x86 where we may indicate that all CPUs are hotpluggable but occasionally we can't offline a CPU due to check_irq_vectors_for_cpu_disable() failing to find a CPU to move vectors to. Cc: Mark Rutland Cc: Nicolas Pitre Cc: Dave Martin Acked-by: Simon Horman [shmobile portion] Tested-by: Simon Horman Cc: Magnus Damm Cc: Tested-by: Tyler Baker Cc: Geert Uytterhoeven Signed-off-by: Stephen Boyd Signed-off-by: Russell King arch/arm/common/mcpm_platsmp.c | 12 ++++-------- arch/arm/include/asm/smp.h | 1 + arch/arm/include/asm/smp_plat.h | 9 +++++++++ arch/arm/kernel/setup.c | 2 +- arch/arm/kernel/smp.c | 15 ++++++++++++++- arch/arm/mach-shmobile/common.h | 2 +- arch/arm/mach-shmobile/platsmp.c | 4 ++-- arch/arm/mach-shmobile/smp-r8a7790.c | 2 +- arch/arm/mach-shmobile/smp-r8a7791.c | 2 +- arch/arm/mach-shmobile/smp-sh73a0.c | 2 +- 10 files changed, 35 insertions(+), 16 deletions(-) commit e80c47bd738badeaa70b1114d4cd75f892672bd3 Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:40 2015 +0200 regulator: fan53555: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Mark Brown drivers/regulator/fan53555.c | 1 + 1 file changed, 1 insertion(+) commit 98c7863c36bdf20c07e38d8bea5261902b52f98d Author: Javier Martinez Canillas Date: Thu Jul 30 18:18:27 2015 +0200 spi: xcomm: Export I2C module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Mark Brown drivers/spi/spi-xcomm.c | 1 + 1 file changed, 1 insertion(+) commit 2a46dd6c0c8450048609d90844bdfcbc53c6b002 Author: Chen-Yu Tsai Date: Fri Jul 31 22:56:41 2015 +0800 ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON, FHANDLE Enable sun6i DMA engine, sun6i P2WI, PWM, and crypto engine (Security System) drivers by default. EXTCON is needed by the updated sun4i USB PHY driver. While at it, enable FHANDLE, which is needed by systemd and newer versions of udev. Also enable CGROUPS for systemd. And get rid of POWER_RESET, as the sun6i power reset driver has been removed in favor of proper sun6i watchdog support. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/configs/sunxi_defconfig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 36d16154fd0c5cc4f61831c482379acfb3d800f4 Author: Chen-Yu Tsai Date: Fri Jul 31 22:40:59 2015 +0800 ARM: dts: sun5i: hsg-h702: Enable USB OTG controller This tablet has proper USB OTG support, using 3 GPIO pins for ID and VBUS detection, and also VBUS control. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit d747af013db7d0a0d3c5054d3856ad941f2b715c Author: Chen-Yu Tsai Date: Fri Jul 31 22:40:58 2015 +0800 ARM: dts: sun5i: hsg-h702: Enable side volume buttons with LRADC The tablet has volume up/down buttons on the side, connected to the LRADC. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-hsg-h702.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 361a4069727b1f43583314470e877e1187b35505 Author: Hans de Goede Date: Fri Jul 31 14:53:38 2015 +0200 ARM: dts: sun8i: Enable USB DRC on Ippo Q8H-A33 tablet Enable the otg/drc usb controller on the Ippo Q8H-A33 tablet, for now it is enabled in host-only mode, because true OTG support requires support for detecting and enabling Vbus through the axp221 pmic. For this to work the Vbus on the port must be enabled by u-boot, or a powered hub must be used. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 4e627fba0511546ad92ad983f938a2d6d47c95f2 Author: Mark Janssen Date: Fri Jul 31 14:53:37 2015 +0200 ARM: dts: sun5i: Enable USB DRC on A13 OLinuxIno Enable the otg/drc usb controller on the A13 OLinuxIno. Signed-off-by: Mark Janssen Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 24354cc7c2b1187ab66ee27dd891bf0d59a8624e Author: Hans de Goede Date: Fri Jul 31 14:53:36 2015 +0200 ARM: dts: sun5i: Enable USB DRC on A10s OLinuxIno Micro Enable the otg/drc usb controller on the A10s OLinuxIno Micro. Note the A10s OlinuxIno Micro always has some voltage on its otg power pin, even if the usb-vbus0-regulator is disabled, the leaked voltage is enough to make vbus-det always report 1, so we do not use vbus-det on this board. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 30 +++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) commit b511a6592860f24725f34909392885c4e3e9fe95 Author: Sudeep Holla Date: Fri Jul 31 16:41:36 2015 +0100 arm64: restore cpu suspend/resume functionality Commit 4b3dc9679cf7 ("arm64: force CONFIG_SMP=y and remove redundant #ifdefs") accidentally retained code for !CONFIG_SMP in cpu_resume function. This resulted in the hash index being zeroed in x7 after proper computation, which is then used to get the cpu context pointer while resuming. This patch removes the remanant code and restores back the cpu suspend/ resume functionality. Fixes: 4b3dc9679cf7 ("arm64: force CONFIG_SMP=y and remove redundant #ifdefs") Signed-off-by: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/kernel/sleep.S | 1 - 1 file changed, 1 deletion(-) commit f811a38300be3cdb603171aea5ad3fb42b71ca53 Author: Peter Chen Date: Fri Jul 31 16:36:30 2015 +0800 doc: usb: gadget-testing: using the updated testusb.c testusb.c at http://www.linux-usb.org/usbtest/ is out of date, using the one at the kernel source folder. Cc: Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi Documentation/usb/gadget-testing.txt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 4bc58eb16bb2352854b9c664cc36c1c68d2bfbb7 Author: Peter Chen Date: Fri Jul 31 16:36:29 2015 +0800 Doc: ABI: testing: configfs-usb-gadget-sourcesink Fix the name of attribute Cc: Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi Documentation/ABI/testing/configfs-usb-gadget-sourcesink | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8cd50626823c00ca7472b2f61cb8c0eb9798ddc0 Author: Peter Chen Date: Fri Jul 31 16:36:28 2015 +0800 Doc: ABI: testing: configfs-usb-gadget-loopback Fix the name of attribute Cc: Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi Documentation/ABI/testing/configfs-usb-gadget-loopback | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd02ea5a33059e4a753ae8bb877b698c54ee2907 Author: Krzysztof Opasiak Date: Fri Jul 31 13:46:07 2015 +0200 usb: gadget: mass_storage: Use static array for luns This patch replace dynamicly allocated luns array with static one. This simplifies the code of mass storage function and modules. Signed-off-by: Krzysztof Opasiak Acked-by: Michal Nazarewicz drivers/usb/gadget/function/f_mass_storage.c | 127 ++++++++++----------------- drivers/usb/gadget/function/f_mass_storage.h | 4 - drivers/usb/gadget/legacy/acm_ms.c | 6 -- drivers/usb/gadget/legacy/mass_storage.c | 6 -- drivers/usb/gadget/legacy/multi.c | 6 -- drivers/usb/gadget/legacy/nokia.c | 14 +-- 6 files changed, 50 insertions(+), 113 deletions(-) commit fa8ad7889d83bcf0a6cdbf6d3622f3ec019cde14 Author: Mark Rutland Date: Mon Jul 6 12:23:53 2015 +0100 arm: perf: factor arm_pmu core out to drivers To enable sharing of the arm_pmu code with arm64, this patch factors it out to drivers/perf/. A new drivers/perf directory is added for performance monitor drivers to live under. MAINTAINERS is updated accordingly. Files added previously without a corresponsing MAINTAINERS update (perf_regs.c, perf_callchain.c, and perf_event.h) are also added. Cc: Arnaldo Carvalho de Melo Cc: Greg Kroah-Hartman Cc: Ingo Molnar Cc: Linus Walleij Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Russell King Cc: Will Deacon Signed-off-by: Mark Rutland [will: augmented Kconfig help slightly] Signed-off-by: Will Deacon MAINTAINERS | 6 +- arch/arm/Kconfig | 8 +- arch/arm/include/asm/pmu.h | 154 ------ arch/arm/kernel/Makefile | 3 +- arch/arm/kernel/perf_event.c | 921 ------------------------------------ arch/arm/kernel/perf_event_v6.c | 2 +- arch/arm/kernel/perf_event_v7.c | 2 +- arch/arm/kernel/perf_event_xscale.c | 2 +- arch/arm/mach-ux500/cpu-db8500.c | 2 +- drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/perf/Kconfig | 15 + drivers/perf/Makefile | 1 + drivers/perf/arm_pmu.c | 921 ++++++++++++++++++++++++++++++++++++ include/linux/perf/arm_pmu.h | 154 ++++++ 15 files changed, 1105 insertions(+), 1089 deletions(-) commit bc1e3c4687df62a1f2ba1b6be11efbeb76145366 Author: Sudeep Holla Date: Tue Jun 30 13:56:57 2015 +0100 ARM: perf: replace arch_find_n_match_cpu_physical_id with of_cpu_device_node_get arch_find_n_match_cpu_physical_id parses the device tree to get the device node for a given logical cpu index. However, since ARM PMUs get probed after the CPU device nodes are stashed while registering the cpus, we can use of_cpu_device_node_get to avoid another DT parse. This patch replaces arch_find_n_match_cpu_physical_id with of_cpu_device_node_get to reuse the stashed value directly instead. Cc: Will Deacon Cc: Mark Rutland Signed-off-by: Sudeep Holla Signed-off-by: Will Deacon arch/arm/kernel/perf_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b6c084d7aa8bca21920cbbe13ad58572fa85ece6 Author: Will Deacon Date: Mon Jun 29 13:59:01 2015 +0100 ARM: perf: extend interrupt-affinity property for PPIs On systems containing multiple, heterogeneous clusters we need a way to associate a PMU "device" with the CPU(s) on which it exists. For PMUs that signal overflow with SPIs, this relationship is determined via the "interrupt-affinity" property, which contains a list of phandles to CPU nodes for the PMU. For PMUs using PPIs, the per-cpu nature of the interrupt isn't enough to determine the set of CPUs which actually contain the device. This patch allows the interrupt-affinity property to be specified on a PMU node irrespective of the interrupt type. For PPIs, it identifies the set of CPUs signalling the PPI in question. Tested-by: Stephen Boyd # Krait PMU Signed-off-by: Will Deacon Documentation/devicetree/bindings/arm/pmu.txt | 12 +++-- arch/arm/kernel/perf_event.c | 65 ++++++++++++++++++--------- 2 files changed, 53 insertions(+), 24 deletions(-) commit 8ae81c25cfe962a788a28e023d9a78934d807f7d Author: Stephen Boyd Date: Mon Jun 29 22:58:46 2015 +0100 arm: perf: Set affinity for PPI based PMUs For PPI based PMUs, we bail out early in of_pmu_irq_cfg() without setting the PMU's supported_cpus bitmap. This causes the smp_call_function_any() in armv7_probe_num_events() to fail. Set the bitmap to be all CPUs so that we properly probe PMUs that use PPIs. Fixes: cc88116da0d1 ("arm: perf: treat PMUs as CPU affine") Cc: Mark Rutland Signed-off-by: Stephen Boyd Signed-off-by: Will Deacon arch/arm/kernel/perf_event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5542f58c95aef67bc9016855f7c0bd6117b43100 Author: Krzysztof Opasiak Date: Fri Jul 31 13:37:45 2015 +0200 usb: gadget: mass_storage: Fix freeing luns sysfs implementation Use device_is_registered() instad of sysfs flag to determine if we should free sysfs representation of particular LUN. sysfs flag in fsg common determines if luns attributes should be exposed using sysfs. This flag is used when creating and freeing luns. Unfortunately there is no guarantee that this flag will not be changed between creation and removal of particular LUN. Especially because of lun.0 which is created during allocating instance of function. This may lead to resource leak or NULL pointer dereference: [ 62.539925] Unable to handle kernel NULL pointer dereference at virtual address 00000044 [ 62.548014] pgd = ec994000 [ 62.550679] [00000044] *pgd=6d7be831, *pte=00000000, *ppte=00000000 [ 62.556933] Internal error: Oops: 17 [#1] PREEMPT SMP ARM [ 62.562310] Modules linked in: g_mass_storage(+) [ 62.566916] CPU: 2 PID: 613 Comm: insmod Not tainted 4.2.0-rc4-00077-ge29ee91-dirty #125 [ 62.574984] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 62.581061] task: eca56e80 ti: eca76000 task.ti: eca76000 [ 62.586450] PC is at kernfs_find_ns+0x8/0xe8 [ 62.590698] LR is at kernfs_find_and_get_ns+0x30/0x48 [ 62.595732] pc : [] lr : [] psr: 40010053 [ 62.595732] sp : eca77c40 ip : eca77c38 fp : 000008c1 [ 62.607187] r10: 00000001 r9 : c0082f38 r8 : ed41ce40 [ 62.612395] r7 : c05c1484 r6 : 00000000 r5 : 00000000 r4 : c0814488 [ 62.618904] r3 : 00000000 r2 : 00000000 r1 : c05c1484 r0 : 00000000 [ 62.625417] Flags: nZcv IRQs on FIQs off Mode SVC_32 ISA ARM Segment user [ 62.632620] Control: 10c5387d Table: 6c99404a DAC: 00000015 [ 62.638348] Process insmod (pid: 613, stack limit = 0xeca76210) [ 62.644251] Stack: (0xeca77c40 to 0xeca78000) [ 62.648594] 7c40: c0814488 00000000 00000000 c05c1484 ed41ce40 c0127b88 00000000 c0824888 [ 62.656753] 7c60: ed41d038 ed41d030 ed41d000 c012af4c 00000000 c0824858 ed41d038 c02e3314 [ 62.664912] 7c80: ed41d030 00000000 ed41ce04 c02d9e8c c070eda8 eca77cb4 000008c1 c058317c [ 62.673071] 7ca0: 000008c1 ed41d030 ed41ce00 ed41ce04 ed41d000 c02da044 ed41cf48 c0375870 [ 62.681230] 7cc0: ed9d3c04 ed9d3c00 ed52df80 bf000940 fffffff0 c03758f4 c03758c0 00000000 [ 62.689389] 7ce0: bf000564 c03614e0 ed9d3c04 bf000194 c0082f38 00000001 00000000 c0000100 [ 62.697548] 7d00: c0814488 c0814488 c086b1dc c05893a8 00000000 ed7e8320 00000000 c0128b88 [ 62.705707] 7d20: ed8a6b40 00000000 00000000 ed410500 ed8a6b40 c0594818 ed7e8320 00000000 [ 62.713867] 7d40: 00000000 c0129f20 00000000 c082c444 ed8a6b40 c012a684 00001000 00000000 [ 62.722026] 7d60: c0594818 c082c444 00000000 00000000 ed52df80 ed52df80 00000000 00000000 [ 62.730185] 7d80: 00000000 00000000 00000001 00000002 ed8e9b70 ed52df80 bf0006d0 00000000 [ 62.738345] 7da0: ed8e9b70 ed410500 ed618340 c036129c ed8c1c00 bf0006d0 c080b158 ed8c1c00 [ 62.746504] 7dc0: bf0006d0 c080b158 ed8c1c08 ed410500 c0082f38 ed618340 000008c1 c03640ac [ 62.754663] 7de0: 00000000 bf0006d0 c082c8dc c080b158 c080b158 c03642d4 00000000 bf003000 [ 62.762822] 7e00: 00000000 c0009784 00000000 00000001 00000000 c05849b0 00000002 ee7ab780 [ 62.770981] 7e20: 00000002 ed4105c0 0000c53e 000000d0 c0808600 eca77e5c 00000004 00000000 [ 62.779140] 7e40: bf000000 c0095680 c08075a0 ee001f00 ed4105c0 c00cadc0 ed52df80 bf000780 [ 62.787300] 7e60: ed4105c0 bf000780 00000001 bf0007c8 c0082f38 ed618340 000008c1 c0083e24 [ 62.795459] 7e80: 00000001 bf000780 00000001 eca77f58 00000001 bf000780 00000001 c00857f4 [ 62.803618] 7ea0: bf00078c 00007fff 00000000 c00835b4 eca77f58 00000000 c0082fac eca77f58 [ 62.811777] 7ec0: f05038c0 0003b008 bf000904 00000000 00000000 bf00078c 6e72656b 00006c65 [ 62.819936] 7ee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 62.828095] 7f00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 62.836255] 7f20: 00000000 00000000 00000000 00000000 00000000 00000000 00000003 0003b008 [ 62.844414] 7f40: 0000017b c000f5c8 eca76000 00000000 0003b008 c0085df8 f04ef000 0001b8a9 [ 62.852573] 7f60: f0503258 f05030c2 f0509fe8 00000968 00000dc8 00000000 00000000 00000000 [ 62.860732] 7f80: 00000029 0000002a 00000011 00000000 0000000a 00000000 33f6eb00 0003b008 [ 62.868892] 7fa0: bef01cac c000f400 33f6eb00 0003b008 00000003 0003b008 00000000 00000003 [ 62.877051] 7fc0: 33f6eb00 0003b008 bef01cac 0000017b 00000000 0003b008 0000000b 0003b008 [ 62.885210] 7fe0: bef01ae0 bef01ad0 0001dc23 b6e8c162 800b0070 00000003 c0c0c0c0 c0c0c0c0 [ 62.893380] [] (kernfs_find_ns) from [] (pm_qos_latency_tolerance_attr_group+0x0/0x10) [ 62.903005] Code: e28dd00c e8bd80f0 e92d41f0 e2923000 (e1d0e4b4) [ 62.909115] ---[ end trace 02fb4373ef095c7b ]--- Acked-by: Michal Nazarewicz Signed-off-by: Krzysztof Opasiak Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 12 ++++++------ drivers/usb/gadget/function/f_mass_storage.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) commit 7674cba55ad66b2565f8abe8d081a6ea4269bfb6 Author: Robert Baldyga Date: Mon Jul 13 11:03:54 2015 +0200 usb: gadget: atmel_usba_udc: add missing ret value check Add missing return value check. In case of error print debug message and return error code. Signed-off-by: Robert Baldyga Acked-by: Nicolas Ferre Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/atmel_usba_udc.c | 4 ++++ 1 file changed, 4 insertions(+) commit cb009d6e0b800e3834cd5e306df90d84e08f9cf7 Author: Robert Baldyga Date: Mon Jul 13 11:03:53 2015 +0200 staging: emxx_udc: add missing usb_ep_set_maxpacket_limit() Since maxpacket_limit was introduced all UDC drivers should use usb_ep_set_maxpacket_limit() function instead of setting maxpacket value manually. ep.maxpacket_limit contains actual maximum maxpacket value supported by hardware which is needed by epautoconf. Signed-off-by: Robert Baldyga Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/staging/emxx_udc/emxx_udc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6fd82b69796cc8f313f160ac55bfd24cedc60fed Author: Robert Baldyga Date: Mon Jul 13 11:03:52 2015 +0200 usb: isp1760: udc: add missing usb_ep_set_maxpacket_limit() Since maxpacket_limit was introduced all UDC drivers should use usb_ep_set_maxpacket_limit() function instead of setting maxpacket value manually. ep.maxpacket_limit contains actual maximum maxpacket value supported by hardware which is needed by epautoconf. Signed-off-by: Robert Baldyga Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/isp1760/isp1760-udc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4ef7a4a1f097b2c17f4f2873a1595aa0aca9f6b4 Author: Robert Baldyga Date: Mon Jul 13 11:03:51 2015 +0200 usb: gadget: midi: avoid redundant f_midi_set_alt() call Function midi registers two interfaces with single set_alt() function which means that f_midi_set_alt() is called twice when configuration is set. That means that endpoint initialization and ep request allocation is done two times. To avoid this problem we do such things only once, for interface number 1 (MIDI Streaming interface). Signed-off-by: Robert Baldyga Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_midi.c | 4 ++++ 1 file changed, 4 insertions(+) commit 55d811211b139ed097ddaf40d173c258f133c130 Author: Robert Baldyga Date: Mon Jul 13 11:03:50 2015 +0200 usb: gadget: ffs: call functionfs_unbind() if _ffs_func_bind() fails Function ffs_do_functionfs_bind() calls functionfs_bind() which allocates usb request and increments refcounts. These things needs to be cleaned up by if further steps of initialization fail by calling functionfs_unbind(). Signed-off-by: Robert Baldyga Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_fs.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit decd275e62d5eef4b947fab89652fa6afdadf2f2 Author: Brian Gerst Date: Wed Jul 29 01:41:23 2015 -0400 x86/vm86: Rename vm86->v86flags and v86mask Rename v86flags to veflags, and v86mask to veflags_mask. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438148483-11932-9-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/vm86.h | 4 ++-- arch/x86/kernel/vm86_32.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) commit 1342635638cba9b7c8eac776da5e54390d14d313 Author: Brian Gerst Date: Wed Jul 29 01:41:22 2015 -0400 x86/vm86: Rename vm86->vm86_info to user_vm86 Make it clearer that this is the pointer to the userspace vm86 state area. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438148483-11932-8-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/vm86.h | 2 +- arch/x86/kernel/vm86_32.c | 70 +++++++++++++++++++++++---------------------- 2 files changed, 37 insertions(+), 35 deletions(-) commit ba3e127ec105e790eeec4034d9769e018e4a1b54 Author: Brian Gerst Date: Wed Jul 29 01:41:21 2015 -0400 x86/vm86: Clean up vm86.h includes vm86.h was being implicitly included in alot of places via processor.h, which in turn got it from math_emu.h. Break that chain and explicitly include vm86.h in all files that need it. Also remove unused vm86 field from math_emu_info. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1438148483-11932-7-git-send-email-brgerst@gmail.com [ Fixed build failure. ] Signed-off-by: Ingo Molnar arch/x86/include/asm/math_emu.h | 6 +----- arch/x86/include/asm/syscalls.h | 1 + arch/x86/kernel/process_32.c | 1 + arch/x86/kernel/signal.c | 1 + arch/x86/kernel/traps.c | 1 + arch/x86/kernel/vm86_32.c | 1 + arch/x86/math-emu/get_address.c | 1 + arch/x86/mm/fault.c | 1 + drivers/scsi/dpt_i2o.c | 3 +++ 9 files changed, 11 insertions(+), 5 deletions(-) commit af3e565a8542c4be699a0403b88fd6c691f5914f Author: Ingo Molnar Date: Fri Jul 31 10:59:20 2015 +0200 x86/vm86: Move the vm86 IRQ definitions to vm86.h Move vm86 specific definitions from irq_vectors.h to vm86.h. Based on patch from Brian Gerst. Originally-from: Brian Gerst 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/1438148483-11932-6-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/irq_vectors.h | 10 ---------- arch/x86/include/asm/vm86.h | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 11 deletions(-) commit 5ed92a8ab71f8865ba07811429c988c72299b315 Author: Brian Gerst Date: Wed Jul 29 01:41:19 2015 -0400 x86/vm86: Use the normal pt_regs area for vm86 Change to use the normal pt_regs area to enter and exit vm86 mode. This is done by increasing the padding at the top of the stack to make room for the extra vm86 segment slots in the IRET frame. It then saves the 32-bit regs in the off-stack vm86 data, and copies in the vm86 regs. Exiting back to 32-bit mode does the reverse. This allows removing the hacks to jump directly into the exit asm code due to having to change the stack pointer. Returning normally from the vm86 syscall and the exception handlers allows things like ptrace and auditing to work properly. Signed-off-by: Brian Gerst Acked-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 Link: http://lkml.kernel.org/r/1438148483-11932-5-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/entry/entry_32.S | 24 +------- arch/x86/include/asm/thread_info.h | 11 ++-- arch/x86/include/asm/vm86.h | 6 +- arch/x86/kernel/signal.c | 3 + arch/x86/kernel/vm86_32.c | 110 +++++++++++++++---------------------- 5 files changed, 60 insertions(+), 94 deletions(-) commit 90c6085a248f8f964588617f51329688bcc9f2bc Author: Brian Gerst Date: Wed Jul 29 01:41:18 2015 -0400 x86/vm86: Eliminate 'struct kernel_vm86_struct' Now there is no vm86-specific data left on the kernel stack while in userspace, except for the 32-bit regs. Signed-off-by: Brian Gerst Acked-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 Link: http://lkml.kernel.org/r/1438148483-11932-4-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/vm86.h | 25 +----------- arch/x86/kernel/vm86_32.c | 95 +++++++++++++++++++-------------------------- 2 files changed, 42 insertions(+), 78 deletions(-) commit d4ce0f26c790af8e829d3fad0a6787f40f98e24f Author: Brian Gerst Date: Wed Jul 29 01:41:17 2015 -0400 x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86' Move the non-regs fields to the off-stack data. Signed-off-by: Brian Gerst Acked-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 Link: http://lkml.kernel.org/r/1438148483-11932-3-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/vm86.h | 16 ++++++++-------- arch/x86/kernel/vm86_32.c | 42 ++++++++++++++++++++++-------------------- 2 files changed, 30 insertions(+), 28 deletions(-) commit 9fda6a0681e070b496235b132bc70ceb80300211 Author: Brian Gerst Date: Wed Jul 29 01:41:16 2015 -0400 x86/vm86: Move vm86 fields out of 'thread_struct' Allocate a separate structure for the vm86 fields. Signed-off-by: Brian Gerst Acked-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 Link: http://lkml.kernel.org/r/1438148483-11932-2-git-send-email-brgerst@gmail.com [ Build fixes. ] Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 11 +++------- arch/x86/include/asm/vm86.h | 19 ++++++++++++++++- arch/x86/kernel/process.c | 3 +++ arch/x86/kernel/vm86_32.c | 46 +++++++++++++++++++++++----------------- arch/x86/mm/fault.c | 6 ++++-- 5 files changed, 55 insertions(+), 30 deletions(-) commit e800eb39e3f586e46a2007f72d3b609f6e3b888d Author: Andy Lutomirski Date: Wed Jul 29 14:35:43 2015 -0700 selftests/x86/vm86: Fix entry_from_vm86 test on 64-bit kernels The test failed due to an oversight on my part when run on a 64-bit kernel. vm86 isn't expected to work at all, and I mistakenly failed one part of the test because no signal was delivered. 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/502c8bef877b33fe4943885ded6125dfcc7892db.1438205722.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/entry_from_vm86.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit a5b9e5a2f14f25a8dae987494d50ad3aac7366b6 Author: Andy Lutomirski Date: Thu Jul 30 14:31:34 2015 -0700 x86/ldt: Make modify_ldt() optional The modify_ldt syscall exposes a large attack surface and is unnecessary for modern userspace. Make it optional. Signed-off-by: Andy Lutomirski Reviewed-by: Kees Cook Cc: Andrew Cooper Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jan Beulich Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sasha Levin Cc: Steven Rostedt Cc: Thomas Gleixner Cc: security@kernel.org Cc: xen-devel Link: http://lkml.kernel.org/r/a605166a771c343fd64802dece77a903507333bd.1438291540.git.luto@kernel.org [ Made MATH_EMULATION dependent on MODIFY_LDT_SYSCALL. ] Signed-off-by: Ingo Molnar arch/x86/Kconfig | 18 ++++++++++++++++++ arch/x86/include/asm/mmu.h | 2 ++ arch/x86/include/asm/mmu_context.h | 28 +++++++++++++++++++++------- arch/x86/kernel/Makefile | 3 ++- arch/x86/kernel/cpu/perf_event.c | 4 ++++ arch/x86/kernel/process_64.c | 2 ++ arch/x86/kernel/step.c | 2 ++ kernel/sys_ni.c | 1 + 8 files changed, 52 insertions(+), 8 deletions(-) commit bae2c2d421cdea9dd8d62425eef99e389584cdb3 Author: Robin Murphy Date: Wed Jul 29 19:46:05 2015 +0100 iommu/arm-smmu: Sort out coherency Currently, we detect whether the SMMU has coherent page table walk capability from the IDR0.CTTW field, and base our cache maintenance decisions on that. In preparation for fixing the bogus DMA API usage, however, we need to ensure that the DMA API agrees about this, which necessitates deferring to the dma-coherent property in the device tree for the final say. As an added bonus, since systems exist where an external CTTW signal has been tied off incorrectly at integration, allowing DT to override it offers a neat workaround for coherency issues with such SMMUs. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon Documentation/devicetree/bindings/iommu/arm,smmu.txt | 6 ++++++ drivers/iommu/arm-smmu.c | 20 +++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) commit 28c8b4045b18b013e05656b493ce9a57cbf1f09a Author: Will Deacon Date: Thu Jul 16 17:50:12 2015 +0100 iommu/arm-smmu: Limit 2-level strtab allocation for small SID sizes If the StreamIDs in a system can all be resolved by a single level-2 stream table (i.e. SIDSIZE < SPLIT), then we currently get our maths wrong and allocate the largest strtab we support, thanks to unsigned overflow in our calculation. This patch fixes the issue by checking the SIDSIZE explicitly when calculating the size of our first-level stream table. Reported-by: Matt Evans Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit ec11d63c677bbba15e65a35f5ba06c1d6eba4dbe Author: Marc Zyngier Date: Wed Jul 15 11:55:19 2015 +0100 iommu/arm-smmu: Fix MSI memory attributes to match specification The MSI memory attributes in the SMMUv3 driver are from an older revision of the spec, which doesn't match the current implementations. Out with the old, in with the new. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ccd6385dfbb7b2f2e6670b5cfc55bb7ec0aa3839 Author: Marc Zyngier Date: Wed Jul 15 11:55:18 2015 +0100 iommu/arm-smmu: Fix enabling of PRIQ interrupt When an ARM SMMUv3 instance supports PRI, the driver registers an interrupt handler, but fails to enable the generation of such interrupt at the SMMU level. This patches simply moves the enable flags to a variable that gets updated by the PRI handling code before being written to the SMMU register. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon drivers/iommu/arm-smmu-v3.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 26c78daade0fbeef7f20bae3c5508a7c571078cd Author: Peter E. Berger Date: Fri Jul 31 01:55:08 2015 -0500 USB: io_ti: Add heartbeat to keep idle EP/416 ports from disconnecting When using Edgeport/416 models with newer firmware (sometime after firmware version 4.80.0), idle ports are automatically bounced (disconnected and then reconnected) approximately every 60 seconds. This breaks programs (e.g: minicom) where idle periods are common, normal and expected. I confirmed with the manufacturer (Digi International) that Edgeport/416 models now ship from the factory with firmware that expects periodic "heartbeat" queries from the driver to keep idle ports alive. This patch implements heartbeat support using the mechanism Digi suggested (periodically requesting an I2C descriptor address) that appears effective on Edgeports running the newer firmware (that require it) and benign on Edgeport devices running older firmware. Since we know that Edgeport firmware version 4.80 (the version distributed in /lib/firmware/down3.bin and used for Edgeports that are either running still older versions or have no onboard non-volatile firmware image) does not require heartbeat support, this patch schedules heartbeats only on Edgeport/416 devices, and only if they are running firmware versions newer than 4.80. Signed-off-by: Peter E. Berger [johan: minor style changes ] Signed-off-by: Johan Hovold drivers/usb/serial/io_ti.c | 95 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) commit dcb8e99dbc8a8a7825e39a43e79558d46b20d1e5 Author: Peter E. Berger Date: Fri Jul 31 01:55:07 2015 -0500 USB: io_ti: Add firmware image sanity checks Do what we can to verify that the driver's firmware image is valid (before attempting to download it to the Edgeport) by adding a new function, check_fw_sanity(), and a call to it in in download_fw(). Note: It looks like some Edgeports (models like the EP/416 with on-board E2PROM) may be able to function even if the on-disk firmware image is bad or missing, iff their local E2PROM versions are valid. But most Edgeport models (I've tried EP/1 and EP/8) do not appear to have this capability and they always rely on the on-disk firmware image. I tested an implementation that calls the new check_fw_sanity() function at the top of download_fw() and, rather than simply returning an error if the firmware image is bad or missing, it saves the result and defers the decision until later when it may find that it is running on a E2PROM-equipped device with a valid image. But I think this is messier than it is worth (adding still more messiness to the already very messy download_fw()) for such a marginal possible benefit. So, at least for now, I have chosen the much simpler approach of returning an error whenever edge_startup() fails to load an on-disk firmware image, or check_fw_sanity() indicates that it is unusable. Signed-off-by: Peter E. Berger [johan: drop redundant checksum mask ] Signed-off-by: Johan Hovold drivers/usb/serial/io_ti.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) commit b7b1d645bb7a3dab4be9d4114cbe319b67a45c01 Author: Remy van Elst Date: Fri Jul 31 10:59:50 2015 +0200 ARM: dts: sun4i: Enable USB DRC on A10 OLinuxIno Lime Enable the otg/drc usb controller on the A10 OLinuxIno Lime. Signed-off-by: Remy van Elst Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit c0e34831c8d9d8bf24f7bc9e12663e3daf1646ef Author: Peter E. Berger Date: Fri Jul 31 01:55:06 2015 -0500 USB: io_ti: Fix firmware version handling The io_ti driver fails to download firmware to Edgeport devices such as the EP/416, even when the on-disk firmware image (/lib/firmware/edgeport/down3.bin) is more current than the version on the EP/416. The current download code is broken in a few ways. Notably it mis-uses global variables OperationalMajorVersion and OperationalMinorVersion (reading their values before they've been properly initialized and subsequently initializing them multiple times without synchronization). This patch drops the global variables and replaces the redundant calls to request_firmware()/release_firmware() in download_fw() with a single call pair in edge_startup(); the firmware image pointer is then passed to download_fw() and build_i2c_fw_hdr(). Signed-off-by: Peter E. Berger Signed-off-by: Johan Hovold drivers/usb/serial/io_ti.c | 114 ++++++++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 49 deletions(-) commit c3ece7e70dd8fab4fd3e4b9a74ad2df4cfa22e11 Author: Peter E. Berger Date: Fri Jul 31 01:55:05 2015 -0500 USB: io_ti: Increase insufficient timeout for firmware downloads The io_ti driver fails to download firmware to Edgeport devices such as the EP/416 and EP/421 (devices with on-board E2PROM). One of the problems is that the default 1 second timeout in ti_vsend_sync() is insufficient for download operations. This patch increases the download timeout to 10 seconds. Signed-off-by: Peter E. Berger Signed-off-by: Johan Hovold drivers/usb/serial/io_ti.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) commit dff8a207815a605872dfc5bffc1bae1cad29d87c Author: Keerthy Date: Thu Jun 18 13:31:13 2015 +0530 ARM: dts: am4372: Set the default clock rate for dpll_clksel_mac_clk clock cpsw needs the clock to be running at 50MHz in kernel. Hence setting the default rate. Signed-off-by: Keerthy Signed-off-by: Tero Kristo arch/arm/boot/dts/am4372.dtsi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 93c03a2c36d2bc70d42acdeef12d0ac156ffecda Author: Keerthy Date: Thu Jun 18 13:31:12 2015 +0530 ARM: dts: AM437X: add dpll_clksel_mac_clk node The patch adds the missing dpll_clksel_mac_clk clock node. Signed-off-by: Keerthy Signed-off-by: Tero Kristo arch/arm/boot/dts/am43xx-clocks.dtsi | 9 +++++++++ drivers/clk/ti/clk-43xx.c | 1 + 2 files changed, 10 insertions(+) commit b76da4d8758995437a831748dfca6f64a0e31c95 Author: Ezra Savard Date: Fri Aug 29 11:10:33 2014 -0700 ARM: zynq: DT: Add zc702 pushbuttons to DT as gpio-keys Adds the two MIO connected pushbuttons on the zc702 board to the devicetree as a single multi-key device for us with the gpio-keys driver. Signed-off-by: Ezra Savard Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-zc702.dts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 6de663fe33b35fc95e751f907aa28e608c38f121 Author: Alex Wilson Date: Fri Jul 17 20:23:55 2015 -0600 ARM: zynq: DT: Add missing interrupt for L2 pl310 Add pl310 interrupt to the Zynq devicetree. Signed-off-by: Alex Wilson Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-7000.dtsi | 1 + 1 file changed, 1 insertion(+) commit 1837649fd350bf25e20d05dbdd4449160ad0219b Author: Punnaiah Choudary Kalluri Date: Thu Nov 27 20:47:33 2014 +0530 Documentation: devicetree: Add ECC information to synopsys ddr controller Add ECC information to synopsys ddr memory controller. Signed-off-by: Punnaiah Choudary Kalluri Signed-off-by: Michal Simek Documentation/devicetree/bindings/memory-controllers/synopsys.txt | 4 ++++ 1 file changed, 4 insertions(+) commit f49310dc62f68ae9f905f9a1e42224fa23867f47 Author: Michal Simek Date: Mon Jul 27 16:13:34 2015 +0200 ARM64: zynqmp: Move SPI nodes to the right location Keep nodes sorted. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 48 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) commit 8fd7a775c52721a440b7fa42945793459964dc4f Author: Michal Simek Date: Mon Jul 27 16:09:29 2015 +0200 ARM64: zynqmp: Move uart and ttcs to the right location Sort nodes in DTSI. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 120 ++++++++++++++++----------------- 1 file changed, 60 insertions(+), 60 deletions(-) commit 0fcb064f0f596beb6f4952e24798142294179d67 Author: Michal Simek Date: Mon Jul 27 11:42:12 2015 +0200 ARM64: zynqmp: Enable spi flashes on ep108 Enable spi flashes on ep108. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit c590974629c958cb93d0b0c7ca40bac546031a2c Author: Michal Simek Date: Mon Jul 27 11:38:46 2015 +0200 ARM64: zynqmp: Add eeprom memories on i2c bus Add i2c eeprom memories on i2c bus. Signed-off-by: Michal Simek Reviewed-by: Shubhrajyoti Datta arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 34ad39b1452f61161bd20b99b189a3f74d27c580 Author: Michal Simek Date: Mon Jul 27 11:24:55 2015 +0200 ARM64: zynqmp: Enable sdhci on ep108 Enable both sdhcis on ep108. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit c7c09d192f6556904e48b2498909b43b7e60d5e0 Author: Michal Simek Date: Mon Jul 27 11:23:43 2015 +0200 ARM64: zynqmp: Enable watchdog on ep108 Enable watchdog on ep108. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 4 ++++ 1 file changed, 4 insertions(+) commit 22eda14afc10a5a7b9536cae2a50e92bd64a7b9e Author: Michal Simek Date: Mon Jul 27 11:21:20 2015 +0200 ARM64: zynqmp: Add DWC3 usb support Add usb nodes to DTSI and enable both of them on ep108. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 12 ++++++++++++ arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) commit ff92e3614aadadd085c14b4bde368e0e78e36d4f Author: Michal Simek Date: Mon Jul 27 11:18:04 2015 +0200 ARM64: zynqmp: Add SMMU support Add SMMU DT node to DTSI. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 3a8691f5300a4933a54bf8db8d5754b68a92e3c2 Author: Michal Simek Date: Mon Jul 27 11:15:38 2015 +0200 ARM64: zynqmp: Add CANs node for platform Also enable can0 for ep108. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 4 ++++ arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) commit b72b44b617d21e01d3f73069a908e75c4e91c5bd Author: Michal Simek Date: Mon Jul 27 11:09:30 2015 +0200 ARM64: zynqmp: Use zynqmp specific compatible string for gpio The patch: "gpio: Added support to Zynq Ultrascale+ MPSoC" (sha1: bdf7a4ae371894b4dc10b5820006b0a82d484929) added zynqmp specific features. This patch is switching the driver to use the zynqmp compatible string. Also enable the driver for ep108 platform. Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 4 ++++ arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 8fae442f8868694ad5937292f1920a21b741e935 Author: Suneel Garapati Date: Wed Jun 10 15:46:56 2015 +0530 devicetree: xilinx: zynqmp: add sata node add sata node with sata fixed clock nodes in dtsi file. enable sata in zynqmp-ep108.dts with broken-gen2. Signed-off-by: Suneel Garapati Signed-off-by: Michal Simek arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 5 +++++ arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 15 +++++++++++++++ 2 files changed, 20 insertions(+) commit 2a742cedcf13572999436676cbe36c3a9b733b0f Author: Oleg Nesterov Date: Tue Jul 21 15:40:36 2015 +0200 uprobes: Fix the waitqueue_active() check in xol_free_insn_slot() The xol_free_insn_slot()->waitqueue_active() check is buggy. We need mb() after we set the conditon for wait_event(), or xol_take_insn_slot() can miss the wakeup. Signed-off-by: Oleg Nesterov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Pratyush Anand Cc: Srikar Dronamraju Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134036.GA4799@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 1 + 1 file changed, 1 insertion(+) commit 704bde3cc26a4cb34386c164107b59e09745a022 Author: Oleg Nesterov Date: Tue Jul 21 15:40:33 2015 +0200 uprobes: Use vm_special_mapping to name the XOL vma Change xol_add_vma() to use _install_special_mapping(), this way we can name the vma installed by uprobes. Currently it looks like private anonymous mapping, this is confusing and complicates the debugging. With this change /proc/$pid/maps reports "[uprobes]". As a side effect this will cause core dumps to include the XOL vma and I think this is good; this can help to debug the problem if the app crashed because it was probed. Signed-off-by: Oleg Nesterov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Pratyush Anand Cc: Srikar Dronamraju Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134033.GA4796@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit f58bea2fec63db72f8050ade709358257e9102ab Author: Oleg Nesterov Date: Tue Jul 21 15:40:31 2015 +0200 uprobes: Fix the usage of install_special_mapping() install_special_mapping(pages) expects that "pages" is the zero- terminated array while xol_add_vma() passes &area->page, this means that special_mapping_fault() can wrongly use the next member in xol_area (vaddr) as "struct page *". Fortunately, this area is not expandable so pgoff != 0 isn't possible (modulo bugs in special_mapping_vmops), but still this does not look good. Signed-off-by: Oleg Nesterov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Pratyush Anand Cc: Srikar Dronamraju Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134031.GA4789@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit db087ef69a2b155ae001665bf0b3806abde7ee34 Author: Oleg Nesterov Date: Tue Jul 21 15:40:28 2015 +0200 uprobes/x86: Make arch_uretprobe_is_alive(RP_CHECK_CALL) more clever The previous change documents that cleanup_return_instances() can't always detect the dead frames, the stack can grow. But there is one special case which imho worth fixing: arch_uretprobe_is_alive() can return true when the stack didn't actually grow, but the next "call" insn uses the already invalidated frame. Test-case: #include #include jmp_buf jmp; int nr = 1024; void func_2(void) { if (--nr == 0) return; longjmp(jmp, 1); } void func_1(void) { setjmp(jmp); func_2(); } int main(void) { func_1(); return 0; } If you ret-probe func_1() and func_2() prepare_uretprobe() hits the MAX_URETPROBE_DEPTH limit and "return" from func_2() is not reported. When we know that the new call is not chained, we can do the more strict check. In this case "sp" points to the new ret-addr, so every frame which uses the same "sp" must be dead. The only complication is that arch_uretprobe_is_alive() needs to know was it chained or not, so we add the new RP_CHECK_CHAIN_CALL enum and change prepare_uretprobe() to pass RP_CHECK_CALL only if !chained. Note: arch_uretprobe_is_alive() could also re-read *sp and check if this word is still trampoline_vaddr. This could obviously improve the logic, but I would like to avoid another copy_from_user() especially in the case when we can't avoid the false "alive == T" positives. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134028.GA4786@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/uprobes.c | 5 ++++- include/linux/uprobes.h | 1 + kernel/events/uprobes.c | 14 +++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) commit 86dcb702e74b8ab7d3b2d36984ef00671cea73b9 Author: Oleg Nesterov Date: Tue Jul 21 15:40:26 2015 +0200 uprobes: Add the "enum rp_check ctx" arg to arch_uretprobe_is_alive() arch/x86 doesn't care (so far), but as Pratyush Anand pointed out other architectures might want why arch_uretprobe_is_alive() was called and use different checks depending on the context. Add the new argument to distinguish 2 callers. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134026.GA4779@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/uprobes.c | 3 ++- include/linux/uprobes.h | 7 ++++++- kernel/events/uprobes.c | 9 ++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) commit a5b7e1a89b820f2b9b23634ca4c59b555e8d9a0d Author: Oleg Nesterov Date: Tue Jul 21 15:40:23 2015 +0200 uprobes: Change prepare_uretprobe() to (try to) flush the dead frames Change prepare_uretprobe() to flush the !arch_uretprobe_is_alive() return_instance's. This is not needed correctness-wise, but can help to avoid the failure caused by MAX_URETPROBE_DEPTH. Note: in this case arch_uretprobe_is_alive() can be false positive, the stack can grow after longjmp(). Unfortunately, the kernel can't 100% solve this problem, but see the next patch. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134023.GA4776@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 5eeb50de42fd3251845d03c556db012267c72b3f Author: Oleg Nesterov Date: Tue Jul 21 15:40:21 2015 +0200 uprobes: Change handle_trampoline() to flush the frames invalidated by longjmp() Test-case: #include #include jmp_buf jmp; void func_2(void) { longjmp(jmp, 1); } void func_1(void) { if (setjmp(jmp)) return; func_2(); printf("ERR!! I am running on the caller's stack\n"); } int main(void) { func_1(); return 0; } fails if you probe func_1() and func_2() because handle_trampoline() assumes that the probed function should must return and hit the bp installed be prepare_uretprobe(). But in this case func_2() does not return, so when func_1() returns the kernel uses the no longer valid return_instance of func_2(). Change handle_trampoline() to unwind ->return_instances until we know that the next chain is alive or NULL, this ensures that the current chain is the last we need to report and free. Alternatively, every return_instance could use unique trampoline_vaddr, in this case we could use it as a key. And this could solve the problem with sigaltstack() automatically. But this approach needs more changes, and it puts the "hard" limit on MAX_URETPROBE_DEPTH. Plus it can not solve another problem partially fixed by the next patch. Note: this change has no effect on !x86, the arch-agnostic version of arch_uretprobe_is_alive() just returns "true". TODO: as documented by the previous change, arch_uretprobe_is_alive() can be fooled by sigaltstack/etc. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134021.GA4773@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 7b868e4802a86d867aad1be0471b5767d9c20e10 Author: Oleg Nesterov Date: Tue Jul 21 15:40:18 2015 +0200 uprobes/x86: Reimplement arch_uretprobe_is_alive() Add the x86 specific version of arch_uretprobe_is_alive() helper. It returns true if the stack frame mangled by prepare_uretprobe() is still on stack. So if it returns false, we know that the probed function has already returned. We add the new return_instance->stack member and change the generic code to initialize it in prepare_uretprobe, but it should be equally useful for other architectures. TODO: this assumes that the probed application can't use multiple stacks (say sigaltstack). We will try to improve this logic later. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134018.GA4766@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/uprobes.c | 5 +++++ include/linux/uprobes.h | 1 + kernel/events/uprobes.c | 1 + 3 files changed, 7 insertions(+) commit 97da89767d398c1dfa1f34e5f312eb8ebb382f7f Author: Oleg Nesterov Date: Tue Jul 21 15:40:16 2015 +0200 uprobes: Export 'struct return_instance', introduce arch_uretprobe_is_alive() Add the new "weak" helper, arch_uretprobe_is_alive(), used by the next patches. It should return true if this return_instance is still valid. The arch agnostic version just always returns true. The patch exports "struct return_instance" for the architectures which want to override this hook. We can also cleanup prepare_uretprobe() if we pass the new return_instance to arch_uretprobe_hijack_return_addr(). Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134016.GA4762@redhat.com Signed-off-by: Ingo Molnar include/linux/uprobes.h | 10 ++++++++++ kernel/events/uprobes.c | 14 +++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) commit a83cfeb92132c279b20bbc8ed3cef833b0fe417e Author: Oleg Nesterov Date: Tue Jul 21 15:40:13 2015 +0200 uprobes: Change handle_trampoline() to find the next chain beforehand No functional changes, preparation. Add the new helper, find_next_ret_chain(), which finds the first !chained entry and returns its ->next. Yes, it is suboptimal. We probably want to turn ->chained into ->start_of_this_chain pointer and avoid another loop. But this needs the boring changes in dup_utask(), so lets do this later. Change the main loop in handle_trampoline() to unwind the stack until ri is equal to the pointer returned by this new helper. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134013.GA4755@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) commit 6c58d0e4cc26ea8882928e64c0de9afed4fc37cb Author: Oleg Nesterov Date: Tue Jul 21 15:40:10 2015 +0200 uprobes: Change prepare_uretprobe() to use uprobe_warn() Turn the last pr_warn() in uprobes.c into uprobe_warn(). While at it: - s/kzalloc/kmalloc, we initialize every member of 'ri' - remove the pointless comment above the obvious code Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134010.GA4752@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 0b5256c7f173258b19d98364adb57f707dda22f3 Author: Oleg Nesterov Date: Tue Jul 21 15:40:08 2015 +0200 uprobes: Send SIGILL if handle_trampoline() fails 1. It doesn't make sense to continue if handle_trampoline() fails, change handle_swbp() to always return after this call. 2. Turn pr_warn() into uprobe_warn(), and change handle_trampoline() to send SIGILL on failure. It is pointless to return to user mode with the corrupted instruction_pointer() which we can't restore. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134008.GA4745@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) commit 2bb5e840e873f8778a41801141771f54f547fa65 Author: Oleg Nesterov Date: Tue Jul 21 15:40:06 2015 +0200 uprobes: Introduce free_ret_instance() We can simplify uprobe_free_utask() and handle_uretprobe_chain() if we add a simple helper which does put_uprobe/kfree and returns the ->next return_instance. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134006.GA4740@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit f231722a2b27ee99cbcd0c6bcf4c866612b78137 Author: Oleg Nesterov Date: Tue Jul 21 15:40:03 2015 +0200 uprobes: Introduce get_uprobe() Cosmetic. Add the new trivial helper, get_uprobe(). It matches put_uprobe() we already have and we can simplify a couple of its users. Tested-by: Pratyush Anand Signed-off-by: Oleg Nesterov Acked-by: Srikar Dronamraju Acked-by: Anton Arapov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20150721134003.GA4736@redhat.com Signed-off-by: Ingo Molnar kernel/events/uprobes.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit b1c599b8ff80ea79b9f8277a3f9f36a7b0cfedce Author: Mathias Krause Date: Fri Jul 24 09:15:11 2015 +0200 x86/cpufeature: Add feature bit for Intel's Silicon Debug CPUID bit Add a CPUID feature bit for the SDBG (Silicon Debug) CPU feature found on recent Intel systems starting with Haswell. Using the IA32_DEBUG_INTERFACE MSR (index C80H) one can at least detect if SDBG has been enabled by the firmware and if it has been used or not. Signed-off-by: Mathias Krause Signed-off-by: Borislav Petkov Cc: Aaron Lu Cc: Dave Hansen Cc: Dirk Brandewie Cc: H. Peter Anvin Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ross Zwisler Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437330403-12102-1-git-send-email-minipli@googlemail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/cpufeature.h | 1 + 1 file changed, 1 insertion(+) commit 6835fe4846756deb7ca7447fb7bdba6ecb21bd30 Author: Michal Simek Date: Thu Feb 12 10:59:17 2015 +0100 ARM: dts: zynq: Add OCM node Add OCM node for all zynq boards. OCM location can changed but for all current boards this is the location where OCM is.` Signed-off-by: Michal Simek arch/arm/boot/dts/zynq-7000.dtsi | 2 +- arch/arm/boot/dts/zynq-zc702.dts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) commit 555ee95a0a5a525ad2f1654fab0bd157de832b4f Merge: 8400935 de734f8 Author: Ingo Molnar Date: Fri Jul 31 10:27:19 2015 +0200 Merge branch 'timers/nohz-for-tip' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/nohz Pull NOHZ updates from Frederic Weisbecker: - Fix some jiffies based cputime assumptions. No real harm because the concerned code isn't used by full dynticks. - Simplify jiffies <-> usecs conversions. Remove dead code. - Remove early hacks on nohz full code that avoided messing up idle nohz internals. Now nohz integrates well full and idle and such hack have become needless. - Restart nohz full tick from irq exit. A simplification and a preparation for future optimization on scheduler kick to nohz full. - Simple code cleanups. - Tile driver isolation enhancement on top of nohz. Signed-off-by: Ingo Molnar commit e4a9288942392965bd5cfad93d9996b83c0dc4a6 Author: Nathan Lynch Date: Fri Jul 17 16:01:02 2015 -0500 ARM: zynq: reserve space for jump target in secondary trampoline Add a zero argument to the .word directive in zynq_secondary_trampoline. Without an expression the assembler emits nothing for the .word directive. This makes it so that the intended range is communicated to ioremap and outer_flush_range in zynq_cpun_start; e.g. for LE trampoline_code_size evaluates to 12 now instead of 8. Found by inspection. I'm not aware of any real problem this fixes. Tested by doing on online/offline loop on ZC702. Signed-off-by: Nathan Lynch Signed-off-by: Michal Simek arch/arm/mach-zynq/headsmp.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07e4d3d9e281136fdd781e8c3b9146b97f2d28d6 Author: Masahiro Yamada Date: Mon Jul 27 16:36:42 2015 +0900 clk: zynq: remove redundant $(CONFIG_ARCH_ZYNQ) in Makefile Kbuild descends into drivers/clk/zynq/ only when CONFIG_ARCH_ZYNQ is enabled. (see drivers/clk/Makefile) $(CONFIG_ARCH_ZYNQ) in drivers/clk/zynq/Makefile always evaluates to 'y'. Signed-off-by: Masahiro Yamada Signed-off-by: Michal Simek drivers/clk/zynq/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6448b76ab260457d78e9d09465afaec2697e20d Author: Soren Brinkmann Date: Fri Jun 26 09:04:32 2015 -0700 MAINTAINERS: Update Zynq git tree location The git tree for Zynq moved to Github. Update the MAINTAINERS record to reflect the change. Signed-off-by: Soren Brinkmann Signed-off-by: Michal Simek MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 014dc90b66c8d0b5f5a9400440727c134ee5e5a3 Author: Andy Lutomirski Date: Thu Jul 30 14:31:33 2015 -0700 selftests/x86, x86/ldt: Add a selftest for modify_ldt() This tests general modify_ldt() behavior (only writes, so far) as well as synchronous updates via IPI. It fails on old kernels. I called this ldt_gdt because I'll add set_thread_area() tests to it at some point. Signed-off-by: Andy Lutomirski Reviewed-by: Kees Cook Cc: Andrew Cooper Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jan Beulich Cc: Konrad Rzeszutek Wilk Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sasha Levin Cc: Steven Rostedt Cc: Thomas Gleixner Cc: security@kernel.org Cc: xen-devel Link: http://lkml.kernel.org/r/dcfda65dad07ff5a3ea97a9172b5963bf8031b2e.1438291540.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 2 +- tools/testing/selftests/x86/ldt_gdt.c | 576 ++++++++++++++++++++++++++++++++++ 2 files changed, 577 insertions(+), 1 deletion(-) commit 5b929bd11df23922daf1be5d52731cc3900c1d79 Merge: b2c5110 37868fe Author: Ingo Molnar Date: Fri Jul 31 10:23:35 2015 +0200 Merge branch 'x86/urgent' into x86/asm, before applying dependent patches Signed-off-by: Ingo Molnar commit 41d279aaf5b57a050a08fa88c70aad1890e018cd Merge: acd632e aa53c09 Author: Ingo Molnar Date: Fri Jul 31 09:59:50 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Force period term to overload global settings, i.e. previously this command line: $ perf record -e 'cpu/instructions,period=20000/',cycles -c 1000 sleep 1 would result in both events having a period equal to 1000, with the fix we get something saner: $ perf evlist -v | grep period cpu/instructions,period=20000/: ... { sample_period, sample_freq }: 20000, ... cycles: ... { sample_period, sample_freq }: 1000 ... $ (Jiri Olsa) Infrastructure changes: - Use the dummy software event with freq=0 in the twatch.py python binding example, to avoid disabling nohz. (Arnaldo Carvalho de Melo) - Add some missing constants to the python binding. (Arnaldo Carvalho de Melo) - Fix mismatched declarations for elf_getphdrnum, that happens only in the corner case where this function is not found on the system. (Arnaldo Carvalho de Melo) - Add build test for having ending double slash. (Jiri Olsa) - Introduce callgraph_set for callgraph option. (Kan Liang) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit acd632eb64b6cd8e25583bb248c36aa937b8f021 Merge: 4b0c53e 5542b2a Author: Ingo Molnar Date: Fri Jul 31 09:59:28 2015 +0200 Merge branch 'perf/urgent' into perf/core, to merge fixes before pulling more changes Signed-off-by: Ingo Molnar commit 5d8a0d0b44c207690adda723b8d60158c18fec8a Author: Daniel Vetter Date: Fri Jul 31 09:52:56 2015 +0200 drm/i915: Update DRIVER_DATE to 20150731 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 824deff87f5b1a2f32b9c3164191b0f5b22276b8 Author: Rostislav Pehlivanov Date: Tue Jul 28 08:38:47 2015 +0100 HID: sony: Fix DS4 controller reporting rate issues This commit removes the cap on the DualShock 4 controller reporting rate when connected using Bluetooth. The previous value of '0xB0' capped the rate to only 20.83 Hz which many userspace utilities mistook as a sign of a bad signal. Since a 'B' and an '8' can look similar it's possible that someone mistook the one for another. The new value of '0x80' enables the full 1000 Hz peak reporting rate that the controller is capable of. Frank adds: "Back when the original code was written the purpose of that value was unknown and 0xB0 seemed to work so that's what ended up being used. Now that we know what it actually does and that 0x80 is a better choice I support this patch." [jkosina@suse.com: update changelog] Signed-off-by: Rostislav Pehlivanov Acked-by: Frank Praznik Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 360d9bb5ee2db4d409448667de606c05b3914d53 Author: Kalle Valo Date: Fri Jul 31 10:17:35 2015 +0300 Revert "ath9k: export HW random number generator" This reverts commit 6301566e0b2dafa7d6779598621bca867962a0a2. Oleksij Rempel noticed that the randomness doesn't look to be good enough and Stephan Mueller commented: "I would say that the discussed RNG does not seem fit for hooking it up with the hwrandom framework." http://lkml.kernel.org/g/3945775.m5HblJPgiO@tauon.atsec.com So let's the revert the patch until we are sure that we can trust this random generator. Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/Kconfig | 7 --- drivers/net/wireless/ath/ath9k/Makefile | 1 - drivers/net/wireless/ath/ath9k/ath9k.h | 23 ---------- drivers/net/wireless/ath/ath9k/main.c | 4 -- drivers/net/wireless/ath/ath9k/rng.c | 75 --------------------------------- 5 files changed, 110 deletions(-) commit ab81a5e0660a058c2cc728fc114fa3082be78952 Author: David Disseldorp Date: Thu Jul 23 22:33:21 2015 +0200 target: check DPO/FUA usage for COMPARE AND WRITE COMPARE AND WRITE requests should fail if DPO or FUA is set, but the device is not advertising support. Signed-off-by: David Disseldorp Signed-off-by: Nicholas Bellinger drivers/target/target_core_sbc.c | 3 +++ 1 file changed, 3 insertions(+) commit 4aad0cc5c3f715efc294ac60fd0bf0e90829e18b Author: Horia Geant? Date: Thu Jul 30 22:11:18 2015 +0300 crypto: caam - fix rfc4106 encap shared descriptor The encap shared descriptor was changed to use the new IV convention. In the process some commands were shifted, making the output length zero, caam effectively writing garbage in dst. While here, update the decap descriptor to execute the "write" commands before the "read"s (as it previously was). This makes sure the input fifo is drained before becoming full. Fixes: 46218750d523 ("crypto: caam - Use new IV convention") Signed-off-by: Horia Geant? Signed-off-by: Tudor Ambarus Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit 915270c3cacfc80cb3fe7fdd8130439039a85bbb Author: Roland Dreier Date: Tue Jul 21 17:45:33 2015 -0700 target: Shrink struct se_cmd by rearranging fields On x86-64, these changes reduce the struct size from 528 bytes to 496 bytes. We save a cacheline and get under 512 bytes for better packing. Signed-off-by: Roland Dreier Acked-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger include/target/target_core_base.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 9c31820b6ab93ec298ad98abeee49759b5f5958c Author: Roland Dreier Date: Tue Jul 21 17:45:32 2015 -0700 target: Remove cmd->se_ordered_id (unused except debug log lines) For every command, we set se_ordered_id by doing atomic_inc_return on dev->dev_ordered_id for the corresponding device. However, the only places this value gets used are in pr_debug() calls, which doesn't seem worth an extra atomic op per IO. Signed-off-by: Roland Dreier Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 1 - drivers/target/target_core_transport.c | 39 ++++++++++++---------------------- include/target/target_core_base.h | 2 -- 3 files changed, 13 insertions(+), 29 deletions(-) commit 45182ed576898b846a98ac3bff2ddcb9d35a0181 Author: Brian Bunker Date: Thu Jul 23 15:27:46 2015 -0700 target: add support for START_STOP_UNIT SCSI opcode AIX servers using VIOS servers that virtualize FC cards will have a problem booting without support for START_STOP_UNIT. Cite sbc3r36 exactly, clean up if conditions (rob + hch) Signed-off-by: Brian Bunker Signed-off-by: Spencer Baugh Reviewed-by: Christoph Hellwig Cc: "Robert Elliott (Server Storage)" Signed-off-by: Nicholas Bellinger drivers/target/target_core_sbc.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 568e1f6524b06ff113cebf5711832ca95d37259f Author: Joern Engel Date: Wed Jul 22 15:01:36 2015 -0700 target: improve unsupported opcode message Make the warning about unsupported SCSI opcode more useful: - Add in the initiator name so we know who's sending it. - Print the warning even for opcodes that spc_parse_cdb() knows about but that we don't handle. Signed-off-by: Joern Engel Signed-off-by: Spencer Baugh Reviewed-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_spc.c | 3 --- drivers/target/target_core_transport.c | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) commit c72c5250224d475614a00c1d7e54a67f77cd3410 Author: Roland Dreier Date: Wed Jul 22 15:08:18 2015 -0700 target: allow underflow/overflow for PR OUT etc. commands It's not necessarily a fatal error if a command with a data-out phase has a data length that differs from the transport data length (e.g. PERSISTENT RESERVE OUT might have a parameter list length in the CDB that's smaller than the FC_DL field), so allow these commands. The Windows compliance test sends them. Signed-off-by: Roland Dreier Signed-off-by: Spencer Baugh Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit aa75679c797c0250a853e600e45368f1f9545c27 Author: Alexei Potashnik Date: Mon Jul 20 17:12:12 2015 -0700 target/iscsi: Use proper SGL accessors for digest computation Current implementation assumes that all the buffers of an IO are linked with a single SG list, which is OK because target-core is only allocating a contigious scatterlist region. However, this assumption is wrong for se_cmd descriptors that want to use chaining across multiple SGL regions. Fix this up by using proper SGL accessors for digest payload computation. Signed-off-by: Alexei Potashnik Cc: Roland Dreier Signed-off-by: Nicholas Bellinger drivers/target/iscsi/iscsi_target.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit b6a54b8d895648d915c7e8308f3d3e6bf2505d69 Author: Chris Zankel Date: Mon Jul 20 16:29:50 2015 -0700 target: remove initiatorname field in se_acl_lun From: Chris Zankel The initiatorname field in se_acl_lun is only a copy of the same field in se_node_acl, so remove it and use the version in se_node_acl where needed (it's actually only used for pr_debug) Signed-off-by: Chris Zankel Signed-off-by: Spencer Baugh Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 8 +++----- drivers/target/target_core_fabric_configfs.c | 2 +- include/target/target_core_base.h | 1 - 3 files changed, 4 insertions(+), 7 deletions(-) commit 53c46995b6ed7cb32a28bce1f4a25065baf65d8f Author: Chris Zankel Date: Mon Jul 20 16:29:49 2015 -0700 target: remove unused lun_flags field from se_lun The lun_flags field is not used, so drop it. Signed-off-by: Chris Zankel Signed-off-by: Spencer Baugh Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger include/target/target_core_base.h | 1 - 1 file changed, 1 deletion(-) commit c21e0bbfc48509a776ec4a39bd9a0fb45a9c315b Author: Matthew R. Ochs Date: Tue Jun 9 17:15:52 2015 -0500 cxlflash: Base support for IBM CXL Flash Adapter SCSI device driver to support filesystem access on the IBM CXL Flash adapter. Supported-by: Stephen Bates Reviewed-by: Michael Neuling Signed-off-by: Matthew R. Ochs Signed-off-by: Manoj N. Kumar Reviewed-by: Brian King Signed-off-by: James Bottomley drivers/scsi/Kconfig | 1 + drivers/scsi/Makefile | 1 + drivers/scsi/cxlflash/Kconfig | 11 + drivers/scsi/cxlflash/Makefile | 2 + drivers/scsi/cxlflash/common.h | 180 +++ drivers/scsi/cxlflash/main.c | 2294 +++++++++++++++++++++++++++++++++++++++ drivers/scsi/cxlflash/main.h | 104 ++ drivers/scsi/cxlflash/sislite.h | 465 ++++++++ 8 files changed, 3058 insertions(+) commit 1df33a11454de804661c8e19cd0e464914eefc6d Merge: 29a3060 440d896 Author: David S. Miller Date: Thu Jul 30 17:25:15 2015 -0700 Merge branch 'tipc-next' Jon Maloy says: ==================== tipc: separate link aggregation from link layer We continue the work on separating the roles of the link aggregation and link layers, as well as making code cleanups in general. This second commit batch focuses on moving the orchestration of link failover and synchronization to the node level, as well as preparing the node lock structure for further future impovements. We also make some changes to message delivery between link and socket layer, in order to make this mechanism safer and less obscure. ==================== Signed-off-by: David S. Miller commit 440d8963cd590ec9387d76a36e60c02da9ed944d Author: Jon Paul Maloy Date: Thu Jul 30 18:24:26 2015 -0400 tipc: clean up link creation We simplify the link creation function tipc_link_create() and the way the link struct it is connected to the node struct. In particular, we remove the duplicate initialization of some fields which are anyway set in tipc_link_reset(). Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/core.h | 5 +++ net/tipc/link.c | 136 +++++++++++++++++++++++++------------------------------- net/tipc/link.h | 18 +++----- net/tipc/node.c | 48 +++++++------------- 4 files changed, 86 insertions(+), 121 deletions(-) commit 9073fb8be3ee6f89492b8ea8f6d3902913a9fc91 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:25 2015 -0400 tipc: use temporary, non-protected skb queue for bundle reception Currently, when we extract small messages from a message bundle, or when many messages have accumulated in the link arrival queue, those messages are added one by one to the lock protected link input queue. This may increase contention with the reader of that queue, in the function tipc_sk_rcv(). This commit introduces a temporary, unprotected input queue in tipc_link_rcv() for such cases. Only when the arrival queue has been emptied, and the function is ready to return, does it splice the whole temporary queue into the real input queue. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit 23d8335d786472021b5c733f228c7074208dcfa0 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:24 2015 -0400 tipc: remove implicit message delivery in node_unlock() After the most recent changes, all access calls to a link which may entail addition of messages to the link's input queue are postpended by an explicit call to tipc_sk_rcv(), using a reference to the correct queue. This means that the potentially hazardous implicit delivery, using tipc_node_unlock() in combination with a binary flag and a cached queue pointer, now has become redundant. This commit removes this implicit delivery mechanism both for regular data messages and for binding table update messages. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 21 +++------------------ net/tipc/msg.h | 22 ---------------------- net/tipc/node.c | 26 +++++++------------------- net/tipc/node.h | 4 ---- 4 files changed, 10 insertions(+), 63 deletions(-) commit 598411d70f85dcf5b5c6c2369cc48637c251b656 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:23 2015 -0400 tipc: make resetting of links non-atomic In order to facilitate future improvements to the locking structure, we want to make resetting and establishing of links non-atomic. I.e., the functions tipc_node_link_up() and tipc_node_link_down() should be called from outside the node lock context, and grab/release the node lock themselves. This requires that we can freeze the link state from the moment it is set to RESETTING or PEER_RESET in one lock context until it is set to RESET or ESTABLISHING in a later context. The recently introduced link FSM makes this possible, so we are now ready to introduce the above change. This commit implements this. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 2 +- net/tipc/msg.h | 29 ++++++++++ net/tipc/node.c | 166 +++++++++++++++++++++++++++++++++----------------------- 3 files changed, 127 insertions(+), 70 deletions(-) commit cf148816acb6def45474001302368eb472995e62 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:22 2015 -0400 tipc: move received discovery data evaluation inside node.c The node lock is currently grabbed and and released in the function tipc_disc_rcv() in the file discover.c. As a preparation for the next commits, we need to move this node lock handling, along with the code area it is covering, to node.c. This commit introduces this change. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/discover.c | 116 +++++++++---------------------------------------- net/tipc/node.c | 123 +++++++++++++++++++++++++++++++++++++++++++--------- net/tipc/node.h | 11 +++-- 3 files changed, 127 insertions(+), 123 deletions(-) commit 662921cd0a53db4504838dfbb7d996f9e6e94001 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:21 2015 -0400 tipc: merge link->exec_mode and link->state into one FSM Until now, we have been handling link failover and synchronization by using an additional link state variable, "exec_mode". This variable is not independent of the link FSM state, something causing a risk of inconsistencies, apart from the fact that it clutters the code. The conditions are now in place to define a new link FSM that covers all existing use cases, including failover and synchronization, and eliminate the "exec_mode" field altogether. The FSM must also support non-atomic resetting of links, which will be introduced later. The new link FSM is shown below, with 7 states and 8 events. Only events leading to state change are shown as edges. +------------------------------------+ |RESET_EVT | | | | +--------------+ | +-----------------| SYNCHING |-----------------+ | |FAILURE_EVT +--------------+ PEER_RESET_EVT| | | A | | | | | | | | | | | | | | |SYNCH_ |SYNCH_ | | | |BEGIN_EVT |END_EVT | | | | | | | V | V V | +-------------+ +--------------+ +------------+ | | RESETTING |<---------| ESTABLISHED |--------->| PEER_RESET | | +-------------+ FAILURE_ +--------------+ PEER_ +------------+ | | EVT | A RESET_EVT | | | | | | | | | | | | | +--------------+ | | | RESET_EVT| |RESET_EVT |ESTABLISH_EVT | | | | | | | | | | | | V V | | | +-------------+ +--------------+ RESET_EVT| +--->| RESET |--------->| ESTABLISHING |<----------------+ +-------------+ PEER_ +--------------+ | A RESET_EVT | | | | | | | |FAILOVER_ |FAILOVER_ |FAILOVER_ |BEGIN_EVT |END_EVT |BEGIN_EVT | | | V | | +-------------+ | | FAILINGOVER |<----------------+ +-------------+ These changes are fully backwards compatible. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 350 +++++++++++++++++++++++++++++++------------------------- net/tipc/link.h | 25 ++-- net/tipc/node.c | 31 ++--- 3 files changed, 226 insertions(+), 180 deletions(-) commit 5045f7b9009f1455268b98cecbcc271663934c85 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:20 2015 -0400 tipc: move protocol message sending away from link FSM The implementation of the link FSM currently takes decisions about and sends out link protocol messages. This is unnecessary, since such actions are not the result of any link state change, and are even decided based on non-FSM state information ("silent_intv_cnt"). We now move the sending of unicast link protocol messages to the function tipc_link_timeout(), and the initial broadcast synchronization message to tipc_node_link_up(). The latter is done because a link instance should not need to know whether it is the first or second link to a destination. Such information is now restricted to and handled by the link aggregation layer in node.c Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 51 ++++++++++++++++++++++++++++++--------------------- net/tipc/link.h | 2 ++ net/tipc/node.c | 1 + 3 files changed, 33 insertions(+), 21 deletions(-) commit 6e498158a827fd515b514842e9a06bdf0f75ab86 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:19 2015 -0400 tipc: move link synch and failover to link aggregation level Link failover and synchronization have until now been handled by the links themselves, forcing them to have knowledge about and to access parallel links in order to make the two algorithms work correctly. In this commit, we move the control part of this functionality to the link aggregation level in node.c, which is the right location for this. As a result, the two algorithms become easier to follow, and the link implementation becomes simpler. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 482 ++++++++++++++++---------------------------------------- net/tipc/link.h | 14 +- net/tipc/msg.h | 32 ++-- net/tipc/node.c | 291 ++++++++++++++++++++++------------ net/tipc/node.h | 31 +--- 5 files changed, 342 insertions(+), 508 deletions(-) commit 66996b6c47ed7f6bbb01a768e23fae262c7db8e0 Author: Jon Paul Maloy Date: Thu Jul 30 18:24:18 2015 -0400 tipc: extend node FSM In the next commit, we will move link synch/failover orchestration to the link aggregation level. In order to do this, we first need to extend the node FSM with two more states, NODE_SYNCHING and NODE_FAILINGOVER, plus four new events to enter and leave those states. This commit introduces this change, without yet making use of it. The node FSM now looks as follows: +-----------------------------------------+ | PEER_DOWN_EVT| | | +------------------------+----------------+ | |SELF_DOWN_EVT | | | | | | | | +-----------+ +-----------+ | | |NODE_ | |NODE_ | | | +----------|FAILINGOVER|<---------|SYNCHING |------------+ | | |SELF_ +-----------+ FAILOVER_+-----------+ PEER_ | | | |DOWN_EVT | A BEGIN_EVT A | DOWN_EVT| | | | | | | | | | | | | | | | | | | | |FAILOVER_|FAILOVER_ |SYNCH_ |SYNCH_ | | | | |END_EVT |BEGIN_EVT |BEGIN_EVT|END_EVT | | | | | | | | | | | | | | | | | | | | | +--------------+ | | | | | +------->| SELF_UP_ |<-------+ | | | | +----------------| PEER_UP |------------------+ | | | | |SELF_DOWN_EVT +--------------+ PEER_DOWN_EVT| | | | | | A A | | | | | | | | | | | | | | PEER_UP_EVT| |SELF_UP_EVT | | | | | | | | | | | V V V | | V V V +------------+ +-----------+ +-----------+ +------------+ |SELF_DOWN_ | |SELF_UP_ | |PEER_UP_ | |PEER_DOWN | |PEER_LEAVING|<------|PEER_COMING| |SELF_COMING|------>|SELF_LEAVING| +------------+ SELF_ +-----------+ +-----------+ PEER_ +------------+ | DOWN_EVT A A DOWN_EVT | | | | | | | | | | SELF_UP_EVT| |PEER_UP_EVT | | | | | | | | | |PEER_DOWN_EVT +--------------+ SELF_DOWN_EVT| +------------------->| SELF_DOWN_ |<--------------------+ | PEER_DOWN | +--------------+ Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/node.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- net/tipc/node.h | 14 ++++++--- 2 files changed, 92 insertions(+), 11 deletions(-) commit 655fb243b8ae5e652f744311bcb6e806e83cea1e Author: Jon Paul Maloy Date: Thu Jul 30 18:24:17 2015 -0400 tipc: reverse call order for link_reset()->node_link_down() In many cases the call order when a link is reset goes as follows: tipc_node_xx()->tipc_link_reset()->tipc_node_link_down() This is not the right order if we want the node to be in control, so in this commit we change the order to: tipc_node_xx()->tipc_node_link_down()->tipc_link_reset() The fact that tipc_link_reset() now is called from only one location with a well-defined state will also facilitate later simplifications of tipc_link_reset() and the link FSM. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 6 +----- net/tipc/node.c | 30 +++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 14 deletions(-) commit 6144a996a65199480eed7521c1c50590c282e78e Author: Jon Paul Maloy Date: Thu Jul 30 18:24:16 2015 -0400 tipc: move all link_reset() calls to link aggregation level In line with our effort to let the node level have full control over its links, we want to move all link reset calls from link.c to node.c. Some of the calls can be moved by simply moving the calling function, when this is the right thing to do. For the remaining calls we use the now established technique of returning a TIPC_LINK_DOWN_EVT flag from tipc_link_rcv(), whereafter we perform the reset call when the call returns. This change serves as a preparation for the coming commits. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bearer.c | 4 +-- net/tipc/link.c | 81 +++++++++++++---------------------------------------- net/tipc/link.h | 3 -- net/tipc/node.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- net/tipc/node.h | 1 + 5 files changed, 104 insertions(+), 69 deletions(-) commit cbeb83ca68dcedf69b336fd1c5263658cbe5b51e Author: Jon Paul Maloy Date: Thu Jul 30 18:24:15 2015 -0400 tipc: eliminate function tipc_link_activate() The function tipc_link_activate() is redundant, since it mostly performs settings that have already been done in a preceding tipc_link_reset(). There are three exceptions to this: - The actual state change to TIPC_LINK_WORKING. This should anyway be done in the FSM, and not in a separate function. - Registration of the link with the bearer. This should be done by the node, since we don't want the link to have any knowledge about its specific bearer. - Call to tipc_node_link_up() for user access registration. With the new role distribution between link aggregation and link level this becomes the wrong call order; tipc_node_link_up() should instead be called directly as a result of a TIPC_LINK_UP event, hence by the node itself. This commit implements those changes. Tested-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 17 ++++------------- net/tipc/link.h | 1 - net/tipc/node.c | 6 ++++-- 3 files changed, 8 insertions(+), 16 deletions(-) commit 29a3060aa7cc2e5cfaabeb935fafb832b9b33ad4 Merge: 8013d1d 5857d1d Author: David S. Miller Date: Thu Jul 30 16:16:43 2015 -0700 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next Johan Hedberg says: ==================== pull request: bluetooth-next 2015-07-30 Here's a set of Bluetooth & 802.15.4 patches intended for the 4.3 kernel. - Cleanups & fixes to mac802154 - Refactoring of Intel Bluetooth HCI driver - Various coding style fixes to Bluetooth HCI drivers - Support for Intel Lightning Peak Bluetooth devices - Generic class code in interface descriptor in btusb to match more HW - Refactoring of Bluetooth HS code together with a new config option - Support for BCM4330B1 Broadcom UART controller Let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 8013d1d7eafb0589ca766db6b74026f76b7f5cb4 Author: Hangbin Liu Date: Thu Jul 30 14:28:42 2015 +0800 net/ipv6: add sysctl option accept_ra_min_hop_limit Commit 6fd99094de2b ("ipv6: Don't reduce hop limit for an interface") disabled accept hop limit from RA if it is smaller than the current hop limit for security stuff. But this behavior kind of break the RFC definition. RFC 4861, 6.3.4. Processing Received Router Advertisements A Router Advertisement field (e.g., Cur Hop Limit, Reachable Time, and Retrans Timer) may contain a value denoting that it is unspecified. In such cases, the parameter should be ignored and the host should continue using whatever value it is already using. If the received Cur Hop Limit value is non-zero, the host SHOULD set its CurHopLimit variable to the received value. So add sysctl option accept_ra_min_hop_limit to let user choose the minimum hop limit value they can accept from RA. And set default to 1 to meet RFC standards. Signed-off-by: Hangbin Liu Acked-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 8 ++++++++ include/linux/ipv6.h | 1 + include/uapi/linux/ipv6.h | 1 + net/ipv6/addrconf.c | 10 ++++++++++ net/ipv6/ndisc.c | 16 +++++++--------- 5 files changed, 27 insertions(+), 9 deletions(-) commit 017ffe64e8b8c8db0f50433a71da41c6a4e12710 Author: Yijing Wang Date: Fri Jul 17 17:16:32 2015 +0800 PCI: Hold pci_slot_mutex while searching bus->slots list Previously, pci_setup_device() and similar functions searched the pci_bus->slots list without any locking. It was possible for another thread to update the list while we searched it. Add pci_dev_assign_slot() to search the list while holding pci_slot_mutex. [bhelgaas: changelog, fold in CONFIG_SYSFS fix] Tested-by: Guenter Roeck Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas arch/powerpc/kernel/pci_of_scan.c | 6 +----- arch/sparc/kernel/pci.c | 6 +----- drivers/pci/probe.c | 6 +----- drivers/pci/slot.c | 11 +++++++++++ include/linux/pci.h | 5 +++++ 5 files changed, 19 insertions(+), 15 deletions(-) commit 2f51a9b8adbb6ad06689ec28342e89f40acb97fc Author: Vladimir Zapolskiy Date: Thu Jul 30 00:44:20 2015 +0300 net: phy: spi_ks8995: clean up ks8995_registers_read/write The change removes redundant sysfs binary file boundary checks, since this task is already done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: David S. Miller drivers/net/phy/spi_ks8995.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 67546762978f523749eac157903e0b01c18e083a Author: Yijing Wang Date: Fri Jul 17 17:16:31 2015 +0800 PCI: Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem Rajat Jain reported a deadlock when PCIe hot-add and AER recovery happen at the same time: thread 1: pciehp_enable_slot pciehp_configure_device pci_bus_add_devices pci_bus_add_device device_attach device_lock(dev) # acquire device lock ... pciehp_probe init_slot pci_hp_register pci_create_slot down_write(pci_bus_sem) # deadlock here thread 2: aer_isr_one_error aer_process_err_device do_recovery broadcast_error_message(..., report_error_detected) pci_walk_bus(..., cb=report_error_detected, ...) down_read(&pci_bus_sem) # acquire pci_bus_sem report_error_detected(dev) # cb() device_lock(dev) # deadlock here Previously, the bus->devices and bus->slots list were protected by pci_bus_sem. In pci_create_slot(), we held it for writing so we could add to the bus->slots list. Add a new local pci_slot_mutex to protect bus->slots. Hold pci_bus_sem for reading while searching the bus->devices list. [bhelgaas: changelog] Link: http://lkml.kernel.org/r/CAA93t1qpPqbih+UB0McA_d_+2rVaNkXsinAUxYzK9+JXSS+L-g@mail.gmail.com Reported-by: Rajat Jain Tested-by: Guenter Roeck Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/slot.c | 18 +++++++++++------- include/linux/pci.h | 3 ++- 2 files changed, 13 insertions(+), 8 deletions(-) commit 2dc127bb299d1c7436a08e79193bd0251068356e Author: Dan Carpenter Date: Thu Jun 4 17:47:56 2015 +0300 hpsa: fix an sprintf() overflow in the reset handler The string "cmd %d RESET FAILED, new lockup detected" is not quite large enough so the sprintf() will overflow. I have increased the size of the buffer and also changed the sprintf calls to snprintf. Fixes: 73153fe533bc ('hpsa: use block layer tag for command allocation') Signed-off-by: Dan Carpenter Acked-by: Don Brace Signed-off-by: James Bottomley drivers/scsi/hpsa.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 9c8108a4d3a837c51a29f28229a06d97654eaeb6 Author: Chris Leech Date: Tue Jun 16 16:07:13 2015 -0700 iSCSI: let session recovery_tmo sysfs writes persist across recovery The iSCSI session recovery_tmo setting is writeable in sysfs, but it's also set every time a connection is established when parameters are set from iscsid over netlink. That results in the timeout being reset to the default value after every recovery. The DM multipath tools want to use the sysfs interface to lower the default timeout when there are multiple paths to fail over. It has caused confusion that we have a writeable sysfs value that seem to keep resetting itself. This patch adds an in-kernel flag that gets set once a sysfs write occurs, and then ignores netlink parameter setting once it's been modified via the sysfs interface. My thinking here is that the sysfs interface is much simpler for external tools to influence the session timeout, but if we're going to allow it to be modified directly we should ensure that setting is maintained. Signed-off-by: Chris Leech Reviewed-by: Mike Christie Signed-off-by: James Bottomley drivers/scsi/scsi_transport_iscsi.c | 11 ++++++++--- include/scsi/scsi_transport_iscsi.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) commit aaf1b059387863ac9675eb42d01d03415c7529a5 Author: Brian King Date: Thu Jun 11 20:45:22 2015 -0500 ipr: Driver version 2.6.2 Signed-off-by: Brian King Signed-off-by: James Bottomley drivers/scsi/ipr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 359d96e73cea0ef2429db20e1a2322c75bc13830 Author: Brian King Date: Thu Jun 11 20:45:20 2015 -0500 ipr: Endian / sparse fixes Some misc fixes for endianness checking with sparse so sparse with endian checking now runs clean. Fixes a minor bug in the process which was uncovered by sparse which would result in unnecessary error recovery for check conditions. Signed-off-by: Brian King Reviewed-by: Wen Xiong Signed-off-by: James Bottomley drivers/scsi/ipr.c | 13 +++++++------ drivers/scsi/ipr.h | 13 ++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) commit bb8647e86e769bd45d2d5e010b3af516210d5760 Author: Wen Xiong Date: Thu Jun 11 20:45:18 2015 -0500 ipr: Byte swapping for device_id attribute in sysfs On LE system, users see the wrong device_id attribute. This patch does necessary byte swapping for device_id attribute and works on both of LE and BE systems. Signed-off-by: Wen Xiong Signed-off-by: Brian King Signed-off-by: James Bottomley drivers/scsi/ipr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ae80ba91f57726f31b5b5890cb7c5173e624ca4 Author: Hannes Reinecke Date: Fri Jun 12 16:12:48 2015 +0200 scsi: retry MODE SENSE on unit attention The 'sd' driver is calling scsi_mode_sense() to figure out internal details. But scsi_mode_sense() never checks for any pending unit attentions, so we're getting annoying error messages like: MODE SENSE: unimplemented page/subpage: 0x00/0x00 and a possible wrong decision for device cache handling. Reviewed-by: Ewan Milne Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley drivers/scsi/scsi_lib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit c8b5db7de66b75330a96f9f1ad7376b89646c953 Author: Viresh Kumar Date: Thu Jul 16 16:28:45 2015 +0530 x86/hpet: Migrate to new set_state interface Migrate hpet driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Forward definition of 'hpet_clockevent' wasn't required and so it is placed after all the callback are defined, to avoid forward declaring all the callbacks. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Jiang Liu Cc: Rasmus Villemoes Link: http://lkml.kernel.org/r/8cc9864b6d6342dfac28f270cf69f4cba46fffae.1437042675.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner arch/x86/kernel/hpet.c | 198 +++++++++++++++++++++++++++++++------------------ 1 file changed, 124 insertions(+), 74 deletions(-) commit 955381dd65654bd6f066408823691db8fa7d05bb Author: Viresh Kumar Date: Thu Jul 16 16:28:48 2015 +0530 x86/xen/time: Migrate to new set-state interface Migrate xen driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Callbacks aren't implemented for modes where we weren't doing anything. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Konrad Rzeszutek Wilk Cc: Boris Ostrovsky Cc: David Vrabel Cc: xen-devel@lists.xenproject.org (moderated list:XEN HYPERVISOR INTERFACE) Link: http://lkml.kernel.org/r/881eea6e1a3d483cd33e044cd34827cce26a57fd.1437042675.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner arch/x86/xen/time.c | 80 +++++++++++++++++++++-------------------------------- 1 file changed, 31 insertions(+), 49 deletions(-) commit ca53d434f7e63352c9edd1ad8cde4dfe11da44aa Author: Viresh Kumar Date: Thu Jul 16 16:28:47 2015 +0530 x86/uv/time: Migrate to new set-state interface Migrate uv driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything while switching modes other than in shutdown mode and so those are not implemented. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Christoph Lameter Cc: Tejun Heo Link: http://lkml.kernel.org/r/52e04139746222a2e82a96d13953cbc306cfb59b.1437042675.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner arch/x86/platform/uv/uv_time.c | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) commit c2e13cc2cea64385043fa9afaaf91a74ec438467 Author: Viresh Kumar Date: Thu Jul 16 16:28:46 2015 +0530 x86/lguest/timer: Migrate to new set-state interface Migrate lguest driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything while switching modes other than in shutdown mode and so those are not implemented. Signed-off-by: Viresh Kumar Acked-and-tested-by: Rusty Russell Cc: linaro-kernel@lists.linaro.org Cc: Alexander Kuleshov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Jan Beulich Cc: Andy Lutomirski Cc: lguest@lists.ozlabs.org (open list:LGUEST) Link: http://lkml.kernel.org/r/b96f1c308f4523255c5394a4e6e13f2b67685402.1437042675.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner arch/x86/lguest/boot.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) commit 5f2269916b0e509f2926346b58209abfa8316143 Author: Jiang Liu Date: Thu Jul 30 14:00:08 2015 -0500 PCI/MSI: Free legacy IRQ when enabling MSI/MSI-X Once MSI/MSI-X is enabled by the device driver, a PCI device won't use legacy IRQs again until MSI/MSI-X is disabled. Call pcibios_free_irq() when enabling MSI/MSI-X and pcibios_alloc_irq() when disabling MSI/MSI-X. This allows arch code to manage resources associated with the legacy IRQ. [bhelgaas: changelog] Signed-off-by: Jiang Liu Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner drivers/pci/msi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 72407514c92c4e4b3584cba5961e63fb10c1a04e Author: Lorenzo Pieralisi Date: Thu Jul 30 14:13:59 2015 +0100 ARM64: PCI: do not enable resources on PROBE_ONLY systems On ARM64 PROBE_ONLY PCI systems resources are not currently claimed, therefore they can't be enabled since they do not have a valid parent pointer; this in turn prevents enabling PCI devices on ARM64 PROBE_ONLY systems, causing PCI devices initialization to fail. To solve this issue, resources must be claimed when devices are added on PROBE_ONLY systems, which ensures that the resource hierarchy is validated and the resource tree is sane, but this requires changes in the ARM64 resource management that can affect adversely existing PCI set-ups (claiming resources on !PROBE_ONLY systems might break existing ARM64 PCI platform implementations). As a temporary solution in preparation for a proper resources claiming implementation in ARM64 core, to enable PCI PROBE_ONLY systems on ARM64, this patch adds a pcibios_enable_device() arch implementation that simply prevents enabling resources on PROBE_ONLY systems (mirroring ARM behaviour). This is always a safe thing to do because on PROBE_ONLY systems the configuration space set-up can be considered immutable, and it is in preparation of proper resource claiming that would finally validate the PCI resources tree in the ARM64 arch implementation on PROBE_ONLY systems. For !PROBE_ONLY systems resources enablement in pcibios_enable_device() on ARM64 is implemented as in current PCI core, leaving the behaviour unchanged. Signed-off-by: Lorenzo Pieralisi Cc: Will Deacon Cc: Bjorn Helgaas Cc: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/kernel/pci.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit a14949e09a228dcd4cc5088c90c375429c7d102c Author: Will Deacon Date: Thu Jul 30 19:19:43 2015 +0100 arm64: cmpxchg: truncate sub-word signed types before comparison When performing a cmpxchg operation on a signed sub-word type (e.g. s8), we need to ensure that the upper register bits of the "old" value used for comparison are zeroed, otherwise we may erroneously fail the cmpxchg which may even be interpreted as success by the caller (if the compiler performs the truncation as part of its check). This has been observed in mod_state, where negative values where causing problems with this_cpu_cmpxchg. This patch fixes the issue by explicitly casting 8-bit and 16-bit "old" values using unsigned types in our cmpxchg wrappers. 32-bit types can be left alone, since the underlying asm makes use of W registers in this case. Reported-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/include/asm/cmpxchg.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 811a4e6fce09bc9239c664c6a1a53645a678c303 Author: Jiang Liu Date: Wed Jun 10 16:55:00 2015 +0800 PCI: Add helpers to manage pci_dev->irq and pci_dev->irq_managed Add pci_has_managed_irq(), pci_set_managed_irq(), and pci_reset_managed_irq() to simplify code. No functional change. [bhelgaas: changelog] Signed-off-by: Jiang Liu Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner 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, 27 insertions(+), 14 deletions(-) commit 991de2e59090e55c65a7f59a049142e3c480f7bd Author: Jiang Liu Date: Wed Jun 10 16:54:59 2015 +0800 PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq() To support IOAPIC hotplug, we need to allocate PCI IRQ resources on demand and free them when not used anymore. Implement pcibios_alloc_irq() and pcibios_free_irq() to dynamically allocate and free PCI IRQs. Remove mp_should_keep_irq(), which is no longer used. [bhelgaas: changelog] Signed-off-by: Jiang Liu Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner 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, 16 insertions(+), 37 deletions(-) commit 890e4847587fcff5eb0438e90992ad7d2a261f33 Author: Jiang Liu Date: Wed Jun 10 16:54:58 2015 +0800 PCI: Add pcibios_alloc_irq() and pcibios_free_irq() Add pcibios_alloc_irq() and pcibios_free_irq(), which are called when binding/unbinding PCI device drivers. PCI arch code may implement these to manage IRQ resources for hotplugged devices. [bhelgaas: changelog] Signed-off-by: Jiang Liu Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner drivers/pci/pci-driver.c | 26 ++++++++++++++++++++------ include/linux/pci.h | 2 ++ 2 files changed, 22 insertions(+), 6 deletions(-) commit 0642ffd6a864629c12a4cd7528782ed5b68ac69c Author: Dudley Du Date: Thu Jul 30 11:26:39 2015 -0700 Input: cyapa - do not try to enable proximity reporting on older devices Avoid the driver generate warning message when the cyapa driver working with the old Gen5 trackpad device which does not support the proximity function. Those old Gen5 trackpad device all have the platform version less than 2. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa_gen5.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit ddbb299db0e040aca8e26361ab778224eeacf9d3 Author: Dudley Du Date: Thu Jul 30 11:24:16 2015 -0700 Input: cyapa - introduce device tree binding Add device tree support for Cypress trackpad devices. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov .../devicetree/bindings/input/cypress,cyapa.txt | 44 ++++++++++++++++++++++ .../devicetree/bindings/vendor-prefixes.txt | 1 + drivers/input/mouse/cyapa.c | 10 +++++ 3 files changed, 55 insertions(+) commit 36e9615bd70dc8cd5d7d4831943f788f5231350f Author: Dudley Du Date: Thu Jul 30 11:19:18 2015 -0700 Input: cyapa - add regulator vcc support We need to power up the chip before we can initialize it. On systems that delegate task of powering up regulators to firmware we assume that we'll be simply given a dummy regulator. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa.c | 29 +++++++++++++++++++++++++++++ drivers/input/mouse/cyapa.h | 1 + 2 files changed, 30 insertions(+) commit 951debb949f4adcfdd0cc6ca85c524243f3ead26 Merge: ce7fa78 b13138e Author: David S. Miller Date: Thu Jul 30 11:13:21 2015 -0700 Merge branch 'bpf-next' Daniel Borkmann says: ==================== Minor BPF updates Various minor misc updates. ==================== Signed-off-by: David S. Miller commit b13138ef72178a13f34e33883f9f093f9e3b1bda Author: Daniel Borkmann Date: Thu Jul 30 12:42:49 2015 +0200 bpf: also show process name/pid in bpf_jit_dump It can be useful for testing to see the actual process/pid who is loading a given filter. I was running some BPF test program and noticed unusual filter loads from time to time, triggered by some other application in the background. bpf_jit_disasm is still working after this change. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/linux/filter.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 485d6511e71e5810f07eec29b884c98021e67911 Author: Daniel Borkmann Date: Thu Jul 30 12:42:48 2015 +0200 bpf, x86/sparc: show actual number of passes in bpf_jit_dump When bpf_jit_compile() got split into two functions via commit f3c2af7ba17a ("net: filter: x86: split bpf_jit_compile()"), bpf_jit_dump() was changed to always show 0 as number of compiler passes. Change it to dump the actual number. Also on sparc, we count passes starting from 0, so add 1 for the debug dump as well. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/sparc/net/bpf_jit_comp.c | 2 +- arch/x86/net/bpf_jit_comp.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7b36f92934e40d1ee24e5617ddedb852e10086ca Author: Daniel Borkmann Date: Thu Jul 30 12:42:47 2015 +0200 bpf: provide helper that indicates eBPF was migrated During recent discussions we had with Michael, we found that it would be useful to have an indicator that tells the JIT that an eBPF program had been migrated from classic instructions into eBPF instructions, as only in that case A and X need to be cleared in the prologue. Such eBPF programs do not set a particular type, but all have BPF_PROG_TYPE_UNSPEC. Thus, introduce a small helper for cde66c2d88da ("s390/bpf: Only clear A and X for converted BPF programs") and possibly others in future. Signed-off-by: Daniel Borkmann Cc: Michael Holzheu Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 2 +- include/linux/filter.h | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit 4962fa10f30d7b563f38467feeae10314b166c77 Author: Daniel Borkmann Date: Thu Jul 30 12:42:46 2015 +0200 test_bpf: assign type to native eBPF test cases As JITs start to perform optimizations whether to clear A and X on eBPF programs in the prologue, we should actually assign a program type to the native eBPF test cases. It doesn't really matter which program type, as these instructions don't go through the verifier, but it needs to be a type != BPF_PROG_TYPE_UNSPEC. This reflects eBPF programs loaded via bpf(2) system call (!= type unspec) vs. classic BPF to eBPF migrations (== type unspec). Signed-off-by: Daniel Borkmann Cc: Michael Holzheu Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller lib/test_bpf.c | 2 ++ 1 file changed, 2 insertions(+) commit ef5e724b25c9f90b7683bb2d45833ebac0989dcb Author: Will Deacon Date: Tue Jul 28 19:07:28 2015 +0100 arm64: alternative: put secondary CPUs into polling loop during patch When patching the kernel text with alternatives, we may end up patching parts of the stop_machine state machine (e.g. atomic_dec_and_test in ack_state) and consequently corrupt the instruction stream of any secondary CPUs. This patch passes the cpu_online_mask to stop_machine, forcing all of the CPUs into our own callback which can place the secondary cores into a dumb (but safe!) polling loop whilst the patching is carried out. Signed-off-by: Will Deacon arch/arm64/include/asm/alternative.h | 3 ++- arch/arm64/kernel/alternative.c | 29 ++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) commit 02d9bd05dcf77bed954ed21b2d4c330879fa3103 Author: Javier Martinez Canillas Date: Thu Jul 30 10:39:28 2015 -0700 Input: touchscreen - export OF module alias information The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/egalax_ts.c | 1 + drivers/input/touchscreen/mms114.c | 1 + 2 files changed, 2 insertions(+) commit 2e9e910e8a4626d1217b6887c74a456d2835be2a Author: Javier Martinez Canillas Date: Thu Jul 30 10:38:52 2015 -0700 Input: export I2C module alias information in missing drivers The I2C core always reports the MODALIAS uevent as "i2c: Signed-off-by: Dmitry Torokhov drivers/input/misc/gp2ap002a00f.c | 1 + drivers/input/touchscreen/goodix.c | 1 + 2 files changed, 2 insertions(+) commit ce7fa78ce16e476a610e165dd0e8c1e85a75d60f Author: Yuval Mintz Date: Thu Jul 30 14:30:29 2015 +0300 bnx2x: Fix compilation when CONFIG_BNX2X_SRIOV is not set Commit 05cc5a39ddb7 ("bnx2x: add vlan filtering offload") has broken compilation when CONFIG_BNX2X_SRIOV is not set. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 ++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h | 5 +++++ 2 files changed, 7 insertions(+) commit 22b5a0f7bc07ac4b4e4aab9a7f8cf2521819c1c4 Author: Nicolas Ferre Date: Thu Jun 18 14:55:03 2015 +0200 ARM: at91/dt: add minimal sama5d2 Xplained board Add minimal support for the new sama5d2 Xplained board. Only USB, spi/i2c, ethernet and uart/usart peripherals added. With this DTS file you can boot the board and begin to play with it. Rootfs on NFS and sd card have successfully been tested. Signed-off-by: Nicolas Ferre Acked-by: Alexandre Belloni arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/at91-sama5d2_xplained.dts | 134 ++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) commit e30cf8d3221ab6162420df460b4e96b959e96001 Author: Ludovic Desroches Date: Thu Jun 18 14:48:28 2015 +0200 ARM: at91/dt: add basic dtsi for sama5d2 SoC Only the basic support for this new Atmel Cortex-A5 SoC. A subset of the peripherals is setup to allow booting. IRQ, clocks, USB, crypto, timers, rtc, ethernet, spi/i2c and uart/usart peripheral nodes are added. Signed-off-by: Ludovic Desroches Acked-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d2.dtsi | 925 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 925 insertions(+) commit ff02e485486225a21e4679d94d5a869d5eae1df2 Author: Josh Wu Date: Mon Jul 20 17:32:06 2015 +0800 ARM: at91/dt: sama5: update rstc to correct compatible string They'll use "atmel,sama5d3-rstc" for reset function. Signed-off-by: Josh Wu Acked-by: Alexandre Belloni [nicolas.ferre@atmel.com: add the old compatible string as a fallback] Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d3.dtsi | 2 +- arch/arm/boot/dts/sama5d4.dtsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 913e4a90b6f9687ac0f543e7b632753e4f51c441 Author: Peter Chen Date: Thu Jul 30 13:13:03 2015 +0800 usb: gadget: f_uac2: finalize wMaxPacketSize according to bandwidth According to USB Audio Device 2.0 Spec, Ch4.10.1.1: wMaxPacketSize is defined as follows: Maximum packet size this endpoint is capable of sending or receiving when this configuration is selected. This is determined by the audio bandwidth constraints of the endpoint. In current code, the wMaxPacketSize is defined as the maximum packet size for ISO endpoint, and it will let the host reserve much more space than it really needs, so that we can't let more endpoints work together at one frame. We find this issue when we try to let 4 f_uac2 gadgets work together [1] at FS connection. [1]http://www.spinics.net/lists/linux-usb/msg123478.html Acked-by: Daniel Mack Cc: andrzej.p@samsung.com Cc: Daniel Mack Cc: tiwai@suse.de Cc: #v3.18+ Cc: Alan Stern Signed-off-by: Peter Chen Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_uac2.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) commit 8078f314b8c8012cf36e5decc75378b803bfba4d Author: Sanjay Singh Rawat Date: Wed Jul 22 16:29:46 2015 +0530 usb: gadget: f_mass_storage: stop thread in bind failure case After the worker thread is launched, bind function is doing further configuration. In case of failure stop the thread. Acked-by: Michal Nazarewicz Signed-off-by: Sanjay Singh Rawat Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 5feb5d2003499b1094d898c010a7604d7afddc4c Author: Dan Carpenter Date: Thu Jul 30 00:30:58 2015 +0300 usb: gadget: m66592-udc: forever loop in set_feature() There is an "&&" vs "||" typo here so this loops 3000 times or if we get unlucky it could loop forever. Fixes: ceaa0a6eeadf ('usb: gadget: m66592-udc: add support for TEST_MODE') Signed-off-by: Dan Carpenter Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/m66592-udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c99cabfc95d3b08fbf06d558ebfa76b5303710c Author: Dan Carpenter Date: Thu Jul 30 00:29:23 2015 +0300 usb: gadget: fotg210-udc: remove duplicate conditions We handle the "if (!req->req.length)" condition at the start of the function and return. We can delete this dead code. Signed-off-by: Dan Carpenter Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/fotg210-udc.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) commit 6f98f545b0b4effdf67e83e214a4eb13cd41fba2 Author: Ivan T. Ivanov Date: Tue Jul 28 11:10:22 2015 +0300 usb: phy: msm: Add D+/D- lines route control apq8016-sbc board is using Dual SPDT USB Switch (TC7USB40MU), witch is controlled by GPIO to de/multiplex D+/D- USB lines to USB2513B Hub and uB connector. Add support for this. Signed-off-by: Ivan T. Ivanov Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/msm-hsusb.txt | 4 ++ drivers/usb/phy/phy-msm-usb.c | 47 ++++++++++++++++++++++ include/linux/usb/msm_hsusb.h | 7 ++++ 3 files changed, 58 insertions(+) commit 736d093b5985c1f6583460c8eea1be3c9ee5635e Author: Robert Baldyga Date: Tue Jul 28 07:20:03 2015 +0200 usb: gadget: apply generic altsetting support check mechanism Replace calls of gadget_supports_altsettings() function (which check altset support by comparing UDC controller name with hardcoded names) with gadget_is_altset_supported() which checks generic quirk bitfield. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_obex.c | 2 +- drivers/usb/gadget/function/u_ether.h | 2 +- drivers/usb/gadget/legacy/nokia.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7a896d40525349e7d52307fb957882696e09466c Author: Robert Baldyga Date: Tue Jul 28 07:20:02 2015 +0200 usb: gadget: f_ecm/f_ncm: check quirk instead of UDC name Use generic mechanism to check if UDC controller supports zlp. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_ecm.c | 4 ++-- drivers/usb/gadget/function/f_ncm.c | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) commit a4cc42157f3f8c3dd5562b91c7430376912c6fb8 Author: Robert Baldyga Date: Tue Jul 28 07:20:01 2015 +0200 usb: gadget: f_mass_storage: check quirk instead of UDC name Use generic mechanism to check if UDC controller supports stalling. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ca1023c81dd10f76a5d0a8be2fdbe724fe7a126a Author: Robert Baldyga Date: Tue Jul 28 07:20:00 2015 +0200 usb: gadget: add 'quirk_zlp_not_supp' to usb_gadget Due to some UDC controllers may not support zlp, usb gadget layer needs to provide a generic way to inform gadget functions about non-standard hardware limitations. This patch adds 'quirk_zlp_not_supp' field to struct usb_gadget and helper function gadget_is_zlp_supported(). It also sets 'quirk_zlp_not_supp' to 1 in musb UDC driver, which has such limitation. [ balbi@ti.com : make it build ] Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/musb/musb_gadget.c | 1 + include/linux/usb/gadget.h | 10 ++++++++++ 2 files changed, 11 insertions(+) commit 02ded1b0d8e73dad7d2626c960ef20fb7dc30753 Author: Robert Baldyga Date: Tue Jul 28 07:19:59 2015 +0200 usb: gadget: add 'quirk_stall_not_supp' to usb_gadget Due to some UDC controllers may not support stalling, usb gadget layer needs to provide a generic way to inform gadget functions about non-standard hardware limitations. This patch adds 'quirk_stall_not_supp' field to struct usb_gadget and helper function gadget_is_stall_supported(). It also sets 'quirk_stall_not_supp' to 1 in at91_udc driver, which has such limitation. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/at91_udc.c | 1 + include/linux/usb/gadget.h | 10 ++++++++++ 2 files changed, 11 insertions(+) commit ffd9a0fcbbed300b55f84e8397e96c2edd06cbdf Author: Robert Baldyga Date: Tue Jul 28 07:19:58 2015 +0200 usb: gadget: add 'quirk_altset_not_supp' to usb_gadget Due to some UDC controllers may not support altsettings, usb gadget layer needs to provide a generic way to inform gadget functions about non-standard hardware limitations. This patch adds 'quirk_altset_not_supp' field to struct usb_gadget and helper function gadget_is_altset_supported(). It also sets 'quirk_altset_not_supp' to 1 in pxa25x_udc and pxa27x_udc drivers, which have such limitation. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/pxa25x_udc.c | 1 + drivers/usb/gadget/udc/pxa27x_udc.c | 1 + include/linux/usb/gadget.h | 11 +++++++++++ 3 files changed, 13 insertions(+) commit c0bd5456a470223e331a9e9e93b4a7425ecfaabb Author: Kishon Vijay Abraham I Date: Mon Jul 27 12:25:32 2015 +0530 usb: dwc3: ep0: handle non maxpacket aligned transfers > 512 Use chained TRB mechanism to handle non maxpacket aligned transfers greater than bounce buffer size. With this the first TRB will be programmed to receive 'ALIGN(ur->length - maxp, maxp)' data and the second TRB will be programmed to receive the remaining data using bounce buffer. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) commit 2abd9d5fa60f90cd99801687904f528156d31e18 Author: Kishon Vijay Abraham I Date: Mon Jul 27 12:25:31 2015 +0530 usb: dwc3: ep0: Add chained TRB support Add chained TRB support to ep0. Now TRB's can be chained just by invoking _dwc3_ep0_start_trans_ with 'chain' parameter set to true. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 16 +++++++++++++--- drivers/usb/dwc3/gadget.c | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) commit 368ca113ca0a41bbf60be6886bbbd238523c6fba Author: Kishon Vijay Abraham I Date: Mon Jul 27 12:25:30 2015 +0530 usb: dwc3; ep0: Modify _dwc3_ep0_start_trans_ API to take 'chain' parameter No functional change. Added a new parameter in _dwc3_ep0_start_trans_ to indicate whether the TRB is a chained TRB or last TRB. This is in preparation for adding chained TRB support for ep0. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 8a3442205630d52b1b1777efe07c80832aa5ee73 Author: Kishon Vijay Abraham I Date: Mon Jul 27 12:25:29 2015 +0530 usb: dwc3: ep0: preparation for handling non maxpacket aligned transfers > 512 No functional change. This is in preparation for handling non maxpacket aligned transfers greater than bounce buffer size. This is basically to avoid code duplication when using chained TRB transfers to handle non maxpacket aligned transfers greater than bounce buffer size. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit 2e5464da4e7dc55e1751d2beb3e6e78f35020756 Author: Kishon Vijay Abraham I Date: Mon Jul 27 12:25:28 2015 +0530 usb: dwc3: ep0: use _roundup_ to calculate the transfer size No functional change. Used _roundup_ macro to calculate the transfer size aligned to maxpacket in dwc3_ep0_complete_data. It also makes it similar to how transfer size is calculated in __dwc3_ep0_do_control_data. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b2fb5b1a0f50d3ebc12342c8d8dead245e9c9d4e Author: Kishon Vijay Abraham I Date: Mon Jul 27 12:25:27 2015 +0530 usb: dwc3: ep0: Fix mem corruption on OUT transfers of more than 512 bytes DWC3 uses bounce buffer to handle non max packet aligned OUT transfers and the size of bounce buffer is 512 bytes. However if the host initiates OUT transfers of size more than 512 bytes (and non max packet aligned), the driver throws a WARN dump but still programs the TRB to receive more than 512 bytes. This will cause bounce buffer to overflow and corrupt the adjacent memory locations which can be fatal. Fix it by programming the TRB to receive a maximum of DWC3_EP0_BOUNCE_SIZE (512) bytes. Cc: # 3.4+ Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Felipe Balbi drivers/usb/dwc3/ep0.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit a0ddef81f4aeeeec3326f6b6a255d8ea13b41908 Author: Chris Metcalf Date: Wed Jul 22 14:30:14 2015 -0400 tile: enable full SECCOMP support Signed-off-by: Chris Metcalf .../seccomp/seccomp-filter/arch-support.txt | 2 +- arch/tile/Kconfig | 17 +++++++++++++ arch/tile/include/asm/Kbuild | 1 + arch/tile/include/asm/elf.h | 4 +--- arch/tile/include/asm/syscall.h | 28 +++++++++++++++++++++- arch/tile/kernel/intvec_32.S | 1 + arch/tile/kernel/intvec_64.S | 1 + arch/tile/kernel/ptrace.c | 3 +++ include/uapi/linux/audit.h | 3 +++ include/uapi/linux/elf-em.h | 2 ++ 10 files changed, 57 insertions(+), 5 deletions(-) commit 38715df206d52817ac8ac032f35ee76955bdc15d Author: Viresh Kumar Date: Thu Jul 16 16:56:30 2015 +0530 tile/time: Migrate to new 'set-state' interface Migrate tile driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Chris Metcalf Signed-off-by: Viresh Kumar Signed-off-by: Chris Metcalf arch/tile/kernel/time.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 49bda21266fdf195142e8b5dea057f09e96ada9f Author: Michał Pecio Date: Sun Jul 26 11:14:34 2015 +0200 USB: pl2303: fix baud-rate divisor calculations This commit fixes the following issues: 1. The 9th bit of buf was believed to be the LSB of divisor's exponent, but the hardware interprets it as MSB (9th bit) of the mantissa. The exponent is actually one bit shorter and applies to base 4, not 2 as previously believed. 2. Loop iterations doubled the exponent instead of incrementing. 3. The exponent wasn't checked for overflow. 4. The function returned requested rate instead of actual rate. Due to issue #2, the old code deviated from the wrong formula described in #1 and actually yielded correct rates when divisor was lower than 4096 by using exponents of 0, 2 or 4 base-2, interpreted as 0, 1, 2 base-4 with the 9th mantissa bit clear. However, at 93.75 kbaud or less the rate turned out too slow due to #2 or too fast due to #2 and #3. I tested this patch by sending and validating 0x00,0x01,..,0xff to an FTDI dongle at 234, 987, 2401, 9601, 31415, 115199, 250k, 500k, 750k, 1M, 1.5M, 3M+1 baud. All rates passed. I also used pv to check speed at some rates unsupported by FTDI: 45 (the lowest possible), 2M, 4M, 5M and 6M-1. Looked sane. Signed-off-by: Michal Pecio Fixes: 399aa9a75ad3 ("USB: pl2303: use divisors for unsupported baud rates") Cc: stable # v3.18 [johan: update summary ] Signed-off-by: Johan Hovold drivers/usb/serial/pl2303.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) commit aa53c09e90a19c215549bd1ca970fddcb7c0c001 Author: Jiri Olsa Date: Mon Jul 27 20:24:17 2015 +0200 perf tests: Adding build test for having ending double slash Pawel Moll reported build issue for having extra slash (/) at the end of the prefix variable. $ make prefix=/usr/local/ CC tests/attr.o tests/attr.c: In function ‘test__attr’: tests/attr.c:168:50: error: expected ‘)’ before ‘;’ token snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR); ^ tests/attr.c:176:1: error: expected ‘;’ before ‘}’ token } ^ tests/attr.c:176:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Adding automated test case for this. Reported-by: Pawel Moll Signed-off-by: Jiri Olsa Cc: Adrian Hunter Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150727182417.GD20509@krava.brq.redhat.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/make | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 3e5e95ff468b3d19fb08a308b921a83716650b48 Author: Javier Martinez Canillas Date: Wed Jul 15 18:32:45 2015 +0200 ARM: exynos_defconfig: Enable NTC Thermistors support The Exynos5420 Peach Pit and Exynos5800 Peach Pi Chromebooks have IIO based ADC thermistors. Enable built-in support for its driver. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 1 + 1 file changed, 1 insertion(+) commit cf91f6d94684b8c7b81c3558ad2639179d7c1da9 Author: Javier Martinez Canillas Date: Wed Jul 15 18:32:44 2015 +0200 ARM: multi_v7_defconfig: Enable NTC Thermistors support The Exynos5420 Peach Pit and Exynos5800 Peach Pi Chromebooks have IIO based ADC thermistors. Enable module support for its driver and also for the needed Exynos ADC driver. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit f7b5a58fd7f441f93279d964fe1ee4ff8669859e Author: Javier Martinez Canillas Date: Wed Jul 8 15:40:46 2015 -0700 ARM: multi_v7_defconfig: Remove old Samsung USB PHY configs The old drivers/usb/phy/phy-samsung-usb{2,3} are now deleted since were replaced by newer drivers that use the Generic PHY framework but their Kconfig options were left over in multi_v7_defconfig. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/configs/multi_v7_defconfig | 2 -- 1 file changed, 2 deletions(-) commit 261cd3ad5d49ebf128afa5397763b27fe5c3d8f8 Author: Anand Moon Date: Tue Jun 9 13:37:59 2015 +0930 ARM: exynos_defconfig: Enable CONFIG_SND_SOC_ODROIDX2 for Odroid-XU3 Enable CONFIG_SND_SOC_ODROIDX2 and CONFIG_SND_SIMPLE_CARD to enable sound on Odroid-XU3 board using the max98090 audio codec. Signed-off-by: Anand Moon Reviewed-by: Lukasz Majewski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/configs/exynos_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit ae7d3821a769a4ac64d4c244b5cd8b134768d452 Author: Peter Oh Date: Wed Jul 29 11:58:50 2015 +0300 ath10k: initialize msdu ext. descriptor before use Initial QCA99X0 support has a known issue with TCP Tx throughput. All other path such as UDP Tx/Rx and TCP Rx meet their expectation (> 900Mbps), but TCP Tx marked as low as 5Mbps when single pair is used on iperf. The root cause is turned out because TSO flag is not initialized properly so that firmware configures TSO in wrong way. TSO flags in msdu extension descriptor is required to be reset to indicate firmware there is no TSO is enabled, otherwise it could act as TSO is enabled which causes huge throughput drop. In fact, it's enough by resetting TSO flags only to prevent the unexpected behavior, but initializing whole msdu ext. descriptor will help to clear uncertainty of firmware could bring on as it constantly updated. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_tx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8a055a8adc875768223be2dfc33de5dc70212756 Author: Vasanthakumar Thiagarajan Date: Wed Jul 29 11:40:39 2015 +0300 ath10k: add QCA99X0 to supported device list Add vendor/device id of QCA99X0 V2.0 to pci id table and QCA99X0_HW_2_0_CHIP_ID_REV to ath10k_pci_supp_chips[] for QCA99X0 to get detected by the driver. kvalo: now QCA99X0 family of chipsets is supported by ath10k. Tested client, AP and monitor mode with QCA9990. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 2 ++ 1 file changed, 2 insertions(+) commit 71ba994c94a81c37185ef2fb5190844286ba9aca Author: Paolo Bonzini Date: Wed Jul 29 12:31:15 2015 +0200 KVM: x86: clean/fix memory barriers in irqchip_in_kernel The memory barriers are trying to protect against concurrent RCU-based interrupt injection, but the IRQ routing table is not valid at the time kvm->arch.vpic is written. Fix this by writing kvm->arch.vpic last. kvm_destroy_pic then need not set kvm->arch.vpic to NULL; modify it to take a struct kvm_pic* and reuse it if the IOAPIC creation fails. Signed-off-by: Paolo Bonzini arch/x86/kvm/i8259.c | 15 +++++---------- arch/x86/kvm/irq.h | 8 ++++---- arch/x86/kvm/x86.c | 17 ++++++----------- 3 files changed, 15 insertions(+), 25 deletions(-) commit dd489240a21afc3ff3962aba5d987229536cae63 Author: Paolo Bonzini Date: Wed Jul 29 11:32:20 2015 +0200 KVM: document memory barriers for kvm->vcpus/kvm->online_vcpus Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 4 ++++ virt/kvm/kvm_main.c | 5 +++++ 2 files changed, 9 insertions(+) commit 1201844e6ddc4e13dfc1a7ffbba0cfd180944679 Author: Raja Mani Date: Wed Jul 29 11:40:38 2015 +0300 ath10k: increase max client to 512 in qca99x0 When max client was set to 512 in qca99x0, there was host memory alloc failure during wmi service ready event handling. This issue got resolved now, increasing max client limit from 256 to 512. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit c8ecfc1c33979054fb631d2066745d03ce322b6f Author: Raja Mani Date: Wed Jul 29 11:40:38 2015 +0300 ath10k: fix memory alloc failure in qca99x0 during wmi svc rdy event Host memory required for firmware is allocated while handling wmi service ready event. Right now, wmi service ready is handled in tasklet context and it calls dma_alloc_coherent() with atomic flag (GFP_ATOMIC) to allocate memory in host needed for firmware. The problem is, dma_alloc_coherent() with GFP_ATOMIC fails in the platform (at least in AP platform) where it has less atomic pool memory (< 2mb). QCA99X0 requires around 2 MB of host memory for one card, having additional QCA99X0 card in the same platform will require similarly amount of memory. So, it's not guaranteed that all the platform will have enough atomic memory pool. Fix this issue, by handling wmi service ready event in workqueue context and calling dma_alloc_coherent() with GFP_KERNEL. mac80211 work queue will not be ready at the time of handling wmi service ready. So, it can't be used to handle wmi service ready. Also, register work gets scheduled during insmod in existing ath10k_wq and waits for wmi service ready to completed. Both workqueue can't be used for this purpose. New auxiliary workqueue is added to handle wmi service ready. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 11 +++++++++- drivers/net/wireless/ath/ath10k/core.h | 5 +++++ drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.c | 34 +++++++++++++++++++++++++------ 4 files changed, 44 insertions(+), 8 deletions(-) commit 41656aa77f4f0caddde87bc88c2fe13f462b33bd Author: Dan Streetman Date: Wed Jul 29 19:50:46 2015 -0400 MAINTAINERS: change 842 NX owner email address Change my IBM email to my personal IEEE email. I'm leaving IBM, so my email there won't work anymore. This changes the owner to my personal email, so I can still get cc'ed on patches, until someone at IBM sends a patch to take it over. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 844190dbeb5f37af5218f8587aeae25682fcb3a1 Author: Dan Streetman Date: Wed Jul 29 19:43:29 2015 -0400 crypto: nx - use be32_to_cpu for __be32 field in debug msg One of the debug messages in the NX 842 PowerNV driver is missing the required be32_to_cpu() wrapper when accessing the __be32 field csb->count. Add the wrapper so the message will show the correct count. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-powernv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7371c0a5c205455d69f8e8dc1d16791f08a38155 Author: Dan Streetman Date: Wed Jul 29 19:42:09 2015 -0400 crypto: nx - don't err if compressed output > input Return success instead of error if compression succeeds but the output is larger than the input. It's unlikely that the caller will use the compressed data since it's larger than the original uncompressed data, but there was no error and returning an error code is incorrect. Further, for testing small input buffers, the output is likely to be larger than the input and success needs to be returned to verify the test. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit f15107f41282d5ae9c6c26832dcc485729821ccc Author: Jun Nie Date: Wed Jul 29 14:16:58 2015 +0800 ARM: zx: Add power domains for ZX296702 Add power domains for ZX296702 to power off inactive power domains in runtime. Signed-off-by: Jun Nie [olof: Marked zx296702_pd_driver as __initdata to avoid section mismatch] Signed-off-by: Olof Johansson arch/arm/mach-zx/Kconfig | 1 + arch/arm/mach-zx/Makefile | 2 +- arch/arm/mach-zx/zx296702-pm-domain.c | 202 ++++++++++++++++++++++++++++++++++ 3 files changed, 204 insertions(+), 1 deletion(-) commit 5857d1dbae7d5bf4219efc39996ad002362a2951 Author: Alexander Aring Date: Thu Jul 30 09:40:53 2015 +0200 Bluetooth: 6lowpan: Fix possible race This patch fix a possible race after calling register_netdev. After calling netdev_register it could be possible that netdev_ops callbacks use the uninitialized private data of lowpan_dev. By moving the initialization of this data before netdev_register we can be sure that initialized private data is be used after netdev_register. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/bluetooth/6lowpan.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 917cdc5f7305c753ed6e58d7e87d25ba023f18b4 Author: Josh Wu Date: Tue Jun 16 18:08:34 2015 +0800 ARM: at91/dt: add isi & ov2640 dt nodes for at91sam9m10g45ek board First we group the isi data pins, and for now we only use 0~7 data pins with HSYNC and VSYNC. Also add the link for atmel-isi and ov2640 sensor node. Signed-off-by: Josh Wu [nicolas.ferre@atmel.com: move the pinctrl properties in board .dts file] Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91sam9g45.dtsi | 48 ++++++++++++++++++++-------------- arch/arm/boot/dts/at91sam9m10g45ek.dts | 47 +++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 19 deletions(-) commit c22ff7b4e74d8136a9911d8b8d0f25f9f7c3edc1 Author: Lennert Buytenhek Date: Tue Jul 21 17:44:47 2015 +0300 mac802154: Fix memory corruption with global deferred transmit state. When transmitting a packet via a mac802154 driver that can sleep in its transmit function, mac802154 defers the call to the driver's transmit function to a per-device workqueue. However, mac802154 uses a single global work_struct for this, which means that if you have more than one registered mac802154 interface in the system, and you transmit on more than one of them at the same time, you'll very easily cause memory corruption. This patch moves the deferred transmit processing state from global variables to struct ieee802154_local, and this seems to fix the memory corruption issue. Signed-off-by: Lennert Buytenhek Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/ieee802154_i.h | 4 ++++ net/mac802154/main.c | 2 ++ net/mac802154/tx.c | 27 ++++++--------------------- 3 files changed, 12 insertions(+), 21 deletions(-) commit 8b44f0dd2f90acd6c8842537223b39f890f2e713 Author: Alexander Aring Date: Thu Jul 30 12:13:29 2015 +0200 at86rf230: remove hrtimer on 1 usec delay According Documentation/timers/timers-howto.txt the usually case for setting up a hrtimer takes > ~10us. So we should use udelay in this case so we are sure that the state change was done, before doing the state change assert. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann drivers/net/ieee802154/at86rf230.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 54c9ee39923c0ffa27b99a1b7321e0d07408c97b Author: Christophe JAILLET Date: Thu Jul 16 22:17:13 2015 +0200 Bluetooth: cmtp: Do not use list_for_each_safe when not needed There is no need to use the safe version of list_for_each here. Signed-off-by: Christophe JAILLET Signed-off-by: Marcel Holtmann net/bluetooth/cmtp/capi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f4b3eee727e876d625cfe3585af48f4983c435d7 Author: Bernhard Thaler Date: Thu Jul 30 06:06:12 2015 +0200 netfilter: bridge: do not initialize statics to 0 or NULL Fix checkpatch.pl "ERROR: do not initialise statics to 0 or NULL" for all statics explicitly initialized to 0. Signed-off-by: Bernhard Thaler Signed-off-by: Pablo Neira Ayuso net/bridge/br_netfilter_hooks.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d63b282645f56641900e15fb14572bdf6c9bed27 Author: Daniel Drake Date: Fri Jul 17 11:12:25 2015 -0600 Bluetooth: btusb: match generic class code in interface descriptor btusb currently has a generic match on USB device descriptors: { USB_DEVICE_INFO(0xe0, 0x01, 0x01) }, However, http://www.usb.org/developers/defined_class states: Base Class E0h (Wireless Controller) This base class is defined for devices that are Wireless controllers. Values not shown in the table below are reserved. These class codes are to be used in Interface Descriptors, with the exception of the Bluetooth class code which can also be used in a Device Descriptor. Add a match on the interface descriptors accordingly. This fixes compatibility with the RTL8723AU device shown below. This device conforms to the USB Interface Association Descriptor specification, which requires the device to have class ef/02/01. The extra IAD descriptor then specifies that interfaces 0 and 1 belong to the same function/driver, which is true. Provided that the Bluetooth device class spec accepts use of the IAD, I imagine that technically, all btusb devices should be configured like this. T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0bda ProdID=0724 Rev= 2.00 S: Manufacturer=Realtek S: Product=802.11n WLAN Adapter S: SerialNumber=00e04c000001 C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=500mA A: FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=01 I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms I:* If#= 2 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8723au E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=500us Signed-off-by: Daniel Drake Signed-off-by: Marcel Holtmann drivers/bluetooth/btusb.c | 3 +++ 1 file changed, 3 insertions(+) commit 72b1e5e4cac72efa6b739b47e41f53e4520b4194 Author: Florian Westphal Date: Thu Jul 23 16:21:30 2015 +0200 netfilter: bridge: reduce nf_bridge_info to 32 bytes again We can use union for most of the temporary cruft (original ipv4/ipv6 address, source mac, physoutdev) since they're used during different stages of br netfilter traversal. Also get rid of the last two ->mask users. Shrinks struct from 48 to 32 on 64bit arch. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter_bridge.h | 12 +++++++++--- include/linux/skbuff.h | 19 +++++++++++++------ net/bridge/br_netfilter_hooks.c | 14 ++++++-------- net/bridge/br_netfilter_ipv6.c | 2 +- net/ipv4/netfilter/nf_defrag_ipv4.c | 7 ++----- net/ipv6/netfilter/nf_defrag_ipv6_hooks.c | 7 ++----- 6 files changed, 33 insertions(+), 28 deletions(-) commit df9b89c7e46cf88ebf5a29c28c45d3b0b8c5d502 Author: Arron Wang Date: Fri Jul 24 17:11:01 2015 +0800 Bluetooth: Move create/accept phy link completed callback to amp.c To avoid amp module hooks from hci_event.c Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann net/bluetooth/amp.c | 53 +++++++++++++++++++++++++++++++++++++++++++++-- net/bluetooth/hci_event.c | 49 ------------------------------------------- 2 files changed, 51 insertions(+), 51 deletions(-) commit b3d3914006a05cae448684058760359ef0cded49 Author: Arron Wang Date: Fri Jul 24 17:10:50 2015 +0800 Bluetooth: Move amp assoc read/write completed callback to amp.c To avoid amp module hooks from hci_event.c Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann net/bluetooth/amp.c | 81 ++++++++++++++++++++++++++++++++++++++++++++--- net/bluetooth/hci_event.c | 59 ---------------------------------- 2 files changed, 77 insertions(+), 63 deletions(-) commit 839278823c27b71b46d677c8cf56b2d1f95610af Author: Arron Wang Date: Fri Jul 24 17:10:16 2015 +0800 Bluetooth: Move get info completed callback to a2mp.c To avoid a2mp module hooks from hci_event.c and send getinfo response operation only required by a2mp module, we can move this callback to a2mp.c Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann net/bluetooth/a2mp.c | 17 ++++++++++++++++- net/bluetooth/hci_event.c | 5 +---- 2 files changed, 17 insertions(+), 5 deletions(-) commit a77a6a14e54a6853141d99512bfed4acb5c2657a Author: Arron Wang Date: Fri Jul 24 17:13:15 2015 +0800 Bluetooth: Move high speed specific event under BT_HS option Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann net/bluetooth/hci_event.c | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) commit 244bc377591c3882f454882357bc730c90cbedb5 Author: Arron Wang Date: Fri Jul 24 17:12:55 2015 +0800 Bluetooth: Add BT_HS config option Move A2MP Module under BT_HS config option and allow the user have flexible option to choose the feature only they need a2mp_discover_amp() & a2mp_channel_create() are a2mp module entry point for master and slave, and this is dynamic invoked depends on the userspace or remote request, then we defined their implementation depends on BT_HS config Signed-off-by: Arron Wang Signed-off-by: Marcel Holtmann net/bluetooth/Kconfig | 5 +++++ net/bluetooth/Makefile | 3 ++- net/bluetooth/a2mp.h | 19 +++++++++++++++++++ net/bluetooth/amp.h | 14 ++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) commit 4a546ec364633fcbe5709811230d7e0580c9dc1d Author: Frederic Danis Date: Mon Jul 27 18:02:25 2015 +0200 Bluetooth: btbcm: Add BCM4330B1 UART device Add "waiting for configuration" address. Add lmp_subver and firmware name for BCM4330B1 controller. Signed-off-by: Frederic Danis Signed-off-by: Marcel Holtmann drivers/bluetooth/btbcm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit d7ee3519042798be6224e97f259ed47a63da4620 Author: Michal Kubeček Date: Fri Jul 17 16:17:56 2015 +0200 netfilter: nf_ct_sctp: minimal multihoming support Currently nf_conntrack_proto_sctp module handles only packets between primary addresses used to establish the connection. Any packets between secondary addresses are classified as invalid so that usual firewall configurations drop them. Allowing HEARTBEAT and HEARTBEAT-ACK chunks to establish a new conntrack would allow traffic between secondary addresses to pass through. A more sophisticated solution based on the addresses advertised in the initial handshake (and possibly also later dynamic address addition and removal) would be much harder to implement. Moreover, in general we cannot assume to always see the initial handshake as it can be routed through a different path. The patch adds two new conntrack states: SCTP_CONNTRACK_HEARTBEAT_SENT - a HEARTBEAT chunk seen but not acked SCTP_CONNTRACK_HEARTBEAT_ACKED - a HEARTBEAT acked by HEARTBEAT-ACK State transition rules: - HEARTBEAT_SENT responds to usual chunks the same way as NONE (so that the behaviour changes as little as possible) - HEARTBEAT_ACKED responds to usual chunks the same way as ESTABLISHED does, except the resulting state is HEARTBEAT_ACKED rather than ESTABLISHED - previously existing states except NONE are preserved when HEARTBEAT or HEARTBEAT-ACK is seen - NONE (in the initial direction) changes to HEARTBEAT_SENT on HEARTBEAT and to CLOSED on HEARTBEAT-ACK - HEARTBEAT_SENT changes to HEARTBEAT_ACKED on HEARTBEAT-ACK in the reply direction - HEARTBEAT_SENT and HEARTBEAT_ACKED are preserved on HEARTBEAT and HEARTBEAT-ACK otherwise Normally, vtag is set from the INIT chunk for the reply direction and from the INIT-ACK chunk for the originating direction (i.e. each of these defines vtag value for the opposite direction). For secondary conntracks, we can't rely on seeing INIT/INIT-ACK and even if we have seen them, we would need to connect two different conntracks. Therefore simplified logic is applied: vtag of first packet in each direction (HEARTBEAT in the originating and HEARTBEAT-ACK in reply direction) is saved and all following packets in that direction are compared with this saved value. While INIT and INIT-ACK define vtag for the opposite direction, vtags extracted from HEARTBEAT and HEARTBEAT-ACK are always for their direction. Default timeout values for new states are HEARTBEAT_SENT: 30 seconds (default hb_interval) HEARTBEAT_ACKED: 210 seconds (hb_interval * path_max_retry + max_rto) (We cannot expect to see the shutdown sequence so that, unlike ESTABLISHED, the HEARTBEAT_ACKED timeout shouldn't be too long.) Signed-off-by: Michal Kubecek Signed-off-by: Pablo Neira Ayuso include/uapi/linux/netfilter/nf_conntrack_sctp.h | 2 + include/uapi/linux/netfilter/nfnetlink_cttimeout.h | 2 + net/netfilter/nf_conntrack_proto_sctp.c | 101 ++++++++++++++++----- 3 files changed, 81 insertions(+), 24 deletions(-) commit cfcbe858f26f6450aa0cb3ab26b3a0a058b348d5 Merge: 8670f2a 31557f0 Author: David S. Miller Date: Thu Jul 30 00:05:00 2015 -0700 Merge branch 'mlxsw' Jiri Pirko says: ==================== Introduce Mellanox Technologies Switch ASICs switchdev drivers This patchset introduces Mellanox Technologies Switch driver infrastructure and support for SwitchX-2 ASIC. The driver is divided into 3 logical parts: 1) Bus - implements switch bus interface. Currently only PCI bus is implemented, but more buses will be added in the future. Namely I2C and SGMII. (patch #2) 2) Driver - implemements of ASIC-specific functions. Currently SwitchX-2 ASIC is supported, but a plan exists to introduce support for Spectrum ASIC in the near future. (patch #4) 3) Core - infrastructure that glues buses and drivers together. It implements register access logic (EMADs) and takes care of RX traps and events. (patch #1 and #3) ==================== Signed-off-by: David S. Miller commit 31557f0f9755696530d08465cf9940404f2d48e2 Author: Jiri Pirko Date: Wed Jul 29 23:33:49 2015 +0200 mlxsw: Introduce Mellanox SwitchX-2 ASIC support Benefit from the previously introduced Mellanox Switch infrastructure and add driver for SwitchX-2 ASIC. Note that this driver is very simple now. It implements bare minimum for getting device to work on slow-path. Fast-path offload functionality is going to be added soon. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: Elad Raz Reviewed-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/Kconfig | 11 + drivers/net/ethernet/mellanox/mlxsw/Makefile | 2 + drivers/net/ethernet/mellanox/mlxsw/core.h | 2 + drivers/net/ethernet/mellanox/mlxsw/pci.c | 3 + drivers/net/ethernet/mellanox/mlxsw/pci.h | 1 + drivers/net/ethernet/mellanox/mlxsw/port.h | 4 + drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 1552 ++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlxsw/txheader.h | 80 ++ 8 files changed, 1655 insertions(+) commit 4ec14b7634b298186f18f65d959354dc3c60e02c Author: Ido Schimmel Date: Wed Jul 29 23:33:48 2015 +0200 mlxsw: Add interface to access registers and process events Ethernet Management Datagrams (EMADs) are Ethernet packets sent between the host and the device in order to configure the available device registers. Another use case is notifications sent from the device to the host, letting it know about certain events, such as port up / down. Add the ability to construct EMADs with provisions to construct and parse the registers' payloads. Implement EMAD transaction layer which is responsible for the reliable transmission of EMADs. Also, add an infrastructure used by the switch driver to register for particular events generated by the device. Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: Elad Raz Reviewed-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/core.c | 736 ++++++++++++++++ drivers/net/ethernet/mellanox/mlxsw/core.h | 21 + drivers/net/ethernet/mellanox/mlxsw/emad.h | 127 +++ drivers/net/ethernet/mellanox/mlxsw/port.h | 19 + drivers/net/ethernet/mellanox/mlxsw/reg.h | 1289 ++++++++++++++++++++++++++++ 5 files changed, 2192 insertions(+) commit eda6500a987a027b78a275c11db6454404a626aa Author: Jiri Pirko Date: Wed Jul 29 23:33:47 2015 +0200 mlxsw: Add PCI bus implementation Add PCI bus implementation for Mellanox Technologies Switch ASICs. This includes firmware initialization, async queues manipulation and command interface implementation. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: Elad Raz Reviewed-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlxsw/Kconfig | 10 + drivers/net/ethernet/mellanox/mlxsw/Makefile | 2 + drivers/net/ethernet/mellanox/mlxsw/pci.c | 1791 ++++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlxsw/pci.h | 220 ++++ 4 files changed, 2023 insertions(+) commit 93c1edb27f9e7ef7f276b91763c93242bbda71cb Author: Jiri Pirko Date: Wed Jul 29 23:33:46 2015 +0200 mlxsw: Introduce Mellanox switch driver core Add core components of Mellanox switch driver infrastructure. Core infrastructure is designed so that it can be used by multiple bus drivers (PCI now, I2C and SGMII are planned to be implemented in the future). Multiple switch kind drivers can be registered as well. This core serves as a glue between buses and drivers. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: Elad Raz Reviewed-by: Scott Feldman Signed-off-by: David S. Miller MAINTAINERS | 9 + drivers/net/ethernet/mellanox/Kconfig | 1 + drivers/net/ethernet/mellanox/Makefile | 1 + drivers/net/ethernet/mellanox/mlxsw/Kconfig | 11 + drivers/net/ethernet/mellanox/mlxsw/Makefile | 2 + drivers/net/ethernet/mellanox/mlxsw/cmd.h | 1090 ++++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlxsw/core.c | 550 +++++++++++++ drivers/net/ethernet/mellanox/mlxsw/core.h | 179 +++++ drivers/net/ethernet/mellanox/mlxsw/item.h | 405 ++++++++++ drivers/net/ethernet/mellanox/mlxsw/port.h | 52 ++ drivers/net/ethernet/mellanox/mlxsw/trap.h | 66 ++ 11 files changed, 2366 insertions(+) commit 8670f2a5acec2f79839785efdfb3626dfada7ed4 Author: Sriharsha Basavapatna Date: Wed Jul 29 19:35:32 2015 +0530 be2net: Support vxlan offload stats in the driver This patch adds vxlan offload specific counters to ethtool stats. We provide tx/rx queue counters to show the number of vxlan offload pkts sent/received. Signed-off-by: Sriharsha Basavapatna Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 2 ++ drivers/net/ethernet/emulex/benet/be_ethtool.c | 2 ++ drivers/net/ethernet/emulex/benet/be_main.c | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) commit a63c580a5271b61f12cf91e768120e33792e2907 Author: Oded Gabbay Date: Wed Jul 29 10:40:26 2015 +0300 drm/amdkfd: fix bug when initializing sdma vm A logical AND operation was used during mask and shift, instead of a bitwise AND operation. This patch fixes this bug by changing the operation to bitwise AND. Signed-off-by: Oded Gabbay Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e8a64b20eb27cd9c9403f51e4e6c415f9e096e39 Author: Oded Gabbay Date: Wed Jul 29 10:33:06 2015 +0300 drm/amdgpu: fix bug when amdkfd destroys hqd The wrong define was used to check if the hqd is still active v2: Don't use SHIFT as the MASK is already shifted Signed-off-by: Oded Gabbay Reviewed-by: Alex Deucher drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 05cc5a39ddb74dd81a716a45e67b938d8ebed463 Author: Yuval Mintz Date: Wed Jul 29 15:52:46 2015 +0300 bnx2x: add vlan filtering offload Current driver always uses vlan-promisc mode, i.e., it receives both tagged and untagged traffic and lets the network stack drop packets tagged with unrequested vlan tags. This patch implements vlan-filtering offload in the driver - Unless explicitly configured to promisc mode, only untagged packets or packets tagged with requested vlans would reach the Rx flow. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 46 ++- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 5 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 13 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 250 ++++++++++++++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 258 +++++++++++++++- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h | 18 ++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 345 ++++++++++------------ drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h | 43 ++- drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 202 ++++++++++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h | 15 +- 10 files changed, 905 insertions(+), 290 deletions(-) commit e82a08b058976f33ad78201eda976ddaf8fe813d Merge: dcc38c0 98e81b0 Author: David S. Miller Date: Wed Jul 29 23:04:47 2015 -0700 Merge branch 'mlx5e-next' Amir Vadai says: ==================== net/mlx5e: Driver update 29-Jul-2015 This patchset contain bug fixes and code cleaning patches to the ConnectX-4 Ethernet driver. Patchset was applied and tested over commit 8c1a91f ("Merge branch 'mlx4-802.1ad-accel'") ==================== Signed-off-by: David S. Miller commit 98e81b0ad6f25e2c4e2ff1680f50f9c66bec9e08 Author: Achiad Shochat Date: Wed Jul 29 15:05:46 2015 +0300 net/mlx5e: Remove the mlx5e_update_priv_params() function It was used to update netdev priv parameters that require stopping and re-opening the device in a generic way - it got the new parameters and did: ndo_stop(), copy new parameters into current parameters, ndo_open(). We chose to remove it for two reasons: 1) It requires additional instance of struct mlx5e_params on the stack and looking forward we expect this struct to grow. 2) Sometimes we want to do additional operations (besides just updating the priv parameters) while the netdev is stopped. For example, updating netdev->mtu @mlx5e_change_mtu() should be done while the netdev is stopped (done in this commit). Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 - .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 57 +++++++++++++++------- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 51 ++++++++----------- 3 files changed, 60 insertions(+), 50 deletions(-) commit 1fc22739a83a245ddad9d9f7c2001c8b3b44c500 Author: Achiad Shochat Date: Wed Jul 29 15:05:45 2015 +0300 net/mlx5e: Introduce create/destroy RSS indir table access functions Introduce access functions to create/destroy RSS indrection table and use it in the Ethernet driver. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 19 ++------------ drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 29 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/transobj.h | 4 +++ 3 files changed, 35 insertions(+), 17 deletions(-) commit 1f2a30037bf18ae6d1bab2c47caeceb4eb0f6464 Author: Achiad Shochat Date: Wed Jul 29 15:05:44 2015 +0300 net/mlx5e: Do not use netdev_err() before the netdev is registered Since it is un-named at this time. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit 97de9f310a588161f0d27158c4ea6d8b477a4625 Author: Achiad Shochat Date: Wed Jul 29 15:05:43 2015 +0300 net/mlx5e: Avoid redundant de-reference Use the already defined rq pointer directly. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28abbfddf4477c4e9a04f276858ffa3fad90b7ac Author: Achiad Shochat Date: Wed Jul 29 15:05:42 2015 +0300 net/mlx5e: Remove redundant assignment of sq->user_index It is not needed by the mlx5 Eth driver since it has a CQ per RQ/SQ. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 - 1 file changed, 1 deletion(-) commit a4418a6c36cd9eb080cde0473d15f5cee4c3f35d Author: Achiad Shochat Date: Wed Jul 29 15:05:41 2015 +0300 net/mlx5e: Remove redundant field mlx5e_priv->num_tc This field already exists under the mlx5e_params struct Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 - .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 +++--- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 25 ++++++++++------------ 3 files changed, 14 insertions(+), 18 deletions(-) commit 68cdf5d6e91068c98d6091b193dc7a5ab7dcf5eb Author: Achiad Shochat Date: Wed Jul 29 15:05:40 2015 +0300 net/mlx5e: Use hard-coded 4K page size for RQ/SQ/CQ The page size of the device's RQ/SQ/CQ objects is defined in 4K units regardless of the system pages size. Thus using the Linux's PAGE_SHIFT macro yields wrong device configuration in systems where PAGE_SHIFT!=12. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c928ed55171b3aa5e14a9474ffe60f31590b89ff Author: Haggai Abramonvsky Date: Wed Jul 29 15:05:39 2015 +0300 net/mlx5_core: Check the return value of mlx5_command_exec() mlx5_cmd_exec() might fail - need to check return value. Signed-off-by: Haggai Abramovsky Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit dcc38c033b32b81b88b798f0c0b8453839ac996b Author: Thomas Graf Date: Wed Jul 29 13:52:06 2015 +0200 openvswitch: Re-add CONFIG_OPENVSWITCH_VXLAN This readds the config option CONFIG_OPENVSWITCH_VXLAN to avoid a hard dependency of OVS on VXLAN. It moves the VXLAN config compat code to vport-vxlan.c and allows compliation as a module. Fixes: 614732eaa12d ("openvswitch: Use regular VXLAN net_device device") Fixes: 2661371ace96 ("openvswitch: fix compilation when vxlan is a module") Cc: Pravin B Shelar Cc: Nicolas Dichtel Signed-off-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/Kconfig | 13 ++- net/openvswitch/Makefile | 1 + net/openvswitch/vport-netdev.c | 211 +++-------------------------------------- net/openvswitch/vport-netdev.h | 3 + net/openvswitch/vport-vxlan.c | 207 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 235 insertions(+), 200 deletions(-) commit 1ce4b2f44df74bac91ff5ddcbf903572577005bc Author: Bogdan Hamciuc Date: Wed Jul 29 12:47:16 2015 +0300 net: pktgen: Remove unused 'allocated_skbs' field Field pktgen_dev.allocated_skbs had been written to, but never read from. The number of allocated skbs can be deduced anyway, from the total number of sent packets and the 'clone_skb' param. Signed-off-by: Bogdan Hamciuc Signed-off-by: David S. Miller net/core/pktgen.c | 2 -- 1 file changed, 2 deletions(-) commit 879c7220e828af8bd82ea9d774c7e45c46b976e4 Author: Bogdan Hamciuc Date: Wed Jul 29 12:45:58 2015 +0300 net: pktgen: Observe needed_headroom of the device Allocate enough space so as not to force the outgoing net device to do skb_realloc_headroom(). Signed-off-by: Bogdan Hamciuc Signed-off-by: David S. Miller net/core/pktgen.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 92a99bf3bae7c1267db87bb3e3babda2c6dcc8a7 Author: Thomas Graf Date: Wed Jul 29 09:45:40 2015 +0200 lwtunnel: Make lwtun_encaps[] static Any external user should use the registration API instead of accessing this directly. Cc: Roopa Prabhu Signed-off-by: Thomas Graf Acked-by: Roopa Prabhu Signed-off-by: David S. Miller include/net/lwtunnel.h | 3 --- net/core/lwtunnel.c | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) commit b4b67f269d28c70174e11b7af7fbdb81124d220c Author: Scott Wood Date: Wed Jul 29 16:13:06 2015 +0300 gianfar: Fix warnings when built on 64-bit As part of defconfig consolidation using fragments, we'd like to be able to have the same drivers enabled on 32-bit and 64-bit. Gianfar happens to only exist on 32-bit systems, and when building the resulting 64-bit kernel warnings were produced. A couple of the warnings are trivial, but the rfbptr code has deeper issues. It uses the virtual address as the DMA address, which again, happens to work in the environments where this driver is currently used, but is not the right thing to do. Fixes: 45b679c9a3cc ("gianfar: Implement PAUSE frame generation support") Signed-off-by: Scott Wood Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 15 +++++++++------ drivers/net/ethernet/freescale/gianfar.h | 9 +++++++-- 2 files changed, 16 insertions(+), 8 deletions(-) commit 97493e6a4b527a9f3504908fdd0531b7036b9157 Merge: 7a86d96 265f94f Author: David S. Miller Date: Wed Jul 29 22:44:05 2015 -0700 Merge branch 'sk_txhash' Tom Herbert says: ==================== net: Initialize sk_hash to random value and reset for failing cnxs This patch set implements a common function to simply set sk_txhash to a random number instead of going through the trouble to call flow dissector. From dst_negative_advice we now reset the sk_txhash in hopes of finding a better ECMP path through the network. Changing sk_txhash affects: - IPv6 flow label and UDP source port which affect ECMP in the network - Local ECMP route selection (pending changes to use sk_txhash) ==================== Signed-off-by: David S. Miller commit 265f94ff54d62503663d9c788ba1f082e448f8b8 Author: Tom Herbert Date: Tue Jul 28 16:02:06 2015 -0700 net: Recompute sk_txhash on negative routing advice When a connection is failing a transport protocol calls dst_negative_advice to try to get a better route. This patch includes changing the sk_txhash in that function. This provides a rudimentary method to try to find a different path in the network since sk_txhash affects ECMP on the local host and through the network (via flow labels or UDP source port in encapsulation). Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/sock.h | 8 ++++++++ 1 file changed, 8 insertions(+) commit 877d1f6291f8e391237e324be58479a3e3a7407c Author: Tom Herbert Date: Tue Jul 28 16:02:05 2015 -0700 net: Set sk_txhash from a random number This patch creates sk_set_txhash and eliminates protocol specific inet_set_txhash and ip6_set_txhash. sk_set_txhash simply sets a random number instead of performing flow dissection. sk_set_txash is also allowed to be called multiple times for the same socket, we'll need this when redoing the hash for negative routing advice. Signed-off-by: Tom Herbert Signed-off-by: David S. Miller include/net/ip.h | 16 ---------------- include/net/ipv6.h | 19 ------------------- include/net/sock.h | 8 ++++++++ net/ipv4/datagram.c | 2 +- net/ipv4/tcp_ipv4.c | 4 ++-- net/ipv6/datagram.c | 2 +- net/ipv6/tcp_ipv6.c | 4 ++-- 7 files changed, 14 insertions(+), 41 deletions(-) commit 5d83c2b37d435b88452bc88a2a47672346efb2b4 Author: Michael Ellerman Date: Thu Jul 23 20:21:11 2015 +1000 selftests/seccomp: Add powerpc support Wire up the syscall number and regs so the tests work on powerpc. With the powerpc kernel support just merged, all tests pass on ppc64, ppc64 (compat), ppc64le, ppc, ppc64e and ppc64e (compat). Acked-by: Kees Cook Signed-off-by: Michael Ellerman tools/testing/selftests/seccomp/seccomp_bpf.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit c385d0db30f3c0bf687a080c38e8088c342116a3 Author: Michael Ellerman Date: Thu Jul 23 20:21:10 2015 +1000 selftests/seccomp: Make seccomp tests work on big endian The seccomp_bpf test uses BPF_LD|BPF_W|BPF_ABS to load 32-bit values from seccomp_data->args. On big endian machines this will load the high word of the argument, which is not what the test wants. Borrow a hack from samples/seccomp/bpf-helper.h which changes the offset on big endian to account for this. Signed-off-by: Michael Ellerman Acked-by: Kees Cook tools/testing/selftests/seccomp/seccomp_bpf.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 2449acc5348b94325e9374056b2cc3ed55816e96 Author: Michael Ellerman Date: Thu Jul 23 20:21:09 2015 +1000 powerpc/kernel: Enable seccomp filter This commit enables seccomp filter on powerpc, now that we have all the necessary pieces in place. To support seccomp's desire to modify the syscall return value under some circumstances, we use a different ABI to the ptrace ABI. That is we use r3 as the syscall return value, and orig_gpr3 is the first syscall parameter. This means the seccomp code, or a ptracer via SECCOMP_RET_TRACE, will see -ENOSYS preloaded in r3. This is identical to the behaviour on x86, and allows seccomp or the ptracer to either leave the -ENOSYS or change it to something else, as well as rejecting or not the syscall by modifying r0. If seccomp does not reject the syscall, we restore the register state to match what ptrace and audit expect, ie. r3 is the first syscall parameter again. We do this restore using orig_gpr3, which may have been modified by seccomp, which allows seccomp to modify the first syscall paramater and allow the syscall to proceed. We need to #ifdef the the additional handling of r3 for seccomp, so move it all out of line. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/Kconfig | 1 + arch/powerpc/kernel/ptrace.c | 41 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) commit e5dafc0da04567bb8d4adce00fcbde250608e394 Merge: dcd14dd 8c10342 Author: Dave Airlie Date: Thu Jul 30 12:45:11 2015 +1000 Merge tag 'topic/drm-misc-2015-07-28' of git://anongit.freedesktop.org/drm-intel into drm-next More drm-misc, mostly fine-tuning of atomic helpers. They're mostly driver-wide interface changes of the helpers and I need them for i915 work, so I plan to pull this tag into drm-intel-next too. * tag 'topic/drm-misc-2015-07-28' of git://anongit.freedesktop.org/drm-intel: drm/atomic: Update legacy DPMS state during modesets, v3. drm: Make the connector dpms callback return a value, v2. drm/atomic: pass old crtc state to atomic_begin/flush. drm/atomic: add connectors_changed to separate it from mode_changed, v2 drm: Fix DP_TEST_COUNT_MASK commit 7a86d96e4a990aab2fc7b3b97c3bb09f9da0a290 Merge: 71382bc 274b0b3 Author: David S. Miller Date: Wed Jul 29 17:17:44 2015 -0700 Merge branch 'thunderx_octeon_mdio' Radha Mohan Chintakuntla says: ==================== Add MDIO support to ThunderX NIC driver This patch series adds MDIO support to ThunderX NIC driver by making use of existing mdio-octeon driver. In the process modified the mdio-octeon driver to work on both Octeon and ThunderX platforms. * From v1: - Removed default selection in Kconfig for MDIO_OCTEON - Replace uint64 with u64 as suggested by David Daney ==================== Signed-off-by: David S. Miller commit 274b0b3984a93d6a2cbc2966a146fa3ed7288b1e Author: Radha Mohan Chintakuntla Date: Tue Jul 28 15:12:13 2015 -0700 net: thunderx: Select CONFIG_MDIO_OCTEON for ThunderX NIC The CONFIG_MDIO_OCTEON is required so that the ThunderX NIC driver can talk to the PHY drivers. Signed-off-by: Radha Mohan Chintakuntla Signed-off-by: David S. Miller drivers/net/ethernet/cavium/Kconfig | 2 ++ 1 file changed, 2 insertions(+) commit de9e397e40f56b9f34af4bf6a5bd7a75ea02456c Author: Radha Mohan Chintakuntla Date: Tue Jul 28 15:12:12 2015 -0700 net: mdio-octeon: Fix octeon_mdiobus_probe function for return values This patch fixes a possible crash in the octeon_mdiobus_probe function if the return values are not handled properly. Signed-off-by: Radha Mohan Chintakuntla Signed-off-by: Tomasz Nowicki Signed-off-by: David S. Miller drivers/net/phy/mdio-octeon.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit a6d678645210f187a23c4715579a34152ce10af6 Author: Radha Mohan Chintakuntla Date: Tue Jul 28 15:12:11 2015 -0700 net: mdio-octeon: Modify driver to work on both ThunderX and Octeon This patch modifies the mdio-octeon driver to work on both ThunderX and Octeon SoCs from Cavium Inc. Signed-off-by: Sunil Goutham Signed-off-by: Radha Mohan Chintakuntla Signed-off-by: David Daney Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 10 ++-- drivers/net/phy/mdio-octeon.c | 122 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 111 insertions(+), 21 deletions(-) commit 71382bc0431ea5901640a3794fea4eeb71cbcb2e Author: WingMan Kwok Date: Tue Jul 28 16:01:11 2015 -0400 net: netcp: Fixes efuse mac addr swap on k2e and k2l On some of the K2E and K2L platforms, the two DWORDs in efuse occupied by the pre-programmed mac address for slave port 1 are swapped. To workaround this issue, this patch adds a new define NETCP_EFUSE_ADDR_SWAP (2) which signifies the occurrence of such swapping so that the driver can take proper action. The flag can be enabled in the corresponding netcp interface dts binding as efuse-mac = <2> under the corresponding netcp interface node. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/keystone-netcp.txt | 6 +++++- drivers/net/ethernet/ti/netcp_core.c | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) commit dad5c83d71fcfa117ee678fe66ffa5fd2f1f2440 Author: Sergei Shtylyov Date: Wed Jul 29 01:16:02 2015 +0300 ARM: shmobile: silk: add Ether DT support Define the SILK board dependent part of the Ether device node. Enable DHCP and NFS root for the kernel booting. 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 | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) commit a42fc57a9e9d1dbb1d8cc0c3ccf2d7ea1a939559 Author: Sergei Shtylyov Date: Wed Jul 29 01:14:59 2015 +0300 ARM: shmobile: silk: initial device tree Add the initial device tree for the R8A7794 SoC based SILK low cost board. SCIF2 serial port support is included, so that the serial console can work. Based on the original patch by Vladimir Barinov . Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7794-silk.dts | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) commit 5a4c355229da12558b5ded0775f4d0bc6650d28d Author: Jon Maloy Date: Wed Jul 29 18:28:01 2015 -0400 tipc: fix bug in broadcast synch message create function In commit d999297c3dbbe7fdd832f7fa4ec84301e170b3e6 ("tipc: reduce locking scope during packet reception") we introduced a new function tipc_build_bcast_sync_msg(), which carries initial synchronization data between two nodes at first contact and at re-contact. In this function, we missed to add synchronization data, with the effect that the broadcast link endpoints will fail to synchronize correctly at re-contact between a running and a restarted node. All other cases work as intended. With this commit, we fix this bug. Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 3 +++ 1 file changed, 3 insertions(+) commit c948c26048ecb1023d2e68222c736f7da41da498 Author: Thomas Gleixner Date: Thu Jul 30 00:30:51 2015 +0200 x86/apic: Drop local_irq_save/restore in timer callbacks These callbacks are called with interrupts disabled from the core code. Fixup the local caller to disable interrupts. Signed-off-by: Thomas Gleixner Cc: Viresh Kumar arch/x86/kernel/apic/apic.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit b23d8e527815954768861bb20d2b224009fff7cd Author: Viresh Kumar Date: Thu Jul 16 16:28:44 2015 +0530 x86/apic: Migrate apic timer to new set_state interface Migrate apic driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything while switching to resume mode and so that callback isn't implemented. Signed-off-by: Viresh Kumar Cc: linaro-kernel@lists.linaro.org Cc: Jiang Liu Cc: Borislav Petkov Cc: David Rientjes Cc: Bandan Das Link: http://lkml.kernel.org/r/1896ac5989d27f2ac37f4786af9bd537e1921b83.1437042675.git.viresh.kumar@linaro.org Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/apic.c | 86 +++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 35 deletions(-) commit f075915ac0b11847fcfc8c4d55526a317e71c4d1 Author: Marc Zyngier Date: Tue Jul 28 14:46:26 2015 +0100 PCI/MSI: Drop domain field from msi_controller The only three users of that field are not using the msi_controller structure anymore, so drop it altogether. Acked-by: Bjorn Helgaas Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-20-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 3 --- include/linux/msi.h | 3 --- 2 files changed, 6 deletions(-) commit 8d63bc7beaeecdc2dfafed69c3555471fbe4aee7 Author: Marc Zyngier Date: Tue Jul 28 14:46:25 2015 +0100 PCI/MSI: pci-xgene-msi: Get rid of struct msi_controller The X-Gene MSI driver only uses the msi_controller structure as a way to match the host bridge with its MSI HW, and thus the msi_domain. But now that we can directly associate an msi_domain with a device, there is no use keeping this msi_controller around. Just remove all traces of msi_controller from the driver. Tested-by: Duc Dang Acked-by: Bjorn Helgaas Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Hanjun Guo Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-19-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/host/pci-xgene-msi.c | 41 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 25 deletions(-) commit ef50645aa32c6b55fe1445b5d06c73bfdf65019f Author: Marc Zyngier Date: Tue Jul 28 14:46:24 2015 +0100 irqchip/GICv2m: Add platform MSI support In order to support non-PCI MSI with GICv2m, add the minimal required entry points for the MSI domain, which is actually almost nothing (we just use the defaults provided by the core code). Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-18-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v2m.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) commit 5cedceb37c253c6181dbdd4bfe1b9d792e51fd37 Author: Marc Zyngier Date: Tue Jul 28 14:46:23 2015 +0100 irqchip/GICv2m: Get rid of struct msi_controller GICv2m only uses the msi_controller structure as a way to match the host bridge with its MSI HW, and thus the msi_domain. But now that we can directly associate an msi_domain with a device, there is no use keeping this msi_controller around. Just remove all traces of msi_controller from the driver. Also tag the inner (non-PCI) domain with DOMAIN_BUS_NEXUS. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-17-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v2m.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) commit 1e6db000482fa65a419d1776f9ae1ff919afe605 Author: Marc Zyngier Date: Tue Jul 28 14:46:22 2015 +0100 irqchip/gicv3-its: Add platform MSI support In order to support non-PCI MSI with the GICv3 ITS, add the minimal required entry points for the MSI domain (an msi_prepare implementation). The rest is only boilerplate code to find the raw ITS domain. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-16-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/Makefile | 2 +- drivers/irqchip/irq-gic-v3-its-platform-msi.c | 93 +++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) commit 54456db9a23753b87ce4d49adabe7da853bf13a2 Author: Marc Zyngier Date: Tue Jul 28 14:46:21 2015 +0100 irqchip/gicv3-its: Make the PCI/MSI code standalone We can now lookup the base ITS domain, making it possible to initialize the PCI/MSI code independently from the main ITS subsystem. This allows us to remove all the previously add hooks. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-15-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its-pci-msi.c | 47 +++++++++++++++++++++++++++---- drivers/irqchip/irq-gic-v3-its.c | 48 +++++++++++++++++++++----------- include/linux/irqchip/arm-gic-v3.h | 5 ---- 3 files changed, 73 insertions(+), 27 deletions(-) commit 841514ab41ced765158d71d818b1d564ebe9436d Author: Marc Zyngier Date: Tue Jul 28 14:46:20 2015 +0100 irqchip/gicv3-its: Get rid of struct msi_controller The GICv3 ITS only uses the msi_controller structure as a way to match the host bridge with its MSI HW, and thus the msi_domain. But now that we can directly associate an msi_domain with a device, there is no use keeping this msi_controller around. Just remove all traces of msi_controller from the driver. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-14-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) commit e55dcd4d8b8b82e4ecef2937c6d1dde7ba82916b Author: Marc Zyngier Date: Tue Jul 28 14:46:19 2015 +0100 irqchip/gicv3-its: Register irq domain with NEXUS token Now that we can distinguish between multiple domains carrying the same device_node, tag the raw ITS domain with DOMAIN_BUS_NEXUS. This will allow MSI providers built on top of the raw ITS domain to identify it. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-13-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic-v3-its.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit f130420e51df30891b55efcef24f5358b2fc2b97 Author: Marc Zyngier Date: Tue Jul 28 14:46:18 2015 +0100 irqchip/gicv3-its: Split PCI/MSI code from the core ITS driver It is becoming obvious that having the PCI/MSI code in the same file as the the core ITS code is giving people implementing non-PCI MSI support the wrong kind of idea. In order to make things a bit clearer, let's move the PCI/MSI code out to its own file. Hopefully it will make it clear that whoever thinks of hooking into the core ITS better have a very strong point. We use a temporary entry point that will get removed in a subsequent patch, once the proper infrastructure is added. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-12-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/Makefile | 2 +- drivers/irqchip/irq-gic-v3-its-pci-msi.c | 105 +++++++++++++++++++++++++++++++ drivers/irqchip/irq-gic-v3-its.c | 94 ++++----------------------- include/linux/irqchip/arm-gic-v3.h | 6 ++ 4 files changed, 123 insertions(+), 84 deletions(-) commit a5716070d88cba1a0a8a18fea809ea6e3374e276 Author: Marc Zyngier Date: Tue Jul 28 14:46:17 2015 +0100 genirq: Add DOMAIN_BUS_NEXUS irqdomain property Some IRQ domains are not designed to directly provide interrupts to devices, but strictly to be used by other domains. An example of this is the GICv3 ITS, which is completely bus agnostic, and on which it is possible to implement a PCI/MSI domain. Just introduce the irq_domain_bus_token property for now. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-11-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner include/linux/irqdomain.h | 1 + 1 file changed, 1 insertion(+) commit c09fcc4b2b48d58d769a8cff5041533535ece449 Author: Marc Zyngier Date: Tue Jul 28 14:46:16 2015 +0100 drivers/base: Add MSI domain support for non-PCI devices With the msi_list and the msi_domain properties now being at the generic device level, it is starting to be relatively easy to offer a generic way of providing non-PCI MSIs. The two major hurdles with this idea are: - Lack of global ID that identifies a device: this is worked around by having a global ID allocator for each device that gets enrolled in the platform MSI subsystem - Lack of standard way to write the message in the generating device. This is solved by mandating driver code to provide a write_msg callback, so that everyone can have their own square wheel Apart from that, the API is fairly straightforward: - platform_msi_create_irq_domain creates an MSI domain that gets tagged with DOMAIN_BUS_PLATFORM_MSI - platform_msi_domain_alloc_irqs allocate MSIs for a given device, populating the msi_list - platform_msi_domain_free_irqs does what is written on the tin [ tglx: Created a seperate struct platform_msi_desc and added kerneldoc entries ] Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-10-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/base/Makefile | 1 + drivers/base/platform-msi.c | 282 ++++++++++++++++++++++++++++++++++++++++++++ include/linux/msi.h | 22 ++++ 3 files changed, 305 insertions(+) commit c706c239af5bc297b5fbf1adc715632e1c222f7a Author: Marc Zyngier Date: Tue Jul 28 14:46:15 2015 +0100 of/platform: Assign MSI domain to platform device As for PCI, we're able to populate the msi_domain field at probe time, provided that the device tree has an "msi-parent" property. Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-9-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/of/irq.c | 21 +++++++++++++++++++++ drivers/of/platform.c | 1 + include/linux/irqdomain.h | 1 + include/linux/of_irq.h | 1 + 4 files changed, 24 insertions(+) commit d8a1cb7575502d2be502a65ecb344ff05c8d9f44 Author: Marc Zyngier Date: Tue Jul 28 14:46:14 2015 +0100 PCI/MSI: Let pci_msi_get_domain use struct device::msi_domain Now that we can easily find which MSI domain a PCI device is using, use dev_get_msi_domain as a way to retrieve the information. The original code is still used as a fallback. Acked-by: Bjorn Helgaas Reviewed-by: Hanjun Guo Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-8-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 471c931cb248ab7af0cd62503d811239b47f217b Author: Marc Zyngier Date: Tue Jul 28 14:46:13 2015 +0100 PCI/MSI: Allow msi_domain lookup using the host bridge node A number of platforms do not need to use the msi-parent property, as the host bridge itself provides the MSI controller. Allow this configuration by performing an irq domain lookup based on the host bridge node if it doesn't have a valid msi-parent property. Acked-by: Bjorn Helgaas Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-7-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/of.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit b165e2b60b39888a7ff8efbc1de40137471dda41 Author: Marc Zyngier Date: Tue Jul 28 14:46:12 2015 +0100 PCI/MSI: Add support for OF-provided msi_domain In order to populate the PCI host bridge msi_domain, use the "msi-parent" attribute to lookup a corresponding irq domain. If found, this is our MSI domain. This gets plugged into the core PCI code. Acked-by: Bjorn Helgaas Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Hanjun Guo Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-6-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/of.c | 25 +++++++++++++++++++++++++ drivers/pci/probe.c | 5 ++++- include/linux/pci.h | 4 ++++ 3 files changed, 33 insertions(+), 1 deletion(-) commit 44aa0c657e3e45795a92addeb0dce7d28d9b0bd2 Author: Marc Zyngier Date: Tue Jul 28 14:46:11 2015 +0100 PCI/MSI: Add hooks to populate the msi_domain field In order to be able to populate the device msi_domain field, add the necessary hooks to propagate the host bridge msi_domain across secondary busses to devices. So far, nobody populates the initial msi_domain. Acked-by: Bjorn Helgaas Reviewed-by: Hanjun Guo Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-5-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/probe.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit f1421db8ca4c110144be97a5997ed83d34685db5 Author: Marc Zyngier Date: Tue Jul 28 14:46:10 2015 +0100 device core: Introduce per-device MSI domain pointer As MSI-type features are creeping into non-PCI devices, it is starting to make sense to give our struct device some form of support for this, by allowing a pointer to an MSI irq domain to be set/retrieved. Reviewed-by: Hanjun Guo Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-4-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner include/linux/device.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 0380839dc90c53e24ddfa0f17ad909c2ddc345c2 Author: Marc Zyngier Date: Tue Jul 28 14:46:09 2015 +0100 PCI/MSI: Register irq domain with specific token When creating a PCI/MSI domain, tag it with DOMAIN_BUS_PCI_MSI so that it can be looked-up using irq_find_matching_host(). Acked-by: Bjorn Helgaas Reviewed-by: Hanjun Guo Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-3-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 9 ++++++++- include/linux/irqdomain.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) commit ad3aedfbb04b3a2af54473cfe31f13953cfe9d84 Author: Marc Zyngier Date: Tue Jul 28 14:46:08 2015 +0100 genirq/irqdomain: Allow irq domain aliasing It is not uncommon (at least with the ARM stuff) to have a piece of hardware that implements different flavours of "interrupts". A typical example of this is the GICv3 ITS, which implements standard PCI/MSI support, but also some form of "generic MSI". So far, the PCI/MSI domain is registered using the ITS device_node, so that irq_find_host can return it. On the contrary, the raw MSI domain is not registered with an device_node, making it impossible to be looked up by another subsystem (obviously, using the same device_node twice would only result in confusion, as it is not defined which one irq_find_host would return). A solution to this is to "type" domains that may be aliasing, and to be able to lookup an device_node that matches a given type. For this, we introduce irq_find_matching_host() as a superset of irq_find_host: struct irq_domain *irq_find_matching_host(struct device_node *node, enum irq_domain_bus_token bus_token); where bus_token is the "type" we want to match the domain against (so far, only DOMAIN_BUS_ANY is defined). This result in some moderately invasive changes on the PPC side (which is the only user of the .match method). This has otherwise no functionnal change. Reviewed-by: Hanjun Guo Signed-off-by: Marc Zyngier Cc: Cc: Yijing Wang Cc: Ma Jun Cc: Lorenzo Pieralisi Cc: Duc Dang Cc: Bjorn Helgaas Cc: Jiang Liu Cc: Jason Cooper Link: http://lkml.kernel.org/r/1438091186-10244-2-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 3 ++- arch/powerpc/platforms/cell/interrupt.c | 3 ++- arch/powerpc/platforms/embedded6xx/flipper-pic.c | 3 ++- arch/powerpc/platforms/powermac/pic.c | 3 ++- arch/powerpc/platforms/powernv/opal-irqchip.c | 3 ++- arch/powerpc/platforms/ps3/interrupt.c | 3 ++- arch/powerpc/sysdev/ehv_pic.c | 3 ++- arch/powerpc/sysdev/i8259.c | 3 ++- arch/powerpc/sysdev/ipic.c | 3 ++- arch/powerpc/sysdev/mpic.c | 3 ++- arch/powerpc/sysdev/qe_lib/qe_ic.c | 3 ++- arch/powerpc/sysdev/xics/xics-common.c | 3 ++- include/linux/irqdomain.h | 23 +++++++++++++++++++++-- kernel/irq/irqdomain.c | 18 +++++++++++++----- 14 files changed, 58 insertions(+), 19 deletions(-) commit 8505a81bb036253213b109baf4178ea6861e2888 Author: Masanari Iida Date: Wed Jul 29 19:09:36 2015 +0900 genirq: Use the proper parameter name in kernel doc The following warning is emitted for make xmldocs: Warning(.//kernel/irq/chip.c:1009): No description found for parameter 'vcpu_info' Warning(.//kernel/irq/chip.c:1009): Excess function parameter 'dest' description in 'irq_chip_set_vcpu_affinity_parent' Signed-off-by: Masanari Iida Link: http://lkml.kernel.org/r/1438164576-5945-1-git-send-email-standby24x7@gmail.com Signed-off-by: Thomas Gleixner kernel/irq/chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b979e4c611ce750d32b51737f837b485f43c69b Merge: 1559f3b cbfe8fa Author: Thomas Gleixner Date: Thu Jul 30 00:13:24 2015 +0200 Merge branch 'linus' into irq/core Pull in upstream fixes before applying conflicting changes commit 73d0fcf2f487465f73329ee11ae900a774408fe5 Author: Tobias Klauser Date: Tue Jul 28 14:21:26 2015 +0200 packet: remove handling of tx_ring from prb_shutdown_retire_blk_timer() Follow e8e85cc5eb57 ("packet: remove handling of tx_ring") and remove the tx_ring parameter from prb_shutdown_retire_blk_timer() as it is only called with tx_ring = 0. Signed-off-by: Tobias Klauser Signed-off-by: David S. Miller net/packet/af_packet.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit b88d0a049084854aef0ea146f1411eafcd2597a8 Merge: 35e455f 9db7f2b Author: David S. Miller Date: Wed Jul 29 14:59:59 2015 -0700 Merge branch 's390-bpf-push-pop' Michael Holzheu says: ==================== s390/bpf: recache skb->data/hlen for skb_vlan_push/pop Here the s390 backend for Alexei's patch 4e10df9a60d9 ("bpf: introduce bpf_skb_vlan_push/pop() helpers") plus two bugfixes and two minor improvements. The first patch "s390/bpf: clear correct BPF accumulator register" will also go upstream via Martin's "fixes" branch. * v2: Integrated suggestions from Joe Perches ==================== Signed-off-by: David S. Miller commit 9db7f2b818809ef2c40fbd64cfcf5ccb0107d7e8 Author: Michael Holzheu Date: Wed Jul 29 21:15:18 2015 +0200 s390/bpf: recache skb->data/hlen for skb_vlan_push/pop Allow eBPF programs attached to TC qdiscs call skb_vlan_push/pop via helper functions. These functions may change skb->data/hlen. This data is cached by s390 JIT to improve performance of ld_abs/ld_ind instructions. Therefore after a change we have to reload the data. In case of usage of skb_vlan_push/pop, in the prologue we store the SKB pointer on the stack and restore it after BPF_JMP_CALL to skb_vlan_push/pop. Signed-off-by: Michael Holzheu Signed-off-by: David S. Miller arch/s390/net/bpf_jit.h | 5 +++- arch/s390/net/bpf_jit_comp.c | 55 ++++++++++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 23 deletions(-) commit cde66c2d88da1d73d755109c80ce4c34b917596b Author: Michael Holzheu Date: Wed Jul 29 21:15:17 2015 +0200 s390/bpf: Only clear A and X for converted BPF programs Only classic BPF programs that have been converted to eBPF need to clear the A and X registers. We can check for converted programs with: bpf_prog->type == BPF_PROG_TYPE_UNSPEC So add the check and skip initialization for real eBPF programs. Signed-off-by: Michael Holzheu Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit ce2b6ad9c1856fac5d5e8d3351b3dd5392e09b7a Author: Michael Holzheu Date: Wed Jul 29 21:15:16 2015 +0200 s390/bpf: increase BPF_SIZE_MAX Currently we have the restriction that jitted BPF programs can have a maximum size of one page. The reason is that we use short displacements for the literal pool. The 20 bit displacements are available since z990 and BPF requires z196 as minimum. Therefore we can remove this restriction and use everywhere 20 bit signed long displacements. Acked-by: Martin Schwidefsky Signed-off-by: Michael Holzheu Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit 1df03ffdded54fbb6507ef494ece071f3501410e Author: Michael Holzheu Date: Wed Jul 29 21:15:15 2015 +0200 s390/bpf: Fix multiple macro expansions The EMIT6_DISP_LH macro passes the "disp" parameter to the _EMIT6_DISP_LH macro. The _EMIT6_DISP_LH macro uses the "disp" parameter twice: unsigned int __disp_h = ((u32)disp) & 0xff000; unsigned int __disp_l = ((u32)disp) & 0x00fff; The EMIT6_DISP_LH is used several times with EMIT_CONST_U64() as "disp" parameter. Therefore always two constants are created per usage of EMIT6_DISP_LH. Fix this and add variable "_disp" to avoid multiple expansions. * v2: Move "_disp" to _EMIT6_DISP_LH as suggested by Joe Perches Fixes: 054623105728 ("s390/bpf: Add s390x eBPF JIT compiler backend") Signed-off-by: Michael Holzheu Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f75298f5c3fee750ad170bb98556e366a45a4093 Author: Michael Holzheu Date: Wed Jul 29 21:15:14 2015 +0200 s390/bpf: clear correct BPF accumulator register Currently we assumed the following BPF to eBPF register mapping: - BPF_REG_A -> BPF_REG_7 - BPF_REG_X -> BPF_REG_8 Unfortunately this mapping is wrong. The correct mapping is: - BPF_REG_A -> BPF_REG_0 - BPF_REG_X -> BPF_REG_7 So clear the correct registers and use the BPF_REG_A and BPF_REG_X macros instead of BPF_REG_0/7. Fixes: 054623105728 ("s390/bpf: Add s390x eBPF JIT compiler backend") Cc: stable@vger.kernel.org # 4.0+ Signed-off-by: Michael Holzheu Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 3431e490b50356b56084305a2e93b3a980802b22 Merge: 5af310a 1dcc3d3 Author: Rafael J. Wysocki Date: Wed Jul 29 23:57:51 2015 +0200 Merge branch 'acpi-scan' into acpi-pm Conflicts: drivers/acpi/scan.c The conflict is resolved by moving the just introduced acpi_device_is_first_physical_node() to bus.c and using the existing acpi_companion_match() from there. There will be an additional commit to combine the two. commit 5af310a8ee70dd6a588c8ee1d4487a230a7b7b65 Merge: aa57aca 4b45efe Author: Rafael J. Wysocki Date: Wed Jul 29 23:49:22 2015 +0200 Merge tag 'ib-mfd-base-acpi-dma-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into acpi-pm Pull MFD-related material including ACPI device power management changes (in addition to MFD, driver core and DMA changes) for v4.3 from Lee Jones. * tag 'ib-mfd-base-acpi-dma-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: Add support for Intel Sunrisepoint LPSS devices dmaengine: add a driver for Intel integrated DMA 64-bit mfd: make mfd_remove_devices() iterate in reverse order driver core: implement device_for_each_child_reverse() klist: implement klist_prev() Driver core: wakeup the parent device before trying probe ACPI / PM: Attach ACPI power domain only once PM / QoS: Make it possible to expose device latency tolerance to userspace commit 29edbe5e29d0ba3f619723f964724adab168f6f8 Author: Shraddha Barke Date: Wed Jul 29 12:18:58 2015 +0530 Staging : wilc1000: Remove braces for single statement blocks This patch fixes the following checkpatch.pl warning: WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Shraddha Barke Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3369463284cff3adafb49914a4dffe608421848a Author: Kim, Leo Date: Tue Jul 28 17:47:39 2015 +0900 staging: wilc1000: remove unnecessary spcae This patch removes the warnings reported by checkpatch.pl on space prohibited between function name and open parenthesis '(' Signed-off-by: Kim, Leo Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 4423f3b0d96a40ff7f1c2552b1e23c3c3eadcbe8 Author: Kim, Leo Date: Tue Jul 28 17:47:38 2015 +0900 staging: wilc1000: remove warnings on the multiple blank lines uses This patch removes the warnings reported by checkpatch.pl for using multiple blank lines. Signed-off-by: Kim, Leo Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 69 ----------------------------------- 1 file changed, 69 deletions(-) commit fc4b95d69c603668331d1edb92e3fb0dbcb1d959 Author: Kim, Leo Date: Tue Jul 28 17:47:37 2015 +0900 staging: wilc1000: remove braces {} for single statement blocks This patch removes the warnings reported by checkpatch.pl on braces {} not necessary for the single statement blocks. Signed-off-by: Kim, Leo Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 78 ++++++++++++----------------------- 1 file changed, 26 insertions(+), 52 deletions(-) commit 202f66a8169a2ab8c92656914867d56ff6510a44 Author: Tony Cho Date: Tue Jul 28 17:47:35 2015 +0900 staging: wilc1000: remove unnecessary inner braces This patch removes unnecessary inner braces. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit a0261e0b136b3535a5940179bdb95a8cc89eebd5 Author: Tony Cho Date: Tue Jul 28 17:47:33 2015 +0900 staging: wilc1000: remove warnings on unnecessary braces This patch removes the warnings reported by checkpatch.pl on the braces {} not necessary for any arm of this statement. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 1e553d542bf9bb4bfb39ba6f130e2b62a356db57 Author: Jude.Lee Date: Tue Jul 28 17:47:31 2015 +0900 staging: wilc1000: alignment should match open parenthesis This patch fixes the checks reported by checkpatch.pl alignment should match open parenthesis Signed-off-by: Jude.Lee Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 232ced3d8fde6221231d5d541326cdb5e7afc50a Author: Jude.Lee Date: Tue Jul 28 17:47:30 2015 +0900 staging: wilc1000: remove multiple blank lines This patch removes the warnings reported by checkpatch.pl for using multiple blank lines. Signed-off-by: Jude.Lee Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.h | 8 -------- 1 file changed, 8 deletions(-) commit 51a5fcaf718788b11e767640dc65c40f409de1a8 Author: Tony Cho Date: Tue Jul 28 17:47:27 2015 +0900 staging: wilc1000: remove a dead preprocessor conditionals This patch removes the preprocessor conditionals which are related to the WILC1000_SINGLE_TRANSFER definition becasue this is not used. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 26 -------------------------- 1 file changed, 26 deletions(-) commit 229d7402bd8ffc58cacc22115011693257c21215 Author: Tony Cho Date: Tue Jul 28 17:47:26 2015 +0900 staging: wilc1000: remove preprocessor conditionals unused This patch removes unused preprocessor conditionals for the PLAT_AML8726_M3_BACKUP and PLAT_AML8726_M3 which are not used and so dead codes. They are also platform-dependent codes. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 174 +---------------------------------- 1 file changed, 1 insertion(+), 173 deletions(-) commit 4aa85772e3fa98646ce3b2a18b12c6474b853104 Author: Tony Cho Date: Tue Jul 28 17:47:25 2015 +0900 staging: wilc1000: remove the warnings on unnecessary braces This patch removes the warnings reported by checkpatch.pl on {} not necessary for the single statement blocks. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) commit 9c844693eaf31eb8587a3bba37bbc8601ac4e5ca Author: Tony Cho Date: Tue Jul 28 17:47:24 2015 +0900 staging: wilc1000: remove the warnings on missing blank line This patch removes the warnings reported by checkpatch.pl on missing a blank line after declaration. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 0dff54785f92f832663d2af77cdd5b198fd90bb6 Author: Tony Cho Date: Tue Jul 28 17:47:23 2015 +0900 staging: wilc1000: remove warnings on the multiple line uses This patch removes the warnings reported by checkpatch.pl for using multiple blank lines. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_sdio.c | 14 -------------- 1 file changed, 14 deletions(-) commit 9690df3f9de3689e7d2e916189761fff4754cd72 Author: Tony Cho Date: Tue Jul 28 17:47:22 2015 +0900 staging: wilc1000: remove dead codes related to SIMULATION This patch removes preprocessor conditionals (#ifdef or #ifndef) related to SIMULATION definition from the codes becasue that SIMULATION feature is not used anymore. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 86 ----------------------- drivers/staging/wilc1000/host_interface.c | 23 ------ drivers/staging/wilc1000/linux_mon.c | 15 +--- drivers/staging/wilc1000/linux_wlan.c | 2 - drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 13 ---- 5 files changed, 3 insertions(+), 136 deletions(-) commit 5f8966d91e2e87ac9455aa5b2c10fccefa6d59a4 Author: Tony Cho Date: Tue Jul 28 17:47:21 2015 +0900 staging: wilc1000: describe the config symbol fully This patch removes the warnings reported by checkpatch.pl on the short description for the config symbol in the Kconfig by adding more comments to describe the config symbol in more detail. Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Kconfig | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) commit 1625d2166cbcace6fff3b4413be78522f4137f57 Author: Tony Cho Date: Tue Jul 28 17:47:20 2015 +0900 staging: wilc1000: remove unnecessary files This patch removes the following files which are not used anymore. - fifo_buffer.c - fifo_buffer.h - coreconfigsimulator.h - wilc_wfi_netdevice.c Signed-off-by: Robin Hwang Signed-off-by: Tony Cho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/Makefile | 4 +- drivers/staging/wilc1000/coreconfigsimulator.h | 17 - drivers/staging/wilc1000/fifo_buffer.c | 132 ---- drivers/staging/wilc1000/fifo_buffer.h | 26 - drivers/staging/wilc1000/host_interface.h | 1 - drivers/staging/wilc1000/wilc_wfi_netdevice.c | 909 ------------------------- 6 files changed, 2 insertions(+), 1087 deletions(-) commit d10e0a6332fdea740fa74f541e354788903878a1 Author: Randy Dunlap Date: Tue Jul 28 10:45:07 2015 -0700 staging: most: fix aim-network build errors Fix build errors when CONFIG_NET is not enabled by making the driver depend on NET. Also correct the loadable module name. ERROR: "__netdev_alloc_skb" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "netif_rx" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "netif_tx_wake_queue" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "free_netdev" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "register_netdev" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "kfree_skb" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "alloc_netdev_mqs" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "eth_type_trans" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "ether_setup" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "unregister_netdev" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "skb_put" [drivers/staging/most/aim-network/aim_network.ko] undefined! ERROR: "eth_mac_addr" [drivers/staging/most/aim-network/aim_network.ko] undefined! Signed-off-by: Randy Dunlap Cc: Andrey Shvetsov Cc: Michael Fabry Acked-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-network/Kconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a11442fe87d63994816cf2edde4450410df397af Author: Christian Gromm Date: Tue Jul 28 17:16:11 2015 +0200 Staging: most: fix passing a potential null pointer This patch fixes passing of a potential null pointer. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-cdev/cdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2e4c30458e31e5f6487d1393254f2ab347cfb02c Author: Christian Gromm Date: Tue Jul 28 17:16:10 2015 +0200 Staging: most: fix dereferencing freed memory This patch fixes the dereferencing of freed memory. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/aim-cdev/cdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7ac5c9f0a0228fff35c0ea85008ff642b07e6db3 Author: Christian Gromm Date: Tue Jul 28 17:16:09 2015 +0200 Staging: most: fix snprintf() is printing too much This patch prevents snprintf from exceeding a given buffer size. Reported-by: Dan Carpenter Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit add04a9854106a724b9fbf8bc9925781e5b0059e Author: Chaehyun Lim Date: Mon Jul 27 10:31:09 2015 +0900 staging: most: core.c: remove semicolon at the end of define statement Remove semicolon at the end of define statement to fix checkpatch warning. WARNING: macros should not use a trailing semicolon Signed-off-by: Chaehyun Lim Acked-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/mostcore/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccf97fe3ddac231655f1f8cacede6182a167de8b Author: Tim Bird Date: Thu Jul 16 16:55:33 2015 -0700 ARM: dts: qcom: Add dts changes for qcom coincell charger Add framework for the coincell charger DT block in pm8941 file, and actual values for honami battery in the honami dts file. Signed-off-by: Tim Bird Reviewed-by: Andy Gross Signed-off-by: Greg Kroah-Hartman arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts | 10 ++++++++++ arch/arm/boot/dts/qcom-pm8941.dtsi | 6 ++++++ 2 files changed, 16 insertions(+) commit 1f26d1c1053ac179b0ee1edea7809cef07fe728e Author: Tim Bird Date: Thu Jul 16 16:55:32 2015 -0700 ARM: qcom: Add coincell charger driver This driver is used to configure the coincell charger found in Qualcomm PMICs. The driver allows configuring the current-limiting resistor for the charger, as well as the voltage to apply to the coincell (or capacitor) when charging. Signed-off-by: Tim Bird Reviewed-by: Andy Gross Signed-off-by: Greg Kroah-Hartman drivers/misc/Kconfig | 10 +++ drivers/misc/Makefile | 1 + drivers/misc/qcom-coincell.c | 152 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 163 insertions(+) commit ee2b7f60a5c5e391fdde907ac61f135d87e74622 Author: Tim Bird Date: Thu Jul 16 16:55:31 2015 -0700 ARM: dts: qcom: Add binding for the qcom coincell charger This binding is used to configure the driver for the coincell charger found in Qualcomm PMICs. Signed-off-by: Tim Bird Reviewed-by: Andy Gross Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman .../bindings/power/qcom,coincell-charger.txt | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit 70d334ca71b0e35ef21493d86799cec83f452d94 Author: Ray Jui Date: Wed Jul 29 10:12:53 2015 -0700 PCI: iproc: Fix BCMA dependency in Kconfig The current iProc BCMA front-end driver can only work on ARM32 based platforms; therefore its config option in Kconfig should be changed to reflect that. This fixes arm64 allmodconfig build failure when compiling the the iProc BCMA driver that contains struct pci_sys_data that is arm32 specific Signed-off-by: Ray Jui Signed-off-by: Olof Johansson drivers/pci/host/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6aad8bf99338fca5a6ef602f2d7e04546f79fd03 Author: Ray Jui Date: Mon Jul 27 15:42:21 2015 -0700 arm64: dts: Add Broadcom North Star 2 support Add Broadcom NS2 device tree binding document. Also add initial device tree dtsi for Broadcom North Star 2 (NS2) SoC and board support for NS2 SVK board Signed-off-by: Jon Mason Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Olof Johansson Documentation/devicetree/bindings/arm/bcm/ns2.txt | 9 ++ arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/broadcom/Makefile | 5 + arch/arm64/boot/dts/broadcom/ns2-svk.dts | 59 +++++++++++ arch/arm64/boot/dts/broadcom/ns2.dtsi | 118 ++++++++++++++++++++++ 5 files changed, 192 insertions(+) commit 36b7c5831d7d5af6fc679f95b288ddf480e01e77 Author: Ray Jui Date: Mon Jul 27 15:42:20 2015 -0700 arm64: Add Broadcom iProc family support This patch adds support to Broadcom's iProc family of arm64 based SoCs in the arm64 Kconfig and defconfig files Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Olof Johansson arch/arm64/Kconfig.platforms | 5 +++++ arch/arm64/configs/defconfig | 1 + 2 files changed, 6 insertions(+) commit b00c4415fb231f276221c634a47ce7328df9aae5 Author: Ray Jui Date: Mon Jul 27 15:42:19 2015 -0700 PCI: iproc: Fix ARM64 dependency in Kconfig Allow Broadcom iProc PCIe core driver to be compiled for ARM64 Signed-off-by: Ray Jui Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden Acked-by: Bjorn Helgaas Signed-off-by: Olof Johansson drivers/pci/host/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db9d6d790968fd6df9faa7fa1f51967e05afd492 Author: Ray Jui Date: Mon Jul 27 15:42:18 2015 -0700 PCI: iproc: enable arm64 support for iProc PCIe PCI: iproc: Add arm64 support Add arm64 support to the iProc PCIe driver. Note that on arm32, bus->sysdata points to the arm32-specific pci_sys_data struct, and pci_sys_data.private_data contains the iproc_pcie pointer. For arm64, there's nothing corresponding to pci_sys_data, so we keep the iproc_pcie pointer directly in bus->sysdata. In addition, arm64 does IRQ mapping in pcibios_add_device(), so it doesn't need pci_fixup_irqs() as arm32 does. Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas Reviewed-by: Scott Branden Acked-by: Bjorn Helgaas Signed-off-by: Olof Johansson drivers/pci/host/pcie-iproc.c | 27 ++++++++++++++++++++------- drivers/pci/host/pcie-iproc.h | 4 +++- 2 files changed, 23 insertions(+), 8 deletions(-) commit 5054e1e63946abff39bc7b154fac049110d9d3bb Author: Thomas Gleixner Date: Wed Jul 29 21:16:19 2015 +0200 x86/pci/intel_mid_pci: Use proper constants for irq polarity polarity = 0 means active high. Not really intuitive, so people add comments to it instead of just using a self explaining constant. Use the IOAPIC_POL_ constants and get rid of those horrible to read tail comments. Signed-off-by: Thomas Gleixner Cc: Andy Shevchenko Cc: Bjorn Helgaas arch/x86/pci/intel_mid_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0abbdea1e9592fba120521ce22c6c26301e72761 Author: Andy Shevchenko Date: Wed Jul 29 12:16:49 2015 +0300 x86/pci/intel_mid_pci: Make intel_mid_pci_ops static This fixes the following sparse warning. arch/x86/pci/intel_mid_pci.c:265:16: warning: symbol 'intel_mid_pci_ops' was not declared. Should it be static? Signed-off-by: Andy Shevchenko Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/1438161409-4671-4-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/pci/intel_mid_pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2a61c8eaf1879db99286c3f5fe5e78086c7edb85 Author: Andy Shevchenko Date: Wed Jul 29 12:16:48 2015 +0300 x86/pci/intel_mid_pci: Propagate actual return code mp_map_gsi_to_irq() returns different codes if it fails. intel_mid_pci_irq_enable() hides this under -EBUSY. Return the actual failure code. Signed-off-by: Andy Shevchenko Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/1438161409-4671-3-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/pci/intel_mid_pci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 39d9b77b8debb4746e189aa5b61ae6e81ec5eab8 Author: Andy Shevchenko Date: Wed Jul 29 12:16:47 2015 +0300 x86/pci/intel_mid_pci: Work around for IRQ0 assignment On Intel Tangier the MMC host controller is wired up to irq 0. But several other devices have irq 0 associated as well due to a bogus PCI configuration. The first initialized driver will acquire irq 0 and make it unavailable for other devices. If the sdhci driver is not the first one it will fail to acquire the interrupt and therefor be non functional. Add a quirk to the pci irq enable function which denies irq 0 to anything else than the MMC host controller driver on Tangier platforms. Fixes: 90b9aacf912a (serial: 8250_pci: add Intel Tangier support) Signed-off-by: Andy Shevchenko Cc: Bjorn Helgaas Link: http://lkml.kernel.org/r/1438161409-4671-2-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/pci/intel_mid_pci.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) commit 35e455f47ac2e7fbc0c25871a4e91c563ff78ce1 Author: Amir Vadai Date: Tue Jul 28 13:19:19 2015 +0300 net/mlx4_en: Hardware accelerated 802.1ad works only on the first port Fix mistakenly used, hard coded, port number in get_phv_bit() Fixes: 77fc29c ("net/mlx4_core: Preparations for 802.1ad VLAN support") Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c421e80b1073e2ed58842ee6ee493386ace2d9eb Author: Kan Liang Date: Wed Jul 29 05:42:12 2015 -0400 perf tools: Introduce callgraph_set for callgraph option Introduce callgraph_set to indicate whether the callgraph option was set by user. Signed-off-by: Kan Liang Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438162936-59698-4-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 9 +++++++-- tools/perf/perf.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) commit ee4c75887d12bcd6ecd897291797d969256f39ca Author: Jiri Olsa Date: Wed Jul 29 05:42:11 2015 -0400 perf tools: Force period term to overload global settings Currently the command line option settings beats the per event period settings: With no global settings, we get per-event configuration: $ perf record -e 'cpu/instructions,period=20000/' sleep 1 $ perf evlist -v ... { sample_period, sample_freq }: 20000 ... With 'c' option period setup, we get 'c' option value: $ perf record -e 'cpu/instructions,period=20000/' -c 1000 sleep 1 $ perf evlist -v ... { sample_period, sample_freq }: 1000 ... This patch makes the per-event settings overload the global 'c' option setup: $ perf record -e 'cpu/instructions,period=20000/' -c 1000 sleep 1 $ perf evlist -v ... { sample_period, sample_freq }: 20000 ... I think the making the per-event settings to overload any other config makes more sense than current state. However it breaks the current 'period' term handling, which might cause some noise.. so let's see ;-). Also fixing parse event tests with the new behaviour. Signed-off-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Kan Liang Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438162936-59698-3-git-send-email-kan.liang@intel.com Signed-off-by: Kan Liang Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 2 +- tools/perf/tests/parse-events.c | 12 ++++++++++-- tools/perf/util/evsel.c | 2 ++ tools/perf/util/evsel.h | 1 + tools/perf/util/parse-events.c | 3 ++- 5 files changed, 16 insertions(+), 4 deletions(-) commit 930a2e29758f865e3a7b34b8b3b37c08d40f0254 Author: Jiri Olsa Date: Wed Jul 29 05:42:10 2015 -0400 perf tools: Add support for event post configuration Add support to overload any global settings for event and force user specified term value. It will be useful for new time and backtrace terms. Signed-off-by: Jiri Olsa Cc: Andi Kleen Cc: Kan Liang Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1438162936-59698-2-git-send-email-kan.liang@intel.com Signed-off-by: Kan Liang Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 31 +++++++++++++++++++ tools/perf/util/evsel.h | 19 ++++++++++++ tools/perf/util/parse-events.c | 67 +++++++++++++++++++++++++++++++++++------- 3 files changed, 106 insertions(+), 11 deletions(-) commit ba68227e610cec8e0bef7da7e04af3f479d9797d Author: Bjorn Andersson Date: Mon Jul 27 20:20:31 2015 -0700 devicetree: soc: Add Qualcomm SMD based RPM DT binding Add binding documentation for the Qualcomm Resource Power Manager (RPM) using shared memory (Qualcomm SMD) as transport mechanism. This is found in 8974 and newer based devices. The binding currently describes the rpm itself and the regulator subnodes. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../devicetree/bindings/soc/qcom,smd-rpm.txt | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) commit 936f14cf4e67168fcd37f10cebf5a475f490fb6e Author: Bjorn Andersson Date: Mon Jul 27 20:20:32 2015 -0700 soc: qcom: Driver for the Qualcomm RPM over SMD Driver for the Resource Power Manager (RPM) found in Qualcomm 8974 based devices. The driver exposes resources that child drivers can operate on; to implementing regulator, clock and bus frequency drivers. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 14 +++ drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/smd-rpm.c | 244 +++++++++++++++++++++++++++++++++++++++ include/linux/soc/qcom/smd-rpm.h | 35 ++++++ 4 files changed, 294 insertions(+) commit f2ab3298fb4932358d27fc4c7ea1a1891ad7e042 Author: Bjorn Andersson Date: Mon Jul 27 20:20:30 2015 -0700 soc: qcom: Add Shared Memory Driver This adds the Qualcomm Shared Memory Driver (SMD) providing communication channels to remote processors, ontop of SMEM. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 8 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/smd.c | 1319 ++++++++++++++++++++++++++++++++++++++++++ include/linux/soc/qcom/smd.h | 46 ++ 4 files changed, 1374 insertions(+) commit 72c10fef98fc3b3c924ee022e451872517e61ecf Author: Bjorn Andersson Date: Mon Jul 27 20:20:29 2015 -0700 soc: qcom: Add device tree binding for Shared Memory Device Add device tree binding documentation for the Qualcomm Shared Memory Device, used for communication between the various CPUs in the Qualcomm SoCs. Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross .../devicetree/bindings/soc/qcom/qcom,smd.txt | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) commit 3294bee87091be5f179474f6c39d1d87769635e2 Author: Dan Carpenter Date: Wed Jul 29 13:17:06 2015 +0300 clk: versatile: off by one in clk_sp810_timerclken_of_get() The ">" should be ">=" or we end up reading beyond the end of the array. Fixes: 6e973d2c4385 ('clk: vexpress: Add separate SP810 driver') Signed-off-by: Dan Carpenter Acked-by: Pawel Moll Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-sp810.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c020ea8dc3a8adee81b6f141428a7a75249706e Author: Ard Biesheuvel Date: Wed Jul 29 12:30:39 2015 +0100 arm64/Documentation: clarify wording regarding memory below the Image Clarify that the memory below the start of the image but inside the region covered by the linear mapping has no special significance to the kernel, and may be used by the firmware provided that it is marked as reserved. Also, fix up some whitespace errors. Acked-by: Mark Rutland Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon Documentation/arm64/booting.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 484c96dbb26965d712a808ab9e8b00090455bdf6 Author: Will Deacon Date: Wed Jul 29 15:16:22 2015 +0100 arm64: lse: fix lse cmpxchg code indentation For some reason, the ll/sc cmpxchg asm is all off to the left and awkward to read in conjunction with the following (correctly indented) LSE version. This patch shifts the ll/sc code back to where it should be. Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_lse.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 63a581865e9ee7b1277f1e4941d0765fdbde032a Author: Jonas Rabenstein Date: Wed Jul 29 12:13:20 2015 +0100 arm64: remove redundant object file list Commit 4b3dc9679cf7 ("arm64: force CONFIG_SMP=y and remove redundant #ifdefs") forces SMP on arm64. To build the necessary objects for SMP, they were added to the arm64-obj-y rule in arch/arm64/kernel/Makefile, without removing the arm64-obj-$(CONFIG_SMP) rule. Remove redundant object file list depending on always-yes CONFIG_SMP in arch/arm64/kernel/Makefile. Signed-off-by: Jonas Rabenstein Signed-off-by: Will Deacon arch/arm64/kernel/Makefile | 1 - 1 file changed, 1 deletion(-) commit 377bcff9a38a78083d7fff8e8a41cc894cf7813b Author: Jonas Rabenstein Date: Wed Jul 29 12:07:57 2015 +0100 arm64: remove dead-code depending on CONFIG_UP_LATE_INIT Commit 4b3dc9679cf7 ("arm64: force CONFIG_SMP=y and remove redundant and therfore can not be selected anymore. Remove dead #ifdef-block depending on UP_LATE_INIT in arch/arm64/kernel/setup.c Signed-off-by: Jonas Rabenstein [will: kill do_post_cpus_up_work altogether] Signed-off-by: Will Deacon arch/arm64/include/asm/smp_plat.h | 2 -- arch/arm64/kernel/setup.c | 25 ------------------------- arch/arm64/kernel/smp.c | 15 ++++++++++++++- 3 files changed, 14 insertions(+), 28 deletions(-) commit 0122a5183088e3117bb9c8fbe248914efb502f3f Author: Martin Sperl Date: Wed Jul 29 07:34:10 2015 +0000 spi: bcm2835: fix overflow in calculation of transfer time This resulted in the use of polling mode when other approaches (dma or interrupts) would have been more appropriate. Happened for transfers longer than 477 bytes. Reported-by: Noralf Tronnes Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit acace73df2c1913a526c1b41e4741a4a6704c863 Author: Martin Sperl Date: Tue Jul 28 14:03:12 2015 +0000 spi: bcm2835: set up spi-mode before asserting cs-gpio When using reverse polarity for clock (spi-cpol) on a device the clock line gets altered after chip-select has been asserted resulting in an additional clock beat, which confuses hardware. This did not show when using native-CS, as the same register is used to control cs as well as polarity, so the changes came into effect at the same time. Unfortunately this is not true with gpio-cs. To avoid this situation this patch moves the setup of polarity (spi-cpol and spi-cpha) outside of the chip-select into prepare_message, which is run prior to asserting chip-select. Also fixes resetting 3-wire mode after use of rx-mode, so that a 3-Wire sequence TX, RX, TX works as well (right now it runs TX, RX, RX instead) Reported-by: Noralf Tronnes Signed-off-by: Martin Sperl Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-bcm2835.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) commit d306d08f07183fe1504257101b25b5b33d77bae9 Author: Kukjin Kim Date: Thu Jul 30 02:02:06 2015 +0900 ARM: SAMSUNG: remove keypad-core header in plat-samsung Since keypad-core header is not used, this patch removes it. Cc: Krzysztof Kozlowski Cc: Joonyoung Shim Signed-off-by: Kukjin Kim arch/arm/plat-samsung/include/plat/keypad-core.h | 31 ------------------------ 1 file changed, 31 deletions(-) commit 96bc024cdcfc4087a592ae258f21355509e21614 Author: Kukjin Kim Date: Thu Jul 30 02:00:52 2015 +0900 ARM: SAMSUNG: local watchdog-reset header in mach-s3c64xx This patch moves watchdog-reset header file into mach-s3c64xx. Because it is not used for others except mach-s3c64xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/common.c | 2 +- arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c | 3 +-- arch/arm/mach-s3c64xx/watchdog-reset.h | 19 +++++++++++++++++++ arch/arm/plat-samsung/include/plat/watchdog-reset.h | 20 -------------------- 4 files changed, 21 insertions(+), 23 deletions(-) commit fe31d04416e8a019a4ce8dca49aef80f10397aaf Author: Kukjin Kim Date: Thu Jul 30 02:00:47 2015 +0900 ARM: SAMSUNG: local onenand-core header in mach-s3c64xx This patch moves onenand-core header file into mach-s3c64xx. Because it is not used for others except mach-s3c64xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/onenand-core.h | 35 +++++++++++++++++++++ arch/arm/mach-s3c64xx/s3c6400.c | 2 +- arch/arm/mach-s3c64xx/s3c6410.c | 2 +- arch/arm/plat-samsung/include/plat/onenand-core.h | 37 ----------------------- 4 files changed, 37 insertions(+), 39 deletions(-) commit 876ba9bafbc8aba7854c785ca5d13bbb5ef7b3cf Author: Kukjin Kim Date: Thu Jul 30 02:00:38 2015 +0900 ARM: SAMSUNG: local irq-uart header in mach-s3c64xx This patch moves irq-uart header file into mach-s3c64xx. Because it is not used for others except mach-s3c64xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/common.c | 2 +- arch/arm/mach-s3c64xx/irq-uart.h | 19 +++++++++++++++++++ arch/arm/plat-samsung/include/plat/irq-uart.h | 20 -------------------- 3 files changed, 20 insertions(+), 21 deletions(-) commit 4a7bf56f7f98fee929c74dd579fa19529712974d Author: Kukjin Kim Date: Thu Jul 30 02:00:36 2015 +0900 ARM: SAMSUNG: local backlight header in mach-s3c64xx This patch moves backlight header file into mach-s3c64xx. Because it is not used for others except mach-s3c64xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/backlight.h | 25 +++++++++++++++++++++++++ arch/arm/mach-s3c64xx/dev-backlight.c | 3 ++- arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 +- arch/arm/plat-samsung/include/plat/backlight.h | 26 -------------------------- 4 files changed, 28 insertions(+), 28 deletions(-) commit e979b1a9b47dbe56fa7543bde3dc093231c1eb6e Author: Kukjin Kim Date: Thu Jul 30 02:00:36 2015 +0900 ARM: SAMSUNG: local ata-core header in mach-s3c64xx This patch moves ata-core header file into mach-s3c64xx. Because it is not used for others except mach-s3c64xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/ata-core.h | 27 ++++++++++++++++++++++++++ arch/arm/mach-s3c64xx/s3c6410.c | 2 +- arch/arm/plat-samsung/include/plat/ata-core.h | 28 --------------------------- 3 files changed, 28 insertions(+), 29 deletions(-) commit 3b0a5a96d0784305a0fc91702780c99e75134b26 Author: Kukjin Kim Date: Thu Jul 30 02:00:36 2015 +0900 ARM: SAMSUNG: local regs-usb-hsotg-phy header in mach-s3c64xx This patch moves regs-usb-hsotg-phy header file into mach-s3c64xx. Because it is not used for others except mach-s3c64xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/regs-usb-hsotg-phy.h | 50 +++++++++++++++++++++ arch/arm/mach-s3c64xx/setup-usb-phy.c | 2 +- .../plat-samsung/include/plat/regs-usb-hsotg-phy.h | 51 ---------------------- 3 files changed, 51 insertions(+), 52 deletions(-) commit dd04e47e7407e3a9312617817e3a35fc1a8e4548 Author: Kukjin Kim Date: Thu Jul 30 02:00:35 2015 +0900 ARM: SAMSUNG: local spi-core header in mach-s3c24xx This patch moves spi-core header file into mach-s3c24xx. Because it is not used for others except mach-s3c24xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c24xx/s3c2416.c | 2 +- arch/arm/mach-s3c24xx/s3c2443.c | 2 +- arch/arm/mach-s3c24xx/spi-core.h | 30 +++++++++++++++++++++++++++ arch/arm/plat-samsung/include/plat/spi-core.h | 30 --------------------------- 4 files changed, 32 insertions(+), 32 deletions(-) commit f8eed6cd0d215f23a70945e05c050b5c87dc888e Author: Kukjin Kim Date: Thu Jul 30 02:00:35 2015 +0900 ARM: SAMSUNG: local nand-core header in mach-s3c24xx This patch moves nand-core header file into mach-s3c24xx. Because it is not used for others except mach-s3c24xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c24xx/nand-core.h | 27 +++++++++++++++++++++++++ arch/arm/mach-s3c24xx/s3c2412.c | 2 +- arch/arm/mach-s3c24xx/s3c2416.c | 2 +- arch/arm/mach-s3c24xx/s3c2443.c | 2 +- arch/arm/mach-s3c24xx/s3c244x.c | 2 +- arch/arm/plat-samsung/include/plat/nand-core.h | 28 -------------------------- 6 files changed, 31 insertions(+), 32 deletions(-) commit f30e3295d2e9e7fe7fed5d1138e59ed45053b5fb Author: Kukjin Kim Date: Thu Jul 30 02:00:35 2015 +0900 ARM: SAMSUNG: local fb-core header in mach-s3c24xx This patch moves fb-core header file into mach-s3c24xx. Because it is not used for others except mach-s3c24xx. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c24xx/fb-core.h | 27 ++++++++++++++++++++++++++ arch/arm/mach-s3c24xx/s3c2416.c | 2 +- arch/arm/mach-s3c24xx/s3c2443.c | 3 ++- arch/arm/plat-samsung/include/plat/fb-core.h | 29 ---------------------------- 4 files changed, 30 insertions(+), 31 deletions(-) commit 8ace438f4c0f471e2277b9d3adb017599e2c8e5b Author: Kukjin Kim Date: Thu Jul 30 02:00:35 2015 +0900 ARM: SAMSUNG: local regs-srom header in mach-exynos This patch moves regs-srom header file into mach-exynos. Because it is not used for others except mach-exynos. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/regs-srom.h | 53 +++++++++++++++++++++++++ arch/arm/mach-exynos/suspend.c | 4 +- arch/arm/plat-samsung/include/plat/regs-srom.h | 54 -------------------------- 3 files changed, 55 insertions(+), 56 deletions(-) commit b93b315d444faa1505b6a5e001c30f3024849e46 Author: Kukjin Kim Date: Thu Jul 30 01:48:17 2015 +0900 ARM: SAMSUNG: make local s5p-dev-mfc in mach-exynos This patch moves s5p-dev-mfc from plat-samsung into mach-exynos because it is used for only exynos no other platforms. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/Kconfig | 5 ++ arch/arm/mach-exynos/Makefile | 2 + arch/arm/mach-exynos/s5p-dev-mfc.c | 94 +++++++++++++++++++++++++++++++++++++ arch/arm/plat-samsung/Kconfig | 5 -- arch/arm/plat-samsung/Makefile | 1 - arch/arm/plat-samsung/s5p-dev-mfc.c | 94 ------------------------------------- 6 files changed, 101 insertions(+), 100 deletions(-) commit 7f798c1c0d562ef1200cbe3227cd0474b1c285f7 Author: Kukjin Kim Date: Thu Jul 30 01:48:17 2015 +0900 ARM: SAMSUNG: make local dev-backlight in mach-s3c64xx This patch moves dev-backlight from plat-samsung into mach-s3c64xx because it is used for only s3c64xx no other platforms. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c64xx/Kconfig | 6 ++ arch/arm/mach-s3c64xx/Makefile | 2 + arch/arm/mach-s3c64xx/dev-backlight.c | 151 +++++++++++++++++++++++++++++++++ arch/arm/plat-samsung/Kconfig | 6 -- arch/arm/plat-samsung/Makefile | 2 - arch/arm/plat-samsung/dev-backlight.c | 152 ---------------------------------- 6 files changed, 159 insertions(+), 160 deletions(-) commit a1bd8d8bb890c77b97e3d6d1ea6f9d26a1c31ca8 Author: Kukjin Kim Date: Thu Jul 30 01:48:17 2015 +0900 ARM: SAMSUNG: make local setup-camif in mach-s3c24xx This patch moves setup-camif from plat-samsung into mach-s3c24xx because it can be used only for s3c24xx no other platforms. Cc: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-s3c24xx/Kconfig | 5 +++ arch/arm/mach-s3c24xx/Makefile | 1 + arch/arm/mach-s3c24xx/setup-camif.c | 71 +++++++++++++++++++++++++++++++++++++ arch/arm/plat-samsung/Kconfig | 6 ---- arch/arm/plat-samsung/Makefile | 2 -- arch/arm/plat-samsung/setup-camif.c | 71 ------------------------------------- 6 files changed, 77 insertions(+), 79 deletions(-) commit 4c7de49a2977aa2a0f556c803afbb24848372e7a Author: Arnaldo Carvalho de Melo Date: Wed Jul 29 12:18:24 2015 -0300 perf session env: Rename exit method The semantic associated in tools/perf/ with foo__delete(instance) is to release all resources referenced by 'instance' members and then release the memory for 'instance' itself. The perf_session_env__delete() function isn't doing this, it just does the first part, but the space used by 'instance' itself isn't freed, as it is embedded in a larger structure, that will be freed at other stage. For these cases we se foo__exit(), i.e. the usage is: void foo__delete(foo) { if (foo) { foo__exit(foo); free(foo); } } But when we have something like: struct bar { struct foo foo; . . . } Then we can't really call foo__delete(&bar.foo), we must have this instead: void bar__exit(bar) { foo__exit(&bar.foo); /* free other bar-> resources */ } void bar__delete(bar) { if (bar) { bar__exit(bar); free(bar); } } So just rename perf_session_env__delete() to perf_session_env__exit(). Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-djbgpcfo5udqptx3q0flwtmk@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/session.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e33e17ee1098d8d751552ac11c111e1c1a3db014 Author: Jeff Mahoney Date: Mon Jun 15 09:41:19 2015 -0400 btrfs: add missing discards when unpinning extents with -o discard When we clear the dirty bits in btrfs_delete_unused_bgs for extents in the empty block group, it results in btrfs_finish_extent_commit being unable to discard the freed extents. The block group removal patch added an alternate path to forget extents other than btrfs_finish_extent_commit. As a result, any extents that would be freed when the block group is removed aren't discarded. In my test run, with a large copy of mixed sized files followed by removal, it left nearly 2/3 of extents undiscarded. To clean up the block groups, we add the removed block group onto a list that will be discarded after transaction commit. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/ctree.h | 3 ++ fs/btrfs/extent-tree.c | 68 ++++++++++++++++++++++++++++++++++++++++++--- fs/btrfs/free-space-cache.c | 57 +++++++++++++++++++++---------------- fs/btrfs/super.c | 2 +- fs/btrfs/transaction.c | 2 ++ fs/btrfs/transaction.h | 2 ++ 6 files changed, 105 insertions(+), 29 deletions(-) commit e44163e177960ee60e32a73bffdd53c3a5827406 Author: Jeff Mahoney Date: Mon Jun 15 09:41:18 2015 -0400 btrfs: explictly delete unused block groups in close_ctree and ro-remount The cleaner thread may already be sleeping by the time we enter close_ctree. If that's the case, we'll skip removing any unused block groups queued for removal, even during a normal umount. They'll be cleaned up automatically at next mount, but users expect a umount to be a clean synchronization point, especially when used on thin-provisioned storage with -odiscard. We also explicitly remove unused block groups in the ro-remount path for the same reason. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/disk-io.c | 9 +++++++++ fs/btrfs/super.c | 11 +++++++++++ 2 files changed, 20 insertions(+) commit 499f377f49f085ee4aa214c738e948e88626f39b Author: Jeff Mahoney Date: Mon Jun 15 09:41:17 2015 -0400 btrfs: iterate over unused chunk space in FITRIM Since we now clean up block groups automatically as they become empty, iterating over block groups is no longer sufficient to discard unused space. This patch iterates over the unused chunk space and discards any regions that are unallocated, regardless of whether they were ever used. This is a change for btrfs but is consistent with other file systems. We do this in a transactionless manner since the discard process can take a substantial amount of time and a transaction would need to be started before the acquisition of the device list lock. That would mean a transaction would be held open across /all/ of the discards collectively. In order to prevent other threads from allocating or freeing chunks, we hold the chunks lock across the search and discard calls. We release it between searches to allow the file system to perform more-or-less normally. Since the running transaction can commit and disappear while we're using the transaction pointer, we take a reference to it and release it after the search. This is safe since it would happen normally at the end of the transaction commit after any locks are released anyway. We also take the commit_root_sem to protect against a transaction starting and committing while we're running. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++ fs/btrfs/volumes.c | 63 ++++++++++++++++++------------ fs/btrfs/volumes.h | 3 ++ 3 files changed, 143 insertions(+), 24 deletions(-) commit 86557861dfe4f8defde0df40620b97cc60285aa4 Author: Jeff Mahoney Date: Mon Jun 15 09:41:16 2015 -0400 btrfs: skip superblocks during discard Btrfs doesn't track superblocks with extent records so there is nothing persistent on-disk to indicate that those blocks are in use. We track the superblocks in memory to ensure they don't get used by removing them from the free space cache when we load a block group from disk. Prior to 47ab2a6c6a (Btrfs: remove empty block groups automatically), that was fine since the block group would never be reclaimed so the superblock was always safe. Once we started removing the empty block groups, we were protected by the fact that discards weren't being properly issued for unused space either via FITRIM or -odiscard. The block groups were still being released, but the blocks remained on disk. In order to properly discard unused block groups, we need to filter out the superblocks from the discard range. Superblocks are located at fixed locations on each device, so it makes sense to filter them out in btrfs_issue_discard, which is used by both -odiscard and FITRIM. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 4 deletions(-) commit 4d89d377bbb0e34cd1571b57a984c2326cab69b5 Author: Jeff Mahoney Date: Mon Jun 15 09:41:15 2015 -0400 btrfs: btrfs_issue_discard ensure offset/length are aligned to sector boundaries It's possible, though unexpected, to pass unaligned offsets and lengths to btrfs_issue_discard. We then shift the offset/length values to sector units. If an unaligned offset has been passed, it will result in the entire sector being discarded, possibly losing data. An unaligned length is safe but we'll end up returning an inaccurate number of discarded bytes. This patch aligns the offset to the 512B boundary, adjusts the length, and warns, since we shouldn't be discarding on an offset that isn't aligned with our sector size. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit d04c6b88320debb403bff8d8b634a1efa48b8d3d Author: Jeff Mahoney Date: Mon Jun 15 09:41:14 2015 -0400 btrfs: make btrfs_issue_discard return bytes discarded Initially this will just be the length argument passed to it, but the following patches will adjust that to reflect re-alignment and skipped blocks. Signed-off-by: Jeff Mahoney Reviewed-by: Filipe Manana Tested-by: Filipe Manana Signed-off-by: Chris Mason fs/btrfs/extent-tree.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit b5a2875605cac14a7d7744ec8254547a26c02612 Author: Phil Edworthy Date: Mon Jul 13 16:30:18 2015 +0100 usb: renesas_usbhs: Allow an OTG PHY driver to provide VBUS These changes allow a PHY driver to trigger a VBUS interrupt and to provide the value of VBUS. Reviewed-by: Laurent Pinchart Signed-off-by: Phil Edworthy Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/mod_gadget.c | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 9e832bf7c011965b378bd963955e315bd0c23aa4 Author: Li Jun Date: Thu Jul 9 15:19:00 2015 +0800 usb: gadget: zero: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros Signed-off-by: Li Jun Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/zero.c | 41 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) commit 3dcc7053087fb58c799cd964a00a5396bec3bc9e Author: Li Jun Date: Thu Jul 9 15:18:59 2015 +0800 usb: gadget: serial: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros Signed-off-by: Li Jun Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/serial.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) commit 93d39afdb8f99a11d1cbd04f4670226494bf03da Author: Li Jun Date: Thu Jul 9 15:18:58 2015 +0800 usb: gadget: printer: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Reviewed-by: Roger Quadros Signed-off-by: Li Jun Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/printer.c | 49 +++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 19 deletions(-) commit 1156e91dd7cc3a579544286d07fd46f0162e3ec6 Author: Li Jun Date: Thu Jul 9 15:18:57 2015 +0800 usb: gadget: ncm: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/ncm.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit 21ddc2a860ca69eb92ab0c48c05187f89aa6a39a Author: Li Jun Date: Thu Jul 9 15:18:56 2015 +0800 usb: gadget: multi: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/multi.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) commit d867889797615761975e693881a12283ebc92b0f Author: Li Jun Date: Thu Jul 9 15:18:55 2015 +0800 usb: gadget: mass_storage: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/mass_storage.c | 35 +++++++++++++++++--------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit d9e1867917ccf43ebe6f0e43e19958cbdeb0d8f2 Author: Li Jun Date: Thu Jul 9 15:18:54 2015 +0800 usb: gadget: hid: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/hid.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) commit 75c9310a050b77a6788addf8060b533ab2d9de00 Author: Li Jun Date: Thu Jul 9 15:18:53 2015 +0800 usb: gadget: g_ffs: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/g_ffs.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit ab6796ae98330389754b82d37bed89029d1dab51 Author: Li Jun Date: Thu Jul 9 15:18:52 2015 +0800 usb: gadget: cdc2: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/cdc2.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit 56023ce0fd7025154494d139b2c9891d75fee622 Author: Li Jun Date: Thu Jul 9 15:18:51 2015 +0800 usb: gadget: audio: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/audio.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit 578aa8a2b12cb4cc3cfdb6ccd56af9f5f0dd6118 Author: Li Jun Date: Thu Jul 9 15:18:50 2015 +0800 usb: gadget: acm_ms: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations. If otg capability is not defined, keep its original otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/acm_ms.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) commit 9b95236eebdbdf2ff68517cc32390683f4114a37 Author: Li Jun Date: Thu Jul 9 15:18:49 2015 +0800 usb: gadget: ether: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations, free it while ether unbind. If otg capability is not defined, keep its otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/ether.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) commit 41ce84c86d0a04ef70a9608bd744afb122b6d103 Author: Li Jun Date: Thu Jul 9 15:18:48 2015 +0800 usb: gadget: configfs: allocate and init otg descriptor by otg capabilities Allocate and initialize usb otg descriptor according to gadget otg capabilities, add it for each usb configurations, free it while composite unbind. If otg capability is not defined, keep its otg descriptor unchanged. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/configfs.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit d1606dfb98e59221332704c05f5908d9116456ab Author: Li Jun Date: Thu Jul 9 15:18:47 2015 +0800 usb: gadget: add usb otg descriptor allocate and init interface Allocate usb otg descriptor and initialize it according to gadget's otg capabilities, if usb_otg_caps is not set, keep settings as current gadget drivers. With this 2 new interfaces, gadget can use usb_otg_descriptor for OTG 1.x, and usb_otg20_descriptor for OTG 2.0 or above, and otg features can be decided by the combination of usb hardware property and driver config. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/config.c | 56 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/usb/gadget.h | 4 ++++ 2 files changed, 60 insertions(+) commit b0930d4cafb487a663ac6780a0369d1a0f461bc2 Author: Li Jun Date: Thu Jul 9 15:18:46 2015 +0800 usb: chipidea: update ci_otg_is_fsm_mode conditions After introduce usb otg properties, update ci_otg_is_fsm_mode conditions to be depending on both usb hardware properties and usb driver config, also resolve a compile issue in debug.c after the API change. Acked-by: Peter Chen Signed-off-by: Li Jun Signed-off-by: Felipe Balbi drivers/usb/chipidea/ci.h | 5 ++++- drivers/usb/chipidea/debug.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) commit 79742351c89b76ebcf82b73103aed50f98ac2ee4 Author: Li Jun Date: Thu Jul 9 15:18:45 2015 +0800 usb: chipidea: set usb otg capabilities Init and update otg capabilities by DT, set gadget's otg capabilities accordingly. Acked-by: Peter Chen Reviewed-by: Roger Quadros Signed-off-by: Li Jun Signed-off-by: Felipe Balbi drivers/usb/chipidea/core.c | 15 +++++++++++++++ drivers/usb/chipidea/udc.c | 7 ++++++- include/linux/usb/chipidea.h | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) commit 929412d94f2b75fe2a662afa2977bfb6a233c1c3 Author: Li Jun Date: Thu Jul 9 15:18:44 2015 +0800 usb: common: add API to update usb otg capabilities by device tree Check property of usb hardware to update otg version and disable SRP, HNP and ADP if its disable flag is present. Reviewed-by: Roger Quadros Signed-off-by: Li Jun Signed-off-by: Felipe Balbi drivers/usb/common/common.c | 56 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/usb/of.h | 7 ++++++ 2 files changed, 63 insertions(+) commit b5513dede7c90ba2370ab5eb547568a22991907b Author: Li Jun Date: Thu Jul 9 15:18:43 2015 +0800 doc: dt-binding: usb: add otg related properties Add otg version, srp, hnp and adp support for usb OTG port, then those OTG features don't have to be decided by usb gadget drivers. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi Documentation/devicetree/bindings/usb/generic.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 53e6242db8d60da0587d36951cc9434d1a1c21dd Author: Macpaul Lin Date: Thu Jul 9 15:18:42 2015 +0800 usb: gadget: composite: add USB_DT_OTG request handling Copy usb_otg_descriptor from config's descriptor if host requests USB_DT_OTG. Signed-off-by: Macpaul Lin Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi drivers/usb/gadget/composite.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 84704bb3d183e55d042bf57043552f2649443a64 Author: Macpaul Lin Date: Thu Jul 9 15:18:41 2015 +0800 usb: add usb_otg_caps to usb_gadget structure. Add usb_otg_caps pointer to usb_gadget structure to indicate its otg capabilities. Signed-off-by: Macpaul Lin Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi include/linux/usb/gadget.h | 2 ++ 1 file changed, 2 insertions(+) commit 6a88bbe8e30d4beb2320b5a7452242a1fe7889c5 Author: Li Jun Date: Thu Jul 9 15:18:40 2015 +0800 usb: otg: add usb_otg_caps structure for otg capabilities This patch adds a structure usb_otg_caps to cover all otg related capabilities of the device, including otg revision, and if hnp/srp/adp is supported. Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi include/linux/usb/otg.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 5d701cef9b40188c11c39be3a401bc4feeb154b8 Author: Macpaul Lin Date: Thu Jul 9 15:18:39 2015 +0800 usb: add USB_OTG_ADP definition Add USB_OTG_ADP definition for usb_otg_descriptor.bmAttributes. Signed-off-by: Macpaul Lin Signed-off-by: Li Jun Acked-by: Peter Chen Signed-off-by: Felipe Balbi include/uapi/linux/usb/ch9.h | 1 + 1 file changed, 1 insertion(+) commit 8486a0bba6fc13ae60a8e402cf77c60a7d4e7a04 Author: Macpaul Lin Date: Thu Jul 9 15:18:38 2015 +0800 usb: add usb_otg20_descriptor for OTG 2.0 and above OTG 2.0 introduces bcdOTG in otg descriptor to identify the OTG and EH supplement release number with which the OTG device is compliant, this patch adds structure usb_otg20_descriptor for OTG 2.0 and above. Signed-off-by: Macpaul Lin Signed-off-by: Li Jun Reviewed-by: Roger Quadros Signed-off-by: Felipe Balbi include/uapi/linux/usb/ch9.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit d91de093d94eca6e280e50c24b172ed598bb5724 Author: Hans de Goede Date: Wed Jul 8 16:41:40 2015 +0200 usb: musb: sunxi: Add support for musb controller in A33 SoC The A33 SoC uses the same musb controller as found on the A31 and later, but allwinner has removed the configdata register, this commit adds special handling for this. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/allwinner,sun4i-a10-musb.txt | 3 ++- drivers/usb/musb/sunxi.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) commit 132e23775779cc895c37f7883c33a60a1a8a7cdd Author: Hans de Goede Date: Wed Jul 8 16:41:39 2015 +0200 usb: musb: sunxi: Add support for musb controller in A31 SoC The A31 SoC uses the same musb controller as found in earlier SoCs, but it is hooked up slightly different. Its SRAM is private and no longer controlled through the SRAM controller, and its reset is controlled via a separate reset controller. This commit adds support for this setup. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi .../bindings/usb/allwinner,sun4i-a10-musb.txt | 3 +- drivers/usb/musb/sunxi.c | 50 +++++++++++++++++++--- 2 files changed, 46 insertions(+), 7 deletions(-) commit 744543c599c420bcddca08cd2e2713b82a008328 Author: Hans de Goede Date: Wed Jul 8 16:41:38 2015 +0200 usb: musb: sunxi: Add support for the Allwinner sunxi musb controller This is based on initial code to get the Allwinner sunxi musb controller supported by Chen-Yu Tsai and Roman Byshko. This adds support for the Allwinner sunxi musb controller in both host only and otg mode. Peripheral only mode is not supported, as no boards use that. This has been tested on a cubietruck (A20 SoC) and an UTOO P66 tablet (A13 SoC) with a variety of devices in host mode and with the g_serial gadget driver in peripheral mode, plugging otg / host cables in/out a lot of times in all possible imaginable plug orders. Signed-off-by: Hans de Goede Signed-off-by: Felipe Balbi .../bindings/usb/allwinner,sun4i-a10-musb.txt | 27 + drivers/usb/musb/Kconfig | 13 +- drivers/usb/musb/Makefile | 1 + drivers/usb/musb/sunxi.c | 703 +++++++++++++++++++++ 4 files changed, 743 insertions(+), 1 deletion(-) commit 4cfbd95232dd6194c04d432d1a8ac45cec269d8b Author: Robert Baldyga Date: Mon May 4 14:55:15 2015 +0200 usb: gadget: f_obex: use bind_deactivated flag Use bind_deactivated flag instead of calling usb_function_deactivate() in function bind(). Field 'can_activate' in struct f_obex is no longer needed as setting 'bind_deactivated' flag makes us sure, that the function will be binded only if deactivation can be performed successfully. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_obex.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) commit f277bf27cf5cd56bcd1c4b95ae140f61680a6e83 Author: Robert Baldyga Date: Mon May 4 14:55:14 2015 +0200 usb: gadget: f_uvc: use bind_deactivated flag Use bind_deactivated flag instead of calling usb_function_deactivate() in function bind(). Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_uvc.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit d5bb9b81dbfa35d117ecb58022ee6e7e41e4772d Author: Robert Baldyga Date: Mon May 4 14:55:13 2015 +0200 usb: composite: add bind_deactivated flag to usb_function This patch introduces 'bind_deactivated' flag in struct usb_function. Functions which don't want to be activated automatically after bind should set this flag, and when they start to be ready to work they should call usb_function_activate(). When USB function sets 'bind_deactivated' flag, initial deactivation counter is incremented automatically, so there is no need to call usb_function_deactivate() in function bind. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/composite.c | 6 ++++++ include/linux/usb/composite.h | 2 ++ 2 files changed, 8 insertions(+) commit 5601250bb1b4e736cf487d332f2d8d8833a84209 Author: Robert Baldyga Date: Mon May 4 14:55:12 2015 +0200 usb: composite: fix usb_function_activate/deactivate functions Using usb_gadget_disconnect to make gadget temporarily invisible to host doesn't provide desired result, because gadget is connected immediately after binding regardless to previous usb_gadget_disconnect() calls. For this reason we use usb_gadget_deactivate() instead of usb_gadget_disconnect() to make it working as expected. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi drivers/usb/gadget/composite.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ccdf138fe3e243c70301fcb6a101e366b7daef07 Author: Robert Baldyga Date: Mon May 4 14:55:11 2015 +0200 usb: gadget: add usb_gadget_activate/deactivate functions These functions allows to deactivate gadget to make it not visible to host and make it active again when gadget driver is finally ready. They are needed to fix usb_function_activate() and usb_function_deactivate() functions which currently are not working as usb_gadget_connect() is called immediately after function bind regardless to previous calls of usb_gadget_disconnect() function. Signed-off-by: Robert Baldyga Signed-off-by: Felipe Balbi include/linux/usb/gadget.h | 100 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 94 insertions(+), 6 deletions(-) commit 351169933ea22592fb42b97c76c4c130fe287cca Author: Ivan T. Ivanov Date: Wed Jul 8 17:57:40 2015 +0300 usb: phy: qcom: New APQ8016/MSM8916 USB transceiver driver Driver handles PHY initialization, clock management, power management and workarounds required after resetting the hardware. Signed-off-by: Ivan T. Ivanov Signed-off-by: Felipe Balbi .../devicetree/bindings/usb/qcom,usb-8x16-phy.txt | 76 ++++ drivers/usb/phy/Kconfig | 14 + drivers/usb/phy/Makefile | 1 + drivers/usb/phy/phy-qcom-8x16-usb.c | 436 +++++++++++++++++++++ 4 files changed, 527 insertions(+) commit 75ddead2a77db61e818bc0cbe330a856a912f4d9 Author: Krzysztof Opasiak Date: Mon Jul 20 20:15:19 2015 +0200 usb: gadget: storage-common: Set FSG_MAX_LUNS to 16 Mass storage spec allows up to 16 LUNs, so let's not add some more restrictive limits. Signed-off-by: Krzysztof Opasiak Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 2 +- drivers/usb/gadget/function/storage_common.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bab7a1f199fa617c7a0600c74ebbb514aed6dbe8 Author: Krzysztof Opasiak Date: Mon Jul 20 20:15:18 2015 +0200 usb: gadget: mass_storage: Place EXPORT_SYMBOL_GPL() after func definition EXPORT_SYMBOL_GPL() is usually placed after function definition not before. Signed-off-by: Krzysztof Opasiak Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 903588a99c26ed6f103eaa0cfa4ccbe9cd779398 Author: Krzysztof Opasiak Date: Mon Jul 20 20:15:17 2015 +0200 usb: gadget: mass_storage: Free buffers if create lun fails Creation of LUN 0 may fail (for example due to ENOMEM). As fsg_common_set_num_buffers() does some memory allocation we should free it before it becomes unavailable. Signed-off-by: Krzysztof Opasiak Acked-by: Michal Nazarewicz Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_mass_storage.c | 5 +++++ 1 file changed, 5 insertions(+) commit aa7399744dd02537523b7bf9e3070600b6f79751 Author: Felipe Balbi Date: Mon Jul 20 14:48:13 2015 -0500 usb: dwc3: gadget: defer endpoint name change We should only change endpoint names when we actually manage to enable/disable it. Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit 7eaeac5c0e44921eb583d5b59b9c54741ecaa899 Author: Felipe Balbi Date: Mon Jul 20 14:46:15 2015 -0500 usb: dwc3: gadget: add a trace when disabling EPs We have a "Enabling %s" trace when enabling an endpoint but that message felt lonely without a matching "Disabling %s". Add it. Signed-off-by: Felipe Balbi drivers/usb/dwc3/gadget.c | 2 ++ 1 file changed, 2 insertions(+) commit d9972f470bcb40947dd91af90f17f9cb01db1f41 Author: Felipe Balbi Date: Tue Jul 7 13:45:23 2015 -0500 usb: dwc3: core: remove unnecessary dev_warn() When a SoC supports both PHY interfaces but doesn't define HSPHY in DT/pdata, we will get an unnecessary dev_warn() which can mislead users into thinking that they're missing something. Instead, let's just silently rely on a correct default. If the HW default is wrong, then HSPHY is required and USB won't work, this will be motivation enough for engineers to patch their way into a working setup. Reported-by: Murali Karicheri Signed-off-by: Felipe Balbi drivers/usb/dwc3/core.c | 2 -- 1 file changed, 2 deletions(-) commit 88167fc0b22aac0fe7b9c4fadf9c251a9f864f32 Author: Uwe Kleine-König Date: Mon Jul 6 11:09:49 2015 +0200 usb: pass flags parameter to gpiod_get functions Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Currently this parameter is made optional with the help of a cpp trick. To allow dropping this hack convert callers to explictly pass a value for flags. Acked-by: Felipe Balbi Acked-by: Robert Jarzmik Signed-off-by: Uwe Kleine-König Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/pxa27x_udc.c | 2 +- drivers/usb/phy/phy-generic.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 2df033ca39b56605725384bac1579cdd30e052a6 Author: Uwe Kleine-König Date: Mon Jul 6 11:09:48 2015 +0200 usb: dwc3: pci: make better use of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this additional parameter and the _optional variant to simplify the driver and improve error handling. Also expand the comment to explain why it's not sensible to switch to devm_gpiod_get and why the gpiod_put is also necessary. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Tested-by: Heikki Krogerus Signed-off-by: Uwe Kleine-König Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-pci.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 83b7b67c780500a1d5d87c44ee8963166154adfa Author: Chanwoo Choi Date: Wed Jul 1 13:11:34 2015 +0900 usb: phy: msm-usb: Replace deprecated API of extcon This patch removes the deprecated notifier API of extcon framwork and then use the new extcon API with the unique id to indicate the each external connector (USB, USB-HOST). Alter deprecated API as following: - extcon_register_interest() -> extcon_register_notifier() - extcon_get_cable_state(*edev, char *) -> extcon_get_cable_state_(*edev, id) Cc: Felipe Balbi Cc: Greg Kroah-Hartman Signed-off-by: Chanwoo Choi Signed-off-by: Felipe Balbi drivers/usb/phy/phy-msm-usb.c | 20 ++++++++++---------- include/linux/usb/msm_hsusb.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) commit 50297b79b8fd426f678431a8e9dcee59afd33ec8 Author: Chanwoo Choi Date: Wed Jul 1 13:11:33 2015 +0900 usb: renesas_usbhs: Replace deprecated API of extcon This patch removes the deprecated API of extcon and then use the new extcon API with the unique id to indicate the each external connector (USB-HOST). - extcon_get_cable_state(*edev, char *) -> extcon_get_cable_state_(*edev, id) Cc: Greg Kroah-Hartman Cc: Felipe Balbi Cc: Yoshihiro Shimoda Cc: Sergei Shtylyov Cc: Yoshihiro Shimoda Cc: Peter Chen Cc: Varka Bhadram Cc: Takeshi Kihara Signed-off-by: Chanwoo Choi Signed-off-by: Felipe Balbi drivers/usb/renesas_usbhs/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 860d2686fda7e4dceaa4e676e62adcdbfc7f7a2c Author: Chanwoo Choi Date: Wed Jul 1 13:11:32 2015 +0900 usb: phy: tahvo: Use devm_extcon_dev_[allocate|register]() and replace deprecated API This patch uses the devm_extcon_dev_[allocate|register]() to manage the resource automatically and replace deprecated API as following: - extcon_[set|get]_cable_state(*edev, char *) -> extcon_[set|get]_cable_state_(*edev, id) Cc: Felipe Balbi Cc: Greg Kroah-Hartman Signed-off-by: Chanwoo Choi Signed-off-by: Felipe Balbi drivers/usb/phy/phy-tahvo.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) commit a2fd2423240fe1abd7a154a1cc0fd1624c339bff Author: Chanwoo Choi Date: Wed Jul 1 13:11:31 2015 +0900 usb: phy: omap-otg: Replace deprecated API of extcon This patch removes the deprecated notifier API of extcon framwork and then use the new extcon API with the unique id to indicate the each external connector (USB, USB-HOST). Alter deprecated API as following: - extcon_register_interest() -> extcon_register_notifier() - extcon_get_cable_state(*edev, char *) -> extcon_get_cable_state_(*edev, id) [ balbi@ti.com : fix build break ] Cc: Greg Kroah-Hartman Signed-off-by: Chanwoo Choi Signed-off-by: Felipe Balbi drivers/usb/phy/phy-omap-otg.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 5960387a2fb8314687351f6d8485cf62d7722b4e Author: Chanwoo Choi Date: Wed Jul 1 13:11:30 2015 +0900 usb: dwc3: omap: Replace deprecated API of extcon This patch removes the deprecated notifier API of extcon framwork and then use the new extcon API with the unique id to indicate the each external connector (USB, USB-HOST). Alter deprecated API as following: - extcon_register_interest() -> extcon_register_notifier() - extcon_get_cable_state(*edev, char *) -> extcon_get_cable_state_(*edev, id) Cc: Felipe Balbi Cc: Greg Kroah-Hartman Signed-off-by: Chanwoo Choi Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-omap.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit b5c03bffa67727697252e913f64703e3404867ae Author: Vaishali Thakkar Date: Wed Jun 10 16:04:25 2015 +0530 usb: udc: Convert use of __constant_cpu_to_leXX to cpu_to_leXX In big endian cases, the macro cpu_to_le{16,32} unfolds to __swab{16,32} which provides special case for constants. In little endian cases, __constant_cpu_to_le{16,32} and cpu_to_le{16,32} expand directly to the same expression. So, replace __constant_cpu_to_le{16,32} with cpu_to_le{16,32} with the goal of getting rid of the definition of __constant_cpu_to_le{16,32} completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ ( - __constant_cpu_to_le16(x) + cpu_to_le16(x) | - __constant_cpu_to_le32(x) + cpu_to_le32(x) ) Signed-off-by: Vaishali Thakkar Signed-off-by: Felipe Balbi drivers/usb/gadget/udc/net2272.c | 4 ++-- drivers/usb/gadget/udc/pch_udc.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit ad4676ab58ae38e5597a2d6bc0d12e9b5e0b0d18 Author: Diego Viola Date: Sun May 31 15:52:41 2015 -0300 usb: gadget: composite.c: i18n is not an acronym I18N should be spelled as i18n because it's not an acronym Signed-off-by: Diego Viola Signed-off-by: Felipe Balbi drivers/usb/gadget/composite.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8464bcf0a20970471e8f897fe4706fcc2702263 Author: Vaishali Thakkar Date: Sat Jun 6 07:02:53 2015 +0530 usb: gadget: Convert use of __constant_cpu_to_le16 to cpu_to_le16 In big endian cases, macro cpu_to_le16 unfolds to __swab16 which provides special case for constants. In little endian cases, __constant_cpu_to_le16 and cpu_to_le16 expand directly to the same expression. So, replace __constant_cpu_to_le16 with cpu_to_le16 with the goal of getting rid of the definition of __constant_cpu_to_le16 completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ - __constant_cpu_to_le16(x) + cpu_to_le16(x) Signed-off-by: Vaishali Thakkar Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/audio.c | 6 +++--- drivers/usb/gadget/legacy/dbgp.c | 10 +++++----- drivers/usb/gadget/legacy/gmidi.c | 6 +++--- drivers/usb/gadget/legacy/nokia.c | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) commit d3c1ac4a69667300996ea76fe25c33434372a2a8 Author: Krzysztof Opasiak Date: Fri Jun 19 12:16:45 2015 +0200 usb: gadget: SourceSink: Remove out-of-date comment As SourceSink function has been reworked for ConfigFS composite gadget this comment is no longer valid. Signed-off-by: Krzysztof Opasiak Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_sourcesink.c | 5 ----- 1 file changed, 5 deletions(-) commit e425be9304ce4da9cd231b55630ca941752635e9 Author: Krzysztof Opasiak Date: Fri Jun 19 12:05:05 2015 +0200 usb: gadget: loopback: Remove out-of-date comment As loopback function has been reworked for ConfigFS composite gadget this comment is no longer valid. Signed-off-by: Krzysztof Opasiak Signed-off-by: Felipe Balbi drivers/usb/gadget/function/f_loopback.c | 5 ----- 1 file changed, 5 deletions(-) commit 9fcfa463e17adc48865b1a4124d48d48e0b59556 Author: Felipe Balbi Date: Tue Jun 30 12:51:49 2015 -0500 usb: dwc3: drop CONFIG_USB_DWC3_DEBUG now that we have no users of dev_dbg() in dwc3, we can safely remove CONFIG_USB_DWC3_DEBUG. If dev_dbg() is ever strictly necessary - and I don't see why it would, considering we want to rely on tracepoints for debug - we will depend on DYNAMIC_PRINTK to enable such messages. Signed-off-by: Felipe Balbi drivers/usb/dwc3/Kconfig | 7 ------- drivers/usb/dwc3/Makefile | 2 -- 2 files changed, 9 deletions(-) commit e746b06cc76afea568c7d53f83a834dc8d720da1 Author: Felipe Balbi Date: Tue Jun 30 12:50:46 2015 -0500 usb: dwc3: st: remove two unnecessary messages the mode of operation is exposed through debugfs at all times. Because of that, we're removing the unnecessary messages. Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-st.c | 4 ---- 1 file changed, 4 deletions(-) commit 2babd0d148a365728649addaaa09bfb690ce6b83 Author: Felipe Balbi Date: Tue Jun 30 12:48:58 2015 -0500 usb: dwc3: qcom: switch dev_dbg() to dev_info() those two messages are informing that the clock doesn't exist; that, however, is a valid situation and driver continues just fine by ignoring the error. Reviewed-by: Andy Gross Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-qcom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42f69a02e7ab42f1ec75b91faf05b86e75de794a Author: Felipe Balbi Date: Tue Jun 30 12:47:45 2015 -0500 usb: dwc3: exynos: switch dev_dbg() to dev_info() that message is informing that the clock is missing. However, that's a valid condition for some setups; driver even ignores the error and continues just fine. Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-exynos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ff0fdca3b628d3f8719237cbc8f148379527108 Author: Felipe Balbi Date: Tue Jun 30 12:46:53 2015 -0500 usb: dwc3: keystone: convert dev_dbg() to dev_err() that's an error condition, not a debugging message. Let's promote it appropriately. Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e4f7566754675b2fd89ed32eee867d5f19bac934 Author: Felipe Balbi Date: Tue Jun 30 12:46:07 2015 -0500 usb: dwc3: omap: drop dev_dbg() usage Some of the messages were plain unnecessary and some were actually errors. Fix it all up. Signed-off-by: Felipe Balbi drivers/usb/dwc3/dwc3-omap.c | 43 ++++--------------------------------------- 1 file changed, 4 insertions(+), 39 deletions(-) commit 5a350d53f4c4784cf6bb4d94e7b8d76ca4f96e9f Author: Felipe Balbi Date: Mon Jun 29 20:17:22 2015 -0500 usb: dwc2: gadget: use | instead of + for bitmasks It's just a lot clearer to use | operator instead of + operator. Caught by coccicheck: " drivers/usb/dwc2/gadget.c:2883:26-27: WARNING: sum of probable bitmasks, consider | " Cc: John Youn Signed-off-by: Felipe Balbi drivers/usb/dwc2/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5ea75095fe6d683900ccc674fcac375e7df68005 Author: Pali Rohár Date: Mon Jun 8 08:20:05 2015 +0200 usb: gadget: nokia: Add mass storage driver to g_nokia This patch adds removable mass storage support to g_nokia gadget (for N900). It means that at runtime block device can be exported or unexported. So it does not export anything by default and thus allows to use MyDocs partition as before... [ balbi@ti.com: make it build ] Signed-off-by: Pali Rohár Signed-off-by: Felipe Balbi drivers/usb/gadget/legacy/Kconfig | 1 + drivers/usb/gadget/legacy/nokia.c | 102 +++++++++++++++++++++++++++++++++++++- 2 files changed, 102 insertions(+), 1 deletion(-) commit 2c68f6dc6e621153a708bef6c569805762da2020 Author: Jens Axboe Date: Tue Jul 28 13:14:32 2015 -0600 block: shrink struct bio down to 2 cache lines again Commit bcf2843b3f8f added ->bi_error to cleanup the error passing for struct bio, but that ended up adding 4 bytes and a 4 byte hole to the size of struct bio. For a clean config, that bumped it from 128 bytes, to 136 bytes, on x86-64. The ->bi_flags member is currently an unsigned long, but it fits easily within an int. Change it to an unsigned int, adjust the the pool offset code, and move ->bi_error into the new hole. Then we end up with a 128 byte bio again. Change the bio flag set/clear to use cmpxchg to ensure we don't lose any flags when manipulating them. Signed-off-by: Jens Axboe include/linux/bio.h | 6 +++--- include/linux/blk_types.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit b7c44ed9d2fc6b461378c65eaf144ccc80a47772 Author: Jens Axboe Date: Fri Jul 24 12:37:59 2015 -0600 block: manipulate bio->bi_flags through helpers Some places use helpers now, others don't. We only have the 'is set' helper, add helpers for setting and clearing flags too. It was a bit of a mess of atomic vs non-atomic access. With BIO_UPTODATE gone, we don't have any risk of concurrent access to the flags. So relax the restriction and don't make any of them atomic. The flags that do have serialization issues (reffed and chained), we already handle those separately. Signed-off-by: Jens Axboe block/bio.c | 14 +++++++------- block/blk-core.c | 2 +- block/blk-map.c | 2 +- block/blk-merge.c | 2 +- block/bounce.c | 2 +- drivers/md/raid1.c | 4 ++-- drivers/md/raid10.c | 6 +++--- drivers/md/raid5.c | 2 +- fs/buffer.c | 2 +- include/linux/bio.h | 15 +++++++++++++++ include/linux/blk_types.h | 2 -- 11 files changed, 33 insertions(+), 20 deletions(-) commit 4246a0b63bd8f56a1469b12eafeb875b1041a451 Author: Christoph Hellwig Date: Mon Jul 20 15:29:37 2015 +0200 block: add a bi_error field to struct bio Currently we have two different ways to signal an I/O error on a BIO: (1) by clearing the BIO_UPTODATE flag (2) by returning a Linux errno value to the bi_end_io callback The first one has the drawback of only communicating a single possible error (-EIO), and the second one has the drawback of not beeing persistent when bios are queued up, and are not passed along from child to parent bio in the ever more popular chaining scenario. Having both mechanisms available has the additional drawback of utterly confusing driver authors and introducing bugs where various I/O submitters only deal with one of them, and the others have to add boilerplate code to deal with both kinds of error returns. So add a new bi_error field to store an errno value directly in struct bio and remove the existing mechanisms to clean all this up. Signed-off-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Reviewed-by: NeilBrown Signed-off-by: Jens Axboe Documentation/block/biodoc.txt | 2 +- arch/m68k/emu/nfblock.c | 2 +- arch/powerpc/sysdev/axonram.c | 2 +- arch/xtensa/platforms/iss/simdisk.c | 12 ++----- block/bio-integrity.c | 11 +++---- block/bio.c | 43 +++++++++++-------------- block/blk-core.c | 15 ++++----- block/blk-lib.c | 30 ++++++++---------- block/blk-map.c | 2 +- block/blk-mq.c | 6 ++-- block/bounce.c | 27 ++++++++-------- drivers/block/aoe/aoecmd.c | 10 +++--- drivers/block/aoe/aoedev.c | 2 +- drivers/block/brd.c | 13 +++++--- drivers/block/drbd/drbd_actlog.c | 4 +-- drivers/block/drbd/drbd_bitmap.c | 19 +++--------- drivers/block/drbd/drbd_int.h | 11 ++++--- drivers/block/drbd/drbd_req.c | 10 +++--- drivers/block/drbd/drbd_worker.c | 44 +++++++------------------- drivers/block/floppy.c | 7 +++-- drivers/block/null_blk.c | 2 +- drivers/block/pktcdvd.c | 32 +++++++++---------- drivers/block/ps3vram.c | 3 +- drivers/block/rsxx/dev.c | 9 ++++-- drivers/block/umem.c | 4 +-- drivers/block/xen-blkback/blkback.c | 4 +-- drivers/block/xen-blkfront.c | 9 ++---- drivers/block/zram/zram_drv.c | 5 ++- drivers/md/bcache/btree.c | 10 +++--- drivers/md/bcache/closure.h | 2 +- drivers/md/bcache/io.c | 8 ++--- drivers/md/bcache/journal.c | 8 ++--- drivers/md/bcache/movinggc.c | 8 ++--- drivers/md/bcache/request.c | 27 ++++++++-------- drivers/md/bcache/super.c | 14 ++++----- drivers/md/bcache/writeback.c | 10 +++--- drivers/md/dm-bio-prison.c | 6 ++-- drivers/md/dm-bufio.c | 26 ++++++++++------ drivers/md/dm-cache-target.c | 24 +++++++------- drivers/md/dm-crypt.c | 14 ++++----- drivers/md/dm-flakey.c | 2 +- drivers/md/dm-io.c | 6 ++-- drivers/md/dm-log-writes.c | 11 +++---- drivers/md/dm-raid1.c | 24 +++++++------- drivers/md/dm-snap.c | 6 ++-- drivers/md/dm-stripe.c | 2 +- drivers/md/dm-thin.c | 41 +++++++++++++----------- drivers/md/dm-verity.c | 9 +++--- drivers/md/dm-zero.c | 2 +- drivers/md/dm.c | 15 +++++---- drivers/md/faulty.c | 4 +-- drivers/md/linear.c | 2 +- drivers/md/md.c | 18 +++++------ drivers/md/multipath.c | 12 +++---- drivers/md/raid0.c | 2 +- drivers/md/raid1.c | 53 ++++++++++++++++--------------- drivers/md/raid10.c | 55 +++++++++++++++----------------- drivers/md/raid5.c | 52 +++++++++++++++---------------- drivers/nvdimm/blk.c | 5 +-- drivers/nvdimm/btt.c | 5 +-- drivers/nvdimm/pmem.c | 2 +- drivers/s390/block/dcssblk.c | 2 +- drivers/s390/block/xpram.c | 3 +- drivers/target/target_core_iblock.c | 21 +++++-------- drivers/target/target_core_pscsi.c | 6 ++-- fs/btrfs/check-integrity.c | 10 +++--- fs/btrfs/compression.c | 24 ++++++++------ fs/btrfs/disk-io.c | 35 +++++++++++---------- fs/btrfs/extent_io.c | 30 +++++++----------- fs/btrfs/inode.c | 50 ++++++++++++++++-------------- fs/btrfs/raid56.c | 62 +++++++++++++++++-------------------- fs/btrfs/scrub.c | 22 ++++++------- fs/btrfs/volumes.c | 23 +++++++------- fs/buffer.c | 4 +-- fs/direct-io.c | 13 ++++---- fs/ext4/page-io.c | 15 ++++----- fs/ext4/readpage.c | 6 ++-- fs/f2fs/data.c | 10 +++--- fs/gfs2/lops.c | 10 +++--- fs/gfs2/ops_fstype.c | 6 ++-- fs/jfs/jfs_logmgr.c | 8 ++--- fs/jfs/jfs_metapage.c | 8 ++--- fs/logfs/dev_bdev.c | 12 +++---- fs/mpage.c | 4 +-- fs/nfs/blocklayout/blocklayout.c | 14 ++++----- fs/nilfs2/segbuf.c | 5 ++- fs/ocfs2/cluster/heartbeat.c | 9 +++--- fs/xfs/xfs_aops.c | 5 ++- fs/xfs/xfs_buf.c | 7 ++--- include/linux/bio.h | 13 +++++--- include/linux/blk_types.h | 4 +-- include/linux/swap.h | 4 +-- kernel/power/swap.c | 12 +++---- kernel/trace/blktrace.c | 10 ++---- mm/page_io.c | 12 +++---- 95 files changed, 622 insertions(+), 682 deletions(-) commit 62d6d47cb8bd5ace08a90a1cd78f6908e9f9c2d3 Author: Axel Lin Date: Mon Jul 27 09:39:43 2015 +0800 ASoC: max98090: Simplify max98090_readable_register implementation The readable registers are in consecutive ranges: 0x01 ~ 0x03, 0x0D ~ 0xD1, 0xFF So simplify the implementation by specifying a range of consecutive values in a single case label. Signed-off-by: Axel Lin Reviewed-by: Jarkko Nikula Tested-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 71 ++------------------------------------------- 1 file changed, 2 insertions(+), 69 deletions(-) commit d32e03f0b6f9b4ad260feca1c5c938a882066de9 Author: Lars-Peter Clausen Date: Mon Jul 27 10:56:28 2015 +0200 ASoC: xtfpga-i2s: Add missing __rcu annotation tx_substeam is accessed using the RCU API and hence should have the __rcu annotation. Fixes the following sparse warnings: sound/soc/xtensa/xtfpga-i2s.c:165:24: error: incompatible types in comparison expression (different address spaces) sound/soc/xtensa/xtfpga-i2s.c:165:24: error: 'struct snd_pcm_substream [noderef] *' versus sound/soc/xtensa/xtfpga-i2s.c:165:24: error: 'struct snd_pcm_substream *' sound/soc/xtensa/xtfpga-i2s.c:255:24: error: incompatible types in comparison expression (different address spaces) sound/soc/xtensa/xtfpga-i2s.c:255:24: error: 'struct snd_pcm_substream [noderef] *' versus sound/soc/xtensa/xtfpga-i2s.c:255:24: error: 'struct snd_pcm_substream *' Signed-off-by: Lars-Peter Clausen Acked-by: Max Filippov Signed-off-by: Mark Brown sound/soc/xtensa/xtfpga-i2s.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 85cf604edc18722140f73e225394722801e55de0 Author: Lars-Peter Clausen Date: Mon Jul 27 10:56:27 2015 +0200 ASoC: uniperf: Staticise local symbols uni_player_dai_ops is not used outside of this file so it should be static. Fixes the following sparse warning: sound/soc/sti/uniperif_player.c:959:30: warning: symbol 'uni_player_dai_ops' was not declared. Should it be static? Signed-off-by: Lars-Peter Clausen Acked-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif_player.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b917abb4064b38b0613e953b09213e788ad94ad0 Author: Lars-Peter Clausen Date: Mon Jul 27 10:56:26 2015 +0200 ASoC: uniperf: Add missing __iomem annotation base referes to a iomem region, so it should have the __iomem annotation. Fixes the following warnings from sparse: sound/soc/sti/sti_uniperif.c:169:19: warning: incorrect type in assignment (different address spaces) sound/soc/sti/sti_uniperif.c:169:19: expected void *base sound/soc/sti/sti_uniperif.c:169:19: got void [noderef] * sound/soc/sti/uniperif_player.c:104:18: warning: incorrect type in argument 1 (different address spaces) sound/soc/sti/uniperif_player.c:104:18: expected void const volatile [noderef] *addr sound/soc/sti/uniperif_player.c:104:18: got void * [...] Signed-off-by: Lars-Peter Clausen Acked-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e773c2f964640e103cc75a45aa4555c73ba55c29 Author: Lars-Peter Clausen Date: Mon Jul 27 10:56:25 2015 +0200 ASoC: rcar ctu: Staticise local symbols rsnd_of_parse_ctu() is not used outside this file so it can be static. Fixes the following sparse warning: sound/soc/sh/rcar/ctu.c:72:6: warning: symbol 'rsnd_of_parse_ctu' was not declared. Should it be static? Signed-off-by: Lars-Peter Clausen Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/ctu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eccad574ef2d74e7519a092d9822932a27c6f165 Author: Lars-Peter Clausen Date: Mon Jul 27 10:56:24 2015 +0200 ASoC: lpass-ipq806x: Staticise local symbols ipq806x_data is not used outside this file, so it can be static. Fixes the following sparse warning: sound/soc/qcom/lpass-ipq806x.c:76:22: warning: symbol 'ipq806x_data' was not declared. Should it be static? Signed-off-by: Lars-Peter Clausen Acked-by: Srinivas Kandagatla Signed-off-by: Mark Brown sound/soc/qcom/lpass-ipq806x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8a6b92be8516c92cf46bc127fa0adf53a05d31c Author: Lars-Peter Clausen Date: Mon Jul 27 10:56:23 2015 +0200 ASoC: wm8804: Drop duplicate const SOC_ENUM_SINGLE_DECL() already includes a const, drop the extra const. Fixes the following sparse warning: sound/soc/codecs/wm8804.c:101:14: warning: duplicate const Signed-off-by: Lars-Peter Clausen Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8804.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c020e378b2b388b712a40dce2da6d437d2b6e0e0 Author: Martin Sperl Date: Wed Jul 29 07:34:10 2015 +0000 spi: bcm2835: fix overflow in calculation of transfer time This resulted in the use of polling mode when other approaches (dma or interrupts) would have been more appropriate. Happened for transfers longer than 477 bytes. Reported-by: Noralf Tronnes Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi-bcm2835.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 26a67ec47a4c58fe79c6421c3dc3d697d322d2d6 Author: Lars Persson Date: Wed Jul 29 09:32:02 2015 +0200 spi: Fix regression in spi-bitbang-txrx.h This patch fixes a regression introduced by commit 232a5adc5199 ("spi: bitbang: only toggle bitchanges"). The attempt to optimize writes of consecutive bit patterns broke most of the combinations of word size and SPI modes due to selecting the wrong bit as the MSB value. Fixes: 232a5adc5199 (spi: bitbang: only toggle bitchanges) Signed-off-by: Lars Persson Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-bitbang-txrx.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b10c7f3cc948107fb992d3a14eeaa0fdfb5c95da Author: Mikko Perttunen Date: Tue Jul 28 11:34:11 2015 +0300 regulator: max8973: Set VSEL regmap ops if DVS GPIO is not set Use regmap helpers for get_voltage_sel and set_voltage_sel ops if the DVS GPIO is not set. The DVS GPIO allows on the fly selection of the VSEL register from two choices. However, if it is not set, the VSEL register will stay fixed and we can use the regmap ops. This allows use of the *hardware_vsel* regulator APIs. Signed-off-by: Mikko Perttunen Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 85e7118412fea31464b62d00bcf4a65fa8904dcc Author: Axel Lin Date: Tue Jul 28 13:39:01 2015 +0800 ASoC: wm8983: Get rid of wm8983_access_masks table The max8983_access table is used for look up readable/writable attributes of registers. The writable registers are mostly in continuous ranges, so we can replace max8983_access table by using case range. The read fields are all 0, so just drop implement of .readable callback. Also set .max_register setting. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/wm8983.c | 80 +++++++++-------------------------------------- 1 file changed, 14 insertions(+), 66 deletions(-) commit 5549ce82e29c6c1a45ad36a871096ae7c53e53b9 Author: Axel Lin Date: Tue Jul 28 13:30:14 2015 +0800 ASoC: max98095: Get rid of max98095_access table The max98095_access table is used for look up readable/writable attributes of registers. The readable/writable/volatile registers are mostly in continuous ranges, so we can replace the max98095_access table entirely by using case range. Below is a summary of the readable/writeable/volatile registers: readable registers: 0x01 ~ 0x97, 0xFF writeable registers: 0x0F ~ 0x97 volatile registers: 0x00 ~ 0x0E, 0x98 ~ 0xFF This patch reworks the implement for .readable and .volatile and also add implementation for .writable callback. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 309 ++++---------------------------------------- 1 file changed, 23 insertions(+), 286 deletions(-) commit f102aa1414d9aa28491414cf4103bad1ddb3ea1f Author: Axel Lin Date: Tue Jul 28 13:29:00 2015 +0800 ASoC: max98088: Get rid of max98088_access table The max98088_access table is used for look up readable/writable/volatile attributes of registers. The readable/writable/volatile registers are mostly in continuous ranges, so we can replace the max98088_access table entirely by using case range. Below is a summary of the readable/writeable/volatile registers: readable registers: 0x00 ~ 0xC9, 0xFF writeable registers: 0x03 ~ 0xC9 volatile registers: 0x00 ~ 0x03, 0xFF Note, 0x00 should be read-only according to the datasheet. This patch reworks the implement for .readable and .volatile and also add implementation for .writable callback. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/max98088.c | 305 ++++---------------------------------------- 1 file changed, 25 insertions(+), 280 deletions(-) commit f785f2357673d520a0b7b468973cdd197f336494 Author: Arnaldo Carvalho de Melo Date: Tue Jul 28 12:01:33 2015 -0300 perf symbols: Fix mismatched declarations for elf_getphdrnum When HAVE_ELF_GETPHDRNUM_SUPPORT is false we trip on this problem: CC /tmp/build/perf/util/symbol-elf.o util/symbol-elf.c:41:12: error: static declaration of ‘elf_getphdrnum’ follows non-static declaration static int elf_getphdrnum(Elf *elf, size_t *dst) ^ In file included from util/symbol.h:19:0, from util/symbol-elf.c:8: /usr/include/libelf.h:206:12: note: previous declaration of ‘elf_getphdrnum’ was here extern int elf_getphdrnum (Elf *__elf, size_t *__dst); ^ MKDIR /tmp/build/perf/bench/ /home/git/linux/tools/build/Makefile.build:68: recipe for target '/tmp/build/perf/util/symbol-elf.o' failed make[3]: *** [/tmp/build/perf/util/symbol-elf.o] Error 1 Fix it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-qcmekyfedmov4sxr0wahcikr@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/symbol-elf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 58b32c1b538f2d197ce385d6a314e83f8b787021 Author: Arnaldo Carvalho de Melo Date: Mon Jul 27 17:13:21 2015 -0300 perf python: Make twatch.py use soft dummy event, freq=0 To not sample, what we want are just the PERF_RECORD_ lifetime events for threads, using the default, PERF_TYPE_HARDWARE + PERF_COUNT_HW_CYCLES and freq=1 (the default), makes perf reenable irq_vectors:local_timer_entry, disabling nohz, not good for some use cases where all we want is to get notifications when threads comes and goes... Fix it by using PERF_TYPE_SOFTWARE (no counter rotation) and PERF_COUNT_SW_DUMMY (created by Adrian so that we could have access to those PERF_RECORD_ goodies). Reported-by: Luiz Fernando Capitulino Suggested-by: Peter Zijlstra Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jaroslav Skarvada Cc: Jeremy Eder Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-kfsijirfrs6xfhkcdxeoen06@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/python/twatch.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 84576da2f72e51be63c5b63c0e297028fa7ac59f Author: Arnaldo Carvalho de Melo Date: Fri Jul 24 13:04:09 2015 -0300 perf python: Add missing PERF_RECORD_{MMAP2,AUX,etc} Those were added to the kernel and tooling but we forgot to expose them via the python binding, fix it. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-sg1m6t2c58gchidfce4hmitg@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/python.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5865fe361a234e50b5217da3edd2c5571fffc7fd Author: Arnaldo Carvalho de Melo Date: Fri Jul 24 13:00:03 2015 -0300 perf python: Add macro to simplify maintainance of the constants array Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/n/tip-ffuchgsbr5mqu91xl9oggfss@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/python.c | 134 ++++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 66 deletions(-) commit 959c2199d4c0e330d17f1f5234527e87132d5e07 Author: Arnaldo Carvalho de Melo Date: Fri Jul 24 12:13:05 2015 -0300 perf python: Remove dependency on 'machine' methods The python binding still doesn't provide symbol resolving facilities, but the recent addition of the trace_event__register_resolver() function made it add as a dependency the machine__resolve_kernel_addr() method, that in turn drags all the symbol resolving code. The problem: [root@zoo ~]# perf test -v python 17: Try 'import perf' in python, checking link problems : --- start --- test child forked, pid 6853 Traceback (most recent call last): File "", line 1, in ImportError: /tmp/build/perf/python/perf.so: undefined symbol: machine__resolve_kernel_addr test child finished with -1 ---- end ---- Try 'import perf' in python, checking link problems: FAILED! [root@zoo ~]# Fix it by requiring this function to receive the resolver as a parameter, just like pevent_register_function_resolver(), i.e. do not explicitely refer to an object file not included in tools/perf/util/python-ext-sources. [root@zoo ~]# perf test python 17: Try 'import perf' in python, checking link problems : Ok [root@zoo ~]# Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Fixes: c3168b0db93a ("perf symbols: Provide libtraceevent callback to resolve kernel symbols") Link: http://lkml.kernel.org/n/tip-vxlhh95v2em9zdbgj3jm7xi5@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 2 +- tools/perf/util/trace-event.c | 7 +++---- tools/perf/util/trace-event.h | 3 ++- 3 files changed, 6 insertions(+), 6 deletions(-) commit 011710e2ab659c7ad6e5e554806414bd7a9508be Author: Sifan Naeem Date: Mon Jul 27 13:11:15 2015 +0100 spi: img-spfi: check for timeout error before proceeding Calling spfi_wait_all_done is not required if the transfer has timed out before all data is transferred. spfi_wait_all_done polls for Alldone interrupt which is triggered to mark the transfer as complete and to indicate it is now safe to issue a new transfer. Fixes: 8c2c8c0 ("spi: img-spfi: Control CS lines with GPIO") Signed-off-by: Sifan Naeem Reviewed-by: Andrew Bresticker Signed-off-by: Mark Brown Cc: stable@vger.kernel.org drivers/spi/spi-img-spfi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit de734f89b67c2df30e35a09e7e56a3659e5b6ac6 Author: Frederic Weisbecker Date: Thu Jun 11 18:07:12 2015 +0200 nohz: Remove useless argument on tick_nohz_task_switch() Leftover from early code. Cc: Christoph Lameter Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker include/linux/tick.h | 8 ++++---- kernel/sched/core.c | 2 +- kernel/time/tick-sched.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 59d2c7ca492d7a7093755e4108390e4dac8b6365 Author: Frederic Weisbecker Date: Fri May 29 14:42:15 2015 +0200 nohz: Move tick_nohz_restart_sched_tick() above its users Fix the function declaration/definition dance. Reviewed-by: Rik van Riel Cc: Christoph Lameter Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker kernel/time/tick-sched.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) commit 73738a95d00467812664b7f86ba3052f5faf96d7 Author: Frederic Weisbecker Date: Wed May 27 19:22:08 2015 +0200 nohz: Restart nohz full tick from irq exit Restart the tick when necessary from the irq exit path. It makes nohz full more flexible, simplify the related IPIs and doesn't bring significant overhead on irq exit. In a longer term view, it will allow us to piggyback the nohz kick on the scheduler IPI in the future instead of sending a dedicated IPI that often doubles the scheduler IPI on task wakeup. This will require more changes though including careful review of resched_curr() callers to include nohz full needs. Reviewed-by: Rik van Riel Cc: Christoph Lameter Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker include/linux/tick.h | 8 -------- kernel/time/tick-sched.c | 34 ++++++++++------------------------ 2 files changed, 10 insertions(+), 32 deletions(-) commit 594493594373862ed2a7f91d88a5a2670742faa6 Author: Frederic Weisbecker Date: Wed May 27 15:42:42 2015 +0200 nohz: Remove idle task special case On nohz full early days, idle dynticks and full dynticks weren't well integrated and we couldn't risk full dynticks calls on idle without risking messing up tick idle statistics. This is why we prevented such thing to happen. Nowadays full dynticks and idle dynticks are better integrated and interact without known issue. So lets remove that. Reviewed-by: Rik van Riel Cc: Christoph Lameter Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker kernel/time/tick-sched.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 03f6199a359e460714b6bd08c10b566760f150a6 Author: Chris Metcalf Date: Fri Jul 10 15:37:25 2015 -0400 nohz: Prevent tilegx network driver interrupts Normally the tilegx networking shim sends irqs to all the cores to distribute the load of processing incoming-packet interrupts, so that you can get to multiple Gb's of traffic inbound. However, in nohz_full mode we don't want to interrupt the nohz_full cores by default, so we limit the set of cores we use to only the online housekeeping cores. To make client code easier to read, we introduce a new nohz_full accessor, housekeeping_cpumask(), which returns a pointer to the housekeeping_mask if nohz_full is enabled, and otherwise returns the cpu_possible_mask. Signed-off-by: Chris Metcalf Cc: Christoph Lameter Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker drivers/net/ethernet/tile/tilegx.c | 4 +++- include/linux/tick.h | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) commit 2019e8a3024bd8fcadd57891a88c838849216a5f Author: Frederic Weisbecker Date: Mon Oct 27 17:20:35 2014 +0100 alpha: Fix jiffies based cputime assumption That code wrongly assumes that cputime_t wraps jiffies_t. Lets use the correct accessors/mutators. In practice there should be no harm yet because alpha currently only support tick based cputime accounting which is always jiffies based. Reviewed-by: Rik van Riel Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Christoph Lameter Cc: Ingo Molnar Cc; John Stultz Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker arch/alpha/kernel/osf_sys.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 031a7f456adecaff692bc040b31a7d2262b4ee56 Author: Frederic Weisbecker Date: Mon Oct 27 17:16:04 2014 +0100 apm32: Fix cputime == jiffies assumption That code wrongly assumes that cputime_t wraps jiffies_t. Lets use the correct accessors/mutators. No real harm now as that code can't be used with full dynticks. Reviewed-by: Rik van Riel Cc: Christoph Lameter Cc: Ingo Molnar Cc; John Stultz Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker arch/x86/kernel/apm_32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e075867681ca9b8c0b8823e24d0fb4ce3b4f2655 Author: Frederic Weisbecker Date: Fri Oct 10 02:44:01 2014 +0200 jiffies: Remove HZ > USEC_PER_SEC special case HZ never goes much further 1000 and a bit. And if we ever reach one tick per microsecond, we might be having a problem. Lets stop maintaining this special case, just leave a paranoid check. Reviewed-by: Rik van Riel Cc: Christoph Lameter Cc: Ingo Molnar Cc; John Stultz Cc: Peter Zijlstra Cc: Preeti U Murthy Cc: Rik van Riel Cc: Thomas Gleixner Cc: Viresh Kumar Signed-off-by: Frederic Weisbecker include/linux/jiffies.h | 9 +-------- kernel/time/time.c | 10 +++++++--- 2 files changed, 8 insertions(+), 11 deletions(-) commit e63bfd45aba4269811662de0954785622a2ac928 Author: Lars-Peter Clausen Date: Sun Jul 26 19:05:00 2015 +0200 ASoC: dapm: Add widget path iterators Add helper iterator macros for iterating over the source and sink paths of widget. This will make it easier to change the implementation later on. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc-dapm.h | 18 ++++++++++++++++++ sound/soc/intel/atom/sst-atom-controls.c | 4 ++-- sound/soc/soc-dapm.c | 30 +++++++++++++++--------------- 3 files changed, 35 insertions(+), 17 deletions(-) commit 1ce43acff0c078fd560ee0f2a4ae10b8da28e388 Author: Lars-Peter Clausen Date: Sun Jul 26 19:04:59 2015 +0200 ASoC: dapm: Simplify list creation in dapm_dai_get_connected_widgets() When running dapm_dai_get_connected_widgets() currently in is_connected_{input,output}_ep() for each widget that gets added the array is resized and the code also loops over all existing entries to avoid adding a widget multiple times. The former can be avoided by collecting the widgets in a linked list and only once we have all widgets allocate the array. The later can be avoided by changing when the widget is added. Currently it is added when walking the neighbor lists of a widget. Since a widget can be neighbors with multiple other widgets it could get added twice and hence the check is necessary. But the main body of is_connected_{input,output}_ep is guaranteed to be only executed at most once per widget. So adding the widget to the list at the beginning of the function automatically makes sure that each widget gets only added once. The only difference is that using this method the starting point itself will also end up on the list, but it can easily be skipped when creating the array. Overall this reduces the code size and speeds things slightly up. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 101 ++++++++++++++++++--------------------------------- sound/soc/soc-pcm.c | 11 +----- 2 files changed, 38 insertions(+), 74 deletions(-) commit 787126ebdb9821f1a19b1dfd1ab1bbb74b8c80b8 Author: Lars-Peter Clausen Date: Sun Jul 26 19:04:58 2015 +0200 ASoC: dapm: Drop always true checks list_first_entry() always returns non NULL and since the code previously checked that list is not empty it will also be a valid pointer. Furthermore a path has always a sink or a source widget. So both checks are redundant and can be removed. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 5 ----- 1 file changed, 5 deletions(-) commit 82cf77a1bd61d981184a355742a9b5c78f286f97 Author: Axel Lin Date: Sat Jul 25 15:32:16 2015 +0800 ASoC: tas2552: Remove unneeded NULL test for tas2552->enable_gpio It's safe to call gpiod_set_value() with NULL desc. Signed-off-by: Axel Lin Acked-by: Dan Murphy Signed-off-by: Mark Brown sound/soc/codecs/tas2552.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) commit f8163c8673efaabb361281a2759b3167d181ecf6 Author: Axel Lin Date: Sat Jul 25 10:23:40 2015 +0800 ASoC: rt5677: Return error if devm_gpiod_get_optional return ERR_PTR If devm_gpiod_get_optional() return ERR_PTR, it means something wrong so request gpio fails. We had better return error in such case. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c847fe8895fded71d0b9a0ba58d3828320fd1824 Author: Paolo Bonzini Date: Wed Jul 29 11:06:34 2015 +0200 KVM: x86: remove unnecessary memory barriers for shared MSRs There is no smp_rmb matching the smp_wmb. shared_msr_update is called from hardware_enable, which in turn is called via on_each_cpu. on_each_cpu and must imply a read memory barrier (on x86 the rmb is achieved simply through asm volatile in native_apic_mem_write). Signed-off-by: Paolo Bonzini arch/x86/kvm/x86.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d71ba788345c2b5646101766e0c52714a9b5ed7f Author: Paolo Bonzini Date: Wed Jul 29 11:56:48 2015 +0200 KVM: move code related to KVM_SET_BOOT_CPU_ID to x86 This is another remnant of ia64 support. Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 3 +++ arch/x86/kvm/x86.c | 21 +++++++++++++++++++++ include/linux/kvm_host.h | 16 ---------------- virt/kvm/kvm_main.c | 14 -------------- 4 files changed, 24 insertions(+), 30 deletions(-) commit 9a1d78a3780e0e37eeff11b377fc5fbb01446a36 Author: Николай Кудрявцев Date: Tue Jul 21 13:31:52 2015 +0300 HID: chicony: Add support for Acer Aspire Switch 12 Acer Aspire Switch 12 keyboard Chicony's controller reports too big usage index on the 1st interface. The patch fixes the report. The work based on solution from drivers/hid/hid-holtek-mouse.c Bug report: https://bugzilla.kernel.org/show_bug.cgi?id=101721 Signed-off-by: Nicholas Kudriavtsev Signed-off-by: Jiri Kosina drivers/hid/hid-chicony.c | 26 ++++++++++++++++++++++++++ drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 1 + 3 files changed, 28 insertions(+) commit c873d9aba7c9782b4dc74488ab964ed6cf54678f Author: Simon Wood Date: Thu Jul 23 19:10:03 2015 -0600 HID: hid-lg: Add USBID for Logitech G29 Wheel Since this wheel is now available, and the USBID is listed on their website, this patch adds it to allow the hid-lg4ff force feedback driver to find it. I do not have this wheel to test with, but this should at least get it working in emulation mode. Note: There is probably more work required for adjust HID descriptor and handle switching between emulation and native modes. Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-ids.h | 1 + drivers/hid/hid-lg.c | 2 ++ 2 files changed, 3 insertions(+) commit 554726d33c20791653dbd1c047c83f93459bc586 Merge: 5492830 c92ea7b Author: Paolo Bonzini Date: Wed Jul 29 12:53:58 2015 +0200 Merge tag 'kvm-s390-next-20150728' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into kvm-next KVM: s390: Fixes and features for kvm/next (4.3) 1. Rework logging infrastructure (s390dbf) to integrate feedback learned when debugging performance and test issues 2. Some cleanups and simplifications for CMMA handling 3. Fix gdb debugging and single stepping on some instructions 4. Error handling for storage key setup commit c92ea7b9f7d256cabf7ee08a7627a5227e356dec Author: Christian Borntraeger Date: Wed Jul 22 15:52:10 2015 +0200 KVM: s390: log capability enablement and vm attribute changes Depending on user space, some capabilities and vm attributes are enabled at runtime. Let's log those events and while we're at it, log querying the vm attributes as well. Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 78f2613168eca83a218272aa12b680a365ee58d6 Author: Christian Borntraeger Date: Wed Jul 22 15:50:58 2015 +0200 KVM: s390: Provide global debug log In addition to the per VM debug logs, let's provide a global one for KVM-wide events, like new guests or fatal errors. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand arch/s390/include/asm/kvm_host.h | 1 - arch/s390/kvm/kvm-s390.c | 20 +++++++++++++++++++- arch/s390/kvm/kvm-s390.h | 7 +++++++ 3 files changed, 26 insertions(+), 2 deletions(-) commit 7cbde76b3d55ee299568eb943854c425b015b30c Author: Christian Borntraeger Date: Tue Jul 21 12:44:57 2015 +0200 KVM: s390: adapt debug entries for instruction handling Use the default log level 3 for state changing and/or seldom events, use 4 for others. Also change some numbers from %x to %d and vice versa to match documentation. If hex, let's prepend the numbers with 0x. Signed-off-by: Christian Borntraeger Acked-by: Cornelia Huck arch/s390/kvm/priv.c | 22 ++++++++++++---------- arch/s390/kvm/sigp.c | 10 +++++----- 2 files changed, 17 insertions(+), 15 deletions(-) commit 1cb9cf726efeb77e05ee4f27f32700c46ecb1b8a Author: Christian Borntraeger Date: Mon Jul 20 15:04:48 2015 +0200 KVM: s390: improve debug feature usage We do not use the exception logger, so the 2nd area is unused. Just have one area that is bigger (32 pages). At the same time we can limit the debug feature size to 7 longs, as the largest user has 3 parameters + string + boiler plate (vCPU, PSW mask, PSW addr) Signed-off-by: Christian Borntraeger Acked-by: Cornelia Huck arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f2d2eb9d05b7d03acff0589e5fd8c13a0031cb6c Author: Christian Borntraeger Date: Mon Jul 20 22:05:55 2015 +0200 KVM: s390: remove outdated documentation The old Documentation/s390/kvm.txt file is either outdated or described in Documentation/virtual/kvm/api.txt. Let's get rid of it. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand Documentation/s390/00-INDEX | 2 - Documentation/s390/kvm.txt | 125 -------------------------------------------- 2 files changed, 127 deletions(-) commit a37281b63681015b12c3b7322e6bd681c0ea1ef4 Author: David Hildenbrand Date: Fri Nov 21 13:45:08 2014 +0100 KVM: s390: more irq names for trace events This patch adds names for missing irq types to the trace events. In order to identify adapter irqs, the define is moved from interrupt.c to the other basic irq defines in uapi/linux/kvm.h. Acked-by: Cornelia Huck Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 3 +-- arch/s390/kvm/trace-s390.h | 22 ++++++++++++++++------ include/uapi/linux/kvm.h | 1 + 3 files changed, 18 insertions(+), 8 deletions(-) commit 3f24ba150cb6be11222ced427f2997c33fbd665e Author: Christian Borntraeger Date: Thu Jul 9 14:08:18 2015 +0200 KVM: s390: Fixup interrupt vcpu event messages and levels This reworks the debug logging for interrupt related logs. Several changes: - unify program int/irq - improve decoding (e.g. use mcic instead of parm64 for machine check injection) - remove useless interrupt type number (the name is enough) - rename "interrupt:" to "deliver:" as the other side is called "inject" - use log level 3 for state changing and/or seldom events (like machine checks, restart..) - use log level 4 for frequent events - use 0x prefix for hex numbers - add pfault done logging - move some tracing outside spinlock Signed-off-by: Christian Borntraeger Reviewed-by: Cornelia Huck Reviewed-by: Jens Freimann arch/s390/kvm/interrupt.c | 51 +++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 24 deletions(-) commit ab7090a611c6f4ea327c811c08458147e54130d2 Author: Christian Borntraeger Date: Thu Jul 16 10:24:07 2015 +0200 KVM: s390: add more debug data for the pfault diagnoses We're not only interested in the address of the control block, but also in the requested subcommand and for the token subcommand, in the specified token address and masks. Suggested-by: Cornelia Huck Signed-off-by: Christian Borntraeger Reviewed-by: Cornelia Huck Reviewed-by: David Hildenbrand arch/s390/kvm/diag.c | 4 ++++ 1 file changed, 4 insertions(+) commit ed2afcfa13e9c44340780123a07350e14bacd4b5 Author: David Hildenbrand Date: Mon Jul 20 10:33:03 2015 +0200 KVM: s390: remove "from (user|kernel)" from irq injection messages The "from user"/"from kernel" part of the log/trace messages is not always correct anymore and therefore not really helpful. Let's remove that part from the log + trace messages. For program interrupts, we can now move the logging/tracing part into the real injection function, as already done for the other injection functions. Reviewed-by: Jens Freimann Acked-by: Cornelia Huck Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/interrupt.c | 33 ++++++++++++++------------------- arch/s390/kvm/trace-s390.h | 11 +++-------- 2 files changed, 17 insertions(+), 27 deletions(-) commit 71db35d26dbacd3d165522022ecb757ddc1529ea Author: Christian Borntraeger Date: Fri Jul 10 15:27:20 2015 +0200 KVM: s390: VCPU_EVENT cleanup for prefix changes SPX (SET PREFIX) and SIGP (Set prefix) can change the prefix register of a CPU. As sigp set prefix may be handled in user space (KVM_CAP_S390_USER_SIGP), we would not log the changes triggered via SIGP in that case. Let's have just one VCPU_EVENT at the central location that tracks prefix changes. Signed-off-by: Christian Borntraeger Reviewed-by: Cornelia Huck Reviewed-by: David Hildenbrand arch/s390/kvm/interrupt.c | 1 - arch/s390/kvm/kvm-s390.h | 2 ++ arch/s390/kvm/priv.c | 2 -- arch/s390/kvm/sigp.c | 3 --- 4 files changed, 2 insertions(+), 6 deletions(-) commit 15e8b5daabe37b56e8117957ea1a10e99d380ac4 Author: Christian Borntraeger Date: Thu Jul 9 13:43:41 2015 +0200 KVM: s390: Improve vcpu event debugging for diagnoses Let's add a vcpu event for the page reference handling and change the default debugging level for the ipl diagnose. Both are not frequent AND change the global state, so lets log them always. Signed-off-by: Christian Borntraeger arch/s390/kvm/diag.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 175a5c9e79b0eb822c158a6535f44a8460b40664 Author: Christian Borntraeger Date: Tue Jul 7 15:19:32 2015 +0200 KVM: s390: add kvm stat counter for all diagnoses Sometimes kvm stat counters are the only performance metric to check after something went wrong. Let's add additional counters for some diagnoses. In addition do the count for diag 10 all the time, even if we inject a program interrupt. Signed-off-by: Christian Borntraeger Reviewed-by: Jens Freimann arch/s390/include/asm/kvm_host.h | 3 +++ arch/s390/kvm/diag.c | 5 ++++- arch/s390/kvm/kvm-s390.c | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) commit c348915585af12a7fc6453524d9835830dba574b Author: Dominik Dingel Date: Thu Jun 18 13:17:11 2015 +0200 KVM: s390: only reset CMMA state if it was enabled before There is no point in resetting the CMMA state if it was never enabled. Signed-off-by: Dominik Dingel Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 4 ++++ 1 file changed, 4 insertions(+) commit e6db1d61c7cc05dd3c8b787a0bd47dcb94800300 Author: Dominik Dingel Date: Thu May 7 15:41:57 2015 +0200 KVM: s390: clean up cmma_enable check As we already only enable CMMA when userspace requests it, we can safely move the additional checks to the request handler and avoid doing them multiple times. This also tells userspace if CMMA is available. Signed-off-by: Dominik Dingel Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 21 +++++++-------------- arch/s390/kvm/kvm-s390.h | 2 -- arch/s390/kvm/priv.c | 2 +- 3 files changed, 8 insertions(+), 17 deletions(-) commit 0df30abcd69b61d8163282c157f15ed3b0f1ac85 Author: David Hildenbrand Date: Tue Jun 23 22:49:36 2015 +0200 KVM: s390: filter space-switch events when PER is enforced When guest debugging is active, space-switch events might be enforced by PER. While the PER events are correctly filtered out, space-switch-events could be forwarded to the guest, although from a guest point of view, they should not have been reported. Therefore we have to filter out space-switch events being concurrently reported with a PER event, if the PER event got filtered out. To do so, we theoretically have to know which instruction was responsible for the event. As the applicable instructions modify the PSW address, the address space set in the PSW and even the address space in cr1, we can't figure out the instruction that way. For this reason, we have to rely on the information about the old and new address space, in order to guess the responsible instruction type and do appropriate checks for space-switch events. Signed-off-by: David Hildenbrand Signed-off-by: Christian Borntraeger arch/s390/kvm/guestdbg.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 14d4a425e7df6aaaa3287108ce191ccb6644c264 Author: Dominik Dingel Date: Thu May 7 15:16:13 2015 +0200 KVM: s390: propagate error from enable storage key As enabling storage keys might fail, we should forward the error. Signed-off-by: Dominik Dingel Signed-off-by: Christian Borntraeger arch/s390/kvm/kvm-s390.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8453580cb8834dedffda86bcb64f13befc90eb03 Author: Hanno Böck Date: Wed Jul 29 10:31:04 2015 +0200 drm/i915: Fix command parser table validator As we may like to use a bisection search on the tables in future, we need them to be ordered. For convenience we expect the compiled tables to be order and check on initialisation. However, the validator used the wrong iterators failed to spot the misordered MI tables and instead walked off into the unknown (as spotted by kasan). Signed-off-by: Hanno Boeck Reviewed-by: Chris Wilson [danvet: Again hand-assemble patch ...] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f58582c7ad64f025e7fc582461c5bfafb46818f Author: Hanno Böck Date: Wed Jul 29 10:29:58 2015 +0200 drm/i915: Properly sort MI coomand table In the future, we may want to speed up command/register searching using a bisection and so we require them to be in ascending order respectively by command value or register address. However, this was not true for one pair in the MI table; make it so. Signed-off-by: Hanno Boeck Reviewed-by: Chris Wilson [danvet: Hand-assemble patch from raw patch from Hanno and commit message from Chris.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccec9038c7217e537f5ae5e3ac5af8293a21bbfd Author: David Liu Date: Fri Jul 24 20:25:32 2015 +0300 ath10k: enable raw encap mode and software crypto engine This patch enables raw Rx/Tx encap mode to support software based crypto engine. This patch introduces a new module param 'cryptmode'. cryptmode: 0: Use hardware crypto engine globally with native Wi-Fi mode TX/RX encapsulation to the firmware. This is the default mode. 1: Use sofware crypto engine globally with raw mode TX/RX encapsulation to the firmware. Known limitation: A-MSDU must be disabled for RAW Tx encap mode to perform well when heavy traffic is applied. Testing: (by Michal Kazior ) a) Performance Testing cryptmode=1 ap=qca988x sta=killer1525 killer1525 -> qca988x 194.496 mbps [tcp1 ip4] killer1525 -> qca988x 238.309 mbps [tcp5 ip4] killer1525 -> qca988x 266.958 mbps [udp1 ip4] killer1525 -> qca988x 477.468 mbps [udp5 ip4] qca988x -> killer1525 301.378 mbps [tcp1 ip4] qca988x -> killer1525 297.949 mbps [tcp5 ip4] qca988x -> killer1525 331.351 mbps [udp1 ip4] qca988x -> killer1525 371.528 mbps [udp5 ip4] ap=killer1525 sta=qca988x qca988x -> killer1525 331.447 mbps [tcp1 ip4] qca988x -> killer1525 328.783 mbps [tcp5 ip4] qca988x -> killer1525 375.309 mbps [udp1 ip4] qca988x -> killer1525 403.379 mbps [udp5 ip4] killer1525 -> qca988x 203.689 mbps [tcp1 ip4] killer1525 -> qca988x 222.339 mbps [tcp5 ip4] killer1525 -> qca988x 264.199 mbps [udp1 ip4] killer1525 -> qca988x 479.371 mbps [udp5 ip4] Note: - only open network tested for RAW vs nwifi performance comparison - killer1525 (qca6174 hw2.2) is 2x2 device (hence max 866mbps) - used iperf - OTA, devices a few cm apart from each other, no shielding - tcpX/udpX, X - means number of threads used Overview: - relative Tx performance drop is seen but is within reasonable and expected threshold (A-MSDU must be disabled with RAW Tx) b) Connectivity Testing cryptmode=1 ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta OK ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta OK ap=iwl6205 sta1=qca988x crypto=wpa topology-1ap1sta OK ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta OK ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta OK ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta OK ap=qca988x sta1=iwl6205 crypto=wpa topology-1ap1sta OK ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta OK ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br OK ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br OK ap=iwl6205 sta1=qca988x crypto=wpa topology-1ap1sta2br OK ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br OK ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br OK ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br OK ap=qca988x sta1=iwl6205 crypto=wpa topology-1ap1sta2br OK ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br OK ap=iwl6205 sta1=qca988x crypto=open topology-1ap1sta2br1vlan OK ap=iwl6205 sta1=qca988x crypto=wep1 topology-1ap1sta2br1vlan OK ap=iwl6205 sta1=qca988x crypto=wpa topology-1ap1sta2br1vlan OK ap=iwl6205 sta1=qca988x crypto=wpa-ccmp topology-1ap1sta2br1vlan OK ap=qca988x sta1=iwl6205 crypto=open topology-1ap1sta2br1vlan OK ap=qca988x sta1=iwl6205 crypto=wep1 topology-1ap1sta2br1vlan OK ap=qca988x sta1=iwl6205 crypto=wpa topology-1ap1sta2br1vlan OK ap=qca988x sta1=iwl6205 crypto=wpa-ccmp topology-1ap1sta2br1vlan OK Note: - each test takes all possible endpoint pairs and pings - each pair-ping flushes arp table - ip6 is used c) Testbed Topology: 1ap1sta: [ap] ---- [sta] endpoints: ap, sta 1ap1sta2br: [veth0] [ap] ---- [sta] [veth2] | | | | [veth1] | \ [veth3] \ / \ / [br0] [br1] endpoints: veth0, veth2, br0, br1 note: STA works in 4addr mode, AP has wds_sta=1 1ap1sta2br1vlan: [veth0] [ap] ---- [sta] [veth2] | | | | [veth1] | \ [veth3] \ / \ / [br0] [br1] | | [vlan0_id2] [vlan1_id2] endpoints: vlan0_id2, vlan1_id2 note: STA works in 4addr mode, AP has wds_sta=1 Credits: Thanks to Michal Kazior who helped find the amsdu issue, contributed a workaround (already squashed into this patch), and contributed the throughput and connectivity tests results. Signed-off-by: David Liu Signed-off-by: Michal Kazior Tested-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 43 +++++++++++++++++++ drivers/net/wireless/ath/ath10k/core.h | 31 +++++++++++--- drivers/net/wireless/ath/ath10k/debug.c | 19 ++++----- drivers/net/wireless/ath/ath10k/htt.c | 23 +++++++++- drivers/net/wireless/ath/ath10k/htt.h | 8 ++++ drivers/net/wireless/ath/ath10k/htt_rx.c | 7 ++-- drivers/net/wireless/ath/ath10k/htt_tx.c | 12 +++++- drivers/net/wireless/ath/ath10k/hw.h | 11 ++--- drivers/net/wireless/ath/ath10k/mac.c | 70 ++++++++++++++++++++++++------- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.c | 8 ++-- 11 files changed, 183 insertions(+), 51 deletions(-) commit 005fb161310f72070ad5f4352d6b81ffaca8a11e Author: Qi Zhou Date: Wed Jul 22 16:38:24 2015 -0400 ath10k: Improve performance by reducing tx_lock contention During tx completion, tx_lock is held for longer than required, preventing efficient refill of htt->pending_tx. Refactor the code so that only MSDU related operations are protected by the lock. Improves downstream performance on a dual-core ARM Freescale LS1024A (f.k.a. Mindspeed Comcerto 2000) AP with a 3x3 client from 495 to 580 Mbps. Other CPU bound multicore systems may also benefit. Signed-off-by: Denton Gentry Signed-off-by: Avery Pennarun [mfaltesek@google.com: removed conflicting code for tracking msdu_ids.] Signed-off-by: Marty Faltesek Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_rx.c | 12 ++---------- drivers/net/wireless/ath/ath10k/htt_tx.c | 8 ++------ drivers/net/wireless/ath/ath10k/txrx.c | 17 ++++++++--------- 3 files changed, 12 insertions(+), 25 deletions(-) commit dcc13bcb488874568c5e2c32b43b68e069ada75c Author: Rodrigo Vivi Date: Thu Jul 23 16:35:46 2015 -0700 drm/i915: Don't return error on sink crc stop. If we got to the point where we are trying to stop sink CRC the main output of this function was already gotten properly, so don't return the error and let userspace use the crc data. Let's replace the errnos returns with some log messages. Signed-off-by: Rodrigo Vivi Reviewed-by: Rafael Antognolli Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit afe0d67e1f67250ddf69fc6ef9b76f4407e6815a Author: Rodrigo Vivi Date: Thu Jul 23 16:35:45 2015 -0700 drm/i915: Try to stop sink crc calculation on error. Right now if we face any kind of error sink crc calculation stays enabled. So, let's give a shot and try to stop it anyway if it got enabled. Signed-off-by: Rodrigo Vivi Reviewed-by: Rafael Antognolli Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 3413e97dbbae8561e01ac28ccb0d4bbe7ce933f4 Author: Kevin Darbyshire-Bryant Date: Tue Jul 21 15:50:15 2015 +0100 ath10k: suppress 'failed to process fft' warning messages When using DFS channels on Ath10k, kernel log has repeated warning message 'failed to process fft: -22' typically under medium/heavy traffic. This patch switches the warnings to driver debug (WMI events) mode only thus reducing log file noise. DFS and spectral scan share underlying HW mechanisms and enabling one (DFS) enables the other (spectral scan) as far as event reporting from firmware to driver is concerned. Spectral scan events take no part in processing of DFS radar pulses which are delivered as distinct events, so the fft (spectral event) warning is harmless and DFS interference detection/protection still occurs. Symptoms seen & fix tested in both debug & non-debug modes on TP-Link Archer C7 v2 platform. Signed-off-by: Kevin Darbyshire-Bryant Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a0d61f5f61290ee70cd024c7573e2ac5562f7a78 Author: Nik Nyby Date: Mon Jun 29 13:30:37 2015 -0400 ath6kl: spell "distribution" correctly in a comment. This fixes two misspellings of "distribution" in a comment. Signed-off-by: Nik Nyby Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath6kl/htc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1559f3b8d0527e24219149c95b3de5e7b2924828 Author: Jiang Liu Date: Mon Jul 13 20:53:10 2015 +0000 xtensa/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Chris Zankel Link: http://lkml.kernel.org/r/20150713172018.264485572@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar arch/xtensa/kernel/irq.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 7fe88f3c00e7bfa44421681640fab3a9fadfef3b Author: Jiang Liu Date: Mon Jul 13 20:52:25 2015 +0000 spmi/pmic: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Cc: Greg Kroah-Hartman Link: http://lkml.kernel.org/r/20150713151750.915477120@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar drivers/spmi/spmi-pmic-arb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fb68ba6d0b06cf287e9081d60f705501c52124f6 Author: Thomas Gleixner Date: Mon Jul 13 20:52:24 2015 +0000 spmi/pmic_arb: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Greg Kroah-Hartman Cc: Jiang Liu Cc: Julia Lawall Link: http://lkml.kernel.org/r/20150713151750.831790045@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar drivers/spmi/spmi-pmic-arb.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit c497615c0cb62ba0b06db9580911dcf6d612bdb9 Author: Thomas Gleixner Date: Mon Jul 13 20:51:26 2015 +0000 sh/intc: Prepare irq flow handlers for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Simon Horman Cc: Magnus Damm Cc: Julia Lawall Link: http://lkml.kernel.org/r/20150713151626.872605327@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar arch/sh/boards/mach-se/7724/irq.c | 3 ++- drivers/sh/intc/virq.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 8228a048961a93e871779c658eaa801f747e6c1d Author: Jiang Liu Date: Mon Jul 13 20:51:25 2015 +0000 sh/intc: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Also replace generic_handle_irq with generic_handle_irq_desc() to avoid looking up irq_desc again. Signed-off-by: Jiang Liu Cc: Simon Horman Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150713151626.792845830@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar arch/sh/boards/mach-se/7343/irq.c | 2 +- arch/sh/boards/mach-se/7722/irq.c | 2 +- arch/sh/boards/mach-x3proto/gpio.c | 2 +- drivers/sh/intc/core.c | 2 +- drivers/sh/intc/virq.c | 14 ++++++++------ 5 files changed, 12 insertions(+), 10 deletions(-) commit 8b8149df9ce99e02cb2b4655bf20d0ce459b9076 Author: Thomas Gleixner Date: Mon Jul 13 20:51:23 2015 +0000 sh/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Simon Horman Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150713151626.713278346@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar arch/sh/kernel/irq.c | 7 ++++--- drivers/sh/intc/chip.c | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) commit d0abe2f3a9a541ded2e30ef7275f057fb7f0335a Author: Jiang Liu Date: Mon Jul 13 20:51:22 2015 +0000 sh/irq: Use irq accessor functions instead of open coded access This is a preparatory patch for refactoring the internals if irq_data. Signed-off-by: Jiang Liu Cc: Simon Horman Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150713151626.616384365@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar drivers/sh/intc/virq.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit cde5c2756832089e35b0c50417cc2858630f2005 Author: Jiang Liu Date: Mon Jul 13 20:51:20 2015 +0000 sh/irq: Use accessor irq_data_get_node() Use accessor irq_data_get_node() to hide struct irq_data implementation detail, so we can move irq_data->node to irq_data_common once all usage sites are fixed. Signed-off-by: Jiang Liu Cc: Simon Horman Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150713151626.519112900@linutronix.de Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar arch/sh/kernel/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c73e8926623ca0f64c2c6111289ab8096fa647a Author: Luis R. Rodriguez Date: Tue Jul 28 20:17:13 2015 +0200 arch/*/io.h: Add ioremap_uc() to all architectures This adds ioremap_uc() only for architectures that do not include asm-generic.h/io.h as that already provides a default definition for them for both cases where you have CONFIG_MMU and you do not, and because of this, the number of architectures this patch address is less than the architectures that the ioremap_wt() patch addressed, "arch/*/io.h: Add ioremap_wt() to all architectures"). In order to reduce the number of architectures we have to modify by adding new architecture IO APIs we'll have to review the architectures in this patch, see why they can't add asm-generic.h/io.h or issues that would be created by doing so and then spread a consistent inclusion of this header towards the end of their own header. For instance arch/metag includes the asm-generic/io.h *before* the ioremap*() definitions, this should be the other way around but only once we have guard wrappers for the non-MMU case also for asm-generic/io.h. Reported-by: Stephen Rothwell Signed-off-by: Luis R. Rodriguez Cc: Abhilash Kesavan Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Chris Metcalf Cc: David Howells Cc: Fengguang Wu Cc: Geert Uytterhoeven Cc: Greg Kroah-Hartman Cc: Greg Ungerer Cc: Guenter Roeck Cc: Haavard Skinnemoen Cc: Hans-Christian Egtvedt Cc: Koichi Yasutake Cc: Kyle McMartin Cc: Linus Torvalds Cc: Michael Ellerman Cc: Paul Mackerras Cc: Peter Hurley Cc: Peter Zijlstra Cc: Rob Herring Cc: Thomas Gleixner Cc: Toshi Kani Cc: Will Deacon Cc: linux-am33-list@redhat.com Cc: linux-arch@vger.kernel.org Cc: linux-m68k@lists.linux-m68k.org Cc: linux-sh@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/20150728181713.GB30479@wotan.suse.de Signed-off-by: Ingo Molnar arch/avr32/include/asm/io.h | 1 + arch/frv/include/asm/io.h | 1 + arch/m32r/include/asm/io.h | 1 + arch/m68k/include/asm/io_mm.h | 1 + arch/mn10300/include/asm/io.h | 1 + arch/powerpc/include/asm/io.h | 1 + arch/sh/include/asm/io.h | 1 + arch/tile/include/asm/io.h | 1 + 8 files changed, 8 insertions(+) commit 3e24a65f9d2b9e2befacf5823e01ee158fdfedad Merge: 6d85d0e 16b1adb Author: David S. Miller Date: Wed Jul 29 00:13:25 2015 -0700 Merge branch 'stmmac-cleanup' Joachim Eastwood says: ==================== stmmac clean up for 4.3 part2 This patch set creates proper probe functions in the remaining dwmac-* drivers, lets the drivers manage their own of match data structure, and cleans up some of the drivers a bit. Note that should be no functional change in any of the drivers. First patch from Fengguang fixes a Coccinelle that was found after the previous patch set when into next. Probe functions are best placed just above the platform_driver struct since it usually needs to call other functions in the driver but this requires some code movement in the drivers. To keep the conversion itself easier to review the code movement is done in separate patches. This creates some extra churn but I think it's worth it in this case. As only a couple of drivers actually needs to use of match data this pushed down from stmmac_platform and into the drivers. This also makes it possible for drivers to have their own match data structure. dwmac-rk benefits most from this. After each driver has it's own probe function and manages it's own match data the setup/free hooks and common match data struct are removed. Sorry for the slightly largish patch set this time around. Since I can only test the core changes on my platform and not the specific dwmac-drivers I greatly appreciate if people could test this on their respective platforms. I did spend quite a bit of time visually checking all these patches, but nothing beats real hardware testing. Thanks! Patch set based on net-next can also be picked up from here: https://github.com/manabian/linux-lpc.git stmmac_4.3_part2 For those who want to have a look at all the patches for v4.3 a branch based on Linus master can be found here: https://github.com/manabian/linux-lpc.git stmmac_4.2 Previous parts can be found here: http://www.spinics.net/lists/netdev/msg328997.html http://www.spinics.net/lists/netdev/msg329932.html http://www.spinics.net/lists/netdev/msg336097.html ==================== Signed-off-by: David S. Miller commit 16b1adbb16c8a52b206092d875030b346b9ce50b Author: Joachim Eastwood Date: Wed Jul 29 00:09:04 2015 +0200 stmmac: dwmac-sti: refactor the init glue callbacks Remove the two platform specific init callbacks and make them use a common one by creating a function member in the internal data structure. This allow us to remove the layer of indirection and simplify the code a bit. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 43 +++++++------------------ 1 file changed, 12 insertions(+), 31 deletions(-) commit 75fee59550a9899fd9438ebc0a64c972829a8dd2 Author: Joachim Eastwood Date: Wed Jul 29 00:09:03 2015 +0200 stmmac: remove setup/free glue callbacks As all dwmac-* drivers have been converted to have a proper probe function the setup callback can now be removed. Also remove the free callback that wasn't used by any driver. New dwmac-* drivers should implement standard probe and remove functions to preform any needed setup and teardown. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller Documentation/networking/stmmac.txt | 8 ++------ drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c | 7 ------- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 --- include/linux/stmmac.h | 2 -- 4 files changed, 2 insertions(+), 18 deletions(-) commit 0933328a1b8adb6c8b2b8c8b823dad0295659c40 Author: Joachim Eastwood Date: Wed Jul 29 00:09:02 2015 +0200 stmmac: remove unused stmmac_of_data struct As dwmac-* drivers that need OF match have been converted to use their own internal OF match data structure this can now be removed. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller Documentation/networking/stmmac.txt | 2 -- include/linux/stmmac.h | 18 ------------------ 2 files changed, 20 deletions(-) commit f529f18255ed5fbb888498cfaa8cad63eab629e4 Author: Joachim Eastwood Date: Wed Jul 29 00:09:01 2015 +0200 stmmac: dwmac-rk: use rk_gmac_ops as of match data Remove the setup glue callback and use rk_gmac_ops as OF match data so it can used directly when calling rk_gmac_setup. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 27 ++++---------------------- 1 file changed, 4 insertions(+), 23 deletions(-) commit 92c2588fc60c06525c2ef8d6de5b2314c202c3be Author: Joachim Eastwood Date: Wed Jul 29 00:09:00 2015 +0200 stmmac: dwmac-rk: make rk_gmac_ops structs static const Mark the rk_gmac_ops structures as static const as they should be. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 07ca3749cec2b8c7967d73cfa030a144610d3d4e Author: Joachim Eastwood Date: Wed Jul 29 00:08:59 2015 +0200 stmmac: dwmac-sti: use custom of match structure Create a new private structure for OF match data in the dwmac-sti driver. This enables us to eventually drop the common OF match data structure which contains a lot of unused fields. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 149adedd7696cbcf1d72d143ca181334000d0ee7 Author: Joachim Eastwood Date: Wed Jul 29 00:08:58 2015 +0200 stmmac: let dwmac-* drivers handle their own match data Since only a few of the dwmac-* drivers actually need to use the OF match move handling into the dwmac-* drivers that need it. This will also allow dwmac-* drivers to use their own custom match data structure. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 8 ++++++++ drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 10 ++++++++++ drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 18 ------------------ 3 files changed, 18 insertions(+), 18 deletions(-) commit 85d89e6115cd5613b36f31a5038feb9cb4e13dfc Author: Joachim Eastwood Date: Wed Jul 29 00:08:57 2015 +0200 stmmac: move stmmac_pltfr_probe into dwmac-generic As all dwmac-* drivers now have their own probe function move the common one into dwmac-generic driver and drop the EXPORT. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-generic.c | 49 ++++++++++++++++++- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 55 ---------------------- .../net/ethernet/stmicro/stmmac/stmmac_platform.h | 1 - 3 files changed, 48 insertions(+), 57 deletions(-) commit 27ffefd2d10902352c01394169e577f3b91113f2 Author: Joachim Eastwood Date: Wed Jul 29 00:08:56 2015 +0200 stmmac: dwmac-rk: create a new probe function Create a new probe functions that call the necessary setup functions. This is done in preparation for a code refactor in this driver and dropping the common probe function in stmmac_platform.c. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 40 ++++++++++++++++++++------ 1 file changed, 31 insertions(+), 9 deletions(-) commit 8387ee21f972debce15d92e98a37455ae7e035e4 Author: Joachim Eastwood Date: Wed Jul 29 00:08:55 2015 +0200 stmmac: dwmac-sti: turn setup callback into a probe function By using a few functions from stmmac_platform a proper probe function can be created from the setup glue callback. This makes it look more like a standard driver and prepares the driver for further clean ups. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c | 31 ++++++++++++++++++------- 1 file changed, 22 insertions(+), 9 deletions(-) commit 9a9e9a1edee8c5d81f7b6a73ab3c312c0dddf476 Author: Joachim Eastwood Date: Wed Jul 29 00:08:54 2015 +0200 stmmac: dwmac-sunxi: turn setup callback into a probe function By using a few functions from stmmac_platform a proper probe function can be created from the setup glue callback. This makes it look more like a standard driver and the OF match data can also be dropped. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c | 49 ++++++++++++++--------- 1 file changed, 31 insertions(+), 18 deletions(-) commit 22caae03172114147c86982e39fa6f42fea51165 Author: Joachim Eastwood Date: Wed Jul 29 00:08:53 2015 +0200 stmmac: dwmac-sunxi: move sun7i_gmac_setup function Move sun7i_gmac_setup in preparation for turning it into a proper probe function. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c | 58 +++++++++++------------ 1 file changed, 29 insertions(+), 29 deletions(-) commit 8880b6c849916a3d688e2f2404a063cc14cc4a88 Author: Joachim Eastwood Date: Wed Jul 29 00:08:52 2015 +0200 stmmac: dwmac-socfpga: turn setup callback into a probe function By using a few functions from stmmac_platform a proper probe function can be created from the setup glue callback. This makes it look more like a standard driver and the OF match data can also be dropped. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 40 ++++++++++++++-------- 1 file changed, 26 insertions(+), 14 deletions(-) commit 82732789e8e7fb19091f773f2b3536968398ae4b Author: Joachim Eastwood Date: Wed Jul 29 00:08:51 2015 +0200 stmmac: dwmac-socfpga: move socfpga_dwmac_probe function Move socfpga_dwmac_probe in preparation for turning it into a proper probe function. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 50 +++++++++++----------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 5ed1c04a38979f025dd2cf5f37ef5c39a9fc2f85 Author: Joachim Eastwood Date: Wed Jul 29 00:08:50 2015 +0200 stmmac: dwmac-ipq806x: turn setup callback into a probe function By using a few functions from stmmac_platform a proper probe function can be created from the setup glue callback. This makes it look more like a standard driver and the OF match data can also be dropped. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 38 +++++++++++++--------- 1 file changed, 23 insertions(+), 15 deletions(-) commit 213088f6fadfbccc675bc8ebf6901327d802c3a2 Author: Joachim Eastwood Date: Wed Jul 29 00:08:49 2015 +0200 stmmac: dwmac-ipq806x: move ipq806x_gmac_fix_mac_speed function Move ipq806x_gmac_fix_mac_speed in preparation for turning the setup glue callback in a proper probe function. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit a04c0aef74bbd807cd43ffa12404c3d6a6021865 Author: Fengguang Wu Date: Wed Jul 29 00:08:48 2015 +0200 stmmac: fix ptr_ret.cocci warning drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c:304: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 [je: rebase and insert newline before return] Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 2a01bd1bd3d28d1eef26d5509c95d0923f7dc75c Author: Sebastian Ott Date: Tue Jul 28 19:14:51 2015 +0200 s390/pci: use pci_rescan_remove_lock Make sure that we use the pci_rescan_remove_lock when we remove or add functions from/to the bus. Reviewed-by: Gerald Schaefer Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/pci/pci_event.c | 6 ++++-- arch/s390/pci/pci_sysfs.c | 11 +++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) commit 515f022e8b59ce928fe5d82affb3e93ab53d12ed Author: Sebastian Ott Date: Tue Jul 28 19:11:40 2015 +0200 s390/pci: handle events for unused functions Receiving error events for a pci function that's currently not in use will crash the kernel. For example the procedure for FW upgrades might include: * remove the function from Linux * apply FW upgrade * rescan for new functions Receiving an event during the FW upgrade will result in a use after free when printing the functions name. Just print "n/a" in such cases. Reviewed-by: Gerald Schaefer Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/pci/pci_event.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 2b1df72416a858f928c4edcbbb7f13b8dfc10a35 Author: Sebastian Ott Date: Tue Jul 28 19:10:45 2015 +0200 s390/pci: free resources after failed bus allocation Free bus resources when the allocation/registration of the bus failed. Reviewed-by: Gerald Schaefer Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/pci/pci.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 64776820b4ffe9a9f38b9d5bbcbc6ec771509fda Author: Heiko Carstens Date: Fri Jul 17 09:14:00 2015 +0200 s390: remove generic email address from maintainers file The public mailing lists and personal email addresses are sufficient. No need for an extra generic email address. Cc: Christian Borntraeger Acked-by: Cornelia Huck Cc: Martin Schwidefsky Cc: Ursula Braun Cc: Ingo Tuchscherer Cc: Steffen Maier Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky MAINTAINERS | 6 ------ 1 file changed, 6 deletions(-) commit e7f596de1973e9dd9b5dcd7cb00aeb040ab8c13c Author: Heiko Carstens Date: Fri Jul 17 08:05:23 2015 +0200 s390/smp: add missing __init annotation to __smp_store_cpu_state() Section mismatch in reference from the function __smp_store_cpu_state() to the function .init.text:memblock_alloc() The function __smp_store_cpu_state() references the function __init memblock_alloc(). Reviewed-by: Michael Holzheu Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky arch/s390/kernel/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 22362a0e23182d230527a5add690b4027860d7d3 Author: Martin Schwidefsky Date: Wed Jul 8 10:20:04 2015 +0200 s390/sclp: convert early sclp console code to C The 31-bit assembler code for the early sclp console is error prone as git commit fde24b54d976cc123506695c17db01438a11b673 "s390/sclp: clear upper register halves in _sclp_print_early" has shown. Convert the assembler code to C. Signed-off-by: Martin Schwidefsky arch/s390/Makefile | 2 + arch/s390/include/asm/processor.h | 11 ++ arch/s390/include/asm/sclp.h | 2 +- arch/s390/kernel/Makefile | 11 ++ arch/s390/kernel/head.S | 1 + arch/s390/kernel/sclp.S | 355 -------------------------------------- arch/s390/kernel/sclp.c | 160 +++++++++++++++++ 7 files changed, 186 insertions(+), 356 deletions(-) commit 6d85d0e38730c2a55beffe4a9617d89fbd34037c Merge: 8c1a91f 058999c Author: David S. Miller Date: Tue Jul 28 23:55:01 2015 -0700 Merge branch 'dwc_ethernet' Lars Persson says: ==================== dwc_eth_qos: Add support for Synopsys DWC Ethernet QoS This is a driver supporting version 4.10a of the Synopsys DWC Ethernet QoS gigabit ethernet controller. The IP has changed significantly compared to the dwmac1000 so a separate driver is justified. The IP is highly configurable at synthesis time. This driver has been developed for a subset of the total available feature set. Currently it supports: * TSO * Checksum offload for RX and TX. * Energy efficient ethernet. * GMII phy interface. * The statistics module. * Single RX and TX queue. ==================== Signed-off-by: David S. Miller commit 058999cce8f644aa4e806bd281520d5054372947 Author: Lars Persson Date: Tue Jul 28 12:01:50 2015 +0200 dwc_eth_qos: Add maintainer info Add maintainer information for the Synopsys DWC Ethernet QOS driver. Signed-off-by: Lars Persson Signed-off-by: David S. Miller MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) commit 2a050731525b9eb2f5048c6d0904a2e2df1a908b Author: Lars Persson Date: Tue Jul 28 12:01:49 2015 +0200 dwc_eth_qos: Add the synopsys folder to the build system. Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/Kconfig | 1 + drivers/net/ethernet/Makefile | 1 + 2 files changed, 2 insertions(+) commit 077742dac2c7098ebf932ef02637c2a3b1397046 Author: Lars Persson Date: Tue Jul 28 12:01:48 2015 +0200 dwc_eth_qos: Add support for Synopsys DWC Ethernet QoS This patch adds a platform driver for the new generation of the gigabit ethernet IP from Synopsys. It is developed for version 4.10a of the IP core. Signed-off-by: Lars Persson Signed-off-by: David S. Miller drivers/net/ethernet/synopsys/Kconfig | 27 + drivers/net/ethernet/synopsys/Makefile | 5 + drivers/net/ethernet/synopsys/dwc_eth_qos.c | 3019 +++++++++++++++++++++++++++ 3 files changed, 3051 insertions(+) commit 5b8b64843a3b272499d014a1786d072c1174912d Author: Lars Persson Date: Tue Jul 28 12:01:47 2015 +0200 dwc_eth_qos: Add Synopsys DWC Ethernet QoS bindings Add device tree binding documentation for the Synopsys DWC Ethernet QoS driver supporting revision 4.10a of the hardware IP. Signed-off-by: Lars Persson Signed-off-by: David S. Miller .../bindings/net/snps,dwc-qos-ethernet.txt | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) commit 3e07e5baa2af166a6f38a51e14ff036c341a57c7 Author: Azael Avalos Date: Mon Jul 27 19:22:23 2015 -0600 toshiba_acpi: Add set_fan_status function This patch adds a new function named "set_fan_status" to complement its get* counterpart, as well as to avoid code duplication between "fan_proc_write" and "fan_store". Also, both functions (get*, set*) are now checking for TOS_FAILURE, TOS_NOT_SUPPORTED and TOS_SUCCESS (to be on par with the rest of the HCI/SCI functions), printing an error message, returning -ENODEV and zero respectively. The proc and sysfs functions were updated to reflect these changes as well, returning -EIO for proc, and propagating the error value on the sysfs functions. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 66 ++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 26 deletions(-) commit 1b60bab04e03d7ed74826dc20fda9d907d011313 Author: Michael Ellerman Date: Thu Jul 23 20:21:08 2015 +1000 powerpc/kernel: Add SIG_SYS support for compat tasks SIG_SYS was added in commit a0727e8ce513 "signal, x86: add SIGSYS info and make it synchronous." Because we use the asm-generic struct siginfo, we got support for SIG_SYS for free as part of that commit. However there was no compat handling added for powerpc. That means we've been advertising the existence of signfo._sifields._sigsys to compat tasks, but not actually filling in the fields correctly. Luckily it looks like no one has noticed, presumably because the only user of SIGSYS in the kernel is seccomp filter, which we don't support yet. So before we enable seccomp filter, add compat handling for SIGSYS. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/asm/compat.h | 7 +++++++ arch/powerpc/kernel/signal_32.c | 5 +++++ 2 files changed, 12 insertions(+) commit e9fbe6863281b942d7eea44c6ccabc30f46ab44f Author: Michael Ellerman Date: Thu Jul 23 20:21:07 2015 +1000 powerpc: Change syscall_get_nr() to return int The documentation for syscall_get_nr() in asm-generic says: Note this returns int even on 64-bit machines. Only 32 bits of system call number can be meaningful. If the actual arch value is 64 bits, this truncates to 32 bits so 0xffffffff means -1. However our implementation was never updated to reflect this. Generally it's not important, but there is once case where it matters. For seccomp filter with SECCOMP_RET_TRACE, the tracer will set regs->gpr[0] to -1 to reject the syscall. When the task is a compat task, this means we end up with 0xffffffff in r0 because ptrace will zero extend the 32-bit value. If syscall_get_nr() returns an unsigned long, then a 64-bit kernel will see a positive value in r0 and will incorrectly allow the syscall through seccomp. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/asm/syscall.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 1cb9839b73e7f2b006a1cc9452c30f15ff8b1748 Author: Michael Ellerman Date: Thu Jul 23 20:21:06 2015 +1000 powerpc: Use orig_gpr3 in syscall_get_arguments() Currently syscall_get_arguments() is used by syscall tracepoints, and collect_syscall() which is used in some debugging as well as /proc/pid/syscall. The current implementation just copies regs->gpr[3 .. 5] out, which is fine for all the current use cases. When we enable seccomp filter, that will also start using syscall_get_arguments(). However for seccomp filter we want to use r3 as the return value of the syscall, and orig_gpr3 as the first parameter. This will allow seccomp to modify the return value in r3. To support this we need to modify syscall_get_arguments() to return orig_gpr3 instead of r3. This is safe for all uses because orig_gpr3 always contains the r3 value that was passed to the syscall. We store it in the syscall entry path and never modify it. Update syscall_set_arguments() while we're here, even though it's never used. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/asm/syscall.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit a7657844296e796bf33922192743ddeacbcd4d7a Author: Michael Ellerman Date: Thu Jul 23 20:21:05 2015 +1000 powerpc: Rework syscall_get_arguments() so there is only one loop Currently syscall_get_arguments() has two loops, one for compat and one for regular tasks. In prepartion for the next patch, which changes which registers we use, switch it to only have one loop, so we only have one place to update. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/asm/syscall.h | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 1b1a3702a65c1a6511e4c95ecb3770dfdf235bcf Author: Michael Ellerman Date: Thu Jul 23 20:21:04 2015 +1000 powerpc: Don't negate error in syscall_set_return_value() Currently the only caller of syscall_set_return_value() is seccomp filter, which is not enabled on powerpc. This means we have not noticed that our implementation of syscall_set_return_value() negates error, even though the value passed in is already negative. So remove the negation in syscall_set_return_value(), and expect the caller to do it like all other implementations do. Also add a comment about the ccr handling. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/asm/syscall.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 2923e6d503465e97a378d37a588e4e6987009bc7 Author: Michael Ellerman Date: Thu Jul 23 20:21:03 2015 +1000 powerpc: Drop unused syscall_get_error() syscall_get_error() is unused, and never has been. It's also probably wrong, as it negates r3 before returning it, but that depends on what the caller is expecting. It also doesn't deal with compat, and doesn't deal with TIF_NOERROR. Although we could fix those, until it has a caller and it's clear what semantics the caller wants it's just untested code. So drop it. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/asm/syscall.h | 6 ------ 1 file changed, 6 deletions(-) commit d38374142b2560f233961ed3756416c68af6c6cb Author: Michael Ellerman Date: Thu Jul 23 20:21:02 2015 +1000 powerpc/kernel: Change the do_syscall_trace_enter() API The API for calling do_syscall_trace_enter() is currently sensible enough, it just returns the (modified) syscall number. However once we enable seccomp filter it will get more complicated. When seccomp filter runs, the seccomp kernel code (via SECCOMP_RET_ERRNO), or a ptracer (via SECCOMP_RET_TRACE), may reject the syscall and *may* or may *not* set a return value in r3. That means the assembler that calls do_syscall_trace_enter() can not blindly return ENOSYS, it needs to only return ENOSYS if a return value has not already been set. There is no way to implement that logic with the current API. So change the do_syscall_trace_enter() API to make it deal with the return code juggling, and the assembler can then just return whatever return code it is given. Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/kernel/entry_32.S | 4 ++++ arch/powerpc/kernel/entry_64.S | 23 ++++++++++++++------ arch/powerpc/kernel/ptrace.c | 48 ++++++++++++++++++++++++++++++++---------- 3 files changed, 58 insertions(+), 17 deletions(-) commit c3525940cca53cf3568fefd35d169fea4f107f0a Author: Michael Ellerman Date: Thu Jul 23 20:21:01 2015 +1000 powerpc/kernel: Switch to using MAX_ERRNO Currently on powerpc we have our own #define for the highest (negative) errno value, called _LAST_ERRNO. This is defined to be 516, for reasons which are not clear. The generic code, and x86, use MAX_ERRNO, which is defined to be 4095. In particular seccomp uses MAX_ERRNO to restrict the value that a seccomp filter can return. Currently with the mismatch between _LAST_ERRNO and MAX_ERRNO, a seccomp tracer wanting to return 600, expecting it to be seen as an error, would instead find on powerpc that userspace sees a successful syscall with a return value of 600. To avoid this inconsistency, switch powerpc to use MAX_ERRNO. We are somewhat confident that generic syscalls that can return a non-error value above negative MAX_ERRNO have already been updated to use force_successful_syscall_return(). I have also checked all the powerpc specific syscalls, and believe that none of them expect to return a non-error value between -MAX_ERRNO and -516. So this change should be safe ... Acked-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman Reviewed-by: Kees Cook arch/powerpc/include/uapi/asm/errno.h | 2 -- arch/powerpc/kernel/entry_32.S | 3 ++- arch/powerpc/kernel/entry_64.S | 5 +++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit 5461ad99cab98d19f2570c468cdd6c42b6d66795 Merge: 20b8394 ce748ea Author: Dave Chinner Date: Wed Jul 29 11:54:21 2015 +1000 Merge branch 'xfs-meta-uuid' into for-next commit 20b83944361908be78c941e0fb76d508124637ec Merge: df150ed1 1cfc4a9 Author: Dave Chinner Date: Wed Jul 29 11:54:07 2015 +1000 Merge branch 'xfs-misc-fixes-for-4.3' into for-next commit ce748eaa65f2e9392ba82726503c8d994ffd6393 Author: Eric Sandeen Date: Wed Jul 29 11:53:31 2015 +1000 xfs: create new metadata UUID field and incompat flag This adds a new superblock field, sb_meta_uuid. If set, along with a new incompat flag, the code will use that field on a V5 filesystem to compare to metadata UUIDs, which allows us to change the user- visible UUID at will. Userspace handles the setting and clearing of the incompat flag as appropriate, as the UUID gets changed; i.e. setting the user-visible UUID back to the original UUID (as stored in the new field) will remove the incompatible feature flag. If the incompat flag is not set, this copies the user-visible UUID into into the meta_uuid slot in memory when the superblock is read from disk; the meta_uuid field is not written back to disk in this case. The remainder of this patch simply switches verifiers, initializers, etc to use the new sb_meta_uuid field. Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_alloc.c | 4 ++-- fs/xfs/libxfs/xfs_alloc_btree.c | 4 ++-- fs/xfs/libxfs/xfs_attr_leaf.c | 4 ++-- fs/xfs/libxfs/xfs_attr_remote.c | 4 ++-- fs/xfs/libxfs/xfs_bmap_btree.c | 5 +++-- fs/xfs/libxfs/xfs_btree.c | 10 ++++++---- fs/xfs/libxfs/xfs_da_btree.c | 4 ++-- fs/xfs/libxfs/xfs_dir2_block.c | 4 ++-- fs/xfs/libxfs/xfs_dir2_data.c | 4 ++-- fs/xfs/libxfs/xfs_dir2_leaf.c | 4 ++-- fs/xfs/libxfs/xfs_dir2_node.c | 4 ++-- fs/xfs/libxfs/xfs_dquot_buf.c | 4 ++-- fs/xfs/libxfs/xfs_format.h | 22 +++++++++++++++++++--- fs/xfs/libxfs/xfs_ialloc.c | 5 +++-- fs/xfs/libxfs/xfs_ialloc_btree.c | 2 +- fs/xfs/libxfs/xfs_inode_buf.c | 4 ++-- fs/xfs/libxfs/xfs_sb.c | 10 ++++++++++ fs/xfs/libxfs/xfs_symlink_remote.c | 4 ++-- 18 files changed, 66 insertions(+), 36 deletions(-) commit 1cfc4a9cf89d23727c6678170aa5949a676fc566 Author: Dave Chinner Date: Wed Jul 29 11:52:08 2015 +1000 libxfs: add xfs_bit.c The header side of xfs_bit.c is already in libxfs, and the sparse inode code requires the xfs_next_bit() function so pull in the xfs_bit.c file so that a sparse inode enabled libxfs compiles cleanly in userspace. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/Makefile | 2 +- fs/xfs/libxfs/xfs_bit.c | 118 ++++++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_bit.c | 118 ------------------------------------------------ 3 files changed, 119 insertions(+), 119 deletions(-) commit d6077aa339d6580d12bd1089231eea2940383e32 Author: Jan Kara Date: Wed Jul 29 11:52:08 2015 +1000 xfs: Remove duplicate jumps to the same label xfs_create() and xfs_create_tmpfile() have useless jumps to identical labels. Simplify them. Signed-off-by: Jan Kara Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_inode.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit f41febd2eb5bdaa1c5685fe8a9b09276645013bc Author: Joe Perches Date: Wed Jul 29 11:52:04 2015 +1000 xfs: Use consistent logging message prefixes The second and subsequent lines of multi-line logging messages are not prefixed with the same information as the first line. Separate messages with newlines into multiple calls to ensure consistent prefixing and allow easier grep use. Signed-off-by: Joe Perches Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_dir2_node.c | 3 +-- fs/xfs/libxfs/xfs_sb.c | 14 +++++++----- fs/xfs/xfs_buf.c | 5 +++-- fs/xfs/xfs_log.c | 50 +++++++++++++++++++++---------------------- fs/xfs/xfs_log_recover.c | 8 ++++--- 5 files changed, 43 insertions(+), 37 deletions(-) commit 89cebc8477290b152618ffa110bbeae340d50900 Author: Brian Foster Date: Wed Jul 29 11:51:10 2015 +1000 xfs: validate transaction header length on log recovery When log recovery hits a new transaction, it copies the transaction header from the expected location in the log to the in-core structure using the length from the op record header. This length is validated to ensure it doesn't exceed the length of the record, but not against the expected size of a transaction header (and thus the size of the in-core structure). If the on-disk length is corrupted, the associated memcpy() can overflow, write to unrelated memory and lead to crashes. This has been reproduced via filesystem fuzzing. The code currently handles the possibility that the transaction header is split across two op records. Neither instance accounts for corruption where the op record length might be larger than the in-core transaction header. Update both sites to detect such corruption, warn and return an error from log recovery. Also add some comments and assert that if the record is split, the copy of the second portion is less than a full header. Otherwise, this suggests the copy of the second portion could have overwritten bits from the first and thus that something could be wrong. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_recover.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) commit 4703da7b78776140477a023c99683d3be84b7fca Author: Brian Foster Date: Wed Jul 29 11:51:01 2015 +1000 xfs: close xc_cil list_empty() races with cil commit sequence We have seen somewhat rare reports of the following assert from xlog_cil_push_background() failing during ltp tests or somewhat innocuous desktop root fs workloads (e.g., virt operations, initramfs construction): ASSERT(!list_empty(&cil->xc_cil)); The reasoning behind the assert is that the transaction has inserted items to the CIL and hit background push codepath all with cil->xc_ctx_lock held for reading. This locks out background commit from emptying the CIL, which acquires the lock for writing. Therefore, the reasoning is that the items previously inserted in the CIL should still be present. The cil->xc_ctx_lock read lock is not sufficient to protect the xc_cil list, however, due to how CIL insertion is handled. xlog_cil_insert_items() inserts and reorders the dirty transaction items to the tail of the CIL under xc_cil_lock. It uses list_move_tail() to achieve insertion and reordering in the same block of code. This function removes and reinserts an item to the tail of the list. If a transaction commits an item that was already logged and thus already resides in the CIL, and said item is the sole item on the list, the removal and reinsertion creates a temporary state where the list is actually empty. This state is not valid and thus should never be observed by concurrent transaction commit-side checks in the circumstances outlined above. We do not want to acquire the xc_cil_lock in all of these instances as it was previously removed and replaced with a separate push lock for performance reasons. Therefore, close any races with list_empty() on the insertion side by ensuring that the list is never in a transient empty state. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner fs/xfs/xfs_log_cil.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ab7bb61092308e83130b8d15725aee1672991d65 Author: Dave Chinner Date: Wed Jul 29 11:51:01 2015 +1000 xfs: xfs_bunmapi() does not need XFS_BMAPI_METADATA flag xfs_bunmapi() doesn't care what type of extent is being freed and does not look at the XFS_BMAPI_METADATA flag at all. As such we can remove the XFS_BMAPI_METADATA from all callers that use it. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner fs/xfs/libxfs/xfs_attr_remote.c | 5 ++--- fs/xfs/libxfs/xfs_da_btree.c | 4 ++-- fs/xfs/libxfs/xfs_dir2.c | 33 +++++++++++++++------------------ fs/xfs/xfs_symlink.c | 2 +- 4 files changed, 20 insertions(+), 24 deletions(-) commit fd1683c18c372d51aeeeb25efa8b451f922c9c52 Author: Sergei Shtylyov Date: Tue Jul 28 01:29:31 2015 +0300 ARM: shmobile: r8a7794: add PFC DT support Define the generic R8A7794 part of the PFC device node. Based on original patch by Hisashi Nakamura . Signed-off-by: Sergei Shtylyov Acked-by: by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7794.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit e323d56eb06b266b77c2b430cb5f1977ba549e03 Author: Krzysztof Kozlowski Date: Fri Jun 12 10:53:25 2015 +0900 clk: exynos4: Fix wrong clock for Exynos4x12 ADC The TSADC gate clock was used in Exynos4x12 DTSI for exynos-adc driver. However TSADC is present only on Exynos4210 so on Trats2 board (with Exynos4412 SoC) the exynos-adc driver could not be probed: ERROR: could not get clock /adc@126C0000:adc(0) exynos-adc 126c0000.adc: failed getting clock, err = -2 exynos-adc: probe of 126c0000.adc failed with error -2 Instead on Exynos4x12 SoCs the main clock used by Analog to Digital Converter is located in different register and it is named in datasheet as PCLK_ADC. Regardless of the name the purpose of this PCLK_ADC clock is the same as purpose of TSADC from Exynos4210. The patch adds gate clock for Exynos4x12 using the proper register so backward compatibility is preserved. This fixes the probe of exynos-adc driver on Exynos4x12 boards and allows accessing sensors connected to it on Trats2 board (ntc,ncp15wb473 AP and battery thermistors). Signed-off-by: Krzysztof Kozlowski Cc: Fixes: c63c57433003 ("ARM: dts: Add ADC's dt data to read raw data for exynos4x12") Reviewed-by: Javier Martinez Canillas Acked-by: Tomasz Figa Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-exynos4.c | 2 ++ 1 file changed, 2 insertions(+) commit 9943230c8860178a6f6409f0ba19167c0a46a71b Author: Ivan T. Ivanov Date: Thu Jun 4 12:19:06 2015 +0300 arm64: dts: qcom: Add apq8016-sbc board LED's related device nodes APQ8016 SBC board have 6 user controllable LED's. Add following devices: LED1 green LED triggered by system heartbeat. LED2 green LED triggered by access to eMMC device. LED3 green LED triggered by access to SD card. LED4 green LED no trigger assigned. LED5 yellow LED triggered by access to WLAN. LED6 blue LED triggered by access to Bluetooth. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross .../arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 19 ++++++++ arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi | 11 ++--- arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 51 ++++++++++++++++++++++ 3 files changed, 73 insertions(+), 8 deletions(-) commit 8883ad80c175dd17aaf007f982e3f8461315eab8 Author: Ivan T. Ivanov Date: Thu Jun 4 12:19:05 2015 +0300 arm64: dts: qcom: Fix apq8016-sbc board USB related pin definitions USB2513B HUB reset line is connected to PMIC GPIO3 not GPIO1. Fix TC7USB40MU Dual SPDT Switch select input line control, which is connected to PMIC GPIO4 not GPIO2 and disable the pin. It is not used for now. Remove user LEDs definitions, because they clash with above numbers. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross .../arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit c8077068f7725c2429448ceb1ee6d2d3b0081cb9 Author: Ivan T. Ivanov Date: Thu Jun 4 12:19:04 2015 +0300 arm64: dts: qcom: apq8016-sbc: Don't hog client driver pins Hogging pins from pinctrl driver prevents client drivers to probe. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 3 --- arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi | 3 --- 2 files changed, 6 deletions(-) commit 596008653f445b0798fdf980ceacc547f1dfa537 Author: Ivan T. Ivanov Date: Thu Jun 4 12:19:03 2015 +0300 arm64: dts: qcom: Add msm8916 USB configuration nodes Add Host, Device and OTG configuration nodes. Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916.dtsi | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit c4da5a561627da156d7ce322be70e6f342db654d Author: Srinivas Kandagatla Date: Thu Jun 4 12:19:02 2015 +0300 arm64: dts: qcom: Add msm8916 sdhci configuration nodes Add sdhci1 and sdhci2 device configuration nodes. Signed-off-by: Srinivas Kandagatla Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916.dtsi | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) commit a0e5fb10315070a8299bb9d022d21cae490c3b58 Author: Ivan T. Ivanov Date: Thu Jun 4 12:19:01 2015 +0300 arm64: dts: qcom: Add msm8916 BLSP device nodes Add device nodes for SPI1, SPI2, SPI3, I2C4, SPI5, SPI6 and BAM(DMA) engine connected to them. Signed-off-by: Stanimir Varbanov Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916.dtsi | 128 ++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) commit 1b08a582a08c8d5579bc78e1ecfd18948195f159 Author: Ivan T. Ivanov Date: Thu Jun 4 12:19:00 2015 +0300 arm64: dts: qcom: Extend msm8916 pinctrl device coverage Create separate file for MSM8916 pinctrl default/sleep pins state definitions. Move in UART2 states and add SPI, I2C and SDC configurations. Signed-off-by: Stanimir Varbanov Signed-off-by: Srinivas Kandagatla Signed-off-by: Ivan T. Ivanov Signed-off-by: Andy Gross arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 430 +++++++++++++++++++++++++++++ arch/arm64/boot/dts/qcom/msm8916.dtsi | 26 +- 2 files changed, 432 insertions(+), 24 deletions(-) commit 23b38ceb814ca8a2bd92613687f82b70041b9238 Author: Lina Iyer Date: Fri Jul 10 14:18:00 2015 -0600 drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM Enable QCOM_SCM for QCOM power management driver Signed-off-by: Lina Iyer Acked-by: Stephen Boyd Acked-by: Andy Gross Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 4b638df4c9d556a6d947d6dbac364bee37b68b8e Author: Bjorn Andersson Date: Fri Jun 26 14:50:10 2015 -0700 soc: qcom: Add Shared Memory Manager driver The Shared Memory Manager driver implements an interface for allocating and accessing items in the memory area shared among all of the processors in a Qualcomm platform. Signed-off-by: Bjorn Andersson Acked-by: Andy Gross Signed-off-by: Andy Gross drivers/soc/qcom/Kconfig | 8 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/smem.c | 775 ++++++++++++++++++++++++++++++++++++++++++ include/linux/soc/qcom/smem.h | 11 + 4 files changed, 795 insertions(+) commit baff39e6708e099261bac73a46377cffc9257388 Author: Srinivas Kandagatla Date: Tue Jul 28 09:13:05 2015 +0100 ARM: dts: qs600: Add real regulators to sdcc This patch adds real regulators to sdcc nodes. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 2736bbaccbbb4e4e96f2560d0990f25ed531cfe7 Author: Srinivas Kandagatla Date: Tue Jul 28 09:12:58 2015 +0100 ARM: dts: ifc6410: add real regulators for sdcc nodes. This patch adds real regulators for all the three sdcc nodes. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit c37e995807bde0fa20ec8f9a29c01dd29e2eaa74 Author: Srinivas Kandagatla Date: Tue Jul 28 09:12:51 2015 +0100 ARM: dts: apq8064: remove temporary fixed regulator for mmc This patch removes temporary fixed regluator use for mmc. Board files should use the regulators which are wiredup appropriately. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 12 ------------ 1 file changed, 12 deletions(-) commit 923ae471773a6b324815ef3e3c5e787818ae129a Author: zilong.liu Date: Tue Jul 28 15:12:18 2015 -0400 ext4 crypto: remove duplicate header file Remove key.h which is included twice in crypto_fname.c Signed-off-by: zilong.liu Signed-off-by: Theodore Ts'o fs/ext4/crypto_fname.c | 1 - 1 file changed, 1 deletion(-) commit 911af577de4e444622d46500c1f9a37ab4335d3a Author: Eryu Guan Date: Tue Jul 28 15:08:41 2015 -0400 ext4: update c/mtime on truncate up Commit 3da40c7b0898 ("ext4: only call ext4_truncate when size <= isize") introduced a bug that c/mtime is not updated on truncate up. Fix the issue by setting c/mtime explicitly in the truncate up case. Note that ftruncate(2) is not affected, so you won't see this bug using truncate(1) and xfs_io(1). Signed-off-by: Zirong Lang Signed-off-by: Eryu Guan Signed-off-by: Theodore Ts'o fs/ext4/inode.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 00f3ec37d29efed8983a2add67b692ca509ec99b Author: Rob Herring Date: Mon Jul 27 15:55:14 2015 -0500 clk: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Acked-by: Boris Brezillon Cc: Mike Turquette Acked-by: Stephen Boyd Cc: linux-clk@vger.kernel.org Signed-off-by: Stephen Boyd drivers/clk/at91/pmc.c | 1 - 1 file changed, 1 deletion(-) commit d99215ae06be51558b723a3648515e672898ca4b Author: Jun Nie Date: Thu Jul 23 15:02:53 2015 +0800 clk: zx: Constify parent names in clock init data The array of parent names can be made as array of const pointers to const strings. Signed-off-by: Jun Nie Signed-off-by: Stephen Boyd drivers/clk/zte/clk-zx296702.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 105644e59a2b1c43fe2eeba6595d142c390552c2 Author: Jun Nie Date: Thu Jul 23 15:02:52 2015 +0800 clk: zx: Add audio and GPIO clock for zx296702 Add SPDIF/I2S and GPIO clock for zx296702 Signed-off-by: Jun Nie Signed-off-by: Stephen Boyd drivers/clk/zte/clk-zx296702.c | 92 +++++++++++++++++++++++++++++- include/dt-bindings/clock/zx296702-clock.h | 17 +++++- 2 files changed, 105 insertions(+), 4 deletions(-) commit 4599dd2c926915b5e8c27e0ca21a6172f9d6881c Author: Jun Nie Date: Thu Jul 23 15:02:51 2015 +0800 clk: zx: Add audio div clock method for zx296702 Add SPDIF/I2S divider clock method for zx296702 Signed-off-by: Jun Nie Signed-off-by: Stephen Boyd drivers/clk/zte/Makefile | 2 +- drivers/clk/zte/clk-pll.c | 172 -------------------------- drivers/clk/zte/clk.c | 309 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/clk/zte/clk.h | 9 ++ 4 files changed, 319 insertions(+), 173 deletions(-) commit 7764d0cdc3dbf15010f66e0e2e5786f0f03d402a Author: Vaibhav Hiremath Date: Wed Jul 22 15:04:53 2015 +0530 clk: s2mps11: Use kcalloc instead of kzalloc for array allocation This patch cleans up the driver for, - Use devm_kcalloc() variant instead of devm_kzalloc() for array allocation. - clk_prepare()/unprepare(), remove "ret" variable as it is not required - use __exit for cleanup function As I am referring this driver as a reference for my 88pm800 clk driver, applying same changes here as well. Signed-off-by: Vaibhav Hiremath Tested-by: Anand Moon Reviewed-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/clk-s2mps11.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit a57aa18539f8b232065f574f438edb646c6b9d9b Author: Stephen Boyd Date: Fri Jul 24 12:24:48 2015 -0700 clk: Silence warnings about lock imbalances The recursive spinlock implementation trips up sparse and it complains that these functions have lock imbalances. That isn't really true though, so add some __acquires() and __releases() information so that sparse is quiet. drivers/clk/clk.c:116:22: warning: context imbalance in 'clk_enable_lock' - wrong count at exit drivers/clk/clk.c:141:9: warning: context imbalance in 'clk_enable_unlock' - unexpected unlock Signed-off-by: Stephen Boyd drivers/clk/clk.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 661e2180cf050a2f859d466f30d74e990b9345be Author: Stephen Boyd Date: Fri Jul 24 12:21:12 2015 -0700 clk: basic-type: Silence warnings about lock imbalances The basic clock types use conditional locking for the register accessor spinlocks. Add __acquire() and __release() markings in the right locations so that sparse isn't tripped up on the conditional locking. drivers/clk/clk-mux.c:68:12: warning: context imbalance in 'clk_mux_set_parent' - different lock contexts for basic block drivers/clk/clk-divider.c:379:12: warning: context imbalance in 'clk_divider_set_rate' - different lock contexts for basic block drivers/clk/clk-gate.c:71:9: warning: context imbalance in 'clk_gate_endisable' - different lock contexts for basic block drivers/clk/clk-fractional-divider.c:36:9: warning: context imbalance in 'clk_fd_recalc_rate' - different lock contexts for basic block drivers/clk/clk-fractional-divider.c:68:12: warning: context imbalance in 'clk_fd_set_rate' - different lock contexts for basic block Cc: Andy Shevchenko Signed-off-by: Stephen Boyd drivers/clk/clk-divider.c | 4 ++++ drivers/clk/clk-fractional-divider.c | 8 ++++++++ drivers/clk/clk-gate.c | 4 ++++ drivers/clk/clk-mux.c | 4 ++++ 4 files changed, 20 insertions(+) commit 169f05e80522e2848c9089a17976ebf31e735d5c Author: Stephen Boyd Date: Fri Jul 24 11:55:42 2015 -0700 clk: qcom: Give clk-qcom.ko module a GPLv2 license The missing license causes the clk-qcom.ko module to taint the kernel. Add the appropriate license to avoid taint. Signed-off-by: Stephen Boyd drivers/clk/qcom/common.c | 3 +++ 1 file changed, 3 insertions(+) commit 37bff2c159a3629b592e54162239cb8c337c965d Author: Stephen Boyd Date: Fri Jul 24 09:31:29 2015 -0700 clk: gpio: Mark parent_names array const Let's encourage const arrays of parent names like other basic clock types. Cc: Sergej Sawazki Signed-off-by: Stephen Boyd drivers/clk/clk-gpio.c | 13 +++++++------ include/linux/clk-provider.h | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) commit 1db92e54f559ef076d6733b78ec6ce49c577390a Merge: afe76c8f 7c9422e Author: Michael Turquette Date: Fri Jul 24 11:29:53 2015 -0700 Merge branch 'v4.3-topic/clk-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into clk-next commit afe76c8fd030dd6b75fa69f7af7b7eb1e212f248 Author: Jim Quinlan Date: Fri May 15 15:45:47 2015 -0400 clk: allow a clk divider with max divisor when zero This commit allows certain Broadcom STB clock dividers to be used with clk-divider.c. It allows for a clock whose field value is the equal to the divisor, execpt when the field value is zero, in which case the divisor is 2^width. For example, consider a divisor clock with a two bit field: value divisor 0 4 1 1 2 2 3 3 Signed-off-by: Jim Quinlan Signed-off-by: Michael Turquette drivers/clk/clk-divider.c | 16 +++++++++++----- include/linux/clk-provider.h | 4 ++++ 2 files changed, 15 insertions(+), 5 deletions(-) commit 25d4d341d31b349836e1b12d10be34b9b575c12b Author: Andy Shevchenko Date: Mon Jul 13 17:07:43 2015 +0300 clk: socfpga: switch to GENMASK() Convert the code to use GENMASK() helper instead of div_mask() macro. Signed-off-by: Andy Shevchenko Acked-by: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-gate-a10.c | 2 +- drivers/clk/socfpga/clk-gate.c | 2 +- drivers/clk/socfpga/clk-periph-a10.c | 2 +- drivers/clk/socfpga/clk-periph.c | 2 +- drivers/clk/socfpga/clk.h | 1 - 5 files changed, 4 insertions(+), 5 deletions(-) commit 4b5fb7dc9096d949a22651370bb6bf11f21edb30 Author: Robert Jarzmik Date: Sun Jul 12 22:49:53 2015 +0200 clk: pxa: fix core frequency reporting unit Legacy drivers which are not yet ported, such as cpufreq-pxa[23]xx, rely on pxaXXx_get_clk_frequency_khz() to find the CPU core frequency. This reporting was broken because the expected unit is kHz and not Hz. Fix the reporting for pxa25x, pxa27x and pxa3xx. Fixes: fe7710fae477 ("clk: add pxa25x clock drivers") Fixes: d40670dc6169 ("clk: add pxa27x clock drivers") Fixes: 9bbb8a338fb2 ("clk: pxa: add pxa3xx clock driver") Signed-off-by: Robert Jarzmik Signed-off-by: Stephen Boyd drivers/clk/pxa/clk-pxa25x.c | 2 +- drivers/clk/pxa/clk-pxa27x.c | 2 +- drivers/clk/pxa/clk-pxa3xx.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 2bbfe00147a7c075f5c43e657ec218afea662819 Author: Douglas Anderson Date: Tue Jul 21 13:41:23 2015 -0700 clk: rockchip: Fix PLL bandwidth In the TRM we see that BWADJ is "a 12-bit bus that selects the values 1-4096 for the bandwidth divider (NB)": NB = BWADJ[11:0] + 1 The recommended setting of NB: NB = NF / 2. So: NB = NF / 2 BWADJ[11:0] + 1 = NF / 2 BWADJ[11:0] = NF / 2 - 1 Right now, we have: { \ .rate = _rate##U, \ .nr = _nr, \ .nf = _nf, \ .no = _no, \ .bwadj = (_nf >> 1), \ } That means we set bwadj to NF / 2, not NF / 2 - 1 All of this is a bit confusing because we specify "NR" (the 1-based value), "NF" (the 1-based value), "NO" (the 1-based value), but "BWADJ" (the 0-based value) instead of "NB" (the 1-based value). Let's change to working with "NB" and fix the off by one error. This may affect PLL jitter in a small way (hopefully for the better). Signed-off-by: Douglas Anderson Reviewed-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-pll.c | 18 +++++++++--------- drivers/clk/rockchip/clk-rk3188.c | 2 +- drivers/clk/rockchip/clk-rk3288.c | 2 +- drivers/clk/rockchip/clk.h | 8 ++++---- 4 files changed, 15 insertions(+), 15 deletions(-) commit 9cfad9bc472a4bdd5ee7d9e713113a9f5a676704 Merge: 9da9e76 61ae765 Author: Stephen Boyd Date: Tue Jul 21 11:22:42 2015 -0700 Merge branch 'cleanup-clk-h-includes' into clk-next * cleanup-clk-h-includes: (62 commits) clk: Remove clk.h from clk-provider.h clk: h8300: Remove clk.h and clkdev.h includes clk: at91: Include clk.h and slab.h clk: ti: Switch clk-provider.h include to clk.h clk: pistachio: Include clk.h clk: ingenic: Include clk.h clk: si570: Include clk.h clk: moxart: Include clk.h clk: cdce925: Include clk.h clk: Include clk.h in clk.c clk: zynq: Include clk.h clk: ti: Include clk.h clk: sunxi: Include clk.h and remove unused clkdev.h includes clk: st: Include clk.h clk: qcom: Include clk.h clk: highbank: Include clk.h clk: bcm: Include clk.h clk: versatile: Remove clk.h and clkdev.h includes clk: ux500: Remove clk.h and clkdev.h includes clk: tegra: Properly include clk.h ... commit 9da9e761273702b3afd6e3538c23ece95693e586 Author: Dinh Nguyen Date: Mon Jul 6 22:59:06 2015 -0500 clk: ti: make use of of_clk_parent_fill helper function Use of_clk_parent_fill to fill in the parent clock names' array. Signed-off-by: Dinh Nguyen Cc: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/apll.c | 4 +--- drivers/clk/ti/composite.c | 4 +--- drivers/clk/ti/dpll.c | 4 +--- drivers/clk/ti/fapll.c | 3 +-- drivers/clk/ti/mux.c | 4 +--- 5 files changed, 5 insertions(+), 14 deletions(-) commit 8a53fb2bceea00081c4a6af7b477bea8ec00b74b Author: Dinh Nguyen Date: Mon Jul 6 22:59:05 2015 -0500 clk: sunxi: make use of of_clk_parent_fill helper function Use of_clk_parent_fill to fill in the parent clock names' array. Signed-off-by: Dinh Nguyen Acked-by: Maxime Ripard Cc: "Emilio López" Signed-off-by: Stephen Boyd drivers/clk/sunxi/clk-a20-gmac.c | 4 +--- drivers/clk/sunxi/clk-factors.c | 4 +--- drivers/clk/sunxi/clk-sun6i-ar100.c | 4 +--- drivers/clk/sunxi/clk-sunxi.c | 14 ++++---------- 4 files changed, 7 insertions(+), 19 deletions(-) commit 0b4e7f0842fe5c8bd19654999f6c41c4119e7c90 Author: Dinh Nguyen Date: Mon Jul 6 22:59:04 2015 -0500 clk: st: make use of of_clk_parent_fill helper function Use of_clk_parent_fill to fill in the parent clock names' array. Signed-off-by: Dinh Nguyen Tested-by Gabriel Fernandez Cc: Peter Griffin Signed-off-by: Stephen Boyd drivers/clk/st/clk-flexgen.c | 6 ++---- drivers/clk/st/clkgen-mux.c | 7 ++----- 2 files changed, 4 insertions(+), 9 deletions(-) commit 5f23eff7af6bc1d8cc8e17fc12e8d989042236ed Author: Dinh Nguyen Date: Mon Jul 6 22:59:03 2015 -0500 clk: keystone: make use of of_clk_parent_fill helper function Use of_clk_parent_fill to fill in the parent clock names' array. Signed-off-by: Dinh Nguyen Acked-by: Santosh Shilimkar Signed-off-by: Stephen Boyd drivers/clk/keystone/pll.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f0557fbe1303aade362bd578753a1c898a80851c Author: Dinh Nguyen Date: Mon Jul 6 22:59:01 2015 -0500 clk: at91: make use of of_clk_parent_fill helper function Use of_clk_parent_fill to fill in the parent clock names' array. Signed-off-by: Dinh Nguyen Cc: Boris Brezillon Signed-off-by: Stephen Boyd drivers/clk/at91/clk-main.c | 7 +------ drivers/clk/at91/clk-master.c | 7 +------ drivers/clk/at91/clk-programmable.c | 7 +------ drivers/clk/at91/clk-slow.c | 14 ++------------ drivers/clk/at91/clk-smd.c | 7 +------ drivers/clk/at91/clk-usb.c | 7 +------ 6 files changed, 7 insertions(+), 42 deletions(-) commit 75ce0cdb6243d42daca6130e5feb71f536bb136e Author: James Liao Date: Fri Jul 10 16:39:34 2015 +0800 clk: mediatek: Add MT8173 MMPLL change rate support MT8173 MMPLL frequency settings are different from common PLLs. It needs different post divider settings for some ranges of frequency. This patch add support for MT8173 MMPLL frequency setting by adding div-rate table to lookup suitable post divider setting under a specified frequency. Signed-off-by: James Liao Acked-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-mt8173.c | 24 +++++++++++++++++++++--- drivers/clk/mediatek/clk-mtk.h | 6 ++++++ drivers/clk/mediatek/clk-pll.c | 18 +++++++++++++++--- 3 files changed, 42 insertions(+), 6 deletions(-) commit 196de71a9d9e9090406a87362d22b67ae633fa7a Author: James Liao Date: Fri Jul 10 16:39:33 2015 +0800 clk: mediatek: Fix calculation of PLL rate settings Avoid u32 overflow when calculate post divider setting, and increase the max post divider setting from 3 (/8) to 4 (/16). Signed-off-by: James Liao Acked-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-pll.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b3be457e5854e3095cd0be850058c765aaf467ab Author: James Liao Date: Fri Jul 10 16:39:32 2015 +0800 clk: mediatek: Fix PLL registers setting flow Write postdiv and pcw settings at the same time for PLLs if postdiv and pcw settings are on the same register. This is need by PLLs such as MT8173 MMPLL and ARM*PLL. Signed-off-by: James Liao Acked-by: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-pll.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit 9783c0d98501aa146ff467916ab4b8830a655d7c Author: Stephen Boyd Date: Thu Jul 16 12:50:27 2015 -0700 clk: Allow providers to configure min/max rates clk providers are using the consumer APIs to set min/max rates on the clock they're providing. To encourage clk providers to move away from the consumer APIs, add a provider API to set the min/max rate of a clock. The assumption is that this is done before the clock can be requested via clk_get() and that the clock rate is already within the boundaries of the min/max that's configured. Tested-by: Sudeep Holla Signed-off-by: Stephen Boyd drivers/clk/clk.c | 16 ++++++++++++++-- include/linux/clk-provider.h | 2 ++ 2 files changed, 16 insertions(+), 2 deletions(-) commit 5c757456c16ce056a40a120e63235bc00c94ee7f Author: Axel Lin Date: Thu Jul 16 22:15:53 2015 +0800 clk: twl6040: Convert to use devm_clk_register Use devm_clk_register() to simplify the code by removing twl6040_clk_remove(). Signed-off-by: Axel Lin Acked-by: Peter Ujfalusi Signed-off-by: Stephen Boyd drivers/clk/clk-twl6040.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 264e3b75de4eee6e4ee4616bf2b2a3d522cad72a Author: Axel Lin Date: Thu Jul 16 21:59:43 2015 +0800 clk: s2mps11: Simplify s2mps11_clk_probe unwind paths The devm_clk_unregister() in .probe error case is not necessary as it will be automatically called when probe fails. Signed-off-by: Axel Lin Reviewed-by: Krzysztof Kozlowski Signed-off-by: Stephen Boyd drivers/clk/clk-s2mps11.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit 5a1cfafaeab5237523d43cd033e1fb42bf5c1933 Author: Geert Uytterhoeven Date: Tue Jun 23 15:09:27 2015 +0200 clk: shmobile: Remove unneeded #include The CCF implementations for the various shmobile SoCs don't use clkdev functionality, hence drop the inclusion of . Add the missing #include , which was included implicitly through before. Signed-off-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd drivers/clk/shmobile/clk-div6.c | 2 +- drivers/clk/shmobile/clk-r8a73a4.c | 2 +- drivers/clk/shmobile/clk-r8a7740.c | 2 +- drivers/clk/shmobile/clk-r8a7778.c | 2 +- drivers/clk/shmobile/clk-r8a7779.c | 2 +- drivers/clk/shmobile/clk-rcar-gen2.c | 2 +- drivers/clk/shmobile/clk-sh73a0.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) commit 14cc4e9578841a4c0025ce064133b2da53c9d1c9 Author: Stephen Boyd Date: Wed Jul 15 12:58:22 2015 -0700 clk: ti: Force pointer to be __iomem Add __force here so that sparse doesn't complain about us playing tricks with __iomem. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76642eb4cb040b436319e5aa747a5ef026207eef Author: Stephen Boyd Date: Wed Jul 15 12:04:53 2015 -0700 clk: ti: clk-3xxx: Remove unused structures Sparse complains about these structures missing static, but they also don't look to be used. Remove them. drivers/clk/ti/clk-3xxx.c:74:30: warning: symbol 'clkhwops_omap3430es2_ssi_wait' was not declared. Should it be static? drivers/clk/ti/clk-3xxx.c:157:30: warning: symbol 'clkhwops_omap3430es2_hsotgusb_wait' was not declared. Should it be static? Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/clk-3xxx.c | 10 ---------- 1 file changed, 10 deletions(-) commit 3fe6d697420c706b640730dbbae17f48b3aad506 Author: Stephen Boyd Date: Wed Jul 15 12:03:52 2015 -0700 clk: ti: Mark ti_clk_features static This variable isn't exported outside of this file so mark it static. Silences the following sparse warning: drivers/clk/ti/clk.c:36:24: warning: symbol 'ti_clk_features' was not declared. Should it be static? Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f645f72d876586c4950dcd5bf516744db0aeb30b Author: Stephen Boyd Date: Wed Jul 15 11:55:42 2015 -0700 clk: ti: Check kzalloc() for failures smatch reports a failure to check kzalloc() here: drivers/clk/ti/clk.c:232 omap2_clk_provider_init() error: potential null dereference 'io'. (kzalloc returns null) Check for an allocation failure and return -ENOMEM. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/clk.c | 2 ++ 1 file changed, 2 insertions(+) commit 4d341056202a4725777ed99897f6456405819cd4 Merge: e306479 989feaf Author: Stephen Boyd Date: Tue Jul 28 11:58:26 2015 -0700 Merge branch 'for-4.2/ti-clk-move' of https://github.com/t-kristo/linux-pm into clk-next From Tero Kristo: "This pull request contains the TI clock driver set to move the clock implementations under clock driver. Some small portions of the clock driver code still remain under mach-omap2 after this, it should be decided whether this code is now obsolete and should be deleted or should someone try to fix it." Slight merge conflicts with determine_rate prototype changes. commit 841df7df196237ea63233f0f9eaa41db53afd70f Author: Jan Kara Date: Tue Jul 28 14:57:14 2015 -0400 jbd2: avoid infinite loop when destroying aborted journal Commit 6f6a6fda2945 "jbd2: fix ocfs2 corrupt when updating journal superblock fails" changed jbd2_cleanup_journal_tail() to return EIO when the journal is aborted. That makes logic in jbd2_log_do_checkpoint() bail out which is fine, except that jbd2_journal_destroy() expects jbd2_log_do_checkpoint() to always make a progress in cleaning the journal. Without it jbd2_journal_destroy() just loops in an infinite loop. Fix jbd2_journal_destroy() to cleanup journal checkpoint lists of jbd2_log_do_checkpoint() fails with error. Reported-by: Eryu Guan Tested-by: Eryu Guan Fixes: 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/checkpoint.c | 39 +++++++++++++++++++++++++++++++++------ fs/jbd2/commit.c | 2 +- fs/jbd2/journal.c | 11 ++++++++++- include/linux/jbd2.h | 3 ++- 4 files changed, 46 insertions(+), 9 deletions(-) commit e306479ac252928b84cc563c6e790f9b7e7ae427 Author: Axel Lin Date: Sat Jun 20 15:27:03 2015 +0800 clk: h8300: Fix signness bug of_clk_get_parent_count() may return negative error code, so num_parents needs to be int rather than unsigned int. Signed-off-by: Axel Lin Signed-off-by: Stephen Boyd drivers/clk/h8300/clk-div.c | 2 +- drivers/clk/h8300/clk-h8s2678.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit d7a304e9d018c99dda80f4c16ec0fe817b5be4a1 Author: Stephen Boyd Date: Tue Jul 14 16:57:29 2015 -0700 clk: qcom: Set CLK_SET_RATE_PARENT on ce1 clocks The other ce clocks have the flag set, but ce1 doesn't, so clk_set_rate() doesn't propagate up the tree to the ce1_src_clk. Set the flag as this is supported. Reported-by: Bjorn Andersson Tested-by: Bjorn Andersson Fixes: 02824653200b ("clk: qcom: Add APQ8084 Global Clock Controller support") Fixes: d33faa9ead8d ("clk: qcom: Add support for MSM8974's global clock controller (GCC)") Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-apq8084.c | 1 + drivers/clk/qcom/gcc-msm8974.c | 1 + 2 files changed, 2 insertions(+) commit c5e857a46af24a772f445edcc01a861ee2d6a713 Author: Stephen Boyd Date: Tue Jul 14 12:45:19 2015 -0700 clk: gpio: Unlock mutex on error path We don't unlock the mutex if we fail to allocate the parent names array. Unlock it and return an error in this case as well. Reported-by: kbuild test robot Acked-by: Julia Lawall Cc: Sergej Sawazki Signed-off-by: Stephen Boyd drivers/clk/clk-gpio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 006cb8b66e18ce7aff934883f6c50e3b85052681 Author: Stephen Boyd Date: Mon Jul 13 17:06:53 2015 -0700 clk: h8300: Use standard Linux I/O accessors There doesn't seem to be any reason why we can't use the standard readb()/writeb() accessors here because ctrl_inb() and ctrl_outb() match the generic implementation of readb() and writeb() that the h8300 architecture uses. This allows us to test compile this driver on other architectures besides h8300. Cc: Yoshinori Sato Signed-off-by: Stephen Boyd drivers/clk/h8300/clk-h8s2678.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9298f0267c7ed620f8d8261ded8518ebf8e89f9e Author: Stephen Boyd Date: Mon Jul 13 16:54:04 2015 -0700 clk: h8300: Drop allocation printk and cleanup sizeof style We don't need to print an error on allocation failures, drop it. While we're here, change the sizeof() to be sizeof(*) to make code more future proof. Cc: Yoshinori Sato Signed-off-by: Stephen Boyd drivers/clk/h8300/clk-h8s2678.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 19aab273083fa10c2262b8c8e3315bacb054d75d Merge: 86665d2 57d866e Author: Stephen Boyd Date: Tue Jul 28 11:51:30 2015 -0700 Merge branch 'clk-determine-rate-struct' into clk-next * clk-determine-rate-struct: clk: fix some determine_rate implementations clk: change clk_ops' ->determine_rate() prototype commit 2eb084eb1f6eba53e657502c519b52e640e38cde Merge: 0c21bcb cd871d5 Author: Olof Johansson Date: Tue Jul 28 18:26:14 2015 +0200 Merge tag 'socfpga_updates_for_v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/soc SoCFPGA updates for v4.3 - Add smp.ops.cpu_kill() for kexec - Add reboot capability for Arria10 * tag 'socfpga_updates_for_v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: add reset for the Arria 10 platform ARM: socfpga: add smp_ops.cpu_kill to make kexec/kdump available Signed-off-by: Olof Johansson commit 46a51abbda4ed0d09cc1ea6937f31e322a88c517 Merge: 55e3cfc5 2e4c758 Author: Olof Johansson Date: Tue Jul 28 18:25:39 2015 +0200 Merge tag 'socfpga_dts_for_v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt SoCFPGA DTS updates for v4.3 - Update clocking for DTS nodes - Add DTS board file for Terasic DE0 Atlas board - Use stdout-patch for chosen node - Enable prefetch-data and prefetch-instr * tag 'socfpga_dts_for_v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga: dts: add osc1 as a possible parent for dbg_base_clk ARM: socfpga: dts: add missing clock gates to socfpga.dtsi ARM: socfpga: dts: Fix gpio dts entry for the correct clock ARM: socfpga: dts: Correct the parent clock for l3_sp_clk and dbg_clk ARM: dts: socfpga: Add support of Terasic DE0 Atlas board ARM: dts: socfpga: use stdout-path for chosen node ARM: dts: socfpga: enable the data and instruction prefetch for the l2 cache Signed-off-by: Olof Johansson commit 0c21bcb616a499c69d3f0f719bac8491e8326630 Merge: a3ff83d 3e0452d Author: Olof Johansson Date: Tue Jul 28 18:17:31 2015 +0200 Merge tag 'v4.2-next-soc' of https://github.com/mbgg/linux-mediatek into next/soc - ARM: mediatek: Add regmap to mediatek Kconfig - soc: mediatek: Drop owner assignment from platform_driver - soc: Mediatek: Add SCPSYS power domain driver - dt-bindings: soc: Add documentation for the MediaTek SCPSYS unit - soc: mediatek: Add infracfg misc driver support * tag 'v4.2-next-soc' of https://github.com/mbgg/linux-mediatek: ARM: mediatek: Add regmap to mediatek Kconfig soc: mediatek: Drop owner assignment from platform_driver soc: Mediatek: Add SCPSYS power domain driver dt-bindings: soc: Add documentation for the MediaTek SCPSYS unit soc: mediatek: Add infracfg misc driver support Signed-off-by: Olof Johansson commit 55e3cfc5f9a7303d78026bcf4bdfb1788b669ea0 Merge: 6223723 7d4938c Author: Olof Johansson Date: Tue Jul 28 18:16:36 2015 +0200 Merge tag 'v4.2-next-dts' of https://github.com/mbgg/linux-mediatek into next/dt - ARM: dts: mediatek: add mt6580 basic support - Document: DT: Add bindings for mediatek MT6580 SoC Platform - ARM: dts: mediatek mt8135: Use real UART clocks - ARM: dts: mt8135-evbp1: Add PMIC support - ARM: dts: mt8135: Add pmic wrapper nodes - ARM: dts: mediatek: Enable clock support for Mediatek MT8135. * tag 'v4.2-next-dts' of https://github.com/mbgg/linux-mediatek: ARM: dts: mediatek: add mt6580 basic support Document: DT: Add bindings for mediatek MT6580 SoC Platform ARM: dts: mediatek mt8135: Use real UART clocks ARM: dts: mt8135-evbp1: Add PMIC support ARM: dts: mt8135: Add pmic wrapper nodes ARM: dts: mediatek: Enable clock support for Mediatek MT8135. Signed-off-by: Olof Johansson commit af429d9ebf70916269bd5ad3e2bd2485fb0f39e6 Merge: 6a37749 e269452 Author: Olof Johansson Date: Tue Jul 28 18:16:13 2015 +0200 Merge tag 'v4.2-next-arm64' of https://github.com/mbgg/linux-mediatek into next/arm64 - arm64: dts: mediatek: add mt6795 support - Document: DT: Add bindings for mediatek MT6795 SoC Platform - arm64: dts: mediatek: Add MT8173 MMC dts - arm64: dts: mt8173: Add afe device node - arm64: dts: mt8173-evb: Add PMIC support - dts: mt8173-evb: Add da9211 to i2c1 - ARM: dts: mt8173: support arm64 cpuidle-dt - ARM64: MediaTek MT8173: Add SCPSYS device node - arm64: dts: mt8173: Add I2C device node - arm64: dts: mt8173: Add watchdog device node - arm64: dts: mt8173: Add PMIC wrapper device node - arm64: dts: mt8173: Use real clock for UARTs - arm64: dts: mt8173: Add clock controller device nodes * tag 'v4.2-next-arm64' of https://github.com/mbgg/linux-mediatek: arm64: dts: mediatek: add mt6795 support Document: DT: Add bindings for mediatek MT6795 SoC Platform arm64: dts: mediatek: Add MT8173 MMC dts arm64: dts: mt8173: Add afe device node arm64: dts: mt8173-evb: Add PMIC support dts: mt8173-evb: Add da9211 to i2c1 ARM: dts: mt8173: support arm64 cpuidle-dt ARM64: MediaTek MT8173: Add SCPSYS device node arm64: dts: mt8173: Add I2C device node arm64: dts: mt8173: Add watchdog device node arm64: dts: mt8173: Add PMIC wrapper device node arm64: dts: mt8173: Use real clock for UARTs arm64: dts: mt8173: Add clock controller device nodes Signed-off-by: Olof Johansson commit 227942809b52f23cda414858b635c0285f11de00 Author: Shilpasri G Bhat Date: Thu Jul 16 13:34:23 2015 +0530 cpufreq: powernv: Restore cpu frequency to policy->cur on unthrottling If frequency is throttled due to OCC reset then cpus will be in Psafe frequency, so restore the frequency on all cpus to policy->cur when OCCs are active again. And if frequency is throttled due to Pmax capping then restore the frequency of all the cpus in the chip on unthrottling. Signed-off-by: Shilpasri G Bhat Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/powernv-cpufreq.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) commit 3dd3ebe5bb3837aeac28a23f8f22b97cb84abab6 Author: Shilpasri G Bhat Date: Thu Jul 16 13:34:22 2015 +0530 cpufreq: powernv: Report Psafe only if PMSR.psafe_mode_active bit is set On a reset cycle of OCC, although the system retires from safe frequency state the local pstate is not restored to Pmin or last requested pstate. Now if the cpufreq governor initiates a pstate change, the local pstate will be in Psafe and we will be reporting a false positive when we are not throttled. So in powernv_cpufreq_throttle_check() remove the condition which checks if local pstate is less than Pmin while checking for Psafe frequency. If the cpus are forced to Psafe then PMSR.psafe_mode_active bit will be set. So, when OCCs become active this bit will be cleared. Let us just rely on this bit for reporting throttling. Signed-off-by: Shilpasri G Bhat Reviewed-by: Preeti U Murthy Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/powernv-cpufreq.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 735366fc407755626058218fc8d0430735a669ac Author: Shilpasri G Bhat Date: Thu Jul 16 13:34:21 2015 +0530 cpufreq: powernv: Call throttle_check() on receiving OCC_THROTTLE Re-evaluate the chip's throttled state on recieving OCC_THROTTLE notification by executing *throttle_check() on any one of the cpu on the chip. This is a sanity check to verify if we were indeed throttled/unthrottled after receiving OCC_THROTTLE notification. We cannot call *throttle_check() directly from the notification handler because we could be handling chip1's notification in chip2. So initiate an smp_call to execute *throttle_check(). We are irq-disabled in the notification handler, so use a worker thread to smp_call throttle_check() on any of the cpu in the chipmask. Signed-off-by: Shilpasri G Bhat Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/powernv-cpufreq.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) commit cb166fa937a2fbc14badcafca86202354c34a213 Author: Shilpasri G Bhat Date: Thu Jul 16 13:34:20 2015 +0530 cpufreq: powernv: Register for OCC related opal_message notification OCC is an On-Chip-Controller which takes care of power and thermal safety of the chip. During runtime due to power failure or overtemperature the OCC may throttle the frequencies of the CPUs to remain within the power budget. We want the cpufreq driver to be aware of such situations to be able to report the reason to the user. We register to opal_message_notifier to receive OCC messages from opal. powernv_cpufreq_throttle_check() reports any frequency throttling and this patch will report the reason or event that caused throttling. We can be throttled if OCC is reset or OCC limits Pmax due to power or thermal reasons. We are also notified of unthrottling after an OCC reset or if OCC restores Pmax on the chip. Signed-off-by: Shilpasri G Bhat Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/powernv-cpufreq.c | 74 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) commit 196ba2d514a13f6af1b3d78de71ce74ed2fc8bdc Author: Shilpasri G Bhat Date: Thu Jul 16 13:34:19 2015 +0530 powerpc/powernv: Add definition of OPAL_MSG_OCC message type Add OPAL_MSG_OCC message definition to opal_message_type to receive OCC events like reset, load and throttled. Host performance can be affected when OCC is reset or OCC throttles the max Pstate. We can register to opal_message_notifier to receive OPAL_MSG_OCC type of message and report it to the userspace so as to keep the user informed about the reason for a performance drop in workloads. The reset and load OCC events are notified to kernel when FSP sends OCC_RESET and OCC_LOAD commands. Both reset and load messages are sent to kernel on successful completion of reset and load operation respectively. The throttle OCC event indicates that the Pmax of the chip is reduced. The chip_id and throttle reason for reducing Pmax is also queued along with the message. Signed-off-by: Shilpasri G Bhat Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki arch/powerpc/include/asm/opal-api.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 053819e0bf8407746cc5febf7a4947bee50377b4 Author: Shilpasri G Bhat Date: Thu Jul 16 13:34:18 2015 +0530 cpufreq: powernv: Handle throttling due to Pmax capping at chip level The On-Chip-Controller(OCC) can throttle cpu frequency by reducing the max allowed frequency for that chip if the chip exceeds its power or temperature limits. As Pmax capping is a chip level condition report this throttling behavior at chip level and also do not set the global 'throttled' on Pmax capping instead set the per-chip throttled variable. Report unthrottling if Pmax is restored after throttling. This patch adds a structure to store chip id and throttled state of the chip. Signed-off-by: Shilpasri G Bhat Reviewed-by: Preeti U Murthy Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/powernv-cpufreq.c | 59 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) commit a34e63b14486e98cf78c99bf8ef141de7508dbc2 Author: Rafael J. Wysocki Date: Mon Jul 27 23:11:50 2015 +0200 cpufreq: Pass CPU number to cpufreq_policy_alloc() Change cpufreq_policy_alloc() to take a CPU number instead of a CPU device pointer as its argument, as it is the only function called by cpufreq_add_dev() taking a device pointer argument at this point. That will allow us to split the CPU online part from cpufreq_add_dev() more cleanly going forward. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 4d1f3a5bcb489cc6f7cbc128e0c292fed7868d32 Author: Rafael J. Wysocki Date: Mon Jul 27 23:11:44 2015 +0200 cpufreq: Do not update related_cpus on every policy activation The related_cpus mask includes CPUs whose cpufreq_cpu_data per-CPU pointers have been set the the given policy. Since those pointers are only set at the policy creation time and unset when the policy is deleted, the related_cpus should not be updated between those two operations. For this reason, avoid updating it whenever the first of the "related" CPUs goes online. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d9612a495b0bc93f5db0e0033fe4ee7abb7167c7 Author: Rafael J. Wysocki Date: Mon Jul 27 23:11:37 2015 +0200 cpufreq: Drop unused dev argument from two functions The dev argument of cpufreq_add_policy_cpu() and cpufreq_add_dev_interface() is not used by any of them, so drop it. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit d4d854d6c7706e6a5cda297e350e3626d55e9bc9 Author: Rafael J. Wysocki Date: Mon Jul 27 23:11:30 2015 +0200 cpufreq: Drop unnecessary label from cpufreq_add_dev() The leftover out_release_rwsem label in cpufreq_add_dev() is not necessary any more and confusing, so drop it. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 11ce707e6c2aea05e1f54680fb89a8a44ded5db4 Author: Rafael J. Wysocki Date: Mon Jul 27 23:11:21 2015 +0200 cpufreq: Drop cpufreq_policy_restore() Notice that when cpufreq_policy_restore() is called, its per-CPU cpufreq_cpu_data variable has been already dereferenced and if that variable is not NULL, the policy local pointer in cpufreq_add_dev() contains its value. Therefore it is not necessary to dereference it again and the policy pointer can be used directly. Moreover, if that pointer is not NULL, the policy is inactive (or the previous check would have made us return from cpufreq_add_dev()) so the restoration code from cpufreq_policy_restore() can be moved to that point in cpufreq_add_dev(). Do that and drop cpufreq_policy_restore(). Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) commit 15c0b4d222f83672407419f9c9e167e996d8ad2b Author: Rafael J. Wysocki Date: Mon Jul 27 23:11:09 2015 +0200 cpufreq: Rework two functions related to CPU offline Since __cpufreq_remove_dev_prepare() and __cpufreq_remove_dev_finish() are about CPU offline rather than about CPU removal, rename them to cpufreq_offline_prepare() and cpufreq_offline_finish(), respectively. Also change their argument from a struct device pointer to a CPU number, because they use the CPU number only internally anyway and make them void as their return values are ignored. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/cpufreq.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) commit c6e53c69ef463ba2749ba9ee9b3d9d7f97dab94a Merge: 559ed40 454d3a2 Author: Rafael J. Wysocki Date: Tue Jul 28 17:21:32 2015 +0200 Merge back earlier cpufreq material for v4.3. commit 766ffb69803943c2b580a44ac14a189b875d21f6 Author: Will Deacon Date: Tue Jul 28 16:14:03 2015 +0100 arm64: pgtable: fix definition of pte_valid pte_valid should check if the PTE_VALID bit (1 << 0) is set in the pte, so fix the macro definition to use bitwise & instead of logical &&. Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed425dcf6afa2b206f6da7d7ec6a62501172b5c0 Author: Michal Suchanek Date: Fri Jul 24 17:36:49 2015 +0200 spi: s3c64xx: print fifo size on probe. Printing the FIFO depth does not add much noise in the log and can be useful for debugging transfer issues. Signed-off-by: Michal Suchanek Signed-off-by: Mark Brown drivers/spi/spi-s3c64xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 15bbdec3931e617231c12b0920e497e87ec8c2c6 Author: Sakari Ailus Date: Mon Jul 13 14:31:30 2015 +0300 iommu: Make the iova library a module The iova library has use outside the intel-iommu driver, thus make it a module. Signed-off-by: Sakari Ailus Signed-off-by: David Woodhouse drivers/iommu/Kconfig | 2 +- drivers/iommu/iova.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 9b41760b03816b34f4c9eee2cbb8fda8439920fc Author: Sakari Ailus Date: Mon Jul 13 14:31:29 2015 +0300 iommu: iova: Export symbols Use EXPORT_SYMBOL_GPL() to export the iova library symbols. The symbols include: init_iova_domain(); iova_cache_get(); iova_cache_put(); iova_cache_init(); alloc_iova(); find_iova(); __free_iova(); free_iova(); put_iova_domain(); reserve_iova(); copy_reserved_iova(); Signed-off-by: Sakari Ailus Signed-off-by: David Woodhouse drivers/iommu/iova.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ae1ff3d623905947158fd3394854c23026337810 Author: Sakari Ailus Date: Mon Jul 13 14:31:28 2015 +0300 iommu: iova: Move iova cache management to the iova library This is necessary to separate intel-iommu from the iova library. Signed-off-by: Sakari Ailus Signed-off-by: David Woodhouse drivers/iommu/intel-iommu.c | 6 ++-- drivers/iommu/iova.c | 83 ++++++++++++++++++++++++++------------------- include/linux/iova.h | 4 +-- 3 files changed, 54 insertions(+), 39 deletions(-) commit 8f6429c7cb59f28433253575cc8e3262eed63592 Author: Robin Murphy Date: Thu Jul 16 19:40:12 2015 +0100 iommu/iova: Avoid over-allocating when size-aligned Currently, allocating a size-aligned IOVA region quietly adjusts the actual allocation size in the process, returning a rounded-up power-of-two-sized allocation. This results in mismatched behaviour in the IOMMU driver if the original size was not a power of two, where the original size is mapped, but the rounded-up IOVA size is unmapped. Whilst some IOMMUs will happily unmap already-unmapped pages, others consider this an error, so fix it by computing the necessary alignment padding without altering the actual allocation size. Also clean up by making pad_size unsigned, since its callers always pass unsigned values and negative padding makes little sense here anyway. Signed-off-by: Robin Murphy Signed-off-by: David Woodhouse drivers/iommu/intel-iommu.c | 2 ++ drivers/iommu/iova.c | 23 ++++++----------------- 2 files changed, 8 insertions(+), 17 deletions(-) commit 6c24695988774d56ea8d6a47ffdaf0fd32072488 Author: Chris Wilson Date: Mon Jul 27 10:26:26 2015 +0100 drm/i915: Keep the mm.bound_list in rough LRU order When we shrink our working sets, we want to avoid stealing pages from objects that likely to be reused in the near future. We first look at inactive objects before processing active objects - but what about a recently active object that is about to be used again. That object's position in the bound_list is ordered by the time of binding, not the time of last use, so the most recently used inactive object could well be at the head of the shrink list. To compensate, give the object a bump to MRU when it becomes inactive (thus transitioning to the end of the first pass in shrink lists). Conversely, bumping on inactive makes bumping on active useless, since when we do have to reap from the active working set, everything is going to become inactive very quickly and the order pretty much random - just hope for the best at that point, as once we start stalling on active objects, we can hope that the rebinding neatly orders vital objects. Suggested-by: Daniel Vetter Signed-off-by: Chris Wilson Cc: Daniel Vetter [danvet: Resolve merge conflict.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 7 +++++++ 1 file changed, 7 insertions(+) commit c1d7cd228b4b46eca1dbd9bb2c6053f477a1a6ff Author: Will Deacon Date: Tue Jul 28 14:48:00 2015 +0100 arm64: spinlock: fix ll/sc unlock on big-endian systems When unlocking a spinlock, we perform a read-modify-write on the owner ticket in order to increment it and store it back with release semantics. In the LL/SC case, we load the 16-bit ticket using a 32-bit load and therefore store back the wrong halfword on a big-endian system, corrupting the lock after the first unlock and killing the system dead. This patch fixes the unlock code to use 16-bit accessors consistently. Signed-off-by: Will Deacon arch/arm64/include/asm/spinlock.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21abb1ec414c75abe32c3854848ff30e2b4a6113 Author: Casey Schaufler Date: Wed Jul 22 14:25:31 2015 -0700 Smack: IPv6 host labeling IPv6 appears to be (finally) coming of age with the influx of autonomous devices. In support of this, add the ability to associate a Smack label with IPv6 addresses. This patch also cleans up some of the conditional compilation associated with the introduction of secmark processing. It's now more obvious which bit of code goes with which feature. Signed-off-by: Casey Schaufler Documentation/security/Smack.txt | 27 ++- security/smack/smack.h | 48 ++++- security/smack/smack_lsm.c | 262 +++++++++++++++++------- security/smack/smackfs.c | 428 ++++++++++++++++++++++++++++++++------- 4 files changed, 604 insertions(+), 161 deletions(-) commit b03e081672d9ccbff8185dd655a7bbba24223b4a Author: Maxime Ripard Date: Wed Jun 17 11:44:24 2015 +0200 ARM: sunxi: dt: Convert users to the PIO interrupts binding The current DTs were setting the cell size to 2, but used the default xlate function that was assuming an interrupt cell size of 1, leading to the second part of the cell (the flags) being ignored, while we were having an inconsistent binding between the interrupts and gpio (that could also be used as interrupts). That "binding" doesn't work either with newer SoCs that have multiple irq banks. Now that we fixed the pinctrl driver to handle this like it should always have been handled, convert the DT users, and while we're at it, remove the size-cells property of PIO that is completely useless. Signed-off-by: Maxime Ripard Reviewed-by: Hans de Goede Acked-by: Linus Walleij arch/arm/boot/dts/sun4i-a10.dtsi | 3 +-- arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 2 +- arch/arm/boot/dts/sun5i.dtsi | 3 +-- arch/arm/boot/dts/sun6i-a31.dtsi | 3 +-- arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 2 +- arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts | 2 +- arch/arm/boot/dts/sun7i-a20.dtsi | 3 +-- arch/arm/boot/dts/sun8i-a23-a33.dtsi | 3 +-- 8 files changed, 8 insertions(+), 13 deletions(-) commit 505936131ea71ec998344355f7e5e8af8d6b15dc Author: Alexander Stein Date: Tue Jul 21 15:54:30 2015 +0200 gpio: mpc8xxx: Convert mpc8xxx_gpio_chip.lock to raw_spinlock mpc8xxx_gpio_chip.lock needs to be a real spinlock in preempt-rt. Especially the interrupt related functions can not be converted to a sleeping lock. Signed-off-by: Alexander Stein Acked-by: Uwe Kleine-König Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) commit 48356aa79ccb3df36f654d8f622256052bb2bb65 Author: Wei Chen Date: Mon Jul 27 11:57:25 2015 +0000 pinctrl: sirf: add power management support for atlas7 We had not implemented the pm interface of atlas7 pinctrl and gpio drivers. So when system resumes from sleep, all pin configuration and gpio status will be lost. Now, we implement these interfaces to support pm. At the same time, this patch also drops a lot of if-else by look-up table for getting and setting pull. Signed-off-by: Wei Chen Signed-off-by: Barry Song Signed-off-by: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 392 ++++++++++++++++++++++++++++------ 1 file changed, 325 insertions(+), 67 deletions(-) commit e8d36d5dbb6a6ec4f5222f8775d664ec29d5527d Author: Rob Herring Date: Mon Jul 27 15:55:13 2015 -0500 ARM: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: Russell King Cc: Sekhar Nori Cc: Kevin Hilman Cc: Jason Cooper Cc: Andrew Lunn Cc: Sebastian Hesselbarth Cc: Gregory Clement Acked-by: Hans Ulli Kroll Acked-by: Shawn Guo Cc: Sascha Hauer Cc: Imre Kaloz Acked-by: Krzysztof Halasa Cc: Greg Ungerer Cc: Roland Stigge Cc: Tony Lindgren Cc: Daniel Mack Cc: Haojian Zhuang Cc: Robert Jarzmik Cc: Simtec Linux Team Cc: Kukjin Kim Cc: Krzysztof Kozlowski Acked-by: Wan ZongShun Cc: linux-arm-kernel@lists.infradead.org Cc: linux-omap@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Tested-by: Kevin Hilman Signed-off-by: Olof Johansson arch/arm/common/it8152.c | 2 +- arch/arm/common/locomo.c | 2 +- arch/arm/common/sa1111.c | 4 ++-- arch/arm/mach-davinci/cp_intc.c | 2 +- arch/arm/mach-dove/irq.c | 2 +- arch/arm/mach-ebsa110/core.c | 2 +- arch/arm/mach-footbridge/common.c | 2 +- arch/arm/mach-footbridge/isa-irq.c | 8 ++++---- arch/arm/mach-gemini/gpio.c | 2 +- arch/arm/mach-gemini/irq.c | 2 +- arch/arm/mach-imx/3ds_debugboard.c | 2 +- arch/arm/mach-imx/mach-mx31ads.c | 2 +- arch/arm/mach-iop13xx/irq.c | 2 +- arch/arm/mach-iop32x/irq.c | 2 +- arch/arm/mach-iop33x/irq.c | 2 +- arch/arm/mach-ixp4xx/common.c | 2 +- arch/arm/mach-ks8695/irq.c | 2 +- arch/arm/mach-lpc32xx/irq.c | 2 +- arch/arm/mach-netx/generic.c | 2 +- arch/arm/mach-omap1/fpga.c | 2 +- arch/arm/mach-omap1/irq.c | 2 +- arch/arm/mach-pxa/balloon3.c | 2 +- arch/arm/mach-pxa/irq.c | 1 - arch/arm/mach-pxa/lpd270.c | 2 +- arch/arm/mach-pxa/pcm990-baseboard.c | 2 +- arch/arm/mach-pxa/pxa3xx.c | 2 +- arch/arm/mach-pxa/viper.c | 2 +- arch/arm/mach-pxa/zeus.c | 2 +- arch/arm/mach-rpc/ecard.c | 2 +- arch/arm/mach-rpc/irq.c | 16 ++++++++-------- arch/arm/mach-s3c24xx/bast-irq.c | 2 +- arch/arm/mach-s3c64xx/common.c | 2 +- arch/arm/mach-sa1100/neponset.c | 4 ++-- arch/arm/mach-w90x900/irq.c | 2 +- drivers/irqchip/irq-sa11x0.c | 1 - 35 files changed, 45 insertions(+), 47 deletions(-) commit 1051fade4b1fac0de19478b33383b25bd1d24d10 Author: Linus Walleij Date: Sat Jul 25 11:23:12 2015 +0200 pinctrl: nomadik: split stn8815 UART0 pin groups Split the UART pin groups so we can activate RX/TX, CTS/RTS and the modem pins (DCD, DSR, RI, DTR) as three different groups with function u0. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik-stn8815.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) commit 28355f81969962cf01aef5b13d7de5b4ab0c5f13 Author: Tomeu Vizoso Date: Tue Jul 14 10:29:54 2015 +0200 gpio: defer probe if pinctrl cannot be found When an OF node has a pin range for its GPIOs, return -EPROBE_DEFER if the pin controller isn't available. Otherwise, the GPIO range wouldn't be set at all unless the pin controller probed always before the GPIO chip. With this change, the probe of the GPIO chip will be deferred and will be retried at a later point, hopefully once the pin controller has been registered and probed already. Signed-off-by: Tomeu Vizoso Signed-off-by: Linus Walleij drivers/gpio/gpiolib-of.c | 27 ++++++++++++++++++--------- drivers/gpio/gpiolib.c | 5 ++++- include/linux/of_gpio.h | 4 ++-- 3 files changed, 24 insertions(+), 12 deletions(-) commit 19c233b79d1af7b5af1ec68c1172848648184449 Author: Nicolas Pitre Date: Mon Jul 27 18:27:52 2015 -0400 ARM: appropriate __init annotation for const data Init data marked const should be annotated with __initconst for correctness and not __initdata. In some cases the array gathering references to that data has to be marked const as well. This fixes LTO builds that otherwise fail with section mismatch errors. Signed-off-by: Nicolas Pitre Signed-off-by: Olof Johansson arch/arm/kernel/psci.c | 2 +- arch/arm/mach-at91/at91rm9200.c | 2 +- arch/arm/mach-at91/at91sam9.c | 6 +++--- arch/arm/mach-at91/pm.c | 2 +- arch/arm/mach-at91/sama5.c | 4 ++-- arch/arm/mach-bcm/bcm_5301x.c | 2 +- arch/arm/mach-bcm/bcm_kona_smc.c | 2 +- arch/arm/mach-clps711x/board-autcpu12.c | 2 +- arch/arm/mach-cns3xxx/core.c | 4 ++-- arch/arm/mach-davinci/da850.c | 4 ++-- arch/arm/mach-davinci/da8xx-dt.c | 4 ++-- arch/arm/mach-digicolor/digicolor.c | 2 +- arch/arm/mach-imx/mach-imx7d.c | 2 +- arch/arm/mach-lpc32xx/phy3250.c | 4 ++-- arch/arm/mach-mmp/mmp-dt.c | 4 ++-- arch/arm/mach-mmp/mmp2-dt.c | 2 +- arch/arm/mach-mxs/mach-mxs.c | 4 ++-- arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-omap2/vc.c | 2 +- arch/arm/mach-omap2/voltagedomains3xxx_data.c | 2 +- arch/arm/mach-omap2/voltagedomains44xx_data.c | 2 +- arch/arm/mach-omap2/voltagedomains54xx_data.c | 2 +- arch/arm/mach-pxa/pxa-dt.c | 4 ++-- arch/arm/mach-realview/realview-dt.c | 2 +- arch/arm/mach-s3c24xx/mach-s3c2416-dt.c | 2 +- arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c | 2 +- arch/arm/mach-shmobile/board-bockw-reference.c | 2 +- arch/arm/mach-shmobile/board-bockw.c | 2 +- arch/arm/mach-shmobile/board-marzen-reference.c | 2 +- arch/arm/mach-shmobile/board-marzen.c | 2 +- arch/arm/mach-shmobile/setup-r7s72100.c | 2 +- arch/arm/mach-shmobile/setup-r8a73a4.c | 2 +- arch/arm/mach-shmobile/setup-r8a7740.c | 2 +- arch/arm/mach-shmobile/setup-r8a7778.c | 2 +- arch/arm/mach-shmobile/setup-r8a7779.c | 2 +- arch/arm/mach-shmobile/setup-r8a7791.c | 2 +- arch/arm/mach-shmobile/setup-sh73a0.c | 2 +- arch/arm/mach-spear/time.c | 2 +- arch/arm/mach-sti/board-dt.c | 2 +- arch/arm/mach-zx/zx296702.c | 2 +- 40 files changed, 50 insertions(+), 50 deletions(-) commit 3b9a02e844948fc14cb32a06bc00e0e61bde3577 Author: Daniel Vetter Date: Mon Jul 27 11:47:38 2015 +0200 drm/i915: Fake AGP is dead Remove the leftovers, yay! AGP for i915 kms died long ago with commit 3bb6ce66866310f50d461b9eff949c1ce95560ce Author: Daniel Vetter Date: Wed Nov 13 22:14:16 2013 +0100 drm/i915: Kill legeacy AGP for gen3 kms and with ums now gone to there's really no users any more. Note that device_is_agp is only called when DRIVER_USE_AGP is set and since we've unconditionally cleared that since a while there are really no users left for i915_driver_device_is_agp. Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 10 ---------- drivers/gpu/drm/i915/i915_drv.c | 4 ---- drivers/gpu/drm/i915/i915_drv.h | 1 - 3 files changed, 15 deletions(-) commit 4150e50bf5f2171fbe7dfdbc7f2cdf44676b79a4 Author: Catalin Marinas Date: Wed Mar 18 11:28:06 2015 +0000 arm64: Use last level TLBI for user pte changes The flush_tlb_page() function is used on user address ranges when PTEs (or PMDs/PUDs for huge pages) were changed (attributes or clearing). For such cases, it is more efficient to invalidate only the last level of the TLB with the "tlbi vale1is" instruction. In the TLB shoot-down case, the TLB caching of the intermediate page table levels (pmd, pud, pgd) is handled by __flush_tlb_pgtable() via the __(pte|pmd|pud)_free_tlb() functions and it is not deferred to tlb_finish_mmu() (as of commit 285994a62c80 - "arm64: Invalidate the TLB corresponding to intermediate page table levels"). The tlb_flush() function only needs to invalidate the TLB for the last level of page tables; the __flush_tlb_range() function gains a fourth argument for last level TLBI. Signed-off-by: Catalin Marinas Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/include/asm/tlb.h | 7 ++++++- arch/arm64/include/asm/tlbflush.h | 21 ++++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) commit da4e73303e448aa23b36249a85e239ca118ce941 Author: Catalin Marinas Date: Fri Jul 24 09:59:55 2015 +0100 arm64: Clean up __flush_tlb(_kernel)_range functions This patch moves the MAX_TLB_RANGE check into the flush_tlb(_kernel)_range functions directly to avoid the undescore-prefixed definitions (and for consistency with a subsequent patch). Signed-off-by: Catalin Marinas Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/include/asm/tlbflush.h | 47 +++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 26 deletions(-) commit c53e0baa6f34b7051790e0fba9d782ec4efe58bd Author: Mark Rutland Date: Tue Jul 28 10:31:06 2015 +0100 arm64: mm: mark create_mapping as __init Currently create_mapping is marked with __ref, apparently because it refers to early_alloc. However, create_mapping has no logic to prevent erroneous use of early_alloc after it has been freed, and is only ever called by __init functions anyway. Thus the __ref marker is misleading and unnecessary. Instead, this patch marks create_mapping as __init, resulting in warnings if it is used from a a non __init functions, and allowing its memory to be reclaimed. Signed-off-by: Mark Rutland Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/mm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dc9ab949950352d716a6608343d7076cc1589498 Author: Krzysztof Kozlowski Date: Tue Jul 28 17:21:47 2015 +0900 MAINTAINERS: pinctrl: Move Thomas Abraham to CREDITS Thomas Abraham's Linaro email address bounces for several months. Also there were no replies for several emails sent on LKML to his Samsung address. Move his name to CREDITS. Signed-off-by: Krzysztof Kozlowski Cc: Tomasz Figa Cc: Thomas Abraham Cc: Linus Walleij Link: http://lkml.org/lkml/2015/6/15/15 Signed-off-by: Linus Walleij CREDITS | 4 ++++ MAINTAINERS | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) commit 9458120ea112c06f56ea1b75a1511815d36aecc2 Author: Rob Herring Date: Mon Jul 27 15:55:22 2015 -0500 pinctrl: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: Stephen Warren Cc: Lee Jones Cc: Matthias Brugger Cc: Tomasz Figa Cc: Thomas Abraham Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: linux-gpio@vger.kernel.org Cc: linux-rpi-kernel@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Signed-off-by: Linus Walleij drivers/pinctrl/bcm/pinctrl-bcm2835.c | 1 - drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 -- drivers/pinctrl/pinctrl-single.c | 5 ----- drivers/pinctrl/samsung/pinctrl-exynos.c | 1 - drivers/pinctrl/samsung/pinctrl-exynos5440.c | 1 - drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 2 -- drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 2 -- 7 files changed, 14 deletions(-) commit 482d638f98cc626bf01d4c9f6d6d35fc77d630c8 Author: Gregory CLEMENT Date: Fri Jul 3 13:55:53 2015 +0200 ARM: mvebu: Warn about the wake-up sources not taken into account in suspend On the Armada 370/XP/38x/39x SoCs when the suspend to ram feature is supported, the SoCs are shutdown and will be woken up by an external micro-controller, so there is no possibility to setup wake-up sources from Linux. However, in standby mode, the SoCs stay powered and it is possible to wake-up from any interrupt sources. Since when the users configures the enabled wake-up sources there is no way to know if the user will be doing suspend to RAM or standby, we just allow all wake-up sources to be enabled, and only warn when entering suspend to RAM The purpose of this patch is to inform the user that in suspend to ram mode, the wake-up sources won't be taken into consideration. Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/pm.c | 1 + 1 file changed, 1 insertion(+) commit 4b45efe8526359a11ca60a299bef3aebf413fd77 Author: Andy Shevchenko Date: Mon Jul 27 18:04:03 2015 +0300 mfd: Add support for Intel Sunrisepoint LPSS devices The new coming Intel platforms such as Skylake will contain Sunrisepoint PCH. The main difference to the previous platforms is that the LPSS devices are compound devices where usually main (SPI, HSUART, or I2C) and DMA IPs are present. This patch brings the driver for such devices found on Sunrisepoint PCH. Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/mfd/Kconfig | 23 ++ drivers/mfd/Makefile | 3 + drivers/mfd/intel-lpss-acpi.c | 84 +++++++ drivers/mfd/intel-lpss-pci.c | 113 +++++++++ drivers/mfd/intel-lpss.c | 524 ++++++++++++++++++++++++++++++++++++++++++ drivers/mfd/intel-lpss.h | 62 +++++ 6 files changed, 809 insertions(+) commit 667dfed98615ae1fc4cc05b0763078435598c0f5 Author: Andy Shevchenko Date: Mon Jul 27 18:04:02 2015 +0300 dmaengine: add a driver for Intel integrated DMA 64-bit Intel integrated DMA (iDMA) 64-bit is a specific IP that is used as a part of LPSS devices such as HSUART or SPI. The iDMA IP is attached for private usage on each host controller independently. While it has similarities with Synopsys DesignWare DMA, the following distinctions doesn't allow to use the existing driver: - 64-bit mode with corresponding changes in Hardware Linked List data structure - many slight differences in the channel registers Moreover this driver is based on the DMA virtual channels framework that helps to make the driver cleaner and easy to understand. Signed-off-by: Andy Shevchenko Acked-by: Vinod Koul Signed-off-by: Lee Jones drivers/dma/Kconfig | 8 + drivers/dma/Makefile | 1 + drivers/dma/idma64.c | 710 +++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/dma/idma64.h | 233 +++++++++++++++++ 4 files changed, 952 insertions(+) commit b9a8a271c38fcb1664fd6034fb9326cc9a0dec94 Author: Andy Shevchenko Date: Mon Jul 27 18:04:01 2015 +0300 mfd: make mfd_remove_devices() iterate in reverse order The newly introduced device_for_each_child_reverse() would be used when MFD core removes the device. After this patch applied the devices will be removed in a reversed order. This behaviour is useful when devices have implicit dependency on order, i.e. consider MFD device with serial bus controller, such as SPI, and DMA IP that is attached to serial bus controller: before remove the DMA driver we have to be ensured that no DMA transfers is ongoing and the requested channel are unused. Signed-off-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/mfd/mfd-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d060aeb72113cda0acf906bfe26914fc689506a Author: Andy Shevchenko Date: Mon Jul 27 18:04:00 2015 +0300 driver core: implement device_for_each_child_reverse() The new function device_for_each_child_reverse() is helpful to traverse the registered devices in a reversed order, e.g. in the case when an operation on each device should be done first on the last added device, then on one before last and so on. Signed-off-by: Andy Shevchenko Acked-by: Greg Kroah-Hartman Signed-off-by: Lee Jones drivers/base/core.c | 43 +++++++++++++++++++++++++++++++++++++++++++ include/linux/device.h | 2 ++ 2 files changed, 45 insertions(+) commit 2e0fed7f7cdc41679e209c5636ad7537dc6210a9 Author: Andy Shevchenko Date: Mon Jul 27 18:03:59 2015 +0300 klist: implement klist_prev() klist_prev() gets the previous element in the list. It is useful to traverse through the list in reverse order, for example, to provide LIFO (last in first out) variant of access. Signed-off-by: Andy Shevchenko Acked-by: Greg Kroah-Hartman Signed-off-by: Lee Jones include/linux/klist.h | 1 + lib/klist.c | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit ddef08dd00f5548f943422c86e4ffe67dd040b6c Author: Rafael J. Wysocki Date: Mon Jul 27 18:03:58 2015 +0300 Driver core: wakeup the parent device before trying probe If the parent is still suspended when driver probe is attempted, the result may be failure. For example, if the parent is a PCI MFD device that has been suspended when we try to probe our device, any register reads will return 0xffffffff. To fix the problem, making sure the parent is always awake before attempting driver probe. Signed-off-by: Heikki Krogerus Signed-off-by: Rafael J. Wysocki Signed-off-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/base/dd.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 712e960f0ee9337f3473ba3de2bcfc7e87b7c5a4 Author: Mika Westerberg Date: Mon Jul 27 18:03:57 2015 +0300 ACPI / PM: Attach ACPI power domain only once Some devices, like MFD subdevices, share a single ACPI companion device so that they are able to access their resources and children. However, currently all these subdevices are attached to the ACPI power domain and this might cause that the power methods for the companion device get called more than once. In order to solve this we attach the ACPI power domain only to the first physical device that is bound to the ACPI companion device. In case of MFD devices, this is the parent MFD device itself. Acked-by: Rafael J. Wysocki Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/acpi/device_pm.c | 8 ++++++++ drivers/acpi/internal.h | 2 ++ drivers/acpi/scan.c | 46 ++++++++++++++++++++++++++++++---------------- 3 files changed, 40 insertions(+), 16 deletions(-) commit 13b2c4a0c3b1cd37ee6bcfbb5b6e2b94e9a75364 Author: Mika Westerberg Date: Mon Jul 27 18:03:56 2015 +0300 PM / QoS: Make it possible to expose device latency tolerance to userspace Typically when a device is created the bus core it belongs to (for example PCI) does not know if the device supports things like latency tolerance. This is left to the driver that binds to the device in question. However, at that time the device has already been created and there is no way to set its dev->power.set_latency_tolerance anymore. So follow what has been done for other PM QoS attributes as well and allow drivers to expose and hide latency tolerance from userspace, if the device supports it. Acked-by: Rafael J. Wysocki Signed-off-by: Mika Westerberg Signed-off-by: Andy Shevchenko Signed-off-by: Lee Jones drivers/base/power/power.h | 2 ++ drivers/base/power/qos.c | 37 +++++++++++++++++++++++++++++++++++++ drivers/base/power/sysfs.c | 11 +++++++++++ include/linux/pm_qos.h | 5 +++++ 4 files changed, 55 insertions(+) commit 23393d49fb75ca97b179668aa86b7038c2dc0831 Author: Rob Herring Date: Mon Jul 27 15:55:16 2015 -0500 gpio: kill off set_irq_flags usage set_irq_flags is ARM specific with custom flags which have genirq equivalents. Convert drivers to use the genirq interfaces directly, so we can kill off set_irq_flags. The translation of flags is as follows: IRQF_VALID -> !IRQ_NOREQUEST IRQF_PROBE -> !IRQ_NOPROBE IRQF_NOAUTOEN -> IRQ_NOAUTOEN For IRQs managed by an irqdomain, the irqdomain core code handles clearing and setting IRQ_NOREQUEST already, so there is no need to do this in .map() functions and we can simply remove the set_irq_flags calls. Some users also modify IRQ_NOPROBE and this has been maintained although it is not clear that is really needed as most platforms don't use probing. There appears to be a great deal of blind copy and paste of this code. Signed-off-by: Rob Herring Cc: Michael Hennerich Acked-by: Linus Walleij Cc: Alexandre Courbot Cc: Ray Jui Cc: Stephen Warren Cc: Thierry Reding Cc: linux-gpio@vger.kernel.org Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-tegra@vger.kernel.org Signed-off-by: Linus Walleij drivers/gpio/gpio-adp5588.c | 10 +--------- drivers/gpio/gpio-bcm-kona.c | 15 --------------- drivers/gpio/gpio-davinci.c | 1 - drivers/gpio/gpio-em.c | 1 - drivers/gpio/gpio-ep93xx.c | 2 +- drivers/gpio/gpio-grgpio.c | 8 -------- drivers/gpio/gpio-mcp23s08.c | 4 ---- drivers/gpio/gpio-msm-v2.c | 1 - drivers/gpio/gpio-pxa.c | 8 ++++---- drivers/gpio/gpio-sa1100.c | 2 +- drivers/gpio/gpio-sta2x11.c | 2 +- drivers/gpio/gpio-tegra.c | 1 - drivers/gpio/gpio-timberdale.c | 4 +--- drivers/gpio/gpiolib.c | 8 +------- 14 files changed, 10 insertions(+), 57 deletions(-) commit 0f17c97e3eceb255b1078a1e3a03d2bb00245d9b Author: Alexandre Belloni Date: Mon Jun 22 09:45:48 2015 +0200 ARM: at91/dt: sama5d4: move ADC pinctrl to board device trees The ADC pinctrl is board specific, move it to the board device trees. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/at91-sama5d4_xplained.dts | 9 +++++++++ arch/arm/boot/dts/at91-sama5d4ek.dts | 9 +++++++++ arch/arm/boot/dts/sama5d4.dtsi | 9 --------- 3 files changed, 18 insertions(+), 9 deletions(-) commit 07886bbceaf4d6f3fc69e6d8e68c34fc39196dbc Author: Alexandre Belloni Date: Mon Jun 22 09:45:47 2015 +0200 ARM: at91/dt: sama5d4: fix external trigger property The property is actually atmel,adc-use-external-triggers. Signed-off-by: Alexandre Belloni Signed-off-by: Nicolas Ferre arch/arm/boot/dts/sama5d4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit caa8c508494c5de3ea70b44804abfd003f6b0107 Author: Bruce Allan Date: Mon Jul 27 12:58:32 2015 -0700 crypto: qat - remove unnecessary list iteration There's no need to iterate through the list for instances in the accel_table since the number of devices is already known in this file. Signed-off-by: Bruce Allan Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_dev_mgr.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 0c5f0aa5dd92a36a2c6491695abcb95196b88ef6 Author: Kees Cook Date: Fri Jul 24 15:41:27 2015 -0700 crypto: jitterentropy - use safe format string parameters Since the API for jent_panic() does not include format string parameters, adjust the call to panic() to use a literal string to avoid any future callers from leaking format strings into the panic message. Signed-off-by: Kees Cook Acked-by: Stephan Mueller Signed-off-by: Herbert Xu crypto/jitterentropy-kcapi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ec0d6fa3e8849fd52755bca6cec550985d66546d Author: Ahsan Atta Date: Fri Jul 24 13:18:26 2015 -0700 crypto: qat - Fix typo othewise->otherwise Signed-off-by: Ahsan Atta Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_aer.c | 2 +- drivers/crypto/qat/qat_common/adf_cfg.c | 6 +++--- drivers/crypto/qat/qat_common/adf_dev_mgr.c | 2 +- drivers/crypto/qat/qat_common/adf_init.c | 10 +++++----- drivers/crypto/qat/qat_common/adf_transport.c | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) commit 13dd7bee20634a4991a75a551ce0707eb6aefd29 Author: Bruce Allan Date: Fri Jul 24 13:18:25 2015 -0700 crypto: qat - remove unused define Signed-off-by: Bruce Allan Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_hal.c | 1 - 1 file changed, 1 deletion(-) commit ea77fcdaf1aa6c3e69ba87cfef2e89b07f929598 Author: Bruce Allan Date: Fri Jul 24 13:18:25 2015 -0700 crypto: qat - fix bug in ADF_RING_SIZE_BYTES_MIN macro The subject macro mistakenly compares the passed-in ring size in bytes with ADF_RING_SIZE_4K which is 0x6 (an internal representation of 4KB) rather than comparing with the intended value of 4096. Signed-off-by: Bruce Allan Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_transport_access_macros.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5995752eadfd64edece5810b6fb0639806726594 Author: Bruce Allan Date: Fri Jul 24 13:18:25 2015 -0700 crypto: qat - remove redundant struct elem The element pci_dev_id in the struct adf_hw_device_data is redundant since the PCI device id can be retrieved from the struct pci_dev. Signed-off-by: Bruce Allan Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_devices.h | 1 - drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 1 - drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) commit d257f2980feb431ac7f0ffa1978fb694f56c7782 Author: Sebastian Reichel Date: Mon Jul 27 17:28:58 2015 -0700 Input: tsc2005 - convert to gpiod The GPIOD API can be used from boardcode, so that the DT check can be removed. To avoid breaking existing boardcode, _optional() variant has been chosen. For completely removing the DT check, the regulator has also been made optional, so that it could be supplied from boardcode. As a side-effect the patch fixes the after-probe reset GPIO state, so that the device is not kept in reset state. Signed-off-by: Sebastian Reichel Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/tsc2005.c | 47 ++++++++++++++----------------------- 1 file changed, 18 insertions(+), 29 deletions(-) commit 80b46aa69e543939e39eca5ae96fe508a1da2230 Author: Sebastian Reichel Date: Mon Jul 27 17:28:37 2015 -0700 Input: tsc2005 - simplify drvdata acquisition Using dev_*_drvdata() instead of spi_*_drvdata() reduces lines of code and prepares the driver for possible tsc2004 support, which is i2c based. Signed-off-by: Sebastian Reichel Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/tsc2005.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 273cf48aa95a86ee368a10b9a2a6b0c62544ffe5 Author: Sebastian Reichel Date: Mon Jul 27 17:27:25 2015 -0700 Input: tsc2005 - convert to regmap Convert driver so that it uses regmap instead of directly using spi_transfer for all register accesses. Signed-off-by: Sebastian Reichel Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 1 + drivers/input/touchscreen/tsc2005.c | 171 +++++++++++++----------------------- 2 files changed, 60 insertions(+), 112 deletions(-) commit f00d1f8f1d9720dcf9ec7911916b685e6f92729f Author: Sebastian Reichel Date: Mon Jul 27 17:27:09 2015 -0700 Input: tsc2005 - fix Kconfig indentation Replace spaces with tab, so that the tsc2005 Kconfig entry matches the other entries in drivers/input/touchscreen/Kconfig. Signed-off-by: Sebastian Reichel Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a636df9673e1e4627722777fe6075943372e76be Author: Sebastian Reichel Date: Mon Jul 27 17:26:38 2015 -0700 Input: tsc2005 - improve readability of register defines Improve defines for first control byte by removing 0x00 prefix (the defines are for 8 bit values and not for 16 bit values) and expose register structure by exposing the shift. Signed-off-by: Sebastian Reichel Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/tsc2005.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 730daa164e7c7e31c08fab940549f4acc3329432 Author: Kees Cook Date: Thu Jul 23 18:02:48 2015 -0700 Yama: remove needless CONFIG_SECURITY_YAMA_STACKED Now that minor LSMs can cleanly stack with major LSMs, remove the unneeded config for Yama to be made to explicitly stack. Just selecting the main Yama CONFIG will allow it to work, regardless of the major LSM. Since distros using Yama are already forcing it to stack, this is effectively a no-op change. Additionally add MAINTAINERS entry. Signed-off-by: Kees Cook Signed-off-by: James Morris Documentation/security/Yama.txt | 10 ++++------ MAINTAINERS | 6 ++++++ arch/mips/configs/pistachio_defconfig | 1 - include/linux/lsm_hooks.h | 6 ++++-- security/Kconfig | 5 ----- security/security.c | 11 +++-------- security/yama/Kconfig | 9 +-------- security/yama/yama_lsm.c | 32 ++++++++++---------------------- 8 files changed, 28 insertions(+), 52 deletions(-) commit 60e95f43fc8573e81f54b0c1e0bc542c2260d956 Author: Linda Knippers Date: Wed Jul 22 16:17:22 2015 -0400 nfit: Don't check _STA on NVDIMM devices The _STA only applies to the root device, not the individual NVDIMMS, so don't check here. NVDIMM device state flags are checked elsewhere. Signed-off-by: Linda Knippers Signed-off-by: Dan Williams drivers/acpi/nfit.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) commit 6b47496a6fc81816e7edaf8224dfb88e402a05f5 Author: Vishal Verma Date: Thu Jul 23 11:58:48 2015 -0600 libnvdimm, pmem: Change pmem physical sector size to PAGE_SIZE Based on a patch: c8fa317 brd: Request from fdisk 4k alignment by Boaz Harrosh, allow fdisk to create properly aligned partitions for DAX. This will also cause mkfs.ext4 to emit a warning if using a file system block size of less than PAGE_SIZE. Cc: Dan Williams Cc: Ross Zwisler Cc: Matthew Wilcox Cc: Christoph Hellwig Cc: Elliott, Robert Signed-off-by: Vishal Verma Acked-by: Boaz Harrosh Acked-by: Ross Zwisler Signed-off-by: Dan Williams drivers/nvdimm/pmem.c | 1 + 1 file changed, 1 insertion(+) commit 39c686b862cdb2049b90e095b6c6c727b2a7ab60 Author: Vishal Verma Date: Thu Jul 9 13:25:36 2015 -0600 libnvdimm: Add DSM support for Address Range Scrub commands Add support for the three ARS DSM commands: - Query ARS Capabilities - Queries the firmware to check if a given range supports scrub, and if so, which type (persistent vs. volatile) - Start ARS - Starts a scrub for a given range/type - Query ARS Status - Checks status of a previously started scrub, and provides the error logs if any. The commands are described by the example DSM spec at: http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf Also add these commands to the nfit_test test framework, and return canned data. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams drivers/acpi/nfit.c | 1 + drivers/acpi/nfit.h | 1 + include/uapi/linux/ndctl.h | 10 ++ tools/testing/nvdimm/test/nfit.c | 199 +++++++++++++++++++++++++++------------ 4 files changed, 152 insertions(+), 59 deletions(-) commit ec92777f2ba93c00387b8fe53780c25adc57c744 Author: Vishal Verma Date: Thu Jul 9 13:25:35 2015 -0600 libnvdimm: Update name of the ars_status_record mask field The spec suggests that this is a simple 'length' field, not a mask. Update the name accordingly. Signed-off-by: Vishal Verma Signed-off-by: Dan Williams include/uapi/linux/ndctl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e32940621eb62064d98f42c9889db71b0368bde Author: Dan Williams Date: Sat Jul 11 10:02:46 2015 -0400 libnvdimm, btt: sparse fix Fix: drivers/nvdimm/btt.c:635:29: warning: restricted __le64 degrades to integer Signed-off-by: Dan Williams drivers/nvdimm/btt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 57d866e606ddf2a0cd51f7140cfd8df1fdaa48f6 Author: Boris Brezillon Date: Thu Jul 9 22:39:38 2015 +0200 clk: fix some determine_rate implementations Some determine_rate implementations are not returning an error when they failed to adapt the rate according to the rate request. Fix them so that they return an error instead of silently returning 0. Signed-off-by: Boris Brezillon CC: Jonathan Corbet CC: Tony Lindgren CC: Ralf Baechle CC: "Emilio López" CC: Maxime Ripard Cc: Tero Kristo CC: Peter De Schrijver CC: Prashant Gaikwad CC: Stephen Warren CC: Thierry Reding CC: Alexandre Courbot CC: linux-doc@vger.kernel.org CC: linux-kernel@vger.kernel.org CC: linux-arm-kernel@lists.infradead.org CC: linux-omap@vger.kernel.org CC: linux-mips@linux-mips.org CC: linux-tegra@vger.kernel.org Signed-off-by: Stephen Boyd arch/mips/alchemy/common/clock.c | 4 ++++ drivers/clk/clk-composite.c | 3 +-- drivers/clk/clk.c | 3 +++ drivers/clk/hisilicon/clk-hi3620.c | 2 +- drivers/clk/mmp/clk-mix.c | 5 ++++- drivers/clk/sunxi/clk-factors.c | 6 ++++-- drivers/clk/sunxi/clk-sun6i-ar100.c | 3 +++ drivers/clk/sunxi/clk-sunxi.c | 6 ++++-- 8 files changed, 24 insertions(+), 8 deletions(-) commit 0817b62cc037a56c5e4238c7eb7522299ea27aef Author: Boris Brezillon Date: Tue Jul 7 20:48:08 2015 +0200 clk: change clk_ops' ->determine_rate() prototype Clock rates are stored in an unsigned long field, but ->determine_rate() (which returns a rounded rate from a requested one) returns a long value (errors are reported using negative error codes), which can lead to long overflow if the clock rate exceed 2Ghz. Change ->determine_rate() prototype to return 0 or an error code, and pass a pointer to a clk_rate_request structure containing the expected target rate and the rate constraints imposed by clk users. The clk_rate_request structure might be extended in the future to contain other kind of constraints like the rounding policy, the maximum clock inaccuracy or other things that are not yet supported by the CCF (power consumption constraints ?). Signed-off-by: Boris Brezillon CC: Jonathan Corbet CC: Tony Lindgren CC: Ralf Baechle CC: "Emilio López" CC: Maxime Ripard Acked-by: Tero Kristo CC: Peter De Schrijver CC: Prashant Gaikwad CC: Stephen Warren CC: Thierry Reding CC: Alexandre Courbot CC: linux-doc@vger.kernel.org CC: linux-kernel@vger.kernel.org CC: linux-arm-kernel@lists.infradead.org CC: linux-omap@vger.kernel.org CC: linux-mips@linux-mips.org CC: linux-tegra@vger.kernel.org [sboyd@codeaurora.org: Fix parent dereference problem in __clk_determine_rate()] Signed-off-by: Stephen Boyd Tested-by: Romain Perier Signed-off-by: Heiko Stuebner [sboyd@codeaurora.org: Folded in fix from Heiko for fixed-rate clocks without parents or a rate determining op] Signed-off-by: Stephen Boyd Documentation/clk.txt | 8 +- arch/arm/mach-omap2/dpll3xxx.c | 29 +++--- arch/arm/mach-omap2/dpll44xx.c | 30 +++--- arch/mips/alchemy/common/clock.c | 61 +++++-------- drivers/clk/at91/clk-programmable.c | 25 ++--- drivers/clk/at91/clk-usb.c | 28 +++--- drivers/clk/bcm/clk-kona.c | 34 ++++--- drivers/clk/clk-composite.c | 48 +++++----- drivers/clk/clk.c | 176 ++++++++++++++++++++---------------- drivers/clk/hisilicon/clk-hi3620.c | 39 ++++---- drivers/clk/mmp/clk-mix.c | 20 ++-- drivers/clk/qcom/clk-pll.c | 18 ++-- drivers/clk/qcom/clk-rcg.c | 44 ++++----- drivers/clk/qcom/clk-rcg2.c | 78 ++++++++-------- drivers/clk/sunxi/clk-factors.c | 21 ++--- drivers/clk/sunxi/clk-sun6i-ar100.c | 21 ++--- drivers/clk/sunxi/clk-sunxi.c | 20 ++-- drivers/clk/tegra/clk-emc.c | 28 +++--- include/linux/clk-provider.h | 49 ++++++---- include/linux/clk/ti.h | 16 +--- 20 files changed, 392 insertions(+), 401 deletions(-) commit 0caa36603300dd4ff4841227cf372e91e940c8bd Author: Mikhail Ulyanov Date: Fri Jul 24 16:25:46 2015 +0300 ARM: shmobile: r8a7791: Add JPU device node. This patch contains device tree node definition for JPEG codec peripheral found in the Renesas R-Car r8a7791 SoC. Signed-off-by: Mikhail Ulyanov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit fb847575f8f5a9580c26bdc3e08fe49639144619 Author: Mikhail Ulyanov Date: Fri Jul 24 16:25:45 2015 +0300 ARM: shmobile: r8a7790: Add JPU device node. This patch contains device tree node definition for JPEG codec peripheral found in the Renesas R-Car r8a7790 SoC. Signed-off-by: Mikhail Ulyanov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit c99cd90d98a98aa101b169e44d249e5cd71f46f2 Author: Magnus Damm Date: Thu Jul 16 16:54:03 2015 +0900 ARM: shmobile: r8a7779: Remove legacy SoC code Now when the Marzen legacy board code is gone this patch removes the unused r8a7779 legacy SoC code. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Makefile | 1 - arch/arm/mach-shmobile/clock-r8a7779.c | 271 ------------- arch/arm/mach-shmobile/r8a7779.h | 17 - arch/arm/mach-shmobile/setup-r8a7779.c | 674 +-------------------------------- arch/arm/mach-shmobile/smp-r8a7779.c | 9 - 5 files changed, 4 insertions(+), 968 deletions(-) commit b97fdb836a36df53de5685278c0126a222903c5e Author: Magnus Damm Date: Thu Jul 16 16:53:52 2015 +0900 ARM: shmobile: marzen: Remove legacy board code Remove Marzen legacy board code written in C. Instead board support expressed in DT shall be used together with Multiplatform and shmobile_defconfig. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/Makefile | 1 - arch/arm/mach-shmobile/Kconfig | 7 - arch/arm/mach-shmobile/Makefile | 1 - arch/arm/mach-shmobile/Makefile.boot | 1 - arch/arm/mach-shmobile/board-marzen.c | 347 ---------------------------------- 5 files changed, 357 deletions(-) commit 640780efdd97eefd9ee78e1cd03ba97b1a1e1d9a Author: Magnus Damm Date: Mon Jul 13 15:15:33 2015 +0900 ARM: shmobile: r8a7779: Cleanup header file Remove unused function prototypes from r8a7779.h and make the functions static. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/clock-r8a7779.c | 2 +- arch/arm/mach-shmobile/r8a7779.h | 2 -- arch/arm/mach-shmobile/setup-r8a7779.c | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) commit 26f9e03fb1c8b8b5dd2f1ad34da775cc129df98a Author: Magnus Damm Date: Mon Jul 13 15:15:12 2015 +0900 ARM: shmobile: marzen-reference: Remove C board code The generic r8a7779 machine vector is now feature-wise equivalent to the Marzen-reference case, so simply remove the Marzen C board code to fall over on the generic r8a7779 machine vector. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 7 ---- arch/arm/mach-shmobile/Makefile | 4 +- arch/arm/mach-shmobile/board-marzen-reference.c | 56 ------------------------- 3 files changed, 1 insertion(+), 66 deletions(-) commit 4055a722d260ca30610fc52238d0aa49ff5bffa9 Author: Simon Horman Date: Wed Jul 15 15:42:35 2015 +0900 ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig This is selected by MACH_MARZEN which is enabled in shmobile_defconfig, however, MACH_MARZEN is going away along with the board code it enables. Acked-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) commit 24b390aad2930b889b6e15fc7cf7bfa7c99fad21 Author: Bjorn Helgaas Date: Mon Jul 27 17:09:40 2015 -0500 PCI: Remove unused "pci_probe" flags The following flags are only used on x86, but they got copied to FR-V, MN10300, and SuperH: PCI_PROBE_BIOS PCI_PROBE_CONF1 PCI_PROBE_CONF2 PCI_ASSIGN_ROMS PCI_NO_CHECKS PCI_BIOS_IRQ_SCAN PCI_ASSIGN_ALL_BUSSES FR-V and MN10300 do test for PCI_ASSIGN_ROMS, but they never set it, so it's dead code. Remove the unused flags above. Signed-off-by: Bjorn Helgaas arch/frv/mb93090-mb00/pci-frv.c | 8 -------- arch/frv/mb93090-mb00/pci-frv.h | 8 -------- arch/mn10300/unit-asb2305/pci-asb2305.c | 22 ++++++++++------------ arch/mn10300/unit-asb2305/pci-asb2305.h | 7 ------- arch/sh/drivers/pci/pci-sh4.h | 8 -------- 5 files changed, 10 insertions(+), 43 deletions(-) commit 8c1a91f11174ed00bc8269150636a9ad638efe24 Merge: 0b42c28 e38af4f Author: David S. Miller Date: Mon Jul 27 15:00:37 2015 -0700 Merge branch 'mlx4-802.1ad-accel' Amir Vadai says: ==================== net/mlx4_en: Hardware accelerated 802.1ad This patchset by Hadar introduces support in Hardware accelerated 802.1ad, for ConnectX-3pro NIC's. In order to support existing deployment, and due to some hardware limitations, the feature is disabled by default, and needed to be enabled using a private flag in ethtool. Ofcourse user can enable the private flag only if hardware has support. After being enabled, the standard ethtool -k/-K can be used. Patchset was applied and tested over commit 71790a2 ("hv_netvsc: Add structs and handlers for VF messages") ==================== Signed-off-by: David S. Miller commit e38af4faf01d0b35df6995fb395e5fa4a4898289 Author: Hadar Hen Zion Date: Mon Jul 27 14:46:34 2015 +0300 net/mlx4_en: Add support for hardware accelerated 802.1ad vlan To enable device support in accelerated 802.1ad vlan, the port capability "packet has vlan enable" (phv_en) should be set. Firmware won't work properly, in case phv_en is not set. The user can enable "phv_en" port capability with the new ethtool private flag phv-bit. The phv-bit private flag default value is OFF, users who are interested in 802.1ad hardware acceleration should turn ON the phv-bit private flag: $ ethtool --set-priv-flags eth1 phv-bit on Once the private flag is set, the device is ready for 802.1ad vlan acceleration. The user should also change the interface device features and turn on "tx-vlan-stag-hw-insert" which is off by default: $ ethtool -K eth1 tx-vlan-stag-hw-insert on "phv-bit" private flag setting is available only for Physical Functions(PF), the Virtual Function (VF) will be able to use the feature by setting "tx-vlan-stag-hw-insert" ethtool device feature only if the feature was enabled by the Hypervisor. Signed-off-by: Hadar Hen Zion Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 16 +++++++++ drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 46 +++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx4/en_rx.c | 16 ++++++++- drivers/net/ethernet/mellanox/mlx4/en_tx.c | 13 ++++--- drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 + include/linux/mlx4/cq.h | 1 + include/linux/mlx4/qp.h | 1 + 7 files changed, 89 insertions(+), 5 deletions(-) commit e802f8e4c54e6adf4215ef9fa3d6eea8fcb10bf9 Author: Hadar Hen Zion Date: Mon Jul 27 14:46:33 2015 +0300 net/mlx4: Prepare VLAN macros for 802.1ad Hardware accelerated support To add Hardware accelerated support in 802.1ad vlan, replace Current VLAN macros to CVLAN. Replace: MLX4_WQE_CTRL_INS_VLAN MLX4_CQE_VLAN_PRESENT_MASK With: MLX4_WQE_CTRL_INS_CVLAN MLX4_CQE_CVLAN_PRESENT_MASK Signed-off-by: Hadar Hen Zion Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/infiniband/hw/mlx4/cq.c | 2 +- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 6 +++--- drivers/net/ethernet/mellanox/mlx4/en_tx.c | 2 +- include/linux/mlx4/cq.h | 2 +- include/linux/mlx4/qp.h | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) commit 7c509a48ff999463f698ed5082875a938094bfb3 Author: Hadar Hen Zion Date: Mon Jul 27 14:46:32 2015 +0300 net/mlx4_en: Prepare ethtool private flags to support more flags Currently we support only one ethtool private flag. Prepare mlx4_en_set_priv_flags function to support more than one private flag. Will be used in the next patch to support hardware accelerated 802.1ad vlan. Signed-off-by: Hadar Hen Zion Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 35 ++++++++++++------------- 1 file changed, 17 insertions(+), 18 deletions(-) commit 77fc29c4bbbbd01ee22c50ce8260fd0f2e08c124 Author: Hadar Hen Zion Date: Mon Jul 27 14:46:31 2015 +0300 net/mlx4_core: Preparations for 802.1ad VLAN support mlx4_core preparation to support hardware accelerated 802.1ad VLAN device. To allow 802.1ad accelerated device, "packet has vlan" (phv) Firmware capability should be available. Firmware without the phv capability won't behave properly and can't support 802.1ad device acceleration. The driver checks the Firmware capability and sets the phv bit accordingly in SET_PORT command. Signed-off-by: Hadar Hen Zion Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/fw.c | 82 +++++++++++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx4/fw.h | 1 + drivers/net/ethernet/mellanox/mlx4/main.c | 15 ++++++ drivers/net/ethernet/mellanox/mlx4/mlx4.h | 3 ++ include/linux/mlx4/device.h | 5 ++ 5 files changed, 106 insertions(+) commit 0b42c2863b3b9f79c42f0b877249007e5adfc921 Merge: e11f40b 5bf705b Author: David S. Miller Date: Mon Jul 27 14:57:41 2015 -0700 Merge branch 'arm-bpf-next' Nicolas Schichan says: ==================== ARM BPF JIT features This series adds support for more instructions to the ARM BPF JIT namely skb netdevice type retrieval, skb payload offset retrieval, and skb packet type retrieval. This allows 35 tests to use the JIT instead of 29 before. This series depends on the "BPF JIT fixes for ARM" serie sent earlier. ==================== Signed-off-by: David S. Miller commit 5bf705b43b7243c68e831ed3072db2ed00edc7fa Author: Nicolas Schichan Date: Mon Jul 27 15:06:51 2015 +0200 ARM: net: add support for BPF_ANC | SKF_AD_HATYPE in ARM JIT. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 22 ++++++++++++++++++++-- arch/arm/net/bpf_jit_32.h | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-) commit 303249ab168f58ee52c502389b9a8046af78d142 Author: Nicolas Schichan Date: Mon Jul 27 15:06:50 2015 +0200 ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET in ARM JIT. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1447f93f22add339ee63d1a7015309d9fbfa47e8 Author: Nicolas Schichan Date: Mon Jul 27 15:06:49 2015 +0200 ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT. Signed-off-by: Nicolas Schichan Signed-off-by: David S. Miller arch/arm/net/bpf_jit_32.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 504155cafffbe35d5678c10af7777303ead01928 Author: Srinivas Kandagatla Date: Mon Jul 27 14:52:19 2015 +0100 ARM: dts: apq8064: fix missing gsbi cell-index Without this i2c instance for missing cell-index nodes would fail, fix it by adding correct cell-index. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 1 + 1 file changed, 1 insertion(+) commit 86e252a4f850a525ad5514163e14a36f1f1d19a4 Author: Pramod Gurav Date: Mon Jul 27 14:52:10 2015 +0100 ARM: dts: apq8064: Add DT support for GSBI6 and for UART pin mux This change adds DT support for GSBI6 and muxes the gpio pins as UART lines. Also defines a alias for serial port on these lines. Signed-off-by: Pramod Gurav [Srinivas Kandagatla]: fix pinctrl location and rename alias correctly Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 13 +++++++++++++ arch/arm/boot/dts/qcom-apq8064.dtsi | 30 +++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) commit bce3604696769afd4ec575f15499aad174e14a74 Author: Srinivas Kandagatla Date: Mon Jul 27 14:52:02 2015 +0100 ARM: dts: apq8064: add pm8921 mpp support This patch adds pmic pm8921 mpp gpio controller node. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 874443fe9e339378d973f8752d6b4ad2ab9fe364 Author: Srinivas Kandagatla Date: Mon Jul 27 14:51:52 2015 +0100 ARM: dts: apq8064: Add pm8921 mfd and its gpio node This patch adds pmic gpio node to the device tree, this node is necessary for devices like wlan to control reset gpio. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-apq8064.dtsi | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) commit 27e50c9708263995e8bbb2843a5d1a264e1dfe4d Author: Fabio Estevam Date: Mon Jul 27 11:10:44 2015 -0300 ARM: multi_v7_defconfig: Select MX6UL and MX7D Let MX6UL and MX7D SoCs be selected by default. Signed-off-by: Fabio Estevam Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 0e83c71cbd3b675757008516ff0f3db71d5b2e12 Merge: 97de17f 764c222 Author: Olof Johansson Date: Mon Jul 27 20:43:52 2015 +0200 Merge tag 'prima2-defconfig-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux into next/defconfig Merge "CSR prima2_defconfig fixes for 4.2" from Barry Song: enable SiRFSoC device drivers in CSR prima2_defconfig make savedefconfig at first, then enable 1. sdhci driver 2. onkey 3. rtc 4. hwspinlock for prima2_defconfig * tag 'prima2-defconfig-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux: ARM: prima2_defconfig: enable build for hwspinlock ARM: prima2_defconfig: enable build for RTC ARM: prima2_defconfig: enable build for misc input ARM: prima2_defconfig: enable build for SiRFSoC SDHC host ARM: prima2_defconfig: fix the outdated defconfig Signed-off-by: Olof Johansson commit 764c222555fe80cbc8fcbed985863e9b07858d51 Author: Barry Song Date: Mon Jul 13 22:13:47 2015 +0800 ARM: prima2_defconfig: enable build for hwspinlock This patch enables hardware spinlock driver for CSRatlas7 platforms. Signed-off-by: Barry Song arch/arm/configs/prima2_defconfig | 1 + 1 file changed, 1 insertion(+) commit 3cbedb88478009cf5415a8eb1804eceb7088bb1a Author: Barry Song Date: Mon Jul 13 22:05:10 2015 +0800 ARM: prima2_defconfig: enable build for RTC This patch enables RTC_CLASS and RTC driver for SiRFSoC platforms. Signed-off-by: Barry Song arch/arm/configs/prima2_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 9dd105430a1708ae8692aaa98ee324553d0dbdd8 Author: Barry Song Date: Mon Jul 13 21:59:52 2015 +0800 ARM: prima2_defconfig: enable build for misc input we need INPUT_MISC to enable INPUT_SIRFSOC_ONKEY which is the onkey driver for SiRFSoC platforms. Signed-off-by: Barry Song arch/arm/configs/prima2_defconfig | 1 + 1 file changed, 1 insertion(+) commit de124e87425c801e187a301604873265094153f3 Author: Barry Song Date: Mon Jul 13 21:55:17 2015 +0800 ARM: prima2_defconfig: enable build for SiRFSoC SDHC host this patch enables the MMC/SDHCI driver for SiRFSoC platforms. Signed-off-by: Barry Song arch/arm/configs/prima2_defconfig | 1 + 1 file changed, 1 insertion(+) commit 79302812c1f0f13daeb7e81a9d22087b19f86128 Author: Barry Song Date: Mon Jul 13 21:48:37 2015 +0800 ARM: prima2_defconfig: fix the outdated defconfig this patch is againest v4.2-rc1, by doing: $ make ARCH=arm prima2_defconfig $ make ARCH=arm savedefconfig $ cp defconfig arch/arm/configs/prima2_defconfig Signed-off-by: Barry Song arch/arm/configs/prima2_defconfig | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 458e2c82c5fbfbc431598636c05bdb21feb7056f Author: Fabio Estevam Date: Mon Jul 27 15:15:59 2015 -0300 Revert "tty: serial: imx.c: Reset UART before activating interrupts" This reverts commit e95044ba4fee93f5ea8a1a24b2d921e148503833. Commit e95044ba4fee93 ("tty: serial: imx.c: Reset UART before activating interrupts") terribly messes up with the console on mx6 boards, so let's revert it. Reported-by: kernelci.org bot Cc: David Jander Signed-off-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit 722b262c966a388a1f8bfcdd100cd19c4ce59ab9 Merge: 4e02bea cbfe8fa Author: Greg Kroah-Hartman Date: Mon Jul 27 11:15:16 2015 -0700 Merge 4.2-rc4 into usb-next We want the USB fixes that went into that release in this branch as well. Signed-off-by: Greg Kroah-Hartman commit 92311e46ecf2298d87f175c8449ab4d8c400a38e Merge: d684779 cbfe8fa Author: Greg Kroah-Hartman Date: Mon Jul 27 11:12:39 2015 -0700 Merge 4.2-rc4 into tty-next Other serial driver work wants to build on patches now in 4.2-rc4 so merge the branch so this can properly happen. Signed-off-by: Greg Kroah-Hartman commit 6e64e22449023dc89dfb92c6f19d4c5b03f46889 Merge: 4ad2adc9 cbfe8fa Author: Greg Kroah-Hartman Date: Mon Jul 27 11:10:05 2015 -0700 Merge 4.2-rc4 into staging-next We want the iio and other fixes in this branch as well. Signed-off-by: Greg Kroah-Hartman commit 6f883d10a18b971a3646303d12ef75138dfd31f9 Author: Will Deacon Date: Mon Jul 27 18:36:54 2015 +0100 arm64: debug: rename enum debug_el to avoid symbol collision lib/list_sort.c defines a 'struct debug_el', where "el" is assumedly a a contraction of "element". This conflicts with 'enum debug_el' in our asm/debug-monitors.h header file, where "el" stands for Exception Level. The result is build failure when targetting allmodconfig, so rename our enum to 'dbg_active_el' to be slightly more explicit about what it is. Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 6 +++--- arch/arm64/kernel/debug-monitors.c | 4 ++-- arch/arm64/kernel/hw_breakpoint.c | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) commit 14e51e599db0b5bd7d2fc11f144b68c38aa9d0c9 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:23:17 2015 +0900 misc: 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: Greg Kroah-Hartman drivers/misc/ad525x_dpot-i2c.c | 1 - drivers/misc/apds990x.c | 1 - drivers/misc/bh1770glc.c | 1 - drivers/misc/bmp085-i2c.c | 1 - drivers/misc/eeprom/at24.c | 1 - drivers/misc/isl29003.c | 1 - drivers/misc/lis3lv02d/lis3lv02d_i2c.c | 1 - drivers/misc/ti-st/st_kim.c | 1 - drivers/misc/tsl2550.c | 1 - 9 files changed, 9 deletions(-) commit 1037b2787b6df12f31b7051f7cdbb289f7972ee7 Author: Sudip Mukherjee Date: Mon Jul 13 17:32:28 2015 +0530 char: misc: fix error path Lets call remove_proc_entry() in the error path only if we have successfully created "misc" in procfs. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/char/misc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 344e62b36d3fa680ffbd35ee26b52f7bf4c1c4ec Author: Sudip Mukherjee Date: Mon Jul 13 17:32:27 2015 +0530 char: misc: remove redundant ifdef The check for CONFIG_PROC_FS is not required as the check is being done in proc_fs.h and incase CONFIG_PROC_FS is not defined then proc_create() is defined as NULL. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/char/misc.c | 2 -- 1 file changed, 2 deletions(-) commit 662ba3dbceca3ca284885a464ecb8c936f417003 Author: Wang Long Date: Mon Jul 27 03:32:53 2015 +0100 arm64: mm: add __init section marker to free_initrd_mem It is not needed after booting, this patch moves the free_initrd_mem() function to the __init section. This patch also make keep_initrd __initdata, to reduce kernel size. Signed-off-by: Wang Long Signed-off-by: Will Deacon arch/arm64/mm/init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4b0c53e9e1a2a785746b2d379a32cb70b4dbb2fd Merge: a11c51a 7c14898 Author: Ingo Molnar Date: Mon Jul 27 17:56:18 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: New features: - Introduce PERF_RECORD_SWITCH(_CPU_WIDE) and use it in 'record' to ask for context switches, allowing non priviledged tasks to know when they are switched in and out, which wasn't possible with the other context switch tracepoint and software events, see the patch description for a comprehensive justification (Adrian Hunter) - Stop collecting /proc/kallsyms in perf.data files, saving about 4.5MB on a typical x86-64 system, use the the symbol resolution routines used in all the other tools (report, top, etc) now that we can ask libtraceevent to use perf's symbol resolution code. (Arnaldo Carvalho de Melo) User visible fixes: - Expose perf's symbol resolver to libtraceevent, so that its plugins can resolve tracepoint fields to kernel functions, like the 'function' field in the "timer:hrtimer_start tracepoint" (Arnaldo Carvalho de Melo) Infrastructure changes: - Map propagation of thread and cpu maps improvements, prep work for 'perf stat' new features (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 309585b0b931b291d0525b2830161ee76a2f23ff Author: Will Deacon Date: Mon Jul 27 16:55:32 2015 +0100 arm64: elf: use cpuid_feature_extract_field for hwcap detection cpuid_feature_extract_field takes care of the fiddly ID register field sign-extension, so use that instead of rolling our own version. Signed-off-by: Will Deacon arch/arm64/kernel/setup.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) commit 2e94da13790336eb3fd00fb5e97610dd9aebe213 Author: Will Deacon Date: Mon Jul 27 16:23:58 2015 +0100 arm64: lse: use generic cpufeature detection for LSE atomics Rework the cpufeature detection to support ISAR0 and use that for detecting the presence of LSE atomics. Signed-off-by: Will Deacon arch/arm64/kernel/cpufeature.c | 37 +++++++++++++++++++++---------------- arch/arm64/kernel/setup.c | 4 ---- 2 files changed, 21 insertions(+), 20 deletions(-) commit 0e4a07092fc833dc3d972a3394398aef68217c13 Author: Will Deacon Date: Mon Jul 27 15:54:13 2015 +0100 arm64: kconfig: group the v8.1 features together ARMv8 CPUs do not support any of the v8.1 features, so group them together in Kconfig to make it clear that they're part of 8.1 and not relevant to older cores. Signed-off-by: Will Deacon arch/arm64/Kconfig | 90 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 43 deletions(-) commit 9559b3a38b26ab8410aeb822cf0596ea0b4adde4 Author: Fabio Estevam Date: Tue Jul 14 10:49:46 2015 -0300 ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC It is useful to know how the kernel was configured via: zcat /proc/config.gz ,so select the CONFIG_IKCONFIG_PROC option. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 3e1d9c6f241961e2e21b8df9de5ee12e3dc6f177 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:26:49 2015 +0300 power: olpc_battery: clean up eeprom read function The change removes redundant sysfs binary file boundary check while reading eeprom content from userspace, the check is done on caller side in fs/sysfs/file.c, if binary attribute size is not zero. Signed-off-by: Vladimir Zapolskiy Signed-off-by: Sebastian Reichel drivers/power/olpc_battery.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit c739dc83a0b6db01abfbcc5246a30c7a575e4272 Author: Will Deacon Date: Mon Jul 27 14:11:55 2015 +0100 arm64: lse: rename ARM64_CPU_FEAT_LSE_ATOMICS for consistency Other CPU features follow an 'ARM64_HAS_*' naming scheme, so do the same for the LSE atomics. Signed-off-by: Will Deacon arch/arm64/include/asm/cpufeature.h | 2 +- arch/arm64/include/asm/lse.h | 4 ++-- arch/arm64/kernel/setup.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 9f28b86552aef94733387814a57755cb0019cfb9 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:26:48 2015 +0300 power: ds2781_battery: clean up eeprom read/write functions The change removes redundant calculation of left space on eeprom while reading or writing "param_eeprom" or "user_eeprom", the checks are not needed, since this task is done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Sebastian Reichel drivers/power/ds2781_battery.c | 8 -------- 1 file changed, 8 deletions(-) commit 95eff6b27c40c7205f72f354712c3687d808e7f6 Author: Will Deacon Date: Fri May 29 14:57:47 2015 +0100 arm64: kconfig: select HAVE_CMPXCHG_LOCAL We implement an optimised cmpxchg_local macro, so let the kernel know. Reviewed-by: Steve Capper Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 753f15833c4d782ee41e333f66bfe424a39680e6 Author: Vladimir Zapolskiy Date: Mon Jul 27 00:26:47 2015 +0300 power: ds2780_battery: clean up eeprom read/write functions The change removes redundant sysfs binary file boundary checks while reading or writing "param_eeprom" or "user_eeprom", the checks are not needed, since this task is done on caller side in fs/sysfs/file.c Signed-off-by: Vladimir Zapolskiy Signed-off-by: Sebastian Reichel drivers/power/ds2780_battery.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) commit db26217e6f54647b137a0fe1f2ab346de67d6f3e Author: Will Deacon Date: Fri May 29 14:44:06 2015 +0100 arm64: atomic64_dec_if_positive: fix incorrect branch condition If we attempt to atomic64_dec_if_positive on INT_MIN, we will underflow and incorrectly decide that the original parameter was positive. This patches fixes the broken condition code so that we handle this corner case correctly. Reviewed-by: Steve Capper Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_ll_sc.h | 2 +- arch/arm64/include/asm/atomic_lse.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6059a7b6e818023436a9058170a4fea1c670dc98 Author: Will Deacon Date: Thu Jun 4 17:46:37 2015 +0100 arm64: atomics: implement atomic{,64}_cmpxchg using cmpxchg We don't need duplicate cmpxchg implementations, so use cmpxchg to implement atomic{,64}_cmpxchg, like we do for xchg already. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic.h | 2 ++ arch/arm64/include/asm/atomic_ll_sc.h | 46 ----------------------------------- arch/arm64/include/asm/atomic_lse.h | 43 -------------------------------- 3 files changed, 2 insertions(+), 89 deletions(-) commit 0ea366f5e1b6413a6095dce60ea49ae51e468b61 Author: Will Deacon Date: Fri May 29 13:31:10 2015 +0100 arm64: atomics: prefetch the destination word for write prior to stxr The cost of changing a cacheline from shared to exclusive state can be significant, especially when this is triggered by an exclusive store, since it may result in having to retry the transaction. This patch makes use of prfm to prefetch cachelines for write prior to ldxr/stxr loops when using the ll/sc atomic routines. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_ll_sc.h | 9 +++++++++ arch/arm64/include/asm/cmpxchg.h | 8 ++++++++ arch/arm64/include/asm/futex.h | 2 ++ arch/arm64/lib/bitops.S | 2 ++ 4 files changed, 21 insertions(+) commit a82e62382fcbbf5c3348e802af73583e0cac39c0 Author: Will Deacon Date: Thu Jun 4 16:41:36 2015 +0100 arm64: atomics: tidy up common atomic{,64}_* macros The common (i.e. identical for ll/sc and lse) atomic macros in atomic.h are needlessley different for atomic_t and atomic64_t. This patch tidies up the definitions to make them consistent across the two atomic types and factors out common code such as the add_unless implementation based on cmpxchg. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic.h | 99 +++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 59 deletions(-) commit 4e39715f4b5cb3b44576fedb2d38aca87de3cf48 Author: Will Deacon Date: Fri May 29 14:47:59 2015 +0100 arm64: cmpxchg: avoid memory barrier on comparison failure cmpxchg doesn't require memory barrier semantics when the value comparison fails, so make the barrier conditional on success. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_ll_sc.h | 48 ++++++++++++++++------------------- 1 file changed, 22 insertions(+), 26 deletions(-) commit 0bc671d3f4bee9c31110d096ada0de52380e693d Author: Will Deacon Date: Fri May 29 14:26:59 2015 +0100 arm64: cmpxchg: avoid "cc" clobber in ll/sc routines We can perform the cmpxchg comparison using eor and cbnz which avoids the "cc" clobber for the ll/sc case and consequently for the LSE case where we may have to fall-back on the ll/sc code at runtime. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_ll_sc.h | 14 ++++++-------- arch/arm64/include/asm/atomic_lse.h | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) commit e9a4b795652f654a7870727e5333c1b709b8736c Author: Will Deacon Date: Thu May 14 18:05:50 2015 +0100 arm64: cmpxchg_dbl: patch in lse instructions when supported by the CPU On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of our cmpxchg_double primitives so that the LSE casp instruction is used instead. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic_ll_sc.h | 34 ++++++++++++++++++ arch/arm64/include/asm/atomic_lse.h | 43 ++++++++++++++++++++++ arch/arm64/include/asm/cmpxchg.h | 68 +++++++++-------------------------- 3 files changed, 94 insertions(+), 51 deletions(-) commit c342f78217e822d2178265b0b1de232eeb717149 Author: Will Deacon Date: Thu Apr 23 20:08:49 2015 +0100 arm64: cmpxchg: patch in lse instructions when supported by the CPU On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of our cmpxchg primitives so that the LSE cas instruction is used instead. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic.h | 3 +- arch/arm64/include/asm/atomic_ll_sc.h | 38 ++++++++++++++++ arch/arm64/include/asm/atomic_lse.h | 39 ++++++++++++++++ arch/arm64/include/asm/cmpxchg.h | 84 ++++++++--------------------------- 4 files changed, 98 insertions(+), 66 deletions(-) commit c8366ba0fb65063b6b4f69c7af1ea74152435590 Author: Will Deacon Date: Tue Mar 31 14:11:24 2015 +0100 arm64: xchg: patch in lse instructions when supported by the CPU On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of our xchg primitives so that the LSE swp instruction (yes, you read right!) is used instead. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/cmpxchg.h | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) commit 084f903727e1c3a61d6bcdaeeed30bddc6d7f65a Author: Will Deacon Date: Thu Feb 12 04:17:37 2015 +0000 arm64: bitops: patch in lse instructions when supported by the CPU On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of our bitops functions so that LSE atomic instructions are used instead. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/lse.h | 23 +++++++++++++++++++++-- arch/arm64/lib/bitops.S | 43 ++++++++++++++++++++++++------------------- 2 files changed, 45 insertions(+), 21 deletions(-) commit 81bb5c6420635dfd058c210bd342c29c95ccd145 Author: Will Deacon Date: Tue Feb 10 03:03:15 2015 +0000 arm64: locks: patch in lse instructions when supported by the CPU On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of our locking functions so that LSE atomic instructions are used for spinlocks and rwlocks. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/spinlock.h | 137 ++++++++++++++++++++++++++++++-------- 1 file changed, 108 insertions(+), 29 deletions(-) commit c09d6a04d17d730b0463207a26ece082772b59ee Author: Will Deacon Date: Tue Feb 3 16:14:13 2015 +0000 arm64: atomics: patch in lse instructions when supported by the CPU On CPUs which support the LSE atomic instructions introduced in ARMv8.1, it makes sense to use them in preference to ll/sc sequences. This patch introduces runtime patching of atomic_t and atomic64_t routines so that the call-site for the out-of-line ll/sc sequences is patched with an LSE atomic instruction when we detect that the CPU supports it. If binutils is not recent enough to assemble the LSE instructions, then the ll/sc sequences are inlined as though CONFIG_ARM64_LSE_ATOMICS=n. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/Makefile | 13 +- arch/arm64/include/asm/atomic.h | 4 +- arch/arm64/include/asm/atomic_ll_sc.h | 12 - arch/arm64/include/asm/atomic_lse.h | 400 +++++++++++++++++++++++++--------- arch/arm64/include/asm/lse.h | 34 +++ arch/arm64/kernel/setup.c | 3 + 6 files changed, 342 insertions(+), 124 deletions(-) commit c0385b24af15020a1e505f2c984db0d7c0d017e1 Author: Will Deacon Date: Tue Feb 3 12:39:03 2015 +0000 arm64: introduce CONFIG_ARM64_LSE_ATOMICS as fallback to ll/sc atomics In order to patch in the new atomic instructions at runtime, we need to generate wrappers around the out-of-line exclusive load/store atomics. This patch adds a new Kconfig option, CONFIG_ARM64_LSE_ATOMICS. which causes our atomic functions to branch to the out-of-line ll/sc implementations. To avoid the register spill overhead of the PCS, the out-of-line functions are compiled with specific compiler flags to force out-of-line save/restore of any registers that are usually caller-saved. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/Kconfig | 12 +++ arch/arm64/include/asm/atomic.h | 9 ++ arch/arm64/include/asm/atomic_ll_sc.h | 19 +++- arch/arm64/include/asm/atomic_lse.h | 170 ++++++++++++++++++++++++++++++++++ arch/arm64/lib/Makefile | 13 +++ arch/arm64/lib/atomic_ll_sc.c | 3 + 6 files changed, 224 insertions(+), 2 deletions(-) commit 8c10342cb48f3140d9abeadcfd2fa6625d447282 Author: Maarten Lankhorst Date: Mon Jul 27 13:24:29 2015 +0200 drm/atomic: Update legacy DPMS state during modesets, v3. This is required for DPMS to work correctly, during a modeset the DPMS property should be turned off, unless the state is crtc is made active in which case it should be set to DPMS on. Changes since v1: - Set DPMS to off when a connector is removed from a crtc too. - Update the legacy dpms property too. - Add an exception for the legacy dpms paths, it updates its own state. Changes since v2: - Do not preserve dpms property. Cc: dri-devel@lists.freedesktop.org Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 26 ++++++++++++++++++++------ drivers/gpu/drm/i915/intel_display.c | 9 +-------- 2 files changed, 21 insertions(+), 14 deletions(-) commit 9a69a9ac20f7f3435dd18019f902351c61a9ad1d Author: Maarten Lankhorst Date: Tue Jul 21 11:34:55 2015 +0200 drm: Make the connector dpms callback return a value, v2. This is required to properly handle failing dpms calls. When making a wait in i915 interruptible, I've noticed that the dpms sequence could fail with -ERESTARTSYS because it was waiting interruptibly for flips. So from now on allow drivers to fail in their connector dpms callback. Encoder and crtc dpms callbacks are unaffected. Changes since v1: - Update kerneldoc for the drm helper functions. Signed-off-by: Maarten Lankhorst [danvet: Resolve conflicts due to different merge order.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 28 ++++++++++++++++------------ drivers/gpu/drm/drm_crtc.c | 4 ++-- drivers/gpu/drm/drm_crtc_helper.c | 9 ++++++--- drivers/gpu/drm/i915/intel_crt.c | 8 +++++--- drivers/gpu/drm/i915/intel_display.c | 6 ++++-- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_dvo.c | 8 +++++--- drivers/gpu/drm/i915/intel_sdvo.c | 8 +++++--- drivers/gpu/drm/nouveau/nouveau_connector.c | 4 ++-- drivers/gpu/drm/radeon/radeon_dp_mst.c | 3 ++- drivers/gpu/drm/tegra/dsi.c | 3 ++- drivers/gpu/drm/tegra/hdmi.c | 5 +++-- drivers/gpu/drm/tegra/rgb.c | 5 +++-- drivers/gpu/drm/tegra/sor.c | 3 ++- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 3 ++- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 2 +- include/drm/drm_atomic_helper.h | 4 ++-- include/drm/drm_crtc.h | 2 +- include/drm/drm_crtc_helper.h | 2 +- 19 files changed, 65 insertions(+), 44 deletions(-) commit 613d2b272177c61c7cdb83be75a6e4c378d50ff9 Author: Maarten Lankhorst Date: Tue Jul 21 13:28:58 2015 +0200 drm/atomic: pass old crtc state to atomic_begin/flush. In intel it's useful to keep track of some state changes with old crtc state vs new state, for example to disable initial planes or when a modeset's prevented during fastboot. Cc: dri-devel@lists.freedesktop.org Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira [danvet: squash in fixup for exynos provided by Maarten.] Signed-off-by: Daniel Vetter drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 6 ++++-- drivers/gpu/drm/drm_atomic_helper.c | 8 ++++---- drivers/gpu/drm/drm_plane_helper.c | 4 ++-- drivers/gpu/drm/exynos/exynos_drm_crtc.c | 6 ++++-- drivers/gpu/drm/i915/intel_display.c | 10 ++++++---- drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 6 ++++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 6 ++++-- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 6 ++++-- drivers/gpu/drm/sti/sti_drm_crtc.c | 6 ++++-- drivers/gpu/drm/tegra/dc.c | 6 ++++-- include/drm/drm_crtc_helper.h | 6 ++++-- 11 files changed, 44 insertions(+), 26 deletions(-) commit 71a5a508436332ac40f688ef06e61628f25f3e5b Author: Vaishali Thakkar Date: Sat Jul 25 09:23:16 2015 +0530 power_supply: bq24735: Convert to using managed resources Use managed resource functions like devm_kasprintf and devm_power_supply_register in bq24735_charger_probe. To be compatible with the change, replace various gotos by direct returns and drop unneeded labels. Also, remove bq24735_charger_remove as it is now redundant. Signed-off-by: Vaishali Thakkar Signed-off-by: Sebastian Reichel drivers/power/bq24735-charger.c | 51 +++++++++++------------------------------ 1 file changed, 13 insertions(+), 38 deletions(-) commit d964b7229e7f94428a1e8d26999adffbe8a69db2 Author: Will Deacon Date: Wed Feb 4 12:17:55 2015 +0000 arm64: alternatives: add cpu feature for lse atomics Add a CPU feature for the LSE atomic instructions, so that they can be patched in at runtime when we detect that they are supported. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/cpufeature.h | 3 ++- arch/arm64/kernel/setup.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) commit 40a1db2434a1b62332b1af25cfa14d7b8c0301fe Author: Will Deacon Date: Mon Jan 26 18:46:19 2015 +0000 arm64: elf: advertise 8.1 atomic instructions as new hwcap The ARM v8.1 architecture introduces new atomic instructions to the A64 instruction set for things like cmpxchg, so advertise their availability to userspace using a hwcap. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/uapi/asm/hwcap.h | 1 + arch/arm64/kernel/setup.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) commit c275f76bb4ce16fd0205da1e15f31b875013678e Author: Will Deacon Date: Tue Feb 3 11:26:53 2015 +0000 arm64: atomics: move ll/sc atomics into separate header file In preparation for the Large System Extension (LSE) atomic instructions introduced by ARM v8.1, move the current exclusive load/store (LL/SC) atomics into their own header file. Reviewed-by: Steve Capper Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/atomic.h | 180 +--------------------------- arch/arm64/include/asm/atomic_ll_sc.h | 215 ++++++++++++++++++++++++++++++++++ 2 files changed, 221 insertions(+), 174 deletions(-) commit 3309aa494186b0c5364d812ae000955262590655 Author: Jun Nie Date: Mon Jul 27 14:59:06 2015 +0800 power/reset: zx: Remove unnecessary include file Including ARM related header file cause build failure in i386 build because COMILE_TEST also involve building zx driver. Remove the unnecessary include file. Signed-off-by: Jun Nie Signed-off-by: Sebastian Reichel drivers/power/reset/zx-reboot.c | 2 -- 1 file changed, 2 deletions(-) commit 144e9697a9e70b5549fd52df90111f1410bcbfeb Author: Will Deacon Date: Thu Apr 30 18:55:50 2015 +0100 arm64: cpufeature.h: add missing #include of kernel.h cpufeature.h makes use of DECLARE_BITMAP, which in turn relies on the BITS_TO_LONGS and DIV_ROUND_UP macros. This patch includes kernel.h in cpufeature.h to prevent all users having to do the same thing. Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/cpufeature.h | 2 ++ 1 file changed, 2 insertions(+) commit 9511ca19dafbd503fb467d451fe331a6008f08cf Author: Will Deacon Date: Wed Jul 22 18:25:52 2015 +0100 arm64: rwlocks: don't fail trylock purely due to contention STXR can fail for a number of reasons, so don't fail an rwlock trylock operation simply because the STXR reported failure. I'm not aware of any issues with the current code, but this makes it consistent with spin_trylock and also other architectures (e.g. arch/arm). Reported-by: Catalin Marinas Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/spinlock.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit fc9eb93cd4c5d819e9a68a7906d78ce37f42d8cd Merge: 772d683 41b9e9f Author: Will Deacon Date: Mon Jul 27 14:21:15 2015 +0100 Merge branch 'locking/arch-atomic' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into aarch64/for-next/core Merge in PeterZ's logical atomic ops so that we can implement them in our subsequent LSE atomics. commit 802bb9b67de75ea75638b8b1ca4b21a76a03bebf Author: Linus Walleij Date: Wed Jul 22 19:21:13 2015 +0200 pinctrl: nomadik: depromote GPIO to subsystem_init() We no longer have to do GPIO initialization before the pinctrl initialization, instead we can initialize the pinctrl portions of the driver first and then the GPIO. Thus we can move GPIO initialization to a subsystem_initcall(), but not yet to a device_initcall(). Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ee04139d916a61454850f3e3c687f50f891fc8bd Author: Linus Walleij Date: Thu Jul 23 09:09:49 2015 +0200 pinctrl/ARM: move GPIO and pinctrl deps to device tree This gets the GPIO ranges out of the driver and into the device tree where they belong. Standard DT bindings already exist for this. Since no systems with this are deployed we can just augment all device trees and the drivers at the same time and simplify the world. This also defines the array of GPIO chips related to the pin controller. Cc: arm@kernel.org Acked-by: Olof Johansson Signed-off-by: Linus Walleij arch/arm/boot/dts/ste-dbx5x0.dtsi | 23 ++++++++++++---------- arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 8 +++++++- drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c | 21 -------------------- drivers/pinctrl/nomadik/pinctrl-nomadik-db8540.c | 24 ----------------------- drivers/pinctrl/nomadik/pinctrl-nomadik-stn8815.c | 16 --------------- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 17 ---------------- drivers/pinctrl/nomadik/pinctrl-nomadik.h | 4 ---- 7 files changed, 20 insertions(+), 93 deletions(-) commit d705073cdafa75286970dd30f722d0df584bae54 Author: Rabin Vincent Date: Wed Jul 22 15:05:19 2015 +0200 gpio: etraxfs: add support for ARTPEC-3 Add support for the GIO block in the ARTPEC-3 SoC. The basic functionality is essentialy the same as the version in the ETRAX FS, except for a different set of ports, including a read-only port. Cc: devicetree@vger.kernel.org Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-etraxfs.txt | 3 +- drivers/gpio/gpio-etraxfs.c | 66 ++++++++++++++++++++-- 2 files changed, 62 insertions(+), 7 deletions(-) commit 91492a44b998cf762150de8f1b40bda1902e8ea7 Author: Rabin Vincent Date: Wed Jul 22 15:05:18 2015 +0200 gpio: generic: support input-only chips Allow chips to indicates that they are input-only and thus cannot set the output value. This will be used by the gpio-etraxfs driver. Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij drivers/gpio/gpio-generic.c | 23 ++++++++++++++++++++--- include/linux/basic_mmio_gpio.h | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) commit 1296fba1a397b173d45534885a0934a7c005d7e3 Author: Rabin Vincent Date: Wed Jul 22 15:05:17 2015 +0200 gpio: etraxfs: fix set register flag BGPIO_F_UNREADABLE_REG_SET is incorrect, since the set register _is_ readable. What's really required is BGPIO_F_READ_OUTPUT_REG_SET: reading the set register reads the set output value. Signed-off-by: Rabin Vincent Signed-off-by: Linus Walleij drivers/gpio/gpio-etraxfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8323c6b03533ac870fb665277e6dad7ebf7e4d3 Author: Maxime Ripard Date: Mon Jul 27 14:41:57 2015 +0200 pinctrl: sunxi: Add custom irq_domain_ops The current interrupt parsing code was working by accident, because the default was actually parsing the first node of interrupts. While that was mostly working (and the flags were actually ignored), this binding has never been documented, and doesn't work with SoCs that have multiple interrupt banks anyway. Add a proper interrupt xlate function, that uses the same description than the GPIOs ( ), that will make things less confusing. The EINT number will still be used as the hwirq number, but won't be exposed through the DT. Signed-off-by: Maxime Ripard Reviewed-by: Hans de Goede Signed-off-by: Linus Walleij .../bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 37 +++++++++++++++++++++- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 35 ++++++++++++++++++-- 2 files changed, 69 insertions(+), 3 deletions(-) commit a3ff83d205ed48fadfc30ba9502dcf37a5d09b27 Author: Masahiro Yamada Date: Sat Jul 25 16:23:24 2015 +0900 MAINTAINERS: add entries for UniPhier device trees and drivers This clarifies the location of the files maintained by me. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson MAINTAINERS | 3 +++ 1 file changed, 3 insertions(+) commit 622372309f292efe21dabaf46122a147864d239f Author: Masahiro Yamada Date: Sat Jul 25 16:23:23 2015 +0900 ARM: dts: UniPhier: add UART and USB pinmux nodes The DT nodes in uniphier-pinctrl.dtsi provide the default pinctrl settings that would be suitable for most boards. You can still override them in your board DTS file if necessary. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 16 ++++++ arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 14 ++++++ arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 16 ++++++ arch/arm/boot/dts/uniphier-pinctrl.dtsi | 85 ++++++++++++++++++++++++++++++++ 4 files changed, 131 insertions(+) commit 55d945b249eae485b57172fcba51f8629cd97c39 Author: Masahiro Yamada Date: Sat Jul 25 16:23:22 2015 +0900 ARM: dts: UniPhier: add pinctrl device nodes Add the pinctrol device nodes for UniPhier PH1-LD4, PH1-Pro4, and PH1-sLD8. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 6 ++++++ arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 6 ++++++ arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 6 ++++++ 3 files changed, 18 insertions(+) commit 8cd14702be9bcb2ec45e1ec30af04aea9b965708 Author: Ulrich Hecht Date: Tue Jul 21 11:08:50 2015 +0200 gpio: rcar: Add r8a7795 (R-Car H3) support R-Car Gen3's GPIO blocks are identical to Gen2's in every respect. Signed-off-by: Ulrich Hecht Acked-by: Simon Horman Acked-by: Kuninori Morimoto Signed-off-by: Linus Walleij Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + drivers/gpio/gpio-rcar.c | 4 ++++ 2 files changed, 5 insertions(+) commit a9a7f260e0f7d2bf743a81c6c2ca660bd17dd64b Merge: d7018b1 6d6db34 Author: Olof Johansson Date: Mon Jul 27 14:49:24 2015 +0200 Merge tag 'pxa-for-4.3-v2' of https://github.com/rjarzmik/linux into next/soc This is the pxa changes for v4.3 cycle. There is mostly one evolution on the dma side, to enable cooperation of the legacy pxa DMA API, and the new dmaengine API. Once all drivers using DMA are converted, the legacy DMA API should be removed. * tag 'pxa-for-4.3-v2' of https://github.com/rjarzmik/linux: ARM: pxa: Use setup_timer ARM: pxa: Use module_platform_driver ARM: pxa: transition to dmaengine phase 1 Signed-off-by: Olof Johansson commit 4dbada2be460dc5568fa27784ef626232c28061f Author: Sebastian Andrzej Siewior Date: Tue Jul 21 18:26:51 2015 +0200 gpio: omap: use raw locks for locking This patch converts gpio_bank.lock from a spin_lock into a raw_spin_lock. The call path is to access this lock is always under a raw_spin_lock, for instance - __setup_irq() holds &desc->lock with irq off + __irq_set_trigger() + omap_gpio_irq_type() - handle_level_irq() (runs with irqs off therefore raw locks) + mask_ack_irq() + omap_gpio_mask_irq() This fixes the obvious backtrace on -RT. However the locking vs context is not and this is not limited to -RT: - omap_gpio_irq_type() is called with IRQ off and has an conditional call to pm_runtime_get_sync() which may sleep. Either it may happen or it may not happen but pm_runtime_get_sync() should not be called with irqs off. - omap_gpio_debounce() is holding the lock with IRQs off. + omap2_set_gpio_debounce() + clk_prepare_enable() + clk_prepare() this one might sleep. The number of users of gpiod_set_debounce() / gpio_set_debounce() looks low but still this is not good. Acked-by: Javier Martinez Canillas Acked-by: Santosh Shilimkar Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Linus Walleij drivers/gpio/gpio-omap.c | 80 ++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) commit 743ca9e9f8e936b9575ced7a41d30f4dc4803a6f Merge: d1005cc f5887fe Author: Olof Johansson Date: Mon Jul 27 14:48:07 2015 +0200 Merge tag 'omap-for-v4.3/dt-dm814x' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt omap dts changes for minimal dm814x support for v4.3 merge window. These changes make dm814x boot and adds minimal board support for dm814x-evm and hp t410. Note that to boot these depend on omap-for-v4.3/soc-signed branch, but as dm814x support is currently broken, these can be merged separately with the other dts changes. * tag 'omap-for-v4.3/dt-dm814x' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Add custom abort handler for t410 ARM: dts: Add minimal support for HP T410 ARM: dts: Add minimal dts support for dm8148-evm ARM: dts: Add minimal clocks for dm814x ARM: dts: Add minimal dm814x support Signed-off-by: Olof Johansson commit e324957096dbf5bbf1491231c9912c3f5d0bc216 Author: Masahiro Yamada Date: Tue Jul 21 15:25:27 2015 +0900 pinctrl: use dev_err() to show message in pinmux_func_name_to_selector() Use dev_err() rather than pr_err() to display the error message. pinctrl_dev_get_name(pctldev) is no longer necessary because dev_err() shows which device the message is related to. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/pinmux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2b38ca6d1aaf9149f1286c93b131f3e62c3ac63b Author: Masahiro Yamada Date: Tue Jul 21 15:25:26 2015 +0900 pinctrl: use dev_err() to show message in pinctrl_register_one_pin() Use dev_err() rather than pr_err() to display the error message. (Besides, dev_err() is already used 7 lines below in this function.) Also, drop the redundant information "on %s" because dev_err() shows which device the message is related to. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 527c465a3c8716d93201ae34b7fc52679610596d Merge: fbce23a 5ce000b Author: Takashi Iwai Date: Mon Jul 27 14:43:29 2015 +0200 Merge branch 'for-linus' into for-next ... to make easier developing HDA ext code. commit ba53219809f4b3a08f21600a0f3b675620d518bc Author: Benjamin Tissoires Date: Fri Jul 24 12:02:22 2015 -0400 HID: core: do not reject devices when they declare too many usages Some device present proprietary collections with a usage min of 0x00 and a usage max of 0xffff. hid-core currently reject them while most of the time this is harmless. Let's ignore the exceeding usages, and hope for the best. Reported-by: Simon Wörner Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit d1aceb80c685b0735268fba296523f5d7264ff22 Author: Masahiro Yamada Date: Tue Jul 21 14:45:40 2015 +0900 gpio: remove unneeded initializer in gpiochip_add_to_list() This variable is used as an iterator and initialized in the list_for_each() loop. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d7018b15581797583e7bed351416b0b06abe3c53 Merge: c3d3dbd 24da741 Author: Olof Johansson Date: Mon Jul 27 14:36:53 2015 +0200 Merge tag 'omap-for-v4.3/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc SoC changes for omaps for v4.3 merge window: - Clean-up omap4_local_timer_init to drop deal legacy code - Provide proper IO map table for dra7 - Clean-up IOMMU layer init code as it now uses IOMMU framework - A series of changes to fix up dm814x support that's been in a broken half-merged state for quite some time - A series of PRCM and hwmod changes via Paul Walmsley : - I/O wakeup support for AM43xx - register lock and unlock support to the hwmod code (needed for the RTC IP blocks on some chips) - several fixes for sparse warnings and an unnecessary null pointer test - a DRA7xx clockdomain configuration workaround, to deal with some hardware bugs * tag 'omap-for-v4.3/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (21 commits) ARM: OMAP2: Add minimal dm814x hwmod support ARM: OMAP2+: Prepare dm81xx hwmod code for adding minimal dm814x support ARM: PRM: AM437x: Enable IO wakeup feature ARM: OMAP4+: PRM: Add AM437x specific data ARM: OMAP: PRM: Remove hardcoding of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 register offsets ARM: dts: AM4372: Add PRCM IRQ entry ARM: AM43xx: Add the PRM IRQ register offsets ARM: OMAP4: PRM: Remove hardcoding of PRM_IO_PMCTRL_OFFSET register ARM: OMAP2+: Add support for initializing dm814x clocks ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x ARM: OMAP2+: Add minimal clockdomains for dm814x ARM: OMAP2+: Fix scm compatible for dm814x ARM: OMAP2+: Fix dm814x DT_MACHINE_START ARM: OMAP2+: Remove module references from IOMMU machine layer ARM: DRA7: Provide proper IO map table ARM: OMAP2+: Clean up omap4_local_timer_init ARM: OMAP2: Delete an unnecessary check ARM: OMAP2+: sparse: add missing function declarations ARM: OMAP2+: sparse: add missing static declaration ARM: OMAP2+: hwmod: add support for lock and unlock hooks ... Signed-off-by: Olof Johansson commit 97de17fde7cc7c15b402b911397780b51834a38b Merge: 3888c38 821e79c Author: Olof Johansson Date: Mon Jul 27 14:35:39 2015 +0200 Merge tag 'renesas-defconfig-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/defconfig Renesas ARM Based SoC Defconfig Updates for v4.3 * Remove marzen_defconfig * shmobile_defconfig and multi_v7_defconfig - Enable DPCM Sound Card - Enable r8a7793/gose platform * tag 'renesas-defconfig-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: Remove marzen_defconfig ARM: multi_v7_defconfig: add Renesas DPCM Sound Card ARM: shmobile: defconfig: add Renesas DPCM Sound Card ARM: multi_v7_defconfig: Enable shmobile r8a7793/gose platform ARM: shmobile: Enable gose board in multiplatform defconfig Signed-off-by: Olof Johansson commit c3d3dbddd3acbe93501a9500ad979af393f78ec8 Merge: 7bd1584 765b500 Author: Olof Johansson Date: Mon Jul 27 14:33:56 2015 +0200 Merge tag 'renesas-soc-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc Renesas ARM Based SoC Updates for v4.3 * Add basic support for gose/r8a7793 * tag 'renesas-soc-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: gose: enable R-Car Gen2 regulator quirk ARM: shmobile: Basic r8a7793 SoC support Signed-off-by: Olof Johansson commit 926631c2012d22ab507ace95b3e5f5621f2c72b7 Author: Dan Carpenter Date: Fri Jul 24 14:05:33 2015 +0300 ext4: memory leak on error in ext4_symlink() We should release "sd" before returning. Fixes: 0fa12ad1b285 ('ext4: Handle error from dquot_initialize()') Signed-off-by: Dan Carpenter Signed-off-by: Jan Kara fs/ext4/namei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1005cc96b292889a66a946b636394cb5e9a524e Merge: 6951630 7fd6e11 Author: Olof Johansson Date: Mon Jul 27 14:28:23 2015 +0200 Merge tag 'renesas-dt2-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Second Round of Renesas ARM Based SoC DT Updates for v4.3 * Add Audio MIX and CTU support to r8a779[01] SoCs * Correct IRQ sense for adv7511 on lager board * Add sound label to koelsch and lager boards * Add IIC support to emev2 SoC * tag 'renesas-dt2-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7791: Add Audio MIX support on DTSI ARM: shmobile: r8a7791: Add Audio CTU support on DTSI ARM: shmobile: r8a7790: Add Audio MIX support on DTSI ARM: shmobile: r8a7790: Add Audio CTU support on DTSI ARM: shmobile: lager: Fix adv7511 IRQ sensing ARM: shmobile: koelsch: add sound label on DTS ARM: shmobile: lager: add sound label on DTS ARM: shmobile: emev2: kzm9d: enable IIC busses ARM: shmobile: emev2: add IIC cores to dtsi Signed-off-by: Olof Johansson commit a1156814606c0bd5f8725ff7feac21e58bc3b16d Merge: 9521f49 151dd34 Author: Olof Johansson Date: Mon Jul 27 14:27:13 2015 +0200 Merge tag 'renesas-cleanup2-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup Second Round of Renesas ARM Based SoC Cleanup for v4.3 * Silence APMU build warnings * tag 'renesas-cleanup2-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: apmu: silence build warnings Signed-off-by: Olof Johansson commit 69516303449aa9afac6e52d5b187322406364c7f Merge: a022708 2303553 Author: Olof Johansson Date: Mon Jul 27 14:26:03 2015 +0200 Merge tag 'stm32-dt-for-v4.3-1b' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/stm32 into next/dt STM32 DT updates for v4.3, round 1. Highlights: ----------- - Add RCC clocks support to STM32F429 - Add STM32429i-EVAL board support - Use stdout-path instead of linux,stdout-path in Disco board * tag 'stm32-dt-for-v4.3-1b' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/stm32: ARM: dts: Use stdout-path in STM32F429 Discovery board ARM: dts: Add STM32429i-EVAL board support ARM: dts: stm32f429: Adopt STM32F4 clock driver Signed-off-by: Olof Johansson commit 7bd1584bd5dc20679fa9ac97391bdcefc19df202 Merge: d7030a0 50de4dd Author: Olof Johansson Date: Mon Jul 27 14:25:23 2015 +0200 Merge tag 'sti-soc-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/soc STi SoC updates for v4.3, round 1. Highlights: ----------- - Add code to release secondary cores from holding pen. - Remove useless call to trace_hardirqs_off() in secondary core init function. * tag 'sti-soc-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti: ARM: STi: Remove platform call to trace_hardirqs_off() ARM: STi: Add code to release secondary cores from holding pen. Signed-off-by: Olof Johansson commit a02270836bd7688852a8d0513f91e6f6ee0b3097 Merge: 9e3cffd 7944450 Author: Olof Johansson Date: Mon Jul 27 14:23:46 2015 +0200 Merge tag 'sti-dt-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/dt STi DT update for v4.3, round 1. Highlights: ----------- - Add pinctrl configurations for transport stream channels - Add cpu-release-addr properties to STiH407 and STiH418 - Add PWM regulator support so STIH407 family - Add BDISP node to STiH407 * tag 'sti-dt-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti: ARM: DT: STiH410: Add bdisp dt nodes ARM: STi: STiH407: Add PWM Regulator node ARM: STi: STiH407: Move PWM nodes STiH407 => STiH407-family ARM: STi: DT: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x ARM: STi: DT: STiH418: Add cpu-release-addr dt property. ARM: STi: DT: STiH407: Add cpu-release-addr dt property. ARM: STi: DT: Add STiH407 family mtsin0 pinctrl configuration ARM: STi: DT: Add STiH407 family tsout1 pinctrl configuration ARM: STi: DT: Add STiH407 family tsout0 pinctrl configuration ARM: STi: DT: Add STiH407 family tsin5 pinctrl configuration ARM: STi: DT: Add STiH407 family tsin4 pinctrl configuration ARM: STi: DT: Add STiH407 family tsin3 pinctrl configuration ARM: STi: DT: Add STiH407 family tsin2 pinctrl configuration ARM: STi: DT: Add STiH407 family tsin1 pinctrl configuration ARM: STi: DT: Add STiH407 family tsin0 pinctrl configuration Signed-off-by: Olof Johansson commit 3888c381d88fc8d92c6d46b5a91ae77a5cb1c4cc Merge: f1d28f0 5ecd29a Author: Olof Johansson Date: Mon Jul 27 14:22:59 2015 +0200 Merge tag 'sti-defconfig-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/defconfig STi defconfig for v4.3, round 1 Highlights: ----------- - Enable support ST's PWM driver in multi_v7 - Enable support PWM regulator in multi_v7 * tag 'sti-defconfig-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti: ARM: multi_v7_defconfig: Enable support for PWM Regulators ARM: multi_v7_defconfig: Enable ST's PWM driver Signed-off-by: Olof Johansson commit 41b9e9fcc1c44b84a785115058ce9c703e3fca6e Author: Peter Zijlstra Date: Mon Jul 13 12:55:58 2015 +0200 atomic: Add simple atomic_t tests Add a few atomic_t tests, gets some compile coverage for the new operations. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner lib/atomic64_test.c | 68 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 21 deletions(-) commit 805de8f43c20ba8b479bb598b543fa86b20067f6 Author: Peter Zijlstra Date: Fri Apr 24 01:12:32 2015 +0200 atomic: Replace atomic_{set,clear}_mask() usage Replace the deprecated atomic_{set,clear}_mask() usage with the now ubiquous atomic_{or,andnot}() functions. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/blackfin/mach-common/smp.c | 2 +- arch/m32r/kernel/smp.c | 4 +-- arch/mn10300/mm/tlb-smp.c | 2 +- arch/s390/kernel/time.c | 4 +-- arch/s390/kvm/interrupt.c | 30 ++++++++++---------- arch/s390/kvm/kvm-s390.c | 32 ++++++++++----------- drivers/gpu/drm/i915/i915_drv.c | 2 +- drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 4 +-- drivers/s390/scsi/zfcp_aux.c | 2 +- drivers/s390/scsi/zfcp_erp.c | 62 ++++++++++++++++++++--------------------- drivers/s390/scsi/zfcp_fc.c | 8 +++--- drivers/s390/scsi/zfcp_fsf.c | 26 ++++++++--------- drivers/s390/scsi/zfcp_qdio.c | 14 +++++----- 14 files changed, 97 insertions(+), 97 deletions(-) commit de9e432cb5de1bf2952919dc0b22e4bec0ed8d53 Author: Peter Zijlstra Date: Fri Apr 24 01:12:32 2015 +0200 atomic: Collapse all atomic_{set,clear}_mask definitions Move the now generic definitions of atomic_{set,clear}_mask() into linux/atomic.h to avoid endless and pointless repetition. Also, provide an atomic_andnot() wrapper for those few archs that can implement that. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/arc/include/asm/atomic.h | 10 ---------- arch/blackfin/include/asm/atomic.h | 10 ---------- arch/frv/include/asm/atomic.h | 10 ---------- arch/h8300/include/asm/atomic.h | 10 ---------- arch/m32r/include/asm/atomic.h | 11 ----------- arch/m68k/include/asm/atomic.h | 10 ---------- arch/metag/include/asm/atomic_lnkget.h | 10 ---------- arch/metag/include/asm/atomic_lock1.h | 10 ---------- arch/mn10300/include/asm/atomic.h | 24 ------------------------ arch/powerpc/kernel/misc_32.S | 19 ------------------- arch/s390/include/asm/atomic.h | 10 ---------- arch/sh/include/asm/atomic.h | 10 ---------- arch/x86/include/asm/atomic.h | 10 ---------- arch/xtensa/include/asm/atomic.h | 10 ---------- include/asm-generic/atomic.h | 10 ---------- include/linux/atomic.h | 25 +++++++++++++++++++++++++ 16 files changed, 25 insertions(+), 174 deletions(-) commit e6942b7de2dfe44ebde9bae57dadece5abca9de8 Author: Peter Zijlstra Date: Wed Apr 23 19:32:50 2014 +0200 atomic: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/alpha/include/asm/atomic.h | 1 - arch/arc/include/asm/atomic.h | 1 - arch/arm/include/asm/atomic.h | 1 - arch/arm64/include/asm/atomic.h | 1 - arch/avr32/include/asm/atomic.h | 2 -- arch/blackfin/include/asm/atomic.h | 2 -- arch/frv/include/asm/atomic.h | 2 -- arch/h8300/include/asm/atomic.h | 2 -- arch/hexagon/include/asm/atomic.h | 2 -- arch/ia64/include/asm/atomic.h | 2 -- arch/m32r/include/asm/atomic.h | 2 -- arch/m68k/include/asm/atomic.h | 2 -- arch/metag/include/asm/atomic_lnkget.h | 2 -- arch/mips/include/asm/atomic.h | 2 -- arch/mn10300/include/asm/atomic.h | 2 -- arch/parisc/include/asm/atomic.h | 2 -- arch/powerpc/include/asm/atomic.h | 2 -- arch/s390/include/asm/atomic.h | 2 -- arch/sh/include/asm/atomic-grb.h | 2 -- arch/sparc/include/asm/atomic_32.h | 2 -- arch/sparc/include/asm/atomic_64.h | 2 -- arch/tile/include/asm/atomic_32.h | 2 -- arch/tile/include/asm/atomic_64.h | 2 -- arch/x86/include/asm/atomic.h | 2 -- arch/xtensa/include/asm/atomic.h | 2 -- include/asm-generic/atomic.h | 21 ++++++++++++--------- include/asm-generic/atomic64.h | 4 ++++ include/linux/atomic.h | 13 ------------- lib/atomic64.c | 3 +++ 29 files changed, 19 insertions(+), 68 deletions(-) commit 2957c035395e492463d7f589af9dd32388967bbb Author: Chris Metcalf Date: Thu Jul 9 16:38:17 2015 -0400 tile: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. For tilegx, these are relatively straightforward; the architecture provides atomic "or" and "and", both 32-bit and 64-bit. To support xor we provide a loop using "cmpexch". For the older 32-bit tilepro architecture, we have to extend the set of low-level assembly routines to include 32-bit "and", as well as all three 64-bit routines. Somewhat confusingly, some 32-bit versions are already used by the bitops inlines, with parameter types appropriate for bitops, so we have to do a bit of casting to match "int" to "unsigned long". Signed-off-by: Chris Metcalf Signed-off-by: Peter Zijlstra (Intel) Link: http://lkml.kernel.org/r/1436474297-32187-1-git-send-email-cmetcalf@ezchip.com Signed-off-by: Thomas Gleixner arch/tile/include/asm/atomic_32.h | 30 ++++++++++++++++++++++++++++ arch/tile/include/asm/atomic_64.h | 42 +++++++++++++++++++++++++++++++++++++++ arch/tile/lib/atomic_32.c | 23 +++++++++++++++++++++ arch/tile/lib/atomic_asm_32.S | 4 ++++ 4 files changed, 99 insertions(+) commit 73ada3700bbb0a4c7cc06ea8d74e93c689f90cdb Author: Peter Zijlstra Date: Fri Jul 10 12:55:45 2015 +0200 h8300: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and} These will replace the atomic_{set,clear}_mask functions that are available on some archs. Also rework the atomic implementation in terms of CPP macros to avoid the typical repetition -- I seem to have missed this arch the last time around when I did that. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/h8300/include/asm/atomic.h | 135 ++++++++++++---------------------------- 1 file changed, 40 insertions(+), 95 deletions(-) commit b0d8003ef405c4148b703cdaab1171045c6c3bbd Author: Peter Zijlstra Date: Fri Apr 24 00:49:20 2015 +0200 frv: Rewrite atomic implementation Mostly complete rewrite of the FRV atomic implementation, instead of using assembly files, use inline assembler. The out-of-line CONFIG option makes a bit of a mess of things, but a little CPP trickery gets that done too. FRV already had the atomic logic ops but under a non standard name, the reimplementation provides the generic names and provides the intermediate form required for the bitops implementation. The slightly inconsistent __atomic32_fetch_##op naming is because __atomic_fetch_##op conlicts with GCC builtin functions. The 64bit atomic ops use the inline assembly %Ln construct to access the low word register (r+1), afaik this construct was not previously used in the kernel and is completely undocumented, but I found it in the FRV GCC code and it seems to work. FRV had a non-standard definition of atomic_{clear,set}_mask() which would work types other than atomic_t, the one user relying on that (arch/frv/kernel/dma.c) got converted to use the new intermediate form. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/frv/include/asm/atomic.h | 119 +++++++++++++------------ arch/frv/include/asm/atomic_defs.h | 172 +++++++++++++++++++++++++++++++++++++ arch/frv/include/asm/bitops.h | 99 +++------------------ arch/frv/kernel/dma.c | 6 +- arch/frv/kernel/frv_ksyms.c | 5 -- arch/frv/lib/Makefile | 2 +- arch/frv/lib/atomic-lib.c | 7 ++ arch/frv/lib/atomic-ops.S | 110 ------------------------ arch/frv/lib/atomic64-ops.S | 94 -------------------- 9 files changed, 259 insertions(+), 355 deletions(-) commit 7fc1845dd45a825b3c2b760df342a94f61fb1113 Author: Peter Zijlstra Date: Wed Apr 23 20:28:37 2014 +0200 x86: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/x86/include/asm/atomic.h | 33 +++++++++++++++++++++++++-------- arch/x86/include/asm/atomic64_32.h | 14 ++++++++++++++ arch/x86/include/asm/atomic64_64.h | 15 +++++++++++++++ 3 files changed, 54 insertions(+), 8 deletions(-) commit ae8c35c85be92b79c545c57c2a14c2f8136d3353 Author: Peter Zijlstra Date: Wed Apr 23 20:15:48 2014 +0200 s390: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Acked-by: Heiko Carstens Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/s390/include/asm/atomic.h | 47 +++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 14 deletions(-) commit 2a3ed90f428cab65567c5421ebc0f6c8d02c1216 Author: Peter Zijlstra Date: Wed Apr 23 19:35:00 2014 +0200 xtensa: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/xtensa/include/asm/atomic.h | 85 ++++++++-------------------------------- 1 file changed, 16 insertions(+), 69 deletions(-) commit 304a0d699a3c6103b61d5ea18d56820e7d8e3116 Author: Peter Zijlstra Date: Wed Apr 23 19:40:25 2014 +0200 sparc: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Acked-by: David S. Miller Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/sparc/include/asm/atomic_32.h | 4 ++++ arch/sparc/include/asm/atomic_64.h | 6 ++++++ arch/sparc/lib/atomic32.c | 22 +++++++++++++++++++--- arch/sparc/lib/atomic_64.S | 6 ++++++ arch/sparc/lib/ksyms.c | 3 +++ 5 files changed, 38 insertions(+), 3 deletions(-) commit 658aa51459c2f5284183d35b6dd0beca0e0bfe2f Author: Peter Zijlstra Date: Wed Apr 23 19:44:20 2014 +0200 sh: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/sh/include/asm/atomic-grb.h | 45 ++++++--------------------------------- arch/sh/include/asm/atomic-irq.h | 21 +++--------------- arch/sh/include/asm/atomic-llsc.h | 31 +++------------------------ arch/sh/include/asm/atomic.h | 10 +++++++++ 4 files changed, 22 insertions(+), 85 deletions(-) commit d0b7eb6ff2985c9350fdb297fa5727c35324d4df Author: Peter Zijlstra Date: Wed Apr 23 19:46:23 2014 +0200 powerpc: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Acked-by: Benjamin Herrenschmidt Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/powerpc/include/asm/atomic.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit aebea9359623b58b54242e5daa24e09d6104977b Author: Peter Zijlstra Date: Wed Apr 23 19:47:25 2014 +0200 parisc: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/parisc/include/asm/atomic.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit ddb7573ff68964e7b3b72eeb9cde1384c4c6ba83 Author: Peter Zijlstra Date: Wed Apr 23 19:50:20 2014 +0200 mn10300: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/mn10300/include/asm/atomic.h | 57 +++++++-------------------------------- 1 file changed, 10 insertions(+), 47 deletions(-) commit 27782f2752aca65a241f10fb2d4508c71bb2656b Author: Peter Zijlstra Date: Wed Apr 23 19:51:36 2014 +0200 mips: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Acked-by: Ralf Baechle Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/mips/include/asm/atomic.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 5b4a2f0f91fd4a635f380f847254d23121972e7b Author: Peter Zijlstra Date: Wed Apr 23 19:53:39 2014 +0200 metag: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/metag/include/asm/atomic_lnkget.h | 38 +++++++++------------------------- arch/metag/include/asm/atomic_lock1.h | 21 +++++++------------ 2 files changed, 17 insertions(+), 42 deletions(-) commit 74b1bc505b058efdfef33e775df68d8324bbf8b8 Author: Peter Zijlstra Date: Wed Apr 23 19:56:20 2014 +0200 m68k: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Acked-by: Geert Uytterhoeven Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/m68k/include/asm/atomic.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit c66e45edef51e1f54297ddaf202fc2dd00852734 Author: Peter Zijlstra Date: Wed Apr 23 19:57:49 2014 +0200 m32r: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/m32r/include/asm/atomic.h | 44 ++++++++++-------------------------------- 1 file changed, 10 insertions(+), 34 deletions(-) commit 70ed47390d10a7351e44c3a07c5de376780cb6c1 Author: Peter Zijlstra Date: Wed Apr 23 20:00:01 2014 +0200 ia64: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/ia64/include/asm/atomic.h | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) commit 610f7ba93b1e4cda7370f367a6042cbda61227bb Author: Peter Zijlstra Date: Wed Apr 23 20:00:54 2014 +0200 hexagon: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/hexagon/include/asm/atomic.h | 6 ++++++ 1 file changed, 6 insertions(+) commit d835b6c4cc02507b3bf3f8ee6c86857cf0ee67ab Author: Peter Zijlstra Date: Thu Apr 23 21:44:42 2015 +0200 blackfin: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. TODO: use inline asm or at least asm macros to collapse the lot. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/blackfin/include/asm/atomic.h | 28 +++++++++++++++++++++------- arch/blackfin/kernel/bfin_ksyms.c | 7 ++++--- arch/blackfin/mach-bf561/atomic.S | 30 +++++++++++++++--------------- 3 files changed, 40 insertions(+), 25 deletions(-) commit f8a570e270bf62363cd498ac2ac8ea07a76ad4d6 Author: Peter Zijlstra Date: Wed Apr 23 20:02:20 2014 +0200 avr32: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/avr32/include/asm/atomic.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 22288b40e2c7ab484a08a03df32782a67903912c Author: Peter Zijlstra Date: Wed Apr 23 20:03:13 2014 +0200 arm64: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/arm64/include/asm/atomic.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 125897908c718972351b589da89b7f990892d4df Author: Peter Zijlstra Date: Wed Apr 23 20:04:39 2014 +0200 arm: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/arm/include/asm/atomic.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit cda7e4137a4e39c7d877b6ed41da13a5b30dd2cf Author: Peter Zijlstra Date: Wed Apr 23 20:06:20 2014 +0200 arc: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Acked-by: Vineet Gupta Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/arc/include/asm/atomic.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 212d3be102d73dce70cc12f39dce4e0aed2c025b Author: Peter Zijlstra Date: Wed Apr 23 20:07:47 2014 +0200 alpha: Provide atomic_{or,xor,and} Implement atomic logic ops -- atomic_{or,xor,and}. These will replace the atomic_{set,clear}_mask functions that are available on some archs. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner arch/alpha/include/asm/atomic.h | 43 +++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 15 deletions(-) commit 56d1defe0bbddaa97d6e74b51490904130fd4f1d Author: Peter Zijlstra Date: Wed Jul 15 15:47:25 2015 +0200 atomic: Prepare generic atomic implementation for logic ops Clean up the #ifdef guards a bit to prepare for architectures to supply their own logic ops. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Thomas Gleixner include/asm-generic/atomic.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit fb5b778808a1e5d6874c17b2e670c76fab9a1300 Author: Maxime Ripard Date: Mon Jul 20 14:41:12 2015 +0200 pinctrl: sunxi: Add irq_chip name In order to ease the debugging, add a name to the irq_chips. Signed-off-by: Maxime Ripard Reviewed-by: Hans de Goede Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sunxi.c | 2 ++ 1 file changed, 2 insertions(+) commit a0d6de9bdf8d66be458fcda5898a799778169c60 Author: Maxime Ripard Date: Mon Jul 20 14:41:11 2015 +0200 pinctrl: sunxi: Use common functions to change irq_chip and handler The current code uses some custom variable affectations, while we have common functions to do exactly that. Move to the common functions. Signed-off-by: Maxime Ripard Reviewed-by: Hans de Goede Signed-off-by: Linus Walleij drivers/pinctrl/sunxi/pinctrl-sunxi.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit bb379ceb8d9f3599ab9162ebf58d731350f4177a Author: Uwe Kleine-König Date: Thu Jul 16 21:08:24 2015 +0200 dt-bindings: gpio: document bindings supported by gpio-mpc8xxx.c Signed-off-by: Uwe Kleine-König Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/gpio-mpc8xxx.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 0ba69e089827c24f5a4b21124185914f9de4f466 Author: Uwe Kleine-König Date: Thu Jul 16 21:08:23 2015 +0200 gpio: mpc8xxx: add support for MPC5125 The gpio controller on MPC5125 is identical to the MPC5121 register wise, the only difference is that the lines 0..3 are input only instead of 28..31 on MPC5121. Signed-off-by: Uwe Kleine-König Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 59fb3d58c5284b42d93262a4690291e9c0e78fe6 Author: Thomas Gleixner Date: Mon Jul 13 20:42:48 2015 +0000 ia64/iosapic: Use irq_set_chip_handler_name_locked() __irq_set_chip_handler_name_locked() is about to be replaced. Use irq_set_chip_handler_name_locked() instead. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Tony Luck Cc: Fenghua Yu Link: http://lkml.kernel.org/r/20150713131034.723024979@linutronix.de Signed-off-by: Thomas Gleixner arch/ia64/kernel/iosapic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c42574edc0e33227d4ce41ecc0a81a72f37e7ef4 Author: Jiang Liu Date: Mon Jul 13 20:42:46 2015 +0000 ia64/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Cc: Tony Luck Cc: Fenghua Yu Link: http://lkml.kernel.org/r/20150713131034.630273860@linutronix.de Signed-off-by: Thomas Gleixner arch/ia64/kernel/iosapic.c | 2 +- arch/ia64/kernel/irq.c | 6 +++--- arch/ia64/kernel/msi_ia64.c | 4 ++-- arch/ia64/sn/kernel/msi_sn.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) commit bdf76e36765970c64624d32150b656dc6669ddc2 Author: Thomas Gleixner Date: Mon Jul 13 20:38:38 2015 +0000 C6X/meagmod-pic: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Mark Salter Cc: Aurelien Jacquiot Cc: linux-c6x-dev@linux-c6x.org Cc: Julia Lawall Link: http://lkml.kernel.org/r/20150713130429.697731509@linutronix.de Signed-off-by: Thomas Gleixner arch/c6x/platforms/megamod-pic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 284384442fd44f6e01a157745b5549602e6a49f4 Author: Thomas Gleixner Date: Mon Jul 13 20:34:57 2015 +0000 blackfin/irq: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and update was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Steven Miao Cc: Jiang Liu Cc: Julia Lawall Cc: adi-buildroot-devel@lists.sourceforge.net Link: http://lkml.kernel.org/r/20150713125611.731615902@linutronix.de Signed-off-by: Thomas Gleixner arch/blackfin/mach-common/ints-priority.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 247bd4f1f11eb683bdb31850b525fb5e893bd49d Author: Jiang Liu Date: Mon Jul 13 20:34:56 2015 +0000 blackfin/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Steven Miao Cc: adi-buildroot-devel@lists.sourceforge.net Link: http://lkml.kernel.org/r/20150713125611.652550580@linutronix.de Signed-off-by: Thomas Gleixner arch/blackfin/mach-common/ints-priority.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 95e432b91045f5dfa2115f943de4f44f0ea107ba Author: Jiang Liu Date: Mon Jul 13 20:08:38 2015 +0000 alpha/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Matt Turner Link: http://lkml.kernel.org/r/20150713075508.821878421@linutronix.de Signed-off-by: Thomas Gleixner arch/alpha/kernel/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82e39b0d8566fa67077c6941f776d17833c80fea Author: Uwe Kleine-König Date: Thu Jul 16 21:08:22 2015 +0200 gpio: mpc8xxx: handle differences between incarnations at a single place The gpio controllers that are handled by the mpc8xxx driver differ slightly. Up to now some differences were handled by use of of_device_is_compatible, others by use of struct of_device_id's data. To make this consistent and easily extendable handle the differences at a single place. Signed-off-by: Uwe Kleine-König Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 49 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 11 deletions(-) commit 4183afefd995e3472c10348998edd9f791eb523f Author: Uwe Kleine-König Date: Thu Jul 16 21:08:21 2015 +0200 gpio: mpc8xxx: constify of_device_id This variable is not modified in the driver and all functions it it passed to don't change it either. So it can and should be marked const. Signed-off-by: Uwe Kleine-König Signed-off-by: Linus Walleij drivers/gpio/gpio-mpc8xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 772d68355e2f65f71e0402e39aabfdea56f55083 Author: Will Deacon Date: Mon Jul 27 11:07:03 2015 +0100 arm64: include linux/types.h in asm/spinlock_types.h Our ticket-based spinlock structures rely on a definition of u16, so include linux/types.h explicitly to ensure the thing compiles. Found by a module build failure in -next: arch/arm64/include/asm/spinlock_types.h:27:2: error: unknown type name 'u16' arch/arm64/include/asm/spinlock_types.h:28:2: error: unknown type name 'u16' arch/arm64/include/asm/spinlock_types.h:33:13: error: expected declaration specifiers or '...' before numeric constant include/linux/spinlock_types.h:21:2: error: unknown type name 'arch_spinlock_t' arch/arm64/include/asm/spinlock.h:34:35: error: unknown type name 'arch_spinlock_t' arch/arm64/include/asm/spinlock.h:65:37: error: unknown type name 'arch_spinlock_t' Reported-by: Russell King Signed-off-by: Will Deacon arch/arm64/include/asm/spinlock_types.h | 2 ++ 1 file changed, 2 insertions(+) commit a4653228a0f8d0a4a76d03a2dd15beaf6e78c22b Author: Dave P Martin Date: Fri Jul 24 16:37:49 2015 +0100 arm64/BUG: Show explicit backtrace for WARNs The generic slowpath WARN implementation prints a backtrace, but the report_bug() based implementation does not, opting to print the registers instead which is generally not as useful. Ideally, report_bug() should be fixed to make the behaviour more consistent, but in the meantime this patch generates a backtrace directly from the arm64 backend instead so that this functionality is not lost with the migration to report_bug(). As a side-effect, the backtrace will be outside the oops end marker, but that's hard to avoid without modifying generic code. This patch can go away if report_bug() grows the ability in the future to generate a backtrace directly or call an arch hook at the appropriate time. Signed-off-by: Dave Martin Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/kernel/traps.c | 2 ++ 1 file changed, 2 insertions(+) commit 9fb7410f955f7a62c1f882ca8f9ffd4525907e28 Author: Dave P Martin Date: Fri Jul 24 16:37:48 2015 +0100 arm64/BUG: Use BRK instruction for generic BUG traps Currently, the minimal default BUG() implementation from asm- generic is used for arm64. This patch uses the BRK software breakpoint instruction to generate a trap instead, similarly to most other arches, with the generic BUG code generating the dmesg boilerplate. This allows bug metadata to be moved to a separate table and reduces the amount of inline code at BUG and WARN sites. This also avoids clobbering any registers before they can be dumped. To mitigate the size of the bug table further, this patch makes use of the existing infrastructure for encoding addresses within the bug table as 32-bit offsets instead of absolute pointers. (Note that this limits the kernel size to 2GB.) Traps are registered at arch_initcall time for aarch64, but BUG has minimal real dependencies and it is desirable to be able to generate bug splats as early as possible. This patch redirects all debug exceptions caused by BRK directly to bug_handler() until the full debug exception support has been initialised. Signed-off-by: Dave Martin Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/Kconfig | 8 +++++ arch/arm64/include/asm/bug.h | 64 +++++++++++++++++++++++++++++++++ arch/arm64/include/asm/debug-monitors.h | 2 ++ arch/arm64/kernel/traps.c | 59 +++++++++++++++++++++++++++++- arch/arm64/mm/fault.c | 12 +++++-- 5 files changed, 142 insertions(+), 3 deletions(-) commit d7a33f4fbd12ca0a32a24cc46c0d02b47f6b54d1 Author: Dave P Martin Date: Fri Jul 24 16:37:47 2015 +0100 arm64/debug: Add missing #includes relies on , but doesn't declare this dependency. This becomes a problem once debug-monitors.h starts getting included all over the place to get the BRK immedates. The missing include of (for UL()) in is also added. The series no longer relies on this, but I spotted it during development and it may as well get fixed. No functional change. Signed-off-by: Dave Martin Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 3 +++ arch/arm64/include/asm/esr.h | 2 ++ 2 files changed, 5 insertions(+) commit c696b93461f53db89d61450ace7c73babf920b99 Author: Dave P Martin Date: Fri Jul 24 16:37:46 2015 +0100 arm64/debug: Simplify BRK insn opcode declarations The way the KGDB_DYN_BRK_INS_BYTEx macros are declared is more complex than it needs to be. Also, the macros are only used in one place, which is arch-specific anyway. This patch refactors the macros to simplify them, and exposes an argument so that we can have a single macro instead of 4. As a side effect, this patch also fixes some anomalous spellings of "KGDB". These changes alter the compile types of some integer constants that are harmless but trigger truncation warnings in gcc when assigning to 32-bit variables. This patch adds an explicit cast for the affected cases. Signed-off-by: Dave Martin Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 23 ++++------------------- arch/arm64/kernel/kgdb.c | 12 ++++++------ 2 files changed, 10 insertions(+), 25 deletions(-) commit 72d033e80a6f25a7e2f79cacac202f19ede289e4 Author: Dave P Martin Date: Fri Jul 24 16:37:45 2015 +0100 arm64/debug: Move BRK ESR template macro into It makes sense to keep all the architectural exception syndrome definitions in the same place. Signed-off-by: Dave Martin Acked-by: Mark Rutland Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 7 ------- arch/arm64/include/asm/esr.h | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) commit c172d994e1fd57e46e85424c23124756c66d4b62 Author: Dave P Martin Date: Fri Jul 24 16:37:44 2015 +0100 arm64/debug: More consistent naming for the BRK ESR template macro The naming of DBG_ESR_VAL_BRK is inconsistent with the way other similar macros are named. This patch makes the naming more consistent, and appends "64" as a reminder that this ESR pattern only matches from AArch64 state. Signed-off-by: Dave Martin Acked-by: Mark Rutland Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 5 +++-- arch/arm64/kernel/kgdb.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) commit 03923696a966bd3eeb3a169d71b8a337aaa5ab76 Author: Dave P Martin Date: Fri Jul 24 16:37:43 2015 +0100 arm64/debug: Eliminate magic number from ESR template definition has perfectly good constants for defining ESR values already. Let's use them. Signed-off-by: Dave Martin Acked-by: Mark Rutland Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit dfac68314c969481fcce3dd528728dfa9d85caf5 Author: Dave P Martin Date: Fri Jul 24 16:37:42 2015 +0100 arm64/debug: Mask off all reserved bits from generated ESR values There are only 16 comment bits in a BRK instruction, which correspond to ESR bits 15:0. Bits 24:16 of the ESR are RES0, and might have weird meanings in the future. This code inserts 16 bits of comment in the ESR value instead of 20 (almost certainly a typo in the original code). Signed-off-by: Dave Martin Acked-by: Mark Rutland Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 951757ae83ec611b1c4f1dcfda67246cf5157451 Author: Dave P Martin Date: Fri Jul 24 16:37:41 2015 +0100 arm64/debug: Eliminate magic number for size of BRK instruction The size of an A64 BRK instruction is the same as the size of all other A64 instructions, because all A64 instructions are the same size. BREAK_INSTR_SIZE is retained for readibility, but it should not be an independent constant from AARCH64_INSN_SIZE. Signed-off-by: Dave Martin Acked-by: Mark Rutland Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/debug-monitors.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 51650dc2a18b1c65026c3bb9e35da2750e985706 Author: yalin wang Date: Fri Jul 24 12:52:28 2015 +0100 arm64: insn: use set_fixmap_offset to make it more clear A little change to patch_map() function, use set_fixmap_offset() to make code more clear. Signed-off-by: yalin wang Signed-off-by: Will Deacon arch/arm64/kernel/insn.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e38457c361b30c5a2379cc767877c3e5c2505dc6 Author: Ard Biesheuvel Date: Fri Jul 24 12:38:27 2015 +0100 arm64: efi: prefer AllocatePages() over efi_low_alloc() for vmlinux When allocating memory for the kernel image, try the AllocatePages() boot service to obtain memory at the preferred offset of 'dram_base + TEXT_OFFSET', and only revert to efi_low_alloc() if that fails. This is the only way to allocate at the base of DRAM if DRAM starts at 0x0, since efi_low_alloc() refuses to allocate at 0x0. Tested-by: Haojian Zhuang Reviewed-by: Mark Rutland Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon arch/arm64/kernel/efi-stub.c | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) commit e094d44568680d4e5e2722c4ad090ff0810719b9 Author: Sudeep Holla Date: Thu Jul 23 18:28:26 2015 +0100 arm64: kernel: remove non-legit DT warnings when booting using ACPI Since both CONFIG_ACPI and CONFIG_OF are enabled when booting using ACPI tables on ARM64 platforms, we get few device tree warnings which are not valid for ACPI boot. We can use of_have_populated_dt to check if the device tree is populated or not before throwing out those errors. This patch uses of_have_populated_dt to remove non legitimate device tree warning when booting using ACPI tables. Cc: Lorenzo Pieralisi Acked-by: Catalin Marinas Acked-by: Mark Rutland Signed-off-by: Sudeep Holla Signed-off-by: Will Deacon arch/arm64/kernel/setup.c | 9 +++++++-- arch/arm64/kernel/topology.c | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) commit 77ee306c0aea9a219daec256ad25982944affef8 Author: Will Deacon Date: Thu Jul 23 13:51:46 2015 +0100 arm64: alternatives: add enable parameter to conditional asm macros There are cases where we want to compile out both versions of an alternative code block, so add an enable parameter to the new conditional alternative assembly macros in the same way as alternative_insn. Signed-off-by: Will Deacon arch/arm64/include/asm/alternative.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 338d4f49d6f7114a017d294ccf7374df4f998edc Author: James Morse Date: Wed Jul 22 19:05:54 2015 +0100 arm64: kernel: Add support for Privileged Access Never 'Privileged Access Never' is a new arm8.1 feature which prevents privileged code from accessing any virtual address where read or write access is also permitted at EL0. This patch enables the PAN feature on all CPUs, and modifies {get,put}_user helpers temporarily to permit access. This will catch kernel bugs where user memory is accessed directly. 'Unprivileged loads and stores' using ldtrb et al are unaffected by PAN. Reviewed-by: Catalin Marinas Signed-off-by: James Morse [will: use ALTERNATIVE in asm and tidy up pan_enable check] Signed-off-by: Will Deacon arch/arm64/Kconfig | 14 ++++++++++++++ arch/arm64/include/asm/cpufeature.h | 3 ++- arch/arm64/include/asm/futex.h | 8 ++++++++ arch/arm64/include/asm/processor.h | 2 ++ arch/arm64/include/asm/sysreg.h | 8 ++++++++ arch/arm64/include/asm/uaccess.h | 11 +++++++++++ arch/arm64/include/uapi/asm/ptrace.h | 1 + arch/arm64/kernel/armv8_deprecated.c | 8 +++++++- arch/arm64/kernel/cpufeature.c | 20 ++++++++++++++++++++ arch/arm64/lib/clear_user.S | 8 ++++++++ arch/arm64/lib/copy_from_user.S | 8 ++++++++ arch/arm64/lib/copy_in_user.S | 8 ++++++++ arch/arm64/lib/copy_to_user.S | 8 ++++++++ arch/arm64/mm/fault.c | 16 ++++++++++++++++ 14 files changed, 121 insertions(+), 2 deletions(-) commit 9ded63aaf83eba76e1a54ac02581c2badc497f1a Author: Suzuki K. Poulose Date: Wed Jul 22 11:38:14 2015 +0100 arm64: Generalise msr_s/mrs_s operations The system register encoding generated by sys_reg() works only for MRS/MSR(Register) operations, as we hardcode Bit20 to 1 in mrs_s/msr_s mask. This makes it unusable for generating instructions accessing registers with Op0 < 2(e.g, PSTATE.x with Op0=0). As per ARMv8 ARM, (Ref: ARMv8 ARM, Section: "System instruction class encoding overview", C5.2, version:ARM DDI 0487A.f), the instruction encoding reserves bits [20-19] for Op0. This patch generalises the sys_reg, mrs_s and msr_s macros, so that we could use them to access any of the supported system register. Cc: James Morse Cc: Catalin Marinas Signed-off-by: Suzuki K. Poulose Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/sysreg.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 91a5cefa2f98bdd3404c2fba57048c4fa225cc37 Author: James Morse Date: Tue Jul 21 13:23:30 2015 +0100 arm64: kernel: Add optional CONFIG_ parameter to ALTERNATIVE() Some uses of ALTERNATIVE() may depend on a feature that is disabled at compile time by a Kconfig option. In this case the unused alternative instructions waste space, and if the original instruction is a nop, it wastes time and space. This patch adds an optional 'config' option to ALTERNATIVE() and alternative_insn that allows the compiler to remove both the original and alternative instructions if the config option is not defined. Suggested-by: Catalin Marinas Acked-by: Catalin Marinas Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/alternative.h | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) commit 18ffa046c509d0cd011eeea2c0418f2d014771fc Author: James Morse Date: Tue Jul 21 13:23:29 2015 +0100 arm64: kernel: Add min_field_value and use '>=' for feature detection When a new cpu feature is available, the cpu feature bits will have some initial value, which is incremented when the feature is updated. This patch changes 'register_value' to be 'min_field_value', and checks the feature bits value (interpreted as a signed int) is greater than this minimum. Acked-by: Catalin Marinas Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/cpufeature.h | 4 ++-- arch/arm64/kernel/cpufeature.c | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) commit 1c0763037f1e1caef739e36e09c6d41ed7b61b2d Author: James Morse Date: Tue Jul 21 13:23:28 2015 +0100 arm64: kernel: Add cpufeature 'enable' callback This patch adds an 'enable()' callback to cpu capability/feature detection, allowing features that require some setup or configuration to get this opportunity once the feature has been detected. Acked-by: Catalin Marinas Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/cpufeature.h | 1 + arch/arm64/kernel/cpufeature.c | 6 ++++++ 2 files changed, 7 insertions(+) commit 870828e57b141eff76a5325f20e4691dd2a599b1 Author: James Morse Date: Tue Jul 21 13:23:27 2015 +0100 arm64: kernel: Move config_sctlr_el1 Later patches need config_sctlr_el1 to set/clear bits in the sctlr_el1 register. This patch moves this function into header a file. Acked-by: Catalin Marinas Signed-off-by: James Morse Signed-off-by: Will Deacon arch/arm64/include/asm/cputype.h | 3 --- arch/arm64/include/asm/sysreg.h | 12 ++++++++++++ arch/arm64/kernel/armv8_deprecated.c | 11 +---------- 3 files changed, 13 insertions(+), 13 deletions(-) commit fc032421ef4a825660fcc4d11672bc2dea202893 Author: Daniel Thompson Date: Wed Jul 22 12:21:04 2015 +0100 arm64: kvm: Adopt new alternative assembler macros Convert the dynamic patching for ARM64_HAS_SYSREG_GIC_CPUIF over to the newly added alternative assembler macros. Acked-by: Marc Zyngier Signed-off-by: Daniel Thompson Signed-off-by: Will Deacon arch/arm64/kvm/hyp.S | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit e28cabf12304717b1054d0a02f0850f91e8a2074 Author: Daniel Thompson Date: Wed Jul 22 12:21:03 2015 +0100 arm64: kernel: Adopt new alternative assembler macros Convert the dynamic patching for ARM64_WORKAROUND_845719 over to the newly added alternative assembler macros. Signed-off-by: Daniel Thompson Signed-off-by: Will Deacon arch/arm64/kernel/entry.S | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit 271d35eb77d0f53177b44968417b630d1fee8b99 Author: Daniel Thompson Date: Wed Jul 22 12:21:02 2015 +0100 arm64: mm: Adopt new alternative assembler macros Convert the dynamic patching for ARM64_WORKAROUND_CLEAN_CACHE over to the newly added alternative assembler macros. Signed-off-by: Daniel Thompson Signed-off-by: Will Deacon arch/arm64/mm/cache.S | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 63e40815f02584ba8174e0f6af40924b2b335cae Author: Daniel Thompson Date: Wed Jul 22 12:21:01 2015 +0100 arm64: alternative: Provide if/else/endif assembler macros The existing alternative_insn macro has some limitations that make it hard to work with. In particular the fact it takes instructions from it own macro arguments means it doesn't play very nicely with C pre-processor macros because the macro arguments look like a string to the C pre-processor. Workarounds are (probably) possible but things start to look ugly. Introduce an alternative set of macros that allows instructions to be presented to the assembler as normal and switch everything over to the new macros. Signed-off-by: Daniel Thompson Signed-off-by: Will Deacon arch/arm64/include/asm/alternative.h | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 79b0e09a3c9bd74ee54582efdb351179d7c00351 Author: James Morse Date: Tue Jul 21 13:23:26 2015 +0100 arm64: kernel: Add cpuid_feature_extract_field() for 4bit sign extension Based on arch/arm/include/asm/cputype.h, this function does the shifting and sign extension necessary when accessing cpu feature fields. Signed-off-by: James Morse Suggested-by: Russell King Acked-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/include/asm/cpufeature.h | 7 +++++++ 1 file changed, 7 insertions(+) commit ae2fb7ece973f0b285f41985f5de85c57df9bf5a Author: Mark Rutland Date: Tue Jul 21 11:36:39 2015 +0100 arm64: perf: condense event number maps Most of the cache events an architecture might support do not map well to those provided by the ARM architecture, and as such most entries in the event number maps are *_UNSUPPORTED. Unfortuantely as 0 is a valid physical event identifier, the *_UNSUPPORTED macros expand to a non-zero value and thus each unsupported event must be explicitly initialised as such. This leads to large diffs when adding support for a new CPU, and makes it difficult to spot the important information. This patch follows arch/arm/ in making use of PERF_*_ALL_UNSUPPORTED macros to initialise all entries to *_UNSUPPORTED before overriding this for the specific events we actually support, resulting in a significant source code reduction. Signed-off-by: Mark Rutland Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 124 ++++++++--------------------------------- 1 file changed, 22 insertions(+), 102 deletions(-) commit 0a570e7adeeae28892e60bc919c7dcf011815134 Author: Jisheng Zhang Date: Tue Jul 21 15:43:58 2015 +0100 arm64: hugetlb: remove paragraph about writing to FSF Remove paragraph about writing to the Free Software Foundation's mailing address from GPL notice. Signed-off-by: Jisheng Zhang Signed-off-by: Will Deacon arch/arm64/include/asm/hugetlb.h | 4 ---- arch/arm64/mm/hugetlbpage.c | 4 ---- 2 files changed, 8 deletions(-) commit 1d1ddf67dc3bfd80f60b216fa1fedfb242bee299 Author: Robin Murphy Date: Fri Jul 17 16:58:21 2015 +0100 arm64: dma-mapping: implement dma_get_sgtable() The default dma_common_get_sgtable() implementation relies on the CPU address of the buffer being a regular lowmem address. This is not always the case on arm64, since allocations from the various DMA pools may have remapped vmalloc addresses, rendering the use of virt_to_page() invalid. Fix this by providing our own implementation based on the fact that we can safely derive a physical address from the DMA address in both cases. CC: Jon Medhurst Signed-off-by: Robin Murphy [will: made static] Signed-off-by: Will Deacon arch/arm64/mm/dma-mapping.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 4b3dc9679cf779339d9049800803dfc3c83433d1 Author: Will Deacon Date: Fri May 29 18:28:44 2015 +0100 arm64: force CONFIG_SMP=y and remove redundant #ifdefs Nobody seems to be producing !SMP systems anymore, so this is just becoming a source of kernel bugs, particularly if people want to use coherent DMA with non-shared pages. This patch forces CONFIG_SMP=y for arm64, removing a modest amount of code in the process. Signed-off-by: Will Deacon arch/arm64/Kconfig | 26 ++++---------------------- arch/arm64/include/asm/assembler.h | 2 -- arch/arm64/include/asm/barrier.h | 24 ------------------------ arch/arm64/include/asm/hardirq.h | 4 ---- arch/arm64/include/asm/irq_work.h | 11 ----------- arch/arm64/include/asm/percpu.h | 8 -------- arch/arm64/include/asm/pgtable.h | 5 ----- arch/arm64/include/asm/ptrace.h | 4 ---- arch/arm64/include/asm/smp.h | 4 ---- arch/arm64/include/asm/topology.h | 9 --------- arch/arm64/kernel/Makefile | 7 ++++--- arch/arm64/kernel/cpu_ops.c | 2 -- arch/arm64/kernel/head.S | 7 ------- arch/arm64/kernel/irq.c | 2 -- arch/arm64/kernel/psci.c | 5 ----- arch/arm64/kernel/setup.c | 6 ------ arch/arm64/kernel/sleep.S | 5 ----- arch/arm64/kernel/time.c | 2 -- arch/arm64/kernel/traps.c | 4 ---- arch/arm64/mm/context.c | 16 ---------------- arch/arm64/mm/flush.c | 4 ---- arch/arm64/mm/proc.S | 4 ---- 22 files changed, 8 insertions(+), 153 deletions(-) commit 52da443ec4d0a807b720527eb474f9c2878cd671 Author: Mark Rutland Date: Mon Jul 6 12:23:54 2015 +0100 arm64: perf: factor out callchain code We currently bundle the callchain handling code with the PMU code, despite the fact the two are distinct, and the former can be useful even in the absence of the latter. Follow the example of arch/arm and factor the callchain handling into its own file dependent on CONFIG_PERF_EVENTS rather than CONFIG_HW_PERF_EVENTS. Signed-off-by: Mark Rutland Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/include/asm/perf_event.h | 2 +- arch/arm64/kernel/Makefile | 2 +- arch/arm64/kernel/perf_callchain.c | 196 ++++++++++++++++++++++++++++++++++++ arch/arm64/kernel/perf_event.c | 178 -------------------------------- 4 files changed, 198 insertions(+), 180 deletions(-) commit 23e94994464a7281838785675e09c8ed1055f62f Author: Will Deacon Date: Tue Jun 2 15:18:38 2015 +0100 arm64: lib: use pair accessors for copy_*_user routines The AArch64 instruction set contains load/store pair memory accessors, so use these in our copy_*_user routines to transfer 16 bytes per iteration. Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/lib/copy_from_user.S | 17 +++++++++++------ arch/arm64/lib/copy_in_user.S | 17 +++++++++++------ arch/arm64/lib/copy_to_user.S | 17 +++++++++++------ 3 files changed, 33 insertions(+), 18 deletions(-) commit 5d220ff9420f8b1689805ba2d938bedf9e0860a4 Author: Catalin Marinas Date: Tue Jul 14 16:20:17 2015 +0100 arm64: Better native ptrace support for compat tasks The compat ptrace interface allows access to the TLS register, hardware breakpoints and watchpoints, syscall number. However, a native task using the native ptrace interface to debug compat tasks (e.g. multi-arch gdb) only has access to the general and VFP register sets. The compat ptrace interface cannot be accessed from a native task. This patch adds a new user_aarch32_ptrace_view which contains the TLS, hardware breakpoint/watchpoint and syscall number regsets in addition to the existing GPR and VFP regsets. This view is backwards compatible with the previous kernels. Core dumping of 32-bit tasks and compat ptrace are not affected since the original user_aarch32_view is preserved. Signed-off-by: Catalin Marinas Reported-by: Yao Qi Cc: Will Deacon Signed-off-by: Will Deacon arch/arm64/kernel/ptrace.c | 92 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) commit 0723c05fb75e4428b79b5cd657af7496b2604422 Author: Olof Johansson Date: Thu Jul 16 21:26:16 2015 +0100 arm64: enable more compressed Image formats Plumb up Makefile arguments for the already supported formats in the kbuild system: lz4, bzip2, lzma, and lzo. Note that just as with Image.gz, these images are not self-decompressing and the booting firmware still needs to handle decompression before launching the kernel image. Signed-off-by: Olof Johansson Signed-off-by: Will Deacon arch/arm64/Makefile | 5 ++++- arch/arm64/boot/Makefile | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 2f4b829c625ec36c2d80bef6395c7b74cea8aac0 Author: Catalin Marinas Date: Fri Jul 10 17:24:28 2015 +0100 arm64: Add support for hardware updates of the access and dirty pte bits The ARMv8.1 architecture extensions introduce support for hardware updates of the access and dirty information in page table entries. With TCR_EL1.HA enabled, when the CPU accesses an address with the PTE_AF bit cleared in the page table, instead of raising an access flag fault the CPU sets the actual page table entry bit. To ensure that kernel modifications to the page tables do not inadvertently revert a change introduced by hardware updates, the exclusive monitor (ldxr/stxr) is adopted in the pte accessors. When TCR_EL1.HD is enabled, a write access to a memory location with the DBM (Dirty Bit Management) bit set in the corresponding pte automatically clears the read-only bit (AP[2]). Such DBM bit maps onto the Linux PTE_WRITE bit and to check whether a writable (DBM set) page is dirty, the kernel tests the PTE_RDONLY bit. In order to allow read-only and dirty pages, the kernel needs to preserve the software dirty bit. The hardware dirty status is transferred to the software dirty bit in ptep_set_wrprotect() (using load/store exclusive loop) and pte_modify(). Signed-off-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/Kconfig | 17 ++++ arch/arm64/include/asm/pgtable-hwdef.h | 3 + arch/arm64/include/asm/pgtable.h | 147 ++++++++++++++++++++++++++++++++- arch/arm64/mm/proc.S | 13 +++ 4 files changed, 178 insertions(+), 2 deletions(-) commit b08d4640a3dca68670fc5af2fe9205b395a02388 Author: Mark Salter Date: Thu Jul 16 18:58:53 2015 +0100 arm64: remove dead code Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed soft_reset() from the kernel. This was the only caller of setup_mm_for_reboot(), so remove that also. Signed-off-by: Mark Salter Signed-off-by: Will Deacon arch/arm64/include/asm/mmu.h | 1 - arch/arm64/mm/mmu.c | 11 ----------- 2 files changed, 12 deletions(-) commit cba3574fd56be8132a19e4aa6b1d41a12c56d990 Author: Will Deacon Date: Thu Jul 16 19:26:02 2015 +0100 arm64: move update_mmu_cache() into asm/pgtable.h Mark Brown reported an allnoconfig build failure in -next: Today's linux-next fails to build an arm64 allnoconfig due to "mm: make GUP handle pfn mapping unless FOLL_GET is requested" which causes: > arm64-allnoconfig > ../mm/gup.c:51:4: error: implicit declaration of function 'update_mmu_cache' [-Werror=implicit-function-declaration] Fix the error by moving the function to asm/pgtable.h, as is the case for most other architectures. Reported-by: Mark Brown Signed-off-by: Will Deacon arch/arm64/include/asm/pgtable.h | 15 +++++++++++++++ arch/arm64/include/asm/tlbflush.h | 14 -------------- 2 files changed, 15 insertions(+), 14 deletions(-) commit aaf6f2f098f8ec22fa51ec15bd327b8acdfe5a78 Author: Robin Murphy Date: Fri Jul 10 16:47:56 2015 +0100 arm64: consolidate __swiotlb_mmap Since commit 9d3bfbb4df58 ("arm64: Combine coherent and non-coherent swiotlb dma_ops"), __dma_common_mmap is no longer shared between two callers, so roll it into the remaining one. Signed-off-by: Robin Murphy Signed-off-by: Will Deacon arch/arm64/mm/dma-mapping.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit d3127afa712321a2b297cfee358be2cb223f933c Author: Daniel Thompson Date: Fri Jul 10 14:58:00 2015 +0100 arm64: Remove unused macros from assembler.h Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed the only users of these macros. Signed-off-by: Daniel Thompson Cc: Mark Rutland Signed-off-by: Will Deacon arch/arm64/include/asm/assembler.h | 12 ------------ 1 file changed, 12 deletions(-) commit e147ae6d7f908412a013c115e42c3e15dac33ccc Author: Rohit Thapliyal Date: Fri Jul 10 09:23:59 2015 +0100 arm64: modify the dump mem for 64 bit addresses On 64bit kernel, the dump_mem gives 32 bit addresses on the stack dump. This gives unorganized information regarding the 64bit values on the stack. Hence, modified to get a complete 64bit memory dump. With patch: [ 93.534801] Process insmod (pid: 1587, stack limit = 0xffffffc976be4058) [ 93.541441] Stack: (0xffffffc976be7cf0 to 0xffffffc976be8000) [ 93.547136] 7ce0: ffffffc976be7d00 ffffffc00008163c [ 93.554898] 7d00: ffffffc976be7d40 ffffffc0000f8a44 ffffffc00098ef38 ffffffbffc000088 [ 93.562659] 7d20: ffffffc00098ef50 ffffffbffc0000c0 0000000000000001 ffffffbffc000070 [ 93.570419] 7d40: ffffffc976be7e40 ffffffc0000f935c 0000000000000000 000000002b424090 [ 93.578179] 7d60: 000000002b424010 0000007facc555f4 0000000080000000 0000000000000015 [ 93.585937] 7d80: 0000000000000116 0000000000000069 ffffffc00097b000 ffffffc976be4000 [ 93.593694] 7da0: 0000000000000064 0000000000000072 000000000000006e 000000000000003f [ 93.601453] 7dc0: 000000000000feff 000000000000fff1 ffffffbffc002028 0000000000000124 [ 93.609211] 7de0: ffffffc976be7e10 0000000000000001 ffffff8000000000 ffffffbbffff0000 [ 93.616969] 7e00: ffffffc976be7e60 0000000000000000 0000000000000000 0000000000000000 [ 93.624726] 7e20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 93.632484] 7e40: 0000007fcc474550 ffffffc0000841ec 000000002b424010 0000007facda0710 [ 93.640241] 7e60: ffffffffffffffff ffffffc0000be6dc ffffff80007d2000 000000000001c010 [ 93.647999] 7e80: ffffff80007e0ae0 ffffff80007e09d0 ffffff80007edf70 0000000000000288 [ 93.655757] 7ea0: 00000000000002e8 0000000000000000 0000000000000000 0000001c0000001b [ 93.663514] 7ec0: 0000000000000009 0000000000000007 000000002b424090 000000000001c010 [ 93.671272] 7ee0: 000000002b424010 0000007faccd3a48 0000000000000000 0000000000000000 [ 93.679030] 7f00: 0000007fcc4743f8 0000007fcc4743f8 0000000000000069 0000000000000003 [ 93.686787] 7f20: 0101010101010101 0000000000000004 0000000000000020 00000000000003f3 [ 93.694544] 7f40: 0000007facb95664 0000007facda7030 0000007facc555d0 0000000000498378 [ 93.702301] 7f60: 0000000000000000 000000002b424010 0000007facda0710 000000002b424090 [ 93.710058] 7f80: 0000007fcc474698 0000000000498000 0000007fcc474ebb 0000000000474f58 [ 93.717815] 7fa0: 0000000000498000 0000000000000000 0000000000000000 0000007fcc474550 [ 93.725573] 7fc0: 00000000004104bc 0000007fcc474430 0000007facc555f4 0000000080000000 [ 93.733330] 7fe0: 000000002b424090 0000000000000069 0950020128000244 4104000008000004 [ 93.741084] Call trace: The above output makes a debugger life a lot more easier. Signed-off-by: Rohit Thapliyal Signed-off-by: Maninder Singh Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon arch/arm64/kernel/traps.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) commit d09ce834dfffd93aa4586b3e07faaf901ee8706f Author: Sudeep Holla Date: Tue Jun 30 13:56:56 2015 +0100 arm64: perf: replace arch_find_n_match_cpu_physical_id with of_cpu_device_node_get arch_find_n_match_cpu_physical_id parses the device tree to get the device node for a given logical cpu index. However, since ARM PMUs get probed after the CPU device nodes are stashed while registering the cpus, we can use of_cpu_device_node_get to avoid another DT parse. This patch replaces arch_find_n_match_cpu_physical_id with of_cpu_device_node_get to reuse the stashed value directly instead. Cc: Will Deacon Cc: Mark Rutland Signed-off-by: Sudeep Holla Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2d23ed04de933625bc777cc474d2cd9a2a3fa860 Author: Suzuki K. Poulose Date: Fri Jun 12 15:39:28 2015 +0100 arm64: perf: Remove unnecessary printk ARM64 pmu prints an error message in event_init() when no hardware PMU is available. This is pretty annoying as it keeps printing the message for every single trial, flooding the kernel logs, unnecessarily. The return code is sufficient for the user to figure out the reason. Signed-off-by: Suzuki K. Poulose Signed-off-by: Will Deacon arch/arm64/kernel/perf_event.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 412820dd536fe2d01a35f0d68982ea225ec255b3 Author: Thierry Reding Date: Mon Jul 20 09:58:09 2015 +0200 pwm: sysfs: Remove unnecessary padding Padding initializers so that assignment operators align is bound to lead to inconsistencies or churn. Single spaces around the assignment is just fine. Signed-off-by: Thierry Reding drivers/pwm/sysfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5a063d87e97df28ca0b00807bc4d6fa11c5a5107 Author: Thierry Reding Date: Mon Jul 20 09:56:05 2015 +0200 pwm: sysfs: Properly convert from enum to string The current code will check for polarity in a boolean way. While it is correct that polarity is either normal or inversed, make it more obvious that it's an enumeration by using a switch statement and explicit matches on the enumeration values. Signed-off-by: Thierry Reding drivers/pwm/sysfs.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 38b0e5071eca4db618e796a2f1dbad3b20c01358 Author: Baruch Siach Date: Tue May 5 13:55:10 2015 +0300 pinctrl: driver for Conexant Digicolor CX92755 pin mapping This adds pinctrl and gpio driver to the CX92755 SoC "General Purpose Pin Mapping" hardware block. The CX92755 is one SoC from the Conexant Digicolor series. Pin mapping hardware supports configuring pins as either GPIO, or up to 3 other "client select" functions. This driver adds support for pin muxing using the generic device tree binding, and a basic gpiolib driver for the GPIO functionality. This driver does not currently support GPIO interrupts, and pad configuration. v2: * Address review comments for Linus Walleij: - Add a pointer to pinctrl_desc in struct dc_pinmap - Drop the now redundant pinctrl_pin_desc field - Adapt dc_get_group_{name,pins} to these changes, and add a comment explaining the 1-to-1 pin-groups relation * Staticise dc_pmxops * Protect the GP_CLIENTSEL clct parameter with parenthesis Signed-off-by: Baruch Siach Signed-off-by: Linus Walleij drivers/pinctrl/Kconfig | 6 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-digicolor.c | 378 ++++++++++++++++++++++++++++++++++++ 3 files changed, 385 insertions(+) commit cbc59e26e90dab17e233c6cdf51235d5d25f5fba Author: Baruch Siach Date: Tue May 5 13:55:09 2015 +0300 pinctrl: dt-binding: document Conexant CX92755 SoC Add pinctrl device tree binding documentation for the General Purpose Pin Mapping module of the Conexant CX92755 SoC. Signed-off-by: Baruch Siach Signed-off-by: Linus Walleij .../bindings/pinctrl/cnxt,cx92755-pinctrl.txt | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit 3271dca483a48759cdbdb5f16a13125ab91f6c05 Author: Daniel Vetter Date: Fri Jul 24 17:40:15 2015 +0200 drm/i915: kerneldoc for tiling IOCTL and swizzle functions Chris rightfully suggested that documenting fences without documenting the BO tiling tracking doesn't make much sense, so fix that. The important bit to stress here (since it lead to some confusion) is the GEM doesn't really care about tiling. Except for a few select cases where the kernel needs to manage something that userspace can't take care of: Namely the limited number of fences and fixing up swizzling, although we still fail at the later. v2: Move the low-level tiling/swizzling functions and kerneldoc to i915_gem_fence.c and leave only the userspace interface here. Suggested by Chris. Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 16 ++++++- drivers/gpu/drm/i915/i915_gem_fence.c | 28 ++++++++++-- drivers/gpu/drm/i915/i915_gem_tiling.c | 84 +++++++++++++++++----------------- 3 files changed, 80 insertions(+), 48 deletions(-) commit 7f96ecaf1ea26fd7041acc56379a5c4393ee51ad Author: Daniel Vetter Date: Fri Jul 24 17:40:14 2015 +0200 drm/i915: Move low-level swizzling code to i915_gem_fence.c It fits more with the low-level fence code, and this move leaves only the userspace tiling ioctl handling in i915_gem_tiling.c. Suggested-by: Chris Wilson Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 8 +- drivers/gpu/drm/i915/i915_gem_fence.c | 268 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/i915_gem_tiling.c | 219 --------------------------- 3 files changed, 272 insertions(+), 223 deletions(-) commit e562b9739eda7399d1ec6737bc5f8803f92569e3 Author: Daniel Vetter Date: Fri Jul 24 17:40:13 2015 +0200 drm/i915: Remove bogus kerneldoc include directive Afaict intel_irq_fini never existed. No idea how that one came about. Note: Chris thinks that an irq_fini would be nice and I agree, but this is just to remove some ugly from generated docs. Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 1 - 1 file changed, 1 deletion(-) commit a794f62a300194dbc53165f10cc5ad236a6a43c2 Author: Daniel Vetter Date: Fri Jul 24 17:40:12 2015 +0200 drm/i915: kerneldoc for fences v2: Clarify that this is about fence _registers_. Also clarify that the fence code revokes cpu ptes and not gtt ptes. Both suggested by Chris. Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 5 +++ drivers/gpu/drm/i915/i915_gem_fence.c | 75 +++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) commit e11f40b9352f75d924cb216abcc5413b38d9288b Author: Dan Carpenter Date: Mon Jul 27 11:07:47 2015 +0300 lwtunnel: use kfree_skb() instead of vanilla kfree() kfree_skb() is correct here. Fixes: ffce41962ef6 ('lwtunnel: support dst output redirect function') Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller net/core/lwtunnel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 41a36b739ae378043ecc3984bec3dba00353fa34 Author: Daniel Vetter Date: Fri Jul 24 13:55:11 2015 +0200 drm/i915: Extract i915_gem_fence.c No code changes, just moving all the fence related code into a separate file (and avoiding a bunch of forward declarations while at it). Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_drv.h | 16 +- drivers/gpu/drm/i915/i915_gem.c | 401 -------------------------------- drivers/gpu/drm/i915/i915_gem_fence.c | 422 ++++++++++++++++++++++++++++++++++ 4 files changed, 432 insertions(+), 408 deletions(-) commit 042794b1f4234de36ce2d6edae071054c6985a03 Author: Daniel Vetter Date: Fri Jul 24 13:55:10 2015 +0200 drm/i915: Clean up Makefile Sorting became confused and a few new files ended up in strange places. Also move i915_irq.c to core since with the recent-ish extraction of i915_gpu_error.c and intel_hotplug.c it's more and more really just basic irq handling code. When adding new files please don't put them somewhere randomly. Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 99d7662a04c4f9822b042f22ae37f8c7355c2d5a Author: Eric Dumazet Date: Sun Jul 26 09:45:24 2015 +0200 tcp: tso: allow deferring under reordering state While doing experiments with reordering resilience, we found linux senders were not able to send at full speed under reordering, because every incoming SACK was releasing one MSS. This patch removes the limitation, as we did for CWR state in commit a0ea700e409 ("tcp: tso: allow CA_CWR state in tcp_tso_should_defer()") Neal Cardwell had a concern about limited transmit so Yuchung conducted experiments on GFE and found nothing worth adding an extra check on fast path : if (icsk->icsk_ca_state == TCP_CA_Disorder && tcp_sk(sk)->reordering == sysctl_tcp_reordering) goto send_now; Signed-off-by: Eric Dumazet Signed-off-by: Yuchung Cheng Cc: Neal Cardwell Acked-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f45d1902acfc7e6680cfeeb38922dcc7e16deb6 Author: Sergei Shtylyov Date: Sat Jul 25 23:42:01 2015 +0300 ravb: minimize TX data copying Renesas Ethernet AVB controller requires that all data are aligned on 4-byte boundary. While it's easily achievable for the RX data with the help of skb_reserve() (we even align on 128-byte boundary as recommended by the manual), we can't do the same with the TX data, and it always comes unaligned from the networking core. Originally we solved it an easy way, copying all packet to a preallocated aligned buffer; however, it's enough to copy only up to 3 first bytes from each packet, doing the transfer using 2 TX descriptors instead of just 1. Here's an implementation of the new TX algorithm that significantly reduces the driver's memory requirements. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb.h | 5 +- drivers/net/ethernet/renesas/ravb_main.c | 104 ++++++++++++++++++------------- 2 files changed, 64 insertions(+), 45 deletions(-) commit c22995c5488d7048554d85ee5ee8a269932b0aea Author: Guenter Roeck Date: Sat Jul 25 09:42:28 2015 -0700 dsa: mv88e6352/mv88e6xxx: Move temperature sensor code to mv88e6xxx.c Move the temperature sensing code for mv88e6352 and mv88e6320 families into mv88e6xxx.c to simplify adding support for additional chips. With this change, mv88e6xxx_6320_family() no longer needs to be a global function and is made static. Cc: Andrew Lunn Signed-off-by: Guenter Roeck Acked-by: Andrew Lunn Tested-by: Vivien Didelot Signed-off-by: David S. Miller drivers/net/dsa/mv88e6352.c | 72 +----------------- drivers/net/dsa/mv88e6xxx.c | 176 ++++++++++++++++++++++++++++++++------------ drivers/net/dsa/mv88e6xxx.h | 7 +- 3 files changed, 136 insertions(+), 119 deletions(-) commit 71790a2792c8772e29bf5aa726215d9256ef93dc Author: Haiyang Zhang Date: Fri Jul 24 10:08:40 2015 -0700 hv_netvsc: Add structs and handlers for VF messages This patch adds data structures and handlers for messages related to SRIOV Virtual Function. Signed-off-by: Haiyang Zhang Reviewed-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 29 +++++++++++++++++++++++++++ drivers/net/hyperv/netvsc.c | 43 +++++++++++++++++++++++++++++++---------- 2 files changed, 62 insertions(+), 10 deletions(-) commit 70d2db7b21684bb2b808e78fbab8e594dd7e50ce Merge: 205845a 8d6c31b Author: David S. Miller Date: Mon Jul 27 01:08:26 2015 -0700 Merge branch 'rt6_probe_write_lock' Martin KaFai Lau says: ==================== ipv6: Avoid rt6_probe() taking writer lock in the fast path v1 -> v2: 1. Separate the code re-arrangement into another patch 2. Fix style ==================== Signed-off-by: David S. Miller commit 8d6c31bf574177c8de48dd1387d96e1ec3a8b8bc Author: Martin KaFai Lau Date: Fri Jul 24 09:57:43 2015 -0700 ipv6: Avoid rt6_probe() taking writer lock in the fast path The patch checks neigh->nud_state before acquiring the writer lock. Note that rt6_probe() is only used in CONFIG_IPV6_ROUTER_PREF. 40 udpflood processes and a /64 gateway route are used. The gateway has NUD_PERMANENT. Each of them is run for 30s. At the end, the total number of finished sendto(): Before: 55M After: 95M Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa CC: Julian Anastasov CC: YOSHIFUJI Hideaki Signed-off-by: David S. Miller net/ipv6/route.c | 4 ++++ 1 file changed, 4 insertions(+) commit 990edb428c2c85c22ca770330437db7183cbe8b5 Author: Martin KaFai Lau Date: Fri Jul 24 09:57:42 2015 -0700 ipv6: Re-arrange code in rt6_probe() It is a prep work for the next patch to remove write_lock from rt6_probe(). 1. Reduce the number of if(neigh) check. From 4 to 1. 2. Bring the write_(un)lock() closer to the operations that the lock is protecting. Hopefully, the above make rt6_probe() more readable. Signed-off-by: Martin KaFai Lau Cc: Hannes Frederic Sowa Cc: Julian Anastasov Cc: YOSHIFUJI Hideaki Signed-off-by: David S. Miller net/ipv6/route.c | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) commit fc596660dd4e83f7f84e3cd7b25dc5e8e83000ef Author: Maarten Lankhorst Date: Tue Jul 21 13:28:57 2015 +0200 drm/atomic: add connectors_changed to separate it from mode_changed, v2 This can be a separate case from mode_changed, when connectors stay the same but only the mode is different. Drivers may choose to implement specific optimizations to prevent a full modeset for this case. Changes since v1: - Update kerneldocs slightly. Cc: dri-devel@lists.freedesktop.org Signed-off-by: Maarten Lankhorst Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 39 +++++++++++++++++++++++++++--------- drivers/gpu/drm/i915/intel_display.c | 2 +- include/drm/drm_atomic.h | 3 ++- include/drm/drm_crtc.h | 8 +++++--- 4 files changed, 38 insertions(+), 14 deletions(-) commit 205845a34763432040496908c8f52f1f97e5ee62 Author: Nikolay Aleksandrov Date: Fri Jul 24 15:50:31 2015 +0200 bonding: convert num_grat_arp to the new bonding option API num_grat_arp wasn't converted to the new bonding option API, so do this now and remove the specific sysfs store option in order to use the standard one. num_grat_arp is the same as num_unsol_na so add it as an alias with the same option settings. An important difference is the option name which is matched in bond_sysfs_store_option(). Signed-off-by: Nikolay Aleksandrov Acked-by: Veaceslav Falico Signed-off-by: David S. Miller drivers/net/bonding/bond_options.c | 7 +++++++ drivers/net/bonding/bond_sysfs.c | 20 +++----------------- include/net/bond_options.h | 1 + 3 files changed, 11 insertions(+), 17 deletions(-) commit 94724d102c829d9f2105b1cb6e831c99174cd49d Author: Shaohui Xie Date: Fri Jul 24 19:26:02 2015 +0800 net: phy: fix auto negotiation checking for teranetics When using fiber port, the phy cannot report it's auto negotiation state, driver should always report auto negotiation is done when using fiber port. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/teranetics.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 5a6228a0b472062646434cd2536d109c102b606e Author: Nicolas Dichtel Date: Fri Jul 24 12:28:36 2015 +0200 lwtunnel: change prototype of lwtunnel_state_get() It saves some lines and simplify a bit the code when the state is returning by this function. It's also useful to handle a NULL entry. To avoid too long lines, I've also renamed lwtunnel_state_get() and lwtunnel_state_put() to lwtstate_get() and lwtstate_put(). CC: Thomas Graf CC: Roopa Prabhu Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Acked-by: Roopa Prabhu Signed-off-by: David S. Miller include/net/lwtunnel.h | 16 +++++++++++----- net/ipv4/fib_semantics.c | 9 ++++----- net/ipv4/route.c | 9 ++------- net/ipv6/ip6_fib.c | 2 +- net/ipv6/route.c | 8 ++------ 5 files changed, 20 insertions(+), 24 deletions(-) commit d943659508a4fb883507fdd3f998329e70a8f922 Author: Nicolas Dichtel Date: Fri Jul 24 12:28:35 2015 +0200 ipv6: copy lwtstate in ip6_rt_copy_init() We need to copy this field (ip6_rt_cache_alloc() and ip6_rt_pcpu_alloc() use ip6_rt_copy_init() to build a dst). CC: Thomas Graf CC: Roopa Prabhu Fixes: 19e42e451506 ("ipv6: support for fib route lwtunnel encap attributes") Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Acked-by: Roopa Prabhu Signed-off-by: David S. Miller net/ipv6/route.c | 4 ++++ 1 file changed, 4 insertions(+) commit 6673a9f4e35c1f0e9976cd4e88042f87674a6b02 Author: Nicolas Dichtel Date: Fri Jul 24 10:59:41 2015 +0200 ipv6: use lwtunnel_output6() only if flag redirect is set This function make sense only when LWTUNNEL_STATE_OUTPUT_REDIRECT is set. The check is already done in IPv4. CC: Thomas Graf CC: Roopa Prabhu Fixes: 74a0f2fe8ed5 ("ipv6: rt6_info output redirect to tunnel output") Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Acked-by: Roopa Prabhu Signed-off-by: David S. Miller net/ipv6/route.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9267135cca60674321139626f49077a4937d730e Author: Wu Fengguang Date: Fri Jul 24 14:16:10 2015 +0800 net: phy: dp83867: fix simple_return.cocci warnings drivers/net/phy/dp83867.c:126:1-4: WARNING: end returns can be simpified drivers/net/phy/dp83867.c:74:5-8: WARNING: end returns can be simpified if tested value is negative or 0 Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci CC: Dan Murphy Signed-off-by: Fengguang Wu Signed-off-by: David S. Miller drivers/net/phy/dp83867.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit b469139e81ca8265fb4797c007f8d3338f4191a5 Author: subashab@codeaurora.org Date: Fri Jul 24 03:03:29 2015 +0000 dev: Spelling fix in comments Fix the following typo - unchainged -> unchanged Signed-off-by: Subash Abhinov Kasiviswanathan Signed-off-by: David S. Miller net/core/dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 24b4d2abd0bd628f396dada3e915d395cbf459eb Author: Alex Gartrell Date: Thu Jul 23 14:24:40 2015 -0700 ebpf: Allow dereferences of PTR_TO_STACK registers mov %rsp, %r1 ; r1 = rsp add $-8, %r1 ; r1 = rsp - 8 store_q $123, -8(%rsp) ; *(u64*)r1 = 123 <- valid store_q $123, (%r1) ; *(u64*)r1 = 123 <- previously invalid mov $0, %r0 exit ; Always need to exit And we'd get the following error: 0: (bf) r1 = r10 1: (07) r1 += -8 2: (7a) *(u64 *)(r10 -8) = 999 3: (7a) *(u64 *)(r1 +0) = 999 R1 invalid mem access 'fp' Unable to load program We already know that a register is a stack address and the appropriate offset, so we should be able to validate those references as well. Signed-off-by: Alex Gartrell Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/verifier.c | 6 ++++- samples/bpf/test_verifier.c | 59 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) commit fa4cf04e65cb7f75c147e2cc80f0f472b0d93534 Author: Prasanna Karthik Date: Thu Jul 23 11:22:56 2015 +0000 Bluetooth: hci_h5: Cleaned up coding style warnings Cleanedup "Unnecessary space before function pointer arguments" warning reported by Checkpatch Signed-off-by: Prasanna Karthik Signed-off-by: Johan Hedberg drivers/bluetooth/hci_h5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit acf50c5fc6f3d1851d23c48737210b5f61f58e1f Author: Prasanna Karthik Date: Thu Jul 23 11:08:52 2015 +0000 Bluetooth: hci_ldisc: Cleaned up coding style warnings Fix for Cleanpatch warning: Space prohibited between function name and open parenthesis '(' Signed-off-by: Prasanna Karthik Signed-off-by: Johan Hedberg drivers/bluetooth/hci_ldisc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ba27b7ef4a72e0d4718a13bc93b769eec4567d2a Author: Prasanna Karthik Date: Thu Jul 23 10:38:47 2015 +0000 Bluetooth: btmrvl: Coding style Fix for btmrvl header Fix for "Unnecessary space before function pointer arguments" reported by checkpatch. Signed-off-by: Prasanna Karthik Signed-off-by: Johan Hedberg drivers/bluetooth/btmrvl_drv.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 6ecfdd28c8a6504349ca8501316b1ed3f639ce44 Merge: fda19e8 a741749 Author: David S. Miller Date: Mon Jul 27 00:29:18 2015 -0700 Merge branch 'mlx5e-next' Amir Vadai says: ==================== ConnectX-4 driver update 2015-07-23 This patchset introduce some performance enhancements to the ConnectX-4 driver. 1. Improving RSS distribution, and make RSS function controlable using ethtool. 2. Make memory that is written by NIC and read by host CPU allocate in the local NUMA to the processing CPU 3. Support tx copybreak 4. Using hardware feature called blueflame to save DMA reads when possible Another patch by Achiad fix some cosmetic issues in the driver. Patchset was applied and tested on top of commit 045a0fa ("ip_tunnel: Call ip_tunnel_core_init() from inet_init()") ==================== Signed-off-by: David S. Miller commit a741749f214afd05402aeed0ecdca90eeaffc303 Author: Achiad Shochat Date: Thu Jul 23 23:36:01 2015 +0300 net/mlx5e: Input IPSEC.SPI into the RX RSS hash function In addition to the source/destination IP which are already hashed. Only for unicast traffic for now. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 + .../ethernet/mellanox/mlx5/core/en_flow_table.c | 92 +++++++++++++++++++++- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 32 ++++++++ 3 files changed, 127 insertions(+), 1 deletion(-) commit 5a6f8aef16c53ffeb9c1497f0b583269695c067d Author: Achiad Shochat Date: Thu Jul 23 23:36:00 2015 +0300 net/mlx5e: Cosmetics: use BIT() instead of "1 <<", and others No logical change in this commit. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 16 +- .../ethernet/mellanox/mlx5/core/en_flow_table.c | 166 +++++++++++---------- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 20 +-- 3 files changed, 104 insertions(+), 98 deletions(-) commit 88a85f99e51fb2373259ab83c8bb130a9bbf3804 Author: Achiad Shochat Date: Thu Jul 23 23:35:59 2015 +0300 net/mlx5e: TX latency optimization to save DMA reads A regular TX WQE execution involves two or more DMA reads - one to fetch the WQE, and another one per WQE gather entry. These DMA reads obviously increase the TX latency. There are two mlx5 mechanisms to bypass these DMA reads: 1) Inline WQE 2) Blue Flame (BF) An inline WQE contains a whole packet, thus saves the DMA read/s of the regular WQE gather entry/s. Inline WQE support was already added in the previous commit. A BF WQE is written directly to the device I/O mapped memory, thus enables saving the DMA read that fetches the WQE. The BF WQE I/O write must be in cache line granularity, thus uses the CPU write combining mechanism. A BF WQE I/O write acts also as a TX doorbell for notifying the device of new TX WQEs. A BF WQE is written to the same I/O mapped address as the regular TX doorbell, thus this address is being mapped twice - once by ioremap() and once by io_mapping_map_wc(). While both mechanisms reduce the TX latency, they both consume more CPU cycles than a regular WQE: - A BF WQE must still be written to host memory, in addition to being written directly to the device I/O mapped memory. - An inline WQE involves copying the SKB data into it. To handle this tradeoff, we introduce here a heuristic algorithm that strives to avoid using these two mechanisms in case the TX queue is being back-pressured by the device, and limit their usage rate otherwise. An inline WQE will always be "Blue Flamed" (written directly to the device I/O mapped memory) while a BF WQE may not be inlined (may contain gather entries). Preliminary testing using netperf UDP_RR shows that the latency goes down from 17.5us to 16.9us, while the message rate (tested with pktgen) stays the same. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 24 +++++++++++++++------ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 12 ++++++----- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 26 ++++++++++++++++++----- drivers/net/ethernet/mellanox/mlx5/core/main.c | 26 +++++++++++++++++++++-- drivers/net/ethernet/mellanox/mlx5/core/uar.c | 6 ++++++ include/linux/mlx5/driver.h | 4 +++- 6 files changed, 79 insertions(+), 19 deletions(-) commit 58d522912ac7d25b63f468fa4a4e8bb059c5144e Author: Achiad Shochat Date: Thu Jul 23 23:35:58 2015 +0300 net/mlx5e: Support TX packet copy into WQE AKA inline WQE. A TX latency optimization to save data gather DMA reads. Controlled by ETHTOOL_TX_COPYBREAK. Signed-off-by: Achiad Shochat Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 + .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 53 ++++++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 13 ++++++ drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 10 +++- 4 files changed, 77 insertions(+), 1 deletion(-) commit 311c7c71c9bb8786c96fee353fe9886c08b017fe Author: Saeed Mahameed Date: Thu Jul 23 23:35:57 2015 +0300 net/mlx5e: Allocate DMA coherent memory on reader NUMA node By affinity hints and XPS, each mlx5e channel is assigned a CPU core. Channel DMA coherent memory that is written by the NIC and read by SW (e.g CQ buffer) is allocated on the NUMA node of the CPU core assigned for the channel. Channel DMA coherent memory that is written by SW and read by the NIC (e.g SQ/RQ buffer) is allocated on the NUMA node of the NIC. Doorbell record (written by SW and read by the NIC) is an exception since it is accessed by SW more frequently. Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/alloc.c | 48 +++++++++++++++++++---- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 11 ++++-- drivers/net/ethernet/mellanox/mlx5/core/main.c | 6 ++- drivers/net/ethernet/mellanox/mlx5/core/wq.c | 12 +++--- drivers/net/ethernet/mellanox/mlx5/core/wq.h | 3 +- include/linux/mlx5/driver.h | 8 ++++ 6 files changed, 70 insertions(+), 18 deletions(-) commit 2be6967cdbc95a9960b620defedbf5e02e2af619 Author: Saeed Mahameed Date: Thu Jul 23 23:35:56 2015 +0300 net/mlx5e: Support ETH_RSS_HASH_XOR The ConnectX-4 HW implements inverted XOR8. To make it act as XOR we re-order the HW RSS indirection table. Set XOR to be the default RSS hash function and add ethtool API to control it. Signed-off-by: Saeed Mahameed Signed-off-by: Amir Vadai Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 39 ++++++++++++++++++ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 46 +++++++++++++++++----- include/linux/mlx5/mlx5_ifc.h | 6 +-- 4 files changed, 79 insertions(+), 13 deletions(-) commit fda19e83fb615edb1555e7a07130695cf0073d20 Merge: ea6f82f 5be4001e Author: David S. Miller Date: Mon Jul 27 00:18:40 2015 -0700 Merge branch 'netcp-next' WingMan Kwok says: ==================== net: netcp: Bug fixes of CPSW statistics collection This patch set contains bug fixes and enhencements of hw ethernet statistics processing on TI's Keystone2 CPSW ethernet switches. ==================== Signed-off-by: David S. Miller commit 5be4001eccb954da7f8ae68248167d3dbb6e7177 Author: WingMan Kwok Date: Thu Jul 23 15:57:24 2015 -0400 net: netcp: Adds missing statistics for K2L and K2E This patch adds the missing statistics for the host and slave ports of the CPSW on K2L and K2E platforms. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 177 +++++++++++++++++++++++++++++++++- 1 file changed, 174 insertions(+), 3 deletions(-) commit 489e8a2f09d772afc98a85ca477bb6bc52400c26 Author: WingMan Kwok Date: Thu Jul 23 15:57:23 2015 -0400 net: netcp: Fixes to CPSW statistics collection In certain applications it's beneficial to allow the CPSW h/w stats counters to continue to increment even while the kernel polls them. This patch implements this behavior for both 1G and 10G ethernet subsystem modules. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 86 ++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 11 deletions(-) commit fbf64c1915b964c05edd4434250fbbb31ded38c6 Author: WingMan Kwok Date: Thu Jul 23 15:57:22 2015 -0400 net: netcp: Consolidates statistics collection code Different Keystone2 platforms have different number and layouts of hw statistics modules. This patch consolidates the statistics processing of different Keystone2 platforms for easy maintenance. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 99 +++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 45 deletions(-) commit 208c6b9a49df8b69ab698d9f53d40d25f143dbde Author: WingMan Kwok Date: Thu Jul 23 15:57:21 2015 -0400 net: netcp: Fixes error in oversized memory allocation for statistics storage The CPSW driver keeps internally some, but not all, of the statistics available in the hw statistics modules. Furthermore, some of the locations in the hw statistics modules are reserved and contain no useful information. Prior to this patch, the driver allocates memory of the size of the the whole hw statistics modules, instead of the size of statistics-entries-interested-in (i.e. et_stats), for internal storage. This patch fixes that. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 46 ++++++++++++++++------------------- 1 file changed, 21 insertions(+), 25 deletions(-) commit a94bcd09c554e8df3a32ef3f25ecfd74e73b9651 Author: WingMan Kwok Date: Thu Jul 23 15:57:20 2015 -0400 net: netcp: Fixes hw statistics module base setting error This patch fixes error in the setting of the hw statistics module base for K2HK platform. In K2HK although there are 4 hw statistics modules, but only 2 are visible at a time. Thus when setting up the pointers to the base of the corresponding hw statistics modules, modules 0 and 2 should point to one base, while modules 1 and 3 should point to the other. Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit c0f54edbe26fbe8194d7e72c24c49f7b1c9c547f Author: WingMan Kwok Date: Thu Jul 23 15:57:19 2015 -0400 net: netcp: Fixes the use of spin_lock_bh in timer function This patch fixes a bug in which the timer routine synchronized against the ethtool-triggered statistics updates with spin_lock_bh(). A timer function is itself a bottom-half, so this should be spin_lock(). Signed-off-by: WingMan Kwok Signed-off-by: David S. Miller drivers/net/ethernet/ti/netcp_ethss.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0aef3997e12a10d4dfb6e01133e2fe478b9aa5eb Author: Florian Fainelli Date: Thu Jul 23 15:52:21 2015 -0700 irqchip/bcm7120-l2: Fix interrupt status for multiple parent IRQs Our irq-bcm7120-l2 interrupt controller driver utilizes the same handler function for the different parent interrupts it services: UPG_MAIN, UPG_BSC for instance. The problem is that function reads the IRQSTAT register which can combine interrupt causes for different parent interrupts, such that we can end-up in the following situation: - CPU takes an interrupt - bcm7120_l2_intc_irq_handle() reads IRQSTAT - generic_handle_irq() is invoked - there are still pending interrupts flagged in IRQSTAT from a different parent - handle_bad_irq() is invoked for these since they come from a different irq_desc/irq In order to fix this, make sure that we always mask IRQSTAT with the appropriate bits that correspond go the parent interrupt source this is coming from. To simplify things, associate an unique structure per parent interrupt handler to avoid multiplying the number of lookups. Fixes: a5042de2688d ("irqchip: bcm7120-l2: Add Broadcom BCM7120-style Level 2 interrupt controller") Signed-off-by: Florian Fainelli Cc: linux-mips@linux-mips.org Cc: cernekee@gmail.com Cc: jason@lakedaemon.net Cc: bcm-kernel-feedback-list@broadcom.com Cc: gregory.0xf0@gmail.com Cc: computersforpeace@gmail.com Link: http://lkml.kernel.org/r/1437691941-3100-1-git-send-email-f.fainelli@gmail.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm7120-l2.c | 52 ++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 13 deletions(-) commit fd537766715e9b6bf7ff07abb22f4817201433db Author: Brian Norris Date: Wed Jul 22 16:21:40 2015 -0700 irqchip/bcm7120-l2: Perform suspend/resume even without installed child IRQs Make use of the new irq_chip_generic suspend/resume callbacks. This is required because if there are no installed child IRQs for this chip, the irq_chip::irq_{suspend,resume} functions will not be called. However, we still need to save/restore the forwarding mask, to enable the top-level GIC interrupt; otherwise, we lose UART output after S3 resume. In addition to refactoring the callbacks, we have to self-initialize the mask cache, since the genirq core also doesn't initialize this until the first child IRQ is installed. The original problem report is described in extra detail here: http://lkml.kernel.org/g/20150619224123.GL4917@ld-irv-0074 Signed-off-by: Brian Norris Tested-by: Florian Fainelli Cc: Gregory Fong Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-mips@linux-mips.org Cc: Kevin Cernekee Cc: Jason Cooper Link: http://lkml.kernel.org/r/1437607300-40858-2-git-send-email-computersforpeace@gmail.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-bcm7120-l2.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit be9b22b6a7e6725162c64155a08b71f0654b675c Author: Brian Norris Date: Wed Jul 22 16:21:39 2015 -0700 genirq: Add chip_[suspend|resume] PM support to irq_chip Some (admittedly odd) irqchips perform functions that are not directly related to any of their child IRQ lines, and therefore need to perform some tasks during suspend/resume regardless of whether there are any "installed" interrupts for the irqchip. However, the current generic-chip framework does not call the chip's irq_{suspend,resume} when there are no interrupts installed (this makes sense, because there are no irq_data objects for such a call to be made). More specifically, irq-bcm7120-l2 configures both a forwarding mask (which affects other top-level GIC IRQs) and a second-level interrupt mask (for managing its own child interrupts). The former must be saved/restored on suspend/resume, even when there's nothing to do for the latter. This patch adds a new set of suspend/resume hooks to irq_chip_generic, to help represent *chip* suspend/resume, rather than IRQ suspend/resume. These callbacks will always be called for an IRQ chip (regardless of the installed interrupts) and are based on the per-chip irq_chip_generic struct, rather than the per-IRQ irq_data struct. The original problem report is described in extra detail here: http://lkml.kernel.org/g/20150619224123.GL4917@ld-irv-0074 Signed-off-by: Brian Norris Tested-by: Florian Fainelli Cc: Gregory Fong Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-mips@linux-mips.org Cc: Kevin Cernekee Cc: Jason Cooper Link: http://lkml.kernel.org/r/1437607300-40858-1-git-send-email-computersforpeace@gmail.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 14 ++++++++++++-- kernel/irq/generic-chip.c | 6 ++++++ 2 files changed, 18 insertions(+), 2 deletions(-) commit c376023b7096e76ac4d5526105cf9be8743bead9 Author: Nicolas Pitre Date: Fri Jul 24 15:24:45 2015 -0400 irqchip: Appropriate __init annotation for const data Init data marked const should be annotated with __initconst for correctness and not __initdata. And for those already __initconst, they should be qualified as const at the compiler level too. This also fixes LTO builds that otherwise fail with section mismatch errors. Signed-off-by: Nicolas Pitre Cc: Jason Cooper Link: http://lkml.kernel.org/r/alpine.LFD.2.20.1507241511551.1806@knanqh.ubzr Signed-off-by: Thomas Gleixner drivers/irqchip/irq-atmel-aic.c | 2 +- drivers/irqchip/irq-atmel-aic5.c | 2 +- drivers/irqchip/irq-bcm2835.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) commit 1ee4fb3ee1e47f2b3c294ded383a3cd9cc2decd4 Author: Bjorn Andersson Date: Wed Jul 22 12:43:04 2015 -0700 genirq: Export irq_[get|set]_irqchip_state() Export these functions to be able to build the Qualcomm family A PMIC gpio and mpp drivers as modules. [ tglx: Made them GPL exports ] Signed-off-by: Bjorn Andersson Reviewed-by: Mark Brown Cc: Marc Zyngier Cc: Cc: Cc: Srinivas Kandagatla Cc: Linus Walleij Link: http://lkml.kernel.org/r/1437594184-22966-1-git-send-email-bjorn.andersson@sonymobile.com Signed-off-by: Thomas Gleixner kernel/irq/manage.c | 2 ++ 1 file changed, 2 insertions(+) commit 0d3f2c92e004c67404fabea19728c1962b777bd6 Author: Sudeep Holla Date: Wed Jul 15 15:38:29 2015 +0100 irqchip/gic: Remove redundant gic_set_irqchip_flags Now that the GIC chip implementation enables IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND by default, the platforms requiring them need not override the irqchip flags as before. This patch removes all the users of gic_set_irqchip_flags and the function itself. Signed-off-by: Sudeep Holla Acked-by: Linus Walleij Cc: Marc Zyngier Cc: Simon Horman Cc: Jason Cooper Cc: Michal Simek Cc: Magnus Damm Cc: Gregory CLEMENT Cc: Geert Uytterhoeven Cc: Lorenzo Pieralisi Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1436971109-20189-2-git-send-email-sudeep.holla@arm.com Signed-off-by: Thomas Gleixner arch/arm/mach-shmobile/intc-sh73a0.c | 1 - arch/arm/mach-shmobile/setup-r8a7779.c | 1 - arch/arm/mach-ux500/cpu.c | 1 - arch/arm/mach-zynq/common.c | 1 - drivers/irqchip/irq-gic.c | 5 ----- include/linux/irqchip/arm-gic.h | 1 - 6 files changed, 10 deletions(-) commit aec89ef72ba6c94420f599dcb684ed66937cdacf Author: Sudeep Holla Date: Wed Jul 15 15:38:28 2015 +0100 irqchip/gic: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND The GIC controller doesn't provides any facility to configure the wakeup sources. For the same reason, GIC chip implementation can't provide irq_set_wake functionality, but that results in the irqchip core preventing the systems from entering sleep states like "suspend to RAM". The GICv1/v2 controllers support wakeup events. They signal these wakeup events even when CPU interface is disabled which means the wakeup outputs are always enabled with the required logic in always-on domain. An implementation can powerdown the GIC completely, but then the wake-up must be relayed to some control logic within the power controller that acts as wake-up interrupt controller. Setting the IRQCHIP_SKIP_SET_WAKE flags will ensure that the interrupts from GIC can work as wakeup interrupts and resume from suspend-to-{idle, ram}. The wakeup interrupt sources need to use enable_irq_wake() and the irqchip core will then set the IRQD_WAKEUP_STATE flag. Also it's always safer to mask all the non wakeup interrupts are masked at the chip level when suspending. The irqchip infrastructure can handle masking of those interrupts at the chip level. The chip implementation just have to indicate that with IRQCHIP_MASK_ON_SUSPEND. This patch enables IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND so that the irqchip core allows and handles the power managemant wake up modes. Signed-off-by: Sudeep Holla Cc: Marc Zyngier Cc: Simon Horman Cc: Jason Cooper Cc: Michal Simek Cc: Linus Walleij Cc: Magnus Damm Cc: Gregory CLEMENT Cc: Geert Uytterhoeven Cc: Lorenzo Pieralisi Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/1436971109-20189-1-git-send-email-sudeep.holla@arm.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-gic.c | 4 +++- drivers/irqchip/irq-hip04.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) commit ea6f82fe37319675e271dd6b55fb37731eef0e46 Author: Hariprasad Shenai Date: Thu Jul 23 22:41:14 2015 +0530 cxgb4vf: Read correct FL congestion threshold for T5 and T6 VF driver was reading incorrect freelist congestion notification threshold for FLM queues when packing is enabled for T5 and T6 adapter. Fixing it now. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 5 +++++ drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit e0910bace663b78c026b73bbd711a24ccf410531 Author: Nicolas Dichtel Date: Thu Jul 23 15:43:56 2015 +0200 lwtunnel: export linux/lwtunnel.h to userspace Note also that include/linux/lwtunnel.h is not needed. CC: Thomas Graf CC: Roopa Prabhu Fixes: 499a24256862 ("lwtunnel: infrastructure for handling light weight tunnels like mpls") Signed-off-by: Nicolas Dichtel Acked-by: Roopa Prabhu Signed-off-by: David S. Miller include/linux/lwtunnel.h | 6 ------ include/uapi/linux/Kbuild | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) commit f0322f7f1e2165fbf83530a424ef6ebeacbf4bca Author: Anshuman Khandual Date: Tue Jun 30 13:50:28 2015 +0530 powerpc/perf: Change type of the bhrb_users variable This patch just changes data type of bhrb_users variable from int to unsigned int because it never contains a negative value. Reported-by: Daniel Axtens Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/perf/core-book3s.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 949f1e39a6177503349ef8adeedd13fa1c89e5dd Author: Satish Ashok Date: Thu Jul 23 05:00:53 2015 -0700 bridge: mdb: notify on router port add and del Send notifications on router port add and del/expire, re-use the already existing MDBA_ROUTER and send NEWMDB/DELMDB netlink notifications respectively. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_mdb.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++ net/bridge/br_multicast.c | 10 +++++-- net/bridge/br_private.h | 2 ++ 3 files changed, 77 insertions(+), 2 deletions(-) commit 597798e438371128519fa94dacdc42311b4254a6 Author: Thomas Graf Date: Thu Jul 23 13:04:44 2015 +0200 openvswitch: Retrieve tunnel metadata when receiving from vport-netdev Retrieve the tunnel metadata for packets received by a net_device and provide it to ovs_vport_receive() for flow key extraction. [This hunk was in the GRE patch in the initial series and missed the cut for the initial submission for merging.] Fixes: 614732eaa12d ("openvswitch: Use regular VXLAN net_device device") Signed-off-by: Thomas Graf Acked-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/vport-netdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ece39ab9a91aa37090c8fbfe64c240f27ad9f1a Author: Harini Katakam Date: Thu Jul 23 15:44:25 2015 +0530 net: macb: Change capability mask for jumbo support JUMBO and NO_GIGABIT_HALF have the same capability masks. Change one of them. Signed-off-by: Harini Katakam Acked-by: Nicolas Ferre Acked-by: Alexandre Belloni Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2661371ace963280f34fe583d4a6697afecd87d5 Author: Nicolas Dichtel Date: Thu Jul 23 11:29:07 2015 +0200 openvswitch: fix compilation when vxlan is a module With CONFIG_VXLAN=m and CONFIG_OPENVSWITCH=y, there was the following compilation error: LD init/built-in.o net/built-in.o: In function `vxlan_tnl_create': .../net/openvswitch/vport-netdev.c:322: undefined reference to `vxlan_dev_create' make: *** [vmlinux] Error 1 CC: Thomas Graf Fixes: 614732eaa12d ("openvswitch: Use regular VXLAN net_device device") Signed-off-by: Nicolas Dichtel Acked-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 88f643203668b95b884b60b45ff182289153843c Author: Julian Anastasov Date: Thu Jul 23 10:39:35 2015 +0300 ipv4: be more aggressive when probing alternative gateways Currently, we do not notice if new alternative gateways are added. We can do it by checking for present neigh entry. Also, gateways that are currently probed (NUD_INCOMPLETE) can be skipped from round-robin probing. Suggested-by: Florian Westphal Signed-off-by: Julian Anastasov Signed-off-by: David S. Miller net/ipv4/fib_semantics.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 48fb6b554501914b6befcf9b38292cbeb91de330 Author: Wei-Chun Chao Date: Wed Jul 22 18:13:12 2015 -0700 ipv6: fix crash over flow-based vxlan device Similar check was added in ip_rcv but not in ipv6_rcv. BUG: unable to handle kernel NULL pointer dereference at (null) IP: [] ipv6_rcv+0xfa/0x500 Call Trace: [] ? ip_rcv+0x296/0x400 [] ? packet_rcv+0x52/0x410 [] __netif_receive_skb_core+0x63f/0x9a0 [] ? br_handle_frame_finish+0x580/0x580 [bridge] [] ? update_rq_clock.part.81+0x1c/0x40 [] __netif_receive_skb+0x18/0x60 [] process_backlog+0x9f/0x150 Fixes: ee122c79d422 (vxlan: Flow based tunneling) Signed-off-by: Wei-Chun Chao Acked-by: Thomas Graf Signed-off-by: David S. Miller net/ipv6/ip6_input.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6ac9de5f656352b24ab2cb3e925f078c8c809a19 Author: Florian Fainelli Date: Wed Jul 22 17:29:53 2015 -0700 net: bcmgenet: Register link_update callback for all MoCA PHYs Commit 8d88c6ebb34c ("net: bcmgenet: enable MoCA link state change detection") added a fixed PHY link_update callback for MoCA PHYs when registered using platform_data exclusively, this change is also applicable to systems using Device Tree as their primary configuration interface. In order for this to work, move the link_update assignment into bcmgenet_moca_phy_setup() where we know for sure that we are running on a MoCA GENET instance, and do not override phydev->link since this is: - properly taken care of by the PHY library by getting the link UP/DOWN interrupts - this now runs everytime we call bcmgenet_open(), so we need to preserve whatever we detected before we went administratively DOWN and then UP - we need to make sure that MoCA PHYs start with a link DOWN during probe in order to force a link transition to occur To avoid a forward declaration, move bcmgenet_fixed_phy_link_update() above its caller. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmmii.c | 37 +++++++++++++++++----------- 1 file changed, 23 insertions(+), 14 deletions(-) commit 7d5d3075b5910cff7b33a68d3b065566fece4ba1 Author: Florian Fainelli Date: Wed Jul 22 17:28:23 2015 -0700 net: bcmgenet: Remove checks on clock handles Instead of multiplying the number of checks for IS_ERR(priv->clk), simply NULLify the 'struct clk' pointer which is something the Linux common clock framework perfectly deals with and does early return for each and every single clk_* API functions. Having every single function check for !IS_ERR(priv->clk) is both redundant and error prone, as it turns out, we were doing it for the main GENET clock: priv->clk, but not for the Wake-on-LAN or EEE clock, so let's just be consistent here. Signed-off-by: Florian Fainelli Acked-by: Petri Gynther Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) commit b3e6b82a0099dfef038e40c630a554ed1e402504 Author: KY Srinivasan Date: Wed Jul 22 11:42:32 2015 -0700 hv_netvsc: Wait for sub-channels to be processed during probe The current code returns from probe without waiting for the proper handling of subchannels that may be requested. If the netvsc driver were to be rapidly loaded/unloaded, we can trigger a panic as the unload will be tearing down state that may not have been fully setup yet. We fix this issue by making sure that we return from the probe call only after ensuring that the sub-channel offers in flight are properly handled. Reviewed-and-tested-by: Haiyang Zhang Signed-off-by: David S. Miller drivers/net/hyperv/hyperv_net.h | 2 ++ drivers/net/hyperv/rndis_filter.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) commit 402b764533e9d973952573df7ff96c41189e1a14 Author: Hariprasad Shenai Date: Wed Jul 22 22:54:50 2015 +0530 cxgb4: Allow firmware flash, only if cxgb4 is the master driver Adapter can go for a toss, if cxgb4 is loaded as slave and we try to upgrade the firmware. So add a check for the same before flashing firmware using ethtool. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 6b6948dda798637aea237df0d0c8bcba8fa653bc Author: Thomas Graf Date: Wed Jul 22 17:08:42 2015 +0200 vxlan: Use proper endian type for vni in vxlan[6]_xmit_skb Silences the following sparse warnings: drivers/net/vxlan.c:1818:21: warning: incorrect type in assignment (different base types) drivers/net/vxlan.c:1818:21: expected restricted __be32 [usertype] vx_vni drivers/net/vxlan.c:1818:21: got unsigned int [unsigned] [usertype] vni drivers/net/vxlan.c:2014:58: warning: incorrect type in argument 11 (different base types) drivers/net/vxlan.c:2014:58: expected unsigned int [unsigned] [usertype] vni drivers/net/vxlan.c:2014:58: got restricted __be32 [usertype] Fixes: 614732eaa12d ("openvswitch: Use regular VXLAN net_device device") Reported-by: kbuild test robot Signed-off-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1d70ec70ef3b5e3e5536d21d8fc82b25aba62d97 Merge: a69e5a0 cda3696 Author: David S. Miller Date: Sun Jul 26 16:31:50 2015 -0700 Merge branch 'tipc' Jon Maloy says: ==================== tipc: clean up socket message reception Despite recent improvements the message reception code in socket.c is perceived as obscure and hard to follow, especially regarding the logics for message rejection. With the commits in this series we try to remedy this situation. ==================== Signed-off-by: David S. Miller commit cda3696d3d26eb798c94de0dab5bd66ddb5627cb Author: Jon Paul Maloy Date: Wed Jul 22 10:11:20 2015 -0400 tipc: clean up socket layer message reception When a message is received in a socket, one of the call chains tipc_sk_rcv()->tipc_sk_enqueue()->filter_rcv()(->tipc_sk_proto_rcv()) or tipc_sk_backlog_rcv()->filter_rcv()(->tipc_sk_proto_rcv()) are followed. At each of these levels we may encounter situations where the message may need to be rejected, or a new message produced for transfer back to the sender. Despite recent improvements, the current code for doing this is perceived as awkward and hard to follow. Leveraging the two previous commits in this series, we now introduce a more uniform handling of such situations. We let each of the functions in the chain itself produce/reverse the message to be returned to the sender, but also perform the actual forwarding. This simplifies the necessary logics within each function. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/msg.c | 20 ++--- net/tipc/msg.h | 3 +- net/tipc/socket.c | 255 ++++++++++++++++++++++++++---------------------------- net/tipc/socket.h | 2 +- 4 files changed, 134 insertions(+), 146 deletions(-) commit bcd3ffd4f6d7c994c93be2ab8598fdfb2952a1f1 Author: Jon Paul Maloy Date: Wed Jul 22 10:11:19 2015 -0400 tipc: introduce new tipc_sk_respond() function Currently, we use the code sequence if (msg_reverse()) tipc_link_xmit_skb() at numerous locations in socket.c. The preparation of arguments for these calls, as well as the sequence itself, makes the code unecessarily complex. In this commit, we introduce a new function, tipc_sk_respond(), that performs this call combination. We also replace some, but not yet all, of these explicit call sequences with calls to the new function. Notably, we let the function tipc_sk_proto_rcv() use the new function to directly send out PROBE_REPLY messages, instead of deferring this to the calling tipc_sk_rcv() function, as we do now. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/msg.c | 3 +-- net/tipc/msg.h | 2 +- net/tipc/socket.c | 81 ++++++++++++++++++++++++++++++------------------------- 3 files changed, 47 insertions(+), 39 deletions(-) commit 29042e19f2c602fabe4705b5b719550b4627639c Author: Jon Paul Maloy Date: Wed Jul 22 10:11:18 2015 -0400 tipc: let function tipc_msg_reverse() expand header when needed The shortest TIPC message header, for cluster local CONNECTED messages, is 24 bytes long. With this format, the fields "dest_node" and "orig_node" are optimized away, since they in reality are redundant in this particular case. However, the absence of these fields leads to code inconsistencies that are difficult to handle in some cases, especially when we need to reverse or reject messages at the socket layer. In this commit, we concentrate the handling of the absent fields to one place, by letting the function tipc_msg_reverse() reallocate the buffer and expand the header to 32 bytes when necessary. This means that the socket code now can assume that the two previously absent fields are present in the header when a message needs to be rejected. This opens up for some further simplifications of the socket code. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/msg.c | 67 ++++++++++++++++++++++++++++++++++--------------------- net/tipc/msg.h | 3 +-- net/tipc/socket.c | 12 +++++----- 3 files changed, 48 insertions(+), 34 deletions(-) commit 90a21700ed9635070fb04fe92fb50c5e3bc16605 Author: Rodrigo Vivi Date: Thu Jul 23 16:34:58 2015 -0700 drm: Fix DP_TEST_COUNT_MASK By Vesa's DP 1.2 Spec this counter has 4 bits [3:0]. This mask is wrong since when the counter was introduced by myself on commit ad9dc91b6e21266bfc6f466db4b95e10211f31ee Author: Rodrigo Vivi Date: Tue Sep 16 19:18:12 2014 -0400 drm/i915: Fix Sink CRC Signed-off-by: Rodrigo Vivi Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter include/drm/drm_dp_helper.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7dd0e0af64afe4aa08ccdd167f64bd007f09b515 Author: Len Brown Date: Wed May 27 17:11:37 2015 -0400 intel_idle: allow idle states to be freeze-mode specific intel_idle uses a NULL "enter" field in a cpuidle state to recognize the invalid entry terminating a variable-length array. Linux-4.0 added support for the system-wide "freeze" state in cpuidle drivers via the new "enter_freeze" field. The natural way to expose a deep idle state for freeze, but not for run-time idle is to supply "enter_freeze" without "enter"; so we update the driver to accept such states. Signed-off-by: Len Brown drivers/idle/intel_idle.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 92ff7a698badec3938edd3ba6b3e3ae035555365 Author: Hauke Mehrtens Date: Sat Jul 25 21:10:27 2015 +0200 bcma: fix build error when build as module Currently of_default_bus_match_table is not exported so we can only use this feature when bcma is build into the kernel. This patch removes support for child buses when bcma is build as a module as a temporary fix for a build problem introduces in this commit: commit cae761b5a6bdc597ba476a040fdcd5b4bc559b85 Author: Rafał Miłecki Date: Sun Jun 28 17:17:13 2015 +0200 bcma: populate bus DT subnodes as platform_device-s Reported-by: Stephen Rothwell Fixes: cae761b5a6bd ("bcma: populate bus DT subnodes as platform_device-s") Signed-off-by: Hauke Mehrtens Signed-off-by: Kalle Valo drivers/bcma/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit df6e23ae62d46a524ba3db95a201904a01419bdc Author: Jiang Liu Date: Mon Jul 13 20:31:12 2015 +0000 avr32/irq: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Acked-by: Hans-Christian Egtvedt Cc: Haavard Skinnemoen Link: http://lkml.kernel.org/r/20150713100606.527106283@linutronix.de Signed-off-by: Thomas Gleixner arch/avr32/mach-at32ap/pio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f31dd63e050b777d3f3139197c4b3860aa89301 Author: Thomas Gleixner Date: Mon Jul 13 20:31:10 2015 +0000 avr32/at32ap: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Acked-by: Hans-Christian Egtvedt Cc: Haavard Skinnemoen Cc: Jiang Liu Cc: Julia Lawall Link: http://lkml.kernel.org/r/20150713100606.448031045@linutronix.de Signed-off-by: Thomas Gleixner arch/avr32/mach-at32ap/extint.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4365160def95ef2f5da9b5cc5660e5747e5e1956 Author: Thomas Gleixner Date: Mon Jul 13 20:31:09 2015 +0000 avr32/at32ap: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Acked-by: Hans-Christian Egtvedt Cc: Haavard Skinnemoen Cc: Jiang Liu Cc: Julia Lawall Link: http://lkml.kernel.org/r/20150713100606.351640193@linutronix.de Signed-off-by: Thomas Gleixner arch/avr32/mach-at32ap/pio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3cbd6a6ca81c9e8438b592099495a7c2b72de9e3 Author: Gregory CLEMENT Date: Fri Jul 3 13:55:51 2015 +0200 ARM: mvebu: Add standby support Until now only one Armada XP and one Armada 388 based board supported suspend to ram. However, most of the recent mvebu SoCs can support the standby mode. Unlike for the suspend to ram, nothing special has to be done for these SoCs. This patch allows the system to use the standby mode on Armada 370, 38x, 39x and XP SoCs. There are issues with the Armada 375, and the support might be added (if possible) in a future patch. Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/common.h | 4 ++-- arch/arm/mach-mvebu/pm-board.c | 12 ++++++++-- arch/arm/mach-mvebu/pm.c | 52 +++++++++++++++++++++++++++++++++++------- 3 files changed, 56 insertions(+), 12 deletions(-) commit bb253e743affa9d0053add8d3a1089df82f1c854 Author: Gregory CLEMENT Date: Fri Jul 3 13:55:50 2015 +0200 ARM: mvebu: Use __init for the PM initialization functions mvebu_pm_init and mvebu_armada_pm_init are only called during boot, so flag them with __init and save some memory. Signed-off-by: Gregory CLEMENT Reviewed-by: Thomas Petazzoni arch/arm/mach-mvebu/pm-board.c | 2 +- arch/arm/mach-mvebu/pm.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 32f9494c9dfd7494721b314897008dcde6415cb3 Author: Thomas Petazzoni Date: Wed Jul 8 17:02:33 2015 +0200 ARM: mvebu: prepare pm-board.c for the introduction of Armada 38x support The pm-board.c code contains the board-specific logic to enter suspend to RAM. Until now, the code supported only the Armada XP GP board, so all functions and symbols were named with armada_xp_gp. However, it turns out that the Armada 388 GP also uses the same 3 GPIOs protocol to talk to the PIC microcontroller that controls the power supply. Since we are going to re-use the same code with no change for Armada 38x, this commit renames the functions and symbols to use just "armada" instead of "armada_xp_gp". Better names can be found if one day other boards having a different protocol/mechanism are supported in the kernel. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/pm-board.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 88ed69f2a1e1e8e5eb9e16d8cdebd9d5f1deef67 Author: Thomas Petazzoni Date: Wed Jul 8 17:02:32 2015 +0200 ARM: mvebu: prepare mvebu_pm_store_bootinfo() to support multiple SoCs As we are going to introduce support for Armada 38x in pm.c, split out the Armada XP part of mvebu_pm_store_bootinfo() into mvebu_pm_store_armadaxp_bootinfo(), and make the former retunr an error when an unsupported SoC is used. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/pm.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit a101b53d3af16255c0038aad26902be590a96ffa Author: Thomas Petazzoni Date: Wed Jul 8 17:02:31 2015 +0200 ARM: mvebu: do not check machine in mvebu_pm_init() The mvebu_pm_init() initializes the support for suspend/resume, and before doing that, it checks if we are on a board on which suspend/resume is actually supported. However, this check is already done by mvebu_armada_xp_gp_pm_init(), and there is no need to duplicate the check: callers of mvebu_pm_init() should now what they are doing. This commit is done in preparation to the addition of suspend/resume support on Armada 38x. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/pm.c | 3 --- 1 file changed, 3 deletions(-) commit 01049a5deb1d6b9fc3f2df512af09fddd0db6730 Author: Nadav Haklai Date: Wed Jul 8 17:02:30 2015 +0200 ARM: mvebu: prepare set_cpu_coherent() for future extension This patch prepares the set_cpu_coherent() function in coherency.c to be extended to support other SoCs than Armada XP. It will be needed on Armada 38x to re-enable the coherency after exiting from suspend to RAM. This preparation simply moves the function further down in coherency.c so that it can use coherency_type(), and uses that function to only do the Armada XP specific work if we are on Armada XP. Signed-off-by: Nadav Haklai Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/coherency.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit 3fa609755c11fbe8770ede4d895ebb86fb7b9f1e Author: Russell King Date: Sat Jun 6 00:38:08 2015 +0100 ARM: omap2: restore OMAP4 barrier behaviour Restore the OMAP4 barrier behaviour using the new implementation which allows multiplatform systems to hook into the mb() and wmb() ARM implementations to perform any necessary additional barrier maintanence. Acked-by: Tony Lindgren Acked-by: Richard Woodruff Signed-off-by: Russell King arch/arm/mach-omap2/Kconfig | 28 +++------ arch/arm/mach-omap2/common.h | 12 +++- arch/arm/mach-omap2/include/mach/barriers.h | 33 ----------- arch/arm/mach-omap2/omap-secure.h | 7 --- arch/arm/mach-omap2/omap4-common.c | 92 ++++++++++++++++++++++------- arch/arm/mach-omap2/sleep44xx.S | 10 +--- 6 files changed, 91 insertions(+), 91 deletions(-) commit f746929ffdc8a83c0e6092343d4475f6485e13d3 Author: Russell King Date: Sat Jun 6 00:13:40 2015 +0100 Revert "ARM: OMAP4: remove dead kconfig option OMAP4_ERRATA_I688" This reverts commit 606da4826b89b044b51e3a84958b802204cfe4c7. We actually need this code for proper behaviour of OMAP4, and it needs fixing a different way other than just removing the code. Disabling code which is necessary in the hopes of persuing multiplatform kernels is a stupid approach. Acked-by: Tony Lindgren Acked-by: Richard Woodruff Signed-off-by: Russell King arch/arm/mach-omap2/Kconfig | 21 ++++++++++++ arch/arm/mach-omap2/common.c | 1 + arch/arm/mach-omap2/common.h | 3 ++ arch/arm/mach-omap2/io.c | 2 ++ arch/arm/mach-omap2/omap-secure.h | 7 ++++ arch/arm/mach-omap2/omap4-common.c | 69 ++++++++++++++++++++++++++++++++++++++ arch/arm/mach-omap2/sleep44xx.S | 2 ++ 7 files changed, 105 insertions(+) commit 4e1f8a6f1d978f033f1751e2887b3a69fab3f878 Author: Russell King Date: Wed Jun 3 13:10:16 2015 +0100 ARM: add soc memory barrier extension Add an extension to the heavy barrier code to allow a SoC specific memory barrier function to be provided. This is needed for platforms where the interconnect has weak ordering, and thus needs assistance to ensure that memory writes are properly visible in the correct order to other parts of the system. Acked-by: Tony Lindgren Acked-by: Richard Woodruff Signed-off-by: Russell King arch/arm/include/asm/barrier.h | 1 + arch/arm/mm/flush.c | 4 ++++ 2 files changed, 5 insertions(+) commit f81309067ff2d84788316c513a415f6bb8c9171f Author: Russell King Date: Mon Jun 1 23:44:46 2015 +0100 ARM: move heavy barrier support out of line The existing memory barrier macro causes a significant amount of code to be inserted inline at every call site. For example, in gpio_set_irq_type(), we have this for mb(): c0344c08: f57ff04e dsb st c0344c0c: e59f8190 ldr r8, [pc, #400] ; c0344da4 c0344c10: e3590004 cmp r9, #4 c0344c14: e5983014 ldr r3, [r8, #20] c0344c18: 0a000054 beq c0344d70 c0344c1c: e3530000 cmp r3, #0 c0344c20: 0a000004 beq c0344c38 c0344c24: e50b2030 str r2, [fp, #-48] ; 0xffffffd0 c0344c28: e50bc034 str ip, [fp, #-52] ; 0xffffffcc c0344c2c: e12fff33 blx r3 c0344c30: e51bc034 ldr ip, [fp, #-52] ; 0xffffffcc c0344c34: e51b2030 ldr r2, [fp, #-48] ; 0xffffffd0 c0344c38: e5963004 ldr r3, [r6, #4] Moving the outer_cache_sync() call out of line reduces the impact of the barrier: c0344968: f57ff04e dsb st c034496c: e35a0004 cmp sl, #4 c0344970: e50b2030 str r2, [fp, #-48] ; 0xffffffd0 c0344974: 0a000044 beq c0344a8c c0344978: ebf363dd bl c001d8f4 c034497c: e5953004 ldr r3, [r5, #4] This should reduce the cache footprint of this code. Overall, this results in a reduction of around 20K in the kernel size: text data bss dec hex filename 10773970 667392 10369656 21811018 14ccf4a ../build/imx6/vmlinux-old 10754219 667392 10369656 21791267 14c8223 ../build/imx6/vmlinux-new Another advantage to this approach is that we can finally resolve the issue of SoCs which have their own memory barrier requirements within multiplatform kernels (such as OMAP.) Here, the bus interconnects need additional handling to ensure that writes become visible in the correct order (eg, between dma_map() operations, writes to DMA coherent memory, and MMIO accesses.) Acked-by: Tony Lindgren Acked-by: Richard Woodruff Signed-off-by: Russell King arch/arm/include/asm/barrier.h | 12 +++++++++--- arch/arm/include/asm/outercache.h | 17 ----------------- arch/arm/kernel/irq.c | 1 + arch/arm/mach-mmp/pm-pxa910.c | 1 + arch/arm/mach-prima2/pm.c | 1 + arch/arm/mach-ux500/cache-l2x0.c | 1 + arch/arm/mm/Kconfig | 4 ++++ arch/arm/mm/flush.c | 11 +++++++++++ 8 files changed, 28 insertions(+), 20 deletions(-) commit 9e07b491bc004259e42739ecd7483ab5a0b8b150 Author: Roger Shimizu Date: Tue Jul 21 23:49:17 2015 +0900 ARM: defconfig: orion5x: add DT support - add 2 DT device entries - enable CONFIG_ARM_ATAG_DTB_COMPAT Signed-off-by: Roger Shimizu Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/configs/orion5x_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit dc57844a736f10bf3799d63d7c0d0efc29b1ad7d Author: Roger Shimizu Date: Tue Jul 21 23:49:16 2015 +0900 ARM: dts: orion5x: add buffalo linkstation ls-wtgl Add dts file to support Buffalo Linkstation LS-WTGL, which is marvell orion5x based 2-bay 3.5" HDD NAS. Product info: - (JPN) http://buffalo.jp/products/catalog/storage/ls-wtgl_r1/ - (ENG) http://www.buffalotech.com/support-and-downloads/download/LinkStation_Pro_Duo_Manual_web.pdf Signed-off-by: Roger Shimizu Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts | 273 +++++++++++++++++++++++ 2 files changed, 274 insertions(+) commit 219bf1599e1f6c0cbdc2fe775a97c00bf1ae392d Author: Krzysztof Kozlowski Date: Fri Jul 10 15:26:27 2015 +0900 phy: 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: Kishon Vijay Abraham I drivers/phy/phy-miphy28lp.c | 1 - drivers/phy/phy-qcom-ufs-qmp-14nm.c | 1 - drivers/phy/phy-qcom-ufs-qmp-20nm.c | 1 - drivers/phy/phy-rockchip-usb.c | 1 - 4 files changed, 4 deletions(-) commit 511fdecc9bc98c7b498e72b0dfe8f34481334e4c Author: Krzysztof Kozlowski Date: Fri Jul 10 14:38:10 2015 +0900 phy: 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: Kishon Vijay Abraham I drivers/phy/phy-armada375-usb2.c | 1 - 1 file changed, 1 deletion(-) commit 2508aaed39c94f61c11ee66787ed4702c8afbc67 Author: Michal Simek Date: Wed Jun 24 10:40:55 2015 +0200 phy: berlin: Trivial coding style cleanup Remove unneeded space after tab. Signed-off-by: Michal Simek Acked-by: Antoine Tenart Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 456dedc9e70d2d99b928d215baa881c03369c613 Author: Michal Simek Date: Wed Jun 24 10:40:54 2015 +0200 phy: berlin: Do not use sata name in usb phy driver copy and paste error from berlin sata phy driver. Signed-off-by: Michal Simek Acked-by: Antoine Tenart Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2c89e41f03fa9798405e07bae95760fc86a1068f Author: Michal Simek Date: Wed Jun 24 10:40:53 2015 +0200 phy: berlin: .owner field is setup by core There was big cleanup in past to remove this unneeded setting. Signed-off-by: Michal Simek Acked-by: Antoine Tenart Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-berlin-usb.c | 1 - 1 file changed, 1 deletion(-) commit 8665c18bece7965c3690ac3824bef2f97bae3d71 Author: Hans de Goede Date: Sat Jun 13 14:37:51 2015 +0200 phy-sun4i-usb: Add support for monitoring vbus via a power-supply On some boards there is no vbus_det gpio pin, instead vbus-detection for otg can be done via the pmic. This commit adds support for monitoring vbus_det via the power_supply exported by the pmic, enabling support for otg on these boards. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/sun4i-usb-phy.txt | 1 + drivers/phy/Kconfig | 1 + drivers/phy/phy-sun4i-usb.c | 76 ++++++++++++++++++++-- 3 files changed, 71 insertions(+), 7 deletions(-) commit 1aedf3a7a47b8bbd38c147eeb0c83816c5590215 Author: Hans de Goede Date: Sat Jun 13 14:37:50 2015 +0200 phy-sun4i-usb: Add support for boards with broken Vusb-detection On some boards we cannot detect the presence of an external Vusb, because e.g. the 5V of the otg connector is directly connected to the 5V of the board, and thus is always high. This commit adds support for using such boards by only looking at the id-detection pin. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-sun4i-usb.c | 44 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) commit fc1f45ed3043da3aa901e88a9ef0995bbd320698 Author: Hans de Goede Date: Sat Jun 13 14:37:49 2015 +0200 phy-sun4i-usb: Add support for the usb-phys on the sun8i-a33 SoC The usb-phys on the sun8i-a33 SoC are mostly the same as sun8i-a23 but for some reason (hw bug?) the phyctl register was moved to a different address and is not initialized to 0 on reset. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/sun4i-usb-phy.txt | 1 + drivers/phy/phy-sun4i-usb.c | 39 ++++++++++++++++------ 2 files changed, 29 insertions(+), 11 deletions(-) commit 123dfdbcfaf5eb8753cd6293ab50c41e9b8e9ebf Author: Hans de Goede Date: Sat Jun 13 14:37:48 2015 +0200 phy-sun4i-usb: Add support for the usb-phys on the sun8i-a23 SoC The usb-phys on the sun8i-a23 SoC have the same setup wrt clocks as on the sun6i-a31 SoC, but there are only 2 instead of 3 like on the sun5i-a13 SoC. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt | 2 ++ drivers/phy/phy-sun4i-usb.c | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) commit 2846469631393a1cf150f17a99b8ca2b5772b255 Author: Hans de Goede Date: Sat Jun 13 14:37:47 2015 +0200 phy-sun4i-usb: Swap check for disconnect threshold Before this commit the code for determining the disconnect threshold was checking for "allwinner,sun4i-a10-usb-phy" or "allwinner,sun6i-a31-usb-phy" assuming that those where the exception and then newer SoCs would use a disconnect threshold of 2 like sun7i does. But it turns out that newer SoCs use a disconnect threshold of 3 and sun5i and sun7i are the exceptions, so check for those instead. Here are the settings from the various Allwinner SDK sources: sun4i-a10: USBC_Phy_Write(usbc_no, 0x2a, 3, 2); sun5i-a13: USBC_Phy_Write(usbc_no, 0x2a, 2, 2); sun6i-a31: USBC_Phy_Write(usbc_no, 0x2a, 3, 2); sun7i-a20: USBC_Phy_Write(usbc_no, 0x2a, 2, 2); sun8i-a23: USBC_Phy_Write(usbc_no, 0x2a, 3, 2); sun8i-h3: USBC_Phy_Write(usbc_no, 0x2a, 3, 2); sun9i-a80: USBC_Phy_Write(usbc_no, 0x2a, 3, 2); Note this commit makes no functional changes as currently we only support sun4i - sun7i. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I drivers/phy/phy-sun4i-usb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 1a52abe6821da728b41187c6676b6ab7294e6e2c Author: Hans de Goede Date: Sat Jun 13 14:37:46 2015 +0200 phy-sun4i-usb: Add extcon support for the otg phy (phy0) The sunxi musb glue needs to know if a host or normal usb cable is plugged in, add extcon support so that the musb glue can monitor the host status. Signed-off-by: Hans de Goede Acked-by: Chanwoo Choi Signed-off-by: Kishon Vijay Abraham I drivers/phy/Kconfig | 1 + drivers/phy/phy-sun4i-usb.c | 32 +++++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) commit d2332303efc00d35af7f3d8b025663965862b0e3 Author: Hans de Goede Date: Sat Jun 13 14:37:45 2015 +0200 phy-sun4i-usb: Add id and vbus detection support for the otg phy (phy0) The usb0 phy is connected to an OTG controller, and as such needs some special handling: 1) It allows explicit control over the pullups, enable these on phy_init and disable them on phy_exit. 2) It has bits to signal id and vbus detect to the musb-core, add support for for monitoring id and vbus detect gpio-s for use in dual role mode, and set these bits to the correct values for operating in host only mode when no gpios are specified in the devicetree. While updating the devicetree binding documentation also add documentation for the sofar undocumented usage of regulators for vbus for all 3 phys. Signed-off-by: Hans de Goede Signed-off-by: Kishon Vijay Abraham I .../devicetree/bindings/phy/sun4i-usb-phy.txt | 18 +- drivers/phy/phy-sun4i-usb.c | 250 ++++++++++++++++++++- 2 files changed, 256 insertions(+), 12 deletions(-) commit 2d69a115a991fb7400c501dc643c47ca54cc4045 Author: Joachim Eastwood Date: Thu Jul 9 22:48:26 2015 +0200 phy: dt bindings: add NXP LPC18xx/43xx USB OTG PHY bindings Add binding documentation for NXP LPC18xx/43xx USB OTG PHY. This PHY can found on NXP LPC18xx and LPC43xx devices with USB support. Signed-off-by: Joachim Eastwood Signed-off-by: Kishon Vijay Abraham I .../bindings/phy/phy-lpc18xx-usb-otg.txt | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit cbf919bd32d9424be8b77dac06fd90cd0a297562 Author: Joachim Eastwood Date: Thu Jul 9 22:48:25 2015 +0200 phy: add lpc18xx usb otg phy driver Add PHY driver for the internal USB OTG PHY found on NXP LPC18xx and LPC43xx devices. This driver takes care of enabling the PHY in CREG (syscon) and setting the required clock frequency. Signed-off-by: Joachim Eastwood Signed-off-by: Kishon Vijay Abraham I drivers/phy/Kconfig | 11 +++ drivers/phy/Makefile | 1 + drivers/phy/phy-lpc18xx-usb-otg.c | 143 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 155 insertions(+) commit a69e5a0dcfa4ea3e92b3cc0f17a39f1d88045c11 Merge: 6ca91c6 41a1d04 Author: David S. Miller Date: Sat Jul 25 00:14:46 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-07-23 This series contains updates to e1000e, igb, ixgbevf, i40e and i40evf. Emil extends the reporting of the RSS key and hash table by adding support for x550 VFs. Jia-Ju Bai fixes a QoS issue in e1000e where the error handling lacked a call to pm_qos_remove_request() to cleanup the QoS request made in e1000_open(). Todd updates igb to report unsupported for ethtool coalesce settings that are not supported. Also updated the driver to use the ARRAY_SIZE() macro. Carolyn fixes and refactors the dynamic ITR code for i40e and i40evf which would never change dynamically. So update the switch() statement to have a default case and switch on "new_latency_range" versus the current ITR setting. Shannon cleans up i40e code, where there were un-needed goto's. Also clean up error status messages that were causing some confusion in PHY and FCoE setup error reports. Mitch updates the virtual channel interface to prepare for the x722 device and other future devices, so that the VF driver can report what its capable of supporting to the PF driver. Updates the i40evf driver to handle resets like Core or EMP resets, where the device is reinitialized and the VF will not get the same VSI. Jesse updates the i40e and i40evf driver to use the kernel BIT() and BIT_ULL() macros. ==================== Signed-off-by: David S. Miller commit 6ca91c604074788dfeb7dd714e74f0ad6bea8a77 Author: Rosen, Rami Date: Wed Jul 22 07:57:02 2015 +0300 bridge: Fix setting a flag in br_fill_ifvlaninfo_range(). This patch fixes setting of vinfo.flags in the br_fill_ifvlaninfo_range() method. The assignment of vinfo.flags &= ~BRIDGE_VLAN_INFO_RANGE_BEGIN has no effect and is unneeded, as vinfo.flags value is overriden by the immediately following vinfo.flags = flags | BRIDGE_VLAN_INFO_RANGE_END assignement. Signed-off-by: Rami Rosen Acked-by: Roopa Prabhu Signed-off-by: David S. Miller net/bridge/br_netlink.c | 2 -- 1 file changed, 2 deletions(-) commit a155a5db9389c4088c0901e665002332f2503660 Author: Sriharsha Basavapatna Date: Wed Jul 22 11:15:12 2015 +0530 be2net: support ndo_get_phys_port_id() Add be_get_phys_port_id() function to report physical port id. The port id should be unique across different be2net devices in the system. We use the chip serial number along with the physical port number for this. Signed-off-by: Sriharsha Basavapatna Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be.h | 3 +++ drivers/net/ethernet/emulex/benet/be_cmds.c | 7 ++++++- drivers/net/ethernet/emulex/benet/be_cmds.h | 8 +++++--- drivers/net/ethernet/emulex/benet/be_main.c | 22 ++++++++++++++++++++++ 4 files changed, 36 insertions(+), 4 deletions(-) commit 2e4c7588f6c1d24ae991a85140e05139e953c9b5 Author: Dinh Nguyen Date: Fri Jul 24 22:10:59 2015 -0500 ARM: socfpga: dts: add osc1 as a possible parent for dbg_base_clk The dbg_base_clk can also have osc1 has a parent. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 465345ca387ed491c467689ec2ac1ecbe1d84c3d Author: Sukadev Bhattiprolu Date: Tue Jul 14 20:01:49 2015 -0700 powerpc/perf/hv-24x7: Simplify extracting counter from result buffer Simplify code that extracts a 24x7 counter from the HCALL's result buffer. Suggested-by: Joe Perches Signed-off-by: Sukadev Bhattiprolu Signed-off-by: Michael Ellerman arch/powerpc/perf/hv-24x7.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 40386217cd7bc38908d65852c0af5cffe04bf7f4 Author: Sukadev Bhattiprolu Date: Tue Jul 14 20:01:48 2015 -0700 powerpc/perf/hv-24x7: Whitespace - fix parameter alignment Fix parameter alignment to be consistent with coding style. Signed-off-by: Sukadev Bhattiprolu Signed-off-by: Michael Ellerman arch/powerpc/perf/hv-24x7.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 454d3a2500a4eb33be85dde3bfba9e5f6b5efadc Author: Sebastian Andrzej Siewior Date: Wed Jul 22 17:59:11 2015 +0200 cpufreq: Remove cpufreq_rwsem cpufreq_rwsem was introduced in commit 6eed9404ab3c4 ("cpufreq: Use rwsem for protecting critical sections) in order to replace try_module_get() on the cpu-freq driver. That try_module_get() worked well until the refcount was so heavily used that module removal became more or less impossible. Though when looking at the various (undocumented) protection mechanisms in that code, the randomly sprinkeled around cpufreq_rwsem locking sites are superfluous. The policy, which is acquired in cpufreq_cpu_get() and released in cpufreq_cpu_put() is sufficiently protected already. cpufreq_cpu_get(cpu) /* Protects against concurrent driver removal */ read_lock_irqsave(&cpufreq_driver_lock, flags); policy = per_cpu(cpufreq_cpu_data, cpu); kobject_get(&policy->kobj); read_unlock_irqrestore(&cpufreq_driver_lock, flags); The reference on the policy serializes versus module unload already: cpufreq_unregister_driver() subsys_interface_unregister() __cpufreq_remove_dev_finish() per_cpu(cpufreq_cpu_data) = NULL; cpufreq_policy_put_kobj() If there is a reference held on the policy, i.e. obtained prior to the unregister call, then cpufreq_policy_put_kobj() will wait until that reference is dropped. So once subsys_interface_unregister() returns there is no policy pointer in flight and no new reference can be obtained. So that rwsem protection is useless. The other usage of cpufreq_rwsem in show()/store() of the sysfs interface is redundant as well because sysfs already does the proper kobject_get()/put() pairs. That leaves CPU hotplug versus module removal. The current down_write() around the write_lock() in cpufreq_unregister_driver() is silly at best as it protects actually nothing. The trivial solution to this is to prevent hotplug across cpufreq_unregister_driver completely. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) commit 1e574dbfadafd9fd1f2a414efb731d7538277e71 Author: Azael Avalos Date: Wed Jul 22 19:37:49 2015 -0600 toshiba_acpi: Change some variables to avoid warnings from ninja-check This patch changes some variables to avoid warnings from ninja-check. We are basically moving some variables inside the conditionals where such variables are being used, and we are checking the returned values of some others. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit d50c9005d32b4eda6e11f7ec4f1b00a93088e0ca Author: Azael Avalos Date: Wed Jul 22 19:37:46 2015 -0600 toshiba_acpi: Reorder toshiba_acpi_alt_keymap entries This patch simply reorders the entries found in the new keymap by ascending order, this is simply a cosmetic change, no functionality was modified. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d7e4f2e2ca392bce468718bcbba808108d81d501 Author: Azael Avalos Date: Wed Jul 22 19:37:47 2015 -0600 toshiba_acpi: Remove unused wireless defines Commit 2b74103547b4 ("toshiba_acpi: Remove bluetooth rfkill code") removed bluetooth related code, however, the wireless defines were not removed and are unused. This patch simply removes those defines as there is no code using them. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 5 ----- 1 file changed, 5 deletions(-) commit 695f6060903cefa08ffb78433136f51ac0f94488 Author: Azael Avalos Date: Wed Jul 22 18:09:13 2015 -0600 toshiba_acpi: Transflective backlight updates This patch changes the tr function second parameter from bool to u32, to be on par with the rest of the TCI functions of the driver, and the code was updated accordingly. Also, the check for translective support was moved to the *add function, as the {__get, set}_lcd_brightness functions make use of it. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) commit a88bc06e5aec4984f5bf01c6d410a0939134f737 Author: Azael Avalos Date: Wed Jul 22 18:09:12 2015 -0600 toshiba_acpi: Avoid registering input device on WMI event laptops Commit f11f999e9890 ("toshiba_acpi: Refuse to load on machines with buggy INFO implementations") denied loading on laptops with a WMI Event GUID given that such laptops manage the hotkeys via that interface, however, such laptops have a working Toshiba Configuration Interface (TCI), and thus, such commit denied several supported features. This patch avoids registering the input device and ignores all hotkey events on laptops with such WMI Event GUID, making the supported features found in those laptops to work. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) commit fc5462f8525b47fa219452289ecb22c921c16823 Author: Azael Avalos Date: Wed Jul 22 18:09:11 2015 -0600 toshiba_acpi: Add /dev/toshiba_acpi device There were previous attempts to "merge" the toshiba SMM module to the toshiba_acpi one, they were trying to imitate what the old toshiba module does, however, some models (TOS1900 devices) come with a "crippled" implementation and do not provide all the "features" a "genuine" Toshiba BIOS does. This patch adds a new device called toshiba_acpi, which aim is to enable userspace to access the SMM on Toshiba laptops via ACPI calls. Creating a new convenience _IOWR command to access the SCI functions by opening/closing the SCI internally to avoid buggy BIOS, while at the same time providing backwards compatibility. Older programs (and new) who wish to access the SMM on newer models can do it by pointing their path to /dev/toshiba_acpi (instead of /dev/toshiba) as the toshiba.h header was modified to reflect these changes as well as adds all the toshiba_acpi paths and command, however, it is strongly recommended to use the new IOCTL for any SCI command to avoid any buggy BIOS. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart Documentation/ioctl/ioctl-number.txt | 2 +- drivers/platform/x86/toshiba_acpi.c | 91 ++++++++++++++++++++++++++++++++++++ include/uapi/linux/toshiba.h | 32 +++++++++++-- 3 files changed, 121 insertions(+), 4 deletions(-) commit 7deef550f3a7d44c1d52a6d54f824e7e180c08ae Author: Azael Avalos Date: Wed Jul 22 18:09:10 2015 -0600 toshiba_acpi: Adapt /proc/acpi/toshiba/keys to TOS1900 devices Since the introduction of TOS1900 devices support to the driver, the "keys" entry under the proc directory was broken, given that it only handled TOS620X devices accordingly. This patch adapts the code to show the hotkey values of TOS1900 devices too, and in case some programs are still using that interface, hotkeys reporting should now work on these devices. Signed-off-by: Azael Avalos Signed-off-by: Darren Hart drivers/platform/x86/toshiba_acpi.c | 56 +++++++++++++------------------------ 1 file changed, 20 insertions(+), 36 deletions(-) commit 4ad2adc98f113d6c21d7bd365cd45ba88d4f7470 Author: Guenter Roeck Date: Fri Jul 24 09:37:14 2015 -0700 staging: lustre: Replace strtoul with simple_strtoul Defining and using strtoul in lustre code results in the following compile warnings (arm64:allmodconfig). include/linux/libcfs/libcfs_string.h:105:0: warning: "strtoul" redefined #define strtoul(str, endp, base) simple_strtoul(str, endp, base) include/acpi/platform/aclinux.h:122:0: note: this is the location of the previous definition #define strtoul simple_strtoul Remove the definition and use simple_strtoul() directly. Note that we can not replace simple_strtoul with kstrtoul since the end pointer is used by the code. Signed-off-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs_string.h | 2 -- drivers/staging/lustre/lustre/include/obd.h | 2 +- drivers/staging/lustre/lustre/libcfs/libcfs_string.c | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) commit 59cc3399efd61fabb7f4aa23d4498bd9b01e5f6d Author: Christian Gromm Date: Fri Jul 24 16:11:56 2015 +0200 Staging: most: add MOST driver's documentation This patch adds the documentation to the MOST driver that describes its ABI interface and the basic usage. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman .../most/Documentation/ABI/sysfs-class-most.txt | 181 +++++++++++++++++++++ .../staging/most/Documentation/driver_usage.txt | 180 ++++++++++++++++++++ 2 files changed, 361 insertions(+) commit a4198cdf0c3460d767d0d36979cd633021c127a2 Author: Christian Gromm Date: Fri Jul 24 16:11:55 2015 +0200 Staging: most: add MOST driver's hdm-usb module This patch adds the hdm-usb module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles the USB interface of the MOST network interface controller. This patch is needed in order to use the USB peripheral interface of the network interface controller. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/hdm-usb/Kconfig | 14 + drivers/staging/most/hdm-usb/Makefile | 4 + drivers/staging/most/hdm-usb/hdm_usb.c | 1442 ++++++++++++++++++++++++++++++++ 5 files changed, 1463 insertions(+) commit 91a450ada852f8cb5fc8b9c7242a856cc7b31643 Author: Christian Gromm Date: Fri Jul 24 16:11:54 2015 +0200 Staging: most: add MOST driver's hdm-i2c module This patch adds the hdm-i2c module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles the I2C interface of the MOST network interface controller. This patch is needed in order to use the I2C peripheral interface of the network interface controller. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/hdm-i2c/Kconfig | 12 + drivers/staging/most/hdm-i2c/Makefile | 3 + drivers/staging/most/hdm-i2c/hdm_i2c.c | 451 +++++++++++++++++++++++++++++++++ 5 files changed, 469 insertions(+) commit ba3d7ddfb5c6a2529155ac24d7964adba8777419 Author: Christian Gromm Date: Fri Jul 24 16:11:53 2015 +0200 Staging: most: add MOST driver's hdm-dim2 module This patch adds the hdm-dim2 module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles the MediaLB interface of the MOST network interface controller. This patch is needed in order to use the MediaLB peripheral interface of the network interface controller. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/hdm-dim2/Kconfig | 15 + drivers/staging/most/hdm-dim2/Makefile | 5 + drivers/staging/most/hdm-dim2/dim2_errors.h | 67 ++ drivers/staging/most/hdm-dim2/dim2_hal.c | 919 ++++++++++++++++++++++++++ drivers/staging/most/hdm-dim2/dim2_hal.h | 124 ++++ drivers/staging/most/hdm-dim2/dim2_hdm.c | 964 ++++++++++++++++++++++++++++ drivers/staging/most/hdm-dim2/dim2_hdm.h | 26 + drivers/staging/most/hdm-dim2/dim2_reg.h | 176 +++++ drivers/staging/most/hdm-dim2/dim2_sysfs.c | 116 ++++ drivers/staging/most/hdm-dim2/dim2_sysfs.h | 39 ++ 12 files changed, 2454 insertions(+) commit 3d31c0cb6c127b1d943b610065a05decf821998c Author: Christian Gromm Date: Fri Jul 24 16:11:52 2015 +0200 Staging: most: add MOST driver's aim-v4l2 module This patch adds the aim-v4l2 module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles user space interaction by means of V4L2. This patch is needed in order to have access to MOST isochronous AVP data through V4L2 devices. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/aim-v4l2/Kconfig | 12 + drivers/staging/most/aim-v4l2/Makefile | 6 + drivers/staging/most/aim-v4l2/video.c | 634 +++++++++++++++++++++++++++++++++ 5 files changed, 655 insertions(+) commit 54b4856fb3624609dd5d9ed013bfec7d67083622 Author: Christian Gromm Date: Fri Jul 24 16:11:51 2015 +0200 Staging: most: add MOST driver's aim-sound module This patch adds the aim-sound module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles user space interaction by means of ALSA devices. This patch is needed in order to have access to MOST synchronous data through ALSA devices. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/aim-sound/Kconfig | 12 + drivers/staging/most/aim-sound/Makefile | 4 + drivers/staging/most/aim-sound/sound.c | 758 ++++++++++++++++++++++++++++++++ 5 files changed, 777 insertions(+) commit d4a8ce7f57fc6333e4e5a23980f5265e00ed44ef Author: Christian Gromm Date: Fri Jul 24 16:11:50 2015 +0200 Staging: most: add MOST driver's aim-network module This patch adds the aim-network module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles user space interaction by means of network devices. This patch is needed in order to have access to MOST Ethernet Packets (MEP) through a networking device. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/aim-network/Kconfig | 12 + drivers/staging/most/aim-network/Makefile | 4 + drivers/staging/most/aim-network/networking.c | 567 ++++++++++++++++++++++++++ drivers/staging/most/aim-network/networking.h | 23 ++ 6 files changed, 609 insertions(+) commit 9bc79bbcd0c526e3ec7b98e08c5d34648bb3c158 Author: Christian Gromm Date: Fri Jul 24 16:11:49 2015 +0200 Staging: most: add MOST driver's aim-cdev module This patch adds the aim-cdev module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles user space interaction by means of character devices. This patch is needed in order to have access to MOST data through character devices. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/most/Kconfig | 2 + drivers/staging/most/Makefile | 1 + drivers/staging/most/aim-cdev/Kconfig | 12 + drivers/staging/most/aim-cdev/Makefile | 4 + drivers/staging/most/aim-cdev/cdev.c | 527 +++++++++++++++++++++++++++++++++ 5 files changed, 546 insertions(+) commit 57562a72414ca35b2e614cfe0a1b1a7b7e7813dd Author: Christian Gromm Date: Fri Jul 24 16:11:48 2015 +0200 Staging: most: add MOST driver's core module This patch adds the core module of the MOST driver to the kernel's driver staging area. This module is part of the MOST driver and handles the configuration interface in sysfs, the buffer management and the data routing. MOST defines the protocol, hardware and software layers necessary to allow for the efficient and low-cost transport of control, real-time and packet data using a single medium (physical layer). Media currently in use are fiber optics, unshielded twisted pair cables (UTP) and coax cables. MOST also supports various speed grades up to 150 Mbps. For more information on MOST, visit the MOST Cooperation website: www.mostcooperation.com. Cars continue to evolve into sophisticated consumer electronics platforms, increasing the demand for reliable and simple solutions to support audio, video and data communications. MOST can be used to connect multiple consumer devices via optical or electrical physical layers directly to one another or in a network configuration. As a synchronous network, MOST provides excellent Quality of Service and seamless connectivity for audio/video streaming. Therefore, the driver perfectly fits to the mission of Automotive Grade Linux to create open source software solutions for automotive applications. The driver consists basically of three layers. The hardware layer, the core layer and the application layer. The core layer consists of the core module only. This module handles the communication flow through all three layers, the configuration of the driver, the configuration interface representation in sysfs, and the buffer management. For each of the other two layers a selection of modules is provided. These modules can arbitrarily be combined to meet the needs of the desired system architecture. A module of the hardware layer is referred to as an HDM (hardware dependent module). Each module of this layer handles exactly one of the peripheral interfaces of a network interface controller (e.g. USB, MediaLB, I2C). A module of the application layer is referred to as an AIM (application interfacing module). The modules of this layer give access to MOST via one the following ways: character devices, ALSA, Networking or V4L2. To physically access MOST, an Intelligent Network Interface Controller (INIC) is needed. For more information on available controllers visit: www.microchip.com Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 1 + drivers/staging/most/Kconfig | 16 + drivers/staging/most/Makefile | 1 + drivers/staging/most/TODO | 8 + drivers/staging/most/mostcore/Kconfig | 13 + drivers/staging/most/mostcore/Makefile | 3 + drivers/staging/most/mostcore/core.c | 1931 ++++++++++++++++++++++++++++++ drivers/staging/most/mostcore/mostcore.h | 316 +++++ 9 files changed, 2291 insertions(+) commit db8499273e0110b2285f9190dcde5e8492d46076 Author: Tim Sell Date: Fri Jul 24 12:00:25 2015 -0400 staging: unisys: visornic - prevent NETDEV WATCHDOG timeouts after IO recovery After IO partition recovery, it was possible to get into a situation where a visornic device would repeatedly report: NETDEV WATCHDOG: eth0 (): transmit queue 0 timed out The actual problem would affect any visornic device that was rapidly transmitting at the same time the IO partition was being recovered. Once you hit the problem, the only way to resume use of the nic would be to reboot the Linux client partition. The problem was caused by chstat.sent_xmit and chstat.got_xmit_done NOT getting cleared during IO partition recovery. This is necessary because outstanding xmits would essentially be "abandoned" during such recovery. These fields are now cleared in virtnic_serverdown_complete(). Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 2 ++ 1 file changed, 2 insertions(+) commit 81d275c6c37f075643fec3789ea3f3e4097cda41 Author: Tim Sell Date: Fri Jul 24 12:00:23 2015 -0400 staging: unisys: visornic - check visorchannel_signalinsert/remove failures Logic to check for failures of visorchannel_signalinsert() and visorchannel_signalremove() were added, and a new sent_post_failed counter tracks the number of times we failed to post a rcv buffer to the IO partition. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 4d79002e962466d455ae4933cd404cf5a1164894 Author: Tim Sell Date: Fri Jul 24 12:00:22 2015 -0400 staging: unisys: visornic - ensure proper net locking in tx reset logic visornic tx reset handling is done asynchronously via a workqueue in visornic_timeout_reset(). As a result, it needs to use rtnl_lock() / rtnl_unlock() to lock against possible simultaneous close() of the network device. (I consulted the bnx2 driver as a model here, as that driver also does its tx reset handling asynchronously, just like visornic does. See bnx2_tx_timeout() and bnx2_reset_task().) Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 7c03621a791499fdb47551693cd785f4fa5d03f8 Author: David Kershner Date: Fri Jul 24 12:00:21 2015 -0400 staging: unisys: Process more than one response per check When s-Par is in polling mode it checks every 2 ms to see if there is a response from the IO service partition in the queue. Currently it just reads one entry per 2 ms, this needs to be changed so it drains the queue on each check. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 164 ++++++++++++------------ 1 file changed, 83 insertions(+), 81 deletions(-) commit 3abf4f984adaa4e6fadf9d135ccb915c51bda057 Author: Jakub Sitnicki Date: Fri Jul 24 17:11:30 2015 +0200 staging: rtl8188eu: kill unused hal_data_8188e::fw_ractrl flag Flag is never set. Remove it and the code that is dead because of it. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/odm.c | 11 ++++------ drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c | 21 ------------------ drivers/staging/rtl8188eu/hal/usb_halinit.c | 27 ++---------------------- drivers/staging/rtl8188eu/include/rtl8188e_cmd.h | 1 - drivers/staging/rtl8188eu/include/rtl8188e_hal.h | 1 - drivers/staging/rtl8188eu/include/sta_info.h | 1 - 6 files changed, 6 insertions(+), 56 deletions(-) commit b4ba3b572b469684a3fc804bd2b93fbf848960ea Author: Buţiu Alexandru Octavian Date: Fri Jul 24 00:13:27 2015 +0300 drivers: staging: rtl8188eu Refactored rtw_free_assoc_resources Refactored rtw_free_assoc_resources to avoid sparse warnings about different contexts for basic lock Signed-off-by: Buţiu Alexandru Octavian Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ioctl_set.c | 10 +++++----- drivers/staging/rtl8188eu/core/rtw_mlme.c | 24 ++++++++++++++++-------- drivers/staging/rtl8188eu/core/rtw_pwrctrl.c | 2 +- drivers/staging/rtl8188eu/include/rtw_mlme.h | 3 ++- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 2 +- drivers/staging/rtl8188eu/os_dep/os_intfs.c | 2 +- drivers/staging/rtl8188eu/os_dep/usb_intf.c | 2 +- 7 files changed, 27 insertions(+), 18 deletions(-) commit 5143f7a3e970a1d0b6659cf41a3b46dd48a9bc6f Author: Ioan-Adrian Ratiu Date: Thu Jul 23 16:24:10 2015 +0300 staging: rtl8192e: rtllib: fix macro style issue Remove macro and use explicit case statements. Code is a little longer but clearer. Checkpatch.pl does not complain anymore. Signed-off-by: Ioan-Adrian Ratiu Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib_rx.c | 80 +++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 28 deletions(-) commit ed2c2e060b6c3cd5fc42993011aa41c765ff1b2f Author: Ian Abbott Date: Thu Jul 23 16:47:02 2015 +0100 staging: comedi: usbduxsigma: round down AO scan_begin_arg at step 4. The return value of the `cmdtest` handler for a subdevice checks the prospective new command in various steps and returns the step number at which any problem was detected, or 0 if no problem was detected. It is allowed to modify the command in various ways at each step. Corrections for out-of-range values are generally made at step 3, and minor adjustments such as rounding are generally made at step 4. The `cmdtest` handler for the AO subdevice (`usbduxsigma_ao_cmdtest()`) currently range checks the timings at step 3. Since the running command will round down the timings, add code to round them down at step 4. Signed-off-by: Ian Abbott Reviewed-by: Bernd Porr Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 57befc33af0243e9b3835d46ab836406256f5dd4 Author: Ian Abbott Date: Thu Jul 23 16:47:01 2015 +0100 staging: comedi: usbduxsigma: remove unused "convert" timing for AO The `cmdtest` and `cmd` handlers for the AO subdevice (`usbduxsigma_ao_cmdtest()` and `usbduxsigma_ao_cmd()`) support "scan" timing of commands with all channels updated every "scan" period. There is some disabled code to use "convert" timing in high speed mode. That would allow channels to be updated sequentially every "convert" period. Since that code is incomplete and currently disabled, remove it to simplify the existing code. Signed-off-by: Ian Abbott Reviewed-by: Bernd Porr Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 58 ++++++++-------------------- 1 file changed, 17 insertions(+), 41 deletions(-) commit 333e40aee3f2d0457e2cbadc742619a6f449b2e7 Author: Ian Abbott Date: Thu Jul 23 16:47:00 2015 +0100 staging: comedi: usbduxsigma: round down AI scan_begin_arg at step 4. The return value of the `cmdtest` handler for a subdevice checks the prospective new command in various steps and returns the step number at which any problem was detected, or 0 if no problem was detected. It is allowed to modify the command in various ways at each step. Corrections for out-of-range values are generally made at step 3, and minor adjustments such as rounding are generally made at step 4. The `cmdtest` handler for the AI subdevice (`usbduxsigma_ai_cmdtest()`) currently modifies `cmd->scan_begin_arg` to bring it into range and round it down at step 3. Move the rounding down part to step 4 to follow the usual Comedi convention. Signed-off-by: Ian Abbott Reviewed-by: Bernd Porr Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 12e1e6960130673aabbbe7f094c4690b00618881 Author: Ian Abbott Date: Thu Jul 23 16:46:59 2015 +0100 staging: comedi: usbduxsigma: remove AI scan_begin_src == TRIG_FOLLOW The AI subdevice `cmdtest` handler `usbduxsigma_ai_cmdtest()` ensures that `cmd->scan_begin_src == TRIG_TIMER` by the end of step 2 of the command checking code, so assume that this is the case for step 3 onwards and remove the redundant code. Signed-off-by: Ian Abbott Reviewed-by: Bernd Porr Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 47 +++++++++++----------------- 1 file changed, 19 insertions(+), 28 deletions(-) commit c04a1f17803e0d3eeada586ca34a6b436959bc20 Author: Ian Abbott Date: Thu Jul 23 16:46:58 2015 +0100 staging: comedi: usbduxsigma: don't clobber ao_timer in command test `devpriv->ao_timer` is used while an asynchronous command is running on the AO subdevice. It also gets modified by the subdevice's `cmdtest` handler for checking new asynchronous commands, `usbduxsigma_ao_cmdtest()`, which is not correct as it's allowed to check new commands while an old command is still running. Fix it by moving the code which sets up `devpriv->ao_timer` into the subdevice's `cmd` handler, `usbduxsigma_ao_cmd()`. Note that the removed code in `usbduxsigma_ao_cmdtest()` checked that `devpriv->ao_timer` did not end up less that 1, but that could not happen due because `cmd->scan_begin_arg` or `cmd->convert_arg` had already been range-checked. Also note that we tested the `high_speed` variable in the old code, but that is currently always 0 and means that we always use "scan" timing (`cmd->scan_begin_src == TRIG_TIMER` and `cmd->convert_src == TRIG_NOW`) and never "convert" (individual sample) timing (`cmd->scan_begin_src == TRIG_FOLLOW` and `cmd->convert_src == TRIG_TIMER`). The moved code tests `cmd->convert_src` instead to decide whether "scan" or "convert" timing is being used, although currently only "scan" timing is supported. Fixes: fb1ef622e7a3 ("staging: comedi: usbduxsigma: tidy up analog output command support") Signed-off-by: Ian Abbott Reviewed-by: Bernd Porr Reviewed-by: H Hartley Sweeten Cc: # 3.19 onwards Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 33 ++++++++++++---------------- 1 file changed, 14 insertions(+), 19 deletions(-) commit 423b24c37dd5794a674c74b0ed56392003a69891 Author: Ian Abbott Date: Thu Jul 23 16:46:57 2015 +0100 staging: comedi: usbduxsigma: don't clobber ai_timer in command test `devpriv->ai_timer` is used while an asynchronous command is running on the AI subdevice. It also gets modified by the subdevice's `cmdtest` handler for checking new asynchronous commands (`usbduxsigma_ai_cmdtest()`), which is not correct as it's allowed to check new commands while an old command is still running. Fix it by moving the code which sets up `devpriv->ai_timer` and `devpriv->ai_interval` into the subdevice's `cmd` handler, `usbduxsigma_ai_cmd()`. Note that the removed code in `usbduxsigma_ai_cmdtest()` checked that `devpriv->ai_timer` did not end up less than than 1, but that could not happen because `cmd->scan_begin_arg` had already been checked to be at least the minimum required value (at least when `cmd->scan_begin_src == TRIG_TIMER`, which had also been checked to be the case). Fixes: b986be8527c7 ("staging: comedi: usbduxsigma: tidy up analog input command support) Signed-off-by: Ian Abbott Reviewed-by: Bernd Porr Reviewed-by: H Hartley Sweeten Cc: # 3.19 onwards Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 37 ++++++++++++---------------- 1 file changed, 16 insertions(+), 21 deletions(-) commit 142f2610d525c23afa5ba5e4e535504bea8b04b9 Author: Stephen Boyd Date: Tue Jun 16 13:31:16 2015 -0700 ARM: qcom_defconfig: Enable options for KS8851 ethernet Enable the RPM and RPM regulator drivers as well as the KS8851 ethernet driver so that ethernet works on MSM8960 CDP. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/configs/qcom_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit c37f45b5f1cdfcdc351d88950b32658c970582ca Author: Leilk Liu Date: Thu Jul 23 17:10:40 2015 +0800 spi: support spi without dma channel to use can_dma() For spi without dma channel and use can_dma(), it can use master->dev for struct device. Signed-off-by: Leilk Liu Signed-off-by: Mark Brown drivers/spi/spi.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) commit 0a3dcb509ae7701ba3eaf470cad91827821daf41 Author: Axel Lin Date: Fri Jul 24 16:11:25 2015 +0800 ASoC: Use params_width() at appropriate places Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/max98925.c | 2 +- sound/soc/codecs/pcm512x.c | 4 ++-- sound/soc/codecs/wm2200.c | 2 +- sound/soc/codecs/wm5100.c | 2 +- sound/soc/codecs/wm8776.c | 4 ++-- sound/soc/codecs/wm8996.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) commit 80deaf09cb3fb3939c1d2b84610ae411cd7c6001 Author: Axel Lin Date: Sun Jul 19 12:32:52 2015 +0800 ASoC: cs4265: CS4265_INT_STATUS is readable register CS4265_INT_STATUS was missed in cs4265_readable_register, fix it. The register 0x01 ~ 0x12 are readable, use CS4265_CHIP_ID ... CS4265_SPDIF_CTL2 syntax for better readability. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4265.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) commit e2adfacde619d8e39dc8c02919bd2524d3c39588 Author: Stephen Boyd Date: Fri Jul 17 14:41:55 2015 -0700 regulator: qcom-spmi: Add vendor specific configuration Add support for over current protection (OCP), pin control selection, soft start strength, and auto-mode. Cc: Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown .../bindings/regulator/qcom,spmi-regulator.txt | 60 ++++++- drivers/regulator/qcom_spmi-regulator.c | 200 ++++++++++++++++++++- 2 files changed, 251 insertions(+), 9 deletions(-) commit 41dae91a7206d9a09047f3d376282bba4d9545b5 Merge: 5d506a5 3a003ba Author: Mark Brown Date: Fri Jul 24 18:29:31 2015 +0100 Merge branch 'topic/ocp' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-qcom-spmi commit 3a003baeec246f604ed1d2e0087560d7f15edcc6 Author: Stephen Boyd Date: Fri Jul 17 14:41:54 2015 -0700 regulator: Add over current protection (OCP) support Some regulators can automatically shut down when they detect an over current event. Add an op (set_over_current_protection) and a DT property + constraint to support this capability. Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/regulator.txt | 1 + drivers/regulator/core.c | 9 +++++++++ drivers/regulator/of_regulator.c | 3 +++ include/linux/regulator/driver.h | 1 + include/linux/regulator/machine.h | 1 + 5 files changed, 15 insertions(+) commit 5f74db105b1c0980c9863e7a7d1bc0525e0316e8 Author: Sebastian Reichel Date: Wed Jul 22 20:46:09 2015 +0200 spi: omap2-mcspi: add runtime PM to set_cs() Since commit ddcad7e9068eb omap2_mcspi_set_cs() is called without runtime power management requested. This patch fixes the problem by requesting runtime power management in omap2_mcspi_set_cs(). Reported-By: Pali Rohár Fixes: ddcad7e9068eb (spi: omap2-mcspi: Fix native cs with new set_cs) Tested-By: Pavel Machek Signed-off-by: Sebastian Reichel Acked-by: Michael Welling Signed-off-by: Mark Brown drivers/spi/spi-omap2-mcspi.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit fa466c91970a0207d9384016cc7884a7f61834b6 Author: Franklin S Cooper Jr Date: Wed Jul 22 07:32:22 2015 -0500 spi: davinci: Choose correct pre-scaler limit based on SOC Currently the pre-scaler limit is incorrect. The value differs slightly for various devices so a single value can't be used. Using the compatible field select the correct pre-scaler limit. Add new compatible field value for Keystone devices to support their unique pre-scaler limit value. Signed-off-by: Franklin S Cooper Jr Reviewed-by: Sekhar Nori Signed-off-by: Mark Brown .../devicetree/bindings/spi/spi-davinci.txt | 2 + drivers/spi/spi-davinci.c | 43 ++++++++++++++++++---- include/linux/platform_data/spi-davinci.h | 1 + 3 files changed, 39 insertions(+), 7 deletions(-) commit bba732d86694f7217a41e83a2c1deb42ed9aa7fd Author: Franklin S Cooper Jr Date: Wed Jul 22 07:32:21 2015 -0500 spi: davinci: Set prescale value based on register value Within davinci_spi_get_prescale() the prescale has two meanings. First one being the calculated prescale value and then at the end translates it to the prescale value that will be written to the SPI register. At first glance this can be confusing especially when comparing the minimum prescale value against what is seen in the TRM. To simplify things make it clear that the calculated prescale value will always be based on the value that will be written into the SPI register. Signed-off-by: Franklin S Cooper Jr Signed-off-by: Mark Brown drivers/spi/spi-davinci.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 6d0a1815e814ee5eaa0cec17913d5e4abae99ef0 Author: Andrew F. Davis Date: Wed Jul 22 16:51:56 2015 -0500 power: bq27x00_battery: Checkpatch fixes Remove space before tab. Remove unnecessary line continuations. Add braces to else statement. Remove unnecessary parentheses. Remove unneeded blank lines. Remove unnecessary 'out of memory' message. Add missing line after declarations. Change use of printk to pr_err. Signed-off-by: Andrew F. Davis Acked-by: Pali Rohár Acked-by: Dan Murphy Signed-off-by: Sebastian Reichel drivers/power/bq27x00_battery.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit ce33edfa4903d8b8ded2569e880489678f75a85b Author: Andrew F. Davis Date: Wed Jul 22 16:51:55 2015 -0500 power: bq27x00_battery: Fix function parameter alignment Fix the alignment of function parameters on new lines. Signed-off-by: Andrew F. Davis Acked-by: Pali Rohár Acked-by: Dan Murphy Signed-off-by: Sebastian Reichel drivers/power/bq27x00_battery.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 6eb207f271478472195cfaa2e59646f7e5036ae8 Author: Andrew F. Davis Date: Wed Jul 22 16:51:54 2015 -0500 power: bq27x00_battery: Fix lines over 80 characters long Shorted lines over 80 characters long by reducing tab count. Signed-off-by: Andrew F. Davis Acked-by: Pali Rohár Acked-by: Dan Murphy Signed-off-by: Sebastian Reichel drivers/power/bq27x00_battery.c | 74 ++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit db04fc5caa79260170a68d58db8fc401f1ab05f5 Author: Andrew F. Davis Date: Wed Jul 22 16:51:53 2015 -0500 power: bq27x00_battery: Add manufacturer property Add the manufacturer property to the bq27x00 driver. Signed-off-by: Andrew F. Davis Acked-by: Dan Murphy Acked-by: Pali Rohár Signed-off-by: Sebastian Reichel drivers/power/bq27x00_battery.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit dd9f1486ae207cd947416f1bdc461edc4880f2df Author: Jun Nie Date: Wed Jul 15 11:25:58 2015 +0800 power/reset: zx: Register restart handler Register with kernel restart handler instead of setting arm_pm_restart directly. Signed-off-by: Jun Nie Signed-off-by: Sebastian Reichel drivers/power/reset/Kconfig | 7 ++++ drivers/power/reset/Makefile | 1 + drivers/power/reset/zx-reboot.c | 82 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) commit 0e375d625b3493721219af571aeeca17e01f6da4 Merge: beb8962 a6c2a32 Author: Mark Brown Date: Fri Jul 24 16:15:02 2015 +0100 Merge branch 'fix/ssm4567' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-ssm4567 commit beb8962210f592bd285ed77559ac4458cc26f774 Merge: eeffd4b 1c07a4d Author: Mark Brown Date: Fri Jul 24 16:11:47 2015 +0100 Merge branch 'topic/owner' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-ssm4567 Conflicts: sound/soc/codecs/ssm4567.c commit 377b641ac84c573bcea06aec47f7ad1ba4047e1c Author: Mike Looijmans Date: Wed Jul 1 11:40:53 2015 +0200 power/ltc2941-battery-gauge.c: Use the devicetree node name as supply name Make it possible to set the name of the supply from the devicetree. Like other power supply drivers just use the node name. This makes the code smaller as well, as it doesn't need to allocate memory to hold the name and allocate a unique ID. Signed-off-by: Mike Looijmans Signed-off-by: Sebastian Reichel drivers/power/ltc2941-battery-gauge.c | 54 ++++++----------------------------- 1 file changed, 8 insertions(+), 46 deletions(-) commit bd6906ed3d7a00d55c9bd368a640ef83bb487d1d Author: Len Brown Date: Fri Jul 24 10:35:23 2015 -0400 tools/power turbostat: fix typo on DRAM column in Joules-mode < RAM_W > RAM_J Reported-by: Hubert Chrzaniuk Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 325b50aa5d1c7dae57d1e44defdbacd1e2bcabde Author: NeilBrown Date: Mon Mar 23 10:20:28 2015 +1100 twl4030_charger: use devres for power_supply_register and kzalloc. Final allocations/registrations are now managed by devres. Signed-off-by: NeilBrown Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) commit 1b7cac23419e1398eac4c28368da6671c9c4ce9d Author: NeilBrown Date: Mon Mar 23 10:20:28 2015 +1100 twl4030_charger: use devm_request_threaded_irq This simplifies the error paths. Signed-off-by: NeilBrown Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel drivers/power/twl4030_charger.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 7c97211b61d8b91b8f88237e4bbb3a8959ecb18a Author: Johannes Thumshirn Date: Thu Jul 23 11:17:26 2015 +0200 Documentation: Minor changes to men-chameleon-bus.txt Change men-chameleon-bus.txt according to the comments made by Randy Dunlap in https://lkml.org/lkml/2015/7/17/691. These are: * Some minor gramatical changes * Spelling fixes * Write the word "Chameleon" capitalized throughout the whole document * Explain MEN as MEN Mikro Elektronik GmbH. Signed-off-by: Johannes Thumshirn Signed-off-by: Jonathan Corbet Documentation/men-chameleon-bus.txt | 39 +++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 19 deletions(-) commit 013542caa898289f37695bea849f1e368254ec8b Author: Benjamin Herr Date: Sat Jul 18 14:31:40 2015 +0200 Doc: fix trivial typo in SubmittingPatches This patch changes the tense of a verb in SubmittingPatches to ensure grammatical validity of the containing sentence. Signed-off-by: Benjamin Herr Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c121170115e9b6bb9dbe3e1daa8039976450bcf Author: Jonathan Corbet Date: Fri Jul 24 15:08:14 2015 +0200 MAINTAINERS: Direct Documentation/DocBook/media properly The media maintainers want DocBook changes to go through their tree; document that wish accordingly. MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit fce96568f314d0fb72f5ca4bba2f64e7164a7817 Author: Jim Davis Date: Thu Jul 16 12:50:50 2015 -0700 Documentation: installed man pages don't need to be executable Install the man pages with mode 644 instead of 755 Signed-off-by: Jim Davis Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3d5583cc82e9d505e4b9a37615f7a28c7ea465b9 Author: Ahmed Mohamed Abd EL Mawgood Date: Thu Jul 16 23:17:36 2015 +0200 fix Evolution submenu name in email-clients.txt I have noticed that there is no submenu in Evolution called Heading instead there is Paragraph style Signed-off-by: Ahmed Mohamed Signed-off-by: Jonathan Corbet Documentation/email-clients.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9f2f4594c77073ca306ef345e9f9c1cde292dd3 Author: Johannes Thumshirn Date: Fri Jul 17 12:23:01 2015 +0200 Documentation: Add MCB documentation Add basic introductory documentation for the MEN Chameleon Bus. Signed-off-by: Johannes Thumshirn Signed-off-by: Jonathan Corbet Documentation/men-chameleon-bus.txt | 162 ++++++++++++++++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 163 insertions(+) commit 9e1aa7c8882050577c9223ba85c4ee49cd1da469 Author: Wang Long Date: Thu Jul 16 06:31:16 2015 +0000 Documentation: Update filesystems/debugfs.txt This patch update the Documentation/filesystems/debugfs.txt file. The main work is to add the description of the following functions: debugfs_create_atomic_t debugfs_create_u32_array debugfs_create_devm_seqfile debugfs_create_file_size Signed-off-by: Wang Long Signed-off-by: Jonathan Corbet Documentation/filesystems/debugfs.txt | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit a10726bb5472ff2ed95180cfb5e82091c45d7b19 Author: Rabin Vincent Date: Tue Jul 14 07:35:11 2015 +0200 Documentation: mm: fix location of extfrag_index /proc/extfrag_index does not exist. This file is in debugfs. Fix the description of extfrag_threshold to reflect this. Signed-off-by: Rabin Vincent Signed-off-by: Jonathan Corbet Documentation/sysctl/vm.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8f5f0bc2766af7785161a4440bca1d0746eb3671 Author: Frank Praznik Date: Thu Jul 23 19:01:16 2015 -0400 HID: sony: Drop invalid Sixaxis input reports When connected via Bluetooth the sixaxis periodically sends reports with an ID of 1, the second byte 0xff and the rest zeroed. These reports are not related to the controller state and must be dropped to avoid generating false input events. Link: http://www.spinics.net/lists/linux-bluetooth/msg63028.html Signed-off-by: Frank Praznik Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 070f63b46ac893a5debf68c5751101b6f5f77230 Author: Yang Bo Date: Mon Jul 20 09:40:28 2015 -0700 HID: multitouch: Add support for CJTouch MultiTouch Add device IDs for CJTouch 0020 and 0040 panels. Signed-off-by: Yang Bo Signed-off-by: Jiri Kosina drivers/hid/Kconfig | 1 + drivers/hid/hid-ids.h | 4 ++++ drivers/hid/hid-multitouch.c | 8 ++++++++ 3 files changed, 13 insertions(+) commit 0439de75d32c249bd9f5824ffd5e40c4c2109d77 Author: Stephen Just Date: Wed Jul 22 20:11:40 2015 -0700 HID: microsoft: Add Surface 3 type cover Adding support for the Microsoft Surface 3 (non-pro) Type Cover. The existing definitions and quirks are actually for the Surface Pro 3 type covers. I've renamed the old constants to reflect that they belong to the Surface Pro 3, and added a new constant and matching code for the Surface 3. Signed-off-by: Stephen Just Signed-off-by: Jiri Kosina drivers/hid/hid-core.c | 8 +++++--- drivers/hid/hid-ids.h | 5 +++-- drivers/hid/hid-microsoft.c | 6 ++++-- drivers/hid/usbhid/hid-quirks.c | 3 ++- 4 files changed, 14 insertions(+), 8 deletions(-) commit 8766018b6ef73ca124d13b0d0a06dec906726cc8 Author: Henry Chen Date: Fri Jul 24 13:24:41 2015 +0800 regulator: mt6311: Add support for mt6311 regulator Add regulator support for mt6311. It has 2 regulaotrs - Buck and LDO, provide the related buck/ldo voltage data to the driver, and creates the regulator_desc table. Supported operations for Buck are enabled/disabled and voltage change, only enabled/disabled for LDO. Signed-off-by: Henry Chen Reviewed-by: Javier Martinez Canillas Signed-off-by: Mark Brown drivers/regulator/Kconfig | 9 ++ drivers/regulator/Makefile | 1 + drivers/regulator/mt6311-regulator.c | 180 +++++++++++++++++++++++++++++++++++ drivers/regulator/mt6311-regulator.h | 65 +++++++++++++ include/linux/regulator/mt6311.h | 29 ++++++ 5 files changed, 284 insertions(+) commit 678cdb2fbd7e44b8905a8f4e770c694eb77f0395 Author: Henry Chen Date: Fri Jul 24 13:24:40 2015 +0800 regulator: mt6311: Add document for mt6311 regulator This patch adds a list of supported regulator names to the devicetree binding documentation for Mediatek MT6311 PMIC. Signed-off-by: Henry Chen Reviewed-by: Javier Martinez Canillas Signed-off-by: Mark Brown .../bindings/regulator/mt6311-regulator.txt | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit eeffd4b442eb2aa25257d8c6631b17cba685ccac Author: Harsha Priya Date: Thu Jul 23 19:11:54 2015 +0000 ASoC: ssm4567: Added ACPI entry for SSM4567 codec Added INT343B ACPI ID for the SSM4567 codec Signed-off-by: Harsha Priya Signed-off-by: M Naveen Signed-off-by: M R Sathya Prakash Acked-by: Anatol Pomozov Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/ssm4567.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 97a747117d95b54fe3ce21d43e04499a1671fff6 Author: Axel Lin Date: Fri Jul 24 11:17:28 2015 +0800 ASoC: sta529: Remove redundant I2C_FUNC_SMBUS_BYTE_DATA functionality check This checking is done by regmap_get_i2c_bus() which is called in devm_regmap_init_i2c(). Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/sta529.c | 3 --- 1 file changed, 3 deletions(-) commit 48f403be3eb9b603cfaf946ca7a0c76272750469 Author: Axel Lin Date: Thu Jul 23 23:23:35 2015 +0800 ASoC: pcm1681: Improve the logic for de-emphasis sampling rate selection Slightly improve the logic for de-emphasis sampling rate selection by break out the loop if the rate is matched. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/pcm1681.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 1d0088f8c1d8b9541ed01f2cc52606fbf8baf50c Author: Raja Mani Date: Tue Jul 21 10:52:00 2015 +0530 ath10k: extend struct htt_mgmt_tx_dec for qca99x0 HTT_H2T_MSG_TYPE_MGMT_TX msg in 10.4 firmware carries additional 4 byte in htt_mgmt_tx_desc where it tells to firmware that at what rate mgmt frame has to go out in the air. It's an optional parameter, setting this field to zero will force firmware to choose auto rate and send the frame out. Those 4 byte info is missed out in the current code and 10.4 firmware ended up reading some junk in those 4 byte and sometime malfunctioning. Fix it by adding 4 byte in struct htt_mgmt_tx_desc. Non 10.4 firmware will not process those four byte. So, adding 4 byte at the end of struct htt_mgmt_tx_desc will not create any impact on other chipset. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 6 ++++++ drivers/net/wireless/ath/ath10k/htt_tx.c | 2 ++ 2 files changed, 8 insertions(+) commit b963519509644f52eaaddcc1fa484e28ac74c750 Author: Manikanta Pubbisetty Date: Mon Jul 20 17:56:12 2015 +0530 ath10k: add TCP/UDP Checksum offload support for QCA99x0 The patch adds support to offload TCP/UDP checksum calculations for QCA99x0. Signed-off-by: Manikanta Pubbisetty Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 17 ++++++++++++++++- drivers/net/wireless/ath/ath10k/htt_tx.c | 4 ++++ 2 files changed, 20 insertions(+), 1 deletion(-) commit 19be9e9a7ac7e6050eab426283d2a87593cf6e82 Author: Maninder Singh Date: Thu Jul 16 09:25:33 2015 +0530 ath10k: fix wrong initialization of struct channel chandef is initialized with NULL and on the very next line, we are using it to get channel, which is not correct. Channel should be initialized after obtaining chandef. Found by cppcheck: ath/ath10k/mac.c:839]: (error) Possible null pointer dereference: chandef Signed-off-by: Maninder Singh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1f5dbfbb64c92e1c22305ac2b3951d6e3cf7a9a7 Author: Peter Oh Date: Wed Jul 15 19:01:21 2015 -0700 ath10k: add support for qca99x0 Rx descriptors QCA99X0 chip has an extra 4 bytes in rx_msdu_start, 20 bytes in rx_msdu_end and 20 bytes in rx_ppdu_end structure which are used in htt_rx_desc and HTT Rx ring offset setup. This is necessary for correct Rx for QCA99X0 or Rx descriptors will be overwritten and corrupted. With this patch QCA988X and QCA6174 will have extra 44 bytes padding in Rx descriptor layout which is harmless. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_rx.c | 24 ++--- drivers/net/wireless/ath/ath10k/rx_desc.h | 163 +++++++++++++++++++++++++++++- 2 files changed, 172 insertions(+), 15 deletions(-) commit 05a2cb0daa49af4e240834ff3736fd35ba83320f Author: Peter Oh Date: Wed Jul 15 19:01:20 2015 -0700 ath10k: redefine rx_ppdu_end_common structure to cover qca99x0 rx_ppdu_end_common structure is valid for both of qca998x and qca6174, but not for qca99x0 since it has new additional members. Hence update the common structure to cover qca99x0 as well. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/rx_desc.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit fbc03a466fd48bc8be2e675be948001feea29e4d Author: Peter Oh Date: Wed Jul 15 19:01:19 2015 -0700 ath10k: update tx path to support QCA99X0 Since QCA99X0 uses fragmentation descriptor differently from other ones on tx path, we need to handle it separately. QCA99X0 is using 48 bits for address and 16 bits for length out of 2 dword and each values have to be programmed by frag desc base addr + msdu id, so that hardware can retrieve corresponding frag data. Signed-off-by: Peter Oh Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt.h | 13 ++++++++++-- drivers/net/wireless/ath/ath10k/htt_tx.c | 35 +++++++++++++++++++++++--------- 2 files changed, 36 insertions(+), 12 deletions(-) commit acd195800ffca556e9c78c51d1efe534d71dd236 Author: Vasanthakumar Thiagarajan Date: Fri Jul 10 14:31:20 2015 +0530 ath10k: delay device access after cold reset It is observed that during cold reset pcie access right after a write operation to SOC_GLOBAL_RESET_ADDRESS causes Data Bus Error and system hard lockup. The reason for bus error is that pcie needs some time to get back to stable state for any transaction during cold reset. Add delay of 20 msecs after write of SOC_GLOBAL_RESET_ADDRESS to fix this issue. This patch is tested on QCA988X. This is also tested on QCA99X0 which is WIP. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) commit a73c2a2f9123605022bedbd2b59ca7e76036f0b3 Author: Sagi Grimberg Date: Wed Jul 15 10:55:39 2015 +0300 libiscsi: Use scsi helper to set information descriptor In case encountered a PI error, use scsi_set_sense_information instead of open coding information descriptor format. Signed-off-by: Sagi Grimberg Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/scsi/libiscsi.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 4e4937e8aefde8d49340e803ebbedcdf4b43e5f0 Author: Sagi Grimberg Date: Thu Jul 16 10:28:05 2015 +0300 target: Return descriptor format sense data in case the LU spans 64bit sectors In case a LU spans 64bit sectors, fixed size sense data information field is only 32 bits which means the sector information will be truncated. Thus, if the LU spans 64bit sectors, use descriptor format sense data to correctly report sector information. Reported-by: Christoph Hellwig Reviewed-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_hba.c | 5 +++++ drivers/target/target_core_spc.c | 12 +++++++++--- drivers/target/target_core_transport.c | 3 ++- include/target/target_core_backend.h | 2 ++ 4 files changed, 18 insertions(+), 4 deletions(-) commit f5a8b3a796db01b639435515b3adc003b9f27387 Author: Sagi Grimberg Date: Wed Jul 15 10:55:37 2015 +0300 scsi: Protect against buffer possible overflow in scsi_set_sense_information Make sure that the input sense buffer has sufficient length to fit the information descriptor (12 additional bytes). Modify scsi_set_sense_information to receive the sense buffer length and adjust its callers scsi target and libata. (Fix patch fuzz in scsi_set_sense_information - nab) Reported-by: Hannes Reinecke Signed-off-by: Sagi Grimberg Reviewed-by: Martin K. Petersen Cc: Tejun Heo Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/ata/libata-scsi.c | 4 +++- drivers/scsi/scsi_common.c | 13 ++++++++++++- drivers/target/target_core_transport.c | 14 +++++++++++--- include/scsi/scsi_common.h | 2 +- 4 files changed, 27 insertions(+), 6 deletions(-) commit 12306b425d0dbab7b60f54e02d67cf3dfae494d1 Author: Sagi Grimberg Date: Wed Jul 15 10:55:36 2015 +0300 scsi: Fix wrong additional sense length in descriptor format The sense header additional sense length should be the accumulated size of all the descriptors. Information descriptor size is 12 bytes. When setting the additional sense length we should add 0xc instead of 0xa. Signed-off-by: Sagi Grimberg Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Reviewed-by: Christoph Hellwig Signed-off-by: Nicholas Bellinger drivers/scsi/scsi_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3e963b2d3c93e0546e911d681f37d35f0f79b54f Author: Bart Van Assche Date: Thu Jul 9 07:33:07 2015 -0700 tcm_qla2xxx: Remove set-but-not-used variables Detected these by building with W=1. This patch does not change any functionality. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Cc: Quinn Tran Cc: Saurav Kashyap Signed-off-by: Nicholas Bellinger drivers/scsi/qla2xxx/tcm_qla2xxx.c | 6 ------ 1 file changed, 6 deletions(-) commit f5887fe5d14181aef0653ab04f60988252d42461 Author: Tony Lindgren Date: Thu Jul 23 22:33:19 2015 -0700 ARM: OMAP2+: Add custom abort handler for t410 Similar to commit fdf4850cb5b2 ("ARM: BCM5301X: workaround suppress fault"), let's add custom handling for the aborts on t410 that prevent booting: Unhandled fault: imprecise external abort (0xc06) at 0xee091fb0 pgd = ee4bc000 [ee091fb0] *pgd=ae00041e(bad) Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007 Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/mach-omap2/pdata-quirks.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) commit 285f3690cd14eb3e7f82c98ad4b294f204438ffa Author: Tony Lindgren Date: Thu Jul 23 22:33:19 2015 -0700 ARM: dts: Add minimal support for HP T410 Add minimal support for HP T410. Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/dm8148-t410.dts | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) commit 73db9e0141b5e27348a11effa7e36296603df439 Author: Tony Lindgren Date: Thu Jul 23 22:33:18 2015 -0700 ARM: dts: Add minimal dts support for dm8148-evm Add minimal dts support for dm8148-evm. Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/dm8148-evm.dts | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) commit 25515b630c3c49945953cc048d6051441ac220d2 Author: Tony Lindgren Date: Thu Jul 23 22:33:18 2015 -0700 ARM: dts: Add minimal clocks for dm814x Use fixed clocks until we have a clock driver for the PLL. The mux and divider composite clocks work the same way as on dm816x and am335x. Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x-clocks.dtsi | 109 +++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/dm814x.dtsi | 2 + 2 files changed, 111 insertions(+) commit f3d953ea37210d654777df758a5c52a94bb5d6c7 Author: Tony Lindgren Date: Thu Jul 23 22:33:18 2015 -0700 ARM: dts: Add minimal dm814x support Add minimal dm814x support. Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm814x.dtsi | 331 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 331 insertions(+) commit 734ca5c467842186bf836d0b33379a51cfe259da Author: Sagi Grimberg Date: Wed Jul 8 17:58:54 2015 +0300 target: Return ABORTED_COMMAND sense key for PI errors PI errors were reported with ILLEGAL_REQUEST sense key but there was actually no problem with the request. Target detected PI errors should be reported with aborted command sense key. Signed-off-by: Sagi Grimberg Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9ec1e1ce3a0f854b9150e7888a373392fbbe7442 Author: Sagi Grimberg Date: Wed Jul 8 17:58:53 2015 +0300 target: Use scsi helpers to build the sense data correctly Instead of open coding the sense buffer construction, use scsi scsi_build_sense_buffer() and scsi_set_sense_information() helpers which moved to scsi_common. Signed-off-by: Sagi Grimberg Reviewed-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/target/target_core_spc.c | 31 +++++-------------------------- drivers/target/target_core_transport.c | 21 ++++----------------- 2 files changed, 9 insertions(+), 43 deletions(-) commit 7708c1656552ddd60b9b9df3a9ee156acd1801ba Author: Sagi Grimberg Date: Wed Jul 8 17:58:52 2015 +0300 scsi: Move sense handling routines to scsi_common Sense data handling is also done in the target stack. Hence, move sense handling routines to scsi_common so the target will be able to use them as well. Signed-off-by: Sagi Grimberg Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Reviewed-by: Hannes Reinecke Reviewed-by: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/scsi/scsi_common.c | 98 +++++++++++++++++++++++++++++++++++++++++++++ drivers/scsi/scsi_error.c | 99 +--------------------------------------------- include/scsi/scsi_common.h | 5 +++ include/scsi/scsi_eh.h | 7 +--- 4 files changed, 105 insertions(+), 104 deletions(-) commit ab78fef4d5f79134042ae0e1e2c259e1226aa5bd Author: Bart Van Assche Date: Wed Jul 8 17:58:51 2015 +0300 target: Split transport_send_check_condition_and_sense() Move the code for translating a sense_reason_t code into a SCSI status ASC and ASCQ codes from transport_send_check_condition_and_sense() into the new function translate_sense_reason(). Convert the switch statement that performs the translation into table-driven code. Signed-off-by: Bart Van Assche Signed-off-by: Sagi Grimberg Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 383 +++++++++++++-------------------- 1 file changed, 148 insertions(+), 235 deletions(-) commit 46d5bd62ef9e3d6e2018963cbb725c91f864922d Author: Bart Van Assche Date: Wed Jul 8 17:58:50 2015 +0300 target: Inline transport_get_sense_codes() Inline this function in its call site since it performs a trivial task and since it is only called once. Signed-off-by: Bart Van Assche Signed-off-by: Sagi Grimberg Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Reviewed-by: Martin K. Petersen Signed-off-by: Nicholas Bellinger drivers/target/target_core_transport.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit e986a35aba67558381d5cec59a14c4d0b20f0d47 Author: Hannes Reinecke Date: Thu Jun 18 11:43:38 2015 +0200 tcm_loop: Send I_T_NEXUS_LOSS_OCCURRED UA If the virtual SAS link is set to 'offline' we should be queueing an I_T_NEXUS_LOSS_OCCURRED UA. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/loopback/tcm_loop.c | 5 +++++ drivers/target/target_core_tpg.c | 17 +++++++++++++++++ include/target/target_core_fabric.h | 1 + 3 files changed, 23 insertions(+) commit b7446cacfb433f5e89ff94afecbc349e404aee21 Author: Hannes Reinecke Date: Thu Jun 18 11:43:37 2015 +0200 tcm_loop: Remove SAS vestigies tcm_loop is able to emulate several protocols, so remove last vestigies of the SAS protocol. Signed-off-by: Hannes Reinecke Signed-off-by: Nicholas Bellinger drivers/target/loopback/tcm_loop.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 24da741c678f865de3182194604dbddcc7fc7f3c Merge: 97d9a3d 0f3ccb2 Author: Tony Lindgren Date: Thu Jul 23 21:59:18 2015 -0700 Merge branch 'dm814x-soc' into omap-for-v4.3/soc Update dm814x changes for sparse fixes to make data structures static. Conflicts: arch/arm/mach-omap2/omap_hwmod_81xx_data.c commit 0f3ccb24c0347cd80160810df79bfa233749074e Author: Tony Lindgren Date: Thu Jul 16 01:55:58 2015 -0700 ARM: OMAP2: Add minimal dm814x hwmod support Let's add minimal set of dm814x hwmods to have a bootable system. Cc: Matthijs van Duin Cc: Paul Walmsley Signed-off-by: Tony Lindgren arch/arm/mach-omap2/io.c | 4 +- arch/arm/mach-omap2/omap_hwmod.c | 3 +- arch/arm/mach-omap2/omap_hwmod.h | 3 +- arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 163 ++++++++++++++++++++++++++++- 4 files changed, 168 insertions(+), 5 deletions(-) commit 7e1b11d145b264fd7e7b4bf79d910272d4a1bd52 Author: Tony Lindgren Date: Thu Jul 16 01:55:58 2015 -0700 ARM: OMAP2+: Prepare dm81xx hwmod code for adding minimal dm814x support Let's change the defines so we can share the hwmod code better between dm816x and dm814x, and let's add the dm814x specific defines. And let's rename the shared ones to start with dm81xx. No functional changes. Cc: Matthijs van Duin Cc: Paul Walmsley Signed-off-by: Tony Lindgren arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 406 +++++++++++++++-------------- 1 file changed, 213 insertions(+), 193 deletions(-) commit dcd14dd957f02ef679c61325a2221a0574bdcab3 Merge: ce4c464 3fdefa3 Author: Dave Airlie Date: Fri Jul 24 14:30:29 2015 +1000 Merge tag 'topic/connector-locking-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-next connector hotplug locking cleanup and fixes to make it save against atomic. Note that because of depencies this is based on top of the drm-intel-next pull, so that one needs to go in before this one. I've also thrown in the mode_group removal on top since it's defunct, never worked really, no one seems to care and the code can be resurrected easily. * tag 'topic/connector-locking-2015-07-23' of git://anongit.freedesktop.org/drm-intel: drm: gc now dead mode_group code drm: Stop filtering according to mode_group in getresources drm: Roll out drm_for_each_{plane,crtc,encoder} drm/cma-helper: Fix locking in drm_fb_cma_debugfs_show drm: Roll out drm_for_each_connector more drm: Amend connector list locking rules drm/radeon: Take all modeset locks for DP MST hotplug drm/i915: Take all modeset locks for DP MST hotplug drm: Check locking in drm_for_each_fb drm/i915: Use drm_for_each_fb in i915_debugfs.c drm: Check locking in drm_for_each_connector drm/fbdev-helper: Grab mode_config.mutex in drm_fb_helper_single_add_all_connectors drm/probe-helper: Grab mode_config.mutex in poll_init/enable drm: Add modeset object iterators drm: Simplify drm_for_each_legacy_plane arguments commit ce4c464b93187d3faffd9048f0ee0ec7bf9aa2a9 Merge: f60de97 04cbfe6 Author: Dave Airlie Date: Fri Jul 24 14:30:04 2015 +1000 Merge tag 'topic/crc-pmic-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-next crystalcove pmic support from Shobhit. Patch series has all acks/r-bs from other mainainers so ok to pull into drm-next. But I'm cc'ing all other maintainers as fyi and in case they want to pull it into their trees too to avoid conflicts. * tag 'topic/crc-pmic-2015-07-23' of git://anongit.freedesktop.org/drm-intel: mfd: Add GPIOLIB dependency if INTEL_SOC_PMIC is to be enabled drm/i915: Backlight control using CRC PMIC based PWM driver drm/i915: Use the CRC gpio for panel enable/disable pwm: crc: Add Crystalcove (CRC) PWM driver mfd: intel_soc_pmic_core: ADD PWM lookup table for CRC PMIC based PWM mfd: intel_soc_pmic_crc: Add PWM cell device for Crystalcove PMIC mfd: intel_soc_pmic_core: Add lookup table for Panel Control as GPIO signal gpiolib: Add support for removing registered consumer lookup table commit f60de9767490a73b54c2754e1de83fc68eb7d9a0 Merge: fa78cea e0548f1 Author: Dave Airlie Date: Fri Jul 24 14:29:06 2015 +1000 Merge tag 'drm-intel-next-2015-07-17' of git://anongit.freedesktop.org/drm-intel into drm-next - prelim hw support dropped for skl after Damien fixed an ABI issue around planes - legacy modesetting is done using atomic infrastructure now (Maarten)! - more gen9 workarounds (Arun&Nick) - MOCS programming (cache control for better performance) for skl/bxt - vlv/chv dpll improvements (Ville) - PSR fixes from Rodrigo - fbc improvements from Paulo - plumb requests into execlist submit functions (Mika) - opregion code cleanup from Jani - resource streamer support from Abdiel for mesa - final fixes for 12bpc hdmi + enabling support from Ville drm-intel-next-2015-07-03: - dsi improvements (Gaurav) - bxt ddi dpll hw state readout (Imre) - chv dvfs support and overall wm improvements for both vlv and chv (Ville) - ppgtt polish from Mika and Michel - cdclk support for bxt (Bob Pauwe) - make frontbuffer tracking more precise - OLR removal (John Harrison) - per-ctx WA batch buffer support (Arun Siluvery) - remvoe KMS Kconfig option (Chris) - more hpd handling refactoring from Jani - use atomic states throughout modeset code and integrate with atomic plane update (Maarten) drm-intel-next-2015-06-19: - refactoring hpd irq handlers (Jani) - polish skl dpll code a bit (Damien) - dynamic cdclk adjustement (Ville & Mika) - fix up 12bpc hdmi and enable it for real again (Ville) - extend hsw cmd parser to be useful for atomic configuration (Franscico Jerez) - even more atomic conversion and rolling state handling out across modeset code from Maarten & Ander - fix DRRS idleness detection (Ramalingam) - clean up dsp address alignment handling (Ville) - some fbc cleanup patches from Paulo - prevent hard-hangs when trying to reset the gpu on skl (Mika) * tag 'drm-intel-next-2015-07-17' of git://anongit.freedesktop.org/drm-intel: (386 commits) drm/i915: Update DRIVER_DATE to 20150717 drm/i915/skl: Drop the preliminary_hw_support flag drm/i915/skl: Don't expose the top most plane on gen9 display drm/i915: Fix divide by zero on watermark update drm/i915: Invert fastboot check drm/i915: Clarify logic for initial modeset drm/i915: Unconditionally check gmch pfit state drm/i915: always disable irqs in intel_pipe_update_start drm/i915: Remove use of runtime pm in atomic commit functions drm/i915: Call plane update functions directly from intel_atomic_commit. drm/i915: Use full atomic modeset. drm/i915/gen9: Add WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken drm/i915/gen9: Add WaFlushCoherentL3CacheLinesAtContextSwitch workaround drm/i915/gen9: Add WaDisableCtxRestoreArbitration workaround drm/i915: Enable WA batch buffers for Gen9 drm/i915/gen9: Implement WaDisableKillLogic for gen 9 drm/i915: Use expcitly fixed type in compat32 structs drm/i915: Fix noatomic crtc disabling, v2. drm/i915: fill in more mode members drm/i915: Added BXT check in HAS_CORE_RING_FREQ macro ... commit fa78ceab99e4481e17ab6b6a88257c1c7c23d55a Merge: 5da612f f9fe4b9 Author: Dave Airlie Date: Fri Jul 24 14:28:16 2015 +1000 Merge tag 'topic/drm-misc-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-next Update drm-misc pull request since the first one didn't go in yet. Few atomic helper patches, rejecting some old dri1 crap for modern drivers and a few trivial things on top. * tag 'topic/drm-misc-2015-07-23' of git://anongit.freedesktop.org/drm-intel: drm/mgag200: remove unneeded variable drm/mgag200: remove unused variables drm/atomic: Only update crtc->x/y if it's part of the state, v2. drm/fb: drop panic handling drm: Fix warning with make xmldocs caused by drm_irq.c drm/gem: rip out drm vma accounting for gem mmaps drm/fourcc: Add formats R8, RG88, GR88 drm/atomic: Cleanup on error properly in the atomic ioctl. drm: Update plane->fb also for page_flip drm: remove redundant code form drm_ioc32.c drm: reset empty state in transitional helpers drm/crtc-helper: Fixup error handling in drm_helper_crtc_mode_set drm/atomic: Update old_fb after setting a property. drm: Remove useless blank line drm: Reject DRI1 hw lock ioctl functions for kms drivers drm: Convert drm_legacy_ctxbitmap_init to void return type drm: Turn off Legacy Context Functions commit 5da612fa42465c6dda745e1b9fb514a014d23b11 Merge: 52721d9 7639a8c Author: Dave Airlie Date: Fri Jul 24 14:26:53 2015 +1000 Merge tag 'drm-amdkfd-next-2015-07-20' of git://people.freedesktop.org/~gabbayo/linux into drm-next - Add Carrizo support for amdkfd, using the new amdgpu driver as the relevant kgd. The support includes interfaces with amdgpu both for gfx7 (Kaveri) and gfx8 (Carrizo). However, gfx7 interface is used for debugging purposes only, so amdkfd defaults to using radeon when Kaveri is installed. I would like to note that no new IOCTLs are being introduced, and there is no change in the current IOCTLs, as they are suited both for gfx7 and gfx8. * tag 'drm-amdkfd-next-2015-07-20' of git://people.freedesktop.org/~gabbayo/linux: drm/amdkfd: Set correct doorbell packet type for Carrizo drm/amdkfd: Use generic defines in new amd headers drm/amdkfd: Implement create_map_queues() for Carrizo drm/amdkfd: fix runlist length calculation drm/amdkfd: Add support for VI in DQM drm/amdkfd: add support for VI in MQD manager drm/amdkfd: add CP HWS packet headers for VI drm/amdkfd: add supported CZ devices PCI IDs to amdkfd drm/amdkfd: Add dependency of DRM_AMDGPU to Kconfig drm/amdgpu: Add amdgpu <--> amdkfd gfx8 interface drm/amdgpu: add amdgpu <--> amdkfd gfx7 interface drm/amdgpu: Add H/W agnostic amdgpu <--> amdkfd interface drm/radeon: Modify kgd_engine_type enum to match CZ commit 97d9a3d0967f711e271ef950f1745307720c95d5 Merge: 228e5fad 3b86616 Author: Tony Lindgren Date: Thu Jul 23 21:14:02 2015 -0700 Merge tag 'for-v4.3/omap-hwmod-prcm-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v4.3/soc ARM: OMAP2+: PRCM and hwmod changes for v4.3 This series adds: - I/O wakeup support for AM43xx - register lock and unlock support to the hwmod code (needed for the RTC IP blocks on some chips) - several fixes for sparse warnings and an unnecessary null pointer test - a DRA7xx clockdomain configuration workaround, to deal with some hardware bugs Basic build, boot, and PM tests are here: http://www.pwsan.com/omap/testlogs/hwmod-prcm-for-v4.3/20150723080012/ Since I do not have an AM43xx or DRA7xx device, I can't test on those platforms. commit 7c9422ef553e8845c91b8fc5fa98452d934834f0 Author: Chanwoo Choi Date: Fri Jul 24 12:42:40 2015 +0900 clk: exynos3250: Add cpu clock configuration data and instaniate cpu clock This patch add CPU clock configuration data and instantiate the CPU clock type for Exynos3250 to support Samsung specific cpu-clock type. Cc: Sylwester Nawrocki Cc: Tomasz Figa Signed-off-by: Chanwoo Choi Acked-by: Kyungmin Park Reviewed-by: Krzysztof Kozlowski Reviewed-by: Bartlomiej Zolnierkiewicz Acked-by: Michael Turquette Signed-off-by: Kukjin Kim drivers/clk/samsung/clk-exynos3250.c | 32 ++++++++++++++++++++++++++++++-- include/dt-bindings/clock/exynos3250.h | 1 + 2 files changed, 31 insertions(+), 2 deletions(-) commit d7cc4c8165e67ff2ba250d65c9e4939d7b8d36c7 Author: Thomas Abraham Date: Wed Jul 1 15:10:35 2015 +0200 clk: exynos5250: 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 Exynos5250. Cc: Tomasz Figa Signed-off-by: Thomas Abraham [b.zolnierkie: split exynos5250 support from the original patch] [b.zolnierkie: moved E5250_CPU_DIV[0,1] macros to clk-exynos5250.c] Signed-off-by: Bartlomiej Zolnierkiewicz Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Acked-by: Sylwester Nawrocki Acked-by: Viresh Kumar Signed-off-by: Krzysztof Kozlowski Acked-by: Michael Turquette Signed-off-by: Kukjin Kim drivers/clk/samsung/clk-exynos5250.c | 31 +++++++++++++++++++++++++++++++ include/dt-bindings/clock/exynos5250.h | 1 + 2 files changed, 32 insertions(+) commit ac4c90c82e4d38cee613f68d2fabd714338ecca7 Author: Bartlomiej Zolnierkiewicz Date: Wed Jul 1 15:10:38 2015 +0200 cpufreq: exynos: remove exynos5250 specific cpufreq driver support Exynos5250 based platforms have switched over to use generic cpufreq driver for cpufreq functionality. So the Exynos specific cpufreq support for these platforms can be removed. Cc: Thomas Abraham Signed-off-by: Bartlomiej Zolnierkiewicz Reviewed-by: Javier Martinez Canillas Tested-by: Javier Martinez Canillas Acked-by: Viresh Kumar [k.kozlowski: Rebased the patch around exynos-cpufreq.c] Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim drivers/cpufreq/Kconfig.arm | 11 -- drivers/cpufreq/Makefile | 1 - drivers/cpufreq/exynos-cpufreq.c | 3 - drivers/cpufreq/exynos-cpufreq.h | 17 --- drivers/cpufreq/exynos5250-cpufreq.c | 210 ----------------------------------- 5 files changed, 242 deletions(-) commit 7c14898ba9386ee5c939bb418643ac6baff52840 Author: Adrian Hunter Date: Tue Jul 21 12:44:06 2015 +0300 perf script: Add option --show-switch-events Add option --show-switch-events to show switch events in a similar fashion to --show-task-events and --show-mmap-events. Signed-off-by: Adrian Hunter Acked-by: Peter Zijlstra (Intel) Tested-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Mathieu Poirier Cc: Pawel Moll Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1437471846-26995-6-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-script.txt | 4 ++++ tools/perf/builtin-script.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit 06b234ec26fde8d0fce54030fe0858e218636410 Author: Adrian Hunter Date: Tue Jul 21 12:44:05 2015 +0300 perf script: Don't assume evsel position of tracking events The tracking event does not have to be the first event so replace perf_evlist__first() with perf_evlist__id2evsel() which uses the event ID to find the correct evsel. Signed-off-by: Adrian Hunter Acked-by: Peter Zijlstra (Intel) Tested-by: Jiri Olsa Cc: Andi Kleen Cc: Mathieu Poirier Cc: Pawel Moll Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1437471846-26995-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit b757bb09134f479a087ece08d2cd2a6ba31c9210 Author: Adrian Hunter Date: Tue Jul 21 12:44:04 2015 +0300 perf record: Add option --switch-events to select PERF_RECORD_SWITCH events Add an option to select PERF_RECORD_SWITCH events. Signed-off-by: Adrian Hunter Acked-by: Peter Zijlstra (Intel) Tested-by: Arnaldo Carvalho de Melo Tested-by: Jiri Olsa Cc: Andi Kleen Cc: Mathieu Poirier Cc: Pawel Moll Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1437471846-26995-4-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 4 ++++ tools/perf/builtin-record.c | 7 +++++++ tools/perf/perf.h | 1 + tools/perf/util/evlist.h | 1 + tools/perf/util/evsel.c | 3 +++ tools/perf/util/record.c | 10 ++++++++++ 6 files changed, 26 insertions(+) commit 0286039f777ec0b6684868c34f7b16f97a069d6e Author: Adrian Hunter Date: Tue Jul 21 12:44:03 2015 +0300 perf tools: Add new PERF_RECORD_SWITCH event Support processing of PERF_RECORD_SWITCH events and PERF_RECORD_SWITCH_CPU_WIDE events. There is a single tools callback for them both so that the tool must check the event type before using the extra members in PERF_RECORD_SWITCH_CPU_WIDE. There is still no way to select the events, though. That is added in a subsequest patch. Signed-off-by: Adrian Hunter Acked-by: Peter Zijlstra (Intel) Tested-by: Jiri Olsa Cc: Andi Kleen Cc: Mathieu Poirier Cc: Pawel Moll Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1437471846-26995-3-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-inject.c | 1 + tools/perf/util/event.c | 28 ++++++++++++++++++++++++++++ tools/perf/util/event.h | 12 ++++++++++++ tools/perf/util/evsel.c | 1 + tools/perf/util/machine.c | 11 +++++++++++ tools/perf/util/machine.h | 2 ++ tools/perf/util/session.c | 20 ++++++++++++++++++++ tools/perf/util/tool.h | 1 + 8 files changed, 76 insertions(+) commit 45ac1403f564f411c6a383a2448688ba8dd705a4 Author: Adrian Hunter Date: Tue Jul 21 12:44:02 2015 +0300 perf: Add PERF_RECORD_SWITCH to indicate context switches There are already two events for context switches, namely the tracepoint sched:sched_switch and the software event context_switches. Unfortunately neither are suitable for use by non-privileged users for the purpose of synchronizing hardware trace data (e.g. Intel PT) to the context switch. Tracepoints are no good at all for non-privileged users because they need either CAP_SYS_ADMIN or /proc/sys/kernel/perf_event_paranoid <= -1. On the other hand, kernel software events need either CAP_SYS_ADMIN or /proc/sys/kernel/perf_event_paranoid <= 1. Now many distributions do default perf_event_paranoid to 1 making context_switches a contender, except it has another problem (which is also shared with sched:sched_switch) which is that it happens before perf schedules events out instead of after perf schedules events in. Whereas a privileged user can see all the events anyway, a non-privileged user only sees events for their own processes, in other words they see when their process was scheduled out not when it was scheduled in. That presents two problems to use the event: 1. the information comes too late, so tools have to look ahead in the event stream to find out what the current state is 2. if they are unlucky tracing might have stopped before the context-switches event is recorded. This new PERF_RECORD_SWITCH event does not have those problems and it also has a couple of other small advantages. It is easier to use because it is an auxiliary event (like mmap, comm and task events) which can be enabled by setting a single bit. It is smaller than sched:sched_switch and easier to parse. To make the event useful for privileged users also, if the context is cpu-wide then the event record will be PERF_RECORD_SWITCH_CPU_WIDE which is the same as PERF_RECORD_SWITCH except it also provides the next or previous pid/tid. Signed-off-by: Adrian Hunter Acked-by: Peter Zijlstra (Intel) Tested-by: Jiri Olsa Cc: Andi Kleen Cc: Mathieu Poirier Cc: Pawel Moll Cc: Stephane Eranian Link: http://lkml.kernel.org/r/1437471846-26995-2-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo include/uapi/linux/perf_event.h | 31 +++++++++++- kernel/events/core.c | 103 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+), 1 deletion(-) commit 6e5259e9b5b711b325a8455feb3ed27cdd0af0da Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 17:02:18 2015 -0300 perf tools: Stop copying kallsyms into the perf.data file header Since we now ask libtraceevent, the only user of this payload, to use perf's symbol resolution routines, there is no need to carry about ~4.5MB per perf.data when we can get it from one of the places the perf symbol resolution looks for that symtab (debuginfo, ~/.debug/, /proc/kallsyms, --symfs, etc), using the kernel and modules build-ids to make sure the right table is used. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-h89ituf9rso2rv1v7kjrbeda@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/trace-event-info.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) commit 4263cece22e3da94f16fbbcf71ce3807946d3ef3 Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 16:48:16 2015 -0300 perf tools: Stop reading the kallsyms data from perf.data As it is not used anymore, since 'perf script' switched to asking libtraceevent to use tools/perf's symbol resolution routines. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-4ilhofz4b7o8yokvutjt9yzz@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/trace-event-parse.c | 30 ------------------------------ tools/perf/util/trace-event-read.c | 28 +++++++++++++--------------- 2 files changed, 13 insertions(+), 45 deletions(-) commit ccb3a8294a7d346257b526702eabcb2faeb721ac Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 16:43:37 2015 -0300 perf script: Switch from perf.data's kallsyms to perf's symbol resolver We were storing a copy of kallsyms inside perf.data file so that we could resolve kernel addresses to function (start, name, mod) tuples, but that can be achieved using the symbol resolving routines we have in symbols.c, and that are used elsewhere in tools/perf. So, do just like 'perf trace' did and ask libtraceevent to use perf's symbol resolution routines. The next step is to just skip whatever kallsyms data is embedded in older perf.data files and finally to stop storing kallsyms in the perf data file, as the 20-bytes build-id stored in perf.data's header is enough to find out the right symtab (be it ELF, kcore, kallsyms, etc) to use. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-d0rtb8tk9j72pz0ehw5fnp24@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-script.c | 7 +++++++ 1 file changed, 7 insertions(+) commit d684779335856d8177514b42a801d46088d897b0 Author: Peter Hurley Date: Sun Jul 12 22:49:13 2015 -0400 pty: Add debug message for ptmx open Opens of /dev/ptmx don't use tty_open() so debug messages are not printed for those opens; print a debug message with the open count (which must always be 1) if TTY_DEBUG_HANGUP is defined. NB: Each tty core source file undefs support for debug messages. The relevant source file must be patched/edited to enable these messages. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/pty.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit fb6edc9115f7eb8265fb9282703e52738d397506 Author: Peter Hurley Date: Sun Jul 12 22:49:12 2015 -0400 tty: core: Improve ldisc debug messages Add debug messages for ldisc open and close, and remove "closing ldisc" message from tty_ldisc_release(), because a close message is now printed for both ldiscs; always print ldisc pointer first so ldisc changes are easier to identify. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldisc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit ff8339dc164bb807cc67492ed9310335b7ed88ba Author: Peter Hurley Date: Sun Jul 12 22:49:11 2015 -0400 tty: Replace inline #ifdef TTY_DEBUG_WAIT_UNTIL_SENT Add tty_debug_wait_until_sent() macro which uses tty_debug() to print the debug message; remove inlined #ifdef. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ioctl.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 0a6adc131c9d0809682d72398d01099a7ea4168b Author: Peter Hurley Date: Sun Jul 12 22:49:10 2015 -0400 tty: Use tty_debug() for tty_ldisc_debug() Replace tty_ldisc_debug() macro definition; substitute with equivalent tty_debug() invocation. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_ldisc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit accff793af81bc64e1b37398ef6bb1f0b06491de Author: Peter Hurley Date: Sun Jul 12 22:49:09 2015 -0400 tty: Replace #ifdef TTY_DEBUG_HANGUP with tty_debug_hangup() Add tty_debug_hangup() macro which uses tty_debug to print the debug message; remove inlined #ifdefs. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 47 ++++++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 29 deletions(-) commit e2dfa3d38797058fa03478b08bab3d3c4b081615 Author: Peter Hurley Date: Sun Jul 12 22:49:08 2015 -0400 tty: core: Add tty_debug() for printk(KERN_DEBUG) messages Introduce tty_debug() macro to output uniform debug information for tty core debug messages (function name and tty name). Note: printk(KERN_DEBUG) is retained here over pr_debug() since messages can be enabled in non-DEBUG builds. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 41 +++++++++++++++++------------------------ include/linux/tty.h | 6 ++++++ 2 files changed, 23 insertions(+), 24 deletions(-) commit 3a6b02dc1f1b37fe2e9c86c00edf07c04bed9fab Author: Peter Hurley Date: Sun Jul 12 22:49:07 2015 -0400 tty: core: Improve debug message content Output the function name, tty name, and invariant failure (if applicable). Add the tty count to the tty_open() message. Fix the disassociate_ctty() message, which printed the NULL pointer and the wrong message. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_io.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit 4fef53518f9b4813043bdb48b70bd9fbf4ad2597 Author: Paul Gortmaker Date: Tue Jul 21 22:02:18 2015 -0400 drivers/tty: make serial/sunhv.c driver explicitly non-modular The Kconfig for this driver is currently: config SERIAL_SUNHV bool "Sun4v Hypervisor Console support" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular and unused code here, 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 don't swap module.h for init.h since this file has init.h already. We leave some tags like MODULE_LICENSE for documentation purposes, and for the "git blame" value. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code, so we remove that too. Cc: "David S. Miller" Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: sparclinux@vger.kernel.org Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sunhv.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit 37db22346739d986c2863e2c7b5580e5f376c5e6 Author: Paul Gortmaker Date: Tue Jul 21 22:02:17 2015 -0400 drivers/tty: make serial/suncore.c driver explicitly non-modular The Kconfig for this driver is currently: config SERIAL_SUNCORE bool ...meaning that it currently is not being built as a module by anyone. Lets remove the modular and unused code here, 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 don't swap module.h for init.h since this file has init.h already. We leave some tags like MODULE_LICENSE for documentation purposes, and for the "git blame" value. Cc: "David S. Miller" Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: sparclinux@vger.kernel.org Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/suncore.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit 1106d2dbab29971c091055716fbf2b9011c894c0 Author: Paul Gortmaker Date: Tue Jul 21 22:02:16 2015 -0400 drivers/tty: make serial/lantic.c driver explicitly non-modular The Kconfig for this option is currently: config SERIAL_LANTIQ bool "Lantiq serial driver" ...meaning that it currently is not being built as a module by anyone. Lets remove the couple traces of modularity, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. We delete the MODULE_DESCRIPTION and LICENSE tags since they are not adding any new information above and beyond what is at the top of the file. Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code, so we remove that as well. Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/lantiq.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 4e62794bd8c8c249435a86e7a44c0ec0af86c3df Author: Paul Gortmaker Date: Tue Jul 21 22:02:15 2015 -0400 drivers/tty: make serial/sn_console.c driver explicitly non-modular The Kconfig for this option is currently: config SERIAL_SGI_L1_CONSOLE bool "SGI Altix L1 serial console support" ...meaning that it currently is not being built as a module by anyone. Lets remove the orphaned module code, so that when reading the driver there is no doubt it is builtin-only. We could consider making it tristate, but the above bool has been there since before the start of git history, which isn't all that surprising, since consoles are typically critical to have at early boot. So adding tristate is really of no value here. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sn_console.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit 97d49add8befb522828200081388b2f21c1c4f8b Author: Javier Martinez Canillas Date: Mon Jul 13 13:18:51 2015 +0200 serial: samsung: Remove redundant DEBUG_LL check Commit 84f57d9e3685 ("tty: serial/samsung: fix modular build") fixed build issues when the driver was built as a module. One of those was that printascii is only accessible when the driver is built-in. But there is no need to check for defined(CONFIG_DEBUG_LL) since the SERIAL_SAMSUNG_DEBUG Kconfig symbol already depends on DEBUG_LL. Signed-off-by: Javier Martinez Canillas Reviewed-by: Krzysztof Kozlowski Acked-by: Kukjin Kim Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/samsung.c | 1 - 1 file changed, 1 deletion(-) commit af5554f957f8a7e28b9826a9c4ad2a7dedd15a78 Author: Peter Hurley Date: Sun Jul 12 20:50:50 2015 -0400 tty: buffers: Move hidden buffer index advance into outer loop The advance of the 'read' buffer index belongs in the outer flip buffer consume loop, with the other buffer index arithmetic. No functional change. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 069f38b4983efaea92cbe7cc0cacc057af55739a Author: Peter Hurley Date: Sun Jul 12 20:50:49 2015 -0400 tty: Replace smp_rmb/smp_wmb with smp_load_acquire/smp_store_release Clarify flip buffer producer/consumer operation; the use of smp_load_acquire() and smp_store_release() more clearly indicates which memory access requires a barrier. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/tty_buffer.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit e5eb517dd80e4da3055895f8aa3547c2bfd5e675 Author: Alexander Stein Date: Thu Jul 9 10:34:34 2015 +0200 serial/uuc_uart: Support higher bitrates than 115200 Bit/s The maximum bitrate supported depends on the clock rate used in BRG. This is stored in port.uartclk during probe. Respecting the 16x oversampling higher bitrates can be supported. Signed-off-by: Alexander Stein Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/ucc_uart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7e8af24fbe6160c1529ff7fe67bf8b72b73b67e4 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:36:20 2015 +0900 tty: serial: 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: Greg Kroah-Hartman drivers/tty/serial/sc16is7xx.c | 1 - 1 file changed, 1 deletion(-) commit 3bb2ccd0d12a26392bf884c2a305b15b622fc7a8 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:36:19 2015 +0900 tty: serial: 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: Greg Kroah-Hartman drivers/tty/serial/8250/8250_ingenic.c | 1 - 1 file changed, 1 deletion(-) commit 706c3da409dfc6964740ac503c040c4c621954fd Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 16:16:16 2015 -0300 perf trace: Provide libtracevent with a kernel symbol resolver So that beautifiers wanting to resolve kernel function addresses to names can do its work, now, for instance, the 'timer' tracepoints beautifiers works with 'perf trace', see the "function=tick..." part: # perf trace --event timer:hrtimer_start 0.000 timer:hrtimer_start:hrtimer=0xffff88026f3101c0 function=tick_sched_timer/0x0 expires=52098339000000 softexpires=52098339000000) 0.003 timer:hrtimer_start:hrtimer=0xffff88026f3101c0 function=tick_sched_timer/0x0 expires=52098339000000 softexpires=52098339000000) Reported-by: Thomas Gleixner Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-n4i0hxpbl1tnleiqkok47fw2@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 3 +++ 1 file changed, 3 insertions(+) commit c3168b0db93ad5ffeede4ecdf807dab64270f55d Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 16:14:29 2015 -0300 perf symbols: Provide libtraceevent callback to resolve kernel symbols That provides the function signature expected by libtraceevent's pevent_set_function_resolver(). Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-ie6hvlb6u15y4ulg9j1612zg@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/machine.c | 14 ++++++++++++++ tools/perf/util/machine.h | 4 ++++ tools/perf/util/trace-event.c | 45 ++++++++++++++++++++++++++++--------------- tools/perf/util/trace-event.h | 1 + 4 files changed, 49 insertions(+), 15 deletions(-) commit 33a2471cc9b7b1fb27ff2031dbaff701644b1a4d Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 12:36:55 2015 -0300 tools lib traceevent: Allow setting an alternative symbol resolver The perf tools have a symbol resolver that includes solving kernel symbols using either kallsyms or ELF symtabs, and it also is using libtraceevent to format the trace events fields, including via subsystem specific plugins, like the "timer" one. To solve fields like "timer:hrtimer_start"'s "function", libtraceevent needs a way to map from its value to a function name and addr. This patch provides a way for tools that already have symbol resolving facilities to ask libtraceevent to use it when needing to resolve kernel symbols. Reviewed-by: Steven Rostedt Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-fdx1fazols17w5py26ia3bwh@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/traceevent/event-parse.c | 68 +++++++++++++++++++++++++++++++++++++- tools/lib/traceevent/event-parse.h | 8 +++++ 2 files changed, 75 insertions(+), 1 deletion(-) commit 5f258b3e3d223b5cb6d1753b2f9b821ba4455f81 Author: Cyrille Pitchen Date: Thu Jul 2 15:18:13 2015 +0200 tty/serial: at91: use 32bit writes into TX FIFO when DMA is enabled For now this improvement is only used with TX DMA transfers. The data width must be set properly when configuring the DMA controller. Also the FIFO configuration must be set to match the DMA transfer data width: TXRDYM (Transmitter Ready Mode) and RXRDYM (Receiver Ready Mode) must be set into the FIFO Mode Register. These values are used by the USART to trigger the DMA controller. In single data mode they are not used and should be reset to 0. So the TXRDYM bits are changed to FOUR_DATA; then USART triggers the DMA controller when at least 4 data can be written into the TX FIFO througth the THR. On the other hand the RXRDYM bits are left unchanged to ONE_DATA. Atmel eXtended DMA controller allows us to set a different data width for each part of a scatter-gather transfer. So when calling dmaengine_slave_config() to configure the TX path, we just need to set dst_addr_width to the maximum data width. Then DMA writes into THR are split into up to two parts. The first part carries the first data to be sent and has a length equal to the greatest multiple of 4 (bytes) lower than or equal to the total length of the TX DMA transfer. The second part carries the trailing data (up to 3 bytes). The first part is written by the DMA into THR using 32 bit accesses, whereas 8bit accesses are used for the second part. Signed-off-by: Cyrille Pitchen Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 66 ++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 15 deletions(-) commit b5199d46817766c95ef759684658cd8e359c6d27 Author: Cyrille Pitchen Date: Thu Jul 2 15:18:12 2015 +0200 tty/serial: at91: add support to FIFOs Depending on the hardware, TX and RX FIFOs may be available. The RX FIFO can avoid receive overruns, especially when DMA transfers are not used to read data from the Receive Holding Register. For heavy system load, The CPU is likely not be able to fetch data fast enough from the RHR. In addition, the RX FIFO can supersede the DMA/PDC to control the RTS line when the Hardware Handshaking mode is enabled. Two thresholds are to be set for that purpose: - When the number of data in the RX FIFO crosses and becomes lower than or equal to the low threshold, the RTS line is set to low level: the remote peer is requested to send data. - When the number of data in the RX FIFO crosses and becomes greater than or equal to the high threshold, the RTS line is set to high level: the remote peer should stop sending new data. - low threshold <= high threshold Once these two thresholds are set properly, this new feature is enabled by setting the FIFO RTS Control bit of the FIFO Mode Register. FIFOs also introduce a new multiple data mode: the USART works either in multiple data mode or in single data (legacy) mode. If MODE9 bit is set into the Mode Register or if USMODE is set to either LIN_MASTER, LIN_SLAVE or LON_MODE, FIFOs operate in single data mode. Otherwise, they operate in multiple data mode. In this new multiple data mode, accesses to the Receive Holding Register or Transmit Holding Register slightly change. Since this driver implements neither the 9bit data feature (MODE9 bit set into the Mode Register) nor LIN modes, the USART works in multiple data mode whenever FIFOs are available and enabled. We also assume that data are 8bit wide. In single data mode, 32bit access CAN be used to read a single data from RHR or write a single data into THR. However in multiple data mode, a 32bit access to RHR now allows us to read four consecutive data from RX FIFO. Also a 32bit access to THR now allows to write four consecutive data into TX FIFO. So we MUST use 8bit access whenever only one data have to be read/written at a time. Signed-off-by: Cyrille Pitchen Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 100 +++++++++++++++++++++++++++++++++++--- include/linux/atmel_serial.h | 36 ++++++++++++++ 2 files changed, 130 insertions(+), 6 deletions(-) commit 4e7decdaaa67b287d6a13de8dedced68f1d7d716 Author: Cyrille Pitchen Date: Thu Jul 2 15:18:11 2015 +0200 tty/serial: at91: remove bunch of macros to access UART registers This patch replaces the UART_PUT_*, resp. UART_GET_*, macros by atmel_uart_writel(), resp. atmel_uart_readl(), inline function calls. Signed-off-by: Cyrille Pitchen Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/atmel_serial.c | 313 +++++++++++++++++++------------------- 1 file changed, 159 insertions(+), 154 deletions(-) commit 3fad386014ddc34513647a3e49d9fc9db2990cbc Author: Cyrille Pitchen Date: Thu Jul 2 15:18:10 2015 +0200 tty/serial: at91: fix some macro definitions to fit coding style This patch updates macro definitions in atmel_serial.h to fit the 80 column rule. Please note that some deprecated comments such as "[AT91SAM9261 only]" are removed as the corresponding bits also exist in some later chips. Signed-off-by: Cyrille Pitchen Acked-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman include/linux/atmel_serial.h | 204 +++++++++++++++++++++---------------------- 1 file changed, 102 insertions(+), 102 deletions(-) commit 05a051436bdf37e121a627baca605977cd6d0730 Author: Cyrille Pitchen Date: Thu Jul 2 15:18:09 2015 +0200 ARM: at91/dt: add a new DT property to support FIFOs on Atmel USARTs This patch adds a new DT property, "atmel,fifo-size", to enable and set the maximum number of data the RX and TX FIFOs can store on FIFO capable USARTs. Please be aware that the VERSION register can not be used to guess the size of FIFOs. Indeed, for a given hardware version, the USARTs can be integrated on Atmel SoCs with different FIFO sizes. Also the "atmel,fifo-size" property is optional as older USARTs don't embed FIFO at all. Besides, the FIFO size can not be read or guessed from other registers: When designing the FIFO feature, no dedicated registers were added to store this size. Unsed spaces in the I/O register range are limited and better reserved for future usages. Instead, the FIFO size of each peripheral is documented in the programmer datasheet. Finally, on a given SoC, there can be several instances of USART with different FIFO sizes. This explain why we'd rather use a dedicated DT property than use the "compatible" property. Signed-off-by: Cyrille Pitchen Acked-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/serial/atmel-usart.txt | 3 +++ 1 file changed, 3 insertions(+) commit 6719693ca2efb0f04654d05768ee299e87e1694b Author: Patrick Donnelly Date: Sun Jul 12 18:51:52 2015 -0400 tty: add missing rcu_read_lock for task_pgrp task_pgrp requires an rcu or tasklist lock to be obtained if the returned pid is to be dereferenced, which kill_pgrp does. Obtain an RCU lock for the duration of use. Signed-off-by: Patrick Donnelly Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/n_tty.c | 15 ++++++++++++--- drivers/tty/tty_io.c | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) commit da891641b6c92e260966dfce3dd93111d08656c8 Author: Joerg Roedel Date: Thu Jul 16 10:29:13 2015 +0200 serial: 8250: Do XR17V35X specific wakeup in serial8250_do_startup The XR17V35X UART needs the ECB bit set in its XR_EFR register to enable access to IER [7:5], ISR [5:4], FCR[5:4], MCR[7:5], and MSR [7:0]. Also reset the IER register to mask interrupts after access to all bits of this register has been enabled. This makes my 8-port XR17V35X working with the in-kernel serial driver. Cc: Joe Schultz Signed-off-by: Joerg Roedel Reviewed-by: Peter Hurley Reviewed-by: Michael Welling Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_port.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit ee3ad90be5ec5e94a45aac597a23b1050cd4f1b0 Author: Peter Hurley Date: Sun Jul 12 21:11:31 2015 -0400 serial: 8250: Defer interrupt enable until fifos enabled An already-active sender can swamp the interrupt handler with "too much work" if the rx interrupts are enabled when the fifo is disabled and operating in single-byte mode. Defer rx and line status interrupt enable until after the fifos are enabled in set_termios(), but at least initialize the shadow IER value with the interrupts which will be enabled. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_port.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 45c6df4471edf5404463756df1014fe7e36db3d3 Author: Jiri Slaby Date: Tue Jun 23 19:09:59 2015 +0200 tty: linux/gsmmux.h needs linux/types.h We use __u8 in linux/gsmmux.h, so include linux/types.h to have that defined. Signed-off-by: Jiri Slaby Signed-off-by: Greg Kroah-Hartman include/uapi/linux/gsmmux.h | 1 + 1 file changed, 1 insertion(+) commit f3fb7ef3981abdca871d65e8c7d9a827225eb2ba Author: Vineet Gupta Date: Thu Jul 9 11:50:38 2015 +0530 tty/early: make serial8250_early_{in,out} static again Commit ed71871bed719 ("tty/8250_early: Turn serial_in/serial_out into weak symbols") made these routines weak to allow platform specific Big endian override However recent updates to core, specifically ebc5e20082 ("serial: of_serial: Support big-endian register accesses") and 6e63be3fee14 ("serial: earlycon: Add support for big-endian MMIO accesses") means that round about way to overide the early serial accessors is no longer needed. Cc: Jiri Slaby Cc: Peter Hurley Cc: Rob Herring Cc: Kevin Cernekee Acked-by: Noam Camus Signed-off-by: Vineet Gupta Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_early.c | 4 ++-- include/linux/serial_8250.h | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) commit b6830f6df8914faae9561bb245860c21af9b9e9b Author: Peter Hurley Date: Sat Jun 27 09:19:00 2015 -0400 serial: 8250: Split base port operations from universal driver Refactor base port operations into new file; 8250_port.c. Legacy irq handling, RSA port support, port storage for universal driver, driver definition, module parameters and linkage remain in 8250_core.c The source file split and resulting modules is diagrammed below: 8250_core.c ====> 8250_core.c __ \ \ \ +-- 8250.ko (alias 8250_core) \ 8250_pnp.c __/ (universal driver) \ => 8250_port.c __ \ +-- 8250_base.ko 8250_dma.c __/ (port operations) Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250.h | 11 + drivers/tty/serial/8250/8250_core.c | 3260 +++-------------------------------- drivers/tty/serial/8250/8250_port.c | 2898 +++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Makefile | 5 +- include/linux/serial_8250.h | 5 + 5 files changed, 3116 insertions(+), 3063 deletions(-) commit e95044ba4fee93f5ea8a1a24b2d921e148503833 Author: David Jander Date: Thu Jul 2 16:29:49 2015 +0200 tty: serial: imx.c: Reset UART before activating interrupts If the UART has been in use before this driver was loaded, IRQs might be active and get fired as soon as we set the handler, which will crash in the spin_lock_irqsave(&sport->port.lock, flags) because port.lock is not initialized until the port is added at the end of probe. Signed-off-by: David Jander Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) commit e9b5a9825f6b02a9cf86697bcffafd3d7898f9f6 Author: Manfred Schlaegl Date: Sat Jun 20 19:25:52 2015 +0200 serial: imx: reduce irq-latency after rx overflow To prevent problems with interrupt latency, and due to the fact, that the error will be counted anyway (icount.overrun), the dev_err is simply removed. Background: If an rx-fifo overflow occurs a dev_err message was called in interrupt context. Since dev_err messages are written to console in a synchronous way (unbuffered), and console may be a serial terminal, this leads to a highly increased interrupt-latency (several milliseconds). As a result of the high latency more rx-fifo overflows will happen, and therefore a feedback loop of errors is created. Signed-off-by: Manfred Schlaegl Acked-By: Alexander Stein Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 1 - 1 file changed, 1 deletion(-) commit 9b289932610edff7d0c11228efbf7a6f81361298 Author: Manfred Schlaegl Date: Sat Jun 20 19:25:35 2015 +0200 serial: imx: count tty buffer overruns As can be seen in function uart_insert_char (serial_core) the element buf_overrun of struct uart_icount is used to count overruns of tty-buffer. Added support for counting of overruns in imx driver analogue to serial_core. Signed-off-by: Manfred Schlaegl Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 8a61f0c70ae65c6b70d13228c3120c73d7425a60 Author: Fabio Estevam Date: Wed Jun 17 17:35:43 2015 -0300 serial: imx: Disable irqs before requesting them Disable interrupts before requesting them in order to fix a kernel oops after lauching a kernel via kexec. Tested on a imx6sl-evk board. Signed-off-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/imx.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 1eacbfb06df9d37b743d0eedbeb9fd4f71190c98 Author: Ricardo Ribalda Delgado Date: Mon Jun 15 16:36:07 2015 +0200 serial/uartlite: Let it build on any arch with IOMEM Being a soft core, it can be located not only on PPC or Microblaze platforms. Since the driver already does endianness detection we only need to change the Kconfig to use it in other arches. This is also done in other softcores as xilinx-spi. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6b596a834177f87846559f3f364b38cafdb13b61 Author: Maxime Coquelin Date: Tue Jun 16 11:12:19 2015 +0200 serial: stm32-usart: Fix SysRq support SysRq support activation depends on CONFIG_SERIAL_STM32_USART_CONSOLE, but this config flag does not exists. This patch fix this by depending on the valid config flag, which is SERIAL_STM32_CONSOLE. Reported-by: Andreas Ruprecht Signed-off-by: Maxime Coquelin Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/stm32-usart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e75ed3c47a2082fad87dd6d726ff7275d35e197c Author: Dmitry Torokhov Date: Mon Jul 6 10:32:27 2015 -0700 Input: arizona-haptic - convert to use managed input devices Using managed input device (via devm_input_allocate_device) simplifies error handling and driver removal paths and also silences CID# 712569. Reviewed-by: Joshua Clayton Signed-off-by: Dmitry Torokhov drivers/input/misc/arizona-haptics.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) commit ce2ae9e3e6a152866a33972c966f8315aab2cb1d Author: Dudley Du Date: Mon Jul 20 17:15:46 2015 -0700 Input: cyapa - add ACPI HID CYAP0002 for Gen6 devices Add CYTP0002 to the list of ACPI HIDs recognized by the driver. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa.c | 1 + 1 file changed, 1 insertion(+) commit 757cae5a6f0ac1c61ce149a066377a15d1ed881f Author: Dudley Du Date: Mon Jul 20 17:09:59 2015 -0700 Input: cyapa - fully support runtime suspend power management Fix the the runtime suspend power management not working issue when system starts up and before user touches the trackpad device. TEST=test on Chromebook. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa.c | 73 ++++++++++++++++++++++++++++------------ drivers/input/mouse/cyapa.h | 2 +- drivers/input/mouse/cyapa_gen3.c | 4 +-- drivers/input/mouse/cyapa_gen5.c | 21 ++++++++---- drivers/input/mouse/cyapa_gen6.c | 4 +-- 5 files changed, 70 insertions(+), 34 deletions(-) commit 945525ee607471630d07c309e036ae4a53abe37f Author: Dudley Du Date: Mon Jul 20 16:57:53 2015 -0700 Input: cyapa - add proximity support for gen5 and gen6 modules Gen5 and Gen6 trackpad devices are able to detect and report object proximity data/events, add this function support in the cyapa driver through the ABS_DISTANCE event. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa.c | 13 ++++++++- drivers/input/mouse/cyapa.h | 3 ++ drivers/input/mouse/cyapa_gen3.c | 7 +++++ drivers/input/mouse/cyapa_gen5.c | 61 +++++++++++++++++++++++++++++++++++++++- drivers/input/mouse/cyapa_gen6.c | 19 +++++++++++++ 5 files changed, 101 insertions(+), 2 deletions(-) commit c2c06c41f700b544c9331caf71c67edb5d131257 Author: Dudley Du Date: Mon Jul 20 16:53:30 2015 -0700 Input: cyapa - add gen6 device module support Based on the cyapa core, add support for basic functionality of the gen6 trackpad devices. The driver can automatically determine what protocol (gen3, gen5, or gen6) should be used with the attached trackpad device. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/Makefile | 2 +- drivers/input/mouse/cyapa.c | 22 ++ drivers/input/mouse/cyapa.h | 15 + drivers/input/mouse/cyapa_gen5.c | 69 +++- drivers/input/mouse/cyapa_gen6.c | 730 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 834 insertions(+), 4 deletions(-) commit 94897619bf24aca6b37cfa847399a56cf40eab66 Author: Dudley Du Date: Mon Jul 20 16:49:06 2015 -0700 Input: cyapa - rename 'gen5' to 'pip' for chared code Change 'gen5' to 'pip' for all macros, variables and functions that are shared between gen5 and gen6 modules to make naming more clear and readable. Also fix a few spelling errors. Signed-off-by: Dudley Du Signed-off-by: Dmitry Torokhov drivers/input/mouse/cyapa.c | 34 +- drivers/input/mouse/cyapa.h | 136 ++++- drivers/input/mouse/cyapa_gen3.c | 4 +- drivers/input/mouse/cyapa_gen5.c | 1103 ++++++++++++++++++-------------------- 4 files changed, 673 insertions(+), 604 deletions(-) commit be972177797636a4c8958ff0a8feb314309850c3 Author: Himangi Saraogi Date: Sun May 25 22:33:13 2014 -0700 Input: tc3589x-keypad - switch to using managed resources Let's switch the driver to use managed resources, this will simplify error handling and driver unbinding logic. Signed-off-by: Himangi Saraogi Signed-off-by: Dmitry Torokhov drivers/input/keyboard/tc3589x-keypad.c | 58 ++++++++++++--------------------- 1 file changed, 20 insertions(+), 38 deletions(-) commit e571c73ee4836640d3019ac68b008f3662087e80 Author: Dmitry Torokhov Date: Fri Jul 17 17:08:02 2015 -0700 Input: tc3589x-keypad - change name of wakeup property Wakeup property of device is not Linux-specific, it describes intended system behavior regardless of the OS being used. Therefore let's drop "linux," prefix, and, while at it, use the same name as I2C bus does: "wakeup-source". We keep parsing old name to keep compatibility with old DTSes. Reviewed-by: Linus Walleij Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/mfd/tc3589x.txt | 4 ++-- drivers/input/keyboard/tc3589x-keypad.c | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) commit 43b7be3b8c0457c35a124d8538372f82f355bd29 Author: Dmitry Torokhov Date: Fri Jul 17 17:04:10 2015 -0700 Input: samsung-keypad - change name of wakeup property Wakeup property of device is not Linux-specific, it describes intended system behavior regardless of the OS being used. Therefore let's drop "linux," prefix, and, while at it, use the same name as I2C bus does: "wakeup-source". We keep parsing old name to keep compatibility with old DTSes. Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/samsung-keypad.txt | 4 +++- drivers/input/keyboard/samsung-keypad.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) commit 466e285b1f63e84a6ced5cd18c3c3d90bda73404 Author: Qipan Li Date: Tue Jul 14 00:52:23 2015 +0000 serial: sirf: let uart's receive start in right place While UART work in DMA mode, function start_rx will request descriptor from DMA engine, if there is no left descriptor UART, driver will give err logs "DMA slave single fail". currently start_rx is called in set_termios function, so everytime, port setting will call start_rx once. Now put start_rx in startup, it will be called once while open the port. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 46 ++++++++++++++------------------------- drivers/tty/serial/sirfsoc_uart.h | 1 - 2 files changed, 16 insertions(+), 31 deletions(-) commit 1d26c9ff420f647df4a7a3e9a28736b9cff6359a Author: Qipan Li Date: Tue Jul 14 00:52:22 2015 +0000 serial: sirf: workaround rx process to avoid possible data loss when UART works in DMA mode and left bytes in rx fifo less than a dma transfer unit, DMA engine can't transfer the bytes out to rx DMA buffer. so it need a way to fetch them out and flush them into tty buffer in time. in the above case, we want UART switch from DMA mode to PIO mode and fetch && flush bytes into tty layer buffer until rxfifo become empty, after that done let UART switch from PIO mode back to DMA mode. (record as method1) method1 result in the next receive result wrong. for example in PIO part of method1, we fetched && pushed X1...X3 bytes, when UART rxfifo newly received Y1...Y4 bytes, UART trigger a DMA unit transfer, the DMA unit's content is X1...X3Y1 and rxfifo fifo status is empty, so X1X2X3 pushed twice by PIO way and DMA way also the bytes Y2Y3Y4 missed. add rxfifo reset operation before UART switch back to DMA mode would resolve the issue. ([method1 + do fifo reset] record as method2) before the commit, UART driver use method2. but methd2 have a risk of data loss, as if UART's shift register receive a complete byte and transfer it into rxfifo before rxfifo reset operation the byte will loss. UART and USP have the similar bits CLEAR_RX_ADDR_EN(uart)/FRADDR_CLR_EN(usp), When found UART controller changing I/O to DMA mode, UART controller clears the two low bits of read point (rx_fifo_addr[1:0]). when enable the bit + method1(record as method3), in above example the DMA unit's content is X1...X3Y1 and there are Y2Y3Y4 in rxfifo by experiment, we just push bytes in rx DMA buffer. BTW, the workaround works only for UART receive DMA channel use SINGLE DMA mode. Signed-off-by: Qipan Li Signed-off-by: Barry Song Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/sirfsoc_uart.c | 80 ++++++++++++++++++++++++++++++--------- drivers/tty/serial/sirfsoc_uart.h | 4 ++ 2 files changed, 66 insertions(+), 18 deletions(-) commit e9bb4b510046d41e3e5a4adc56c76ec8d6812962 Author: Axel Lin Date: Sun Jun 28 09:46:43 2015 +0800 serial: etraxfs-uart: Convert to uart_console_device instead of open-coded The implementation of cris_console_device() is exactly the same as uart_console_device(), so let's switch to use uart_console_device(). Signed-off-by: Axel Lin Acked-by: Niklas Cassel Acked-by: Jesper Nilsson Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/etraxfs-uart.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 5bac4b3d2592c281a9b2614070140b116bd0b0a9 Author: Peter Hurley Date: Sat Jun 27 09:28:55 2015 -0400 serial: 8250_omap: Remove auto-IXON flow control OMAP h/w-assisted IXON flow control is borked. The transmitter becomes stuck if XON is never received; clearing the fifos or resetting the rx flow control bits has no effect. Remove auto-IXANY as well, since without auto-IXON, it has no purpose. Signed-off-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 27c93af7e7d9ccdfa28e26767c09106bf0721998 Author: Sekhar Nori Date: Tue Jul 14 13:32:08 2015 +0530 serial: 8250_omap: workaround module disable errata on dra7x SoCs Due to Advisory 21 as documented in AM437x errata document, UART module cannot be disabled once DMA is used. The only workaround is to softreset the module before disabling it. DRA7x UARTs are compatible to AM437x UARTs in terms of this errata and prescribed workaround. Enable usage of workaround for this errata on DRA7x SoCs. Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/serial/omap_serial.txt | 1 + drivers/tty/serial/8250/8250_omap.c | 1 + 2 files changed, 2 insertions(+) commit cdb929e4452a8dab15daccc88e43d0f7e73b5500 Author: Sekhar Nori Date: Tue Jul 14 13:32:07 2015 +0530 serial: 8250_omap: workaround errata around idling UART after using DMA AM335x, AM437x and DRA7x SoCs have an errata[1] due to which UART cannot be idled after it has been used with DMA. OMAP3 has a similar sounding errata which has been worked around in a2fc36613ac1af2e9 ("ARM: OMAP3: Use manual idle for UARTs because of DMA errata"). But the workaround used there does not apply to AM335x, AM437x SoCs. After using DMA, the UART module on these SoCs must be soft reset to go to idle. This patch implements that errata workaround. It is expected that UART will be used with DMA so no explicit check for DMA usage has been added for errata applicability. MDR1 register needs to be restored right after soft-reset because "UART mode" must be set in that register for module wake-up on AM335x to work. As a result, SCR register is now used to determine if context was lost during sleep. [1] See Advisory 21 in AM437x errata SPRZ408B, updated April 2015. http://www.ti.com/lit/er/sprz408b/sprz408b.pdf Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 65 +++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 6 deletions(-) commit 4fcdff9bcabc135d72f69ed8723a14a9e514fe46 Author: Sekhar Nori Date: Tue Jul 14 13:32:06 2015 +0530 serial: 8250_omap: introduce "ti,am3352-uart" compatible property Use of of_machine_is_compatible() for handling AM335x specific "DMA kick" quirk in 8250_omap driver makes it ugly to extend the quirk for other platforms. Instead use a new compatible. The new compatible will also make it easier to take care of other quirks on AM335x and like SoCs. In order to not break backward DTB compatibility for users of 8250_omap driver on AM335x based boards, existing use of of_machine_is_compatible() has not been removed. Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman .../devicetree/bindings/serial/omap_serial.txt | 1 + arch/arm/boot/dts/am33xx.dtsi | 12 ++++---- drivers/tty/serial/8250/8250_omap.c | 32 ++++++++++++++-------- 3 files changed, 28 insertions(+), 17 deletions(-) commit 6f03541f6bbd1b02f659099b171bd4b91d6f1a53 Author: Sekhar Nori Date: Tue Jul 14 13:32:05 2015 +0530 serial: 8250_omap: refactor mdr1 update The silicon errata[1] workaround implemented in a follow-on patch, "serial: 8250_omap: workaround errata on disabling UART after using DMA", requires MDR1 register programming. Extract MDR1 register update into helper function, omap8250_update_mdr1() to help with that. [1] Advisory 21 in http://www.ti.com/lit/er/sprz408b/sprz408b.pdf Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit d879aeaa416fea126081452e811c1d225fd25b00 Author: Sekhar Nori Date: Tue Jul 14 13:32:04 2015 +0530 Documentation: DT: omap_serial: document missing compatible The compatible "ti,am4372-uart" is used in arch/arm/boot/dts/am4372.dtsi but not documented. Add necessary documentation. Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman Documentation/devicetree/bindings/serial/omap_serial.txt | 1 + 1 file changed, 1 insertion(+) commit 727fd8ab7913421f3b60bcaaf31f1f5389c7cb5a Author: Sekhar Nori Date: Tue Jul 14 13:32:03 2015 +0530 serial: 8250_omap: fix kernel crash in suspend-to-ram omap_device infrastructure has a suspend_noirq hook which runtime suspends all devices late in the suspend cycle (see _od_suspend_noirq() in arch/arm/mach-omap2/omap_device.c) This leads to a NULL pointer exception in 8250_omap driver since by the time omap8250_runtime_suspend() is called, 8250_dma driver has already set rxchan to NULL via serial8250_release_dma(). Make an explicit check to see if rxchan is NULL in runtime_{suspend|resume} hooks to fix this. Signed-off-by: Sekhar Nori Acked-by: Tony Lindgren Reviewed-by: Peter Hurley Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_omap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 29d58642f1a090ad574d14872b610b365b2d023b Author: Ricardo Ribalda Delgado Date: Tue Jun 16 10:59:40 2015 +0200 serial/8250_fintek: Support for any io address. Fintek chip can be configured for io addresses different than the standard. Query the chip for the configured addresses and try to match it with the pnp address. Reported-by: Peter Hong Reviewed-by: Alan Cox Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_fintek.c | 51 ++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 24 deletions(-) commit ce8c267e2ef9180d21f6915f21874898c2ac0ffb Author: Ricardo Ribalda Delgado Date: Tue Jun 16 10:59:39 2015 +0200 serial/8250_fintek: Support keys different than default Chip can be configured to use entry key different than 0x77. Try all the valid keys until one gives out the right chip id. Reported-by: Peter Hong Reviewed-by: Alan Cox Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_fintek.c | 39 +++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) commit dae77f757950c273500cc72262a094f290578bef Author: Ricardo Ribalda Delgado Date: Tue Jun 16 10:59:38 2015 +0200 serial/8250_fintek: Support for chip_ip 0x0501 There are some chips with the same interface but different chip ip. Reported-by: Peter Hong Reviewed-by: Alan Cox Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_fintek.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 017bec38c08fc954fb788fe69cf9e55f0d4910e7 Author: Ricardo Ribalda Delgado Date: Tue Jun 16 10:59:37 2015 +0200 serial/8250_fintek: Support for multiple base_ports Fintek chip can be connected at address 0x4e and also 0x2e. Add some logic to find out the address of the chip. Reported-by: Peter Hong Reviewed-by: Alan Cox Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_fintek.c | 87 +++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 35 deletions(-) commit 92a5f11a1a3357964c30c34d55dc55152315b81b Author: Ricardo Ribalda Delgado Date: Tue Jun 16 10:59:36 2015 +0200 serial/8250_fintek: Use private data structure Save the port index and the line id in a private structure. Reported-by: Peter Hong Reviewed-by: Alan Cox Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Greg Kroah-Hartman drivers/tty/serial/8250/8250_fintek.c | 48 ++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 17 deletions(-) commit 75406b3b17ee5a107b361b4065ad83fe42fff5a8 Author: Vaishali Thakkar Date: Sat Jun 6 06:05:24 2015 +0530 tty: Convert use of __constant_htons to htons In little endian cases, macro htons unfolds to __swab16 which provides special case for constants. In big endian cases, __constant_htons and htons expand directly to the same expression. So, replace __constant_htons with htons with the goal of getting rid of the definition of __constant_htons completely. The semantic patch that performs this transformation is as follows: @@expression x;@@ - __constant_htons(x) + htons(x) Signed-off-by: Vaishali Thakkar Signed-off-by: Greg Kroah-Hartman drivers/tty/n_gsm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99b4ffbd84ea4191e0b8d1709230656a1c33b848 Author: Dmitry Torokhov Date: Thu Jul 16 12:10:05 2015 -0700 Input: gpio_keys[_polled] - change name of wakeup property Wakeup property of device is not Linux-specific, it describes intended system behavior regardless of the OS being used. Therefore let's drop "linux," prefix, and, while at it, use the same name as I2C bus does: "wakeup-source". We keep parsing old name to keep compatibility with old DTSes. Reviewed-by: Linus Walleij Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/gpio-keys-polled.txt | 2 +- Documentation/devicetree/bindings/input/gpio-keys.txt | 2 +- drivers/input/keyboard/gpio_keys.c | 4 +++- drivers/input/keyboard/gpio_keys_polled.c | 5 ++++- 4 files changed, 9 insertions(+), 4 deletions(-) commit 274696521254855ba03f2d4f4575ae048a409256 Author: Dmitry Torokhov Date: Thu Jul 16 12:15:24 2015 -0700 Input: pmic8xxx-keypad - change name of wakeup property Wakeup property of device is not Linux-specific, it describes intended system behavior regardless of the OS being used. Therefore let's drop "linux," prefix, and, while at it, use the same name as I2C bus does: "wakeup-source". We keep parsing old name to keep compatibility with old DTSes. Acked-by: Stephen Boyd Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt | 2 +- drivers/input/keyboard/pmic8xxx-keypad.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) commit abf77a32288d4379dfede0b50be6a04be3cd1431 Author: Dmitry Torokhov Date: Thu Jul 16 12:03:39 2015 -0700 Input: ads7846 - change name of wakeup property to "wakeup-source" Wakeup property of device is not Linux-specific, it describes intended system behavior regardless of the OS being used. Therefore let's drop "linux," prefix, and, while at it, use the same name as I2C bus does: "wakeup-source". We keep parsing old name to keep compatibility with old DTSes. Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/ads7846.txt | 2 +- drivers/input/touchscreen/ads7846.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) commit aeda5003d0b987085acef6ad4844f8e34851bb10 Author: Dmitry Torokhov Date: Thu Jul 16 11:54:14 2015 -0700 Input: matrix_keypad - change name of wakeup property to "wakeup-source" Wakeup property of device is not Linux-specific, it describes intended system behavior regardless of the OS being used. Therefore let's drop "linux," prefix, and, while at it, use the same name as I2C bus does: "wakeup-source". We keep parsing old name to keep compatibility with old DTSes. Cc: Lothar Waßmann Signed-off-by: Dmitry Torokhov Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt | 2 +- drivers/input/keyboard/matrix_keypad.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 02b0b79c30076aaa33ee9134546130eb62b88078 Author: Stephen Boyd Date: Fri Jul 17 14:59:18 2015 -0700 Input: pmic8xxx-pwrkey - support shutdown On pm8xxx PMICs, shutdown and restart are signaled to the PMIC via a pin called PS_HOLD. When this pin goes low, the PMIC performs a configurable power sequence. Add a .shutdown hook so that we can properly configure this power sequence for shutdown or restart depending on the system state. Signed-off-by: Stephen Boyd Reviewed-by: Bjorn Andersson Signed-off-by: Dmitry Torokhov drivers/input/misc/pmic8xxx-pwrkey.c | 268 ++++++++++++++++++++++++++++++++++- 1 file changed, 266 insertions(+), 2 deletions(-) commit 6297c4b242f5b1e3d2089291b8788d900aecbce1 Author: Bjorn Andersson Date: Fri Jun 26 14:50:17 2015 -0700 ARM: dts: msm8974: Add smem reservation and node Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8974.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit b4e745e135e3b036cbf3399a0477abac280f4d35 Author: Bjorn Andersson Date: Fri Jun 26 14:50:16 2015 -0700 ARM: dts: msm8974: Add tcsr mutex node Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8974.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 724cde479dafcd4a6ee1e39e820ac94c0c7c04c5 Author: Stephen Boyd Date: Tue Jun 16 13:31:15 2015 -0700 ARM: dts: qcom: Add ks8851 node for wired ethernet The micrel ks8851 device is present on MSM8960 CDP boards. It is connected to two regulators, one controlled via a gpio and another controlled via the RPM. Add the gsbi, spi, gpio regulator, and micrel ks8851 nodes so that ethernet works properly. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8960-cdp.dts | 66 ++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/qcom-msm8960.dtsi | 25 +++++++++++++ 2 files changed, 91 insertions(+) commit fe9ad1679c313f76fdf94a712b0dd91275e839d3 Author: Stephen Boyd Date: Tue Jun 16 13:31:14 2015 -0700 ARM: dts: qcom: Add MSM8960 CDP RPM regulators Add RPM regulators and configure their constraints on the MSM8960 CDP so that we can control these supplies. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8960-cdp.dts | 236 +++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) commit 9de4bc97b33822df28886668d27d6ddc0fd241c7 Author: Stephen Boyd Date: Tue Jun 16 13:31:13 2015 -0700 ARM: dts: qcom: Add MSM8960 RPM and RPM regulator nodes Add the basic RPM and RPM regulator nodes that boards can fill in with their board specific details. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8960.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 2a39c9b3962402b2bbe530686858b906a6bddd0e Author: Stephen Boyd Date: Tue Jun 16 13:31:12 2015 -0700 ARM: dts: qcom: Replace gpio node with pinctrl node Now that we have a proper pinctrl driver for the gpio block we can change the compatible field here and configure the pinmux on msm8960 devices. Signed-off-by: Stephen Boyd Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8960.dtsi | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 8e140c8e64d20ac17b003c0f5607d782f5c1f5b0 Author: Bjorn Andersson Date: Fri Jun 5 15:52:25 2015 -0700 ARM: dts: qcom: Replace gpio node with pinctrl node Replace the standalone gpio driver with pinctrl-msm as we now have msm8660 support there. Signed-off-by: Bjorn Andersson Acked-by: Linus Walleij Signed-off-by: Andy Gross arch/arm/boot/dts/qcom-msm8660.dtsi | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 40913fe6ea3b733564f0b580cf6c51f5d8fa8158 Author: Bob Moore Date: Thu Jul 23 12:54:30 2015 +0800 ACPICA: Update version to 20150717 ACPICA commit 8580ce04c1b7aa415c364b06e79edb8aca77dded Version 20150717. Link: https://github.com/acpica/acpica/commit/8580ce04 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 6d9be0a5c459ac30a5b3e7fbe51c55f65a5f4c7c Author: Bob Moore Date: Thu Jul 23 12:54:23 2015 +0800 ACPICA: iASL/Disassembler: Add prototype verbose mode ACPICA commit add72dca18ab5d02f1bf9b08027570e58da520e8 This mode will emit AML byte code after each ASL statement. This is a prototype only and requires additional development. This patch only affects ACPICA disassembler which is not in the kernel source tree. Link: https://github.com/acpica/acpica/commit/add72dca Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acglobal.h | 1 + 1 file changed, 1 insertion(+) commit fdd8d831cf43761712d28e5d1ad812eab7dc1480 Author: Lv Zheng Date: Thu Jul 23 12:54:17 2015 +0800 ACPICA: Debugger: Move debugger specific APIs to debugger component ACPICA commit 2164923d60429eea7cd5a4a8629b607af7325afa Some disassembler APIs should rather be debugger APIs. This patch moves them to the debugger folder to be ready for debugger porting. Since there is no in-kernel ACPICA debugger in the kernel source tree, this patch doesn't affect the Linux kernel. Link: https://github.com/acpica/acpica/commit/2164923d Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 17 +++++++++++++++++ drivers/acpi/acpica/dsmethod.c | 12 +++++------- 2 files changed, 22 insertions(+), 7 deletions(-) commit 02ca26bef8f49a654026f56bedde2ab25e761380 Author: Lv Zheng Date: Thu Jul 23 12:54:11 2015 +0800 ACPICA: Debugger: Reduce structure size for debugger ACPICA commit 310e0ae1c4730f4dadc80125125099ab76851499 arg_types in struct acpi_db_method_info is only referenced by ACPI_DEBUGGER. This patch only affects ACPICA debugger which is only used by a non-kernel tool - acpiexec, so Linux kernel is currently not affected by this patch. Link: https://github.com/acpica/acpica/commit/310e0ae1 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 3 +++ 1 file changed, 3 insertions(+) commit 15a61aa19dad8dedb137c216c13ba18ad6f59674 Author: Bob Moore Date: Thu Jul 23 12:54:04 2015 +0800 ACPICA: iASL: Add support for TCPA Server Table ACPICA commit 55fa9555c71eaa99daebed4cd82cfde3875e8c45 In addition to the existing support for the client table. Link: https://github.com/acpica/acpica/commit/55fa9555 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki include/acpi/actbl2.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) commit 88606a2b9020993a776df894941b3b07cc1374fe Author: Bob Moore Date: Thu Jul 23 12:53:57 2015 +0800 ACPICA: Cleanup use of NEGATIVE and POSITIVE defines ACPICA commit f88814201e01043a4f8caa69a69b799af11c44a3 These were defined in two places. Changed to ACPI_SIGN* names and define them once in acmacros.h This patch doesn't affect Linux kernel. Link: https://github.com/acpica/acpica/commit/f8881420 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acmacros.h | 5 +++++ 1 file changed, 5 insertions(+) commit 276291962ebf43abebb491ddcd922009de9fde4b Author: Bob Moore Date: Thu Jul 23 12:53:49 2015 +0800 ACPICA: Cleanup use of all non-ANSI local C library functions ACPICA commit 7c490c28a18b435c543c6b410e7e7c2131fccc78 ACPICA implements all non-ANSI functions locally. However, there are sometimes two or more versions of the same function throughout the ACPICA code. This change fixes this. Adds a new file, utilities/utnonansi.c Link: https://github.com/acpica/acpica/commit/7c490c28 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/Makefile | 1 + drivers/acpi/acpica/acmacros.h | 4 + drivers/acpi/acpica/acutils.h | 23 ++- drivers/acpi/acpica/utnonansi.c | 380 ++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/utstring.c | 342 ------------------------------------ 5 files changed, 396 insertions(+), 354 deletions(-) commit 5a4f0693a586d73a65ccc7959e81a5618de265fe Author: Lv Zheng Date: Thu Jul 23 12:53:42 2015 +0800 ACPICA: MSVC: Fix inclusion order issue of ACPICA commit 49c6a6517a906900e9baa51ad5859beeb8a3089f The following error logs can be seen for calloc/free/malloc/realloc that defined in the stdlib.h: ...\stdlib.h(281) : error C2059: syntax error : ',' ...\stdlib.h(281) : error C2143: syntax error : missing ')' before 'constant' ...\stdlib.h(281) : error C2143: syntax error : missing '{' before 'constant' ...\stdlib.h(281) : error C2059: syntax error : '' ...\stdlib.h(281) : error C2059: syntax error : ')' This is caused by the wrong inclusion order of stdlib.h/crtdbg.h introduced in acenv.h. This patch fixes this breakage. Lv Zheng. This patch doesn't affect Linux kernel. Link: https://github.com/acpica/acpica/commit/49c6a651 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki include/acpi/platform/acenvex.h | 3 +++ include/acpi/platform/acmsvcex.h | 54 ++++++++++++++++++++++++++++++++++++++++ include/acpi/platform/acwinex.h | 49 ++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) commit 53d9edce56de3eb495a3eef77e973e3ea014d999 Author: Bob Moore Date: Thu Jul 23 12:53:35 2015 +0800 ACPICA: iASL: Add new warnings for method local_x and arg_x variables ACPICA commit eb9f8cb9fd65f1149dd335d05944c31cbca41af3 1) Warn if a Local is set but never used 2) Warn if a arg_x is never used (for non-predefined method names) 3) Warn if a arg_x that is used as a local is never used This patch only affects iASL which is not in the kernel source tree. Link: https://github.com/acpica/acpica/commit/eb9f8cb9 Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 4 ++++ 1 file changed, 4 insertions(+) commit dc67d0fa8612ad49a8ec36040c5d22a9091bdbf6 Author: Markus Elfring Date: Thu Jul 23 12:53:28 2015 +0800 ACPICA: Remove extraneous check for null walk_state ACPICA commit f9fd6e8bad0f16ce2b436c5cda36ced0c2d85302 Reported by Markus Elfring. Link: https://github.com/acpica/acpica/commit/f9fd6e8b Signed-off-by: Markus Elfring Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/dsmethod.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit ec4252a66b1a2cd2fc6fbdbf3d3279640500fb75 Author: Lv Zheng Date: Thu Jul 23 12:53:22 2015 +0800 ACPICA: Parser: Remove redundant opcode execution debugging output ACPICA commit c832b0a9263c560b3ae3ae31d7298ef33988f8d5 This patch removes one redundant debugging output of opcode execution which has already been covered by acpi_ex_start_trace_opcode(). Lv Zheng. Link: https://github.com/acpica/acpica/commit/c832b0a9 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/psloop.c | 8 -------- 1 file changed, 8 deletions(-) commit fb18e8fd08862f5509f3c79e168b24512c7065aa Author: Lv Zheng Date: Thu Jul 23 12:53:15 2015 +0800 ACPICA: Executer: Add option to bypass opcode tracing ACPICA commit 61e9e20aadfaa03184d0959fbdc1fa5cdfea2551 This patch adds option to bypass opcode tracing. The option can be used to reduce the trace message output. Lv Zheng. Link: https://github.com/acpica/acpica/commit/61e9e20a Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/exdebug.c | 6 ++++-- include/acpi/acoutput.h | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) commit bab0482418885627babfd1a6ca4e57a809712474 Author: Lv Zheng Date: Thu Jul 23 12:53:07 2015 +0800 ACPICA: Executer: Add OSL trace hook support ACPICA commit e8e4a9b19d0b72a7b165398bdc961fc2f6f502ec This patch adds OSL trace hook support. OSPMs are encouraged to use acpi_os_trace_point() with ACPI_USE_SYSTEM_TRACER defined to implement platform specific trace facility. Lv Zheng. Link: https://github.com/acpica/acpica/commit/e8e4a9b1 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acinterp.h | 4 ++ drivers/acpi/acpica/exdebug.c | 125 +++++++++++++++++++++++++++++------------ drivers/acpi/acpica/utdebug.c | 31 +++++++++- include/acpi/acoutput.h | 3 + include/acpi/acpiosxf.h | 6 ++ include/acpi/acpixf.h | 5 ++ include/acpi/actypes.h | 8 +++ 7 files changed, 144 insertions(+), 38 deletions(-) commit ab6c573320768c36ac629be3db79ad62445aae64 Author: Lv Zheng Date: Thu Jul 23 12:52:59 2015 +0800 ACPICA: Executer: Add interpreter tracing mode for method tracing facility ACPICA commit 07fffd02607685b655ed92ee15c160e6a810b60b The acpi_debug_trace() is the mechanism known as ACPI method tracing that is used by Linux as ACPICA debugging message reducer. This facility can be controlled through Linux ACPI subsystem - /sys/module/acpi/parameters. This facility requires CONFIG_ACPI_DEBUG to be enabled to see ACPICA trace logs in the kernel dmesg output. This patch enhances acpi_debug_trace() to make it not only a message reducer, but a real tracer to trace AML interpreter execution. Note that in addition to the AML tracer enabling, this patch also updates the facility with the following enhancements: 1. Allow a full path to be specified by the acpi_debug_trace() API. 2. Allow any method rather than just the entrance of acpi_evaluate_object() to be traced. 3. All interpreter ACPI_LV_TRACE_POINT messages are collected for ACPI_EXECUTER layer. The Makefile of drivers/acpi/acpica is also updated to include exdebug.o and the duplicated stubs are removed after that. Note that since this patch has enhanced the method tracing facility, Linux need also be updated after applying this patch. Lv Zheng. Link: https://github.com/acpica/acpica/commit/07fffd02 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acdebug.h | 2 + drivers/acpi/acpica/acglobal.h | 2 - drivers/acpi/acpica/acinterp.h | 18 +++ drivers/acpi/acpica/dsdebug.c | 25 +--- drivers/acpi/acpica/dsmethod.c | 32 +---- drivers/acpi/acpica/exdebug.c | 271 +++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/psloop.c | 16 +-- drivers/acpi/acpica/psparse.c | 4 +- drivers/acpi/acpica/psxface.c | 121 ++---------------- drivers/acpi/acpica/utinit.c | 2 - include/acpi/acoutput.h | 13 ++ include/acpi/acpixf.h | 6 +- 12 files changed, 327 insertions(+), 185 deletions(-) commit a616dc2fe50270f1fa5050fb9cd88a08531a3f25 Author: Lv Zheng Date: Thu Jul 23 12:52:53 2015 +0800 ACPICA: Dispatcher: Add trace support for interpreter ACPICA commit 71299ec8b49054daace0df50268e8e055654ca37 This patch adds trace point at the following point: 1. Begin/end of a control method execution; 2. Begin/end of an opcode execution. The trace point feature can be enabled by defining ACPI_DEBUG_OUTPUT and specifying a debug level that includes ACPI_LV_TRACDE_POINT and the debug layers that include ACPI_PARSER and ACPI_DISPACTCHER. In order to make aml_op_name of union acpi_parse_object usable for tracer, it is enabled for ACPI_DEBUG_OUTPUT in this patch. Lv Zheng. Link: https://github.com/acpica/acpica/commit/71299ec8 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 2 +- drivers/acpi/acpica/dsdebug.c | 24 ++++++++++++++++++++++++ drivers/acpi/acpica/dsmethod.c | 31 +++++++++++++++++++++++++++++++ drivers/acpi/acpica/psloop.c | 15 +++++++++++++++ drivers/acpi/acpica/psparse.c | 4 ++++ include/acpi/acoutput.h | 4 +++- 6 files changed, 78 insertions(+), 2 deletions(-) commit 0bac4295526c67e87ec24b29762140c38de7c86a Author: Lv Zheng Date: Thu Jul 23 12:52:46 2015 +0800 ACPICA: Dispatcher: Move stack traversal code to dispatcher ACPICA commit c8275e243b58fd4adfc0362bd704af41ed14bc75 This patch moves parts of acpi_dm_dump_method_info() to the dispatcher component. This patch also makes the new function dependent on ACPI_DEBUG_OUTPUT compile-stage definition so that it can be used by the trace facility. acpi_dm_dump_method_info() traverses method stack when an exception is encountered. Such traversal is needed to support method tracing for the exceptions. When an exception is encountered, the end indications of the aborted methods should be logged in order not to break the user space analysis tool. Lv Zheng. Link: https://github.com/acpica/acpica/commit/c8275e24 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/Makefile | 1 + drivers/acpi/acpica/acdispat.h | 8 ++ drivers/acpi/acpica/dsdebug.c | 222 +++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/dsmethod.c | 7 +- 4 files changed, 235 insertions(+), 3 deletions(-) commit d1e7ffe50ba588ddf7de520990815c37f31776d8 Author: Lv Zheng Date: Thu Jul 23 12:52:39 2015 +0800 ACPICA: Namespace: Add function to directly return normalized full path ACPICA commit 6e0229bb156d71675f2e07dc7960adb7ec0a60ea This patch adds functions to return normalized full path instead of "external path". The external path contains trailing "_" for each name segment while the normalized full path doesn't contain the trailing "_". Currently this function is used by the method tracing users to specify a none trailing "_" attached name path. Lv Zheng. Note that we need to validate and switch all Linux kernel acpi_get_name() users to use the new name type before removing the old name type from ACPICA. Link: https://github.com/acpica/acpica/commit/6e0229bb Signed-off-by: Lv Zheng Reviewed-by: Ruiyi Zhang Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acnamesp.h | 13 +- drivers/acpi/acpica/exdump.c | 5 +- drivers/acpi/acpica/nsnames.c | 275 +++++++++++++++++++++++------------------ drivers/acpi/acpica/nsutils.c | 2 +- drivers/acpi/acpica/nsxfname.c | 8 +- drivers/acpi/acpica/rscreate.c | 3 +- drivers/acpi/acpica/utmisc.c | 2 +- include/acpi/actypes.h | 3 +- 8 files changed, 178 insertions(+), 133 deletions(-) commit 07b9c91225055afeb2d75942fc36dd51c5553d90 Author: Lv Zheng Date: Thu Jul 23 12:52:31 2015 +0800 ACPICA: Executer: Add back pointing reference of method operand ACPICA commit 9dcd124e914e87495fbd1786d9484b962e0823e0 This patch adds back pointing reference of the namespace node for a method operand. The namespace node then can be used in acpi_ds_terminate_control_method() to obtain method full path to be used by tracing facilities. Lv Zheng. Link: https://github.com/acpica/acpica/commit/9dcd124e Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acobject.h | 1 + drivers/acpi/acpica/excreate.c | 1 + drivers/acpi/acpica/utdelete.c | 3 +++ 3 files changed, 5 insertions(+) commit 62eb935b77818a5e4ff3c8d9b97036b59944f649 Author: Lv Zheng Date: Thu Jul 23 12:52:24 2015 +0800 ACPICA: Dispatcher: Cleanup union acpi_operand_object's AML address assignments ACPICA commit afb52611dbe7403551f93504d3798534f5c343f4 This patch cleans up the code of assigning the AML address to the union acpi_operand_object. The idea behind this cleanup is: The AML address of the union acpi_operand_object should always be determined at the point where the object is encountered. It should be started from the first byte of the object. For example, the opcode of the object, the name string of the user_term object, or the first byte of the packaged object (where a pkg_length is prefixed). So it's not cleaner to have it assigned here and there in the entire ACPICA source tree. There are some special cases for the internal opcodes, before cleaning up the internal opcodes, we should also determine the rules for the AML addresses of the internal opcodes: 1. INT_NAMEPATH_OP: the address of the first byte for the name_string. 2. INT_METHODCALL_OP: the address of the first byte for the name_string. 3. INT_BYTELIST_OP: the address of the first byte for the byte_data list. 4. INT_EVAL_SUBTREE_OP: the address of the first byte for the Region/Package/Buffer/bank_field/Field arguments. 5. INT_NAMEDFIELD_OP: the address to the name_seg. 6. INT_RESERVEDFIELD_OP: the address to the 0x00 prefix. 7. INT_ACCESSFIELD_OP: the address to the 0x01 prefix. 8. INT_CONNECTION_OP: the address to the 0x02 prefix. 9: INT_EXTACCESSFIELD_OP: the address to the 0x03 prefix. 10.INT_RETURN_VALUE_OP: the address of the replaced operand. 11.computational_data: the address to the Byte/Word/Dword/Qword/string_prefix. Before cleaning up the internal root scope of the aml_walk, turning it into the term_list, we need to remember the aml_start address as the "Aml" attribute for the union acpi_operand_object created by acpi_ps_create_scope_op(). Finally, we can delete some redundant AML address assignment in psloop.c. Link: https://github.com/acpica/acpica/commit/afb52611 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acparser.h | 4 ++-- drivers/acpi/acpica/dsargs.c | 4 ++-- drivers/acpi/acpica/dsmethod.c | 2 +- drivers/acpi/acpica/dswload.c | 2 +- drivers/acpi/acpica/dswload2.c | 2 +- drivers/acpi/acpica/nsparse.c | 40 +++++++++++++++++++--------------------- drivers/acpi/acpica/psargs.c | 21 ++++++++++++--------- drivers/acpi/acpica/psloop.c | 3 --- drivers/acpi/acpica/psobject.c | 2 +- drivers/acpi/acpica/psparse.c | 12 ++++++++---- drivers/acpi/acpica/psutils.c | 8 +++++--- drivers/acpi/acpica/psxface.c | 2 +- 12 files changed, 53 insertions(+), 49 deletions(-) commit 950a429cd21638b0c076d135ed279518b21f452b Author: Lv Zheng Date: Thu Jul 23 12:52:18 2015 +0800 ACPICA: Parser: Cleanup aml_offset in union acpi_operand_object ACPICA commit 61b360074fde2bb8282722579410f5d1fb12f84d This patch converts aml_offset in union acpi_operand_object to AML address. AML offset is actually only used by the debugger, using AML address is more direct and efficient during the parsing stage so that we don't need to calculate the offset during the parsing stage and will not have difficulities in converting it into other offset attributes. Sometimes, aml_offset is not an indication of the offset from the table header but the offset from the entry of a list of terms, which requires additional efforts to convert it into an offset from the table header. By using AML address directly, there is no such difficulty. Thus this patch also deletes a logic in disassembler that is trying to convert the aml_offset from "offset from the start address of Method/Package/Buffer" into the "offset from the start address of the ACPI table" (Sample code deletion can be seen in acpi_dm_deferred_parse(), but the function is not in the Linux kernel). Lv Zheng. Link: https://github.com/acpica/acpica/commit/61b36007 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/aclocal.h | 2 +- drivers/acpi/acpica/psargs.c | 7 +++---- drivers/acpi/acpica/psloop.c | 15 ++++----------- 3 files changed, 8 insertions(+), 16 deletions(-) commit 83482f758b0d2d6a20a10be88399da44aa186aed Author: Lv Zheng Date: Thu Jul 23 12:52:11 2015 +0800 ACPICA: Parser: Cleanup aml_offset in struct acpi_walk_state ACPICA commit d254405814495058276c0c2f9d96794d15a6c91c This patch converts aml_offset in struct acpi_walk_state to AML address. AML offset is actually only used by the debugger, using AML address is more direct and efficient during the parsing stage so that we don't need to calculate it during the parsing stage. On the other hand, we can see several issues in the current parser logic around the aml_offset: 1. union acpi_operand_object.Common.aml_offset is redundantly assigned in acpi_ps_parse_loop(). 2. aml_offset is not an indication of the offset from the table header but the offset from the entry of a list of objects. Sometimes, it indicates an entry for a Method/Package/Buffer, which makes it difficult to be reversely calculated to a table header offset. 3. When being used with method tracers (for example, Linux function trace), it's better to have AML address logged instead of the AML offset because the address is the only attribute that can uniquely identify the opcode. This patch is required to solve the above issues. Lv Zheng. Link: https://github.com/acpica/acpica/commit/d2544058 Signed-off-by: Lv Zheng Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/acstruct.h | 2 +- drivers/acpi/acpica/dsmethod.c | 9 +++++++-- drivers/acpi/acpica/psloop.c | 15 +++++++++------ drivers/acpi/acpica/psobject.c | 15 +++++++++------ 4 files changed, 26 insertions(+), 15 deletions(-) commit eb87a05223293a915dc97e6966cbbb1baa43cd5f Author: Lv Zheng Date: Thu Jul 23 12:52:05 2015 +0800 ACPICA: Parser: Reduce parser/namespace divergences for tracer support This patch reduces divergences in parser/namespace components so that the follow-up linuxized ACPICA upstream commits can be directly merged. Including the fix to an indent issue reported and fixed by Zhouyi Zhou. Signed-off-by: Lv Zheng Signed-off-by: Zhouyi Zhou Signed-off-by: Rafael J. Wysocki drivers/acpi/acpica/nsnames.c | 2 +- drivers/acpi/acpica/nsparse.c | 6 +++--- drivers/acpi/acpica/psloop.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) commit 13517157d16f98564b91658940ccd720724da62f Author: Romain Perier Date: Thu Jul 23 18:50:49 2015 +0200 ARM: dts: rockchip: Add veyron-speedy board Which is formally known as the Asus C201 chromebook Signed-off-by: Romain Perier Reviewed-by: Doug Anderson Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 8 ++ arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/rk3288-veyron-speedy.dts | 155 +++++++++++++++++++++ 3 files changed, 165 insertions(+), 1 deletion(-) commit 7868dfd216074fc5f902e7befacda2a0ec76e403 Author: Joo Aun Saw Date: Thu Jul 23 12:53:47 2015 +1000 tools: iio: make scale and offset files optional Make scale and offset optional by adding -ENOENT check as not all drivers implement them. Signed-off-by: Joo Aun Saw Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1e9676a8474b657b6a793f0abff2205783a1ce6f Author: Giuseppe Barba Date: Tue Jul 21 10:35:45 2015 +0200 iio: st-magn: add support for lsm303agr magnetometer This adds support for the lsm303agr magnetometer. Signed-off-by: Giuseppe Barba Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/st-sensors.txt | 1 + drivers/iio/magnetometer/st_magn.h | 1 + drivers/iio/magnetometer/st_magn_core.c | 82 ++++++++++++++++++++++ drivers/iio/magnetometer/st_magn_i2c.c | 5 ++ drivers/iio/magnetometer/st_magn_spi.c | 1 + 5 files changed, 90 insertions(+) commit ddc05fa286068a2d0cf87a47739b155806d46670 Author: Giuseppe Barba Date: Tue Jul 21 10:35:44 2015 +0200 iio: st-accel: add support for lsm303agr accelerometer This adds support for the lsm303agr accelerometer. Signed-off-by: Giuseppe Barba Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron Documentation/devicetree/bindings/iio/st-sensors.txt | 1 + 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 + 5 files changed, 9 insertions(+) commit 74f5683f35fe6feae33b96815c1d40f13468d614 Author: Giuseppe Barba Date: Tue Jul 21 10:35:43 2015 +0200 iio: st_magn: Add irq trigger handling Add irq trigger handling for magnetometer also Signed-off-by: Giuseppe Barba Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/st_magn.h | 2 ++ drivers/iio/magnetometer/st_magn_buffer.c | 7 +++++++ drivers/iio/magnetometer/st_magn_core.c | 13 ++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) commit bb602f8c61e289389e7c2af1b577303a841f6d34 Author: Giuseppe Barba Date: Tue Jul 21 10:35:42 2015 +0200 iio: st-sensors: add support for single full scale device Some sensors could have only one full scale value. This means that the sensor hasn't a full scale register. This commit add a check on the configured full scale address to support such kind of sensors. Signed-off-by: Giuseppe Barba Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron drivers/iio/common/st_sensors/st_sensors_core.c | 3 +++ 1 file changed, 3 insertions(+) commit bc27381edbeb654d819b7e1464091c456a0d3e64 Author: Giuseppe Barba Date: Tue Jul 21 10:35:41 2015 +0200 iio: st-sensors: add configuration for WhoAmI address This patch permits to configure the WhoAmI register address because some device could have not a standard address for this register. Signed-off-by: Giuseppe Barba Reviewed-by: Denis Ciocca Acked-by: Denis Ciocca Signed-off-by: Jonathan Cameron drivers/iio/accel/st_accel_core.c | 5 +++ drivers/iio/common/st_sensors/st_sensors_core.c | 49 ++++++++++++------------- drivers/iio/gyro/st_gyro_core.c | 3 ++ drivers/iio/magnetometer/st_magn_core.c | 3 ++ drivers/iio/pressure/st_pressure_core.c | 3 ++ include/linux/iio/common/st_sensors.h | 2 + 6 files changed, 39 insertions(+), 26 deletions(-) commit c176becd81843426eb8ab3b03aeeb19e387345fe Author: Octavian Purdila Date: Fri Jun 5 16:59:42 2015 +0300 iio: fix drivers that consider 0 as a valid IRQ in client->irq Since patch "i2c / ACPI: Use 0 to indicate that device does not have interrupt assigned" [1], 0 is not a valid i2c client irq anymore, so change all driver's checks accordingly. The same issue occurs when the device is instantiated via device tree with no IRQ, or from the i2c sysfs interface, even before the patch above. [1] http://lkml.kernel.org/g/<1430908148-201129-3-git-send-email-mika.westerberg@linux.intel.com> Signed-off-by: Octavian Purdila Reviewed-by: Mika Westerberg Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 2 +- drivers/iio/accel/kxcjk-1013.c | 2 +- drivers/iio/accel/mma9553.c | 2 +- drivers/iio/imu/kmx61.c | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) commit debeb29792f9bbb6b72ea2fc82088dc0fd9ec224 Author: Valentin Rothberg Date: Thu Jul 23 13:18:06 2015 +0200 mm/Kconfig: NEED_BOUNCE_POOL: clean-up condition commit 106542e7987c ("fs: Remove ext3 filesystem driver") removed ext3 and JBD, hence remove the superfluous condition. Signed-off-by: Valentin Rothberg Signed-off-by: Jan Kara mm/Kconfig | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit c8962f4be4b47c2ff3b052c76007c6bbcb999c53 Author: Jan Kara Date: Thu Jul 16 11:20:02 2015 +0200 ext4: Improve ext4 Kconfig test Now that ext4 driver must be used to access ext3 filesystems, improve the Kconfig help text to better explain that using ext4 driver to access the filesystem is fully compatible with the old ext3 driver. Acked-by: Theodore Ts'o Signed-off-by: Jan Kara fs/ext4/Kconfig | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit a3ad0a9da863fa554fc17fa8345a07adcdd27d3c Author: Jan Kara Date: Thu Jun 18 17:19:14 2015 +0200 block: Remove forced page bouncing under IO JBD layer wrote back data buffers without setting PageWriteback bit. Thus standard mechanism for guaranteeing stable pages under IO did not work. Since JBD is gone now and there is no other user of the functionality, just remove it. Acked-by: Jens Axboe Signed-off-by: Jan Kara block/bounce.c | 31 ++++--------------------------- include/linux/blk_types.h | 5 ++--- 2 files changed, 6 insertions(+), 30 deletions(-) commit c290ea01abb7907fde602f3ba55905ef10a37477 Author: Jan Kara Date: Thu Jun 18 16:52:29 2015 +0200 fs: Remove ext3 filesystem driver The functionality of ext3 is fully supported by ext4 driver. Major distributions (SUSE, RedHat) already use ext4 driver to handle ext3 filesystems for quite some time. There is some ugliness in mm resulting from jbd cleaning buffers in a dirty page without cleaning page dirty bit and also support for buffer bouncing in the block layer when stable pages are required is there only because of jbd. So let's remove the ext3 driver. This saves us some 28k lines of duplicated code. Acked-by: Theodore Ts'o Signed-off-by: Jan Kara Documentation/filesystems/ext2.txt | 4 +- Documentation/filesystems/ext3.txt | 209 +-- Documentation/filesystems/vfs.txt | 2 +- MAINTAINERS | 18 +- fs/Kconfig | 5 +- fs/Makefile | 2 - fs/ext3/Kconfig | 89 - fs/ext3/Makefile | 12 - fs/ext3/acl.c | 281 --- fs/ext3/acl.h | 72 - fs/ext3/balloc.c | 2158 ---------------------- fs/ext3/bitmap.c | 20 - fs/ext3/dir.c | 537 ------ fs/ext3/ext3.h | 1332 -------------- fs/ext3/ext3_jbd.c | 59 - fs/ext3/file.c | 79 - fs/ext3/fsync.c | 109 -- fs/ext3/hash.c | 206 --- fs/ext3/ialloc.c | 706 ------- fs/ext3/inode.c | 3574 ------------------------------------ fs/ext3/ioctl.c | 327 ---- fs/ext3/namei.c | 2586 -------------------------- fs/ext3/namei.h | 27 - fs/ext3/resize.c | 1117 ----------- fs/ext3/super.c | 3165 ------------------------------- fs/ext3/symlink.c | 46 - fs/ext3/xattr.c | 1330 -------------- fs/ext3/xattr.h | 136 -- fs/ext3/xattr_security.c | 78 - fs/ext3/xattr_trusted.c | 54 - fs/ext3/xattr_user.c | 58 - fs/ext4/Kconfig | 41 +- fs/ext4/super.c | 14 +- fs/jbd/Kconfig | 30 - fs/jbd/Makefile | 7 - fs/jbd/checkpoint.c | 782 -------- fs/jbd/commit.c | 1021 ---------- fs/jbd/journal.c | 2145 ---------------------- fs/jbd/recovery.c | 594 ------ fs/jbd/revoke.c | 733 -------- fs/jbd/transaction.c | 2237 ---------------------- include/linux/jbd.h | 1047 ----------- include/linux/jbd2.h | 41 +- include/linux/jbd_common.h | 46 - include/trace/events/ext3.h | 866 --------- include/trace/events/jbd.h | 194 -- 46 files changed, 87 insertions(+), 28109 deletions(-) commit 82ff50b222d8ac645cdeba974c612c9eef01c3dd Author: Jan Kara Date: Tue Jul 14 14:55:05 2015 +0200 doc: Update doc about journalling layer Documentation of journalling layer in Documentation/DocBook/filesystems.tmpl speaks about JBD layer. Since that is going away, update the documentation to speak about JBD2. Also update the parts that have changed since someone last touched the document and remove some parts which are just misleading and outdated. Signed-off-by: Jan Kara Documentation/DocBook/filesystems.tmpl | 178 +++++++++++++-------------------- 1 file changed, 67 insertions(+), 111 deletions(-) commit acc84b05b1f463952a638689335ca47e70d5ea30 Author: Dave Kleikamp Date: Wed Jul 15 13:53:19 2015 -0500 jfs: Handle error from dquot_initialize() dquot_initialize() can now return error. Handle it where possible Slightly modified by Dave Kleikamp due to needed jfs_rename() error path fix. Signed-off-by: Jan Kara Reviewed-by: Dave Kleikamp fs/jfs/file.c | 7 +++++-- fs/jfs/jfs_inode.c | 4 +++- fs/jfs/namei.c | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 48 insertions(+), 17 deletions(-) commit 2e6c97ea4ce6a29941da46d03183c2c0e330fb2f Author: Jan Kara Date: Tue Jul 14 13:51:55 2015 +0200 reiserfs: Handle error from dquot_initialize() dquot_initialize() can now return error. Handle it where possible. Signed-off-by: Jan Kara fs/reiserfs/inode.c | 7 ++++-- fs/reiserfs/namei.c | 63 ++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 53 insertions(+), 17 deletions(-) commit 9c89fe0af826bfff36d8019ea6fd78db09b3c478 Author: Jan Kara Date: Tue Jul 14 13:36:02 2015 +0200 ocfs2: Handle error from dquot_initialize() dquot_initialize() can now return error. Handle it where possible. Reviewed-by: Junxiao Bi Signed-off-by: Jan Kara fs/ocfs2/file.c | 14 ++++++++---- fs/ocfs2/namei.c | 59 +++++++++++++++++++++++++++++++++++++------------ fs/ocfs2/refcounttree.c | 5 +++-- 3 files changed, 58 insertions(+), 20 deletions(-) commit a7cdadee0e89486ad072be7b91e477105784e0bb Author: Jan Kara Date: Mon Jun 29 16:22:54 2015 +0200 ext4: Handle error from dquot_initialize() dquot_initialize() can now return error. Handle it where possible. Acked-by: Theodore Ts'o Signed-off-by: Jan Kara fs/ext4/ialloc.c | 6 ++++-- fs/ext4/inode.c | 7 +++++-- fs/ext4/namei.c | 63 ++++++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 56 insertions(+), 20 deletions(-) commit c2edb305d6846ee8af7b5133845e23943d128e4c Author: Jan Kara Date: Mon Jun 29 16:08:45 2015 +0200 ext2: Handle error from dquot_initalize() dquot_initialize() can now return error. Handle it where possible. Signed-off-by: Jan Kara fs/ext2/ialloc.c | 5 ++++- fs/ext2/inode.c | 7 +++++-- fs/ext2/namei.c | 46 ++++++++++++++++++++++++++++++++++------------ 3 files changed, 43 insertions(+), 15 deletions(-) commit 6184fc0b8dd76c6aedc7a26e93254993e14e52de Author: Jan Kara Date: Wed Jun 24 18:07:02 2015 +0200 quota: Propagate error from ->acquire_dquot() Currently when some error happened in ->acquire_dquot(), dqget() just returned NULL. That was indistinguishable from a case when e.g. someone run quotaoff and so was generally silently ignored. However ->acquire_dquot() can fail because of ENOSPC or EIO in which case user should better know. So propagate error up from ->acquire_dquot properly. Signed-off-by: Jan Kara fs/ocfs2/file.c | 8 ++--- fs/ocfs2/quota_local.c | 4 +-- fs/quota/dquot.c | 88 ++++++++++++++++++++++++++++++++++-------------- include/linux/quotaops.h | 5 +-- 4 files changed, 72 insertions(+), 33 deletions(-) commit 2e5e8fd1ff9d802ab74df1ceaa5243da30491a45 Author: Shilpasri G Bhat Date: Thu Jul 23 12:20:27 2015 +0530 cpupower: Do not change the frequency of offline cpu Check if the cpu is online before changing the frequency/governor of the cpu. Reported-by: Pavaman Subramaniyam Signed-off-by: Shilpasri G Bhat Reviewed-by: Gautham R. Shenoy Acked-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki tools/power/cpupower/utils/cpufreq-set.c | 4 ++++ 1 file changed, 4 insertions(+) commit 3e0452d27a784d50f09bec9de8ac673849b9e303 Author: Matthias Brugger Date: Fri Jul 17 22:53:26 2015 +0200 ARM: mediatek: Add regmap to mediatek Kconfig Mediatek SoC needs the regmap/syscon infrastructure. The infrastructure is used by the clock and pinctrl driver. This patch adds MD_SYSCON to Kconfig for all Mediatek devices. Signed-off-by: Matthias Brugger arch/arm/mach-mediatek/Kconfig | 1 + 1 file changed, 1 insertion(+) commit e26945245e414eff42ee1ffeaedf198911bf1d77 Author: Mars Cheng Date: Tue Jul 14 14:58:13 2015 +0800 arm64: dts: mediatek: add mt6795 support This adds basic chip support for MT6795 SoC Signed-off-by: Mars Cheng Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/Makefile | 1 + arch/arm64/boot/dts/mediatek/mt6795-evb.dts | 41 +++++++ arch/arm64/boot/dts/mediatek/mt6795.dtsi | 162 ++++++++++++++++++++++++++++ 3 files changed, 204 insertions(+) commit afc257bc9ac9c2f9055c9f9829322b3ff7574165 Author: Mars Cheng Date: Tue Jul 14 14:58:12 2015 +0800 Document: DT: Add bindings for mediatek MT6795 SoC Platform This adds DT binding documentation for Mediatek MT6795. Signed-off-by: Mars Cheng Signed-off-by: Matthias Brugger Documentation/devicetree/bindings/arm/mediatek.txt | 9 +++++++-- .../devicetree/bindings/arm/mediatek/mediatek,sysirq.txt | 3 ++- Documentation/devicetree/bindings/serial/mtk-uart.txt | 5 +++-- 3 files changed, 12 insertions(+), 5 deletions(-) commit 36e914cc4bb5d1842e7c8a2e2b9b4f2935771c14 Author: Vaishali Thakkar Date: Thu Jul 23 22:09:15 2015 +0530 ASoC: xtensa: Remove unnecessary snd_pcm_lib_preallocate_free_for_all() The ALSA core takes care that all preallocated memory is freed when the PCM itself is freed. There is no need to do this manually in the driver. Signed-off-by: Vaishali Thakkar Signed-off-by: Mark Brown sound/soc/xtensa/xtfpga-i2s.c | 6 ------ 1 file changed, 6 deletions(-) commit 213213d9d68e5fcb81a513a7d07ed6ee01294dea Author: Bard Liao Date: Wed Jul 22 13:09:15 2015 +0800 ASoC: rl6231: add pll preset table Currently, rl6231_pll_calc provide a working PLL parameters for given freq_in and freq_out. However, in some cases it is not the perfect parameter. For example if freq_in = 19200000 and freq_out = 24576000, the calculated parameter will gengrate 24.5647 MHz which is not exactly the same as what we need. But the PLL can output 24.576 MHz as exactly what we expect if we set the best PLL parameter. To improve it, we put the best match parameters in a preset table. We can search the preset table first, if there is no preset parameter for the given freq_in and freq_out, we can still calculate a working PLL parameter. Signed-off-by: Bard Liao Signed-off-by: Mark Brown sound/soc/codecs/rl6231.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit d255b09555e8ea0e517a4d3368ec60097ac9cf96 Author: Jeeja KP Date: Tue Jul 21 23:53:56 2015 +0530 ASoC: Intel: Skylake: Add dsp and ipc init helpers This helper function will be used by the Skylake driver for dsp and ipc initialization if processing pipe capability is supported. Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/Makefile | 2 +- sound/soc/intel/skylake/skl-messages.c | 133 +++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl.h | 6 ++ 3 files changed, 140 insertions(+), 1 deletion(-) commit 473eb87adcf69204cd7e8fb5b0e4956edd6feae3 Author: Jeeja KP Date: Tue Jul 21 23:53:55 2015 +0530 ASoC: Intel: Skylake: Add NHLT support to get BE config The Non-HD Audio Endpoint Description table contains the link configuration information for the DSP. This is specific to Non HDA links only, like I2s and PDM Skylake driver will use NHLT table to retrieve the configuration based on the link type, format, channel and rate. This configuration is passed to DSP FW Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/Makefile | 2 +- sound/soc/intel/skylake/skl-nhlt.c | 141 +++++++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-nhlt.h | 116 ++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl.h | 7 ++ 4 files changed, 265 insertions(+), 1 deletion(-) commit 310398f5e4618e9a0f6fd0c4b152401daf06c215 Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:06 2015 +0200 ASoC: wm9713: Use core AC'97 reset helper Use the new snd_ac97_reset() helper and the reset functionality provided by snd_soc_new_ac97_codec() to perform the device reset rather than open-coding it. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm9713.c | 48 ++++++++--------------------------------------- sound/soc/codecs/wm9713.h | 2 -- 2 files changed, 8 insertions(+), 42 deletions(-) commit a575be4cbb951244f93342487c2537f729f2239d Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:05 2015 +0200 ASoC: wm9712: Use core AC'97 reset helper Use the new snd_ac97_reset() helper and the reset functionality provided by snd_soc_new_ac97_codec() to perform the device reset rather than open-coding it. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm9712.c | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) commit 6e0b73a0a172f4d881092e388b3a3ad57ca80107 Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:04 2015 +0200 ASoC: wm9705: Use core AC'97 reset helper Use the new snd_ac97_reset() helper and the reset functionality provided by snd_soc_new_ac97_codec() to perform the device reset rather than open-coding it. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/wm9705.c | 40 ++++++++-------------------------------- 1 file changed, 8 insertions(+), 32 deletions(-) commit 017e800af9f91861dcd6e4fd8a29418de86fd884 Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:03 2015 +0200 ASoC: stac9766: Use core reset helper Use the new snd_ac97_reset() helper and the reset functionality provided by snd_soc_new_ac97_codec() to perform the device reset rather than open-coding it. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/stac9766.c | 57 ++++++--------------------------------------- 1 file changed, 7 insertions(+), 50 deletions(-) commit 3ab3dbdfb91b70ef6bf4eb9b544bf54ff1dff51a Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:02 2015 +0200 ASoC: ad1980: Use core AC'97 reset helper Use the new snd_ac97_reset() helper function to perform the reset and verify the device ID. Unfortunately the reset can't be done in snd_soc_new_ac97_codec() due to the special requirements in order to support the non-standard 16-bit slot mode of the ad1980. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown sound/soc/codecs/ad1980.c | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) commit 7361fbeaeaab5282bbfc88f1f6fe4cf034f7623c Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:01 2015 +0200 ASoC: ac97: Add support for resetting device before registration AC97 devices need to be initially reset before they can be used. Currently each driver does this on its own. Add support for resetting the device to core in snd_soc_new_ac97_codec(). If the caller supplies a device ID and device ID mask the function will reset the device and verify that it has the correct ID, if it does not a error is returned. This will allow to remove custom code with similar functionality from individual drivers. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/soc.h | 3 ++- sound/soc/codecs/ad1980.c | 2 +- sound/soc/codecs/stac9766.c | 2 +- sound/soc/soc-ac97.c | 30 +++++++++++++++++++++++++----- 4 files changed, 29 insertions(+), 8 deletions(-) commit 5f1d980ee9b6353f18765bfa6774a5a08d6cb944 Author: Lars-Peter Clausen Date: Tue Jul 21 21:53:00 2015 +0200 ALSA: ac97: Add helper function to reset the AC97 device There is currently a lot of code duplication in ASoC drivers regarding the reset handling of devices. This patch introduces a new generic reset function in the generic AC'97 framework that can be used to replace most the custom reset functions. Signed-off-by: Lars-Peter Clausen Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown include/sound/ac97_codec.h | 2 ++ sound/ac97_bus.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) commit 82805d1b3ee0d93d08fe8957f253642a6f778f9a Author: Lee Jones Date: Tue May 12 13:58:17 2015 +0100 MAINTAINERS: Add the LPC Clocksource to STi maintained driver list Signed-off-by: Lee Jones MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit c74a06dce5f82ea4e94a552d486293667c905267 Author: Lee Jones Date: Tue May 12 13:58:16 2015 +0100 rtc: bindings: Supply knowledge of a third supported device - clocksource Signed-off-by: Lee Jones Documentation/devicetree/bindings/rtc/rtc-st-lpc.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 742e40978ff79cc92ba982a27a55b957226f9dbe Author: Lee Jones Date: Tue May 12 13:58:15 2015 +0100 rtc: st: Update IP layout information to include Clocksource Initial submission adding support for this IP only included Watchdog and the Real-Time Clock. Now the third (and final) device is enabled this trivial patch is required to update the comment in the RTC driver to encompass Clocksource. Acked-by: Alexandre Belloni Signed-off-by: Lee Jones drivers/rtc/rtc-st-lpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 82c32c0326dc758bdf202c82cb05594ba0dd0d2e Author: Lee Jones Date: Tue May 12 13:58:14 2015 +0100 watchdog: bindings: Supply knowledge of a third supported device - clocksource Signed-off-by: Lee Jones Documentation/devicetree/bindings/watchdog/st_lpc_wdt.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit bea6356c12600b683de55a70e6a4c6cc36fa640f Author: Lee Jones Date: Tue May 12 13:58:12 2015 +0100 clocksource: bindings: Provide bindings for ST's LPC Clocksource device On current ST platforms the LPC controls a number of functions including Watchdog and Real Time Clock. This patch provides the bindings used to configure LPC in Clocksource mode. Signed-off-by: Lee Jones .../devicetree/bindings/timer/st,stih407-lpc | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit ff45d8dd84dbb6e674e3757a07ef9471568c2e94 Author: Lee Jones Date: Tue May 12 13:58:11 2015 +0100 clocksource: sti: Provide 'use timer as sched clock' capability Acked-by: Daniel Lezcano Signed-off-by: Lee Jones drivers/clocksource/clksrc_st_lpc.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 70bef01c0f1c9a55b54b625be3f82ff7ee1e8c05 Author: Lee Jones Date: Tue May 26 13:39:43 2015 +0100 clocksource: sti: Provide support for the ST LPC Clocksource IP This IP is shared with Watchdog and RTC functionality. All 3 of these devices are mutually exclusive from one another i.e. Only 1 IP can be used at any given time. We use the device-driver model combined with a DT 'mode' property to enforce this. The ST LPC Clocksource IP can be used as the system (tick) timer. Acked-by: Daniel Lezcano Signed-off-by: Lee Jones drivers/clocksource/Kconfig | 8 +++ drivers/clocksource/Makefile | 1 + drivers/clocksource/clksrc_st_lpc.c | 123 ++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+) commit 9425e9d8c77dd9f40c5f199127a63be2e2b7c1f4 Author: Axel Lin Date: Thu Jul 23 23:13:36 2015 +0800 ASoC: tas5086: Improve the logic for de-emphasis sampling rate selection Slightly improve the logic for de-emphasis sampling rate selection by break out the loop if the rate is matched. Signed-off-by: Axel Lin Acked-by: Daniel Mack Signed-off-by: Mark Brown sound/soc/codecs/tas5086.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 95f1044f5674b53f67e0933abff228c594792f4c Author: Axel Lin Date: Thu Jul 23 22:56:04 2015 +0800 ASoC: tas2552: Fix off-by-one for max_register setting The latest valid register is TAS2552_VBAT_DATA. Signed-off-by: Axel Lin Acked-by: Dan Murphy Signed-off-by: Mark Brown sound/soc/codecs/tas2552.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f285f1610341af4181791938777e0affb5531278 Author: Axel Lin Date: Thu Jul 23 23:32:04 2015 +0800 ASoC: rt5677: Remove NULL test for desc before gpiod_set_value_cansleep call It's safe to call gpiod_set_value_cansleep() with NULL desc. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit dff22d2054b5dbb1889f20c03959dd0c494fab8c Author: Lorenzo Pieralisi Date: Thu Jul 9 11:59:16 2015 +0100 PCI: Call pci_read_bridge_bases() from core instead of arch code When we scan a PCI bus, we read PCI-PCI bridge window registers with pci_read_bridge_bases() so we can validate the resource hierarchy. Most architectures call pci_read_bridge_bases() from pcibios_fixup_bus(), but PCI-PCI bridges are not arch-specific, so this doesn't need to be in arch-specific code. Call pci_read_bridge_bases() directly from the PCI core instead of from arch code. For alpha and mips, we now call pci_read_bridge_bases() always; previously we only called it if PCI_PROBE_ONLY was set. [bhelgaas: changelog] Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas CC: Ralf Baechle CC: James E.J. Bottomley CC: Michael Ellerman CC: Bjorn Helgaas CC: Richard Henderson CC: Benjamin Herrenschmidt CC: David Howells CC: Russell King CC: Tony Luck CC: David S. Miller CC: Ingo Molnar CC: Guenter Roeck CC: Michal Simek CC: Chris Zankel arch/alpha/kernel/pci.c | 7 +------ arch/frv/mb93090-mb00/pci-vdk.c | 2 -- arch/ia64/pci/pci.c | 5 ++--- arch/microblaze/pci/pci-common.c | 9 +-------- arch/mips/pci/pci.c | 6 ------ arch/mn10300/unit-asb2305/pci.c | 1 - arch/powerpc/kernel/pci-common.c | 8 +------- arch/x86/pci/common.c | 1 - arch/xtensa/kernel/pci.c | 4 ---- drivers/parisc/dino.c | 3 --- drivers/parisc/lba_pci.c | 1 - drivers/pci/probe.c | 6 ++++++ 12 files changed, 11 insertions(+), 42 deletions(-) commit 9a0a8a8e852dabeda848baafac19627cb469d5e9 Author: Jakub Pawlowski Date: Mon Jul 20 13:12:49 2015 +0200 Bluetooth: Move IRK checking logic in preparation to new connect method Move IRK checking logic in preparation to new connect method. Also make sure that MGMT_STATUS_INVALID_PARAMS is returned when non identity address is passed to ADD_DEVICE. Right now MGMT_STATUS_FAILED is returned, which might be misleading. Signed-off-by: Jakub Pawlowski Signed-off-by: Johan Hedberg net/bluetooth/hci_core.c | 11 ----------- net/bluetooth/mgmt.c | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 11 deletions(-) commit 8757825b128e71319150219b0745d3ecb87f34aa Author: Seungyoun Ju Date: Mon Jul 13 17:28:13 2015 +0900 Bluetooth: hci_check_conn_params() check proper range Slave latency range has been changed in Core Spec. 4.2 by Erratum 5419 of ESR08_V1.0.0. And it should be applied to Core Spec. 4.0 and 4.1. Before: connSlaveLatency <= ((connSupervisionTimeout / connIntervalMax) - 1) After: connSlaveLatency <= ((connSupervisionTimeout / (connIntervalMax*2)) - 1) This patch makes hci_check_conn_params() check the allowable slave latency range using the changed way. Signed-off-by: Seungyoun Ju Signed-off-by: Johan Hedberg include/net/bluetooth/hci_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc586c41117117baf22d1088dad3a771e51e35f7 Author: Antonio Borneo Date: Tue Jun 23 22:52:52 2015 +0800 net: ieee802154: Remove redundant spi driver bus initialization In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_register_driver(), so we can drop the manual assignment. Signed-off-by: Antonio Borneo Acked-by: Varka Bhadram Acked-by: Alan Ott Signed-off-by: Marcel Holtmann drivers/net/ieee802154/cc2520.c | 1 - drivers/net/ieee802154/mrf24j40.c | 1 - 2 files changed, 2 deletions(-) commit e432c72c464d2deb6c66d1e2a5f548dc1f0ef4dc Author: Dean Jenkins Date: Tue Jun 23 17:59:39 2015 +0100 Bluetooth: __l2cap_wait_ack() add defensive timeout Add a timeout to prevent the do while loop running in an infinite loop. This ensures that the channel will be instructed to close within 10 seconds so prevents l2cap_sock_shutdown() getting stuck forever. Returns -ENOLINK when the timeout is reached. The channel will be subequently closed and not all data will be ACK'ed. Signed-off-by: Dean Jenkins Signed-off-by: Marcel Holtmann include/net/bluetooth/l2cap.h | 1 + net/bluetooth/l2cap_sock.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) commit cb02a25583b59ce48267472cd092485d754964f9 Author: Dean Jenkins Date: Tue Jun 23 17:59:38 2015 +0100 Bluetooth: __l2cap_wait_ack() use msecs_to_jiffies() Use msecs_to_jiffies() instead of using HZ so that it is easier to specify the time in milliseconds. Also add a #define L2CAP_WAIT_ACK_POLL_PERIOD to specify the 200ms polling period so that it is defined in a single place. Signed-off-by: Dean Jenkins Signed-off-by: Marcel Holtmann include/net/bluetooth/l2cap.h | 1 + net/bluetooth/l2cap_sock.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) commit 451e4c6c6b3fd1a9f446a10eb9f6d4c2c476043c Author: Dean Jenkins Date: Tue Jun 23 17:59:37 2015 +0100 Bluetooth: Add BT_DBG to l2cap_sock_shutdown() Add helpful BT_DBG debug to l2cap_sock_shutdown() and __l2cap_wait_ack() so that the code flow can be analysed. Signed-off-by: Dean Jenkins Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_sock.c | 4 ++++ 1 file changed, 4 insertions(+) commit f65468f6e26c3bd05e642e10e80a485b99b7de05 Author: Dean Jenkins Date: Tue Jun 23 17:59:33 2015 +0100 Bluetooth: Make __l2cap_wait_ack more efficient Use chan->state instead of chan->conn because waiting for ACK's is only possible in the BT_CONNECTED state. Also avoids reference to the conn structure so makes locking easier. Only call __l2cap_wait_ack() when the needed condition of chan->unacked_frames > 0 && chan->state == BT_CONNECTED is true and convert the while loop to a do while loop. __l2cap_wait_ack() change the function prototype to pass in the chan variable as chan is already available in the calling function l2cap_sock_shutdown(). Avoids locking issues. Signed-off-by: Dean Jenkins Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_sock.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 2baea85dec1aebe0b100d4836dee8bcf29a51e94 Author: Dean Jenkins Date: Tue Jun 23 17:59:32 2015 +0100 Bluetooth: L2CAP ERTM shutdown protect sk and chan During execution of l2cap_sock_shutdown() which might sleep, the sk and chan structures can be in an unlocked condition which potentially allows the structures to be freed by other running threads. Therefore, there is a possibility of a malfunction or memory reuse after being freed. Keep the sk and chan structures alive during the execution of l2cap_sock_shutdown() by using their respective hold and put functions. This allows the structures to be freeable at the end of l2cap_sock_shutdown(). Signed-off-by: Kautuk Consul Signed-off-by: Dean Jenkins Signed-off-by: Marcel Holtmann net/bluetooth/l2cap_sock.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit d10270ce941ee89afd74076ea3ed8dbef8a0ff25 Author: Varka Bhadram Date: Tue Jul 7 10:50:43 2015 +0530 mac802154: fix ieee802154_rx handling Instead of passing ieee802154_hw pointer to ieee802154_rx, we can directly pass the ieee802154_local pointer. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/ieee802154_i.h | 2 +- net/mac802154/main.c | 2 +- net/mac802154/rx.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) commit 729a8989b3fa8ae7965c537dfccbd08512e84d3c Author: Varka Bhadram Date: Tue Jul 7 10:50:42 2015 +0530 mac802154: do not export ieee802154_rx() Right now there are no other users for ieee802154_rx() in kernel. So lets remove EXPORT_SYMBOL() for this. Also it moves the function prototype from global header file to local header file. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/mac802154.h | 17 ----------------- net/mac802154/ieee802154_i.h | 1 + net/mac802154/rx.c | 1 - 3 files changed, 1 insertion(+), 18 deletions(-) commit f104f06c1b0c93a7c087609e6ab0005e359afab9 Author: Prasanna Karthik Date: Mon Jul 6 05:40:16 2015 +0000 Bluetooth: bt3c_cs: Fix coding style Remove semicolon in switch statement, reported by coccinelle Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann drivers/bluetooth/bt3c_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7feb99e1308204e4d849dada3443bc410ce5026b Author: Marcel Holtmann Date: Sun Jul 5 15:02:07 2015 +0200 Bluetooth: btintel: Create common function for Intel version info The Intel version information is shared between USB and UART drivers and with that move it into a generic function of the Intel module. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btintel.c | 21 +++++++++++++++++++++ drivers/bluetooth/btintel.h | 5 +++++ drivers/bluetooth/btusb.c | 23 +---------------------- drivers/bluetooth/hci_intel.c | 23 +---------------------- 4 files changed, 28 insertions(+), 44 deletions(-) commit 09df123d2d128c52987f11c85397cdbc9ffc89c6 Author: Marcel Holtmann Date: Sun Jul 5 14:55:36 2015 +0200 Bluetooth: btintel: Create common Intel Secure Send function The Intel Secure Send command is used the same in USB and UART drivers and with that move a generic version into the Intel module. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btintel.c | 25 +++++++++++++++++++++++++ drivers/bluetooth/btintel.h | 9 +++++++++ drivers/bluetooth/btusb.c | 33 ++++----------------------------- drivers/bluetooth/hci_intel.c | 32 ++++---------------------------- 4 files changed, 42 insertions(+), 57 deletions(-) commit 35ab8150ee9df8c8a47a57617d7ccbd74cb45bcf Author: Marcel Holtmann Date: Sun Jul 5 14:37:40 2015 +0200 Bluetooth: hci_uart: Add Intel address configuration support The Intel specific Bluetooth module provides support for pubic address configuration. So make sure that it is enabled for Intel UART devices. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/hci_intel.c | 2 ++ 1 file changed, 2 insertions(+) commit eeb6abe97390c579d9ed9da27bd98fbf07c641ed Author: Marcel Holtmann Date: Sun Jul 5 14:37:39 2015 +0200 Bluetooth: btusb: Use hardware error handler from Intel module The Intel specific Bluetooth module provides now an exported function for the hardware error. Use that instead of duplicating it inside the driver. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btusb.c | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) commit 973bb97e5aee56edddaae3d5c96877101ad509c0 Author: Marcel Holtmann Date: Sun Jul 5 14:37:38 2015 +0200 Bluetooth: btintel: Add generic function for handling hardware errors The handling of hardware error has support for providing a vendor specific callback to deal with the error. Move the Intel specific function out of the USB driver into the generic module so that it can also be utilized by the UART driver. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg drivers/bluetooth/btintel.c | 34 ++++++++++++++++++++++++++++++++++ drivers/bluetooth/btintel.h | 5 +++++ 2 files changed, 39 insertions(+) commit 20a7e25f4ee173785fded331d2af4b68b1ef5921 Author: Prasanna Karthik Date: Sun Jul 5 09:56:36 2015 +0000 Bluetooth: dtl1_cs: Fixed coding style Removed semicolon at end of switch statement,error reported by Coccinelle Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann drivers/bluetooth/dtl1_cs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a03e33da5f1f10cc93bd5de140a131dac1db97f0 Author: Prasanna Karthik Date: Sun Jul 5 09:49:27 2015 +0000 Bluetooth: bfusb: Coding style fix reported by coccinelle Removed semicolon at the end of switch case statement Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann drivers/bluetooth/bfusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca93cee5a56e5199622bea8bff24c0a96e70c8f1 Author: Loic Poulain Date: Wed Jul 1 12:20:26 2015 +0200 Bluetooth: hci_uart: Add basic support for Intel Lightning Peak devices The Intel Lightning Peak devices do not come with Bluetooth firmware loaded and thus require a full download of the operational Bluetooth firmware when the device is attached via the Bluetooth line discipline. Lightning Peak devices start with a bootloader mode that only accepts a very limited set of HCI commands. The supported commands are enough to identify the hardware and select the right firmware to load. Signed-off-by: Loic Poulain Signed-off-by: Marcel Holtmann drivers/bluetooth/Kconfig | 1 + drivers/bluetooth/hci_intel.c | 604 ++++++++++++++++++++++++++++++++++++++++++ drivers/bluetooth/hci_ldisc.c | 6 + drivers/bluetooth/hci_uart.h | 5 + 4 files changed, 616 insertions(+) commit 3cf24cf8c3c06f9a6cacc8fc2cad94661b6096b6 Author: Alexander Aring Date: Wed Jun 24 11:36:36 2015 +0200 mac802154: cfg: add suspend and resume callbacks This patch introduces suspend and resume callbacks to mac802154. When doing suspend we calling the stop driver callback which should stop the receiving of frames. A transceiver should go into low-power mode then. Calling resume will call the start driver callback, which starts receiving again and allow to transmit frames. This was tested only with the fakelb driver and a qemu vm by doing the following commands: echo "devices" > /sys/power/pm_test echo "freeze" > /sys/power/state while doing some high traffic between two fakelb phys. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/cfg.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ net/mac802154/ieee802154_i.h | 1 + net/mac802154/rx.c | 10 ++++++++-- 3 files changed, 54 insertions(+), 2 deletions(-) commit a6cb869b3b7c16fd7c3ee766dd9f9a4fdda7edf9 Author: Varka Bhadram Date: Wed Jun 24 11:36:35 2015 +0200 cfg802154: add PM hooks This patch help to implement suspend/resume in mac802154, these hooks will be run before the device is suspended and after it resumes. Signed-off-by: Varka Bhadram Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann include/net/cfg802154.h | 2 ++ net/ieee802154/rdev-ops.h | 20 ++++++++++++++++++++ net/ieee802154/sysfs.c | 38 ++++++++++++++++++++++++++++++++++++++ net/ieee802154/trace.h | 22 ++++++++++++++++++++++ 4 files changed, 82 insertions(+) commit c4227c8a6246b30793bd7360113ddc7b66d526dc Author: Alexander Aring Date: Wed Jun 24 11:36:34 2015 +0200 mac802154: util: add stop_device utility function This patch adds ieee802154_stop_device for preparing a utility function to stop the ieee802154 device. Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/ieee802154_i.h | 1 + net/mac802154/iface.c | 7 ++----- net/mac802154/util.c | 8 ++++++++ 3 files changed, 11 insertions(+), 5 deletions(-) commit 927e031c7cb266e5f7fd600899f1603813ee7439 Author: Varka Bhadram Date: Tue Jun 23 16:03:44 2015 +0530 mac802154: remove unused macro This patch removes the unused macro which was removed with the rework of linux-wpan kernel. Signed-off-by: Varka Bhadram Signed-off-by: Marcel Holtmann net/mac802154/ieee802154_i.h | 2 -- 1 file changed, 2 deletions(-) commit 8f451829dd97fb22f03844ca52a49828e2e1d666 Author: Varka Bhadram Date: Tue Jun 23 11:41:03 2015 +0530 mac802154: use WARN_ON() macro This patch will generate the warning if the required driver ops were not defined. Also it removes unnecessary debug message. Signed-off-by: Varka Bhadram Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 301d7d42a207e0d4f5bf11c7e2b6862ddebc8c36 Author: Alexander Aring Date: Sun Jun 21 17:11:19 2015 +0200 6lowpan: add request for ipv6 module The iphc module depends on CONFIG_IPV6, because it's not very useful to build the module without IPv6 support. Recently an user reported about issues for setting an IPv6 address to a 6LoWPAN interface. The issues was solved by modprobe the ipv6 module before. To avoid such user issues we try to request the ipv6 module when the 6LoWPAN module is loaded. Signed-off-by: Alexander Aring Acked-by: Jukka Rissanen Signed-off-by: Marcel Holtmann net/6lowpan/iphc.c | 2 ++ 1 file changed, 2 insertions(+) commit d77b4852b4d3698a90eef219acf9cddc964b1f3a Author: Alexander Aring Date: Sun Jun 21 16:45:20 2015 +0200 mac802154: add llsec address update workaround This patch adds a workaround for using the new nl802154 netlink interface with the old ieee802154 netlink interface togehter. The nl802154 currently supports no access for llsec layer, currently there are users outside which are using both interfaces at the same time. This patch adds a necessary call when addresses are updated. Reported-by: Simon Vincent Suggested-by: Phoebe Buckheister Signed-off-by: Alexander Aring Signed-off-by: Marcel Holtmann net/mac802154/cfg.c | 9 +++++++-- net/mac802154/ieee802154_i.h | 2 ++ net/mac802154/iface.c | 7 ++++++- 3 files changed, 15 insertions(+), 3 deletions(-) commit fac5e5b912bd1b42bad292e0b03956967229b45b Author: Prasanna Karthik Date: Fri Jun 19 08:46:15 2015 +0000 Bluetooth: dtl1_cs: Fix coding style -- clean up Braces {} are not necessary for single statement blocks reported by checkpatch Signed-off-by: Prasanna Karthik Signed-off-by: Marcel Holtmann drivers/bluetooth/dtl1_cs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8626e5eb6c33b78ba7a5eb7cfbc5109896f443ef Author: Axel Lin Date: Thu Jul 23 08:26:57 2015 +0800 ASoC: cs42l73: Fix mask for setting CS42L73_SP_3ST bit CS42L73_SP_3ST is BIT(7), so the mask field is wrong. Fix it. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42l73.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d5a78c8ea050e9c81db1e25a4916d8d9168dfb2e Author: Axel Lin Date: Thu Jul 23 08:29:57 2015 +0800 ASoC: cs35l32: Remove unneeded NULL test for cs35l32->reset_gpio It's safe to call gpiod_set_value_cansleep() with NULL desc. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs35l32.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 4c38b9c30f78d44c576ca3049577fbd4d5c2acc6 Author: Axel Lin Date: Thu Jul 23 08:28:50 2015 +0800 ASoC: cs35l32: Fix define for CS35L32_SDOUT_3ST According to the datasheet, the CS35L32_SDOUT_3ST is BIT(3). Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs35l32.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f41421256afdfcadf0ae2d8bf83ecb7ff3ac49e Author: Murali Karicheri Date: Tue Jul 21 17:54:11 2015 -0400 PCI: designware: Don't complain missing *config* reg space if va_cfg0 is set Currently on Keystone SoCs, we always complain: keystone-pcie 21021000.pcie: missing *config* reg space Keystone uses an older version of DesignWare hardware that doesn't have ATU support. So va_cfg0_base and va_cfg1_base are already set up in ks_dw_pcie_host_init() before calling dw_pcie_host_init(), and they point to the remote config space address va (both same for Keystone). Add a check to avoid this boot noise on Keystone. Signed-off-by: Murali Karicheri Signed-off-by: Bjorn Helgaas drivers/pci/host/pcie-designware.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a70f0d027c83350ad46ca3e86e4c781bfed7fcc2 Author: Daniel Kurtz Date: Wed Jul 22 18:23:26 2015 +0800 regulator: tps6586x: silence pointer-to-int-cast of_regulator_match.driver_data is (void *). tps6586x uses it to store an anonymous enum value (those TPS6586X_ID_ values). Later, it tries to extract the ID by casting directly to an int, which is a no-no ([-Wpointer-to-int-cast]): drivers/regulator/tps6586x-regulator.c: In function 'tps6586x_parse_regulator_dt': drivers/regulator/tps6586x-regulator.c:430:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] id = (int)tps6586x_matches[i].driver_data; ^ Instead of casting to int, uintptr_t is better suited for receiving and comparing integers extracted from void *. This is especially true on 64-bit systems where sizeof(void *) != sizeof(int). Signed-off-by: Daniel Kurtz Signed-off-by: Mark Brown drivers/regulator/tps6586x-regulator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 808b27a5ae05e8828b9f6262af5b9dfae5f661d0 Author: Murali Karicheri Date: Tue Jul 21 17:35:19 2015 -0400 ARM/PCI: Set MPS before pci_bus_add_devices() The MPS configuration should be done *before* pci_bus_add_devices(). After pci_bus_add_devices(), drivers may be bound to devices, and the PCI core shouldn't touch device configuration while a driver owns the device. [bhelgaas: remove check for bus being non-NULL] Reported-by: Bjorn Helgaas Signed-off-by: Murali Karicheri Signed-off-by: Bjorn Helgaas arch/arm/kernel/bios32.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit 3b86616e3058462c340710dc7a5ac34ec8453944 Merge: 9a0cb98 8740a14 Author: Paul Walmsley Date: Thu Jul 23 08:49:57 2015 -0600 Merge branch 'prcm-a-for-v4.3' into hwmod-prcm-for-v4.3 commit e6ce712634ea038ce42bbb11932b692696756882 Author: Arnaldo Carvalho de Melo Date: Thu Jul 23 11:06:16 2015 -0300 perf symbols: Introduce map__is_(kernel,kmodule)() To, with members we already have, check if a kernel level map is for the kernel proper or for a module. Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-m5ic7h0z2crmtj7vi1a1rj3b@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/map.c | 14 ++++++++++++++ tools/perf/util/map.h | 7 +++++++ 2 files changed, 21 insertions(+) commit b685ac22b436455db9c9c16b384d7aa4531cdd80 Author: Arnaldo Carvalho de Melo Date: Wed Jul 22 12:52:17 2015 -0300 perf symbols: Add front end cache for DSO symbol lookup Acked-by: David Ahern Cc: Adrian Hunter Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-voo94tow8wpkcc76mlkny6sc@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/dso.h | 4 ++++ tools/perf/util/symbol.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 3bbd14e0a2e3a988b1b5fe702a2539bd8d0ec622 Author: Pablo Neira Ayuso Date: Mon Jul 20 13:32:52 2015 +0200 netfilter: rename local nf_hook_list to hook_list 085db2c04557 ("netfilter: Per network namespace netfilter hooks.") introduced a new nf_hook_list that is global, so let's avoid this overlap. Signed-off-by: Pablo Neira Ayuso Acked-by: "Eric W. Biederman" include/linux/netfilter.h | 14 +++++++------- net/netfilter/core.c | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) commit 7181ebafd4306c9328fa1cd0ead69afa397ffe75 Author: Pablo Neira Ayuso Date: Mon Jul 20 09:31:25 2015 +0200 netfilter: fix possible removal of wrong hook nf_unregister_net_hook() uses the nf_hook_ops fields as tuple to look up for the corresponding hook in the list. However, we may have two hooks with exactly the same configuration. This shouldn't be a problem for nftables since every new chain has an unique priv field set, but this may still cause us problems in the future, so better address this problem now by keeping a reference to the original nf_hook_ops structure to make sure we delete the right hook from nf_unregister_net_hook(). Fixes: 085db2c04557 ("netfilter: Per network namespace netfilter hooks.") Signed-off-by: Pablo Neira Ayuso Acked-by: "Eric W. Biederman" net/netfilter/core.c | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) commit 2385eb0c5fbcb4316d3490b3affba8e15efc7eb8 Author: Pablo Neira Ayuso Date: Mon Jul 20 12:55:02 2015 +0200 netfilter: nf_queue: fix nf_queue_nf_hook_drop() This function reacquires the rtnl_lock() which is already held by nf_unregister_hook(). This can be triggered via: modprobe nf_conntrack_ipv4 && rmmod nf_conntrack_ipv4 [ 720.628746] INFO: task rmmod:3578 blocked for more than 120 seconds. [ 720.628749] Not tainted 4.2.0-rc2+ #113 [ 720.628752] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 720.628754] rmmod D ffff8800ca46fd58 0 3578 3571 0x00000080 [...] [ 720.628783] Call Trace: [ 720.628790] [] schedule+0x6b/0x90 [ 720.628795] [] schedule_preempt_disabled+0x13/0x20 [ 720.628799] [] mutex_lock_nested+0x1f5/0x380 [ 720.628803] [] ? rtnl_lock+0x12/0x20 [ 720.628807] [] ? rtnl_lock+0x12/0x20 [ 720.628812] [] rtnl_lock+0x12/0x20 [ 720.628817] [] nf_queue_nf_hook_drop+0x15/0x160 [ 720.628825] [] nf_unregister_net_hook+0x168/0x190 [ 720.628831] [] nf_unregister_hook+0x64/0x80 [ 720.628837] [] nf_unregister_hooks+0x20/0x30 [...] Moreover, nf_unregister_net_hook() should only destroy the queue for this netns, not for every netns. Reported-by: Fengguang Wu Fixes: 085db2c04557 ("netfilter: Per network namespace netfilter hooks.") Signed-off-by: Pablo Neira Ayuso Acked-by: "Eric W. Biederman" net/netfilter/core.c | 2 +- net/netfilter/nf_internals.h | 2 +- net/netfilter/nf_queue.c | 12 +++--------- 3 files changed, 5 insertions(+), 11 deletions(-) commit 564bc402526e437729ecafe3c3511f7cab9f0327 Author: Daeho Jeong Date: Thu Jul 23 09:46:11 2015 -0400 ext4, jbd2: add REQ_FUA flag when recording an error in the superblock When an error condition is detected, an error status should be recorded into superblocks of EXT4 or JBD2. However, the write request is submitted now without REQ_FUA flag, even in "barrier=1" mode, which is followed by panic() function in "errors=panic" mode. On mobile devices which make whole system reset as soon as kernel panic occurs, this write request containing an error flag will disappear just from storage cache without written to the physical cells. Therefore, when next start, even forever, the error flag cannot be shown in both superblocks, and e2fsck cannot fix the filesystem problems automatically, unless e2fsck is executed in force checking mode. [ Changed use test_opt(sb, BARRIER) of checking the journal flags -- TYT ] Signed-off-by: Daeho Jeong Signed-off-by: Theodore Ts'o fs/ext4/super.c | 3 ++- fs/jbd2/journal.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 41a1d04b9d2006fdac5cab7680cff89915610944 Author: Jesse Brandeburg Date: Thu Jun 4 16:24:02 2015 -0400 i40e: use BIT and BIT_ULL macros Use macros for abstracting (1 << foo) to BIT(foo) and (1ULL << foo64) to BIT_ULL(foo64) in order to match better with kernel requirements. NOTE: the adminq_cmd.h file was not modified on purpose because of the dependency upon firmware for that file. Change-ID: I73ee2e48c880d671948aad19bd53ca6b2ac558fc Signed-off-by: Jesse Brandeburg Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e.h | 56 ++++++++--------- drivers/net/ethernet/intel/i40e/i40e_common.c | 4 +- drivers/net/ethernet/intel/i40e/i40e_dcb.h | 8 +-- drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 10 +-- drivers/net/ethernet/intel/i40e/i40e_diag.c | 11 ++-- drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 54 ++++++++-------- drivers/net/ethernet/intel/i40e/i40e_fcoe.c | 12 ++-- drivers/net/ethernet/intel/i40e/i40e_fcoe.h | 4 +- drivers/net/ethernet/intel/i40e/i40e_hmc.h | 6 +- drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c | 16 ++--- drivers/net/ethernet/intel/i40e/i40e_main.c | 73 +++++++++++----------- drivers/net/ethernet/intel/i40e/i40e_nvm.c | 6 +- drivers/net/ethernet/intel/i40e/i40e_ptp.c | 7 +-- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 39 ++++++------ drivers/net/ethernet/intel/i40e/i40e_txrx.h | 44 ++++++------- drivers/net/ethernet/intel/i40e/i40e_type.h | 22 +++---- drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 18 +++--- drivers/net/ethernet/intel/i40evf/i40e_hmc.h | 6 +- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 37 ++++++----- drivers/net/ethernet/intel/i40evf/i40e_txrx.h | 42 ++++++------- drivers/net/ethernet/intel/i40evf/i40e_type.h | 22 +++---- drivers/net/ethernet/intel/i40evf/i40evf.h | 42 ++++++------- drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 44 ++++++------- drivers/net/ethernet/intel/i40evf/i40evf_main.c | 8 +-- .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 4 +- 26 files changed, 293 insertions(+), 304 deletions(-) commit f1c7e72e3903910d7cc25ed8f45b9ef42b96037d Author: Shannon Nelson Date: Thu Jun 4 16:24:01 2015 -0400 i40e: clean up error status messages Clean up a little confusion in reporting error status in phy and fcoe setup error reports by separating the return status from the AQ error. Add two decoder functions to make this easier. Change-ID: I960bcdeef3978a15fec1cdb5eff781d5cbae42fb Signed-off-by: Shannon Nelson Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_common.c | 206 +++++++++++ drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 30 +- drivers/net/ethernet/intel/i40e/i40e_main.c | 392 ++++++++++++--------- drivers/net/ethernet/intel/i40e/i40e_prototype.h | 2 + drivers/net/ethernet/intel/i40e/i40e_type.h | 1 + drivers/net/ethernet/intel/i40evf/i40e_common.c | 206 +++++++++++ drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 2 + drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 + .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 10 +- 9 files changed, 673 insertions(+), 177 deletions(-) commit 606a5488a18788c374e797643678a3c82621bf59 Author: Mitch Williams Date: Thu Jun 4 16:24:00 2015 -0400 i40e: provide correct API version to older VF drivers This driver fully supports VF drivers using both the 1.0 and 1.1 versions of the virtual channel API. However, VF drivers using version 1.0 get upset if we provide them with a version other than that, and refuse to play with us. Correct this by checking the VFs API version at the time that we store it off, and provide the correct version number back to the VF so we can all get along. Change-ID: I86dfe02e67b2bef336b4b49a1bb072f3e7229abc Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 3 +++ 1 file changed, 3 insertions(+) commit ee1693e5a5ad6cfd701381a1d04cc1878bb90724 Author: Mitch Williams Date: Thu Jun 4 16:23:59 2015 -0400 i40evf: support virtual channel API version 1.1 Store off the PF's API version, then use it to determine whether or not to send it our capabilities. Change the version checking to allow for PF drivers with lower API versions than our current version, so we can still talk to PF drivers over the 1.0 API. Change-ID: I8edc55d1229c7decf0ed3f285a63032694007c2e Signed-off-by: Mitch Williams Tested-by: Jim young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 6 ++++++ drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit e6d038de13c82f8446d9db5b3d9bb7788344b2bd Author: Mitch Williams Date: Thu Jun 4 16:23:58 2015 -0400 i40evf: handle big resets The most common type of reset that the VF will encounter is a PF reset that cascades down into a VF reset for each VF. In this case, the VF will always be assigned the same VSI and recovery is fairly simple. However, in the case of 'bigger' resets, such as a Core or EMP reset, when the device is reinitialized, it's probable that the VF will NOT get the same VSI. When this happens, the VF will not be able to recover, as it will continue to request resources for its original VSI. Add an extra state to the admin queue state machine so that the driver can re-request its configuration information at runtime. During reset recovery, set this bit in the aq_required field, and fetch the (possibly new) configuration information before attempting to bring the driver back up. Since the driver doesn't know what kind of reset it has encountered, this step is done even for a PF reset, but it doesn't hurt anything - it just gets the same VSI back. Change-ID: I915d59ffb40375215117362f4ac7a37811aba748 Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf.h | 2 + drivers/net/ethernet/intel/i40evf/i40evf_main.c | 109 +++++++++++++-------- .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 30 +++++- 3 files changed, 95 insertions(+), 46 deletions(-) commit f4ca1a229535f1e7eb8253504c66e01e4623c278 Author: Mitch Williams Date: Thu Jun 4 16:23:57 2015 -0400 i40e: support virtual channel API 1.1 Store off the VF API version for use when figuring out the VF driver capabilities. Add support for the VF driver handing its capabilities to the PF driver and then use this information when sending VF resource information back to the VF driver. Change-ID: Ic00d0eeeb5b8118085e12f068ef857089a8f7c2d Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 25 ++++++++++++++++------ drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 2 ++ 2 files changed, 21 insertions(+), 6 deletions(-) commit 17a65a7f8030c467193a6b774b6bbbbfc9d01f5c Author: Mitch Williams Date: Thu Jun 4 16:23:56 2015 -0400 i40e/i40evf: add macros for virtual channel API version and device capability Now that we've rolled the virtual channel API version to 1.1, add some macros to test what version is being used by our partner in crime. For the VF, add some macros to determine what our device capabilities are. Change-ID: I79f6683d4c23bd76a8ad9fd492776fcc1208e1dc Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 3 +++ drivers/net/ethernet/intel/i40evf/i40evf.h | 9 +++++++++ 2 files changed, 12 insertions(+) commit 1b53c2fb43a0f03f7bb8a179d910e98a2fe68674 Author: Mitch Williams Date: Thu Jun 4 16:23:55 2015 -0400 i40e: add VF capabilities to virtual channel interface To prepare for the changes coming up in the X722 device and future devices, the virtual channel interface has to change slightly. The VF driver can now report what its capable of supporting, which then informs the PF driver when it sends the configuration information back to the VF. A 1.1 VF driver on a 1.0 PF driver should not send its capabilities. Likewise, a 1.1 PF driver controlling a 1.0 VF driver should not expect or depend upon receiving the VF capabilities. All other aspects of the API are unchanged. Change-ID: I530cc55f107edd1ee8bdf95830aa90b87854058a Signed-off-by: Mitch Williams Acked-by: Shannon Nelson Acked-by: Anjali Singhai Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl.h | 16 +++++++++++----- drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) commit 3b104be39e4a9ed2c0f6be56ceed4235262369b6 Author: Shannon Nelson Date: Mon Jun 1 19:33:03 2015 +0000 i40e: clean up unneeded gotos With a little work we can clean up some unnecessary logic jumping and drop a variable. Signed-off-by: Shannon Nelson Cc: Laurent Navet Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_hmc.c | 37 ++++++++++-------------------- 1 file changed, 12 insertions(+), 25 deletions(-) commit 8740a1444ed3696c3418c2e90481e9528bad60fa Author: Keerthy Date: Thu Jul 16 17:23:19 2015 +0530 ARM: PRM: AM437x: Enable IO wakeup feature Enable IO wakeup feature. This enables am437x pads to generate daisy chained wake ups(eventually generates aprcm Interrupt) especially when in low power modes. Signed-off-by: Keerthy Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/prm_common.c | 1 + 1 file changed, 1 insertion(+) commit de32e3efd58e9e6754e911618ac7941979ceb6b1 Author: Carolyn Wyborny Date: Wed Jun 10 13:42:07 2015 -0400 i40e/i40evf: Fix and refactor dynamic ITR code This patch changes the switch statement for dynamic interrupt throttling and adds a default case. With this patch, we check the latency setting instead of the current ITR settings and the included refactor improves performance. Without this patch, the ITR setting would never change dynamically, and there was no default. Change-ID: Idb5a8a14c7109ec47c90f6e94bd43baa17d7ee37 Signed-off-by: Carolyn Wyborny Signed-off-by: Anjali Singhai Jain Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_txrx.c | 146 ++++++++++++++++---------- drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 113 +++++++++++++------- 2 files changed, 161 insertions(+), 98 deletions(-) commit 6fb469023cd995d7be5ab3bf12b79387710382ff Author: Todd Fujinaka Date: Wed May 20 15:40:20 2015 -0700 igb: bump version to igb-5.3.0 Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9fa0452b645efdff439948a5cf448b8e497340e9 Author: Todd Fujinaka Date: Tue Jun 30 15:16:55 2015 -0700 igb: use ARRAY_SIZE to replace calculating sizeof(a)/sizeof(a[0]) Use the ARRAY_SIZE macro rather than calculating sizeof(a)/sizeof(a[0]). Also directly replace the code rather than using an unnecessary define. Reported-by: Maninder Singh Reported-by: Joe Perches Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_phy.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit cc843711fdcf345fe46db6e2a9dbc0091f336746 Author: Keerthy Date: Thu Jul 16 17:23:18 2015 +0530 ARM: OMAP4+: PRM: Add AM437x specific data The register offsets for some of the PRM Registers are different hence populating the differing fields. This is needed to support IO wake up feature for am437x family. Signed-off-by: Keerthy Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/prm44xx.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 8d4be7d8bf04f93cfb1512a078bd276efc270793 Author: Keerthy Date: Wed Jul 8 11:12:26 2015 +0530 ARM: OMAP: PRM: Remove hardcoding of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 register offsets The register offsets of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 are hardcoded. This makes it difficult to reuse the code for SoCs like AM437x that have a single instance of IRQENABLE_MPU and IRQSTATUS_MPU registers. Hence handling the case using offset of 4 to accommodate single set of IRQ* registers generically. Signed-off-by: Keerthy [paul@pwsan.com: fixed whitespace alignment problems reported by checkpatch.pl] Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/prm44xx.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) commit 0c5bbeb8839172990e3b8aa82ae3c166e85a09bc Author: Todd Fujinaka Date: Thu Jun 4 14:26:56 2015 -0700 igb: report unsupported ethtool settings in set_coalesce There are many settings possible using ethtool -C/--coalesce, but not all of them are supported in igb. Report failure when an unsupported option is set. Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_ethtool.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit 7faae96421870ed990b0a84797c6b2377e81d079 Author: Jia-Ju Bai Date: Thu Jun 4 21:07:27 2015 +0800 e1000e: Cleanup qos request in error handling of e1000_open The driver lacks pm_qos_remove_request in error handling (err_req_irq) of e1000_open, and qos request inserted by pm_qos_add_request is not removed. This patch add pm_qos_remove_request in error handling to fix it. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/e1000e/netdev.c | 1 + 1 file changed, 1 insertion(+) commit 488abb5c70c19fd37264101d2b6ebee507e1f265 Author: Jason Gerecke Date: Tue Jul 21 11:07:25 2015 -0700 HID: wacom: Report touch width/height/orientation for GENERIC devices The HID_DG_WIDTH and HID_DG_HEIGHT usages report with width and height of contacts. From this information, a crude determination of orientation is also possible. This patch reports all three to userspace if a device reports this usage. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 1b5d514a3d24996ddbe7c75685af9dfdeff125b5 Author: Jason Gerecke Date: Tue Jul 21 11:07:24 2015 -0700 HID: wacom: Ignore contacts in excess of declared contact count The reports sent from some touch devices (e.g. the Cintiq 24HDT) contain junk data in the contact slots which follow the final "valid" contact. To avoid forwarding it to usrspace, we store the reported contact count during the pre-process phase and then only process that many contacts. If a device sends its contacts across multiple reports (what Microsoft refers to as "hybrid" mode) then the contact count will be zero for reports other than the first. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 30 +++++++++++++++++++++++++++++- drivers/hid/wacom_wac.h | 4 ++++ 2 files changed, 33 insertions(+), 1 deletion(-) commit 06324e0cb28e06cd7cf609d7c3099b12841a5dd6 Author: Jason Gerecke Date: Tue Jul 21 11:07:23 2015 -0700 HID: wacom: Perform all event processing as part of report processing In some cases, we need access to information before it becomes available to the 'event' handler. In particular, for some devices we cannot properly process the finger data without first knowing the "contact count" at the very end of the report (e.g. the Cintiq 24HDT touch screen, when forced through the GENERIC codepath). Since the HID subsystem doesn't provide a way to take action before 'event' is called, we take a cue from hid-multitouch.c and add a pre-process step within the 'report' handler that performs the same function. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 1 - drivers/hid/wacom_wac.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) commit 9cba434f630a972b47327ae3d014445033166206 Author: Emil Tantilov Date: Thu Apr 30 11:50:55 2015 -0700 ixgbevf: add support for reporting RSS key and hash table for X550 This patch extends the reporting of the RSS key and hash table by adding support for X550 VFs. The difference is that X550 VFs have their own registers for RSS key and indirection table, so there is no need to query the PF. The RSS key and indirection table are stored in the adapter structure during the configuration of VFRSSRK and VFRETA which in turn can be used in ethtool for reporting. The logic for writing VFRETA is also changed to make sure that the indirection table is reported correctly. In addition this patch adds defines for the VFRETA entries and number of VFRSSRK registers as well as some whitespace cleanups. Reported-by: Vlad Zolotarov Signed-off-by: Emil Tantilov Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ethtool.c | 51 +++++++++++++---------- drivers/net/ethernet/intel/ixgbevf/ixgbevf.h | 9 +++- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 21 ++++++---- 3 files changed, 47 insertions(+), 34 deletions(-) commit 6e487001c5b0939e6083327432565559d8aab6fc Author: Keerthy Date: Mon Jun 22 11:52:53 2015 +0530 ARM: dts: AM4372: Add PRCM IRQ entry Add PRCM IRQ entry. This is needed for I/O wakeup support. Signed-off-by: Keerthy [paul@pwsan.com: added I/O wakeup note in commit description] Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/boot/dts/am4372.dtsi | 1 + 1 file changed, 1 insertion(+) commit 39db67a5ff5b29f5e55f129e9da0d77dc17f24e2 Author: Keerthy Date: Wed Jul 8 11:12:24 2015 +0530 ARM: AM43xx: Add the PRM IRQ register offsets Add the PRM IRQ register offsets. This is needed to support PRM I/O wakeup on AM43xx. Signed-off-by: Keerthy [paul@pwsan.com: improved patch description, moved the PRM_IO_PMCTRL macro out of the CM section] Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/prcm43xx.h | 7 +++++++ 1 file changed, 7 insertions(+) commit fac03f12f8d86f349a3b3992ae9d59a53bc250f6 Author: Keerthy Date: Thu Jul 16 17:23:16 2015 +0530 ARM: OMAP4: PRM: Remove hardcoding of PRM_IO_PMCTRL_OFFSET register PRM_IO_PMCTRL_OFFSET need not be same for all SOCs hence remove hardcoding and use the value provided by the omap_prcm_irq_setup structure. This is done to support IO wakeup on am437x series. Signed-off-by: Keerthy Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/prcm-common.h | 2 ++ arch/arm/mach-omap2/prm44xx.c | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) commit 6f2536141ce12e405d70f868451e706216e7e52d Author: Lee Jones Date: Tue May 12 13:58:09 2015 +0100 mfd: dt-bindings: Provide human readable define for Clocksource mode ST's Low Power Controller can now operate in three supported modes; Watchdog, Real Time Clock and most recently as a Clocksource. This new define will allow the LPC IP to be configured for Clocksource from DT. Signed-off-by: Lee Jones include/dt-bindings/mfd/st-lpc.h | 1 + 1 file changed, 1 insertion(+) commit 03952d98015326a07ae1cf7adb4c43265ec4058f Author: Dan Streetman Date: Wed Jul 22 14:26:38 2015 -0400 crypto: nx - make platform drivers directly register with crypto Remove the common 'platform' registration module, and move the crypto compression driver registration into each of the pSeries and PowerNV platform NX 842 drivers. Change the nx-842.c code into simple common functions that each platform driver uses to perform constraints-based buffer changes, i.e. realigning and/or resizing buffers to match the driver's hardware requirements. The common 'platform' module was my mistake to create - since each platform driver will only load/operate when running on its own platform (i.e. a pSeries platform or a PowerNV platform), they can directly register with the crypto subsystem, using the same alg and driver name. This removes unneeded complexity. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Makefile | 6 +-- drivers/crypto/nx/nx-842-platform.c | 84 ----------------------------- drivers/crypto/nx/nx-842-powernv.c | 29 ++++++++-- drivers/crypto/nx/nx-842-pseries.c | 38 ++++++++++--- drivers/crypto/nx/nx-842.c | 105 +++++++----------------------------- drivers/crypto/nx/nx-842.h | 43 ++++++++++++--- 6 files changed, 114 insertions(+), 191 deletions(-) commit 174d66d4725879b80f8af0bda2b218c2892a9ddb Author: Dan Streetman Date: Wed Jul 22 14:26:37 2015 -0400 crypto: nx - rename nx-842-crypto.c to nx-842.c The last commit merged nx-842.c's code into nx-842-crypto.c. It did not rename nx-842-crypto.c to nx-842.c, in order to let the patch more clearly show what was merged. This just renames nx-842-crypto.c to nx-842.c, with no changes to its code. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Makefile | 2 +- drivers/crypto/nx/nx-842-crypto.c | 600 -------------------------------------- drivers/crypto/nx/nx-842.c | 600 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 601 insertions(+), 601 deletions(-) commit d31581a6e31f1c954704f081376e19c2014c45d3 Author: Dan Streetman Date: Wed Jul 22 14:26:36 2015 -0400 crypto: nx - merge nx-compress and nx-compress-crypto Merge the nx-842.c code into nx-842-crypto.c. This allows later patches to remove the 'platform' driver, and instead allow each platform driver to directly register with the crypto compression api. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/Kconfig | 17 ++----- drivers/crypto/nx/Makefile | 4 +- drivers/crypto/nx/nx-842-crypto.c | 70 +++++++++++++------------- drivers/crypto/nx/nx-842.c | 103 -------------------------------------- drivers/crypto/nx/nx-842.h | 28 +++++++---- 5 files changed, 60 insertions(+), 162 deletions(-) commit 20fc311fc0e14d9f5ef72cfe785fd2b3f6339ab8 Author: Dan Streetman Date: Wed Jul 22 14:26:35 2015 -0400 crypto: nx - use common code for both NX decompress success cases Replace the duplicated finishing code (set destination buffer length and set return code to 0) in the case of decompressing a buffer with no header with a goto to the success case of decompressing a buffer with a header. This is a trivial change that allows both success cases to use common code, and includes the pr_debug() msg in both cases as well. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-crypto.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit ee781b7ff3d8ab93bf99b1c3e1f0a29dda2a63e5 Author: Dan Streetman Date: Wed Jul 22 14:26:34 2015 -0400 crypto: nx - don't register pSeries driver if ENODEV Don't register the pSeries driver when parsing the device tree returns ENODEV. The nx842_probe() function in the pSeries driver returns error instead of registering as a crypto compression driver, when it receives an error return value from the nx842_OF_upd() function that probes the device tree nodes, except when ENODEV is returned. However ENODEV should not be a special case and the driver should not register when there is no hw device, or the hw device is disabled. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 7f6e3aad5ab31c310b36bf0edcd305305b20e2a8 Author: Dan Streetman Date: Wed Jul 22 14:26:33 2015 -0400 crypto: nx - move kzalloc() out of spinlock Move the kzalloc() calls in nx842_probe() and nx842_OF_upd() to the top of the functions, before taking the devdata spinlock. Since kzalloc() without GFP_ATOMIC can sleep, it can't be called while holding a spinlock. Move the calls to before taking the lock. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) commit 90fd73f912f0897bc22351b55925a4962c045086 Author: Dan Streetman Date: Wed Jul 22 14:26:32 2015 -0400 crypto: nx - remove pSeries NX 'status' field Remove the 'status' field from the pSeries NX driver data. The 'status' field isn't used by the driver at all; it simply checks the devicetree status node at initialization, and returns success if 'okay' and failure otherwise. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 39 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) commit 039af9675fd9ce2bc1d0b02b9cb10ca9fd7a5445 Author: Dan Streetman Date: Wed Jul 22 14:26:31 2015 -0400 crypto: nx - remove __init/__exit from VIO functions Remove the __init and __exit modifiers from the VIO driver probe and remove functions. The driver functions should not be marked __init/__exit because they can/will be called during runtime, not only at module init and exit. Signed-off-by: Dan Streetman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8f5ea2df02fb0a50d81701e0c5dc8a5f00381147 Author: Tadeusz Struk Date: Tue Jul 21 22:07:47 2015 -0700 crypto: qat - Don't attempt to register algorithm multiple times When multiple devices are present in the system the driver attempts to register the same algorithm many times. Changes in v2: - use proper synchronization mechanizm between register and unregister Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_asym_algs.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) commit 01c9348c7620ec650aaeb3ce339f614709b2fb5a Author: Paul Mackerras Date: Fri Jul 17 20:11:43 2015 +1000 powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* The hardware RNG on POWER8 and POWER7+ can be relatively slow, since it can only supply one 64-bit value per microsecond. Currently we read it in arch_get_random_long(), but that slows down reading from /dev/urandom since the code in random.c calls arch_get_random_long() for every longword read from /dev/urandom. Since the hardware RNG supplies high-quality entropy on every read, it matches the semantics of arch_get_random_seed_long() better than those of arch_get_random_long(). Therefore this commit makes the code use the POWER8/7+ hardware RNG only for arch_get_random_seed_{long,int} and not for arch_get_random_{long,int}. This won't affect any other PowerPC-based platforms because none of them currently support a hardware RNG. To make it clear that the ppc_md function pointer is used for arch_get_random_seed_*, we rename it from get_random_long to get_random_seed. Signed-off-by: Paul Mackerras Signed-off-by: Michael Ellerman arch/powerpc/include/asm/archrandom.h | 28 ++++++++++++++-------------- arch/powerpc/include/asm/machdep.h | 2 +- arch/powerpc/platforms/powernv/rng.c | 2 +- arch/powerpc/platforms/pseries/rng.c | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) commit 1c2cb594441d02815d304cccec9742ff5c707495 Author: Thomas Huth Date: Fri Jul 17 12:46:58 2015 +0200 powerpc/rtas: Introduce rtas_get_sensor_fast() for IRQ handlers The EPOW interrupt handler uses rtas_get_sensor(), which in turn uses rtas_busy_delay() to wait for RTAS becoming ready in case it is necessary. But rtas_busy_delay() is annotated with might_sleep() and thus may not be used by interrupts handlers like the EPOW handler! This leads to the following BUG when CONFIG_DEBUG_ATOMIC_SLEEP is enabled: BUG: sleeping function called from invalid context at arch/powerpc/kernel/rtas.c:496 in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/1 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0-rc2-thuth #6 Call Trace: [c00000007ffe7b90] [c000000000807670] dump_stack+0xa0/0xdc (unreliable) [c00000007ffe7bc0] [c0000000000e1f14] ___might_sleep+0x134/0x180 [c00000007ffe7c20] [c00000000002aec0] rtas_busy_delay+0x30/0xd0 [c00000007ffe7c50] [c00000000002bde4] rtas_get_sensor+0x74/0xe0 [c00000007ffe7ce0] [c000000000083264] ras_epow_interrupt+0x44/0x450 [c00000007ffe7d90] [c000000000120260] handle_irq_event_percpu+0xa0/0x300 [c00000007ffe7e70] [c000000000120524] handle_irq_event+0x64/0xc0 [c00000007ffe7eb0] [c000000000124dbc] handle_fasteoi_irq+0xec/0x260 [c00000007ffe7ef0] [c00000000011f4f0] generic_handle_irq+0x50/0x80 [c00000007ffe7f20] [c000000000010f3c] __do_irq+0x8c/0x200 [c00000007ffe7f90] [c0000000000236cc] call_do_irq+0x14/0x24 [c00000007e6f39e0] [c000000000011144] do_IRQ+0x94/0x110 [c00000007e6f3a30] [c000000000002594] hardware_interrupt_common+0x114/0x180 Fix this issue by introducing a new rtas_get_sensor_fast() function that does not use rtas_busy_delay() - and thus can only be used for sensors that do not cause a BUSY condition - known as "fast" sensors. The EPOW sensor is defined to be "fast" in sPAPR - mpe. Fixes: 587f83e8dd50 ("powerpc/pseries: Use rtas_get_sensor in RAS code") Signed-off-by: Thomas Huth Reviewed-by: Nathan Fontenot Signed-off-by: Michael Ellerman arch/powerpc/include/asm/rtas.h | 1 + arch/powerpc/kernel/rtas.c | 17 +++++++++++++++++ arch/powerpc/platforms/pseries/ras.c | 3 ++- 3 files changed, 20 insertions(+), 1 deletion(-) commit 045a0fa0c5f5ea0f16c009f924ea579634afbba8 Author: Thomas Graf Date: Thu Jul 23 10:08:44 2015 +0200 ip_tunnel: Call ip_tunnel_core_init() from inet_init() Convert the module_init() to a invocation from inet_init() since ip_tunnel_core is part of the INET built-in. Fixes: 3093fbe7ff4 ("route: Per route IP tunnel metadata via lightweight tunnel") Signed-off-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 2 ++ net/ipv4/af_inet.c | 3 +++ net/ipv4/ip_tunnel_core.c | 11 +---------- 3 files changed, 6 insertions(+), 10 deletions(-) commit c5e40ee287db61a79af1746954ee03ebbf1ff8a3 Merge: 0528318 c5dfd65 Author: David S. Miller Date: Thu Jul 23 00:41:16 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: net/bridge/br_mdb.c br_mdb.c conflict was a function call being removed to fix a bug in 'net' but whose signature was changed in 'net-next'. Signed-off-by: David S. Miller commit ab4a936247561cd998913bab5f15e3d3eaed1f9e Author: Linus Walleij Date: Wed Jun 17 23:10:21 2015 +0200 pinctrl: nomadik: assure GPIO chips are populated If the pin controller probes before the GPIO driver it needs to populate the GPIO driver state containers ahead of the actual driver probe as the addresses are used by both halves of the driver. Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/ste,nomadik.txt | 7 ++++-- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 25 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) commit 6ca7d2e352545132923bfdfcd17a4ceee80f5ce9 Author: Linus Walleij Date: Wed Jun 17 16:05:47 2015 +0200 pinctrl: nomadik: find chip from local array Instead of indexing around the GPIO ranges to find a chip, look directly in the local array of state containers for nmk_gpio_chip:s. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik.c | 64 +++++++++++++------------------ 1 file changed, 26 insertions(+), 38 deletions(-) commit bc222ef4f79fa0003ef5a0af8090372e3bd8a783 Author: Linus Walleij Date: Wed Jun 17 15:45:41 2015 +0200 pinctrl: nomadik: break out state container allocator Break out the function that allocates the nomadik GPIO chip state container to its own function. Signed-off-by: Linus Walleij drivers/pinctrl/nomadik/pinctrl-nomadik.c | 106 ++++++++++++++++++++---------- 1 file changed, 71 insertions(+), 35 deletions(-) commit 5492830370171b6a4ede8a3bfba687a8d0f25fa5 Author: Paolo Bonzini Date: Fri Jul 10 13:32:13 2015 +0200 KVM: svm: handle KVM_X86_QUIRK_CD_NW_CLEARED in svm_get_mt_mask We can disable CD unconditionally when there is no assigned device. KVM now forces guest PAT to all-writeback in that case, so it makes sense to also force CR0.CD=0. When there are assigned devices, emulate cache-disabled operation through the page tables. This behavior is consistent with VMX microcode, where CD/NW are not touched by vmentry/vmexit. However, keep this dependent on the quirk because OVMF enables the caches too late. Signed-off-by: Paolo Bonzini arch/x86/kvm/svm.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 5f3d45e7f2827f48e60eb821efd909713b43ac63 Author: Mihai Donțu Date: Sun Jul 5 20:08:57 2015 +0300 kvm/x86: add support for MONITOR_TRAP_FLAG Allow a nested hypervisor to single step its guests. Signed-off-by: Mihai Donțu [Fix overlong line. - Paolo] Signed-off-by: Paolo Bonzini arch/x86/include/asm/vmx.h | 1 + arch/x86/include/uapi/asm/vmx.h | 2 ++ arch/x86/kvm/vmx.c | 16 ++++++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) commit 2ce7918990641b07e70e1b25752d666369e2016e Author: Andrey Smetanin Date: Fri Jul 3 15:01:41 2015 +0300 kvm/x86: add sending hyper-v crash notification to user space Sending of notification is done by exiting vcpu to user space if KVM_REQ_HV_CRASH is enabled for vcpu. At exit to user space the kvm_run structure contains system_event with type KVM_SYSTEM_EVENT_CRASH to notify about guest crash occurred. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Reviewed-by: Peter Hornyack CC: Paolo Bonzini CC: Gleb Natapov Signed-off-by: Paolo Bonzini Documentation/virtual/kvm/api.txt | 5 +++++ arch/x86/kvm/x86.c | 6 ++++++ include/linux/kvm_host.h | 1 + include/uapi/linux/kvm.h | 1 + 4 files changed, 13 insertions(+) commit e7d9513b60e87f62e41090fa3a26eca796924346 Author: Andrey Smetanin Date: Fri Jul 3 15:01:37 2015 +0300 kvm/x86: added hyper-v crash msrs into kvm hyperv context Added kvm Hyper-V context hv crash variables as storage of Hyper-V crash msrs. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Reviewed-by: Peter Hornyack CC: Paolo Bonzini CC: Gleb Natapov Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 4 +++ arch/x86/kvm/hyperv.c | 76 +++++++++++++++++++++++++++++++++++++++-- arch/x86/kvm/hyperv.h | 2 +- arch/x86/kvm/x86.c | 9 ++++- 4 files changed, 86 insertions(+), 5 deletions(-) commit ee86dbc6e327062396748162b95309388c19faab Author: Andrey Smetanin Date: Fri Jul 3 15:01:35 2015 +0300 kvm: introduce vcpu_debug = kvm_debug + vcpu context vcpu_debug is useful macro like kvm_debug but additionally includes vcpu context inside output. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Reviewed-by: Peter Hornyack CC: Paolo Bonzini CC: Gleb Natapov Signed-off-by: Paolo Bonzini include/linux/kvm_host.h | 3 +++ 1 file changed, 3 insertions(+) commit e83d58874ba1de74c13d3c6b05f95a023c860d25 Author: Andrey Smetanin Date: Fri Jul 3 15:01:34 2015 +0300 kvm/x86: move Hyper-V MSR's/hypercall code into hyperv.c file This patch introduce Hyper-V related source code file - hyperv.c and per vm and per vcpu hyperv context structures. All Hyper-V MSR's and hypercall code moved into hyperv.c. All Hyper-V kvm/vcpu fields moved into appropriate hyperv context structures. Copyrights and authors information copied from x86.c to hyperv.c. Signed-off-by: Andrey Smetanin Signed-off-by: Denis V. Lunev Reviewed-by: Peter Hornyack CC: Paolo Bonzini CC: Gleb Natapov Signed-off-by: Paolo Bonzini arch/x86/include/asm/kvm_host.h | 20 ++- arch/x86/kvm/Makefile | 4 +- arch/x86/kvm/hyperv.c | 307 ++++++++++++++++++++++++++++++++++++++++ arch/x86/kvm/hyperv.h | 32 +++++ arch/x86/kvm/lapic.h | 2 +- arch/x86/kvm/x86.c | 265 +--------------------------------- arch/x86/kvm/x86.h | 5 + 7 files changed, 366 insertions(+), 269 deletions(-) commit 9ef03193a93553885b43731c47d3b6ae90e677c4 Author: Thomas Huth Date: Wed Jul 22 18:56:47 2015 +0200 powerpc/rtas: Replace magic values with defines rtas.h already has some nice #defines for RTAS return status codes - let's use them instead of hard-coded "magic" values! Signed-off-by: Thomas Huth Reviewed-by: Tyrel Datwyler Signed-off-by: Michael Ellerman arch/powerpc/kernel/rtas.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit f9eb4af67c9dde195bae965a86c35c35402249c0 Author: Eugene Korenevsky Date: Fri Apr 17 02:22:21 2015 +0000 KVM: nVMX: VMX instructions: add checks for #GP/#SS exceptions According to Intel SDM several checks must be applied for memory operands of VMX instructions. Long mode: #GP(0) or #SS(0) depending on the segment must be thrown if the memory address is in a non-canonical form. Protected mode, checks in chronological order: - The segment type must be checked with access type (read or write) taken into account. For write access: #GP(0) must be generated if the destination operand is located in a read-only data segment or any code segment. For read access: #GP(0) must be generated if if the source operand is located in an execute-only code segment. - Usability of the segment must be checked. #GP(0) or #SS(0) depending on the segment must be thrown if the segment is unusable. - Limit check. #GP(0) or #SS(0) depending on the segment must be thrown if the memory operand effective address is outside the segment limit. Signed-off-by: Eugene Korenevsky Signed-off-by: Paolo Bonzini arch/x86/kvm/vmx.c | 77 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 16 deletions(-) commit 2303553f3f32cb508c7818ebfda78a13d3c10d37 Author: Maxime Coquelin Date: Thu Jul 23 07:00:10 2015 +0200 ARM: dts: Use stdout-path in STM32F429 Discovery board This patch replaces use of linux,stdout-path by stdout-path as per "chosen" DT bindings documentation. Doing that, the "console" argument is no more needed in kernel command line. Reported-by: Olof Johansson Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stm32f429-disco.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 83722c2c7e929ed0d6556b16c71d45de279b0945 Author: Maxime Coquelin Date: Sun Jul 12 11:27:36 2015 +0200 ARM: dts: Add STM32429i-EVAL board support Main features of STM32429i-EVAL evaluation kit are: - STM32F429 Cortex-M4 MCU @180MHz * 2MB internal Flash * 256KB internal RAM - 32MB SDRAM - 16MB NOR Flash - 2MB SRAM - 4.3" TFT LCD with resistive touchscreen - SDCard connector (SDIO compatible) - 1x USB 2.0 OTG + 1x USB 1.1 OTG - Ethernet Signed-off-by: Maxime Coquelin arch/arm/boot/dts/Makefile | 4 +- arch/arm/boot/dts/stm32429i-eval.dts | 75 ++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) commit ab7435982254d26cbc9af225065e0a6a94566269 Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:58 2015 +0200 staging: rtl8192e: Rename init_hal_dm Use naming schema found in other rtlwifi devices. Rename init_hal_dm to rtl92e_dm_init. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b8216b690d52f3cde4ab94c05f8772d0acdab57d Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:57 2015 +0200 staging: rtl8192e: Rename init_firmware Use naming schema found in other rtlwifi devices. Rename init_firmware to rtl92e_init_fw. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit d66e938e1b5b40dc0d9f8f47d66f737e386b44ee Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:56 2015 +0200 staging: rtl8192e: Rename rtllib_ips_leave_wq Use naming schema found in other rtlwifi devices. Rename rtllib_ips_leave_wq to rtl92e_rtllib_ips_leave_wq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit bf135a16c5babbf51674431c7c7f73761c846f43 Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:55 2015 +0200 staging: rtl8192e: Rename rtllib_ips_leave Use naming schema found in other rtlwifi devices. Rename rtllib_ips_leave to rtl92e_rtllib_ips_leave. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit c34b29f7c8dcaabc42eae8b4ce81a8ec82d9d1f9 Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:54 2015 +0200 staging: rtl8192e: Rename rtl8192_hw_wakeup_wq Use naming schema found in other rtlwifi devices. Rename rtl8192_hw_wakeup_wq to rtl92e_hw_wakeup_wq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 43bcb3b4c78585a9cd7741b49e272fae989074ba Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:53 2015 +0200 staging: rtl8192e: Rename rtl8192_hw_wakeup Use naming schema found in other rtlwifi devices. Rename rtl8192_hw_wakeup to rtl92e_hw_wakeup. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 8 ++++---- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit feb257e5f9982821dcafe7f190d810a418cd2076 Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:52 2015 +0200 staging: rtl8192e: Rename rtl8192_hw_to_sleep Use naming schema found in other rtlwifi devices. Rename rtl8192_hw_to_sleep to rtl92e_enter_sleep. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit bcdcc1ea06be6851c5dfd885e9ac3b1388bbd36b Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:51 2015 +0200 staging: rtl8192e: Rename rtl8192_hw_sleep_wq Use naming schema found in other rtlwifi devices. Rename rtl8192_hw_sleep_wq to rtl92e_hw_sleep_wq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 9c4a55d1dac3cd17aad9944f1647e2ade5a6345f Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:50 2015 +0200 staging: rtl8192e: Rename LeisurePSLeave Use naming schema found in other rtlwifi devices. Rename LeisurePSLeave to rtl92e_leisure_ps_leave. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 10 +++++----- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) commit 04197ef2bdfbb334de18a5d5f105acb71eef1db5 Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:49 2015 +0200 staging: rtl8192e: Rename LeisurePSEnter Use naming schema found in other rtlwifi devices. Rename LeisurePSEnter to rtl92e_leisure_ps_enter. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit a514c798ee57d82d8332b0315dba00c6e4cb0c3e Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:48 2015 +0200 staging: rtl8192e: Rename IPSLeave_wq Use naming schema found in other rtlwifi devices. Rename IPSLeave_wq to rtl92e_ips_leave_wq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 3 ++- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit 2ab2aba29e1d28ecb1a211f3edbce6d65e92e05c Author: Mateusz Kulikowski Date: Sun Jul 19 19:33:47 2015 +0200 staging: rtl8192e: Rename IPSLeave Use naming schema found in other rtlwifi devices. Rename IPSLeave to rtl92e_ips_leave. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 10 +++++----- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 14 ++++++++------ 4 files changed, 15 insertions(+), 13 deletions(-) commit 410d6fc983a61dec4a514b3426e8368b2fd3fd17 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:43 2015 +0200 staging: rtl8192e: Rename IPSEnter Use naming schema found in other rtlwifi devices. Rename IPSEnter to rtl92e_ips_enter. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 3683dc1f08f81ce69d5f405bf78c55775996dcf4 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:42 2015 +0200 staging: rtl8192e: Rename rtl8192E_suspend Use naming schema found in other rtlwifi devices. Rename rtl8192E_suspend to rtl92e_suspend. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 0ba6623df9e2d349586b592b809e26b12d3da416 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:41 2015 +0200 staging: rtl8192e: Rename rtl8192E_resume Use naming schema found in other rtlwifi devices. Rename rtl8192E_resume to rtl92e_resume. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e250592ed93a12eecc42ed590f5a8245a20ab994 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:40 2015 +0200 staging: rtl8192e: Rename rtl8192_pci_findadapter Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_findadapter to rtl92e_check_adapter. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pci.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pci.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 68cb7b7a5918114cf9712d2bb5dc8aad7300dd58 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:39 2015 +0200 staging: rtl8192e: Rename eprom_read Use naming schema found in other rtlwifi devices. Rename eprom_read to rtl92e_eeprom_read. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 26 ++++++++++++++------------ drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h | 2 +- 3 files changed, 16 insertions(+), 14 deletions(-) commit 2e3ba83a4996721b44c9cb2bcebad4e12d072416 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:38 2015 +0200 staging: rtl8192e: Rename init_rate_adaptive Use naming schema found in other rtlwifi devices. Rename init_rate_adaptive to rtl92e_init_adaptive_rate. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 8e1e64bb66c5236153255a4ec2de77f21569c537 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:37 2015 +0200 staging: rtl8192e: Rename hal_dm_watchdog Use naming schema found in other rtlwifi devices. Rename hal_dm_watchdog to rtl92e_dm_watchdog. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 33059f5435ea4a172dc61c8f09c09ee06e5f14d7 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:36 2015 +0200 staging: rtl8192e: Rename dm_txpower_trackingcallback Use naming schema found in other rtlwifi devices. Rename dm_txpower_trackingcallback to rtl92e_dm_txpower_tracking_wq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3cd4db70c6f8748c868dac83bad49426d5e31486 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:35 2015 +0200 staging: rtl8192e: Rename dm_rf_pathcheck_workitemcallback Use naming schema found in other rtlwifi devices. Rename dm_rf_pathcheck_workitemcallback to rtl92e_dm_rf_pathcheck_wq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 25c01ec36eafb4096edaae0607b0dc7e4762cb38 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:34 2015 +0200 staging: rtl8192e: Rename dm_restore_dynamic_mechanism_state Use naming schema found in other rtlwifi devices. Rename dm_restore_dynamic_mechanism_state to rtl92e_dm_restore_state. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 5a9f18cfeda0b73d2fafdab6eb1c4457ddd34b76 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:33 2015 +0200 staging: rtl8192e: Rename dm_initialize_txpower_tracking Use naming schema found in other rtlwifi devices. Rename dm_initialize_txpower_tracking to rtl92e_dm_init_txpower_tracking. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7842c2d58d4dc8b5e96d87aa61d619bd6f094ca7 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:32 2015 +0200 staging: rtl8192e: Rename dm_init_edca_turbo Use naming schema found in other rtlwifi devices. Rename dm_init_edca_turbo to rtl92e_dm_init_edca_turbo. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit 59e84dc363bfaa675db8da94113d3250170ebb70 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:31 2015 +0200 staging: rtl8192e: Rename dm_cck_txpower_adjust Use naming schema found in other rtlwifi devices. Rename dm_cck_txpower_adjust to rtl92e_dm_cck_txpower_adjust. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 14 +++++++------- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 12 ++++++------ drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) commit 090e8a4d99339f66971b9e2b3b13a62fa115b1d0 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:30 2015 +0200 staging: rtl8192e: Rename dm_backup_dynamic_mechanism_state Use naming schema found in other rtlwifi devices. Rename dm_backup_dynamic_mechanism_state to rtl92e_dm_backup_state. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit fd9e3171844891b510adf125d820a91d212f359c Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:29 2015 +0200 staging: rtl8192e: Rename deinit_hal_dm Use naming schema found in other rtlwifi devices. Rename deinit_hal_dm to rtl92e_dm_deinit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 6dee0c884a24074ad9de3150e6c527bb4a148277 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:28 2015 +0200 staging: rtl8192e: Rename write_nic_word Use naming schema found in other rtlwifi devices. Rename write_nic_word to rtl92e_writew. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 36 +++++++++++++------------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 +-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 +-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) commit 8ea541001bf7b0a2bbffa447ccfa834354c9f1dc Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:27 2015 +0200 staging: rtl8192e: Rename write_nic_dword Use naming schema found in other rtlwifi devices. Rename write_nic_dword to rtl92e_writel. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 94 +++++++++++++------------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 32 ++++----- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 16 ++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 10 +-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 42 ++++++------ drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 8 +-- 7 files changed, 100 insertions(+), 104 deletions(-) commit d8ae1967694aca45edf9a9d559aa904c433b4bbe Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:26 2015 +0200 staging: rtl8192e: Rename write_nic_byte Use naming schema found in other rtlwifi devices. Rename write_nic_byte to rtl92e_writeb. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 52 ++++---- .../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 6 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 24 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 144 ++++++++++----------- drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 36 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 4 +- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 2 +- 11 files changed, 141 insertions(+), 139 deletions(-) commit 97ef450b860065fe3b7c657382af889c6ed00c79 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:25 2015 +0200 staging: rtl8192e: Rename rtl819x_update_rxsignalstatistics8190pci Use naming schema found in other rtlwifi devices. Rename rtl819x_update_rxsignalstatistics8190pci to rtl92e_update_rx_statistics. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 7 ++----- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 4 ++-- 3 files changed, 5 insertions(+), 8 deletions(-) commit 7879efc5a6a072eb27c14a74b45676a5cdfd26a1 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:24 2015 +0200 staging: rtl8192e: Rename rtl819x_UpdateRxPktTimeStamp Use naming schema found in other rtlwifi devices. Rename rtl819x_UpdateRxPktTimeStamp to rtl92e_update_rx_pkt_timestamp. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit f54f10bfa1617feb7aaaad61ddc8e9afb50a87e4 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:23 2015 +0200 staging: rtl8192e: Rename rtl819x_translate_todbm Use naming schema found in other rtlwifi devices. Rename rtl819x_translate_todbm to rtl92e_translate_to_dbm. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit aa804031831cfcff16811717bd46c1c6deee168a Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:22 2015 +0200 staging: rtl8192e: Rename rtl819x_query_rxpwrpercentage Use naming schema found in other rtlwifi devices. Rename rtl819x_query_rxpwrpercentage to rtl92e_rx_db_to_percent. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 6b89d0e7ceb733501e7203ca52ed9e294bd46a0d Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:21 2015 +0200 staging: rtl8192e: Rename rtl819x_evm_dbtopercentage Use naming schema found in other rtlwifi devices. Rename rtl819x_evm_dbtopercentage to rtl92e_evm_db_to_percent. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 5 +---- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) commit 94199b35ff28093bb94f26a7a668e33becec092d Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:20 2015 +0200 staging: rtl8192e: Rename rtl8192_tx_enable Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_enable to rtl92e_tx_enable. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 35bf848f0662a923416d1e92120067d555f5706a Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:19 2015 +0200 staging: rtl8192e: Rename rtl8192_SetWirelessMode Use naming schema found in other rtlwifi devices. Rename rtl8192_SetWirelessMode to rtl92e_set_wireless_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 630268b75726785b9709b47afb10bcaed4fa0e35 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:18 2015 +0200 staging: rtl8192e: Rename rtl8192_rx_enable Use naming schema found in other rtlwifi devices. Rename rtl8192_rx_enable to rtl92e_rx_enable. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit e58701dae05c041d443178a3a78bed9438cc21e7 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:17 2015 +0200 staging: rtl8192e: Rename rtl8192_record_rxdesc_forlateruse Use naming schema found in other rtlwifi devices. Rename rtl8192_record_rxdesc_forlateruse to rtl92e_copy_mpdu_stats. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 7 ++----- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 4 ++-- 3 files changed, 5 insertions(+), 8 deletions(-) commit 36154dc3deea461eec4c8428336387192fe6e2ce Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:16 2015 +0200 staging: rtl8192e: Rename rtl8192_pci_resetdescring Use naming schema found in other rtlwifi devices. Rename rtl8192_pci_resetdescring to rtl92e_reset_desc_ring. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b74299cde425f0b20c37fa6dfed2ecdf0c8853b2 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:15 2015 +0200 staging: rtl8192e: Rename rtl8192_irq_enable Use naming schema found in other rtlwifi devices. Rename rtl8192_irq_enable to rtl92e_irq_enable. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit b7b50d654c47eaf86711465aed3cd6888efbe204 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:14 2015 +0200 staging: rtl8192e: Rename rtl8192_irq_disable Use naming schema found in other rtlwifi devices. Rename rtl8192_irq_disable to rtl92e_irq_disable. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 12 ++++++------ drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 4 +--- 3 files changed, 8 insertions(+), 10 deletions(-) commit 122fe9f1dfa2aeacceda2d32a8e496168744c3de Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:13 2015 +0200 staging: rtl8192e: Rename rtl8192_config_rate Use naming schema found in other rtlwifi devices. Rename rtl8192_config_rate to rtl92e_config_rate. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit bc4f2cc90d214e81bb75c5b63a8c919779f32a6a Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:12 2015 +0200 staging: rtl8192e: Rename rtl8192_commit Use naming schema found in other rtlwifi devices. Rename rtl8192_commit to rtl92e_commit. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 1c0a7c0e622a94eeb2da1d249757753f903eb79b Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:11 2015 +0200 staging: rtl8192e: Rename read_nic_word Use naming schema found in other rtlwifi devices. Rename read_nic_word to rtl92e_readw. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) commit 99aa47e0752ed05cd9cfb653fee33ecc5566b876 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:10 2015 +0200 staging: rtl8192e: Rename read_nic_dword Use naming schema found in other rtlwifi devices. Rename read_nic_dword to rtl92e_readl. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 20 +++++++------- .../staging/rtl8192e/rtl8192e/r8192E_firmware.c | 8 +++--- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 32 +++++++++++----------- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 4 +-- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 2 +- 7 files changed, 37 insertions(+), 37 deletions(-) commit b59a4ca3d4421866cc7f49135ab6f7b7c84fdb48 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:09 2015 +0200 staging: rtl8192e: Rename read_nic_byte Use naming schema found in other rtlwifi devices. Rename read_nic_byte to rtl92e_readb. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 14 +++++++------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 14 +++++++------- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 22 +++++++++++----------- drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c | 14 +++++++------- 6 files changed, 34 insertions(+), 34 deletions(-) commit 502bd1d7c35fad9ab3806f2b6597fa92a2f6c132 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:08 2015 +0200 staging: rtl8192e: Rename NicIFEnableNIC Use naming schema found in other rtlwifi devices. Rename NicIFEnableNIC to rtl92e_enable_nic. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit af002dc63731fb8f31bdac5b53af80bec4a3f776 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:07 2015 +0200 staging: rtl8192e: Rename NicIFDisableNIC Use naming schema found in other rtlwifi devices. Rename NicIFDisableNIC to rtl92e_disable_nic. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit f434f9d5c60825f3a426a9ac5c5222b0eab8c82d Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:06 2015 +0200 staging: rtl8192e: Rename MgntActSet_RF_State Use naming schema found in other rtlwifi devices. Rename MgntActSet_RF_State to rtl92e_set_rf_state. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 16 ++++++++-------- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_ps.c | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) commit a643d927c2ec9210d07b8e9aa20d598675dc2aef Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:05 2015 +0200 staging: rtl8192e: Rename check_rfctrl_gpio_timer Use naming schema found in other rtlwifi devices. Rename check_rfctrl_gpio_timer to rtl92e_check_rfctrl_gpio_timer. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 ++++---- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_pm.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit aae7e72e1d4dce958f5ba26c7037546bd846a89d Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:04 2015 +0200 staging: rtl8192e: Rename set_swcam Use naming schema found in other rtlwifi devices. Rename set_swcam to rtl92e_set_swcam. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 5 +++-- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 5 +++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 29 +++++++++++++++------------- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 14 +++++++------- 4 files changed, 29 insertions(+), 24 deletions(-) commit 408bd7b7b244c23a78deb41cadbeb070c794da94 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:03 2015 +0200 staging: rtl8192e: Rename setKey Use naming schema found in other rtlwifi devices. Rename setKey to rtl92e_set_key. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 84 +++++++++++++++------------- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 5 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 26 +++++---- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 13 +++-- 4 files changed, 68 insertions(+), 60 deletions(-) commit 3742093268faec364254966286b69fa4801bbc01 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:02 2015 +0200 staging: rtl8192e: Rename EnableHWSecurityConfig8192 Use naming schema found in other rtlwifi devices. Rename EnableHWSecurityConfig8192 to rtl92e_enable_hw_security_config. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) commit 66497f0223cb23b572e360d32ad5473f618c5e57 Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:01 2015 +0200 staging: rtl8192e: Rename CamRestoreAllEntry Use naming schema found in other rtlwifi devices. Rename CamRestoreAllEntry to rtl92e_cam_restore. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 358e4ee166b7c7d7550c46b57000cd628c9001de Author: Mateusz Kulikowski Date: Sun Jul 19 19:28:00 2015 +0200 staging: rtl8192e: Rename CamResetAllEntry Use naming schema found in other rtlwifi devices. Rename CamResetAllEntry to rtl92e_cam_reset. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_cam.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_cam.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) commit ad8d51615c61cbb257cedfe86b11d13b8c9a08a4 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:59 2015 +0200 staging: rtl8192e: Rename SetRFPowerState Use naming schema found in other rtlwifi devices. Rename SetRFPowerState to rtl92e_set_rf_power_state. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 12 +++++++----- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 9 +++------ 2 files changed, 10 insertions(+), 11 deletions(-) commit ae924acdaedd0b17b9dc29a3e61814d9cc98fdb0 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:58 2015 +0200 staging: rtl8192e: Rename rtl8192_SetBWMode Use naming schema found in other rtlwifi devices. Rename rtl8192_SetBWMode to rtl92e_set_bw_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 153f9ddbe97828e9cb3428bc6698da49deb3c574 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:57 2015 +0200 staging: rtl8192e: Rename rtl8192_setBBreg Use naming schema found in other rtlwifi devices. Rename rtl8192_setBBreg to rtl92e_set_bb_reg. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 24 +-- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 165 ++++++++++---------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 4 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 171 ++++++++++----------- 5 files changed, 182 insertions(+), 186 deletions(-) commit 3c351feca929e142574b1f904a42475e4056de45 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:56 2015 +0200 staging: rtl8192e: Rename rtl8192_QueryBBReg Use naming schema found in other rtlwifi devices. Rename rtl8192_QueryBBReg to rtl92e_get_bb_reg. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 8 ++++---- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 17 +++++++-------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 24 +++++++++++----------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 16 +++++++-------- 5 files changed, 35 insertions(+), 34 deletions(-) commit 68a5143c812d13d6a30c5863511cb2ee92635123 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:55 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_SwChnl Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_SwChnl to rtl92e_set_channel. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 5aa1b9cad7a352e2e4a72f553689fe03c629f65c Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:54 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_setTxPower Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_setTxPower to rtl92e_set_tx_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 3 +-- 4 files changed, 5 insertions(+), 6 deletions(-) commit b0e044feec65d1f71956672ea2b7a1ea5e6d2ec6 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:53 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_SetRFReg Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_SetRFReg to rtl92e_set_rf_reg. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 40 +++++++++++----------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 39 ++++++++++----------- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 6 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 8 ++--- 4 files changed, 45 insertions(+), 48 deletions(-) commit 31aebbe2226cdcb17ee9cd9ed6f66c072604f8d9 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:52 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_RFConfig Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_RFConfig to rtl92e_config_phy. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 4d415decee9229b09fa6c800f5e2b00bf6c8988e Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:51 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_QueryRFReg Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_QueryRFReg to rtl92e_get_rf_reg. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 8 ++++---- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 10 +++++----- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 6 +++--- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) commit 78cc16fa40f731ff1eef2ea9806d70afdf8220c7 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:50 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_getTxPower Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_getTxPower to rtl92e_get_tx_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 2504c113d85d2679993ffa00bdf5e1a087409b0c Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:49 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_ConfigRFWithHeaderFile Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_ConfigRFWithHeaderFile to rtl92e_config_rf_path. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 8 ++++---- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 3 +-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) commit 0efe7104ea2a1e50947fd6272d6efb2c8911fc31 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:48 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_configmac Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_configmac to rtl92e_config_mac. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 5948d1feb7b98d557967760e4dc0b4a253b6e5e3 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:47 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_CheckIsLegalRFPath Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_CheckIsLegalRFPath to rtl92e_is_legal_rf_path. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 3 +-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 3 +-- 4 files changed, 7 insertions(+), 9 deletions(-) commit e21d14d805bb77b83c100c2df3209909febd379d Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:46 2015 +0200 staging: rtl8192e: Rename rtl8192_phy_checkBBAndRF Use naming schema found in other rtlwifi devices. Rename rtl8192_phy_checkBBAndRF to rtl92e_check_bb_and_rf. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 11 +++++------ drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) commit 2949353dde018594063d20b6dc38cc86b1846729 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:45 2015 +0200 staging: rtl8192e: Rename rtl8192_BBConfig Use naming schema found in other rtlwifi devices. Rename rtl8192_BBConfig to rtl92e_config_bb. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3803cb215ba6933ca461598ff5ba9a2d629e1d84 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:44 2015 +0200 staging: rtl8192e: Rename PHY_SetRtl8192eRfOff Use naming schema found in other rtlwifi devices. Rename PHY_SetRtl8192eRfOff to rtl92e_set_rf_off. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 9a44c6e6731d32e0a6efd3f2ddfbc81e4936d8b6 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:43 2015 +0200 staging: rtl8192e: Rename PHY_ScanOperationBackup8192 Use naming schema found in other rtlwifi devices. Rename PHY_ScanOperationBackup8192 to rtl92e_scan_op_backup. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit dfb7a12773fb81ef0b15bc8f33297fbd6586fd0c Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:42 2015 +0200 staging: rtl8192e: Rename InitialGain819xPci Use naming schema found in other rtlwifi devices. Rename InitialGain819xPci to rtl92e_init_gain. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 16362f45166d027d2b488314aa2e99acf6073f30 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:41 2015 +0200 staging: rtl8192e: Rename firmware_init_param Use naming schema found in other rtlwifi devices. Rename firmware_init_param to rtl92e_init_fw_param. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 575d48c57532465cc0a2c34ebb6ebccdaf1be783 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:40 2015 +0200 staging: rtl8192e: Rename rtl8192_update_ratr_table Use naming schema found in other rtlwifi devices. Rename rtl8192_update_ratr_table to rtl92e_update_ratr_table. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 072b3948d473f8c4602b8aa51cec54bcbd0ecddb Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:39 2015 +0200 staging: rtl8192e: Rename rtl8192_tx_fill_desc Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_fill_desc to rtl92e_fill_tx_desc. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 5 ++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) commit 63b544a17c63c0d79cd1e5f1bde1e1df06c1d761 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:38 2015 +0200 staging: rtl8192e: Rename rtl8192_tx_fill_cmd_desc Use naming schema found in other rtlwifi devices. Rename rtl8192_tx_fill_cmd_desc to rtl92e_fill_tx_cmd_desc. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 5 ++--- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 5 ++--- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) commit 7897285ceb2864b2073fa3c0526d54187b38a2ec Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:37 2015 +0200 staging: rtl8192e: Rename rtl8192_rx_query_status_desc Use naming schema found in other rtlwifi devices. Rename rtl8192_rx_query_status_desc to rtl92e_get_rx_stats. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 6 ++---- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 6 ++---- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) commit b974b289c4cb8a63b92749ec0c32094609ea571c Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:36 2015 +0200 staging: rtl8192e: Rename rtl8192_link_change Use naming schema found in other rtlwifi devices. Rename rtl8192_link_change to rtl92e_link_change. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit a57165d15dae6fc6a3fb6b8d9d15075816bfbbd3 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:35 2015 +0200 staging: rtl8192e: Rename rtl8192_interrupt_recognized Use naming schema found in other rtlwifi devices. Rename rtl8192_interrupt_recognized to rtl92e_ack_irq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 3 +-- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 3 +-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) commit df85a1313fee7d15db8100cd9a681d484c0c0b7b Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:34 2015 +0200 staging: rtl8192e: Rename rtl8192_InitializeVariables Use naming schema found in other rtlwifi devices. Rename rtl8192_InitializeVariables to rtl92e_init_variables. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit c9cf5e78f3b28e9a1358951a37f2bd844d46641f Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:33 2015 +0200 staging: rtl8192e: Rename rtl8192_HalTxCheckStuck Use naming schema found in other rtlwifi devices. Rename rtl8192_HalTxCheckStuck to rtl92e_is_tx_stuck. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit fe99c77b44e41c64c65ca2d558b26311ae4e6bf3 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:32 2015 +0200 staging: rtl8192e: Rename rtl8192_halt_adapter Use naming schema found in other rtlwifi devices. Rename rtl8192_halt_adapter to rtl92e_stop_adapter. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 4d73bd2636f51aee9c541b2294518af11d5396e4 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:31 2015 +0200 staging: rtl8192e: Rename rtl8192_HalRxCheckStuck Use naming schema found in other rtlwifi devices. Rename rtl8192_HalRxCheckStuck to rtl92e_is_rx_stuck. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 56a5b5af61ac1d55cc3e0b19557e0c774338cf44 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:30 2015 +0200 staging: rtl8192e: Rename rtl8192_GetNmodeSupportBySecCfg Use naming schema found in other rtlwifi devices. Rename rtl8192_GetNmodeSupportBySecCfg to rtl92e_get_nmode_support_by_sec. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 86534a29bb68273a98b1e1c739ea58bf9a93e64a Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:29 2015 +0200 staging: rtl8192e: Rename rtl8192_GetHalfNmodeSupportByAPs Use naming schema found in other rtlwifi devices. Rename rtl8192_GetHalfNmodeSupportByAPs to rtl92e_is_halfn_supported_by_ap. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b095be37004f91f6eecb70cd62da6cc2c2483b87 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:28 2015 +0200 staging: rtl8192e: Rename rtl8192_get_eeprom_size Use naming schema found in other rtlwifi devices. Rename rtl8192_get_eeprom_size to rtl92e_get_eeprom_size. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 89d4a8be6294b8ab7ef218034f5b52f045b31876 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:27 2015 +0200 staging: rtl8192e: Rename rtl8192e_start_beacon Use naming schema found in other rtlwifi devices. Rename rtl8192e_start_beacon to rtl92e_start_beacon. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 61fea239c818631d6f8252c00ffdde60e92c3ad0 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:26 2015 +0200 staging: rtl8192e: Rename rtl8192e_SetHwReg Use naming schema found in other rtlwifi devices. Rename rtl8192e_SetHwReg to rtl92e_set_reg. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 6af7a8b662f6bb5498d6a59b9dbb2b26855add8b Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:25 2015 +0200 staging: rtl8192e: Rename rtl8192_enable_tx Use naming schema found in other rtlwifi devices. Rename rtl8192_enable_tx to rtl92e_enable_tx. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 78c352b2b22348f28edda51fae2d61928fae4450 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:24 2015 +0200 staging: rtl8192e: Rename rtl8192_enable_rx Use naming schema found in other rtlwifi devices. Rename rtl8192_enable_rx to rtl92e_enable_rx. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 6d99c68e6f50241fe400b744b515dcfac6341239 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:23 2015 +0200 staging: rtl8192e: Rename rtl8192_EnableInterrupt Use naming schema found in other rtlwifi devices. Rename rtl8192_EnableInterrupt to rtl92e_enable_irq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit baadea565daae4cfaa46e0764bef3541c949616c Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:22 2015 +0200 staging: rtl8192e: Rename rtl8192_DisableInterrupt Use naming schema found in other rtlwifi devices. Rename rtl8192_DisableInterrupt to rtl92e_disable_irq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit dc578b417facaef65f3e73ba7f97394979cc64a2 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:21 2015 +0200 staging: rtl8192e: Rename rtl8192_ClearInterrupt Use naming schema found in other rtlwifi devices. Rename rtl8192_ClearInterrupt to rtl92e_clear_irq. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 33e1748d8f10b2b4d84a18431999cdf2830ccc71 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:20 2015 +0200 staging: rtl8192e: Rename rtl8192_AllowAllDestAddr Use naming schema found in other rtlwifi devices. Rename rtl8192_AllowAllDestAddr to rtl92e_set_monitor_mode. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 4 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 460266292de1c3770bad54f48e5b33a5fed342e1 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:19 2015 +0200 staging: rtl8192e: Rename rtl8192_adapter_start Use naming schema found in other rtlwifi devices. Rename rtl8192_adapter_start to rtl92e_start_adapter. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 2 +- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 12656e2b8c308d86dbb3b9167db0309f27f90d4f Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:18 2015 +0200 staging: rtl8192e: Rename cmpk_message_handle_tx Use naming schema found in other rtlwifi devices. Rename cmpk_message_handle_tx to rtl92e_send_cmd_pkt. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c | 7 ++----- drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h | 5 ++--- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 5 ++--- 3 files changed, 6 insertions(+), 11 deletions(-) commit 2497ef5b54914d0e90a7a308e442b81d42b0e373 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:17 2015 +0200 staging: rtl8192e: Rename PHY_SetRF8256OFDMTxPower Use naming schema found in other rtlwifi devices. Rename PHY_SetRF8256OFDMTxPower to rtl92e_set_ofdm_tx_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit abfda5886b8bd3569330fae5b1224488375a5c48 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:16 2015 +0200 staging: rtl8192e: Rename PHY_SetRF8256CCKTxPower Use naming schema found in other rtlwifi devices. Rename PHY_SetRF8256CCKTxPower to rtl92e_set_cck_tx_power. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 766b0128266a264395f07830dfad078e1e83d57c Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:15 2015 +0200 staging: rtl8192e: Rename PHY_SetRF8256Bandwidth Use naming schema found in other rtlwifi devices. Rename PHY_SetRF8256Bandwidth to rtl92e_set_bandwidth. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 4 ++-- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit e4a143392686432d147e055e45f09049c09f6755 Author: Mateusz Kulikowski Date: Sun Jul 19 19:27:14 2015 +0200 staging: rtl8192e: Rename PHY_RF8256_Config Use naming schema found in other rtlwifi devices. Rename PHY_RF8256_Config to rtl92e_config_rf. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 2 +- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 2 +- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 547e4c90aee5f4ecfed23a16b621629071e41f05 Author: Neil Horman Date: Tue Jul 21 09:55:48 2015 -0400 staging: unisys: remove bogus error checking The netdev we're testing for can't be removed, because its never unregistered, so don't bother checking for it Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 12 ------------ 1 file changed, 12 deletions(-) commit 15a4d2137077296e22fce2127f8056d6d7f9e785 Author: Neil Horman Date: Tue Jul 21 09:55:47 2015 -0400 staging: unisys: remove visornic_ioctl All it does is return no supported. Removing the function entirely accomplishes the same thing Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 16 ---------------- 1 file changed, 16 deletions(-) commit a42ba26cca4ed183362d5adb5dad227f908b4ddb Author: Neil Horman Date: Tue Jul 21 09:55:46 2015 -0400 staging: unisys: Remove trans_start dev_trans_start does this for us now Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 6 ------ 1 file changed, 6 deletions(-) commit f6346ad662e44d7086bc3c18fc19a33f0b95b576 Author: Neil Horman Date: Tue Jul 21 09:55:45 2015 -0400 staging: unisys: Fix improper use of NETDEV_TX_BUSY Using NETDEV_TX_BUSY is tricky. Its meant for situations where the error in question is transient and quickly resolved. But the driver rarely is able to know that to a certainty. And in the case of visornic, it just uses it without any care for that, in the hopes that it won't loose frames, even if the problem is that the skb is somehow malformed for the hardware. If we get one of those kinds of skbs, NETDEV_TX_BUSY will just cause us to spin, processing the same error over and over. Fix it by dropping the frame, stopping the queue where appropriate, and returning NETDEV_TX_OK Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 35a8dd310efbbcec37de2da6301f9bdaf83b2632 Author: Neil Horman Date: Tue Jul 21 09:55:44 2015 -0400 staging: unisys: Remove some extraneous start/stop queue operations If we put them in the enable and disable paths, we don't need them in several other places Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit 0c677e9c24935bdca8ed72b96f7e762c95fc8bd3 Author: Neil Horman Date: Tue Jul 21 09:55:43 2015 -0400 staging: unisys: Change enable/disable to wait forever I don't see why the server should stop responding, or that we should just give up if it does. Wait forever when enabling/disabling the visornic Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit ace72eef40e8b5f0e3b3916e2dee2d146711ca2e Author: Neil Horman Date: Tue Jul 21 09:55:42 2015 -0400 staging: unisys: Make serverdown synchronous I don't see why serverdown should be async on a workqueue. Just make it synchronous, and remove some code in the process Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) commit 0d5073935a662564d46dff071874fe2cab11c651 Author: Neil Horman Date: Tue Jul 21 09:55:41 2015 -0400 staging: unisys: simplify visornic_serverdown_complete Theres a lot of code duplication going on in visornic_serverdown_complete. We should just be able to send it through the dev_close path and have it do the right things. Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 36 ++++++------------------- 1 file changed, 8 insertions(+), 28 deletions(-) commit 8cf12de41bb772fccd2807780ad23639e4fcce89 Author: Neil Horman Date: Tue Jul 21 09:55:40 2015 -0400 staging: unisys: Guard against task leakage Its possible to overwrite the old task pointer in visornic_resume. Add a check to guard against that and a warning if we find that its already running Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 87a9404ef0be2aac949fdb8854e71d100859f6f5 Author: Neil Horman Date: Tue Jul 21 09:55:39 2015 -0400 staging: unisys: Clean up kthread usage Remove the has_stopped completion as theres already one available internally. Correct the while loops Remove the while loop in drain_queue as it already exists in the top level loop Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 182 +++++++++++------------- 1 file changed, 86 insertions(+), 96 deletions(-) commit 513e1cbda230c626bc01492f440805c4a88632d7 Author: Neil Horman Date: Tue Jul 21 09:55:38 2015 -0400 staging: unisys: Linarize skbs If we can't fit an skb into a frag array, linaraize it so we don't have to Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 998ff7f85d2a4923cf8e49319957bb2a70f8b881 Author: Neil Horman Date: Tue Jul 21 09:55:37 2015 -0400 staging: unisys: BUG halt on error in I/O channel We precheck that we have enough space in an iochannel prior to writing to it when we send in a fragmented skb. Given that there is no recovery from this condition that I can see, turn it into a BUG halt Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit ce657aa81005ddfbdd9c89ec9de31ff713c05ea6 Author: Neil Horman Date: Tue Jul 21 09:55:36 2015 -0400 staging: unisys: Check return code properly on visor_copy_fragsinfo_from_skb One call site for visor_copy_fragsinfo_from_skb was checking for an rc of -1, but thhe function doesn't return that, it returns -errno. Correct it Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52b1660d3b3a7fc967ba9d9b641b594fa1ac33d7 Author: Neil Horman Date: Tue Jul 21 09:55:35 2015 -0400 staging: unisys: Remove num_visornic_open array As pointed out in a recent review, the num_visornic_open array didn't do anything useful, and it exposed a potential race in the visornic code that could arise while taking down a net interface while reading from the debugfs files. Fix that by removing the array entirely, and just iterating over all the registered netdevs in a given namespace, filtering on them having visornic ops (to identify which are ours), and having their queues not be stopped (identifying that they are up). This should prevent any oops conditions happening due to changing state in that array, and save us a bunch of code too. Signed-off-by: Neil Horman Signed-off-by: Benjamin Romer Acked-by: Neil Horman Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 341 +++++++++++------------- 1 file changed, 154 insertions(+), 187 deletions(-) commit 80a60777d7e60e59e4deb756dc0e3989fe520f84 Author: Steve Pennington Date: Wed Jul 22 12:50:11 2015 -0500 staging: rtl8723au: fix incorrect type in assignment warning Repaced calls to htons and memcpy with a single call to put_unaligned_be16 to fix the following sparse warning: drivers/staging/rtl8723au/core/rtw_recv.c:1557:21: warning: incorrect type in assignment (different base types) drivers/staging/rtl8723au/core/rtw_recv.c:1557:21: expected unsigned short [unsigned] [assigned] [usertype] len drivers/staging/rtl8723au/core/rtw_recv.c:1557:21: got restricted __be16 [usertype] Signed-off-by: Steve Pennington Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/core/rtw_recv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 56fa2ece881348d314800b858581f2ae950f8e20 Author: Jon Medhurst (Tixy) Date: Fri Jul 17 12:01:29 2015 +0100 staging: ion: ion_cma_heap: Don't directly use dma_common_get_sgtable Use dma_get_sgtable rather than dma_common_get_sgtable so a device's dma_ops aren't bypassed. This is essential in situations where a device uses an IOMMU and the physical memory is not contiguous (as the common function assumes). Signed-off-by: Jon Medhurst Reviewed-by: Robin Murphy Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_cma_heap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit b20691652b8c09992096490d9dd11319c1e7ce5e Author: Stuart Yoder Date: Thu Jul 16 12:50:50 2015 -0500 staging: fsl-mc: update TODO list update TODO list to provide more detail on remaining work Signed-off-by: Stuart Yoder Signed-off-by: Greg Kroah-Hartman drivers/staging/fsl-mc/TODO | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) commit d0dcaa8d4eff40b2999d5265f2218c29e82e24cc Author: Dan Carpenter Date: Sun Jul 19 13:52:33 2015 +0300 Staging: rtl8192e: pointer math bug in rtllib_rx_DELBA() The pointer math here was totally wrong so we were reading nonsense information from beyond the end of the buffer. It could lead to an oops if that memory wasn't mapped. The "pReasonCode" pointer is assigned but never used so I deleted it. With-Fix-From: Mateusz Kulikowski Signed-off-by: Dan Carpenter Acked-by: Mateusz Kulikowski Tested-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_BAProc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 2ee4c3dc55f6b83934cdf53c8563f5667d91ff91 Author: Luis de Bethencourt Date: Mon Jul 20 18:36:18 2015 +0200 staging: rtl8192u: remove unneeded bool bool Reval is set to match the value of bHalfWirelessN24GMode just to this. The value can be returned directly. Removing uneeded bool. Signed-off-by: Luis de Bethencourt Suggested-by: Joe Perches Suggested-by: Franks Klaver Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/r8192U_core.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) commit f9bd549aa99a12e42b8811efa3cb7d8c3d084a20 Author: Luis de Bethencourt Date: Mon Jul 20 18:35:42 2015 +0200 staging: rtl8192u: remove bool comparisons Remove explicit true/false comparisons to bool variables. Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c | 4 ++-- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 2 +- drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c | 4 ++-- drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c | 12 ++++++------ drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 14 +++++++------- drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c | 2 +- drivers/staging/rtl8192u/r8192U_core.c | 7 ++++--- drivers/staging/rtl8192u/r8192U_dm.c | 8 ++++---- 8 files changed, 27 insertions(+), 26 deletions(-) commit 047db9915ed576e817eb02c1d1cf037c49856b59 Author: Dan Carpenter Date: Sun Jul 19 13:52:17 2015 +0300 Staging: rtl8192u: pointer math bug in ieee80211_rx_DELBA() Smatch complains because "delba" is a pointer to struct rtl_80211_hdr_3addr so the "delba += sizeof(struct rtl_80211_hdr_3addr);" is clearly wrong. We are reading nonsense data from beyond the end of the buffer and could oops if that memory isn't mapped. It turns out the next two statements are also wrong. We should delete the += sizeof() statement and "delba+2" should be "&delba->payload[2]". "pReasonCode" isn't used so I deleted that. With-Fix-From: Mateusz Kulikowski Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 0a32bd33ed3e03258e255a5b580ce7b3f514763e Author: Sudip Mukherjee Date: Tue Jul 21 18:57:28 2015 +0530 staging: rtl8188eu: remove multiple blank line Multiple blank lines should be avoided. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 4 ---- 1 file changed, 4 deletions(-) commit e0732f84b40bc7219d077ddd69b5cc03ec6e7838 Author: Sudip Mukherjee Date: Tue Jul 21 18:57:27 2015 +0530 staging: rtl8188eu: dont mix success and error path Success and error path was mixed. Separate them by directly returning 0 from the success path. In the process remove the variable which became unused. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 705a31369845d7ad522dc9bce6ca430831ff0454 Author: Sudip Mukherjee Date: Tue Jul 21 18:57:26 2015 +0530 staging: rtl8188eu: check for kzalloc failure Check for kzalloc failure and directly return from the error patch thus simplifying the success path. Suggested-by: Dan Carpenter Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 586b06328c16c04a7040c92b7a13aea0447e35ec Author: Sudip Mukherjee Date: Tue Jul 21 18:57:25 2015 +0530 staging: rtl8188eu: remove label Directly return NULL instead of using another label and goto. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8da24c93327037a6fb1f760f5fc70e33c9abaefb Author: Sudip Mukherjee Date: Tue Jul 21 18:57:24 2015 +0530 staging: rtl8188eu: remove unused define _HCI_INTF_C_ was only defined here but not being used anywhere. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 1 - 1 file changed, 1 deletion(-) commit 9a2c874c51df5ed29d482b5294541f06a6f24328 Author: Antoine BLIN Date: Fri Jul 17 15:04:34 2015 +0200 staging: sm750fb: ddk750_power.c: Split lines over 80 characters. Fix up "line over 80 characters" warning found by the checkpatch.pl script. Signed-off-by: Antoine BLIN Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_power.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit 9d7a0ffe6d83fcafac7825fe589f856a772f7389 Author: Aaron Ouellette Date: Thu Jul 16 21:21:16 2015 -0400 staging: sm750fb: removed extra parentheses fixed checkpatch.pl error: ERROR: return is not a function, parentheses are not needed Signed-off-by: Aaron Ouellette Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_power.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5a372df8661113b8aa36f4eb29d4b969d1d3db4 Author: Bernd Porr Date: Wed Jul 22 18:46:39 2015 +0100 staging/comedi/drivers/usbduxsigma.c: added support for ehci drivers urb->interval is deprecated and thus I've changed the driver that it now always assumes interval=1 which means every frame in USB 1.1 and every uframe in USB 2.0. However we still need to have different sampling rates which are still multiples of the interval which is now transmitted to the firmware. The firmware transmits either zero length packets or none every (u)frame. This is checked in the completion handler and any packet at zero length is discarded so that comedi again sees the data coming in at the interval specified. This also then gives the ADC the necessary time to convert. For example 16 channels require about 700us and in this period no packet could be transmitted. In this case this is padded up to 1ms so that we have then 7 zero length packets and one packet with the ADC data. Signed-off-by: Bernd Porr Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 71 ++++++++++++++-------------- 1 file changed, 35 insertions(+), 36 deletions(-) commit e73063c5407b6ffe09dc0f7c11970113bf55e6fc Author: Bernd Porr Date: Wed Jul 22 18:45:55 2015 +0100 staging/comedi/drivers/usbduxsigma.c: updated address details Changed my e-mail address to mail@berndporr.me.uk. The old one is no longer used. Signed-off-by: Bernd Porr Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/usbduxsigma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d258bf054a446c77a9cb7fa31dc4518ba2f1861d Author: Chandra S Gorentla Date: Mon Jul 20 16:53:15 2015 +0530 staging: comedi: drivers: pcl816.c remove leading space Checkpatch.pl warning - suspect code indent for conditional statements - is corrected Signed-off-by: Chandra S Gorentla Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/pcl816.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03c44dd62e4f947516929c3ba0734027c3a26708 Author: Malcolm Priestley Date: Wed Jul 22 19:16:47 2015 +0100 staging: vt6655: desc.h remove dead strctures Remove these unsed structures. typedef struct tagSTxSyncDesc typedef struct tagSRrvTime_atim typedef struct tagSTxBufHead typedef struct tagSBEACONCtl typedef struct tagSSecretKey typedef struct tagSKeyEntry Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 59 ------------------------------------------- 1 file changed, 59 deletions(-) commit c5c7bd269d52d1d6708053d1a8521779e98b4989 Author: Malcolm Priestley Date: Wed Jul 22 19:16:46 2015 +0100 staging: vt6655: s_cbFillTxBufHead replace STxBufHead vnt_tx_fifo_head has now replaced STxBufHead Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d5806c53fe7805ebf4934debbe21fc42f78840f4 Author: Malcolm Priestley Date: Wed Jul 22 19:16:45 2015 +0100 staging: vt6655: always set 32 bit dma mask The device is limited to 32 bit address space. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 1cf0a47c8c4986b8fa946156a19f7b02dc303a43 Author: Malcolm Priestley Date: Wed Jul 22 19:16:44 2015 +0100 staging: vt6655: fix tagTDES1 -> wReqCount type should be __le16 Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7135d9a76f787f089faad0e08bdef259cb019d64 Author: Malcolm Priestley Date: Wed Jul 22 19:16:43 2015 +0100 staging: vt6655: Fix wReqCount to __le16 Should be __le16 and do and correct endian conversion. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/card.c | 8 ++++---- drivers/staging/vt6655/desc.h | 6 +++--- drivers/staging/vt6655/dpc.c | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) commit f1e3e92135202ff3d95195393ee62808c109208c Author: Malcolm Priestley Date: Wed Jul 22 19:16:42 2015 +0100 staging: vt6655: fix tagSRxDesc -> next_desc type Should always be __le32 Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f0fb87fba09473e6b39e351c7da59b4faa9a4fcf Author: Malcolm Priestley Date: Wed Jul 22 19:16:41 2015 +0100 staging: vt6655: Fix tagSRxDesc -> buff_addr type Should always be __le32. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db1ade7cee35a2d22653811c67cd4d9c60c8a4ad Author: Malcolm Priestley Date: Wed Jul 22 19:16:40 2015 +0100 staging: vt6655: remove unused tagDEVICE_RD_INFO -> curr_desc variable is assigned a value that is never used. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 1 - drivers/staging/vt6655/device_main.c | 2 -- 2 files changed, 3 deletions(-) commit 5fa9d9898d370789f12af420c118159a23f166e8 Author: Malcolm Priestley Date: Wed Jul 22 19:16:39 2015 +0100 staging: vt6655: fix tagSTxDesc -> next_desc type Should always be __le32 type Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75a8eee2d71e6abe9e25a20c8e3c16c53489c90e Author: Malcolm Priestley Date: Wed Jul 22 19:16:38 2015 +0100 staging: vt6655: fix tagDEVICE_TD_INFO -> buff_addr type Should always be __le32 type Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eae6377eb01d6b8a6cb3f1047ae35829e22e4e04 Author: Malcolm Priestley Date: Wed Jul 22 19:16:37 2015 +0100 staging: vt6655: Remove unused tagDEVICE_TD_INFO curr_desc The variable is assigned a value that is never used. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 1 - drivers/staging/vt6655/device_main.c | 2 -- 2 files changed, 3 deletions(-) commit 06f716a57e6d7dc8f7638ea8c19a9a4cdf46ed23 Author: Malcolm Priestley Date: Wed Jul 22 19:16:36 2015 +0100 staging: vt6655: remove unnecessary variable skb_dma skb_dma flips from 0 to the contents buf_dma. This is nolonger necessary so use buf_dma directly and remove skb_dma altogether. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/desc.h | 1 - drivers/staging/vt6655/device_main.c | 3 +-- drivers/staging/vt6655/rxtx.c | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) commit 3a00033ee8697e2e0acf07d03dbea55c4b7236ca Author: Malcolm Priestley Date: Wed Jul 22 19:16:35 2015 +0100 staging: vt6655: dead code tx path remove dma_unmap_single When pTDInfo->skb_dma not equal to pTDInfo->buf_dma, pTDInfo->skb_dma equals zero. as mentioned in comment pre-allocated buf_dma can't be unmapped so remove dead code. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 14 -------------- 1 file changed, 14 deletions(-) commit fd43585b6405a0b7c6e5ad3c1bcbb32cf186a5a9 Author: Malcolm Priestley Date: Wed Jul 22 19:16:34 2015 +0100 staging: vt6655: remove unused DBG_PORT80 and VIAWET_DEBUG VIAWET_DEBUG is never defined so DBG_PORT80 is empty and never used. Remove both macros. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/baseband.c | 2 -- drivers/staging/vt6655/device_cfg.h | 6 ------ drivers/staging/vt6655/mac.c | 17 ----------------- 3 files changed, 25 deletions(-) commit 217ed3abf1510747590aaa5da93217e559fd8e19 Author: Malcolm Priestley Date: Wed Jul 22 19:16:33 2015 +0100 staging: vt6655: Remove ununsed macro ASSERT VIAWET_DEBUG is not defined so macro is empty. Remove the macro. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/baseband.c | 4 +--- drivers/staging/vt6655/card.c | 1 - drivers/staging/vt6655/device_cfg.h | 9 --------- drivers/staging/vt6655/device_main.c | 9 ++++----- drivers/staging/vt6655/mac.c | 1 - drivers/staging/vt6655/rxtx.c | 1 - 6 files changed, 5 insertions(+), 20 deletions(-) commit 83aa2ac65a36e77f5651ef8946003b856cab49bc Author: Cihangir Akturk Date: Wed Jul 22 15:59:32 2015 +0300 staging: lustre: obdclass: Make structure declerations static const obd_device_list_sops and obd_device_list_fops are not referenced outside of linux-module.c, and in the general use case struct file_operations and struct seq_operations should be a const object, so make them static and const. This patch fixes the following sparse warnings: WARNING: struct seq_operations should normally be const WARNING: struct file_operations should normally be const Signed-off-by: Cihangir Akturk Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/linux/linux-module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3377bad9c7ea427c002173ffcee6fc6a14833739 Author: Cihangir Akturk Date: Tue Jul 21 10:22:52 2015 +0300 staging: lustre: ldlm: Make function static. target_send_reply_msg function is not referenced outside of ldlm_lib.c file, so make it static. Signed-off-by: Cihangir Akturk Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9a2477c2cabddf6fa52eda49502017191b34acb6 Author: Kolbeinn Karlsson Date: Sun Jul 19 16:23:19 2015 -0400 staging: lustre: make functions only used locally static Add a static modifier to two functions that have no separate declaration and are only used within the file they are defined in. This problem was reported by sparse. Signed-off-by: Kolbeinn Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/events.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e5c2f7b56e9e37e3b54910164ce73b11f207f19d Author: Miguel Bernabeu Diaz Date: Fri Jul 17 01:39:21 2015 +0200 staging: lustre: Fix style error with decorator Fixed checkpatch.pl error: ERROR: "(foo*)" should be "(foo *)" Signed-off-by: Miguel Bernabeu Diaz Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e02bea82b4e6c1eebeac6e6f4ecb93e9c2aa8c0 Author: Nikhil Badola Date: Tue Jul 14 17:28:47 2015 +0530 drivers: usb: fsl: Define usb control register mask for w1c bits Define and use CONTROL_REGISTER_W1C_MASK to make sure that w1c bits of usb control register do not get reset while writing any other bit Signed-off-by: Nikhil Badola Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-fsl.c | 25 ++++++++++++++++--------- drivers/usb/host/ehci-fsl.h | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) commit f4fdfaa280a284be8a056d6840cdbbf42c05bf95 Author: Nikhil Badola Date: Tue Jul 14 17:28:10 2015 +0530 drivers: usb: fsl: Modify phy clk valid bit checking Phy_clk_valid bit is checked only when the boolean property phy-clk-valid in present in usb node device tree. This property is added to the usb node via device tree fixup. Signed-off-by: Nikhil Badola Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-fsl.c | 16 ++++++++-------- drivers/usb/host/fsl-mph-dr-of.c | 9 +++++++++ include/linux/fsl_devices.h | 1 + 3 files changed, 18 insertions(+), 8 deletions(-) commit 6009d95e04cf74c6f80db56fddca21fea476ad24 Author: Nikhil Badola Date: Mon Jun 15 15:48:22 2015 +0530 drivers:usb:fsl: Introduce FSL_USB2_PHY_UTMI_DUAL macro Introduce FSL_USB2_PHY_UTMI_DUAL macro for setting phy mode in SOCs such has T4240, T1040, T2080 which have utmi dual-phy Signed-off-by: Ramneek Mehresh Signed-off-by: Nikhil Badola Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-fsl.c | 1 + drivers/usb/host/fsl-mph-dr-of.c | 2 ++ include/linux/fsl_devices.h | 1 + 3 files changed, 4 insertions(+) commit 523f1dec58408b36e7683a3d61a0286eed1fc1c8 Author: Nikhil Badola Date: Mon Jun 15 15:47:29 2015 +0530 drivers: usb :fsl: Implement Workaround for USB Erratum A007792 USB controller version-2.5 requires to enable internal UTMI phy and program PTS field in PORTSC register before asserting controller reset. This is must for successful resetting of the controller and subsequent enumeration of usb devices Signed-off-by: Nikhil Badola Signed-off-by: Suresh Gupta Signed-off-by: Greg Kroah-Hartman drivers/usb/host/ehci-fsl.c | 9 +++++++++ drivers/usb/host/fsl-mph-dr-of.c | 6 ++++++ include/linux/fsl_devices.h | 1 + 3 files changed, 16 insertions(+) commit 38aa420096e565fe9c98f9d9475fd168114501a9 Author: Nikhil Badola Date: Mon Jun 15 15:46:37 2015 +0530 drivers:usb:fsl: Replace macros with enumerated type Replace macros with enumerated type to represent usb ip controller version Signed-off-by: Nikhil Badola Signed-off-by: Greg Kroah-Hartman drivers/usb/host/fsl-mph-dr-of.c | 8 ++++---- include/linux/fsl_devices.h | 16 ++++++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) commit 5fd3fc1c5384fe420ead51f41662ba563336fbea Author: Phil Edworthy Date: Mon Jul 13 16:30:18 2015 +0100 usb: renesas_usbhs: Allow an OTG PHY driver to provide VBUS These changes allow a PHY driver to trigger a VBUS interrupt and to provide the value of VBUS. Signed-off-by: Phil Edworthy Reviewed-by: Laurent Pinchart Signed-off-by: Greg Kroah-Hartman drivers/usb/renesas_usbhs/mod_gadget.c | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit f1d28f0b392628fbd263ad833469caeb052cb084 Merge: ea7b44b da104dc Author: Olof Johansson Date: Wed Jul 22 16:28:37 2015 -0700 Merge tag 'omap-for-v4.3/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/defconfig Merge "defconfig changes for v4.3" from Tony Lindgren: Few defconfig changes for omap2plus_defconfig to enable SPI NOR, CPTS, touchscreen and ADC used on am335x, am437x and ra7 devices. * tag 'omap-for-v4.3/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: omap2plus_defconfig: enable support for M25P80 SPI NOR ARM: omap2plus_defconfig: enable support for TI CPTS ARM: omap2plus_defconfig: enable support for TI touchscreen ARM: omap2plus_defconfig: enable support for TI ADC Signed-off-by: Olof Johansson commit 9521f492f06b435a9b6d4f901f031b0f5d923a76 Merge: cd39275 7fcf7e0 Author: Olof Johansson Date: Wed Jul 22 16:26:03 2015 -0700 Merge tag 'omap-for-v4.3/legacy-v2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup Merge "drop few more legacy boards for v4.3" from Tony Lindgren: Drop more omap3 legacy board-*.c files for v4.3. This time we're dropping the board files for omap3logic and omap3pandora. The reason for dropping these now rather than later is that now we can simply revert the patches in case of unexpected issues as we are not dropping any platform data at this point. This leaves us with only the following board-*.c files: BOARD REASON NEEDED board-ldp.c Still used in RMKs boot test system board-rx51-*.c Needs /proc/atags support for user space Once we have the n900 legacy user space issues sorted out for /proc/atags and system_rev, we can drop the remaining two board-*.c files. And then one merge window after that we can drop the legacy booting support assuming no unexpected issues are found. * tag 'omap-for-v4.3/legacy-v2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: Remove legacy booting support for Pandora ARM: OMAP2+: Remove legacy booting support for LogicPD Torpedo Signed-off-by: Olof Johansson commit 9e3cffd8772adf8e22f7d92b260708ed5add751f Merge: 7d132de f9d50fe Author: Olof Johansson Date: Wed Jul 22 16:25:04 2015 -0700 Merge tag 'omap-for-v4.3/dt-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Merge "omap dts changes for v4.3, part2" from Tony Lindgren: More omap dts changes for v4.3 merge window: - Add missing devices for pandora. Note that we're adding wl1251 WLAN and LCD backlight support for now using legacy pdata as that allows us to drop the legacy board file for pandora in another series of patches - Enable power button support for omap5-uevm - Add aliases for am437x UARTs - Add support for phyCORE phyBOARD-WEGA-AM335x rdk and phyCORE-AM335x SoM - Use u16 values for tsc2046 on omap3-lilly * tag 'omap-for-v4.3/dt-pt2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: omap3-pandora: add wifi support ARM: OMAP2+: omap3-pandora: add backlight support ARM: dts: omap3-pandora: add support for usb host and 32k buffer ARM: dts: omap3-pandora: miscellaneous corrections ARM: dts: omap5-uevm: Add Palmas power button support ARM: dts: am437x: add aliases for all UART instances ARM: dts: Add phyBOARD-WEGA-AM335x rdk ARM: dts: Add support for phyCORE-AM335x SoM ARM: dts: omap3: correct the format of u16 values for tsc2046 node Signed-off-by: Olof Johansson commit 0ff818eff55aa80cb00bb3d89e824dd568d5a7f8 Author: Joachim Eastwood Date: Thu Jul 23 00:10:37 2015 +0200 memory: pl172: fix modular build Building pl172 as a module fails with: > ERROR: "of_default_bus_match_table" [drivers/memory/pl172.ko] undefined! Because the symbol of_default_bus_match_table isn't exported by the OF core code so can't be referenced from modules. Fix this by removing the usage of of_default_bus_match_table for now. The side effect of this is that child nodes can't use "simple-bus" or "simple-mfd". Reported-by: Mark Brown Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson drivers/memory/pl172.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e616b39a16d4458224d91697b0a2599336f0c38c Author: Sunny Kumar Date: Tue Jul 7 12:27:03 2015 +0530 usb: usleep_range is preferred over udelay where wakeup is flexible According to Documentation/timers/timers-howto.txt" udelay() is only called once from a place where sleeping is allowed. We can replace it with a call to usleep_range() with a reasonable upper limit. Signed-off-by: Sunny Kumar Signed-off-by: Greg Kroah-Hartman drivers/usb/storage/transport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 655fe4effe0f1f40e4f6ca6b3cc64a7fe0032183 Author: Kevin Strasser Date: Tue Jun 16 10:35:30 2015 -0700 usbcore: add sysfs support to xHCI usb3 hardware LPM Add a sysfs node to make it easier to verify if LPM is supported and being enabled for USB 3.0 devices. Signed-off-by: Kevin Strasser Signed-off-by: Greg Kroah-Hartman Documentation/ABI/testing/sysfs-bus-usb | 14 ++++++++++++++ Documentation/usb/power-management.txt | 15 +++++++++++++-- drivers/usb/core/hub.c | 4 ++++ drivers/usb/core/sysfs.c | 31 +++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) commit eb4861c3cef7f745df0d2a26b0f4287da0190424 Author: Hauke Mehrtens Date: Thu Jun 11 22:57:40 2015 +0200 USB: bcma: add support for controlling bus power through GPIO On some boards a GPIO is needed to activate USB controller. Make it possible to specify such a GPIO in device tree. Signed-off-by: Felix Fietkau Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 10bc04b744c69f253dfe47bc143325349ce8becc Author: Hauke Mehrtens Date: Thu Jun 11 22:57:39 2015 +0200 USB: bcma: add bcm53xx support The Broadcom ARM SoCs with this usb core need a different initialization and they have a different core id. This patch adds support for these USB 2.0 core. Signed-off-by: Felix Fietkau Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 81 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) commit ab2de5793080dfb9f191ca71068b9f476a55a0f4 Author: Hauke Mehrtens Date: Thu Jun 11 22:57:38 2015 +0200 USB: bcma: fix error handling in bcma_hcd_create_pdev() This patch makes bcma_hcd_create_pdev() not return NULL, but a prober error code in case of an error. Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c27da2b22b558390acc515e71e47b1b307f85d5a Author: Hauke Mehrtens Date: Thu Jun 11 22:57:37 2015 +0200 USB: bcma: use devm_kzalloc Instead of manually handling the frees use devm. There was also a free missing in the unregister call which is not needed with devm. Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 98e13e05a1bab82c3bec1d867159bc8384acbe5b Author: Hauke Mehrtens Date: Thu Jun 11 22:57:36 2015 +0200 USB: bcma: replace numbers with constants The constants for these numbers were added long time ago, use them. Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7e4a4da67255d92620ba59b461b5bc295db28dae Author: Hauke Mehrtens Date: Thu Jun 11 22:57:35 2015 +0200 USB: bcma: remove chip id check I have never seen any bcma device with an USB host core which was not a SoC, the bcma devices have an USB device core with a different core id. Some SoC have IDs with 47XX and 53XX in decimal form which would be rejected by this check. Instead of fixing this check just remove it. Signed-off-by: Hauke Mehrtens Signed-off-by: Greg Kroah-Hartman drivers/usb/host/bcma-hcd.c | 5 ----- 1 file changed, 5 deletions(-) commit 0faaad461547e2412e9b519cd757a99b3ebc1302 Author: Kris Borer Date: Tue Jul 14 09:28:30 2015 -0400 usb: move assignment out of if condition Fix four occurrences of checkpatch.pl error: ERROR: do not use assignment in if condition The semantic patch that makes this change is: // @@ identifier i; expression E; statement S; constant c; binary operator b; @@ + i = E; if ( - (i = E) + i b c ) S @@ identifier i, i2; expression E1, E2; constant c; @@ + if( E1->i ) { + i2 = E2; + if (i2 < c) { - if( E1->i && (i2 = E2) < c ) { ... - } + } + } // Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/hcd.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 9a54f98e341d09793247a6e598012edefb5ae7cb Author: Paul E. McKenney Date: Tue Jul 14 16:24:14 2015 -0700 rcu: Don't disable CPU hotplug during OOM notifiers RCU's rcu_oom_notify() disables CPU hotplug in order to stabilize the list of online CPUs, which it traverses. However, this is completely pointless because smp_call_function_single() will quietly fail if invoked on an offline CPU. Because the count of requests is incremented in the rcu_oom_notify_cpu() function that is remotely invoked, everything works nicely even in the face of concurrent CPU-hotplug operations. Furthermore, in recent kernels, invoking get_online_cpus() from an OOM notifier can result in deadlock. This commit therefore removes the call to get_online_cpus() and put_online_cpus() from rcu_oom_notify(). Reported-by: Marcin Ślusarz Reported-by: David Rientjes Signed-off-by: Paul E. McKenney Acked-by: David Rientjes Tested-by: Marcin Ślusarz kernel/rcu/tree_plugin.h | 2 -- 1 file changed, 2 deletions(-) commit 3ad81779ad35cd2e2ab34ba3f47f6f485696a105 Author: Paul E. McKenney Date: Thu Jul 2 11:55:40 2015 -0700 scripts: Make checkpatch.pl warn on expedited RCU grace periods The synchronize_rcu_expedited() and synchronize_sched_expedited() expedited-grace-period primitives induce OS jitter, which can degrade real-time response. This commit therefore adds a checkpatch.pl warning on any patch adding them. Note that this patch does not warn on synchronize_srcu_expedited() because it does not induce OS jitter, courtesy of its otherwise much-maligned read-side memory barriers. Signed-off-by: Paul E. McKenney Cc: Andy Whitcroft Cc: Joe Perches scripts/checkpatch.pl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 96a39bc434f94e213df43859fb8b01acda902634 Author: Lai Jiangshan Date: Wed Jul 1 15:26:27 2015 +0800 rcu: Update MAINTAINERS entry This commit updates Lai Jiangshan's email address because the old laijs@cn.fujitsu.com address will expire after July 10, 2015. Signed-off-by: Lai Jiangshan Signed-off-by: Lai Jiangshan Signed-off-by: Paul E. McKenney MAINTAINERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit eb6d5b0a5c64192ec13914caef1b87a9aa520d66 Author: Paul E. McKenney Date: Tue Jun 30 09:56:31 2015 -0700 rcu: Clarify CONFIG_RCU_EQS_DEBUG help text Reported-by: Geert Uytterhoeven Signed-off-by: Paul E. McKenney lib/Kconfig.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a76a9a485d730024a7cbd76efcd9c6eb46003829 Author: Paul E. McKenney Date: Tue Jun 30 08:17:40 2015 -0700 rcu: Fix backwards RCU_LOCKDEP_WARN() in synchronize_rcu_tasks() The RCU_LOCKDEP_WARN() in synchronize_rcu_tasks() triggers if the scheduler is active, which is backwards. This commit therefore negates the test. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney kernel/rcu/update.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f78f5b90c4ffa559e400c3919a02236101f29f3f Author: Paul E. McKenney Date: Thu Jun 18 15:50:02 2015 -0700 rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN() This commit renames rcu_lockdep_assert() to RCU_LOCKDEP_WARN() for consistency with the WARN() series of macros. This also requires inverting the sense of the conditional, which this commit also does. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Reviewed-by: Ingo Molnar Documentation/RCU/whatisRCU.txt | 2 +- arch/x86/kernel/cpu/mcheck/mce.c | 6 ++-- arch/x86/kernel/traps.c | 2 +- drivers/base/power/opp.c | 4 +-- include/linux/fdtable.h | 4 +-- include/linux/rcupdate.h | 63 ++++++++++++++++++++++++++-------------- kernel/cgroup.c | 4 +-- kernel/pid.c | 5 ++-- kernel/rcu/srcu.c | 10 +++---- kernel/rcu/tiny.c | 8 ++--- kernel/rcu/tree.c | 28 +++++++++--------- kernel/rcu/tree_plugin.h | 8 ++--- kernel/rcu/update.c | 4 +-- kernel/sched/core.c | 8 ++--- kernel/workqueue.c | 20 ++++++------- security/device_cgroup.c | 6 ++-- 16 files changed, 101 insertions(+), 81 deletions(-) commit 46f00d18fca42cc954c2e9e99a48b6f3a7741ed7 Author: Alexei Starovoitov Date: Tue Jun 16 10:35:18 2015 -0700 rcu: Make rcu_is_watching() really notrace Although rcu_is_watching() is marked notrace, it invokes preempt_disable() and preempt_enable(), both of which can be traced. This defeats the purpose of the notrace on rcu_is_watching(), so this commit substitutes preempt_disable_notrace() and preempt_enable_notrace(). Signed-off-by: Alexei Starovoitov Signed-off-by: Paul E. McKenney Acked-by: Steven Rostedt kernel/rcu/tree.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 779de6ce54f627f955d4a3d0c5b3dcfaab74fea8 Author: Paul E. McKenney Date: Wed Jun 10 13:34:41 2015 -0700 cpu: Wait for RCU grace periods concurrently In kernels built with CONFIG_PREEMPT, _cpu_down() waits for RCU and RCU-sched grace periods back-to-back, incurring quite a bit more latency than required. This commit therefore uses the new synchronize_rcu_mult() to allow waiting for both grace periods concurrently. Signed-off-by: Paul E. McKenney kernel/cpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit ec90a194ae2cb8b8e9fe4f6f70dd3d4dc0269b4b Author: Paul E. McKenney Date: Wed Jun 10 12:53:06 2015 -0700 rcu: Create a synchronize_rcu_mult() There have been several requests for a primitive that waits for grace periods for several RCU flavors concurrently, so this commit creates it. This is a variadic macro, and you pass in the call_rcu() functions of the flavors of RCU that you wish to wait for. Note that you cannot pass in call_srcu() for two reasons: (1) This would result in a type mismatch and (2) You need to specify which srcu_struct you want to use. Handle this by creating a wrapper function for your SRCU domain, for example: void call_srcu_mine(struct rcu_head *head, rcu_callback_t func) { call_srcu(&ss_mine, head, func); } You can then do something like this: synchronize_rcu_mult(call_srcu_mine, call_rcu, call_rcu_sched); Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 35 +++++++++++++++++++++++++++++++---- include/linux/types.h | 3 +++ kernel/rcu/update.c | 37 +++++++++++++++++++++++++++---------- 3 files changed, 61 insertions(+), 14 deletions(-) commit bc17ea1092c48227334a311a130c1a41966333fe Author: Paul E. McKenney Date: Sat Jun 6 08:11:43 2015 -0700 rcu: Fix obsolete priority-boosting comment Tasks are no longer migrated to the root rcu_node, so there is no longer any need for a boost kthread for the root rcu_node, and there no longer is such a kthread. This commit therefore fixes the comment in rcu_boost_kthread()'s header to reflect this new reality. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 155d1d12786386d21732f9bba036343ffa43847d Author: Peter Zijlstra Date: Tue Jun 2 17:26:48 2015 +0200 rcu: Use WRITE_ONCE in RCU_INIT_POINTER For the paranoid amongst us GCC would be in its right to use byte stores to write our NULL value, tell it not to do that. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be55fa2ad244678beed11d2827d88b7f80ff4730 Author: Paul E. McKenney Date: Tue Jun 2 05:29:18 2015 -0700 rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT This commit prevents Kconfig from asking the user about RCU_NOCB_CPU unless the user really wants to be asked. Reported-by: Ingo Molnar Signed-off-by: Paul E. McKenney Cc: Steven Rostedt Cc: Sebastian Andrzej Siewior Cc: Thomas Gleixner init/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 24560056de61d86153cecb84d04e4237437f5888 Author: Paul E. McKenney Date: Sat May 30 10:11:24 2015 -0700 rcu: Add RCU-sched flavors of get-state and cond-sync The get_state_synchronize_rcu() and cond_synchronize_rcu() functions allow polling for grace-period completion, with an actual wait for a grace period occurring only when cond_synchronize_rcu() is called too soon after the corresponding get_state_synchronize_rcu(). However, these functions work only for vanilla RCU. This commit adds the get_state_synchronize_sched() and cond_synchronize_sched(), which provide the same capability for RCU-sched. Reported-by: Peter Zijlstra (Intel) Signed-off-by: Paul E. McKenney include/linux/rcutiny.h | 10 ++++++++++ include/linux/rcutree.h | 2 ++ kernel/rcu/rcutorture.c | 2 ++ kernel/rcu/tree.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+) commit c2a298d96628803586f1ca2027b6387f4e4b5a31 Author: Luis de Bethencourt Date: Tue Jun 30 16:48:54 2015 +0200 usb: host: xhci: remove typo in function documentation Fix "though" to "through" in documentation of xhci_alloc_streams(). Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/usb/host/xhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cd32fbad6e3dfb26ae12babe07771f92b417af6b Author: Aaron Raimist Date: Mon Jun 22 21:05:27 2015 -0500 USB: atm: cxacru: fix blank line after declaration Fixed a coding style issue. Adds blank lines after declarations. Signed-off-by: Aaron Raimist Signed-off-by: Greg Kroah-Hartman drivers/usb/atm/cxacru.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 298b992fdb7536f0f347935d253ce31479b1fb43 Author: Krzysztof Opasiak Date: Mon Jun 22 15:50:22 2015 +0200 usb: class: Use USB_CLASS_PRINTER instead of number 7 Kernel provides very nice defines for USB device class so it's a good idea to use them in suitable places. It is much easier to grep for such define instead of 7. Signed-off-by: Krzysztof Opasiak Signed-off-by: Greg Kroah-Hartman drivers/usb/class/usblp.c | 66 ++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 24 deletions(-) commit 79a02744bc5a2993d6c5b8dd1a790f7ea12f4e0b Author: Kris Borer Date: Tue Jun 16 13:24:53 2015 -0400 usb: fix coding style issue Fixed coding style issue: newline after declaration Signed-off-by: Kris Borer Signed-off-by: Greg Kroah-Hartman drivers/usb/core/driver.c | 1 + 1 file changed, 1 insertion(+) commit 555f3fe957b5bd763d49719cc68c6435c9c8dcf1 Author: Pan Xinhui Date: Mon Jul 20 14:24:36 2015 +0800 cpufreq: ia64: Fix a memory leak in acpi_cpufreq_cpu_exit() freq_table should be alloced in ->init and freed in ->exit, but it it is not freed. Fix this memory leak in acpi_cpufreq_cpu_exit(). Signed-off-by: Pan Xinhui Signed-off-by: Rafael J. Wysocki drivers/cpufreq/ia64-acpi-cpufreq.c | 1 + 1 file changed, 1 insertion(+) commit 946c14f812bfff18e6fd6357d06b6e8fa8793fec Author: Pan Xinhui Date: Mon Jul 20 14:22:46 2015 +0800 cpufreq: ia64: remove redundant freq_table of acpi_cpufreq_data freq_table is now stored as policy->freq_table, so drop the redundant freq_table from struct cpufreq_acpi_io. Signed-off-by: Pan Xinhui Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/ia64-acpi-cpufreq.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 7db85dd0828803f44f50ed6953f3f7cb762b830d Author: Matthew Gerlach Date: Mon Feb 3 14:22:59 2014 -0800 ARM: socfpga: dts: add missing clock gates to socfpga.dtsi The gates for the clocks coming out of the sdram pll were missing. The change adds the missing nodes to the device tree. Signed-off-by: Matthew Gerlach Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) commit f56c50e322eed07526a08edefa29fc8bab1e93df Author: Rafael J. Wysocki Date: Wed Jul 22 22:12:10 2015 +0200 cpufreq: acpi-cpufreq: Fix up the handling of cpb sysfs attribute The cpb sysfs attribute is only exposed by the ACPI cpufreq driver after a runtime check. For this purpose, the driver keeps a NULL placeholder in its table of sysfs attributes and replaces the NULL with a pointer to an attribute structure if it decides to expose cpb. That is confusing, so make the driver set the pointer to the cpb attribute structure upfront and replace it with NULL if the attribute should not be exposed instead. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/acpi-cpufreq.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 3427616b2a5aa7f34716278aa6a140378a00a36e Author: Rafael J. Wysocki Date: Wed Jul 22 22:11:56 2015 +0200 cpufreq: acpi-cpufreq: Drop acpi_data from struct acpi_cpufreq_data After commit 8cfcfd39000d (acpi-cpufreq: Fix an ACPI perf unregister issue) we store both a pointer to per-CPU data of the first policy CPU and the number of that CPU which are redundant. Since the CPU number has to be stored anyway for the unregistration, the pointer to the CPU's per-CPU data may be dropped and we can access the data in question via per_cpu_ptr(). Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/cpufreq/acpi-cpufreq.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) commit b2f8dc4ce6626e25b164e29cf72b70230a1f1711 Author: Rafael J. Wysocki Date: Wed Jul 22 22:11:16 2015 +0200 ACPI / processor: Drop an unused argument of a cleanup routine acpi_processor_unregister_performance() actually doesn't use its first argument, so drop it and update the callers accordingly. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar drivers/acpi/processor_perflib.c | 4 +--- drivers/cpufreq/acpi-cpufreq.c | 5 ++--- drivers/cpufreq/e_powersaver.c | 2 +- drivers/cpufreq/ia64-acpi-cpufreq.c | 5 ++--- drivers/cpufreq/powernow-k7.c | 4 ++-- drivers/cpufreq/powernow-k8.c | 5 ++--- drivers/xen/xen-acpi-processor.c | 16 ++++++---------- include/acpi/processor.h | 5 +---- 8 files changed, 17 insertions(+), 29 deletions(-) commit 8d9bfe3702aaea457b3d59b09b86e9f03c322605 Author: Ray Jui Date: Tue Jul 21 18:29:40 2015 -0700 PCI: iproc: Add arm64 support Add arm64 support to the iProc PCIe driver. Note that on arm32, bus->sysdata points to the arm32-specific pci_sys_data struct, and pci_sys_data.private_data contains the iproc_pcie pointer. For arm64, there's nothing corresponding to pci_sys_data, so we keep the iproc_pcie pointer directly in bus->sysdata. In addition, arm64 does IRQ mapping in pcibios_add_device(), so it doesn't need pci_fixup_irqs() as arm32 does. Signed-off-by: Ray Jui Signed-off-by: Bjorn Helgaas Reviewed-by: Scott Branden drivers/pci/host/pcie-iproc.c | 26 ++++++++++++++++++++------ drivers/pci/host/pcie-iproc.h | 4 +++- 2 files changed, 23 insertions(+), 7 deletions(-) commit ca70d27e445fe721587598030b97357b35f61913 Author: kbuild test robot Date: Wed Jun 24 07:41:07 2015 +0800 sysfs: fix simple_return.cocci warnings security/smack/smackfs.c:2251:1-4: WARNING: end returns can be simpified and declaration on line 2250 can be dropped Simplify a trivial if-return sequence. Possibly combine with a preceding function call. Generated by: scripts/coccinelle/misc/simple_return.cocci Signed-off-by: Fengguang Wu Acked-by: Serge Hallyn Acked-by: Casey Schaufler security/smack/smackfs.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 3bf2789cad9e6573dc19a6c3d123c2c049f2d90f Author: Vivek Trivedi Date: Mon Jun 22 15:36:06 2015 +0530 smack: allow mount opts setting over filesystems with binary mount data Add support for setting smack mount labels(using smackfsdef, smackfsroot, smackfshat, smackfsfloor, smackfstransmute) for filesystems with binary mount data like NFS. To achieve this, implement sb_parse_opts_str and sb_set_mnt_opts security operations in smack LSM similar to SELinux. Signed-off-by: Vivek Trivedi Signed-off-by: Amit Sahrawat Acked-by: Casey Schaufler security/smack/smack.h | 18 ++++ security/smack/smack_lsm.c | 241 +++++++++++++++++++++++++++++++++++++-------- 2 files changed, 219 insertions(+), 40 deletions(-) commit e9f9fe35f8940c9a4c5deba091d532e3a02bf78b Author: Dinh Nguyen Date: Wed May 28 22:40:13 2014 -0500 ARM: socfpga: dts: Fix gpio dts entry for the correct clock The correct clock for the HPS gpio(s) should be the l4_mp_clk. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c5dab6e2c1f7bbf33ec855cebae92a1566ed6d04 Author: Dinh Nguyen Date: Wed Nov 20 09:39:17 2013 -0600 ARM: socfpga: dts: Correct the parent clock for l3_sp_clk and dbg_clk The l3_sp_clk's parent should be the l3_mp_clk. This will account for the extra divider that is present for the l3_mp_clk. The dbg_clk's parent should be the dbg_at_clk. This will account for the extra divider that is present for the dbg_at_clk. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 052831879945be0d9fad2216b127147c565ec1b1 Author: Thomas Graf Date: Wed Jul 22 14:43:58 2015 +0200 ip_tunnel: Provide tunnel metadata API for CONFIG_INET=n Account for the configuration FIB_RULES=y && INET=n as FIB_RULES can be selected by IPV6 or DECNET without INET. Fixes: e7030878fc84 ("fib: Add fib rule match on tunnel id") Fixes: 3093fbe7ff4b ("route: Per route IP tunnel metadata via lightweight tunnel") Reported-by: kbuild test robot Signed-off-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 3985e8a3611a93bb36789f65db862e5700aab65e Author: Erik Kline Date: Wed Jul 22 16:38:25 2015 +0900 ipv6: sysctl to restrict candidate source addresses Per RFC 6724, section 4, "Candidate Source Addresses": It is RECOMMENDED that the candidate source addresses be the set of unicast addresses assigned to the interface that will be used to send to the destination (the "outgoing" interface). Add a sysctl to enable this behaviour. Signed-off-by: Erik Kline Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 7 +++++++ include/linux/ipv6.h | 1 + include/uapi/linux/ipv6.h | 1 + net/ipv6/addrconf.c | 22 +++++++++++++++++++--- 4 files changed, 28 insertions(+), 3 deletions(-) commit fb02eb4a29303295f2fed8a69d9aa703792c834b Author: hayeswang Date: Wed Jul 22 15:27:41 2015 +0800 r8152: support the new RTL8153 chip Support the new USB gigabit ethernet. Signed-off-by: Hayes Wang Signed-off-by: David S. Miller drivers/net/usb/r8152.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) commit de18547d48c0e735309d6874852f048352e08a88 Author: Roopa Prabhu Date: Tue Jul 21 22:49:00 2015 -0700 mpls_iptunnel: fix sparse warn: remove incorrect rcu_dereference fix for: net/mpls/mpls_iptunnel.c:73:19: sparse: incompatible types in comparison expression (different address spaces) remove incorrect rcu_dereference possibly left over from earlier revisions of the code. Reported-by: kbuild test robot Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/mpls/mpls_iptunnel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 70c9bb8b9217aa6869ec6604258589f203f5b71e Merge: b56ea29 3a375e3 Author: David S. Miller Date: Wed Jul 22 10:47:27 2015 -0700 Merge branch 'bnx2x-next' Yuval Mintz says: ==================== bnx2x: update FW, rebrand and more This patch series does several things - it updates the bnx2x FW into 7.12.30 which both contains some small fixes as well as opening the door for several new features for the device - mainly vxlan/geneve offloads and vlan filtering offload. It then adds a new Multi-function mode [BD] which requires this FW in order to operate. In addition, this finally rebrands the driver from a 'broadcom' driver into a 'qlogic' driver [although it would still reside under Broadcom's tree in the kernel]. ==================== Signed-off-by: David S. Miller commit 3a375e3caf2b424386f9e32d0c55f8907c52981d Author: Yuval Mintz Date: Wed Jul 22 09:16:27 2015 +0300 bnx2x: Bump up driver version to 1.712.30 Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c48f350ff5e75abae2627c2531780264f9e49130 Author: Yuval Mintz Date: Wed Jul 22 09:16:26 2015 +0300 bnx2x: Add MFW dump support Devices with up-to-date management FW will be able to store register dumps on their persistent storage - in case management FW identifies a fatal error it would gather and store such dumps, which could later be retrieved using specific debug tools. This patch adds the necessary part in the driver in order to make the feature operational, as well as update users [under debug] during load in case their device contains a dump of a previous crash. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 ++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 4 ++++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 17 ++++++++++++++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 28 ++++++++++++++++++++++++ 4 files changed, 51 insertions(+) commit 230d00eb4bfe0ddc88b848fd953f7b871ee2ecd7 Author: Yuval Mintz Date: Wed Jul 22 09:16:25 2015 +0300 bnx2x: new Multi-function mode - BD This adds support to a new multi-function mode, enabling driver to initialize such devices and correctly interacting with management FW for fully utilizing their features. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 3 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 74 +++++++++++++++++++++- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 36 +++++++++++ .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 3 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 74 ++++++++++++++++++++++ drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 56 ++++++++++++---- drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 17 ++++- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 3 + 8 files changed, 251 insertions(+), 15 deletions(-) commit 924c6216f88172050a519639722e949b838529cc Author: Yaniv Rosner Date: Wed Jul 22 09:16:24 2015 +0300 bnx2x: Add 84858 phy support This adds support to a new copper phy. Signed-off-by: Yaniv Rosner Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 3 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 244 ++++++++++++++++++----- drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 58 +++--- 3 files changed, 232 insertions(+), 73 deletions(-) commit 4ad79e1301f48b8c4ed2cc71c85e9b224a16b3e3 Author: Yuval Mintz Date: Wed Jul 22 09:16:23 2015 +0300 bnx2x: Rebrand from 'broadcom' into 'qlogic' bnx2x still appears as a Broadcom driver even though the devices it utilizes belong to Qlogic for more than a year. This patch changes the various headers and the device strings to indicate the correct ownership of the device. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.h | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_dump.h | 10 +++-- .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 4 +- .../net/ethernet/broadcom/bnx2x/bnx2x_fw_defs.h | 4 +- .../ethernet/broadcom/bnx2x/bnx2x_fw_file_hdr.h | 2 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_init.h | 4 +- .../net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 50 +++++++++++----------- .../net/ethernet/broadcom/bnx2x/bnx2x_mfw_req.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 14 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h | 14 +++--- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 10 +++-- drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h | 22 ++++++---- 25 files changed, 142 insertions(+), 88 deletions(-) commit 28311f8e7c3f52a810c0e0d2aa62deb549c9687d Author: Yuval Mintz Date: Wed Jul 22 09:16:22 2015 +0300 bnx2x: Utilize FW 7.12.30 This moves bnx2x into using 7.12.30 FW. Said firmware fixes the following: - Packets from a VF with pvid configured which were sent with a different vlan were transmitted instead of being discarded. - FCoE traffic might not recover after a failue while there's traffic to another function. In addition, this FW opens the door for the driver to implement several new features; Specifically, this enhances the device's support for encapsulated packets and will allow vxlan/geneve offloads to be added in the future, as well as vlan filtering offload. Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 11 ++- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 4 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | 2 + .../net/ethernet/broadcom/bnx2x/bnx2x_fw_defs.h | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h | 87 +++++++++++++--------- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 2 + drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 53 +++++++++---- drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h | 45 +++++++---- 8 files changed, 136 insertions(+), 70 deletions(-) commit aa48b6f708868ab9c22ca737f27a0da832bf7f08 Author: Jiang Liu Date: Thu Jul 9 16:00:47 2015 +0800 genirq/MSI: Move alloc_msi_entry() from PCI into generic MSI code Move alloc_msi_entry() from PCI MSI code into generic MSI code, so it can be reused by other generic MSI drivers. Also introduce free_msi_entry() for completeness. Suggested-by: Stuart Yoder . Signed-off-by: Jiang Liu Reviewed-by: Marc Zyngier Reviewed-by: Yijing Wang Acked-by: Bjorn Helgaas Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Grant Likely Cc: Borislav Petkov Cc: Alexander Gordeev Link: http://lkml.kernel.org/r/1436428847-8886-13-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 16 ++-------------- include/linux/msi.h | 2 ++ kernel/irq/msi.c | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 14 deletions(-) commit fc88419cfac50b05c7c1ea218b08e70c31d1b71f Author: Jiang Liu Date: Thu Jul 9 16:00:46 2015 +0800 genirq/MSI: Reorginize struct msi_desc to prepare for support of generic MSI Reorganize struct msi_desc so it could be reused by other MSI drivers. We have the following layout now: struct msi_desc { /* Shared device/bus independent data */ ... union { /* PCI specific data */ struct { ... }; }; }; We need to have anonymous union and a anonymous structure for the PCI fields, otherwise we would have to change all instances using these fields. For non PCI devices we will enforce a proper namespace and a non anonymous structure. [ tglx: Added proper comments to the structure and massaged changelog ] Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Reviewed-by: Marc Zyngier Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Stuart Yoder Cc: Borislav Petkov Cc: Alexander Gordeev Link: http://lkml.kernel.org/r/1436428847-8886-12-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/msi.h | 70 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 20 deletions(-) commit 25a98bd4ff9355a218d2e7aa4d6e3c9bc2c27d6f Author: Jiang Liu Date: Thu Jul 9 16:00:45 2015 +0800 genirq/MSI: Store 'struct device' instead of 'struct pci_dev' in struct msi_desc Store 'struct device *' instead of 'struct pci_dev *' in struct msi_desc, so struct msi_desc can be reused by non PCI based MSI drivers. Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Reviewed-by: Marc Zyngier Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Stuart Yoder Cc: Borislav Petkov Cc: Alexander Gordeev Link: http://lkml.kernel.org/r/1436428847-8886-11-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 7 ++++++- include/linux/msi.h | 11 ++++------- 2 files changed, 10 insertions(+), 8 deletions(-) commit 4a7cc831670550e6b48ef5760e7213f89935ff0d Author: Jiang Liu Date: Thu Jul 9 16:00:44 2015 +0800 genirq/MSI: Move msi_list from struct pci_dev to struct device Move msi_list from struct pci_dev into struct device, so we can support non-PCI-device based generic MSI interrupts. msi_list is now conditional under CONFIG_GENERIC_MSI_IRQ, which is selected from CONFIG_PCI_MSI, so no functional change for PCI MSI users. Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Acked-by: Bjorn Helgaas Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Borislav Petkov Cc: Greg Kroah-Hartman Cc: Joe Perches Cc: Dmitry Torokhov Cc: Paul Gortmaker Cc: Luis R. Rodriguez Cc: Rafael J. Wysocki Cc: Joerg Roedel Cc: Alexander Gordeev Link: http://lkml.kernel.org/r/1436428847-8886-10-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/base/core.c | 3 +++ drivers/pci/msi.c | 3 +-- include/linux/device.h | 4 ++++ include/linux/msi.h | 2 +- include/linux/pci.h | 1 - 5 files changed, 9 insertions(+), 4 deletions(-) commit e39758e0ea769e632e5e3c9f314160e55c2153ff Author: Jiang Liu Date: Thu Jul 9 16:00:43 2015 +0800 PCI: Use helper functions to access fields in struct msi_desc Use helper functions to access fields in struct msi_desc, so we could easily refine msi_desc later. Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Borislav Petkov Cc: Murali Karicheri Cc: Jingoo Han Cc: Pratyush Anand Cc: Michal Simek Cc: Soeren Brinkmann Cc: Srikanth Thokala Cc: Rob Herring Link: http://lkml.kernel.org/r/1436428847-8886-9-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/pci/host/pci-keystone-dw.c | 6 +++--- drivers/pci/host/pcie-designware.c | 4 ++-- drivers/pci/host/pcie-xilinx.c | 12 +++++------- drivers/pci/msi.c | 13 ++++++++----- 4 files changed, 18 insertions(+), 17 deletions(-) commit 3bf15f53c963a43c317e65e1709e9f020c04f024 Author: Jiang Liu Date: Thu Jul 9 16:00:42 2015 +0800 sparc/PCI: Use helper functions to access fields in struct msi_desc Use helper functions to access fields in struct msi_desc, so we could easily refine struct msi_desc later. Signed-off-by: Jiang Liu Acked-by: David S. Miller Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Yijing Wang Cc: Borislav Petkov Cc: Eric Snowberg Link: http://lkml.kernel.org/r/1436428847-8886-8-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/sparc/kernel/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5004e98a91e8ad600f5b00872e9ddad810258f08 Author: Jiang Liu Date: Thu Jul 9 16:00:41 2015 +0800 PCI: Use for_each_pci_msi_entry() to access MSI device list Use accessor for_each_pci_msi_entry() to access MSI device list, so we could easily move msi_list from struct pci_dev into struct device later. Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Acked-by: Bjorn Helgaas Acked-by: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: xen-devel@lists.xenproject.org Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Borislav Petkov Cc: Boris Ostrovsky Cc: David Vrabel Link: http://lkml.kernel.org/r/1436428847-8886-7-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 39 ++++++++++++++++++++------------------- drivers/pci/xen-pcifront.c | 2 +- 2 files changed, 21 insertions(+), 20 deletions(-) commit 39118e31e1daae43048f5deaa3e0894d2732a7d6 Author: Jiang Liu Date: Thu Jul 9 16:00:40 2015 +0800 x86/PCI: Use for_pci_msi_entry() to access MSI device list Use accessor for_each_pci_msi_entry() to access MSI device list, so we could easily move msi_list from struct pci_dev into struct device later. Signed-off-by: Jiang Liu Acked-by: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: xen-devel@lists.xenproject.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Yijing Wang Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1436428847-8886-6-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/pci/xen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit df516f4278c154f5bb5e594fd54c2b0cb0af7a7c Author: Jiang Liu Date: Thu Jul 9 16:00:39 2015 +0800 s390/pci: Use for_pci_msi_entry() to access MSI device list Use accessor for_each_pci_msi_entry() to access MSI device list, so we could easily move msi_list from struct pci_dev into struct device later. Signed-off-by: Jiang Liu Acked-by: Sebastian Ott Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Yijing Wang Cc: Borislav Petkov Cc: Gerald Schaefer Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux390@de.ibm.com Link: http://lkml.kernel.org/r/1436428847-8886-5-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/s390/pci/pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 2921d1790eeeaf574df94fc5b1aa066e7d86d8f7 Author: Jiang Liu Date: Thu Jul 9 16:00:38 2015 +0800 powerpc/PCI: Use for_pci_msi_entry() to access MSI device list Use accessor for_each_pci_msi_entry() to access MSI device list, so we could easily move msi_list from struct pci_dev into struct device later. Signed-off-by: Jiang Liu Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: linuxppc-dev@lists.ozlabs.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Yijing Wang Cc: Borislav Petkov Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Olof Johansson Cc: Gavin Shan Cc: Alexey Kardashevskiy Cc: David Gibson Cc: Daniel Axtens Cc: Wei Yang Cc: Nishanth Aravamudan Cc: Alexander Gordeev Cc: Scott Wood Cc: Laurentiu Tudor Cc: Tudor Laurentiu Cc: Hongtao Jia Link: http://lkml.kernel.org/r/1436428847-8886-4-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/powerpc/platforms/cell/axon_msi.c | 6 +++--- arch/powerpc/platforms/pasemi/msi.c | 4 ++-- arch/powerpc/platforms/powernv/pci.c | 4 ++-- arch/powerpc/platforms/pseries/msi.c | 6 +++--- arch/powerpc/sysdev/fsl_msi.c | 4 ++-- arch/powerpc/sysdev/mpic_u3msi.c | 4 ++-- arch/powerpc/sysdev/ppc4xx_hsta_msi.c | 4 ++-- arch/powerpc/sysdev/ppc4xx_msi.c | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) commit bbcffac3a8b60f2f01a3fcb322167f6b8aba3416 Author: Jiang Liu Date: Thu Jul 9 16:00:37 2015 +0800 MIPS/PCI: Use for_pci_msi_entry() to access MSI device list Use accessor for_each_pci_msi_entry() to access MSI device list, so we could easily move msi_list from struct pci_dev into struct device later. Signed-off-by: Jiang Liu Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mips@linux-mips.org Cc: Bjorn Helgaas Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Yijing Wang Cc: Borislav Petkov Cc: Ralf Baechle Link: http://lkml.kernel.org/r/1436428847-8886-3-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner arch/mips/pci/msi-octeon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c179c9b978b90bdf9cb39f5b5716dede157f1eaf Author: Jiang Liu Date: Thu Jul 9 16:00:36 2015 +0800 PCI: Add helper function msi_desc_to_pci_sysdata() Add helper function msi_desc_to_pci_sysdata() to retrieve sysdata from an MSI descriptor. To avoid pulling include/linux/pci.h into include/linux/msi.h, msi_desc_to_pci_sysdata() is implemented as a normal function instead of an inline function. Signed-off-by: Jiang Liu Reviewed-by: Yijing Wang Acked-by: Bjorn Helgaas Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Grant Likely Cc: Marc Zyngier Cc: Stuart Yoder Cc: Borislav Petkov Cc: Alexander Gordeev Link: http://lkml.kernel.org/r/1436428847-8886-2-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/pci/msi.c | 8 ++++++++ include/linux/msi.h | 7 +++++++ 2 files changed, 15 insertions(+) commit faca10b9e63e880c81388fbbedf7ede6dcd77c70 Author: Wang Long Date: Tue Jul 21 08:11:01 2015 +0000 drivers/irqchip: Replace pr_warning by pr_warn Update the last pr_warning callsite in drivers/irqchip. Signed-off-by: Wang Long Cc: Cc: Cc: Cc: Cc: Cc: Link: http://lkml.kernel.org/r/1437466261-147373-1-git-send-email-long.wanglong@huawei.com Signed-off-by: Thomas Gleixner drivers/irqchip/exynos-combiner.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6ed3464897cc825a75218653c710d673282dfcf8 Author: Felipe Balbi Date: Fri Jan 2 16:18:54 2015 -0600 irqchip: omap-intc: Improve IRQ handler As it turns out the current IRQ number will *always* be available from SIR register which renders the reads of PENDING registers as plain unnecessary overhead. In order to catch any situation where SIR reads as zero, we're adding a WARN() to turn it into a very verbose error and users actually report it. With this patch average running time of omap_intc_handle_irq() reduced from about 28.5us to 19.8us as measured by the kernel function profiler. Tested with BeagleBoneBlack Rev A5C. Tested-by: Tony Lindgren Signed-off-by: Felipe Balbi Cc: Linux ARM Kernel Mailing List Link: http://lkml.kernel.org/r/20150720204910.GH5394@saruman.tx.rr.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-omap-intc.c | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) commit 4dc102b2f53d63207fa12a6ad49c7b6448bc3301 Author: Vaishali Thakkar Date: Fri Jun 19 23:58:17 2015 -0300 [media] dvb_core: 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. The Coccinelle semantic patch that makes this change is as follows: // @eth_zero_addr@ expression e; @@ -memset(e,0x00,ETH_ALEN); +eth_zero_addr(e); // Signed-off-by: Vaishali Thakkar Signed-off-by: Mauro Carvalho Chehab drivers/media/dvb-core/dvb_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a4c4f95eb64640ec31cf0661b1a863151c744827 Author: Sunil Shahu Date: Sat Jun 20 05:53:50 2015 -0300 [media] staging: media: lirc: fix coding style error Fix code indentation error by replacing tab in place of spaces. Signed-off-by: Sunil Shahu Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/lirc/lirc_sasem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17a705e4a99bc6d810f2d64efe9368e221302f7a Author: Hans Verkuil Date: Mon Jun 15 08:33:29 2015 -0300 [media] sh-veu: don't use COLORSPACE_JPEG COLORSPACE_JPEG should only be used for JPEGs. Use SMPTE170M instead, which is how YCbCr images are usually encoded. Signed-off-by: Hans Verkuil Acked-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_veu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd70b27eecdd4e13378a5e253dbd426058e164ef Author: Joe Perches Date: Sun Jun 14 23:01:45 2015 -0300 [media] media: ttpci: Use vsprintf %pM extension Format mac addresses with the normal kernel extension. Signed-off-by: Joe Perches Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ttpci/ttpci-eeprom.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 3fdefa399e4644399ce3e74e65a75122d52dba6a Author: Daniel Vetter Date: Thu Jul 9 23:44:37 2015 +0200 drm: gc now dead mode_group code Two nice things here: - drm_dev_register will truly register everything in the right order if the driver doesn't have a ->load callback. Before this we had to init the primary mode_group after the device nodes where already registered. - Less things to keep track of when reworking the connector locking, yay! Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 64 ---------------------------------- drivers/gpu/drm/drm_drv.c | 12 ------- drivers/gpu/drm/i915/intel_dp_mst.c | 3 -- drivers/gpu/drm/radeon/radeon_dp_mst.c | 3 -- include/drm/drmP.h | 1 - include/drm/drm_crtc.h | 26 -------------- 6 files changed, 109 deletions(-) commit 9c7060f7e3b09837621f93bd8666cf4cfac45001 Author: Daniel Vetter Date: Thu Jul 9 23:44:36 2015 +0200 drm: Stop filtering according to mode_group in getresources It's been dead code since forever since mode groups haven't ever been implemented. On top of that it's also been non-functional since we only ever filtered the getresources ioctl and not any of the others nor the mode object lookup code. Given overwhelming evidence it looks like this isn't a feature we need, hence remove it. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 110 +++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 80 deletions(-) commit e4f62546325724168e0b7ee7180762cb07859ca7 Author: Daniel Vetter Date: Thu Jul 9 23:44:35 2015 +0200 drm: Roll out drm_for_each_{plane,crtc,encoder} Remaining manual work in the drm core&helpers. Nothing special here, no surprises. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 26 ++++++++++++++------------ drivers/gpu/drm/drm_crtc_helper.c | 2 +- drivers/gpu/drm/drm_fb_cma_helper.c | 2 +- drivers/gpu/drm/drm_modeset_lock.c | 7 +++---- 4 files changed, 19 insertions(+), 18 deletions(-) commit 9e75c0ef1428ae8a6bfb340ba2402471752c4af5 Author: Daniel Vetter Date: Thu Jul 9 23:32:34 2015 +0200 drm/cma-helper: Fix locking in drm_fb_cma_debugfs_show This function takes two locks, both of them the wrong ones. This wasn't an oversight from my fb locking rework since both patches landed in parallel. We really only need fb_lock when walking that list, since everything we can reach from that is refcounted properly already. v2: Drop unused dev spotted by 0day. Cc: Rob Clark Cc: Laurent Pinchart Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_cma_helper.c | 16 ++-------------- drivers/gpu/drm/drm_gem_cma_helper.c | 3 --- 2 files changed, 2 insertions(+), 17 deletions(-) commit 1140f919f807b6d5a259ecfca88022da0e5340cb Author: Philipp Zabel Date: Fri Jul 17 12:26:45 2015 -0300 [media] tc358743: allow event subscription This is useful to subscribe to HDMI hotplug events via the V4L2_CID_DV_RX_POWER_PRESENT control. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit d747b806abf41f037f7d2a076131adf8c7971a89 Author: Philipp Zabel Date: Fri Jul 17 11:02:56 2015 -0300 [media] tc358743: add direct interrupt handling When probed from device tree, the i2c client driver can handle the interrupt on its own. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 25614824685247e00b786032a504f10bfab347b1 Author: Philipp Zabel Date: Fri Jul 17 11:02:55 2015 -0300 [media] tc358743: support probe from device tree Add support for probing the TC358743 subdevice from device tree. The reference clock must be supplied using the common clock bindings. MIPI CSI-2 specific properties are parsed from the OF graph endpoint node and support for a non-continuous MIPI CSI-2 clock is added. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../devicetree/bindings/media/i2c/tc358743.txt | 48 +++++++ drivers/media/i2c/tc358743.c | 155 ++++++++++++++++++++- 2 files changed, 197 insertions(+), 6 deletions(-) commit 1eb995bbf7a85e18f54fb162eade381320a3fcea Author: Peter Ujfalusi Date: Wed Jul 22 11:48:10 2015 +0300 dmaengine: ti-dma-crossbar: Add support for eDMA The crossbar for eDMA works exactly the same way as sDMA, but sDMA requires an offset of 1, while no offset is needed for eDMA. Based on the patch from Misael Lopez Cruz Signed-off-by: Peter Ujfalusi CC: Misael Lopez Cruz Signed-off-by: Vinod Koul drivers/dma/ti-dma-crossbar.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit be559daabfaac74a7acd8cb56fae86fca7349f10 Author: Misael Lopez Cruz Date: Wed Jul 22 11:48:09 2015 +0300 dmaengine: ti-dma-crossbar: Make idr xbar instance-specific In preparation for supporting multiple DMA crossbar instances, make the idr xbar instance specific. Signed-off-by: Misael Lopez Cruz Signed-off-by: Peter Ujfalusi Signed-off-by: Vinod Koul drivers/dma/ti-dma-crossbar.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 9a9f5ce8db176499a7f3f93172bf34176aa460f5 Author: Daniel Vetter Date: Thu Jul 9 23:44:34 2015 +0200 drm: Roll out drm_for_each_connector more Now that we also grab the connection_mutex and so fixed the race with atomic modeset we can use the iterator there too. The other special case is drm_connector_unplug_all which would have a locking inversion with the sysfs store/show functions if we'd grab the mode_config.mutex around the unplug. We could just grab connection_mutex instead, but that's a bit too much a dirty trick for my taste. Also it's only used by udl, which doesn't do any other kind of connector hotplugging, so should be race-free. Hence just stick with a comment for now. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 2 +- drivers/gpu/drm/drm_atomic_helper.c | 4 ++-- drivers/gpu/drm/drm_crtc.c | 9 +++++---- drivers/gpu/drm/drm_crtc_helper.c | 6 +++--- drivers/gpu/drm/drm_edid.c | 2 +- drivers/gpu/drm/drm_plane_helper.c | 3 ++- 6 files changed, 14 insertions(+), 12 deletions(-) commit cff20ba2758d6b82978be5b1f40536bfc121af88 Author: Daniel Vetter Date: Thu Jul 9 23:44:33 2015 +0200 drm: Amend connector list locking rules Now that dp mst hotplug takes all locks we can amend the locking rules for the iterators. This is needed before we can roll these out in the atomic code to avoid getting burried in WARNINGs. v2: Rebase onto the extracted list locking assert and add a comment to explain the rules. v3: Fixup German->English translation fail in the comment. Cc: Chris Wilson Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter include/drm/drm_crtc.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 2ee6bcdcfa4d8b56b20bc6308cd5f9bced5b5324 Author: Daniel Vetter Date: Thu Jul 9 23:44:32 2015 +0200 drm/radeon: Take all modeset locks for DP MST hotplug Similar with the i915 take all modeset locks for mst hotplug. This is needed to make sure radeon holds both mode_config.mutex and mode_config.connection_mutex when updating the connector_list, which is the new (interim) locking regime we want for that. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/radeon/radeon_dp_mst.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8bb4da1df54a20d68c34427356e34315ba122c0f Author: Daniel Vetter Date: Thu Jul 9 23:44:31 2015 +0200 drm/i915: Take all modeset locks for DP MST hotplug While auditing various users of the connector/encoder lists I realized that the atomic code is a very prolific user of them. And it only ever grabs the mode_config->connection_mutex, but not the mode_config->mutex like all the other code walking encoder/connector lists. The problem is that we can't grab the mode_config.mutex late in atomic code since that would lead to locking inversions. And we don't want to grab it unconditionally like the legacy set_config modeset path since that would render all the fine-grained locking moot. Instead just grab more locks in the dp mst hotplug code. Note that drm_connector_init (which is the one adding the connector to these lists) already uses drm_modeset_lock_all. The other reason for grabbing all locks is that the dpms off in the unplug function amounts to a modeset, so better to take all required locks for that. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp_mst.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 4676ba0be756b2b02b9737147713d458042962f7 Author: Daniel Vetter Date: Thu Jul 9 23:44:30 2015 +0200 drm: Check locking in drm_for_each_fb Ever since framebuffers are reference counted we have a special lock for the global fb list. Make sure users of that list do hold that lock when using the new iterators. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter include/drm/drm_crtc.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 3a58ee106529ebea5710087e9b77bc11365665ae Author: Daniel Vetter Date: Fri Jul 10 19:02:51 2015 +0200 drm/i915: Use drm_for_each_fb in i915_debugfs.c Just so I have a user for this macro. v2: Use the right macro - somehow I thought gcc should scream at me, but list_for_each isn't really typesafe unfortunately. Spotted by Ville. Cc: Ville Syrjälä Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c Author: Daniel Vetter Date: Thu Jul 9 23:44:28 2015 +0200 drm: Check locking in drm_for_each_connector Because of DP MST connectors can now be hotplugged and we must hold the right lock when walking the connector lists. Enforce this by checking the locking in our shiny new list walking macros. v2: Extract the locking check into a small static inline helper to help readability. This will be more important when we make the read list access rules more complicated in later patches. Inspired by comments from Chris. Unfortunately, due to header loops around the definition of struct drm_device the function interface is a bit funny. v3: Encoders aren't hotadded/removed. For each dp mst encoder we statically create one fake encoder per pipe so that we can support as many mst sinks as the hw can (Dave). Cc: Chris Wilson Cc: Dave Airlie Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter include/drm/drm_crtc.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 169faecadd2444fc295c724c0a2f622b99e6bf19 Author: Daniel Vetter Date: Thu Jul 9 23:44:27 2015 +0200 drm/fbdev-helper: Grab mode_config.mutex in drm_fb_helper_single_add_all_connectors This is now truly only duct-tape to keep locking checks happy since calling this function when hpd or polling are already enabled is a bug. The fbdev helper can't cope with hotplug changes yet at this point, only after that. Otoh a bit more robustness in this function can't hurt, and with this fbdev can actually cope with hotplug changes. And it's also more consistent with the connector hotadd/remove dp mst needs to do. Therefore document this as new official behavior. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 8c4ccc4ab6f64e859d4ff8d7c02c2ed2e956e07f Author: Daniel Vetter Date: Thu Jul 9 23:44:26 2015 +0200 drm/probe-helper: Grab mode_config.mutex in poll_init/enable So on first looks this seems superflous since drivers should ensure correct ordering to not make this a problem. Otoh ordering constraints between hdp, fbdev load and enabling polling are already tricky on some hardware and it helps to be more robust. But the real goal is to just shut up a locking WARN_ON I'd like to add, which means init code gets some additional locks just for uniformity. v2: Also grab the lock for the public poll_enable, not just poll_init which is used for resume, with the same justification. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_probe_helper.c | 41 +++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 16 deletions(-) commit 6295d607ad34ee4e43aab3f20714c2ef7a6adea1 Author: Daniel Vetter Date: Thu Jul 9 23:44:25 2015 +0200 drm: Add modeset object iterators And roll them out across drm_* files. The point here isn't code prettification (it helps with that too) but that some of these lists aren't static any more. And having macros will gives us a convenient place to put locking checks into. I didn't add an iterator for props since that's only used by a list_for_each_entry_safe in the driver teardown code. Search&replace was done with the below cocci spatch. Note that there's a bunch more places that didn't match and which would need some manual changes, but I've intentially left these out for this mostly automated patch. iterator name drm_for_each_crtc; struct drm_crtc *crtc; struct drm_device *dev; expression head; @@ - list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { + drm_for_each_crtc (crtc, dev) { ... } @@ iterator name drm_for_each_encoder; struct drm_encoder *encoder; struct drm_device *dev; expression head; @@ - list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { + drm_for_each_encoder (encoder, dev) { ... } @@ iterator name drm_for_each_fb; struct drm_framebuffer *fb; struct drm_device *dev; expression head; @@ - list_for_each_entry(fb, &dev->mode_config.fb_list, head) { + drm_for_each_fb (fb, dev) { ... } @@ iterator name drm_for_each_connector; struct drm_connector *connector; struct drm_device *dev; expression head; @@ - list_for_each_entry(connector, &dev->mode_config.connector_list, head) { + drm_for_each_connector (connector, dev) { ... } Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 21 ++++++++------------- drivers/gpu/drm/drm_crtc_helper.c | 34 +++++++++++++++++----------------- drivers/gpu/drm/drm_fb_helper.c | 10 +++++----- drivers/gpu/drm/drm_of.c | 2 +- drivers/gpu/drm/drm_probe_helper.c | 6 +++--- include/drm/drm_crtc.h | 15 +++++++++++++++ 6 files changed, 49 insertions(+), 39 deletions(-) commit 4ea50e99bd3501aea394aa7a9e9bd3115faabf37 Author: Daniel Vetter Date: Thu Jul 9 23:44:24 2015 +0200 drm: Simplify drm_for_each_legacy_plane arguments No need to pass the planelist when everyone just uses dev->mode_config.plane_list anyway. I want to add a pile more of iterators with unified (obj, dev) arguments. This is just prep. Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 2 +- drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 2 +- include/drm/drm_crtc.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) commit 8ec23da73599848a5a5ecbab50f17a570b60c096 Author: Philipp Zabel Date: Fri Jul 17 11:02:54 2015 -0300 [media] tc358743: enable v4l2 subdevice devnode Add V4L2_SUBDEV_FL_HAS_DEVNODE to subdev flags, in order to enable a subdev device node. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4c5211a100399c3823563193dd881dcb3b7d24fc Author: Philipp Zabel Date: Fri Jul 17 11:02:53 2015 -0300 [media] tc358743: register v4l2 asynchronous subdevice Add support for registering the sensor subdevice using the v4l2-async API. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tc358743.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 55b858b4e5f46e71f9e5089cb63602697a49a211 Author: Hans Verkuil Date: Fri Jul 17 08:45:22 2015 -0300 [media] cobalt: allow fewer than 8 PCIe lanes Currently the cobalt driver refuses to load if fewer than 8 PCIe lanes are assigned. This patch changes this and just issues a warning. The only time it will refuse to load is if the number of assigned lanes is less than what the PCIe host is capable of since this suggests that the card isn't seated correctly in the slot. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-driver.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 810c168c233fc531ecd3e7a6d9e0b5a3ffe85da7 Author: Hans Verkuil Date: Fri Jul 17 08:29:40 2015 -0300 [media] cobalt: accept unchanged timings when vb2_is_busy() When vb2_is_busy() it should still be possible to call S_DV_TIMINGS provided the new timings are the same as the current timings. For input 1 (test generator) the size is always 1080p, so just return that. Fixes a v4l2-compliance issue. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/cobalt/cobalt-v4l2.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit c99235fa3ef833c3c23926085f2bb68851c8460a Author: Benoit Parrot Date: Wed Jul 15 18:00:06 2015 -0300 [media] media: am437x-vpfe: Fix a race condition during release There was a race condition where during cleanup/release operation on-going streaming would cause a kernel panic because the hardware module was disabled prematurely with IRQ still pending. Fixes: 417d2e507edc ("[media] media: platform: add VPFE capture driver support for AM437X") Cc: # v4.0+ Signed-off-by: Benoit Parrot Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/am437x/am437x-vpfe.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 794445095791aa4f92dfd802f08b541167d63ecc Author: Fabien Dessenne Date: Tue Jun 16 15:30:00 2015 +0200 ARM: DT: STiH410: Add bdisp dt nodes Add the bdisp (2D blitter for STMicroelectronics SoC) dt nodes for the first of the two bdisp devices, defining register address, interrupt and clock. Signed-off-by: Fabien Dessenne Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih410.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 5ecd29ac5eaafbadaf80fc30c3b1a1ead8072294 Author: Lee Jones Date: Tue Jul 7 17:06:00 2015 +0200 ARM: multi_v7_defconfig: Enable support for PWM Regulators Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit eb592bc2f33e6aefbbb1c280e2167ebf753a5863 Author: Lee Jones Date: Tue Jul 7 17:06:00 2015 +0200 ARM: multi_v7_defconfig: Enable ST's PWM driver Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 23155ffc551d5fef0ba5c199c0042f0309c3952a Author: Lee Jones Date: Tue Jul 7 17:06:00 2015 +0200 ARM: STi: STiH407: Add PWM Regulator node Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) commit cd9f59ca6d32e87fc62d2ada80a7e8ef09bead56 Author: Lee Jones Date: Tue Jul 7 17:06:00 2015 +0200 ARM: STi: STiH407: Move PWM nodes STiH407 => STiH407-family This also incorporates the STiH410. Signed-off-by: Lee Jones Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 30 ++++++++++++++++++++++++++++++ arch/arm/boot/dts/stih407.dtsi | 28 ---------------------------- 2 files changed, 30 insertions(+), 28 deletions(-) commit 775b07de4fa470ac10cd74f1b1a8d441b4f5838d Author: Koro Chen Date: Wed Jul 22 17:39:35 2015 +0800 ASoC: mediatek: Add suspend/resume callbacks This adds suspend/resume callbacks, which are common for each DAI. To be able to continue the last playback/capture after resume when suspend was done during a playback/capture, in the callbacks we do backup/restore of registers which were set before prepare stage. Registers to be backup/restore are defined in a backup list array. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mtk-afe-common.h | 8 ---- sound/soc/mediatek/mtk-afe-pcm.c | 77 +++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 8 deletions(-) commit ec12693e5d03c7e6399ba1e9150908527b809f33 Author: Axel Lin Date: Wed Jul 22 10:22:33 2015 +0800 ASoC: cs4349: Fix up setting PWR_DWN bit The PWR_DWN is Bit 7, so current code does not set the PWR_DWN bit. Fix it. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6a75c0b62b0981c3a34d3336725b0840747e7680 Author: Axel Lin Date: Wed Jul 22 09:59:47 2015 +0800 ASoC: cs4349: Remove unneeded NULL test for cs4349->reset_gpio It's safe to call gpiod_set_value_cansleep() with NULL desc. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 5eb26c60590983e11f567916a83d1f0a70986553 Author: Gabriel Fernandez Date: Tue Jun 23 16:09:00 2015 +0200 ARM: STi: DT: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x Use a generic name for this kind of PLL Signed-off-by: Gabriel Fernandez Signed-off-by: Maxime Coquelin Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt | 4 ++-- arch/arm/boot/dts/stih407-clock.dtsi | 4 ++-- arch/arm/boot/dts/stih410-clock.dtsi | 4 ++-- arch/arm/boot/dts/stih418-clock.dtsi | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit 04cbfe68c3190f23bcfec230bfd832b533f35554 Author: Shobhit Kumar Date: Wed Jul 22 14:01:44 2015 +0530 mfd: Add GPIOLIB dependency if INTEL_SOC_PMIC is to be enabled This is needed as the CRC PMIC has support for Panel enable/diable as gpio which needs 'gpiod_add_lookup_table' and 'gpiod_remove_lookup_table' from gpiolib. This patch can be squashed with below commit in topic/crc-pmic branch commit 61dd2ca2d44e493b050adbbb75bc50db11c367dd Author: Shobhit Kumar Date: Fri Jun 26 14:32:05 2015 +0530 mfd: intel_soc_pmic_core: Add lookup table for Panel Control as GPIO signal On some Intel SoC platforms, the panel enable/disable signals are controlled by CRC PMIC. Add those control as a new GPIO in a lookup table for gpio-crystalcove chip during CRC driver load Cc: Lee Jones Cc: Linus Walleij Signed-off-by: Shobhit Kumar Signed-off-by: Daniel Vetter drivers/mfd/Kconfig | 1 + 1 file changed, 1 insertion(+) commit 50de4dd4bc6a6e378841a6705696d2c1f37ac038 Author: Peter Griffin Date: Tue Jun 9 23:47:00 2015 +0200 ARM: STi: Remove platform call to trace_hardirqs_off() Calling trace_hardirqs_off() from the platform specific secondary startup code as not been necessary since Dec 2010 when Russell King consolidated the call into the common SMP code. 2c0136d ARM: SMP: consolidate trace_hardirqs_off() into common SMP code Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/mach-sti/platsmp.c | 2 -- 1 file changed, 2 deletions(-) commit 94a8cfceaa7ee7e7187c5de074eb5138a6b77dcf Author: Peter Griffin Date: Tue Jun 9 15:33:00 2015 +0200 ARM: STi: Add code to release secondary cores from holding pen. Most upstream devs boot STi platform via JTAG which abuses the boot process by setting the PC of secondary cores directly. As a consquence, booting STi platforms via u-boot results in only the primary core being brought up as the code to manage the holding pen is not upstream. This patch adds the necessary code to bring the secondary cores out of the holding pen. It uses the cpu-release-addr DT property to get the address of the holding pen from the bootloader. With this patch booting upstream kernels via u-boot works correctly: [ 0.045456] CPU: Testing write buffer coherency: ok [ 0.045597] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.045734] Setting up static identity map for 0x40209000 - 0x40209098 [ 0.065047] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.065081] Brought up 2 CPUs [ 0.065089] SMP: Total of 2 processors activated (5983.43 BogoMIPS). [ 0.065092] CPU: All CPU(s) started in SVC mode. Signed-off-by: Peter Griffin Acked-by: Maxime Coquelin Signed-off-by: Maxime Coquelin arch/arm/mach-sti/headsmp.S | 1 + arch/arm/mach-sti/platsmp.c | 55 ++++++++++++++++++++++++++++++++++++++++++--- arch/arm/mach-sti/smp.h | 2 ++ 3 files changed, 55 insertions(+), 3 deletions(-) commit 0a8c739c066254195b86bc8387fe16e5f72a5bdd Author: Peter Griffin Date: Tue Jun 9 15:33:00 2015 +0200 ARM: STi: DT: STiH418: Add cpu-release-addr dt property. To enable SMP when booting via u-boot we need to specify the newly implemented cpu-release-addr DT property for cores 2 & 3. Cores 0 & 1 are inherited from stih407-family.dtsi. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih418.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit c1dc02da791fd046c284e216aa4ae3c16a54c805 Author: Peter Griffin Date: Tue Jun 9 15:33:00 2015 +0200 ARM: STi: DT: STiH407: Add cpu-release-addr dt property. To enable SMP when booting via u-boot we need to specify the newly implemented cpu-release-addr DT property. Signed-off-by: Peter Griffin Acked-by: Maxime Coquelin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-family.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 810099f657579058b17fba28a0ce1414771f4d92 Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family mtsin0 pinctrl configuration mtsin0 channel can only be configured for parallel data transfer. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit e0decdd60a730fe9d5607403ef48a4548d25ff24 Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsout1 pinctrl configuration tsout1 channel can only be configured for serial data tranfer. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 75d28b8306f73419f38e3505b603b5d44dce39a0 Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsout0 pinctrl configuration tsout0 channel can be configured for either serial or parallel data transfer. Both pin configurations are provided. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit dd72896f0d7cbbda0b404ed4b8ad46b56f363fc4 Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsin5 pinctrl configuration tsin5 can only be configured for serial data transfer. However depending on board design, two alternate tsin5 pin configurations are available, both in pin-controller-front0. pinctrl_tsin5_serial_alt1 is brought out on B2120 reference design as TSD on NIMB slot of the B2004A daughter board. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit af4d191e44c9b0ad40b248902881710b117844fb Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsin4 pinctrl configuration tsin4 can only be configured for serial data transfer. However depending on board design, two alternate pin configurations are available. One in pin-controller-front0 and the other in pin-controller-front1. pinctrl_tsin4_serial_alt3 is brought out on B2120 reference design as TSC on NIMA slot of the B2004A daughter board. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit 36cfc8c14365aa604e5b31e53d56db1299e4008f Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsin3 pinctrl configuration tsin3 channel can only be configured for serial data transfer. On B2120 reference design tsin3 is brought out as TSB on the NIMB slot of the B2004A daughter board. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 855617d6aa3460a75a8c773a883a573fa90a54a8 Author: Peter Griffin Date: Wed Jun 10 16:04:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsin2 pinctrl configuration tsin2 channel can be configured for either serial or parallel data transfer. This patch adds the pinctrl config for both possibilities. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 71cae849b974e899bab0ac348026cdde10fdf61e Author: Peter Griffin Date: Wed Jun 10 16:03:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsin1 pinctrl configuration tsin1 channel can be configured for either serial or parallel data transfer. This patch adds the pinctrl config for both possibilities. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 747d7e6e4cad88a26e25324dee72d56ca52e504a Author: Peter Griffin Date: Wed Jun 10 16:03:00 2015 +0200 ARM: STi: DT: Add STiH407 family tsin0 pinctrl configuration tsin0 and be configured as either serial or parallel. This patch adds the pinctrl config for both possiblities. On B2120 reference design tsin0 is brought out as TSA on the NIMA slot of the B2004A daughter board. Signed-off-by: Peter Griffin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stih407-pinctrl.dtsi | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 117ccc11ac271e446e6f0d65ed75d426a376ad45 Author: Romain Perier Date: Wed Jul 22 07:44:06 2015 +0200 ARM: dts: rockchip: Use correct dts properties for tsadc node on veyron tsadc-tshut-mode and tsadc-tshut-polarity properties don't exist. The rockchip thermal driver looks for rockchip,hw-tshut-mode and rockchip,hw-tshut-polarity instead, otherwise it might freeze or hang the device according to the default mode or polarity used. Signed-off-by: Romain Perier Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-veyron.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 63c88d2204bb33d060e22318b3d50162b7019add Author: Imre Deak Date: Mon Jul 20 14:43:39 2015 -0700 drm/i915/bxt: add support for HPD long/short pulse detection on HPD_PORT_A pin This is a requirement for enabling display port HPD support on the port A HPD pin. This support is to be added by follow-up patches. Signed-off-by: Imre Deak Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 18 +++++++++++++++++- drivers/gpu/drm/i915/i915_reg.h | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) commit cc24fcdcea74844145f0f7683d4626be27dec221 Author: Imre Deak Date: Tue Jul 21 15:32:45 2015 -0700 drm/i915: don't use HPD_PORT_A as an alias for HPD_NONE Currently HPD_PORT_A is used as an alias for HPD_NONE to mean that the given port doesn't support long/short HPD pulse detection. SDVO and CRT ports are like this and for these ports we only want to know whether an hot plug event was detected on the corresponding pin. Since at least on BXT we need long/short pulse detection on PORT A as well (added by the next patch) remove this aliasing of HPD_PORT_A/HPD_NONE and let the return value of intel_hpd_pin_to_port() show whether long/short pulse detection is supported on the passed in pin. No functional change. v2: - rebase on top of -nightly (Daniel) - make the check for intel_hpd_pin_to_port() return value more readable (Sivakumar) Signed-off-by: Imre Deak Reviewed-by: Sonika Jindal Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 ++-- drivers/gpu/drm/i915/i915_irq.c | 4 +++- drivers/gpu/drm/i915/intel_hotplug.c | 20 +++++++++++++------- 3 files changed, 18 insertions(+), 10 deletions(-) commit fd63e2a972c670887e5e8a08440111d3812c0996 Author: Imre Deak Date: Tue Jul 21 15:32:44 2015 -0700 drm/i915: combine i9xx_get_hpd_pins and pch_get_hpd_pins These functions are quite similar, so combine them with the use of a new argument for a function that detects long pulses. This will be also needed by an upcoming patch adding support for BXT long pulse detection. No functional change. v2: - rebase on top -nightly (Daniel) Signed-off-by: Imre Deak Reviewed-by: Sonika Jindal Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 57 ++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 38 deletions(-) commit 1d2334cb7da37e4b0005ca1d194d4e10ca7119f4 Author: Peter Oberparleiter Date: Wed Jul 15 14:04:18 2015 +0200 s390/cio: Implement proper Link Incident Record handling A hardware problem on a FICON link is reported by the Channel Subsystem to the operating system via a Link Incident Record (LIR). In response, the operating system should issue a message that enables hardware service personnel to identify and repair the failing component. Current Linux LIR handling is broken because LIR data is incorrectly interpreted and no log message is generated. This patch fixes Linux LIR handling by implementing a new log message for LIRs indicating a degraded or non-operational link. Also LIRs are no longer used to deactivate channel paths because the available data does not reliably allow to determine the affected channel path. Signed-off-by: Peter Oberparleiter Reviewed-by: Sebastian Ott Signed-off-by: Martin Schwidefsky drivers/s390/cio/chsc.c | 165 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 123 insertions(+), 42 deletions(-) commit b1865401cf54c7ce06bccccb917f57c46a83b399 Author: Peter Oberparleiter Date: Thu Jul 2 14:00:30 2015 +0200 s390/cio: Fix comma After dutifully acting as statement separator for 6 long years, this comma has finally grown into a full semicolon. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky drivers/s390/cio/device_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 00fd2cb0ec4208a32272b4c2f1063ab99a76473c Author: Peter Oberparleiter Date: Thu Jul 2 09:06:55 2015 +0200 s390/sclp: Change SCLP console default buffer-full behavior Dropping kernel messages during a console-buffer-full condition is preferable to halting the system until console messages are delivered, especially for production systems. Update default for sclp_console_drop kernel parameter accordingly. Signed-off-by: Peter Oberparleiter Acked-by: Martin Schwidefsky Signed-off-by: Martin Schwidefsky drivers/s390/char/sclp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 198a52789435a00087040ad0ec25da84c555621f Author: Sebastian Ott Date: Tue Jun 23 14:06:35 2015 +0200 s390/pci: inline get_zdev Inline get_zdev to save ~200 bytes of kernel text for CONFIG_PCI=y. Also rename the function to to_zpci to make clear that we don't do reference counting here. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky arch/s390/include/asm/pci.h | 6 +++++- arch/s390/pci/pci.c | 21 ++++++++------------- arch/s390/pci/pci_dma.c | 8 ++++---- arch/s390/pci/pci_sysfs.c | 6 +++--- 4 files changed, 20 insertions(+), 21 deletions(-) commit 2acb94f43128b5cd375873f9ba82fac968d3ce5d Author: Martin Schwidefsky Date: Mon Jun 22 17:28:14 2015 +0200 s390/nmi: use the normal asynchronous stack for machine checks If a machine checks is received while the CPU is in the kernel, only the s390_do_machine_check function will be called. The call to s390_handle_mcck is postponed until the CPU returns to user space. Because of this it is safe to use the asynchronous stack for machine checks even if the CPU is already handling an interrupt. Signed-off-by: Martin Schwidefsky arch/s390/kernel/entry.S | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) commit a359bb1190f213d282f4934fd461cf440d87dae0 Author: Martin Schwidefsky Date: Mon Jun 22 17:27:48 2015 +0200 s390/kernel: squeeze a few more cycles out of the system call handler Reorder the instructions of UPDATE_VTIME to improve superscalar execution, remove duplicate checks for problem-state from the asynchronous interrupt handlers, and move the check for problem-state from the synchronous exit path to the program check path as it is only needed for program checks inside the kernel. Signed-off-by: Martin Schwidefsky arch/s390/kernel/entry.S | 75 ++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 41 deletions(-) commit d0fc41071a6884d0a10077bb6dc87f9267f32dd6 Author: Martin Schwidefsky Date: Mon Jun 22 17:26:40 2015 +0200 s390/kvm: integrate HANDLE_SIE_INTERCEPT into cleanup_critical Currently there are two mechanisms to deal with cleanup work due to interrupts. The HANDLE_SIE_INTERCEPT macro is used to undo the changes required to enter SIE in sie64a. If the SIE instruction causes a program check, or an asynchronous interrupt is received the HANDLE_SIE_INTERCEPT code forwards the program execution to sie_exit. All the other critical sections in entry.S are handled by the code in cleanup_critical that is called by the SWITCH_ASYNC macro. Move the sie64a function to the beginning of the critical section and add the code from HANDLE_SIE_INTERCEPT to cleanup_critical. Add a special case for the sie64a cleanup to the program check handler. Signed-off-by: Martin Schwidefsky arch/s390/kernel/entry.S | 241 ++++++++++++++++++++++++----------------------- 1 file changed, 123 insertions(+), 118 deletions(-) commit dcd2a9aaa0e0331ba0c4d7a64830788f22f26aa4 Author: Martin Schwidefsky Date: Mon Jun 22 17:14:14 2015 +0200 s390/kvm: fix interrupt race with HANDLE_SIE_INTERCEPT The HANDLE_SIE_INTERCEPT macro is used in the interrupt handlers and the program check handler to undo a few changes done by sie64a. Among them are guest vs host LPP, the gmap ASCE vs kernel ASCE and the bit that indicates that SIE is currently running on the CPU. There is a race of a voluntary SIE exit vs asynchronous interrupts. If the CPU completed the SIE instruction and the TM instruction of the LPP macro at the time it receives an interrupt, the interrupt handler will run while the LPP, the ASCE and the SIE bit are still set up for guest execution. This might result in wrong sampling data, but it will not cause data corruption or lockups. The critical section in sie64a needs to be enlarged to include all instructions that undo the changes required for guest execution. Signed-off-by: Martin Schwidefsky arch/s390/kernel/entry.S | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) commit d05377c12ae2ac88e747a28ae1e23f556d549592 Author: Hendrik Brueckner Date: Thu Feb 19 17:34:07 2015 +0100 s390/crypto: add cpu feature modaliases for crypto modules Use the module_cpu_feature_match() module init function to add an module alias based on required CPU features. The modules are automatically loaded on hardware that supports the required CPU features. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/crypto/aes_s390.c | 3 ++- arch/s390/crypto/des_s390.c | 3 ++- arch/s390/crypto/ghash_s390.c | 3 ++- arch/s390/crypto/prng.c | 4 ++-- arch/s390/crypto/sha1_s390.c | 3 ++- arch/s390/crypto/sha256_s390.c | 3 ++- arch/s390/crypto/sha512_s390.c | 3 ++- 7 files changed, 14 insertions(+), 8 deletions(-) commit 8f00b3e28f73e712a2f82a15f66acd852f60e3ba Author: Hendrik Brueckner Date: Thu Feb 19 12:22:02 2015 +0100 s390/module: enable generic CPU feature modalias using s390 ELF hwcaps Add support for the generic CPU feature modalias implementation that wires up optional CPU features to udev-based module autoprobing. The file provides definitions to map CPU features to s390 ELF hardware capabilities. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/Kconfig | 1 + arch/s390/include/asm/cpufeature.h | 29 +++++++++++++++++++++++++++++ arch/s390/kernel/processor.c | 9 +++++++++ arch/s390/kernel/setup.c | 2 +- 4 files changed, 40 insertions(+), 1 deletion(-) commit 7d0c502040a23a5924d3021651cf5326c8694a77 Author: Hendrik Brueckner Date: Thu Feb 19 14:44:24 2015 +0100 cpufeature: correctly annotate the module init function A section mismatch warning is reported if an __init annotated function is specified for module_cpu_feature_match(). Change the module_cpu_feature_match() function and annotate the generated cpu_feature_match_* function as __init. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky include/linux/cpufeature.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9977e886cbbc758b4b601a160b5825ba573b5ca8 Author: Hendrik Brueckner Date: Wed Jun 10 12:53:42 2015 +0200 s390/kernel: lazy restore fpu registers Improve the save and restore behavior of FPU register contents to use the vector extension within the kernel. The kernel does not use floating-point or vector registers and, therefore, saving and restoring the FPU register contents are performed for handling signals or switching processes only. To prepare for using vector instructions and vector registers within the kernel, enhance the save behavior and implement a lazy restore at return to user space from a system call or interrupt. To implement the lazy restore, the save_fpu_regs() sets a CPU information flag, CIF_FPU, to indicate that the FPU registers must be restored. Saving and setting CIF_FPU is performed in an atomic fashion to be interrupt-safe. When the kernel wants to use the vector extension or wants to change the FPU register state for a task during signal handling, the save_fpu_regs() must be called first. The CIF_FPU flag is also set at process switch. At return to user space, the FPU state is restored. In particular, the FPU state includes the floating-point or vector register contents, as well as, vector-enablement and floating-point control. The FPU state restore and clearing CIF_FPU is also performed in an atomic fashion. For KVM, the restore of the FPU register state is performed when restoring the general-purpose guest registers before the SIE instructions is started. Because the path towards the SIE instruction is interruptible, the CIF_FPU flag must be checked again right before going into SIE. If set, the guest registers must be reloaded again by re-entering the outer SIE loop. This is the same behavior as if the SIE critical section is interrupted. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/ctl_reg.h | 2 + arch/s390/include/asm/fpu-internal.h | 110 ++----------- arch/s390/include/asm/kvm_host.h | 6 +- arch/s390/include/asm/processor.h | 2 + arch/s390/include/asm/switch_to.h | 2 +- arch/s390/kernel/asm-offsets.c | 5 + arch/s390/kernel/compat_signal.c | 3 +- arch/s390/kernel/entry.S | 311 ++++++++++++++++++++++++++++++++++- arch/s390/kernel/nmi.c | 8 +- arch/s390/kernel/process.c | 33 +++- arch/s390/kernel/ptrace.c | 53 ++---- arch/s390/kernel/s390_ksyms.c | 3 + arch/s390/kernel/signal.c | 3 +- arch/s390/kernel/traps.c | 12 +- arch/s390/kvm/kvm-s390.c | 132 ++++++++++----- 15 files changed, 482 insertions(+), 203 deletions(-) commit bd550337f61b6f10dee8c60d0bd17ac02367b56d Author: Hendrik Brueckner Date: Mon Mar 30 17:32:52 2015 +0200 s390/vx: add vector instruction support for older binutils versions Older binutils versions do not include support for the vector instruction formats. Add assembler macros for vector instruction mnemonics to easily encode and generate vector instructions. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/vx-insn.h | 480 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 480 insertions(+) commit 155e839a814834a3b4b31e729f4716e59d3d2dd4 Author: Hendrik Brueckner Date: Thu Jun 11 16:57:20 2015 +0200 s390/kernel: dynamically allocate FP register save area Make the floating-point save area dynamically allocated and uses a flag to distinguish whether a task uses floating-point or vector registers. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/fpu-internal.h | 19 ++++++++++++++----- arch/s390/kernel/process.c | 27 ++++++++++++++++++++------- arch/s390/kernel/traps.c | 4 ++++ 3 files changed, 38 insertions(+), 12 deletions(-) commit 904818e2f229f3d94ec95f6932a6358c81e73d78 Author: Hendrik Brueckner Date: Thu Jun 11 15:33:54 2015 +0200 s390/kernel: introduce fpu-internal.h with fpu helper functions Introduce a new structure to manage FP and VX registers. Refactor the save and restore of floating point and vector registers with a set of helper functions in fpu-internal.h. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/fpu-internal.h | 191 +++++++++++++++++++++++++++++++++++ arch/s390/include/asm/processor.h | 4 +- arch/s390/include/asm/switch_to.h | 134 +----------------------- arch/s390/kernel/compat_signal.c | 43 ++------ arch/s390/kernel/nmi.c | 1 + arch/s390/kernel/process.c | 14 +-- arch/s390/kernel/ptrace.c | 131 ++++++++++++------------ arch/s390/kernel/signal.c | 42 ++------ arch/s390/kernel/traps.c | 24 ++--- 9 files changed, 299 insertions(+), 285 deletions(-) commit 96b2d7a83a27fbae10fc57c39577a7e2689d9f0a Author: Hendrik Brueckner Date: Fri Jun 12 13:53:51 2015 +0200 s390/kvm: validate the floating-point control before restoring it The kvm_arch_vcpu_load() does not validate whether the floating-point control (FPC) is valid. Further, the return code of the restore is not checked too. If the FPC is invalid, the restore fails and the host FPC value might remain. The correct behavior would be to clear the FPC if it is not valid. Hence, validate the FPC value and, optionally, reset the value before restoring it. Reviewed-by: David Hildenbrand Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/kvm/kvm-s390.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 4084eb7767418861a81d9e24d222f2536537f58e Author: Hendrik Brueckner Date: Tue Apr 28 11:30:40 2015 +0200 s390/kernel: use test_fp_ctl() to verify the floating-point control word Use the test_fp_ctl() to test the floating-point control word for validity and use restore_fp_ctl() to set it in load_sigregs. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/switch_to.h | 1 - arch/s390/kernel/compat_signal.c | 6 +++--- arch/s390/kernel/signal.c | 6 +++--- 3 files changed, 6 insertions(+), 7 deletions(-) commit 2e54dc3c7dadd4d012f132b1a2b3ab89d9a48cc2 Author: Hendrik Brueckner Date: Fri Jun 12 10:57:40 2015 +0200 s390/kernel: move EX_TABLE macros to linkage.h header file Move the EX_TABLE macro definitions from the processor.h to the linkage.h header file. It helps to reduce circular header file dependencies. Signed-off-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky arch/s390/include/asm/linkage.h | 22 ++++++++++++++++++++++ arch/s390/include/asm/processor.h | 19 ------------------- 2 files changed, 22 insertions(+), 19 deletions(-) commit 6632d4fdd790965a2e4741a3652a1c365d52ae2e Author: Thomas Betker Date: Tue May 12 08:22:01 2015 +0200 ARM: zynq: Set bit 22 in PL310 AuxCtrl register (6395/1) This patch is based on the commit 1a8e41cd672f ("ARM: 6395/1: VExpress: Set bit 22 in the PL310 (cache controller) AuxCtlr register") Clearing bit 22 in the PL310 Auxiliary Control register (shared attribute override enable) has the side effect of transforming Normal Shared Non-cacheable reads into Cacheable no-allocate reads. Coherent DMA buffers in Linux always have a cacheable alias via the kernel linear mapping and the processor can speculatively load cache lines into the PL310 controller. With bit 22 cleared, Non-cacheable reads would unexpectedly hit such cache lines leading to buffer corruption. For Zynq, this fix avoids memory inconsistencies between Gigabit Ethernet controller (GEM) and CPU when DMA_CMA is disabled. Suggested-by: Punnaiah Choudary Kalluri Signed-off-by: Thomas Betker Signed-off-by: Michal Simek arch/arm/mach-zynq/common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 974a2aba99d29bada9212134e7565d2364967636 Author: Arun Chandran Date: Fri Jun 12 12:23:24 2015 +0530 ARM: zynq: Fix earlyprintk in big endian mode earlyprintk messages are not appearing on the terminal emulator during a big endian kernel boot. In BE mode sending full words to UART will result in unprintable characters as they are byte swapped versions of printable ones. So send only bytes. Signed-off-by: Arun Chandran Tested-by: Michal Simek Signed-off-by: Michal Simek arch/arm/include/debug/zynq.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b2c51106c7581866c37ffc77c5d739f3d4b7cbc9 Author: Andy Lutomirski Date: Tue Jul 21 09:27:18 2015 -0700 x86/build: Fix detection of GCC -mpreferred-stack-boundary support As per: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383 GCC only allows -mpreferred-stack-boundary=3 on x86_64 if -mno-sse is set. That means that cc-option will not detect -mpreferred-stack-boundary=3 support, because we test for it before setting -mno-sse. Fix it by reordering the Makefile bits. Compile-tested only. This should help avoid code generation issues such as the one that was worked around in: b96fecbfa8c8 ("x86/fpu: Fix boot crash in the early FPU code") I'm a bit concerned that we could still have problems on older GCC versions given that our asm code does not respect GCC's idea of the ABI-required stack alignment. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Jan Kara Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/f5297c192969adfa0d28b84cf8a22d59573db26d.1436126872.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/Makefile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) commit b56ea2985d389a3676638203323ebe22c261b7fe Author: Rick Jones Date: Tue Jul 21 16:14:13 2015 -0700 net: track success and failure of TCP PMTU probing Track success and failure of TCP PMTU probing. Signed-off-by: Rick Jones Signed-off-by: David S. Miller include/uapi/linux/snmp.h | 2 ++ net/ipv4/proc.c | 2 ++ net/ipv4/tcp_input.c | 2 ++ 3 files changed, 6 insertions(+) commit 0b2c2a931a051e75f9df429b520bb2c2f2bb056b Author: Hariprasad Shenai Date: Tue Jul 21 22:39:40 2015 +0530 cxgb4: Add debugfs entry to enable backdoor access Add debugfs entry 'use_backdoor' to enable backdoor access to read sge context. By default, we read sge context's via firmware. In case of FW issues, one can enable backdoor access via debugfs to dump sge context for debugging purpose. 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 | 2 ++ drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 19 ++++++++++++------- 3 files changed, 15 insertions(+), 7 deletions(-) commit 01faef2cebae02685e2bcfc9bbee8416d5ec19fc Author: Roopa Prabhu Date: Tue Jul 21 09:16:24 2015 -0700 mpls: make RTA_OIF optional If user did not specify an oif, try and get it from the via address. If failed to get device, return with -ENODEV. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/mpls/af_mpls.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) commit fd36ef606ccf49c45bd7f71ea25007ace17968e3 Merge: 1604089 12fb0da Author: David S. Miller Date: Tue Jul 21 22:21:33 2015 -0700 Merge branch 'sfc-filter-chaining' Edward Cree says: ==================== sfc: support for cascaded multicast filtering Recent versions of firmware for SFC9100 adapters add support for filter chaining, in which packets matching multiple filters are delivered to all filters' recipients, rather than only the highest match-priority filter as was previously the case. This patch series enables this feature and redesigns the filter handling code to make use of it; in particular, subscribing to a multicast address on one function no longer prevents traffic to that address reaching another function which is in promiscuous or allmulti mode. If the firmware does not support filter chaining, the driver will fall back to the old behaviour. ==================== Signed-off-by: David S. Miller commit 12fb0da45c9a077dd76d9848f791fbdd4b8d4050 Author: Edward Cree Date: Tue Jul 21 15:11:00 2015 +0100 sfc: clean fallbacks between promisc/normal in efx_ef10_filter_sync_rx_mode Separate functions for inserting individual and promisc filters; explicit fallback logic in efx_ef10_filter_sync_rx_mode(), in order not to overload the 'promisc' flag as also meaning "fall back to promisc". Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 288 +++++++++++++++++++++++++++++----------- 1 file changed, 208 insertions(+), 80 deletions(-) commit ab8b1f7cf83a3016dcdeae874a469e2c8894fcd9 Author: Daniel Pieczko Date: Tue Jul 21 15:10:44 2015 +0100 sfc: support cascaded multicast filters If the workaround to support cascaded multicast filters ("workaround_26807") is enabled, the broadcast filter and individual multicast filters are not inserted when in promiscuous or allmulti mode. There is a race while inserting and removing filters when entering and leaving promiscuous mode. When changing promiscuous state with cascaded multicast filters, the old multicast filters are removed before inserting the new filters to avoid duplicating packets; this can lead to dropped packets until all filters have been inserted. The efx_nic:mc_promisc flag is added to record the presence of a multicast promiscuous filter; this gives a simple way to tell if the promiscuous state is changing. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 56 ++++++++++++++++++++++++++--------- drivers/net/ethernet/sfc/net_driver.h | 2 ++ 2 files changed, 44 insertions(+), 14 deletions(-) commit 822b96f87f1b47ac0c73417284879ef610500173 Author: Daniel Pieczko Date: Tue Jul 21 15:10:27 2015 +0100 sfc: re-factor efx_ef10_filter_sync_rx_mode() This change is only re-factoring; there are no changes to functionality except for a slight elaboration of an error message (on mismatch filter insertion failure). Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 217 +++++++++++++++++++++++----------------- 1 file changed, 126 insertions(+), 91 deletions(-) commit b6f568e27b6b214beaa0d57ddb4fcc446fcd5555 Author: Jon Cooper Date: Tue Jul 21 15:10:15 2015 +0100 sfc: Insert multicast filters as well as mismatch filters in promiscuous mode If a function is in promiscuous mode and another function has a broadcast or multicast filter inserted, the function in promiscuous mode won't see that broadcast or multicast traffic. Most notably this breaks broadcast, which means ARP doesn't work. Less show-stoppingly, a function listening on a multicast address that's also in promiscuous mode will not see that multicast traffic if another function is also listening on that multicast address. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 104 ++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 51 deletions(-) commit 5a55a72abe48e5d6c0ec86e7b06cd73ab7d517c8 Author: Daniel Pieczko Date: Tue Jul 21 15:10:02 2015 +0100 sfc: warn if other functions have been reset by MCFW When enabling the workaround for cascaded multicast filters, the MC can reset other functions if they have already inserted filters. In that case, the workaround has been enabled, but print an info message in the log recording that other functions had to be reset. As other functions were reset, the MC will have incremented its boot count, so also increment the warm_boot_count on the function which enabled the workaround, as that function won't have received an MC reboot event and does not need to reset. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 34ccfe6f8abd9ce7ea70e68f130cc6618737269f Author: Daniel Pieczko Date: Tue Jul 21 15:09:43 2015 +0100 sfc: add output flag decoding to efx_mcdi_set_workaround The initial use of this will be to check a flag reporting if an FLR was performed on other functions when enabling cascaded multicast filters. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 7 ++++--- drivers/net/ethernet/sfc/mcdi.c | 22 +++++++++++++++++++--- drivers/net/ethernet/sfc/mcdi.h | 3 ++- 3 files changed, 25 insertions(+), 7 deletions(-) commit 832dc9ed43da8eb2033d90b46c1041e1d6947907 Author: Edward Cree Date: Tue Jul 21 15:09:31 2015 +0100 sfc: cope with ENOSYS from efx_mcdi_get_workarounds() GET_WORKAROUNDS was only introduced in May 2014, not all firmware will have it. So call sites need to handle ENOSYS. In this case we're probing the bug26807 workaround, which is not implemented in any firmware that doesn't have GET_WORKAROUNDS. So interpret ENOSYS as 'false'. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 33 ++++++++++++++++++++------------- drivers/net/ethernet/sfc/mcdi.c | 6 +++++- 2 files changed, 25 insertions(+), 14 deletions(-) commit 46e612b0fcefb7a3381933135f386523dedb4159 Author: Daniel Pieczko Date: Tue Jul 21 15:09:18 2015 +0100 sfc: enable cascaded multicast filters in MCFW After creating event queue 0, check to see if the workaround is enabled, and enable it if necessary. This will be called during PCI probe and also when coming back up after a reset. The nic_data->workaround_26807 will be used in the future to control the filter insertion behaviour based on this workaround. Only the primary PF can enable this workaround, so tolerate an EPERM error and continue. Otherwise, if any step in the checking and enabling of the workaround fails, the event queue must be removed. We check that workaround is implemented before trying to enable it, and store the current workaround setting before trying to change it. Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/ef10.c | 63 +++++++++++++++++++++++++++++------------ drivers/net/ethernet/sfc/nic.h | 2 ++ 2 files changed, 47 insertions(+), 18 deletions(-) commit a9196bb048a78936d097600fb47b0b5ab9cc00d5 Author: Edward Cree Date: Tue Jul 21 15:08:56 2015 +0100 sfc: update MCDI protocol definitions Signed-off-by: Edward Cree Signed-off-by: David S. Miller drivers/net/ethernet/sfc/mcdi_pcol.h | 3463 +++++++++++++++++++++++++--------- 1 file changed, 2600 insertions(+), 863 deletions(-) commit bb9a4e7e824e998070c2a2d1d4c67bc971ab72b8 Author: Laurent Navet Date: Wed Jul 22 00:09:45 2015 -0400 ext4 crypto: fix spelling typo in comment Signed-off-by: Laurent Navet Signed-off-by: Theodore Ts'o fs/ext4/crypto_key.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d76d99b219e1a233a720775c0451c310d34594e8 Author: Laurent Navet Date: Wed Jul 22 00:08:08 2015 -0400 ext4 crypto: exit cleanly if ext4_derive_key_aes() fails Return value of ext4_derive_key_aes() is stored but not used. Add test to exit cleanly if ext4_derive_key_aes() fail. Also fix coverity CID 1309760. Signed-off-by: Laurent Navet Signed-off-by: Theodore Ts'o fs/ext4/crypto_key.c | 2 ++ 1 file changed, 2 insertions(+) commit 5ba92bcf0dd63b35a85e90c3016989733b239bb5 Author: Carlos Maiolino Date: Tue Jul 21 23:57:59 2015 -0400 ext4: reject journal options for ext2 mounts There is no reason to allow ext2 filesystems be mounted with journal mount options. So, this patch adds them to the MOPT_NO_EXT2 mount options list. Signed-off-by: Carlos Maiolino Signed-off-by: Theodore Ts'o fs/ext4/super.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 001e4a8775f6e8ad52a89e0072f09aee47d5d252 Author: Tejun Heo Date: Tue Jul 21 23:51:26 2015 -0400 ext4: implement cgroup writeback support For ordered and writeback data modes, all data IOs go through ext4_io_submit. This patch adds cgroup writeback support by invoking wbc_init_bio() from io_submit_init_bio() and wbc_account_io() in io_submit_add_bh(). Journal data which is written by jbd2 worker is left alone by this patch and will always be written out from the root cgroup. ext4_fill_super() is updated to set MS_CGROUPWB when data mode is either ordered or writeback. In journaled data mode, most IOs become synchronous through the journal and enabling cgroup writeback support doesn't make much sense or difference. Journaled data mode is left alone. Lightly tested with sequential data write workload. Behaves as expected. Signed-off-by: Tejun Heo Signed-off-by: Theodore Ts'o fs/ext4/page-io.c | 2 ++ fs/ext4/super.c | 2 ++ 2 files changed, 4 insertions(+) commit 5a33911fa5ecd7395115df2e27fbd22b73357ac5 Author: Tejun Heo Date: Tue Jul 21 23:50:24 2015 -0400 ext4: replace ext4_io_submit->io_op with ->io_wbc ext4_io_submit_init() takes the pointer to writeback_control to test its sync_mode and determine between WRITE and WRITE_SYNC and records the result in ->io_op. This patch makes it record the pointer directly and moves the test to ext4_io_submit(). This doesn't cause any noticeable differences now but having writeback_control available throughout IO submission path will be depended upon by the planned cgroup writeback support. Signed-off-by: Tejun Heo Signed-off-by: Theodore Ts'o fs/ext4/ext4.h | 2 +- fs/ext4/page-io.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 7fd6e11dca09b21efbe2b9db4eff08c8f4a16125 Author: Kuninori Morimoto Date: Tue Jul 21 00:27:24 2015 +0000 ARM: shmobile: r8a7791: Add Audio MIX support on DTSI Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit 88401702fe395880bb03c9d17720185c1d89b43f Author: Kuninori Morimoto Date: Tue Jul 21 00:27:03 2015 +0000 ARM: shmobile: r8a7791: Add Audio CTU support on DTSI Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791.dtsi | 16 ++++++++++++++++ include/dt-bindings/clock/r8a7791-clock.h | 2 ++ 2 files changed, 18 insertions(+) commit fc67bf42fa9a3e7c891e6318475f9c4d81a1d44e Author: Kuninori Morimoto Date: Tue Jul 21 00:26:42 2015 +0000 ARM: shmobile: r8a7790: Add Audio MIX support on DTSI Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit a7163784961e513a6d8c60b264737af623d1f33c Author: Kuninori Morimoto Date: Tue Jul 21 00:26:20 2015 +0000 ARM: shmobile: r8a7790: Add Audio CTU support on DTSI Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 16 ++++++++++++++++ include/dt-bindings/clock/r8a7790-clock.h | 2 ++ 2 files changed, 18 insertions(+) commit 850346eccc2d32dd6d0a3b08e6ac127b8982c067 Author: Laurent Pinchart Date: Wed May 6 07:05:31 2015 +0300 ARM: shmobile: lager: Fix adv7511 IRQ sensing The adv7511 IRQ is low level triggered, not falling edge triggered. The wrong sense configuration results in no interrupt being triggered at all, breaking hotplug detection. Fix it. Reported-by: Ben Hutchings Signed-off-by: Laurent Pinchart Tested-by: Laurent Pinchart Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16040894b26af9f85d9395f072c53d76a44eba21 Author: Jon Paul Maloy Date: Tue Jul 21 06:42:28 2015 -0400 tipc: fix compatibility bug In commit d999297c3dbbe7fdd832f7fa4ec84301e170b3e6 ("tipc: reduce locking scope during packet reception") we introduced a new function tipc_link_proto_rcv(). This function contains a bug, so that it sometimes by error sends out a non-zero link priority value in created protocol messages. The bug may lead to an extra link reset at initial link establising with older nodes. This will never happen more than once, whereafter the link will work as intended. We fix this bug in this commit. Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67b2914b9c3c27d909701c72b0bbed1a97c4b675 Merge: e181a54 f8af8e6 Author: David S. Miller Date: Tue Jul 21 16:12:56 2015 -0700 Merge branch 'explicit-inbound-link-state' Florian Fainelli says: ==================== net: enable inband link state negotiation only when explicitly requested Changes in v5: - removed an invalid use of the link_update callback in the SF2 driver was appeared after merging "net: phy: fixed_phy: handle link-down case" - reworded the commit message for patch 2 to make it clear what it fixes and why this is required Initial cover letter from Stas: Hello. Currently the link status auto-negotiation is enabled for any SGMII link with fixed-link DT binding. The regression was reported: https://lkml.org/lkml/2015/7/8/865 Apparently not all HW that implements SGMII protocol, generates the inband status for the auto-negotiation to work. More details here: https://lkml.org/lkml/2015/7/10/206 The following patches reverts to the old behavior by default, which is to not enable the auto-negotiation for fixed-link. The new DT property is added that allows to explicitly request the auto-negotiation. ==================== Signed-off-by: David S. Miller commit f8af8e6eb95093d5ce5ebcc52bd1929b0433e172 Author: Stas Sergeev Date: Mon Jul 20 17:49:58 2015 -0700 mvneta: use inband status only when explicitly enabled The commit 898b2970e2c9 ("mvneta: implement SGMII-based in-band link state signaling") implemented the link parameters auto-negotiation unconditionally. Unfortunately it appears that some HW that implements SGMII protocol, doesn't generate the inband status, so it is not possible to auto-negotiate anything with such HW. This patch enables the auto-negotiation only if explicitly requested with the 'managed' DT property. This patch fixes the following regression: https://lkml.org/lkml/2015/7/8/865 Signed-off-by: Stas Sergeev CC: Thomas Petazzoni CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: David S. Miller drivers/net/ethernet/marvell/mvneta.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4cba5c2103657d43d0886e4cff8004d95a3d0def Author: Stas Sergeev Date: Mon Jul 20 17:49:57 2015 -0700 of_mdio: add new DT property 'managed' to specify the PHY management type Currently the PHY management type is selected by the MAC driver arbitrary. The decision is based on the presence of the "fixed-link" node and on a will of the driver's authors. This caused a regression recently, when mvneta driver suddenly started to use the in-band status for auto-negotiation on fixed links. It appears the auto-negotiation may not work when expected by the MAC driver. Sebastien Rannou explains: << Yes, I confirm that my HW does not generate an in-band status. AFAIK, it's a PHY that aggregates 4xSGMIIs to 1xQSGMII ; the MAC side of the PHY (with inband status) is connected to the switch through QSGMII, and in this context we are on the media side of the PHY. >> https://lkml.org/lkml/2015/7/10/206 This patch introduces the new string property 'managed' that allows the user to set the management type explicitly. The supported values are: "auto" - default. Uses either MDIO or nothing, depending on the presence of the fixed-link node "in-band-status" - use in-band status Signed-off-by: Stas Sergeev CC: Rob Herring CC: Pawel Moll CC: Mark Rutland CC: Ian Campbell CC: Kumar Gala CC: Florian Fainelli CC: Grant Likely CC: devicetree@vger.kernel.org CC: linux-kernel@vger.kernel.org CC: netdev@vger.kernel.org Signed-off-by: David S. Miller Documentation/devicetree/bindings/net/ethernet.txt | 4 ++++ drivers/of/of_mdio.c | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) commit 868a4215be9a6d80548ccb74763b883dc99d32a2 Author: Stas Sergeev Date: Mon Jul 20 17:49:56 2015 -0700 net: phy: fixed_phy: handle link-down case fixed_phy_register() currently hardcodes the fixed PHY link to 1, and expects to find a "speed" parameter to provide correct information towards the fixed PHY consumer. In a subsequent change, where we allow "managed" (e.g: (RS)GMII in-band status auto-negotiation) fixed PHYs, none of these parameters can be provided since they will be auto-negotiated, hence, we just provide a zero-initialized fixed_phy_status to fixed_phy_register() which makes it fail when we call fixed_phy_update_regs() since status.speed = 0 which makes us hit the "default" label and error out. Without this change, we would also see potentially inconsistent speed/duplex parameters for fixed PHYs when the link is DOWN. CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Stas Sergeev [florian: add more background to why this is correct and desirable] Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/fixed_phy.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit d2eac98f7d1b950b762a7eca05a9ce0ea1d878d2 Author: Florian Fainelli Date: Mon Jul 20 17:49:55 2015 -0700 net: dsa: bcm_sf2: Do not override speed settings The SF2 driver currently overrides speed settings for its port configured using a fixed PHY, this is both unnecessary and incorrect, because we keep feedback to the hardware parameters that we read from the PHY device, which in the case of a fixed PHY cannot possibly change speed. This is a required change to allow the fixed PHY code to allow registering a PHY with a link configured as DOWN by default and avoid some sort of circular dependency where we require the link_update callback to run to program the hardware, and we then utilize the fixed PHY parameters to program the hardware with the same settings. Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/dsa/bcm_sf2.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) commit e181a5430491f038c198f0eacc3142d6e871c2da Author: Mathias Krause Date: Sun Jul 19 22:21:13 2015 +0200 net: #ifdefify sk_classid member of struct sock The sk_classid member is only required when CONFIG_CGROUP_NET_CLASSID is enabled. #ifdefify it to reduce the size of struct sock on 32 bit systems, at least. Signed-off-by: Mathias Krause Signed-off-by: David S. Miller include/net/sock.h | 2 ++ net/netfilter/nft_meta.c | 4 ++++ 2 files changed, 6 insertions(+) commit c45f5c9943ce0b16b299b543c2aae12408039027 Author: Jon Derrick Date: Tue Jul 21 15:08:13 2015 -0600 nvme: Fixes u64 division which breaks i386 builds Uses div_u64 for u64 division and round_down, a bitwise operation, instead of rounddown, which uses a modulus. Signed-off-by: Jon Derrick Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 019d8817b1b064c2bacfbcf40fc68184438ad05a Author: Alan Stern Date: Wed Jul 15 14:40:06 2015 +0200 PM / sleep: Allow devices without runtime PM to do direct-complete Don't unset the direct_complete flag on devices that have runtime PM disabled, if they are runtime suspended. This is needed because otherwise ancestor devices wouldn't be able to do direct_complete without adding runtime PM support to all its descendants. Also removes pm_runtime_suspended_if_enabled() because it's now unused. Signed-off-by: Tomeu Vizoso Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki Documentation/power/devices.txt | 7 +++++++ Documentation/power/runtime_pm.txt | 4 ---- drivers/base/power/main.c | 2 +- include/linux/pm_runtime.h | 6 ------ 4 files changed, 8 insertions(+), 11 deletions(-) commit 7d132de8b0caece3b23098aee97df07e82e27fc0 Merge: af37612 fb18539 Author: Olof Johansson Date: Tue Jul 21 14:06:46 2015 -0700 Merge tag 'tags/pxa-dt-4.3' of https://github.com/rjarzmik/linux into next/dt Merge "pxa-dt for v4.3" from Robert Jarzmik: This device-tree pxa update brings : - dma nodes after dmaengine pxa_dma driver merge - camera driver - usb host controller * tag 'tags/pxa-dt-4.3' of https://github.com/rjarzmik/linux: ARM: dts: pxa: fix power i2c definition ARM: dts: pxa: add the usb host controller ARM: dts: pxa: add embedded pxa camera capture interface ARM: dts: pxa: add dma pxamci nodes to pxa3xx ARM: dts: pxa: add dma engine node to pxa3xx-nand ARM: dts: pxa: add dma controller Signed-off-by: Olof Johansson commit 57c0f8c9c45365d167f8606dad7fde9565432b7a Author: Dalon Westergreen Date: Wed Jul 8 16:48:49 2015 -0700 ARM: dts: socfpga: Add support of Terasic DE0 Atlas board The Terasic DE0 Atlas board is also known as the DE0-Nano board. This patch adds the DTS board file for the DE0-Nano Sockit board, and not the DE0 Nano "Development Board". Signed-off-by: Dalon Westergreen Signed-off-by: Dinh Nguyen --- v3: Updated skew settings for the gmac1 node as this board is using the KSZ9031 PHY instead of the 9021 PHY. v2: use stdpath-out for console and remove comment regarding u-boot ethaddr arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts | 111 ++++++++++++++++++++++ 2 files changed, 112 insertions(+) commit 7aa6ca4d39edf01f997b9e02cf6d2fdeb224f351 Author: Mark Rustad Date: Mon Jul 13 11:40:07 2015 -0700 PCI: Add VPD function 0 quirk for Intel Ethernet devices Set the PCI_DEV_FLAGS_VPD_REF_F0 flag on all Intel Ethernet device functions other than function 0, so that on multi-function devices, we will always read VPD from function 0 instead of from the other functions. [bhelgaas: changelog] Signed-off-by: Mark Rustad Signed-off-by: Bjorn Helgaas Acked-by: Alexander Duyck CC: stable@vger.kernel.org drivers/pci/quirks.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 932c435caba8a2ce473a91753bad0173269ef334 Author: Mark Rustad Date: Mon Jul 13 11:40:02 2015 -0700 PCI: Add dev_flags bit to access VPD through function 0 Add a dev_flags bit, PCI_DEV_FLAGS_VPD_REF_F0, to access VPD through function 0 to provide VPD access on other functions. This is for hardware devices that provide copies of the same VPD capability registers in multiple functions. Because the kernel expects that each function has its own registers, both the locking and the state tracking are affected by VPD accesses to different functions. On such devices for example, if a VPD write is performed on function 0, *any* later attempt to read VPD from any other function of that device will hang. This has to do with how the kernel tracks the expected value of the F bit per function. Concurrent accesses to different functions of the same device can not only hang but also corrupt both read and write VPD data. When hangs occur, typically the error message: vpd r/w failed. This is likely a firmware bug on this device. will be seen. Never set this bit on function 0 or there will be an infinite recursion. Signed-off-by: Mark Rustad Signed-off-by: Bjorn Helgaas Acked-by: Alexander Duyck CC: stable@vger.kernel.org drivers/pci/access.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++- include/linux/pci.h | 2 ++ 2 files changed, 62 insertions(+), 1 deletion(-) commit e69724f32e62502a6e686eae36b7aadfeea60dca Merge: 2070c48 614732e Author: David S. Miller Date: Tue Jul 21 10:39:07 2015 -0700 Merge branch 'lwtunnel' Thomas Graf says: ==================== Lightweight & flow based encapsulation This series combines the work previously posted by Roopa, Robert and myself. It's according to what we discussed at NFWS. The motivation of this series is to: * Consolidate code between OVS and the rest of the kernel and get rid of OVS vports and instead represent them as pure net_devices. * Introduce a lightweight tunneling mechanism which enables flow based encapsulation to improve scalability on both RX and TX. * Do the above in an encapsulation unspecific way so that the encapsulation type is eventually abstracted away from the user. * Use the same forwarding decision for both native forwarding and encapsulation thus allowing to switch between native IPv6 and UDP encapsulation based on endpoint without requiring additional logic The fundamental changes introduces in this series are: * A new RTA_ENCAP Netlink attribute for routes carrying encapsulation instructions. Depending on the specified type, the instructions apply to UDP encapsulations, MPLS and possible other in the future. * Depending on the encapsulation type, the output function of the dst is directly overwritten or the dst merely attaches metadata and relies on a subsequent net_device to apply it to the packet. The latter is typically used if an inner and outer IP header exist which require two subsequent routing lookups to be performed. * A new metadata_dst structure which can be attached to skbs to carry metadata in between subsystems. This new metadata transport is used to provide a single interface for VXLAN, routing and OVS to communicate through metadata. The OVS interfaces remain as-is but will transparently create a real VXLAN net_device in the background. iproute2 is extended with a new use cases: VXLAN: ip route add 40.1.1.1/32 encap vxlan id 10 dst 50.1.1.2 dev vxlan0 MPLS: ip route add 10.1.1.0/30 encap mpls 200 via inet 10.1.1.1 dev swp1 Performance implications: The additional memory allocation in the receive path should have performance implications although it is not observable in standard throughput tests if GRO is properly done. The correct net_device model outweights the additional cost of the allocation. Furthermore, this implication can be relaxed by reintroducing a direct unqueued path from a software device to a consumer like bridge or OVS if needed. $ netperf -t TCP_STREAM -H 15.1.1.201 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 15.1.1.201 (15.1.1.201) port 0 AF_INET : demo Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 10.00 9118.17 Changes since v1: * Properly initialize tun_id as reported by Julian * Drop dupliate netif_keep_dst() as reported by Alexei ==================== Signed-off-by: David S. Miller commit 614732eaa12dd462c0ab274700bed14f36afea5e Author: Thomas Graf Date: Tue Jul 21 10:44:06 2015 +0200 openvswitch: Use regular VXLAN net_device device This gets rid of all OVS specific VXLAN code in the receive and transmit path by using a VXLAN net_device to represent the vport. Only a small shim layer remains which takes care of handling the VXLAN specific OVS Netlink configuration. Unexports vxlan_sock_add(), vxlan_sock_release(), vxlan_xmit_skb() since they are no longer needed. Signed-off-by: Thomas Graf Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller drivers/net/vxlan.c | 242 +++++++++++++++---------------- include/net/rtnetlink.h | 1 + include/net/vxlan.h | 24 +-- net/core/rtnetlink.c | 26 ++-- net/openvswitch/Kconfig | 12 -- net/openvswitch/Makefile | 1 - net/openvswitch/flow_netlink.c | 6 +- net/openvswitch/vport-netdev.c | 201 ++++++++++++++++++++++++- net/openvswitch/vport-vxlan.c | 322 ----------------------------------------- net/openvswitch/vport-vxlan.h | 11 -- 10 files changed, 339 insertions(+), 507 deletions(-) commit c9db965c524ea27451e60d5ddcd242f6c33a70fd Author: Thomas Graf Date: Tue Jul 21 10:44:05 2015 +0200 openvswitch: Abstract vport name through ovs_vport_name() This allows to get rid of the get_name() vport ops later on. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller net/openvswitch/datapath.c | 4 ++-- net/openvswitch/vport-internal_dev.c | 1 - net/openvswitch/vport-netdev.c | 6 ------ net/openvswitch/vport-netdev.h | 1 - net/openvswitch/vport.c | 4 ++-- net/openvswitch/vport.h | 5 +++++ 6 files changed, 9 insertions(+), 12 deletions(-) commit be4ace6e6b1bc12e18b25fe764917e09a1f96d7b Author: Thomas Graf Date: Tue Jul 21 10:44:04 2015 +0200 openvswitch: Move dev pointer into vport itself This is the first step in representing all OVS vports as regular struct net_devices. Move the net_device pointer into the vport structure itself to get rid of struct vport_netdev. Signed-off-by: Thomas Graf Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/datapath.c | 7 +-- net/openvswitch/dp_notify.c | 5 +-- net/openvswitch/vport-internal_dev.c | 37 +++++++--------- net/openvswitch/vport-netdev.c | 86 ++++++++++++++++-------------------- net/openvswitch/vport-netdev.h | 12 ----- net/openvswitch/vport.h | 3 +- 6 files changed, 59 insertions(+), 91 deletions(-) commit 34ae932a40369be6bd6ea97d66b6686361b4370d Author: Thomas Graf Date: Tue Jul 21 10:44:03 2015 +0200 openvswitch: Make tunnel set action attach a metadata dst Utilize the new metadata dst to attach encapsulation instructions to the skb. The existing egress_tun_info via the OVS_CB() is left in place until all tunnel vports have been converted to the new method. Signed-off-by: Thomas Graf Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller net/openvswitch/actions.c | 10 ++++++- net/openvswitch/datapath.c | 8 +++--- net/openvswitch/flow.h | 5 ++++ net/openvswitch/flow_netlink.c | 64 +++++++++++++++++++++++++++++++++++++----- net/openvswitch/flow_netlink.h | 1 + net/openvswitch/flow_table.c | 4 ++- 6 files changed, 79 insertions(+), 13 deletions(-) commit 0dfbdf4102b9303d3ddf2177c0220098ff99f6de Author: Thomas Graf Date: Tue Jul 21 10:44:02 2015 +0200 vxlan: Factor out device configuration This factors out the device configuration out of the RTNL newlink API which allows for in-kernel creation of VXLAN net_devices. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 332 ++++++++++++++++++++++++++++------------------------ include/net/vxlan.h | 59 ++++++++++ 2 files changed, 236 insertions(+), 155 deletions(-) commit e7030878fc8448492b6e5cecd574043f63271298 Author: Thomas Graf Date: Tue Jul 21 10:44:01 2015 +0200 fib: Add fib rule match on tunnel id This add the ability to select a routing table based on the tunnel id which allows to maintain separate routing tables for each virtual tunnel network. ip rule add from all tunnel-id 100 lookup 100 ip rule add from all tunnel-id 200 lookup 200 A new static key controls the collection of metadata at tunnel level upon demand. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 3 ++- include/net/fib_rules.h | 1 + include/net/ip_tunnels.h | 11 +++++++++++ include/uapi/linux/fib_rules.h | 2 +- net/core/fib_rules.c | 24 ++++++++++++++++++++++-- net/ipv4/ip_tunnel_core.c | 16 ++++++++++++++++ 6 files changed, 53 insertions(+), 4 deletions(-) commit 3093fbe7ff4bc7d1571fc217dade1cf80330a714 Author: Thomas Graf Date: Tue Jul 21 10:44:00 2015 +0200 route: Per route IP tunnel metadata via lightweight tunnel This introduces a new IP tunnel lightweight tunnel type which allows to specify IP tunnel instructions per route. Only IPv4 is supported at this point. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller drivers/net/vxlan.c | 10 +++- include/net/dst_metadata.h | 12 ++++- include/net/ip_tunnels.h | 7 ++- include/uapi/linux/lwtunnel.h | 1 + include/uapi/linux/rtnetlink.h | 15 ++++++ net/ipv4/ip_tunnel_core.c | 114 +++++++++++++++++++++++++++++++++++++++++ net/ipv4/route.c | 2 +- net/openvswitch/vport.h | 1 + 8 files changed, 157 insertions(+), 5 deletions(-) commit 1b7179d3adff0ab71f85ee24d7de28ccb7734b89 Author: Thomas Graf Date: Tue Jul 21 10:43:59 2015 +0200 route: Extend flow representation with tunnel key Add a new flowi_tunnel structure which is a subset of ip_tunnel_key to allow routes to match on tunnel metadata. For now, the tunnel id is added to flowi_tunnel which allows for routes to be bound to specific virtual tunnels. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller include/net/flow.h | 8 ++++++++ net/ipv4/fib_frontend.c | 2 ++ net/ipv4/route.c | 8 ++++++++ 3 files changed, 18 insertions(+) commit ee122c79d4227f6ec642157834b6a90fcffa4382 Author: Thomas Graf Date: Tue Jul 21 10:43:58 2015 +0200 vxlan: Flow based tunneling Allows putting a VXLAN device into a new flow-based mode in which skbs with a ip_tunnel_info dst metadata attached will be encapsulated according to the instructions stored in there with the VXLAN device defaults taken into consideration. Similar on the receive side, if the VXLAN_F_COLLECT_METADATA flag is set, the packet processing will populate a ip_tunnel_info struct for each packet received and attach it to the skb using the new metadata dst. The metadata structure will contain the outer header and tunnel header fields which have been stripped off. Layers further up in the stack such as routing, tc or netfitler can later match on these fields and perform forwarding. It is the responsibility of upper layers to ensure that the flag is set if the metadata is needed. The flag limits the additional cost of metadata collecting based on demand. This prepares the VXLAN device to be steered by the routing and other subsystems which allows to support encapsulation for a large number of tunnel endpoints and tunnel ids through a single net_device which improves the scalability. It also allows for OVS to leverage this mode which in turn allows for the removal of the OVS specific VXLAN code. Because the skb is currently scrubed in vxlan_rcv(), the attachment of the new dst metadata is postponed until after scrubing which requires the temporary addition of a new member to vxlan_metadata. This member is removed again in a later commit after the indirect VXLAN receive API has been removed. Signed-off-by: Thomas Graf Signed-off-by: Pravin B Shelar Signed-off-by: David S. Miller drivers/net/vxlan.c | 149 ++++++++++++++++++++++++++++++++++++------- include/linux/skbuff.h | 1 + include/net/dst_metadata.h | 13 ++++ include/net/ip_tunnels.h | 14 ++++ include/net/vxlan.h | 10 ++- include/uapi/linux/if_link.h | 1 + 6 files changed, 165 insertions(+), 23 deletions(-) commit 0accfc268f4d3345693d3af3d5780aae3ad93d8d Author: Thomas Graf Date: Tue Jul 21 10:43:57 2015 +0200 arp: Inherit metadata dst when creating ARP requests If output device wants to see the dst, inherit the dst of the original skb and pass it on to generate the ARP request. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller net/ipv4/arp.c | 65 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 28 deletions(-) commit f38a9eb1f77b296ff07e000823884a0f64d67b2a Author: Thomas Graf Date: Tue Jul 21 10:43:56 2015 +0200 dst: Metadata destinations Introduces a new dst_metadata which enables to carry per packet metadata between forwarding and processing elements via the skb->dst pointer. The structure is set up to be a union. Thus, each separate type of metadata requires its own dst instance. If demand arises to carry multiple types of metadata concurrently, metadata dst entries can be made stackable. The metadata dst entry is refcnt'ed as expected for now but a non reference counted use is possible if the reference is forced before queueing the skb. In order to allow allocating dsts with variable length, the existing dst_alloc() is split into a dst_alloc() and dst_init() function. The existing dst_init() function to initialize the subsystem is being renamed to dst_subsys_init() to make it clear what is what. The check before ip_route_input() is changed to ignore metadata dsts and drop the dst inside the routing function thus allowing to interpret metadata in a later commit. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller include/net/dst.h | 6 +++- include/net/dst_metadata.h | 32 ++++++++++++++++++ net/core/dev.c | 2 +- net/core/dst.c | 84 ++++++++++++++++++++++++++++++++++++++-------- net/ipv4/ip_input.c | 3 +- net/ipv4/route.c | 2 ++ 6 files changed, 112 insertions(+), 17 deletions(-) commit 773a69d64bf65eb6c212c97e9737963a2cf668fd Author: Thomas Graf Date: Tue Jul 21 10:43:55 2015 +0200 icmp: Don't leak original dst into ip_route_input() ip_route_input() unconditionally overwrites the dst. Hide the original dst attached to the skb by calling skb_dst_set(skb, NULL) prior to ip_route_input(). Reported-by: Julian Anastasov Signed-off-by: Thomas Graf Signed-off-by: David S. Miller net/ipv4/icmp.c | 1 + 1 file changed, 1 insertion(+) commit 1d8fff907342d2339796dbd27ea47d0e76a6a2d0 Author: Thomas Graf Date: Tue Jul 21 10:43:54 2015 +0200 ip_tunnel: Make ovs_tunnel_info and ovs_key_ipv4_tunnel generic Rename the tunnel metadata data structures currently internal to OVS and make them generic for use by all IP tunnels. Both structures are kernel internal and will stay that way. Their members are exposed to user space through individual Netlink attributes by OVS. It will therefore be possible to extend/modify these structures without affecting user ABI. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller include/net/ip_tunnels.h | 63 +++++++++++++++++++++++++++++++++ include/uapi/linux/openvswitch.h | 2 +- net/openvswitch/actions.c | 2 +- net/openvswitch/datapath.h | 5 +-- net/openvswitch/flow.c | 4 +-- net/openvswitch/flow.h | 76 ++-------------------------------------- net/openvswitch/flow_netlink.c | 16 ++++----- net/openvswitch/flow_netlink.h | 2 +- net/openvswitch/vport-geneve.c | 17 +++++---- net/openvswitch/vport-gre.c | 16 ++++----- net/openvswitch/vport-vxlan.c | 18 +++++----- net/openvswitch/vport.c | 30 ++++++++-------- net/openvswitch/vport.h | 12 +++---- 13 files changed, 128 insertions(+), 135 deletions(-) commit e3e4712ec0961ed586a8db340bd994c4ad7f5dba Author: Roopa Prabhu Date: Tue Jul 21 10:43:53 2015 +0200 mpls: ip tunnel support This implementation uses lwtunnel infrastructure to register hooks for mpls tunnel encaps. It picks cues from iptunnel_encaps infrastructure and previous mpls iptunnel RFC patches from Eric W. Biederman and Robert Shearman Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller include/linux/mpls_iptunnel.h | 6 + include/net/mpls_iptunnel.h | 29 +++++ include/uapi/linux/mpls_iptunnel.h | 28 +++++ net/mpls/Kconfig | 8 +- net/mpls/Makefile | 1 + net/mpls/mpls_iptunnel.c | 233 +++++++++++++++++++++++++++++++++++++ 6 files changed, 304 insertions(+), 1 deletion(-) commit face0188e31b3cfc598d8dc3470e28e00fb3b07c Author: Roopa Prabhu Date: Tue Jul 21 10:43:52 2015 +0200 mpls: export mpls functions for use by mpls iptunnels Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/mpls/af_mpls.c | 11 ++++++++--- net/mpls/internal.h | 9 +++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) commit 74a0f2fe8ed51e3adbb1c882be04672fe7bb6996 Author: Roopa Prabhu Date: Tue Jul 21 10:43:51 2015 +0200 ipv6: rt6_info output redirect to tunnel output This is similar to ipv4 redirect of dst output to lwtunnel output function for encapsulation and xmit. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/ipv6/route.c | 1 + 1 file changed, 1 insertion(+) commit 8602a625024737602630fe0dee423b3096d31524 Author: Roopa Prabhu Date: Tue Jul 21 10:43:50 2015 +0200 ipv4: redirect dst output to lwtunnel output For input routes with tunnel encap state this patch redirects dst output functions to lwtunnel_output which later resolves to the corresponding lwtunnel output function. This has been tested to work with mpls ip tunnels. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller net/ipv4/route.c | 2 ++ 1 file changed, 2 insertions(+) commit ffce41962ef64b8e685e5b621caf24bf381addd9 Author: Roopa Prabhu Date: Tue Jul 21 10:43:49 2015 +0200 lwtunnel: support dst output redirect function This patch introduces lwtunnel_output function to call corresponding lwtunnels output function to xmit the packet. It adds two variants lwtunnel_output and lwtunnel_output6 for ipv4 and ipv6 respectively today. But this is subject to change when lwtstate will reside in dst or dst_metadata (as per upstream discussions). Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller include/net/lwtunnel.h | 12 +++++++++++ net/core/lwtunnel.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) commit 19e42e45150672124b6a4341e2bc7982d247f0ac Author: Roopa Prabhu Date: Tue Jul 21 10:43:48 2015 +0200 ipv6: support for fib route lwtunnel encap attributes This patch adds support in ipv6 fib functions to parse Netlink RTA encap attributes and attach encap state data to rt6_info. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller include/net/ip6_fib.h | 3 +++ net/ipv6/ip6_fib.c | 2 ++ net/ipv6/route.c | 33 ++++++++++++++++++++++++++++++--- 3 files changed, 35 insertions(+), 3 deletions(-) commit 571e722676fe386bb66f72a75b64a6ebf535c077 Author: Roopa Prabhu Date: Tue Jul 21 10:43:47 2015 +0200 ipv4: support for fib route lwtunnel encap attributes This patch adds support in ipv4 fib functions to parse user provided encap attributes and attach encap state data to fib_nh and rtable. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller include/net/ip_fib.h | 5 ++- include/net/route.h | 1 + net/ipv4/fib_frontend.c | 8 ++++ net/ipv4/fib_semantics.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++- net/ipv4/route.c | 16 +++++++- 5 files changed, 122 insertions(+), 4 deletions(-) commit 499a24256862714539e902c0499b67da2bb3ab72 Author: Roopa Prabhu Date: Tue Jul 21 10:43:46 2015 +0200 lwtunnel: infrastructure for handling light weight tunnels like mpls Provides infrastructure to parse/dump/store encap information for light weight tunnels like mpls. Encap information for such tunnels is associated with fib routes. This infrastructure is based on previous suggestions from Eric Biederman to follow the xfrm infrastructure. Signed-off-by: Roopa Prabhu Signed-off-by: David S. Miller include/linux/lwtunnel.h | 6 ++ include/net/lwtunnel.h | 132 +++++++++++++++++++++++++++++++ include/uapi/linux/lwtunnel.h | 15 ++++ net/Kconfig | 7 ++ net/core/Makefile | 1 + net/core/lwtunnel.c | 179 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 340 insertions(+) commit a0d9a8604f29ee3340126ec3f90c9421f930aa50 Author: Roopa Prabhu Date: Tue Jul 21 10:43:45 2015 +0200 rtnetlink: introduce new RTA_ENCAP_TYPE and RTA_ENCAP attributes This patch introduces two new RTA attributes to attach encap data to fib routes. Example iproute2 command to attach mpls encap data to ipv4 routes $ip route add 10.1.1.0/30 encap mpls 200 via inet 10.1.1.1 dev swp1 Signed-off-by: Roopa Prabhu Suggested-by: Eric W. Biederman Signed-off-by: David S. Miller include/uapi/linux/rtnetlink.h | 2 ++ 1 file changed, 2 insertions(+) commit 768dd3f3a6af25730ed1eec458e47a3c481bc3e5 Author: Jiri Olsa Date: Tue Jul 21 14:31:31 2015 +0200 perf header: Use argv style storage for cmdline feature data We will reuse argv style data in following change to display counters header showing monitored command line. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-12-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/header.c | 35 ++++++++++++++++++++--------------- tools/perf/util/header.h | 1 + tools/perf/util/session.c | 1 + 3 files changed, 22 insertions(+), 15 deletions(-) commit 0e5ffb317d7f861c309b0ab679ed2f59e9f72adf Author: Jiri Olsa Date: Tue Jul 21 14:31:29 2015 +0200 perf evlist: Tolerate NULL maps in propagate_maps Tolerating NULL maps in perf_evlist__propagate_maps, so we dont need to pass evlist with both cpus and threads maps defined. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-10-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 52361ff093c807464f5a32a587a370b360bd399a Author: Jiri Olsa Date: Tue Jul 21 14:31:28 2015 +0200 perf evlist: Use bool instead of target argument in propagate_maps() We need only bool info wether user defined her own set of cpus. Switching target argument to bool so it could be used from places without target object defined in following patches. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-9-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3de5cfb04435b82aa427d0285df996ba73d2f426 Author: Jiri Olsa Date: Tue Jul 21 14:31:30 2015 +0200 perf evlist: Force perf_evlist__set_maps to propagate maps through events Forcing perf_evlist__set_maps to propagate maps through events, so cpu/thread maps get set within evlist. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-11-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 17 +++++++++++++++++ tools/perf/util/evlist.h | 11 +++-------- 2 files changed, 20 insertions(+), 8 deletions(-) commit 35318d204db83f5c1f24c281839763b271b9b323 Author: Jiri Olsa Date: Tue Jul 21 14:31:21 2015 +0200 perf test: Check for refcnt in thread_map test Checking also for refcnt in thread_map test. Signed-off-by: Jiri Olsa Cc: David Ahern Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437481927-29538-2-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/tests/thread-map.c | 4 ++++ 1 file changed, 4 insertions(+) commit 480689617510381391b3d906549477b948d9c4bc Author: Lars-Peter Clausen Date: Tue Jul 21 18:11:08 2015 +0200 ASoC: dapm: Avoid duplicating immutable strings When creating a new widget from a template the name string of the template is duplicated for the newly created widget. This is necessary because in some cases the string might be stored on the stack or other volatile memory locations. But most of the time the string is static const data, which means it is possible to use it directly without having to worry that it might get freed or changed. Use kstrdup_const() to handle duplicating the string. This function is capable of detecting whether a string is immutable and if it is returns the input without duplicating it. This will slightly reduce the runtime memory footprint of DAPM and also speed up initialization. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b97e26980f6c13afad4c249b60a8dca7f5f86116 Author: Lars-Peter Clausen Date: Tue Jul 21 18:11:07 2015 +0200 ASoC: dapm: Add helper function to free a widget snd_soc_tplg_widget_remove_all() has a verbatim copy of an older version of the widget freeing code from dapm_free_widgets(). Add a new helper function that takes care of freeing a widget and use it in both places. This removes the duplicated code and also makes sure that future changes to the widget freeing code only have to be made in one location. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc-dapm.h | 1 + sound/soc/soc-dapm.c | 38 ++++++++++++++++++++++---------------- sound/soc/soc-topology.c | 25 +------------------------ 3 files changed, 24 insertions(+), 40 deletions(-) commit 62d8f23795aec9e8db2529a8ce2be638b9ab4c18 Merge: bc0195a a798c24 Author: Mark Brown Date: Tue Jul 21 18:08:05 2015 +0100 Merge branch 'fix/dapm' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-dapm commit c4a42915d84ad4b5b5e13aeed5da67f458e22399 Author: Jean-Francois Moine Date: Tue Jul 21 18:32:58 2015 +0200 ASoC: kirkwood: prevent double streaming The kirkwood audio subsystem presents 2 PCM's for one source. Streaming on a second PCM while the first one is active cuts this last one. Then, ending the last stream gives a kernel trap in free_irq(). Signed-off-by: Jean-Francois Moine Signed-off-by: Mark Brown sound/soc/kirkwood/kirkwood-dma.c | 4 ++++ 1 file changed, 4 insertions(+) commit 43163022927b6e7d202a7e6f939c3f392465494d Author: Brian Norris Date: Tue May 19 14:38:22 2015 -0700 mtd: m25p80: allow arbitrary OF matching for "jedec,spi-nor" When we added the "jedec,spi-nor" compatible string for use in this driver, we added it as a modalias option. The modalias can be derived in different ways for platform devices vs. device tree (of_*) matching. But for device tree matching (the primary target of this identifier string), the modalias is determined from the first entry in the 'compatible' property. IOW, the following properties would bind to this driver: // Option (a), modalias = "spi-nor" compatible = "jedec,spi-nor"; // Option (b), modalias = "spi-nor" compatible = "idontknowwhatimdoing,spi-nor"; But the following would not: // Option (c), modalias = "shinynewdevice" compatible = "myvendor,shinynewdevice", "jedec,spi-nor"; So, we'd like to match (a) and (c) (even when we don't have an explicit entry for "shinynewdevice"), and we'd rather not allow (b). To do this, we (1) always (for devices without specific platform data) pass the modalias to the spi-nor library; (2) rework the spi-nor library to not reject "bad" names, and instead just fall back to autodetection; and (3) add the .of_match_table to properly catch all "jedec,spi-nor". This allows (a) and (c) without warnings, and rejects (b). Signed-off-by: Brian Norris drivers/mtd/devices/m25p80.c | 18 +++++++++++------- drivers/mtd/spi-nor/spi-nor.c | 8 ++++---- 2 files changed, 15 insertions(+), 11 deletions(-) commit 8ef54f27f6f425fa8deedc237d99b9daf41d68d2 Author: Duc Dang Date: Thu Jul 9 14:20:12 2015 -0700 PCI: xgene: Add support for a 64-bit prefetchable memory window X-Gene PCIe controller has registers to support multiple memory ranges. Add support for a 64-bit prefetchable memory window. [bhelgaas: changelog] Signed-off-by: Duc Dang Signed-off-by: Tanmay Inamdar Signed-off-by: Bjorn Helgaas drivers/pci/host/pci-xgene.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit a13eaf02e2d6326a59f142db329faf4efb527e79 Author: Uwe Kleine-König Date: Tue Jul 21 16:46:25 2015 +0200 regulator: rk808: make better use of the gpiod API The gpiod functions include variants for managed gpiod resources. Use it to simplify the remove function. As the driver handles a device node without a specification of dvs gpios just fine, additionally use the variant of gpiod_get exactly for this use case. This makes error checking more strict. As a third benefit this patch makes the driver use the flags parameter of gpiod_get* which will not be optional any more after 4.2 and so prevents a build failure when the respective gpiod commit is merged. Signed-off-by: Uwe Kleine-König Signed-off-by: Mark Brown drivers/regulator/rk808-regulator.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) commit 604d4994277f3526c8ec7ba16f32e236d5ca3e78 Author: Uwe Kleine-König Date: Tue Jul 21 16:46:24 2015 +0200 regulator: rk808: add #include for gpiod functions This fixes a build problem on mips found by the kbuild test robot: drivers/regulator/rk808-regulator.c: In function 'rk808_buck1_2_get_voltage_sel_regmap': drivers/regulator/rk808-regulator.c:97:2: error: implicit declaration of function 'gpiod_get_value' [-Werror=implicit-function-declaration] if (IS_ERR(gpio) || gpiod_get_value(gpio) == 0) ^ Fixes: bad47ad2eef3 ("regulator: rk808: fixed the overshoot when adjust voltage") Signed-off-by: Uwe Kleine-König Signed-off-by: Mark Brown drivers/regulator/rk808-regulator.c | 1 + 1 file changed, 1 insertion(+) commit 80bb3eda7475eb38b688d2e915c191ce6ad20df1 Author: Duc Dang Date: Thu Jul 9 14:20:11 2015 -0700 arm64: dts: Add APM X-Gene PCIe 64-bit prefetchable window Add a large window (up to 64GB) for X-Gene PCIe nodes to support devices that require huge BARs. Each X-Gene PCIe node will now have two memory windows: a 32-bit non-prefetchable window and a 64-bit prefetchable window. [bhelgaas: changelog] Signed-off-by: Duc Dang Signed-off-by: Tanmay Inamdar Signed-off-by: Bjorn Helgaas arch/arm64/boot/dts/apm/apm-storm.dtsi | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit ccbc175aad819e1d4b6af6246b12d55b13d97815 Author: Alexander Duyck Date: Tue Jul 7 12:24:35 2015 -0700 PCI: Restore ACS configuration as part of pci_restore_state() Previously we did not restore ACS state after a PCIe reset. This meant that we could not reassign interfaces after a system suspend because the D0->D3 transition disabled ACS, and we didn't restore it when going back to D0. Restore ACS configuration in pci_restore_state(). [bhelgaas: changelog] Signed-off-by: Alexander Duyck Signed-off-by: Bjorn Helgaas CC: Allen Kay CC: Chris Wright CC: Alex Williamson drivers/pci/pci.c | 3 +++ 1 file changed, 3 insertions(+) commit 8ffaadf7429270914b8f146ec13cf305e01df20d Author: Jon Derrick Date: Mon Jul 20 10:14:09 2015 -0600 NVMe: Use CMB for the IO SQes if available Some controllers have a controller-side memory buffer available for use for submissions, completions, lists, or data. If a CMB is available, the entire CMB will be ioremapped and it will attempt to map the IO SQes onto the CMB. The queues will be shrunk as needed. The CMB will not be used if the queue depth is shrunk below some threshold where it may have reduced performance over a larger queue in system memory. Signed-off-by: Jon Derrick Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 122 ++++++++++++++++++++++++++++++++++++++++++++-- include/linux/nvme.h | 17 +++++++ 2 files changed, 134 insertions(+), 5 deletions(-) commit 498c43949c7b8f57e0afb8195019cf5a7ba72de0 Author: Jon Derrick Date: Mon Jul 20 10:14:08 2015 -0600 NVMe: Unify SQ entry writing and doorbell ringing This patch changes sq_cmd writers to instead create their command on the stack. __nvme_submit_cmd copies the sq entry to the queue and writes the doorbell. Signed-off-by: Jon Derrick Reviewed-by: Christoph Hellwig Signed-off-by: Jens Axboe drivers/block/nvme-core.c | 80 +++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 45 deletions(-) commit e4a8f8ee89ed15eb7849bc064c2defe76cc085cf Author: Russell Joyce Date: Tue Jul 7 17:54:19 2015 +0100 PCI: xilinx: Check for MSI interrupt flag before handling as INTx Occasionally both MSI and INTx bits in the interrupt decode register are set at once by the Xilinx AXI PCIe Bridge, so the MSI flag in the interrupt message should be checked to ensure that the correct handler is used. If this check is not in place and the interrupt message type is MSI, the INTx handler will be used erroneously when both type bits are set. This will also be followed by a second read of the message FIFO, which can result in the function returning early and the interrupt decode register not being cleared if the FIFO is now empty. Signed-off-by: Russell Joyce Signed-off-by: Bjorn Helgaas drivers/pci/host/pcie-xilinx.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 292c24a073ee34c629966eec8b48d54b0a206667 Author: Baoquan He Date: Mon Jul 20 22:55:28 2015 +0800 percpu: clean up of schunk->map[] assignment in pcpu_setup_first_chunk The original assignment is a little redundent. Signed-off-by: Baoquan He Acked-by: Christoph Lameter Signed-off-by: Tejun Heo mm/percpu.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e79801ffe9c862597750359b8c6825f3a3bfaa4f Author: Aniket Nagarnaik Date: Thu Jul 16 08:48:43 2015 -0700 mwifiex: correct p2p and station interface counters While changing interface type from p2p client or p2p go to station, we should update counters for p2p interface and station interface. Also calling mwifiex_cfg80211_deinit_p2p method instead of mwifiex_cfg80211_init_p2p_client method to deinit p2p interface. Signed-off-by: Aniket Nagarnaik Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0c6303cc06954c336a8221522e9ddf056125afab Author: Aniket Nagarnaik Date: Thu Jul 16 08:05:22 2015 -0700 mwifiex: use maximum ssid length as 0xfe for p2p 0xfe is basically a magic number used to ask firmware match provided string in a SSID. In this case, firmware will return scan results containing"DIRECT-" string. Signed-off-by: Aniket Nagarnaik Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/scan.c | 4 ++++ 1 file changed, 4 insertions(+) commit 40d7412b56f02160291a5153551c4ada8e76f6ed Author: Aniket Nagarnaik Date: Thu Jul 16 08:05:21 2015 -0700 mwifiex: add bss mode TLV to extended scan command We are setting BSS mode as ANY so that firmware will provide all types of scan entries. Signed-off-by: Aniket Nagarnaik Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 6 ++++++ drivers/net/wireless/mwifiex/scan.c | 10 ++++++++++ 2 files changed, 16 insertions(+) commit 8358491d893e08d4b82af0d6012e078158f57ed9 Author: Andy Shevchenko Date: Thu Jul 16 15:42:15 2015 +0300 iwlegacy: convert hex_dump_to_buffer() to %*ph There is no need to use hex_dump_to_buffer() in the cases like this: hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); /* len <= 16 */ sprintf("%s\n", outbuf); since it maybe easily converted to simple: sprintf("%*ph\n", len, buf); Note: it seems in the case the output is groupped by 2 bytes and looks like a typo. Thus, patch changes that to plain byte stream. Signed-off-by: Andy Shevchenko Signed-off-by: Kalle Valo drivers/net/wireless/iwlegacy/3945-mac.c | 2 +- drivers/net/wireless/iwlegacy/debug.c | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) commit 5d6af28a2d240602a594cea236406a9d29bc719a Author: Guy Mishol Date: Thu Jul 16 11:22:47 2015 +0300 wlcore: add antenna diversity reading update the rssi reading on rx_status to read both RSSI level (7 bits) and antenna diversity (msb) Signed-off-by: Guy Mishol Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/rx.c | 3 ++- drivers/net/wireless/ti/wlcore/rx.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 6301566e0b2dafa7d6779598621bca867962a0a2 Author: Miaoqing Pan Date: Wed Jul 15 15:54:07 2015 +0800 ath9k: export HW random number generator We measured the FFT-based entropy in 3 ways, Shannon entropy, collision entropy, and directly measured min-entropy. Just to be conservative, we recommend the estimated min-Entropy to be 10 bits per 16-bit value. Analysis was done by Jacobson,David(djacobso@qti.qualcomm.com). Signed-off-by: Miaoqing Pan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/Kconfig | 7 +++ drivers/net/wireless/ath/ath9k/Makefile | 1 + drivers/net/wireless/ath/ath9k/ath9k.h | 23 ++++++++++ drivers/net/wireless/ath/ath9k/main.c | 4 ++ drivers/net/wireless/ath/ath9k/rng.c | 75 +++++++++++++++++++++++++++++++++ 5 files changed, 110 insertions(+) commit fa5b8c8a5ae4088a590d59fffb022da3ea17bd15 Author: Miaoqing Pan Date: Wed Jul 15 15:54:06 2015 +0800 ath9k: Fix register definitions for QCA956x Signed-off-by: Miaoqing Pan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/ar9003_phy.h | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) commit e3faa866d5e4d6199b45f821343ee24510881823 Author: Rafa? Mi?ecki Date: Thu Jul 9 17:07:08 2015 +0200 brcmfmac: set wiphy's addresses to provide valid MACs Broadcom's firmware requires every BSS to use MAC address with unique last few bits. The amount of bits may depend on a particular firmware, it was verified to be 2 for BCM43602 one. If this condition won't be fulfilled firmware will reject such MAC: brcmfmac: _brcmf_set_mac_address: Setting cur_etheraddr failed, -52 We don't want to simply set addr_mask as it would also disallow using locally administrated bit. Instead let's build a list of addresses manually enabling 0x2 bit for extra interfaces. Signed-off-by: Rafa? Mi?ecki Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 14 ++++++++++++++ drivers/net/wireless/brcm80211/brcmfmac/core.h | 3 +++ 2 files changed, 17 insertions(+) commit 92cd40322848a12f1f3ef2d7804233b93030c532 Author: Michal Kazior Date: Thu Jul 9 12:27:22 2015 +0200 ath9k: fix moredata flag endianness in cabq tx While compiling ath9k with some extra flags I've found that: ath9k/xmit.c +2473 ## 16: warning: restricted __le16 degrades to integer ath9k/xmit.c +2474 ## 36: warning: invalid assignment: &= ath9k/xmit.c +2474 ## 36: left side has type restricted __le16 ath9k/xmit.c +2474 ## 36: right side has type int There's no way for frame ftype/stype to be mistreated as the offending 'moredata' flag when considering cab queue. This could've however theoretically led sometimes to increased power consumption on connected stations as they would keep their Rx active waiting for frames that would never come. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/xmit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 77661208a87b458f353fd0b7a4729cf2887449a6 Author: Christophe Jaillet Date: Wed Jul 8 22:22:46 2015 +0200 brcmsmac: Use kstrdup to simplify code Replace a kmalloc+strcpy by an equivalent kstrdup in order to improve readability. Signed-off-by: Christophe JAILLET Acked-by: Arend van Spriel Signed-off-by: Kalle Valo drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 251086f588720277a6f5782020a648ce32c4e00b Author: Larry Finger Date: Wed Jul 8 10:18:50 2015 -0500 rtlwifi: rtl8821ae: Fix an expression that is always false In routine _rtl8821ae_set_media_status(), an incorrect mask results in a test for AP status to always be false. Similar bugs were fixed in rtl8192cu and rtl8192de, but this instance was missed at that time. Reported-by: David Binderman Signed-off-by: Larry Finger Cc: Stable [3.18+] Cc: David Binderman Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 2 +- drivers/net/wireless/rtlwifi/rtl8821ae/reg.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit cae761b5a6bdc597ba476a040fdcd5b4bc559b85 Author: Rafał Miłecki Date: Sun Jun 28 17:17:13 2015 +0200 bcma: populate bus DT subnodes as platform_device-s Our bus should allow defining children nodes as we may want to specify devices attached to the bus. This is required e.g. to specify NAND or ChipCommon cores and use bus's address and IRQ mappings. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo drivers/bcma/main.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit ae86c587b5b53da4f7859f236f6c22ff9941cff9 Author: Aniket Nagarnaik Date: Thu Jul 2 06:07:02 2015 -0700 mwifiex: fix for p2p broken link This patch fixes following issues in p2p code paths. 1) bss role, bss type and connection type was not set correctly for p2p GO and p2p client at couple of places. 2) Driver appends a proprietary header to management frames which will be parsed by our firmware. Later while informing TX status to cfg80211, modified frame buffer was passed to cfg80211_mgmt_tx_status() instead of original one. Signed-off-by: Aniket Nagarnaik Signed-off-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 5 ++++- drivers/net/wireless/mwifiex/sta_cmd.c | 6 ++++-- drivers/net/wireless/mwifiex/txrx.c | 22 +++++++++++++++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) commit e60ac9c7a4c8776b2503892dfd01f1b4d651245d Author: Felix Fietkau Date: Thu Jul 2 13:40:29 2015 +0200 ath9k: make DMA stop related messages debug-only A long time ago, ath9k had issues during reset where the DMA engine would stay active and could potentially corrupt memory. To debug those issues, the driver would print warnings whenever they occur. Nowadays, these issues are gone and the primary cause of these messages is if the MAC is stuck during reset or busy processing a long transmission. This is fairly harmless, yet these messages continue to worry users. To reduce the number of bogus bug reports, turn these messages into debug messages and count their occurence in the "reset" debugfs file. Signed-off-by: Felix Fietkau Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/debug.c | 2 ++ drivers/net/wireless/ath/ath9k/debug.h | 2 ++ drivers/net/wireless/ath/ath9k/recv.c | 7 +++---- drivers/net/wireless/ath/ath9k/xmit.c | 7 +++++-- 4 files changed, 12 insertions(+), 6 deletions(-) commit cf7d5a80201066daac467d57a47b0826c2e88354 Author: Raphaël Poggi Date: Thu Jul 2 10:34:49 2015 +0200 wlcore: sdio: return correct error code When wlcore_probe_of failed, return the correct error code instead of ENOMEM Signed-off-by: Raphaël Poggi Signed-off-by: Kalle Valo drivers/net/wireless/ti/wlcore/sdio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 277bf09e8be9fa35d6bc0175c2c5a1e6bdb0626e Author: Nik Nyby Date: Mon Jun 29 20:45:47 2015 -0400 b43: Fix typo in function name This fixes a typo in the "b43_lo_g_maintenance_work" function name. Signed-off-by: Nik Nyby Acked-by: Larry Finger Acked-by: Michael Buesch Signed-off-by: Kalle Valo drivers/net/wireless/b43/lo.c | 4 ++-- drivers/net/wireless/b43/lo.h | 2 +- drivers/net/wireless/b43/phy_g.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) commit 33b8261e0e1c6d95901d62808d65141d4df525bd Author: Nik Nyby Date: Mon Jun 29 20:17:55 2015 -0400 rtlwifi: fix typo in comments This fixes a typo in two comments: "paht" -> "path". Signed-off-by: Nik Nyby Acked-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192de/phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 11bdc44093555829eb4a5d9318eece469e2873e8 Author: Reyad Attiyat Date: Sun Jun 28 20:07:38 2015 -0500 mwifiex: usb: Fix double add error when submitting rx urb There is an error that can occur where the driver adds the same URB to USB submission list twice. This happens since mwifiex_usb_submit_rem_rx can submit packets at same time as an rx urb complete callback. This causes list corruption and is fixed by not setting the skb to NULL when submitting an rx packet. [ 84.461242] WARNING: CPU: 1 PID: 748 at lib/list_debug.c:36 __list_add+0xcb/0xd0() [ 84.461245] list_add double add: new=ffff8800c92b0c50, prev=ffff8800c92b0c50, next=ffff8800ced6c430. [ 84.461247] Modules linked in: rfcomm fuse cmac nf_conntrack_netbios_ns nf_conntrack_broadcast ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack bnep iptable_mangle iptable_security iptable_raw btusb btintel bluetooth mwifiex_usb mwifiex x86_pkg_temp_thermal cfg80211 coretemp r8712u(C) kvm_intel kvm hid_sensor_als hid_sensor_incl_3d hid_sensor_rotation hid_sensor_magn_3d hid_sensor_accel_3d hid_sensor_gyro_3d hid_sensor_trigger hid_sensor_iio_common industrialio_triggered_buffer kfifo_buf rfkill iTCO_wdt industrialio iTCO_vendor_support [ 84.461316] crc32_pclmul crc32c_intel ghash_clmulni_intel microcode snd_hda_codec_realtek vfat snd_hda_codec_generic fat snd_hda_codec_hdmi snd_hda_intel snd_hda_controller uvcvideo snd_hda_codec videobuf2_vmalloc videobuf2_memops snd_hwdep videobuf2_core snd_hda_core joydev v4l2_common videodev hid_sensor_hub snd_seq hid_multitouch media snd_seq_device snd_pcm snd_timer mei_me snd i2c_i801 lpc_ich mei soundcore tpm_infineon tpm_tis tpm i2c_hid i2c_designware_platform i2c_designware_core nfsd auth_rpcgss nfs_acl lockd grace sunrpc sch_fq_codel i915 i2c_algo_bit drm_kms_helper drm xhci_pci xhci_hcd ehci_pci sd_mod ehci_hcd video [ 84.461383] CPU: 1 PID: 748 Comm: kworker/u9:0 Tainted: G C 4.1.0-rc5+ #163 [ 84.461386] Hardware name: Microsoft Corporation Surface Pro 2/Surface Pro 2, BIOS 2.05.0250 04/10/2015 [ 84.461396] Workqueue: MWIFIEX_RX_WORK_QUEUE mwifiex_rx_work_queue [mwifiex] [ 84.461399] ffffffff81a8150e ffff8801174cf8e8 ffffffff817df830 0000000000000000 [ 84.461405] ffff8801174cf938 ffff8801174cf928 ffffffff810a54ba ffff8800c86bd750 [ 84.461410] ffff8800c92b0c50 ffff8800c92b0c50 ffff8800ced6c430 ffff88010c057178 [ 84.461416] Call Trace: [ 84.461421] [] dump_stack+0x4f/0x7b [ 84.461428] [] warn_slowpath_common+0x8a/0xc0 [ 84.461432] [] warn_slowpath_fmt+0x46/0x50 [ 84.461436] [] __list_add+0xcb/0xd0 [ 84.461442] [] ? usb_hcd_link_urb_to_ep+0x2a/0xa0 [ 84.461446] [] usb_hcd_link_urb_to_ep+0x80/0xa0 [ 84.461459] [] prepare_transfer+0xaa/0x130 [xhci_hcd] [ 84.461470] [] xhci_queue_bulk_tx+0xb7/0x7a0 [xhci_hcd] [ 84.461480] [] ? xhci_urb_enqueue+0x50f/0x660 [xhci_hcd] [ 84.461489] [] ? xhci_urb_enqueue+0x50f/0x660 [xhci_hcd] [ 84.461498] [] xhci_urb_enqueue+0x5c5/0x660 [xhci_hcd] [ 84.461503] [] usb_hcd_submit_urb+0x93/0xa70 [ 84.461507] [] ? __alloc_skb+0x78/0x1f0 [ 84.461511] [] ? __kmalloc_reserve.isra.26+0x31/0x90 [ 84.461515] [] ? __alloc_skb+0x4c/0x1f0 [ 84.461519] [] ? __alloc_skb+0x8c/0x1f0 [ 84.461523] [] ? skb_dequeue+0x5d/0x80 [ 84.461527] [] usb_submit_urb+0x42e/0x5f0 [ 84.461531] [] ? __alloc_rx_skb+0x39/0x100 [ 84.461536] [] mwifiex_usb_submit_rx_urb+0xb2/0x170 [mwifiex_usb] [ 84.461542] [] mwifiex_usb_submit_rem_rx_urbs+0x45/0x50 [mwifiex_usb] [ 84.461550] [] mwifiex_rx_work_queue+0x10e/0x140 [mwifiex] [ 84.461556] [] process_one_work+0x229/0x890 [ 84.461559] [] ? process_one_work+0x18c/0x890 [ 84.461565] [] worker_thread+0x53/0x470 [ 84.461569] [] ? process_one_work+0x890/0x890 [ 84.461572] [] kthread+0xf2/0x110 [ 84.461577] [] ? trace_hardirqs_on+0xd/0x10 [ 84.461581] [] ? kthread_create_on_node+0x230/0x230 [ 84.461586] [] ret_from_fork+0x42/0x70 [ 84.461590] [] ? kthread_create_on_node+0x230/0x230 [ 84.461593] ---[ end trace 65103af5e6fb3444 ]--- Signed-off-by: Reyad Attiyat Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/usb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b8bb08ec48fb4eafefbc7899b50ec5c6216465b1 Author: Sudip Mukherjee Date: Tue Jul 21 17:36:46 2015 +0530 drm/i915: remove redundant if check The extra check for connector_type is not required as we are already checking for connector_type != DRM_MODE_CONNECTOR_DisplayPort. The check was added by commit eb3394faeb97 ("drm/i915: Add debugfs test control files for Displayport compliance testing") Signed-off-by: Sudip Mukherjee Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 9aaffa340add31aeb4449667da8779df448b7987 Author: Sudip Mukherjee Date: Tue Jul 21 17:36:45 2015 +0530 drm/i915: remove unnecessary null test While creating the debugfs file we are setting the inode->i_private to dev. That same dev is passed to these functions as private of struct seq_file via single_open(). Moreover single_open is setting file->private_data->private to dev. So at this point it can never be NULL. This check was added by commit eb3394faeb97 ("drm/i915: Add debugfs test control files for Displayport compliance testing") Signed-off-by: Sudip Mukherjee Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) commit b5c103f20f0fdd736c51c996b07a42594d683b1c Author: John Linville Date: Fri Jun 26 15:29:36 2015 -0400 mwifiex: fix leak of gen_ie storage on exit from mwifiex_del_mgmt_ies Storage pointed to by gen_ie is allocated with kmalloc, but was never freed. Coverity CID #1271251 Signed-off-by: John W. Linville Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/ie.c | 1 + 1 file changed, 1 insertion(+) commit 550795fc68a4bfa699480b362648fef3d6c74c23 Author: Avinash Patil Date: Wed Jun 24 16:52:21 2015 +0530 MAINTAINERS: update for mwifiex driver maintainers Amit & Nishant would be taking care of maintaining mwifiex driver here onwards on account of organizational changes. Signed-off-by: Avinash Patil Signed-off-by: Amitkumar Karwar Signed-off-by: Nishant Sarmukadam Signed-off-by: Cathy Luo Signed-off-by: Frank Huang Signed-off-by: Kalle Valo MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8b2c621c9f6f6240edaf4359c3148068fff8b1c7 Author: John Linville Date: Tue Jun 23 15:04:03 2015 -0400 mwifiex: do not short circuit exit from mwifiex_set_mgmt_ies Without this change, the code simply exits after calling mwifiex_uap_set_head_tail_ies, leving the call to mwifiex_set_mgmt_beacon_data_ies as dead code. Coverity CID #1271292 Signed-off-by: John W. Linville Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/ie.c | 2 ++ 1 file changed, 2 insertions(+) commit 722d26680af10bd128b5228ba23e5d11ef2256c4 Author: John Linville Date: Tue Jun 23 14:45:45 2015 -0400 mwifiex: avoid freeing improper pointer in mwifiex_set_wowlan_mef_entry mwifiex_set_wowlan_mef_entry attempts to free a passed-in pointer in case of an error. The only caller (mwifiex_set_mef_filter) passes that pointer as an offset into allocated memory, so any attempt to free that will not be the actual allocated pointer. Address this by changing mwifiex_set_wowlan_mef_entry to not do any free, and to cause mwifiex_set_mef_filter to do the appropriate free if the call to mwifiex_set_wowlan_mef_entry fails. Coverity CID #1295879 Signed-off-by: John W. Linville Acked-by: Amitkumar Karwar Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 9030d52cfb340f57d86e1b5d995a463eaddb977b Author: Antonio Borneo Date: Tue Jun 23 22:53:05 2015 +0800 wireless: cw1200: Remove redundant spi driver bus initialization In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_register_driver(), so we can drop the manual assignment. Signed-off-by: Antonio Borneo To: Solomon Peachy To: Kalle Valo To: linux-wireless@vger.kernel.org To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Kalle Valo drivers/net/wireless/cw1200/cw1200_spi.c | 1 - 1 file changed, 1 deletion(-) commit 8d6b538a5eac1fec259d22ffa5b47ac585582432 Author: Avinash Patil Date: Mon Jun 22 19:06:23 2015 +0530 mwifiex: handle multichannel event This patch adds support to handle multichannel event from FW. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 8 ++++++++ drivers/net/wireless/mwifiex/main.h | 2 ++ drivers/net/wireless/mwifiex/sta_event.c | 30 ++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/uap_event.c | 6 ++++++ 4 files changed, 46 insertions(+) commit cc7359b5c82f67a1a19a0cf66f84f465403edb5d Author: Avinash Patil Date: Mon Jun 22 19:06:22 2015 +0530 mwifiex: separate interface combination for multichannel and DFS Multichannel and DFS cannot be supported at same time. So when multichannel operation is enabled by module parameter, we enable number of channel as 2 while registering wiphy. For all other cases we advertise DFS support to cfg80211. Patch also adds support for radar detect widths parameter. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) commit de9e9932b76d5458edabd2692d8ad6504501edf1 Author: Avinash Patil Date: Mon Jun 22 19:06:21 2015 +0530 mwifiex: advertise multichannel support to cfg80211 This patch adds support to advetise mwifiex multichannel support to cfg80211. If module parameter drcs is enabled and FW supports multichannel operation we advertise this support to cfg80211. As of now 2 simultaneous channels are supported. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 14 +++++++++++++- drivers/net/wireless/mwifiex/main.h | 1 + drivers/net/wireless/mwifiex/sta_cmd.c | 13 +++++++++---- 3 files changed, 23 insertions(+), 5 deletions(-) commit d5b036c403f811c6d1856b8e6891a6438cf56f61 Author: Avinash Patil Date: Mon Jun 22 19:06:20 2015 +0530 mwifiex: support to set multichannel policy to FW This patch adds support for setting multichannel policy as module parameter to FW. Value of 1 indicates Multichannel support is enabled and value of 0 disables it. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 8 ++++++++ drivers/net/wireless/mwifiex/sta_cmd.c | 31 ++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/sta_cmdresp.c | 1 + 3 files changed, 40 insertions(+) commit ddd7ceb3f6dd9071fd0e2058252d1fc4645313db Author: Avinash Patil Date: Mon Jun 22 19:06:19 2015 +0530 mwifiex: extend tx_data pause to AP interface as well This patch adds support to extend TX Data pause for AP intefaces. Also for station role, support for pausing/unpausing all traffic when mac address parameter is BSSID is added. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/main.h | 2 + drivers/net/wireless/mwifiex/sta_event.c | 121 ++++++++++++++++++++++--------- drivers/net/wireless/mwifiex/uap_event.c | 4 + 3 files changed, 93 insertions(+), 34 deletions(-) commit 5c8946330abfa4c0476b94070d8833cfbbca5b28 Author: Avinash Patil Date: Mon Jun 22 19:06:18 2015 +0530 mwifiex: enable traffic only when port is open This patch adds support to enable data traffic only when port is open. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/init.c | 2 +- drivers/net/wireless/mwifiex/join.c | 2 ++ drivers/net/wireless/mwifiex/main.h | 1 + drivers/net/wireless/mwifiex/sta_cmdresp.c | 2 ++ drivers/net/wireless/mwifiex/sta_event.c | 4 +++- drivers/net/wireless/mwifiex/uap_event.c | 3 +++ drivers/net/wireless/mwifiex/wmm.c | 5 ++++- 7 files changed, 16 insertions(+), 3 deletions(-) commit a1777327126e184518e17e3c571540be72c73dce Author: Avinash Patil Date: Mon Jun 22 19:06:17 2015 +0530 mwifiex: support for bypass tx queue This patch adds support for another TX queue in driver- bypass TX queue. This queue is used for sending data/mgmt packets while in disconnected state i.e. when port is yet not unblocked. TDLS setup packets would also be queued in this queue. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 4 +++ drivers/net/wireless/mwifiex/init.c | 1 + drivers/net/wireless/mwifiex/main.c | 49 ++++++++++++++++++++++++++++-- drivers/net/wireless/mwifiex/main.h | 2 ++ drivers/net/wireless/mwifiex/wmm.c | 53 +++++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/wmm.h | 4 +++ 6 files changed, 111 insertions(+), 2 deletions(-) commit 65d48e5971065ccb831a93232d60deb7caa9d7cb Author: Avinash Patil Date: Mon Jun 22 19:06:16 2015 +0530 mwifiex: update domain_info upon band change in start_ap It was observed that AP beacons would not reflect correct regulatory information upon starting AP in A band. This was because of missing AP config band update in set_channel of start_ap. Also we configure 11D settings info FW only for specific band. So we need to download domain info to FW even if domain remains unchanged but band is changed. Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 2 +- drivers/net/wireless/mwifiex/main.h | 2 ++ drivers/net/wireless/mwifiex/uap_cmd.c | 7 ++++++- 3 files changed, 9 insertions(+), 2 deletions(-) commit b04975970676d797dec434755a14285420a4189f Author: Xinming Hu Date: Mon Jun 22 19:06:15 2015 +0530 mwifiex: add cfg80211 tdls channel switch handler This patch add cfg80211 tdls_chan_switch and tdls_cancel_chan_switch handler. With this handlers, mwifiex would support TDLS channel switch feature. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/cfg80211.c | 72 +++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) commit 55a2c0770634a08009229aaf23cda885d2e4359e Author: Xinming Hu Date: Mon Jun 22 19:06:14 2015 +0530 mwifiex: enhance tdls link setup condition TDLS link status - channel switching, off channel or base channel itself indicates that TDLS link is setup. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/main.h | 15 +++++++++++++++ drivers/net/wireless/mwifiex/sta_event.c | 2 +- drivers/net/wireless/mwifiex/tdls.c | 8 ++++---- drivers/net/wireless/mwifiex/wmm.c | 7 +++++-- 4 files changed, 25 insertions(+), 7 deletions(-) commit 20834343a8e6a9a1e90d47810f6fe991f1e3362a Author: Xinming Hu Date: Mon Jun 22 19:06:13 2015 +0530 mwifiex: enable tdls channel switch ext_cap This patch enable tdls channel switch ext capability in tdls action frame, and also configure basic tdls channel switch parameters while tdls setup completed and tdls link is enabled.. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/tdls.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 449b8bbf45e636a684c287f3008d13939aeac58b Author: Xinming Hu Date: Mon Jun 22 19:06:12 2015 +0530 mwifiex: add tdls config command This patch add support for a new tdls configuration command which is used for configuration of tdls channel switch parameters. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 45 +++++++++++++++++++++ drivers/net/wireless/mwifiex/main.h | 7 ++++ drivers/net/wireless/mwifiex/sta_cmd.c | 48 ++++++++++++++++++++++ drivers/net/wireless/mwifiex/sta_cmdresp.c | 2 + drivers/net/wireless/mwifiex/tdls.c | 64 ++++++++++++++++++++++++++++++ 5 files changed, 166 insertions(+) commit f7669877e7ab1c5c7fddf268d57f016d97e48198 Author: Xinming Hu Date: Mon Jun 22 19:06:11 2015 +0530 mwifiex: process tdls channel switch event This patch add support for tdls channel switch event process. We block TX queues for particular RA list depending upon channel switch state. If channel switch state is moving to base channel, we unblock RA lists for AP. If channel switch state is moving to off channel, we unblock TDLS peer RA lists. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Avinash Patil Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 17 +++++++++- drivers/net/wireless/mwifiex/sta_event.c | 54 ++++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/wmm.c | 45 ++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/wmm.h | 2 ++ 4 files changed, 117 insertions(+), 1 deletion(-) commit ba101ad50a5024978f3f5007b4a6c20b304cdcbe Author: Xinming Hu Date: Mon Jun 22 19:06:10 2015 +0530 mwifiex: add tdls channel switch status This patch add new tdls status used for tdls channel switch. Driver in turn would block cmd path and data path if tdls channel switching. Data path to non tdls peer should be blocked if tdls channel switch to off-channel. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/decl.h | 3 ++ drivers/net/wireless/mwifiex/main.c | 14 +++++++-- drivers/net/wireless/mwifiex/main.h | 3 ++ drivers/net/wireless/mwifiex/util.c | 59 +++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+), 2 deletions(-) commit 9186a1f37d190f433c64558a4efeac7ed776b571 Author: Xinming Hu Date: Mon Jun 22 19:06:09 2015 +0530 mwifiex: do not increase tx_pkts_queued if receive address tx paused If tx_pkts_queued is increased for tx paused receive address, tx process will be triggered for this packet. But since RA list was tx paused, there will be an infinite loop in mwifiex_wmm_process_tx waiting for the event(tx pause, tdls cs) to cancel tx pause. This will be an dead loop, since main_process was locked at this time, there will be no opportunity to process event. So do not increase tx_pkts_queued if receive address tx paused, this will be restored RA list is unpaused. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/wmm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit b5b0f272d618a470c34619b25f15ca4aa9d3b395 Author: Xinming Hu Date: Mon Jun 22 19:06:08 2015 +0530 mwifiex: block data traffic to tx paused receive address Data traffic to tx paused receive address should be blocked. Signed-off-by: Xinming Hu Signed-off-by: Avinash Patil Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/wmm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4e6ee91bb728a268b37c74e2dd083481bf5ebb98 Author: Avinash Patil Date: Mon Jun 22 19:06:07 2015 +0530 mwifiex: add tx data pause support This patch adds support to enable TX data pause feature for mwifiex. Whenever FW TX buffers reach threshold, FW would send TX pause event to driver. Driver in turn would block data traffic to that particular receiver address. Signed-off-by: Avinash Patil Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo Signed-off-by: Kalle Valo drivers/net/wireless/mwifiex/fw.h | 9 +++++ drivers/net/wireless/mwifiex/main.h | 3 ++ drivers/net/wireless/mwifiex/sta_event.c | 66 ++++++++++++++++++++++++++++++++ drivers/net/wireless/mwifiex/wmm.c | 38 ++++++++++++++++++ drivers/net/wireless/mwifiex/wmm.h | 2 + 5 files changed, 118 insertions(+) commit 80b2089b4a0b08ff34619a8e07fc74a63b4e2d24 Author: Taehee Yoo Date: Sat Jun 20 03:28:15 2015 +0900 rtlwifi: rtl8192cu: Remove rtl8723 code In the rtlwifi/rtl8192cu, rtl8723 code is dead code. So I remove it. Signed-off-by: Taehee Yoo Acked-by: Larry Finger Signed-off-by: Kalle Valo drivers/net/wireless/rtlwifi/rtl8192cu/def.h | 9 --------- drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 16 +--------------- drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 12 ------------ 3 files changed, 1 insertion(+), 36 deletions(-) commit 79ae3e66f8d7ba51c02773897a8f1a37b496d9a3 Author: Josef Gajdusek Date: Mon Jul 20 22:53:18 2015 +0200 ARM: dts: sun4i: Add Iteaduino Plus A10 Iteaduino Plus A10 is a breakout board + Itead Core A10. It features 1GB RAM, has most of the A10 pins on a .1" header, 2 USB ports, 1 OTG USB port, Ethernet, HDMI, SATA, Speaker/Microphone 3.5mm jacks and an SD card slot. Signed-off-by: Josef Gajdusek Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + .../boot/dts/sun4i-a10-itead-iteaduino-plus.dts | 202 +++++++++++++++++++++ 2 files changed, 203 insertions(+) commit 3cf080a7b747d800efc231d29bd3a07659c6aeb6 Author: Tadeusz Struk Date: Mon Jul 20 17:18:27 2015 -0700 crypto: qat - fix invalid check for RSA keylen in fips mode The condition checking allowed key length was invalid. Reported-by: Dan Carpenter Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/qat_asym_algs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a9d4f82ff9de004fc4630d3f3fbc234b8cfe07b3 Author: Tadeusz Struk Date: Mon Jul 20 17:18:26 2015 -0700 crypto: rsa - fix invalid check for keylen in fips mode The condition checking allowed key length was invalid. Reported-by: Dan Carpenter Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu crypto/rsa_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit eef8c85a3b81301f912e8802a1dd9f42dd884947 Author: Alex Bennée Date: Tue Jul 7 17:30:03 2015 +0100 KVM: arm64: add trace points for guest_debug debug This includes trace points for: kvm_arch_setup_guest_debug kvm_arch_clear_guest_debug I've also added some generic register setting trace events and also a trace point to dump the array of hardware registers. Acked-by: Christoffer Dall Signed-off-by: Alex Bennée Signed-off-by: Marc Zyngier arch/arm64/kvm/debug.c | 36 +++++++++++++- arch/arm64/kvm/guest.c | 4 ++ arch/arm64/kvm/sys_regs.c | 17 +++++++ arch/arm64/kvm/trace.h | 123 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 179 insertions(+), 1 deletion(-) commit 834bf88726f0f11ddc7ff9679fc9458654c01a12 Author: Alex Bennée Date: Tue Jul 7 17:30:02 2015 +0100 KVM: arm64: enable KVM_CAP_SET_GUEST_DEBUG Finally advertise the KVM capability for SET_GUEST_DEBUG. Once arm support is added this check can be moved to the common kvm_vm_ioctl_check_extension() code. Signed-off-by: Alex Bennée Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier Documentation/virtual/kvm/api.txt | 7 +++++- arch/arm64/include/asm/hw_breakpoint.h | 14 ++++++++++++ arch/arm64/include/asm/kvm_host.h | 6 ++++- arch/arm64/kernel/hw_breakpoint.c | 12 ---------- arch/arm64/kvm/debug.c | 40 +++++++++++++++++++++++++++++----- arch/arm64/kvm/guest.c | 7 ++++++ arch/arm64/kvm/handle_exit.c | 6 +++++ arch/arm64/kvm/reset.c | 16 ++++++++++++++ 8 files changed, 89 insertions(+), 19 deletions(-) commit 5540546bc93b49f98a0466fe3f96615286c76574 Author: Alex Bennée Date: Tue Jul 7 17:30:01 2015 +0100 KVM: arm64: guest debug, HW assisted debug support This adds support for userspace to control the HW debug registers for guest debug. In the debug ioctl we copy an IMPDEF registers into a new register set called host_debug_state. We use the recently introduced vcpu parameter debug_ptr to select which register set is copied into the real registers when world switch occurs. I've made some helper functions from hw_breakpoint.c more widely available for re-use. As with single step we need to tweak the guest registers to enable the exceptions so we need to save and restore those bits. Two new capabilities have been added to the KVM_EXTENSION ioctl to allow userspace to query the number of hardware break and watch points available on the host hardware. Signed-off-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier include/uapi/linux/kvm.h | 2 ++ 1 file changed, 2 insertions(+) commit 84e690bfbed1d1ecb45d8eccd4c7b6c8e878da1c Author: Alex Bennée Date: Tue Jul 7 17:30:00 2015 +0100 KVM: arm64: introduce vcpu->arch.debug_ptr This introduces a level of indirection for the debug registers. Instead of using the sys_regs[] directly we store registers in a structure in the vcpu. The new kvm_arm_reset_debug_ptr() sets the debug ptr to the guest context. Because we no longer give the sys_regs offset for the sys_reg_desc->reg field, but instead the index into a debug-specific struct we need to add a number of additional trap functions for each register. Also as the generic generic user-space access code no longer works we have introduced a new pair of function pointers to the sys_reg_desc structure to override the generic code when needed. Reviewed-by: Christoffer Dall Signed-off-by: Alex Bennée Signed-off-by: Marc Zyngier arch/arm/include/asm/kvm_host.h | 1 + arch/arm/kvm/arm.c | 2 + arch/arm64/include/asm/kvm_asm.h | 24 ++-- arch/arm64/include/asm/kvm_host.h | 17 ++- arch/arm64/kernel/asm-offsets.c | 6 + arch/arm64/kvm/debug.c | 9 ++ arch/arm64/kvm/hyp.S | 24 ++-- arch/arm64/kvm/sys_regs.c | 274 +++++++++++++++++++++++++++++++++++--- arch/arm64/kvm/sys_regs.h | 6 + 9 files changed, 316 insertions(+), 47 deletions(-) commit e0a1b9a937dc6df9eb402af8966b5d617c7c6b34 Author: Alex Bennée Date: Tue Jul 7 17:29:59 2015 +0100 KVM: arm64: re-factor hyp.S debug register code This is a pre-cursor to sharing the code with the guest debug support. This replaces the big macro that fishes data out of a fixed location with a more general helper macro to restore a set of debug registers. It uses macro substitution so it can be re-used for debug control and value registers. It does however rely on the debug registers being 64 bit aligned (as they happen to be in the hyp ABI). Signed-off-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/kvm/hyp.S | 517 ++++++++++++++------------------------------------- 1 file changed, 138 insertions(+), 379 deletions(-) commit 337b99bf7edfb2044781447e7ca386edb1fdba9d Author: Alex Bennée Date: Tue Jul 7 17:29:58 2015 +0100 KVM: arm64: guest debug, add support for single-step This adds support for single-stepping the guest. To do this we need to manipulate the guests PSTATE.SS and MDSCR_EL1.SS bits to trigger stepping. We take care to preserve MDSCR_EL1 and trap access to it to ensure we don't affect the apparent state of the guest. As we have to enable trapping of all software debug exceptions we suppress the ability of the guest to single-step itself. If we didn't we would have to deal with the exception arriving while the guest was in kernelspace when the guest is expecting to single-step userspace. This is something we don't want to unwind in the kernel. Once the host is no longer debugging the guest its ability to single-step userspace is restored. Signed-off-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/include/asm/kvm_host.h | 11 +++++++ arch/arm64/kvm/debug.c | 68 ++++++++++++++++++++++++++++++++++++--- arch/arm64/kvm/guest.c | 4 ++- arch/arm64/kvm/handle_exit.c | 2 ++ 4 files changed, 80 insertions(+), 5 deletions(-) commit 4bd611ca60afa155bca25b40312ed61c4d46237f Author: Alex Bennée Date: Tue Jul 7 17:29:57 2015 +0100 KVM: arm64: guest debug, add SW break point support This adds support for SW breakpoints inserted by userspace. We do this by trapping all guest software debug exceptions to the hypervisor (MDCR_EL2.TDE). The exit handler sets an exit reason of KVM_EXIT_DEBUG with the kvm_debug_exit_arch structure holding the exception syndrome information. It will be up to userspace to extract the PC (via GET_ONE_REG) and determine if the debug event was for a breakpoint it inserted. If not userspace will need to re-inject the correct exception restart the hypervisor to deliver the debug exception to the guest. Any other guest software debug exception (e.g. single step or HW assisted breakpoints) will cause an error and the VM to be killed. This is addressed by later patches which add support for the other debug types. Signed-off-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier Documentation/virtual/kvm/api.txt | 2 +- arch/arm64/kvm/debug.c | 3 +++ arch/arm64/kvm/guest.c | 2 +- arch/arm64/kvm/handle_exit.c | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 2 deletions(-) commit 56c7f5e77f797fd0dcf2376ce1496f4238e6be33 Author: Alex Bennée Date: Tue Jul 7 17:29:56 2015 +0100 KVM: arm: introduce kvm_arm_init/setup/clear_debug This is a precursor for later patches which will need to do more to setup debug state before entering the hyp.S switch code. The existing functionality for setting mdcr_el2 has been moved out of hyp.S and now uses the value kept in vcpu->arch.mdcr_el2. As the assembler used to previously mask and preserve MDCR_EL2.HPMN I've had to add a mechanism to save the value of mdcr_el2 as a per-cpu variable during the initialisation code. The kernel never sets this number so we are assuming the bootcode has set up the correct value here. This also moves the conditional setting of the TDA bit from the hyp code into the C code which is currently used for the lazy debug register context switch code. Signed-off-by: Alex Bennée Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm/include/asm/kvm_host.h | 4 ++ arch/arm/kvm/arm.c | 6 +++ arch/arm64/include/asm/kvm_asm.h | 2 + arch/arm64/include/asm/kvm_host.h | 5 +++ arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kvm/Makefile | 2 +- arch/arm64/kvm/debug.c | 81 +++++++++++++++++++++++++++++++++++++++ arch/arm64/kvm/hyp.S | 19 ++++----- 8 files changed, 108 insertions(+), 12 deletions(-) commit 0e6f07f29cfb8d79dbbdb12560a73f7121ba324e Author: Alex Bennée Date: Tue Jul 7 17:29:55 2015 +0100 KVM: arm: guest debug, add stub KVM_SET_GUEST_DEBUG ioctl This commit adds a stub function to support the KVM_SET_GUEST_DEBUG ioctl. Any unsupported flag will return -EINVAL. For now, only KVM_GUESTDBG_ENABLE is supported, although it won't have any effects. Signed-off-by: Alex Bennée . Reviewed-by: Christoffer Dall Signed-off-by: Marc Zyngier Documentation/virtual/kvm/api.txt | 2 +- arch/arm/kvm/arm.c | 7 ------- arch/arm/kvm/guest.c | 6 ++++++ arch/arm64/kvm/guest.c | 27 +++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 8 deletions(-) commit 21b6f32f9471284f6d4621fc8be71719266db557 Author: Alex Bennée Date: Tue Jul 7 17:29:54 2015 +0100 KVM: arm64: guest debug, define API headers This commit defines the API headers for guest debugging. There are two architecture specific debug structures: - kvm_guest_debug_arch, allows us to pass in HW debug registers - kvm_debug_exit_arch, signals exception and possible faulting address The type of debugging being used is controlled by the architecture specific control bits of the kvm_guest_debug->control flags in the ioctl structure. Signed-off-by: Alex Bennée Reviewed-by: David Hildenbrand Reviewed-by: Andrew Jones Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier arch/arm64/include/uapi/asm/kvm.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 8ab30c1538b14424015e45063c41d509b24c1dea Author: Alex Bennée Date: Tue Jul 7 17:29:53 2015 +0100 KVM: add comments for kvm_debug_exit_arch struct Bring into line with the comments for the other structures and their KVM_EXIT_* cases. Also update api.txt to reflect use in kvm_run documentation. Signed-off-by: Alex Bennée Reviewed-by: David Hildenbrand Reviewed-by: Andrew Jones Acked-by: Christoffer Dall Signed-off-by: Marc Zyngier Documentation/virtual/kvm/api.txt | 4 +++- include/uapi/linux/kvm.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) commit f9d50fef4b6447527c2be1ad07499221c2511391 Author: Grazvydas Ignotas Date: Tue Jul 21 04:12:01 2015 +0300 ARM: OMAP2+: omap3-pandora: add wifi support Add wl1251 support via pdata-quirks as it's driver lacks DT support. MMC3 is marked disabled in DT so that MMC3 instance of hsmmc driver is probed using platform data with special card init callback. Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-pandora-common.dtsi | 5 ++ arch/arm/mach-omap2/pdata-quirks.c | 101 ++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) commit fc53e2ccf000b45298a325a6b6c3560d4ba8932b Author: Grazvydas Ignotas Date: Tue Jul 21 04:12:00 2015 +0300 ARM: OMAP2+: omap3-pandora: add backlight support Add backlight support via pdata-quirks as it's driver lacks DT support. Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/mach-omap2/pdata-quirks.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit f7c57f8c7b464c0fbcd67764c38e21aebb7085c4 Author: Grazvydas Ignotas Date: Tue Jul 21 04:11:59 2015 +0300 ARM: dts: omap3-pandora: add support for usb host and 32k buffer This adds missing bits for EHCI HS USB host support and 32k clock buffer control for the wg7210 bt+wifi module. Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-pandora-common.dtsi | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit a4e1adb98f7376dccbfaee7c375e6378b6c21985 Author: Grazvydas Ignotas Date: Tue Jul 21 04:11:58 2015 +0300 ARM: dts: omap3-pandora: miscellaneous corrections - add pandora specific compatible name - fix mmc2 card detect polarity - fix mmc1 and mmc2 write protect polarity - disable write protect pins because of production issue and add an explanation why they are disabled - fix NAND partition name to reflect the correct address Signed-off-by: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-pandora-1ghz.dts | 2 +- arch/arm/boot/dts/omap3-pandora-600mhz.dts | 2 +- arch/arm/boot/dts/omap3-pandora-common.dtsi | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) commit a60011c1f4204285f18edd61859456caf5ecbbb6 Author: Aparna Balasubramanian Date: Mon Jul 20 16:07:31 2015 -0500 ARM: dts: omap5-uevm: Add Palmas power button support Palmas on OMAP5uevm has support for power button, so enable it. Signed-off-by: Aparna Balasubramanian Acked-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap5-uevm.dts | 7 +++++++ 1 file changed, 7 insertions(+) commit 71256d9d0be7a371ad2072e08dc7c6da3e71ed9e Author: Sekhar Nori Date: Mon Jul 20 16:42:20 2015 +0530 ARM: dts: am437x: add aliases for all UART instances Add serialN aliases for all 6 UART instances on the AM437x SoC so each board's .dts file does not have to define its own aliases. Remove the alias added for am437x-gp-evm.dts now that we have the aliases defined in am4372.dtsi file. Signed-off-by: Sekhar Nori Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 5 +++++ arch/arm/boot/dts/am437x-gp-evm.dts | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) commit 36bd1683559e23d4032defadbfbd3ccd5601b8c8 Author: Teresa Remmet Date: Thu Jul 16 10:30:49 2015 +0200 ARM: dts: Add phyBOARD-WEGA-AM335x rdk phyBOARD-WEGA-AM335x represents a direct soldered combination of a phyCORE-AM335x SoM and carrier board. Different kind of SoM options can be connected to the wega carrier board. So we created a separate wega dtsi file. The final dts contains the actual SoM on the carrier board. WEGA carrier board features: * ETH phy on carrier board: 1x MII * 1x CAN * 2x UART * USB0 (device) * USB1 (host) * mSD slot Signed-off-by: Teresa Remmet Signed-off-by: Tony Lindgren .../devicetree/bindings/arm/omap/omap.txt | 3 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/am335x-wega-rdk.dts | 22 +++ arch/arm/boot/dts/am335x-wega.dtsi | 151 +++++++++++++++++++++ 4 files changed, 178 insertions(+), 1 deletion(-) commit 52b0dcb1d160f9ac839acd6b44b0687e82e23e98 Author: Teresa Remmet Date: Thu Jul 16 10:30:48 2015 +0200 ARM: dts: Add support for phyCORE-AM335x SoM phyCORE-AM335x is a SoM (System on Module) containing a AM335x SOC. The module can be connected to different carrier boards. Some hardware parts are configurable on the phyCORE-AM335x. So they are disabled on default in this som dtsi file. They will be enabled in the board dts files, when populated. * RAM up to 1GiB * PMIC * NAND flash up to 1GiB * Eth PHY on SOM: 1x RMII * SPI NOR flash 8MiB (optional) * i2c RTC (optional) * i2c EEPROM 4kiB (optional) Signed-off-by: Teresa Remmet Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-phycore-som.dtsi | 368 ++++++++++++++++++++++++++++++ 1 file changed, 368 insertions(+) commit ec49a86ce0c6202ddf53c8e940c3468b4fb7e042 Author: Fugang Duan Date: Thu Jul 16 16:26:45 2015 +0800 ARM: dts: omap3: correct the format of u16 values for tsc2046 node In tsc2046 touch driver, the values such as ti,x-min is defined as a u16 value. the driver use API of_property_read_u16() read the value. For these u16 value, the dts entry should be like: property = /bits/ 16 <0x5000>; This describes the property as a u16 value. Signed-off-by: Fugang Duan Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-lilly-a83x.dtsi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a4642e99694a912b32952317e8f4c253ed6be4a9 Author: Dan Carpenter Date: Tue Jul 21 11:57:36 2015 +0300 ASoC: sti: error handling bug in sti_uniperiph_cpu_dai_of() There is a stray '!' which means the condition is never true. Fixes: f3bd847eb0a7 ('ASoC: sti: Add uniperipheral dai driver') Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown sound/soc/sti/sti_uniperif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6eb1c2a63d0415bd66c9c866b7d405662f50d5e4 Author: Dan Carpenter Date: Tue Jul 21 11:55:27 2015 +0300 ASoC: max98925: reading beyond the end of the array Debug prints are seldom useful and this one has an annoying thing where it reads one space beyond the end of the array on error. Signed-off-by: Dan Carpenter Signed-off-by: Mark Brown sound/soc/codecs/max98925.c | 2 -- 1 file changed, 2 deletions(-) commit 48725e9cc841da395bfd74e7691bba91613d3517 Author: Kuninori Morimoto Date: Tue Jul 21 00:03:35 2015 +0000 ASoC: rsnd: tidyup parameter assignment position 84e95355602c("ASoC: rsnd: show debug message for SSI/SRC/DVC connection") added debug message on rsnd_dai_connect(), but the relationship of parameter check was absurdity. This patch tidyup it. It is reported via Smatch/Dan Reported-by: Dan Carpenter Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 1f2112af11e4c330cd070464e95ba9f546b8959b Author: Uwe Kleine-König Date: Tue Jul 21 10:30:42 2015 +0200 spi: mpc512x-psc: fix compiler warning about uninitialized variable This fixes several warnings like: drivers/spi/spi-mpc512x-psc.c: In function 'mpc512x_psc_spi_prep_xfer_hw': arch/powerpc/include/asm/io.h:163:2: warning: '__ret' may be used uninitialized in this function [-Wmaybe-uninitialized] introduced in commit 8bf960985dfc for some build configurations. Fixes: 8bf960985dfc ("spi: mpc512x-psc: add support for Freescale MPC5125") Signed-off-by: Uwe Kleine-König Signed-off-by: Mark Brown drivers/spi/spi-mpc512x-psc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c21cde6fe1ba08b357c96071c71af6543f2863ec Author: Linus Walleij Date: Tue Jul 21 11:36:57 2015 +0200 gpio: document interaction with other subsystems Now I am very fed up with people reinventing kernel wheels in userspace "just because they can" (read, sysfs). Put in a angry blurb in sysfs doc and put in a new file with pointers to other subsystem drivers utilizing GPIOs. Signed-off-by: Linus Walleij Documentation/gpio/00-INDEX | 3 ++ Documentation/gpio/drivers-on-gpio.txt | 95 ++++++++++++++++++++++++++++++++++ Documentation/gpio/sysfs.txt | 9 ++-- 3 files changed, 102 insertions(+), 5 deletions(-) commit 949163015ce6fdb76a5e846a3582d3c40c23c001 Author: Paolo Pisati Date: Mon Jul 20 18:23:50 2015 +0200 x86/boot: Obsolete the MCA sys_desc_table The kernel does not support the MCA bus anymroe, so mark sys_desc_table as obsolete: remove any reference from the code together with the remaining of MCA logic. bloat-o-meter output: add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-55 (-55) function old new delta i386_start_kernel 128 119 -9 setup_arch 1421 1375 -46 Signed-off-by: Paolo Pisati Cc: Josh Triplett Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437409430-8491-1-git-send-email-p.pisati@gmail.com Signed-off-by: Ingo Molnar Documentation/x86/zero-page.txt | 3 ++- arch/x86/boot/Makefile | 2 +- arch/x86/boot/boot.h | 3 --- arch/x86/boot/compressed/eboot.c | 4 ---- arch/x86/boot/main.c | 3 --- arch/x86/boot/mca.c | 38 ----------------------------------- arch/x86/include/asm/processor.h | 8 -------- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/kernel/kexec-bzimage64.c | 3 --- arch/x86/kernel/setup.c | 5 ----- 10 files changed, 4 insertions(+), 67 deletions(-) commit f2a50f8b7da45ff2de93a71393e715a2ab9f3b68 Author: Andy Lutomirski Date: Thu Jul 9 19:17:29 2015 -0700 x86/selftests, x86/vm86: Improve entry_from_vm86 selftest The entry_from_vm86 selftest was very weak. Improve it: test more types of kernel entries from vm86 mode and test them more carefully. While we're at it, try to improve behavior on non-SEP CPUs. The old code was buggy because I misunderstood the intended semantics of #UD in vm86, so I didn't handle a possible signal. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Shuah Khan Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/d8ef1d7368ac70d8342481563ed50f9a7d2eea6f.1436492057.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/entry_from_vm86.c | 132 ++++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 8 deletions(-) commit 7d89a3cb159aecb1b363ea50cb14c967ff83b5a6 Author: Luis R. Rodriguez Date: Thu Jul 9 18:24:59 2015 -0700 drivers/video/fbdev/atyfb: Use arch_phys_wc_add() and ioremap_wc() This driver uses strong UC for the MMIO region, and ioremap_wc() for the framebuffer to whitelist for the WC MTRR that can be changed to WC. On PAT systems we don't need the MTRR call so just use arch_phys_wc_add() there, this lets us remove all those ifdefs. Let's also be consistent and use ioremap_wc() for ATARI as well. There are a few motivations for this: a) Take advantage of PAT when available. b) Help bury MTRR code away, MTRR is architecture specific and on x86 it is being replaced by PAT. c) Help with the goal of eventually using _PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit de33c442e titled "x86 PAT: fix performance drop for glx, use UC minus for ioremap(), ioremap_nocache() and pci_mmap_page_range()"). The conversion done is expressed by the following Coccinelle SmPL patch, it additionally required manual intervention to address all the ifdeffery and removal of redundant things which arch_phys_wc_add() already addresses such as verbose message about when MTRR fails and doing nothing when we didn't get an MTRR: @ mtrr_found @ expression index, base, size; @@ -index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1); +index = arch_phys_wc_add(base, size); @ mtrr_rm depends on mtrr_found @ expression mtrr_found.index, mtrr_found.base, mtrr_found.size; @@ -mtrr_del(index, base, size); +arch_phys_wc_del(index); @ mtrr_rm_zero_arg depends on mtrr_found @ expression mtrr_found.index; @@ -mtrr_del(index, 0, 0); +arch_phys_wc_del(index); @ mtrr_rm_fb_info depends on mtrr_found @ struct fb_info *info; expression mtrr_found.index; @@ -mtrr_del(index, info->fix.smem_start, info->fix.smem_len); +arch_phys_wc_del(index); @ ioremap_replace_nocache depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap_nocache(base, size); +info->screen_base = ioremap_wc(base, size); @ ioremap_replace_default depends on mtrr_found @ struct fb_info *info; expression base, size; @@ -info->screen_base = ioremap(base, size); +info->screen_base = ioremap_wc(base, size); Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andrzej Hajda Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Daniel Vetter Cc: Dave Airlie Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mathias Krause Cc: Mel Gorman Cc: Peter Zijlstra Cc: Rob Clark Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: arnd@arndb.de Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: geert@linux-m68k.org Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: linux-fbdev@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-pci@vger.kernel.org Cc: mpe@ellerman.id.au Cc: mst@redhat.com Cc: ralf@linux-mips.org Cc: ross.zwisler@linux.intel.com Cc: stefan.bader@canonical.com Cc: tj@kernel.org Cc: ville.syrjala@linux.intel.com Link: http://lkml.kernel.org/r/1436491499-3289-5-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/aty/atyfb.h | 4 +--- drivers/video/fbdev/aty/atyfb_base.c | 36 +++++++----------------------------- 2 files changed, 8 insertions(+), 32 deletions(-) commit 3cc2dac5be3f23414a4efdee0b26d79bed297cac Author: Luis R. Rodriguez Date: Thu Jul 9 18:24:58 2015 -0700 drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC Replace a WC MTRR call followed by a UC MTRR "hole" call with a single WC MTRR call and use strong UC to protect the MMIO region and account for the device's architecture and MTRR size requirements. The atyfb driver relies on two overlapping MTRRs. It does this to account for the fact that, on some devices, it has the MMIO region bundled together with the framebuffer on the same PCI BAR and the hardware requirement on MTRRs on both base and size to be powers of two. In the worst case, the PCI BAR is of 16 MiB while the MMIO region is on the last 4 KiB of the same PCI BAR. If we use just one MTRR for WC, we can only end up with an 8 MiB or 16 MiB framebuffer. Using a 16 MiB WC framebuffer area is unacceptable since we need the MMIO region to not be write-combined. An 8 MiB WC framebuffer option does not let use quite a bit of framebuffer space, it would reduce the resolution capability of the device considerably. An alternative is to use many MTRRs but on some systems that could mean not having enough MTRRs to cover the framebuffer. The current solution is to issue a 16 MiB WC MTRR followed by a 4 KiB UC MTRR on the last 4 KiB. Its worth mentioning and documenting that the current ioremap*() strategy as well: the first ioremap() is used only for the MMIO region, a second ioremap() call is used for the framebuffer *and* the MMIO region, the MMIO region then ends up mmapped twice. Two ioremap() calls are used since in some situations the framebuffer actually ends up on a separate auxiliary PCI BAR, but this is not always true. In the worst case, the PCI BAR is shared for both MMIO and the framebuffer. By allowing overlapping ioremap() calls, the driver enables two types of devices with one simple ioremap() strategy. See also: 2f9e897353fc ("x86/mm/mtrr, pat: Document Write Combining MTRR type effects on PAT / non-PAT pages") By default, Linux today defaults both pci_mmap_page_range() and ioremap_nocache() to use _PAGE_CACHE_MODE_UC_MINUS. On x86, ioremap() aliases ioremap_nocache(). The preferred value for Linux may soon change, however, the goal is to use _PAGE_CACHE_MODE_UC by default in the future. We can use ioremap_uc() to set PCD=1, PWT=1 on non-PAT systems and use a PAT value of UC for PAT systems. This will ensure the same settings are in place regardless of what Linux decides to use by default later and to not regress our MTRR strategy since the effective memory type will differ depending on the value used. Using a WC MTRR on such an area will be nullified. This technique can be used to protect the MMIO region in this driver's case and address the restrictions of the device's architecture as well as restrictions set upon us by powers of 2 when using MTRRs. This allows us to replace the two MTRR calls with a single 16 MiB WC MTRR and use page-attribute settings for non-PAT and PAT entry values for PAT systems to ensure the appropriate effective memory type won't have a write-combining effect on the MMIO region on both non-PAT and PAT systems. The framebuffer area will be sure to get the write-combined effective memory type by white-listing it with ioremap_wc(). We ensure the desired effective memory types are set by: 0) Using one ioremap_uc() for the MMIO region alone. This will set the page attribute settings for the MMIO region to PCD=1, PWT=1 for non-PAT systems while using a strong UC value on PAT systems. 1) Fixing the framebuffer ioremapped area to exclude the MMIO region and using ioremap_wc() instead to whitelist the area we want for write-combining. In both cases, an implementation defined (as per 2f9e897353fc) effective memory type of WC is used for the framebuffer for non-PAT systems. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andrzej Hajda Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Daniel Vetter Cc: Dave Airlie Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mathias Krause Cc: Mel Gorman Cc: Peter Zijlstra Cc: Rob Clark Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: arnd@arndb.de Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: geert@linux-m68k.org Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: linux-fbdev@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-pci@vger.kernel.org Cc: mpe@ellerman.id.au Cc: mst@redhat.com Cc: ralf@linux-mips.org Cc: ross.zwisler@linux.intel.com Cc: stefan.bader@canonical.com Cc: tj@kernel.org Cc: ville.syrjala@linux.intel.com Link: http://lkml.kernel.org/r/1435196060-27350-3-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1436491499-3289-4-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/aty/atyfb.h | 1 - drivers/video/fbdev/aty/atyfb_base.c | 36 ++++++++++++++---------------------- 2 files changed, 14 insertions(+), 23 deletions(-) commit f55de6ec375da89f89f1a76e1b998e5f14878c06 Author: Luis R. Rodriguez Date: Thu Jul 9 18:24:57 2015 -0700 drivers/video/fbdev/atyfb: Clarify ioremap() base and length used Adjust the ioremap() call for the framebuffer to use the same values we later use for the framebuffer. This will make it easier to review the next change. The size of the framebuffer varies but since this is for PCI we *know* this defaults to 0x800000. atyfb_setup_generic() is *only* used on PCI probe. No functional change. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andrzej Hajda Cc: Andy Lutomirski Cc: Antonino Daplas Cc: Daniel Vetter Cc: Dave Airlie Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Juergen Gross Cc: Linus Torvalds Cc: Mathias Krause Cc: Mel Gorman Cc: Peter Zijlstra Cc: Rob Clark Cc: Suresh Siddha Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: Toshi Kani Cc: Ville Syrjälä Cc: Vlastimil Babka Cc: arnd@arndb.de Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: geert@linux-m68k.org Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: linux-fbdev@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-pci@vger.kernel.org Cc: mpe@ellerman.id.au Cc: mst@redhat.com Cc: ralf@linux-mips.org Cc: ross.zwisler@linux.intel.com Cc: stefan.bader@canonical.com Cc: tj@kernel.org Cc: ville.syrjala@linux.intel.com Link: http://lkml.kernel.org/r/1436491499-3289-3-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/aty/atyfb_base.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) commit eacd2d542610e55cad0be445966ac8ae79124c6e Author: Luis R. Rodriguez Date: Thu Jul 9 18:24:56 2015 -0700 drivers/video/fbdev/atyfb: Carve out framebuffer length fudging into a helper The size of the framebuffer to be used needs to be fudged to account for the different type of devices that are out there. This captures what is required to do well, we'll reuse this later. This has no functional changes. Signed-off-by: Luis R. Rodriguez Signed-off-by: Borislav Petkov Cc: H. Peter Anvin Cc: Jean-Christophe Plagniol-Villard Cc: Linus Torvalds Cc: Mathias Krause Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tomi Valkeinen Cc: airlied@redhat.com Cc: arnd@arndb.de Cc: benh@kernel.crashing.org Cc: dan.j.williams@intel.com Cc: geert@linux-m68k.org Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: linux-fbdev@vger.kernel.org Cc: linux-mm@kvack.org Cc: luto@amacapital.net Cc: mpe@ellerman.id.au Cc: mst@redhat.com Cc: ralf@linux-mips.org Cc: ross.zwisler@linux.intel.com Cc: stefan.bader@canonical.com Cc: syrjala@sci.fi Cc: tj@kernel.org Cc: toshi.kani@hp.com Cc: ville.syrjala@linux.intel.com Link: http://lkml.kernel.org/r/1435251019-32421-1-git-send-email-mcgrof@do-not-panic.com Link: http://lkml.kernel.org/r/1436491499-3289-2-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar drivers/video/fbdev/aty/atyfb_base.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) commit 8c7ea50c010b2f1e006ad37c43f98202a31de2cb Author: Luis R. Rodriguez Date: Thu Jul 9 17:28:16 2015 -0700 x86/mm, asm-generic: Add IOMMU ioremap_uc() variant default We currently have no safe way of currently defining architecture agnostic IOMMU ioremap_*() variants. The trend is for folks to *assume* that ioremap_nocache() should be the default everywhere and then add this mapping on each architectures -- this is not correct today for a variety of reasons. We have two options: 1) Sit and wait for every architecture in Linux to get a an ioremap_*() variant defined before including it upstream. 2) Gather consensus on a safe architecture agnostic ioremap_*() default. Approach 1) introduces development latencies, and since 2) will take time and work on clarifying semantics the only remaining sensible thing to do to avoid issues is returning NULL on ioremap_*() variants. In order for this to work we must have all architectures declare their own ioremap_*() variants as defined. This will take some work, do this for ioremp_uc() to set the example as its only currently implemented on x86. Document all this. We only provide implementation support for ioremap_uc() as the other ioremap_*() variants are well defined all over the kernel for other architectures already. Signed-off-by: Luis R. Rodriguez Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: arnd@arndb.de Cc: benh@kernel.crashing.org Cc: bp@suse.de Cc: dan.j.williams@intel.com Cc: geert@linux-m68k.org Cc: hch@lst.de Cc: hmh@hmh.eng.br Cc: jgross@suse.com Cc: linux-mm@kvack.org Cc: luto@amacapital.net Cc: mpe@ellerman.id.au Cc: mst@redhat.com Cc: ralf@linux-mips.org Cc: ross.zwisler@linux.intel.com Cc: stefan.bader@canonical.com Cc: tj@kernel.org Cc: tomi.valkeinen@ti.com Cc: toshi.kani@hp.com Link: http://lkml.kernel.org/r/1436488096-3165-1-git-send-email-mcgrof@do-not-panic.com Signed-off-by: Ingo Molnar arch/x86/include/asm/io.h | 2 ++ include/asm-generic/io.h | 30 +++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) commit 5aef51c340cb50ed9a3997dc5d782324372078bd Author: Andy Lutomirski Date: Fri Jul 10 08:34:23 2015 -0700 x86/kconfig/32: Rename CONFIG_VM86 and default it to 'n' VM86 is entirely broken if ptrace, syscall auditing, or NOHZ_FULL is in use. The code is a big undocumented mess, it's a real PITA to test, and it looks like a big chunk of vm86_32.c is dead code. It also plays awful games with the entry asm. No one should be using it anyway. Use DOSBOX or KVM instead. Let's accelerate its slow death. Remove it from EXPERT and default it to n. Distros should not enable it. In the unlikely event that some user needs it, they can easily re-enable it. While we're at it, rename it to CONFIG_X86_LEGACY_VM86 so that 'make oldconfig' users will be prompted again. I left CONFIG_VM86 as an alias to avoid a treewide replacement of the names. We can clean that up once the current asm and vm86 code churn settles down. Signed-off-by: Andy Lutomirski Cc: Arjan van de Ven Cc: Austin S Hemmelgarn Cc: Borislav Petkov Cc: Brian Gerst Cc: Kees Cook Cc: Linus Torvalds Cc: Matthew Garrett Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/d29c6cc442d32d4df58849d2f8c89fb39ff88d61.1436542295.git.luto@kernel.org [ Refined it some more. ] Signed-off-by: Ingo Molnar arch/x86/Kconfig | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) commit c538bb3b8093ad027945b68f8b852ab4aca382b8 Merge: 8fc2b61 ed25b11 Author: Kalle Valo Date: Tue Jul 21 11:36:56 2015 +0300 Merge ath-next from ath.git. Major changes in ath10k: * enable VHT for IBSS * initial work to support qca99x0 and the corresponding 10.4 firmware branch commit 3490565b633c705d2fb1f6ede51228952664663d Author: Denys Vlasenko Date: Mon Jul 13 20:31:03 2015 +0200 locking/spinlocks: Force inlining of spinlock ops With both gcc 4.7.2 and 4.9.2, sometimes GCC mysteriously doesn't inline very small functions we expect to be inlined. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66122 In particular, with this config: http://busybox.net/~vda/kernel_config there are more than a thousand copies of tiny spinlock-related functions: $ nm --size-sort vmlinux | grep -iF ' t ' | uniq -c | grep -v '^ *1 ' | sort -rn | grep ' spin' 473 000000000000000b t spin_unlock_irqrestore 292 000000000000000b t spin_unlock 215 000000000000000b t spin_lock 134 000000000000000b t spin_unlock_irq 130 000000000000000b t spin_unlock_bh 120 000000000000000b t spin_lock_irq 106 000000000000000b t spin_lock_bh Disassembly: ffffffff81004720 : ffffffff81004720: 55 push %rbp ffffffff81004721: 48 89 e5 mov %rsp,%rbp ffffffff81004724: e8 f8 4e e2 02 callq <_raw_spin_lock> ffffffff81004729: 5d pop %rbp ffffffff8100472a: c3 retq This patch fixes this via s/inline/__always_inline/ in spinlock.h. This decreases vmlinux by about 40k: text data bss dec hex filename 82375570 22255544 20627456 125258570 7774b4a vmlinux.before 82335059 22255416 20627456 125217931 776ac8b vmlinux Signed-off-by: Denys Vlasenko Cc: Andrew Morton Cc: Andy Lutomirski Cc: Bart Van Assche Cc: Borislav Petkov Cc: Brian Gerst Cc: David Rientjes Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Thomas Graf Link: http://lkml.kernel.org/r/1436812263-15243-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar include/linux/spinlock.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit 9719fa5a3840b1b9de7f2c0aae57346cd6570ea7 Author: Eddie Huang Date: Thu Jul 16 19:36:20 2015 +0800 arm64: dts: mediatek: Add MT8173 MMC dts Add node mmc0 ~ mmc3 for mt8173.dtsi Add node mmc0, mmc1 for mt8173-evb.dts Signed-off-by: Chaotian Jing Signed-off-by: Eddie Huang Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 126 ++++++++++++++++++++++++++++ arch/arm64/boot/dts/mediatek/mt8173.dtsi | 44 ++++++++++ 2 files changed, 170 insertions(+) commit 9dea5dc921b5f4045a18c63eb92e84dc274d17eb Author: Andy Lutomirski Date: Tue Jul 14 15:24:24 2015 -0700 x86/entry/syscalls: Wire up 32-bit direct socket calls On x86_64, there's no socketcall syscall; instead all of the socket calls are real syscalls. For 32-bit programs, we're stuck offering the socketcall syscall, but it would be nice to expose the direct calls as well. This will enable seccomp to filter socket calls (for new userspace only, but that's fine for some applications) and it will provide a tiny performance boost. Signed-off-by: Andy Lutomirski Cc: Alexander Larsson Cc: Andy Lutomirski Cc: Cosimo Cecchi Cc: Dan Nicholson Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rajalakshmi Srinivasaraghavan Cc: Thomas Gleixner Cc: Tulio Magno Quites Machado Filho Cc: libc-alpha Link: http://lkml.kernel.org/r/cb5138299d37d5800e2d135b01a7667fa6115854.1436912629.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/syscalls/syscall_32.tbl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 2070c48cf2b78af89ba529c00992eaaa18df8ef7 Author: Pieter Hollants Date: Mon Jul 20 10:14:13 2015 +0200 qmi_wwan: Add support for Dell Wireless 5809e 4G Modem Added the USB IDs 0x413c:0x81b1 for the "Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card", a Dell-branded Sierra Wireless EM7305 LTE card in M.2 form factor, used eg. in Dell's Latitude E7540 Notebook series. Signed-off-by: Pieter Hollants Signed-off-by: David S. Miller drivers/net/usb/qmi_wwan.c | 1 + 1 file changed, 1 insertion(+) commit 84e81020ee237df8af359c552b503db476b776ea Author: Arun Siluvery Date: Mon Jul 20 10:46:10 2015 +0100 drm/i915: Add provision to extend Golden context batch The Golden batch carries 3D state at the beginning so that HW starts with a known state. It is carried as a binary blob which is auto-generated from source. The idea was it would be easier to maintain and keep the complexity out of the kernel which makes sense as we don't really touch it. However if you really need to update it then you need to update generator source and keep the binary blob in sync with it. There is a need to patch this in bxt to send one additional command to enable a feature. A solution was to patch the binary data with some additional data structures (included as part of auto-generator source) but it was unnecessarily complicated. Chris suggested the idea of having a secondary batch and execute two batch buffers. It has clear advantages as we needn't touch the base golden batch, can customize secondary/auxiliary batch depending on Gen and can be carried in the driver with no dependencies. This patch adds support for this auxiliary batch which is inserted at the end of golden batch and is completely independent from it. Thanks to Mika for the preliminary review. v2: Strictly conform to the batch size requirements to cover Gen2 and add comments to clarify overflow check in macro (Chris, Mika). v3: aux_batch_offset was declared as u64, change it to u32 (Chris) Reviewed-by: Chris Wilson Cc: Mika Kuoppala Cc: Chris Wilson Cc: Armin Reese Signed-off-by: Arun Siluvery Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_render_state.c | 45 ++++++++++++++++++++++++++++ drivers/gpu/drm/i915/i915_gem_render_state.h | 2 ++ drivers/gpu/drm/i915/intel_lrc.c | 6 ++++ 3 files changed, 53 insertions(+) commit 0c199a903d1cbc67fd99a9b074aaff4f72fa84d0 Author: Jakub Wilk Date: Sat Jul 18 14:41:51 2015 +0200 xfrm: Fix a typo Signed-off-by: Jakub Wilk Signed-off-by: David S. Miller net/xfrm/xfrm_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd72bde05de5d68d56e59698f7f2c102afce904b Author: Mika Kuoppala Date: Fri Jul 17 17:08:51 2015 +0100 drm/i915: Do kunmap if renderstate parsing fails Kunmap the renderstate page on error path. Reviewed-by: Arun Siluvery Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_render_state.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit d64e78c9e77a9112137e294ab4b9b3844a7f90c0 Merge: b52effd 397665d Author: David S. Miller Date: Tue Jul 21 00:23:24 2015 -0700 Merge branch 'cxgb4-dcb' Anish Bhatt says: ==================== cxgb4 DCB updates The following patchset covers changes to work better with the userspace tools cgdcbxd and cgrulesengd and improves firmware support for host-managed mode. Also exports traffic class information that was previously not being exported via dcbnl_ops and unfifies how app selector information is passed to firmware. ==================== Signed-off-by: David S. Miller commit 397665dab58415d648f03e2893627f4f7abf0fba Author: Anish Bhatt Date: Fri Jul 17 13:12:33 2015 -0700 cxgb4 : Fill DCB priority in vlan control headers Signed-off-by: Anish Bhatt Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/sge.c | 14 ++++++++++---- drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 3 +++ 2 files changed, 13 insertions(+), 4 deletions(-) commit 8d6541b7bc0a56020ffc9fab7d740e47addd609d Author: Anish Bhatt Date: Fri Jul 17 13:12:32 2015 -0700 cxgb4 : Fill in number of DCB traffic classes supported Signed-off-by: Anish Bhatt Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c | 4 ++++ 1 file changed, 4 insertions(+) commit a85c2eb3113299b8d55936a49e70c5b63c72617f Author: Anish Bhatt Date: Fri Jul 17 13:12:31 2015 -0700 cxgb4 : Allow firmware DCB info to be queried in host state Since finally DCB traffic management is still handled by firmware, allow firmware to be fully programmed and queried even in host managed state for the cases where this was previously rejected. Signed-off-by: Anish Bhatt Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c | 32 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) commit a44e7b73118b21176bdf6376c620d778a0ff0ee2 Author: Anish Bhatt Date: Fri Jul 17 13:12:30 2015 -0700 cxgb4 : Only pass app selector of 0 or 3 to firmware This keeps app format passed to firmware the same irrespective of DCBx version in use. Signed-off-by: Anish Bhatt Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_dcb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit b029e66fa8e39ba10dcc47b114be8da8b082493b Author: Shobhit Kumar Date: Fri Jun 26 14:32:10 2015 +0530 drm/i915: Backlight control using CRC PMIC based PWM driver Use the CRC PWM device in intel_panel.c and add new MIPI backlight specififc callbacks v2: Modify to use pwm_config callback v3: Addressed Jani's comments - Renamed all function as pwm_* instead of vlv_* - Call intel_panel_actually_set_backlight in enable function - Return -ENODEV in case pwm_get fails - in case pwm_config error return error cdoe from pwm_config - Cleanup pwm in intel_panel_destroy_backlight v4: Removed unused #defines and initialized backlight with INVALID_PIPE (Ville) CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Reviewed-by: Ville Syrjälä Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 4 ++ drivers/gpu/drm/i915/intel_dsi.c | 5 ++ drivers/gpu/drm/i915/intel_panel.c | 94 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 98 insertions(+), 5 deletions(-) commit fc45e821990781c13dba10e3aef1c9f11af8af08 Author: Shobhit Kumar Date: Fri Jun 26 14:32:09 2015 +0530 drm/i915: Use the CRC gpio for panel enable/disable The CRC (Crystal Cove) PMIC, controls the panel enable and disable signals for BYT for dsi panels. This is indicated in the VBT fields. Use that to initialize and use GPIO based control for these signals. v2: Use the newer gpiod interface(Alexandre) v3: Remove the redundant checks and unused code (Ville) v4: Moved PWM vs SoC backlight #defines to intel_bios.h (Jani) CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Acked-by: Linus Walleij Reviewed-by: Jani Nikula Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_bios.h | 7 +++++++ drivers/gpu/drm/i915/intel_dsi.c | 32 ++++++++++++++++++++++++++++++-- drivers/gpu/drm/i915/intel_dsi.h | 3 +++ 3 files changed, 40 insertions(+), 2 deletions(-) commit a3f37a104bc42f19ceb74e3e06752b6e3a269745 Author: Shobhit Kumar Date: Fri Jun 26 14:32:08 2015 +0530 pwm: crc: Add Crystalcove (CRC) PWM driver The Crystalcove PMIC provides three PWM signals and this driver exports one of them on the BYT platform which is used to control backlight for DSI panel. This is platform device implementation of the drivers/mfd cell device for CRC PMIC. CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Cc: Paul Bolle Cc: Paul Gortmaker Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Reviewed-by: Varka Bhadram Signed-off-by: Daniel Vetter drivers/pwm/Kconfig | 7 +++ drivers/pwm/Makefile | 1 + drivers/pwm/pwm-crc.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+) commit a3aa9a93df9fc8a0c54485e4144fdb81591e2175 Author: Shobhit Kumar Date: Fri Jun 26 14:32:07 2015 +0530 mfd: intel_soc_pmic_core: ADD PWM lookup table for CRC PMIC based PWM On some BYT PLatform the PWM is controlled using CRC PMIC. Add a lookup entry for the same to be used by the consumer (Intel GFX) CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Acked-by: Lee Jones Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Signed-off-by: Daniel Vetter drivers/mfd/intel_soc_pmic_core.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 3d5e10ec50f80bc433916ee0cefbc8dfd16acb0c Author: Shobhit Kumar Date: Fri Jun 26 14:32:06 2015 +0530 mfd: intel_soc_pmic_crc: Add PWM cell device for Crystalcove PMIC Needed for PWM control suuported by the PMIC CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Acked-by: Lee Jones Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Signed-off-by: Daniel Vetter drivers/mfd/intel_soc_pmic_crc.c | 3 +++ 1 file changed, 3 insertions(+) commit 61dd2ca2d44e493b050adbbb75bc50db11c367dd Author: Shobhit Kumar Date: Fri Jun 26 14:32:05 2015 +0530 mfd: intel_soc_pmic_core: Add lookup table for Panel Control as GPIO signal On some Intel SoC platforms, the panel enable/disable signals are controlled by CRC PMIC. Add those control as a new GPIO in a lookup table for gpio-crystalcove chip during CRC driver load CC: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Acked-by: Lee Jones Acked-by: Linus Walleij Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Signed-off-by: Daniel Vetter drivers/mfd/intel_soc_pmic_core.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit be9015abb8296d8dc72cef4da75fa30e88ab7c81 Author: Shobhit Kumar Date: Fri Jun 26 14:32:04 2015 +0530 gpiolib: Add support for removing registered consumer lookup table In case we unload and load a driver module again that is registering a lookup table, without this it will result in multiple entries. Provide an option to remove the lookup table on driver unload Cc: Samuel Ortiz Cc: Linus Walleij Cc: Alexandre Courbot Cc: Thierry Reding Reviewed-by: Alexandre Courbot Reviewed-by: Linus Walleij Tested-by: Ville Syrjälä Signed-off-by: Shobhit Kumar Acked-by: Lee Jones Signed-off-by: Daniel Vetter drivers/gpio/gpiolib.c | 13 +++++++++++++ include/linux/gpio/machine.h | 1 + 2 files changed, 14 insertions(+) commit b52effd263e0926cc52713703f53d0a6c77259a1 Author: Marcelo Ricardo Leitner Date: Fri Jul 17 13:50:21 2015 -0300 sctp: fix cut and paste issue in comment Cookie ACK is always received by the association initiator, so fix the comment to avoid confusion. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/sm_statefuns.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 57816cbcb827895d10925c6a52b63833087ce0c1 Merge: 7177a3b 0ca50d1 Author: David S. Miller Date: Tue Jul 21 00:20:18 2015 -0700 Merge branch 'sctp-src-addr' Marcelo Ricardo Leitner says: ==================== sctp: fix src address selection if using secondary address This series improves the way SCTP chooses its src address so that the choosen one will always belong to the interface being used for output. v1->v2: - split out the refactoring from the fix itself - Doing a full reverse routing as in v1 is not necessary. Only looking for the interface that has the address and comparing its number is enough. ==================== Acked-by: Vlad Yasevich Acked-by: Neil Horman Signed-off-by: David S. Miller commit 0ca50d12fe46cdf3c0dc9ec5ca98607a52afdc62 Author: Marcelo Ricardo Leitner Date: Fri Jul 17 12:34:18 2015 -0300 sctp: fix src address selection if using secondary addresses In short, sctp is likely to incorrectly choose src address if socket is bound to secondary addresses. This patch fixes it by adding a new check that checks if such src address belongs to the interface that routing identified as output. This is enough to avoid rp_filter drops on remote peer. Details: Currently, sctp will do a routing attempt without specifying the src address and compare the returned value (preferred source) with the addresses that the socket is bound to. When using secondary addresses, this will not match. Then it will try specifying each of the addresses that the socket is bound to and re-routing, checking if that address is valid as src for that dst. Thing is, this check alone is weak: # ip r l 192.168.100.0/24 dev eth1 proto kernel scope link src 192.168.100.149 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.147 # ip a l 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:15:18:6a brd ff:ff:ff:ff:ff:ff inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic eth0 valid_lft 2160sec preferred_lft 2160sec inet 192.168.122.148/24 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe15:186a/64 scope link valid_lft forever preferred_lft forever 3: eth1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:b3:91:46 brd ff:ff:ff:ff:ff:ff inet 192.168.100.149/24 brd 192.168.100.255 scope global dynamic eth1 valid_lft 2162sec preferred_lft 2162sec inet 192.168.100.148/24 scope global secondary eth1 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:feb3:9146/64 scope link valid_lft forever preferred_lft forever 4: ens9: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:05:47:ee brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe05:47ee/64 scope link valid_lft forever preferred_lft forever # ip r g 192.168.100.193 from 192.168.122.148 192.168.100.193 from 192.168.122.148 dev eth1 cache Even if you specify an interface: # ip r g 192.168.100.193 from 192.168.122.148 oif eth1 192.168.100.193 from 192.168.122.148 dev eth1 cache Although this would be valid, peers using rp_filter will drop such packets as their src doesn't match the routes for that interface. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/protocol.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 07868284e530d52f72b14b800398a8fefa7cf5d0 Author: Marcelo Ricardo Leitner Date: Fri Jul 17 12:34:17 2015 -0300 sctp: reduce indent level on sctp_v4_get_dst Paves the day for the next patch. Functionality stays untouched. Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller net/sctp/protocol.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit 7177a3b037c7569c137c2703efe8187fdc4352b8 Author: Sowmini Varadhan Date: Mon Jul 20 09:54:50 2015 +0200 net/vxlan: Fix kernel unaligned access in __vxlan_find_mac __vxlan_find_mac invokes ether_addr_equal on the eth_addr field, which triggers unaligned access messages, so rearrange vxlan_fdb to avoid this in the most non-intrusive way. Signed-off-by: Sowmini Varadhan Reviewed-by: Jiri Pirko Reviewed-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller drivers/net/vxlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed0b2edb61ba4e557de759093d965654186f28b2 Author: Brian Gerst Date: Sun Jul 19 21:09:06 2015 -0400 x86/entry/vm86: Move userspace accesses to do_sys_vm86() Move the userspace accesses down into the common function in preparation for the next set of patches. Also change to copying the fields explicitly instead of assuming a fixed order in pt_regs and the kernel data structures. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437354550-25858-4-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 2 +- arch/x86/kernel/vm86_32.c | 189 +++++++++++++++++++++------------------ 2 files changed, 102 insertions(+), 89 deletions(-) commit df1ae9a5dc66d9fd57109240042372b1065d984a Author: Brian Gerst Date: Sun Jul 19 21:09:05 2015 -0400 x86/entry/vm86: Preserve 'orig_ax' There is no legitimate reason for usermode to modify the 'orig_ax' field on entry to vm86 mode, so copy it from the 32-bit regs. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437354550-25858-3-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/vm86_32.c | 2 ++ 1 file changed, 2 insertions(+) commit 0233606ce5cf12c1a0e27cb197066ea5bc2bb488 Author: Brian Gerst Date: Sun Jul 19 21:09:04 2015 -0400 x86/entry/vm86: Clean up saved_fs/gs There is no need to save FS and non-lazy GS outside the 32-bit regs. Lazy GS still needs to be saved because it wasn't saved on syscall entry. Save it in the gs slot of regs32, which is present but unused. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Denys Vlasenko Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437354550-25858-2-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/processor.h | 2 -- arch/x86/kernel/vm86_32.c | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) commit 685a015e44dcd4db50ada60a9a2806659c165d9e Author: Thomas Graf Date: Fri Jul 17 10:52:48 2015 +0200 rhashtable: Allow other tasks to be scheduled in large lookup loops Depending on system speed, the large lookup/insert/delete loops of the testsuite can take a considerable amount of time to complete causing watchdog warnings to appear. Allow other tasks to be scheduled throughout the loops. Reported-by: Meelis Roos Signed-off-by: Thomas Graf Acked-by: Eric Dumazet Signed-off-by: David S. Miller lib/test_rhashtable.c | 7 +++++++ 1 file changed, 7 insertions(+) commit f61687c01917946d2274dd8736bb8f9e2691ee5b Author: Shaohui Xie Date: Fri Jul 17 11:19:46 2015 +0800 phylib: add driver for Teranetics TN2020 Teranetics TN2020 is compliant with IEEE 802.3an 10 Gigabit. Signed-off-by: Shaohui Xie Signed-off-by: David S. Miller drivers/net/phy/Kconfig | 5 ++ drivers/net/phy/Makefile | 1 + drivers/net/phy/teranetics.c | 128 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+) commit 2617268ff9d8f8b6901a07962c985d774b999e58 Author: Dave Gordon Date: Thu Jul 9 19:29:04 2015 +0100 drm/i915: Add GuC-related header files intel_guc_fwif.h contains the subset of the GuC interface that we will need for submission of commands through the GuC. These MUST be kept in sync with the definitions used by the GuC firmware, and updates to this file will (or should) be autogenerated from the source files used to build the firmware. Editing this file is therefore not recommended. i915_guc_reg.h contains definitions of GuC-related hardware: registers, bitmasks, etc. These should match the BSpec. v2: Files renamed & resliced per review comments by Chris Wilson v4: Added DON'T-EDIT-ME warning [Tom O'Rourke] Issue: VIZ-4884 Signed-off-by: Alex Dai Signed-off-by: Dave Gordon Reviewed-by: Tom O'Rourke Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_guc_reg.h | 102 ++++++++++++++ drivers/gpu/drm/i915/intel_guc_fwif.h | 245 ++++++++++++++++++++++++++++++++++ 2 files changed, 347 insertions(+) commit 63dc04498ace9cb657174e77373d6fcc85d6c492 Author: Alex Dai Date: Thu Jul 9 19:29:03 2015 +0100 drm/i915: Add GuC-related module parameters Two new module parameters: "enable_guc_submission" which will turn on submission of batchbuffers via the GuC (when implemented), and "guc_log_level" which controls the level of debugging logged by the GuC and captured by the host. Signed-off-by: Alex Dai v4: Mark "enable_guc_submission" unsafe [Daniel Vetter] Signed-off-by: Dave Gordon Reviewed-by: Tom O'Rourke Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_params.c | 9 +++++++++ 2 files changed, 11 insertions(+) commit ea70299d6e6961dd6adce2cbdf64e6e8a7ea97c0 Author: Dave Gordon Date: Thu Jul 9 19:29:02 2015 +0100 drm/i915: Add i915_gem_object_create_from_data() i915_gem_object_create_from_data() is a generic function to save data from a plain linear buffer in a new pageable gem object that can later be accessed by the CPU and/or GPU. We will need this for the microcontroller firmware loading support code. Derived from i915_gem_object_write(), originally by Alex Dai v2: Change of function: now allocates & fills a new object, rather than writing to an existing object New name courtesy of Chris Wilson Explicit domain-setting and other improvements per review comments by Chris Wilson & Daniel Vetter v4: Rebased Issue: VIZ-4884 Signed-off-by: Alex Dai Signed-off-by: Dave Gordon Reviewed-by: Tom O'Rourke Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_gem.c | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) commit 63caae8480921773b46adec0b6ddac9a844a042f Author: Lucas Stach Date: Mon Jul 20 18:34:50 2015 +0200 sched/idle: Move latency tracing stop/start calls deeper inside the idle loop Make sure to stop tracing only once we are past a point where all latency tracing events have been processed (irqs are not enabled again). This has the slight advantage of capturing more latency related events in the idle path, but most importantly it makes sure that latency tracing doesn't get re-enabled inadvertently when new events are coming in. This makes the irqsoff latency tracer useful again, as we stop capturing CPU sleep time as IRQ latency. Signed-off-by: Lucas Stach Cc: Daniel Lezcano Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Steven Rostedt Cc: Thomas Gleixner Cc: kernel@pengutronix.de Cc: patchwork-lst@pengutronix.de Link: http://lkml.kernel.org/r/1437410090-3747-1-git-send-email-l.stach@pengutronix.de Signed-off-by: Ingo Molnar drivers/cpuidle/cpuidle.c | 4 ++++ kernel/sched/idle.c | 14 +++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) commit bf9f2ee28d475ada0005c59382852cb70f1419ac Author: Andy Lutomirski Date: Mon Jul 20 11:52:23 2015 -0700 x86/nmi: Remove the 'b2b' parameter from nmi_handle() It has never had any effect. Remove it for comprehensibility. 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: Steven Rostedt Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/c91fa38507760d9e54a4b8737fa6409bde896b33.1437418322.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/nmi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit a11c51acc52822754d66a11c15f6f6edd4d23c55 Merge: f6a74a5 d2f3f5d Author: Ingo Molnar Date: Tue Jul 21 07:58:06 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: New features: - Allow filtering out of perf's PID via 'perf record --exclude-perf'. (Wang Nan) - 'perf trace' now supports syscall groups, like strace, i.e: $ trace -e file touch file Will expand 'file' into multiple, file related, syscalls. More work needed to add extra groups for other syscall groups, and also to complement what was added for the 'file' group, included as a proof of concept. (Arnaldo Carvalho de Melo) - Add lock_pi stresser to 'perf bench futex', to test the kernel code related to FUTEX_(UN)LOCK_PI. (Davidlohr Bueso) User visible fixes: - Apply --filter to all events in a glob matching, not just the last one. (Wang Nan) Documentation changes: - Document setting '-e pmu/period=N/' in the 'perf record' man page. (Kan Liang) Infrastructure changes: - 'perf probe' code simplifications and movements to separate files. (Masami Hiramatsu) - Fix makefile generation under 'dash'. (Sergei Trofimovich) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit f6a74a5e15df32f289837feeabf8c84829312b06 Merge: 60cd37e 9d634c4 Author: Ingo Molnar Date: Tue Jul 21 07:57:44 2015 +0200 Merge branch 'linus' into perf/core, to refresh the branch Signed-off-by: Ingo Molnar commit b51ef52df71cb28e9d90cd1d48b79bf19f0bab06 Author: Laura Abbott Date: Mon Jul 20 14:47:58 2015 -0700 x86/cpu: Restore MSR_IA32_ENERGY_PERF_BIAS after resume MSR_IA32_ENERGY_PERF_BIAS is lost after suspend/resume: x86_energy_perf_policy -r before cpu0: 0x0000000000000006 cpu1: 0x0000000000000006 cpu2: 0x0000000000000006 cpu3: 0x0000000000000006 cpu4: 0x0000000000000006 cpu5: 0x0000000000000006 cpu6: 0x0000000000000006 cpu7: 0x0000000000000006 after cpu0: 0x0000000000000000 cpu1: 0x0000000000000006 cpu2: 0x0000000000000006 cpu3: 0x0000000000000006 cpu4: 0x0000000000000006 cpu5: 0x0000000000000006 cpu6: 0x0000000000000006 cpu7: 0x0000000000000006 Resulting in inconsistent energy policy settings across CPUs. This register is set via init_intel() at bootup. During resume, the secondary CPUs are brought online again and init_intel() is callled which re-initializes the register. The boot CPU however never reinitializes the register. Add a syscore callback to reinitialize the register for the boot CPU. Signed-off-by: Laura Abbott Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437428878-4105-1-git-send-email-labbott@fedoraproject.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/common.c | 18 +++++++++++++++++ arch/x86/kernel/cpu/cpu.h | 1 + arch/x86/kernel/cpu/intel.c | 47 ++++++++++++++++++++++++++++++-------------- 3 files changed, 51 insertions(+), 15 deletions(-) commit 2cc6b813579415c4f627b08a043079bdc5b87a33 Author: Krzysztof Kozlowski Date: Fri Jul 10 19:20:58 2015 +0900 ARM: EXYNOS: Use IOMEM_ERR_PTR when function returns iomem Function returns 'void __iomem *' so use IOMEM_ERR_PTR for returning an error. This fixes sparse warning: arch/arm/mach-exynos/platsmp.c:185:31: warning: incorrect type in return expression (different address spaces) arch/arm/mach-exynos/platsmp.c:185:31: expected void [noderef] * arch/arm/mach-exynos/platsmp.c:185:31: got void * Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/platsmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e6262a097929eb9fcfb4cdc1cbe76f16b187d7a Author: Krzysztof Kozlowski Date: Fri Jul 10 14:04:28 2015 +0900 ARM: EXYNOS: Drop owner assignment in pmu.c platform_driver does not need to set an owner because platform_driver_register() will set it. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pmu.c | 1 - 1 file changed, 1 deletion(-) commit 054e6aa198b4bb42d059951e08f05147b64a79f9 Author: Krzysztof Kozlowski Date: Sun Jun 14 13:38:23 2015 +0900 ARM: EXYNOS: Remove duplicated define of SLEEP_MAGIC The magic cookie for entering sleep state was defined and used in two different places: firmware.c and suspend.c. Move it to one common place to reduce duplication. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/common.h | 6 ++++++ arch/arm/mach-exynos/firmware.c | 2 -- arch/arm/mach-exynos/suspend.c | 4 +--- 3 files changed, 7 insertions(+), 5 deletions(-) commit b69bef97d6c5eac62597c8b06f847e9a7010d17a Author: Krzysztof Kozlowski Date: Sat May 30 15:54:03 2015 +0900 ARM: EXYNOS: Make local function static Function is not used outside of this unit, make it static. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/mach-exynos/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e080b078fa1f929d9aa5586985d5e7c0739d207 Author: Javier Martinez Canillas Date: Tue Jul 7 22:46:29 2015 -0700 ARM: dts: Extend exynos5420-pinctrl nodes using labels instead of paths A previously defined Device Tree node, can be extended either by defining a node using the same full path or by creating a label for the node and referencing to it. Using full paths is more error prone since if there was a typo error, a new node will be created instead of extending the node as it was desired. This will lead to run-time errors that could be hard to detect. A mistyped label on the other hand, will cause a dtc compile error which makes it easier to detect the mistake since happens at build-time instead. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420-pinctrl.dtsi | 1411 ++++++++++++++--------------- 1 file changed, 705 insertions(+), 706 deletions(-) commit c07f8270116d7c66379ce9d5f8d3609fe79fd999 Author: Javier Martinez Canillas Date: Tue Jul 7 22:36:29 2015 -0700 ARM: dts: Include exynos5420-pinctrl after the nodes were defined for exynos5420 The dtc compiler combines all the defined nodes that have the same path so a device node definition can be in one file and later be extended in another one. That's the case of the Exynos5420 pinctrl device nodes that are defined in the exynos5420.dtsi file and extended in exynos5420-pinctrl.dtsi. But since the exynos5420.dtsi file includes the exynos5420-pinctrl.dtsi before the pinctrl device nodes are actually defined, the definition of the pinctrl device nodes happens in exynos5420-pinctrl.dtsi and are extended in exynos5420.dtsi. That is the opposite of the original intention so even when there is no difference in practice, the exynos5420-pinctrl.dtsi include should be moved at the end of the exynos5420.dtsi file after the pinctrl device nodes have been already defined. This will also allow to later change the exynos5420-pinctrl.dtsi file to use labels instead of full paths to extend the pinctrl nodes. Since keeping the include at the top, would cause a dtc build error due the pinctrl labels not being defined yet. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5420.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit eb8b8b03ca8ac0f06a2c16bf27601a1ac2aa2d8b Author: Javier Martinez Canillas Date: Tue Jul 7 22:36:28 2015 -0700 ARM: dts: Extend exynos5250-pinctrl nodes using labels instead of paths A previously defined Device Tree node, can be extended either by defining a node using the same full path or by creating a label for the node and referencing to it. Using full paths is more error prone since if there was a typo error, a new node will be created instead of extending the node as it was desired. This will lead to run-time errors that could be hard to detect. A mistyped label on the other hand, will cause a dtc compile error which makes it easier to detect the mistake since happens at build-time instead. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 1600 ++++++++++++++--------------- 1 file changed, 799 insertions(+), 801 deletions(-) commit dc5617973c9c41ca1ab439dd764eedf561f6fd49 Author: Javier Martinez Canillas Date: Tue Jul 7 22:36:27 2015 -0700 ARM: dts: Include exynos5250-pinctrl after the nodes were defined for exynos5250 The dtc compiler combines all the defined nodes that have the same path so a device node definition can be in one file and later be extended in another one. That's the case of the Exynos5250 pinctrl device nodes that are defined in the exynos5250.dtsi file and extended in exynos5250-pinctrl.dtsi. But since the exynos5250.dtsi file includes the exynos5250-pinctrl.dtsi before the pinctrl device nodes are actually defined, the definition of the pinctrl device nodes happens in exynos5250-pinctrl.dtsi and are extended in exynos5250.dtsi. That is the opposite of the original intention so even when there is no difference in practice, the exynos5250-pinctrl.dtsi include should be moved at the end of the exynos5250.dtsi file after the pinctrl device nodes have been already defined. This will also allow to later change the exynos5250-pinctrl.dtsi file to use labels instead of full paths to extend the pinctrl nodes. Since keeping the include at the top, would cause a dtc build error due the pinctrl labels not being defined yet. Signed-off-by: Javier Martinez Canillas Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5250.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit cc20fc4c1bc4af03a685d1555ebaebbfb4ae95c4 Author: Anand Moon Date: Mon Jun 15 12:23:23 2015 +0930 ARM: dts: Enable thermal-zones for exynos5422-odroidxu3 Include exynos5422-cpu-thermal.dtsi to enable thermal_zone support. Signed-off-by: Anand Moon Acked-by: Lukasz Majewski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 + 1 file changed, 1 insertion(+) commit f1722d7dd8b8708e5fbc54be1e44b4cd612e06f2 Author: Anand Moon Date: Mon Jun 15 12:23:22 2015 +0930 ARM: dts: Define default thermal-zones for exynos5422 Trip points corresponding to the one defined in the exynos_tmu_data.c for Exynos5422 have been included so define thermal-zones attribute. Signed-off-by: Anand Moon Tested-by: Markus Reichl Acked-by: Lukasz Majewski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi | 59 +++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 8e946a053bd1bae485fea0d99fb3bb05b6ed9c4e Author: Anand Moon Date: Mon Jun 15 12:23:21 2015 +0930 ARM: dts: Enable TMU for exynos5422-odroidxu3 This changes enables TMU IP block on the Exynos5422 Odroid-XU3 device. Signed-off-by: Anand Moon Acked-by: Lukasz Majewski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit b685d540cc265d6e88010bed53920b5b6c962682 Author: Anand Moon Date: Mon Jun 15 12:23:20 2015 +0930 ARM: dts: Add pwm-fan node for exynos5422-odroidxu3 Add pwm-fan node to the Odroid-XU3 boards. Signed-off-by: Anand Moon Tested-by: Markus Reichl Acked-by: Lukasz Majewski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 86869d66eabb5d53041a9396903c2356584a4de4 Author: Krzysztof Kozlowski Date: Thu Jun 11 20:24:39 2015 +0900 ARM: dts: Use labels for overriding nodes for exynos4210-universal_c210 Usage of labels instead of full paths reduces possible mistakes when overriding nodes. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4210-universal_c210.dts | 620 ++++++++++++------------ 1 file changed, 310 insertions(+), 310 deletions(-) commit 82449f23d8636c094be948741fd935532f104bd6 Author: Krzysztof Kozlowski Date: Sun Jun 7 13:21:00 2015 +0900 ARM: dts: Set max17047 over heat and voltage thresholds for exynos4412-trats2 Add some safe values for over heat and over voltage. The Trats2 uses 3.8 V battery and during testing it operated properly under 4.48 V. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos4412-trats2.dts | 3 +++ 1 file changed, 3 insertions(+) commit dc929d49dce577149157f0676973e5eafbbdc098 Author: Anand Moon Date: Sun Jun 7 21:23:47 2015 +0930 ARM: dts: Enable USB3 regulators for exynos5422-odroidxu3 Enable regulator for usbdrd3_0 and usbdrd3_1. Looking at the schematic pin diagram for MAX77802 USB3_0 and USB3_1 is regulated by LDO9 and LD011. This removes following warnings during boot: [ 3.503539] exynos-dwc3 usb@12000000: Looking up vdd33-supply from device tree [ 3.503556] exynos-dwc3 usb@12000000: Looking up vdd33-supply property in node /usb@12000000 failed [ 3.503568] usb@12000000 supply vdd33 not found, using dummy regulator [ 3.509154] exynos-dwc3 usb@12000000: Looking up vdd10-supply from device tree [ 3.509170] exynos-dwc3 usb@12000000: Looking up vdd10-supply property in node /usb@12000000 failed [ 3.509181] usb@12000000 supply vdd10 not found, using dummy regulator [ 3.917548] exynos-dwc3 usb@12400000: Looking up vdd33-supply from device tree [ 3.917565] exynos-dwc3 usb@12400000: Looking up vdd33-supply property in node /usb@12400000 failed [ 3.917578] usb@12400000 supply vdd33 not found, using dummy regulator [ 3.922731] exynos-dwc3 usb@12400000: Looking up vdd10-supply from device tree [ 3.922747] exynos-dwc3 usb@12400000: Looking up vdd10-supply property in node /usb@12400000 failed Signed-off-by: Anand Moon Tested-by: Krzysztof Kozlowski Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 27284129522e7e2a5b89e80bd44ea3345f79c9e8 Author: Andreas Faerber Date: Sun Mar 15 23:00:30 2015 +0100 ARM: dts: Clean up indentation for exynos5410-smdk5410 The UART status properties are indented one level too deep, and we want to derive a device tree for the ODROID-XU. Fix this before it propagates. Signed-off-by: Andreas Faerber Signed-off-by: Krzysztof Kozlowski Signed-off-by: Kukjin Kim arch/arm/boot/dts/exynos5410-smdk5410.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 500322ec418171a1d067cfd8a3b0fde4b6eb7257 Merge: f3120ac 4d9c5c5 Author: David S. Miller Date: Mon Jul 20 20:52:32 2015 -0700 Merge branch 'bpf-push-pop-helpers' Alexei Starovoitov says: ==================== bpf: introduce bpf_skb_vlan_push/pop() helpers Let TC+eBPF programs call skb_vlan_push/pop via helpers. v1->v2: - reworded commit log to better explain correctness of re-caching and fixed comparison of mixed endiannes (suggested by Eric) ==================== Signed-off-by: David S. Miller commit 4d9c5c53ac99e4cb5d031897863203d7817b36e0 Author: Alexei Starovoitov Date: Mon Jul 20 20:34:19 2015 -0700 test_bpf: add bpf_skb_vlan_push/pop() tests improve accuracy of timing in test_bpf and add two stress tests: - {skb->data[0], get_smp_processor_id} repeated 2k times - {skb->data[0], vlan_push} x 68 followed by {skb->data[0], vlan_pop} x 68 1st test is useful to test performance of JIT implementation of BPF_LD_ABS together with BPF_CALL instructions. 2nd test is stressing skb_vlan_push/pop logic together with skb->data access via BPF_LD_ABS insn which checks that re-caching of skb->data is done correctly. In order to call bpf_skb_vlan_push() from test_bpf.ko have to add three export_symbol_gpl. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/core.c | 1 + lib/test_bpf.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- net/core/filter.c | 2 ++ 3 files changed, 98 insertions(+), 3 deletions(-) commit 4e10df9a60d96ced321dd2af71da558c6b750078 Author: Alexei Starovoitov Date: Mon Jul 20 20:34:18 2015 -0700 bpf: introduce bpf_skb_vlan_push/pop() helpers Allow eBPF programs attached to TC qdiscs call skb_vlan_push/pop via helper functions. These functions may change skb->data/hlen which are cached by some JITs to improve performance of ld_abs/ld_ind instructions. Therefore JITs need to recognize bpf_skb_vlan_push/pop() calls, re-compute header len and re-cache skb->data/hlen back into cpu registers. Note, skb->data/hlen are not directly accessible from the programs, so any changes to skb->data done either by these helpers or by other TC actions are safe. eBPF JIT supported by three architectures: - arm64 JIT is using bpf_load_pointer() without caching, so it's ok as-is. - x64 JIT re-caches skb->data/hlen unconditionally after vlan_push/pop calls (experiments showed that conditional re-caching is slower). - s390 JIT falls back to interpreter for now when bpf_skb_vlan_push() is present in the program (re-caching is tbd). These helpers allow more scalable handling of vlan from the programs. Instead of creating thousands of vlan netdevs on top of eth0 and attaching TC+ingress+bpf to all of them, the program can be attached to eth0 directly and manipulate vlans as necessary. Signed-off-by: Alexei Starovoitov Signed-off-by: David S. Miller arch/s390/net/bpf_jit_comp.c | 4 +++ arch/x86/net/bpf_jit_comp.c | 80 +++++++++++++++++++++++--------------------- include/linux/bpf.h | 2 ++ include/linux/filter.h | 1 + include/uapi/linux/bpf.h | 2 ++ net/core/filter.c | 48 ++++++++++++++++++++++++++ 6 files changed, 99 insertions(+), 38 deletions(-) commit f3120acc7851bffd1cd15acd044b7fa6fa520e75 Merge: 0e55a42 2ba6c07 Author: David S. Miller Date: Mon Jul 20 20:50:19 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-07-17 This series contains updates to igb, ixgbe, ixgbevf, i40e, bnx2x, freescale, siena and dp83640. Jacob provides several patches to clarify the intended way to implement both SIOCSHWTSTAMP and ethtool's get_ts_info(). It is okay to support the specific filters in SIOCSHWTSTAMP by upscaling them to the generic filters. Alex Duyck provides a igb patch to pull the time stamp from the fragment before it gets added to the skb, to avoid a possible issue in which the fragment can possibly be less than IGB_RX_HDR_LEN due to the time stamp being pulled after the copybreak check. Also provides a ixgbevf patch to fold the ixgbevf_pull_tail() call into ixgbevf_add_rx_frag(), which gives the advantage that the fragment does not have to be modified after it is added to the skb. Fan provides patches for ixgbe/ixgbevf to set the receive hash type based on receive descriptor RSS type. Todd provides a fix for igb where on check for link on any media other than copper was not being detected since it was looking on the incorrect PHY page (due to the page being used gets switched before the function to check link gets executed). ==================== Signed-off-by: David S. Miller commit 65e3293381e1cf1abcfe1aa22b914650a40e3af4 Author: Hyungwon Hwang Date: Mon Jun 15 13:03:17 2015 +0900 ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato After the commit abc0b1447d49 ("drm: Perform basic sanity checks on probed modes"), proper clock-frequency becomes mandatory for validating the mode of panel. The display does not work if there is no mode validated. Also, this clock-frequency must be set appropriately for getting required frame rate. Fixes: abc0b1447d49 ("drm: Perform basic sanity checks on probed modes") Cc: Signed-off-by: Hyungwon Hwang Signed-off-by: Krzysztof Kozlowski Sigend-off-by: Kukjin Kim arch/arm/boot/dts/exynos3250-rinato.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e55a42ac89036d3f7debad74d9169a25d6ee307 Merge: 2c1bcaf 28b4591 Author: David S. Miller Date: Mon Jul 20 20:48:15 2015 -0700 Merge branch 'bcmgenet-phy-rework' Florian Fainelli says: ==================== net: bcmgenet: PHY initialization rework This patch series reworks how we perform PHY initialization and resets in the GENET driver. Although this contains mostly fixes, some of the changes are a bit too intrusive to be backported to 'net' at the moment. Some of the motivations behind these changes were to reduce the time spent in how performing MDIO transactions, since it is better to perform then when we have interrupts enabled. This reduces the bring-up time of GENET from ~600 msecs down to ~8 msecs, and about the same time for suspend/resume. Since I do not currently have a system which is not DT-aware, can you (Petri, Jaedon) give this a try and confirm things keep working as expected? ==================== Signed-off-by: David S. Miller commit 28b45910ccda7b3e4de61b24a6f34d5fb1da90d2 Author: Florian Fainelli Date: Thu Jul 16 15:51:19 2015 -0700 net: bcmgenet: Remove init parameter from bcmgenet_mii_config Now that we have reworked the way we perform the PHY initialization, we no longer need to differentiate between init time vs. non-init time calls, just use a dev_info_once() print to print the PHY type. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 +- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- drivers/net/ethernet/broadcom/genet/bcmmii.c | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) commit 6cc8e6d4dcb3651eea9b01db3e195fffb19fb24f Author: Florian Fainelli Date: Thu Jul 16 15:51:18 2015 -0700 net: bcmgenet: Delay PHY initialization to bcmgenet_open() We are currently doing a full PHY initialization and even starting the pHY state machine during bcmgenet_mii_init() which is executed in the driver's probe function. This is convenient to determine whether we can attach to a proper PHY device but comes at the expense of spending up to 10ms per MDIO transactions (to reach the waitqueue timeout), which slows things down. This also creates a sitaution where we end-up attaching twice to the PHY, which is not quite correct either. Fix this by moving bcmgenet_mii_probe() into bcmgenet_open() and update its error path accordingly. Avoid printing the message "attached PHY at address 1 [...]" every time we bring up/down the interface and remove this print since it duplicates what the PHY driver already does for us. Fixes: 1c1008c793fa4 ("net: bcmgenet: add main driver file") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 12 +++++---- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 + drivers/net/ethernet/broadcom/genet/bcmmii.c | 37 +++++++++----------------- 3 files changed, 20 insertions(+), 30 deletions(-) commit c624f89121020882b3db0a33cac8daf151d2930f Author: Florian Fainelli Date: Thu Jul 16 15:51:17 2015 -0700 net: bcmgenet: Determine PHY type before scanning MDIO bus Our internal GPHY might be powered off before we attempt scanning the MDIO bus and bind a driver to it. The way we are currently determining whether a PHY is internal or not is done *after* we have successfully matched its driver. If the PHY is powered down, it will not respond to the MDIO bus, so we will not be able to bind a driver to it. Our Device Tree for GENET interfaces specifies a "phy-mode" value: "internal" which tells if this internal uses an internal PHY or not. If of_get_phy_mode() fails to parse the 'phy-mode' property, do an additional manual lookup, and if we find "internal" set the corresponding internal variable accordingly. Replace all uses of phy_is_internal() with a check against priv->internal_phy to avoid having to rely on whether or not priv->phydev is set correctly. Fixes: 1c1008c793fa4 ("net: bcmgenet: add main driver file") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 14 ++++++------- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 + drivers/net/ethernet/broadcom/genet/bcmmii.c | 29 +++++++++++++++++++++----- 3 files changed, 32 insertions(+), 12 deletions(-) commit bd4060a6108befd1110a4c6be5544c932895d18d Author: Florian Fainelli Date: Thu Jul 16 15:51:16 2015 -0700 net: bcmgenet: Power on integrated GPHY in bcmgenet_power_up() We are currently disabling the GPHY interface during bcmgenet_close(), and attempting to power it back on during bcmgenet_open(). This works fine for the first time, because we called bcmgenet_mii_config() which took care of enabling the interface, however, bcmgenet_power_up() really needs to power on the GPHY for correctness. This will be particularly important as we want to move bcmgenet_mii_probe() down to bcmgenet_open() to avoid seeing the "PHY already attached" message. Fixes: a642c4f7906f36 ("net: bcmgenet: power up and down integrated GPHY when unused") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 ++ 1 file changed, 2 insertions(+) commit 978ffac4189e8bb7e74bce6463e501a7b92555af Author: Florian Fainelli Date: Thu Jul 16 15:51:15 2015 -0700 net: bcmgenet: Use correct dev_id for free_irq bcmgenet_open()'s error path call free_irq() with a dev_id argument different from the one we used to call request_irq() with, this will make us trip over the warning in kernel/irq/manage.c:__free_irq() Fixes: 1c1008c793fa4 ("net: bcmgenet: add main driver file") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6ac3ce8295e6763b86e5a7bfd61275f51e0a3fd3 Author: Florian Fainelli Date: Thu Jul 16 15:51:14 2015 -0700 net: bcmgenet: Remove excessive PHY reset We are currently issuing multiple PHY resets during a suspend/resume, first during bcmgenet_power_up() which does a hardware reset, then a software reset by calling bcmgenet_mii_reset(). This is both unnecessary and can take as long as 10ms per MDIO transactions while we re-apply workarounds because we do not yet have MDIO interrupts enabled. phy_resume() takes care of re-apply our workarounds in case we need any, and bcmgenet_power_up() does a PHY hardware reset, all of this is more than enough to guarantee that the PHY operates correctly. Fixes: 1c1008c793fa4 ("net: bcmgenet: add main driver file") Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 --- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 - drivers/net/ethernet/broadcom/genet/bcmmii.c | 11 ----------- 3 files changed, 15 deletions(-) commit 2c1bcaffe8c48fa00735d97ea9552c87159a838c Merge: 7781e5d f4c190e Author: David S. Miller Date: Mon Jul 20 20:45:58 2015 -0700 Merge branch 'stmmac-cleanup' Joachim Eastwood says: ==================== stmmac clean up for 4.3 part1 This patch set continues the conversion of the dwmac glue layers to more proper platform drivers. The first part of the patch set cleans up stmmac_platform a bit. Refactors code from the common probe function and exports two functions that will be used in the dwmac-* drivers. Second part converts two simple dwmac-* drivers to have their own probe function and use the exported functions. This brings us closer to point where stmmac_platform is only a library of common functions for the dwmac-* drivers to use. The plan next is: * add probe functions to the rest of the dwmac-* drivers * move probe function in stmmac_platform to dwmac-generic * remove struct stmmac_of_data and let those drivers that actually need match data handle it themselves * clean up include/linux/stmmac.h Note that this patch set has only been tested on lpc18xx so testing on other platforms is greatly appreciated. Previous parts can be found here: http://www.spinics.net/lists/netdev/msg328997.html http://www.spinics.net/lists/netdev/msg329932.html ==================== Signed-off-by: David S. Miller commit f4c190eb8b4f80b12dc98ce7d54a3bea0e4e7e69 Author: Joachim Eastwood Date: Fri Jul 17 00:26:12 2015 +0200 stmmac: drop custom_* fields from plat_stmmacenet_data Both of these fields are unused and has been unused since they were added 3 and 5 years ago. Drop them since they are clearly not very useful. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller Documentation/networking/stmmac.txt | 4 ---- include/linux/stmmac.h | 2 -- 2 files changed, 6 deletions(-) commit 1734befd0694c9e430d2c84445eceb6a7bbe1008 Author: Joachim Eastwood Date: Fri Jul 17 00:26:11 2015 +0200 stmmac: add proper probe function to dwmac-meson By using a few functions from stmmac_platform we can now create a proper probe function in this driver. By doing so we can drop the OF match data and simplify the overall driver. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/dwmac-meson.c | 31 +++++++++++++++-------- 1 file changed, 20 insertions(+), 11 deletions(-) commit f4f8dfdedf1b1ff34a5e6ff71c9e80a1643a0622 Author: Joachim Eastwood Date: Fri Jul 17 00:26:10 2015 +0200 stmmac: add proper probe function to dwmac-lpc18xx By using a few functions from stmmac_platform we can now create a proper probe function in this driver. By doing so we can drop the OF match data and simplify the overall driver. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/dwmac-lpc18xx.c | 59 +++++++++------------- 1 file changed, 23 insertions(+), 36 deletions(-) commit 402dae0bed98dd41c5d6ab321135e8568a54819e Author: Joachim Eastwood Date: Fri Jul 17 00:26:09 2015 +0200 stmmac: export probe_config_dt() and get_platform_resources() Export stmmac_probe_config_dt() and stmmac_get_platform_resources() so they can be used in the dwmac-* drivers themselves. This will allow us to build more flexible and standalone drivers which just use stmmac_platform as a library for setup functions. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 10 ++++++---- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.h | 8 ++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) commit b0003ead75f394f1c6f3b704be5da8e9eb029f8c Author: Joachim Eastwood Date: Fri Jul 17 00:26:08 2015 +0200 stmmac: make stmmac_probe_config_dt return the platform data struct Since stmmac_probe_config_dt() allocates the platform data structure it is cleaner if it just returned this structure directly. This function will later be used in the probe function in dwmac-* drivers. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 28 ++++++++++------------ 1 file changed, 12 insertions(+), 16 deletions(-) commit f396cb01210909ab2de0b50b76677892c1bfeb5a Author: Joachim Eastwood Date: Fri Jul 17 00:26:07 2015 +0200 stmmac: introduce stmmac_get_platform_resources() Refactor all code that deals with platform resources into it's own get function. This function will later be used in the probe function in dwmac-* drivers. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 64 +++++++++++++--------- 1 file changed, 37 insertions(+), 27 deletions(-) commit 4ed2d8fca7979ad82d56b67ac83a50bba2dd3419 Author: Joachim Eastwood Date: Fri Jul 17 00:26:06 2015 +0200 stmmac: clean up platform/of_match data retrieval Refactor code to clearly separate probing non-dt versus dt. In the non-dt case platform data must be supplied to probe successfully. For dt the platform data structure is created and match data is copied into it. Note that support for supplying platform data in dt from AUXDATA is dropped as no users in mainline does this. This change will allow dt dwmac-* drivers to call the config_dt() function from probe to create the needed platform data struct and retrieve common dt properties. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 50 +++++++++++++--------- 1 file changed, 29 insertions(+), 21 deletions(-) commit 0dacf3f664818ab1e3e0af8ef22a86c89f34d125 Author: Joachim Eastwood Date: Fri Jul 17 00:26:05 2015 +0200 stmmac: use of_device_get_match_data to retrieve of match data By using of_device_get_match_data() the code that retrieve match data can be simplified quite a bit. Signed-off-by: Joachim Eastwood Signed-off-by: David S. Miller drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 7781e5d10a457b7e456c8193896c2141cdbf2ad4 Merge: 6acc232 d999297 Author: David S. Miller Date: Mon Jul 20 20:41:16 2015 -0700 Merge branch 'tipc-separate-link-and-aggregation' Jon Maloy says: ==================== tipc: separate link and link aggregation layer This is the first batch of a longer series that has two main objectives: o Finer lock granularity during message sending and reception, especially regarding usage of the node spinlock. o Better separation between the link layer implementation and the link aggregation layer, represented by node.c::struct tipc_node. Hopefully these changes also make this part of code somewhat easier to comprehend and maintain. ==================== Signed-off-by: David S. Miller commit d999297c3dbbe7fdd832f7fa4ec84301e170b3e6 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:31 2015 -0400 tipc: reduce locking scope during packet reception We convert packet/message reception according to the same principle we have been using for message sending and timeout handling: We move the function tipc_rcv() to node.c, hence handling the initial packet reception at the link aggregation level. The function grabs the node lock, selects the receiving link, and accesses it via a new call tipc_link_rcv(). This function appends buffers to the input queue for delivery upwards, but it may also append outgoing packets to the xmit queue, just as we do during regular message sending. The latter will happen when buffers are forwarded from the link backlog, or when retransmission is requested. Upon return of this function, and after having released the node lock, tipc_rcv() delivers/tranmsits the contents of those queues, but it may also perform actions such as link activation or reset, as indicated by the return flags from the link. This reduces the number of cpu cycles spent inside the node spinlock, and reduces contention on that lock. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 23 ++ net/tipc/bcast.h | 1 + net/tipc/core.h | 5 + net/tipc/link.c | 673 +++++++++++++++++++++++++------------------------------ net/tipc/link.h | 6 +- net/tipc/msg.h | 50 ++++- net/tipc/node.c | 105 ++++++++- net/tipc/node.h | 4 - 8 files changed, 478 insertions(+), 389 deletions(-) commit 1a20cc254e60e79929ef7edb5cf784df86b46e42 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:30 2015 -0400 tipc: introduce node contact FSM The logics for determining when a node is permitted to establish and maintain contact with its peer node becomes non-trivial in the presence of multiple parallel links that may come and go independently. A known failure scenario is that one endpoint registers both its links to the peer lost, cleans up it binding table, and prepares for a table update once contact is re-establihed, while the other endpoint may see its links reset and re-established one by one, hence seeing no need to re-synchronize the binding table. To avoid this, a node must not allow re-establishing contact until it has confirmation that even the peer has lost both links. Currently, the mechanism for handling this consists of setting and resetting two state flags from different locations in the code. This solution is hard to understand and maintain. A closer analysis even reveals that it is not completely safe. In this commit we do instead introduce an FSM that keeps track of the conditions for when the node can establish and maintain links. It has six states and four events, and is strictly based on explicit knowledge about the own node's and the peer node's contact states. Only events leading to state change are shown as edges in the figure below. +--------------+ | SELF_UP/ | +---------------->| PEER_COMING |-----------------+ SELF_ | +--------------+ |PEER_ ESTBL_ | | |ESTBL_ CONTACT| SELF_LOST_CONTACT | |CONTACT | v | | +--------------+ | | PEER_ | SELF_DOWN/ | SELF_ | | LOST_ +--| PEER_LEAVING |<--+ LOST_ v +-------------+ CONTACT | +--------------+ | CONTACT +-----------+ | SELF_DOWN/ |<----------+ +----------| SELF_UP/ | | PEER_DOWN |<----------+ +----------| PEER_UP | +-------------+ SELF_ | +--------------+ | PEER_ +-----------+ | LOST_ +--| SELF_LEAVING/|<--+ LOST_ A | CONTACT | PEER_DOWN | CONTACT | | +--------------+ | | A | PEER_ | PEER_LOST_CONTACT | |SELF_ ESTBL_ | | |ESTBL_ CONTACT| +--------------+ |CONTACT +---------------->| PEER_UP/ |-----------------+ | SELF_COMING | +--------------+ Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 74 ++++++++++++++------------------ net/tipc/msg.h | 7 +++ net/tipc/node.c | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- net/tipc/node.h | 28 +++++++++--- 4 files changed, 185 insertions(+), 54 deletions(-) commit 8a1577c96f122308ac9b5f195f9f9a7dd74ac541 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:29 2015 -0400 tipc: move link supervision timer to node level In our effort to move control of the links to the link aggregation layer, we move the perodic link supervision timer to struct tipc_node. The new timer is shared between all links belonging to the node, thus saving resources, while still kicking the FSM on both its pertaining links at each expiration. The current link timer and corresponding functions are removed. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 78 +++------------------------------------------------------ net/tipc/link.h | 2 -- net/tipc/node.c | 66 +++++++++++++++++++++++++++++++++++++++++++++--- net/tipc/node.h | 2 ++ 4 files changed, 68 insertions(+), 80 deletions(-) commit 333ef69ed2121f535e00ceb26e095d3745584c6e Author: Jon Paul Maloy Date: Thu Jul 16 16:54:28 2015 -0400 tipc: simplify link timer implementation We create a second, simpler, link timer function, tipc_link_timeout(). The new function makes use of the new FSM function introduced in the previous commit, and just like it, takes a buffer queue as parameter. It returns an event bit field and potentially a link protocol packet to the caller. The existing timer function, link_timeout(), is still needed for a while, so we redesign it to become a wrapper around the new function. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 116 ++++++++++++++++++++++++++++++++++---------------------- net/tipc/link.h | 1 + 2 files changed, 72 insertions(+), 45 deletions(-) commit 6ab30f9cbe134d19559f48dc748587d036529aaf Author: Jon Paul Maloy Date: Thu Jul 16 16:54:27 2015 -0400 tipc: improve link FSM implementation The link FSM implementation is currently unnecessarily complex. It sometimes checks for conditional state outside the FSM data before deciding next state, and often performs actions directly inside the FSM logics. In this commit, we create a second, simpler FSM implementation, that as far as possible acts only on states and events that it is strictly defined for, and postpone any actions until it is finished with its decisions. It also returns an event flag field and an a buffer queue which may potentially contain a protocol message to be sent by the caller. Unfortunately, we cannot yet make the FSM "clean", in the sense that its decisions are only based on FSM state and event, and that state changes happen only here. That will have to wait until the activate/reset logics has been cleaned up in a future commit. We also rename the link states as follows: WORKING_WORKING -> TIPC_LINK_WORKING WORKING_UNKNOWN -> TIPC_LINK_PROBING RESET_UNKNOWN -> TIPC_LINK_RESETTING RESET_RESET -> TIPC_LINK_ESTABLISHING The existing FSM function, link_state_event(), is still needed for a while, so we redesign it to make use of the new function. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 344 +++++++++++++++++++++++++++++++------------------------- net/tipc/link.h | 7 ++ 2 files changed, 195 insertions(+), 156 deletions(-) commit 426cc2b86d1813959497d608dcb52c32df2d448a Author: Jon Paul Maloy Date: Thu Jul 16 16:54:26 2015 -0400 tipc: introduce new link protocol msg create function As a preparation for later changes, we introduce a new function tipc_link_build_proto_msg(). Instead of actually sending the created protocol message, it only creates it and adds it to the head of a skb queue provided by the caller. Since we still need the existing function tipc_link_protocol_xmit() for a while, we redesign it to make use of the new function. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 144 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 77 insertions(+), 67 deletions(-) commit d3504c3449fead545e5254bfb11da916f72c4734 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:25 2015 -0400 tipc: clean up definitions and usage of link flags The status flag LINK_STOPPED is not needed any more, since the mechanism for delayed deletion of links has been removed. Likewise, LINK_STARTED and LINK_START_EVT are unnecessary, because we can just as well start the link timer directly from inside tipc_link_create(). We eliminate these flags in this commit. Instead of the above flags, we now introduce three new link modes, TIPC_LINK_OPEN, TIPC_LINK_BLOCKED and TIPC_LINK_TUNNEL. The values indicate whether, and in the case of TIPC_LINK_TUNNEL, which, messages the link is allowed to receive in this state. TIPC_LINK_BLOCKED also blocks timer-driven protocol messages to be sent out, and any change to the link FSM. Since the modes are mutually exclusive, we convert them to state values, and rename the 'flags' field in struct tipc_link to 'exec_mode'. Finally, we move the #defines for link FSM states and events from link.h into enums inside the file link.c, which is the real usage scope of these definitions. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 1 - net/tipc/link.c | 98 +++++++++++++++++++++++++++++++++----------------------- net/tipc/link.h | 44 +++++-------------------- net/tipc/node.c | 2 +- 4 files changed, 67 insertions(+), 78 deletions(-) commit af9b028e270fda6fb812d70d17d902297df1ceb5 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:24 2015 -0400 tipc: make media xmit call outside node spinlock context Currently, message sending is performed through a deep call chain, where the node spinlock is grabbed and held during a significant part of the transmission time. This is clearly detrimental to overall throughput performance; it would be better if we could send the message after the spinlock has been released. In this commit, we do instead let the call revert on the stack after the buffer chain has been added to the transmission queue, whereafter clones of the buffers are transmitted to the device layer outside the spinlock scope. As a further step in our effort to separate the roles of the node and link entities we also move the function tipc_link_xmit() to node.c, and rename it to tipc_node_xmit(). Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bearer.c | 26 ++++++++++ net/tipc/bearer.h | 3 ++ net/tipc/link.c | 132 +++++++++++++++++++++++++++----------------------- net/tipc/link.h | 6 +-- net/tipc/name_distr.c | 4 +- net/tipc/node.c | 78 +++++++++++++++++++++++++++++ net/tipc/node.h | 4 ++ net/tipc/socket.c | 22 ++++----- 8 files changed, 198 insertions(+), 77 deletions(-) commit 22d85c79428b8ca9a01623aa3e3a1fe29a30a119 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:23 2015 -0400 tipc: change sk_buffer handling in tipc_link_xmit() When the function tipc_link_xmit() is given a buffer list for transmission, it currently consumes the list both when transmission is successful and when it fails, except for the special case when it encounters link congestion. This behavior is inconsistent, and needs to be corrected if we want to avoid problems in later commits in this series. In this commit, we change this to let the function consume the list only when transmission is successful, and leave the list with the sender in all other cases. We also modifiy the socket code so that it adapts to this change, i.e., purges the list when a non-congestion error code is returned. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 5 ++--- net/tipc/link.c | 23 +++++++++-------------- net/tipc/socket.c | 49 ++++++++++++++++++++++++++----------------------- 3 files changed, 37 insertions(+), 40 deletions(-) commit 36e78a463b26c9b8017a2e11dcd6c4b8e34b4161 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:22 2015 -0400 tipc: use bearer index when looking up active links struct tipc_node currently holds two arrays of link pointers; one, indexed by bearer identity, which contains all links irrespective of current state, and one two-slot array for the currently active link or links. The latter array contains direct pointers into the elements of the former. This has the effect that we cannot know the bearer id of a link when accessing it via the "active_links[]" array without actually dereferencing the pointer, something we want to avoid in some cases. In this commit, we do instead store the bearer identity in the "active_links" array, and use this as an index to find the right element in the overall link entry array. This change should be seen as a preparation for the later commits in this series. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/node.c | 106 +++++++++++++++++++++++--------------------------------- net/tipc/node.h | 26 ++++++++------ 2 files changed, 59 insertions(+), 73 deletions(-) commit d39bbd445dc44259c77bbbc8aadcce7dcdba39cc Author: Jon Paul Maloy Date: Thu Jul 16 16:54:21 2015 -0400 tipc: move link input queue to tipc_node At present, the link input queue and the name distributor receive queues are fields aggregated in struct tipc_link. This is a hazard, because a link might be deleted while a receiving socket still keeps reference to one of the queues. This commit fixes this bug. However, rather than adding yet another reference counter to the critical data path, we move the two queues to safe ground inside struct tipc_node, which is already protected, and let the link code only handle references to the queues. This is also in line with planned later changes in this area. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/link.c | 27 +++++++++++++++------------ net/tipc/link.h | 12 +++++++----- net/tipc/node.c | 4 +++- net/tipc/node.h | 3 ++- 4 files changed, 27 insertions(+), 19 deletions(-) commit d3a43b907ae688af6cb753c53cd7de05f3c1ba85 Author: Jon Paul Maloy Date: Thu Jul 16 16:54:20 2015 -0400 tipc: move link creation from neighbor discoverer to node As a step towards turning links into node internal entities, we move the creation of links from the neighbor discovery logics to the node's link control logics. We also create an additional entry for the link's media address in the newly introduced struct tipc_link_entry, since this is where it is needed in the upcoming commits. The current copy in struct tipc_link is kept for now, but will be removed later. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/discover.c | 20 ++++---------------- net/tipc/node.c | 27 +++++++++++++++++++++++++++ net/tipc/node.h | 6 ++++++ 3 files changed, 37 insertions(+), 16 deletions(-) commit 9d13ec65ede775f896c3da1cfa35283afe2f796c Author: Jon Paul Maloy Date: Thu Jul 16 16:54:19 2015 -0400 tipc: introduce link entry structure to struct tipc_node struct 'tipc_node' currently contains two arrays for link attributes, one for the link pointers, and one for the usable link MTUs. We now group those into a new struct 'tipc_link_entry', and intoduce one single array consisting of such enties. Apart from being a cosmetic improvement, this is a starting point for the strict master-slave relation between node and link that we will introduce in the following commits. Reviewed-by: Ying Xue Signed-off-by: Jon Maloy Signed-off-by: David S. Miller net/tipc/bcast.c | 2 +- net/tipc/discover.c | 2 +- net/tipc/link.c | 60 ++++++++++--------- net/tipc/name_distr.c | 2 +- net/tipc/node.c | 163 ++++++++++++++++++++++++-------------------------- net/tipc/node.h | 50 +++++++++------- 6 files changed, 143 insertions(+), 136 deletions(-) commit 6acc23266054a9969737b435fa012f87465dbc50 Author: Jiri Benc Date: Thu Jul 16 21:50:50 2015 +0200 net: remove skb_frag_add_head It's not used anywhere. Signed-off-by: Jiri Benc Signed-off-by: David S. Miller include/linux/skbuff.h | 6 ------ 1 file changed, 6 deletions(-) commit c93bf928fea22c61f6b5c04786b325c9bfbc0462 Author: Minfei Huang Date: Sun Jul 12 17:52:24 2015 +0800 ftrace: Format MCOUNT_ADDR address as type unsigned long Always we use type unsigned long to format the ip address, since the value of ip address is never the negative. This patch uses type unsigned long, instead of long, to format the ip address. The code is more clearly to be viewed by using type unsigned long, although it is correct by using either unsigned long or long. Link: http://lkml.kernel.org/r/1436694744-16747-1-git-send-email-mhuang@redhat.com Cc: Minfei Huang Cc: "H. Peter Anvin" Cc: James Hogan Cc: Michal Simek Cc: Benjamin Herrenschmidt Cc: "David S. Miller" Signed-off-by: Minfei Huang Signed-off-by: Steven Rostedt arch/metag/include/asm/ftrace.h | 2 +- arch/microblaze/include/asm/ftrace.h | 2 +- arch/powerpc/include/asm/ftrace.h | 2 +- arch/sh/include/asm/ftrace.h | 2 +- arch/sparc/include/asm/ftrace.h | 2 +- arch/x86/include/asm/ftrace.h | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) commit b838e1d96c613019095ba008afbee800977b0582 Author: Jungseok Lee Date: Sat Jul 11 14:51:40 2015 +0000 tracing: Introduce two additional marks for delay A fine granulity support for delay would be very useful when profiling VM logics, such as page allocation including page reclaim and memory compaction with function graph. Thus, this patch adds two additional marks with two changes. - An equal sign in mark selection function is removed to align code behavior with comments and documentation. - The function graph example related to delay in ftrace.txt is updated to cover all supported marks. Link: http://lkml.kernel.org/r/1436626300-1679-3-git-send-email-jungseoklee85@gmail.com Cc: Byungchul Park Signed-off-by: Jungseok Lee Signed-off-by: Steven Rostedt Documentation/trace/ftrace.txt | 51 +++++++++++++++++++++++++++++++----------- kernel/trace/trace_output.c | 4 +++- 2 files changed, 41 insertions(+), 14 deletions(-) commit 82c355e81afbf16bc1ab379899a79eb66e2b7504 Author: Steven Rostedt (Red Hat) Date: Thu Jul 16 21:58:52 2015 -0400 ftrace: Fix function_graph duration spacing with 7-digits Jungseok Lee noticed the following: Currently, row's width of 7-digit duration numbers not aligned with other cases like the following example. 3) $ 3999884 us | } 3) | finish_task_switch() { 3) 0.365 us | _raw_spin_unlock_irq(); 3) 3.333 us | } 3) $ 3999976 us | } 3) $ 3999979 us | } /* schedule */ As adding a single white space in case of 7-digit numbers, the format could be unified easily as follows. 3) $ 2237472 us | } 3) | finish_task_switch() { 3) 0.364 us | _raw_spin_unlock_irq(); 3) 3.125 us | } 3) $ 2237556 us | } 3) $ 2237559 us | } /* schedule */ Instead of making a special case for 7-digit numbers, the logic of the len and the space loop is slightly modified to make the two cases have the same format. Link: http://lkml.kernel.org/r/1436626300-1679-2-git-send-email-jungseoklee85@gmail.com Reported-by: Jungseok Lee Signed-off-by: Steven Rostedt kernel/trace/trace_functions_graph.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8e436ca042d904533a1e14fdc85f0facdfca752f Author: Umesh Tiwari Date: Mon Jun 22 16:58:08 2015 +0530 ftrace: add tracing_thresh to function profile This patch extends tracing_thresh functionality to function profile tracer. If tracing_thresh is set, print those entries only, whose average is > tracing thresh. Link: http://lkml.kernel.org/r/1434972488-8571-1-git-send-email-umesh.t@samsung.com Signed-off-by: Umesh Tiwari [ Removed unnecessary 'moved' comment ] Signed-off-by: Steven Rostedt kernel/trace/ftrace.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 72ac426a5bb0cec572d26b4456f8c1e14601694e Author: Steven Rostedt (Red Hat) Date: Thu Jul 16 13:24:54 2015 -0400 tracing: Clean up stack tracing and fix fentry updates Akashi Takahiro was porting the stack tracer to arm64 and found some issues with it. One was that it repeats the top function, due to the stack frame added by the mcount caller and added by itself. This was added when fentry came in, and before fentry created its own stack frame. But x86's fentry now creates its own stack frame, and there's no need to insert the function again. This also cleans up the code a bit, where it doesn't need to do something special for fentry, and doesn't include insertion of a duplicate entry for the called function being traced. Link: http://lkml.kernel.org/r/55A646EE.6030402@linaro.org Some-suggestions-by: Jungseok Lee Some-suggestions-by: Mark Rutland Reported-by: AKASHI Takahiro Signed-off-by: Steven Rostedt kernel/trace/trace_stack.c | 68 ++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 45 deletions(-) commit d90fd77402d3de56a9ca3df04e5d868d0979dc59 Author: Steven Rostedt (Red Hat) Date: Fri May 29 12:12:27 2015 -0400 ring-buffer: Reorganize function locations Functions in ring-buffer.c have gotten interleaved between different use cases. Move the functions around to get like functions closer together. This may or may not help gcc keep cache locality, but it makes it a little easier to work with the code. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 920 ++++++++++++++++++++++----------------------- 1 file changed, 456 insertions(+), 464 deletions(-) commit 7d75e6833b579adb3de2c7b917de1204eeafea47 Author: Steven Rostedt (Red Hat) Date: Fri May 29 10:29:10 2015 -0400 ring-buffer: Make sure event has enough room for extend and padding Now that events only add time extends after it is committed, in case an event comes in before it can discard the allocated event, the time extend needs to be stored within the event. If the event is bigger than then size needed for the time extend, padding must be added. The minimum padding size is 8 bytes. Thus if the event is 12 bytes (size of time extend + 4), there will not be enough room to add both the time extend and padding. Make sure all events are either 8 bytes or 16 or more bytes. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit a4543a2fa9ef31d6d0f854a4e14f8f82e7996d8d Author: Steven Rostedt (Red Hat) Date: Fri May 29 09:40:18 2015 -0400 ring-buffer: Get timestamp after event is allocated Move the capturing of the timestamp to after an event is allocated. If the event is not a commit (where it is an event that preempted another event), then no timestamp is needed, because the delta of nested events is always zero. If the event starts on a new page, no delta needs to be calculated as the full timestamp will be added to the page header, and the event will have a delta of zero. Now if the event requires a time extend (the delta does not fit in the 27 bit delta slot in the header), then the event is discarded, the length is extended to hold the TIME_EXTEND event that allows for a 59 bit delta, and the commit is tried again. If the event can't be discarded (another event came in after it), then the TIME_EXTEND is added directly to the allocated event and the rest of the event is given padding. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 161 ++++++++++++++++++++++++++++++++------------- 1 file changed, 114 insertions(+), 47 deletions(-) commit 9826b2733a4399149072058a11f611357479229d Author: Steven Rostedt (Red Hat) Date: Thu May 28 17:36:45 2015 -0400 ring-buffer: Move the adding of the extended timestamp out of line Requiring a extended time stamp is an uncommon occurrence, and it is best to do it out of line when needed. Add a noinline function that handles the extended timestamp and have it called with an unlikely to completely move it out of the fast path. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) commit fcc742eaad7cbcbbb2a96edc8f1d22adbaa804cb Author: Steven Rostedt (Red Hat) Date: Thu May 28 17:13:14 2015 -0400 ring-buffer: Add event descriptor to simplify passing data Add rb_event_info descriptor to pass event info to functions a bit easier than using a bunch of parameters. This will also allow for changing the code around a bit to find better fast paths. Signed-off-by: Steven Rostedt kernel/trace/ring_buffer.c | 91 ++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 39 deletions(-) commit 5e2d5ef8ec1e3854daec41a3697a8d2ce05ff2ef Author: Umesh Tiwari Date: Mon Jun 22 16:55:06 2015 +0530 ftrace: correct the counter increment for trace_buffer data In ftrace_dump, for disabling buffer, iter.tr->trace_buffer.data is used. But for enabling, iter.trace_buffer->data is used. Even though, both point to same buffer, for readability, same convention should be used. Link: http://lkml.kernel.org/r/1434972306-20043-1-git-send-email-umesh.t@samsung.com Signed-off-by: Umesh Tiwari Signed-off-by: Steven Rostedt kernel/trace/trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72917235fd5f08638be1d52dcdb0fee3ce2cc95f Author: Gil Fruchter Date: Tue Jun 9 10:32:35 2015 +0300 tracing: Fix for non-continuous cpu ids Currently exception occures due to access beyond buffer_iter range while using index of cpu bigger than num_possible_cpus(). Below there is an example for such exception when we use cpus 0,1,16,17. In order to fix buffer allocation size for non-continuous cpu ids we allocate according to the max cpu id and not according to the amount of possible cpus. Example: $ cat /sys/kernel/debug/tracing/per_cpu/cpu1/trace Path: /bin/busybox CPU: 0 PID: 82 Comm: cat Not tainted 4.0.0 #29 task: 80734c80 ti: 80012000 task.ti: 80012000 [ECR ]: 0x00220100 => Invalid Read @ 0x00000000 by insn @ 0x800abafc [EFA ]: 0x00000000 [BLINK ]: ring_buffer_read_finish+0x24/0x64 [ERET ]: rb_check_pages+0x20/0x188 [STAT32]: 0x00001a00 : BTA: 0x800abafc SP: 0x80013f0c FP: 0x57719cf8 LPS: 0x200036b4 LPE: 0x200036b8 LPC: 0x00000000 r00: 0x8002aca0 r01: 0x00001606 r02: 0x00000000 r03: 0x00000001 r04: 0x00000000 r05: 0x804b4954 r06: 0x00030003 r07: 0x8002a260 r08: 0x00000286 r09: 0x00080002 r10: 0x00001006 r11: 0x807351a4 r12: 0x00000001 Stack Trace: rb_check_pages+0x20/0x188 ring_buffer_read_finish+0x24/0x64 tracing_release+0x4e/0x170 __fput+0x62/0x158 task_work_run+0xa2/0xd4 do_notify_resume+0x52/0x7c resume_user_mode_begin+0xdc/0xe0 Link: http://lkml.kernel.org/r/1433835155-6894-3-git-send-email-gilf@ezchip.com Signed-off-by: Noam Camus Signed-off-by: Gil Fruchter Signed-off-by: Steven Rostedt kernel/trace/trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9fe6b778ca93e6171dbb8e54df557a278a91abea Author: Gil Fruchter Date: Tue Jun 9 10:32:34 2015 +0300 tracing: Prefer kcalloc over kzalloc with multiply Use kcalloc for allocating an array instead of kzalloc with multiply, as that is what kcalloc is used for. Found with checkpatch. Link: http://lkml.kernel.org/r/1433835155-6894-2-git-send-email-gilf@ezchip.com Signed-off-by: Gil Fruchter Signed-off-by: Steven Rostedt kernel/trace/trace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79cd95200035fb4b39b089dd01c13302eee6ee03 Author: Gavin Shan Date: Tue May 12 17:05:32 2015 +1000 powerpc/eeh: Dump PHB diag-data for non-existing PE When detecting EEH error on non-existing PE, including the reserved one, the PE is simply unfrozen without dumping the PHB diag-data, which is useful for locating the root cause of the EEH error. The patch dumps the PHB diag-data when non-existing PE reports error. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/eeh-powernv.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 0f36db77643b6fb573313d97fa076903de6a34d6 Author: Gavin Shan Date: Tue May 12 17:05:22 2015 +1000 powerpc/eeh: Fix wrong printed PE number On LE kernel, the non-existing PE number in BE format derived from skiboot firmware isn't converted to LE format properly as following kernel log indicates: EEH: Clear non-existing PHB#4-PE#200000000000000 Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/eeh-powernv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2476c09f391eddb546a73fef9f6ab86886a9f2b1 Author: Anshuman Khandual Date: Mon Jul 20 08:28:43 2015 +0530 powerpc/signal: Add helper function to fetch quad word aligned pointer This patch adds one helper function 'sigcontext_vmx_regs' which computes quad word aligned pointer for 'vmx_reserve' array element in sigcontext structure making the code more readable. Signed-off-by: Anshuman Khandual [mpe: Reword comment and fix build for CONFIG_ALTIVEC=n] Signed-off-by: Michael Ellerman arch/powerpc/kernel/signal_64.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit bd265242c10afa6c99c46b13ad087238d750fdb4 Merge: 8254973 a48037e Author: David S. Miller Date: Mon Jul 20 18:32:45 2015 -0700 Merge branch 'offload_fwd_mark' Scott Feldman says: ==================== switchdev: avoid duplicate packet forwarding v3: - Per Nicolas Dichtel review: remove errant empty union. v2: - Per davem review: in sk_buff, union fwd_mark with secmark to save space since features appear to be mutually exclusive. - Per Simon Horman review: - fix grammar in switchdev.txt wrt fwd_mark - remove some unrelated changes that snuck in v1: This patchset was previously submitted as RFC. No changes from the last version (v2) sent under RFC. Including RFC version history here for reference. RFC v2: - s/fwd_mark/offload_fwd_mark - use consume_skb rather than kfree_skb when dropping pkt on egress. - Use Jiri's suggestion to use ifindex of one of the ports in a group as the mark for all the ports in the group. This can be done with no additional storage (no hashtable from v1). To pull it off, we need some simple recursive routines to walk the netdev tree ensuring all leaves in the tree (ports) in the same group (e.g. bridge) belonging to the same switch device will have the same offload fwd mark. Maybe someone sees a better design for the recusive routines? They're not too bad, and should cover the stacked driver cases. RFC v1: With switchdev support for offloading L2/L3 forwarding data path to a switch device, we have a general problem where both the device and the kernel may forward the packet, resulting in duplicate packets on the wire. Anytime a packet is forwarded by the device and a copy is sent to the CPU, there is potential for duplicate forwarding, as the kernel may also do a forwarding lookup and send the packet on the wire. The specific problem this patch series is interested in solving is avoiding duplicate packets on bridged ports. There was a previous RFC from Roopa (http://marc.info/?l=linux-netdev&m=142687073314252&w=2) to address this problem, but didn't solve the problem of mixed ports in the bridge from different devices; there was no way to exclude some ports from forwarding and include others. This RFC solves that problem by tagging the ingressing packet with a unique mark, and then comparing the packet mark with the egress port mark, and skip forwarding when there is a match. For the mixed ports bridge case, only those ports with matching marks are skipped. The switchdev port driver must do two things: 1) Generate a fwd_mark for each switch port, using some unique key of the switch device (and optionally port). This is done when the port netdev is registered or if the port's group membership changes (joins/leaves a bridge, for example). 2) On packet ingress from port, mark the skb with the ingress port's fwd_mark. If the device supports it, it's useful to only mark skbs which were already forwarded by the device. If the device does not support such indication, all skbs can be marked, even if they're local dst. Two new 32-bit fields are added to struct sk_buff and struct netdevice to hold the fwd_mark. I've wrapped these with CONFIG_NET_SWITCHDEV for now. I tried using skb->mark for this purpose, but ebtables can overwrite the skb->mark before the bridge gets it, so that will not work. In general, this fwd_mark can be used for any case where a packet is forwarded by the device and a copy is sent to the CPU, to avoid the kernel re-forwarding the packet. sFlow is another use-case that comes to mind, but I haven't explored the details. ==================== Signed-off-by: David S. Miller commit a48037e7c6c25436912f78f48cdbb75a710b7aa9 Author: Scott Feldman Date: Sat Jul 18 18:24:52 2015 -0700 switchdev: update documentation for offload_fwd_mark Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller Documentation/networking/switchdev.txt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 3f98a8e636757ce404f305d65dc93e9366112886 Author: Scott Feldman Date: Sat Jul 18 18:24:51 2015 -0700 rocker: add offload_fwd_mark support If device flags ingress packet as "fwd offload", mark the skb->offlaod_fwd_mark using the ingress port's dev->offlaod_fwd_mark. This will be the hint to the kernel that this packet has already been forwarded by device to egress ports matching skb->offlaod_fwd_mark. For rocker, derive port dev->offlaod_fwd_mark based on device switch ID and port ifindex. If port is bridged, use the bridge ifindex rather than the port ifindex. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 11 +++++++++++ drivers/net/ethernet/rocker/rocker.h | 1 + 2 files changed, 12 insertions(+) commit 1a3b2ec93d4277b121979321b4024b438cb09504 Author: Scott Feldman Date: Sat Jul 18 18:24:50 2015 -0700 switchdev: add offload_fwd_mark generator helper skb->offload_fwd_mark and dev->offload_fwd_mark are 32-bit and should be unique for device and may even be unique for a sub-set of ports within device, so add switchdev helper function to generate unique marks based on port's switch ID and group_ifindex. group_ifindex would typically be the container dev's ifindex, such as the bridge's ifindex. The generator uses a global hash table to store offload_fwd_marks hashed by {switch ID, group_ifindex} key. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/net/switchdev.h | 9 ++++ net/switchdev/switchdev.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) commit d754f98b502ad9a8c7570d494e1eaa0e6bc0350c Author: Scott Feldman Date: Sat Jul 18 18:24:49 2015 -0700 net: add phys ID compare helper to test if two IDs are the same Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Signed-off-by: David S. Miller include/linux/netdevice.h | 7 +++++++ net/switchdev/switchdev.c | 8 ++------ 2 files changed, 9 insertions(+), 6 deletions(-) commit 0c4f691ff6791e55ac831666df0b49b1679c56e4 Author: Scott Feldman Date: Sat Jul 18 18:24:48 2015 -0700 net: don't reforward packets already forwarded by offload device Just before queuing skb for xmit on port, check if skb has been marked by switchdev port driver as already fordwarded by device. If so, drop skb. A non-zero skb->offload_fwd_mark field is set by the switchdev port driver/device on ingress to indicate the skb has already been forwarded by the device to egress ports with matching dev->skb_mark. The switchdev port driver would assign a non-zero dev->offload_skb_mark for each device port netdev during registration, for example. Signed-off-by: Scott Feldman Acked-by: Jiri Pirko Acked-by: Roopa Prabhu Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller include/linux/netdevice.h | 6 ++++++ include/linux/skbuff.h | 9 ++++++++- net/core/dev.c | 10 ++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) commit 8254973fa3459b512b6c0cd5b0e4641e4d7c048c Author: Simon Horman Date: Thu Jul 16 10:39:14 2015 +0900 rocker: forward packets to CPU when port is joined to openvswitch Teach rocker to forward packets to CPU when a port is joined to Open vSwitch. There is scope to later refine what is passed up as per Open vSwitch flows on a port. This does not change the behaviour of rocker ports that are not joined to Open vSwitch. Signed-off-by: Simon Horman Acked-by: Scott Feldman Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 62 +++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 12 deletions(-) commit a7ce45a74bedd0ed80b956b3e14f8bc6dec85327 Author: Nikolay Aleksandrov Date: Mon Jul 20 23:03:45 2015 +0200 bridge: mcast: fix br_multicast_dev_del warn when igmp snooping is not defined Fix: net/bridge/br_if.c: In function 'br_dev_delete': >> net/bridge/br_if.c:284:2: error: implicit declaration of function >> 'br_multicast_dev_del' [-Werror=implicit-function-declaration] br_multicast_dev_del(br); ^ cc1: some warnings being treated as errors when igmp snooping is not defined. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_private.h | 4 ++++ 1 file changed, 4 insertions(+) commit 4bc384ae6299d3f3a948efabda2a423e2a293ee0 Author: Viresh Kumar Date: Sat Jul 18 11:31:03 2015 +0530 cpufreq: propagate errors returned from __cpufreq_governor() Return codes aren't honored properly in cpufreq_set_policy(). This can lead to two problems: - wrong errors propagated to sysfs - we try to do next state-change even if the previous one failed cpufreq_governor_dbs() now returns proper errors on all invalid state-transition requests and this code should honor that. Reviewed-and-tested-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) commit 871ef3b53a2f4dd9be348c07b77df3c4bd74a37f Author: Viresh Kumar Date: Sat Jul 18 11:31:02 2015 +0530 cpufreq: governor: Don't WARN on invalid states With previous commit, governors have started to return errors on invalid state-transition requests. We already have a WARN for an invalid state-transition request in cpufreq_governor_dbs(). This does trigger today, as the sequence of events isn't guaranteed by cpufreq core. Lets stop warning on that for now, and make sure we don't enter an invalid state. Reviewed-and-tested-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a72c49590a1f9e5d26a71c3f807dbb8958c93513 Author: Viresh Kumar Date: Sat Jul 18 11:31:01 2015 +0530 cpufreq: governor: Avoid invalid states with additional checks There can be races where the request has come to a wrong state. For example INIT followed by STOP (instead of START) or START followed by EXIT (instead of STOP). Address these races by making sure the state-machine never gets into any invalid state. Also return an error if an invalid state-transition is requested. Reviewed-and-tested-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 46 +++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 11 deletions(-) commit 43e0ee361e96229959c2ce1eda1ad9d6b3c191b2 Author: Viresh Kumar Date: Sat Jul 18 11:31:00 2015 +0530 cpufreq: governor: split out common part of {cs|od}_dbs_timer() Some part of cs_dbs_timer() and od_dbs_timer() is exactly same and is unnecessarily duplicated. Create the real work-handler in cpufreq_governor.c and put the common code in this routine (dbs_timer()). Shouldn't make any functional change. Reviewed-and-tested-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 27 +++++++----------------- drivers/cpufreq/cpufreq_governor.c | 38 ++++++++++++++++++++++++++++++---- drivers/cpufreq/cpufreq_governor.h | 10 ++++----- drivers/cpufreq/cpufreq_ondemand.c | 36 +++++++++++++------------------- 4 files changed, 60 insertions(+), 51 deletions(-) commit 44152cb82d1ad6ae6f8b47c5437f6f1e65ca82c4 Author: Viresh Kumar Date: Sat Jul 18 11:30:59 2015 +0530 cpufreq: governor: Keep single copy of information common to policy->cpus Some information is common to all CPUs belonging to a policy, but are kept on per-cpu basis. Lets keep that in another structure common to all policy->cpus. That will make updates/reads to that less complex and less error prone. The memory for cpu_common_dbs_info is allocated/freed at INIT/EXIT, so that it we don't reallocate it for STOP/START sequence. It will be also be used (in next patch) while the governor is stopped and so must not be freed that early. Reviewed-and-tested-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 18 ++++--- drivers/cpufreq/cpufreq_governor.c | 92 +++++++++++++++++++++++++--------- drivers/cpufreq/cpufreq_governor.h | 24 +++++---- drivers/cpufreq/cpufreq_ondemand.c | 38 +++++++------- 4 files changed, 114 insertions(+), 58 deletions(-) commit 8ce344c66e3ce122585cfe68be1ef0ffd176380d Author: Mathias Krause Date: Sun Jul 19 18:50:38 2015 +0200 ACPI / processor: remove leftover __refdata annotations The processor_handler structure does not reference any __init / __exit code or data. Therefore the __refdata annotation is not needed. It used to be prior to commit fe7bf106ebc2 ("acpi: delete __cpuinit usage from all acpi files") due to the __cpuinit annotation of acpi_processor_add(). But with that commit in place that requirement has gone. The same is true for the acpi_cpu_notifier notifier block. acpi_cpu_soft_notify() used to be marked __cpuinit but lost its annotation in the above mentioned commit as well. Therefore the __refdata annotation isn't needed there either. Just drop the unneded __refdata annotations to be able to catch future section mismatches. Signed-off-by: Mathias Krause Signed-off-by: Rafael J. Wysocki drivers/acpi/acpi_processor.c | 2 +- drivers/acpi/processor_driver.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 9962eea9e55f797f05f20ba6448929cab2a9f018 Author: Minfei Huang Date: Sun Jul 12 20:18:42 2015 +0800 x86/mm: Initialize pmd_idx in page_table_range_init_count() The variable pmd_idx is not initialized for the first iteration of the for loop. Assign the proper value which indexes the start address. Fixes: 719272c45b82 'x86, mm: only call early_ioremap_page_table_range_init() once' Signed-off-by: Minfei Huang Cc: tony.luck@intel.com Cc: wangnan0@huawei.com Cc: david.vrabel@citrix.com Reviewed-by: yinghai@kernel.org Link: http://lkml.kernel.org/r/1436703522-29552-1-git-send-email-mhuang@redhat.com Signed-off-by: Thomas Gleixner arch/x86/mm/init_32.c | 1 + 1 file changed, 1 insertion(+) commit d2f3f5d2e9cae6e73f9642a5ddc8c8a07c35e79b Author: Davidlohr Bueso Date: Tue Jul 7 01:55:53 2015 -0700 perf bench futex: Add lock_pi stresser Allows a way of measuring low level kernel implementation of FUTEX_LOCK_PI and FUTEX_UNLOCK_PI. The program comes in two flavors: (i) single futex (default), all threads contend on the same uaddr. For the sake of the benchmark, we call into kernel space even when the lock is uncontended. The kernel will set it to TID, any waters that come in and contend for the pi futex will be handled respectively by the kernel. (ii) -M option for multiple futexes, each thread deals with its own futex. This is a trivial scenario and only measures kernel handling of 0->TID transition. Signed-off-by: Davidlohr Bueso Cc: Mel Gorman Link: http://lkml.kernel.org/r/1436259353.12255.78.camel@stgolabs.net Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-bench.txt | 4 + tools/perf/bench/Build | 1 + tools/perf/bench/bench.h | 2 + tools/perf/bench/futex-lock-pi.c | 219 ++++++++++++++++++++++++++++++++ tools/perf/bench/futex.h | 20 +++ tools/perf/builtin-bench.c | 2 + 6 files changed, 248 insertions(+) commit 52c0a18b9010fb19d10889e8a00aa784197d357c Author: Sergei Trofimovich Date: Sun Jul 19 10:30:05 2015 +0100 perf tools: Fix makefile generation under dash Under dash 'echo -n' yields '-n' to stdout. Use printf "" instead. Signed-off-by: Sergei Trofimovich Acked-by: Ingo Molnar Acked-by: Jiri Olsa Cc: Adrian Hunter Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1437298205-29305-1-git-send-email-siarheit@google.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/config/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d77fac7f9e687d137b17296d86d9143c2cccab6a Author: Masami Hiramatsu Date: Wed Jul 15 18:14:28 2015 +0900 perf buildid: Use SBUILD_ID_SIZE macro Introduce SBUILD_ID_SIZE macro and use it instead of using BUILD_ID_SIZE * 2 + 1. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Borislav Petkov Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150715091428.8915.75265.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-buildid-cache.c | 8 ++++---- tools/perf/builtin-buildid-list.c | 4 ++-- tools/perf/util/build-id.c | 4 ++-- tools/perf/util/build-id.h | 3 ++- 4 files changed, 10 insertions(+), 9 deletions(-) commit 92f6c72e7ac40cbf8d12682d1aeeb82c905f2a64 Author: Masami Hiramatsu Date: Wed Jul 15 18:14:07 2015 +0900 perf probe: Move ftrace probe-event operations to probe-file.c Move ftrace probe-event operations to probe-file.c from probe-event.c. Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Borislav Petkov Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150715091407.8915.14316.stgit@localhost.localdomain [ Fixed up strlist__new() calls wrt 4a77e2183fc0 ("perf strlist: Make dupstr be the...") ] Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/Build | 1 + tools/perf/util/probe-event.c | 318 ++++-------------------------------------- tools/perf/util/probe-event.h | 7 + tools/perf/util/probe-file.c | 301 +++++++++++++++++++++++++++++++++++++++ tools/perf/util/probe-file.h | 18 +++ 5 files changed, 353 insertions(+), 292 deletions(-) commit a3c9de6280b8d196ab89ca7fad143bfa2a949790 Author: Masami Hiramatsu Date: Wed Jul 15 18:14:00 2015 +0900 perf probe: Simplify __add_probe_trace_events code Simplify the __add_probe_trace_events() code by taking out the probe_trace_event__set_name() and updating show_perf_probe_event() Signed-off-by: Masami Hiramatsu Cc: Adrian Hunter Cc: Borislav Petkov Cc: Hemant Kumar Cc: Jiri Olsa Cc: Namhyung Kim Cc: Paul Mackerras Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20150715091400.8915.85501.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/probe-event.c | 70 ++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 27 deletions(-) commit 4ba1faa19fa5f415bd69b1d7c366028332468bca Author: Wang Nan Date: Fri Jul 10 07:36:10 2015 +0000 perf record: Allow filtering perf's pid via --exclude-perf This patch allows 'perf record' to exclude events issued by perf itself by '--exclude-perf' option. Before this patch, when doing something like: # perf record -a -e syscalls:sys_enter_write One could easily get result like this: # /tmp/perf report --stdio ... # Overhead Command Shared Object Symbol # ........ ....... .................. .................... # 99.99% perf libpthread-2.18.so [.] __write_nocancel 0.01% ls libc-2.18.so [.] write 0.01% sshd libc-2.18.so [.] write ... Where most events are generated by perf itself. A shell trick can be done to filter perf itself out: # cat << EOF > ./tmp > #!/bin/sh > exec perf record -e ... --filter="common_pid != \$\$" -a sleep 10 > EOF # chmod a+x ./tmp # ./tmp However, doing so is user unfriendly. This patch extracts evsel iteration framework introduced by patch 'perf record: Apply filter to all events in a glob matching' into foreach_evsel_in_last_glob(), and makes exclude_perf() function append new filter expression to each evsel selected by a '-e' selector. To avoid losing filters if user pass '--filter' after '--exclude-perf', this patch uses perf_evsel__append_filter() in both case, instead of perf_evsel__set_filter() which removes old filter. As a side effect, now it is possible to use multiple '--filter' option for one selector. They are combinded with '&&'. Signed-off-by: Wang Nan Cc: Andi Kleen Cc: Brendan Gregg Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1436513770-8896-2-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 11 ++++- tools/perf/builtin-record.c | 3 ++ tools/perf/util/parse-events.c | 83 +++++++++++++++++++++++++++----- tools/perf/util/parse-events.h | 1 + 4 files changed, 84 insertions(+), 14 deletions(-) commit cd871d517d46f26943f3c8f61c0d2ac6665da6a2 Author: Dinh Nguyen Date: Mon Jul 20 11:23:13 2015 -0500 ARM: socfpga: add reset for the Arria 10 platform Since the Arria10's reset register offset is different from the Cyclone/Arria 5, it's best to add a new DT_MACHINE_START() for the Arria10. Signed-off-by: Dinh Nguyen --- v2: use altera_a10_dt_match for the A10 machine desc arch/arm/mach-socfpga/core.h | 1 + arch/arm/mach-socfpga/socfpga.c | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) commit ed15e8880fc3d8d52bc02a02521054bfcb26264a Merge: b8d1f26 52721d9 Author: Greg Kroah-Hartman Date: Mon Jul 20 13:21:28 2015 -0700 Merge 4.2-rc3 into staging-next We need the staging fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit a0a9f33bdf8bf9061c31faab46d8eb46ff644622 Author: Phil Sutter Date: Wed Jul 15 21:56:26 2015 +0200 net/ipv6: update flowi6_oif in ip6_dst_lookup_flow if not set Newly created flows don't have flowi6_oif set (at least if the associated socket is not interface-bound). This leads to a mismatch in __xfrm6_selector_match() for policies which specify an interface in the selector (sel->ifindex != 0). Backtracing shows this happens in code-paths originating from e.g. ip6_datagram_connect(), rawv6_sendmsg() or tcp_v6_connect(). (UDP was not tested for.) In summary, this patch fixes policy matching on outgoing interface for locally generated packets. Signed-off-by: Phil Sutter Signed-off-by: David S. Miller net/ipv6/ip6_output.c | 2 ++ 1 file changed, 2 insertions(+) commit 22f94e625635fb8555f5e7361745ea780a3853e4 Author: Nikolay Aleksandrov Date: Wed Jul 15 16:31:09 2015 +0200 bonding: trivial: remove unused variables Get rid of these: drivers/net/bonding//bond_main.c: In function ‘bond_update_slave_arr’: drivers/net/bonding//bond_main.c:3754:6: warning: variable ‘slaves_in_agg’ set but not used [-Wunused-but-set-variable] int slaves_in_agg; ^ CC [M] drivers/net/bonding//bond_3ad.o drivers/net/bonding//bond_3ad.c: In function ‘ad_marker_response_received’: drivers/net/bonding//bond_3ad.c:1870:61: warning: parameter ‘marker’ set but not used [-Wunused-but-set-parameter] static void ad_marker_response_received(struct bond_marker *marker, ^ drivers/net/bonding//bond_3ad.c:1871:19: warning: parameter ‘port’ set but not used [-Wunused-but-set-parameter] struct port *port) ^ Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller drivers/net/bonding/bond_3ad.c | 2 -- drivers/net/bonding/bond_main.c | 2 -- 2 files changed, 4 deletions(-) commit 5b1d0d8f52533f84cd5c8362e3b7786df80a1238 Merge: 03b6dc7 e10177a Author: David S. Miller Date: Mon Jul 20 12:49:11 2015 -0700 Merge branch 'bridge-temp-and-perm' Nikolay Aleksandrov says: ==================== bridge: multicast: temp and perm entries behaviour enhancements Patch 01 adds a notify when a group is deleted via br_multicast_del_pg() (on expire, on device delete or on device down). Patch 02 changes how bridge device and bridge port delete and down/up are handled. Until now on bridge down all groups were flushed, now only the temp ones are (same for port), perm entries are flushed only on port or bridge removal. ==================== Signed-off-by: David S. Miller commit e10177abf842d0c40dfecc43bd57a0a762a2fccf Author: Satish Ashok Date: Wed Jul 15 07:16:51 2015 -0700 bridge: multicast: fix handling of temp and perm entries When the bridge (or port) is brought down/up flush only temp entries and leave the perm ones. Flush perm entries only when deleting the bridge device or the associated port. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_if.c | 1 + net/bridge/br_multicast.c | 27 ++++++++++++++++++++------- net/bridge/br_private.h | 1 + 3 files changed, 22 insertions(+), 7 deletions(-) commit ef8299de7e2bf61ed24d1da699fa5ba13549d5f8 Author: Nikolay Aleksandrov Date: Wed Jul 15 07:16:50 2015 -0700 bridge: multicast: notify on group delete Group notifications were not sent when a group expired or was deleted due to bridge/port device being deleted. So add br_mdb_notify() to br_multicast_del_pg(). Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_multicast.c | 2 ++ 1 file changed, 2 insertions(+) commit 5d285a7f35b55c8fba346306ad3eb174c4f7eab1 Author: kbuild test robot Date: Tue Jul 21 01:40:45 2015 +0800 futex: Make should_fail_futex() static Signed-off-by: Fengguang Wu Cc: kbuild-all@01.org Cc: tipbuild@zytor.com Cc: Davidlohr Bueso Cc: Peter Zijlstra Cc: Darren Hart Cc: Oleg Nesterov Cc: Brian Silverman Cc: Andy Lutomirski Cc: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner kernel/futex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03b6dc7d172fb46891d25e6cff43bd5762a918c1 Merge: d9382bd 8d20aab Author: David S. Miller Date: Mon Jul 20 12:41:30 2015 -0700 Merge branch 'bpf_cgroup_classid' Daniel Borkmann says: ==================== BPF update This small helper allows for accessing net_cls cgroups classid. Please see individual patches for more details. ==================== Signed-off-by: David S. Miller commit 8d20aabe1c76cccac544d9fcc3ad7823d9e98a2d Author: Daniel Borkmann Date: Wed Jul 15 14:21:42 2015 +0200 ebpf: add helper to retrieve net_cls's classid cookie It would be very useful to retrieve the net_cls's classid from an eBPF program to allow for a more fine-grained classification, it could be directly used or in conjunction with additional policies. I.e. docker, but also tooling such as cgexec, can easily run applications via net_cls cgroups: cgcreate -g net_cls:/foo echo 42 > foo/net_cls.classid cgexec -g net_cls:foo Thus, their respecitve classid cookie of foo can then be looked up on the egress path to apply further policies. The helper is desigend such that a non-zero value returns the cgroup id. Signed-off-by: Daniel Borkmann Cc: Thomas Graf Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/uapi/linux/bpf.h | 7 +++++++ net/core/filter.c | 15 +++++++++++++++ 2 files changed, 22 insertions(+) commit b87a173e25d6bf5c26f13d329cdddf57dbd4061a Author: Daniel Borkmann Date: Wed Jul 15 14:21:41 2015 +0200 cls_cgroup: factor out classid retrieval Split out retrieving the cgroups net_cls classid retrieval into its own function, so that it can be reused later on from other parts of the traffic control subsystem. If there's no skb->sk, then the small helper returns 0 as well, which in cls_cgroup terms means 'could not classify'. Signed-off-by: Daniel Borkmann Cc: Thomas Graf Signed-off-by: David S. Miller include/net/cls_cgroup.h | 29 +++++++++++++++++++++++++++++ net/sched/cls_cgroup.c | 23 ++--------------------- 2 files changed, 31 insertions(+), 21 deletions(-) commit d9382bda4ef97d73c77ecaed7a8d5df20da8b8dd Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Wed Jul 15 15:34:40 2015 +0530 enic: allow adaptive coalesce setting for msi/legacy intr * Allow setting of adaptive coalescing setting for all types of interrupt. * In msi & legacy intr, we use single interrupt for rx & tx. In this case tx_coalesce_usecs is invalid. We should use only rx_coalesce_usecs. Do not display tx_coal values for msi/intx. And do not allow user to set this as well. * Driver supports only tx/rx_coalesce_usec and adaptive coalesce settings. For other values, driver does not return error. So ethtool succeeds for unsupported values. Introduce enic_coalesce_valid() function to validate the coalescing values. * If user requests for coalesce value greater than what adaptor supports, driver uses the max value. We should at least log this. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_ethtool.c | 113 ++++++++++++++----------- 1 file changed, 65 insertions(+), 48 deletions(-) commit fc865d6b4a6b58db8497ac2cf188ad20a5cec00c Author: Govindarajulu Varadarajan <_govind@gmx.com> Date: Wed Jul 15 15:34:39 2015 +0530 enic: add adaptive coalescing intr for intx and msi poll Adaptive interrupt coalescing is available for msix. This patch adds the support for msi poll. Interface for adaptive interrupt coalescing is already added in driver. We just did not enable it for legacy intr & msi. enic_calc_int_moderation() & enic_set_int_moderation() are defined as static after enic_poll. Since enic_poll needs it, move both of these function definitions above enic_poll. No change in functionality. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller drivers/net/ethernet/cisco/enic/enic_main.c | 135 ++++++++++++++-------------- 1 file changed, 67 insertions(+), 68 deletions(-) commit 6a37749143ecef6414cf125515fc2a04a46d8f39 Author: Olof Johansson Date: Mon Jul 20 12:09:16 2015 -0700 arm64: fix Kconfig include path They're not relative. My builder failed silently and never notified me of the error. Sigh. Signed-off-by: Olof Johansson arch/arm64/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 31193fe5f6fb616711323f5d74ee5bb92aacba4a Author: Chuck Lever Date: Thu Jul 9 16:45:37 2015 -0400 svcrdma: Remove svc_rdma_fastreg() Commit 0bf4828983df ("svcrdma: refactor marshalling logic") removed the last call site for svc_rdma_fastreg(). Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 1 - net/sunrpc/xprtrdma/svc_rdma_transport.c | 34 -------------------------------- 2 files changed, 35 deletions(-) commit 10dc4512185741a298cd7bc87e9968944f31a50d Author: Chuck Lever Date: Thu Jul 9 16:45:28 2015 -0400 svcrdma: Clean up svc_rdma_get_reply_array() Kernel coding conventions frown upon having large nontrivial functions in header files, and the preference these days is to allow the compiler to make inlining decisions if possible. As these functions are re-homed into a .c file, be sure that comparisons with fields in struct rpcrdma_msg are with be32 constants. This is a refactoring change; no behavior change is intended. Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields include/linux/sunrpc/svc_rdma.h | 81 +---------------------------------- net/sunrpc/xprtrdma/svc_rdma_sendto.c | 73 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 79 deletions(-) commit 9d11b51ce7c150a69e761e30518f294fc73d55ff Author: Chuck Lever Date: Thu Jul 9 16:45:18 2015 -0400 svcrdma: Fix send_reply() scatter/gather set-up The Linux NFS server returns garbage in the data payload of inline NFS/RDMA READ replies. These are READs of under 1000 bytes or so where the client has not provided either a reply chunk or a write list. The NFS server delivers the data payload for an NFS READ reply to the transport in an xdr_buf page list. If the NFS client did not provide a reply chunk or a write list, send_reply() is supposed to set up a separate sge for the page containing the READ data, and another sge for XDR padding if needed, then post all of the sges via a single SEND Work Request. The problem is send_reply() does not advance through the xdr_buf when setting up scatter/gather entries for SEND WR. It always calls dma_map_xdr with xdr_off set to zero. When there's more than one sge, dma_map_xdr() sets up the SEND sge's so they all point to the xdr_buf's head. The current Linux NFS/RDMA client always provides a reply chunk or a write list when performing an NFS READ over RDMA. Therefore, it does not exercise this particular case. The Linux server has never had to use more than one extra sge for building RPC/RDMA replies with a Linux client. However, an NFS/RDMA client _is_ allowed to send small NFS READs without setting up a write list or reply chunk. The NFS READ reply fits entirely within the inline reply buffer in this case. This is perhaps a more efficient way of performing NFS READs that the Linux NFS/RDMA client may some day adopt. Fixes: b432e6b3d9c1 ('svcrdma: Change DMA mapping logic to . . .') BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=285 Signed-off-by: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_sendto.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit ff79c74dcace8fec62706d0bef00b6680b477fdb Author: Shirley Ma Date: Thu Jul 9 16:45:08 2015 -0400 NFS/RDMA Release resources in svcrdma when device is removed When removing underlying RDMA device, the rmmod will hang forever if there are any outstanding NFS/RDMA client mounts. The outstanding NFS/RDMA counts could also prevent the server from shutting down. Further debugging shows that the existing connections are not teared down and resource are not released when receiving RDMA_CM_EVENT_DEVICE_REMOVAL event. It seems the original code missing svc_xprt_put() in RDMA_CM_EVENT_REMOVAL event handler thus svc_xprt_free is never invoked to release the existing connection resources. The patch has been passed removing, adding device back and forth without stopping NFS/RDMA service. This will also allow a device to be unplugged and swapped out without shutting down NFS service. BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=252 Signed-off-by: Shirley Ma Reviewed-by: Chuck Lever Signed-off-by: J. Bruce Fields net/sunrpc/xprtrdma/svc_rdma_transport.c | 1 + 1 file changed, 1 insertion(+) commit 7b8f4586532f36c5541a15d072576e7e89a5df75 Author: Kinglong Mee Date: Fri Jul 3 19:39:02 2015 +0800 nfsd: Add macro NFS_ACL_MASK for ACL Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs2acl.c | 10 ++++------ fs/nfsd/nfs3acl.c | 4 ++-- include/uapi/linux/nfsacl.h | 1 + 3 files changed, 7 insertions(+), 8 deletions(-) commit e446d66dd77fa8fbb505a9940bf637649c9b45f2 Author: Kinglong Mee Date: Fri Jul 3 19:36:14 2015 +0800 nfsd: Remove duplicate define of IDMAP_NAMESZ/IDMAP_TYPE_xx Just using the macro defined in nfs_idmap.h. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/idmap.h | 4 +--- fs/nfsd/nfs4idmap.c | 3 --- 2 files changed, 1 insertion(+), 6 deletions(-) commit faf996a654ac60983a24a9cdc5e0f3324e8a2b32 Author: Kinglong Mee Date: Fri Jul 3 19:34:53 2015 +0800 nfsd: Drop including client's header file nfs_fs.h nfs_fs.h is a client's header file. # ll fs/nfsd/nfs4acl.o fs/nfsd/nfsd.ko -rw-r--r--. 1 root root 328248 Jul 3 19:26 fs/nfsd/nfs4acl.o -rw-r--r--. 1 root root 7452016 Jul 3 19:26 fs/nfsd/nfsd.ko After this patch, # ll fs/nfsd/nfs4acl.o fs/nfsd/nfsd.ko -rw-r--r--. 1 root root 150872 Jul 3 19:15 fs/nfsd/nfs4acl.o -rw-r--r--. 1 root root 7273792 Jul 3 19:23 fs/nfsd/nfsd.ko Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4acl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d8398fc11762d162b2e7b0f368278449899cfbdf Author: Kinglong Mee Date: Tue Jul 7 10:12:03 2015 +0800 nfsd: Set lc_size_chg before ops->proc_layoutcommit After proc_layoutcommit success, i_size_read(inode) always >= new_size. Just set lc_size_chg before proc_layoutcommit, if proc_layoutcommit failed, nfsd will skip the lc_size_chg, so it's no harm. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4proc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 28e51af7c608f661a728db9d47b33c54096fdc59 Author: J. Bruce Fields Date: Wed Jul 8 16:27:56 2015 -0400 Revert "Documentation: NFS/RDMA: Document separate Kconfig symbols" This reverts commit 731d5cca82729c85ca3296902a64836619f4ba2d. Commit ffe1f0df5862 ("rpcrdma: Merge svcrdma and xprtrdma modules into one") forgot to update the corresponding documentation. Reported-by: Valentin Rothberg Signed-off-by: J. Bruce Fields Documentation/filesystems/nfs/nfs-rdma.txt | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) commit 4691b271ac3a3bdc0d7d886e4715163eb4fb4bc7 Author: Kinglong Mee Date: Tue Jul 7 10:13:02 2015 +0800 nfsd: Fix a memory leak in nfsd4_list_rec_dir() If lookup_one_len() failed, nfsd should free those memory allocated for fname. Signed-off-by: Kinglong Mee Signed-off-by: J. Bruce Fields fs/nfsd/nfs4recover.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 15bfd2cc107a9971ac8aeb4b7724ced581a2ed30 Author: Wang Nan Date: Fri Jul 10 07:36:09 2015 +0000 perf record: Apply filter to all events in a glob matching There is an old problem in perf's filter applying which first posted at Sep. 2014 at https://lkml.org/lkml/2014/9/9/944 that, if passing multiple events in a glob matching expression in cmdline then add '--filter' after them, the filter will be applied on only the last one. For example: # dd if=/dev/zero of=/dev/null & [1] 464 # perf record -a -e 'syscalls:sys_*_read' --filter 'common_pid != 464' sleep 0.1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.239 MB perf.data (2094 samples) ] # perf report --stdio | tee ... # Samples: 2K of event 'syscalls:sys_enter_read' # Event count (approx.): 2092 ... # Samples: 2 of event 'syscalls:sys_exit_read' # Event count (approx.): 2 ... In this example, filter only applied on 'syscalls:sys_exit_read', and there's no way to set filter for ''syscalls:sys_enter_read'. This patch adds a 'cmdline_group_boundary' for 'struct evsel', and apply filter on all events between two boundary marks. After applying this patch: # perf record -a -e 'syscalls:sys_*_read' --filter 'common_pid != 464' sleep 0.1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.031 MB perf.data (3 samples) ] # perf report --stdio | tee ... # Samples: 1 of event 'syscalls:sys_enter_read' # Event count (approx.): 1 ... # Samples: 2 of event 'syscalls:sys_exit_read' # Event count (approx.): 2 ... Signed-off-by: Wang Nan Reported-by: Brendan Gregg Cc: Andi Kleen Cc: Steven Rostedt Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1436513770-8896-1-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 1 + tools/perf/util/evsel.h | 1 + tools/perf/util/parse-events.c | 30 +++++++++++++++++++++--------- 3 files changed, 23 insertions(+), 9 deletions(-) commit bf9185dda829b2aaf73e1e869891a968ff85e2ae Author: Mark Brown Date: Mon Jul 20 18:36:15 2015 +0100 ASoC: sti-uniperf: Fix implicit inclusion of pinctrl Reported-by: Stephen Rothwell Signed-off-by: Mark Brown sound/soc/sti/sti_uniperif.c | 1 + 1 file changed, 1 insertion(+) commit 005438a8eef063495ac059d128eea71b58de50e5 Author: Arnaldo Carvalho de Melo Date: Mon Jul 20 12:02:09 2015 -0300 perf trace: Support 'strace' syscall event groups I.e.: $ cat ~/share/perf-core/strace/groups/file access chmod creat execve faccessat getcwd lstat mkdir open openat quotactl readlink rename rmdir stat statfs symlink unlink $ Then, on a quiet desktop, try running this and then moving your mouse to see the deluge of mouse related activity: # perf probe 'vfs_getname=getname_flags:72 pathname=filename:string' Added new event: probe:vfs_getname (on getname_flags:72 with pathname=filename:string) You can now use it in all perf tools, such as: perf record -e probe:vfs_getname -aR sleep 1 # # trace --ev probe:vfs_getname --filter-pids 2232 -e file 0.042 (0.042 ms): mousetweaks/2235 open(filename: 0x14e3910, mode: 438 ) ... 0.042 ( ): probe:vfs_getname:(ffffffff812230bc) pathname="/home/acme/.icons/Adwaita/cursors/xterm") 0.100 (0.100 ms): mousetweaks/2235 ... [continued]: open()) = -1 ENOENT No such file or directory 0.142 (0.018 ms): mousetweaks/2235 open(filename: 0x14c3c10, mode: 438 ) ... 0.142 ( ): probe:vfs_getname:(ffffffff812230bc) pathname="/home/acme/.icons/Adwaita/index.theme") 0.192 (0.069 ms): mousetweaks/2235 ... [continued]: open()) = -1 ENOENT No such file or directory 0.230 (0.017 ms): mousetweaks/2235 open(filename: 0x14c3c10, mode: 438 ) ... 0.230 ( ): probe:vfs_getname:(ffffffff812230bc) pathname="/usr/share/icons/Adwaita/cursors/xterm") 0.253 (0.041 ms): mousetweaks/2235 ... [continued]: open()) = 14 0.459 (0.008 ms): mousetweaks/2235 open(filename: 0x14e3910, mode: 438 ) ... 0.459 ( ): probe:vfs_getname:(ffffffff812230bc) pathname="/home/acme/.icons/Adwaita/cursors/left_side") 0.468 (0.017 ms): mousetweaks/2235 ... [continued]: open()) = -1 ENOENT No such file or directory Need to combine that raw_syscalls:sys_enter(open) + probe:vfs_getname + raw_syscalls:sys_exit(open) sequence... Now, if you're bored, please write some more syscall groups, like the ones in 'strace' and send it our way :-) Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Milian Wolff Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-a42xklu59lcbxp7bbnic74a8@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Build | 1 + tools/perf/Makefile.perf | 5 +++++ tools/perf/builtin-trace.c | 6 +++++- tools/perf/config/Makefile | 6 ++++++ tools/perf/trace/strace/groups/file | 18 ++++++++++++++++++ 5 files changed, 35 insertions(+), 1 deletion(-) commit 61ae76563ec3b506235d5dd69c6fdacea321254d Author: Stephen Boyd Date: Mon Jun 22 17:13:49 2015 -0700 clk: Remove clk.h from clk-provider.h Remove clk.h from clk-provider.h so that we can clearly split clk providers from clk consumers. This will allow us to quickly detect when clock providers are using the consumer APIs by looking at the includes. Signed-off-by: Stephen Boyd include/linux/clk-provider.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6acc63b5023cbd03d2e04e24cc8d979a69a8ab27 Author: Stephen Boyd Date: Mon Jul 13 16:47:44 2015 -0700 clk: h8300: Remove clk.h and clkdev.h includes Neither of these includes are used in these files, remove them. Cc: Yoshinori Sato Signed-off-by: Stephen Boyd drivers/clk/h8300/clk-div.c | 2 -- drivers/clk/h8300/clk-h8s2678.c | 2 -- 2 files changed, 4 deletions(-) commit 6a8ce8c96c1b2fce0a275b5858c3508ca419d8cb Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: at91: Include clk.h and slab.h This clock provider uses the consumer API, so include clk.h explicitly. Also include slab.h instead of relying on clkdev.h for it. Acked-by: Boris Brezillon Signed-off-by: Stephen Boyd drivers/clk/at91/clk-slow.c | 2 ++ 1 file changed, 2 insertions(+) commit 27df3ee27813e2f78ddd8c895d949d44102150c3 Author: Stephen Boyd Date: Thu Jul 9 15:24:51 2015 -0700 clk: ti: Switch clk-provider.h include to clk.h This file isn't a clock provider but uses the consumer API, so include clk.h instead of clk-provider.h. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/clk-2xxx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb58e14efbc4d72542b9d62f5ee0522fe0147259 Author: Stephen Boyd Date: Thu Jul 9 15:24:51 2015 -0700 clk: pistachio: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Andrew Bresticker Cc: Ralf Baechle Signed-off-by: Stephen Boyd drivers/clk/pistachio/clk.c | 1 + 1 file changed, 1 insertion(+) commit e2a657090a0b7f804f3b9f1a7735e79c62baa636 Author: Stephen Boyd Date: Fri May 1 16:09:33 2015 -0700 clk: ingenic: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Paul Burton Cc: Paul Cercueil Cc: Ralf Baechle Signed-off-by: Stephen Boyd drivers/clk/ingenic/cgu.c | 1 + 1 file changed, 1 insertion(+) commit 530b544ebfa5d0039eed9a1cd4714807629fbe84 Author: Stephen Boyd Date: Fri May 1 16:09:33 2015 -0700 clk: si570: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Guenter Roeck Acked-by: Sören Brinkmann Signed-off-by: Stephen Boyd drivers/clk/clk-si570.c | 1 + 1 file changed, 1 insertion(+) commit 67bb5408a8cf5a76a820b49bba4ab6da7acd313b Author: Stephen Boyd Date: Fri May 1 16:09:33 2015 -0700 clk: moxart: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Jonas Jensen Signed-off-by: Stephen Boyd drivers/clk/clk-moxart.c | 1 + 1 file changed, 1 insertion(+) commit a826a1a4217e207b794a0fd2bd7d1f62db240e0e Author: Stephen Boyd Date: Wed Jun 10 14:14:28 2015 -0700 clk: cdce925: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Mike Looijmans Signed-off-by: Stephen Boyd drivers/clk/clk-cdce925.c | 1 + 1 file changed, 1 insertion(+) commit 3c37311730efec287b323e0928c9cf3737ab93e2 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: Include clk.h in clk.c This file implements the clk API and so it should include clk.h directly instead of indirectly including it through clk-provider.h. Signed-off-by: Stephen Boyd drivers/clk/clk.c | 1 + 1 file changed, 1 insertion(+) commit 5402494f9b13da6d4210489d544a01fa7dc9ee14 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: zynq: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Acked-by: Sören Brinkmann Signed-off-by: Stephen Boyd drivers/clk/zynq/clkc.c | 1 + 1 file changed, 1 insertion(+) commit 1b29e60157e845869abb867df6c7164eaace88b6 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: ti: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Acked-by: Tero Kristo Signed-off-by: Stephen Boyd drivers/clk/ti/apll.c | 1 + drivers/clk/ti/clk-33xx.c | 1 + drivers/clk/ti/clk-3xxx-legacy.c | 1 + drivers/clk/ti/clk-3xxx.c | 1 + drivers/clk/ti/clk-43xx.c | 1 + drivers/clk/ti/clk-dra7-atl.c | 1 + drivers/clk/ti/clk.c | 1 + drivers/clk/ti/clockdomain.c | 1 + drivers/clk/ti/dpll.c | 1 + drivers/clk/ti/fapll.c | 1 + 10 files changed, 10 insertions(+) commit 9dfefe8c766ee2abc724e1e275ab0b32431fcd25 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: sunxi: Include clk.h and remove unused clkdev.h includes This clock provider uses the consumer API, so include clk.h explicitly. Also remove clkdev.h in files that aren't using it and include slab.h when clkdev.h was being used to implicitly include it. Cc: Chen-Yu Tsai Cc: Maxime Ripard Signed-off-by: Stephen Boyd drivers/clk/sunxi/clk-mod0.c | 3 ++- drivers/clk/sunxi/clk-sun8i-mbus.c | 2 +- drivers/clk/sunxi/clk-sun9i-core.c | 2 +- drivers/clk/sunxi/clk-sun9i-mmc.c | 3 ++- drivers/clk/sunxi/clk-sunxi.c | 2 ++ drivers/clk/sunxi/clk-usb.c | 3 ++- 6 files changed, 10 insertions(+), 5 deletions(-) commit d5f728acd90e864251139ffc59294b336cf4b382 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: st: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Gabriel Fernandez Signed-off-by: Stephen Boyd drivers/clk/st/clk-flexgen.c | 1 + drivers/clk/st/clkgen-fsyn.c | 1 + drivers/clk/st/clkgen-mux.c | 1 + drivers/clk/st/clkgen-pll.c | 1 + 4 files changed, 4 insertions(+) commit 8803609082349d97311da2e43042ed3780d53fdf Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: qcom: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Signed-off-by: Stephen Boyd drivers/clk/qcom/mmcc-msm8960.c | 1 + 1 file changed, 1 insertion(+) commit 9bd6314c2ee4a117abb8a4ad4d5f359a6b34c664 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: highbank: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Rob Herring Signed-off-by: Stephen Boyd drivers/clk/clk-highbank.c | 1 + 1 file changed, 1 insertion(+) commit d4945ab6472968f1a429ae89bf52e88676c47991 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: bcm: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Acked-by: Alex Elder Signed-off-by: Stephen Boyd drivers/clk/bcm/clk-kona.c | 1 + 1 file changed, 1 insertion(+) commit 6d31e3b22e131f5aa5c9d6407ea46fec2134f986 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: versatile: Remove clk.h and clkdev.h includes Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Also remove clkdev.h in files that aren't using it and replace them with slab.h in files that were relying on the implicit include of slab.h in clkdev.h. Reviewed-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/versatile/clk-icst.c | 5 +++-- drivers/clk/versatile/clk-impd1.c | 1 - drivers/clk/versatile/clk-realview.c | 1 - drivers/clk/versatile/clk-sp810.c | 3 ++- drivers/clk/versatile/clk-versatile.c | 2 -- 5 files changed, 5 insertions(+), 7 deletions(-) commit a162ca912cf792073b0b2450377fd1cd5d5c6cb5 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: ux500: Remove clk.h and clkdev.h includes Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Also remove clkdev.h in files that aren't using it. Acked-by: Linus Walleij Acked-by: Ulf Hansson Signed-off-by: Stephen Boyd drivers/clk/ux500/abx500-clk.c | 1 - drivers/clk/ux500/clk.h | 3 ++- drivers/clk/ux500/u8500_clk.c | 1 - drivers/clk/ux500/u8500_of_clk.c | 2 -- drivers/clk/ux500/u8540_clk.c | 1 - drivers/clk/ux500/u9540_clk.c | 2 -- 6 files changed, 2 insertions(+), 8 deletions(-) commit 584ac4e935a1f905d67c8fa3fbe8e32d384721f1 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: tegra: Properly include clk.h Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Only include clk.h in files that are using it. Also add in a clkdev.h include that was missing in a file using clkdev APIs. Cc: Peter De Schrijver Cc: Thierry Reding Signed-off-by: Stephen Boyd drivers/clk/tegra/clk-divider.c | 1 - drivers/clk/tegra/clk-periph-gate.c | 1 - drivers/clk/tegra/clk-periph.c | 1 - drivers/clk/tegra/clk-pll-out.c | 1 - drivers/clk/tegra/clk-pll.c | 2 +- drivers/clk/tegra/clk-super.c | 1 - drivers/clk/tegra/clk-tegra-audio.c | 1 - drivers/clk/tegra/clk-tegra-fixed.c | 1 - drivers/clk/tegra/clk-tegra-periph.c | 1 - drivers/clk/tegra/clk-tegra-pmc.c | 1 - drivers/clk/tegra/clk-tegra-super-gen4.c | 1 - drivers/clk/tegra/clk-tegra114.c | 2 -- drivers/clk/tegra/clk-tegra124.c | 1 - drivers/clk/tegra/clk-tegra20.c | 1 - drivers/clk/tegra/clk-tegra30.c | 1 - drivers/clk/tegra/clk.c | 1 + include/linux/clk/tegra.h | 3 ++- 17 files changed, 4 insertions(+), 17 deletions(-) commit c302e1e28078fbb31e179c48d9a990fb0e9334e4 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: spear: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Acked-by: Viresh Kumar Signed-off-by: Stephen Boyd drivers/clk/spear/spear1310_clock.c | 1 - drivers/clk/spear/spear1340_clock.c | 1 - drivers/clk/spear/spear6xx_clock.c | 1 - 3 files changed, 3 deletions(-) commit b0af24b523c21c918eb64541df4450b9da7ed195 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: socfpga: Remove clk.h and clkdev.h includes Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. The clkdev.h include isn't used either, remove it and add in slab.h to make sure things keep compiling. Acked-by: Dinh Nguyen Signed-off-by: Stephen Boyd drivers/clk/socfpga/clk-gate-a10.c | 1 + drivers/clk/socfpga/clk-gate.c | 3 +-- drivers/clk/socfpga/clk-periph-a10.c | 1 + drivers/clk/socfpga/clk-periph.c | 3 +-- drivers/clk/socfpga/clk-pll-a10.c | 1 + drivers/clk/socfpga/clk-pll.c | 3 +-- drivers/clk/socfpga/clk.h | 1 - 7 files changed, 6 insertions(+), 7 deletions(-) commit fdb94059d89aab102b4debc30e77f0b5521f8148 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: sirf: Properly include clk.h Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Move the include of clk.h into clk-common.c because that's the only file that's really using clk.h, even if it's included into the atlas6 and prima2 files. Cc: Barry Song Signed-off-by: Stephen Boyd drivers/clk/sirf/clk-atlas6.c | 1 - drivers/clk/sirf/clk-common.c | 2 ++ drivers/clk/sirf/clk-prima2.c | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) commit 6f1ed07a14a1ace5facba1e2b3995a2ef3b610cc Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: samsung: Properly include clk.h and clkdev.h Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Only include clk.h in files that are using it. The clkdev.h header isn't always used either, so remove it and add in slab.h where files were relying on it to include slab for them. Cc: Chanwoo Choi Cc: Sylwester Nawrocki Cc: Krzysztof Kozlowski Cc: Kukjin Kim Signed-off-by: Stephen Boyd drivers/clk/samsung/clk-cpu.c | 3 +++ drivers/clk/samsung/clk-exynos-audss.c | 3 ++- drivers/clk/samsung/clk-exynos-clkout.c | 2 +- drivers/clk/samsung/clk-exynos3250.c | 2 -- drivers/clk/samsung/clk-exynos4.c | 2 +- drivers/clk/samsung/clk-exynos4415.c | 2 -- drivers/clk/samsung/clk-exynos5250.c | 2 -- drivers/clk/samsung/clk-exynos5260.c | 2 -- drivers/clk/samsung/clk-exynos5410.c | 2 -- drivers/clk/samsung/clk-exynos5420.c | 3 +-- drivers/clk/samsung/clk-exynos5433.c | 2 -- drivers/clk/samsung/clk-exynos5440.c | 2 -- drivers/clk/samsung/clk-exynos7.c | 2 -- drivers/clk/samsung/clk-pll.c | 2 ++ drivers/clk/samsung/clk-s3c2410-dclk.c | 4 ++++ drivers/clk/samsung/clk-s3c2410.c | 2 -- drivers/clk/samsung/clk-s3c2412.c | 2 -- drivers/clk/samsung/clk-s3c2443.c | 2 -- drivers/clk/samsung/clk-s3c64xx.c | 3 +-- drivers/clk/samsung/clk-s5pv210-audss.c | 2 +- drivers/clk/samsung/clk-s5pv210.c | 2 -- drivers/clk/samsung/clk.c | 4 ++++ drivers/clk/samsung/clk.h | 3 ++- 23 files changed, 22 insertions(+), 33 deletions(-) commit f684ff8b67ec19f003cc894477afb20442064692 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: rockchip: Properly include clk.h Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Only include clk.h if it's actually used. Cc: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-cpu.c | 1 + drivers/clk/rockchip/clk-mmc-phase.c | 1 + drivers/clk/rockchip/clk-pll.c | 1 - drivers/clk/rockchip/clk-rk3188.c | 1 + drivers/clk/rockchip/clk.h | 4 ++-- 5 files changed, 5 insertions(+), 3 deletions(-) commit 39482a1331ca70184145456df4206405b5b729e3 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: nxp: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Acked-by: Joachim Eastwood Signed-off-by: Stephen Boyd drivers/clk/nxp/clk-lpc18xx-cgu.c | 1 - 1 file changed, 1 deletion(-) commit bb0bf354524d10097271fb26bd92a55c67c0304d Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: mxs: Include clk.h in C files that use it Clock provider drivers generally shouldn't include clk.h because it's the consumer API. The clk.h include is being included in all mxs files because it's part of mxs/clk.h even though nothing actually requires it in that file. Move the clk.h include to the C files that are actually using it and remove the clk.h include from the header file. The clkdev.h include isn't used either, so drop it too. Acked-by: Shawn Guo Signed-off-by: Stephen Boyd drivers/clk/mxs/clk-div.c | 1 - drivers/clk/mxs/clk-frac.c | 1 - drivers/clk/mxs/clk-imx23.c | 3 +-- drivers/clk/mxs/clk-imx28.c | 2 +- drivers/clk/mxs/clk-pll.c | 1 - drivers/clk/mxs/clk-ref.c | 1 - drivers/clk/mxs/clk.h | 3 ++- 7 files changed, 4 insertions(+), 8 deletions(-) commit db00c3e5953f5ff7e781d85feef1b3ae9ef13297 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: mvebu: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Only include the header if necessary. The clkdev.h include isn't used here either, so drop it and add in slab.h to keep things compiling. Cc: Boris Brezillon Cc: Thomas Petazzoni Cc: Gregory CLEMENT Cc: Jason Cooper Cc: Sebastian Hesselbarth Cc: Andrew Lunn Signed-off-by: Stephen Boyd drivers/clk/mvebu/clk-cpu.c | 3 ++- drivers/clk/mvebu/common.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 528b76976fd22d65a07e244ec8996de492941408 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: mmp: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. The clkdev.h include isn't used either, so drop it and add in slab.h to keep things compiling. Cc: Chao Xie Signed-off-by: Stephen Boyd drivers/clk/mmp/clk-apbc.c | 1 - drivers/clk/mmp/clk-apmu.c | 1 - drivers/clk/mmp/clk.c | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) commit c0eb1dfffc74d34277116842001e7677787c04cf Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: meson8b: Properly include clk.h Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Only include clk.h if it's actually used. Cc: Carlo Caione Signed-off-by: Stephen Boyd drivers/clk/meson/clk-cpu.c | 1 + drivers/clk/meson/clkc.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) commit c726639bbe23ddbfaa6ee1dd7d27175ee4488661 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: mediatek: Properly include clk.h We don't need to include clk.h in header files, just forward declare struct clk here. This leads us to a few places where the include of clk.h was missing in C files. Add them. Cc: James Liao Cc: Henry Chen Cc: Sascha Hauer Signed-off-by: Stephen Boyd drivers/clk/mediatek/clk-gate.h | 3 ++- drivers/clk/mediatek/clk-mt8135.c | 1 + drivers/clk/mediatek/clk-mt8173.c | 1 + drivers/clk/mediatek/clk-mtk.h | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) commit 059a1aa7eb1de2ccbc41a708e892c080d9e26c60 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: keystone: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Ivan Khoronzhuk Cc: Murali Karicheri Signed-off-by: Stephen Boyd drivers/clk/keystone/gate.c | 1 - drivers/clk/keystone/pll.c | 1 - 2 files changed, 2 deletions(-) commit 593438e44c8e01d3098d69d30353be655c3b27f1 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: hisilicon: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Also drop the clkdev.h include in files that aren't using it. Cc: Bintian Wang Cc: Zhangfei Gao Cc: Haojian Zhuang Signed-off-by: Stephen Boyd drivers/clk/hisilicon/clk-hi3620.c | 2 -- drivers/clk/hisilicon/clk-hip04.c | 2 -- drivers/clk/hisilicon/clk.c | 3 +-- drivers/clk/hisilicon/clkgate-separated.c | 2 -- 4 files changed, 1 insertion(+), 8 deletions(-) commit 6063b663e872faa005669d1379439dfba805a1ea Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: wm831x: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Mark Brown Signed-off-by: Stephen Boyd drivers/clk/clk-wm831x.c | 1 - 1 file changed, 1 deletion(-) commit e26684701388db6406e640ad05cbe84e5232ddb7 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: u300: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Also add in slab.h because without clkdev.h compilation of this file would fail. Reviewed-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/clk-u300.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e873473cbcb570360889415e4a5680e09fe6d031 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: twl6040: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Peter Ujfalusi Signed-off-by: Stephen Boyd drivers/clk/clk-twl6040.c | 1 - 1 file changed, 1 deletion(-) commit 608f9b6e15e70535695996c6a9cde0f3dcd02251 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: si5351: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Sebastian Hesselbarth Signed-off-by: Stephen Boyd drivers/clk/clk-si5351.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d74f864fec313868abadf8a31a4c585ec26389ca Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: rk808: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Chris Zhong Signed-off-by: Stephen Boyd drivers/clk/clk-rk808.c | 1 - 1 file changed, 1 deletion(-) commit 39a3891576496ff8e772306a9d06cbaed019dbee Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: palmas: Remove clkdev.h includes This driver includes clkdev.h even though it isn't used, so drop it. Cc: Peter Ujfalusi Cc: Nishanth Menon Signed-off-by: Stephen Boyd drivers/clk/clk-palmas.c | 1 - 1 file changed, 1 deletion(-) commit aa1a7fc4a9203d4b53d41d0e60ac774d83c666fb Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: nomadik: Remove clk.h and clkdev.h includes Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. This driver also includes clkdev.h even though it isn't used, so drop it too and add slab.h to make sure everything still compiles. Reviewed-by: Linus Walleij Signed-off-by: Stephen Boyd drivers/clk/clk-nomadik.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e715e2b1a67be39c8026cb6d77563774f989ba90 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: mux: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Signed-off-by: Stephen Boyd drivers/clk/clk-mux.c | 1 - 1 file changed, 1 deletion(-) commit 893418e40768251c62e282bcfe25ebf24c6bcb7a Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: efm32gg: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Acked-by: Uwe Kleine-König Signed-off-by: Stephen Boyd drivers/clk/clk-efm32gg.c | 1 - 1 file changed, 1 deletion(-) commit a87b6866a0ecaa88379d1eeb194f218fbfd0eaf5 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: clps711x: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Alexander Shiyan Signed-off-by: Stephen Boyd drivers/clk/clk-clps711x.c | 1 - 1 file changed, 1 deletion(-) commit fc1699c802d316d3a8fa0d4d6a09ec8e108652ce Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: cdce706: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Max Filippov Signed-off-by: Stephen Boyd drivers/clk/clk-cdce706.c | 1 + 1 file changed, 1 insertion(+) commit a1ff4588d7b225fdf96ba65f11ce33ef00ada9ac Author: Stephen Boyd Date: Fri Jun 19 14:59:11 2015 -0700 clk: axi-clkgen: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Lars-Peter Clausen Signed-off-by: Stephen Boyd drivers/clk/clk-axi-clkgen.c | 1 - 1 file changed, 1 deletion(-) commit 663724f9905818c261f0262b1a64b141dad5e3cd Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clk: i.MX: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Alexander Shiyan Cc: Sascha Hauer Cc: Shawn Guo Signed-off-by: Stephen Boyd drivers/clk/imx/clk-imx1.c | 1 - drivers/clk/imx/clk-imx21.c | 1 - drivers/clk/imx/clk-pfd.c | 1 - drivers/clk/imx/clk-pllv1.c | 1 - drivers/clk/imx/clk-pllv3.c | 1 - 5 files changed, 5 deletions(-) commit 0d1d7a5588d029f2b3b30d38c2b1d693cb49568d Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 lib/vsprintf.c: Include clk.h This file uses the clk API so it should include clk.h directly instead of indirectly including it through clk-provider.h. Acked-by: Geert Uytterhoeven Signed-off-by: Stephen Boyd lib/vsprintf.c | 1 + 1 file changed, 1 insertion(+) commit d49c699344735507a10ded79713cc5f9fa8bacf0 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 simplefb: Include clk.h This driver uses the consumer API, so include clk.h explicitly instead of impliclty through the provider API. Cc: Luc Verhaegen Cc: Hans de Goede Acked-by: Geert Uytterhoeven Cc: Maxime Ripard Cc: David Herrmann Cc: Tomi Valkeinen Signed-off-by: Stephen Boyd drivers/video/fbdev/simplefb.c | 1 + 1 file changed, 1 insertion(+) commit 887e5a91ac17927f68455d059da2f175b6fbf9d3 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 ACPI: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the includes here because these are a provider drivers. Cc: Ken Xue Cc: Mika Westerberg Cc: Rafael J. Wysocki Signed-off-by: Stephen Boyd drivers/acpi/acpi_apd.c | 1 - drivers/acpi/acpi_lpss.c | 1 - 2 files changed, 2 deletions(-) commit c0cc72efd839acd555d918febe08d91786dbea8d Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 clocksource: cadence_ttc: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Cc: Michal Simek Cc: Daniel Lezcano Signed-off-by: Stephen Boyd drivers/clocksource/cadence_ttc_timer.c | 1 - 1 file changed, 1 deletion(-) commit 0dab7ddeea12243a7bc6753d5360d46f237f76ea Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 spi: spi-pxa2xx: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Daniel Mack Cc: Haojian Zhuang Cc: Robert Jarzmik Cc: Mark Brown Signed-off-by: Stephen Boyd drivers/spi/spi-pxa2xx-pci.c | 1 - 1 file changed, 1 deletion(-) commit 10a3402415d7f6e32ca20ebb088e153fe45f807d Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 staging: clocking-wizard: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Acked-by: Sören Brinkmann Acked-by: Greg Kroah-Hartman Signed-off-by: Stephen Boyd drivers/staging/clocking-wizard/clk-xlnx-clock-wizard.c | 1 + 1 file changed, 1 insertion(+) commit d5fb48a354e756b1fcb6bf714f6b31626c698df4 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 powerpc/512x: clk: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Gerhard Sittig Cc: Scott Wood Acked-by: Anatolij Gustschin Signed-off-by: Stephen Boyd arch/powerpc/platforms/512x/clock-commonclk.c | 1 + 1 file changed, 1 insertion(+) commit 4280cf54eeec08e54da32ca61f902cca33bc26fe Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 MIPS: Alchemy: Include clk.h This clock provider uses the consumer API, so include clk.h explicitly. Cc: Manuel Lauss Acked-by: Ralf Baechle Cc: Linux-MIPS Signed-off-by: Stephen Boyd arch/mips/alchemy/common/clock.c | 1 + 1 file changed, 1 insertion(+) commit d4e14ca303e0e6aa56e1573a38ff91b8eb121600 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 arm64: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Acked-by: Catalin Marinas Cc: Will Deacon Signed-off-by: Stephen Boyd arch/arm64/kernel/setup.c | 1 - 1 file changed, 1 deletion(-) commit f5b00f6f3a05d228479b7c7bb6ec814b07d713fe Author: Stephen Boyd Date: Mon Jun 22 17:05:21 2015 -0700 ARM: OMAP2+: Include clk.h These files use the consumer API, so include clk.h explicitly. Acked-by: Tero Kristo Cc: Tony Lindgren Signed-off-by: Stephen Boyd arch/arm/mach-omap2/clock.c | 1 + arch/arm/mach-omap2/omap_hwmod.c | 1 + arch/arm/mach-omap2/pm24xx.c | 1 + 3 files changed, 3 insertions(+) commit c04868d9b8cff797d40a15beeb65125084934bd0 Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 ARM: s3c64xx: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Signed-off-by: Stephen Boyd arch/arm/mach-s3c64xx/common.c | 1 - 1 file changed, 1 deletion(-) commit db22cf9d1b6f3177c461c6cf7c10cd35b6aa88bf Author: Stephen Boyd Date: Fri Jun 19 15:00:46 2015 -0700 ARM: orion5x: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Cc: Thomas Petazzoni Signed-off-by: Stephen Boyd arch/arm/mach-orion5x/board-dt.c | 1 - 1 file changed, 1 deletion(-) commit c81c11663e1a0bbb01bd4ca688c1e95b8219647f Author: Stephen Boyd Date: Tue Jun 23 16:08:06 2015 -0700 ARM: mvebu: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Cc: Thomas Petazzoni Cc: Gregory CLEMENT Signed-off-by: Stephen Boyd arch/arm/mach-mvebu/board-v7.c | 1 - 1 file changed, 1 deletion(-) commit c76a9692f890ea777b9d2385626e4080ebad75e7 Author: Stephen Boyd Date: Tue Jun 23 16:08:06 2015 -0700 ARM: keystone: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Cc: Nishanth Menon Cc: Sekhar Nori Acked-by: Santosh Shilimkar Signed-off-by: Stephen Boyd arch/arm/mach-keystone/pm_domain.c | 1 - 1 file changed, 1 deletion(-) commit 88c724bcb0e3e09f03f4b8d84695b90bebec320f Author: Stephen Boyd Date: Tue Jun 23 16:08:06 2015 -0700 ARM: hisi: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Cc: Haojian Zhuang Cc: Wei Xu Signed-off-by: Stephen Boyd arch/arm/mach-hisi/hisilicon.c | 1 - 1 file changed, 1 deletion(-) commit 09efb0070d6d0cf6ee311dbf9216e44909490a7c Author: Stephen Boyd Date: Tue Jun 23 16:08:06 2015 -0700 ARM: at91: Remove clk-provider.h include This file doesn't use the clk provider APIs. Remove the include. Acked-by: Alexandre Belloni Cc: Boris Brezillon Cc: Nicolas Ferre Signed-off-by: Stephen Boyd arch/arm/mach-at91/at91rm9200.c | 1 - 1 file changed, 1 deletion(-) commit 8816d38d49d37e255d98d0204af2acba7094385b Author: Arnaldo Carvalho de Melo Date: Fri Jul 17 15:10:33 2015 -0300 perf strlist: Make parse_list() private It is not used anywhere, expose it when/if needed. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-f6in51stj17avhk4rv11gjgg@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/strlist.c | 2 +- tools/perf/util/strlist.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) commit d052e508a4069f0711ea68156f4b1565bf14c41c Author: Roy Spliet Date: Fri Jun 26 11:00:11 2015 +0200 mtd: nand: sunxi: Set serial access mode correctly Replaces the hard coded "always use EDO" policy with that prescribed by the ONFI 3.1 specification that EDO mode should always be used if tRC is below 30ns. Signed-off-by: Roy Spliet Acked-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/sunxi_nand.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit 9c618292dba6aa9b82e8a2e4e6fe70f54bd87a81 Author: Roy Spliet Date: Fri Jun 26 11:00:10 2015 +0200 mtd: nand: sunxi: Replace failsafe timing cfg with calculated value The TIMING_CFG register was previously statically set to a magic value (extracted from Allwinner's BSP) when initializing the NAND controller. Now that we have more details about the TIMING_CFG register layout (extracted from the A83 user manual) we can dynamically calculate the appropriate value for each NAND chip and set it when selecting the chip. Signed-off-by: Roy Spliet Acked-by: Boris Brezillon Signed-off-by: Brian Norris drivers/mtd/nand/sunxi_nand.c | 73 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 5 deletions(-) commit d3dc5430d68fb91a62d971648170b34d46ab85bc Author: Richard Fitzgerald Date: Tue Jun 23 14:32:55 2015 +0100 regmap: debugfs: Allow writes to cache state settings Allow the user to write the cache_only and cache_bypass settings. This can be useful for debugging. Since this can lead to the hardware getting out-of-sync with the cache, at least for the period that the cache state is forced, the kernel is tainted and the action is recorded in the kernel log. When disabling cache_only through debugfs a cache sync will be performed. Signed-off-by: Richard Fitzgerald Signed-off-by: Mark Brown drivers/base/regmap/regmap-debugfs.c | 90 ++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 4 deletions(-) commit 8ff9daf3c16769817d0eaf16154d9e9198ec1bda Author: Arnaldo Carvalho de Melo Date: Fri Jul 17 12:07:25 2015 -0300 perf strlist: Allow substitutions from file contents in a given directory So, if we have an strlist equal to: "file,close" And we call it as: struct strlist_config *config = { .dirname = "~/strace/groups", }; struct strlist *slist = strlist__new("file, close", &config); And we have: $ cat ~/strace/groups/file access open openat statfs Then the resulting strlist will have these contents: [ "access", "open", "openat", "statfs", "close" ] This will be used to implement strace syscall groups in 'perf trace', but can be used in some other tool, thus being implemented in 'strlist'. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-wi6l6qtomqlywwr6005jvs05@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/strlist.c | 41 ++++++++++++++++++++++++++++++++++------- tools/perf/util/strlist.h | 3 ++- 2 files changed, 36 insertions(+), 8 deletions(-) commit 0642ef6f2992eba46c41abb5ceb7d4fa14ba888e Author: Richard Fitzgerald Date: Tue Jun 23 14:32:54 2015 +0100 debugfs: Export bool read/write functions The file read/write functions for bools have no special dependencies on debugfs internals and are sufficiently non-trivial to be worth exporting so clients can re-use the implementation. Signed-off-by: Richard Fitzgerald Acked-by: Greg Kroah-Hartman Signed-off-by: Mark Brown fs/debugfs/file.c | 14 ++++++++------ include/linux/debugfs.h | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+), 6 deletions(-) commit 0db7fae2736d0db920905c1fb576ec7eab2660c8 Author: Alexey Firago Date: Tue Jun 30 12:53:46 2015 +0300 mtd: spi-nor: set SECT_4K for n25q064 SPI flash Micron n25q064 flash supports 4 KiB erase sectors. Signed-off-by: Alexey Firago Signed-off-by: Brian Norris drivers/mtd/spi-nor/spi-nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 038761dfe4ce145f0f080cc08ee43f6e0ab3ae2f Author: Alexander Stein Date: Thu Jul 2 11:37:56 2015 +0200 mtd: fsl-quadspi: Actually clear TX FIFO upon write QUADSPI_MCR_CLR_TXF_MASK is the correct mask for clearing the TX FIFO. Signed-off-by: Alexander Stein Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d9abc615ea1659b6967a00e95b1b3a7fd4079b80 Author: Cristina Opriceana Date: Fri Jul 17 18:43:42 2015 +0300 tools: iio: Send error messages to stderr This patch indends to make some cleanup and send printf error messages to stderr. The changes were performed with coccinelle for failure messages and manual for other cases, such as wrong usage messages. Signed-off-by: Cristina Opriceana Reviewed-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 39 ++++++++++++++++++--------------- tools/iio/iio_event_monitor.c | 14 ++++++------ tools/iio/iio_utils.c | 51 +++++++++++++++++++++++++------------------ tools/iio/lsiio.c | 2 +- 4 files changed, 59 insertions(+), 47 deletions(-) commit 34cbea1908fb686b037e01e5b1ab8e0e67b09ed3 Author: Cristina Opriceana Date: Mon Jul 13 16:20:11 2015 +0300 tools: iio: Add ARRAY_SIZE macro Calculation of the length of an array can be done with the ARRAY_SIZE macro to make code more abstract and remove the associated checkpatch.pl warning. Signed-off-by: Cristina Opriceana Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 2 +- tools/iio/iio_utils.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 37d38e2bcce055c3988977429dc4336c866df73d Author: Cristina Opriceana Date: Mon Jul 13 16:17:47 2015 +0300 tools: iio: Remove unnecessary braces Single statement blocks don’t need braces. Found with checkpatch.pl. Signed-off-by: Cristina Opriceana Acked-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_event_monitor.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ff1ac639b395d58bbd99ff4a36b10eebb81544a3 Author: Cristina Opriceana Date: Mon Jul 13 16:15:56 2015 +0300 tools: iio: Remove explicit NULL comparison Remove explicit NULL comparison and write it in its simpler form as recommended by checkpatch.pl. Signed-off-by: Cristina Opriceana Reviewed-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 4 ++-- tools/iio/iio_utils.c | 56 +++++++++++++++++++++++----------------------- tools/iio/lsiio.c | 10 ++++----- 3 files changed, 35 insertions(+), 35 deletions(-) commit 8ab6abfca09c1800dccb753775f6ce8ee82f50dd Author: Adriana Reus Date: Tue Jul 7 14:07:13 2015 +0300 iio: light: Add support for TXC PA12 als and proximity sensor Add support for TXC PA12203001 als and proximity sensor. Support for raw illuminance and proximity readings. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 11 + drivers/iio/light/Makefile | 1 + drivers/iio/light/pa12203001.c | 483 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 495 insertions(+) commit 94a9b7b1809f56cfaa080e70ec49b6979563a237 Author: Andreas Dannenberg Date: Thu Jul 2 17:27:58 2015 -0500 iio: light: add support for TI's opt3001 light sensor TI's opt3001 light sensor is a simple and yet powerful little device. The device provides 99% IR rejection, automatic full-scale, very low power consumption and measurements from 0.01 to 83k lux. This patch adds support for that device using the IIO framework. See http://www.ti.com/product/opt3001 for more information. Signed-off-by: Felipe Balbi Signed-off-by: Andreas Dannenberg Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 10 + drivers/iio/light/Makefile | 1 + drivers/iio/light/opt3001.c | 804 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 815 insertions(+) commit 081d974031bafb204d64de3e82f398daf1d0b899 Author: Harald Geyer Date: Tue Jul 7 13:39:31 2015 +0000 iio: dht11: Use new function ktime_get_resolution_ns() This cleans up the most ugly workaround in this driver. There are no functional changes yet in the decoding algorithm, but we improve the following things: * Get rid of spurious warning messages on systems with fast HRTIMER. * If the clock is not fast enough for decoding to work, we give up immediately. * In that case we return EAGAIN instead of EIO, so it's easier to discriminate causes of failure. Returning EAGAIN is somewhat controversial: It's technically correct as a faster clock might become available. OTOH once all clocks are enabled this is a permanent error. There is no ECLOCKTOOSLOW error code. Signed-off-by: Harald Geyer Signed-off-by: Jonathan Cameron drivers/iio/humidity/dht11.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) commit 5fbb0bc466b7b43036b1dd8c9e9166ca9e69e07a Author: Harald Geyer Date: Tue Jul 7 13:39:30 2015 +0000 iio: dht11: avoid multiple assignments to make checkpatch.pl --strict happy We just do the assignments in two steps. Signed-off-by: Harald Geyer Signed-off-by: Jonathan Cameron drivers/iio/humidity/dht11.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a7126003b6dd47c0088d952734379ef471156c5f Author: Harald Geyer Date: Tue Jul 7 13:39:29 2015 +0000 iio: dht11: add comment to make checkpatch.pl --strict happy Explain why the driver needs a mutex. Signed-off-by: Harald Geyer Signed-off-by: Jonathan Cameron drivers/iio/humidity/dht11.c | 1 + 1 file changed, 1 insertion(+) commit 889c5e9b668670c91dcd3a8f2b15a0b2086f4827 Author: Harald Geyer Date: Tue Jul 7 13:39:28 2015 +0000 iio: dht11: whitespace changes to make checkpatch.pl --strict happy * add spaces around binary operators in cases where it reduces readability * align multiline statements around opening parenthesis Reported-by: Hartmut Knaack in Message-ID: <55919E72.3010807@gmx.de> Signed-off-by: Harald Geyer Signed-off-by: Jonathan Cameron drivers/iio/humidity/dht11.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 5e9972cd6f1a69ee8a8ee8664d3e4c4ea59c0901 Author: Sanchayan Maity Date: Tue Jul 14 19:23:22 2015 +0530 iio: adc: vf610: Determine sampling frequencies by using minimum sample time The driver currently does not take into account the minimum sample time as per the Figure 6-8 Chapter 9.1.1 12-bit ADC electrical characteristics. We set a static amount of cycles instead of considering the sample time as a given value, which depends on hardware characteristics. Determine sampling frequencies by first reading the device tree property node and then calculating the required Long Sample Time Adder (LSTAdder) value, based on the ADC clock frequency and sample time value obtained from the device tree. This LSTAdder value is then used for calculating the sampling frequencies possible. In case the sample time property is not specified through the device tree, a safe default value of 1000ns is assumed. Signed-off-by: Sanchayan Maity Acked-by: Stefan Agner Acked-by: Fugang Duan Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/adc/vf610-adc.txt | 5 ++ drivers/iio/adc/vf610_adc.c | 79 ++++++++++++++++++++-- 2 files changed, 80 insertions(+), 4 deletions(-) commit f686a36b4b79782a94f07769fb1c0187d24ea8a8 Author: Andrea Galbusera Date: Tue Jul 14 15:36:21 2015 +0200 iio: adc: mcp320x: Add support for mcp3301 This adds support for Microchip's 13 bit 1 channel AD converter MCP3301 Signed-off-by: Andrea Galbusera Signed-off-by: Jonathan Cameron Documentation/devicetree/bindings/iio/adc/mcp320x.txt | 1 + drivers/iio/adc/Kconfig | 4 ++-- drivers/iio/adc/mcp320x.c | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) commit bad47ad2eef341a79ff355734147efe933618033 Author: Chris Zhong Date: Mon Jul 20 17:23:53 2015 +0800 regulator: rk808: fixed the overshoot when adjust voltage There is a overshoot in DCDC1/DCDC2, we have 2 method to workaround: 1st is use dvs pin to switch the voltage between value in BUCKn_ON_VSEL and BUCKn_DVS_VSEL. If DVS pin is inactive, the voltage of DCDC1/DCDC2 are controlled by BUCKn_ON_VSEL, when we pull dvs1/dvs2 pin to active, they would be controlled by BUCKn_DVS_VSEL. In this case, the ramp rate is same as the value programmed in BUCKn_RATE, and the fastest rate is 10mv/us. 2nd method is gradual adjustment, adjust the voltage to a target value step by step via i2c, each step is set to 100 mA. If you write the voltage directly using an i2c write the rk808 will always ramp as fast as it possibly can, about 100mv/us. Signed-off-by: Chris Zhong Reviewed-by: Doug Anderson Signed-off-by: Mark Brown drivers/regulator/rk808-regulator.c | 219 ++++++++++++++++++++++++++++++++++-- 1 file changed, 207 insertions(+), 12 deletions(-) commit 0ec5f8bd9920fc1a7d0b0d2d4876ea80665a70fd Author: Chris Zhong Date: Mon Jul 20 17:23:52 2015 +0800 regulator: rk808: add the description about dvs gpio for rk808 add the description about dvs1, dvs2, and add the example. Signed-off-by: Chris Zhong Reviewed-by: Doug Anderson Signed-off-by: Mark Brown Documentation/devicetree/bindings/mfd/rk808.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit cef1ed9c6bcf69245c0b9eb89b3f3a45049ba10c Author: Nicolas Iooss Date: Sun Jul 5 09:57:41 2015 +0800 mtd: r852: make ecc_reg 32-bit in r852_ecc_correct r852_ecc_correct() reads a 32-bit register into a 16-bit variable, ecc_reg, but this variable is later used as if it was larger. This is reported by clang when building the kernel with many warnings: drivers/mtd/nand/r852.c:512:11: error: shift count >= width of type [-Werror,-Wshift-count-overflow] ecc_reg >>= 16; ^ ~~ Fix this by making ecc_reg 32-bit, like the return type of r852_read_reg_dword(). Signed-off-by: Nicolas Iooss Signed-off-by: Brian Norris drivers/mtd/nand/r852.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 091571d071a435a517aec42c4f8c56883c5dc531 Author: akpm@linux-foundation.org Date: Fri Jul 17 15:43:46 2015 -0700 ASoC: cs4349: include gpio/consumer.h s390 allmodconfig: sound/soc/codecs/cs4349.c: In function 'cs4349_i2c_probe': sound/soc/codecs/cs4349.c:300: error: implicit declaration of function 'devm_gpiod_get_optional' sound/soc/codecs/cs4349.c:301: error: 'GPIOD_OUT_LOW' undeclared (first use in this function) sound/soc/codecs/cs4349.c:301: error: (Each undeclared identifier is reported only once sound/soc/codecs/cs4349.c:301: error: for each function it appears in.) sound/soc/codecs/cs4349.c:306: error: implicit declaration of function 'gpiod_set_value_cansleep' Signed-off-by: Andrew Morton Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 1 + 1 file changed, 1 insertion(+) commit 44251551dfca2117e42349136b871b33c8419a59 Author: Axel Lin Date: Sun Jul 19 09:15:38 2015 +0800 ASoC: cs4349: Drop platform data support The struct cs4349_platform_data should be defined in a public header in include/sound/ rather than in sound/soc/codecs folder. In additional, the platform data support is not properly handled in this driver so remove it now. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 7 +------ sound/soc/codecs/cs4349.h | 7 ------- 2 files changed, 1 insertion(+), 13 deletions(-) commit 0443de7e7e559eab7df2566d0e46940f753db51d Author: Axel Lin Date: Sun Jul 19 09:14:23 2015 +0800 ASoC: cs4349: Set .writeable_reg for cs4349_regmap The first valid register index is 1 rather than 0, and the CS4349_CHIPID is readonly. So set .writeable_reg to avoid writing to these registers. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit 4313489c25622b05adac55dbb9590fb5674c3f45 Author: Julia Lawall Date: Sun Jul 19 21:12:16 2015 +0200 ASoC: ux500: adjust devm usage The explicit call to devm_regulator_put in the probe and remove functions does not seem to be necessary. In particular, the functions prcmu_qos_remove_requirement and ux500_msp_i2s_cleanup_msp in the remove function seem to do nothing that can interfere with devm_regulator_put, making it safe to allow devm_regulator_put to occur after the end of the remove function. Convert the calls to clk_get to devm_clk_get, and remove the corresponding calls to clk_put in the probe and remove functions. Replace various gotos by direct returns, and drop unneeded labels. Signed-off-by: Julia Lawall Reviewed-by: Ulf Hansson Signed-off-by: Mark Brown sound/soc/ux500/ux500_msp_dai.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) commit da304ac37efc1900892b5067c65f0ab8acfe3955 Author: Axel Lin Date: Sun Jul 19 22:42:49 2015 +0800 ASoC: cs4349: Fix setting digital interface format Mode Control - Register 02h Digital Interface Format (DIF[2:0]) Bits 6-4 DIF2 DIF1 DIF0 Description 0 0 0 Left-Justified, up to 24-bit data 0 0 1 I²S, up to 24-bit data 0 1 0 Right-Justified, 16-bit data 0 1 1 Right-Justified, 24-bit data 1 0 0 TDM slot 0 1 0 1 TDM slot 1 1 1 0 TDM slot 2 1 1 1 TDM slot 3 The DIF_MASK is 0x70, so current code does not correctly set the DIFx setting. Fix it. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit dedae86d4da6c88ec2105e0bd038acc57c203bca Author: Lars-Peter Clausen Date: Sun Jul 19 12:15:18 2015 +0200 ASoC: cs4349: Don't use rtd->codec rtd->codec does not necessarily point to the CODEC instance for which the callback was called (e.g. for CODEC<->CODEC or multi-CODEC links). Use dai->codec instead. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit cb2510dac7e1c5ac77652bb31e8c39ce2eef8bbe Author: Lars-Peter Clausen Date: Sun Jul 19 12:15:17 2015 +0200 ASoC: cs4349: Fix suspend/resume dev_get_drvdata() will not return the snd_soc_runtime to which this CODEC is attached, so the current code will result in undefined behavior. To fix this just use regmap_update_bits(cs4349->regmap, ...) directly instead of snd_soc_update_bits(rtd->codec, ...). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 86059653ea7ca7b30ed25d6bec5807ba59a4f2e6 Author: zhengxing Date: Sun Jul 19 19:33:49 2015 +0800 ASoC: rockchip: Add machine driver for rt5645/rt5650 codec The driver is used for rockchip board using a rt5645/rt5650. Reviewed-by: Dylan Reid Signed-off-by: zhengxing Signed-off-by: Mark Brown .../devicetree/bindings/sound/rockchip-rt5645.txt | 17 ++ sound/soc/rockchip/Kconfig | 9 + sound/soc/rockchip/Makefile | 2 + sound/soc/rockchip/rockchip_rt5645.c | 225 +++++++++++++++++++++ 4 files changed, 253 insertions(+) commit 49bdb0440541ad1144ad08d5613f9a28bcd2a8dc Author: zhengxing Date: Sun Jul 19 19:33:48 2015 +0800 ASoC: rockchip: Add machine driver for max98090 codec The driver is used for rockchip board using a max98090. Reviewed-by: Dylan Reid Signed-off-by: zhengxing Signed-off-by: Mark Brown .../bindings/sound/rockchip-max98090.txt | 19 ++ sound/soc/rockchip/Kconfig | 10 + sound/soc/rockchip/Makefile | 4 + sound/soc/rockchip/rockchip_max98090.c | 236 +++++++++++++++++++++ 4 files changed, 269 insertions(+) commit f136dce45116027fec65c342fbcb5aaa900729c6 Author: Nicolas Boichat Date: Mon Jul 20 09:32:05 2015 +0800 ASoC: rt5645: Remove return value in jack detect work "ASoC: rt5645: Check if codec is initialized in workqueue handler" adds a check if codec is NULL in rt5645_irq_detection, which returns an int. However, "ASoC: rt5645: Remove irq_jack_detection function" removes that function, and moves the code in jack_detect_work, which returns void. Remove the return value to fix compilation warning. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c23b0c10f64335031781cf78fd57aae072e9372 Merge: 9fc114c f2a5ded Author: Mark Brown Date: Mon Jul 20 18:14:12 2015 +0100 Merge branch 'fix/rt5645' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rt5645 commit c57d5621d2f2dc238f4b9c4d00b2a54187a75445 Merge: 6ccfe64 52721d9 Author: Dmitry Torokhov Date: Mon Jul 20 10:08:17 2015 -0700 Merge tag 'v4.2-rc3' into next Sync up with Linux 4.2-rc3 to bring in infrastructure (OF) pieces. commit a11244c0b25b79d2a3b07df429268d66736e5b45 Author: Sandeep Paulraj Date: Tue Aug 19 15:31:54 2014 +0300 nand: davinci: add support for 4K page size nand devices It is needed for k2l keystone2 EVM which uses NAND flash with 4K page size, hence add support for 4K page size nand devices. [Brian: similar work submitted by Murali Karicheri and Hao Zhang ] Signed-off-by: Sandeep Paulraj Signed-off-by: Ivan Khoronzhuk Signed-off-by: Brian Norris drivers/mtd/nand/davinci_nand.c | 42 ++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) commit 4daa832d99871356f5fdc52372c975e40f73a15e Author: Mathias Krause Date: Mon Jul 20 18:32:53 2015 +0200 x86: Drop bogus __ref / __refdata annotations The __ref / __refdata annotations used to be needed because of referencing functions / variables annotated __cpuinit / __cpuinitdata. But those annotations vanished during the development of v3.11. Therefore most of the __ref / __refdata annotations are not needed anymore. As they may hide legitimate sections mismatches, we better get rid of them. Signed-off-by: Mathias Krause Cc: Borislav Petkov Cc: Paul Gortmaker Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1437409973-8927-1-git-send-email-minipli@googlemail.com Signed-off-by: Ingo Molnar arch/x86/kernel/acpi/boot.c | 8 +------- arch/x86/kernel/apic/x2apic_cluster.c | 2 +- arch/x86/kernel/cpu/microcode/core.c | 2 +- arch/x86/kernel/cpu/microcode/intel_early.c | 2 +- arch/x86/kernel/cpuid.c | 2 +- arch/x86/kernel/smpboot.c | 2 +- arch/x86/kernel/topology.c | 4 ++-- 7 files changed, 8 insertions(+), 14 deletions(-) commit 6ccfe64c770139675a080ee5029ded7d89d9ea0d Author: Benjamin Tissoires Date: Mon Jul 20 09:56:18 2015 -0700 Input: elan_i2c - enable ELAN0600 acpi panels ELAN0600 seems to work just fine in mouse emulation mode through i2c-hid, but to have full raw touch support we need to register it in elan_i2c.ko Reported-and-tested-by: Alessio Treglia Signed-off-by: Benjamin Tissoires Acked-by: Jiri Kosina Signed-off-by: Dmitry Torokhov drivers/hid/hid-core.c | 1 + drivers/input/mouse/elan_i2c_core.c | 1 + 2 files changed, 2 insertions(+) commit dd1b85dc446b7cfaeaa7e250d2ff2acc44a0d51d Author: Dirk Behme Date: Mon Jul 20 09:50:37 2015 -0700 Input: zforce - don't invert the interrupt GPIO Commit 2d53809594af ("Input: zforce_ts - convert to use the gpiod interface") converted this driver to use the gpiod functions. These functions take the active low property into account, so we don't have to invert the result of gpiod_get_value_cansleep(). This has been missed in that commit. Fix it. Signed-off-by: Dirk Behme Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/zforce_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb0cc3aa552642631c3a4e83deae2b5c1a1ef4fa Author: Bjorn Helgaas Date: Mon Jul 20 09:10:36 2015 -0500 iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth We check the ATS state (enabled/disabled) and fetch the PCI ATS Invalidate Queue Depth in performance-sensitive paths. It's easy to cache these, which removes dependencies on PCI. Remember the ATS enabled state. When enabling, read the queue depth once and cache it in the device_domain_info struct. This is similar to what amd_iommu.c does. Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel Acked-by: Joerg Roedel drivers/iommu/intel-iommu.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) commit 1ae25d626cfe7e11adc2c3e71d0de1f882954ef3 Author: Josh Wu Date: Mon Jul 20 17:32:05 2015 +0800 power: reset: at91: add sama5d3 reset function This patch introduces a new compatible string: "atmel,sama5d3-rstc" and new reset function for sama5d3 and later chips. As in sama5d3 or later chips, we don't have to shutdown the DDR controller before reset. Shutdown the DDR controller before reset is a workaround to avoid DDR signal driving the bus, but since sama5d3 and later chips there is no such a conflict. So in this patch: 1. the sama5d3 reset function only need to write the rstc register and return. 2. we can remove the code related with sama5d3 DDR controller as we don't use it at all. Signed-off-by: Josh Wu Acked-by: Nicolas Ferre Acked-by: Alexandre Belloni Reviewed-by: Guenter Roeck Signed-off-by: Sebastian Reichel .../devicetree/bindings/arm/atmel-at91.txt | 2 +- drivers/power/reset/at91-reset.c | 26 ++++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) commit 4a77e2183fc0260c0efc7adeccf933fef893ad5f Author: Arnaldo Carvalho de Melo Date: Mon Jul 20 12:13:34 2015 -0300 perf strlist: Make dupstr be the default and part of an extensible config parm So that we can pass more info to strlist__new() without having to change its function signature, just adding entries to the strlist_config struct with sensible defaults for when those fields are not specified. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-5uaaler4931i0s9sedxjquhq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-buildid-cache.c | 8 ++++---- tools/perf/builtin-trace.c | 2 +- tools/perf/util/build-id.c | 2 +- tools/perf/util/machine.c | 2 +- tools/perf/util/probe-event.c | 4 ++-- tools/perf/util/probe-finder.c | 2 +- tools/perf/util/strlist.c | 4 ++-- tools/perf/util/strlist.h | 6 +++++- tools/perf/util/symbol.c | 2 +- tools/perf/util/thread_map.c | 6 ++++-- 10 files changed, 22 insertions(+), 16 deletions(-) commit efc1985c8f79ee8259d19a9b6e3df6a07d063669 Author: Dinh Nguyen Date: Tue Jul 14 17:19:02 2015 -0500 ARM: dts: socfpga: use stdout-path for chosen node Use stdout-path dts property for kernel console. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga_arria10.dtsi | 5 +++++ arch/arm/boot/dts/socfpga_arria10_socdk.dtsi | 3 ++- arch/arm/boot/dts/socfpga_arria5_socdk.dts | 3 ++- arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 3 ++- arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | 3 ++- 5 files changed, 13 insertions(+), 4 deletions(-) commit 2211a658620a35f3b3eabdfa2587f46b7abf3ee7 Author: Dinh Nguyen Date: Thu Jul 16 15:48:50 2015 -0500 ARM: dts: socfpga: enable the data and instruction prefetch for the l2 cache Just in case the firmware did not enable data and instruction prefetch in the L2 cache controller, we enable it in the kernel. Signed-off-by: Dinh Nguyen arch/arm/boot/dts/socfpga.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit e10fc03c4f89e5191f0ad2a3885d476f498bf131 Author: Magnus Damm Date: Mon Jul 20 19:06:35 2015 +0900 irqchip/renesas-irqc: Make use of irq_find_mapping() Instead of locally caching the virq as domain_irq simply rely on the IRQ domain code and irq_find_mapping(). This reduces the delta between the IRQC driver and the generic chip implementation. Signed-off-by: Magnus Damm Cc: jason@lakedaemon.net Cc: geert+renesas@glider.be Cc: horms@verge.net.au Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150720100635.2552.20906.sendpatchset@little-apple Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-irqc.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 7d153751c79e84a88e8c80e82ee5293085b9081b Author: Magnus Damm Date: Mon Jul 20 19:06:25 2015 +0900 irqchip/renesas-irqc: Use linear IRQ domain Use linear IRQ domain instead of irq_domain_add_simple() that also handles non-DT cases. This reduces the delta between the IRQC code and the generic chip implementation. Signed-off-by: Magnus Damm Cc: jason@lakedaemon.net Cc: geert+renesas@glider.be Cc: horms@verge.net.au Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150720100625.2552.63939.sendpatchset@little-apple Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-irqc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 35c3f67f11849d80cc0e3cd3dd898977567c9c29 Author: Magnus Damm Date: Mon Jul 20 19:06:14 2015 +0900 irqchip/renesas-irqc: Get rid of IRQF_VALID IRQF_VALID is not needed on ARM anymore, so get rid of it. Signed-off-by: Magnus Damm Cc: jason@lakedaemon.net Cc: geert+renesas@glider.be Cc: horms@verge.net.au Cc: Magnus Damm Link: http://lkml.kernel.org/r/20150720100614.2552.86867.sendpatchset@little-apple Signed-off-by: Thomas Gleixner drivers/irqchip/irq-renesas-irqc.c | 1 - 1 file changed, 1 deletion(-) commit 1b0b7c1762679a2f8bc359da95649249dfcf4195 Author: Davidlohr Bueso Date: Wed Jul 1 13:29:48 2015 -0700 rtmutex: Delete scriptable tester No one uses this anymore, and this is not the first time the idea of replacing it with a (now possible) userspace side. Lock stealing logic was removed long ago in when the lock was granted to the highest prio. Signed-off-by: Davidlohr Bueso Cc: Darren Hart Cc: Steven Rostedt Cc: Mike Galbraith Cc: Paul E. McKenney Cc: Sebastian Andrzej Siewior Cc: Davidlohr Bueso Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1435782588-4177-2-git-send-email-dave@stgolabs.net Signed-off-by: Thomas Gleixner arch/parisc/configs/c8000_defconfig | 1 - arch/parisc/configs/generic-32bit_defconfig | 1 - arch/xtensa/configs/iss_defconfig | 1 - kernel/locking/Makefile | 1 - kernel/locking/rtmutex-tester.c | 420 --------------------- kernel/locking/rtmutex.c | 2 +- kernel/locking/rtmutex_common.h | 22 -- lib/Kconfig.debug | 6 - scripts/rt-tester/check-all.sh | 21 -- scripts/rt-tester/rt-tester.py | 218 ----------- scripts/rt-tester/t2-l1-2rt-sameprio.tst | 94 ----- scripts/rt-tester/t2-l1-pi.tst | 77 ---- scripts/rt-tester/t2-l1-signal.tst | 72 ---- scripts/rt-tester/t2-l2-2rt-deadlock.tst | 84 ----- scripts/rt-tester/t3-l1-pi-1rt.tst | 87 ----- scripts/rt-tester/t3-l1-pi-2rt.tst | 88 ----- scripts/rt-tester/t3-l1-pi-3rt.tst | 87 ----- scripts/rt-tester/t3-l1-pi-signal.tst | 93 ----- scripts/rt-tester/t3-l1-pi-steal.tst | 91 ----- scripts/rt-tester/t3-l2-pi.tst | 87 ----- scripts/rt-tester/t4-l2-pi-deboost.tst | 118 ------ .../rt-tester/t5-l4-pi-boost-deboost-setsched.tst | 178 --------- scripts/rt-tester/t5-l4-pi-boost-deboost.tst | 138 ------- 23 files changed, 1 insertion(+), 1986 deletions(-) commit ab51fbab39d864f3223e44a2600fd951df261f0b Author: Davidlohr Bueso Date: Mon Jun 29 23:26:02 2015 -0700 futex: Fault/error injection capabilities Although futexes are well known for being a royal pita, we really have very little debugging capabilities - except for relying on tglx's eye half the time. By simply making use of the existing fault-injection machinery, we can improve this situation, allowing generating artificial uaddress faults and deadlock scenarios. Of course, when this is disabled in production systems, the overhead for failure checks is practically zero -- so this is very cheap at the same time. Future work would be nice to now enhance trinity to make use of this. There is a special tunable 'ignore-private', which can filter out private futexes. Given the tsk->make_it_fail filter and this option, pi futexes can be narrowed down pretty closely. Signed-off-by: Davidlohr Bueso Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Link: http://lkml.kernel.org/r/1435645562-975-3-git-send-email-dave@stgolabs.net Signed-off-by: Thomas Gleixner Documentation/fault-injection/fault-injection.txt | 11 +++ kernel/futex.c | 89 ++++++++++++++++++++++- lib/Kconfig.debug | 7 ++ 3 files changed, 105 insertions(+), 2 deletions(-) commit 767f509ca11269c2bcd92e3972a93096f2173ac0 Author: Davidlohr Bueso Date: Mon Jun 29 23:26:01 2015 -0700 futex: Enhance comments in futex_lock_pi() for blocking paths ... serves a bit better to clarify between blocking and non-blocking code paths. Signed-off-by: Davidlohr Bueso Cc: Peter Zijlstra Cc: Darren Hart Cc: Davidlohr Bueso Link: http://lkml.kernel.org/r/1435645562-975-2-git-send-email-dave@stgolabs.net Signed-off-by: Thomas Gleixner kernel/futex.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 5a447f09a8dffc0dd7569aec614ad3613a050098 Author: Thomas Gleixner Date: Mon Apr 13 21:02:25 2015 +0000 staging: ozwpan: Fix hrtimer wreckage oz_timer_add() modifies the expiry value of an active timer, which results in data corruption. Use hrtimer_start() and remove the silly conditional. While at it use the proper helper function to convert milliseconds to ktime. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Shigekatsu Tateno Acked-by: Greg Kroah-Hartman Cc: devel@driverdev.osuosl.org Link: http://lkml.kernel.org/r/20150413210035.357448657@linutronix.de drivers/staging/ozwpan/ozproto.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) commit 87dc11220df266d7d4b6dc594b55d0729b92809d Author: Stephen Boyd Date: Wed Jul 15 11:21:40 2015 -0700 clockevents: Remove clockevents_notify() prototype This function no longer exists after commit a49b116dcb12 (clockevents: Cleanup dead cpu explicitely, 2015-04-03). Remove the prototype and the stub function. Signed-off-by: Stephen Boyd Cc: trivial@kernel.org Cc: Rafael J. Wysocki Link: http://lkml.kernel.org/r/1436984500-5425-1-git-send-email-sboyd@codeaurora.org Signed-off-by: Thomas Gleixner include/linux/clockchips.h | 3 --- 1 file changed, 3 deletions(-) commit dd92d8de833613993b337cb4ff853587e1600aef Author: Daniel Vetter Date: Mon Jul 20 10:58:21 2015 +0200 Partially revert "drm/i915: s/mdelay/msleep/" in ilk rps code This reverts commit 6adfb1ef106bfe4b5ecb8bd75c4d037741d28a48. Ironlake RPS code runs under an irqsave spinlock and hence sleeping isn't allowed. Not a this long delay while blocking irqs isn't great at all, but fixing the locking scheme is a lot more involved. So just revert for now. Cc: Ville Syrjälä Reported-by: kernel test robot Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f4c126ecaef1c08a906a2af51fb538022906f101 Author: Nik Nyby Date: Mon Jul 6 10:40:32 2015 -0400 USB: serial: ftdi_sio: Fix broken URL in comment This fixes a typo in the URL: http://zeitcontrol.de/ Signed-off-by: Nik Nyby Signed-off-by: Johan Hovold drivers/usb/serial/ftdi_sio_ids.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc3687982be0522ee39f71247187f7e4263db3b3 Author: LABBE Corentin Date: Fri Jul 17 16:39:42 2015 +0200 MAINTAINERS: Add myself as maintainer of Allwinner Security System Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu MAINTAINERS | 6 ++++++ 1 file changed, 6 insertions(+) commit 6298e948215f2a3eb8a9af5c490d025deb66f179 Author: LABBE Corentin Date: Fri Jul 17 16:39:41 2015 +0200 crypto: sunxi-ss - Add Allwinner Security System crypto accelerator Add support for the Security System included in Allwinner SoC A20. The Security System is a hardware cryptographic accelerator that support: - MD5 and SHA1 hash algorithms - AES block cipher in CBC/ECB mode with 128/196/256bits keys. - DES and 3DES block cipher in CBC/ECB mode Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu drivers/crypto/Kconfig | 17 + drivers/crypto/Makefile | 1 + drivers/crypto/sunxi-ss/Makefile | 2 + drivers/crypto/sunxi-ss/sun4i-ss-cipher.c | 542 ++++++++++++++++++++++++++++++ drivers/crypto/sunxi-ss/sun4i-ss-core.c | 403 ++++++++++++++++++++++ drivers/crypto/sunxi-ss/sun4i-ss-hash.c | 492 +++++++++++++++++++++++++++ drivers/crypto/sunxi-ss/sun4i-ss.h | 199 +++++++++++ 7 files changed, 1656 insertions(+) commit e757d5c4c367e747ae15186b753788f9c2752753 Author: LABBE Corentin Date: Fri Jul 17 16:39:40 2015 +0200 ARM: sun4i: dt: Add DT bindings documentation for SUN4I Security System This patch adds documentation for Device-Tree bindings for the Security System cryptographic accelerator driver. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu Documentation/devicetree/bindings/crypto/sun4i-ss.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 110d4e25fd28ecfa9e0b21ad58f77567fc1cade3 Author: LABBE Corentin Date: Fri Jul 17 16:39:39 2015 +0200 ARM: sun7i: dt: Add Security System to A20 SoC DTS The Security System is a hardware cryptographic accelerator that support AES/MD5/SHA1/DES/3DES/PRNG algorithms. It could be found on many Allwinner SoC. This patch enable the Security System on the Allwinner A20 SoC Device-tree. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu arch/arm/boot/dts/sun7i-a20.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit 56ba8c5814a859dd94667643a3bc22984efd1521 Author: LABBE Corentin Date: Fri Jul 17 16:39:38 2015 +0200 ARM: sun4i: dt: Add Security System to A10 SoC DTS The Security System is a hardware cryptographic accelerator that support AES/MD5/SHA1/DES/3DES/PRNG algorithms. It could be found on many Allwinner SoC. This patch enable the Security System on the Allwinner A10 SoC Device-tree. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu arch/arm/boot/dts/sun4i-a10.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) commit c1f2cd21ed5335bfcf5dd1d3a05a2a83bae14c3a Author: Tudor Ambarus Date: Fri Jul 17 16:54:54 2015 +0300 crypto: caam - fix warning in APPEND_MATH_IMM_u64 An implicit truncation is done when using a variable of 64 bits in MATH command: warning: large integer implicitly truncated to unsigned type [-Woverflow] Silence the compiler by feeding it with an explicit truncated value. Signed-off-by: Tudor Ambarus Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/desc_constr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62743a4145bb9c3fe090a48e10ddc0ebae85bfbf Author: Horia Geant? Date: Fri Jul 17 16:54:53 2015 +0300 crypto: caam - fix RNG init descriptor ret. code checking When successful, the descriptor that performs RNG initialization is allowed to return a status code of 7000_0000h, since last command in the descriptor is a JUMP HALT. Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f109674951440912b645de2761d5d851e261af98 Author: Horia Geant? Date: Fri Jul 17 16:54:52 2015 +0300 crypto: caam - fix snooping for write transactions HW coherency won't work properly for CAAM write transactions if AWCACHE is left to default (POR) value - 4'b0001. It has to be programmed to 4'b0010, i.e. AXI3 Cacheable bit set. For platforms that have HW coherency support: -PPC-based: the update has no effect; CAAM coherency already works due to the IOMMU (PAMU) driver setting the correct memory coherency attributes -ARM-based: the update fixes cache coherency issues, since IOMMU (SMMU) driver is not programmed to behave similar to PAMU Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 5 +++-- drivers/crypto/caam/regs.h | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) commit e27513eb61bae759b7d5f340cf39d60f0d15a00b Author: Alex Porosanu Date: Fri Jul 17 16:54:51 2015 +0300 crypto: caam - fix ERA property reading In order to ensure that the ERA property is properly read from DT on all platforms, of_property_read* function needs to be used. Signed-off-by: Alex Porosanu Signed-off-by: Horia Geant? Signed-off-by: Herbert Xu drivers/crypto/caam/ctrl.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 15da7b5001e498fa7dc619d4d7951f9665b071e4 Author: Boris Brezillon Date: Wed Jul 1 10:21:50 2015 +0200 pwm: Make use of pwm_get_xxx() helpers where appropriate Use the pwm_get_xxx() helpers instead of directly accessing the fields in struct pwm_device. This will allow us to smoothly move to the atomic update approach. Signed-off-by: Boris Brezillon Signed-off-by: Thierry Reding drivers/pwm/pwm-atmel.c | 2 +- drivers/pwm/pwm-bcm-kona.c | 3 ++- drivers/pwm/pwm-imx.c | 3 ++- drivers/pwm/pwm-rockchip.c | 2 +- drivers/pwm/sysfs.c | 11 ++++++----- 5 files changed, 12 insertions(+), 9 deletions(-) commit 011e76314818b6a24d5347b2d83b8a577e6aaae6 Author: Boris Brezillon Date: Wed Jul 1 10:21:49 2015 +0200 pwm: Add pwm_get_polarity() helper function Some drivers are directly accessing the ->polarity field in pwm_device. Add a helper to retrieve the current polarity so that we can easily move this field elsewhere (required to support atomic update). Signed-off-by: Boris Brezillon Signed-off-by: Thierry Reding include/linux/pwm.h | 5 +++++ 1 file changed, 5 insertions(+) commit a1cf42171a2e3c33cbc12bb037795caf0589149b Author: Boris Brezillon Date: Wed Jul 1 10:21:48 2015 +0200 pwm: Constify PWM device where possible The PWM argument is not modified in PWM property accessors, make it a const argument so that the accessors can be used from sysfs. Signed-off-by: Boris Brezillon Signed-off-by: Thierry Reding include/linux/pwm.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5c31252c4a86dc591c23f1a951edd52ad791ef0e Author: Boris Brezillon Date: Wed Jul 1 10:21:47 2015 +0200 pwm: Add the pwm_is_enabled() helper Some PWM drivers are testing the PWMF_ENABLED flag. Create a helper function to hide the logic behind enabled test. This will allow us to smoothly move from the current approach to an atomic PWM update approach. Signed-off-by: Boris Brezillon Signed-off-by: Thierry Reding drivers/pwm/core.c | 4 ++-- drivers/pwm/pwm-atmel-tcb.c | 2 +- drivers/pwm/pwm-atmel.c | 6 +++--- drivers/pwm/pwm-bcm-kona.c | 4 ++-- drivers/pwm/pwm-ep93xx.c | 4 ++-- drivers/pwm/pwm-imx.c | 2 +- drivers/pwm/pwm-mxs.c | 4 ++-- drivers/pwm/pwm-renesas-tpu.c | 2 +- drivers/pwm/pwm-tegra.c | 6 +++--- drivers/pwm/pwm-tiecap.c | 10 +++++----- drivers/pwm/pwm-tiehrpwm.c | 6 +++--- drivers/pwm/sysfs.c | 2 +- include/linux/pwm.h | 5 +++++ 13 files changed, 31 insertions(+), 26 deletions(-) commit fe6c59dc17908effd4e2caa666795b9ad984005b Merge: 52721d9 221272f Author: James Morris Date: Mon Jul 20 17:19:19 2015 +1000 Merge tag 'seccomp-next' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into next commit e317fa505dcdfa25f0e4c888f991eb7fd1562e1e Author: Eric W. Biederman Date: Sat Jul 18 10:21:14 2015 -0500 netfilter: Fix memory leak in nf_register_net_hook In the rare case that when it is a attempted to use a per network device netfilter hook and the network device does not exist the newly allocated structure can leak. Be a good citizen and free the newly allocated structure in the error handling code. Fixes: 085db2c04557 ("netfilter: Per network namespace netfilter hooks.") Reported-by: kbuild@01.org Reported-by: Dan Carpenter Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/netfilter/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7639a8c420f04ca9be87974416efb2848b0962d9 Author: Ben Goz Date: Sun Jun 7 00:15:51 2015 +0300 drm/amdkfd: Set correct doorbell packet type for Carrizo Signed-off-by: Ben Goz Reviewed-by: Yair Shachar Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 5 +++++ drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 1 + 2 files changed, 6 insertions(+) commit 3d30b28be811b0d7c0a113eab361d5e3029d6da4 Author: Oded Gabbay Date: Sat Jun 6 21:47:01 2015 +0300 drm/amdkfd: Use generic defines in new amd headers This patch makes use of the new amd headers (that are part of the new amdgpu driver), instead of private defines. Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/cik_regs.h | 11 ----------- .../drm/amd/amdkfd/kfd_device_queue_manager_cik.c | 12 ++++++++---- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 20 +++++++++++++------- 3 files changed, 21 insertions(+), 22 deletions(-) commit d7b8f73ea03923dbf7c61093743b9eb1842fa8d7 Author: Ben Goz Date: Tue Jan 6 11:35:50 2015 +0200 drm/amdkfd: Implement create_map_queues() for Carrizo Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 91 +++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 4 deletions(-) commit e1940fa4bfa32d86a771e300a3fd116c46878bf4 Author: Ben Goz Date: Tue Jan 6 11:32:13 2015 +0200 drm/amdkfd: fix runlist length calculation The MAP_QUEUES packet length for Carrizo is different than for Kaveri. Therefore, we now need to calculate the runlist length with regard to the underlying H/W. Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 914bea6329b2cbbb3586a11f90ddf026bef44348 Author: Ben Goz Date: Mon Jan 12 14:28:46 2015 +0200 drm/amdkfd: Add support for VI in DQM This patch adds support for the VI APU in the DQM module. Most of the functionality of DQM is shared between CI and VI. Therefore, only a handful of functions are required to be in the H/W-specific part of DQM. Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay .../drm/amd/amdkfd/kfd_device_queue_manager_vi.c | 103 ++++++++++++++++++++- 1 file changed, 99 insertions(+), 4 deletions(-) commit d696d536f0a97ac779d6176107ac4e96d0a2f8b9 Author: Ben Goz Date: Mon Jan 12 14:26:10 2015 +0200 drm/amdkfd: add support for VI in MQD manager This patch implements all the VI MQD manager functions. This is done in a different file as the MQD format is different between CI and VI Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/Makefile | 3 +- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 249 +++++++++++++++++++++++- 2 files changed, 248 insertions(+), 4 deletions(-) commit 2d8f1f330356f4e22cbf860af78d715715595041 Author: Ben Goz Date: Sun Jan 4 10:48:26 2015 +0200 drm/amdkfd: add CP HWS packet headers for VI Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_vi.h | 398 ++++++++++++++++++++++++ 1 file changed, 398 insertions(+) commit 123576d1440df7bfa6e2188784e8cd9dc01eea6b Author: Ben Goz Date: Mon Jan 12 14:37:24 2015 +0200 drm/amdkfd: add supported CZ devices PCI IDs to amdkfd This patch adds the PCI IDs of supported CZ devices to the supported_devices structure in amdkfd. That structure is used during the amdkfd probing stage, to check if the currently probed device is eligible to be handled by amdkfd. Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/kfd_device.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit bd72a72c3a0d3e188b08cdbbc54eb083d860e365 Author: Oded Gabbay Date: Fri Nov 21 23:27:30 2014 +0200 drm/amdkfd: Add dependency of DRM_AMDGPU to Kconfig Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/amdkfd/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ff758a12b45b0513dbe9905deba2a29b20412138 Author: Ben Goz Date: Tue Oct 7 14:43:07 2014 +0300 drm/amdgpu: Add amdgpu <--> amdkfd gfx8 interface This patch adds the gfx8 interface file between amdgpu and amdkfd. This interface file is currently in use when running on a Carrizo-based system. The interface itself is represented by a pointer to struct kfd_dev. The pointer is located inside amdgpu_device structure. All the register accesses that amdkfd need are done using this interface. This allows us to avoid direct register accesses in amdkfd proper, while also allows us to avoid locking between amdkfd and amdgpu. The single exception is the doorbells that are used in both of the drivers. However, because they are located in separate pci bar pages, the danger of sharing registers between the drivers is minimal. Having said that, we are planning to move the doorbells as well to amdgpu. Signed-off-by: Ben Goz Signed-off-by: Oded Gabbay MAINTAINERS | 2 + drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 543 ++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/vid.h | 5 + drivers/gpu/drm/amd/include/vi_structs.h | 417 +++++++++++++++++ 7 files changed, 973 insertions(+), 1 deletion(-) commit 32c22e994f44e7e5cc54b52375012311d1693b0d Author: Oded Gabbay Date: Fri Jun 12 21:38:22 2015 +0300 drm/amdgpu: add amdgpu <--> amdkfd gfx7 interface This patch adds the gfx7 interface file between amdgpu and amdkfd. This interface file mirrors (some) of the functions in radeon_kfd.c (the interface file between radeon and amdkfd). The gfx7 interface is used when it is run on a Kaveri-based system. This interface file was used for bring-up of amdkfd on amdgpu and for debugging purposes. For users who would like to run HSA on Kaveri, please use the radeon graphic driver. Note: CONFIG_DRM_AMDGPU_CIK must be selected for amdgpu to handle Kaveri. v2: removed MTYPE_NONCACHED enum definition as it is defined in another patch Signed-off-by: Oded Gabbay MAINTAINERS | 1 + drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 670 ++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/cikd.h | 6 + 5 files changed, 681 insertions(+), 1 deletion(-) commit 130e0371b7d454bb4a861253c822b9f911ad5d19 Author: Oded Gabbay Date: Fri Jun 12 21:35:14 2015 +0300 drm/amdgpu: Add H/W agnostic amdgpu <--> amdkfd interface This patch adds an interface file between amdgpu and amdkfd. This interface file is H/W agnostic, thus containing functions that operate the same for any AMD APU/GPU H/W generation. The functions in this interface mirror (some) of the functions in radeon_kfd.c (the radeon<-->amdkfd interface file). The main functions are: - amdgpu_amdkfd_init - initialize the amdkfd module - amdgpu_amdkfd_load_interface - load the H/W interface according to the currently probed device - amdgpu_amdkfd_device_probe - probe the device in amdkfd - amdgpu_amdkfd_device_init - initialize the device in amdkfd - amdgpu_amdkfd_interrupt - call the ISR of amdkfd - amdgpu_amdkfd_suspend - suspend callback from amdgpu - amdgpu_amdkfd_resume - resume callback from amdgpu This patch also modifies the relevant amdgpu files, to use this new interface. Signed-off-by: Oded Gabbay MAINTAINERS | 2 + drivers/gpu/drm/amd/amdgpu/Makefile | 4 + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 262 +++++++++++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 64 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 + drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 7 + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 7 + drivers/gpu/drm/amd/amdgpu/cik.c | 11 +- 9 files changed, 364 insertions(+), 1 deletion(-) commit 22801f76fa59870aed2c0b8a4eb6c8d6993347ae Author: Oded Gabbay Date: Mon Jan 19 16:20:21 2015 +0200 drm/radeon: Modify kgd_engine_type enum to match CZ This patch splits the KGD_ENGINE_SDMA to KGD_ENGINE_SDMA1 and KGD_ENGINE_SDMA2 to match CZ definitions. Signed-off-by: Oded Gabbay drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 3 ++- drivers/gpu/drm/radeon/radeon_kfd.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 47764c7918f5dd648ae8f6f61db1aaab1b9c09dd Author: Hartmut Knaack Date: Fri Jul 17 10:52:27 2015 +0200 iio:magnetometer:bmc150_magn: replace magic value Construct the scanmask using its descriptive axis names (as used in iio_chan_spec) instead of a 'magic' value. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 2563f7fc83d655792ec9999e2dda7a37172ae6aa Author: Jandy Gou Date: Fri Jul 17 16:34:36 2015 +0800 iio: magnetometer: mmc35240: Add DT binding doc Signed-off-by: Jandy Gou Signed-off-by: Jonathan Cameron .../devicetree/bindings/iio/magnetometer/mmc35240.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 7dbf1ea8aade8c3b2759acc96e5e709016e6ae28 Author: Jandy Gou Date: Fri Jul 17 16:34:35 2015 +0800 iio: magnetometer: mmc35240: Add DT binding Signed-off-by: Jandy Gou Acked-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/mmc35240.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 23633314e60796f860d5a0484b722557061cde7c Author: Hartmut Knaack Date: Sat Jul 18 00:56:57 2015 +0200 iio:light:acpi-als: add missing prefixes Some macros and a function were missing the acpi_als_ prefix, so add it. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/light/acpi-als.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 829aed1a6e2cbceb2d2fe0f7557dea71fb38cec6 Author: Stefan Wahren Date: Sat Jul 18 12:30:46 2015 +0000 iio: mxs-lradc: add datasheet name for every usable channel In order to provide a channel name to in kernel consumers add the datasheet names for every usable AD channel. Since the channel names differ between i.MX23 and i.MX28, we need to separate the channel specs. Signed-off-by: Stefan Wahren Reviewed-by: Marek Vasut Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 80 ++++++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 18 deletions(-) commit ae5896d48180520629655a9356737fe6dbc5e9e5 Author: Stefan Wahren Date: Sat Jul 18 12:30:45 2015 +0000 iio: mxs-lradc: reorder header includes This patch reorder the header includes alphabetically. Signed-off-by: Stefan Wahren Reviewed-by: Marek Vasut Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 3eaf20288c9e0e5a2620c4908ac215655ebf0a00 Author: Stefan Wahren Date: Sat Jul 18 12:30:44 2015 +0000 iio: mxs-lradc: remove unnecessary header includes This patch removes the unnecessary header includes. Signed-off-by: Stefan Wahren Reviewed-by: Marek Vasut Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 5 ----- 1 file changed, 5 deletions(-) commit 5723dde958582483501fc2307cf2258060151339 Author: Stefan Wahren Date: Sat Jul 18 12:30:43 2015 +0000 iio: mxs-lradc: add missing include This patch adds the missing include for mutex handling. Signed-off-by: Stefan Wahren Reviewed-by: Marek Vasut Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 1 + 1 file changed, 1 insertion(+) commit 66926d11f326355abbd4e290047a67f17731b404 Author: Stefan Wahren Date: Sat Jul 18 12:30:42 2015 +0000 iio: mxs-lradc: fix some spelling errors This patch fix some spelling errors in the comments. Signed-off-by: Stefan Wahren Reviewed-by: Marek Vasut Signed-off-by: Jonathan Cameron drivers/staging/iio/adc/mxs-lradc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 07a4257e3d758af96cf98b1e9baadeb627475b03 Author: Stefan Wahren Date: Sat Jul 18 12:30:41 2015 +0000 iio: mxs-lradc: clarify supported devices At the beginning the driver supported only i.MX28 SoC, but now the whole MXS platform. So remove any confusing comments which apply only to i.MX28. Signed-off-by: Stefan Wahren Reviewed-by: Marek Vasut Signed-off-by: Jonathan Cameron .../devicetree/bindings/staging/iio/adc/mxs-lradc.txt | 2 +- drivers/staging/iio/adc/mxs-lradc.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) commit 1dcafd3aeb0a70dbdd11b10269da2afc454e2395 Author: Cristina Opriceana Date: Sun Jul 19 01:33:55 2015 +0300 iio: Documentation: Remove bytes_per_datum attribute Remove sysfs bytes_per_datum device attribute ABI documentation since the attribute is not present anymore. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 7 ------- 1 file changed, 7 deletions(-) commit b08b338253e917be45ee19924b58dd0b1265473f Author: Axel Lin Date: Fri Jul 17 23:43:02 2015 +0800 ASoC: cs4349: Constify cs4349_regmap Signed-off-by: Axel Lin Acked-by: Tim Howe Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit dd9283e23f674281c02cd8cbf894cb3132a4e3a6 Author: Axel Lin Date: Fri Jul 17 23:38:34 2015 +0800 ASoC: cs4349: Fix max_register setting for cs4349_regmap The max_register should be the maximum valid register index rather than number of registers. Also remove unused defines. Signed-off-by: Axel Lin Acked-by: Tim Howe Signed-off-by: Mark Brown sound/soc/codecs/cs4349.c | 2 +- sound/soc/codecs/cs4349.h | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) commit 6d6db340a7e832dc18a6a95d9f9fc79d03ff959e Author: Vaishali Thakkar Date: Thu Jun 11 10:57:35 2015 +0530 ARM: pxa: Use setup_timer Use the timer API function setup_timer instead of structure field assignments to initialize a timer. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @change@ expression e1, e2, a; @@ -init_timer(&e1); +setup_timer(&e1, a, 0UL); ... when != a = e2 -e1.function = a; Signed-off-by: Vaishali Thakkar Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/sharpsl_pm.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 9754c8ef1f54bff1e1448a1a02039681a4a98fa0 Author: Vaishali Thakkar Date: Fri Jul 3 17:40:45 2015 +0530 ARM: pxa: Use module_platform_driver Use module_platform_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return platform_driver_register(&x); } @b depends on a@ identifier e, a.x; @@ -static e(...) { platform_driver_unregister(&x); } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_platform_driver; @@ -module_exit(e); +module_platform_driver(x); Signed-off-by: Vaishali Thakkar Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/tosa-bt.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 4be0856fa34ef3b0681aeec669e50c13e394f145 Author: Robert Jarzmik Date: Sat Feb 14 23:38:39 2015 +0100 ARM: pxa: transition to dmaengine phase 1 In order to slowly transition pxa to dmaengine, the legacy code will now rely on dmaengine to request a channel. This implies that PXA architecture selects DMADEVICES and PXA_DMA, which is not pretty. Yet it enables PXA drivers to be ported one by one, with part of them using dmaengine, and the other part using the legacy code. Signed-off-by: Robert Jarzmik arch/arm/mach-pxa/devices.c | 37 ++++++++++++++++++++++++++++++++++++ arch/arm/mach-pxa/pxa25x.c | 1 + arch/arm/mach-pxa/pxa27x.c | 1 + arch/arm/mach-pxa/pxa3xx.c | 1 + arch/arm/plat-pxa/dma.c | 22 ++++++++++----------- arch/arm/plat-pxa/include/plat/dma.h | 15 +++++++++++++++ 6 files changed, 66 insertions(+), 11 deletions(-) commit 2ba6c0797c8b5a9f945345ef2b9193bd47e5f18e Author: Todd Fujinaka Date: Wed Apr 29 15:23:28 2015 -0700 igb: Fix i354 88E1112 PHY on RCC boards using AutoMediaDetect e1000_check_for_link_media_swap() checks PHY page 0 for copper and PHY page 1 for "other" (fiber) link. The switch back from page 1 to page 0 happened too soon, before e1000_check_for_link_82575() is executed, and link on fiber (other) was never detected. Check for link while still on the proper PHY page. Signed-off-by: Todd Fujinaka Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/e1000_82575.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 3b7884f75f3d3f0a0191c00a083535a1dd01a5a4 Author: Fan Du Date: Wed Apr 29 10:57:41 2015 +0800 ixgbe: Don't report flow director filter's status For two reasons I want to disable this: 1. Not any part actually check the report status(Alexander Duyck) 2. To report hash value of a packet to stack, RSS -> 32bits hash value Perfect match fdir filter -> 13bits hash value Hashed-based fdir filter -> 31bits hash value fdir filter might hash on masked tuples for IP address, so it's still not desirable for usage. So for now, just stick to RSS 32bits hash value. Signed-off-by: Fan Du Suggested-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c | 2 -- 1 file changed, 2 deletions(-) commit 1e1429d6ce6e6fe38e45c960133e9c9b3c62cbc6 Author: Fan Du Date: Wed Apr 29 10:57:40 2015 +0800 ixgbevf: Set Rx hash type for ingress packets Set hash type for ingress packets according to NIC advanced receive descriptors RSS type part. Signed-off-by: Fan Du Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/defines.h | 12 ++++++++++ drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 27 +++++++++++++++++++++++ 2 files changed, 39 insertions(+) commit 7edda4b8711d58dabb55e6afec03e8177647f266 Author: Fan Du Date: Wed Apr 29 10:57:39 2015 +0800 ixgbe: Specify Rx hash type WRT Rx desc RSS type RSS could be leveraged by taking account L4 src/dst ports as ingredients, thus ingress skb Rx hash type should honor such the real configuration. Signed-off-by: Fan Du Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) commit 5505bdb54d92267a5b6f092c337bd84d247bcf49 Author: Alexander Duyck Date: Wed Apr 22 21:49:32 2015 -0700 ixgbevf: fold ixgbevf_pull_tail into ixgbevf_add_rx_frag This change folds the ixgbevf_pull_tail call into ixgbevf_add_rx_frag. The advantage to doing this is that the fragment doesn't have to be modified after it is added to the skb. Signed-off-by: Alexander Duyck Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 66 +++++++---------------- 1 file changed, 19 insertions(+), 47 deletions(-) commit f56e7bba22fad16c0d4fac996623ce1c13244f8f Author: Alexander Duyck Date: Wed Apr 22 21:49:17 2015 -0700 igb: Pull timestamp from fragment before adding it to skb This change makes it so that we pull the timestamp from the fragment before we add it to the skb. By doing this we can avoid a possible issue in which the fragment can possibly be less than IGB_RX_HDR_LEN due to the timestamp being pulled after the copybreak check. While making this change I realized we could also pull the rest of the igb_pull_tail function into igb_add_rx_frag since in the case of igb, unlike ixgbe, we are able to unmap the entire buffer before calling add_rx_frag so merging the two allows for sharing of code between the two merged functions. Reported-by: Cong Wang Signed-off-by: Alexander Duyck Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_main.c | 94 ++++++++----------------------- 1 file changed, 25 insertions(+), 69 deletions(-) commit 11b1544b5cfcc8c1ff01d1757397a6ce3c8aa85e Author: Jacob Keller Date: Wed Apr 22 14:40:37 2015 -0700 dp83640: only report generic filters in ts_info Signed-off-by: Jacob Keller Acked-by: Richard Cochran Signed-off-by: Jeff Kirsher drivers/net/phy/dp83640.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit 7415991ead78de1d340fb55d5b94d5b3287ab785 Author: Jacob Keller Date: Wed Apr 22 14:40:36 2015 -0700 siena: only report generic filters in get_ts_info CC: Solarflare linux maintainers CC: Shradha Shah Signed-off-by: Jacob Keller Acked-by: Richard Cochran Signed-off-by: Jeff Kirsher drivers/net/ethernet/sfc/siena.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 044651f58536f209f1efdcdd1ae20788cf6d05c2 Author: Jacob Keller Date: Wed Apr 22 14:40:35 2015 -0700 ixgbe: only report generic filters in get_ts_info Signed-off-by: Jacob Keller Acked-by: Richard Cochran Tested-by: Phil Schmitt Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 8 -------- 1 file changed, 8 deletions(-) commit 97aebc1b3cdfd445a0a051090f0dcc6018b6df2c Author: Jacob Keller Date: Wed Apr 22 14:40:34 2015 -0700 igb: only report generic filters in get_ts_info Signed-off-by: Jacob Keller Acked-by: Richard Cochran Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/igb/igb_ethtool.c | 4 ---- 1 file changed, 4 deletions(-) commit c583cc430cf6942548fe658aac5a39eb9f371faf Author: Jacob Keller Date: Wed Apr 22 14:40:33 2015 -0700 i40e: only report generic filters in get_ts_info Signed-off-by: Jacob Keller Acked-by: Richard Cochran Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) commit dd3950c6d7185fbf9ec78a451b18d8807f35c6f7 Author: Jacob Keller Date: Wed Apr 22 14:40:32 2015 -0700 bnx2x: only report most generic filters in get_ts_info CC: Ariel Elior Signed-off-by: Jacob Keller Acked-by: Richard Cochran Signed-off-by: Jeff Kirsher drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit 1c3b8c2fe71a5052270167a1c5786aaf0d86cf19 Author: Jacob Keller Date: Wed Apr 22 14:40:31 2015 -0700 freescale: remove incorrect copied comment The comment in question is word-for-word copied from ixgbe, and clearly has no meaning in freescale's driver. (it even says 'return an error' when the code clearly does not). Remove the comment as it is obviously incorrect and not applicable to the code as it is today. CC: Pantelis Antoniou CC: Vitaly Bordug CC: Signed-off-by: Jacob Keller Acked-by: Richard Cochran Signed-off-by: Jeff Kirsher drivers/net/ethernet/freescale/fec_ptp.c | 6 ------ 1 file changed, 6 deletions(-) commit eff3cddc222c88943ff515ae9335687c9e2cbaf6 Author: Jacob Keller Date: Wed Apr 22 14:40:30 2015 -0700 clarify implementation of ethtool's get_ts_info op This patch adds some clarification about the intended way to implement both SIOCSHWTSTAMP and ethtool's get_ts_info. The HWTSTAMP API has several Rx filters which are very specific, as well as more general filters. The specific filters really only exist to support some broken hardware which can't fully implement the generic filters. This patch adds clarification that it is okay to support the specific filters in SIOCSHWTSTAMP by upscaling them to the generic filters. In addition, update the header for ethtool_ts_info to specify that drivers ought to only report the filters they support without upscaling in this manner. Signed-off-by: Jacob Keller Acked-by: Richard Cochran Tested-by: Phil Schmitt Reviewed-by: Aaron Brown Signed-off-by: Jeff Kirsher Documentation/networking/timestamping.txt | 7 +++++++ include/uapi/linux/ethtool.h | 5 +++++ 2 files changed, 12 insertions(+) commit def56bba7a5c623fd887d1f4b4c864521d615a76 Author: Shawn Guo Date: Wed Jul 15 10:36:37 2015 +0800 input: snvs_pwrkey: use "wakeup-source" as deivce tree property name Instead of inventing a new property name, let's use "wakeup-source" to be consistent with other driver and subsystem bindings. Signed-off-by: Shawn Guo Acked-by: Dmitry Torokhov Documentation/devicetree/bindings/crypto/fsl-sec4.txt | 2 +- drivers/input/keyboard/snvs_pwrkey.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 800e3b9a68011c4124f380d50e2117523c41a843 Author: Krzysztof Kozlowski Date: Fri Jul 17 16:44:05 2015 -0700 Input: 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: Dmitry Torokhov drivers/input/keyboard/adp5589-keys.c | 1 - drivers/input/keyboard/cap11xx.c | 1 - drivers/input/keyboard/lm8333.c | 1 - drivers/input/keyboard/mcs_touchkey.c | 1 - drivers/input/keyboard/mpr121_touchkey.c | 1 - drivers/input/keyboard/qt1070.c | 1 - drivers/input/keyboard/qt2160.c | 1 - drivers/input/keyboard/tca8418_keypad.c | 1 - drivers/input/misc/adxl34x-i2c.c | 1 - drivers/input/misc/bma150.c | 1 - drivers/input/misc/cma3000_d0x_i2c.c | 1 - drivers/input/misc/drv260x.c | 1 - drivers/input/misc/drv2665.c | 1 - drivers/input/misc/drv2667.c | 1 - drivers/input/misc/gp2ap002a00f.c | 1 - drivers/input/misc/kxtj9.c | 1 - drivers/input/misc/mpu3050.c | 1 - drivers/input/misc/pcf8574_keypad.c | 1 - drivers/input/mouse/cyapa.c | 1 - drivers/input/mouse/elan_i2c_core.c | 1 - drivers/input/mouse/synaptics_i2c.c | 1 - drivers/input/touchscreen/ad7879-i2c.c | 1 - drivers/input/touchscreen/ar1021_i2c.c | 1 - drivers/input/touchscreen/atmel_mxt_ts.c | 1 - drivers/input/touchscreen/auo-pixcir-ts.c | 1 - drivers/input/touchscreen/bu21013_ts.c | 1 - drivers/input/touchscreen/chipone_icn8318.c | 1 - drivers/input/touchscreen/cy8ctmg110_ts.c | 1 - drivers/input/touchscreen/cyttsp4_i2c.c | 1 - drivers/input/touchscreen/cyttsp_i2c.c | 1 - drivers/input/touchscreen/edt-ft5x06.c | 1 - drivers/input/touchscreen/egalax_ts.c | 1 - drivers/input/touchscreen/elants_i2c.c | 1 - drivers/input/touchscreen/goodix.c | 1 - drivers/input/touchscreen/ili210x.c | 1 - drivers/input/touchscreen/max11801_ts.c | 1 - drivers/input/touchscreen/mms114.c | 1 - drivers/input/touchscreen/pixcir_i2c_ts.c | 1 - drivers/input/touchscreen/st1232.c | 1 - drivers/input/touchscreen/tsc2007.c | 1 - drivers/input/touchscreen/wacom_i2c.c | 1 - drivers/input/touchscreen/zforce_ts.c | 1 - 42 files changed, 42 deletions(-) commit 7d4938c14d239768a2e0bdd94457f405e6d35555 Author: Mars Cheng Date: Tue Jul 14 14:07:09 2015 +0800 ARM: dts: mediatek: add mt6580 basic support This adds basic chip support for Mediatek 6580. Signed-off-by: Mars Cheng Signed-off-by: Matthias Brugger arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/mt6580-evbp1.dts | 38 ++++++++++++ arch/arm/boot/dts/mt6580.dtsi | 116 +++++++++++++++++++++++++++++++++++++ 3 files changed, 155 insertions(+) commit 69a462b9532c906441ccbec52b62e4a8b5f26271 Author: Mars Cheng Date: Tue Jul 14 14:07:08 2015 +0800 Document: DT: Add bindings for mediatek MT6580 SoC Platform This adds a DT binding documentation for the MT6580 SoC from Mediatek. Signed-off-by: Mars Cheng Signed-off-by: Matthias Brugger Documentation/devicetree/bindings/arm/mediatek.txt | 4 ++++ Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt | 1 + Documentation/devicetree/bindings/serial/mtk-uart.txt | 3 ++- Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt | 6 +++++- 4 files changed, 12 insertions(+), 2 deletions(-) commit cdacbe1f91264687af956e810278030f2ab5a3d0 Author: Paul E. McKenney Date: Sat Jul 11 16:24:45 2015 -0700 rcu: Add fastpath bypassing funnel locking In the common case, there will be only one expedited grace period in the system at a given time, in which case it is not helpful to use funnel locking. This commit therefore adds a fastpath that bypasses funnel locking when the root ->exp_funnel_mutex is not held. Signed-off-by: Paul E. McKenney Documentation/RCU/trace.txt | 36 ++++++++++-------------------------- kernel/rcu/tree.c | 16 ++++++++++++++++ kernel/rcu/tree.h | 2 +- kernel/rcu/tree_trace.c | 4 ++-- 4 files changed, 29 insertions(+), 29 deletions(-) commit 32bb1c79996069ef9e4e53b428050749f9841c3f Author: Paul E. McKenney Date: Thu Jul 2 12:27:31 2015 -0700 rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS The grace-period kthread sleeps waiting to do a force-quiescent-state scan, and when awakened sets rsp->gp_state to RCU_GP_DONE_FQS. However, this is confusing because the kthread has not done the force-quiescent-state, but is instead just starting to do it. This commit therefore renames RCU_GP_DONE_FQS to RCU_GP_DOING_FQS in order to make things a bit easier on reviewers. Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- kernel/rcu/tree.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit b9a425cfcb3c473b4ca2f3dfaeaf13848f4a7976 Author: Paul E. McKenney Date: Wed Jul 1 13:50:28 2015 -0700 rcu: Pull out wait_event*() condition into helper function The condition for the wait_event_interruptible_timeout() that waits to do the next force-quiescent-state scan is a bit ornate: ((gf = READ_ONCE(rsp->gp_flags)) & RCU_GP_FLAG_FQS) || (!READ_ONCE(rnp->qsmask) && !rcu_preempt_blocked_readers_cgp(rnp)) This commit therefore pulls this condition out into a helper function and comments its component conditions. Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit 99a930b0d2b018f31474d69137f311ce3581a4c2 Author: Paul E. McKenney Date: Tue Jun 30 14:54:09 2015 -0700 documentation: Describe new expedited stall warnings Signed-off-by: Paul E. McKenney Documentation/RCU/stallwarn.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit cf3620a6c7798be3395163d3bb863ab378a6aa80 Author: Paul E. McKenney Date: Tue Jun 30 11:14:32 2015 -0700 rcu: Add stall warnings to synchronize_sched_expedited() Although synchronize_sched_expedited() historically has no RCU CPU stall warnings, the availability of the rcupdate.rcu_expedited boot parameter invalidates the old assumption that synchronize_sched()'s stall warnings would suffice. This commit therefore adds RCU CPU stall warnings to synchronize_sched_expedited(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++---- kernel/rcu/tree.h | 1 + 2 files changed, 55 insertions(+), 4 deletions(-) commit 2cd6ffafec066118365f6d7eb7a42ea16c1f032c Author: Paul E. McKenney Date: Mon Jun 29 17:06:39 2015 -0700 rcu: Extend expedited funnel locking to rcu_data structure The strictly rcu_node based funnel-locking scheme works well in many cases, but systems with CONFIG_RCU_FANOUT_LEAF=64 won't necessarily get all that much concurrency. This commit therefore extends the funnel locking into the per-CPU rcu_data structure, providing concurrency equal to the number of CPUs. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 19 ++++++++++++++++--- kernel/rcu/tree.h | 4 +++- kernel/rcu/tree_trace.c | 3 ++- 3 files changed, 21 insertions(+), 5 deletions(-) commit 704dd435ac7eaefa89fcd82fd2876b8330e00ff3 Author: Paul E. McKenney Date: Sat Jun 27 09:36:29 2015 -0700 rcu: Consolidate last open-coded expedited memory barrier One of the requirements on RCU grace periods is that if there is a causal chain of operations that starts after one grace period and ends before another grace period, then the two grace periods must be serialized. There has been (and might still be) code that relies on this, for example, certain types of reference-counting code that does a call_rcu() within an RCU callback function. This requirement is why there is an smp_mb() at the end of both synchronize_sched_expedited() and synchronize_rcu_expedited(). However, this is the only smp_mb() in these functions, so it would be nicer to consolidate it into rcu_exp_gp_seq_end(). This commit does just that. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- kernel/rcu/tree_plugin.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 4f525a528b9e75571c6bedc6202beff1ced24c32 Author: Paul E. McKenney Date: Fri Jun 26 11:20:00 2015 -0700 rcu: Apply rcu_seq operations to _rcu_barrier() The rcu_seq operations were open-coded in _rcu_barrier(), so this commit replaces the open-coding with the shiny new rcu_seq operations. Signed-off-by: Paul E. McKenney include/trace/events/rcu.h | 1 - kernel/rcu/tree.c | 72 ++++++++++++---------------------------------- kernel/rcu/tree.h | 2 +- kernel/rcu/tree_trace.c | 4 +-- 4 files changed, 22 insertions(+), 57 deletions(-) commit 29fd930940193a9a035a75a3847457160d65559a Author: Paul E. McKenney Date: Thu Jun 25 19:03:16 2015 -0700 rcu: Use funnel locking for synchronize_rcu_expedited()'s polling loop This commit gets rid of synchronize_rcu_expedited()'s mutex_trylock() polling loop in favor of the funnel-locking scheme that was abstracted from synchronize_sched_expedited(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 15 ++++++++------- kernel/rcu/tree_plugin.h | 36 ++++++++++-------------------------- 2 files changed, 18 insertions(+), 33 deletions(-) commit 7fd0ddc5bf1ab5259c80a53a01984e13befd658b Author: Paul E. McKenney Date: Thu Jun 25 16:35:03 2015 -0700 rcu: Fix synchronize_sched_expedited() type error for "s" The type of "s" has been "long" rather than the correct "unsigned long" for quite some time. This commit fixes this type error. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b09e5f8601d7e5b8d45348c9c09e1fb4109e8dc6 Author: Paul E. McKenney Date: Thu Jun 25 16:30:54 2015 -0700 rcu: Abstract funnel locking from synchronize_sched_expedited() This commit abstracts funnel locking from synchronize_sched_expedited() so that it may be used by synchronize_rcu_expedited(). Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 80 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 33 deletions(-) commit 543c6158f6dff20a741dfa492771f18ceaa1a109 Author: Paul E. McKenney Date: Thu Jun 25 15:52:50 2015 -0700 rcu: Make synchronize_rcu_expedited() use sequence-counter scheme Although synchronize_rcu_expedited() uses a sequence-counter scheme, it is based on a single increment per grace period, which means that tasks piggybacking off of concurrent grace periods may be forced to wait longer than necessary. This commit therefore applies the new sequence-count functions developed for synchronize_sched_expedited() to speed things up a bit and to consolidate the sequence-counter implementation. Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) commit 28f00767e3db933cacc3030f4d9736acd037be2c Author: Paul E. McKenney Date: Thu Jun 25 15:00:58 2015 -0700 rcu: Abstract sequence counting from synchronize_sched_expedited() This commit creates rcu_exp_gp_seq_start() and rcu_exp_gp_seq_end() to bracket an expedited grace period, rcu_exp_gp_seq_snap() to snapshot the sequence counter, and rcu_exp_gp_seq_done() to check to see if a full expedited grace period has elapsed since the snapshot. These will be applied to synchronize_rcu_expedited(). These are defined in terms of underlying rcu_seq_start(), rcu_seq_end(), rcu_seq_snap(), rcu_seq_done(), which will be applied to _rcu_barrier(). One reason that this commit doesn't use the seqcount primitives themselves is that the smp_wmb() in those primitive is insufficient due to the fact that expedited grace periods do reads as well as writes. In addition, the read-side seqcount primitives detect a potentially partial change, where the expedited primitives instead need a guaranteed full change. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 10 deletions(-) commit 3a6d7c64d78a78d279851524d39999637a549363 Author: Peter Zijlstra Date: Thu Jun 25 11:27:10 2015 -0700 rcu: Make expedited GP CPU stoppage asynchronous Sequentially stopping the CPUs slows down expedited grace periods by at least a factor of two, based on rcutorture's grace-period-per-second rate. This is a conservative measure because rcutorture uses unusually long RCU read-side critical sections and because rcutorture periodically quiesces the system in order to test RCU's ability to ramp down to and up from the idle state. This commit therefore replaces the stop_one_cpu() with stop_one_cpu_nowait(), using an atomic-counter scheme to determine when all CPUs have passed through the stopped state. Signed-off-by: Peter Zijlstra Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 31 +++++++++++++++++-------------- kernel/rcu/tree.h | 6 ++++++ kernel/rcu/tree_trace.c | 3 ++- 3 files changed, 25 insertions(+), 15 deletions(-) commit 385b73c06f6a733547d0a7714d0c4cb4c8788b88 Author: Paul E. McKenney Date: Wed Jun 24 14:20:08 2015 -0700 rcu: Get rid of synchronize_sched_expedited()'s polling loop This commit gets rid of synchronize_sched_expedited()'s mutex_trylock() polling loop in favor of a funnel-locking scheme based on the rcu_node tree. The work-done check is done at each level of the tree, allowing high-contention situations to be resolved quickly with reasonable levels of mutex contention. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 95 +++++++++++++++++++++---------------------------- kernel/rcu/tree.h | 8 +++-- kernel/rcu/tree_trace.c | 3 +- 3 files changed, 47 insertions(+), 59 deletions(-) commit d6ada2cf2f81dab8a231d0ef8fb5dec4f5ac8379 Author: Paul E. McKenney Date: Wed Jun 24 10:46:30 2015 -0700 rcu: Rework synchronize_sched_expedited() counter handling Now that synchronize_sched_expedited() have a mutex, it can use simpler work-already-done detection scheme. This commit simplifies this scheme by using something similar to the sequence-locking counter scheme. A counter is incremented before and after each grace period, so that the counter is odd in the midst of the grace period and even otherwise. So if the counter has advanced to the second even number that is greater than or equal to the snapshot, the required grace period has already happened. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 98 +++++++++++++++---------------------------------- kernel/rcu/tree.h | 9 +---- kernel/rcu/tree_trace.c | 12 ++---- 3 files changed, 36 insertions(+), 83 deletions(-) commit c190c3b16c0f56ff338df12df53c03859155951b Author: Peter Zijlstra Date: Tue Jun 23 19:03:45 2015 -0700 rcu: Switch synchronize_sched_expedited() to stop_one_cpu() The synchronize_sched_expedited() currently invokes try_stop_cpus(), which schedules the stopper kthreads on each online non-idle CPU, and waits until all those kthreads are running before letting any of them stop. This is disastrous for real-time workloads, which get hit with a preemption that is as long as the longest scheduling latency on any CPU, including any non-realtime housekeeping CPUs. This commit therefore switches to using stop_one_cpu() on each CPU in turn. This avoids inflicting the worst-case scheduling latency on the worst-case CPU onto all other CPUs, and also simplifies the code a little bit. Follow-up commits will simplify the counter-snapshotting algorithm and convert a number of the counters that are now protected by the new ->expedited_mutex to non-atomic. Signed-off-by: Peter Zijlstra [ paulmck: Kept stop_one_cpu(), dropped disabling of "guardrails". ] Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 41 ++++++++++++++--------------------------- kernel/rcu/tree.h | 1 + 2 files changed, 15 insertions(+), 27 deletions(-) commit 75c27f119b6475d95374bdad872c6938b5c26196 Author: Paul E. McKenney Date: Thu Jun 11 15:22:43 2015 -0700 rcu: Remove CONFIG_RCU_CPU_STALL_INFO The CONFIG_RCU_CPU_STALL_INFO has been default-y for a couple of releases with no complaints, so it is time to eliminate this Kconfig option entirely, so that the long-form RCU CPU stall warnings cannot be disabled. This commit does just that. Signed-off-by: Paul E. McKenney Documentation/RCU/stallwarn.txt | 12 +----- kernel/rcu/tree.h | 4 -- kernel/rcu/tree_plugin.h | 45 ---------------------- lib/Kconfig.debug | 14 ------- .../selftests/rcutorture/configs/rcu/TREE01 | 1 - .../selftests/rcutorture/configs/rcu/TREE02 | 1 - .../selftests/rcutorture/configs/rcu/TREE02-T | 1 - .../selftests/rcutorture/configs/rcu/TREE03 | 1 - .../selftests/rcutorture/configs/rcu/TREE04 | 1 - .../selftests/rcutorture/configs/rcu/TREE05 | 1 - .../selftests/rcutorture/configs/rcu/TREE06 | 1 - .../selftests/rcutorture/configs/rcu/TREE07 | 1 - .../selftests/rcutorture/configs/rcu/TREE08 | 1 - .../selftests/rcutorture/configs/rcu/TREE08-T | 1 - .../selftests/rcutorture/configs/rcu/TREE09 | 1 - .../selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 1 - 16 files changed, 2 insertions(+), 85 deletions(-) commit 9b683874504a57cfa97558d403c75e286e20c9ce Author: Paul E. McKenney Date: Thu Jun 11 14:50:22 2015 -0700 rcu: Stop disabling CPU hotplug in synchronize_rcu_expedited() The fact that tasks could be migrated from leaf to root rcu_node structures meant that synchronize_rcu_expedited() had to disable CPU hotplug. However, tasks now stay put, so this commit removes the CPU-hotplug disabling from synchronize_rcu_expedited(). Signed-off-by: Paul E. McKenney kernel/rcu/tree_plugin.h | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) commit 13bd64947f53ba8d7199922be94b6626b8e222d7 Author: Paul E. McKenney Date: Thu Jun 4 10:06:01 2015 -0700 rcu: Reset rcu_fanout_leaf if out of bounds Currently if the rcu_fanout_leaf boot parameter is out of bounds (that is, less than RCU_FANOUT_LEAF or greater than the number of bits in an unsigned long), a warning is issued and execution continues with the out-of-bounds value. This can result in all manner of failures, so this patch resets rcu_fanout_leaf to RCU_FANOUT_LEAF when an out-of-bounds condition is detected. Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 1 + 1 file changed, 1 insertion(+) commit 032dfc87225c96ec1771e5967436c4b23d1dc5d6 Author: Alexander Gordeev Date: Thu Jul 9 15:34:23 2015 +0200 rcu: Shut up bogus gcc array bounds warning Because gcc does not realize a loop would not be entered ever (i.e. in case of rcu_num_lvls == 1): for (i = 1; i < rcu_num_lvls; i++) rsp->level[i] = rsp->level[i - 1] + levelcnt[i - 1]; some compiler (pre- 5.x?) versions give a bogus warning: kernel/rcu/tree.c: In function ‘rcu_init_one.isra.55’: kernel/rcu/tree.c:4108:13: warning: array subscript is above array bounds [-Warray-bounds] rsp->level[i] = rsp->level[i - 1] + rsp->levelcnt[i - 1]; ^ Fix that warning by adding an extra item to rcu_state::level[] array. Once the bogus warning is fixed in gcc and kernel drops support of older versions, the dummy item may be removed from the array. Cc: "Paul E. McKenney" Suggested-by: "Paul E. McKenney" Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c02e0e86d3043e63236d7cd2e9e4259f12ac6991 Author: Koro Chen Date: Thu Jul 9 11:32:05 2015 +0800 arm64: dts: mt8173: Add afe device node This adds afe (audio front end) device node to the MT8173 dtsi file. Signed-off-by: Koro Chen Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 42994af63cd1aafc9289035cf621e501b08732e9 Author: Viresh Kumar Date: Fri Jun 19 17:18:05 2015 +0530 cpufreq: governor: rename cur_policy as policy Just call it 'policy', cur_policy is unnecessarily long and doesn't have any special meaning. Reviewed-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 10 +++++----- drivers/cpufreq/cpufreq_governor.c | 18 +++++++++--------- drivers/cpufreq/cpufreq_governor.h | 2 +- drivers/cpufreq/cpufreq_ondemand.c | 19 ++++++++++--------- 4 files changed, 25 insertions(+), 24 deletions(-) commit 49a9a40c1b48d24f0fd9a6b6be8a4038f47d13bf Author: Viresh Kumar Date: Fri Jun 19 17:18:04 2015 +0530 cpufreq: governor: name pointer to cpu_dbs_info as 'cdbs' It is called as 'cdbs' at most of the places and 'cpu_dbs' at others. Lets use 'cdbs' consistently for better readability. Reviewed-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 875b8508f9607b92e3ef4ece2fddf86d61351085 Author: Viresh Kumar Date: Fri Jun 19 17:18:03 2015 +0530 cpufreq: governor: Rename 'cpu_dbs_common_info' to 'cpu_dbs_info' Its not common info to all CPUs, but a structure representing common type of cpu info to both governor types. Lets drop 'common_' from its name. Reviewed-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 19 +++++++++---------- drivers/cpufreq/cpufreq_governor.h | 13 ++++++------- 2 files changed, 15 insertions(+), 17 deletions(-) commit d3574c851148266177ea9ecae10a317e6eae94de Author: Viresh Kumar Date: Fri Jun 19 17:18:02 2015 +0530 cpufreq: governor: Drop unused field 'cpu' Its not used at all, drop it. Reviewed-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_governor.c | 1 - drivers/cpufreq/cpufreq_governor.h | 1 - 2 files changed, 2 deletions(-) commit 386d46e6d5238c9648399eb1e0c418d06f4126a2 Author: Viresh Kumar Date: Fri Jun 19 17:18:01 2015 +0530 cpufreq: governor: Name delayed-work as dwork Delayed work was named as 'work' and to access work within it we do work.work. Not much readable. Rename delayed_work as 'dwork'. Reviewed-by: Preeti U Murthy Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq_conservative.c | 2 +- drivers/cpufreq/cpufreq_governor.c | 6 +++--- drivers/cpufreq/cpufreq_governor.h | 2 +- drivers/cpufreq/cpufreq_ondemand.c | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) commit f4745a92781b872455f32feb01d1dce92aefcb6c Author: Colin Ian King Date: Mon Jun 29 22:13:38 2015 +0100 PM / clk: don't return int on __pm_clk_enable() Static analysis by cppcheck found an issue that was recently introduced by commit 471f7707b6f0b1 ("PM / clock_ops: make __pm_clk_enable more generic") where a return status in ret was not being initialised and garbage being returned when ce->status >= PCE_STATUS_ERROR. The fact that ret is not being checked by the caller and that ret is only used internally __pm_clk_enable() to check if clk_enable() was OK means we can ignore returning it instead turn __pm_clk_enable() into function with a void return. Fixes: 471f7707b6f0b1 ("PM / clock_ops: make __pm_clk_enable more generic") Signed-off-by: Colin Ian King Signed-off-by: Rafael J. Wysocki drivers/base/power/clock_ops.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 1dcc3d3362b0c97e48290f7786be85b4cec2a147 Author: Rafael J. Wysocki Date: Fri Jul 17 22:54:09 2015 +0200 ACPI / bus: Move ACPI bus type registration Move the registration of the ACPI bus type to acpi_bus_init() and avoid using ACPI going forward if it fails (too many things depend on the presence of the ACPI bus type). Signed-off-by: Rafael J. Wysocki drivers/acpi/bus.c | 4 +++- drivers/acpi/scan.c | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) commit 5894b0c46e49b5ecc25f22b2d1b8232aab00ce97 Author: Rafael J. Wysocki Date: Fri Jul 17 22:54:01 2015 +0200 ACPI / scan: Move bus operations and notification routines to bus.c To reduce the size of scan.c and improve the readability of it, move code related to device notification, the definitions of the ACPI bus operations and the driver management code to drivers/acpi/bus.c. Signed-off-by: Rafael J. Wysocki drivers/acpi/bus.c | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/scan.c | 183 --------------------------------------------------- 2 files changed, 184 insertions(+), 183 deletions(-) commit 68c6b148daa6e45a85b31ef60ed9c9bfd556fff0 Author: Rafael J. Wysocki Date: Fri Jul 17 22:53:52 2015 +0200 ACPI / scan: Move device matching code to bus.c To reduce the size of scan.c and improve the readability of it, move code related device matching into drivers/acpi/bus.c. Signed-off-by: Rafael J. Wysocki drivers/acpi/bus.c | 194 ++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/scan.c | 189 -------------------------------------------------- 2 files changed, 194 insertions(+), 189 deletions(-) commit c2efefb33abfb245395199137ece3c1e3df47f51 Author: Rafael J. Wysocki Date: Fri Jul 17 22:53:43 2015 +0200 ACPI / scan: Move sysfs-related device code to a separate file To reduce the size of scan.c and improve the readability of it, move all code related to device sysfs, modalias creation etc. to a new file called device_sysfs.c. Signed-off-by: Rafael J. Wysocki drivers/acpi/Makefile | 2 +- drivers/acpi/device_sysfs.c | 521 ++++++++++++++++++++++++++++++++++++++++++++ drivers/acpi/internal.h | 9 + drivers/acpi/scan.c | 483 +--------------------------------------- 4 files changed, 532 insertions(+), 483 deletions(-) commit e0548f1979bfee900fb0671a5dd3a2f217dce5df Author: Daniel Vetter Date: Fri Jul 17 22:24:32 2015 +0200 drm/i915: Update DRIVER_DATE to 20150717 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6de52c15132f6b86030bf3159020e3314ec14952 Author: kbuild test robot Date: Fri Jul 17 21:37:09 2015 +0800 pinctrl: pinconf: pinconf_show_config() can be static Signed-off-by: Fengguang Wu Signed-off-by: Linus Walleij drivers/pinctrl/pinconf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eeef97b182fcbd4e32803be4f0b369d51e4c8535 Author: Thomas Gleixner Date: Mon Jul 13 01:55:27 2015 +0200 pinctrl/sunxi: Prepare sunxi_pinctrl_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/sunxi/pinctrl-sunxi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3b0d1561ea5787a40b2f014d4f3dc48a575c3675 Author: Thomas Gleixner Date: Mon Jul 13 01:54:35 2015 +0200 pinctrl/sirf: Prepare xxx_gpio-handle_irq for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/sirf/pinctrl-atlas7.c | 5 +++-- drivers/pinctrl/sirf/pinctrl-sirf.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) commit d1800c234703465b1f0b75aba51e27d7a3f47060 Author: Thomas Gleixner Date: Mon Jul 13 01:53:06 2015 +0200 pinctrl/qcom/msm: Prepare msm_gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/qcom/pinctrl-msm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 415f748c8658033d37af520dfa321a9413b7d665 Author: Thomas Gleixner Date: Mon Jul 13 01:52:00 2015 +0200 pinctrl/rockchip: Prepare rockchip_irq_demux for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-rockchip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f43ebaf126d3f4b869ba5bcfb11a00f33f0892cf Author: Thomas Gleixner Date: Mon Jul 13 01:50:50 2015 +0200 pinctrl/pistachio: Prepare pistachio_gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-pistachio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit fc02a46938fa2dd2494e20ca7b81c687bd027df4 Author: Thomas Gleixner Date: Mon Jul 13 01:50:02 2015 +0200 pinctrl/coh901: Prepare u300_gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-coh901.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fa00fecc16acd80b455f14803ad35195cdcef65d Author: Thomas Gleixner Date: Mon Jul 13 01:48:51 2015 +0200 pinctrl/amd: Prepare amd_gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij drivers/pinctrl/pinctrl-amd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5663bb27dec1a2bfaf9d92e3685834b91a36a5a3 Author: Jiang Liu Date: Thu Jun 4 12:13:16 2015 +0800 pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org Signed-off-by: Thomas Gleixner drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +- drivers/pinctrl/intel/pinctrl-intel.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++-- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 12 +++++------- drivers/pinctrl/pinctrl-amd.c | 2 +- drivers/pinctrl/pinctrl-at91.c | 2 +- drivers/pinctrl/pinctrl-coh901.c | 4 ++-- drivers/pinctrl/pinctrl-rockchip.c | 4 ++-- drivers/pinctrl/pinctrl-single.c | 2 +- drivers/pinctrl/pinctrl-st.c | 6 +++--- drivers/pinctrl/qcom/pinctrl-msm.c | 2 +- drivers/pinctrl/samsung/pinctrl-exynos.c | 8 ++++---- drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 18 +++++++++--------- drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 22 ++++++++++------------ drivers/pinctrl/sirf/pinctrl-sirf.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 4 ++-- 16 files changed, 46 insertions(+), 50 deletions(-) commit f66eb498ff131d52f9c7b73f0a25a5e3b9095528 Author: Thomas Gleixner Date: Tue Jun 23 15:52:57 2015 +0200 pinctrl/samsung: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 8 ++++---- drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) commit 40ec168ace3b963ddf768919ce96461ed885f9c8 Author: Thomas Gleixner Date: Tue Jun 23 15:52:57 2015 +0200 pinctrl/exynos: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/samsung/pinctrl-exynos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 34c0ad84f316e19f06af3c2764fe20cac110d985 Author: Thomas Gleixner Date: Tue Jun 23 15:52:51 2015 +0200 pinctrl/qcom: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2dbf1bc5a29c5912679d687d2a826f201e75e89d Author: Thomas Gleixner Date: Tue Jun 23 15:52:50 2015 +0200 pinctrl/rockchip: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-rockchip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c639845bcb87df4abffab94d72bd165d203c34a1 Author: Thomas Gleixner Date: Tue Jun 23 15:52:49 2015 +0200 pinctrl/at91: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-at91.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9d8293147e8a09ac42018cfeb672cc0a3b90f65b Author: Thomas Gleixner Date: Tue Jun 23 15:52:47 2015 +0200 pinctrl/amd: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-amd.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e0d6a2c6cefc50f123a2386686738820d9a088c6 Author: Thomas Gleixner Date: Tue Jun 23 15:52:47 2015 +0200 pinctrl/adi2: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and update was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-adi2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fc756bcd6aadbc59fa7142521729c8d38096ef9c Author: Thomas Gleixner Date: Tue Jun 23 15:52:45 2015 +0200 pinctrl/intel: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/intel/pinctrl-intel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a4e3f7830fb742039c2c24535af931df3d6d2124 Author: Thomas Gleixner Date: Tue Jun 23 15:52:44 2015 +0200 pinctrl/cherryview: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f3a085b4174e5806e2e6543323f9a70435ca0098 Author: Thomas Gleixner Date: Tue Jun 23 15:52:44 2015 +0200 pinctrl/baytrail: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/intel/pinctrl-baytrail.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1aa74fd0bb2cc344c18a625fa1d8e75c00b9bbf8 Author: Thomas Gleixner Date: Tue Jun 23 15:52:41 2015 +0200 pinctrl/bcm2835: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/bcm/pinctrl-bcm2835.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c21f7849f126570c0bb1ececbb3ddba7b20cfc03 Author: Thomas Gleixner Date: Sun Jun 21 21:11:07 2015 +0200 pinctrl/exynos: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/samsung/pinctrl-exynos.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 20d5d142a645600f28cf42b8e3336f7309897b1e Author: Thomas Gleixner Date: Sun Jun 21 21:11:06 2015 +0200 pinctrl: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-single.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 03051bc242209f7130aec42d1a6ecb3be9f8f93b Author: Thomas Gleixner Date: Sun Jun 21 21:11:06 2015 +0200 pinctrl/rockchip: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org drivers/pinctrl/pinctrl-rockchip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8f1338cd80648adf5434798f5393ad7c55d10848 Author: Timur Tabi Date: Wed Jul 15 11:47:14 2015 -0500 pinctrl: add support for Qualcomm Technologies QDF2xxx ARM64 SoCs Add the pinctrl driver for the Qualcomm Technologies QDF2xxx ARM64 SoCs, which uses the Qualcomm Technologies TLMM pinctrl/gpio device. This driver is probed via ACPI and uses the pinctrl-msm.c backend driver. This driver is intended to be used only an ACPI-enabled system. As such, UEFI will handle all pin control configuration, so this driver does not provide pin control functions. It is effectively a GPIO-only driver. Signed-off-by: Timur Tabi Reviewed-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/Kconfig | 8 +++ drivers/pinctrl/qcom/Makefile | 1 + drivers/pinctrl/qcom/pinctrl-qdf2xxx.c | 122 +++++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+) commit b4c45fe974bc5fa6240a729ea1f77db8b56d132a Author: Bjorn Andersson Date: Tue Jul 14 23:40:35 2015 -0700 pinctrl: qcom: ssbi: Family A gpio & mpp drivers This introduces pinctrl drivers for gpio and mpp blocks found in family A PMICs. Tested-by: Srinivas Kandagatla Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 5 + drivers/pinctrl/qcom/Kconfig | 12 + drivers/pinctrl/qcom/Makefile | 2 + drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 791 ++++++++++++++++++ drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 882 +++++++++++++++++++++ include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 51 ++ 6 files changed, 1743 insertions(+) commit d57b1d2860a5035288f3630d126646089f71984d Author: Sascha Hauer Date: Tue Jul 7 14:45:13 2015 +0200 ARM: dts: mediatek mt8135: Use real UART clocks We used to provide dummy clocks for the UART. Now that we have common clock support we can provide the real clocks to the UART. Signed-off-by: Sascha Hauer Signed-off-by: Matthias Brugger arch/arm/boot/dts/mt8135.dtsi | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit aada7d5298a78b03dfdf686e9c88a99e35ccc414 Author: Sascha Hauer Date: Tue Jul 7 14:45:12 2015 +0200 ARM: dts: mt8135-evbp1: Add PMIC support The MT8135 eval board contains a MT6397 PMIC. This adds the corresponding device node to the dts file. Signed-off-by: Sascha Hauer Signed-off-by: Matthias Brugger arch/arm/boot/dts/mt8135-evbp1.dts | 193 +++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) commit 8dd29d28ac83891b2526d8aeec755c3ac49aa138 Author: Sascha Hauer Date: Tue Jul 7 14:45:11 2015 +0200 ARM: dts: mt8135: Add pmic wrapper nodes This adds the pmic wrapper node to the MediaTek MT8135 dtsi file. This unit is used to access the PMIC on MediaTek boards. Signed-off-by: Sascha Hauer Signed-off-by: Matthias Brugger arch/arm/boot/dts/mt8135.dtsi | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 3cc17a5c262c500328965ca5d9c3aa826f0815f5 Author: James Liao Date: Tue Jul 7 14:45:10 2015 +0200 ARM: dts: mediatek: Enable clock support for Mediatek MT8135. This patch adds MT8135 clock controllers into device tree. Signed-off-by: James Liao Signed-off-by: Henry Chen Signed-off-by: Sascha Hauer Signed-off-by: Matthias Brugger arch/arm/boot/dts/mt8135.dtsi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 41a5fefeff21bb08438383c0a6b5a06045775969 Merge: c418a84 8019ff6 Author: Mark Brown Date: Fri Jul 17 19:32:04 2015 +0100 Merge tag 'regmap-seq-delay-api' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into asoc-reg-default regmap: Create a new struct reg_sequence for register sequences In order to allow us to start adding extra annotations for sequences without bloating register default tables duplicate the structure under the new name reg_sequence and update the APIs to use that instead of reg_default. Conflicts: sound/soc/codecs/da7210.c sound/soc/codecs/rt5651.c sound/soc/codecs/wm8993.c commit 54e7ad47c94d26614acb4fcc577a79b3347c2d86 Author: Uwe Kleine-König Date: Thu Jul 16 21:35:28 2015 +0200 spi: mpc512x-psc: adapt mpc5121-psc document to reality The drivers support MPC5125 additionally to MPC5121, and there is an spi mode that is also supported. Additionally some minor corrections are done. Signed-off-by: Uwe Kleine-König Signed-off-by: Mark Brown .../bindings/powerpc/fsl/mpc5121-psc.txt | 24 ++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) commit 8bf960985dfc9fcb231a07dc3102ed828f66fe81 Author: Uwe Kleine-König Date: Tue Jul 14 11:19:56 2015 +0200 spi: mpc512x-psc: add support for Freescale MPC5125 The register layout of the PSC devices differ between MPC5121 and MPC5125, but the registers are named nearly identical and their purpose is similar enough ("freescale identical") such that substituting mpc52xx_psc by mpc5125_psc is nearly enough to make the driver work on MPC5125. To keep supporting MPC5121 this patch introduces a cpp macro to select the right struct that defines the register layout. Signed-off-by: Uwe Kleine-König Signed-off-by: Mark Brown arch/powerpc/include/asm/mpc52xx_psc.h | 5 ++- drivers/spi/spi-mpc512x-psc.c | 70 +++++++++++++++++++++++----------- 2 files changed, 51 insertions(+), 24 deletions(-) commit 70fb10529f61c31c26397a02091177bedd23217d Author: Kuninori Morimoto Date: Wed Jul 15 07:17:36 2015 +0000 ASoC: rsnd: add MIX (Mixer) support This patch adds MIX (Mixer) initial support for rsnd driver. It is assuming that this MIX is used via DPCM. This is sample code for playback. CPU0 : [MEM] -> [SRC1] -> [CTU02] -+ | +-> [MIX0] -> [DVC0] -> [SSI0] | CPU1 : [MEM] -> [SRC2] -> [CTU03] -+ sound { compatible = "renesas,rsrc-card"; ... cpu@0 { sound-dai = <&rcar_sound 0>; }; cpu@1 { sound-dai = <&rcar_sound 1>; }; codec { ... }; }; rcar_sound { ... rcar_sound,dai { dai0 { playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; }; dai1 { playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; }; }; }; Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown .../devicetree/bindings/sound/renesas,rsnd.txt | 8 + include/sound/rcar_snd.h | 7 + sound/soc/sh/rcar/Makefile | 2 +- sound/soc/sh/rcar/core.c | 85 +++++++-- sound/soc/sh/rcar/dma.c | 5 + sound/soc/sh/rcar/gen.c | 10 ++ sound/soc/sh/rcar/mix.c | 200 +++++++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 29 +++ 8 files changed, 333 insertions(+), 13 deletions(-) commit 9269e3c3cfac277a49b485e27ac6850f9a11a259 Author: Kuninori Morimoto Date: Wed Jul 15 07:17:17 2015 +0000 ASoC: rsnd: add CTU (Channel Transfer Unit) prototype support This patch adds CTU (Channel Transfer Unit) support for rsnd driver. But, it does nothing to data at this point, but is required for MIX support. CTU design is a little different from other IPs (CTU0 is including CTU00 - CTU03, and CTU1 is including CTU10 - CTU13, these have different register mapping) We need to care about it on this driver. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown .../devicetree/bindings/sound/renesas,rsnd.txt | 14 ++ include/sound/rcar_snd.h | 7 + sound/soc/sh/rcar/Makefile | 2 +- sound/soc/sh/rcar/core.c | 12 +- sound/soc/sh/rcar/ctu.c | 171 +++++++++++++++++++++ sound/soc/sh/rcar/dma.c | 13 +- sound/soc/sh/rcar/gen.c | 2 + sound/soc/sh/rcar/rsnd.h | 21 +++ 8 files changed, 236 insertions(+), 6 deletions(-) commit 7dfb49194557ccf27ab99c8c04c021320e7ae458 Author: Kuninori Morimoto Date: Wed Jul 15 07:16:56 2015 +0000 ASoC: rsnd: update Audio DMA path search method Current rsnd driver is assuming Audio DMAC / Audio DMAC peri peri are used from SSI/SSIU/SRC/DVC. But we will add CTU/MIX to this driver. Then, current DMA path searching method is not understandable, and good enough for this purpose. This patch update DMA path search method, more simply. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 88 +++++++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 35 deletions(-) commit dc606e05468fc5e3b125bffdd54253f853bfbb8e Author: Nariman Poushin Date: Fri Jul 17 15:11:10 2015 +0100 ASoC: wm5110: Use reg_sequence for multi_reg_write/register_patch Introduced by: commit 8019ff6cfc04 ("regmap: Use reg_sequence for multi_reg_write / register_patch") Interacting with: commit d1acd31883d7 ("ASoC: wm5110: Add special DRE on/off handling for the headphone path") Signed-off-by: Nariman Poushin Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit da7b33739ebefca48259e4741376b9c77015d9d0 Merge: d1acd31 8019ff6 Author: Mark Brown Date: Fri Jul 17 18:57:41 2015 +0100 Merge tag 'regmap-seq-delay-api' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into asoc-wm5110 regmap: Create a new struct reg_sequence for register sequences In order to allow us to start adding extra annotations for sequences without bloating register default tables duplicate the structure under the new name reg_sequence and update the APIs to use that instead of reg_default. commit 18eb5e9fb2936cb5d4b6899a102e97d84547f2f5 Author: Joachim Eastwood Date: Mon Jul 13 23:20:12 2015 +0200 doc: dt: add documentation for pl172 memory bindings Add documentation for configuration and timing setup of static memory devices on the ARM PL172 controller. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson .../bindings/memory-controllers/arm,pl172.txt | 125 +++++++++++++++++++++ 1 file changed, 125 insertions(+) commit 17c50b700c3b46fe85e96caa1d0fc5940cc276d4 Author: Joachim Eastwood Date: Mon Jul 13 23:20:11 2015 +0200 memory: add ARM PL172 MultiPort Memory Controller driver This driver makes it possible to configure the static memory chip selects on the ARM PL172 MultiPort Memory Controller from a set of properties in DT. Configuration of dynamic memory is not supported and is left to the boot loader. The intended usage is to setup timing and configuration for static memory devices like NAND and NOR Flash before they are probed by a driver. Signed-off-by: Joachim Eastwood Signed-off-by: Olof Johansson drivers/memory/Kconfig | 8 ++ drivers/memory/Makefile | 1 + drivers/memory/pl172.c | 302 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 311 insertions(+) commit af3761246c18f8d4b2c5b6b7acb2cfce911b8530 Merge: fb61a92 4863dcd Author: Olof Johansson Date: Fri Jul 17 10:37:26 2015 -0700 Merge tag 'v4.3-rockchip32-dts1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt Merge "Rockchip dts changes for 4.3, part1" from Heiko Stuebner: This adds the board for the Netxeon R89 used in different TV-boxes and the initial support for two Chromebooks from the veyron family. Additionally a non-critical fix for the watchdog irq on rk3288, addition of the gmac reset line, a ramp delay for the cpu regulator on the firefly board and cpu affinity for the arm-pmu spi irqs. * tag 'v4.3-rockchip32-dts1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add rk3288 arm-pmu irq affinity dt-bindings: document rk3368 R88 board from Rockchip ARM: dts: rockchip: add missing device_type = "memory" to boards ARM: dts: rockchip: add veyron-pinky board ARM: dts: rockchip: add veyron-jerry board ARM: dts: rockchip: add shared rk3288-veyron files ARM: dts: Add sbs-battery dts fragment used by chromebooks ARM: dts: rockchip: add Netxeon R89 board dt-bindings: add vendor prefix for Netxeon Technology ARM: dts: rockchip: fix rk3288 watchdog irq ARM: dts: rockchip: Add ramp delay for vdd_cpu in firefly board dts ARM: dts: rockchip: Add STMMAC reset signal in GMAC interface for rk3288 Signed-off-by: Olof Johansson commit d7030a08f6b05b3d146601b1f33595e2f5585117 Merge: bc0195a cb8cc37 Author: Olof Johansson Date: Fri Jul 17 10:36:32 2015 -0700 Merge tag 'v4.3-rockchip32-soc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc Merge "Rockchip soc changes for 4.3, part1" from Heiko Stuebner: Some suspend improvements enabling the possibility to wakeup from usbphy events and a rework of how cpu cores are brought up and down, as it was possible to produce lockups when hammering the cpu hotplug functions. * tag 'v4.3-rockchip32-soc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: rockchip: fix broken build ARM: rockchip: remove some useless macro in pm.h ARM: rockchip: add support holding 24Mhz osc during suspend ARM: rockchip: fix the SMP code style ARM: rockchip: ensure CPU to enter WFI/WFE state ARM: rockchip: fix the CPU soft reset ARM: rockchip: restore dapswjdp after suspend Signed-off-by: Olof Johansson commit b790c2cab5ca641804c2e48c7506e166fff5a442 Author: Heiko Stübner Date: Fri Jul 17 00:34:53 2015 +0200 arm64: dts: add Rockchip rk3368 core dtsi and board dts for the r88 board In terms of peripherals the rk3368 is quite similar to the rk3288, which makes it possible to have a lot basic components working in the first go. More to follow once I tracked down all the tiny differences that still exist in some parts. With these dts files, the R88 board is able to boot from an attached usb device and most likely from its emmc too, if the emmc uses a standard partition table instead of Rockchip's own one - the emmc itself is detected correctly. Signed-off-by: Heiko Stuebner Signed-off-by: Olof Johansson arch/arm64/boot/dts/Makefile | 1 + arch/arm64/boot/dts/rockchip/Makefile | 5 + arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 354 +++++++++++ arch/arm64/boot/dts/rockchip/rk3368.dtsi | 900 ++++++++++++++++++++++++++++ 4 files changed, 1260 insertions(+) commit ee0ee14ebf3a15bb1d189a4e80f0dea084faad5f Merge: c425b5c 3536c97 Author: Olof Johansson Date: Fri Jul 17 10:34:58 2015 -0700 Merge branch 'depends/clk-rk3368' into next/arm64 Merge in dependent stable branch with clk driver for RK3368, needed for the dt binding header files. * depends/clk-rk3368: clk: rockchip: add rk3368 clock controller clk: rockchip: add missing include guards clk: rockchip: add dt-binding header for rk3368 dt-bindings: add documentation of rk3668 clock controller clk: rockchip: define the inverters of rk3066/rk3188 and rk3288 clk: rockchip: fix issues in the mmc-phase clock clk: rockchip: add support for phase inverters clk: rockchip: add COMPOSITE_NOGATE_DIVTBL variant clk: rockchip: protect register macros against multipart values clk: rockchip: fix faulty vip parent name on rk3288 clk: rockchip: rk3288: add CLK_SET_RATE_PARENT to sclk_mac Signed-off-by: Olof Johansson commit c425b5c9bc31134e212b75c0d61b971ccf935846 Author: Heiko Stübner Date: Fri Jul 17 00:34:23 2015 +0200 arm64: defconfig: enable ARCH_ROCKCHIP Enable building Rockchip support in the defconfig. Signed-off-by: Heiko Stuebner Signed-off-by: Olof Johansson arch/arm64/configs/defconfig | 2 ++ 1 file changed, 2 insertions(+) commit fbac1c81e2591c5d1e5abd9a4477002f2afd0ab4 Author: Heiko Stübner Date: Fri Jul 17 00:33:51 2015 +0200 arm64: add Rockchip architecture entry The rk3368 is Rockchip's first ARM64 soc, build around 8 Cortex-A53 cores. Signed-off-by: Heiko Stuebner Signed-off-by: Olof Johansson arch/arm64/Kconfig.platforms | 10 ++++++++++ 1 file changed, 10 insertions(+) commit eed6b3eb20b97beff66ca59bb610ac73532278ee Author: Olof Johansson Date: Wed Jul 15 07:10:21 2015 -0400 arm64: Split out platform options to separate Kconfig Let's move out the platform Kconfig entries to a separate file, since these changes usually get moved through arm-soc instead of the arm64 arch tree, and this will lead to fewer conflicts Signed-off-by: Olof Johansson Acked-by: Will Deacon Acked-by: Catalin Marinas arch/arm64/Kconfig | 105 +------------------------------------------ arch/arm64/Kconfig.platforms | 104 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 104 deletions(-) commit ea7b44b6e95750e1784ce34e7688a974976d2ad1 Merge: 30e714c b471e7f Author: Olof Johansson Date: Fri Jul 17 10:23:08 2015 -0700 Merge tag 'ep93xx-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/defconfig Merge "EP93xx defconfig changes" from Linus Walleij: This updates the EP93xx defconfig to use NO_HZ and high resolution timers, and to by default enable and compile all board variants now that we can have a single kernel, and enable all EP93xx-specific drivers that sit in various sites across the kernel. * tag 'ep93xx-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: ep93xx: add framebuffer to the defconfig ARM: ep93xx: add DMA engine to the defconfig ARM: ep93xx: add GPIO I2C to defconfig ARM: ep93xx: add LEDs and triggers to defconfig ARM: ep93xx: enable SIM.ONE MMC/SD hardware ARM: ep93xx: enable all boards in the EP93xx defconfig ARM: ep93xx: activate NO_HZ and high-res timers Signed-off-by: Olof Johansson commit cd392752e357b150912f4c38a856dabed3ac7327 Merge: 6339189 109965a Author: Olof Johansson Date: Fri Jul 17 10:20:46 2015 -0700 Merge tag 'ep93xx-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/cleanup Merge "EP93xx cleanups for v4.3" from Linus Walleij: EP93xx cleanup and completing developments. This switches EP93xx to generic time and brings in a few out-of-tree small patches that were stalled for ages. It also removes the need for memory config options and instead moves over to using PATCH_PHYS_VIRT. * tag 'ep93xx-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: ep93xx: simone: enable DMA on the SPI host ARM: ep93xx: vision_ep9307: add audio support ARM: ep93xx: vision_ep9307: enable DMA for SPI ARM: ep93xx: toss the device ID into the entropy pool ARM: ep93xx: remove memory configuration options ARM: ep93xx: update comment on timer usage ARM: ep93xx: switch clockevent to timer 3 ARM: ep93xx: use non-raw accessors for timer ARM: ep93xx: switch to GENERIC_CLOCKEVENTS ARM: ep93xx: move timer to its own file Signed-off-by: Olof Johansson commit 6339189e9fcc74becd65ea2a3ac18a8ce767eb19 Merge: 3bf7b20 ffb910d Author: Olof Johansson Date: Fri Jul 17 10:19:04 2015 -0700 Merge tag 'arm-soc/for-4.3/soc' of http://github.com/broadcom/stblinux into next/cleanup Merge "Broadcom SoC changes for 4.3 (part 1)" from Florian Fainelli: This pull request contains two fixes for the Broadcom BCM63xx SMP code: - Sudeep removes an invalid use of cpu_logical_map() which turned to be a no-op since we always boot from physical CPU 0 = logical CPU 0 - Florian removes the custom secondary_startup function and replaces it with the generic one * tag 'arm-soc/for-4.3/soc' of http://github.com/broadcom/stblinux: ARM: BCM63xx: Remove custom secondary_startup function ARM: BCM63xx: fix parameter to of_get_cpu_node in bcm63138_smp_boot_secondary Signed-off-by: Olof Johansson commit fb61a92190f630c7090907197557f3f780269561 Merge: 858ed8c 0dfc7f6 Author: Olof Johansson Date: Fri Jul 17 10:16:36 2015 -0700 Merge tag 'arm-soc/for-4.3/dts' of http://github.com/broadcom/stblinux into next/dt Merge "Broadcom Device Tree changes for 4.3 (part 1)" from Florian Fainelli: This pull request contains two changes: - Ray adds the relevant clocks device tree nodes for Cygnus SoCs - Rafal enables UART0 on BCM5301X routers where it has been verified to work correctly * tag 'arm-soc/for-4.3/dts' of http://github.com/broadcom/stblinux: ARM: BCM5301X: Enable UART0 on tested devices ARM: dts: enable clock support for Broadcom Cygnus Signed-off-by: Olof Johansson commit 30e714c18c9b5fba273648b46003836a738a0a5f Merge: 91e2213 adfe5f2 Author: Olof Johansson Date: Fri Jul 17 10:09:14 2015 -0700 Merge tag 'mvebu-config-4.3-1' of git://git.infradead.org/linux-mvebu into next/defconfig Merge "ARM: mvebu: config changes for v4.3" from Gregory Clement: mvebu config changes for v4.3 (part #1) update mvebu_v7_defconfig with features needed for Armada 388 GP * tag 'mvebu-config-4.3-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu: update mvebu_v7_defconfig with features needed for Armada 388 GP Signed-off-by: Olof Johansson commit 858ed8cbb3010be5240f18719231dd625cfd549d Merge: 4a7514f 7e5308b Author: Olof Johansson Date: Fri Jul 17 10:08:17 2015 -0700 Merge tag 'mvebu-dt-4.3-1' of git://git.infradead.org/linux-mvebu into next/dt Merge "ARM: mvebu: dt changes for v4.3" from Gregory Clement: mvebu dt changes for v4.3 (part #1) - Update Armada 388 GP description - Add Buffalo Linkstation LS-WXL and LS-WSXL - Fine-tune the L2 configuration for cortex A9 based SoC - Update XOR definition for Armada 38x and 39x SoC * tag 'mvebu-dt-4.3-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu: update EEPROM description of Armada 388 GP ARM: mvebu: fix description of pwr-sata0 regulator on Armada 388 GP ARM: dts: add buffalo linkstation ls-wvl/vl ARM: dts: add buffalo linkstation ls-wxl/wsxl ARM: mvebu: use DT properties to fine-tune the L2 configuration ARM: mvebu: use armada-380-xor on Armada 38x and 39x Signed-off-by: Olof Johansson commit 3bf7b20a0e23729383b43c89585e733f0b575aca Merge: 52e43a1 7a1436d Author: Olof Johansson Date: Fri Jul 17 10:01:34 2015 -0700 Merge tag 'mvebu-cleanup-4.3-1' of git://git.infradead.org/linux-mvebu into next/cleanup Merge "ARM: mvebu: cleanup changes for v4.3" from Gregory Clement: mvebu cleanup changes for v4.3 (part #1) - Use vsprintf %pM extension on orion5x board to format mac address - Add missing newline at end of messages on pr_warn when CPU Idle on Armada 38x is disabled * tag 'mvebu-cleanup-4.3-1' of git://git.infradead.org/linux-mvebu: ARM: orion5x: Use vsprintf %pM extension ARM: mvebu: add missing newline at end of messages Signed-off-by: Olof Johansson commit 52e43a11aed3f8166ba311744637d636a8a79096 Merge: b3f8173 10dca88 Author: Olof Johansson Date: Fri Jul 17 09:58:32 2015 -0700 Merge branch 'ARM/clkevt/set-state-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux into next/cleanup Merge "ARM: clockevents: Migrate to 'set-state' callbacks" from Viresh Kumar: This series migrates ARM clockevent drivers (present in arch/arm/ directory), to the new set-state interface. This would enable these drivers to use new states (like: ONESHOT_STOPPED, etc.) of a clockevent device (if required), as the set-mode interface is marked obsolete now and wouldn't be expanded to handle new states. * 'ARM/clkevt/set-state-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux: ARM/orion/time: Migrate to new 'set-state' interface ARM/iop/time: Migrate to new 'set-state' interface ARM/w90x900/time: Migrate to new 'set-state' interface ARM/SPEAr/time: Migrate to new 'set-state' interface ARM/omap2/timer: Migrate to new 'set-state' interface ARM/omap1/timer32: Migrate to new 'set-state' interface ARM/omap1/time: Migrate to new 'set-state' interface ARM/netx/time: Migrate to new 'set-state' interface ARM/mmp/time: Migrate to new 'set-state' interface ARM/lpc32xx/timer: Migrate to new 'set-state' interface ARM/ks8695/time: Migrate to new 'set-state' interface ARM/ixp4xx/timer: Migrate to new 'set-state' interface ARM/imx/epit: Migrate to new 'set-state' interface ARM/gemini/time: Migrate to new 'set-state' interface ARM/dc21285-timer: Migrate to new 'set-state' interface ARM/davinci/time: Migrate to new 'set-state' interface ARM/cns3xxx/timer: Migrate to new 'set-state' interface ARM/smp_twd: Migrate to new 'set-state' interface Signed-off-by: Olof Johansson commit 4a7514f717e44999b5c974ad6d5f8a9ccb4d0ed3 Merge: b1d725e e794db2 Author: Olof Johansson Date: Fri Jul 17 09:53:02 2015 -0700 Merge branch 'lpc18xx_43xx_dts_4.3' of https://github.com/manabian/linux-lpc into next/dt Merge "LPC18xx DTS changes for 4.3" from Joachim Eastwood: This patch set adds DT nodes for all the drivers that went upstream in 4.2 and should represent the bulk of DTS changes for 4.3. All nodes added are documented and some of patches carries a ack from subsystem maintainer. It also features updates to the EA4357 dev- kit and a new board from Ezequiel Garcia. Note that there might be one more batch of DTS changes for 4.3 if any new drivers goes upstream and also some changes for the Hitex eval board might come. * 'lpc18xx_43xx_dts_4.3' of https://github.com/manabian/linux-lpc: ARM: dts: add DT for CIAA LPC4337 industrial computer of: add vendor prefix for CIAA project ARM: dts: lpc4357-ea4357: add uart3 ARM: dts: lpc4357-ea4357: add ethernet ARM: dts: lpc4357-ea4357: add gpio joystick ARM: dts: lpc4357-ea4357: add mmcsd ARM: dts: lpc4357-ea4357: add pinctrl and uart0 muxing ARM: dts: lpc18xx: add usb nodes ARM: dts: lpc18xx: add ethernet node ARM: dts: lpc18xx: add creg (syscon) node ARM: dts: lpc18xx: add mmcsd node ARM: dts: lpc18xx: add can nodes ARM: dts: lpc18xx: add ssp nodes ARM: dts: lpc18xx: add gpio node ARM: dts: lpc18xx: add pinctrl node ARM: dts: lpc18xx: add uart new compat string and clk names ARM: dts: lpc18xx: add cgu and ccu clock-controller nodes Signed-off-by: Olof Johansson commit 27977b69e493c9b259eb0490534e0f74bc325ba8 Author: Theodore Ts'o Date: Fri Jul 17 11:33:16 2015 -0400 ext4 crypto: check for too-short encrypted file names An encrypted file name should never be shorter than an 16 bytes, the AES block size. The 3.10 crypto layer will oops and crash the kernel if ciphertext shorter than the block size is passed to it. Fortunately, in modern kernels the crypto layer will not crash the kernel in this scenario, but nevertheless, it represents a corrupted directory, and we should detect it and mark the file system as corrupted so that e2fsck can fix this. Signed-off-by: Theodore Ts'o fs/ext4/crypto_fname.c | 4 ++++ 1 file changed, 4 insertions(+) commit 806c24adf74ec02543e4dcad989c0336f9fe82c4 Author: Theodore Ts'o Date: Fri Jul 17 11:16:47 2015 -0400 ext4 crypto: use a jbd2 transaction when adding a crypto policy Start a jbd2 transaction, and mark the inode dirty on the inode under that transaction after setting the encrypt flag. Otherwise if the directory isn't modified after setting the crypto policy, the encrypted flag might not survive the inode getting pushed out from memory, or the the file system getting unmounted and remounted. Signed-off-by: Theodore Ts'o fs/ext4/crypto_policy.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) commit 2091f5181c66b3617a977e79843aba10e087be6c Author: Philipp Zabel Date: Fri Jul 10 10:49:26 2015 -0300 [media] videobuf2: add trace events Add videobuf2 specific vb2_qbuf and vb2_dqbuf trace events that mirror the v4l2_qbuf and v4l2_dqbuf trace events, only they include additional information about queue fill state and are emitted right before the buffer is enqueued in the driver or userspace is woken up. This allows to make sense of the timeline of trace events in combination with others that might be triggered by __enqueue_in_driver. Also two new trace events vb2_buf_queue and vb2_buf_done are added, allowing to trace the handover between videobuf2 framework and driver. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/videobuf2-core.c | 11 ++++ include/trace/events/v4l2.h | 97 ++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) commit c13a5ccf5da86239213033214658b8a170eeab87 Author: Philipp Zabel Date: Fri Jul 10 10:49:25 2015 -0300 [media] v4l2-mem2mem: set the queue owner field just as vb2_ioctl_reqbufs does The queue owner will be used by videobuf2 trace events to determine and record the device minor number. It is set in v4l2_m2m_reqbufs instead of v4l2_m2m_ioctl_reqbufs because several drivers implement their own vidioc_reqbufs handlers that still call v4l2_m2m_reqbufs directly. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-mem2mem.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 85efe4e5082c381262f5303d20f808ac455b028e Author: Philipp Zabel Date: Fri Jul 10 10:49:24 2015 -0300 [media] v4l2-dev: use event class to deduplicate v4l2 trace events Trace events with exactly the same parameters and trace output, such as v4l2_qbuf and v4l2_dqbuf, are supposed to use the DECLARE_EVENT_CLASS and DEFINE_EVENT macros instead of duplicated TRACE_EVENT macro calls. Suggested-by: Steven Rostedt Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab include/trace/events/v4l2.h | 160 +++++++++++++++++++++----------------------- 1 file changed, 78 insertions(+), 82 deletions(-) commit 0034af036554c39eefd14d835a8ec3496ac46712 Author: Jens Axboe Date: Thu Jul 16 09:14:26 2015 -0600 block: make /sys/block//queue/discard_max_bytes writeable Lots of devices support huge discard sizes these days. Depending on how the device handles them internally, huge discards can introduce massive latencies (hundreds of msec) on the device side. We have a sysfs file, discard_max_bytes, that advertises the max hardware supported discard size. Make this writeable, and split the settings into a soft and hard limit. This can be set from 'discard_granularity' and up to the hardware limit. Add a new sysfs file, 'discard_max_hw_bytes', that shows the hw set limit. Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe Documentation/block/queue-sysfs.txt | 10 +++++++++- block/blk-settings.c | 4 ++++ block/blk-sysfs.c | 40 ++++++++++++++++++++++++++++++++++++- include/linux/blkdev.h | 1 + 4 files changed, 53 insertions(+), 2 deletions(-) commit 2bb4cd5cc472b191a46938becb7dafdd44644329 Author: Jens Axboe Date: Tue Jul 14 08:15:12 2015 -0600 block: have drivers use blk_queue_max_discard_sectors() Some drivers use it now, others just set the limits field manually. But in preparation for splitting this into a hard and soft limit, ensure that they all call the proper function for setting the hw limit for discards. Reviewed-by: Jeff Moyer Signed-off-by: Jens Axboe drivers/block/brd.c | 2 +- drivers/block/drbd/drbd_nl.c | 4 ++-- drivers/block/loop.c | 4 ++-- drivers/block/nbd.c | 2 +- drivers/block/nvme-core.c | 2 +- drivers/block/rbd.c | 2 +- drivers/block/skd_main.c | 2 +- drivers/block/zram/zram_drv.c | 2 +- drivers/md/bcache/super.c | 2 +- drivers/mmc/card/queue.c | 2 +- drivers/mtd/mtd_blkdevs.c | 2 +- drivers/scsi/sd.c | 4 ++-- 12 files changed, 15 insertions(+), 15 deletions(-) commit 6c71013ecb7e2bddbed9f5b95e7aed22c491daa9 Author: Ming Lei Date: Thu Jul 16 11:16:45 2015 +0800 block: partition: convert percpu ref Percpu refcount is the perfect match for partition's case, and the conversion is quite straight. With the convertion, one pair of atomic inc/dec can be saved for accounting block I/O, which is run in hot path of block I/O. Signed-off-by: Ming Lei Acked-by: Tejun Heo Signed-off-by: Jens Axboe block/genhd.c | 6 +++++- block/partition-generic.c | 9 +++++---- include/linux/genhd.h | 27 +++++++++++++++++---------- 3 files changed, 27 insertions(+), 15 deletions(-) commit b54e5ed8f285d62c0d242c4ef9da90937994db02 Author: Ming Lei Date: Thu Jul 16 11:16:44 2015 +0800 block: partition: introduce hd_free_part() So the helper can be used in both generic partition case and part0 case. Signed-off-by: Ming Lei Signed-off-by: Jens Axboe block/genhd.c | 3 +-- block/partition-generic.c | 3 +-- include/linux/genhd.h | 6 ++++++ 3 files changed, 8 insertions(+), 4 deletions(-) commit 6727d4fce95586e60922bdaf57b8a0eb99482557 Author: Philipp Zabel Date: Thu Jul 16 13:19:39 2015 -0300 [media] coda: make NV12 format default The chroma interleaved NV12 format has higher memory bandwidth efficiency because the chroma planes can be read/written with longer burst lengths. Use NV12 as default format if available and consistently sort it first. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit a269e53b1aa87157311e53e5b69699ba8f3ba4d0 Author: Philipp Zabel Date: Thu Jul 16 13:19:38 2015 -0300 [media] coda: add macroblock tiling support Storing internal frames in macroblock tiled order improves memory access patterns by allowing increased burst sizes when transferring the uncompressed macroblocks to or from main memory. The translation logic only supports a single chroma base address, so this is only supported for the chroma interleaved NV12 format. Since the rotator used to copy the decoder output into the v4l2 capture buffers does not seem to support the tiled format correctly, only enable it in the encoder for now. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/Makefile | 2 +- drivers/media/platform/coda/coda-bit.c | 48 +++++++--- drivers/media/platform/coda/coda-common.c | 74 +++++---------- drivers/media/platform/coda/coda-gdi.c | 150 ++++++++++++++++++++++++++++++ drivers/media/platform/coda/coda.h | 11 +-- drivers/media/platform/coda/coda_regs.h | 6 ++ 6 files changed, 221 insertions(+), 70 deletions(-) commit fbce23a0b95763dfc4961ce6240e055c39f497ed Author: Takashi Iwai Date: Fri Jul 17 16:27:33 2015 +0200 ALSA: hda - Check the return value from pm_runtime_get/put*() This patch changes the return type of snd_hdac_power_up/down() and variants to pass the error code from the underlying pm_runtime_get/put() calls. Currently they are ignored, but in most places, these should be handled properly. As an example, the regmap handler is updated to check the return value and accesses the register only when the wakeup succeeds. Signed-off-by: Takashi Iwai include/sound/hdaudio.h | 16 ++++++++-------- sound/hda/hdac_device.c | 26 ++++++++++++++++++-------- sound/hda/hdac_regmap.c | 10 ++++++---- 3 files changed, 32 insertions(+), 20 deletions(-) commit 4e447ff199cfc4bc04ddb515d3d9ab46bb19530a Author: Philipp Zabel Date: Thu Jul 16 13:19:37 2015 -0300 [media] coda: move cache setup into coda9_set_frame_cache, also use it in start_encoding The frame cache should be set up correctly to encode NV12 source frames. This was not done before, so move the cache setup out of start_decoding into its own function and call it from both start_encoding and start_decoding. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 45 +++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 20 deletions(-) commit cde29ef313de391ec9a1e461458274623ab1eb87 Author: Philipp Zabel Date: Thu Jul 16 13:13:24 2015 -0300 [media] coda: Use S_PARM to set nominal framerate for h.264 encoder The encoder needs to know the nominal framerate for the constant bitrate control mechanism to work. Currently the only way to set the framerate is by using VIDIOC_S_PARM on the output queue. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 102 ++++++++++++++++++++++++++++++ drivers/media/platform/coda/coda_regs.h | 4 ++ 2 files changed, 106 insertions(+) commit da2b3b3e115d2793b5475039ca4d7f364135fcf4 Author: Philipp Zabel Date: Fri Jul 10 10:37:52 2015 -0300 [media] coda: implement VBV delay and buffer size controls The encoder allows to specify the VBV model reference decoder's initial delay and buffer size. Export the corresponding V4L2 controls. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 5 ++++- drivers/media/platform/coda/coda-common.c | 14 ++++++++++++++ drivers/media/platform/coda/coda.h | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) commit 68aa7ee15cd683006ec1ac91ad60c019bf62d978 Author: Philipp Zabel Date: Fri Jul 10 10:37:44 2015 -0300 [media] coda: reset CODA960 hardware after sequence end On i.MX6, sometimes after decoding a stream, encoding will produce macroblock errors caused by missing 8-byte sequences in the output stream. Until the cause for this is found, reset the hardware after sequence end, which seems to help. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 47f3fa63ee5c0e6bdf9c9d5ed73fc791981336e4 Author: Philipp Zabel Date: Thu Jul 9 07:10:21 2015 -0300 [media] coda: rework meta counting and add separate lock Keep count of number of buffer meta structures in the list and use a separate spinlock for operations on this counted list instead of reusing the bitstream mutex in some places and none at all in others. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 16 ++++++++++++++-- drivers/media/platform/coda/coda-common.c | 21 +++++++++------------ drivers/media/platform/coda/coda.h | 2 ++ 3 files changed, 25 insertions(+), 14 deletions(-) commit 2cf251c0c3961bd467e086033c6073ef62b29b02 Author: Philipp Zabel Date: Thu Jul 9 07:10:20 2015 -0300 [media] coda: reuse src_bufs in coda_job_ready The v4l2_m2m_num_src_bufs_ready() function is called in multiple places in coda_cob_ready, and there already is a variable src_bufs that is assigned to its result. Move it to the beginning and use it everywhere. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit f0710815a0e17c63d3f17d365ae556ab15eccb03 Author: Philipp Zabel Date: Thu Jul 9 07:10:19 2015 -0300 [media] coda: use event class to deduplicate v4l2 trace events Trace events with exactly the same parameters and trace output, such as coda_enc_pic_run and coda_enc_pic_done, are supposed to use the DECLARE_EVENT_CLASS and DEFINE_EVENT macros instead of duplicated TRACE_EVENT macro calls. This patch changes the order of parameters to coda_dec_rot_done and adds a timestamp so it can share an event class with coda_bit_queue. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 2 +- drivers/media/platform/coda/trace.h | 89 ++++++++++------------------------ 2 files changed, 26 insertions(+), 65 deletions(-) commit 8076c7e3f68547ee1d8e07715329f26f7883152a Author: Philipp Zabel Date: Thu Jul 9 07:10:18 2015 -0300 [media] coda: drop custom list of pixel format descriptions Since commit ba3002045f80 ("[media] v4l2-ioctl: fill in the description for VIDIOC_ENUM_FMT"), all pixel formats are assigned their description in a central place. We can now drop the custom list. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 75 +++---------------------------- 1 file changed, 7 insertions(+), 68 deletions(-) commit c1ae0b283d13ad8b53bf3be379b1207085da4b22 Author: Philipp Zabel Date: Thu Jul 9 07:10:17 2015 -0300 [media] coda: reset stream end in stop_streaming Otherwise a restarted stream won't queue buffers. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 3 +++ 1 file changed, 3 insertions(+) commit 5c718bb323aef02ea580073a3640b072fb2f6838 Author: Philipp Zabel Date: Thu Jul 9 07:10:16 2015 -0300 [media] coda: avoid calling SEQ_END twice Allow coda_seq_end_work to be called multiple times, move the setting of ctx->initialized from coda_start/stop_streaming() into coda_start_encoding/decoding and coda_seq_end_work, respectively, and skip the SEQ_END command in coda_seq_end_work if the context is already deinitialized before. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 8 ++++++++ drivers/media/platform/coda/coda-common.c | 4 +--- 2 files changed, 9 insertions(+), 3 deletions(-) commit 30a09579b2e238646bca4e7cc443db24d91436d6 Author: Philipp Zabel Date: Thu Jul 9 07:10:15 2015 -0300 [media] coda: keep buffers on the queue in bitstream end mode In stream end mode the hardware will read the bitstream to its end, overshooting the write pointer. Do not write additional data into the bitstream in this mode. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 3 +++ 1 file changed, 3 insertions(+) commit 58bc7edf1d9a16073761031a03291af887ccdf66 Author: Philipp Zabel Date: Thu Jul 9 07:10:14 2015 -0300 [media] coda: fix bitstream preloading for MPEG4 decoding All decoder instances using the BIT processor should preload buffers into the bitstream ring buffer, including MPEG4 decoding. Fix this by explicitly stating the above condition instead of listing all relevant input formats. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-common.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit d132803e6c611d50c19baedc8ae520203a2baca7 Author: Andy Lutomirski Date: Wed Jul 15 14:25:16 2015 -0700 x86/entry: Fix _TIF_USER_RETURN_NOTIFY check in prepare_exit_to_usermode Linus noticed that the early return check was missing _TIF_USER_RETURN_NOTIFY. If the only work flag was _TIF_USER_RETURN_NOTIFY, we'd skip user return notifiers. Fix it. (This is the only missing bit.) This fixes double faults on a KVM host. It's the same issue as last time, except that this time it's very easy to trigger. Apparently no one uses -next as a KVM host. ( I'm still not quite sure what it is that KVM does that blows up so badly if we miss a user return notifier. My best guess is that KVM lets KERNEL_GS_BASE (i.e. the user's gs base) be negative and fixes it up in a user return notifier. If we actually end up in user mode with a negative gs base, we blow up pretty badly. ) Reported-by: Linus Torvalds Signed-off-by: Andy Lutomirski Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: c5c46f59e4e7 ("x86/entry: Add new, comprehensible entry and exit handlers written in C") Link: http://lkml.kernel.org/r/3f801104d24ee7a6bb1446408d9950777aa63277.1436995419.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b05959c66e865fb9eb5b93e223da925572130d7f Author: Philipp Zabel Date: Thu Jul 9 07:10:13 2015 -0300 [media] coda: fix mvcol buffer for MPEG4 decoding The mvcol buffer is allocated at the end of the first internal buffer. This patch fixes an out of bounds array access. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f964c409f7cc626335cf2370f55690660a273dad Author: Lucas Stach Date: Thu Jul 9 07:10:12 2015 -0300 [media] coda: clamp frame sequence counters to 16 bit This is already done for one side of the comparison with the expectation that the HW counter rolls over at the 16 bit boundary. This is true when decoding a h.264 stream, but doesn't hold for at least MJPEG. As we don't know the exact wrap-around point for this format just clamp the HW counter to the same 16 bits. This should be enough to detect most of the errors and saves us from doing different comparisons based on the decoded format. Signed-off-by: Lucas Stach Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/coda/coda-bit.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit eb6d9293dfed245a114cad7d975259963e1e04c2 Author: Denys Vlasenko Date: Wed Jul 15 14:56:06 2015 +0200 mac80211: deinline rate_control_rate_init, rate_control_rate_update With this .config: http://busybox.net/~vda/kernel_config, after deinlining these functions have sizes and callsite counts as follows: rate_control_rate_init: 554 bytes, 8 calls rate_control_rate_update: 1596 bytes, 5 calls Total size reduction: about 11 kbytes. Signed-off-by: Denys Vlasenko CC: John Linville CC: Michal Kazior CC: Johannes Berg Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Johannes Berg net/mac80211/rate.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ net/mac80211/rate.h | 60 +++-------------------------------------------------- 2 files changed, 62 insertions(+), 57 deletions(-) commit 727da60be91c9fd59f1b084ca537b5123ab97744 Author: Denys Vlasenko Date: Wed Jul 15 14:56:05 2015 +0200 mac80211: deinline drv_sta_state With this .config: http://busybox.net/~vda/kernel_config, after deinlining the function size is 3132 bytes and there are 7 callsites. Total size reduction: about 20 kbytes. Signed-off-by: Denys Vlasenko CC: John Linville CC: Michal Kazior Cc: Johannes Berg Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Johannes Berg net/mac80211/Makefile | 1 + net/mac80211/driver-ops.c | 41 +++++++++++++++++++++++++++++++++++++++++ net/mac80211/driver-ops.h | 29 ++--------------------------- 3 files changed, 44 insertions(+), 27 deletions(-) commit 0e0060fcfb3d0f5a53ef43e7b6a50227b934ab7c Author: Bob Copeland Date: Tue Jul 14 08:31:59 2015 -0400 mac80211: select an AID when creating new mesh STAs Instead of using peer link id for AID, generate a new AID when creating mesh STAs in the kernel peering manager. This enables smaller TIM elements and more closely follows the standard, and it also enables mesh to work on drivers that require a valid AID when the STA is inserted (ath10k firmware has this requirement, for example). In the case of userspace-managed stations, we use the AID from NL80211_CMD_NEW_STATION. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) commit a69bd8e60b02946896c097439b94eb77c0c2c9e4 Author: Bob Copeland Date: Tue Jul 14 08:31:58 2015 -0400 mac80211: mesh: separate plid and aid concepts According to 802.11-2012 13.3.1, a mesh STA should assign an AID upon receipt of a mesh peering open frame rather than using the link id of the peer. Using the peer link id has two potential issues: it may not be unique among the peers, and by its nature it is random, so the TIM may not compress well. In preparation for allocating it properly, use sta->sta.aid, but keep the existing behavior of using the plid in the aid we send. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 29 +++++++++++++++++++---------- net/mac80211/mesh_ps.c | 2 +- net/mac80211/sta_info.c | 5 +---- net/mac80211/sta_info.h | 2 ++ 4 files changed, 23 insertions(+), 15 deletions(-) commit fa87a6566ca8f17a92ba81980bd47c456262907c Author: Bob Copeland Date: Tue Jul 14 08:31:57 2015 -0400 mac80211: reorder mesh_plink to remove forward decl Move mesh_plink_frame_tx() above the first caller to remove the forward declaration. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/mesh_plink.c | 109 ++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 57 deletions(-) commit b0485e9f3defbed6effcde595df9b9fdbdb2524e Author: Eliad Peller Date: Wed Jul 8 15:41:47 2015 +0300 mac80211: clear local->suspended before calling drv_resume() Currently, mac80211 calls drv_resume() on wowlan resume, but drops any incoming frame until local->suspended is cleared later on. This requires the low-level driver to support a new state, in which it is expected to fully work (as it was resumed) but not passing rx frames yet (as they will be dropped). iwlwifi (and probably other drivers as well) has issues supporting such mode. Since in the wowlan case we already short-circuit ieee80211_reconfig, there's nothing that prevents us from clearing local->suspend before calling drv_resume(), and letting the low-level driver work normally. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/util.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 42d8d789615d539cb13733e516b94e874a34f775 Author: Arik Nemtsov Date: Wed Jul 8 15:41:46 2015 +0300 mac80211: TDLS: deny ch-switch req on disallowed channels If a TDLS station is not allowed to beacon on a channel, don't accept a channel switch request to this channel. Move channel building code up to avoid lockdep violations - reg_can_beacon needs to take the wdev lock. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/tdls.c | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) commit c8ff71e667d9fcf775e8b8bbd568d32d48cfb864 Author: Arik Nemtsov Date: Wed Jul 8 15:41:45 2015 +0300 mac80211: TDLS: handle chan-switch in RTNL locked work Move TDLS channel-switch Rx handling into an RTNL locked work. This is required to add proper regulatory checking to incoming channel-switch requests. Queue incoming requests in a dedicated skb queue and handle the request in a device-specific work to avoid deadlocking on interface removal. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 8 +++++--- net/mac80211/iface.c | 2 -- net/mac80211/main.c | 5 +++++ net/mac80211/rx.c | 5 ++--- net/mac80211/tdls.c | 34 ++++++++++++++++++++++++++++++++-- 5 files changed, 44 insertions(+), 10 deletions(-) commit 72bbe3d1c2d7a9e257956912040ffc7ba9f71e0d Merge: 322cd40 923b352 Author: Johannes Berg Date: Fri Jul 17 15:39:38 2015 +0200 Merge branch 'mac80211' into mac80211-next This is necessary to merge the new TDLS and mesh patches, as they depend on some fixes. Signed-off-by: Johannes Berg commit 322cd406da0b102dda9c0eec46181458a3667dbb Author: Sara Sharon Date: Wed Jul 8 15:41:43 2015 +0300 mac80211: Add support for declaring MU-MIMO capability Add support for declaring MU-MIMO beamformee capability for relevant hardware. When sending association request, the capability is included if both hardware and the AP support it, and no other virtual interface is using it. This is in order to avoid multiple interfaces using MU-MIMO in parallel which might lead to contradictions in the group-id mechanism. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 2 ++ net/mac80211/mlme.c | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) commit ccc6bb96ff058ad737fb8236e15aeaa56e822296 Author: Johannes Berg Date: Tue Jun 23 11:50:52 2015 +0200 mac80211: account TX MSDUs properly with segmentation offload If an SKB will be segmented by the driver, count it for multiple MSDUs that are being transmitted rather than just a single. Signed-off-by: Johannes Berg net/mac80211/tx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 841b351cf98e0b4ef25f6459d35251e63c0a7a49 Author: John Linville Date: Wed Jun 24 11:42:25 2015 -0400 wireless: remove superfluous if statement in regulatory code Commit eeca9fce1d71 ('cfg80211: Schedule timeout for all CRDA calls') left behind a superfluous check after it removed some earlier code. In reg_process_hint, the test of "treatment == REG_REQ_IGNORE || treatment == REG_REQ_ALREADY_SET" is superfluous because the code in the if-then branch is identical to the code after the if statement. Coverity CID #1295939 I also removed the unnecessary assignment of treatment in this case, and added a comment reminding any future patch authors to ensure that treatment is properly assigned before it is used after the switch. Signed-off-by: John W. Linville Signed-off-by: Johannes Berg net/wireless/reg.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 33d8783c58427683b533664f67f8c4378ed64495 Author: Johannes Berg Date: Tue Jun 23 17:47:05 2015 +0200 cfg80211: allow mgmt_frame_register callback to sleep This callback is currently not allowed to sleep, which makes it more difficult to implement proper driver methods in mac80211 than it has to be. Instead of doing asynchronous work here in mac80211, make it possible for the callback to sleep by doing some asynchronous work in cfg80211. This also enables improvements to other drivers, like ath6kl, that would like to sleep in this callback. While at it, also fix the code to call the driver on the implicit unregistration when an interface is removed, and do that also when a P2P-Device wdev is destroyed (otherwise we leak the structs.) Signed-off-by: Johannes Berg include/net/cfg80211.h | 3 +- net/wireless/core.c | 5 ++++ net/wireless/core.h | 5 ++++ net/wireless/mlme.c | 75 +++++++++++++++++++++++++++++++++++++++---------- net/wireless/rdev-ops.h | 2 ++ 5 files changed, 73 insertions(+), 17 deletions(-) commit 69f132236827ce7d4531846cc2b9447dd5620aff Author: Johannes Berg Date: Fri Jun 26 09:21:01 2015 +0200 mac80211: shrink struct ieee80211_fragment_entry Most of the fields in this struct use too wide types, change that to shrink the struct from 64 to 48 bytes (on 64-bit.) This results in a total saving of 64 bytes for each interface. Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit a76d5e0a2311ad6b5a8bfa92d3d627194c8c389a Author: Johannes Berg Date: Thu Jun 18 16:20:08 2015 +0200 mac80211: mesh: move fail_avg into mesh struct This value is only used in mesh, so move it into the new mesh sub-struct of the station info. Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 9 +++++---- net/mac80211/sta_info.h | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) commit f9a060f4b2003eb7350762e60dfc576447e44bad Author: Johannes Berg Date: Fri Jun 12 14:55:34 2015 +0200 mac80211: add pointer for driver use to key Some drivers may need to store data per key, for example for PN validation. Allow this by adding a pointer to the struct that the driver can assign. Signed-off-by: Johannes Berg include/net/mac80211.h | 2 ++ 1 file changed, 2 insertions(+) commit 33c2f538d8080845e11af500993cc61ad30934e2 Author: Johannes Berg Date: Wed Jun 17 13:07:14 2015 +0200 mac80211_hwsim: support wider TDLS bandwidth There's no reason not to support this, allow it to test those code paths. Signed-off-by: Johannes Berg drivers/net/wireless/mac80211_hwsim.c | 1 + 1 file changed, 1 insertion(+) commit a3ebb4e1b76346156e8e7233c262ce24e3a86a24 Author: Krishna Chaitanya Date: Fri Jun 12 02:34:52 2015 +0530 mac80211: minstrel_ht: handle peers in dynamic SMPS In case of Dynamic SMPS enable RTS/CTS for all rates. Signed-off-by: Chaitanya T K [change comment] Signed-off-by: Johannes Berg net/mac80211/rc80211_minstrel_ht.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 932e628da2fe9be759e19b14e3e5bf1e0e6f0984 Author: Chun-Yeow Yeoh Date: Mon Jun 15 11:58:53 2015 +0800 mac80211: mesh process the target only subfield for mesh hwmp This patch does the following: - Remove unnecessary flags field used by PERR element - Use the per target flags defined in - Process the target only subfield based on case E2 of IEEE802.11-2012 13.10.9.3 Signed-off-by: Chun-Yeow Yeoh Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) commit d51c2ea3704be07f030c78d57641d6b972e301ee Author: Arik Nemtsov Date: Sun Jun 14 16:53:46 2015 +0300 mac80211: TDLS: correctly configure SMPS state The IEEE802.11-2012 specification is vague regarding SMPS operation during TDLS. It does not define a clear way to transition between SMPS states. To avoid interop issues, set SMPS to off when TDLS peers are connected. Accomplish this by extending the definition of the AUTOMATIC state. If the driver forces a state other than OFF, disconnect all TDLS peers. While at it, avoid changing the SMPS state of the peer STA. We have no way to control it, so try and behave correctly towards it. Move the TDLS peer-teardown function to where the rest of the TDLS code resides. Signed-off-by: Arik Nemtsov Signed-off-by: Johannes Berg net/mac80211/cfg.c | 21 ++++++++++++++++++--- net/mac80211/ieee80211_i.h | 1 + net/mac80211/mlme.c | 18 ------------------ net/mac80211/tdls.c | 36 ++++++++++++++++++++++++++++++++---- 4 files changed, 51 insertions(+), 25 deletions(-) commit 3633ebebab2bbe88124388b7620442315c968e8f Author: Bob Copeland Date: Sat Jun 13 10:16:31 2015 -0400 mac80211: enable assoc check for mesh interfaces We already set a station to be associated when peering completes, both in user space and in the kernel. Thus we should always have an associated sta before sending data frames to that station. Failure to check assoc state can cause crashes in the lower-level driver due to transmitting unicast data frames before driver sta structures (e.g. ampdu state in ath9k) are initialized. This occurred when forwarding in the presence of fixed mesh paths: frames were transmitted to stations with whom we hadn't yet completed peering. Cc: stable@vger.kernel.org Reported-by: Alexis Green Tested-by: Jesse Jones Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg net/mac80211/tx.c | 3 --- 1 file changed, 3 deletions(-) commit d8f0300a7aca5cd9208112104c64d894ad82da1f Author: Jesse Jones Date: Fri Jun 12 15:38:07 2015 -0700 mac80211: mac80211: Check SN for deactivated mpaths When processing a PREQ or PREP it's critical to use the incoming SN. If that is improperly done routing loops and other types of badness can happen. But the code was always processing path messages for deactivated paths. This path fixes that so that if we have a valid SN then we use it to verify that it is a message we can accept. For reference the relevant section of the standard is 13.10.8.4 which doesn't address the deactivated path case at all. I also included a special case for when our peer reboots or restarts networking. This is an important case because without it there can be a very long delay before we accept path messages from that peer. It's also a simple case and intimately associated with processing messages for deactivated paths so I used one patch instead of two. Signed-off-by: Alexis Green Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) commit d82547106ff9dee43e6ee4f4b3d70b5314ae266f Author: Jesse Jones Date: Fri Jun 12 14:13:09 2015 -0700 mac80211: mesh: don't invalidate SN on discovery failure The 2012 spec mentions that path SNs can be invalid when created (see section 13.10.8.4 table 13-9) but AFAICT never talks about invalidating SNs. Which makes sense: if we have figured out the path to a target at a certain SN then we want to remember that fact. Failing to do so can lead to routing loops because if we don't have a valid SN then we have no way of knowing whether an incoming path message leads to or away from the target. However currently when discovery fails we zero out mpath->flags which clears MESH_PATH_SN_VALID. This patch fixes that so that only the discovery relevant flags are cleared. Signed-off-by: Alexis Green Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 703ee73a41a74210dde9050c6669053866b133a0 Author: Alexis Green Date: Wed Jun 10 11:02:09 2015 -0700 mac80211: mesh: add missing case to PERR processing When the nexthop is unable to resolve its own nexthop it will send back a PERR with a zero target_sn. According to section 13.10.11.4.3 step b in the 2012 standard that perr should be forwarded and the associated mpath->sn should be incremented. Neither one of those was happening which is rather bad because the originator was not told that packets are black holing. Signed-off-by: Alexis Green CC: Jesse Jones Signed-off-by: Johannes Berg net/mac80211/mesh_hwmp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 0fabfaafec3ae017fc7c82997035872ff385752f Author: Arik Nemtsov Date: Wed Jun 10 20:41:23 2015 +0300 mac80211: upgrade BW of TDLS peers when possible Define a station chandef, to be used for wider-bw TDLS peers. When both peers support the feature, upgrade the channel bandwidth to the maximum allowed by both peers and regulatory. Currently widths up to 80MHz are supported in the 5GHz band. When a TDLS peer connects/disconnects recalculate the channel type of the current chanctx. Make the chanctx width calculation consider wider-bw TDLS peers and similarly fix the max_required_bw calculation for the chanctx min_def. Since the sta->bandwidth is calculated only later on, take bss_conf.chandef.width as the minimal width for station interface. Set the upgraded channel width in the VHT-operation set during TDLS setup. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/chan.c | 31 +++++++++++-- net/mac80211/ieee80211_i.h | 3 ++ net/mac80211/sta_info.h | 4 ++ net/mac80211/tdls.c | 105 ++++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 132 insertions(+), 11 deletions(-) commit b98fb44ffceeac717789e8f2fb3497e6b8c5c65b Author: Arik Nemtsov Date: Wed Jun 10 20:42:59 2015 +0300 mac80211: define TDLS wider BW support bits Allow a device to specify support for the TDLS wider-bandwidth feature. Indicate this support during TDLS setup in the ext-capab IE and set an appropriate station flag when our TDLS peer supports it. This feature gives TDLS peers the ability to use a wider channel than the base width of the BSS. For instance VHT capable TDLS peers connected on a 20MHz channel can extend the channel to 80MHz, if regulatory considerations allow it. Do not cap the bandwidth of such stations by the current BSS channel width in mac80211. Signed-off-by: Arik Nemtsov Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg include/net/mac80211.h | 4 ++++ net/mac80211/cfg.c | 6 ++++++ net/mac80211/debugfs.c | 1 + net/mac80211/sta_info.h | 3 +++ net/mac80211/tdls.c | 18 +++++++++++++----- net/mac80211/vht.c | 8 ++++++-- 6 files changed, 33 insertions(+), 7 deletions(-) commit 7584f88f9e30d36c2c1041831121f1cd3a194bf1 Author: Eliad Peller Date: Wed Jun 10 20:19:37 2015 +0300 mac80211: clear local->in_reconfig on reconfig error If reconfiguration fails, local->in_reconfig is never cleaned, resulting in rx frames being dropped next time the device is started. Signed-off-by: Eliad Peller Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg net/mac80211/util.c | 1 + 1 file changed, 1 insertion(+) commit 6513e98e05ccb8eca77adaf93beae44aa7bf4a45 Author: Johannes Berg Date: Wed Jun 10 20:18:55 2015 +0300 mac80211: allow passing NULL to ieee80211_vif_to_wdev() Simply return NULL in this case, instead of crashing. This can simplify callers that would otherwise have to check for this explicitly. Signed-off-by: Johannes Berg net/mac80211/util.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit e996ec2a4ddb53164262990d33304c429709f687 Author: Wojciech Dubowik Date: Wed Jun 10 13:06:53 2015 +0200 mac80211: avoid unnecessary beacon deref on CSA counter update The beacon struct is already available in many contexts that are also already in an RCU read-locked section. Avoid that by using the existing beacon struct pointer directly. Signed-off-by: Wojciech Dubowik [rewrite subject/add commit message] Signed-off-by: Johannes Berg net/mac80211/tx.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 1365770248c122dd155351e714b44fe77036292c Author: Johannes Berg Date: Wed Jun 17 10:34:54 2015 +0200 mac80211: move mesh STA parameters code to own function The code was always a bit awkward due to the 80-col restriction and got worse in the previous patch. Refactor it a bit into its own function to make it read nicer. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 117 ++++++++++++++++++++++++++++------------------------- 1 file changed, 61 insertions(+), 56 deletions(-) commit 433f5bc1c0efc67a86433e47a14b115510fc1409 Author: Johannes Berg Date: Wed Jun 17 10:31:00 2015 +0200 mac80211: move mesh related station fields to own struct There are now a fairly large number of mesh fields that really aren't needed in any other modes; move those into their own structure and allocate them separately. Signed-off-by: Johannes Berg net/mac80211/cfg.c | 8 +-- net/mac80211/mesh.c | 2 +- net/mac80211/mesh_hwmp.c | 2 +- net/mac80211/mesh_plink.c | 177 +++++++++++++++++++++++----------------------- net/mac80211/mesh_ps.c | 42 +++++------ net/mac80211/mesh_sync.c | 16 ++--- net/mac80211/sta_info.c | 37 ++++++---- net/mac80211/sta_info.h | 88 ++++++++++++----------- 8 files changed, 196 insertions(+), 176 deletions(-) commit e414eea77d1ae1201d5252964406a22adfa9f3c2 Author: Johannes Berg Date: Tue Jun 16 12:53:10 2015 +0200 mac80211: remove IEEE80211_RX_FRAGMENTED There's a long-standing TODO item to use this flag in the cooked monitor RX, but clearly it was never needed and now this hasn't been used by userspace for a long time, so no userspace changes could require it now. Remove the unused flag. Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 2 -- net/mac80211/rx.c | 2 -- 2 files changed, 4 deletions(-) commit ac100ce52a2d3b6261a06939d22e4382d9aa0bb2 Author: Johannes Berg Date: Tue Jun 16 16:22:12 2015 +0200 mac80211: duplicate station's MAC address for hash table Currently, the station hash table lookup (or iteration) must access two cachelines for each station - the one with the hash table node, and the one with the MAC address. Duplicate the MAC address next to the hash node to get rid of this. Since the MAC address is static there's no consistency problem introduced by this. Signed-off-by: Johannes Berg net/mac80211/sta_info.c | 3 ++- net/mac80211/sta_info.h | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) commit 981d94a80174e4f33bd5015fb49051bfc2eb00d2 Author: Johannes Berg Date: Fri Jun 12 14:39:02 2015 +0200 mac80211: support device/driver PN check for CCMP/GCMP When there are multiple RX queues, the PN checks in mac80211 cannot be used since packets might be processed out of order on different CPUs. Allow the driver to report that the PN has been checked, drivers that will use multi-queue RX will have to set this flag. For now, the flag is only valid when the frame has been decrypted, in theory that restriction doesn't have to be there, but in practice the hardware will have decrypted the frame already. Signed-off-by: Johannes Berg include/net/mac80211.h | 7 ++++- net/mac80211/wpa.c | 83 +++++++++++++++++++++++++++----------------------- 2 files changed, 51 insertions(+), 39 deletions(-) commit 77c96404a4cf16ffa0720a3fbf45839cc16018ac Author: Johannes Berg Date: Fri Jun 12 14:40:45 2015 +0200 mac80211: remove key TX/RX counter This counter is inherently racy (since it can be incremented by RX as well as by concurrent TX) and only available in debugfs. Instead of fixing it to be per-CPU or similar, remove it for now. If needed it should be added without races and with proper nl80211, perhaps even addressing the threshold reporting TODO item that's been there since the code was originally added. Signed-off-by: Johannes Berg net/mac80211/debugfs_key.c | 2 -- net/mac80211/key.h | 3 --- net/mac80211/rx.c | 1 - net/mac80211/tx.c | 1 - 4 files changed, 7 deletions(-) commit 0c028b5fd1bd10d5777756e571c6c1971f04062b Author: Johannes Berg Date: Fri Jun 12 14:33:54 2015 +0200 mac80211: remove zero-length A-MPDU subframe reporting As there's no driver using this capability and reporting zero-length A-MPDU subframes for radiotap monitoring, remove the capability to free up two RX flags. Signed-off-by: Johannes Berg include/net/mac80211.h | 6 +----- net/mac80211/rx.c | 7 +------ 2 files changed, 2 insertions(+), 11 deletions(-) commit af9f9b22beee70aae58651cdbb9d6375e6e51797 Author: Johannes Berg Date: Thu Jun 11 16:02:32 2015 +0200 mac80211: don't store napi struct When introducing multiple RX queues, a single NAPI struct will not be sufficient. Instead of trying to store multiple, simply change the API to have the NAPI struct passed to the RX function. This of course means that drivers using rx_irqsafe() cannot use NAPI, but that seems a reasonable trade-off, particularly since only two of all drivers are currently using it at all. While at it, we can now remove the IEEE80211_RX_REORDER_TIMER flag again since this code path cannot have a napi struct anyway. Signed-off-by: Johannes Berg drivers/net/wireless/iwlwifi/dvm/dev.h | 2 ++ drivers/net/wireless/iwlwifi/dvm/main.c | 3 ++- drivers/net/wireless/iwlwifi/dvm/rx.c | 2 +- drivers/net/wireless/iwlwifi/mvm/mvm.h | 1 + drivers/net/wireless/iwlwifi/mvm/ops.c | 3 ++- drivers/net/wireless/iwlwifi/mvm/rx.c | 2 +- include/net/mac80211.h | 37 +++++++++++++++++++++------------ net/mac80211/ieee80211_i.h | 6 +----- net/mac80211/main.c | 12 ----------- net/mac80211/rx.c | 18 +++++++++------- 10 files changed, 44 insertions(+), 42 deletions(-) commit 798a457dfb232535ebc9670082b8dfccdab684ff Author: Johannes Berg Date: Tue Jun 16 15:58:22 2015 +0200 mac80211: fix comment referring to RX queue There are no RX queues in mac80211 (yet), the comment should refer to the TID (including one slot for non-QoS) rather than 'RX queue'. Signed-off-by: Johannes Berg net/mac80211/sta_info.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a682849329ad5df5fd13a7b1ab08cbc39df5484b Author: Johannes Berg Date: Tue Jun 16 15:17:15 2015 +0200 mac80211: move ieee80211_get_bssid into RX file This function is only used in the RX code, so moving it into that file gives the compiler better optimisation possibilities and also allows us to remove the check for short frames (which in the RX path cannot happen, but as a generic utility needed to be checked.) Signed-off-by: Johannes Berg net/mac80211/ieee80211_i.h | 2 -- net/mac80211/rx.c | 45 ++++++++++++++++++++++++++++++++++++++++++ net/mac80211/util.c | 49 ---------------------------------------------- 3 files changed, 45 insertions(+), 51 deletions(-) commit 9ad8b21b742503030d543cd272de6a4eb3e3cc27 Author: Johannes Berg Date: Tue Jun 16 15:05:57 2015 +0200 mac80211: remove short frame test and counter Short frames less than 16 octets are already blocked in the monitor code by the should_drop_frame() function, and cannot get into the regular RX path. Therefore, this check can never trigger and the counter invariably stays zero. Remove the useless code. Signed-off-by: Johannes Berg net/mac80211/debugfs.c | 1 - net/mac80211/ieee80211_i.h | 1 - net/mac80211/rx.c | 5 ----- 3 files changed, 7 deletions(-) commit 16bf948081d0ea0f6cdef54b79a0250d4b099970 Author: Johannes Berg Date: Tue Jun 16 16:10:30 2015 +0200 mac80211: remove sta_info.gtk_idx This struct member is only assigned, never used otherwise; remove it. Signed-off-by: Johannes Berg net/mac80211/key.c | 1 - net/mac80211/sta_info.h | 2 -- 2 files changed, 3 deletions(-) commit cf47161ad26c293dd5f98186c0cc45d125da952c Author: Johannes Berg Date: Tue Jun 16 16:16:38 2015 +0200 mac80211: rename 'sta_inf' variable to more common 'sta' We typically use 'sta' for the station info struct, and if needed 'pubsta' for the public (driver-visible) portion thereof. Do this in the ieee80211_sta_ps_transition() function. Signed-off-by: Johannes Berg net/mac80211/rx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 5c48f1201744233d4f235c7dd916d5196ed20716 Author: Johannes Berg Date: Wed Jun 17 09:58:06 2015 +0200 mac80211: remove exposing 'mfp' to drivers There's no driver using this, so remove it. Signed-off-by: Johannes Berg include/net/mac80211.h | 2 -- net/mac80211/cfg.c | 1 - net/mac80211/mlme.c | 6 +----- 3 files changed, 1 insertion(+), 8 deletions(-) commit b1ccc8f4b63109f9e56fadf72274714dfb000123 Author: Martin Willi Date: Thu Jul 16 19:14:08 2015 +0200 crypto: poly1305 - Add a four block AVX2 variant for x86_64 Extends the x86_64 Poly1305 authenticator by a function processing four consecutive Poly1305 blocks in parallel using AVX2 instructions. For large messages, throughput increases by ~15-45% compared to two block SSE2: testing speed of poly1305 (poly1305-simd) test 0 ( 96 byte blocks, 16 bytes per update, 6 updates): 3809514 opers/sec, 365713411 bytes/sec test 1 ( 96 byte blocks, 32 bytes per update, 3 updates): 5973423 opers/sec, 573448627 bytes/sec test 2 ( 96 byte blocks, 96 bytes per update, 1 updates): 9446779 opers/sec, 906890803 bytes/sec test 3 ( 288 byte blocks, 16 bytes per update, 18 updates): 1364814 opers/sec, 393066691 bytes/sec test 4 ( 288 byte blocks, 32 bytes per update, 9 updates): 2045780 opers/sec, 589184697 bytes/sec test 5 ( 288 byte blocks, 288 bytes per update, 1 updates): 3711946 opers/sec, 1069040592 bytes/sec test 6 ( 1056 byte blocks, 32 bytes per update, 33 updates): 573686 opers/sec, 605812732 bytes/sec test 7 ( 1056 byte blocks, 1056 bytes per update, 1 updates): 1647802 opers/sec, 1740079440 bytes/sec test 8 ( 2080 byte blocks, 32 bytes per update, 65 updates): 292970 opers/sec, 609378224 bytes/sec test 9 ( 2080 byte blocks, 2080 bytes per update, 1 updates): 943229 opers/sec, 1961916528 bytes/sec test 10 ( 4128 byte blocks, 4128 bytes per update, 1 updates): 494623 opers/sec, 2041804569 bytes/sec test 11 ( 8224 byte blocks, 8224 bytes per update, 1 updates): 254045 opers/sec, 2089271014 bytes/sec testing speed of poly1305 (poly1305-simd) test 0 ( 96 byte blocks, 16 bytes per update, 6 updates): 3826224 opers/sec, 367317552 bytes/sec test 1 ( 96 byte blocks, 32 bytes per update, 3 updates): 5948638 opers/sec, 571069267 bytes/sec test 2 ( 96 byte blocks, 96 bytes per update, 1 updates): 9439110 opers/sec, 906154627 bytes/sec test 3 ( 288 byte blocks, 16 bytes per update, 18 updates): 1367756 opers/sec, 393913872 bytes/sec test 4 ( 288 byte blocks, 32 bytes per update, 9 updates): 2056881 opers/sec, 592381958 bytes/sec test 5 ( 288 byte blocks, 288 bytes per update, 1 updates): 3711153 opers/sec, 1068812179 bytes/sec test 6 ( 1056 byte blocks, 32 bytes per update, 33 updates): 574940 opers/sec, 607136745 bytes/sec test 7 ( 1056 byte blocks, 1056 bytes per update, 1 updates): 1948830 opers/sec, 2057964585 bytes/sec test 8 ( 2080 byte blocks, 32 bytes per update, 65 updates): 293308 opers/sec, 610082096 bytes/sec test 9 ( 2080 byte blocks, 2080 bytes per update, 1 updates): 1235224 opers/sec, 2569267792 bytes/sec test 10 ( 4128 byte blocks, 4128 bytes per update, 1 updates): 684405 opers/sec, 2825226316 bytes/sec test 11 ( 8224 byte blocks, 8224 bytes per update, 1 updates): 367101 opers/sec, 3019039446 bytes/sec Benchmark results from a Core i5-4670T. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/Makefile | 1 + arch/x86/crypto/poly1305-avx2-x86_64.S | 386 +++++++++++++++++++++++++++++++++ arch/x86/crypto/poly1305_glue.c | 40 ++++ crypto/Kconfig | 2 +- 4 files changed, 428 insertions(+), 1 deletion(-) commit da35b22df301128ba2f2238befd6d75067e80315 Author: Martin Willi Date: Thu Jul 16 19:14:07 2015 +0200 crypto: poly1305 - Add a two block SSE2 variant for x86_64 Extends the x86_64 SSE2 Poly1305 authenticator by a function processing two consecutive Poly1305 blocks in parallel using a derived key r^2. Loop unrolling can be more effectively mapped to SSE instructions, further increasing throughput. For large messages, throughput increases by ~45-65% compared to single block SSE2: testing speed of poly1305 (poly1305-simd) test 0 ( 96 byte blocks, 16 bytes per update, 6 updates): 3790063 opers/sec, 363846076 bytes/sec test 1 ( 96 byte blocks, 32 bytes per update, 3 updates): 5913378 opers/sec, 567684355 bytes/sec test 2 ( 96 byte blocks, 96 bytes per update, 1 updates): 9352574 opers/sec, 897847104 bytes/sec test 3 ( 288 byte blocks, 16 bytes per update, 18 updates): 1362145 opers/sec, 392297990 bytes/sec test 4 ( 288 byte blocks, 32 bytes per update, 9 updates): 2007075 opers/sec, 578037628 bytes/sec test 5 ( 288 byte blocks, 288 bytes per update, 1 updates): 3709811 opers/sec, 1068425798 bytes/sec test 6 ( 1056 byte blocks, 32 bytes per update, 33 updates): 566272 opers/sec, 597984182 bytes/sec test 7 ( 1056 byte blocks, 1056 bytes per update, 1 updates): 1111657 opers/sec, 1173910108 bytes/sec test 8 ( 2080 byte blocks, 32 bytes per update, 65 updates): 288857 opers/sec, 600823808 bytes/sec test 9 ( 2080 byte blocks, 2080 bytes per update, 1 updates): 590746 opers/sec, 1228751888 bytes/sec test 10 ( 4128 byte blocks, 4128 bytes per update, 1 updates): 301825 opers/sec, 1245936902 bytes/sec test 11 ( 8224 byte blocks, 8224 bytes per update, 1 updates): 153075 opers/sec, 1258896201 bytes/sec testing speed of poly1305 (poly1305-simd) test 0 ( 96 byte blocks, 16 bytes per update, 6 updates): 3809514 opers/sec, 365713411 bytes/sec test 1 ( 96 byte blocks, 32 bytes per update, 3 updates): 5973423 opers/sec, 573448627 bytes/sec test 2 ( 96 byte blocks, 96 bytes per update, 1 updates): 9446779 opers/sec, 906890803 bytes/sec test 3 ( 288 byte blocks, 16 bytes per update, 18 updates): 1364814 opers/sec, 393066691 bytes/sec test 4 ( 288 byte blocks, 32 bytes per update, 9 updates): 2045780 opers/sec, 589184697 bytes/sec test 5 ( 288 byte blocks, 288 bytes per update, 1 updates): 3711946 opers/sec, 1069040592 bytes/sec test 6 ( 1056 byte blocks, 32 bytes per update, 33 updates): 573686 opers/sec, 605812732 bytes/sec test 7 ( 1056 byte blocks, 1056 bytes per update, 1 updates): 1647802 opers/sec, 1740079440 bytes/sec test 8 ( 2080 byte blocks, 32 bytes per update, 65 updates): 292970 opers/sec, 609378224 bytes/sec test 9 ( 2080 byte blocks, 2080 bytes per update, 1 updates): 943229 opers/sec, 1961916528 bytes/sec test 10 ( 4128 byte blocks, 4128 bytes per update, 1 updates): 494623 opers/sec, 2041804569 bytes/sec test 11 ( 8224 byte blocks, 8224 bytes per update, 1 updates): 254045 opers/sec, 2089271014 bytes/sec Benchmark results from a Core i5-4670T. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/poly1305-sse2-x86_64.S | 306 +++++++++++++++++++++++++++++++++ arch/x86/crypto/poly1305_glue.c | 54 +++++- 2 files changed, 355 insertions(+), 5 deletions(-) commit c70f4abef07a99db6654be4f1190bacd69aa4365 Author: Martin Willi Date: Thu Jul 16 19:14:06 2015 +0200 crypto: poly1305 - Add a SSE2 SIMD variant for x86_64 Implements an x86_64 assembler driver for the Poly1305 authenticator. This single block variant holds the 130-bit integer in 5 32-bit words, but uses SSE to do two multiplications/additions in parallel. When calling updates with small blocks, the overhead for kernel_fpu_begin/ kernel_fpu_end() negates the perfmance gain. We therefore use the poly1305-generic fallback for small updates. For large messages, throughput increases by ~5-10% compared to poly1305-generic: testing speed of poly1305 (poly1305-generic) test 0 ( 96 byte blocks, 16 bytes per update, 6 updates): 4080026 opers/sec, 391682496 bytes/sec test 1 ( 96 byte blocks, 32 bytes per update, 3 updates): 6221094 opers/sec, 597225024 bytes/sec test 2 ( 96 byte blocks, 96 bytes per update, 1 updates): 9609750 opers/sec, 922536057 bytes/sec test 3 ( 288 byte blocks, 16 bytes per update, 18 updates): 1459379 opers/sec, 420301267 bytes/sec test 4 ( 288 byte blocks, 32 bytes per update, 9 updates): 2115179 opers/sec, 609171609 bytes/sec test 5 ( 288 byte blocks, 288 bytes per update, 1 updates): 3729874 opers/sec, 1074203856 bytes/sec test 6 ( 1056 byte blocks, 32 bytes per update, 33 updates): 593000 opers/sec, 626208000 bytes/sec test 7 ( 1056 byte blocks, 1056 bytes per update, 1 updates): 1081536 opers/sec, 1142102332 bytes/sec test 8 ( 2080 byte blocks, 32 bytes per update, 65 updates): 302077 opers/sec, 628320576 bytes/sec test 9 ( 2080 byte blocks, 2080 bytes per update, 1 updates): 554384 opers/sec, 1153120176 bytes/sec test 10 ( 4128 byte blocks, 4128 bytes per update, 1 updates): 278715 opers/sec, 1150536345 bytes/sec test 11 ( 8224 byte blocks, 8224 bytes per update, 1 updates): 140202 opers/sec, 1153022070 bytes/sec testing speed of poly1305 (poly1305-simd) test 0 ( 96 byte blocks, 16 bytes per update, 6 updates): 3790063 opers/sec, 363846076 bytes/sec test 1 ( 96 byte blocks, 32 bytes per update, 3 updates): 5913378 opers/sec, 567684355 bytes/sec test 2 ( 96 byte blocks, 96 bytes per update, 1 updates): 9352574 opers/sec, 897847104 bytes/sec test 3 ( 288 byte blocks, 16 bytes per update, 18 updates): 1362145 opers/sec, 392297990 bytes/sec test 4 ( 288 byte blocks, 32 bytes per update, 9 updates): 2007075 opers/sec, 578037628 bytes/sec test 5 ( 288 byte blocks, 288 bytes per update, 1 updates): 3709811 opers/sec, 1068425798 bytes/sec test 6 ( 1056 byte blocks, 32 bytes per update, 33 updates): 566272 opers/sec, 597984182 bytes/sec test 7 ( 1056 byte blocks, 1056 bytes per update, 1 updates): 1111657 opers/sec, 1173910108 bytes/sec test 8 ( 2080 byte blocks, 32 bytes per update, 65 updates): 288857 opers/sec, 600823808 bytes/sec test 9 ( 2080 byte blocks, 2080 bytes per update, 1 updates): 590746 opers/sec, 1228751888 bytes/sec test 10 ( 4128 byte blocks, 4128 bytes per update, 1 updates): 301825 opers/sec, 1245936902 bytes/sec test 11 ( 8224 byte blocks, 8224 bytes per update, 1 updates): 153075 opers/sec, 1258896201 bytes/sec Benchmark results from a Core i5-4670T. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/Makefile | 2 + arch/x86/crypto/poly1305-sse2-x86_64.S | 276 +++++++++++++++++++++++++++++++++ arch/x86/crypto/poly1305_glue.c | 123 +++++++++++++++ crypto/Kconfig | 12 ++ 4 files changed, 413 insertions(+) commit 2546f811ef45fc47fcb65531bea98beeed0c97cc Author: Martin Willi Date: Thu Jul 16 19:14:05 2015 +0200 crypto: poly1305 - Export common Poly1305 helpers As architecture specific drivers need a software fallback, export Poly1305 init/update/final functions together with some helpers in a header file. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu crypto/chacha20poly1305.c | 4 +-- crypto/poly1305_generic.c | 73 +++++++++++++++++++++++------------------------ include/crypto/poly1305.h | 41 ++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 41 deletions(-) commit 6692cbc28e88b4cbffaab84b82bfff888c03ed3a Author: Martin Willi Date: Thu Jul 16 19:14:04 2015 +0200 crypto: testmgr - Add a longer ChaCha20 test vector The AVX2 variant of ChaCha20 is used only for messages with >= 512 bytes length. With the existing test vectors, the implementation could not be tested. Due that lack of such a long official test vector, this one is self-generated using chacha20-generic. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu crypto/testmgr.h | 334 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 333 insertions(+), 1 deletion(-) commit 3d1e93cdf16cfe6f315167c65dc504e467e4681a Author: Martin Willi Date: Thu Jul 16 19:14:03 2015 +0200 crypto: chacha20 - Add an eight block AVX2 variant for x86_64 Extends the x86_64 ChaCha20 implementation by a function processing eight ChaCha20 blocks in parallel using AVX2. For large messages, throughput increases by ~55-70% compared to four block SSSE3: testing speed of chacha20 (chacha20-simd) encryption test 0 (256 bit key, 16 byte blocks): 42249230 operations in 10 seconds (675987680 bytes) test 1 (256 bit key, 64 byte blocks): 46441641 operations in 10 seconds (2972265024 bytes) test 2 (256 bit key, 256 byte blocks): 33028112 operations in 10 seconds (8455196672 bytes) test 3 (256 bit key, 1024 byte blocks): 11568759 operations in 10 seconds (11846409216 bytes) test 4 (256 bit key, 8192 byte blocks): 1448761 operations in 10 seconds (11868250112 bytes) testing speed of chacha20 (chacha20-simd) encryption test 0 (256 bit key, 16 byte blocks): 41999675 operations in 10 seconds (671994800 bytes) test 1 (256 bit key, 64 byte blocks): 45805908 operations in 10 seconds (2931578112 bytes) test 2 (256 bit key, 256 byte blocks): 32814947 operations in 10 seconds (8400626432 bytes) test 3 (256 bit key, 1024 byte blocks): 19777167 operations in 10 seconds (20251819008 bytes) test 4 (256 bit key, 8192 byte blocks): 2279321 operations in 10 seconds (18672197632 bytes) Benchmark results from a Core i5-4670T. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/Makefile | 1 + arch/x86/crypto/chacha20-avx2-x86_64.S | 443 +++++++++++++++++++++++++++++++++ arch/x86/crypto/chacha20_glue.c | 19 ++ crypto/Kconfig | 2 +- 4 files changed, 464 insertions(+), 1 deletion(-) commit 274f938e0a01286f465d84d5a3f1565225f4ec4b Author: Martin Willi Date: Thu Jul 16 19:14:02 2015 +0200 crypto: chacha20 - Add a four block SSSE3 variant for x86_64 Extends the x86_64 SSSE3 ChaCha20 implementation by a function processing four ChaCha20 blocks in parallel. This avoids the word shuffling needed in the single block variant, further increasing throughput. For large messages, throughput increases by ~110% compared to single block SSSE3: testing speed of chacha20 (chacha20-simd) encryption test 0 (256 bit key, 16 byte blocks): 43141886 operations in 10 seconds (690270176 bytes) test 1 (256 bit key, 64 byte blocks): 46845874 operations in 10 seconds (2998135936 bytes) test 2 (256 bit key, 256 byte blocks): 18458512 operations in 10 seconds (4725379072 bytes) test 3 (256 bit key, 1024 byte blocks): 5360533 operations in 10 seconds (5489185792 bytes) test 4 (256 bit key, 8192 byte blocks): 692846 operations in 10 seconds (5675794432 bytes) testing speed of chacha20 (chacha20-simd) encryption test 0 (256 bit key, 16 byte blocks): 42249230 operations in 10 seconds (675987680 bytes) test 1 (256 bit key, 64 byte blocks): 46441641 operations in 10 seconds (2972265024 bytes) test 2 (256 bit key, 256 byte blocks): 33028112 operations in 10 seconds (8455196672 bytes) test 3 (256 bit key, 1024 byte blocks): 11568759 operations in 10 seconds (11846409216 bytes) test 4 (256 bit key, 8192 byte blocks): 1448761 operations in 10 seconds (11868250112 bytes) Benchmark results from a Core i5-4670T. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/chacha20-ssse3-x86_64.S | 483 ++++++++++++++++++++++++++++++++ arch/x86/crypto/chacha20_glue.c | 8 + 2 files changed, 491 insertions(+) commit c9320b6dcb89658a5e53b4f8e31f4c2ee810ec2d Author: Martin Willi Date: Thu Jul 16 19:14:01 2015 +0200 crypto: chacha20 - Add a SSSE3 SIMD variant for x86_64 Implements an x86_64 assembler driver for the ChaCha20 stream cipher. This single block variant works on a single state matrix using SSE instructions. It requires SSSE3 due the use of pshufb for efficient 8/16-bit rotate operations. For large messages, throughput increases by ~65% compared to chacha20-generic: testing speed of chacha20 (chacha20-generic) encryption test 0 (256 bit key, 16 byte blocks): 45089207 operations in 10 seconds (721427312 bytes) test 1 (256 bit key, 64 byte blocks): 43839521 operations in 10 seconds (2805729344 bytes) test 2 (256 bit key, 256 byte blocks): 12702056 operations in 10 seconds (3251726336 bytes) test 3 (256 bit key, 1024 byte blocks): 3371173 operations in 10 seconds (3452081152 bytes) test 4 (256 bit key, 8192 byte blocks): 422468 operations in 10 seconds (3460857856 bytes) testing speed of chacha20 (chacha20-simd) encryption test 0 (256 bit key, 16 byte blocks): 43141886 operations in 10 seconds (690270176 bytes) test 1 (256 bit key, 64 byte blocks): 46845874 operations in 10 seconds (2998135936 bytes) test 2 (256 bit key, 256 byte blocks): 18458512 operations in 10 seconds (4725379072 bytes) test 3 (256 bit key, 1024 byte blocks): 5360533 operations in 10 seconds (5489185792 bytes) test 4 (256 bit key, 8192 byte blocks): 692846 operations in 10 seconds (5675794432 bytes) Benchmark results from a Core i5-4670T. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu arch/x86/crypto/Makefile | 2 + arch/x86/crypto/chacha20-ssse3-x86_64.S | 142 ++++++++++++++++++++++++++++++++ arch/x86/crypto/chacha20_glue.c | 123 +++++++++++++++++++++++++++ crypto/Kconfig | 15 ++++ 4 files changed, 282 insertions(+) commit 31d7247da57226e847f0f102a10c27c0722c429b Author: Martin Willi Date: Thu Jul 16 19:14:00 2015 +0200 crypto: chacha20 - Export common ChaCha20 helpers As architecture specific drivers need a software fallback, export a ChaCha20 en-/decryption function together with some helpers in a header file. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu crypto/chacha20_generic.c | 28 ++++++++++++---------------- crypto/chacha20poly1305.c | 3 +-- include/crypto/chacha20.h | 25 +++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 18 deletions(-) commit 2dce063a31ae6cbaf39964663fc59d10bef38d15 Author: Martin Willi Date: Thu Jul 16 19:13:59 2015 +0200 crypto: tcrypt - Add ChaCha20/Poly1305 speed tests Adds individual ChaCha20 and Poly1305 and a combined rfc7539esp AEAD speed test using mode numbers 214, 321 and 213. For Poly1305 we add a specific speed template, as it expects the key prepended to the input data. Signed-off-by: Martin Willi Signed-off-by: Herbert Xu crypto/tcrypt.c | 15 +++++++++++++++ crypto/tcrypt.h | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+) commit 747909223397e11743c81352b3e4fdd29346bbf9 Author: Herbert Xu Date: Thu Jul 16 12:35:08 2015 +0800 crypto: chacha20poly1305 - Convert to new AEAD interface This patch converts rfc7539 and rfc7539esp to the new AEAD interface. The test vectors for rfc7539esp have also been updated to include the IV. Signed-off-by: Herbert Xu Tested-by: Martin Willi crypto/chacha20poly1305.c | 213 +++++++++++++++++++++++++++------------------- crypto/testmgr.h | 10 ++- 2 files changed, 133 insertions(+), 90 deletions(-) commit 6e8ec66c3d9cebcbf71d66f92e40b5d7e1d1f490 Author: Tadeusz Struk Date: Wed Jul 15 15:28:43 2015 -0700 crypto: rsa - limit supported key lengths Introduce constrains for RSA keys lengths. Only key lengths of 512, 1024, 1536, 2048, 3072, and 4096 bits will be supported. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu crypto/rsa.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit a990532023b903b10cf14736241cdd138e4bc92c Author: Tadeusz Struk Date: Wed Jul 15 15:28:38 2015 -0700 crypto: qat - Add support for RSA algorithm Add RSA support to QAT driver. Removed unused RNG rings. Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/Kconfig | 2 + drivers/crypto/qat/qat_common/.gitignore | 1 + drivers/crypto/qat/qat_common/Makefile | 5 + drivers/crypto/qat/qat_common/adf_common_drv.h | 10 +- drivers/crypto/qat/qat_common/adf_init.c | 4 +- drivers/crypto/qat/qat_common/icp_qat_fw.h | 2 + drivers/crypto/qat/qat_common/icp_qat_fw_pke.h | 112 +++++ drivers/crypto/qat/qat_common/qat_algs.c | 5 - drivers/crypto/qat/qat_common/qat_asym_algs.c | 639 +++++++++++++++++++++++++ drivers/crypto/qat/qat_common/qat_crypto.c | 19 +- drivers/crypto/qat/qat_common/qat_crypto.h | 2 - drivers/crypto/qat/qat_common/qat_rsakey.asn1 | 5 + drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 12 - 13 files changed, 779 insertions(+), 39 deletions(-) commit 28cfaf67e5c1f5b6b0d549eea398f8401a40e566 Author: Tadeusz Struk Date: Wed Jul 15 15:28:32 2015 -0700 crypto: qat - add MMP FW support to accel engine Add code that loads the MMP firmware 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_accel_engine.c | 42 +++++++++++++++++++--- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 1 + .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 2 ++ 4 files changed, 42 insertions(+), 5 deletions(-) commit f3dd7e60d2028b8391dea7a3b214e3083dadf6d6 Author: Pingchao Yang Date: Wed Jul 15 15:28:26 2015 -0700 crypto: qat - add support for MMP FW Load Modular Math Processor(MMP) firmware into QAT devices to support public key algorithm acceleration. Signed-off-by: Pingchao Yang Signed-off-by: Tadeusz Struk Signed-off-by: Herbert Xu drivers/crypto/qat/qat_common/adf_accel_devices.h | 1 + drivers/crypto/qat/qat_common/adf_common_drv.h | 2 ++ drivers/crypto/qat/qat_common/qat_hal.c | 13 +++++++---- drivers/crypto/qat/qat_common/qat_uclo.c | 27 +++++----------------- .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 6 +++++ .../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 1 + 6 files changed, 24 insertions(+), 26 deletions(-) commit 544c436a8ecec2dc162c63116025da0e4e66ea4e Author: Herbert Xu Date: Tue Jul 14 16:53:22 2015 +0800 crypto: testmgr - Reenable rfc4309 test Now that all implementations of rfc4309 have been converted we can reenable the test. Signed-off-by: Herbert Xu crypto/testmgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cc81565307822a062820da294c17d9f3b6f49ecd Author: Herbert Xu Date: Tue Jul 14 16:53:21 2015 +0800 crypto: nx - Convert ccm to new AEAD interface This patch converts the nx ccm and 4309 implementations to the new AEAD interface. Signed-off-by: Herbert Xu drivers/crypto/nx/nx-aes-ccm.c | 153 +++++++++++++++++++---------------------- drivers/crypto/nx/nx.c | 21 +++--- drivers/crypto/nx/nx.h | 6 +- 3 files changed, 85 insertions(+), 95 deletions(-) commit 2642d6abca9bc3404b7b967914300169135dcd31 Author: Herbert Xu Date: Tue Jul 14 16:53:19 2015 +0800 crypto: aes-ce-ccm - Convert to new AEAD interface This patch converts the ARM64 aes-ce-ccm implementation to the new AEAD interface. Signed-off-by: Herbert Xu Reviewed-by: Ard Biesheuvel Tested-by: Ard Biesheuvel arch/arm64/crypto/aes-ce-ccm-glue.c | 69 +++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 26 deletions(-) commit 81c4c35eb61a69c229871c490b011c1171511d5a Author: Herbert Xu Date: Tue Jul 14 16:53:18 2015 +0800 crypto: ccm - Convert to new AEAD interface This patch converts generic ccm and its associated transforms to the new AEAD interface. Signed-off-by: Herbert Xu crypto/ccm.c | 388 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 224 insertions(+), 164 deletions(-) commit 0bc5a6c5c79a947e47af9655b0e3cc7e7a2bd0ca Author: Herbert Xu Date: Tue Jul 14 16:53:17 2015 +0800 crypto: testmgr - Disable rfc4309 test and convert test vectors This patch disables the rfc4309 test while the conversion to the new seqiv calling convention takes place. It also replaces the rfc4309 test vectors with ones that will work with the new IV convention. Signed-off-by: Herbert Xu crypto/testmgr.c | 2 +- crypto/testmgr.h | 1738 +++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 1467 insertions(+), 273 deletions(-) commit adb8963f27e00273c912a53f28f7af5d14cfd32e Author: Laurent Pinchart Date: Mon Apr 13 11:43:40 2015 -0300 [media] v4l: vsp1: Don't sleep in atomic context The vsp1_entity_is_streaming() function is called in atomic context when queuing buffers, and sleeps due to a mutex. As the mutex just protects access to one structure field, fix this by replace the mutex with a spinlock. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_entity.c | 18 +++++++++--------- drivers/media/platform/vsp1/vsp1_entity.h | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) commit df5c3e7c8a87a4384ff7a0adba16baae9a40a566 Author: Laurent Pinchart Date: Fri Jun 19 08:51:22 2015 -0300 [media] v4l: vsp1: Fix plane stride and size checks The checks need to be performed on up to two planes, as the third plane, if present, must have the same stride and size as the second plane. The code incorrectly performs the checks on at least two planes instead of at most two planes, fix it. Signed-off-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 e31f8f00bfc081ec1881d92a2dd192aeddf1d9d7 Author: Dan Carpenter Date: Wed Jun 24 11:28:31 2015 -0300 [media] v4l: xilinx: missing error code We should set "ret" on this error path instead of returning success. Fixes: df3305156f98 ('[media] v4l: xilinx: Add Xilinx Video IP core') Signed-off-by: Dan Carpenter Acked-by: Hyun Kwon Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/xilinx/xilinx-dma.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit d32d98642de66048f9534a05f3641558e811bbc9 Author: Mats Randgaard Date: Thu Jul 9 05:45:47 2015 -0300 [media] Driver for Toshiba TC358743 HDMI to CSI-2 bridge The driver is tested on our hardware and all the implemented features works as expected. Missing features: - CEC support - HDCP repeater support - IR support Signed-off-by: Mats Randgaard [hans.verkuil@cisco.com: updated copyright year to 2015] [hans.verkuil@cisco.com: update confusing confctl_mutex comment] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab MAINTAINERS | 7 + drivers/media/i2c/Kconfig | 9 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/tc358743.c | 1778 ++++++++++++++++++++++++++++++++++++ drivers/media/i2c/tc358743_regs.h | 681 ++++++++++++++ include/media/tc358743.h | 131 +++ include/uapi/linux/v4l2-controls.h | 4 + 7 files changed, 2611 insertions(+) commit 6986a0e2556df3dfb54c624b50b02936bd1e00ef Author: Heloise NH Date: Fri Jul 17 09:42:06 2015 +0800 ALSA: hda: fix kstrdup return value In kstrdup we should return -ENOMEM when it reports an memory allocation failure, while the -ENODEV is referred to a failure in finding the cpu node in the device tree. Signed-off-by: Heloise NH Signed-off-by: Takashi Iwai sound/pci/hda/hda_codec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bde2b96d6dfb1c14e5d27a4e7e7d492e9be102cd Author: Fabien Dessenne Date: Mon Jul 13 06:54:11 2015 -0300 [media] bdisp: fix debug info memory access bdisp_dev->dbg.copy_node shall be a copy of (and not point to) bdisp_ctx->node, since this resource is freed upon driver release. Signed-off-by: Fabien Dessenne Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/bdisp-hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 24310279eb2851a2bdef9b267b43b98e252ce435 Author: Fabien Dessenne Date: Fri Jul 10 05:29:37 2015 -0300 [media] bdisp: add debug info for RGB24 format Add this missing debug information Signed-off-by: Fabien Dessenne Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/bdisp-debug.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3d8bffe88316c0c8b5edad633fc8a25cae644bb4 Author: Fabien Dessenne Date: Fri Jul 10 05:29:22 2015 -0300 [media] bdisp: composing support Support the composing (at VIDEO_CAPTURE) with the _selection API. v4l2-compliance successfully run ("test Composing: OK") Signed-off-by: Fabien Dessenne Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sti/bdisp/bdisp-hw.c | 8 +-- drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 76 ++++++++++++++++++--------- 2 files changed, 55 insertions(+), 29 deletions(-) commit d3194520e2790591b5fabeb913dd74af908ca160 Author: Ezequiel Garcia Date: Fri Jul 3 16:11:42 2015 -0300 [media] stk1160: Add frame scaling support This commit implements frame decimation for stk1160, which allows to support format changes instead of a static frame size. The stk1160 supports independent row and column decimation, in two different modes: * set a number of rows/columns units to skip for each unit sent. * set a number of rows/columns units to send for each unit skipped. This effectively allows to achieve different frame scaling ratios. The unit number can be set to either two row/columns sent/skipped, or four row/columns sent/skipped. Since the video format (UYVY) has 4-bytes, using a unit number of two row/columns results in frame color 'shifting', so set to four row/columns sent/skipped. Signed-off-by: Michael Stegemann Signed-off-by: Dale Hamel Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/stk1160/stk1160-reg.h | 34 ++++++ drivers/media/usb/stk1160/stk1160-v4l.c | 201 +++++++++++++++++++++++++++----- 2 files changed, 207 insertions(+), 28 deletions(-) commit 890024ad144902bfa637f23b94b396701a88ed88 Author: Ezequiel Garcia Date: Fri Jul 3 16:11:41 2015 -0300 [media] stk1160: Reduce driver verbosity These messages are not really informational, and just makes the driver's output too verbose. This commit changes some messages to a debug level, removes a really useless "driver loaded" message and finally undefines the DEBUG macro. Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/stk1160/stk1160-core.c | 5 +---- drivers/media/usb/stk1160/stk1160-v4l.c | 16 ++++++++-------- drivers/media/usb/stk1160/stk1160.h | 1 - 3 files changed, 9 insertions(+), 13 deletions(-) commit f47c9045643f91e76d8a9030828b9fe1cf4a6bcf Author: Benoit Parrot Date: Mon Jun 29 18:19:06 2015 -0300 [media] media: am437x-vpfe: Requested frame size and fmt overwritten by current sensor setting Upon a S_FMT the input/requested frame size and pixel format is overwritten by the current sub-device settings. Fix this so application can actually set the frame size and format. Fixes: 417d2e507edc ("[media] media: platform: add VPFE capture driver support for AM437X") Cc: # v4.0+ Signed-off-by: Benoit Parrot Acked-by: Lad, Prabhakar Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/am437x/am437x-vpfe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2f8e75d2762496bb2fcea7fa437a3339d2a6d9d4 Author: Geert Uytterhoeven Date: Mon Jun 29 10:45:56 2015 -0300 [media] adv7604/cobalt: Allow compile test if !GPIOLIB The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer functionality only, can still be compiled if GPIOLIB is not enabled. Relax the dependency of VIDEO_ADV7604 and VIDEO_COBALT (the latter selects the former) on GPIOLIB if COMPILE_TEST is enabled. Signed-off-by: Geert Uytterhoeven Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/Kconfig | 3 ++- drivers/media/pci/cobalt/Kconfig | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit ee5da769b3f238f818045e7630ed9ee3788690bc Author: Hans Verkuil Date: Wed Jul 8 05:47:08 2015 -0300 [media] DocBook media: fix typo in V4L2_CTRL_FLAG_EXECUTE_ON_WRITE Fix small typo (missing 'it') in the documentation for V4L2_CTRL_FLAG_EXECUTE_ON_WRITE. Signed-off-by: Hans Verkuil Acked-by: Ricardo Ribalda Delgado Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/vidioc-queryctrl.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 86e46aa80d7456663afeac51971d4234dbc59e5d Author: Hans Verkuil Date: Thu Jul 2 10:32:39 2015 -0300 [media] DocBook: fix media-ioc-device-info.xml type The documentation had two media_version entries. The second one was a typo and it should be driver_version instead. Correct this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/media-ioc-device-info.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2cf4090fc8db8f9c2f3778a6a3768357a2b6aa6e Author: Lars-Peter Clausen Date: Wed Jun 24 13:50:31 2015 -0300 [media] adv7842: Deliver resolution change events to userspace Use the new v4l2_subdev_notify_event() helper function to deliver the resolution change event to userspace via the v4l2 subdev event queue as well as to the bridge driver using the callback notify mechanism. This allows userspace applications to react to changes in resolution. This is useful and often necessary for video pipelines where there is no direct 1-to-1 relationship between the subdevice converter and the video capture device and hence it does not make sense to directly forward the event to the video capture device node. Signed-off-by: Lars-Peter Clausen [hans.verkuil@cisco.com: fix obvious mistake: v4l2_event_subdev_unsubscribe -> v4l2_ctrl_subdev_subscribe_event] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7842.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) commit 6f5bcfc30e1918c6029ebfdc9ed5002d618ab3de Author: Lars-Peter Clausen Date: Wed Jun 24 13:50:30 2015 -0300 [media] adv7604: Deliver resolution change events to userspace Use the new v4l2_subdev_notify_event() helper function to deliver the resolution change event to userspace via the v4l2 subdev event queue as well as to the bridge driver using the callback notify mechanism. This allows userspace applications to react to changes in resolution. This is useful and often necessary for video pipelines where there is no direct 1-to-1 relationship between the subdevice converter and the video capture device and hence it does not make sense to directly forward the event to the video capture device node. Signed-off-by: Lars-Peter Clausen [hans.verkuil@cisco.com: fix obvious mistake: v4l2_event_subdev_unsubscribe -> v4l2_ctrl_subdev_subscribe_event] Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) commit 8ae5640f1b4af2e903802f771ba6a8f0c3497cab Author: Lars-Peter Clausen Date: Wed Jun 24 13:50:29 2015 -0300 [media] Add helper function for subdev event notifications Add a new helper function called v4l2_subdev_notify_event() which will deliver the specified event to both the v4l2 subdev event queue as well as to the notify callback. The former is typically used by userspace applications to listen to notification events while the later is used by bridge drivers. Combining both into the same function avoids boilerplate code in subdev drivers. Signed-off-by: Lars-Peter Clausen Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-subdev.c | 18 ++++++++++++++++++ include/media/v4l2-subdev.h | 4 ++++ 2 files changed, 22 insertions(+) commit bcae888039d5f0b522e1588c54f95a7612d1723c Merge: 3685bbc bdac2b6 Author: Linus Walleij Date: Fri Jul 17 14:45:31 2015 +0200 Merge branch 'queue/irq/gpio' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into devel commit aef5159ffc6bbf65d77af3a2e5b3d377c7c4f37a Author: Lars-Peter Clausen Date: Wed Jun 24 13:50:28 2015 -0300 [media] adv7842: Add support for control event notifications Allow userspace applications to subscribe to control change events. This can e.g. be used to monitor the 5V detect control to be notified when a source is connected or disconnected. Signed-off-by: Lars-Peter Clausen Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7842.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0975626d08b623ad42c89a6294b7c2f8391c69af Author: Lars-Peter Clausen Date: Wed Jun 24 13:50:27 2015 -0300 [media] adv7604: Add support for control event notifications Allow userspace applications to subscribe to control change events. This can e.g. be used to monitor the 5V detect control to be notified when a source is connected or disconnected. Signed-off-by: Lars-Peter Clausen Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit eb5c144cbbc0ca9bb9a77c7c83fddc87469318de Author: Bjorn Andersson Date: Wed Jun 17 23:47:30 2015 -0700 pinctrl: qcom: spmi-mpp: Transpose pinmux function The "function" of the MPP driver was inherited from the GPIO driver, but the differences between the two hardware blocks makes both the driver and the device tree binding to be awkward. Instead of overloading the "normal" function with various modes this patch transposes the pinmux function to represent the three operating modes of the MPP (digital, analog and current sink). The properties of pin pairing and DTEST routing is moved to separate properties. Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 29 ++-- drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 157 ++++++++++++--------- 2 files changed, 99 insertions(+), 87 deletions(-) commit 099f3e4adddc8fe9899fb879053887a95e9aed7d Author: Bjorn Andersson Date: Tue Jul 14 23:40:33 2015 -0700 pinctrl: qcom: spmi-mpp: Add support for setting analog output level When the MPP is configured for analog output the output level is selected by the AOUT_CTL register, this patch makes it possible to control this. Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 7 +++++++ drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 23 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) commit bd6eab90073814a3211fc9688c2d59ce369ccff2 Author: Joachim Eastwood Date: Wed Jul 15 00:25:27 2015 +0200 pinctrl: lpc18xx: add support for usb1 pinconf The dedicated USB1 pins can be configured with pull-down and for low power mode (suspend). Add support for this in the pinctrl driver. Signed-off-by: Joachim Eastwood Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-lpc18xx.c | 54 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 4 deletions(-) commit d96310aeddc692cf1f06861cf722c4843e0a3f28 Author: Jon Hunter Date: Tue Jul 14 11:17:59 2015 +0100 pinctrl: pinconf: Fix display of configs The function pinconf_dbg_config_print() only prints the configuration of the 1st pin config in an array of pin configurations. Fix this so that all pin configurations in the array are displayed. There are a few places in the code where the pin configs are displayed and so add a helper function to display the pin configs to simplify the code. Signed-off-by: Jon Hunter Signed-off-by: Linus Walleij drivers/pinctrl/pinconf.c | 64 ++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 37 deletions(-) commit 75629981069cf194336426bbbfb03f9c93d7ad67 Author: Jon Hunter Date: Tue Jul 14 11:17:58 2015 +0100 pinctrl: pinconf: Allow groups to be configured via debugfs The function pinconf_dbg_config_write() currently only supports configuring a pin configuration mapping via the debugfs. Allow group mappings to also be configured via the debugfs. Signed-off-by: Jon Hunter Signed-off-by: Linus Walleij drivers/pinctrl/pinconf.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit fb8dfda980bdaf178a7addb0a4f68574e390a9d9 Author: Hans Verkuil Date: Tue Jun 23 06:20:23 2015 -0300 [media] v4l2-event: v4l2_event_queue: do nothing if vdev == NULL If the vdev pointer == NULL, then just return. This makes it easier for subdev drivers to use this function without having to check if the sd->devnode pointer is NULL or not. Signed-off-by: Hans Verkuil Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-event.c | 3 +++ 1 file changed, 3 insertions(+) commit 3685bbce2ea6142e81c78e6f3d5b2a1cdc37660e Author: Vitaly Andrianov Date: Thu Jul 2 14:31:30 2015 -0400 gpio/davinci: add interrupt support for GPIOs 16-31 Interrupts for GPIOs 16 through 31 are enabled by bit 1 in the "binten" register (offset 8). Previous versions of GPIO only used bit 0, which enables GPIO 0-15 interrupts. Signed-off-by: Vitaly Andrianov Reviewed-by: Grygorii Strashko Reviewed-by: Sekhar Nori Signed-off-by: Linus Walleij drivers/gpio/gpio-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 675a9a9fda4e9b8634e7e93668f4a8c1311c0db4 Merge: 41cc14b bc0195a Author: Mauro Carvalho Chehab Date: Fri Jul 17 09:12:19 2015 -0300 Merge tag 'v4.2-rc2' into patchwork Linux 4.2-rc2 We need to backport changeset 31f02455455d, with fixes a bug at include/linux/compiler.h that breaks sparse. * tag 'v4.2-rc2': (221 commits) Linux 4.2-rc2 Revert "drm/i915: Use crtc_state->active in primary check_plane func" freeing unlinked file indefinitely delayed fix a braino in ovl_d_select_inode() 9p: don't leave a half-initialized inode sitting around tick/broadcast: Prevent NULL pointer dereference selinux: fix mprotect PROT_EXEC regression caused by mm change parisc: Fix some PTE/TLB race conditions and optimize __flush_tlb_range based on timing results stifb: Implement hardware accelerated copyarea nfit: add support for NVDIMM "latch" flag nfit: update block I/O path to use PMEM API tools/testing/nvdimm: add mock acpi_nfit_flush_address entries to nfit_test tools/testing/nvdimm: fix return code for unimplemented commands tools/testing/nvdimm: mock ioremap_wt pmem: add maintainer for include/linux/pmem.h Revert "Input: synaptics - allocate 3 slots to keep stability in image sensors" arm64: entry32: remove pointless register assignment MIPS: O32: Use compat_sys_getsockopt. MIPS: c-r4k: Extend way_string array MIPS: Pistachio: Support CDMM & Fast Debug Channel ... commit 41cc14ba11d7d8532ef4f615c39eb6ebdcdeef61 Author: Fabian Frederick Date: Wed Jun 10 13:32:44 2015 -0300 [media] ttusb-dec: use swap() in swap_bytes() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/ttusb-dec/ttusb_dec.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 2563606ce45314bfeae811edfa9984b1921fff06 Merge: 0154031 b17d1bf Author: Linus Walleij Date: Fri Jul 17 13:44:15 2015 +0200 Merge tag 'gpiod-flags-for-4.3' of git://git.pengutronix.de/git/ukl/linux into devel The last patch in this series makes the flags parameter for the various gpiod_get* functions mandatory and so allows to remove an ugly cpp hack introduced in commit 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) for v3.17-rc1. The other nine commits fix the last remaining users of these functions that don't pass flags yet. (Only etraxfs-uart wasn't fixed; this driver's use of the gpiod functions needs fixing anyhow.) commit bf1fc23c80e61695e8e899354d17549a4946a9d0 Merge: fa26e4d 322dfa6 Author: Mark Brown Date: Fri Jul 17 12:42:48 2015 +0100 Merge branch 'fix/88pm800' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-88pm800 Conflicts: drivers/regulator/88pm800.c commit 96f0e00378d4a1fc1b79933ef84e1595015de808 Author: Russell King Date: Wed Sep 3 23:57:13 2014 +0100 ARM: add basic support for on-demand backtrace of other CPUs As we now have generic infrastructure to support backtracing of other CPUs in the system on lockups, we can start to implement this for ARM. Initially, we add an IPI based implementation, as the GIC code needs modification to support the generation of FIQ IPIs, and not all ARM platforms have the ability to raise a FIQ in the non-secure world. This provides us with a "best efforts" implementation in the absence of FIQs. Signed-off-by: Russell King arch/arm/include/asm/irq.h | 5 +++++ arch/arm/kernel/smp.c | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) commit 4d7489ffba0aef4d2c708b6ff1428efd6ccf41df Author: Russell King Date: Fri Jul 10 21:47:36 2015 +0100 nmi: x86: convert to generic nmi handler Convert x86 to use the generic nmi handler code which can be shared between architectures. Reviewed-and-tested-by: Thomas Gleixner Signed-off-by: Russell King arch/x86/kernel/apic/hw_nmi.c | 133 ++---------------------------------------- 1 file changed, 4 insertions(+), 129 deletions(-) commit b2c0b2cbb282f0cf42518ffacbe197e6f2884168 Author: Russell King Date: Wed Sep 3 23:57:13 2014 +0100 nmi: create generic NMI backtrace implementation x86s NMI backtrace implementation (for arch_trigger_all_cpu_backtrace()) is fairly generic in nature - the only architecture specific bits are the act of raising the NMI to other CPUs, and reporting the status of the NMI handler. These are fairly simple to factor out, and produce a generic implementation which can be shared between ARM and x86. Reviewed-by: Thomas Gleixner Signed-off-by: Russell King include/linux/nmi.h | 6 ++ lib/Makefile | 2 +- lib/nmi_backtrace.c | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 169 insertions(+), 1 deletion(-) commit 9fc114c5d7af6cfb72a2d983e16b83161716d6d0 Author: Koro Chen Date: Fri Jul 17 11:33:12 2015 +0800 ASoC: rt5645: Add regulator support This adds basic regulator support for rt5645. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 61 ++++++++++++++++++++++++++++++++++++++++++++--- sound/soc/codecs/rt5645.h | 26 -------------------- 2 files changed, 58 insertions(+), 29 deletions(-) commit 5168c5476a07233ecafaed0effaa59859327e366 Author: Koro Chen Date: Fri Jul 17 11:33:11 2015 +0800 ASoC: rt5645: Fix missing free_irq The driver does not free irq when snd_soc_register_codec returns error. It does not return error when request irq failed, either. Add return when request irq failed, and free_irq if snd_soc_register_codec failed. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 582edace0b2af5f5fd44446ff6651a23417f1aee Author: Nicolas Boichat Date: Fri Jul 17 10:58:40 2015 +0800 ASoC: rt5645: Remove unused rt5645 variable "ASoC: rt5645: Simplify rt5645_enable_push_button_irq" removes the test that accessed rt5645->pdata.jd_mode (that test is now done in rt5645_jack_detect only), so we do not need that variable anymore. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 1 - 1 file changed, 1 deletion(-) commit 42d1b8ce2973c2f5956f4d4e4af002986ccc5748 Author: Axel Lin Date: Fri Jul 17 10:54:49 2015 +0800 ASoC: Constify dev_pm_ops variables The dev_pm_ops variables are not modified after initialization in these drivers, so make them const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/wm2200.c | 2 +- sound/soc/codecs/wm5100.c | 2 +- sound/soc/codecs/wm8962.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit b471e7f2ec5a8673e1b5385307357f3dba62f451 Author: Linus Walleij Date: Thu Jul 9 17:13:07 2015 +0200 ARM: ep93xx: add framebuffer to the defconfig The EP93xx SoC has a framebuffer driver, let's add this to the defconfig so we can have graphics working out of the box. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 0466b0cc6e238d280fa189417c8fc33271dfc776 Author: Linus Walleij Date: Thu Jul 9 17:12:00 2015 +0200 ARM: ep93xx: add DMA engine to the defconfig Several boards can make use of the DMA engine on the EP93xx so let's enable this by default in the defconfig. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit d74485eb90cd4a2f81bba48d3ac04113faef3cab Author: Linus Walleij Date: Thu Jul 9 17:10:44 2015 +0200 ARM: ep93xx: add GPIO I2C to defconfig Some of the EP93xx boards have I2C devices on bit-banged GPIO I2C, so add this to the defconfig. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 1 + 1 file changed, 1 insertion(+) commit 4abdd63925f2e21448fca0fbbb1077a1407937c2 Author: Linus Walleij Date: Tue Jun 16 10:34:46 2015 +0200 ARM: ep93xx: add LEDs and triggers to defconfig The EP93xx has two designated LEDs (not always connected): a green and a red one. These are registered in the core, so let's enable the driver and some triggers. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 7dc2753b70830054a9c079492e30c1a6c2feb62b Author: Linus Walleij Date: Tue Jun 16 09:26:45 2015 +0200 ARM: ep93xx: enable SIM.ONE MMC/SD hardware The SIM.ONE has a MMC card connected to the SPI host. This card usually hosts an EXT4 root file system. Enable these options in the defconfig so the default ompiled kernel will work out-of-the-box. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 5 +++++ 1 file changed, 5 insertions(+) commit 8430f7f9d7d62e0fcc97a033234cab54993641ff Author: Linus Walleij Date: Tue Jun 16 09:25:27 2015 +0200 ARM: ep93xx: enable all boards in the EP93xx defconfig With PATCH_PHYS_TO_VIRT we can support all EP93xx variants in a single image, so enable all board variants in the defconfig for simplicity and build coverage. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 3484550d6260a0ffe23976c63c0cfe4142fd1142 Author: Linus Walleij Date: Mon Jun 15 15:00:19 2015 +0200 ARM: ep93xx: activate NO_HZ and high-res timers Let's set the EP93xx to NO_HZ mode and activate the high-res timers now that we have GENERIC_CLOCKEVENTS. Tested-by: H Hartley Sweeten Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/configs/ep93xx_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 109965a32b67cf45951f4fcb92c8d606c0474619 Author: Linus Walleij Date: Thu Jul 9 16:56:40 2015 +0200 ARM: ep93xx: simone: enable DMA on the SPI host The SPI host on the SIM.ONE is used for the MMC/SD card and will badly need this turbo boost. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/simone.c | 1 + 1 file changed, 1 insertion(+) commit b07b4e2972372c1ca86dda78802aecc01cbc187a Author: H Hartley Sweeten Date: Tue Jun 16 09:52:47 2015 -0700 ARM: ep93xx: vision_ep9307: add audio support Add I2S audio support to the vision_ep9307 system. Signed-off-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/vision_ep9307.c | 58 ++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) commit 25105231f071960c0f7109f0e01ba55c7b823701 Author: H Hartley Sweeten Date: Tue Jun 16 09:52:46 2015 -0700 ARM: ep93xx: vision_ep9307: enable DMA for SPI Enable the 'use_dma' flag in the SPI platform data to improve the speed of the mmc_spi driver. Signed-off-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/vision_ep9307.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e8a7d2bb93f8b713b0536ef6f86b745b288fa96f Author: Linus Walleij Date: Thu Jun 18 16:46:34 2015 +0200 ARM: ep93xx: toss the device ID into the entropy pool It doesn't hurt to add this random stuff into the entropy pool as is custom to do with device-unique numbers. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/core.c | 7 +++++++ 1 file changed, 7 insertions(+) commit b8824c9a54bb380367541718b50f03cb08524c8d Author: H Hartley Sweeten Date: Mon Jun 15 10:35:06 2015 -0700 ARM: ep93xx: remove memory configuration options The ARM_PATCH_PHYS_VIRT option makes the ep93xx memory configuration options obsolete. This allows support for all the ep93xx variations to be built into a single kernel. Signed-off-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/Kconfig | 8 +++--- arch/arm/mach-ep93xx/Kconfig | 54 -------------------------------------- arch/arm/mach-ep93xx/Makefile.boot | 15 +---------- 3 files changed, 4 insertions(+), 73 deletions(-) commit 8ed3912e17973e48701f65efe4493811914fc5fe Author: Linus Walleij Date: Tue Jun 16 09:00:44 2015 +0200 ARM: ep93xx: update comment on timer usage When refactoring the EP93xx timer some of the documentation git out of date. Update it. Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/timer-ep93xx.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 9a98b3387e7bd9af5a6495b32e07d6f25071f4ba Author: Andrew Duggan Date: Thu Jul 16 17:14:00 2015 -0700 HID: rmi: Set F01 interrupt enable register when not set A firmware bug in some touchpads causes the F01 interrupt enable register to be cleared on reset. This register controls which RMI functions generate interrupts and when it is cleared, the touchpad stops reporting all data. This patch looks for the cleared F01 control register and writes the correct value based on interrupt mask computed while scanning the PDT. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91102 Signed-off-by: Andrew Duggan Signed-off-by: Jiri Kosina drivers/hid/hid-rmi.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 5 deletions(-) commit 2bdd163cfd262914e8f6152e37aebea2034f801e Author: Jason Gerecke Date: Mon Jul 13 18:03:45 2015 -0700 HID: wacom: Set default device name to value from wacom->features Allocated input devices should not use the 'pen_name' by default since we do not know at that point in time if that is an appropriate choice of name. Instead, use the (tool-agnostic) name that is stored in the device's 'wacom_features' structure. This also has the nice side-effect of requring us to be explicit about the naming of the pen device, as we already are for touch and pad devices. Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d9f2d203ab42f099b32ec4580e43eb08b3e4c412 Author: Jason Gerecke Date: Mon Jul 13 18:03:44 2015 -0700 HID: wacom: Properly free inputs if 'wacom_allocate_inputs' fails The 'wacom_allocate_inputs' function tries to allocate three input devices: one each for the pen, touch, and pad. The pointers that are returned by the 'wacom_allocate_input' calls are temporarily stored to local variables where they are checked to ensure they're non-null before storing them in the 'wacom_wac' structure. If an allocation fails, the 'wacom_free_inputs' function is called to reclaim the memory. Unfortunately, 'wacom_free_inputs' is called prior to the pointers being copied, so it is not actually able to free anything. This patch has the calls to 'wacom_allocate_input' store the pointer directly in the 'wacom_wac' structure where they can be freed. Also, it replaces the call to 'wacom_free_inputs' with the (more general) 'wacom_clean_inputs' and removes the no-longer-used function. [jkosina@suse.com: modify to resolve conflict with 67e123f ("Delete unnecessary checks")] Signed-off-by: Jason Gerecke Signed-off-by: Jiri Kosina drivers/hid/wacom_sys.c | 52 +++++++++++++++++-------------------------------- 1 file changed, 18 insertions(+), 34 deletions(-) commit 57f7e160a137f8ddae455f15abed9bdd1b90ab63 Merge: 70caee0 3eb4351 Author: Jiri Kosina Date: Fri Jul 17 11:19:37 2015 +0200 Merge branch 'for-4.3/upstream' into for-4.3/wacom There is a conflict between 67e123f ("Delete unnecessary checks") sitting in for-4.3/upstream and memory allocation failure handling from Jason Gerecke. Pull this so that conflict could be resolved. Signed-off-by: Jiri Kosina commit ad64498762dd6f262f8c7c37926cd56693e109ba Author: Stephen Boyd Date: Mon Jul 6 18:09:30 2015 -0700 pinctrl: qcom: Hook pm_power_down for shutdown support Assign pm_power_off() if we have the PS_HOLD functionality so that we can properly shutdown the SoC. Otherwise, shutdown won't do anything besides put the CPU into a tight loop. Unfortunately, we have to use a singleton here because pm_power_off() doesn't take any arguments. Fortunately there's only one instance of the pinctrl device on a running system so this isn't a problem. Cc: Pramod Gurav Signed-off-by: Stephen Boyd Acked-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-msm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 015403145a65f0a0f7c4d9badfb12759349d1e13 Author: Krzysztof Kozlowski Date: Thu Jul 9 22:19:53 2015 +0900 gpio: etraxfs: Fix devm_ioremap_resource return value check Value returned by devm_ioremap_resource() was checked for non-NULL but devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of error this could lead to dereference of ERR_PTR. Signed-off-by: Krzysztof Kozlowski Acked-by: Alexandre Courbot Acked-by: Rabin Vincent Signed-off-by: Linus Walleij drivers/gpio/gpio-etraxfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4b0c8bb016e7f36e2d6ec230f9177f88def690d5 Author: Damien Lespiau Date: Thu Jul 16 17:08:09 2015 +0100 drm/i915/skl: Drop the preliminary_hw_support flag Time to light a candle and remove the preliminary_hw_support flag. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 2 -- 1 file changed, 2 deletions(-) commit edd43ed8cebafd29cc24e4798cdf0412c668e644 Author: Damien Lespiau Date: Thu Jul 16 17:08:08 2015 +0100 drm/i915/skl: Don't expose the top most plane on gen9 display on SKL/BXT, the top most plane hardware is shared between the legacy cursor registers and an actual plane. Daniel and Ville don't want to expose 2 DRM planes and would rather expose a CURSOR plane that has all the usual plane properties, and that's a blocker for lifting the prelimary_hw_support flag. Unfortunately noone has had the time to finish this yet, but lifting the prelimary_hw_support flag is long overdue. As an intermediate solution we can merely not expose the top most plane Cc: Imre Deak Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 661abfc028886eb1c6b5b9dbc433ef8cfb11217d Author: Mika Kuoppala Date: Thu Jul 16 19:36:51 2015 +0300 drm/i915: Fix divide by zero on watermark update Fix divide by zero if we end up updating the watermarks with zero dotclock. This is a stop gap measure to allow module load in cases where our state keeping fails. v2: WARN_ON added (Paulo) Cc: Paulo Zanoni Cc: Damien Lespiau Signed-off-by: Mika Kuoppala Reviewed-by: Paulo Zanoni Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f9fe4b9b2ad4f2b801fdff3d634b07c9f9fc4327 Author: Sudip Mukherjee Date: Wed Jul 1 17:12:46 2015 +0530 drm/mgag200: remove unneeded variable ttm_bo_validate() returns 0 or error. So we can return the value directly and remove the variable 'ret'. Signed-off-by: Sudip Mukherjee Signed-off-by: Daniel Vetter drivers/gpu/drm/mgag200/mgag200_ttm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 546aee51ecacf6605b15f6a2580926f956dc5a3e Author: Sudip Mukherjee Date: Wed Jul 1 17:12:45 2015 +0530 drm/mgag200: remove unused variables These variables were assigned some values but they were never used. Signed-off-by: Sudip Mukherjee Signed-off-by: Daniel Vetter drivers/gpu/drm/mgag200/mgag200_fb.c | 2 -- drivers/gpu/drm/mgag200/mgag200_mode.c | 9 +++------ 2 files changed, 3 insertions(+), 8 deletions(-) commit 10dca88a4be632678088f5cbc20b54c2113ecb91 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/orion/time: Migrate to new 'set-state' interface Migrate orion driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Jason Cooper Cc: Andrew Lunn Cc: Sebastian Hesselbarth Cc: Gregory Clement Signed-off-by: Viresh Kumar arch/arm/plat-orion/time.c | 93 ++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 45 deletions(-) commit 8d778377e598bd78d4ce788b20b1c74777c5d137 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/iop/time: Migrate to new 'set-state' interface Migrate iop driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Russell King Signed-off-by: Viresh Kumar arch/arm/plat-iop/time.c | 70 +++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 27 deletions(-) commit 6c724d4388997588f38587213ce1ab7d3925b87c Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/w90x900/time: Migrate to new 'set-state' interface Migrate w90x900 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Wan ZongShun Signed-off-by: Viresh Kumar arch/arm/mach-w90x900/time.c | 51 ++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit 7639c0b8b3d5e061253936ed5279ff674be238cb Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/SPEAr/time: Migrate to new 'set-state' interface Migrate SPEAr driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Also kill the unnecessary forward declaration of set-mode routine by moving 'struct clock_event_device clkevt' towards the bottom of the file. Cc: Shiraz Hashim Signed-off-by: Viresh Kumar arch/arm/mach-spear/time.c | 89 ++++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 39 deletions(-) commit 74364615a643f65b6de9faa4112365e4880c7047 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/omap2/timer: Migrate to new 'set-state' interface Migrate omap2 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Acked-by: Santosh Shilimkar Acked-by: Tony Lindgren Signed-off-by: Viresh Kumar arch/arm/mach-omap2/timer.c | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) commit 69ec063f6018b5931974e7c4ac7a24b1a075ca25 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/omap1/timer32: Migrate to new 'set-state' interface Migrate omap timer32 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Acked-by: Santosh Shilimkar Acked-by: Tony Lindgren Signed-off-by: Viresh Kumar arch/arm/mach-omap1/timer32k.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 29105e102085a9c1a1eea4f634db2890aca884b8 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/omap1/time: Migrate to new 'set-state' interface Migrate omap driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Acked-by: Santosh Shilimkar Acked-by: Tony Lindgren Signed-off-by: Viresh Kumar arch/arm/mach-omap1/time.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) commit c22437b78e77ae05768d77d44bb5651ac7ef5da9 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/netx/time: Migrate to new 'set-state' interface Migrate netx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We aren't writing zero twice on the control register for shutdown or resume state now. Cc: Russell King Signed-off-by: Viresh Kumar arch/arm/mach-netx/time.c | 61 +++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 29 deletions(-) commit a785fb39e1b7070da5d53a7d09b140c80c31974e Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/mmp/time: Migrate to new 'set-state' interface Migrate mmp driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in set_mode(RESUME) except of local_irq_{save|restore}(), which isn't required and so ->tick_resume isn't implemented. Cc: Eric Miao Cc: Haojian Zhuang Signed-off-by: Viresh Kumar arch/arm/mach-mmp/time.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit 9325a3a896b611454f6ab3dcedf69c5799dd5617 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/lpc32xx/timer: Migrate to new 'set-state' interface Migrate lpc32xx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Roland Stigge Signed-off-by: Viresh Kumar arch/arm/mach-lpc32xx/timer.c | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) commit 7cfa3c69ca97acfd7cac19652d82aa610015bab8 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/ks8695/time: Migrate to new 'set-state' interface Migrate ks8695 driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. There is nothing to be done for oneshot or shutdown states and so are not implemented. Acked-by: Greg Ungerer Signed-off-by: Viresh Kumar arch/arm/mach-ks8695/time.c | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) commit cea50eeef15c8498181c4a1ff804a7cdef29aebb Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/ixp4xx/timer: Migrate to new 'set-state' interface Migrate ixp4xx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. NOTE: ixp4xx_set_{oneshot|periodic} don't perform read operation on 'IXP4XX_OSRT1' register anymore. Cc: Imre Kaloz Acked-by: Krzysztof Hałasa Signed-off-by: Viresh Kumar arch/arm/mach-ixp4xx/common.c | 68 +++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 28 deletions(-) commit 3200579fafb0400cd098e939ec664638d38e2bc9 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/imx/epit: Migrate to new 'set-state' interface Migrate imx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Also drop 'clockevent_mode': It was caching the last state of the clockevent device. The same behavior can be achieved by using clockevents state helpers. These helpers are only required for oneshot mode as shutdown/resume wouldn't be done twice by the core. Cc: Shawn Guo Cc: Sascha Hauer Signed-off-by: Viresh Kumar arch/arm/mach-imx/epit.c | 67 +++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 32 deletions(-) commit e2efda24804234c83e17172a2525641dd6b690bc Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/gemini/time: Migrate to new 'set-state' interface Migrate gemini driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Acked-by: Hans Ulli Kroll Signed-off-by: Viresh Kumar arch/arm/mach-gemini/time.c | 69 ++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 35 deletions(-) commit 947d9cf53f5c9c4dfbbffe68f07dd4d02da2093d Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/dc21285-timer: Migrate to new 'set-state' interface Migrate footbridge driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Russell King Signed-off-by: Viresh Kumar arch/arm/mach-footbridge/dc21285-timer.c | 48 +++++++++++++++----------------- 1 file changed, 23 insertions(+), 25 deletions(-) commit bc660a454f7899f21f2106be1a16e8d006dd2dba Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/davinci/time: Migrate to new 'set-state' interface Migrate davinci driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. We weren't doing anything in set_mode(RESUME) and so .tick_resume() isn't implemented. Cc: Sekhar Nori Cc: Kevin Hilman Signed-off-by: Viresh Kumar arch/arm/mach-davinci/time.c | 54 ++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 24 deletions(-) commit 9bdc2e0c9a45b2b5f4de9927562305475ecb9b55 Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/cns3xxx/timer: Migrate to new 'set-state' interface Migrate cns3xxx driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. NOTE: We don't read TIMER1_2_CONTROL_OFFSET register on shutdown anymore. Acked-by: Krzysztof Hałasa Signed-off-by: Viresh Kumar arch/arm/mach-cns3xxx/core.c | 55 +++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 24 deletions(-) commit 5e2535710ee3fa2807406ea75eb4381f85b29b0b Author: Viresh Kumar Date: Fri Feb 27 13:39:52 2015 +0530 ARM/smp_twd: Migrate to new 'set-state' interface Migrate smp_twd driver to the new 'set-state' interface provided by clockevents core, the earlier 'set-mode' interface is marked obsolete now. This also enables us to implement callbacks for new states of clockevent devices, for example: ONESHOT_STOPPED. Cc: Russell King Signed-off-by: Viresh Kumar arch/arm/kernel/smp_twd.c | 48 +++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) commit f2da4542268503d22869617b7dbcb40d364c78bb Author: kbuild test robot Date: Fri Jul 17 07:44:09 2015 +0800 ASoC: sti: sti_uniperiph_dai_create_ctrl() can be static Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/sti/sti_uniperif.c | 2 +- sound/soc/sti/uniperif_player.c | 4 ++-- sound/soc/sti/uniperif_reader.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) commit 821e79cb5686695f0adaef61587a184e953a937e Author: Magnus Damm Date: Thu Jul 16 16:54:14 2015 +0900 ARM: shmobile: Remove marzen_defconfig Now when the Marzen legacy board code is removed also get rid of the marzen_defconfig file. Existing users shall move over to shmobile_defconfig. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman arch/arm/configs/marzen_defconfig | 124 -------------------------------------- 1 file changed, 124 deletions(-) commit ba88d4338f226766f510e207911dde8c1875e072 Author: Kristen Carlson Accardi Date: Tue Jul 14 09:46:23 2015 -0700 intel_pstate: enable HWP per CPU HWP previously was only enabled at driver load time, on the boot CPU, however, HWP must be enabled per package. Move the code to enable HWP to the cpufreq driver init path so that it will be called per CPU. Signed-off-by: Kristen Carlson Accardi Tested-by: David Zhuang Signed-off-by: Rafael J. Wysocki drivers/cpufreq/intel_pstate.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 3a5f5b2e3b4ba165e342c4e969c7fa8d85be0d94 Author: Cristian Ardelean Date: Fri Jul 10 14:42:15 2015 -0400 cpufreq: integrator: fixed coding style issues Fixed coding style issues found by checkpatch.pl tool. Changed space indentation to tab, removed unneccesary braces, removed space between MODULE macros and parentheses. REMARKS: failed to 'make' this file with error message 'fatal error: asm/mach-types.h: No such file or directory'. Signed-off-by: Cristian Ardelean Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/integrator-cpufreq.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 8cfcfd39000d54188e0df1e0fafe63f53897b62a Author: Pan Xinhui Date: Fri Jul 10 14:36:20 2015 +0800 acpi-cpufreq: Fix an ACPI perf unregister issue As policy->cpu may not be same in acpi_cpufreq_cpu_init() and acpi_cpufreq_cpu_exit(). There is a risk that we use different CPU to un/register ACPI performance. So acpi_processor_unregister_performance() may not be able to do the cleanup work. That causes a memory leak. And if there will be another acpi_processor_register_performance() call, it may also fail thanks to the internal check of pr->performace. So add a new struct acpi_cpufreq_data field, acpi_perf_cpu, to fix this issue. Signed-off-by: Pan Xinhui Acked-by: Viresh Kumar [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki drivers/cpufreq/acpi-cpufreq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 7f0fa40f5a587c2a026de776cc6a26373ac0f244 Author: Viresh Kumar Date: Wed Jul 8 15:12:16 2015 +0530 cpufreq: Properly handle errors from cpufreq_init_policy() cpufreq_init_policy() can fail, and we don't do anything except a call to ->exit() on that. The policy should be freed if this happens. Do it properly. Reported-and-tested-by: "Jon Medhurst (Tixy)" Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit 8101f99703048ceaa31c756abe1098d099249ad9 Author: Viresh Kumar Date: Wed Jul 8 15:12:15 2015 +0530 cpufreq: cpufreq_add_dev: name goto labels based on what they do These labels are are named in two ways normally: - Based on what caused to jump to such labels - Based on what we do under such labels We follow the first naming convention today and that leads to multiple labels for doing the same work. Fix it by switching to the second way of naming them. Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/cpufreq.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit eb0b3e78e6290e5a1bf970830939d5c8c9151892 Author: Pan Xinhui Date: Tue Jul 7 20:43:26 2015 +0800 acpi-cpufreq: replace per_cpu with driver_data of policy Drivers can store their internal per-policy information in policy->driver_data, lets use it. we have benefits after this replacing. 1) memory saving. 2) policy is shared by several cpus, per_cpu seems not correct. using *driver_data* is more reasonable. 3) fix a memory leak in acpi_cpufreq_cpu_exit. as policy->cpu might change during cpu hotplug. So sometimes we cant't free *data*, use *driver_data* to fix it. 4) fix a zero return value of get_cur_freq_on_cpu. Only per_cpu of policy->cpu is set to *data*, if we try to get cpufreq on other cpus, we get zero instead of correct values. Use *driver_data* to fix it. Signed-off-by: Pan Xinhui Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki drivers/cpufreq/acpi-cpufreq.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit 97a859641ba1a5d7adf547ab971ab1867b467493 Author: Thomas Gleixner Date: Thu Jul 16 23:24:10 2015 +0200 PCI/keystone: Prepare irq handlers for irq argument removal Signed-off-by: Thomas Gleixner drivers/pci/host/pci-keystone.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5168a73ce32d38170a943aab4ff3402e2ddce641 Author: Thomas Gleixner Date: Sun Jun 21 21:11:05 2015 +0200 PCI/keystone: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Murali Karicheri Cc: Bjorn Helgaas Cc: linux-pci@vger.kernel.org Cc: Jiang Liu drivers/pci/host/pci-keystone.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 40b6d3faef73e6a877fe157f48df1af90bddd9e5 Author: Jiang Liu Date: Thu Jun 4 12:13:23 2015 +0800 PCI/keystone: Use irq_data_get_msi_desc() to avoid redundant lookup of irq_data Use irq_data_get_msi_desc() to avoid redundant lookup of irq_data while we already have a pointer to corresponding irq_data. Signed-off-by: Jiang Liu Cc: Bjorn Helgaas Cc: Murali Karicheri Cc: linux-pci@vger.kernel.org Signed-off-by: Thomas Gleixner drivers/pci/host/pci-keystone-dw.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 507a883ed5396825b88631b06cd27e050f5aa8fe Author: Jiang Liu Date: Mon Jun 1 16:05:42 2015 +0800 treewide: Use helper function to access irq_data->msi_desc Use irq_data access helper to access irq_data->msi_desc, so we can move msi_desc from struct irq_data into struct irq_common_data later. Signed-off-by: Jiang Liu Cc: Bjorn Helgaas Cc: Tony Luck Cc: Fenghua Yu Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Chris Metcalf Signed-off-by: Thomas Gleixner arch/ia64/kernel/msi_ia64.c | 2 +- arch/ia64/sn/kernel/msi_sn.c | 2 +- arch/powerpc/sysdev/xics/ics-opal.c | 2 +- arch/powerpc/sysdev/xics/ics-rtas.c | 2 +- arch/tile/kernel/pci_gx.c | 2 +- drivers/pci/msi.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) commit c391f262bee9d0d6424a99c85183a06c50e307ee Author: Jiang Liu Date: Mon Jun 1 16:05:41 2015 +0800 genirq: Rename irq_data_get_msi() as irq_data_get_msi_desc() Rename irq_data_get_msi() as irq_data_get_msi_desc() to keep consistency with other irq_data access helpers. Signed-off-by: Jiang Liu Acked-by: Bjorn Helgaas Cc: Jason Cooper Signed-off-by: Thomas Gleixner drivers/pci/host/pcie-designware.c | 2 +- drivers/pci/msi.c | 2 +- include/linux/irq.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 78edead4494219640d9fdf37d76beae24f79de9e Author: Kuninori Morimoto Date: Wed Jul 15 07:16:37 2015 +0000 ASoC: rsnd: tidyup SRC position on each code This is cleanup for CTU/MIX support Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/Makefile | 2 +- sound/soc/sh/rcar/core.c | 8 ++++---- sound/soc/sh/rcar/rsnd.h | 38 +++++++++++++++++++------------------- 3 files changed, 24 insertions(+), 24 deletions(-) commit 5cbbadd3d507eeb7711266e3932f4c427cbcbd61 Author: Kuninori Morimoto Date: Wed Jul 15 07:16:19 2015 +0000 ASoC: rsnd: add rsnd_io_to_mod() Sometimes we would like to get each module directly, especially data path searching. this patch adds rsnd_io_to_mod() macro, and existing rsnd_io_to_mod_xxx() use it. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ddea1b2e83c379840aa54fadc587e418cf986ccb Author: Kuninori Morimoto Date: Wed Jul 15 07:16:03 2015 +0000 ASoC: rsnd: dma: add DMA name on .ops Current rsnd driver is using Audio DMAC (via DMAEngine) and Audio DMAC peri peri (via original method), and usage of these DMAC are different. Indicates its naming is useful for debugging. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 9469b8b6092d347ef8a5fa9d2d7dde4c857a0994 Author: Kuninori Morimoto Date: Wed Jul 15 07:15:47 2015 +0000 ASoC: rsnd: check the Gen1 at the beginning of DVC probe DVC doesn't support Gen1, check it beginning of probe Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 98d358af07aa6fc4cd6cdfd3256ab792eb3675cd Author: Kuninori Morimoto Date: Wed Jul 15 07:15:27 2015 +0000 ASoC: rsnd: tidyup rsnd_dma_ops definition place rsnd_dma_ops is used only from dma.c, rsnd.h doesn't need it. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dma.c | 8 ++++++++ sound/soc/sh/rcar/rsnd.h | 7 ------- 2 files changed, 8 insertions(+), 7 deletions(-) commit 84e95355602c59865be8a3bd18cd2f0b3863b4cb Author: Kuninori Morimoto Date: Wed Jul 15 07:15:10 2015 +0000 ASoC: rsnd: show debug message for SSI/SRC/DVC connection It can help for connection debug Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 4689032b11d1af10e5eb755eb575f9761a455a72 Author: Kuninori Morimoto Date: Wed Jul 15 07:14:47 2015 +0000 ASoC: rsnd: tidyup data align position Sound L/R order of SSI is different from Linux sound data order. So current rsnd driver is using DALIGN (= data align) to exchange data align on SSIU. OTOH, CMD/SRC/SSIU have DALIGN register. Now inverted sound volume will be exchanged if user used volume control on DVC. Because SSIU which exchanges data align is located after DVC. MEM -> SRC -> DVC -> SSI This patch exchanges data align SRC if possible Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 36 ++++++++++++++++++++++++++++++++++++ sound/soc/sh/rcar/gen.c | 1 + sound/soc/sh/rcar/rsnd.h | 3 +++ sound/soc/sh/rcar/src.c | 20 +++++--------------- 4 files changed, 45 insertions(+), 15 deletions(-) commit bfe1360d79210f9c1d330a07c26a8d5cb202159d Author: Kuninori Morimoto Date: Wed Jul 15 07:14:29 2015 +0000 ASoC: rsnd: add rsnd_get_adinr_chan() Current rsnd driver has rsnd_get_adinr_bit() to get bit settings for ADINR (= Audio Information Register) of SSIU/SRC/DVC. This patch adds rsnd_get_adinr_chan() to get channel settings for ADINR (= Audio Information Register) of CTU/MIX. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 22 ++++++++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 1 + 2 files changed, 23 insertions(+) commit 3023b384d0c9da49028131b91fe64b24b5b84e6d Author: Kuninori Morimoto Date: Wed Jul 15 07:14:05 2015 +0000 ASoC: rsnd: tidyup ADINR function name Renesas sound IP (= SSIU/SRC/CTU/MIX/DVC) have ADINR (= Audio Information Register), but some of them (= SSIU/SRC/DVC) are for audio data bits, some of them (= CTU/MIX) are for audio data channels. Current rsnd driver is supporting SSIU/SRC/DVC, and these ADINR were for bits. This patch rename rsnd_get_adinr() to rsnd_get_adinr_bit(), and we will have rsnd_get_adinr_chan() for CTU/MIX. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 4 ++-- sound/soc/sh/rcar/dvc.c | 2 +- sound/soc/sh/rcar/rsnd.h | 2 +- sound/soc/sh/rcar/src.c | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) commit d1ade514e84ea55cba999edb04cb88daa4da94b8 Author: Kuninori Morimoto Date: Wed Jul 15 07:13:47 2015 +0000 ASoC: rsnd: add rsnd_src_initialize_lock/unlock() Renesas SCU (Sampling Rate Convert Unit) includes SRC/CTU/MIX/DVC, and these have similar register. xxxIR (Initialization Register) is one of them. These xxxIR need be set to 1 during initialization. Current rsnd driver has src.c / dvc.c, and we will have mix.c. It is readable if these have same named function. This patch adds rsnd_src_initialize_lock/unlock() and make sure it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit 3bb3d363e50d371289f0bd63b48da771ea807c02 Author: Kuninori Morimoto Date: Wed Jul 15 07:13:29 2015 +0000 ASoC: rsnd: add rsnd_dvc_initialize_lock/unlock() Renesas SCU (Sampling Rate Convert Unit) includes SRC/CTU/MIX/DVC, and these have similar register. xxxIR (Initialization Register) is one of them. These xxxIR need be set to 1 during initialization. Current rsnd driver has src.c / dvc.c, and we will have mix.c. It is readable if these have same named function. This patch adds rsnd_dvc_initialize_lock/unlock() and make sure it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit e2c08416196bd10a6575057fdd1347a307ce3a15 Author: Kuninori Morimoto Date: Wed Jul 15 07:13:10 2015 +0000 ASoC: rsnd: add rsnd_path_parse() for CTU/MIX/DVC route setting Current sound data route settings is done in dvc.c, and it doesn't care about CTU/MIX at this poinnt, but we need to care about these. OTOH, rsnd driver already has rsnd_path_xxx() functions for data path which are good match for CTU/MIX/DVC path selectio. This patch adds new rsnd_path_parse() to select sound data route which will care about CTU/MIX/DVC path. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 22 ++++++++++++++++++++++ sound/soc/sh/rcar/dvc.c | 40 +++++++++------------------------------- sound/soc/sh/rcar/rsnd.h | 2 ++ 3 files changed, 33 insertions(+), 31 deletions(-) commit c8cf15f64f8ddb3169987c2f26df3341b8556296 Author: Kuninori Morimoto Date: Wed Jul 15 07:12:52 2015 +0000 ASoC: rsnd: rename rsnd_path_parse/break() into add/remove parse/break is a little ambiguous/confusable name for rsnd module path. Especially for CTU/MIX support. It was renamed to add/remove Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d6f8d5b4422a5a391c02df97af9ef7da5a929d71 Author: Kuninori Morimoto Date: Wed Jul 15 07:12:36 2015 +0000 ASoC: rsnd: enable module multi connection '8a4e379b54f8("ASoC: rsnd: remove io from rsnd_mod")' removed mod/io relationship. rsnd_dai_connect() mod/io check is no longer needed Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 10 ---------- 1 file changed, 10 deletions(-) commit 379febfd2e30ec8db5baccd9f9403bf650c6afa1 Author: Kuninori Morimoto Date: Wed Jul 15 07:12:18 2015 +0000 ASoC: rsnd: src: make sure SRC soft reset Renesas SCU (Sampling Rate Convert Unit) includes SRC/CTU/MIX/DVC, and these have similar register. xxxRSR (Software reset Register) is one of them. These xxxRSR need be set to 1 to 0 when software reset. Current rsnd driver has src.c / dvc.c, and we will have mix.c. It is readable if these have same named function. This patch adds rsnd_src_soft_reset() and make sure it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 636e4bad5cca947839c09d3e13ad6feeb7fa45da Author: Kuninori Morimoto Date: Wed Jul 15 07:12:00 2015 +0000 ASoC: rsnd: dvc: make sure DVC soft reset Renesas SCU (Sampling Rate Convert Unit) includes SRC/CTU/MIX/DVC, and these have similar register. xxxRSR (Software reset Register) is one of them. These xxxRSR need be set to 1 to 0 when software reset. Current rsnd driver has src.c / dvc.c, and we will have mix.c. It is readable if these have same named function. This patch adds rsnd_dvc_soft_reset() and make sure it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit da599fd34b1f2f14f2c387e6b3a909f9ff519c8a Author: Kuninori Morimoto Date: Wed Jul 15 07:11:21 2015 +0000 ASoC: rsnd: move SRC specific macro into src.c rsnd_src_nr() is used only from src.c Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 2 -- sound/soc/sh/rcar/src.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) commit 4f35fabaa30b116d549d95fe7dae907510c71862 Author: Kuninori Morimoto Date: Wed Jul 15 07:11:02 2015 +0000 ASoC: rsnd: move DVC specific macro into dvc.c rsnd_dvc_nr() is used only from dvc.c Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 1 + sound/soc/sh/rcar/rsnd.h | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) commit 72413c107e81386a7da438bcf888ee2af5d3b72f Author: Kuninori Morimoto Date: Wed Jul 15 07:10:43 2015 +0000 ASoC: rsnd: rsnd_mod_id() return -1 if mod was NULL enabling to use same method for exception case is useful. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/rsnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a1bf58aafd09b3cb148eead3d709e2d7974a1f3 Author: Kuninori Morimoto Date: Wed Jul 15 07:10:22 2015 +0000 ASoC: rsnd: add workaround for SRC sync convert + DVC We couldn't use SRC sync convert mode together with DVC, but we can use workaround for it. This patch adds workaround and can use SRC sync convert + DVC Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) commit a48e3f9747fd62b385221a892cd4726b82dacd11 Author: Kuninori Morimoto Date: Wed Jul 15 07:10:04 2015 +0000 ASoC: rsnd: fixup each module counter on __rsnd_mod_call() '5451ea443b ("ASoC: rsnd: count each mod (SSI/SRC/DVC)")' counts each module's callback status, but counts 1st callback only. This patch fixup it. Otherwise, multi-called function will be trouble Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit efa991dc9143815179fd55a88e846cc39792608c Author: Kuninori Morimoto Date: Wed Jul 15 07:09:47 2015 +0000 ASoC: rsnd: rename INT_ENABLE to SSI_INT_ENABLE based on datasheet Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/gen.c | 2 +- sound/soc/sh/rcar/rsnd.h | 2 +- sound/soc/sh/rcar/src.c | 9 ++++----- 3 files changed, 6 insertions(+), 7 deletions(-) commit cdde84d10d3cb4d35051bc5fdb268f6faf33d1c8 Author: Kuninori Morimoto Date: Wed Jul 15 07:09:27 2015 +0000 ASoC: rsnd: rename BUSIF_DALIGN to SSI_BUSIF_DALIGN based on datasheet Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/gen.c | 2 +- sound/soc/sh/rcar/rsnd.h | 2 +- sound/soc/sh/rcar/src.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 6abcae32ea68899bfd4b770433860a71f8c3500b Author: Kuninori Morimoto Date: Wed Jul 15 07:09:07 2015 +0000 ASoC: rsnd: remove unnecessary 'out of memory' message from DVC Current checkpatch.pl indicates 'out of memory' message is unnecessary. Let's remove it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/dvc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 33363f7a18f3baaa04b678aac8819c43296c8c9c Author: Kuninori Morimoto Date: Wed Jul 15 07:08:44 2015 +0000 ASoC: rsnd: remove unnecessary 'out of memory' message from SRC Current checkpatch.pl indicates 'out of memory' message is unnecessary. Let's remove it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/src.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit afa700729646761f58cc068d86a37e09a70e4cf6 Author: Kuninori Morimoto Date: Wed Jul 15 07:08:24 2015 +0000 ASoC: rsnd: remove unnecessary 'out of memory' message from SSI Current checkpatch.pl indicates 'out of memory' message is unnecessary. Let's remove it Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown sound/soc/sh/rcar/ssi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b7419dd73606118b8797d49b53a9fbe2e2dfa863 Author: Kuninori Morimoto Date: Wed Jul 15 07:08:05 2015 +0000 ASoC: rsrc-card: use snd_soc_of_parse_audio_route/prefix for routing using common audio routing path method makes sense. Let's use snd_soc_of_parse_audio_route/prefix. Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown .../bindings/sound/renesas,rsrc-card.txt | 7 +++++++ sound/soc/sh/rcar/rsrc-card.c | 22 ++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) commit 904e8b0b3074a570b6e714fbc3db72441f313638 Merge: 7b47ab4 5e3cdaa Author: Mark Brown Date: Thu Jul 16 22:04:17 2015 +0100 Merge branch 'topic/of-name' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rcar commit 2de9d6006c190bb0f706e8404de94cd94293801f Author: Nariman Poushin Date: Thu Jul 16 16:36:22 2015 +0100 regmap: Apply optional delay in multi_reg_write/register_patch Add an optional delay_us field in reg_sequence to allow the client to specify a delay (in microseconds) to be applied after any given write in a sequence of writes. We treat a delay in a sequence the same way we treat a page change as they are logically similar in that you can coalesce all write before a delay (in the same way you can coalesce all writes before a page change is needed) Signed-off-by: Nariman Poushin Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 54 +++++++++++++++++++++++++++++++++++++++----- include/linux/regmap.h | 5 +++- 2 files changed, 52 insertions(+), 7 deletions(-) commit 8019ff6cfc0440415fcfb6352c58c3951e6ab053 Author: Nariman Poushin Date: Thu Jul 16 16:36:21 2015 +0100 regmap: Use reg_sequence for multi_reg_write / register_patch Separate the functionality using sequences of register writes from the functions that take register defaults. This change renames the arguments in order to support the extension of reg_sequence to take an optional delay to be applied after any given register in a sequence is written. This avoids adding an int to all register defaults, which could substantially increase memory usage for regmaps with large default tables. This also updates all the clients of multi_reg_write/register_patch. Signed-off-by: Nariman Poushin Signed-off-by: Mark Brown drivers/base/regmap/internal.h | 2 +- drivers/base/regmap/regmap.c | 22 +++++++++++----------- drivers/gpu/drm/i2c/adv7511.c | 2 +- drivers/input/misc/drv260x.c | 6 +++--- drivers/input/misc/drv2665.c | 2 +- drivers/input/misc/drv2667.c | 4 ++-- drivers/mfd/arizona-core.c | 2 +- drivers/mfd/twl6040.c | 2 +- drivers/mfd/wm5102-tables.c | 6 +++--- drivers/mfd/wm5110-tables.c | 6 +++--- drivers/mfd/wm8994-core.c | 8 ++++---- drivers/mfd/wm8997-tables.c | 2 +- include/linux/regmap.h | 17 ++++++++++++++--- sound/soc/codecs/arizona.c | 2 +- sound/soc/codecs/cs35l32.c | 2 +- sound/soc/codecs/cs42l52.c | 2 +- sound/soc/codecs/da7210.c | 4 ++-- sound/soc/codecs/rt5640.c | 2 +- sound/soc/codecs/rt5645.c | 4 ++-- sound/soc/codecs/rt5651.c | 2 +- sound/soc/codecs/rt5670.c | 2 +- sound/soc/codecs/rt5677.c | 2 +- sound/soc/codecs/tlv320aic3x.c | 2 +- sound/soc/codecs/wm2200.c | 2 +- sound/soc/codecs/wm5100.c | 2 +- sound/soc/codecs/wm8962.c | 2 +- sound/soc/codecs/wm8993.c | 2 +- 27 files changed, 62 insertions(+), 51 deletions(-) commit 5e3cdaa20816dd2fe4dc17d06a9f0dae0abc930c Author: Kuninori Morimoto Date: Wed Jul 15 07:07:42 2015 +0000 ASoC: core: add snd_soc_of_parse_audio_prefix() Current ASoC can add name_prefix for DAPM, and it is necessary for route settings. This patch adds snd_soc_of_parse_audio_prefix() for this purpose. It will be used with snd_soc_of_parse_audio_routing(). Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi Signed-off-by: Mark Brown include/sound/soc.h | 4 ++++ sound/soc/soc-core.c | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) commit e40da86a37f64c73b810bc7a63d77c44dc61accb Author: Tim Howe Date: Thu Jul 16 14:51:40 2015 -0500 ASoC: cs4349: Add support for Cirrus Logic CS4349 Signed-off-by: Tim Howe Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/cs4349.txt | 19 + sound/soc/codecs/Kconfig | 6 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/cs4349.c | 401 +++++++++++++++++++++ sound/soc/codecs/cs4349.h | 146 ++++++++ 5 files changed, 574 insertions(+) commit 9fc0fd6b052be4390138bb6c4bae07d6b7e1aa66 Author: Thomas Gleixner Date: Thu Jul 16 22:42:21 2015 +0200 irqchip/spear-shirq: Prepare shirq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/spear-shirq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 71093eb2cf720a1eded53c0711c4fa691185e82c Author: Thomas Gleixner Date: Thu Jul 16 22:41:39 2015 +0200 irqchip/versatile-fpga: Prepare fpga_irq_handle for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-versatile-fpga.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e616e9af87206dfd00753c1546388210fe5d0002 Author: Thomas Gleixner Date: Thu Jul 16 22:40:58 2015 +0200 irqchip/tb10x: Prepare tb10x_irq_cascade for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-tb10x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4df18a668c45d2069d731eccb75b7558052c8718 Author: Thomas Gleixner Date: Thu Jul 16 22:39:29 2015 +0200 irqchip/s3c24xx: Prepare s3c_irq_demux for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-s3c24xx.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 14873aa1d1c97a11cec57ae1345da467d4b6d4d7 Author: Thomas Gleixner Date: Thu Jul 16 22:38:51 2015 +0200 irqchip/mmp: Prepare icu_mux_irq_demux for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-mmp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 283653a368f49773ee7242e2a03227d7de5d3a7e Author: Thomas Gleixner Date: Thu Jul 16 22:38:07 2015 +0200 irqchip/keystone: Prepare keystone_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-keystone.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 99705f995a704fdf8625464d70ef5c5750ea55e2 Author: Thomas Gleixner Date: Thu Jul 16 22:37:28 2015 +0200 irqchip/imgpdc: Prepare pdc_intc_perip_isr for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-imgpdc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 00db2ae52a78f6ba23c16c22696da59f4f2a4da0 Author: Thomas Gleixner Date: Thu Jul 16 22:35:20 2015 +0200 irqchip/brcmstb-l2: Prepare brcmstb_l2_intc_irq_handle for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/irq-brcmstb-l2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 77b563ed06a63e59ce1bf2803170898e852b3866 Author: Thomas Gleixner Date: Thu Jul 16 22:21:39 2015 +0200 irqchip/exynos: Prepare combiner_handle_cascade_irq for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall drivers/irqchip/exynos-combiner.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 28f3b6f113186ff69bdc5e63126ae7fd5e35a138 Author: Omair M Abdullah Date: Fri Jul 10 22:18:45 2015 +0530 ASoC: Intel: Skylake: Print error code in IPC for SKL Signed-off-by: Omair M Abdullah Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-ipc.c | 6 ++++++ 1 file changed, 6 insertions(+) commit a750ba5f5a564732ed2be87de836a5a74f9cc586 Author: Subhransu S. Prusty Date: Fri Jul 10 22:18:44 2015 +0530 ASoC: Intel: Skylake: Add SKL DSP initialization This adds the dsp and ipc initialization for the Skylake platform. It also requests firmware and uses code loader dma to load it. Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/Makefile | 3 +- sound/soc/intel/skylake/skl-sst-dsp.h | 11 ++ sound/soc/intel/skylake/skl-sst-ipc.c | 2 + sound/soc/intel/skylake/skl-sst.c | 280 ++++++++++++++++++++++++++++++++++ 4 files changed, 295 insertions(+), 1 deletion(-) commit 6cb0033380ec6297589e68bfcf19aeda7ba95e99 Author: Subhransu S. Prusty Date: Fri Jul 10 22:18:43 2015 +0530 ASoC: Intel: Skylake: Process code loader DMA interrupt The code loader DMA interrupt is received by main interrupt handler which dispatches it to cldma routines Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-dsp.c | 5 +++++ sound/soc/intel/skylake/skl-sst-ipc.c | 3 +++ 2 files changed, 8 insertions(+) commit 3e40a78461739d86fe1084c515ec227507ba993d Author: Vinod Koul Date: Fri Jul 10 22:18:42 2015 +0530 ASoC: Intel: Skylake: Add code loader DMA APIs This patch adds the last piece of code loader DMA APIs by adding the code loader DMA APIs for the driver to use Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp-priv.h | 3 + sound/soc/intel/skylake/Makefile | 2 +- sound/soc/intel/skylake/skl-sst-cldma.c | 133 ++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-sst-dsp.h | 6 ++ 4 files changed, 143 insertions(+), 1 deletion(-) commit 914426c8657c1e934b015ffa32e7bfd0cb34f47f Author: Vinod Koul Date: Fri Jul 10 22:18:41 2015 +0530 ASoC: Intel: Skylake: add code loader DMA operations This patch starts adding code loader DMA handling internal operations for setting up bdle, controller, spb, cleanup routines and buffer filling Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.c | 194 ++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-sst-cldma.h | 60 ++++++++++ 2 files changed, 254 insertions(+) commit e30903877fde33192b80100b7f63f2af97b2bd86 Author: Vinod Koul Date: Fri Jul 10 22:18:40 2015 +0530 ASoC: Intel: Skylake: Add code loader DMA registers Skylake has a DMA controller for loading DSP code and modules to memory. Add the register defines for this DMA Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-cldma.h | 191 ++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) commit b662680252fa6e3bc53ad087078dd1fe7496449c Author: Subhransu S. Prusty Date: Fri Jul 10 22:18:39 2015 +0530 ASoC: Intel: Skylake: Add dsp loader ops The ops is initialized during the dsp registration and used for the allocating dma buffers. Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-dsp.h | 9 +++++++++ 1 file changed, 9 insertions(+) commit 2a32b401a11fc48193e58b0a5af6ea82de0272de Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:55 2015 +0900 regulator: Remove the max77843 driver The max77693 regulator driver supports Maxim 77843 device so remove the max77843 driver. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/Kconfig | 8 -- drivers/regulator/Makefile | 1 - drivers/regulator/max77843.c | 203 ------------------------------------------- 3 files changed, 212 deletions(-) commit 9e9a08e86733d994fe08876de7878148411d6bb5 Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:54 2015 +0900 regulator: max77693: Add support for MAX77843 device The charger and safeout parts of MAX77843 are almost the same as MAX77693. From regulator point of view the only differences are the constraints and register values related to these constraints. Now the max77693 regulator driver can be used for MAX77843 device. Signed-off-by: Krzysztof Kozlowski Acked-by: Mark Brown Signed-off-by: Mark Brown drivers/regulator/Kconfig | 8 +-- drivers/regulator/max77693.c | 125 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 117 insertions(+), 16 deletions(-) commit 309a3e00a511a233acb25eec567a4b11c99d016a Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:53 2015 +0900 mfd/extcon: max77843: Rename defines to allow inclusion with max77693 Add MAX77843_MUIC prefix to some of the defines used in max77843 extcon driver so the max77693-private.h can be included simultaneously with max77843-private.h. Signed-off-by: Krzysztof Kozlowski Acked-by: Lee Jones Acked-by: Chanwoo Choi Signed-off-by: Mark Brown drivers/extcon/extcon-max77843.c | 49 +++++++---- include/linux/mfd/max77843-private.h | 154 +++++++++++++++++------------------ 2 files changed, 109 insertions(+), 94 deletions(-) commit cceb433a1e2930301b33c79016eff147eb555cea Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:52 2015 +0900 mfd/extcon: max77693: Rename defines to allow inclusion with max77843 Add MAX77693 prefix to some of the defines used in max77693 extcon driver so the max77693-private.h can be included simultaneously with max77843-private.h. Additionally use BIT() macro in header. Signed-off-by: Krzysztof Kozlowski Acked-by: Lee Jones Acked-by: Chanwoo Choi Signed-off-by: Mark Brown drivers/extcon/extcon-max77693.c | 72 +++++++++++++------------ include/linux/mfd/max77693-private.h | 102 +++++++++++++++++------------------ 2 files changed, 89 insertions(+), 85 deletions(-) commit bc1aadc18621ccf93fb33ecbb847b422c354899d Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:51 2015 +0900 drivers: max77843: Switch to common max77693 state container Switch to the same definition of state container as in MAX77693 drivers. This will allow usage of one regulator driver in both devices: MAX77693 and MAX77843. Signed-off-by: Krzysztof Kozlowski Acked-by: Dmitry Torokhov Acked-by: Lee Jones Acked-by: Chanwoo Choi Signed-off-by: Mark Brown drivers/extcon/extcon-max77843.c | 17 +++++++++-------- drivers/input/misc/max77843-haptic.c | 3 ++- drivers/mfd/max77843.c | 20 +++++++++++--------- drivers/regulator/max77843.c | 6 ++++-- include/linux/mfd/max77693-common.h | 5 +++++ include/linux/mfd/max77843-private.h | 20 -------------------- 6 files changed, 31 insertions(+), 40 deletions(-) commit 61b305cd2ae747b8c9a2e4467dea2575a390162c Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:50 2015 +0900 drivers: max77693: Move state container to common header This prepares for merging some of the drivers between max77693 and max77843 so the child MFD driver can be attached to any parent MFD main driver. Move the state container to common header file. Additionally add consistent 'i2c' prefixes to its members (of 'struct i2c_client' type). Signed-off-by: Krzysztof Kozlowski Acked-by: Sebastian Reichel Acked-by: Dmitry Torokhov Acked-by: Lee Jones Acked-by: Chanwoo Choi Acked-by: Jacek Anaszewski Signed-off-by: Mark Brown drivers/extcon/extcon-max77693.c | 3 ++- drivers/input/misc/max77693-haptic.c | 1 + drivers/leds/leds-max77693.c | 1 + drivers/mfd/max77693.c | 31 +++++++++++++------------ drivers/power/max77693_charger.c | 1 + drivers/regulator/max77693.c | 1 + include/linux/mfd/max77693-common.h | 44 ++++++++++++++++++++++++++++++++++++ include/linux/mfd/max77693-private.h | 25 -------------------- 8 files changed, 66 insertions(+), 41 deletions(-) commit 5b5e771fb711f95da859bf6be9fba4bc9919b5d5 Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:49 2015 +0900 regulator: max77693: Support different register configurations Add support for different configurations of charger's registers so the same driver could be used on other devices (e.g. MAX77843). Signed-off-by: Krzysztof Kozlowski Acked-by: Mark Brown Signed-off-by: Mark Brown drivers/regulator/max77693.c | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) commit b3b58cee8aced52e3d7fdb387f40c782a4511198 Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:48 2015 +0900 mfd: max77693: Store I2C device type as enum and add default unknown Store the device type (obtained from i2c_device_id) as an enum and add a default type of unknown to distinguish from case when this is not set at all. Signed-off-by: Krzysztof Kozlowski Acked-by: Lee Jones Signed-off-by: Mark Brown include/linux/mfd/max77693-private.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 0afab670bda6f3c9980be9e6de0effcc2c6d456c Author: Krzysztof Kozlowski Date: Wed Jul 15 21:59:47 2015 +0900 mfd/extcon: max77693: Remove unused extern declarations and max77693_dev members Clean up the max77693 private header file by removing: 1. Left-overs from previous way of interrupt handling (driver uses regmap_irq_chip). 2. Unused members of struct 'max77693_dev' related to interrupts in extcon driver. Signed-off-by: Krzysztof Kozlowski Acked-by: Chanwoo Choi Acked-by: Lee Jones Signed-off-by: Mark Brown drivers/extcon/extcon-max77693.c | 19 ------------------- include/linux/mfd/max77693-private.h | 8 -------- 2 files changed, 27 deletions(-) commit fa050796b35c80ac948c4d24c95262daa905e2ef Author: Arnaud Pouliquen Date: Thu Jul 16 11:36:06 2015 +0200 ASoC: sti: Add clock adjustement control Add capability to adjust player clock, for clocks drift management. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif.h | 2 + sound/soc/sti/uniperif_player.c | 149 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 150 insertions(+), 1 deletion(-) commit 1e6babb417f76bd6d1a4d1d633e5c46435acbfe7 Author: Arnaud Pouliquen Date: Thu Jul 16 11:36:05 2015 +0200 ASoC: Add ability to build sti drivers Define the platform and codec drivers, and how to build them. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/sti/Kconfig | 11 +++++++++++ sound/soc/sti/Makefile | 4 ++++ 4 files changed, 17 insertions(+) commit f3bd847eb0a7744b1a86f6b585149434cc6f57ff Author: Arnaud Pouliquen Date: Thu Jul 16 11:36:04 2015 +0200 ASoC: sti: Add uniperipheral dai driver ASoc uniperipheral dai driver that manages uniperipheral DAIs and registers associated generic dma engine platform. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/sti_uniperif.c | 253 +++++++++++++++++++++++++++++++++++++++++++ sound/soc/sti/uniperif.h | 9 ++ 2 files changed, 262 insertions(+) commit c3a0003aaf0dc2ffd006a3bb5abc1f5b639552a7 Author: Arnaud Pouliquen Date: Thu Jul 16 11:36:03 2015 +0200 ASoC: sti: Add CPU DAI driver for capture Add code to manage Uniperipheral reader IP instances. These DAIs are dedicated to capture and support I2S and IEC modes. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif.h | 3 + sound/soc/sti/uniperif_reader.c | 362 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 365 insertions(+) commit ed6c75f23383ba4e0fbc935c0b6ab165bc9ff65e Author: Arnaud Pouliquen Date: Thu Jul 16 11:36:02 2015 +0200 ASoC: sti: minor corrections for uniplayer Minor corrections after code review. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif_player.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 04b5cbd80af899c6a4d51835b069b96ae8864e5a Author: Lars-Peter Clausen Date: Thu Jul 16 21:22:52 2015 +0200 ASoC: max9768: Convert to component The driver does not use any CODEC specific constructs anymore. Convert it to snd_soc_component. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9768.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) commit d79cca1a994f6f4f1cf3d92909f2a73df6b84874 Author: Lars-Peter Clausen Date: Thu Jul 16 21:22:51 2015 +0200 ASoC: max9768: Use managed gpio request Makes the code a bit shorter and simpler. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9768.c | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) commit 623436af42ef2b37fee8f6058a85f4664bd32c74 Author: Lars-Peter Clausen Date: Thu Jul 16 21:22:50 2015 +0200 ASoC: max9877: Convert to component The driver does not use any CODEC specific constructs anymore. Convert it to snd_soc_component. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9877.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) commit df2e268226e2e3d79980a5dddfd683126f79ddb4 Author: Lars-Peter Clausen Date: Thu Jul 16 21:22:49 2015 +0200 ASoC: max9877: Make driver global regmap struct local Use a stack local variable to handle function local state rather than a global static variable. The later has a potential for race conditions if the probe function runs for two devices concurrently. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max9877.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7d9fb377a747025232fe4e8d17e54ff8032aba27 Merge: 1c07a4d c418a84 Author: Mark Brown Date: Thu Jul 16 21:35:01 2015 +0100 Merge branches 'topic/owner' and 'topic/reg-default' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-max9877 commit fa26e4d2b3cf1c84f20fbc003501bb028f682d92 Author: Vaibhav Hiremath Date: Thu Jul 16 23:46:56 2015 +0530 regulator: 88pm800: Use regulator_nodes/of_match in the descriptor This patch is add regulator_nodes/of_match in the regulator descriptor for using information from DT instead of specific codes. With this patch, driver gets simplified, - No need to maintain "struct of_regulator_match" table and call of_regulator_match() fn. - No need for pm800_regulator_dt_init() fn, as it was only used for of_regulator_match(). - probe() fn got simplified around regulator_config and regulator_desc initialization. Signed-off-by: Vaibhav Hiremath Signed-off-by: Mark Brown drivers/regulator/88pm800.c | 143 ++++++++++++++------------------------------ 1 file changed, 44 insertions(+), 99 deletions(-) commit a07d94a54b93d94d8cb990ffe018c595cfb94662 Author: Vaibhav Hiremath Date: Thu Jul 16 23:46:55 2015 +0530 regulator: 88pm800: Update driver to use devm_regulator_register fn This patch replaces standard regulator_register with devm_regulator_register() fn, as using devm_regulator_register() fn simplifies the driver return/exit path. As part of this update, patch also cleanups up all unnecessary changes which is result of this patch - - Remove _remove() fn, as devm_ variant takes care of it. - Remove pm800_regulators.regulators[] field, as it was only needed during cleanup, so we no longer need this. This also saved some amount of memory. Signed-off-by: Vaibhav Hiremath Signed-off-by: Mark Brown drivers/regulator/88pm800.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit 4d45c70bfb3ffe55fad1d1681feaec2094f4da3b Author: Vaibhav Hiremath Date: Thu Jul 16 23:46:54 2015 +0530 regulator: 88pm800: Fix indentation of assignments of data structures This patch makes code more clean from readability point of view, make all assignments of LDO, BUCk and regulator_ops structure at the same indentation. Signed-off-by: Vaibhav Hiremath Signed-off-by: Mark Brown drivers/regulator/88pm800.c | 68 ++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 34 deletions(-) commit 4863dcd394019b542ac968870cba734d27e992e0 Author: Heiko Stuebner Date: Wed Jul 15 23:03:09 2015 +0200 ARM: dts: rockchip: add rk3288 arm-pmu irq affinity The rk3288 uses spi irqs for the arm-pmu on individual cpu cores, so needs the affinity to them defined. Signed-off-by: Heiko Stuebner Reviewed-by: Sonny Rao arch/arm/boot/dts/rk3288.dtsi | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit cee3d8ccbecb8af6788edaaac46befca78b000dc Author: Ulf Hansson Date: Thu Jul 16 10:32:40 2015 -0700 Input: ambakmi - fix system PM by converting to modern callbacks The legacy system PM support has long time ago been dropped from the AMBA bus. Align to that by converting to the modern system PM callbacks. Fixes: 26825cfd90f9 (ARM: 7914/1: amba: Drop legacy PM support ...) Signed-off-by: Ulf Hansson Signed-off-by: Dmitry Torokhov drivers/input/serio/ambakmi.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit e1443d2849b146be4ed8d4ef89ae7e215aafaa5b Author: Stephen Chandler Paul Date: Wed Jul 15 10:20:17 2015 -0700 Input: i8042 - add unmask_kbd_data option A big problem with the current i8042 debugging option is that it outputs data going to and from the keyboard by default. As a result, many dmesg logs uploaded by users will unintentionally contain sensitive information such as their password, as such it's probably a good idea not to output data coming from the keyboard unless specifically enabled by the user. Signed-off-by: Stephen Chandler Paul Reviewed-by: Andreas Mohr Reviewed-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov Documentation/kernel-parameters.txt | 4 ++++ drivers/input/serio/i8042.c | 43 +++++++++++++++++++++++++++++++++---- drivers/input/serio/i8042.h | 13 +++++++++++ drivers/input/serio/serio.c | 5 ++--- include/linux/serio.h | 2 ++ 5 files changed, 60 insertions(+), 7 deletions(-) commit b8d1f261fe7e4967593a5637d62991b6197a03f8 Author: Sudip Mukherjee Date: Thu Jul 16 18:28:20 2015 +0530 staging: dgap: remove duplicate code Remove the duplicate code of dgap_remove_one() and dgap_stop(). Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 174b83c0eb577d7db8f1867f1d76dc14f0b8eb40 Author: Sudip Mukherjee Date: Thu Jul 16 18:28:19 2015 +0530 staging: dgap: new arguments to dgap_stop In a later patch we will remove the duplicate codes. But the code also needs to execute dgap_remove_driver_sysfiles() if it is being called from dgap_remove_one() but if being called fron the error path of the dgap_init_module() then the sysfiles should not be removed. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit eda03951c3edc1f95e974096770ee3b02df2a8f5 Author: Sudip Mukherjee Date: Thu Jul 16 18:28:18 2015 +0530 staging: dgap: rearrange function Relocate the function dgap_stop() so that in a later patch we can remove the duplicate codes between dgap_stop() and dgap_remove_one(). Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit ac4e504a597903f65e6b365eee3e2675a7d8fe4e Author: Sudip Mukherjee Date: Thu Jul 16 18:28:17 2015 +0530 staging: dgap: fix error path The code in dgap_stop() is almost a duplicate of the code that will be executed on pci_unregister_driver(). So the error code was stopping and unregistering everything twice. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/dgap/dgap.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 7d708e52c2295d4d74c58881668a05ff7af8dc16 Author: Sudip Mukherjee Date: Thu Jul 16 16:58:12 2015 +0530 staging: rtl8188eu: remove unneeded ret The variable ret was always 0. So remove the variable and always return 0 from the function. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 9aa39bc4d35ca33b406c15da563d6719aae3931e Author: Sudip Mukherjee Date: Thu Jul 16 16:58:11 2015 +0530 staging: rtl8188eu: stop using DBG_88E Stop using DBG_88E which is a custom macro for printing debugging messages. Instead start using pr_debug and in the process define pr_fmt. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 39 +++++++++++++++-------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit ce806322730a2b29fd15c7873c09335a49b7a941 Author: Sudip Mukherjee Date: Thu Jul 16 16:58:10 2015 +0530 staging: rtl8188eu: remove unneeded variable The default value of status was _FAIL, it was only changed if kzalloc succeeds and the check for status is immediately following kzalloc. We can have the failure code in the else part as the failure code will be executed only if kzalloc fails. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 47ccb34ac72c0dbbb68f6a07ce63e9f0d21510ea Author: Sudip Mukherjee Date: Thu Jul 16 16:58:09 2015 +0530 staging: rtl8188eu: remove goto label By checking for the success of kzalloc we were able to remove the goto label thus making the code more readable. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/os_dep/usb_intf.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 277394198413fc46e81767827533e5ab8ef167af Author: Sudip Mukherjee Date: Thu Jul 16 16:58:08 2015 +0530 staging: rtl8188eu: remove redundant NULL check The check for pstat and pdvobjpriv is not required here as we have already checked for them before. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme_ext.c | 2 +- drivers/staging/rtl8188eu/os_dep/usb_intf.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 48028c61e45acf644aaaa47db475974829fc64dd Author: Sudip Mukherjee Date: Thu Jul 16 16:58:07 2015 +0530 staging: rtl8188eu: remove unused function The inline function rtw_set_ips_deny() was only defined but was never used. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_pwrctrl.c | 6 ------ drivers/staging/rtl8188eu/include/rtw_pwrctrl.h | 1 - 2 files changed, 7 deletions(-) commit 613a7c5e0f2b216e62b7dfaa92c54959319bed42 Author: Sudip Mukherjee Date: Wed Jul 15 13:59:46 2015 +0530 staging: sm7xxfb: usr fb_read and fb_write Now since the Big-Endian and Little-Endian based calculations are moved into a macro we can make fb_read() and fb_write() common for both Little-Endian and Big-Endian. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 4 ---- 1 file changed, 4 deletions(-) commit 87bf79298036a47ab158ae7e335cc7f8b0df4e9c Author: Sudip Mukherjee Date: Wed Jul 15 13:59:45 2015 +0530 staging: sm7xxfb: define new macros Define and use some new macros to work with different situations based on little-endian and big-endian. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xx.h | 19 ++++++++++++++++ drivers/staging/sm7xxfb/sm7xxfb.c | 48 ++++++++------------------------------- 2 files changed, 29 insertions(+), 38 deletions(-) commit 9431fda3ff9193249ee7bc7731bb74e9f51f6f36 Author: Luca Ceresoli Date: Wed Jul 15 00:44:55 2015 +0200 staging: rtl8188eu: remove unused rtw_hal_write_rfreg rtw_hal_write_rfreg() is never referenced, so remove it. It used to be the only place where the write_rfreg callback was called, so get rid of the function pointer as well. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_intf.c | 8 -------- drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 1 - drivers/staging/rtl8188eu/include/hal_intf.h | 6 ------ 3 files changed, 15 deletions(-) commit f83113d3e6f2cef66890a90d01c5347ece4ecd97 Author: Luca Ceresoli Date: Wed Jul 15 00:44:54 2015 +0200 staging: rtl8188eu: remove unused rtw_hal_set_def_var rtw_hal_set_def_var() is never referenced, so remove it. It used to be the only place where the SetHalDefVarHandler callback was called, so get rid of the function pointer as well. Also remove the callback itself, SetHalDefVar8188EUsb(), which was not called anywhere else. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_intf.c | 8 ---- drivers/staging/rtl8188eu/hal/usb_halinit.c | 70 ---------------------------- drivers/staging/rtl8188eu/include/hal_intf.h | 5 -- 3 files changed, 83 deletions(-) commit 42748bc905d57aa96a3b8ef50261bcf95890bef7 Author: Luca Ceresoli Date: Wed Jul 15 00:44:53 2015 +0200 staging: rtl8188eu: remove unused {en,dis}able_interrupt rtw_hal_enable_interrupt() and rtw_hal_disable_interrupt() are never referenced, so remove them. They used to be the only place where the enable_interrupt() and disable_interrupt() callbacks were called, and the function pointer is never set, so get rid of the function pointer as well. Signed-off-by: Luca Ceresoli Cc: Greg Kroah-Hartman Cc: Larry Finger Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_intf.c | 16 ---------------- drivers/staging/rtl8188eu/include/hal_intf.h | 5 ----- 2 files changed, 21 deletions(-) commit c8011d90c68d10d67b797e0704c16697bba683a1 Author: CHANG FU CHIAO Date: Wed Jul 15 15:32:21 2015 +0800 staging: ft1000: ft1000-usb: remove unnecessary out of memory warning fixes "Possible unnecessary 'out of memory' message" Signed-off-by: CHANG FU CHIAO Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_hw.c | 1 - 1 file changed, 1 deletion(-) commit 315c928ba99af23dd25ac664b7c02828cf047f19 Author: Pedro Marzo Perez Date: Thu Jul 16 20:50:00 2015 +0200 Staging: lustre: make obd_device_cachep static Variable obd_device_cachep is only used inside the file it is declared, so it is better set as static Signed-off-by: Pedro Marzo Perez Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9c7e397c98d646a3a23ffd304def1750be916803 Author: Oleg Drokin Date: Wed Jul 15 12:21:16 2015 -0400 staging/lustre/ldlm: Unregister ldlm namespace from sysfs on free ldlm_namespace_sysfs_unregister needs to be called ldlm_namespace_free_post so that we don't have this dangling object there after the namespace has disappeared. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 1 + 1 file changed, 1 insertion(+) commit 4bdc190a929c6f99732a9a0ff03dba7b0137d4bd Author: Vasiliy Korchagin Date: Wed Jul 15 00:40:40 2015 +0000 staging: lustre: obdclass: simplify class_uuid_unparse This patch simplifies uuid unparse logic by using sprintf "%pU" extension. And eliminates the code with a coding style error: ERROR: Macros with complex values should be enclosed in parentheses +#define CONSUME(val, ptr) (val) = consume(sizeof(val), (ptr)) Signed-off-by: Vasiliy Korchagin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/uuid.c | 34 +-------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) commit 6f14cc18f8dd5d1b05ae6583361e08222381ca84 Author: Benjamin Romer Date: Thu Jul 16 12:40:48 2015 -0400 staging: unisys: fix copyright statements The copyright statements in the drivers need to be correct and consistent; this patch fixes the year for all of them, and makes the statement text cover just the GPL V2. Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/controlvmchannel.h | 9 ++++----- drivers/staging/unisys/visorbus/controlvmcompletionstatus.h | 9 ++++----- drivers/staging/unisys/visorbus/iovmcall_gnuc.h | 9 ++++----- drivers/staging/unisys/visorbus/periodic_work.c | 9 ++++----- drivers/staging/unisys/visorbus/vbuschannel.h | 9 ++++----- drivers/staging/unisys/visorbus/vbusdeviceinfo.h | 9 ++++----- drivers/staging/unisys/visorbus/visorbus_main.c | 9 ++++----- drivers/staging/unisys/visorbus/visorbus_private.h | 9 ++++----- drivers/staging/unisys/visorbus/visorchannel.c | 9 ++++----- drivers/staging/unisys/visorbus/visorchipset.c | 9 ++++----- drivers/staging/unisys/visorbus/vmcallinterface.h | 9 ++++----- drivers/staging/unisys/visornic/visornic_main.c | 7 +++---- 12 files changed, 47 insertions(+), 59 deletions(-) commit f33d159ea701cbaba90f20876aeba11d27b698c2 Author: Andy Shevchenko Date: Wed Jul 8 17:45:09 2015 +0300 x86/platform/iosf_mbi: Add Intel Tangier PCI id Intel Tangier has an IOSF Mailbox with PCI ID 8086:1170. Signed-off-by: Andy Shevchenko Cc: David E . Box Link: http://lkml.kernel.org/r/1436366709-17683-6-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/platform/intel/iosf_mbi.c | 2 ++ 1 file changed, 2 insertions(+) commit 7e1ff15b699bcb2bce1e8086323d227788960044 Author: Andy Shevchenko Date: Wed Jul 8 17:45:08 2015 +0300 x86/platform/iosf_mbi: Source cleanup - Move the static variables to one place - Fix indentations in the header - Correct comments No functional change. [ tglx: Massaged changelog ] Signed-off-by: Andy Shevchenko Cc: David E . Box Link: http://lkml.kernel.org/r/1436366709-17683-5-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/include/asm/iosf_mbi.h | 8 ++++---- arch/x86/platform/intel/iosf_mbi.c | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) commit b93fb9f6aee0ea6fe60ed20278b9c7fea70a58ff Author: Andy Shevchenko Date: Wed Jul 8 17:45:07 2015 +0300 x86/platform/iosf_mbi: Remove NULL pointer checks for pci_dev_put() pci_dev_put() has already a check for NULL pointer. [ tglx: Massaged changelog ] Signed-off-by: Andy Shevchenko Cc: David E . Box Link: http://lkml.kernel.org/r/1436366709-17683-4-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/platform/intel/iosf_mbi.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 64279c7e05264f9774c6c9ee65a5b9ed186e442b Author: Andy Shevchenko Date: Wed Jul 8 17:45:06 2015 +0300 x86/platform/iosf_mbi: Check return value of debugfs_create properly The code checks the result of the first debugfs_create call several times and fails to check the result of the subsequent calls due to missing assigments. Add the missing assignments and check only for !res because debugfs_create() returns only NULL on error and not an encoded error code. [ tglx: Massaged changelog ] Signed-off-by: Andy Shevchenko Cc: David E . Box Link: http://lkml.kernel.org/r/1436366709-17683-3-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/platform/intel/iosf_mbi.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 23ae2a16bb39d999892a86a65933fe3e9b6b525f Author: Andy Shevchenko Date: Wed Jul 8 17:45:05 2015 +0300 x86/platform/iosf_mbi: Move to dedicated folder Move the driver to arch/x86/platform/intel since it is not a core kernel code and it is related to many Intel SoCs from different groups: Atom, MID, etc. There is no functional change. Signed-off-by: Andy Shevchenko Cc: David E . Box Link: http://lkml.kernel.org/r/1436366709-17683-2-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Thomas Gleixner arch/x86/kernel/Makefile | 1 - arch/x86/kernel/iosf_mbi.c | 328 ------------------------------------- arch/x86/platform/Makefile | 1 + arch/x86/platform/intel/Makefile | 1 + arch/x86/platform/intel/iosf_mbi.c | 328 +++++++++++++++++++++++++++++++++++++ 5 files changed, 330 insertions(+), 329 deletions(-) commit 2660801f7323b84fc2ad46449a5d1f331266d9f7 Author: Maarten Lankhorst Date: Thu Jul 16 15:51:01 2015 +0200 drm/atomic: Only update crtc->x/y if it's part of the state, v2. Universal planes may not be assigned to the current crtc, so only update crtc->x/y when the primary is part of the state and bound to the current crtc. Changes since v1: - Add the crtc check. Cc: dri-devel@lists.freedesktop.org Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 4a01a64c8ee8d205bbe25adb40bb3922d0ebce70 Author: Heiko Stuebner Date: Thu Jun 25 19:22:27 2015 +0200 dt-bindings: document rk3368 R88 board from Rockchip The initial board containing the rk3368 ARM64 soc. Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 4 ++++ 1 file changed, 4 insertions(+) commit ab7322af8c620987ed058e39506c97e5f2d3c65c Author: Arnaldo Carvalho de Melo Date: Thu Jul 16 11:08:34 2015 -0300 perf strlist: load() should return a negative errno To match what its users return. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-jntpe2lwg1fxn1bku7uccan0@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/strlist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 72858602e167ea2d7487337bac279beec7a99c84 Author: Laurent Navet Date: Tue Jul 7 22:22:15 2015 +0200 gpiolib: remove unneeded assignation ret is assigned value from of_property_read_string_index but is overwritten before being used so remove it. Also fix coverity CID 1309759 Reported-by: coverity (CID 1309759) Signed-off-by: Laurent Navet Signed-off-by: Linus Walleij drivers/gpio/gpiolib-of.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9bde2823dcb97997456645f9b18f8c3468b727ca Author: Vinod Koul Date: Mon May 18 15:33:13 2015 +0530 dmaengine: zxdma: explicitly free irq on device removal At device removal, tasklets are not disabled and irqs are still enabled, so free the irq explicitly on device removal Signed-off-by: Vinod Koul drivers/dma/zx296702_dma.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit e3fa9841d309ae7992b658eba0f973543b97ed1f Author: Jun Nie Date: Tue May 5 22:06:08 2015 +0800 dmaengine: zxdma: Support ZTE ZX296702 dma Add ZTE ZX296702 dma controller support. Only device tree probe is support currently. Signed-off-by: Jun Nie Reviewed-by: Maxime Ripard Signed-off-by: Vinod Koul drivers/dma/Kconfig | 7 + drivers/dma/Makefile | 1 + drivers/dma/zx296702_dma.c | 870 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 878 insertions(+) commit 7f37a3d80b6d687717685cb7156ef7c9acbd2964 Author: Jun Nie Date: Tue May 5 22:06:07 2015 +0800 Documentation: dma: Add documentation for ZTE DMA This patch adds documentation for the ZTE ZX296702 SoC DMA device DTS binding. Signed-off-by: Jun Nie Signed-off-by: Vinod Koul Documentation/devicetree/bindings/dma/zxdma.txt | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit e3f3aaac06657e6fc834e217ae450f51a6e0968c Author: Krzysztof Kozlowski Date: Fri Jul 10 15:27:30 2015 +0900 pinctrl: sirf: 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: Linus Walleij drivers/pinctrl/sirf/pinctrl-atlas7.c | 1 - 1 file changed, 1 deletion(-) commit 4d9efdfce73c8f0c9e39d118833e4776719a8d40 Author: Jiang Liu Date: Mon Jul 13 20:39:54 2015 +0000 dmaengine: ipu: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. This is also a preparation for the removal of the 'irq' argument from interrupt flow handlers. Signed-off-by: Jiang Liu Cc: Dan Williams Cc: Vinod Koul Cc: dmaengine@vger.kernel.org Signed-off-by: Thomas Gleixner Signed-off-by: Vinod Koul drivers/dma/ipu/ipu_irq.c | 2 +- drivers/gpu/ipu-v3/ipu-common.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit d7fdb356902a13bb92229722d88a836523a3c6e3 Author: Thomas Gleixner Date: Mon Jul 13 20:39:52 2015 +0000 dmaengine: ipu: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Dan Williams Cc: Vinod Koul Cc: dmaengine@vger.kernel.org Signed-off-by: Vinod Koul drivers/dma/ipu/ipu_irq.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 03734485b71129a954861f298825a490bcade986 Author: Andy Shevchenko Date: Thu Jul 9 13:25:37 2015 +0300 dmaengine: hsu: remove excessive lock All hardware accesses are done under virtual channel lock. That's why specific channel lock is excessive and can be removed safely. This has been tested on Intel Medfield and Merrifield. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul drivers/dma/hsu/hsu.c | 39 ++++----------------------------------- drivers/dma/hsu/hsu.h | 1 - 2 files changed, 4 insertions(+), 36 deletions(-) commit b6c52c634506d52b3a2dc18503980d717e478739 Author: Jiang Liu Date: Wed Jul 8 15:41:42 2015 +0800 dmaengine: ioatdma: Ignore IOAT devices under hotplug-capable PCI host bridge The dmaengine core assumes that async DMA devices will only be removed when they not used anymore, or it assumes dma_async_device_unregister() will only be called by dma driver exit routines. But this assumption is not true for the IOAT driver, which calls dma_async_device_unregister() from ioat_remove(). So current IOAT driver doesn't support device hot-removal because it may cause system crash to hot-remove an inuse IOAT device. To support CPU socket hot-removal, all PCI devices, including IOAT devices embedded in the socket, will be hot-removed. The idea solution is to enhance the dmaengine core and IOAT driver to support hot-removal, but that's too hard. This patch implements a hack to disable IOAT devices under hotplug-capable CPU socket so it won't break socket hot-removal. Signed-off-by: Jiang Liu Signed-off-by: Vinod Koul drivers/dma/ioat/pci.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 6417049f662d85a6f3a6b7cb8bc98bae3edae0a4 Author: Grygorii Strashko Date: Mon Jul 6 18:11:50 2015 +0300 pinctrl: single: dra7: remove PCS_QUIRK_SHARED_IRQ On DRA7 there is one pinctrl domain (dra7_pmx_core) and PRCM wake-up IRQ is not shared, so remove quirk. Cc: Nishanth Menon Fixes: 31320beaa3d3 ('pinctrl: single: Add DRA7 pinctrl compatibility') Signed-off-by: Grygorii Strashko Acked-by: Tero Kristo Acked-by: Tony Lindgren Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-single.c | 1 - 1 file changed, 1 deletion(-) commit ffe2288828cb3aa45f6752d99ec7113f5135d1fa Author: Fabio Estevam Date: Wed Jul 15 14:22:33 2015 -0300 spi: spidev: Fix typo Fix the typo in "compatible". Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown drivers/spi/spidev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6158e6d004e8b030442ae900a9dd84e0de6b1613 Author: Heiko Stuebner Date: Wed Jul 15 20:57:21 2015 +0200 ARM: dts: rockchip: add missing device_type = "memory" to boards The memory node is supposed to contain a device_type property marking it as memory. The currently included boards miss this property. Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3066a-bqcurie2.dts | 1 + arch/arm/boot/dts/rk3066a-marsboard.dts | 1 + arch/arm/boot/dts/rk3066a-rayeager.dts | 1 + arch/arm/boot/dts/rk3188-radxarock.dts | 1 + arch/arm/boot/dts/rk3288-evb.dtsi | 1 + arch/arm/boot/dts/rk3288-firefly.dtsi | 1 + arch/arm/boot/dts/rk3288-popmetal.dts | 1 + arch/arm/boot/dts/rk3288-r89.dts | 1 + 8 files changed, 8 insertions(+) commit 05ffc630627003c7bf275eec05b0eae81e0016b1 Author: Heiko Stuebner Date: Tue Jul 7 20:09:34 2015 +0200 ARM: dts: rockchip: add veyron-pinky board While pinky was one of the earlier development models, is on the list of endangered species today and nearly extinct, I want to keep mine around for the foreseeable future after spending all the time making a nice hole into the base below the dut-connector. Signed-off-by: Heiko Stuebner Documentation/devicetree/bindings/arm/rockchip.txt | 5 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/rk3288-veyron-pinky.dts | 128 +++++++++++++++++++++ 3 files changed, 135 insertions(+), 1 deletion(-) commit a4e3c5fa955ce0934774f3f3684377dbf2c20eca Author: Nicolas Boichat Date: Thu Jul 16 13:42:34 2015 +0800 ASoC: rt5645: Simplify rt5645_enable_push_button_irq LDO2/Mic Det Power pins are already enabled/disabled in rt5645_jack_detect (the jack out code path previously did not disable those if button function is enabled: modify it to make it so). Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) commit b14c917409f47dbfdff93e69effd6740f6a809f7 Author: Nicolas Boichat Date: Thu Jul 16 13:42:33 2015 +0800 ASoC: rt5645: Update dapm pins when the card is not instantiated yet This makes sure the dapm state is consistent when the card is instantiated. However, if the card is not instantiated yet, we still update the registers manually in the "jack in" case, so that we can immediately report if a mic is present or not. Disabling "Mic Det Power" after detection, and on jack out, can wait until the card gets instantiated. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) commit 5efe58c44312a7f8a1f3ec77c2b88f6d22b74880 Author: Bard Liao Date: Thu Jul 16 10:01:33 2015 +0800 ASoC: rt298: remove meanless pr_info This line doesn't include any information. 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 54442658d8e83b0589731620bd958cc8b2857167 Author: Nicholas Krause Date: Sat Jul 4 16:34:32 2015 -0400 gpio: 74xx: Fix build warning about void to integer cast This fixes the build warning , warning: cast from pointer to integer of different size when building this file on a x86 allmodconfig configuration. In order for me to fix this build warning I changed the cast in the function mmio_74xx_gpio_probe from casting the variable data of the stucture pointer of_id to uintptr_t rather then unsigned when assigning to the variable flag of the structure pointer priv of the structure type mmio_74xx_gpio_priv. Signed-off-by: Nicholas Krause Signed-off-by: Linus Walleij drivers/gpio/gpio-74xx-mmio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f3ee390e4ef23a557b3519f6fb314a9e80d337c1 Author: Alexandru M Stan Date: Tue Jul 7 20:04:32 2015 +0200 ARM: dts: rockchip: add veyron-jerry board The Hisense Chromebook C11, also named jerry. Signed-off-by: Alexandru M Stan Signed-off-by: Heiko Stuebner Reviewed-by: Doug Anderson Documentation/devicetree/bindings/arm/rockchip.txt | 7 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/rk3288-veyron-jerry.dts | 197 +++++++++++++++++++++ 3 files changed, 206 insertions(+), 1 deletion(-) commit e28ea9dbc52d354db29fd07c9c2535f150f903de Author: Alexandru M Stan Date: Tue Jul 7 19:42:53 2015 +0200 ARM: dts: rockchip: add shared rk3288-veyron files This adds the shared devicetree files for the Veyron device family. They are split, as not all veyron devices are chromebooks and not all contain a sd-card slot. Signed-off-by: Alexandru M Stan Signed-off-by: Heiko Stuebner Reviewed-by: Doug Anderson arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi | 232 ++++++++++ arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi | 122 +++++ arch/arm/boot/dts/rk3288-veyron.dtsi | 563 ++++++++++++++++++++++++ 3 files changed, 917 insertions(+) commit 3726960edc63bb1e09678841df44b44feee20305 Author: Grygorii Strashko Date: Thu Jun 25 20:30:51 2015 +0300 gpiolib: assign chip owner to dev->driver->owner if not set Assign GPIO chip owner field to chip->dev->driver->owner if it was not configured by GPIO driver. Cc: Johan Hovold Signed-off-by: Grygorii Strashko Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 3 +++ 1 file changed, 3 insertions(+) commit 5b76e79c772648991e700f004205e9ac861c77c0 Author: Grygorii Strashko Date: Thu Jun 25 20:30:50 2015 +0300 gpiolib: irqchip: prevent driver unloading if gpio is used as irq only Now nothing prevents GPIO driver from being unloaded if its gpios were requested as GPIO IRQs only (without calling gpio_request()). Hence, add calls of try_module_get()/module_put() into gpiochip_irq_reqres/relres() to track such scenario properly. Cc: Johan Hovold Signed-off-by: Grygorii Strashko Reviewed-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 5 +++++ 1 file changed, 5 insertions(+) commit 7fcf7e061edd368fac7fe4841a7f9e54c83b3ec8 Author: Tony Lindgren Date: Mon Jul 13 00:53:22 2015 -0700 ARM: OMAP2+: Remove legacy booting support for Pandora We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Cc: Grazvydas Ignotas Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/board-omap3pandora.c | 633 ------------------------------- 2 files changed, 634 deletions(-) commit 03c42c3e5216e2777f8ae819d6a076e94dcdfbdd Author: Geert Uytterhoeven Date: Tue Jul 14 13:56:55 2015 +0200 pinctrl: sh-pfc: Remove obsolete r8a7740 platform_device_id entry Since the removal of the r8a7740 legacy SoC code in commit 44d88c754e57a6d9 ("ARM: shmobile: Remove legacy SoC code for R-Mobile A1"), 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. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/core.c | 3 --- 1 file changed, 3 deletions(-) commit d009fa3b2b28b28f58920aaa76fa0abeb573828c Author: Geert Uytterhoeven Date: Tue Jul 14 13:56:54 2015 +0200 pinctrl: sh-pfc: r8a7740: Remove obsolete multi-platform check Since the removal of the r8a7740 legacy SoC code in commit 44d88c754e57a6d9 ("ARM: shmobile: Remove legacy SoC code for R-Mobile A1"), r8a7740 is only supported in generic ARM multi-platform builds. Hence CONFIG_ARCH_MULTIPLATFORM is always set, and the check can be removed. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7740.c | 4 ---- 1 file changed, 4 deletions(-) commit 39ad6ff12cd54607b64642562ad850bb09176734 Author: Geert Uytterhoeven Date: Tue Jul 14 13:56:53 2015 +0200 pinctrl: sh-pfc: Remove obsolete sh73a0 platform_device_id entry Since the removal of the sh73a0 legacy SoC code in commit 9a9863987bf7307f ("ARM: shmobile: Remove legacy SoC code for SH-Mobile AG5"), sh73a0 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. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/core.c | 3 --- 1 file changed, 3 deletions(-) commit 9f21c67da6a62aa082a1f20feb983ab5ed89a915 Author: Geert Uytterhoeven Date: Tue Jul 14 13:56:52 2015 +0200 pinctrl: sh-pfc: sh73a0: Remove obsolete multi-platform check Since the removal of the sh73a0 legacy SoC code in commit 9a9863987bf7307f ("ARM: shmobile: Remove legacy SoC code for SH-Mobile AG5"), sh73a0 is only supported in generic ARM multi-platform builds. Hence CONFIG_ARCH_MULTIPLATFORM is always set, and the check can be removed. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-sh73a0.c | 4 ---- 1 file changed, 4 deletions(-) commit c7977ec4a33633c8e8d9267dd014356cf857351c Author: Geert Uytterhoeven Date: Thu Jun 25 11:39:53 2015 +0200 pinctrl: sh-pfc: Convert to platform_get_*() If the pin function controller (which can be a GPIO controller) is instantiated before the interrupt controllers, due to the ordering in the DTS, the irq domains for the interrupt controllers referenced by its "interrupts-extended" property cannot be found yet: irq: no irq domain found for /interrupt-controller@e61c0000 ! As the sh-pfc driver accesses the platform device's resources directly, it cannot find the (optional) IRQ resources, and thinks no interrupts are available. This may lead to failures later, when GPIOs are used as interupts: gpio-keys keyboard: Unable to claim irq 0; error -22 gpio-keys: probe of keyboard failed with error -22 To fix this, add support for deferred probing to sh-pfc, by converting the driver from direct platform device resource access to using the platform_get_resource() and platform_get_irq() helpers. Note that while this fixes the root cause worked around by commit e4ba0a9bddff3ba5 ("ARM: shmobile: r8a73a4: Move pfc node to work around probe ordering bug"), I strongly recommend against reverting the workaround now, as this would lead to lots of probe deferrals in drivers relying on pinctrl. This may be reconsidered once the DT code starts taking into account phandle dependencies during device instantation. Signed-off-by: Geert Uytterhoeven Acked-by: Laurent Pinchart Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/core.c | 46 ++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 25 deletions(-) commit 16ccaf5bb5a52372bfebd3dfbb79dd810ad49c09 Author: Laurent Pinchart Date: Tue Jun 30 11:29:57 2015 +0300 pinctrl: sh-pfc: Accept standard function, pins and groups properties The "function", "pins" and "groups" pinmux and pinctrl properties have been standardized. Support them in addition to the custom "renesas,*" properties. New-style and old-style properties can't be mixed in DT. Signed-off-by: Laurent Pinchart Signed-off-by: Linus Walleij .../bindings/pinctrl/renesas,pfc-pinctrl.txt | 20 +++++------ drivers/pinctrl/sh-pfc/pinctrl.c | 42 +++++++++++++++++----- 2 files changed, 44 insertions(+), 18 deletions(-) commit 6066677cfd9d73734ab678b9d14013c860f0f732 Author: Dave Airlie Date: Thu Jul 9 13:15:34 2015 +1000 drm/fb: drop panic handling This really doesn't seem to have much chance of working anymore, esp for irq context, qxl at least tries to talk to the hw, and waits for irqs, and fails. with runtime pm and other stuff I think we should just bail on this for now. Signed-off-by: Dave Airlie Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_fb_helper.c | 26 -------------------------- 1 file changed, 26 deletions(-) commit 9cf705de06a27cc99874626c9717b32e9874b3bb Author: Tony Lindgren Date: Thu Jul 16 01:55:57 2015 -0700 ARM: OMAP2+: Add support for initializing dm814x clocks Let's add a minimal clocks for dm814x to get it booted. This is mostly a placeholder and relies on the PLLs being on from the bootloader. Note that the divider clocks work the same way as on dm816x and am335x. Cc: Matthijs van Duin Cc: Mike Turquette Cc: Paul Walmsley Cc: Stephen Boyd Cc: Tero Kristo Acked-by: Stephen Boyd Signed-off-by: Tony Lindgren arch/arm/mach-omap2/io.c | 4 ++-- drivers/clk/ti/Makefile | 2 +- drivers/clk/ti/clk-814x.c | 31 +++++++++++++++++++++++++++++++ drivers/clk/ti/clk-816x.c | 2 +- include/linux/clk/ti.h | 3 ++- 5 files changed, 37 insertions(+), 5 deletions(-) commit 7c80a3f89c51cfa935493a81b401c4e93f0c0f90 Author: Tony Lindgren Date: Thu Jul 16 01:55:57 2015 -0700 ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x Looking at the TI kernel tree I noticed that dm81xx need custom ti81xx_pwrdm_operations. Let's also change dm816x over to use them as the registers are different for dm81xx compared to others. Cc: Matthijs van Duin Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/mach-omap2/powerdomains3xxx_data.c | 122 +++++++++++++++++++++++++++- arch/arm/mach-omap2/prcm-common.h | 6 ++ 2 files changed, 125 insertions(+), 3 deletions(-) commit 185fde6d5b38cd03bf24bee90198b436b721d37c Author: Tony Lindgren Date: Thu Jul 16 01:55:57 2015 -0700 ARM: OMAP2+: Add minimal clockdomains for dm814x For now, let's just add the ones shared with dm816x. The dm814x specific ones can be added as they are tested. Cc: Matthijs van Duin Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren arch/arm/mach-omap2/clockdomain.h | 3 ++- arch/arm/mach-omap2/clockdomains81xx_data.c | 23 ++++++++++++++++++++--- arch/arm/mach-omap2/io.c | 4 ++-- 3 files changed, 24 insertions(+), 6 deletions(-) commit 9444f103469f40c47993a1dd87687d126054969c Author: Tony Lindgren Date: Thu Jul 16 01:55:57 2015 -0700 ARM: OMAP2+: Fix scm compatible for dm814x Fix scm compatible for dm814x. Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/mach-omap2/control.c | 1 + 1 file changed, 1 insertion(+) commit 9fd274c069c7f96631ef6e0b9909c9a0e1f6b954 Author: Tony Lindgren Date: Thu Jul 16 02:08:55 2015 -0700 ARM: OMAP2+: Fix dm814x DT_MACHINE_START Fix dm814x DT_MACHINE_START. Cc: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/mach-omap2/board-generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 601b9d9c7bd04f81a96896c9859cd37bd6a78d51 Author: Arnaud Pouliquen Date: Thu Jul 16 10:43:20 2015 +0200 ASoC: sti-sas: fix x86 compilation issue. Fixes for compilation warnings and errors reported by Kbuild test robot for x86_64 and i386. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/codecs/sti-sas.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit be9ae230924083772ea74ea6958c846f79df5253 Author: Geert Uytterhoeven Date: Tue Jul 14 13:59:34 2015 +0200 ASoC: fsi: Remove obsolete sh_fsi2 platform_device_id entry Since the removal of the r8a7740 legacy board code in commit 1fa59bda21c7fa36 ("ARM: shmobile: Remove legacy board code for Armadillo-800 EVA"), all former users of the "sh_fsi2" platform device name 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. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown sound/soc/sh/fsi.c | 1 - 1 file changed, 1 deletion(-) commit 049aaf9f7e30731ce030eef3e4fd255cf8b1ae02 Author: Grygorii Strashko Date: Thu Jun 25 18:18:11 2015 +0300 gpio: pcf857x: get rid of slock spinlock The spinlock 'slock' is used now to protect pcf857x_irq() from itself which is unnecessary (especially after switching to use threaded IRQs). Hence, remove it and use mutex to protect device data in IRQ handler. Cc: Geert Uytterhoeven Signed-off-by: Grygorii Strashko Signed-off-by: Linus Walleij drivers/gpio/gpio-pcf857x.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit 65194cb174b873448b208eb6e04ecb72237af76e Author: Geert Uytterhoeven Date: Thu Jun 25 16:45:57 2015 +0200 gpio: rcar: Fine-grained Runtime PM support Currently gpio modules are runtime-resumed at probe time. This means the gpio module will be active all the time (except during system suspend, if not configured as a wake-up source). While an R-Car Gen2 gpio module retains pins configured for output at the requested level while put in standby mode, gpio registercannot be accessed while suspended. Unfortunately pm_runtime_get_sync() cannot be called from all contexts where gpio register access is needed. Hence move the Runtime PM handling from probe/remove time to gpio request/free time, which is probably the best we can do. On r8a7791/koelsch, gpio modules 0, 1, 3, and 4 are now suspended during normal use (gpio2 is used for LEDs and regulators, gpio5 for keys, gpio6 for SD-Card CD & WP, gpio7 for keys and regulators). Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/gpio/gpio-rcar.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit 79cf95c763a11d4b365cd5a627fd1ab4dca67890 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:43 2015 +0300 clk: tegra: Add the DFLL as a possible parent of the cclk_g clock The DFLL clocksource was missing from the list of possible parents for the fast CPU cluster. Add it to the list. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra-super-gen4.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c38864a703f3fe50e2b87883a0def392dd5bf26f Author: Tuomas Tynkkynen Date: Wed May 13 17:58:42 2015 +0300 clk: tegra: Save/restore CCLKG_BURST_POLICY on suspend Save and restore this register since the LP1 restore assembly routines fiddle with it. Otherwise the CPU would keep running on PLLX after resume from suspend even when DFLL was the original clocksource. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Peter De Schrijver Acked-by: Michael Turquette Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra124.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 62a8a094b0e1de782a1b3dcb5e42a7d44379e583 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:41 2015 +0300 clk: tegra: Add Tegra124 DFLL clocksource platform driver Add basic platform driver support for the fast CPU cluster DFLL clocksource found on Tegra124 SoCs. This small driver selects the appropriate Tegra124-specific characterization data and integration code. It relies on the DFLL common code to do most of the work. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette [treding@nvidia.com: move setup code into ->probe()] Signed-off-by: Thierry Reding drivers/clk/tegra/Makefile | 2 + drivers/clk/tegra/clk-dfll.c | 6 +- drivers/clk/tegra/clk-dfll.h | 2 +- drivers/clk/tegra/clk-tegra124-dfll-fcpu.c | 166 +++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+), 4 deletions(-) commit 1dad36cdd5d20b4d7ceca5026553e86b3315b022 Author: Thierry Reding Date: Mon May 4 16:45:25 2015 +0200 soc/tegra: fuse: Add spare bit offset for Tegra210 The offset of the first spare bit register on Tegra210 is 0x380, but account for the fixed offset of 0x100 in the fuse accessor. Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/fuse-tegra30.c | 1 + 1 file changed, 1 insertion(+) commit 82df0e5e78d956ea3552f7315a4d559f657047da Author: Thierry Reding Date: Mon May 4 16:44:29 2015 +0200 soc/tegra: fuse: Add spare bit offset for Tegra124 The offset of the first spare bit register on Tegra124 is 0x300, but account for the fixed offset of 0x100 in the fuse accessor. Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/fuse-tegra30.c | 1 + 1 file changed, 1 insertion(+) commit b23083a9c6829675d367b4f06a64d74ead82eb14 Author: Thierry Reding Date: Mon May 4 16:38:28 2015 +0200 soc/tegra: fuse: Add spare bit offset for Tegra114 The offset of the first spare bit register on Tegra114 is 0x280, but account for the fixed offset of 0x100 in the fuse accessor. Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/fuse-tegra30.c | 1 + 1 file changed, 1 insertion(+) commit 03b3f4c8b76180ba5bd800c57a7efdb142c2341d Author: Thierry Reding Date: Mon Mar 23 14:44:08 2015 +0100 soc/tegra: fuse: Rename core_* to soc_* There's a mixture of core_* and soc_* prefixes for variables storing information related to the VDD_CORE rail. Choose one (soc_*) and use it more consistently. Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/fuse-tegra.c | 8 ++++---- drivers/soc/tegra/fuse/fuse-tegra20.c | 2 +- drivers/soc/tegra/fuse/fuse-tegra30.c | 2 +- drivers/soc/tegra/fuse/speedo-tegra114.c | 16 ++++++++-------- drivers/soc/tegra/fuse/speedo-tegra124.c | 12 ++++++------ drivers/soc/tegra/fuse/speedo-tegra20.c | 22 +++++++++++----------- drivers/soc/tegra/fuse/speedo-tegra30.c | 26 +++++++++++++------------- include/soc/tegra/fuse.h | 2 +- 8 files changed, 45 insertions(+), 45 deletions(-) commit 0dc5a0d836751099f2e08deec28f56ec881925dd Author: Thierry Reding Date: Wed Apr 29 16:55:57 2015 +0200 soc/tegra: fuse: Add Tegra210 support Add Tegra210 support to the fuses driver and add Tegra210-specific speedo definitions. Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/Makefile | 1 + drivers/soc/tegra/fuse/fuse-tegra.c | 4 + drivers/soc/tegra/fuse/fuse-tegra30.c | 16 ++- drivers/soc/tegra/fuse/fuse.h | 8 ++ drivers/soc/tegra/fuse/speedo-tegra210.c | 184 +++++++++++++++++++++++++++++++ include/soc/tegra/fuse.h | 4 +- 6 files changed, 215 insertions(+), 2 deletions(-) commit 7e939de1b2bb26496e4967e5346619700245e7c0 Author: Thierry Reding Date: Wed Apr 29 16:54:04 2015 +0200 soc/tegra: fuse: Unify Tegra20 and Tegra30 drivers Unifying the drivers makes it easier to restrict the legacy probing paths to 32-bit ARM. This in turn will come in handy as support for new 64-bit ARM SoCs is added. Signed-off-by: Thierry Reding arch/arm/mach-tegra/iomap.h | 3 - drivers/soc/tegra/fuse/Makefile | 1 + drivers/soc/tegra/fuse/fuse-tegra.c | 245 ++++++++++++++++++++++++------- drivers/soc/tegra/fuse/fuse-tegra20.c | 173 ++++++++-------------- drivers/soc/tegra/fuse/fuse-tegra30.c | 213 +++++++++------------------ drivers/soc/tegra/fuse/fuse.h | 87 +++++++---- drivers/soc/tegra/fuse/speedo-tegra114.c | 8 +- drivers/soc/tegra/fuse/speedo-tegra124.c | 14 +- drivers/soc/tegra/fuse/speedo-tegra20.c | 8 +- drivers/soc/tegra/fuse/speedo-tegra30.c | 22 +-- drivers/soc/tegra/fuse/tegra-apbmisc.c | 9 +- 11 files changed, 413 insertions(+), 370 deletions(-) commit 297c4f3dcbffe11ce899a7d068ea18079094403b Author: Thierry Reding Date: Mon May 4 13:30:50 2015 +0200 soc/tegra: fuse: Restrict legacy code to 32-bit ARM For backwards-compatibility with old device trees, if no APBMISC node exists this driver hard-codes the I/O memory region. All 64-bit ARM device tree files are recent enough that they can be required to have this node, and therefore the legacy code path is not required. Based on work done by Paul Walmsley . Cc: Paul Walmsley Signed-off-by: Thierry Reding drivers/soc/tegra/fuse/tegra-apbmisc.c | 67 +++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 9 deletions(-) commit c2fe4694d8ac0f997f6d7088437b710fc4e4a185 Author: Thierry Reding Date: Mon Mar 23 11:31:29 2015 +0100 soc/tegra: pmc: Add Tegra210 support Tegra210 uses a power management controller that is compatible with earlier SoC generations but adds a couple of power partitions for new hardware blocks. Reviewed-by: Paul Walmsley Signed-off-by: Thierry Reding drivers/soc/tegra/pmc.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ include/soc/tegra/pmc.h | 5 +++++ 2 files changed, 53 insertions(+) commit 7d71e90377fd74334dcfb5c265e204eef1613b53 Author: Thierry Reding Date: Wed Apr 29 12:42:28 2015 +0200 soc/tegra: pmc: Restrict legacy code to 32-bit ARM For backwards-compatibility with old device trees, if no PMC node exists this driver hard-codes the I/O memory region. All 64-bit ARM device tree files are recent enough that they can be required to have this node, and therefore the legacy code path is not required on 64-bit ARM. Based on work done by Paul Walmsley . Cc: Paul Walmsley Signed-off-by: Thierry Reding drivers/soc/tegra/pmc.c | 56 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 15 deletions(-) commit 95169cd23bfa88003f8be06234dbd65f5737add0 Author: Thierry Reding Date: Thu Jul 9 09:59:55 2015 +0200 soc/tegra: pmc: Avoid usage of uninitialized variable Make sure to only drop the reference to the OF node after it's been successfully obtained. Fixes: 3568df3d31d6 ("soc: tegra: Add thermal reset (thermtrip) support to PMC") Cc: # v4.0+ Reviewed-by: Mikko Perttunen Signed-off-by: Thierry Reding drivers/soc/tegra/pmc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 527b397a7a3647b8ba2eae2e7a12b237bf411476 Author: Geert Uytterhoeven Date: Tue Jun 23 15:48:02 2015 +0200 gpio: em: Remove obsolete platform data support Since commit 59032702ead90562 ("ARM: shmobile: Remove legacy platform devices from EMEV2 SoC code"), EMMA Mobile 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 Acked-by: Simon Horman Tested-by: Niklas Söderlund Signed-off-by: Linus Walleij drivers/gpio/gpio-em.c | 34 ++++++++-------------------------- include/linux/platform_data/gpio-em.h | 11 ----------- 2 files changed, 8 insertions(+), 37 deletions(-) commit 583facb6ae27dfb4d0fb5a952dade5aa990a05c9 Author: Dan Carpenter Date: Mon Jun 22 18:13:15 2015 +0300 pinctrl: samsung: remove "out of memory" messages Checkpatch.pl complains about these: WARNING: Possible unnecessary 'out of memory' message The messages use a little extra RAM and they add a few extra lines of code. We're probably never going to hit these out of memory situations but if we did then kmalloc() has pretty good error messages built-in. Signed-off-by: Dan Carpenter Reviewed-by: Krzysztof Kozlowski Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-exynos5440.c | 67 ++++++++-------------------- 1 file changed, 18 insertions(+), 49 deletions(-) commit 8749f8ed5cc07f4f130f2e5b2c41da78388146ec Author: Dan Carpenter Date: Mon Jun 22 18:12:24 2015 +0300 pinctrl: samsung: don't truncate the last char We were allocating enough space because sizeof("-grp") and sizeof("-mux") are both equal to 5 but in the snprintf() we only allowed for 4 characters so the last 'p' and 'x' characters were truncated. The allocate and sprintf can be done in one step with the kasprintf(). Signed-off-by: Dan Carpenter Reviewed-by: Krzysztof Kozlowski Signed-off-by: Linus Walleij drivers/pinctrl/samsung/pinctrl-exynos5440.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) commit e7aa6d8c1ba2429deef75fb24d029e00ab71bebf Author: Jun Nie Date: Mon Jun 29 10:35:57 2015 +0800 gpio: zx: Add ZTE zx296702 GPIO support Add ZTE zx296702 GPIO controller support Signed-off-by: Jun Nie Acked-by: Shawn Guo Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 6 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-zx.c | 324 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 331 insertions(+) commit 24f743a0f06675da4e7c6a07b88e90d425edd30a Author: Jun Nie Date: Mon Jun 29 10:35:56 2015 +0800 gpio: Document ZTE zx296702 GPIO DT binding Add document of ZTE zx296702 GPIO binding Signed-off-by: Jun Nie Acked-by: Shawn Guo Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/zx296702-gpio.txt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) commit c15df306fc79c672573f1cc2ebdfcb32d7e68780 Author: YOSHIFUJI Hideaki Date: Thu Jul 16 16:51:30 2015 +0900 ipv6: Remove unused arguments for __ipv6_dev_get_saddr(). Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller net/ipv6/addrconf.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit da104dc845afbebcad6d87bd5810c266a426f4dc Author: Sekhar Nori Date: Wed Jul 8 20:57:37 2015 +0530 ARM: omap2plus_defconfig: enable support for M25P80 SPI NOR M25P80 driver provides support for most common SPI NOR devices. These devices are commonly found on TI EVMs for AM437x and DRA7x SoCs. Enable support for this driver in defconfig for omap2plus devices. Signed-off-by: Sekhar Nori Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 5c107aa031c95c9d9df3034827894e3b6dde90cd Author: Sekhar Nori Date: Wed Jul 8 20:57:36 2015 +0530 ARM: omap2plus_defconfig: enable support for TI CPTS CPTS module of CPSW IP enables timestamp synchronization using PTP. Enable CPTS feature of CPSW driver. Available on AM335x, AM437x and DRA7x SoCs. Signed-off-by: Sekhar Nori Acked-by: Mugunthan V N Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) commit af7b9f894234d9c64dff497c554e6fea9a525638 Author: Sekhar Nori Date: Wed Jul 8 20:57:35 2015 +0530 ARM: omap2plus_defconfig: enable support for TI touchscreen Enable support for on-chip resistive touchscreen m found on AM335x and AM437x devices. Signed-off-by: Sekhar Nori Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 1 + 1 file changed, 1 insertion(+) commit 588f2c31f3d8b4e8ec74adff0f05cdf576dd1ab3 Author: Sekhar Nori Date: Wed Jul 8 20:57:34 2015 +0530 ARM: omap2plus_defconfig: enable support for TI ADC Enable support for on-chip ADC found on AM335x and AM437x devices. Signed-off-by: Sekhar Nori Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 30a636f984984655ad5350e73a6a3141c9ba85ae Author: Thierry Reding Date: Mon May 18 17:35:30 2015 +0200 memory: tegra: Expose supported rates via debugfs In order to ease testing, expose the list of supported EMC frequencies via debugfs. Reviewed-by: Tomeu Vizoso Signed-off-by: Thierry Reding drivers/memory/tegra/tegra124-emc.c | 42 +++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) commit 3a369982b88e5f162fc48b968ad989529db58401 Author: Thierry Reding Date: Mon Mar 23 11:29:25 2015 +0100 soc/tegra: Add Tegra210 support Add Tegra210 to the matching table for NVIDIA Tegra SoCs. Signed-off-by: Thierry Reding drivers/soc/tegra/common.c | 1 + 1 file changed, 1 insertion(+) commit ad09c8c23e372182fe1454b3c10bef1c44df5cea Author: Thierry Reding Date: Mon Mar 23 11:28:53 2015 +0100 soc/tegra: Add Tegra132 support Add Tegra132 to the matching table for NVIDIA Tegra SoCs. Signed-off-by: Thierry Reding drivers/soc/tegra/common.c | 1 + 1 file changed, 1 insertion(+) commit 5cf4af3bebb718b72a23b7e80fddfe8b4e8b0620 Author: Thierry Reding Date: Fri Jan 23 09:34:44 2015 +0100 ALSA: hda/tegra: Order clock and reset names consistently The example in the device tree binding documentation and the driver code list hda2codec_2x as the last entry in the clock-names and reset-names properties. Update the description of the properties to use the same order. Signed-off-by: Thierry Reding Documentation/devicetree/bindings/sound/nvidia,tegra30-hda.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 42a8679cf27439c5c9f1f9aa85854f0dec74687c Author: Marcel Ziswiler Date: Fri Apr 10 23:35:58 2015 +0200 ALSA: hda/tegra - Fix hda2codec_2x clock and reset names Fix hda2codec_2x clock and reset names in Tegra30 HDA controller device tree node documentation. While at it also fix coma vs. semicolon issue. Signed-off-by: Marcel Ziswiler Reviewed-by: Paul Walmsley Signed-off-by: Thierry Reding Documentation/devicetree/bindings/sound/nvidia,tegra30-hda.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 95b612cc6c7f95f4e08f1b3dbc6588fda49b1b12 Author: Masahiro Yamada Date: Thu Jul 9 10:55:01 2015 +0900 pinctrl: move CONFIG_PINCTRL to drivers/Makefile Kbuild should descend into drivers/pinctrl/ only when CONFIG_PINCTRL is enabled because everything under that directory depends on CONFIG_PINCTRL. We can avoid the conditional, ifeq ($(CONFIG_OF),y) ... endif. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/Makefile | 2 +- drivers/pinctrl/Makefile | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) commit b3b6616378a4dcf1e903c8ad70fabfe4c2ad529b Author: Masahiro Yamada Date: Tue Jul 14 11:40:07 2015 +0900 pinctrl: UniPhier: add UniPhier PH1-LD6b pinctrl driver Add pin configuration and pinmux support for UniPhier PH1-LD6b SoC. Changes in v2: - sort groups and funcs alphabetically - add i2c pin-mux settings - sort members of platform_driver - change to tristate - add THIS_MODULE to pinctrl_desc - use module_platform_driver Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-ph1-ld6b.c | 1274 +++++++++++++++++++++++++++ 3 files changed, 1279 insertions(+) commit 3c0fd8e3de93fc12b35cf5be585a5d8dc68b7162 Author: Masahiro Yamada Date: Tue Jul 14 11:40:06 2015 +0900 pinctrl: UniPhier: add UniPhier ProXstream2 pinctrl driver Add pin configuration and pinmux support for UniPhier ProXstream2 SoC. Changes in v2: - sort groups and funcs alphabetically - add i2c pin-mux settings - sort members of platform_driver - change to tristate - add THIS_MODULE to pinctrl_desc - use module_platform_driver Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-proxstream2.c | 1269 ++++++++++++++++++++++++ 3 files changed, 1274 insertions(+) commit 1950b0488780d0d93481e17c56bc7a97a6037459 Author: Masahiro Yamada Date: Tue Jul 14 11:40:05 2015 +0900 pinctrl: UniPhier: add UniPhier PH1-Pro5 pinctrl driver Add pin configuration and pinmux support for UniPhier PH1-Pro5 SoC. Changes in v2: - sort groups and funcs alphabetically - add i2c pin-mux settings - sort members of platform_driver - change to tristate - add THIS_MODULE to pinctrl_desc - use module_platform_driver Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-ph1-pro5.c | 1346 +++++++++++++++++++++++++++ 3 files changed, 1351 insertions(+) commit 95372f9dc892a79bce1e81b8862bb4ad15cf4f76 Author: Masahiro Yamada Date: Tue Jul 14 11:40:04 2015 +0900 pinctrl: UniPhier: add UniPhier PH1-sLD8 pinctrl driver Add pin configuration and pinmux support for UniPhier PH1-sLD8 SoC. Changes in v2: - sort groups and funcs alphabetically - add i2c pin-mux settings - sort members of platform_driver - change to tristate - add THIS_MODULE to pinctrl_desc - use module_platform_driver Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-ph1-sld8.c | 794 ++++++++++++++++++++++++++++ 3 files changed, 799 insertions(+) commit b5cf4161ca8a54c79a05beaaf5d18c2c67193105 Author: Masahiro Yamada Date: Tue Jul 14 11:40:03 2015 +0900 pinctrl: UniPhier: add UniPhier PH1-Pro4 pinctrl driver Add pin configuration and pinmux support for UniPhier PH1-Pro4 SoC. Changes in v2: - sort groups and funcs alphabetically - add i2c pin-mux settings - sort members of platform_driver - change to tristate - add THIS_MODULE to pinctrl_desc - use module_platform_driver Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-ph1-pro4.c | 1554 +++++++++++++++++++++++++++ 3 files changed, 1559 insertions(+) commit edd95a4a95f32c701e291e06016c6ca110ef65b7 Author: Masahiro Yamada Date: Tue Jul 14 11:40:02 2015 +0900 pinctrl: UniPhier: add UniPhier PH1-LD4 pinctrl driver Add pin configuration and pinmux support for UniPhier PH1-LD4 SoC. Changes in v2: - sort groups and funcs alphabetically - add missing "emmc_dat8" group - add i2c pin-mux settings - sort members of platform_driver - change to tristate - add THIS_MODULE to pinctrl_desc - use module_platform_driver Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 2 + drivers/pinctrl/uniphier/pinctrl-ph1-ld4.c | 886 +++++++++++++++++++++++++++++ 3 files changed, 892 insertions(+) commit 6e908892025885b07e804dc6c05aab6ce1e06832 Author: Masahiro Yamada Date: Tue Jul 14 11:40:01 2015 +0900 pinctrl: UniPhier: add UniPhier pinctrl core support The core support for the pinctrl drivers for all the UniPhier SoCs. Changes in v2: - drop vogus THIS_MODULE because this file is always built-in - drop vogus "include because this file is always built-in Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/Kconfig | 1 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/uniphier/Kconfig | 8 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | 684 +++++++++++++++++++++++ drivers/pinctrl/uniphier/pinctrl-uniphier.h | 217 +++++++ 6 files changed, 912 insertions(+) commit 0e948042c4203b97e44370993ef042c945308282 Author: Bjorn Andersson Date: Wed Jun 17 23:47:28 2015 -0700 pinctrl: qcom: spmi-mpp: Implement support for sink mode The MPP supports three modes; digital, analog and sink mode. This patch implements support for the latter. Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij .../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 5 + drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 115 +++++++++++++-------- 2 files changed, 76 insertions(+), 44 deletions(-) commit eaaf5dd46457c4fa3a9e2d1be775821d4e72773c Author: Bjorn Andersson Date: Wed Jun 17 23:47:27 2015 -0700 pinctrl: qcom: spmi-mpp: Introduce defines for MODE_CTL Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) commit 7682b3740dd7e3039ec9885b423f7e68f0dc24d0 Author: Bjorn Andersson Date: Wed Jun 17 23:47:26 2015 -0700 pinctrl: qcom: spmi-mpp: Fixes related to enable handling There's currently no way to re-enable a mpp block once you've entered a state that disables the state, this patch makes it possible to leave the bias-high-impedance state. Also read the enable state from the hardware on probe. With this in place the is_enabled variable is accurately tracking the state of the hardware and we can use that for the debug output as well. Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) commit ba5f94cd566ac562c9374729baab156886759946 Author: Bjorn Andersson Date: Wed Jun 17 23:47:25 2015 -0700 pinctrl: qcom: spmi-mpp: Transition to generic dt binding parser Use the newly introduced extensible generic dt parser instead of rolling our own dt parsing functions. Signed-off-by: Bjorn Andersson Signed-off-by: Linus Walleij drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 130 ++++---------------------------- 1 file changed, 16 insertions(+), 114 deletions(-) commit fb00de771b0c35fc42212272596ddb07bf120b21 Author: Masahiro Yamada Date: Thu Jun 18 14:42:45 2015 +0900 pinctrl: simplify of_pinctrl_get() This commit does not change the logic at all. Signed-off-by: Masahiro Yamada Signed-off-by: Linus Walleij drivers/pinctrl/devicetree.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 9612327c1ffcdacc863b3baf0a3c8c9b0837ffd2 Author: Frank Li Date: Fri Jun 19 23:32:27 2015 +0800 pinctrl: imx: add i.mx6ul subdriver Add i.MX6UL pinctrl driver support. Signed-off-by: Anson Huang Signed-off-by: Frank Li Acked-by: Shawn Guo Signed-off-by: Linus Walleij drivers/pinctrl/freescale/Kconfig | 7 + drivers/pinctrl/freescale/Makefile | 1 + drivers/pinctrl/freescale/pinctrl-imx6ul.c | 323 +++++++++++++++++++++++++++++ 3 files changed, 331 insertions(+) commit 441f77dcf8defcebb4477fea6db03624259fef42 Author: Laurent Pinchart Date: Fri Jun 26 01:43:07 2015 +0300 sh-pfc: r8a7791: remove non-existing GPIO pins GPIO banks 1 and 7 are missing pins 26 to 31. Remove them. Signed-off-by: Laurent Pinchart Signed-off-by: Sergei Shtylyov Tested-by: Geert Uytterhoeven Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit b5599df20f1ee45cef811a7ab1c7358d9faf7bf8 Author: Laurent Pinchart Date: Fri Jun 26 01:42:04 2015 +0300 sh-pfc: r8a7790: remove non-existing GPIO pins GPIO banks 1 and 2 are missing pins 30 and 31. Remove them. Signed-off-by: Laurent Pinchart Signed-off-by: Sergei Shtylyov Signed-off-by: Linus Walleij drivers/pinctrl/sh-pfc/pfc-r8a7790.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit 13b8a68a9c08410f03047fc888706299b5b75754 Author: Mario Bambagini Date: Tue Jun 16 22:32:30 2015 +0200 added tabs instead of spaces Tabs have been inserted instead of spaces to indent the code correctly. Same error fixed four times. Signed-off-by: Mario Bambagini Signed-off-by: Linus Walleij drivers/pinctrl/pinctrl-adi2-bf60x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9eb15dbbfa1a23b5e65efaf1d5d6c47798e7264b Author: Tuomas Tynkkynen Date: Wed May 13 17:58:48 2015 +0300 cpufreq: Add cpufreq driver for Tegra124 Add a new cpufreq driver for Tegra124. Instead of using the PLLX as the CPU clocksource, switch immediately to the DFLL. It allows the use of higher clock rates, and will automatically scale the CPU voltage as well. Besides the CPU clocksource switch, we let the cpufreq-dt driver for all the cpufreq operations. This driver also relies on the DFLL driver to fill the OPP table for the CPU0 device, so that the cpufreq-dt driver knows what frequencies to use. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Viresh Kumar Signed-off-by: Thierry Reding drivers/cpufreq/Kconfig.arm | 7 ++ drivers/cpufreq/Makefile | 1 + drivers/cpufreq/tegra124-cpufreq.c | 214 +++++++++++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+) commit 109e13eaa40dfebf8893234cc5f1535a04e23acf Author: Tuomas Tynkkynen Date: Wed May 13 17:58:47 2015 +0300 cpufreq: tegra: Rename tegra-cpufreq to tegra20-cpufreq The Tegra124 will use a different driver for frequency scaling, so rename the old driver (which handles only Tegra20) appropriately. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Viresh Kumar Signed-off-by: Thierry Reding drivers/cpufreq/Kconfig.arm | 6 +- drivers/cpufreq/Makefile | 2 +- drivers/cpufreq/tegra-cpufreq.c | 218 -------------------------------------- drivers/cpufreq/tegra20-cpufreq.c | 218 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 222 insertions(+), 222 deletions(-) commit 135796c9ccd3d6c53fbc3f6c4d73d8ba6820b739 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:46 2015 +0300 cpufreq: tegra124: Add device tree bindings The cpufreq driver for Tegra124 will be a different one than the old Tegra20 cpufreq driver (tegra-cpufreq), which does not use the device tree. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Viresh Kumar Signed-off-by: Thierry Reding .../bindings/cpufreq/tegra124-cpufreq.txt | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit a3c83ff20c64a0ea3580aa7ed2953ff1602334dd Author: Paul Walmsley Date: Tue May 19 14:43:30 2015 +0300 clk: tegra: Add DFLL DVCO reset control for Tegra124 The DVCO present in the DFLL IP block has a separate reset line, exposed via the CAR IP block. This reset line is asserted upon SoC reset. Unless something (such as the DFLL driver) deasserts this line, the DVCO will not oscillate, although reads and writes to the DFLL IP block will complete. Thanks to Aleksandr Frid for identifying this and saving hours of debugging time. Signed-off-by: Paul Walmsley [ttynkkynen: ported to tegra124 from tegra114] Signed-off-by: Tuomas Tynkkynen [mikko.perttunen: ported to special reset callback] Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette Signed-off-by: Thierry Reding drivers/clk/tegra/clk-tegra124.c | 68 ++++++++++++++++++++++++++++++++ include/dt-bindings/reset/tegra124-car.h | 12 ++++++ 2 files changed, 80 insertions(+) commit 66b6f3d07454a66ec029543c653d3bce7e6cb3c1 Author: Mikko Perttunen Date: Wed May 20 09:27:05 2015 +0300 clk: tegra: Introduce ability for SoC-specific reset control callbacks This patch allows SoC-specific CAR initialization routines to register their own reset_assert and reset_deassert callbacks with the common Tegra CAR code. If defined, the common code will call these callbacks when a reset control with number >= num_periph_banks * 32 is attempted to be asserted or deasserted respectively. Numbers greater than or equal to num_periph_banks * 32 are used to avoid clashes with low numbers that are automatically mapped to standard CAR reset lines. Each SoC with these special resets should specify the defined reset control numbers in a device tree header file. Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette Signed-off-by: Thierry Reding drivers/clk/tegra/clk.c | 39 +++++++++++++++++++++++++++++++-------- drivers/clk/tegra/clk.h | 3 +++ 2 files changed, 34 insertions(+), 8 deletions(-) commit fa63aa3dea48fd18e560c232424e080a2e2c4779 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:38 2015 +0300 clk: tegra: Add functions for parsing CVB tables Tegra CVB tables encode the relationship between operating voltage and optimal frequency as a function of the so-called speedo value. The speedo value is written to the on-chip fuses at the factory, which allows the voltage-frequency operating points to be calculated on an per-chip basis. Add utility functions to parse the Tegra-specific tables and export the voltage-frequency pairs to the generic OPP framework for other drivers to use. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Peter De Schrijver Acked-by: Michael Turquette Signed-off-by: Thierry Reding arch/arm/mach-tegra/Kconfig | 1 + drivers/clk/tegra/cvb.c | 140 ++++++++++++++++++++++++++++++++++++++++++++ drivers/clk/tegra/cvb.h | 67 +++++++++++++++++++++ 3 files changed, 208 insertions(+) commit c4fe70ada40f53e8cd5e6f8d9a2433781e935835 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:37 2015 +0300 clk: tegra: Add closed loop support for the DFLL With closed loop support, the clock rate of the DFLL can be adjusted. The oscillator itself in the DFLL is a free-running oscillator whose rate is directly determined the supply voltage. However, the DFLL module contains logic to compare the DFLL output rate to a fixed reference clock (51 MHz) and make a decision to either lower or raise the DFLL supply voltage. The DFLL module can then autonomously change the supply voltage by communicating with an off-chip PMIC via either I2C or PWM signals. This driver currently supports only I2C. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Peter De Schrijver Acked-by: Michael Turquette Signed-off-by: Thierry Reding drivers/clk/tegra/clk-dfll.c | 666 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 663 insertions(+), 3 deletions(-) commit d8d7a08fa82ff7c241c74c2461f342c5685dda27 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:36 2015 +0300 clk: tegra: Add library for the DFLL clock source (open-loop mode) Add shared code to support the Tegra DFLL clocksource in open-loop mode. This root clocksource is present on the Tegra124 SoCs. The DFLL is the intended primary clock source for the fast CPU cluster. This code is very closely based on a patch by Paul Walmsley from December (http://comments.gmane.org/gmane.linux.ports.tegra/15273), which in turn comes from the internal driver by originally created by Aleksandr Frid . Subsequent patches will add support for closed loop mode and drivers for the Tegra124 fast CPU cluster DFLL devices, which rely on this code. Signed-off-by: Paul Walmsley Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Peter De Schrijver Acked-by: Michael Turquette Signed-off-by: Thierry Reding drivers/clk/tegra/Makefile | 1 + drivers/clk/tegra/clk-dfll.c | 1095 ++++++++++++++++++++++++++++++++++++++++++ drivers/clk/tegra/clk-dfll.h | 54 +++ 3 files changed, 1150 insertions(+) commit 0c59d26770333cf605d9119a78dd6c1ebebc6a61 Author: Tuomas Tynkkynen Date: Wed May 13 17:58:35 2015 +0300 clk: tegra: Add binding for the Tegra124 DFLL clocksource The DFLL is the main clocksource for the fast CPU cluster on Tegra124 and also provides automatic CPU rail voltage scaling as well. The DFLL is a separate IP block from the usual Tegra124 clock-and-reset controller, so it gets its own node in the device tree. Signed-off-by: Tuomas Tynkkynen Signed-off-by: Mikko Perttunen Acked-by: Michael Turquette Signed-off-by: Thierry Reding .../bindings/clock/nvidia,tegra124-dfll.txt | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) commit 228e5fadba3c7d6ef39bac087cd086ab9d68d945 Author: Suman Anna Date: Fri Jul 10 15:43:05 2015 -0500 ARM: OMAP2+: Remove module references from IOMMU machine layer The OMAP IOMMU driver has been adapted to the IOMMU framework for a while now, and it no longer supports being built as a module. Cleanup all the module related references both from the code and in the build. While at it, also relocate a comment around the initcall to avoid a checkpatch strict warning about using a blank line after function/struct/union/enum declarations. Signed-off-by: Suman Anna Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Makefile | 3 +-- arch/arm/mach-omap2/omap-iommu.c | 13 +------------ 2 files changed, 2 insertions(+), 14 deletions(-) commit ea827ad5ffbb78812f6dbdee005e1f364b6bdc58 Author: Nishanth Menon Date: Mon Jun 22 10:12:14 2015 -0500 ARM: DRA7: Provide proper IO map table DRA7 uses OMAP5 IO table at the moment. This is purely spurious since the OMAP5 and DRA7 register maps are different in many aspects. AM57xx/DRA7 TRM Reference: http://www.ti.com/lit/ug/spruhz6/spruhz6.pdf NOTE: Most of the drivers are already doing ioremap, so, there should'nt be any functional improvement involved here, other than making the initial iotable more accurate. Fixes: a3a9384a1157 ("ARM: DRA7: Reuse io tables and add a new .init_early") Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren arch/arm/mach-omap2/board-generic.c | 4 +-- arch/arm/mach-omap2/common.h | 1 + arch/arm/mach-omap2/io.c | 58 ++++++++++++++++++++++++++++++++-- arch/arm/mach-omap2/iomap.h | 63 +++++++++++++++++++++++++++++++++++++ arch/arm/mach-omap2/omap54xx.h | 8 +++++ 5 files changed, 130 insertions(+), 4 deletions(-) commit d1dabab2841d546f8b946b4940fc63c15e35a739 Author: Tony Lindgren Date: Wed Jun 3 15:26:20 2015 -0700 ARM: OMAP2+: Clean up omap4_local_timer_init Inspired by a patch from Felipe Balbi , we can now get rid of most the code in omap4_local_timer_init. Omap4 is now device tree only.. And we have not properly supported omap4 ES1.0 revision for a really long time AFAIK. Let's just remove all that code to simplify things. This assumes we have arm,cortex-a9-twd-timer entry in the omap4.dtsi file, which we do. Reviewed-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/mach-omap2/timer.c | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 4c576229ac371bc9d96f2b365ebcd296aa266cec Author: Anshuman Khandual Date: Mon Jul 6 15:55:33 2015 +0530 powerpc/signal: Fix confusing header documentation in sigcontext.h Commit ce48b2100785 "powerpc: Add VSX context save/restore, ptrace and signal support" expanded the 'vmx_reserve' array element to contain 101 double words, but the comment block above was not updated. Also reorder the constants in the array size declaration to reflect the logic mentioned in the comment block above. This change helps in explaining how the HW registers are represented in the array. But no functional change. Signed-off-by: Anshuman Khandual [mpe: Reworded change log and added whitespace around +'s] Signed-off-by: Michael Ellerman arch/powerpc/include/uapi/asm/sigcontext.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 829023df86d4ec39b110860cd5f106b7ac58f772 Author: Anshuman Khandual Date: Mon Jul 6 16:24:10 2015 +0530 powerpc/tm: Drop tm_orig_msr from thread_struct Currently tm_orig_msr is getting used during process context switch only. Then there is ckpt_regs which saves the checkpointed userspace context The MSR slot contained in ckpt_regs structure can be used during process context switch instead of tm_orig_msr, thus allowing us to drop it from thread_struct structure. This patch does that change. Acked-by: Michael Neuling Signed-off-by: Anshuman Khandual Signed-off-by: Michael Ellerman arch/powerpc/include/asm/processor.h | 1 - arch/powerpc/kernel/process.c | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) commit 9a0cb98589037c0ccb6210f5fd827445b3710c5e Author: Markus Elfring Date: Tue Jun 30 14:00:16 2015 +0200 ARM: OMAP2: Delete an unnecessary check The of_node_put() function tests whether its argument is NULL and then returns immediately if so. Furthermore, the kerneldoc for of_node_put() explicitly supports passing in a NULL pointer as its argument. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring [paul@pwsan.com: dropped the omap_device.c and omap_hwmod.c changes for now, edited the commit message accordingly and to note the documented "contract"] Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/timer.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 9e5d46b0510e686550c486c410491291c67e8f0e Author: Sekhar Nori Date: Sat Jul 11 20:29:16 2015 +0530 ARM: OMAP2+: sparse: add missing function declarations omap3xxx_restart() and omap44xx_restart() are global functions declared in common.h. Include this file in omap3-restart.c and omap4-restart.c to prevent sparse warnings of type: arch/arm/mach-omap2/omap4-restart.c:22:6: warning: symbol 'omap44xx_restart' was not declared. Should it be static? Signed-off-by: Sekhar Nori Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap3-restart.c | 1 + arch/arm/mach-omap2/omap4-restart.c | 1 + 2 files changed, 2 insertions(+) commit f734a9b3b19e01d598d03a336de32a59a52c1575 Author: Sekhar Nori Date: Sat Jul 11 20:29:15 2015 +0530 ARM: OMAP2+: sparse: add missing static declaration Add missing static declaration for file local variables. This fixes sparse warnings of type: arch/arm/mach-omap2/omap_hwmod_81xx_data.c:491:26: warning: symbol 'dm81xx_alwon_l3_slow__gpmc' was not declared. Should it be static? Signed-off-by: Sekhar Nori Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap-mpuss-lowpower.c | 2 +- arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 2 +- arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 2 +- arch/arm/mach-omap2/omap_hwmod_81xx_data.c | 34 +++++++++++----------- arch/arm/mach-omap2/pdata-quirks.c | 6 ++-- 5 files changed, 23 insertions(+), 23 deletions(-) commit 0d0578815bac634aef6e64794e7ad2473fc7af44 Merge: 07e6a97 c305524 Author: David S. Miller Date: Wed Jul 15 21:39:40 2015 -0700 Merge branch 'protodown' Anuradha Karuppiah says: ==================== net: Introduce protodown flag. User space daemons can detect errors in the network that need to be notified to the switch device drivers. Drivers can react to this error state by doing a phy-down on the switch-port which would result in a carrier-off locally and on the directly connected switch. Doing that would prevent loops and black-holes in the network. One such use case is the multi-chassis LAG application - 1. The MLAG application runs on peer switches (say Switch0 and Switch1) synchronizing states, forwarding entries etc. between the two switches over the peer-link (this is a link directly connecting the two switches). 2. An MLAG election process designates one of the switches as a primary (for e.g. Switch0 is primary and Switch1 is secondary). 3. The peer link plays a critical role in allowing Switch0-Switch1 to function as a single LAG partner to the downstream dual-connected servers. When the peer-link between the switches goes down we have a split-brain situation. Switch0 and Switch1 are no longer in sync and are acting independently. This can result in traffic loops and traffic black-holing in the network. 4. To prevent these problems the MLAG application on the secondary switch phy-downs the MLAG ports on detecting the peer-link down. This will be seen as a carrier down on servers that are dual-connected to Switch0 and Switch1. 5. Specifically a dual-connected server will see a carrier-down on the port connected to the MLAG secondary, Switch1, and will stop using that port for traffic TX. So traffic black holing is prevented. v6 to v7: Removed some unnecessary code in response to review comments. v5 to v6: Replaced proto_flags with a simple proto_down boolean attribute in response to Dave's comments. v4 to v5: Changed the ip link display format for protodown to match the set as recommended by Stephen. v3 to v4: I have moved protodown out of IFF_XXX and introduced a separate proto_flags field with IF_PROTOF_DOWN bit being used by apps to notify switch port errors. This is in response to Stephen's comments that adding a new IFF_XXX may break user space. I have used rocker as the sample switch driver. And to test this functionality I used the qemu-rocker patch that Scott sent out in response to the v3 posting (needed to set link up/down when phy is enabled/disabled). v1 to v2: Based on Dave's suggestion I have moved out aggregating of error bits across applications to a user space framework. This patch now simply notifies an aggregated error bit to drivers enabling them to handle the error gracefully. ==================== Signed-off-by: David S. Miller commit c305524617dcd617d698dfe2682f3212e698f781 Author: Anuradha Karuppiah Date: Tue Jul 14 13:43:21 2015 -0700 rocker: Handle protodown notifications. protodown can be set by user space applications like MLAG on detecting errors on a switch port. This patch provides sample switch driver changes for handling protodown. Rocker PHYS disables the port in response to protodown. Signed-off-by: Anuradha Karuppiah Signed-off-by: Andy Gospodarek Signed-off-by: Roopa Prabhu Signed-off-by: Wilson Kok Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 88d6378bd6c096cb8440face3ae3f33d55a2e6e4 Author: Anuradha Karuppiah Date: Tue Jul 14 13:43:20 2015 -0700 netlink: changes for setting and clearing protodown via netlink. Signed-off-by: Anuradha Karuppiah Signed-off-by: Andy Gospodarek Signed-off-by: Roopa Prabhu Signed-off-by: Wilson Kok Signed-off-by: David S. Miller include/uapi/linux/if_link.h | 1 + net/core/rtnetlink.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit d746d707a8b1421a4ba46b497cb5d59e20161645 Author: Anuradha Karuppiah Date: Tue Jul 14 13:43:19 2015 -0700 net core: Add protodown support. This patch introduces the proto_down flag that can be used by user space applications to notify switch drivers that errors have been detected on the device. The switch driver can react to protodown notification by doing a phys down on the associated switch port. Signed-off-by: Anuradha Karuppiah Signed-off-by: Andy Gospodarek Signed-off-by: Roopa Prabhu Signed-off-by: Wilson Kok Signed-off-by: David S. Miller include/linux/netdevice.h | 14 ++++++++++++++ net/core/dev.c | 20 ++++++++++++++++++++ net/core/net-sysfs.c | 14 ++++++++++++++ 3 files changed, 48 insertions(+) commit 07e6a97da1eba064bb35cfd5c121e90865393a60 Author: Thomas Falcon Date: Tue Jul 14 10:51:51 2015 -0500 ibmveth: add support for TSO6 This patch adds support for a new method of signalling the firmware that TSO packets are being sent. The new method removes the need to alter the ip and tcp checksums and allows TSO6 support. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller drivers/net/ethernet/ibm/ibmveth.c | 145 ++++++++++++++++++++++++++++++------- drivers/net/ethernet/ibm/ibmveth.h | 18 ++++- 2 files changed, 135 insertions(+), 28 deletions(-) commit bd664f892e3e2b01c79197cad3111d54b7aedf39 Author: Johannes Thumshirn Date: Thu Jul 9 09:39:42 2015 +0200 cxl: Destroy afu->contexts_idr on release of an afu Destroy afu->contexts_idr on release of an afu, reclaiming the allocated memory. Signed-off-by: Johannes Thumshirn Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/pci.c | 1 + 1 file changed, 1 insertion(+) commit b2a02ac65e40fb3900d176828a407b44bb33f9f4 Author: Johannes Thumshirn Date: Wed Jul 8 17:14:36 2015 +0200 cxl: Destroy cxl_adapter_idr on module_exit Destroy cxl_adapter_idr on module exit, reclaiming the allocated memory. This was detected by the following semantic patch (written by Luis Rodriguez ) @ defines_module_init @ declarer name module_init, module_exit; declarer name DEFINE_IDR; identifier init; @@ module_init(init); @ defines_module_exit @ identifier exit; @@ module_exit(exit); @ declares_idr depends on defines_module_init && defines_module_exit @ identifier idr; @@ DEFINE_IDR(idr); @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... idr_destroy(&idr); ... } @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @ identifier declares_idr.idr, defines_module_exit.exit; @@ exit(void) { ... +idr_destroy(&idr); } Signed-off-by: Johannes Thumshirn Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/main.c | 1 + 1 file changed, 1 insertion(+) commit 2de8530ba0c71a2fba02590681af0f3a2a187a9b Author: Haiyang Zhang Date: Mon Jul 13 13:09:16 2015 -0700 hv_netvsc: Add close of RNDIS filter into change mtu call The current change mtu call only stops tx before removing RNDIS filter. In case ringbufer is not empty, the rndis_filter_device_remove() may hang on removing the buffers. This patch adds close of RNDIS filter before removing it, also a gradual waiting loop until the ring is empty. The change_mtu hang issue under heavy traffic is solved by this patch. Signed-off-by: Haiyang Zhang Reviewed-by: K. Y. Srinivasan Signed-off-by: David S. Miller drivers/net/hyperv/netvsc_drv.c | 58 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-) commit c0b8da1e7613a11ce7e44560aae507b62da1f846 Author: YOSHIFUJI Hideaki/吉藤英明 Date: Mon Jul 13 23:28:10 2015 +0900 ipv6: Fix finding best source address in ipv6_dev_get_saddr(). Commit 9131f3de2 ("ipv6: Do not iterate over all interfaces when finding source address on specific interface.") did not properly update best source address available. Plus, it introduced possible NULL pointer dereference. Bug was reported by Erik Kline . Based on patch proposed by Hajime Tazaki . Fixes: 9131f3de24db4dc12199aede7d931e6703e97f3b ("ipv6: Do not iterate over all interfaces when finding source address on specific interface.") Signed-off-by: YOSHIFUJI Hideaki Acked-by: Hajime Tazaki Acked-by: Erik Kline Signed-off-by: David S. Miller net/ipv6/addrconf.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) commit 3b476aadbc1409fef6be85f601117f2c6a331faa Author: Vipin K Parashar Date: Wed Jul 8 16:36:01 2015 +0530 powerpc/powernv: Add poweroff (EPOW, DPO) events support for PowerNV platform This patch adds support for OPAL EPOW (Environmental and Power Warnings) and DPO (Delayed Power Off) events for the PowerNV platform. These events are generated on FSP (Flexible Service Processor) based systems. EPOW events are generated due to various critical system conditions that require system shutdown. A few examples of these conditions are high ambient temperature or system running on UPS power with low UPS battery. DPO event is generated in response to admin initiated system shutdown request. Upon receipt of EPOW and DPO events the host kernel invokes orderly_poweroff() for performing graceful system shutdown. Signed-off-by: Vipin K Parashar Acked-by: Vaibhav Jain Signed-off-by: Michael Ellerman arch/powerpc/include/asm/opal-api.h | 40 +++++++ arch/powerpc/include/asm/opal.h | 3 +- arch/powerpc/platforms/powernv/opal-power.c | 147 ++++++++++++++++++++++--- arch/powerpc/platforms/powernv/opal-wrappers.S | 1 + 4 files changed, 173 insertions(+), 18 deletions(-) commit ac10836b681289f7e430e52b106a209bbdcaa75e Author: Yijing Wang Date: Fri Jun 19 15:57:45 2015 +0800 PCI: pciehp: Simplify pcie_poll_cmd() Move first slot status read into while to simplify code. Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/pciehp_hpc.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) commit a6ed1f4e94e1883742ac79f09f9754ffacfae456 Author: Yijing Wang Date: Fri Jun 19 15:57:44 2015 +0800 PCI: Use "slot" and "pci_slot" for struct hotplug_slot and struct pci_slot Now in pci_hotplug_core.c, we randomly name a struct hotplug_slot and a struct pci_slot. It's easy to confuse them, so let us use "slot" for a struct hotplug_slot and "pci_slot" for a struct pci_slot. No functional change. Signed-off-by: Yijing Wang Signed-off-by: Bjorn Helgaas drivers/pci/hotplug/pci_hotplug_core.c | 122 ++++++++++++++++----------------- 1 file changed, 61 insertions(+), 61 deletions(-) commit a01e72fbc41e322ed229465de8b595a7e3ec6549 Author: Len Brown Date: Wed Jul 15 21:49:41 2015 -0400 tools/power turbostat: fix parameter passing for forked command turbostat supports forked command when sampling cpu state. However, the forked command is not allowed to be executed with options, otherwise turbostat might regard these options as invalid turbostat options. For example: ./turbostat stress -c 4 -t 10 ./turbostat: unrecognized option '-t' Reported-by: Chen Yu Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9243b25b2361a0818caaf8ab2ef7d1c5be4b1211 Merge: 40bdc53 76945bf Author: David S. Miller Date: Wed Jul 15 17:31:14 2015 -0700 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-07-14 This series contains updates to i40e and i40evf only. Joe Stringer and Jesse Gross add a ndo_features_check function to ensure that the i40e driver does not try to offload packets that exceed 80 bytes in length. Anjali adds additional stats to track flow director ATR and SB current state and flow director flush count which will help the need for verbose debug logs with respect to flow director. Also refines an error message to avoid confusion, so that it indicates what may have really happened when the init_shared_code() call possibly fails. Pawel adds new fields to the capabilities structures to handle Flex-10 device/function capabilities which is needed to support Flex-10 configs. Jesse improves the transmit performance by added a prefetch for the next transmit descriptor to be used when we know there are more coming. Mitch modifies i40evf driver to handle/allow an abundance of vectors. Currently the driver only maps transmit and receive queues to a single MSI-X vector per queue if there are exactly enough vectors for this, but if we have too many vectors, it will fail and allocate queues to vectors in a suboptimal manner. So change the condition check to allow for an excess number of vectors and won't use the extras. Also update the driver to just return success if the user attempts to set a port VLAN on a VF that already has the same port VLAN configured, instead of going through unnecessary filter removals & adds. Fix the MAC filters for VFs, which were being programmed with 0 for the VLAN value when there was no VLAN assigned. Instead, we must use -1 to indicate that no VLAN is in use. Fix the VF disable code, which was not properly cleaning up the VF and would leave the VF in an indeterminate state, so fix this by notifying the VF and then call the normal VF reset routine. Fix the logic in the driver so that MAC filters are added and removed correctly and added a check for the driver's hardware MAC address so that this filter does not get removed incorrectly. Carolyn removes incorrect #ifdef's which should not have been added in the first place and with the #ifdef's removed, make the necessary changes in the driver to resolve compile errors. Greg updates the admin queue command header defines. v2: fix indentation in patch 12 based on feedback from Sergei Shtylyov ==================== Signed-off-by: David S. Miller commit 40bdc5360d0919b537e27d7c3feb78fd784c31f5 Author: Andrea Parri Date: Tue Jul 14 00:12:05 2015 +0200 pkt_sched: sch_qfq: remove unused member of struct qfq_sched The member (u32) "num_active_agg" of struct qfq_sched has been unused since its introduction in 462dbc9101acd38e92eda93c0726857517a24bbd "pkt_sched: QFQ Plus: fair-queueing service at DRR cost" and (AFAICT) there is no active plan to use it; this removes the member. Signed-off-by: Andrea Parri Acked-by: Paolo Valente Signed-off-by: David S. Miller net/sched/sch_qfq.c | 1 - 1 file changed, 1 deletion(-) commit e29dd44325e2fe121088094dcb3055c8d9e5202a Author: Christophe Jaillet Date: Mon Jul 13 21:51:38 2015 +0200 net: qlcnic: Deletion of unnecessary memset There is no need to memset memory allocated with vzalloc. Signed-off-by: Christophe JAILLET Acked-by: Shahed Shaikh Signed-off-by: David S. Miller drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 1 - 1 file changed, 1 deletion(-) commit aaf2c0fbbbb1ec56936e726eec6c253bc4bd469f Author: Lokesh Vutla Date: Wed Jun 10 14:56:24 2015 +0530 ARM: OMAP2+: hwmod: add support for lock and unlock hooks Some IP blocks like RTC, needs an additional setting for writing to its registers. This is to prevent any spurious writes from changing the register values. This patch adds optional lock and unlock function pointers to the IP block's hwmod data. These unlock and lock function pointers are called by hwmod code before and after writing sysconfig registers. Signed-off-by: Lokesh Vutla [paul@pwsan.com: fixed indentation level to conform with the rest of the structure members] Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley arch/arm/mach-omap2/omap_hwmod.c | 13 +++++++++++++ arch/arm/mach-omap2/omap_hwmod.h | 4 ++++ 2 files changed, 17 insertions(+) commit 9061cb023567abf081569d6851b0815dd18437e6 Merge: aad0d51 7535414 Author: David S. Miller Date: Wed Jul 15 17:13:24 2015 -0700 Merge branch 'gianfar_rx_sg' Claudiu Manoil says: ==================== gianfar: Add Rx S/G This patch-set introduces scatter/gather support on the Rx side, addressing Rx path performance issues in the driver. Thanks. As an example, two boards connected back-to-back were used to measure the throughput, running the same kernel 4.1, before and after applying these patches. The netperf UDP_STREAM results below show that the bottleneck lies on the Rx side BEFORE applying the patches, and that the Rx throughput is even lower with a larger MTU. AFTER applying the patches the Rx bottleneck is gone (Rx throughput matches the Tx one) and the RX throughput is not influenced by MTU size any longer (as expected). BEFORE: 1) MTU 1500 (default) root@p1010rdb-pb:~# netperf -l 150 -cC -H 192.85.1.1 -p 12867 -t UDP_STREAM -- -m 512 MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 192.85.1.1 () port 0 AF_INET Socket Message Elapsed Messages CPU Service Size Size Time Okay Errors Throughput Util Demand bytes bytes secs # # 10^6bits/sec % SS us/KB 163840 512 150.00 20119124 0 549.4 100.00 14.911 163840 150.00 14057349 383.9 100.00 14.911 root@p1010rdb-pb:~# netperf -l 150 -cC -H 192.85.1.1 -p 12867 -t UDP_STREAM -- -m 64 MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 192.85.1.1 () port 0 AF_INET Socket Message Elapsed Messages CPU Service Size Size Time Okay Errors Throughput Util Demand bytes bytes secs # # 10^6bits/sec % SS us/KB 163840 64 150.00 23654013 0 80.7 100.00 101.463 163840 150.00 15875288 54.2 100.00 101.463 2) MTU 8000 root@p1010rdb-pb:~# netperf -l 150 -cC -H 192.85.1.1 -p 12867 -t UDP_STREAM -- -m 512 MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 192.85.1.1 () port 0 AF_INET Socket Message Elapsed Messages CPU Service Size Size Time Okay Errors Throughput Util Demand bytes bytes secs # # 10^6bits/sec % SS us/KB 163840 512 150.00 20067232 0 548.0 100.00 14.950 163840 150.00 6113498 166.9 99.95 14.942 root@p1010rdb-pb:~# netperf -l 150 -cC -H 192.85.1.1 -p 12867 -t UDP_STREAM -- -m 64 MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 192.85.1.1 () port 0 AF_INET Socket Message Elapsed Messages CPU Service Size Size Time Okay Errors Throughput Util Demand bytes bytes secs # # 10^6bits/sec % SS us/KB 163840 64 150.00 23621279 0 80.6 100.00 101.604 163840 150.00 5868602 20.0 99.96 101.563 AFTER: (both MTU 1500 and MTU 8000) root@p1010rdb-pb:~# netperf -l 150 -cC -H 192.85.1.1 -p 12867 -t UDP_STREAM -- -m 512 MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 192.85.1.1 () port 0 AF_INET Socket Message Elapsed Messages CPU Service Size Size Time Okay Errors Throughput Util Demand bytes bytes secs # # 10^6bits/sec % SS us/KB 163840 512 150.00 19914969 0 543.8 100.00 15.064 163840 150.00 19914969 543.8 99.35 14.966 root@p1010rdb-pb:~# netperf -l 150 -cC -H 192.85.1.1 -p 12867 -t UDP_STREAM -- -m 64 MIGRATED UDP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 192.85.1.1 () port 0 AF_INET Socket Message Elapsed Messages CPU Service Size Size Time Okay Errors Throughput Util Demand bytes bytes secs # # 10^6bits/sec % SS us/KB 163840 64 150.00 23433989 0 80.0 100.00 102.416 163840 150.00 23433989 80.0 99.62 102.023 ==================== Signed-off-by: David S. Miller commit 75354148ce697266b57c13d051ddffa3bb75fc9e Author: Claudiu Manoil Date: Mon Jul 13 16:22:06 2015 +0300 gianfar: Add paged allocation and Rx S/G The eTSEC h/w is capable of scatter/gather on the receive side too if MAXFRM > MRBLR, when the allowed maximum Rx frame size is set to be greater than the maximum Rx buffer size (MRBLR). It's about time the driver makes use of this h/w capability, by supporting fixed buffer sizes and Rx S/G. The buffer size given to eTSEC for reception is fixed to 1536B (must be multiple of 64), which is the same default buffer size as before, used to accommodate standard MTU (1500B) size frames. As before, eTSEC can receive frames of up to 9600B. Individual Rx buffers are mapped to page halves (page size for eTSEC systems is 4KB). The skb is built around the first buffer of a frame (using build_skb()). In case the frame spans multiple buffers, the trailing buffers are added as Rx fragments to the skb. The last buffer in frame is marked by the L status flag. A mechanism is in place to reuse the pages owned by the driver (for Rx) for subsequent receptions. Supporting fixed size buffers allows the implementation of Rx S/G, which in turn removes the memory pressure issues the driver had before when MTU was set for jumbo frame reception. Also, in most cases, the Rx path becomes faster due to Rx page reusal, since the overhead of allocating new rx buffers is removed from the fast path. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 320 ++++++++++++++--------- drivers/net/ethernet/freescale/gianfar.h | 31 ++- drivers/net/ethernet/freescale/gianfar_ethtool.c | 1 - 3 files changed, 208 insertions(+), 144 deletions(-) commit f23223f15fd7d359a08ea346a0a537ccaf417014 Author: Claudiu Manoil Date: Mon Jul 13 16:22:05 2015 +0300 gianfar: Use ndev, more Rx path cleanup Use "ndev" instead of "dev", as the rx queue back pointer to a net_device struct, to avoid name clashing with a "struct device" reference. This prepares the addition of a "struct device" back pointer to the rx queue structure. Remove duplicated rxq registration in the process. Move napi_gro_receive() outside gfar_process_frame(). Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 54 ++++++++++++++------------------ drivers/net/ethernet/freescale/gianfar.h | 4 +-- 2 files changed, 26 insertions(+), 32 deletions(-) commit f966082e2065d223942cc40e0bc4841f84f0604d Author: Claudiu Manoil Date: Mon Jul 13 16:22:04 2015 +0300 gianfar: Fix and cleanup rxbd status handling There are several (long standing) problems about how the status field of the rx buffer descriptor (rxbd) is currently handled on the error path: - too many unnecessary 16bit reads of the two halves of the rxbd status field (32bit), also resulting in overuse of endianness convesion macros; - "bdp->status = RXBD_LARGE" makes no sense, since the "large" flag is read only (only eTSEC can write it), and trying to clear the other status bits is also error prone in this context (most of the rx status bits are read only anyway). This is fixed with a single 32bit read of the "status" field, and then the appropriate 16bit shifting is applied to access the various status bits or the rx frame length. Also corrected the use of the RXBD_LARGE flag. Additional fix: "rx_over_errors" stat is incremented instead of "rx_crc_errors" in case of RXBD_OVERRUN occurrence. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 34 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit 76f31e8b0911e620ac9191c8d3775cc91ed65c4c Author: Claudiu Manoil Date: Mon Jul 13 16:22:03 2015 +0300 gianfar: Bundle Rx allocation, cleanup Use a more common consumer/ producer index design to improve rx buffer allocation. Instead of allocating a single new buffer (skb) on each iteration, bundle the allocation of several rx buffers at a time. This also opens the path for further memory optimizations. Remove useless check of rxq->rfbptr, since this patch touches rx pause frame handling code as well. rxq->rfbptr is always initialized as part of Rx BD ring init. Remove redundant (and misleading) 'amount_pull' parameter. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller drivers/net/ethernet/freescale/gianfar.c | 201 ++++++++++++----------- drivers/net/ethernet/freescale/gianfar.h | 39 +++-- drivers/net/ethernet/freescale/gianfar_ethtool.c | 3 + 3 files changed, 136 insertions(+), 107 deletions(-) commit aa57aca8e15a4e11749640e16ac9814f14be24d2 Author: Rafael J. Wysocki Date: Thu Jul 16 02:01:28 2015 +0200 ACPI / PM: Update the copyright notice and description of power.c The description and copyright notice of drivers/acpi/power.c is out of date, so update it as appropriate. Signed-off-by: Rafael J. Wysocki drivers/acpi/power.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit 39561e8bbb49752092b6afd9764d3f3aeef4e1d2 Author: Masahiro Yamada Date: Tue Jul 14 10:01:44 2015 +0900 gpio: of: remove unnecessary variable in of_get_gpio_hog() The variable "desc" is only used for storing the return value at the end of the function. It is unneeded. Signed-off-by: Masahiro Yamada Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpiolib-of.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 4c52bd5c61118a47166ed5857f17698ce520b5fd Author: Masahiro Yamada Date: Fri Jun 19 20:31:03 2015 +0900 gpio: mvebu: kill bogus dependency on GPIO_GENERIC The driver gpio-mvebu.c does not depend on gpio-generic.c at all. Drop unneeded "select GPIO_GENERIC". Signed-off-by: Masahiro Yamada Acked-by: Gregory CLEMENT Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 41ec66c92299889ad30871aeede89b960f08a458 Author: Masahiro Yamada Date: Wed Jun 17 20:59:42 2015 +0900 gpio: altera: use of_mm_gpiochip_remove() to fix memory leak This driver calls of_mm_gpiochip_add() to add a memory mapped gpio chip. So, of_mm_gpiochip_remove() should be used when removing it. The direct call of gpiochip_remove() misses unmapping the register and freeing the label. Signed-off-by: Masahiro Yamada Reviewed-by: Alexandre Courbot Acked-by: Tien Hock Loh Signed-off-by: Linus Walleij drivers/gpio/gpio-altera.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c8b5d688d7ef401c209f3fc84b7de8296f8908a Author: Masahiro Yamada Date: Wed Jun 17 20:59:43 2015 +0900 gpio: altera: fix return value of altera_gpio_remove() The remove callback never succeeds, which seems odd. Signed-off-by: Masahiro Yamada Reviewed-by: Alexandre Courbot Acked-by: Tien Hock Loh Signed-off-by: Linus Walleij drivers/gpio/gpio-altera.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d58ec58f40dc188fbb08edaa8c17840f71fe8a0e Author: Masahiro Yamada Date: Fri Jun 19 20:31:02 2015 +0900 gpio: altera: kill bogus dependency on GPIO_GENERIC The driver gpio-altera.c does not depend on gpio-generic.c at all. Drop unneeded "select GPIO_GENERIC". Signed-off-by: Masahiro Yamada Acked-by: Tien Hock Loh Signed-off-by: Linus Walleij drivers/gpio/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 80d2bf55a1257a277a808128f377ac69216b6587 Author: Masahiro Yamada Date: Wed Jun 17 17:51:41 2015 +0900 gpio: zynq: add missing module_exit function This driver is tristate, so it should be cleanable. Signed-off-by: Masahiro Yamada Tested-by: Michal Simek Signed-off-by: Linus Walleij drivers/gpio/gpio-zynq.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 7c50181b69ce65b0a7db6936aca26f86b70e4436 Author: Gregory Fong Date: Wed Jun 17 18:00:41 2015 -0700 dt-bindings: brcmstb-gpio: document properties for wakeup Some brcmstb GPIO controllers can be used to wake from suspend, so use the de facto standard property 'wakeup-source' to mark the nodes of controllers with that capability. Also document interrupts-extended, which will be used for wakeup handling because the interrupt parent for the wake IRQ is different from the regular IRQ. While we're at it, a few more fixes: We don't actually use the "interrupt-names" property, so remove it from the listed optional properties and from the examples. And since we're modifying the examples, also follow Brian's suggestions to: - change #gpio-cells, #interrupt-cells, and brcm,gpio-bank-widths from hex to dec - use phandles Reviewed-by: Brian Norris Signed-off-by: Gregory Fong Signed-off-by: Linus Walleij .../devicetree/bindings/gpio/brcm,brcmstb-gpio.txt | 35 +++++++++++++++++----- 1 file changed, 28 insertions(+), 7 deletions(-) commit d32651f68785bd8d73b24481b62e428ca30a2546 Author: Tomeu Vizoso Date: Wed Jun 17 15:42:11 2015 +0200 gpiolib: Fix docs for gpiochip_add_pingroup_range gpiochip_add_pingroup_range() has a pctldev argument, not pinctrl. Signed-off-by: Tomeu Vizoso Signed-off-by: Linus Walleij drivers/gpio/gpiolib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db3b0fcc5adbda0c7060c9298c2514778547fee2 Author: Philipp Zabel Date: Fri Jun 12 18:20:35 2015 +0200 gpio: generic: add get_direction support Allow to determine the current direction configuration by reading back from the direction register. Signed-off-by: Philipp Zabel Acked-by: Alexandre Courbot Signed-off-by: Linus Walleij drivers/gpio/gpio-generic.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit d6a8c6d34222f7d9de4c819fbcfbaebb1e40e8a2 Author: Paul E. McKenney Date: Tue Jun 30 09:14:01 2015 -0700 rcutorture: Enable lockdep-RCU on TASKS01 Currently none of the RCU-tasks scenarios enables lockdep-RCU, which causes bugs to be missed. This commit therefore enables lockdep-RCU on TASKS01. Signed-off-by: Paul E. McKenney tools/testing/selftests/rcutorture/configs/rcu/TASKS01 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5be5d1a11775fadc6104789fad72fae46dff348e Author: Paul E. McKenney Date: Tue Jun 30 08:57:57 2015 -0700 rcutorture: Add RCU-tasks qualifier to dereference Although RCU-tasks isn't really designed to support rcu_dereference() and list manipulation, that is how rcutorture tests it. Which means that lockdep-RCU complains about the rcu_dereference_check() invocations because RCU-tasks doesn't have read-side markers. This commit therefore creates a torturing_tasks() to silence the lockdep-RCU complaints from rcu_dereference_check() when RCU-tasks is being tortured. Signed-off-by: Paul E. McKenney kernel/rcu/rcutorture.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 3a0af333415830d2a0ca77de832336af5aadced4 Author: Paul E. McKenney Date: Mon Jun 22 18:11:31 2015 -0700 rcutorture: Fix rcu_torture_cbflood() for callback-free RCU The rcu_torture_cbflood() function correctly checks for flavors of RCU that lack analogs to call_rcu() and rcu_barrier(), but in that case it fails to terminate correctly. In fact, it terminates so incorrectly that segfaults can result. This commit therefore causes rcu_torture_cbflood() to do the proper wait-for-stop procedure. Signed-off-by: Paul E. McKenney kernel/rcu/rcutorture.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit e8e255f7191fb6491dd1d96cfbbe19981f6eb3dd Author: Paul E. McKenney Date: Thu May 14 16:55:45 2015 -0700 rcutorture: Bounds-check rcutorture.shuffle_interval Specifying a negative rcutorture.shuffle_interval value will cause a negative value to be used as a sleep time. This commit therefore refuses to start shuffling unless the rcutorture.shuffle_interval value is greater than zero. Signed-off-by: Paul E. McKenney kernel/rcu/rcutorture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4444d852a99b8f0310f369da8473ec3639e380a7 Author: Paul E. McKenney Date: Thu May 14 15:42:40 2015 -0700 rcutorture: Check nfakewriters parameter Currently, a negative value for rcutorture.nfakewriters= can cause rcutorture to pass a negative size to the memory allocator, which is not really a particularly good thing to do. This commit therefore adds bounds checking to this parameter, so that values that are less than or equal to zero disable fake writing. Signed-off-by: Paul E. McKenney kernel/rcu/rcutorture.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit d9eba768839ac24e47606af36e50c14f10c2211c Author: Paul E. McKenney Date: Thu May 14 15:35:43 2015 -0700 rcutorture: Better bounds checking for n_barrier_cbs A negative value for rcutorture.n_barrier_cbs can pass a negative value to the memory allocator, so this commit instead causes rcu_barrier() testing to be disabled in this case. Signed-off-by: Paul E. McKenney kernel/rcu/rcutorture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 426216970e0458c1f507860f4837cbde66a72263 Author: Alexander Gordeev Date: Wed Jun 3 08:18:31 2015 +0200 rcu: Simplify arithmetic to calculate number of RCU nodes This update makes arithmetic to calculate number of RCU nodes more straight and easy to read. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.h | 17 ++++------------- kernel/rcu/tree_plugin.h | 4 ++-- 2 files changed, 6 insertions(+), 15 deletions(-) commit cb007102398edd06ffc4488bf841c2e10f14d2e7 Author: Alexander Gordeev Date: Wed Jun 3 08:18:30 2015 +0200 rcu: Limit count of static data to the number of RCU levels Although a number of RCU levels may be less than the current maximum of four, some static data associated with each level are allocated for all four levels. As result, the extra data never get accessed and just wast memory. This update limits count of allocated items to the number of used RCU levels. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 21 ++++----------------- kernel/rcu/tree.h | 12 ++++++++++++ 2 files changed, 16 insertions(+), 17 deletions(-) commit 199977bff9efceec649d74510fa9754e107ce0c5 Author: Alexander Gordeev Date: Wed Jun 3 08:18:29 2015 +0200 rcu: Remove unnecessary fields from rcu_state structure Members rcu_state::levelcnt[] and rcu_state::levelspread[] are only used at init. There is no reason to keep them afterwards. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 27 +++++++++++++++------------ kernel/rcu/tree.h | 2 -- 2 files changed, 15 insertions(+), 14 deletions(-) commit 05b84aec465c34da242a224d2438d192ca0feec7 Author: Alexander Gordeev Date: Wed Jun 3 08:18:28 2015 +0200 rcu: Limit rcu_capacity[] size to RCU_NUM_LVLS items Number of items in rcu_capacity[] array is defined by macro MAX_RCU_LVLS. However, that array is never accessed beyond RCU_NUM_LVLS index. Therefore, we can limit the array to RCU_NUM_LVLS items and eliminate MAX_RCU_LVLS. As result, in most cases the memory is conserved. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 12 ++++++------ kernel/rcu/tree.h | 2 -- 2 files changed, 6 insertions(+), 8 deletions(-) commit a6d77081e266605c9f4d8c11e0ee00468b9dc614 Author: Alexander Gordeev Date: Wed Jun 3 08:18:27 2015 +0200 rcu: Limit rcu_state::levelcnt[] to RCU_NUM_LVLS items Variable rcu_num_lvls is limited by RCU_NUM_LVLS macro. In turn, rcu_state::levelcnt[] array is never accessed beyond rcu_num_lvls. Thus, rcu_state::levelcnt[] is safe to limit to RCU_NUM_LVLS items. Since rcu_num_lvls could be changed during boot (as result of rcutree.rcu_fanout_leaf kernel parameter update) one might assume a new value could overflow the value of RCU_NUM_LVLS. However, that is not the case, since leaf-level fanout is only permitted to increase, resulting in rcu_num_lvls possibly to decrease. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9618138b09260e3df5af5a0d7bdc8fca010f6a3f Author: Alexander Gordeev Date: Wed Jun 3 08:18:26 2015 +0200 rcu: Simplify rcu_init_geometry() capacity arithmetics Current code suggests that introducing the extra level to rcu_capacity[] array makes some of the arithmetic easier. Well, in fact it appears rather confusing and unnecessary. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit 679f9858b1769d740d933f5f1ad9dbe3292f26d2 Author: Alexander Gordeev Date: Wed Jun 3 08:18:25 2015 +0200 rcu: Cleanup rcu_init_geometry() code and arithmetics This update simplifies rcu_init_geometry() code flow and makes calculation of the total number of rcu_node structures more easy to read. The update relies on the fact num_rcu_lvl[] is never accessed beyond rcu_num_lvls index by the rest of the code. Therefore, there is no need initialize the whole num_rcu_lvl[]. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) commit 372b0ec24f6b516174934d68fd86d2056f1a5bba Author: Alexander Gordeev Date: Wed Jun 3 08:18:24 2015 +0200 rcu: Remove superfluous local variable in rcu_init_geometry() Local variable 'n' mimics 'nr_cpu_ids' while the both are used within one function. There is no reason for 'n' to exist whatsoever. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 75cf15a4c0dd57f5d230bd30c2d41bd8e06ae5a9 Author: Alexander Gordeev Date: Wed Jun 3 08:18:23 2015 +0200 rcu: Panic if RCU tree can not accommodate all CPUs Currently a condition when RCU tree is unable to accommodate the configured number of CPUs is not permitted and causes a fall back to compile-time values. However, the code has no means to exceed the RCU tree capacity neither at compile-time nor in run-time. Therefore, if the condition is met in run- time then it indicates a serios problem elsewhere and should be handled with a panic. Cc: "Paul E. McKenney" Cc: Steven Rostedt Signed-off-by: Alexander Gordeev Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) commit 319362c90f7af92d03714759bea5d2ba7c88e388 Author: Paul E. McKenney Date: Tue May 19 14:16:52 2015 -0700 rcu: Provide more diagnostics for stalled GP kthread Signed-off-by: Paul E. McKenney kernel/rcu/tree.c | 10 ++++++++-- kernel/rcu/tree.h | 6 +++++- 2 files changed, 13 insertions(+), 3 deletions(-) commit f765d1130700878c2275bc1ea09eed428f870a2a Author: Nicholas Mc Guire Date: Wed May 27 08:56:25 2015 +0200 rcu: Change return type to bool Type-checking coccinelle spatches are being used to locate type mismatches between function signatures and return values in this case this produced: ./kernel/rcu/srcu.c:271 WARNING: return of wrong type int != unsigned long, srcu_readers_active() returns an int that is the sum of per_cpu unsigned long but the only user is cleanup_srcu_struct() which is using it as a boolean (condition) to see if there is any readers rather than actually using the approximate number of readers. The theoretically possible unsigned long overflow case does not need to be handled explicitly - if we had 4G++ readers then something else went wrong a long time ago. proposal: change the return type to boolean. The function name is left unchanged as it fits the naming expectation for a boolean. patch was compile tested for x86_64_defconfig (implies CONFIG_SRCU=y) patch is against 4.1-rc5 (localversion-next is -next-20150525) Signed-off-by: Nicholas Mc Guire Signed-off-by: Paul E. McKenney kernel/rcu/srcu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit d5671f6bf2a672cfa72ef2cbac5cc53a4539690d Author: Denys Vlasenko Date: Tue May 26 17:48:34 2015 +0200 rcu: Deinline rcu_read_lock_sched_held() if DEBUG_LOCK_ALLOC DEBUG_LOCK_ALLOC=y is not a production setting, but it is not very unusual either. Many developers routinely use kernels built with it enabled. Apart from being selected by hand, it is also auto-selected by PROVE_LOCKING "Lock debugging: prove locking correctness" and LOCK_STAT "Lock usage statistics" config options. LOCK STAT is necessary for "perf lock" to work. I wouldn't spend too much time optimizing it, but this particular function has a very large cost in code size: when it is deinlined, code size decreases by 830,000 bytes: text data bss dec hex filename 85674192 22294776 20627456 128596424 7aa39c8 vmlinux.before 84837612 22294424 20627456 127759492 79d7484 vmlinux (with this config: http://busybox.net/~vda/kernel_config) Signed-off-by: Denys Vlasenko CC: "Paul E. McKenney" CC: Josh Triplett CC: Mathieu Desnoyers CC: Lai Jiangshan CC: Tejun Heo CC: Oleg Nesterov CC: linux-kernel@vger.kernel.org Reviewed-by: Steven Rostedt Signed-off-by: Paul E. McKenney include/linux/rcupdate.h | 40 ++------------------------------------- kernel/rcu/update.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 38 deletions(-) commit 96d7744e0a5631a1b5fef2a97658150b165f02b6 Author: Paul E. McKenney Date: Mon Jul 13 15:55:52 2015 -0700 doc: Call out smp_mb__after_unlock_lock() transitivity Although "full barrier" should be interpreted as providing transitivity, it is worth eliminating any possible confusion. This commit therefore adds "(including transitivity)" to eliminate any possible confusion. Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney Documentation/memory-barriers.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 9af194cefc3c40e75a59df4cbb06e1c1064bee7f Author: Paul E. McKenney Date: Thu Jun 18 14:33:24 2015 -0700 documentation: Replace ACCESS_ONCE() by READ_ONCE() and WRITE_ONCE() Reported-by: Peter Zijlstra Signed-off-by: Paul E. McKenney Documentation/memory-barriers.txt | 346 +++++++++++++++++++------------------- 1 file changed, 177 insertions(+), 169 deletions(-) commit 57aecae950c55ef50934640794160cd118e73256 Author: Paul E. McKenney Date: Mon May 18 18:27:42 2015 -0700 documentation: Fix variable-name typo in memory-barriers.txt Signed-off-by: Paul E. McKenney Documentation/memory-barriers.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 297f739938908a4262603314576e32ee7375296c Author: Paul E. McKenney Date: Thu May 14 17:31:07 2015 -0700 documentation: Fix spelling of "operators" Reported-by: Mathieu Desnoyers Signed-off-by: Paul E. McKenney Documentation/RCU/rcu_dereference.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 21b05de4c8fac08fff08cf84ef1d4fe5786f9608 Author: Paul E. McKenney Date: Thu May 14 17:29:51 2015 -0700 documentation: Bring rcutorture parameters up to date This commit changes the documentation of the rcutorture parameters to better match reality. Signed-off-by: Paul E. McKenney Documentation/kernel-parameters.txt | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) commit 113e0d118a93c964feea376de8c94dd8c7c63ff8 Author: Srinidhi Kasagar Date: Wed Jul 15 14:59:46 2015 +0530 PCI / ACPI: Fix pci_acpi_optimize_delay() comment The function takes ACPI handle, not the device itself. Fix the comment Signed-off-by: Srinidhi Kasagar Signed-off-by: Bjorn Helgaas drivers/pci/pci-acpi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9e23f321940d2db2c9def8ff723b8464fb86343 Author: Vignesh R Date: Wed Jun 3 17:21:20 2015 +0530 ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP Legacy IPs like PWMSS, present under l4per2_7xx_clkdm, cannot support smart-idle when its clock domain is in HW_AUTO on DRA7 SoCs. Hence, program clock domain to SW_WKUP. Signed-off-by: Vignesh R Acked-by: Tero Kristo Reviewed-by: Paul Walmsley Signed-off-by: Paul Walmsley Cc: arch/arm/mach-omap2/clockdomains7xx_data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e913bfb60bee349b1b8bf53b1749c1d43ba8bddb Merge: 40403c1 2155971 Author: Greg Kroah-Hartman Date: Wed Jul 15 12:32:09 2015 -0700 Merge tag 'iio-for-4.3a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: First round of new drivers, cleanups and functionality for IIO in the 4.3 cycle. Core and tools new stuff * Allow explicit flush of hardware fifo by using an non blocking read. This is needed to support some of the Android requirements for HW fifo devices - also makes sense generally and clarifies a corner of the ABI. * Add some missing modifier names. Mostly these exist for weird and wonderful event types, but should still be present in the name array. * Update iio_event_monitor to cope with new channel types. * generic_buffer gains support for single byte scan elements (no idea how this never got implemented before!) New device support * ROHM rpr0521 light and proximity sensor driver. * bmc150 gains bmc156 support. * ms5611 gains ms5607 temperature and pressure sensor support. Driver functionality * inv-mpu - add scale_available attributes to aid userspace in configuring these devices. * isl29125 - add scale_available attributes. * stk8ba50 - sampling frequency control, triggered buffer support. * stk8312 - sampling frequency control, triggered buffer support. * cc10001 - ensure ADC powered up at probe time if shared by non linux running CPUs. * bmc150-magn - decouple the buffer and trigger allowing other triggers to be used to drive this device's sampling. Documentation * Add some previously missed *scale_available attributes to the ABI docs. Cleanups * Clarify some crazy naming in iio_triggered_buffer_setup that seems to have somehow ended up backwards (dates back a long way). Avoid the top half and bottom half naming entirely given we are how dealing with a handler and a thread in all cases. * Tools cleanup including coding style, variable naming improvements, also a new sanity check on a full event having been read. * stk8ba50 - replace the scale table with a struct for clarity. Also suspend the sensor if an error occurs in init. * hid-sensor-prox - drop uneeded line break. * mma9551 - use size in words for word read / write avoiding accidental sending of an odd number of bytes. * mma9553 - fix code alignment and document the use of a mutex. * light/Kconfig - typo fix in commment. * cm3323 - don't eat an error value, replace an unneeded local variable with a generic local variable with the same use, add some blank lines for clarity. * pressure/Kconfig - typo in Measurement Specialties name. * bmc150-accel - actually use a mask definition rather than repeating the value inline, code style cleanup. * adc/Kconfig - general help description cleanup. * ssp_sensors - drop redundant spi driver bus initialization (done in the spi core) * tmp006 - use genmask rather than hand generated masks. * ms5611 - drop IIO_CHAN_INFO_SCALE as this driver provides a processed output and as such the read only scale adds nothing useful. * kxcjk-1013, adf4350, dummy - drop unwanted blank lines. * Drop all owner assignments from i2c_drivers and this is done in the i2c core. commit 221272f97ca528048a577a3ff23d7774286ca5fd Author: Kees Cook Date: Mon Jun 15 15:29:16 2015 -0700 seccomp: swap hard-coded zeros to defined name For clarity, if CONFIG_SECCOMP isn't defined, seccomp_mode() is returning "disabled". This makes that more clear, along with another 0-use, and results in no operational change. Signed-off-by: Kees Cook include/linux/seccomp.h | 2 +- kernel/seccomp.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 13c4a90119d28cfcb6b5bdd820c233b86c2b0237 Author: Tycho Andersen Date: Sat Jun 13 09:02:48 2015 -0600 seccomp: add ptrace options for suspend/resume This patch is the first step in enabling checkpoint/restore of processes with seccomp enabled. One of the things CRIU does while dumping tasks is inject code into them via ptrace to collect information that is only available to the process itself. However, if we are in a seccomp mode where these processes are prohibited from making these syscalls, then what CRIU does kills the task. This patch adds a new ptrace option, PTRACE_O_SUSPEND_SECCOMP, that enables a task from the init user namespace which has CAP_SYS_ADMIN and no seccomp filters to disable (and re-enable) seccomp filters for another task so that they can be successfully dumped (and restored). We restrict the set of processes that can disable seccomp through ptrace because although today ptrace can be used to bypass seccomp, there is some discussion of closing this loophole in the future and we would like this patch to not depend on that behavior and be future proofed for when it is removed. Note that seccomp can be suspended before any filters are actually installed; this behavior is useful on criu restore, so that we can suspend seccomp, restore the filters, unmap our restore code from the restored process' address space, and then resume the task by detaching and have the filters resumed as well. v2 changes: * require that the tracer have no seccomp filters installed * drop TIF_NOTSC manipulation from the patch * change from ptrace command to a ptrace option and use this ptrace option as the flag to check. This means that as soon as the tracer detaches/dies, seccomp is re-enabled and as a corrollary that one can not disable seccomp across PTRACE_ATTACHs. v3 changes: * get rid of various #ifdefs everywhere * report more sensible errors when PTRACE_O_SUSPEND_SECCOMP is incorrectly used v4 changes: * get rid of may_suspend_seccomp() in favor of a capable() check in ptrace directly v5 changes: * check that seccomp is not enabled (or suspended) on the tracer Signed-off-by: Tycho Andersen CC: Will Drewry CC: Roland McGrath CC: Pavel Emelyanov CC: Serge E. Hallyn Acked-by: Oleg Nesterov Acked-by: Andy Lutomirski [kees: access seccomp.mode through seccomp_mode() instead] Signed-off-by: Kees Cook include/linux/ptrace.h | 1 + include/uapi/linux/ptrace.h | 6 ++++-- kernel/ptrace.c | 13 +++++++++++++ kernel/seccomp.c | 8 ++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) commit 8225d3853f34f6cf9caff15d8c385a528e0d7cb1 Author: Pranith Kumar Date: Fri Nov 21 10:06:01 2014 -0500 seccomp: Replace smp_read_barrier_depends() with lockless_dereference() Recently lockless_dereference() was added which can be used in place of hard-coding smp_read_barrier_depends(). The following PATCH makes the change. Signed-off-by: Pranith Kumar Signed-off-by: Kees Cook kernel/seccomp.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 7d1442b4c4142d94a83451d4e7a11db8aee132ab Author: Masanari Iida Date: Wed Jul 15 23:02:39 2015 +0900 ASoC: Fix warning caused by a typo in comments of snd_soc_add_platform() This patch fix following warnings. Warning(.//sound/soc/soc-core.c:2855): No description found for parameter 'platform_drv' Warning(.//sound/soc/soc-core.c:2855): Excess function parameter 'platform_driver' description in 'snd_soc_add_platform' Signed-off-by: Masanari Iida Signed-off-by: Mark Brown sound/soc/soc-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 231b86b1d81a75e5212329e2c42faefddcaa9208 Author: Masanari Iida Date: Wed Jul 15 23:02:38 2015 +0900 ASoC: Fix warning while make xmldocs caused by soc-core.c This patch fix following warning while make xmldocs. Warning(.//sound/soc/soc-core.c:2148): No description found for parameter 'ratio' Add missing ":" Signed-off-by: Masanari Iida Signed-off-by: Mark Brown sound/soc/soc-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6c7941dee9c41d6ab5a8be06ec44aa579a6123e1 Author: Florian Westphal Date: Tue Jul 14 17:51:10 2015 +0200 netfilter: xtables: remove __pure annotation sparse complains: ip_tables.c:361:27: warning: incorrect type in assignment (different modifiers) ip_tables.c:361:27: expected struct ipt_entry *[assigned] e ip_tables.c:361:27: got struct ipt_entry [pure] * doesn't change generated code. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/arp_tables.c | 2 +- net/ipv4/netfilter/ip_tables.c | 2 +- net/ipv6/netfilter/ip6_tables.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit dcebd3153e0a7749bb054ab73fa4e1ca33e9d3f9 Author: Florian Westphal Date: Tue Jul 14 17:51:09 2015 +0200 netfilter: add and use jump label for xt_tee Don't bother testing if we need to switch to alternate stack unless TEE target is used. Suggested-by: Eric Dumazet Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 7 +++++++ net/ipv4/netfilter/ip_tables.c | 3 ++- net/ipv6/netfilter/ip6_tables.c | 3 ++- net/netfilter/x_tables.c | 3 +++ net/netfilter/xt_TEE.c | 2 ++ 5 files changed, 16 insertions(+), 2 deletions(-) commit 7814b6ec6d0d63444abdb49554166c8cfcbd063e Author: Florian Westphal Date: Tue Jul 14 17:51:08 2015 +0200 netfilter: xtables: don't save/restore jumpstack offset In most cases there is no reentrancy into ip/ip6tables. For skbs sent by REJECT or SYNPROXY targets, there is one level of reentrancy, but its not relevant as those targets issue an absolute verdict, i.e. the jumpstack can be clobbered since its not used after the target issues absolute verdict (ACCEPT, DROP, STOLEN, etc). So the only special case where it is relevant is the TEE target, which returns XT_CONTINUE. This patch changes ip(6)_do_table to always use the jump stack starting from 0. When we detect we're operating on an skb sent via TEE (percpu nf_skb_duplicated is 1) we switch to an alternate stack to leave the original one alone. Since there is no TEE support for arptables, it doesn't need to test if tee is active. The jump stack overflow tests are no longer needed as well -- since ->stacksize is the largest call depth we cannot exceed it. A much better alternative to the external jumpstack would be to just declare a jumps[32] stack on the local stack frame, but that would mean we'd have to reject iptables rulesets that used to work before. Another alternative would be to start rejecting rulesets with a larger call depth, e.g. 1000 -- in this case it would be feasible to allocate the entire stack in the percpu area which would avoid one dereference. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter/x_tables.h | 1 - net/ipv4/netfilter/arp_tables.c | 11 +++-------- net/ipv4/netfilter/ip_tables.c | 37 ++++++++++++++++++++----------------- net/ipv6/netfilter/ip6_tables.c | 26 ++++++++++++++------------ net/netfilter/x_tables.c | 22 +++++++++++----------- 5 files changed, 48 insertions(+), 49 deletions(-) commit e7c8899f3e6f2830136cf6e115c4a55ce7a3920a Author: Florian Westphal Date: Tue Jul 14 17:51:07 2015 +0200 netfilter: move tee_active to core This prepares for a TEE like expression in nftables. We want to ensure only one duplicate is sent, so both will use the same percpu variable to detect duplication. The other use case is detection of recursive call to xtables, but since we don't want dependency from nft to xtables core its put into core.c instead of the x_tables core. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso include/linux/netfilter.h | 11 +++++++++++ net/netfilter/core.c | 3 +++ net/netfilter/xt_TEE.c | 13 ++++++------- 3 files changed, 20 insertions(+), 7 deletions(-) commit 98d1bd802cdbc8f56868fae51edec13e86b59515 Author: Florian Westphal Date: Tue Jul 14 17:51:06 2015 +0200 netfilter: xtables: compute exact size needed for jumpstack The {arp,ip,ip6tables} jump stack is currently sized based on the number of user chains. However, its rather unlikely that every user defined chain jumps to the next, so lets use the existing loop detection logic to also track the chain depths. The stacksize is then set to the largest chain depth seen. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso net/ipv4/netfilter/arp_tables.c | 19 ++++++++++++------- net/ipv4/netfilter/ip_tables.c | 28 ++++++++++++++++++---------- net/ipv6/netfilter/ip6_tables.c | 23 +++++++++++++++-------- net/netfilter/x_tables.c | 4 ++++ 4 files changed, 49 insertions(+), 25 deletions(-) commit fd2ecda0341960d0ce361d648cf4dd98187afb06 Author: Eric W. Biederman Date: Fri Jul 10 18:15:44 2015 -0500 netfilter: nftables: Only run the nftables chains in the proper netns - Register the nftables chains in the network namespace that they need to run in. - Remove the hacks that stopped chains running in the wrong network namespace. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/netfilter/nf_tables_api.c | 8 ++++++-- net/netfilter/nf_tables_core.c | 5 ----- 2 files changed, 6 insertions(+), 7 deletions(-) commit 085db2c04557d31db61541f361bd8b4de92c9939 Author: Eric W. Biederman Date: Fri Jul 10 18:15:06 2015 -0500 netfilter: Per network namespace netfilter hooks. - Add a new set of functions for registering and unregistering per network namespace hooks. - Modify the old global namespace hook functions to use the per network namespace hooks in their implementation, so their remains a single list that needs to be walked for any hook (this is important for keeping the hook priority working and for keeping the code walking the hooks simple). - Only allow registering the per netdevice hooks in the network namespace where the network device lives. - Dynamically allocate the structures in the per network namespace hook list in nf_register_net_hook, and unregister them in nf_unregister_net_hook. Dynamic allocate is required somewhere as the number of network namespaces are not fixed so we might as well allocate them in the registration function. The chain of registered hooks on any list is expected to be small so the cost of walking that list to find the entry we are unregistering should also be small. Performing the management of the dynamically allocated list entries in the registration and unregistration functions keeps the complexity from spreading. Signed-off-by: "Eric W. Biederman" include/linux/netfilter.h | 14 +++- include/net/netns/netfilter.h | 1 + net/netfilter/core.c | 182 +++++++++++++++++++++++++++++++++++++----- 3 files changed, 173 insertions(+), 24 deletions(-) commit 0edcf282b0a6f38168294264837cf7d52a2f5255 Author: Eric W. Biederman Date: Fri Jul 10 18:14:30 2015 -0500 netfilter: Factor out the hook list selection from nf_register_hook - Add a new function find_nf_hook_list to select the nf_hook_list - Fail nf_register_hook when asked for a per netdevice hook list when support for per netdevice hook lists is not built into the kernel. - Move the hook list head selection outside of nf_hook_mutex as nothing in the selection requires the hook list, and error handling is simpler if a mutex is not held. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/netfilter/core.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) commit 4c0911566dec7755d15cb89239fb2db4447f7a62 Author: Eric W. Biederman Date: Fri Jul 10 18:13:58 2015 -0500 netfilter: Simply the tests for enabling and disabling the ingress queue hook Replace an overcomplicated switch statement with a simple if statement. This also removes the ingress queue enable outside of nf_hook_mutex as the protection provided by the mutex is not necessary and the code is clearer having both of the static key increments together. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso net/netfilter/core.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) commit 70aa996601335ca3069190ebcdae8870828086a8 Author: Eric W. Biederman Date: Fri Jul 10 18:13:20 2015 -0500 netfilter: kill nf_hooks_active The function obscures what is going on in nf_hook_thresh and it's existence requires computing the hook list twice. Signed-off-by: "Eric W. Biederman" Signed-off-by: Pablo Neira Ayuso include/linux/netfilter.h | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 0d6ef0688d8744454646298b85336407be05e309 Author: Markus Elfring Date: Fri Jul 10 15:42:49 2015 +0900 ipvs: 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: Simon Horman Signed-off-by: Pablo Neira Ayuso net/netfilter/ipvs/ip_vs_sched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 264954811af62dcfe17fc44cef379b315bb066eb Author: Daniel Vetter Date: Wed Jul 15 14:15:52 2015 +0200 drm/i915: Invert fastboot check Fastboot should only downgrade a modeset if we have a match, not be used to upgrade to a full modeset. Otherwise we can only use it in a very restricted way: Initial modeset when the request mode is the preferred one of the panel and there's still a pfit active. And that only works because our mode_from_pipe_config fills in the wrong mode (it takes the adjusted mode, not the requested one). But we want fast modesets everywhere even after boot-up (especially for testing, but not only there). Hence we need to be able to make any modeset a fast one, which means we need to invert the logic and optionally downgrade a modeset. Note that this needs ->connector_changed split out from ->mode_changed otherwise it's not going to work (because we might loose a modeset because connectors changed but otherwise the config matches). As soon as that's merged we can drop the i915.fastboot check from this code. Also make sure that we don't accidentally clear any_ms and that we add the planes for any kind of modeset. Finally rename fastboot to fastset (yeah it's a silly name) since this really isn't about booting all that much. Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) commit 1ed51de9ca9170d1c5361924a17e7c483050aeb6 Author: Daniel Vetter Date: Wed Jul 15 14:15:51 2015 +0200 drm/i915: Clarify logic for initial modeset Currently we both set mode->private_flags to some value and also use the pipe_config quirk. But since the pipe_config quirk isn't tied to the lifetime of the mode object we need to check both. Simplify this by only using mode.private_flags and stop using the INHERITED_MODE quirk. Also for clarity add an explicit #define for that driver priavete mode flag. By using crtc_state->mode_changed we can also remove the recalc local variable. Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 34 ++++++++++++---------------------- drivers/gpu/drm/i915/intel_drv.h | 4 +++- 2 files changed, 15 insertions(+), 23 deletions(-) commit e2ff2d4a467511ef88ae574555ddc0e952777f0c Author: Daniel Vetter Date: Wed Jul 15 14:15:50 2015 +0200 drm/i915: Unconditionally check gmch pfit state Now that we recompute the pipe config for all CRTCs that have changed we don't have problems with stale configuration data for the global pfit and can remove this hack. Yay! Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) commit ca6e4405779ed56ebac941570615abd667c72c02 Merge: 8f539a8 ccfb8b2 Author: Daniel Vetter Date: Wed Jul 15 16:36:50 2015 +0200 Merge tag 'drm-intel-fixes-2015-07-15' into drm-intel-next-queued Backmerge fixes since it's getting out of hand again with the massive split due to atomic between -next and 4.2-rc. All the bugfixes in 4.2-rc are addressed already (by converting more towards atomic instead of minimal duct-tape) so just always pick the version in next for the conflicts in modeset code. All the other conflicts are just adjacent lines changed. Conflicts: drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem_gtt.c drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_drv.h drivers/gpu/drm/i915/intel_ringbuffer.h Signed-off-by: Daniel Vetter commit b1d725ee58759359b12d2e8a6740f1cdb2091403 Merge: 216883a 80edaae Author: Olof Johansson Date: Wed Jul 15 10:17:14 2015 -0400 Merge tag 'omap-for-v4.3/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Merge "omap dts changes for v4.3, part 1" from Tony Lindgren: Omap dts changes for v4.3 merge window. There are also related changes for reemoteproc platform_data and audio options for omap2plus_defconfig to keep audio working when changing boards to use SIMPLE_CARD. The summary of changes is: - A large set of audio related changes for SIMPLE_CARD from Peter Ujfalusi for am335x and am437x - Pinctrl dts defines for dra7 virtual mode to configure timings - Change to use cpsw slave0 for dra7 Ethernet - Remove unconfigured and wrong l3-mux entry for dm816x - Add support for Gumstix Palo35 and TobiDuo boards, and Overo PoP NAND and McBSP2 - Start using new HDMI binding for tilcdc - Start using new sDMA crossbar for dra7 - Start using rproc for am335x and am437x M3 coprocessor * tag 'omap-for-v4.3/dt-pt1' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (32 commits) ARM: dts: am335x-evm: Switch using simple-audio-card for audio support ARM: dts: am335x-evm: Add sleep pin settings for mcasp1 ARM: dts: am335x-evm: Rename pinctrl section for McASP1 ARM: dts: am335x-evm: Fix mcasp1 node's indentation ARM: dts: am335x-evmsk: Switch using simple-audio-card for audio support ARM: dts: am335x-evmsk: Add sleep pin settings for mcasp1 ARM: dts: am335x-evmsk: Fix mcasp1 node's indentation ARM: dts: am437x-gp-evm: Enable analog audio via simple-card ARM: dts: am437x-gp-evm: McASP1 node for audio support ARM: dts: am437x-gp-evm: Add node for tlv320aic3106 audio codec ARM: dts: am437x-gp-evm: Rename fixed regulator vmmcsd_fixed to evm_v3_3d ARM: dts: am437x-gp-evm: Add gpio-hog for configuring the display/audio mux ARM: dts: am43xx-epos-evm: Enable analog audio via simple-card ARM: dts: am43xx-epos-evm: Add node for tlv320aic3111 audio codec ARM: dts: am43xx-epos-evm: McASP1 node for audio support ARM: dts: am43xx-epos-evm: Add regulator for VBAT and DCDC4 of tps65218 ARM: dts: am43xx-epos-evm: Add gpio-hog for configuring the display/audio mux ARM: dts: am437x-sk-evm: Switch using simple-audio-card for audio support ARM: dts: am437x-sk-evm: Add sleep pin settings for mcasp1 ARM: omap2plus_defconfig: Enable audio related config options ... Signed-off-by: Olof Johansson commit 6802b7876efd538c56a1df70ce0b7d1cbe03ced7 Author: Chris Zhong Date: Thu Jan 15 22:58:34 2015 -0800 ARM: dts: Add sbs-battery dts fragment used by chromebooks This patch creates a sbs-battery fragment for batteries connected to the i2c tunnel of the cros-ec embedded controller. Signed-off-by: Chris Zhong Signed-off-by: Heiko Stuebner Acked-by: Douglas Anderson arch/arm/boot/dts/cros-ec-sbs.dtsi | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 8f539a83efa7dceb7c2257ca96e2dfc846bd12f6 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:32 2015 +0200 drm/i915: always disable irqs in intel_pipe_update_start This can only fail because of a bug in the code. Suggested-by: Daniel Vetter Signed-off-by: Maarten Lankhorst [danvet: Squash in follow-up to also remove start_vbl_count from intel_crtc->atomic and put it into the intel_crtc directly - it's not precomputed state.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 15 +++++---------- drivers/gpu/drm/i915/intel_drv.h | 7 ++----- drivers/gpu/drm/i915/intel_sprite.c | 17 +++++++---------- 3 files changed, 14 insertions(+), 25 deletions(-) commit 342defd8646dff96f87cf44c4eee4dfdf0dd8d00 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:33 2015 +0200 drm/i915: Remove use of runtime pm in atomic commit functions We needed this originally for updating pagetables in plane commit functions. But that's extracted into prepare/cleanup now. The other issue was running updates when the pipe was off. That's also now fixed. Suggested-by: Daniel Vetter Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 7 ------- 1 file changed, 7 deletions(-) commit f6ac4b2a121fd3362407b21e36ec71d9886ce379 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:31 2015 +0200 drm/i915: Call plane update functions directly from intel_atomic_commit. Now that there's only a single path for all atomic updates we can call intel_(pre/post)_plane_update from intel_atomic_commit directly. This makes the intention more clear. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 74c090b1bdc57b1c9f1361908cca5a3d8a80fb08 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:30 2015 +0200 drm/i915: Use full atomic modeset. Huzzah! \o/ Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/i915_params.c | 5 - drivers/gpu/drm/i915/intel_atomic.c | 123 --------------- drivers/gpu/drm/i915/intel_display.c | 279 ++++++----------------------------- drivers/gpu/drm/i915/intel_drv.h | 5 - 6 files changed, 43 insertions(+), 372 deletions(-) commit 9b01435d2802148fcf6e061df0e4926768eeb133 Author: Arun Siluvery Date: Tue Jul 14 15:01:30 2015 +0100 drm/i915/gen9: Add WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken In Indirect context w/a batch buffer, +WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken v2: SKL revision id was used for BXT, copy paste error found during internal review (Bob Beckett). v3: explain why part of the WA is in Per ctx batch (Mika) Cc: Mika Kuoppala Cc: Imre Deak Signed-off-by: Arun Siluvery Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 10 ++++++++++ drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit a4106a782d11d44f6740ec8868ad1863546f832a Author: Arun Siluvery Date: Tue Jul 14 15:01:29 2015 +0100 drm/i915/gen9: Add WaFlushCoherentL3CacheLinesAtContextSwitch workaround In Indirect context w/a batch buffer, +WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt v2: address static checker warning where unsigned value was checked for less than zero which is never true (Dan Carpenter). v3: The WA uses default value of GEN8_L3SQCREG4 during flush but that disables some other WA; update default value to retain it and document dependency (Mika). Cc: Mika Kuoppala Cc: Imre Deak Signed-off-by: Arun Siluvery Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 16 ++++++++++++++++ drivers/gpu/drm/i915/intel_pm.c | 3 +++ 2 files changed, 19 insertions(+) commit 0907c8f7e0047956dabdd70368a710dc048793eb Author: Arun Siluvery Date: Tue Jul 14 15:01:28 2015 +0100 drm/i915/gen9: Add WaDisableCtxRestoreArbitration workaround In Indirect and Per context w/a batch buffer, +WaDisableCtxRestoreArbitration v2: SKL revision id was used for BXT, copy paste error found during internal review (Bob Beckett). v3: use updated macro. Reviewed-by: Mika Kuoppala Cc: Robert Beckett Cc: Mika Kuoppala Cc: Imre Deak Signed-off-by: Arun Siluvery Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit 0504cffc7b128dc4bd751821abe7c47203d7bd62 Author: Arun Siluvery Date: Tue Jul 14 15:01:27 2015 +0100 drm/i915: Enable WA batch buffers for Gen9 This patch only enables support for Gen9, the actual WA will be initialized in subsequent patches. The WARN that we use to warn user if WA batch support is not available for a particular Gen is replaced with DRM_ERROR as warning here doesn't really add much value. v2: include all infrastructure bits in this patch so that subsequent changes only correspond the WA added (Chris) v3: use updated macro. Reviewed-by: Mika Kuoppala Cc: Imre Deak Cc: Mika Kuoppala Signed-off-by: Arun Siluvery Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 50 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) commit 6381b55016ec76f18cbc8685ca0774dd4584651b Author: Nick Hoath Date: Tue Jul 14 14:41:15 2015 +0100 drm/i915/gen9: Implement WaDisableKillLogic for gen 9 v2: Patch leakage fixed Signed-off-by: Nick Hoath Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_pm.c | 4 ++++ 2 files changed, 5 insertions(+) commit ec081cb337a1edc793d7aa53baa9b8afa096678d Author: Masanari Iida Date: Wed Jul 15 19:25:42 2015 +0900 drm: Fix warning with make xmldocs caused by drm_irq.c This patch fix following warnings. Warning(.//drivers/gpu/drm/drm_irq.c:1279): No description found for parameter drm_crtc' Warning(.//drivers/gpu/drm/drm_irq.c:1279): Excess function parameter 'crtc' description in 'drm_crtc_vblank_reset' Signed-off-by: Masanari Iida Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1c07a4de5baad76585f7ffb86b5b0bc34c33e8a6 Author: Krzysztof Kozlowski Date: Wed Jul 15 13:21:44 2015 +0900 ASoC: drivers: 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: Mark Brown sound/soc/codecs/adau1373.c | 1 - sound/soc/codecs/adau1701.c | 1 - sound/soc/codecs/adau1761-i2c.c | 1 - sound/soc/codecs/adau1781-i2c.c | 1 - sound/soc/codecs/adau1977-i2c.c | 1 - sound/soc/codecs/adav803.c | 1 - sound/soc/codecs/ak4535.c | 1 - sound/soc/codecs/ak4641.c | 1 - sound/soc/codecs/ak4642.c | 1 - sound/soc/codecs/ak4671.c | 1 - sound/soc/codecs/alc5623.c | 1 - sound/soc/codecs/alc5632.c | 1 - sound/soc/codecs/cs35l32.c | 1 - sound/soc/codecs/cs4265.c | 1 - sound/soc/codecs/cs4270.c | 1 - sound/soc/codecs/cs4271-i2c.c | 1 - sound/soc/codecs/cs42l51-i2c.c | 1 - sound/soc/codecs/cs42l52.c | 1 - sound/soc/codecs/cs42l56.c | 1 - sound/soc/codecs/cs42l73.c | 1 - sound/soc/codecs/cs42xx8-i2c.c | 1 - sound/soc/codecs/da7210.c | 1 - sound/soc/codecs/da7213.c | 1 - sound/soc/codecs/da732x.c | 1 - sound/soc/codecs/da9055.c | 1 - sound/soc/codecs/isabelle.c | 1 - sound/soc/codecs/lm4857.c | 1 - sound/soc/codecs/lm49453.c | 1 - sound/soc/codecs/max9768.c | 1 - sound/soc/codecs/max98088.c | 1 - sound/soc/codecs/max98090.c | 1 - sound/soc/codecs/max98095.c | 1 - sound/soc/codecs/max9850.c | 1 - sound/soc/codecs/max9877.c | 1 - sound/soc/codecs/max98925.c | 1 - sound/soc/codecs/ml26124.c | 1 - sound/soc/codecs/pcm1681.c | 1 - sound/soc/codecs/pcm512x-i2c.c | 1 - sound/soc/codecs/rt286.c | 1 - sound/soc/codecs/rt298.c | 1 - sound/soc/codecs/rt5631.c | 1 - sound/soc/codecs/rt5640.c | 1 - sound/soc/codecs/rt5645.c | 1 - sound/soc/codecs/rt5651.c | 1 - sound/soc/codecs/rt5670.c | 1 - sound/soc/codecs/rt5677.c | 1 - sound/soc/codecs/sgtl5000.c | 1 - sound/soc/codecs/ssm2518.c | 1 - sound/soc/codecs/ssm2602-i2c.c | 1 - sound/soc/codecs/ssm4567.c | 1 - sound/soc/codecs/sta32x.c | 1 - sound/soc/codecs/sta350.c | 1 - sound/soc/codecs/sta529.c | 1 - sound/soc/codecs/tas2552.c | 1 - sound/soc/codecs/tas5086.c | 1 - sound/soc/codecs/tfa9879.c | 1 - sound/soc/codecs/tlv320aic31xx.c | 1 - sound/soc/codecs/tlv320aic32x4.c | 1 - sound/soc/codecs/tlv320aic3x.c | 1 - sound/soc/codecs/tlv320dac33.c | 1 - sound/soc/codecs/tpa6130a2.c | 1 - sound/soc/codecs/ts3a227e.c | 1 - sound/soc/codecs/uda1380.c | 1 - sound/soc/codecs/wm1250-ev1.c | 1 - sound/soc/codecs/wm2000.c | 1 - sound/soc/codecs/wm2200.c | 1 - sound/soc/codecs/wm5100.c | 1 - sound/soc/codecs/wm8510.c | 1 - sound/soc/codecs/wm8523.c | 1 - sound/soc/codecs/wm8580.c | 1 - sound/soc/codecs/wm8711.c | 1 - sound/soc/codecs/wm8728.c | 1 - sound/soc/codecs/wm8731.c | 1 - sound/soc/codecs/wm8737.c | 1 - sound/soc/codecs/wm8741.c | 1 - sound/soc/codecs/wm8750.c | 1 - sound/soc/codecs/wm8753.c | 1 - sound/soc/codecs/wm8776.c | 1 - sound/soc/codecs/wm8804-i2c.c | 1 - sound/soc/codecs/wm8900.c | 1 - sound/soc/codecs/wm8903.c | 1 - sound/soc/codecs/wm8904.c | 1 - sound/soc/codecs/wm8940.c | 1 - sound/soc/codecs/wm8955.c | 1 - sound/soc/codecs/wm8960.c | 1 - sound/soc/codecs/wm8961.c | 1 - sound/soc/codecs/wm8962.c | 1 - sound/soc/codecs/wm8971.c | 1 - sound/soc/codecs/wm8974.c | 1 - sound/soc/codecs/wm8978.c | 1 - sound/soc/codecs/wm8983.c | 1 - sound/soc/codecs/wm8985.c | 1 - sound/soc/codecs/wm8988.c | 1 - sound/soc/codecs/wm8990.c | 1 - sound/soc/codecs/wm8991.c | 1 - sound/soc/codecs/wm8993.c | 1 - sound/soc/codecs/wm8995.c | 1 - sound/soc/codecs/wm8996.c | 1 - sound/soc/codecs/wm9081.c | 1 - sound/soc/codecs/wm9090.c | 1 - 100 files changed, 100 deletions(-) commit a5e412a99c07382bda3643f9532d2769141efc7d Merge: 6adcafa c4a99a4 5e4cb7b Author: Mark Brown Date: Wed Jul 15 12:50:33 2015 +0100 Merge branches 'topic/rt298', 'topic/ts3a227e' and 'topic/cs42xx8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-owner commit 1aae50a245736aec603c319fea2a83a90dc69aba Author: Stephen Boyd Date: Fri Jul 10 16:03:25 2015 -0700 spi: spi-pxa2xx: Remove clk.h include Clock provider drivers generally shouldn't include clk.h because it's the consumer API. Remove the include here because this is a provider driver. Cc: Daniel Mack Cc: Haojian Zhuang Cc: Robert Jarzmik Cc: Mark Brown Signed-off-by: Stephen Boyd Signed-off-by: Mark Brown drivers/spi/spi-pxa2xx-pci.c | 1 - 1 file changed, 1 deletion(-) commit 8e2175d42e435b7957bfaa921fc27cb40e923372 Author: Axel Lin Date: Wed Jul 15 13:50:49 2015 +0800 ASoC: sirf-audio-codec: Staticise local symbols Also make sirf_audio_codec_dai_ops const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/sirf-audio-codec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a01da00cbccc162a86c78f61ed4ca55dad35440f Author: Axel Lin Date: Wed Jul 15 09:51:33 2015 +0800 ASoC: da732x: Merge da732x_dai1_ops and da732x_dai2_ops da732x_dai1_ops is identical to da732x_dai2_ops, so merge them to da732x_dai_ops. The da732x_dai_ops is not modified after initialization, so make it const. Signed-off-by: Axel Lin Acked-by: Adam Thomson Signed-off-by: Mark Brown sound/soc/codecs/da732x.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) commit 64793047558781330a1d13b159a2bc9385bdf97f Author: Axel Lin Date: Wed Jul 15 15:38:14 2015 +0800 ASoC: Constify snd_soc_dai_ops variables The snd_soc_dai_ops variables are not modified after initialization in these drivers, so make them const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/cs42l52.c | 2 +- sound/soc/codecs/cs42l56.c | 2 +- sound/soc/codecs/isabelle.c | 8 ++++---- sound/soc/codecs/lm49453.c | 10 +++++----- sound/soc/codecs/max98090.c | 2 +- sound/soc/codecs/max98357a.c | 2 +- sound/soc/codecs/mc13783.c | 6 +++--- sound/soc/codecs/rt5645.c | 2 +- sound/soc/codecs/rt5670.c | 2 +- sound/soc/codecs/rt5677.c | 2 +- sound/soc/codecs/si476x.c | 2 +- sound/soc/codecs/tas2552.c | 2 +- sound/soc/codecs/tlv320aic31xx.c | 2 +- 13 files changed, 22 insertions(+), 22 deletions(-) commit fe467ad1e430ffbde37a61a7dacf6218f420d78b Author: Chunyan Zhang Date: Wed Jul 15 15:05:48 2015 +0800 arm64: dts: sprd: adding ETM entries to Spreadtrum SC9836 Since ETMv4 driver has been merged, this patch adds ETM nodes for SC9836, and four funnel input ports to connect with ETM output ports. Signed-off-by: Chunyan Zhang Signed-off-by: Olof Johansson arch/arm64/boot/dts/sprd/sc9836.dtsi | 99 ++++++++++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 5 deletions(-) commit 346add7834557b5b9628b9bf2387106d42e631d4 Author: Daniel Vetter Date: Tue Jul 14 18:07:30 2015 +0200 drm/i915: Use expcitly fixed type in compat32 structs I was confused shortly whether the compat was needed for the int, until I noticed the pointer in the original. Also remove typedef. v2: Review from Chris. - Add comments. - Also change the int param in the original structure. Cc: Chris Wilson Signed-off-by: Daniel Vetter Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_ioc32.c | 13 +++++++++---- include/uapi/drm/i915_drm.h | 6 +++++- 2 files changed, 14 insertions(+), 5 deletions(-) commit 1f7457b135b075e7a60c9133723363045084c333 Author: Maarten Lankhorst Date: Mon Jul 13 11:55:05 2015 +0200 drm/i915: Fix noatomic crtc disabling, v2. This fixes the breakage caused by commit eddfcbcdc27fbecb33bff098967bbdd7ca75bfa6 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:53 2015 +0200 drm/i915: Update less state during modeset. No need to repeatedly call update_watermarks, or update_fbc. Down to a single call to update_watermarks in .crtc_enable Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter Add missing shared dpll disable to the noatomic disable function. This function will be replaced by its atomic counterpart soon. Changes since v1: - intel_crtc->active and watermarks are fixed by a patch from Patrik Jakobsson Signed-off-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit cd13f5ab42a63d267f452ac5fd641136c7b8f17c Author: Maarten Lankhorst Date: Tue Jul 14 14:12:02 2015 +0200 drm/i915: fill in more mode members Fill in driver type, hsync, vrefresh and name. Those members are not read out but can be calculated from the mode. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 5 +++++ 1 file changed, 5 insertions(+) commit 40403c1b13cb01d9125df80789b574c2d4172cc0 Author: Juston Li Date: Tue Jul 14 21:14:48 2015 -0700 staging: sm750fb: add missing blank line after declarations Fixes checkpatch.pl WARNING: Missing a blank line after declarations Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 1 + drivers/staging/sm750fb/ddk750_display.c | 2 ++ drivers/staging/sm750fb/ddk750_dvi.c | 1 + drivers/staging/sm750fb/ddk750_mode.c | 3 +++ drivers/staging/sm750fb/ddk750_power.c | 1 + drivers/staging/sm750fb/ddk750_sii164.c | 1 + drivers/staging/sm750fb/sm750_accel.c | 1 + drivers/staging/sm750fb/sm750_cursor.c | 2 ++ drivers/staging/sm750fb/sm750_hw.c | 7 +++++++ 9 files changed, 19 insertions(+) commit 7b05cbe8b60beb31919baa2b010cd7776904b17b Author: Juston Li Date: Tue Jul 14 21:14:47 2015 -0700 staging: sm750fb: remove unnecessary braces Fixes checkpatch.pl warning: WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_accel.c | 9 +++------ drivers/staging/sm750fb/sm750_hw.c | 6 ++---- 2 files changed, 5 insertions(+), 10 deletions(-) commit cebafd8d6fd3a55671c2c5ee88ff27ad1bf9f1d3 Author: Juston Li Date: Tue Jul 14 21:14:46 2015 -0700 staging: sm750fb: move while to follow do close brace Fixes checkpatch.pl error: ERROR: while should follow close brace '}' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit 259fef35c7688c105137f286c2dc5780979686c9 Author: Juston Li Date: Tue Jul 14 21:14:45 2015 -0700 staging: sm750fb: fix brace placement Fix brace placement errors caught by checkpatch.pl ERROR: that open brace { should be on the previous line Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.h | 12 +++---- drivers/staging/sm750fb/ddk750_display.c | 56 ++++++++++---------------------- drivers/staging/sm750fb/ddk750_display.h | 3 +- drivers/staging/sm750fb/ddk750_dvi.c | 6 ++-- drivers/staging/sm750fb/ddk750_hwi2c.c | 6 ++-- drivers/staging/sm750fb/ddk750_mode.c | 13 +++----- drivers/staging/sm750fb/ddk750_mode.h | 6 ++-- drivers/staging/sm750fb/ddk750_power.c | 27 +++++---------- drivers/staging/sm750fb/ddk750_power.h | 3 +- drivers/staging/sm750fb/ddk750_sii164.c | 16 +++------ drivers/staging/sm750fb/ddk750_sii164.h | 3 +- drivers/staging/sm750fb/sm750_accel.c | 45 ++++++++----------------- drivers/staging/sm750fb/sm750_cursor.c | 23 +++++-------- 13 files changed, 71 insertions(+), 148 deletions(-) commit a1fe154f0f3dea1ba48aa4e96dbb0deec5c17125 Author: Juston Li Date: Tue Jul 14 21:14:44 2015 -0700 staging: sm750fb: remove unnecessary whitespace Fixes checkpatch.pl warning: WARNING: unnecessary whitespace before a quoted newline Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.c | 2 +- drivers/staging/sm750fb/sm750_hw.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 919ca7c63b26c06ed825a31e5b050ca4790c3ef0 Author: Juston Li Date: Tue Jul 14 21:14:43 2015 -0700 staging: sm750fb: remove trailing whitespace Fixes checkpatch.pl error: ERROR: trailing whitespace Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_dvi.c | 2 +- drivers/staging/sm750fb/sm750_accel.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit adbb90e83062da1884eaeae4d1d9e0884e92ee6d Author: Juston Li Date: Tue Jul 14 21:14:42 2015 -0700 staging: sm750fb: add space after semicolon Fixes checkpatch.pl error: ERROR: space required after that ';' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.h | 2 +- drivers/staging/sm750fb/sm750_cursor.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) commit 0d5e63c4626c0f8b3c8a12e8ce9a557273ce72ee Author: Juston Li Date: Tue Jul 14 21:14:41 2015 -0700 staging: sm750fb: add spaces around operators Fixes checkpath.pl error: ERROR: spaces required around that operator Note running checkpatch.pl with '--strict' catches more of these errors along with cases where spacing is optional but preferred. Take care of these in a future patch. Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 2 +- drivers/staging/sm750fb/ddk750_power.c | 2 +- drivers/staging/sm750fb/sm750.h | 2 +- drivers/staging/sm750fb/sm750_accel.c | 4 ++-- drivers/staging/sm750fb/sm750_cursor.c | 12 ++++++------ drivers/staging/sm750fb/sm750_help.h | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) commit 6ab5b6d16bba08e9665d4ae1b122b55642d990b3 Author: Juston Li Date: Tue Jul 14 21:14:40 2015 -0700 staging: sm750fb: consistent spacing around operators Fixes checkpatch.pl error: ERROR: need consistent spacing around operator Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 4 ++-- drivers/staging/sm750fb/ddk750_display.h | 4 ++-- drivers/staging/sm750fb/sm750.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit f7d8b69a1d6dac9d650714e82390f3b63e2e582f Author: Juston Li Date: Tue Jul 14 21:14:39 2015 -0700 staging: sm750fb: add space after return type Fixes checkpatch.pl warning: WARNING: missing space after return type Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 5d14c13ae03ed4a8d79f14507eabb1d59cc85b3b Author: Juston Li Date: Tue Jul 14 21:14:38 2015 -0700 staging: sm750fb: add space after struct definition Fixes checkpatch.pl warning: WARNING: missing space after struct definition Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750.h | 12 ++++++------ drivers/staging/sm750fb/sm750_hw.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) commit b63f3dcab161c18f5ce3741dde07c29364a4af6b Author: Juston Li Date: Tue Jul 14 21:14:37 2015 -0700 staging: sm750fb: add space after enum definition Fixes checkpatch.pl warning: WARNING: missing space after enum definition Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.h | 2 +- drivers/staging/sm750fb/sm750_hw.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 6338a78132f893b6c40c349d7c8034002dfe86cf Author: Juston Li Date: Tue Jul 14 21:14:36 2015 -0700 staging: sm750fb: add space after close brace Fixes checkpatch.pl error: ERROR: space required after that close brace '}' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.c | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 2 +- drivers/staging/sm750fb/ddk750_power.c | 2 +- drivers/staging/sm750fb/sm750.h | 2 +- drivers/staging/sm750fb/sm750_cursor.c | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) commit 8c11f5a2805bd2c257b706d7499ed531b6c5aa5f Author: Juston Li Date: Tue Jul 14 21:14:35 2015 -0700 staging: sm750fb: add space before open brace Fixes checkpatch.pl error: ERROR: space required before the open brace '{' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.c | 14 +++++++------- drivers/staging/sm750fb/ddk750_mode.c | 8 ++++---- drivers/staging/sm750fb/ddk750_power.c | 4 ++-- drivers/staging/sm750fb/sm750_accel.c | 6 +++--- drivers/staging/sm750fb/sm750_cursor.c | 14 +++++++------- 5 files changed, 23 insertions(+), 23 deletions(-) commit b68a17a2ed8285ee8679648e1cbc39202c41d9fa Author: Juston Li Date: Tue Jul 14 21:14:34 2015 -0700 staging: sm750fb: remove space between function name and parenthesis Fixes checkpatch.pl warning: WARNING: space prohibited between function name and open parenthesis '(' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_accel.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9ccc5f4427c2a69553935c33ca4c4b3f9e80214d Author: Juston Li Date: Tue Jul 14 21:14:33 2015 -0700 staging: sm750fb: add space before open parenthesis Fixes checkpatch.pl error: ERROR: space required before the open parenthesis '(' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.c | 20 ++++++++++---------- drivers/staging/sm750fb/ddk750_dvi.c | 2 +- drivers/staging/sm750fb/ddk750_help.c | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 12 ++++++------ drivers/staging/sm750fb/ddk750_power.c | 6 +++--- drivers/staging/sm750fb/sm750_accel.c | 8 ++++---- drivers/staging/sm750fb/sm750_cursor.c | 32 ++++++++++++++++---------------- drivers/staging/sm750fb/sm750_help.h | 2 +- 8 files changed, 42 insertions(+), 42 deletions(-) commit 8332d94c979bc348398d3f1b2581a59c7d60978a Author: Juston Li Date: Tue Jul 14 21:14:32 2015 -0700 staging: sm750fb: remove space before close parenthesis Fixes checkpatch.pl error: ERROR: space prohibited before that close parenthesis ')' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 2 +- drivers/staging/sm750fb/sm750_accel.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 7f0ebcc29082a45bcd3e108b6f65d1190059b36b Author: Juston Li Date: Tue Jul 14 21:14:31 2015 -0700 staging: sm750fb: remove spacing after open parenthesis Fixes checkpatch.pl warning: ERROR: space prohibited after that open parenthesis '(' Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_chip.c | 6 +++--- drivers/staging/sm750fb/ddk750_mode.c | 2 +- drivers/staging/sm750fb/ddk750_power.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) commit 78376535c2b9c2d463a801db81fb38dc26c29532 Author: Juston Li Date: Tue Jul 14 21:14:30 2015 -0700 staging: sm750fb: use tabs for indentation Replace spaces with tabs for indentation to fix the checkpatch.pl error ERROR: code indent should use tabs where possible WARNING: please, no spaces at the start of a line Signed-off-by: Juston Li Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_display.c | 100 ++++---- drivers/staging/sm750fb/ddk750_display.h | 2 +- drivers/staging/sm750fb/ddk750_dvi.c | 66 +++--- drivers/staging/sm750fb/ddk750_help.h | 4 +- drivers/staging/sm750fb/ddk750_hwi2c.c | 246 +++++++++---------- drivers/staging/sm750fb/ddk750_mode.c | 142 +++++------ drivers/staging/sm750fb/ddk750_mode.h | 46 ++-- drivers/staging/sm750fb/ddk750_power.c | 254 ++++++++++---------- drivers/staging/sm750fb/ddk750_power.h | 8 +- drivers/staging/sm750fb/ddk750_reg.h | 18 +- drivers/staging/sm750fb/ddk750_sii164.c | 394 +++++++++++++++---------------- drivers/staging/sm750fb/ddk750_sii164.h | 28 +-- drivers/staging/sm750fb/sm750.h | 26 +- drivers/staging/sm750fb/sm750_accel.c | 370 ++++++++++++++--------------- drivers/staging/sm750fb/sm750_accel.h | 4 +- drivers/staging/sm750fb/sm750_help.h | 26 +- drivers/staging/sm750fb/sm750_hw.h | 28 +-- 17 files changed, 881 insertions(+), 881 deletions(-) commit 32491f561bffddfc5c3dee87e439f2ec64a6cf80 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:44 2015 +0300 staging: vme_user: remove okcount variable Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit 18f8bee2066a55b7fee478cac0a91d073d3d24a9 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:43 2015 +0300 staging: vme_user: remove distracting comment Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 1 - 1 file changed, 1 deletion(-) commit 457ab28619abd1a87eefbb2615bb54ede51e339f Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:42 2015 +0300 staging: vme_user: remove unused variable Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 7c78e0cdd0baaea087f342330ec1cc44cf4312e8 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:41 2015 +0300 staging: vme_user: switch to returning -EFAULT on __copy_*_user errors Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 47 ++++++++-------------------------- 1 file changed, 11 insertions(+), 36 deletions(-) commit 8e4d138cc083bb960271e79832982e982c35d219 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:40 2015 +0300 staging: vme_user: allow large read()/write() This changes large master transfers to do shorter read/write rather than return -EINVAL. User space will now be able to optimistically request a large transfer and get at least some data. This also removes comments suggesting on how to implement large transfers. Current vme_master_* read and write implementations use CPU copies that don't produce burst PCI accesses and subsequently no block transfer on VME bus. In the end overall performance is quiet low and it can't be fixed by doing direct copy to user space. Much easier solution would be to just reuse kernel buffer. Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 73 +++++++++++----------------------- 1 file changed, 24 insertions(+), 49 deletions(-) commit 1f0622de0d1fb7de187c7cf729971d56def7814e Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:39 2015 +0300 staging: vme_user: fix kmalloc style Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f99b71be37dd88e7b2f4a7c227da6c4f71cd8fa4 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:38 2015 +0300 staging: vme_user: fix NULL comparison style Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit cd974d35ab784d98085ed1b317a9978c026d86f7 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:37 2015 +0300 staging: vme_user: fix blank lines Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 86eadace5d021f50558936ea75234f3262d16bc2 Author: Dmitry Kalinkin Date: Fri Jun 26 23:39:36 2015 +0300 staging: vme_user: fix code alignment Signed-off-by: Dmitry Kalinkin Signed-off-by: Greg Kroah-Hartman drivers/staging/vme/devices/vme_user.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) commit 4d4d138a3e2c2a85df9fa048b341612c235c1027 Author: Maninder Singh Date: Wed Jul 15 08:52:51 2015 +0530 staging:vt6655: remove checks around dev_kfree_skb dev_kfree_skb checks for NULL pointer itself, Thus no need of explicit NULL check. Signed-off-by: Maninder Singh Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit aeb7fa7b4f29ce4d7d16c4c3565c4714f2f62b82 Author: Gioh Kim Date: Mon Jul 6 15:14:41 2015 +0900 staging: ion: debugfs to shrink pool This patch enables debugfs file /sys/kernel/debug/ion/heaps/system_shrink to shrink pool and get pool size. This technically enables debugfs shrinking for all heaps, not just the system heap although the system heap is the only one with a shrinker right now. It is already implemented but not complete. This patch completes and enables it. Reading the file returns pool size in page unit and writing the number of pages shrinks pool. It flushes all pages to write zero at the file. Signed-off-by: Gioh Kim Reviewed-by: Laura Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit b44d9ce3b81715311198f0c5fa329e518b4f9f18 Author: Gioh Kim Date: Mon Jul 6 15:14:40 2015 +0900 staging: ion: shrink page-pool by page unit This patch shrink page-pool by page unit. The system shrinker calls ion_heap_shrink_count() to get nr_to_scan, and pass it to ion_heap_shrink_scan(). The problem is the return value of ion_heap_shrink_count() is the number of pages but ion_system_heap_shrink(), which is called by ion_heap_shrink_scan(), gets the number of chunk. The main root of this is that ion_page_pool_shrink() returns page count via ion_page_pool_total() if it have to check pool size. But it frees chunks of pages if it have to free pools. This patch first fix ion_page_pool_shrink() to count only pages, not chunks. And then ion_system_heap_shrink() to work on pages. Signed-off-by: Gioh Kim Reviewed-by: Laura Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_page_pool.c | 5 +++-- drivers/staging/android/ion/ion_system_heap.c | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) commit 3e3148c51190d680b7cc2ebdc556e6ea27a93989 Author: Vaishali Thakkar Date: Fri Jun 26 09:37:25 2015 +0530 Staging: rtl8192e: 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. Note that the 6 in the third argument of memset appears to represent an ethernet address size (ETH_ALEN). The Coccinelle semantic patch that makes this change is as follows: // @eth_zero_addr@ expression e; @@ -memset(e,0x00,6); +eth_zero_addr(e); // Signed-off-by: Vaishali Thakkar Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_TSProc.c | 2 +- drivers/staging/rtl8192e/rtllib_softmac.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6957248f487e0eeecf7a23a34b08ee26c0c3a151 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:26 2015 +0200 staging: rtl8192e: rtllib_softmac: Make functions static Make as many functions as possible static in rtllib_softmac.c. The following functions were affected: - rtllib_sta_wakeup - rtllib_TURBO_Info - rtllib_get_beacon_ - rtllib_send_probe_requests - rtllib_update_active_chan_map - rtllib_softmac_scan_syncro Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 11 ----------- drivers/staging/rtl8192e/rtllib_softmac.c | 27 +++++++++++++++------------ 2 files changed, 15 insertions(+), 23 deletions(-) commit ed4360336931ea99d029f1208d3e55b60c2bc621 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:25 2015 +0200 staging: rtl8192e: Make rtllib_rx_mgt() static Function is not referenced outside of rtllib_rx.c Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 3 --- drivers/staging/rtl8192e/rtllib_rx.c | 9 ++++++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit 511998ea5be18a0219151e30c92a5d47533d2c49 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:24 2015 +0200 staging: rtl8192e: rtllib_tx: Make functions static Make as many functions as possible static in rtllib_tx.c. The following functions were affected: - rtllib_xmit_inter - rtllib_query_seqnum - rtllib_put_snap Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 3 --- drivers/staging/rtl8192e/rtllib_tx.c | 8 ++++---- 2 files changed, 4 insertions(+), 7 deletions(-) commit 01b67faf5c5449f7dc628d48b71faab73ac67343 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:23 2015 +0200 staging: rtl8192e: Make rtl8192_QueryIsShort() static Relocate function within file to avoid unnecessary fw decl. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 24 ++++++++++++------------ drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h | 1 - 2 files changed, 12 insertions(+), 13 deletions(-) commit cc5a1591dadc01597e0fb48d0f5c16203ec33a00 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:22 2015 +0200 staging: rtl8192e: r8192e_phy: Make functions static Make as many functions as possible static in r8192E_phy.c. The following functions were affected: - rtl8192_phyConfigBB - rtl8192_SwChnl_WorkItem - rtl8192_SetBWModeWorkItem Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c | 6 +++--- drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) commit 235a86c3ec8e5343dd153889ecc42a6fc66c09ce Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:21 2015 +0200 staging: rtl8192e: rtl_core: Make functions static Make as many functions as possible static in rtl_core.c. If needed - move fw declaration from header. The following functions were affected: - rtl8192_is_tx_queue_empty - rtl819x_watchdog_wqcallback - watch_dog_timer_callback - rtl8192_data_hard_stop - rtl8192_data_hard_resume - rtl8192_hard_data_xmit - rtl8192_hard_start_xmit - rtl8192_tx_cmd - rtl8192_tx - rtl8192_pci_initdescring - rtl8192_irq_tx_tasklet - rtl8192_irq_rx_tasklet - rtl8192_cancel_deferred_work - _rtl8192_up - rtl8192_up - rtl8192_down - rtl8192_restart - rtl8192_update_cap Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 64 +++++++++++++++++----------- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 24 ----------- 2 files changed, 39 insertions(+), 49 deletions(-) commit 3ebfc4180586ee138af643513e6f75ad61f4db74 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:20 2015 +0200 staging: rtl8192e: Make phy_RF8256_Config_ParaFile() static Relocate function in driver to avoid adding unnecessary fw decl. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c | 18 +++++++++--------- drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h | 1 - 2 files changed, 9 insertions(+), 10 deletions(-) commit e0c84c1c1f0b6335184ab6ea0cdecfbf4abe173a Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:19 2015 +0200 staging: rtl8192e: rtllib_HTProc: Make functions static Make as many functions as possible static in rtllib_HTProc.c. The following functions were affected: - HTMcsToDataRate - HTFilterMCSRate Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_HTProc.c | 5 +++-- drivers/staging/rtl8192e/rtllib.h | 3 --- 2 files changed, 3 insertions(+), 5 deletions(-) commit 735b78615ace8f2c3527baccce0ee2d3ed0fb145 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:18 2015 +0200 staging: rtl8192e: rtl_dm: Make functions static Make as many functions as possible static in rtllib_dm.c. The following functions were affected: - dm_check_fsync - dm_CheckRfCtrlGPIO - dm_fsync_timer_callback Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 9 ++++++--- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 3 --- 2 files changed, 6 insertions(+), 6 deletions(-) commit 3a82a2fe2c165a3d1deb251b19550e5e863e95be Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:17 2015 +0200 staging: rtl8192e: Remove rtl8192_rx_cmd() Function is empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 8 -------- 1 file changed, 8 deletions(-) commit 84b2ce69f952ce84b0b7ce926d497327e38767b6 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:16 2015 +0200 staging: rtl8192e: probe: Remove bdma64 check It is always false. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 3 --- 1 file changed, 3 deletions(-) commit 59eda5eecda9dc8566d9bc70a7e4dde0a5256aa0 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:15 2015 +0200 staging: rtl8192e: Remove rtl819x_process_cck_rxpathsel() Function is empty. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 2 -- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 6 ------ drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 2 -- 3 files changed, 10 deletions(-) commit 9d9d0e369859fe16fe2b7154c64fb65c32136b95 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:14 2015 +0200 staging: rtl8192e: Remove DMESG macro It is used in several places, but expands to nothing. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 1 - drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 3 --- drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 4 ---- drivers/staging/rtl8192e/rtllib_debug.h | 2 -- 4 files changed, 10 deletions(-) commit 1e16cb17d59c9aafe8cc3dfc912050b1c4dddca7 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:13 2015 +0200 staging: rtl8192e: Remove read|write_nic_io_(d)word|byte() None of this functions was used. Also remove PlatformIOCheckPageLegalAndGetRegMask() used by them. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 158 --------------------------- drivers/staging/rtl8192e/rtl8192e/rtl_core.h | 7 -- 2 files changed, 165 deletions(-) commit 632751b5290a70c094bdcabf5f9266f7f0a8fadd Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:12 2015 +0200 staging: rtl8192e: Remove DOT11D_GetMaxTxPwrInDbm() Function is not used. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/dot11d.c | 15 --------------- drivers/staging/rtl8192e/dot11d.h | 1 - 2 files changed, 16 deletions(-) commit 18e2daa85847a555c3fc9b8e2b2b90a60cab0830 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:11 2015 +0200 staging: rtl8192e: Remove unused rtllib_device::freq_band Member is never referenced. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 1 - 1 file changed, 1 deletion(-) commit 9b3fcf2bbf9374ade7f9dcac1c58c4af6fcc0694 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:10 2015 +0200 staging: rtl8192e: Remove unused ether_header structure Structure is not used in the driver. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 6 ------ 1 file changed, 6 deletions(-) commit e93c18c7236f3fb90e87c6239ed78ad2c2552dfd Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:09 2015 +0200 staging: rtl8192e: Remove rtllib_stats structure Two remaining fields of rtllib_stats are only incremented, but never read. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 6 ------ drivers/staging/rtl8192e/rtllib_rx.c | 2 -- drivers/staging/rtl8192e/rtllib_tx.c | 1 - 3 files changed, 9 deletions(-) commit 1184b4ade8182945ae063e584081368387a3b725 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:08 2015 +0200 staging: rtl8192e: Remove unused fields from rtllib_stats None of them are used in the driver. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtllib.h | 19 ------------------- 1 file changed, 19 deletions(-) commit adc7623c86064d1578b406f9625ac25088ce05c1 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:07 2015 +0200 staging: rtl8192e: Remove unused enums Remove ack_policy enum and some unused RTL_DEBUG enums. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl819x_Qos.h | 5 ----- drivers/staging/rtl8192e/rtllib_debug.h | 6 ------ 2 files changed, 11 deletions(-) commit 5e6f1c7145342ad0320b06ebd05d260c48275ae7 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:06 2015 +0200 staging: rtl8192e: Remove undefs They relate to macros that are not used in the driver. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 19 ------------------- 1 file changed, 19 deletions(-) commit 9efe891d01c3734ab05fdbd53dead3451fa03e29 Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:05 2015 +0200 staging: rtl8192e: Remove unused defines Remove most of unused defines (excluding phyreg/hw registers). Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/dot11d.h | 4 -- drivers/staging/rtl8192e/rtl8192e/r8190P_def.h | 46 ---------------------- .../staging/rtl8192e/rtl8192e/r8192E_firmware.h | 2 - drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 3 -- drivers/staging/rtl8192e/rtl8192e/rtl_dm.h | 19 --------- drivers/staging/rtl8192e/rtl8192e/rtl_ps.h | 1 - drivers/staging/rtl8192e/rtl8192e/rtl_wx.c | 3 -- drivers/staging/rtl8192e/rtl819x_BA.h | 5 --- drivers/staging/rtl8192e/rtl819x_HT.h | 2 - drivers/staging/rtl8192e/rtl819x_TS.h | 2 - drivers/staging/rtl8192e/rtllib.h | 40 ------------------- drivers/staging/rtl8192e/rtllib_softmac.c | 1 - 12 files changed, 128 deletions(-) commit 04ed5f3d4ea9981e31219fc2514b5505445dd92c Author: Mateusz Kulikowski Date: Tue Jul 14 22:04:04 2015 +0200 staging: rtl8192e: Remove ToLegalChannel() Function is not used. Signed-off-by: Mateusz Kulikowski Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192e/dot11d.c | 24 ------------------------ drivers/staging/rtl8192e/dot11d.h | 1 - 2 files changed, 25 deletions(-) commit 46fd96251f66421b178b4ff7f0b26b2e4cb94092 Author: Rami Rosen Date: Wed Jul 1 17:37:10 2015 +0300 PCI: Remove a broken link in quirks.c Remove a broken link in drivers/pci/quirks.c. Signed-off-by: Rami Rosen Signed-off-by: Bjorn Helgaas drivers/pci/quirks.c | 1 - 1 file changed, 1 deletion(-) commit aaed816fde8501ed86bb62c4d7f7b137969afc7e Author: Bjorn Helgaas Date: Tue Jul 14 16:41:19 2015 -0500 PCI: Remove useless redundant code Remove redundant code from __pci_bus_find_cap_start(). No functional change. Signed-off-by: Bjorn Helgaas drivers/pci/pci.c | 2 -- 1 file changed, 2 deletions(-) commit 0a1a9b49427f13b6e12366eb8f06b8094ab61447 Author: Wei Yang Date: Tue Jun 30 09:16:44 2015 +0800 PCI: Simplify pci_find_(ext_)capability() return value checks The return value of the pci_find_(ext_)capability() is either zero or the position of a capability. It is never negative. This patch consolidates the form of check from (pos <= 0) to (!pos). Signed-off-by: Wei Yang Signed-off-by: Bjorn Helgaas drivers/pci/pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fff905f32966109d513ae17afc6fe39f1c76bb67 Author: Wei Yang Date: Tue Jun 30 09:16:41 2015 +0800 PCI: Move PCI_FIND_CAP_TTL to pci.h and use it in quirks Some quirks search for a HyperTransport capability and use a hard-coded TTL value of 48 to avoid an infinite loop. Move the definition of PCI_FIND_CAP_TTL to pci.h and use it instead of the hard-coded TTL values. [bhelgaas: changelog] Signed-off-by: Wei Yang Signed-off-by: Bjorn Helgaas drivers/pci/pci.c | 1 - drivers/pci/pci.h | 2 ++ drivers/pci/quirks.c | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) commit bd1fb5388da0a37c053649ec4aa8e588ef39f958 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:34:28 2015 +0900 staging: 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: Greg Kroah-Hartman drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c | 1 - 1 file changed, 1 deletion(-) commit 861e82d5b5a42d2eda34f3123b46162eaae9af80 Author: Jacob Kiefer Date: Fri Jul 10 01:26:30 2015 -0400 staging: style fix for octeon/ethernet-tx.c Broke line with greater than 80 characters into two lines and improved logical operator readability in hardware checksum if statement. Signed-off-by: Jacob Kiefer Signed-off-by: Greg Kroah-Hartman drivers/staging/octeon/ethernet-tx.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 364b91be262aaf0afc1726be391fbeb7f2b59c52 Author: Leung Timothy Chi King Date: Wed Jul 1 09:44:13 2015 -0700 Staging: rts5208: Fix checkpatch warning: else is not generally useful The following checkpatch warning was fixed: WARNING: else is not generally useful after a break or return Signed-off-by: Leung Timothy Chi King Signed-off-by: Greg Kroah-Hartman drivers/staging/rts5208/sd.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 9fccffbfd9505116c0ab847742aafaa7da55d413 Author: Johannes Postma Date: Wed Jul 8 13:41:46 2015 +0100 Staging: ozwpan: ozusbsvc1.c: Fix missing blank line after declarations This patch fixes a missing line after declarations issue. Signed-off-by: Johannes Postma Signed-off-by: Greg Kroah-Hartman drivers/staging/ozwpan/ozusbsvc1.c | 1 + 1 file changed, 1 insertion(+) commit 4221844a627aaebf28732d6e891de2aa4db38aa0 Author: Jakub Sitnicki Date: Fri Jul 10 18:52:21 2015 +0200 staging: rtl8188eu: fold rtl8188e_read_chip_version() into rtl8188e_SetHalODMVar() Both rtl8188e_read_chip_version() and ReadChipVersion8188E() are used only in one place. Make ReadChipVersion8188E() a void function and eliminate its wrapper - rtl8188e_read_chip_version(). Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit a51d13037b1e5149bcbe65cc5a47af1d35affdaa Author: Jakub Sitnicki Date: Fri Jul 10 18:52:20 2015 +0200 staging: rtl8188eu: remove ROMVer from struct HAL_VERSION ROM version on RTL8188EU is always 0. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_com.c | 2 +- drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 2 -- drivers/staging/rtl8188eu/include/HalVerDef.h | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) commit 3c71dd6c5609285b122a50ebc2d59ebafdac595f Author: Jakub Sitnicki Date: Fri Jul 10 18:52:19 2015 +0200 staging: rtl8188eu: remove RFtype from struct HAL_VERSION RFtype in struct HAL_VERSION duplicates rf_type in struct hal_data_8188e, and does not change. Remove it and the macros that test it. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_com.c | 12 +----------- drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 15 ++------------- drivers/staging/rtl8188eu/include/HalVerDef.h | 21 --------------------- 3 files changed, 3 insertions(+), 45 deletions(-) commit e827aeedd0e14dcb67eb29afbaa875ab1a0f7b26 Author: Jakub Sitnicki Date: Fri Jul 10 18:52:18 2015 +0200 staging: rtl8188eu: remove ICtype from struct HAL_VERSION IC type on RTL8188EU is always 8188E. Remove it and all the macros that check it. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/hal_com.c | 13 +---- drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 1 - drivers/staging/rtl8188eu/hal/usb_halinit.c | 2 +- drivers/staging/rtl8188eu/include/HalVerDef.h | 61 ----------------------- 4 files changed, 2 insertions(+), 75 deletions(-) commit 3738408cc802025a1ecf4a059a0c8ab048cb7e72 Author: Jakub Sitnicki Date: Fri Jul 10 18:52:17 2015 +0200 staging: rtl8188eu: remove RegulatorMode from struct hal_data_8188e This field is not used anywhere. Also, kill the rt_regulator_mode enum which exists just for this field. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c | 3 --- drivers/staging/rtl8188eu/include/rtl8188e_hal.h | 7 ------- 2 files changed, 10 deletions(-) commit 249472588cf0b5fa18063783dd1d4f4a62c8ddb3 Author: Sreenath Madasu Date: Wed Jul 8 18:43:00 2015 -0400 staging: rtl8188eu: core: Fixed 80 character length warning When the checkpatch.pl script was run, it showed lines with length more than 80 characters in rtw_ap.c file. Fixed line number 382 by breaking it up into two lines within 80 characters. Signed-off-by: Sreenath Madasu Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e1d0bcedfb6da518422472fcbab03999fc312ab1 Author: Sunil Shahu Date: Tue Jul 7 14:55:44 2015 +0530 staging: rtl8188eu: core: rtw_mlme: remove space before ',' Fix coding style error by removing spaces before ',' as suggested by checkpatch.pl script. Signed-off-by: Sunil Shahu Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_mlme.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9e7e78d8298bd487f7a0d2b0c62033b3841d03ca Author: Prasanna Karthik Date: Mon Jun 29 12:57:35 2015 +0000 staging:rtl8188eu: Code cleanup fix reported by coccinelle bool check modified Signed-off-by: Prasanna Karthik Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/hal/rf_cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 027d3efd933d87ca3d9a28365cae795c14e7a563 Author: Jakub Sitnicki Date: Fri Jun 26 07:50:34 2015 +0200 staging: rtl8188eu: don't duplicate ieee80211 WLAN_CAPABILITY_* constants linux/ieee80211.h already defines constants for capability bits. Include it where needed, resolve discrepancies in naming, and remove the duplicated definitions. Also, make use of WLAN_CAPABILITY_IS_STA_BSS() macro to check if neither ESS nor IBSS capability bits are set. Signed-off-by: Jakub Sitnicki Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8188eu/core/rtw_ap.c | 2 +- drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 2 ++ drivers/staging/rtl8188eu/core/rtw_mlme.c | 5 +++-- drivers/staging/rtl8188eu/core/rtw_wlan_util.c | 2 ++ drivers/staging/rtl8188eu/include/ieee80211.h | 10 ---------- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 4 ++-- 6 files changed, 10 insertions(+), 15 deletions(-) commit eb90d44de7e6c7498a21e8de2935123395bbc31b Author: Sudip Mukherjee Date: Tue Jul 7 13:44:35 2015 +0530 staging: sm7xxfb: use kernel commandline We were only using the kernel commandline to set the mode if this driver is builtin, but when it is built as a module we were not having any way to set the mode. Start using commandline even if it is built as a module. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 2 -- 1 file changed, 2 deletions(-) commit 4a012d30508ed09063e35eeee95e34ecc8534716 Author: Sudip Mukherjee Date: Tue Jul 7 13:44:34 2015 +0530 staging: sm7xxfb: fix error handling We were checking smtc_regbaseaddress and that too at a place where it can never be NULL. Real check should be on sfb->lfb immediately after we do ioremap. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xxfb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit d6cb68d51e7123a66c78ec4c48b2686509f290b6 Author: Sudip Mukherjee Date: Tue Jul 7 13:44:33 2015 +0530 staging: sm7xxfb: remove unused macros These macros were only defined but not used anywhere. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/sm7xxfb/sm7xx.h | 20 -------------------- 1 file changed, 20 deletions(-) commit 304e08845126d949eacb2d95a5d15d4d022d555b Author: Luis de Bethencourt Date: Thu Jun 25 14:56:13 2015 +0200 staging: speakup: fix indentation Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/speakup/keyhelp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f920c1f1778193338925ee3665844e08b4a6997 Author: Antonio Borneo Date: Tue Jun 23 22:52:39 2015 +0800 staging: mt29f_spinand: Remove redundant spi driver bus initialization In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_register_driver(), so we can drop the manual assignment. Signed-off-by: Antonio Borneo To: Greg Kroah-Hartman To: devel@driverdev.osuosl.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Greg Kroah-Hartman drivers/staging/mt29f_spinand/mt29f_spinand.c | 1 - 1 file changed, 1 deletion(-) commit fb44d9a507305ab05945d8a781a0a1255a3d9868 Author: Peter Huewe Date: Tue Jul 14 00:44:09 2015 +0200 staging/xgifb: Move register helper functions to header and mark them as static inline. This shrinks the compiled module from 137442 to 117732 bytes and we also get rid of vb_util.c Signed-off-by: Peter Huewe Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/Makefile | 2 +- drivers/staging/xgifb/vb_util.c | 42 --------------------------------------- drivers/staging/xgifb/vb_util.h | 44 ++++++++++++++++++++++++++++++++++++----- 3 files changed, 40 insertions(+), 48 deletions(-) commit d5a3a945fdf2584f3191e8cc958234057ef691da Author: Hari Prasath Gujulan Elango Date: Thu Jul 9 06:05:09 2015 +0000 staging: xgifb: prefer using the BIT macro This patch uses the BIT macro for bit shift operation. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/xgifb/XGI_main_26.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5eafbb0c529c5765fcfd57cb073982ad1cd06cc7 Author: Ravi Teja Darbha Date: Tue Jun 30 02:18:56 2015 +0530 rtl8712:Fix checkpatch warning Fix line over 80 characters warning. Signed-off-by: Ravi Teja Darbha Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl8712_recv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a732152c76ee194274299905c700125bef1fc0c8 Author: Sunil Shahu Date: Fri Jun 26 19:42:24 2015 +0530 staging: rtl8712: rtl871x_security.c: remove unnecessary variable initialization Variable "u32 c" always re-initialize in for loop. Initialized value of "u32 c" is not used in function and is redundant, hence removed. Suggested-by: Dan Carpenter Signed-off-by: Sunil Shahu Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_security.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8027b3332142268a1cf988fd62946a4afe49b986 Author: Sunil Shahu Date: Mon Jun 22 16:58:41 2015 +0530 drivers: staging: rtl8712: remove unnecessary else statement "else" statement after "if" is unnecessary, hence removed. Signed-off-by: Sunil Shahu Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8712/rtl871x_security.c | 35 ++++++++++++++---------------- 1 file changed, 16 insertions(+), 19 deletions(-) commit f4bf6b343073e32d5cf8fdb0f38192493fcad5c2 Author: Giedrius Statkevičius Date: Thu Jun 25 20:34:43 2015 +0300 staging: ft1000: convert pack pragma to __packed Convert a Microsoft compiler specific directive "#pragma pack(1)" to a GCC equivalent __packed. Also, by doing this we save ourselves from trouble if any other struct definitions are added after the #pragma because it will be applied to all of the definitions following it. Signed-off-by: Giedrius Statkevičius Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_download.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d4216b30bdd56fb823c1d32b5e46687ae87601f6 Author: Peter Karlsson Date: Sun Jun 21 13:29:51 2015 +0200 staging: ft1000-usb: shorten lines to under 80 characters Wrap function arguments to shorten lines to under 80 characters. Signed-off-by: Peter Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 12 ++++++++---- drivers/staging/ft1000/ft1000-usb/ft1000_download.c | 21 ++++++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) commit 0ccd8ebb0e17ddeb2d56cf644da089adc4aa3bc0 Author: Peter Karlsson Date: Sun Jun 21 13:29:50 2015 +0200 staging: ft1000-usb: fixed table alignment Fixed alignment to 8 bytes per line. Signed-off-by: Peter Karlsson Signed-off-by: Greg Kroah-Hartman drivers/staging/ft1000/ft1000-usb/ft1000_debug.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) commit 7ee8095bfe1d61ab4a59f5eff14d833ff90c0b38 Author: Vaishali Thakkar Date: Fri Jun 26 09:54:00 2015 +0530 Staging: rtl8192u: 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. Note that the 6 in the third argument of memset appears to represent an ethernet address size (ETH_ALEN). The Coccinelle semantic patch that makes this change is as follows: // @eth_zero_addr@ expression e; @@ -memset(e,0x00,6); +eth_zero_addr(e); // Signed-off-by: Vaishali Thakkar Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e60b6538342ec047ae2e49335f65b7f92585fab9 Author: Greg Donald Date: Sat Jun 20 11:06:48 2015 -0500 drivers: staging: rtl8192u: Fix "space required after that ','" errors Fix checkpatch.pl "space required after that ','" errors Signed-off-by: Greg Donald Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c | 4 ++-- drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c | 2 +- drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c | 2 +- drivers/staging/rtl8192u/r819xU_firmware.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) commit edeafb979666e28cbd4699716a1e5533791ea916 Author: Joglekar Tejas Date: Sat Jun 20 12:46:16 2015 +0000 staging:rtl8723au:odm.c:Removing trailing whitespaces This patch removes the trailing whitespace error given by checkpatch.pl Signed-off-by: Joglekar Tejas Acked-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman drivers/staging/rtl8723au/hal/odm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 11208b0b3a9ddc462795bdb3aadfc0eda8ef2e4b Author: Nicholas Parkanyi Date: Sun Jul 12 08:17:52 2015 -0400 Staging: vt6655: Remove do { } while (0) from single-statement macros in upc.h. This patch fixes checkpatch.pl warnings in upc.h regarding single-statement macros embedded within do { } while (0) blocks. Signed-off-by: Nicholas Parkanyi Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/upc.h | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) commit 353710ce90b74d711d6d30f1219e0c9634c6fc82 Author: Nicholas Parkanyi Date: Sun Jul 12 09:20:31 2015 -0400 Staging: vt6655: Replace C99 comments in rf.h and rf.c. This patch replaces C99 comments in rf.h and rf.c, with C89 comments, fixing the checkpatch.pl errors. Signed-off-by: Nicholas Parkanyi Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/rf.c | 532 ++++++++++++++++++++++---------------------- drivers/staging/vt6655/rf.h | 24 +- 2 files changed, 278 insertions(+), 278 deletions(-) commit eda01f6161e0f0d156f7fd24080d3a788ebbb911 Author: Malcolm Priestley Date: Thu Jul 9 17:01:25 2015 +0100 staging: vt6655: Fix missing power saving support Add IEEE80211_HW_SUPPORTS_PS to ieee80211_hw flags enabling this feature. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 1 + 1 file changed, 1 insertion(+) commit 3e7921a09407743c52498c188adfa56156d60fc3 Author: Malcolm Priestley Date: Sun Jun 21 11:05:55 2015 +0100 staging: vt6655: Correct listen interval TBTT wake up PSbIsNextTBTTWakeUp is called at beacon intervals. The should listen to next beacon on count down of wake_up_count == 1. This restores this back to vendors code but modified for mac80211. Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device.h | 1 + drivers/staging/vt6655/power.c | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) commit 4fdae0d9fee32c1cbffffb1a246fcc10ed5b1085 Author: Malcolm Priestley Date: Sun Jun 21 11:05:54 2015 +0100 staging: vt6655: vnt_tx_packet don't wakeup from power saving. mac80211 changes the wake state before attempting to tx data Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6655/device_main.c | 3 --- 1 file changed, 3 deletions(-) commit 9afa6c4980492f0305c57e6e8acb4161960df6f4 Author: Kuninori Morimoto Date: Wed Jul 15 00:35:10 2015 +0000 ARM: multi_v7_defconfig: add Renesas DPCM Sound Card This patch enables Renesas DPCM related sound card. It is used for... - Sampline rate convert - CTU/MIXer Note: you need to enable these settings on DTS file Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit fb00ff4c30a8cce32371e5d1abcbb33be1b6d506 Author: Lucas Stach Date: Fri Jun 19 18:09:50 2015 +0200 ARM: dts: imx53-qsb: select open-drain mode for i2c1 pads Both imx53-qsb and imx53-qsrb don't have external pull-up resistors on the I2C1 SCL and SDA lines populated. Select open-drain mode and enable the internal pull-up for both. Signed-off-by: Lucas Stach Signed-off-by: Philipp Zabel Signed-off-by: Shawn Guo arch/arm/boot/dts/imx53-qsb-common.dtsi | 5 +++-- arch/arm/boot/dts/imx53-qsrb.dts | 14 +------------- 2 files changed, 4 insertions(+), 15 deletions(-) commit 97dae8590fa314c41dfb629848c7cab494d8950d Author: Shengjiu Wang Date: Thu Jun 18 13:58:44 2015 +0800 ARM: dts: imx6qdl-sabreauto: Add audio support Add ESAI, ASRC, CS42888 for imx6qdl-sabreauto board Signed-off-by: Shengjiu Wang Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 91 ++++++++++++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl.dtsi | 31 +++++++++++ 2 files changed, 122 insertions(+) commit 2d4e4a62f4f25b2e3d02449d192914ac2a643f5c Author: Cory Tusar Date: Sun Jun 14 20:19:59 2015 -0400 ARM: dts: vf610: Extend I2C support to all available buses. This commit extends the existing Vybrid I2C support to cover buses i2c1, i2c2, and i2c3. Based in (very) large part on an initial patch by Stefan Agner that was just lacking a couple of DMA assignments. Signed-off-by: Cory Tusar Acked-by: Stefan Agner Signed-off-by: Shawn Guo arch/arm/boot/dts/vfxxx.dtsi | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 1906c21a1a07e12e34bdb2bf82462dfcd1a7a042 Author: Fabio Estevam Date: Tue Jun 2 17:41:33 2015 -0300 ARM: dts: imx6qdl-sabreauto: Add HDMI support Add HDMI support. As the DDC I2C pins are not connected due to pin conflicts, we do not pass the 'ddc-i2c-bus' property in this case. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 4 ++++ 1 file changed, 4 insertions(+) commit 6e2a92b26d33a2ed6debad5d8c93fe7d0905b807 Author: Fabio Estevam Date: Sun Jun 7 20:41:07 2015 -0300 ARM: dts: imx6sl-warp: Add the SD2_RESET pin imx6sl-warp has SD2_RESET pin connected to the eMMC reset line, so add this pin to the usdhc2 group. Signed-off-by: Fabio Estevam Acked-by: Otavio Salvador Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sl-warp.dts | 3 +++ 1 file changed, 3 insertions(+) commit 3ee12d8079a5996f3c85e0890d76c0fcb1749bab Author: Tim Harvey Date: Mon Jun 29 20:08:56 2015 +0800 ARM: dts: ventana: add UHS-I support for Ventana boards UHS-I support is available on Ventana boards with micro-SD sockets depending on the board revision. To support this pinctl states for 100Mhz and 200MHz must be added as well as pinmux of the VSELECT signal. In order to support UHS-I the I/O rail of the 4-bit data bus must be switchable between 1.8V and 3.3V. By adding the no-1-8-v property, which disables UHS-I support, we allow the bootloader to be in charge of selecting which boards have this capability by removing that property if the board model/revision implement the support. Additionally we will remove NANDF_CS1 here from the nand pinmux group as the second chip-select is not used on any ventana boards and this is the pad that is used for SD3_VELECT. Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-gw51xx.dtsi | 1 - arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 35 ++++++++++++++++++++++++++++++++--- arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 35 ++++++++++++++++++++++++++++++++--- arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 34 ++++++++++++++++++++++++++++++++-- arch/arm/boot/dts/imx6qdl-gw551x.dtsi | 1 - arch/arm/boot/dts/imx6qdl-gw552x.dtsi | 1 - 6 files changed, 96 insertions(+), 11 deletions(-) commit 366c595f1381b89c52153f753a6499c349410a02 Author: Peter Seiderer Date: Tue Jun 2 21:07:17 2015 +0200 ARM: dts: sabrelite: add CAN support Signed-off-by: Peter Seiderer Tested-by: Eric Nelson Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 3e22339487c914d38e08215cae3d1d219af99aff Author: Peter Seiderer Date: Tue Jun 2 21:07:16 2015 +0200 ARM: dts: nitrogen6x: add CAN support Regulator stuff copied from imx6qdl-tx6.dtsi, pin configuration taken from Boundary Devices linux kernel tree ([1] and [2]). [1] https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.2_ga/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi [2] https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.2_ga/arch/arm/boot/dts/imx6qdl.dtsi Signed-off-by: Peter Seiderer Tested-by: Eric Nelson Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 93db055d418386174347ca52ea4728c6ae2e00aa Author: Frank Li Date: Wed May 27 00:26:02 2015 +0800 ARM: dts: imx6sx: enable snvs power key enable snvs ONOFF power key support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx6sx.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit 943304b3fb54adc5f2ec85d1679c7b2b8d908346 Author: Arjun Krishna Babu Date: Sat Jun 20 12:46:50 2015 +0800 staging: vt6656: Fixed two lines over 80 characters long The presence of comments originally caused the two lines to be over 80 characters long. The issue is fixed by moving the comments into a separate line. Signed-off-by: Arjun Krishna Babu Signed-off-by: Greg Kroah-Hartman drivers/staging/vt6656/rxtx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 6f5f9bc9a8a84e447bd0e93c071e34cfa9db815a Author: Frank Li Date: Fri May 29 03:40:57 2015 +0800 ARM: dts: imx7d: add watch dog support Enable watchdog support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/boot/dts/imx7d.dtsi | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit a1560f9bec8b9275a751bd39a1db791d2c73d6e5 Author: Henri Chain Date: Tue Jul 14 14:59:39 2015 +0200 Staging: fbtft: Add support for the Ultrachip UC1611 LCD controller This is a driver chip for 240x160 4-bit greyscale LCDs. It is capable of 4-wire (8 bit) or 3-wire (9 bit) SPI that have both been tested. (It also has a 6800 or 8080-style parallel interface, but I have not included support for it.) Signed-off-by: Henri Chain Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/Kconfig | 6 + drivers/staging/fbtft/Makefile | 1 + drivers/staging/fbtft/fb_uc1611.c | 350 +++++++++++++++++++++++++++++++++++ drivers/staging/fbtft/fbtft_device.c | 31 ++++ 4 files changed, 388 insertions(+) commit cc28791d5ece61eaa78e7b9bbc3ac1d14f664683 Author: Frank Li Date: Wed May 27 00:26:01 2015 +0800 Document: devicetree: input: imx: i.mx snvs power device tree bindings The snvs-pwrkey is designed to enable POWER key function which controlled by SNVS ONOFF. the driver can report the status of POWER key and wakeup system if pressed after system suspend. Signed-off-by: Frank Li Signed-off-by: Robin Gong Signed-off-by: Shawn Guo .../devicetree/bindings/crypto/fsl-sec4.txt | 49 ++++++++++++++++++++++ .../devicetree/bindings/input/snvs-pwrkey.txt | 1 + 2 files changed, 50 insertions(+) commit d3dc6e2322155087c19a1d6a71818be534de0602 Author: Robin Gong Date: Wed May 27 00:26:00 2015 +0800 input: keyboard: imx: add snvs power key driver add snvs power key driver. It work in imx chips after i.mx6sx ON/OFF key used power on/off whole system. This driver make it wakeup from suspend state when short press ON/OFF key. Long time press will trig SNVS power off chip without software intervention. Signed-off-by: Robin Gong Signed-off-by: Frank Li Acked-by: Dmitry Torokhov Signed-off-by: Shawn Guo drivers/input/keyboard/Kconfig | 11 ++ drivers/input/keyboard/Makefile | 1 + drivers/input/keyboard/snvs_pwrkey.c | 227 +++++++++++++++++++++++++++++++++++ 3 files changed, 239 insertions(+) commit 4fcb7dfd827d7d12ffc612fbc67769e002a482e4 Author: Frank Li Date: Wed May 27 00:25:58 2015 +0800 Document: dt: fsl: snvs: change support syscon snvs actually is multi fucntion driver. Change to use syscon to access register. Change snvs parent interrupt to option because single function may have seperated irq number. Signed-off-by: Frank Li Signed-off-by: Shawn Guo .../devicetree/bindings/crypto/fsl-sec4.txt | 42 +++++++++++++++------- 1 file changed, 29 insertions(+), 13 deletions(-) commit dc4b2068934d6562048393d4531b9983df41b14e Author: Noralf Trønnes Date: Sat Jul 11 18:57:04 2015 +0200 staging: fbtft: Add reset to fbtft_init_display_dt() When an init sequence is present in the Device Tree, fbtft_init_display_dt() is used to initialize the display. Add missing reset function call and activation of chip select for parallel bus. Signed-off-by: Noralf Trønnes Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/fbtft-core.c | 5 +++++ 1 file changed, 5 insertions(+) commit a1bf5205b2f013134ac55b02b3384502f21daa5e Author: Fabio Falzoi Date: Tue Jun 30 08:43:17 2015 +0200 Staging: fbtft: Fix spacing coding style issue This patch fixes the following checkpatch.pl error: CHECK:SPACING at line 318. Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4906c43a342f864ca93f85aecab0d2f5d6689668 Author: Fabio Falzoi Date: Tue Jun 30 08:43:16 2015 +0200 Staging: fbtft: Fix parenthesis alignment coding style issue This patch fixes the following checkpatch.pl error: CHECK:PARENTHESIS_ALIGNMENT at line 217. Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit df127f13c2342eef93298874713947adce8168ad Author: Fabio Falzoi Date: Tue Jun 30 08:43:09 2015 +0200 Staging: fbtft: Remove unnecessary multiple blank lines This patch removes some unnecessary multiple blank lines to fix the following checkpatch errors: CHECK:LINE_SPACING at lines 29, 67, 131, 287, 299, 312, 326, 351 and 364. Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 11 ----------- 1 file changed, 11 deletions(-) commit f0a2db08e31071946c421a0ba0bb99e8273d2808 Author: Fabio Falzoi Date: Tue Jun 30 08:43:08 2015 +0200 Staging: fbtft: Remove paragraph about writing to FSF Remove paragraph about writing to the Free Software Foundation's mailing address from GPL notice. This patch fixes the following checkpatch error: CHECK:FSF_MAILING_ADDRESS at line 17. Signed-off-by: Fabio Falzoi Signed-off-by: Greg Kroah-Hartman drivers/staging/fbtft/flexfb.c | 4 ---- 1 file changed, 4 deletions(-) commit d482893b1caa5345b066c9721bab6636059e2a61 Author: Frank Li Date: Wed May 27 00:25:57 2015 +0800 rtc: snvs: use syscon to access register snvs included rtc, on/off key, power-off module change to syscon to access register Signed-off-by: Frank Li Acked-by: Alexandre Belloni Signed-off-by: Shawn Guo drivers/rtc/rtc-snvs.c | 132 +++++++++++++++++++++++++------------------------ 1 file changed, 67 insertions(+), 65 deletions(-) commit 24ac1074c1dad1bdc455f8f6df5c5316fae53eb7 Author: Tim Sell Date: Tue Jul 14 14:43:30 2015 -0400 staging: unisys: fix random hangs with network stress in visornic We learned that it was possible for the core networking code to call visornic_xmit() within ISR context, resulting in the need for us to use spin_lock_irqsave() / spin_lock_irqrestore() to lock accesses to our virtual device channels. Without the correct locking added in this patch, random hangs would occur on typical kernels while stressing the netork. When using a kernel with CONFIG_DEBUG_SPINLOCK=y, a stackdump would occur at the time of the hang reporting: BUG: spinlock recursion on CPU#0, vnic_incoming/ (see below for more details) We considered the possibility of adding a protocol between a visordriver and visorbus where the visordriver could specify which type of locking it required for its virtual device channels (essentially indicating whether or not it was possible for the channel to be accessed in ISR context), but decided this extra complexity was NOT needed, and that channel queues should always be accessed with the most-stringent locking. So that is what is implemented in this commit. Below is an example stackdump illustrating the spinlock recursion that is fixed by this commit. Note that we are first in virtnic_rx() writing to the device channel when an APIC timer interrupt occurs. Within the core networking code, net_rx_action() calls process_backlog(), which eventually lands up back up in virtnic_xmit() in the code attempting to also write to the device channel. BUG: spinlock recursion on CPU#0, vnic_incoming/262 lock: 0xffff88002db810c0, .magic: dead4ead, .owner: vnic_incoming/262, .owner_cpu: 0 CPU: 0 PID: 262 Comm: vnic_incoming Tainted: G C 4.2.0-rc1-ARCH+ #56 Hardware name: Dell Inc. PowerEdge T110/ , BIOS 1.23 12/15/2009 ffff8800216ac200 ffff88002c803388 ffffffff81476364 0000000000000106 ffff88002db810c0 ffff88002c8033a8 ffffffff8109e2bc ffff88002db810c0 ffffffff817631d4 ffff88002c8033c8 ffffffff8109e330 ffff88002db810c0 Call Trace: [] dump_stack+0x4f/0x73 [] spin_dump+0x7c/0xc0 [] spin_bug+0x30/0x40 [] do_raw_spin_lock+0x127/0x140 [] _raw_spin_lock+0x40/0x50 [] ? visorchannel_signalinsert+0x46/0x70 [visorbus] [] visorchannel_signalinsert+0x46/0x70 [visorbus] [] visornic_xmit+0x302/0x5d0 [visornic] [] dev_hard_start_xmit+0x2e0/0x510 [] ? validate_xmit_skb+0x235/0x310 [] sch_direct_xmit+0xf7/0x1d0 [] __dev_queue_xmit+0x203/0x640 [] ? __dev_queue_xmit+0x50/0x640 [] ? ip_finish_output+0x1df/0x310 [] dev_queue_xmit_sk+0x13/0x20 [] ip_finish_output2+0x22c/0x470 [] ? ip_finish_output+0x1df/0x310 [] ? __lock_is_held+0x50/0x70 [] ip_finish_output+0x1df/0x310 [] ip_output+0xb1/0x100 [] ip_local_out_sk+0x3e/0x80 [] ip_queue_xmit+0x188/0x4a0 [] ? ip_local_out_sk+0x80/0x80 [] ? __alloc_skb+0x86/0x1e0 [] tcp_transmit_skb+0x4cb/0x9c0 [] ? __kmalloc_reserve+0x3c/0x90 [] ? __alloc_skb+0x9a/0x1e0 [] tcp_send_ack+0x10d/0x150 [] __tcp_ack_snd_check+0x5e/0x90 [] tcp_rcv_established+0x354/0x710 [] tcp_v4_do_rcv+0x162/0x3f0 [] tcp_v4_rcv+0xb22/0xb50 [] ? ip_local_deliver_finish+0x4c/0x2d0 [] ip_local_deliver_finish+0xe0/0x2d0 [] ? ip_local_deliver_finish+0x4c/0x2d0 [] ip_local_deliver+0xae/0xc0 [] ip_rcv_finish+0x14f/0x510 [] ? __netif_receive_skb_core+0x9d/0xb70 [] ip_rcv+0x2d3/0x3b0 [] ? cpuacct_css_alloc+0xb0/0xb0 [] __netif_receive_skb_core+0x663/0xb70 [] ? __netif_receive_skb_core+0x9d/0xb70 [] ? cpuacct_charge+0x99/0xb0 [] ? cpuacct_css_alloc+0xb0/0xb0 [] ? __lock_is_held+0x50/0x70 [] ? process_backlog+0xbc/0x150 [] ? process_backlog+0x11b/0x150 [] __netif_receive_skb+0x27/0x70 [] process_backlog+0x92/0x150 [] net_rx_action+0x13d/0x350 [] ? lapic_next_event+0x1d/0x30 [] __do_softirq+0x104/0x320 [] ? hrtimer_interrupt+0xc8/0x1a0 [] ? blocking_notifier_chain_cond_register+0x70/0x70 [] irq_exit+0x79/0xa0 [] smp_apic_timer_interrupt+0x4a/0x60 [] apic_timer_interrupt+0x68/0x70 [] ? __memcpy+0x12/0x20 [] ? visorchannel_write+0x4a/0x80 [visorbus] [] signalinsert_inner+0x88/0x130 [visorbus] [] visorchannel_signalinsert+0x55/0x70 [visorbus] [] visornic_rx+0x12e7/0x19d0 [visornic] [] process_incoming_rsps+0x289/0x690 [visornic] [] ? preempt_schedule+0x25/0x30 [] ? ___preempt_schedule+0x12/0x14 [] ? wait_woken+0x90/0x90 [] ? visornic_rx+0x19d0/0x19d0 [visornic] [] ? visornic_rx+0x19d0/0x19d0 [visornic] [] kthread+0xe9/0x110 [] ? __init_kthread_worker+0x70/0x70 [] ret_from_fork+0x3f/0x70 [] ? __init_kthread_worker+0x70/0x70 Fixes: b12fdf7da ('staging: unisys: rework signal remove/insert to avoid sparse lock warnings') Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit a3ef1a8e93912396f3bd46d579c9241c399de530 Author: David Kershner Date: Tue Jul 14 14:43:29 2015 -0400 staging: unisys: Lock visorchannels associated with devices A visorchannel associated with a device should have its writing to the channel protected by a lock. Fixes: b32c4997c ('staging: unisys: Move channel creation up the stack') Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: David Kershner Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 216c3e2c135e69dc8cc93ca9bd2c03300910f44f Author: Christophe JAILLET Date: Mon Jul 13 20:52:26 2015 +0200 staging: unisys: Reduce indent Remove some extra tabs in order to improve readalibility. Signed-off-by: Christophe JAILLET Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 49 ++++++++++++------------- 1 file changed, 24 insertions(+), 25 deletions(-) commit 0aa5ae1e2eed3f57ff1dfd7cd057aaff5d9c1d9f Author: Christophe JAILLET Date: Mon Jul 13 20:51:32 2015 +0200 staging: unisys: Use kzalloc instead of kmalloc/memset This patch turns a kmalloc/memset into an equivalent kzalloc. Signed-off-by: Christophe JAILLET Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d253058f490febdfdbe0a0f09a25166c71afd2b3 Author: Tim Sell Date: Mon Jul 13 14:51:24 2015 -0400 staging: unisys: fix random memory corruption in visorchannel_write() visorchannel_write() and it's user visorbus_write_channel() are exported, so all visorbus function drivers (i.e., drivers that call visorbus_register_visor_driver()) are potentially affected by the bug. Because of pointer-arithmetic rules, the address being written to in the affected code was actually at byte offset: sizeof(struct channel_header) * offset instead of just bytes as intended. The bug could cause some very difficult-to-diagnose symptoms. The particular problem that led me on this chase was a kernel fault that would occur during 'insmod visornic' after a previous 'rmmod visornic', where we would fault during netdev_register_kobject() within pm_runtime_set_memalloc_noio() while traversing a device list, which occurred because dev->parent for the visorbus device had become corrupted. Fixes: 0abb60c1c ('staging: unisys: visorchannel_write(): Handle...') Signed-off-by: Tim Sell Acked-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchannel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fd012d0def470d6c2e1a441421d00404240e7fec Author: Tim Sell Date: Mon Jul 13 14:51:23 2015 -0400 staging: unisys: correctly NULL-terminate visorbus sysfs attribute array I'm not sure what adverse runtime effects the previously-omitted NULL-termination would cause, but the code was definitely wrong. Fixes: 795731627c ('staging: unisys: Clean up device sysfs attributes') Signed-off-by: Tim Sell Acked-by: Don Zickus Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorbus_main.c | 1 + 1 file changed, 1 insertion(+) commit 2164be191e3d627dd7744b7224daf9ad9495c9af Author: Ken Cox Date: Thu Jul 9 13:28:56 2015 -0400 staging: unisys: Fix broken build when ARCH=um When building with ARCH=um you get the following error: arch/x86/include/asm/cpufeature.h:252:42: error: 'REQUIRED_MASK0' undeclared The Unisys drivers should not be compiled for UML, so this patch addresses that by adding a dependency to kconfig for !UML. Reported-by: kbuild test robot Tested-by: Ken Cox Signed-off-by: Ken Cox Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1fc07f99134ba0b8d4099322ea0753137ea7ed3b Author: David Kershner Date: Thu Jul 9 13:27:53 2015 -0400 staging: unisys: Allow visorbus to autoload We inadvertently remove the MODULE_DEVICE_TABLE line for visorbus, this patch adds it back in. Signed-off-by: David Kershner Signed-off-by: Benjamin Romer Fixes: d5b3f1dccee4 ('staging: unisys: move timskmod.h functionality') Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 3 +++ 1 file changed, 3 insertions(+) commit 8d0119d8e81f93cf3c1bc2b6e7a39e28620cda1a Author: Tim Sell Date: Thu Jul 9 13:27:52 2015 -0400 staging: unisys: visornic: prevent erroneous kfree of devdata pointer A struct visornic_devdata for each visornic device is actually allocated as part of alloc_etherdev(), here in visornic_probe(): netdev = alloc_etherdev(sizeof(struct visornic_devdata)); But code in devdata_release() was treating devdata as a pointer that needed to be kfree()d! This was causing all sorts of weird behavior after doing an rmmod of visornic, both because free_netdev() was actually freeing the memory used for devdata, and because devdata wasn't pointing to dynamically-allocated memory in the first place. The kfree(devdata) and the kref that tracked devdata's usage have been appropriately deleted. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) commit 051e9fbbba1594331a9b3b2b157b5a0ce54b9a43 Author: Tim Sell Date: Thu Jul 9 13:27:51 2015 -0400 staging: unisys: visornic: use preferred interface for setting netdev's parent Just switch this line so it uses the correct function call. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1a2e3e3d0992ced8eeb4cfbf228f617ad08afbf1 Author: Tim Sell Date: Thu Jul 9 13:27:50 2015 -0400 staging: unisys: visornic: delay start of worker thread until netdev created This only makes sense, since the worker thread depends upon the netdev existing. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 3798ff31d1fb1ee33de619ffc81a6a56c3ccb973 Author: Tim Sell Date: Thu Jul 9 13:27:49 2015 -0400 staging: unisys: visornic: don't destroy global workqueues until devs destroyed visornic_cleanup() was previously incorrectly destroying its global workqueues prior to cleaning up the devices which used them. This patch corrects the order of these operations. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 46df82267eb26f4f6859e1564dbc9580f57dc542 Author: Tim Sell Date: Thu Jul 9 13:27:48 2015 -0400 staging: unisys: visornic: correctly clean up device on removal visornic_remove() is called to logically detach the visornic driver from a visorbus-supplied device, which can happen either just prior to a visorbus-supplied device disappearing, or as a result of an rmmod of visornic. Prior to this patch, logic was missing to properly clean up for this removal, which was fixed via the following changes: * A going_away flag is now used to interlock between device destruction and workqueue operations, protected by priv_lock. I.e., setting going_away=true under lock guarantees that no new work items can get queued to the work queues. going_away=true also short-circuits other operations to enable device destruction to proceed. * Missing clean-up operations for the workqueues, netdev, debugfs entries, and the worker thread were added. * Memory referenced from the visornic private devdata struct is now freed as part of devdata destruction. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 65 ++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) commit fa15d6d3466390faae884dca45c7c21255c30f3c Author: Tim Sell Date: Thu Jul 9 13:27:47 2015 -0400 staging: unisys: visornic: correct obvious double-allocation of workqueues Looks like an errant patch fitting caused us to redundantly allocate the workqueues at both the beginning and end of visornic_init(). This was corrected by removing the allocations at the beginning. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Fixes: 68905a14e49c ('staging: unisys: Add s-Par visornic ethernet driver') Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 12 ------------ 1 file changed, 12 deletions(-) commit 00748b0c69becb3fc4e520a3f9047b46d3bffe2c Author: Tim Sell Date: Thu Jul 9 13:27:46 2015 -0400 staging: unisys: add error messages to visornic Add error message to genuine rare error paths, and debug messages to enable relatively non-verbose tracing of code paths You can enable debug messages by including this on the kernel command line: visornic.dyndbg=+p or by this from the command line: echo "module visornic +p" > /dynamic_debug/control Refer to Documentation/dynamic-debug-howto.txt for more details. In addition to the new debug and error messages, a message like the following will be logged every time a visornic device is probed, which will enable you to map back-and-forth between visorbus device names (e.g., "vbus2:dev0") and netdev names (e.g., "eth0"): visornic vbus2:dev0: visornic_probe success netdev=eth0 With this patch and visornic debugging enabled, you should expect to see messages like the following in the most-common scenarios: * driver loaded: visornic_init * device probed: visornic vbus2:dev0: visornic_probe visor_thread_start visor_thread_start success * network interface configured (ifconfig): net eth0: visornic_open net eth0: visornic_enable_with_timeout net eth0: visornic_enable_with_timeout success net eth0: visornic_open success Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 91 ++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 11 deletions(-) commit 46dfa3d83464c7ee694ff32761645c3e27fcfc48 Author: Tim Sell Date: Thu Jul 9 13:27:45 2015 -0400 staging: unisys: neglect to NULL rcvbuf pointer Neglect to NULL rcvbuf pointer array could result in faults later This problem would exhibit itself as a fault when when attempting to stop any visornic device (i.e., in visornic_disable_with_timeout() or visornic_serverdown_complete()) that had never been started (i.e., for which init_rcv_bufs() had never been called). Because the array of rcvbuf was never cleared to NULLs, we would mistakenly attempt to call kfree_skb() on garbage memory. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5deeea3379b2fc34d07cfb909b2905e9e1116615 Author: Tim Sell Date: Thu Jul 9 13:27:44 2015 -0400 staging: unisys: prevent faults in visornic_pause Prevent faults in visornic_pause, visornic_resume(), and visornic_remove() Prior to this patch, any call to visornic_pause(), visornic_resume(), or visornic_remove() would fault, due to dev_set_drvdata() never having been called to stash our struct visornic_devdata * into the device's drvdata. I.e., all calls to dev_get_drvdata() were returning NULL, meaning a fault was soon to follow. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 1 + 1 file changed, 1 insertion(+) commit d01da5eac098c4676dd5d296b5be5b0f988fc3c8 Author: Tim Sell Date: Thu Jul 9 13:27:43 2015 -0400 staging: unisys: visornic: correct visornic_pause Correct visornic_pause() to indicate completion asynchronously rather than in-line Previously, visornic_pause() (called to stop the device due to IOVM service partition recovery) was calling the passed complete_func() in-line, rather than delaying the calling until after the device had actually been stopped. The behavior has been corrected so that the calling of the complete_func() is now delayed until after the stopping of the device has been completed in visornic_serverdown_complete(), which runs asynchronously via the workqueue visornic_serverdown_workqueue. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visornic/visornic_main.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit d15a65be5542ab0c4792a54cf90419fbaf741791 Author: Tim Sell Date: Thu Jul 9 13:27:42 2015 -0400 staging: unisys: prevent faults processing messages Prevent faults processing messages for devices that no driver has yet registered to handle. Previously, code of the form: drv = to_visor_driver(dev->device.driver); if (!drv) goto away; was not having the desired intent, because to_visor_driver() was essentially returning garbage if its argument was NULL. The only existing case of this is in initiate_chipset_device_pause_resume(), which is called during IOVM service partition recovery. We were thus faulting when IOVM service partition recovery was initiated on a bus that had at least one device for which no function driver had registered (visorbus_register_visor_driver). Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/include/visorbus.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit addce19f58c52a03314e2d8a1e30708dabf9bf30 Author: Tim Sell Date: Thu Jul 9 13:27:41 2015 -0400 staging: unisys: respond to msgs post device_create Fix problem that prevents us from responding to any device message after device_create. By neglecting to NULL out pending_msg_hdr after the device_create response, we were effectively preventing any subsequent messages to the device from working, because device_epilog() will correctly bail out early if it sees that pending_msg_hdr is still set non-NULL, as that is an indicator to mean that an unanswered message is still outstanding. This problem was discovered as part of testing IOVM service partition recovery, because device_epilog() was in fact bailing out when it was called from my_device_changestate(), which of course prevented us from transitioning the device to the paused state. However, the incorrect behavior would occur for ANY subsequent command directed at the device, not just for changestate. Signed-off-by: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman drivers/staging/unisys/visorbus/visorchipset.c | 1 + 1 file changed, 1 insertion(+) commit a43abee7de3967b7a211ae17563e2e2db40c4f5d Author: Anders Fridlund Date: Thu Jul 9 14:45:22 2015 +0200 Staging: sm750fb: ddk750_dvi.h: Fix brace coding style issue This is a patch to the ddk750_dvi.h file that fixes up a brace error found by the checkpatch.pl tool Signed-off-by: Anders Fridlund Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_dvi.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit df525686865a79a44b39f7032cf94e625e894865 Author: Vinay Simha BN Date: Tue Jul 14 19:15:28 2015 +0530 staging: sm750fb: coding style global ERROR fixes kernel coding style fixes for below messages from scripts/checkpatch.pl ERROR: do not initialise globals to 0 or NULL Signed-off-by: Vinay Simha BN Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/ddk750_help.c | 6 +++--- drivers/staging/sm750fb/sm750.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) commit d5fca4035a59eb4b120b2ffd645f12508dfb2ed6 Author: Anatoly Stepanov Date: Mon Jun 29 02:44:04 2015 +0300 staging: sm750fb: add required spaces around C operators Add spaces according to checkpatch.pl messages: "ERROR: spaces required around that '=' (ctx:VxV)" "ERROR: need consistent spacing around '-' (ctx:WxV)" "ERROR: spaces required around that '?' (ctx:VxE)" "ERROR: need consistent spacing around '&' (ctx:VxW)" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 14a974c567aa30070f87ec6652c1727a0e03f11a Author: Anatoly Stepanov Date: Mon Jun 29 02:44:03 2015 +0300 staging: sm750fb: fix open brace in function declaration Fix according to checkpatch.pl message: "ERROR: open brace '{' following function declarations go on the next line" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 9a52ae2dd8c24a3ab53bb68ea2b5f94c11e3f5a8 Author: Anatoly Stepanov Date: Mon Jun 29 02:44:02 2015 +0300 staging: sm750fb: remove assignment from if condition Remove assignment from if condition according to checkpatch.pl message: "ERROR: do not use assignment in if condition" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 990e56663bc6012512fd32fc5e92c54bd58ed688 Author: Anatoly Stepanov Date: Mon Jun 29 02:44:01 2015 +0300 staging: sm750fb: fix 'switch and case' indentation Fix according to checkpatch.pl message: "ERROR: switch and case should be at the same indent" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 172 ++++++++++++++++++------------------- 1 file changed, 86 insertions(+), 86 deletions(-) commit 5e83e2832b86e76a273e197aae580b81541af352 Author: Anatoly Stepanov Date: Mon Jun 29 02:44:00 2015 +0300 staging: sm750fb: fix indentation in 'else' statements Fix indentation according to checkpatch.pl message: "ERROR: space required after that close brace '}'" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 4bcdffee2d9b9fddb617431bbd9231576eb4054b Author: Anatoly Stepanov Date: Mon Jun 29 02:43:59 2015 +0300 staging: sm750fb: put open brace on the previous line Fix open braces according to checkpatch.pl message: "ERROR: that open brace { should be on the previous line" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) commit e188ea325d2419164691d6347b4ff7a4128f64b6 Author: Anatoly Stepanov Date: Mon Jun 29 02:43:58 2015 +0300 staging: sm750fb: fix indentation of pointer operator Fix indentation of pointer operator '*' according to checkpatch.pl message: "ERROR: 'foo* bar' should be 'foo *bar' " Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 6d1b3d64cdc5f22452784ade42ebbc2382a7010e Author: Anatoly Stepanov Date: Mon Jun 29 02:43:57 2015 +0300 staging: sm750fb: insert space before open parenthesis Insert spaces before '(' according to checkpatch.pl message: "ERROR: space required before the open parenthesis" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 62 +++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit e0ded448d0b70e76a8d1111ae33ffeb68524fd91 Author: Anatoly Stepanov Date: Mon Jun 29 02:43:56 2015 +0300 staging: sm750fb: insert space between ')' and '{' Insert spaces according to checkpatch.pl message: "ERROR: space required before the open brace '{'" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) commit 29d87336d4fea45d53a14d33f2fc5d174a4bfd59 Author: Anatoly Stepanov Date: Mon Jun 29 02:43:55 2015 +0300 staging: sm750fb: remove trailing whitespaces Remove trailing whitespaces according to checkpatch.pl error message: "ERROR: trailing whitespace" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 202add2a04f6371ee493ff325ae466578c3bb2c5 Author: Anatoly Stepanov Date: Mon Jun 29 02:43:54 2015 +0300 staging: sm750fb: replace spaces with tabs Replace spaces with tabs according to checkpatch.pl error message: "ERROR: code indent should use tabs where possible" Signed-off-by: Anatoly Stepanov Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_hw.c | 70 +++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit 7211f6f72f6a7d0c0aaefe03f8c404f5e4704bec Author: Hari Prasath Gujulan Elango Date: Wed Jun 24 16:51:21 2015 +0000 staging: sm750fb: remove redundant __func__ in debug statement This patch removes the redundant __func__ from dynamic debug prints as the pr_xxx set of functions can be dynamically controlled to include function name.Also fix a typo in debug statement. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/sm750fb/sm750_accel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76945bf9ff8a2433f1efb777ec64475c1eec08ab Author: Catherine Sullivan Date: Mon Apr 27 14:57:22 2015 -0400 i40e/i40evf: Bump version to 1.3.6 for i40e and 1.3.2 for i40evf Bump. Change-ID: I84573d9fa51effc5b29bf5b8c74e3cc8b2673f48 Signed-off-by: Catherine Sullivan Tested-by: Jim Young 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 b2a75c5819ec910f430a2ff12fec6cce202899a0 Author: Anjali Singhai Jain Date: Mon Apr 27 14:57:20 2015 -0400 i40e: Refine an error message to avoid confusion Change a warning message to indicate what may have really happened when the init_shared_code call fails. Change-ID: I616ace40fed120d0dec86dfc91ab2d7cde466904 Signed-off-by: Anjali Singhai Jain Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3bbf0faa90cb8d541d8b2ce01610dcec6828bd00 Author: Faisal Latif Date: Mon Apr 27 14:57:19 2015 -0400 i40e/i40evf: Add support for pre-allocated pages for PD The i40e_add_pd_table_entry() routine is being modified to handle both cases where a backing page is passed and where backing page is allocated in i40e_add_pd_table_entry(). For PBLE resource management, it is more efficient for it to manage its backing pages. For VF, PBLE backing page addresses will be send to PF driver for PBLE resource. The i40e_remove_pd_bp() is also modified to not free pre-allocated pages and free only ones which were allocated in i40e_add_pd_table_entry(). Change-ID: Ie673f0403f22979e9406f5a94048dceb91bcf9a8 Signed-off-by: Faisal Latif Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_hmc.c | 30 +++++++++++++++++--------- drivers/net/ethernet/intel/i40e/i40e_hmc.h | 4 +++- drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c | 2 +- drivers/net/ethernet/intel/i40evf/i40e_hmc.h | 4 +++- 4 files changed, 27 insertions(+), 13 deletions(-) commit 44151cd32deb1074530f3beba51d535fa0887d9a Author: Mitch Williams Date: Mon Apr 27 14:57:17 2015 -0400 i40evf: add MAC address filter in open, not init During close, all of the MAC filters are cleared, so the driver would be unable to receive unicast packets after being closed and reopened. Add the adapter's "hardware" MAC address filter in open, not init. This ensures that the correct filter is present each time. Change-ID: I51a11e9c1200139dab6f66a5353bd38c7d26f875 Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 68ef169204e3a88ea4823645038d5496f66200f6 Author: Mitch Williams Date: Mon Apr 27 14:57:16 2015 -0400 i40evf: don't delete all the filters Due to an inverted conditional, the driver was marking all of its MAC filters for deletion every time set_rx_mode was called. Depending upon the timing of the calls to set_rx_mode and the processing of the admin queue, the driver would (accidentally) end up with a varying number of functional filters. Correct this logic so that MAC filters are added and removed correctly. Add a check for the driver's "hardware" MAC address so that this filter doesn't get removed incorrectly. Change-ID: Ib3e7c4a5b53df6835f164fe44cb778cb71f8aff8 Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5b8f8505d37c63d492391e5fafcd43332671b36b Author: Mitch Williams Date: Mon Apr 27 14:57:15 2015 -0400 i40e: un-disable VF after reset When a VF is disabled, there is no way for it to recover until either the PF driver is reloaded or SR-IOV is disabled and enabled. To correct this, enable the VF after a successful reset. Change-ID: I9e0788476c4d53d5407961b503febdfff2b8a7c6 Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 1 + 1 file changed, 1 insertion(+) commit 54f455eeb56c0ab92db87bed6bd767d206d9e743 Author: Mitch Williams Date: Mon Apr 27 14:57:14 2015 -0400 i40e: do a proper reset when disabling a VF The VF disable code was just whanging on the reset bit without properly cleaning up the VF, which would leave the VF in an indeterminate state from which it could not recover. Fix this by notifying the VF and then by calling the normal VF reset routine. Change-ID: I862b9dfa919368773cbdc212b805b520db2f7430 Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit e995163cdcf9b70c7840a8d6a7ea7c0ce81c761b Author: Mitch Williams Date: Mon Apr 27 14:57:13 2015 -0400 i40e: correctly program filters for VFs MAC filters for VFs were being programmed with 0 for the VLAN value when there was no VLAN assigned. This is incorrect and actually assigns the VF to VLAN 0. Instead, we must use -1 to indicate that no VLAN is in use. This change programs the filters correctly and gets rid of a bogus error message when setting a port VLAN on an active VF. Change-ID: Ica9a9906d768405377ff3308e27f7d0b5b2ea96e Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit cb2f65bc0c64015e8fa45fe1065ad241bf31a994 Author: Greg Rose Date: Mon Apr 27 14:57:12 2015 -0400 i40e/i40evf: Update the admin queue command header Make the necessary updates to i40e_adminq_cmd.h. Change-ID: Ib031c86cc6cab78e5aa44c64d8ce5474be8d7e42 Signed-off-by: Greg Rose Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 24 ++++++++++++---------- .../net/ethernet/intel/i40evf/i40e_adminq_cmd.h | 18 +++++++--------- 2 files changed, 20 insertions(+), 22 deletions(-) commit 9df70b66418e284dc1e7f272ac445c1d1e990b97 Author: Carolyn Wyborny Date: Mon Apr 27 14:57:11 2015 -0400 i40e: Remove incorrect #ifdef's This patch removes some #ifdef's that should not be there. They were stopping code that is needed from being compiled in. With these #ifdef's removed, changes are needed in the driver to fix some compile errors: adding missing parameters to the definition of ndo_bridge_setlink and a ndo_dflt_brige_getlink call. Change-ID: I5516614e1bc50b6bca0647cef971bc96161ba2de Signed-off-by: Carolyn Wyborny Signed-off-by: Catherine Sullivan Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 85927ec1b369c880407aa82eba70d49c04c35062 Author: Mitch Williams Date: Mon Apr 27 14:57:10 2015 -0400 i40e: ignore duplicate port VLAN requests If user attempts to set a port VLAN on a VF that already has the same port VLAN configured, the driver will go through a completely unnecessary flurry of filter removals and filter adds. Just check for this condition and return success instead of doing a bunch of busywork. Change-ID: Ia1a9e83e6ed48b3f4658bc20dfc6af0cf525d54a Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 4 ++++ 1 file changed, 4 insertions(+) commit 973371da4d66b96736143bd3f2b2ff2331faae8f Author: Mitch Williams Date: Mon Apr 27 14:57:09 2015 -0400 i40evf: Allow for an abundance of vectors The driver currently only maps TX and RX queues to a single MSI-X vector per queue pair if there are exactly enough vectors for this. Unfortunately, if we have too many vectors it will fail and allocate queues to vectors in a suboptimal manner. Change the condition check to allow for excess vectors. In this case, the extras just won't be used. Change-ID: I23e1e2955c64739c86612db88a25583e6a7e0b17 Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40evf/i40evf_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 489ce7a46306052ab4ef26c6305051c5f1b24bb4 Author: Jesse Brandeburg Date: Mon Apr 27 14:57:08 2015 -0400 i40e/i40evf: improve Tx performance with a small tweak Add a prefetch for the next Tx descriptor to be used when we know there are more coming. Change-ID: Ibb9acab11d508eec2db7da795df74debc16eeacb Signed-off-by: Jesse Brandeburg Tested-by: Jim Young 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, 4 insertions(+) commit c78b953e0f189824f5eaa2d60123cfd12ea6db0d Author: Pawel Orlowski Date: Wed Apr 22 19:34:06 2015 -0400 i40e/i40evf: Update Flex-10 related device/function capabilities The Flex10 device/function capability has been upgraded to include information needed to support Flex-10 configurations. This patch adds new fields to the i40e_hw_capabilities structure and updates i40e_parse_discover_capabilities functions to extract them from the AQ response. Naming convention has changed to use flex10 mode instead of existing mfp_mode_1. Change-ID: I305dd888866985a30293acb3fb14fa43ca6b79ea Signed-off-by: Pawel Orlowski Signed-off-by: Akeem G Abodunrin Signed-off-by: Shannon Nelson Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_common.c | 24 +++++++++++++++++++----- drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +- drivers/net/ethernet/intel/i40e/i40e_type.h | 12 +++++++++++- drivers/net/ethernet/intel/i40evf/i40e_type.h | 12 +++++++++++- 4 files changed, 42 insertions(+), 8 deletions(-) commit d0389e51fc9b3c74e7935ded5d22eab4ea004589 Author: Anjali Singhai Jain Date: Wed Apr 22 19:34:05 2015 -0400 i40e/i40evf: Add stats to track FD ATR and SB dynamic enable state Since the driver can dynamically enable/disable FD ATR and SB features, these stats help keep track of the current state and along with fd_flush count provide a means to debug what could be going on with the flow director filters. This will take away the need for being verbose in our debug logs with respect to FD. Change-ID: I29224f750fe6602391043655d18996570720377d Signed-off-by: Anjali Singhai Jain Tested-by: Jim Young Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 ++ drivers/net/ethernet/intel/i40e/i40e_main.c | 12 ++++++++++++ drivers/net/ethernet/intel/i40e/i40e_type.h | 2 ++ drivers/net/ethernet/intel/i40evf/i40e_type.h | 2 ++ 4 files changed, 18 insertions(+) commit f44a75e27d5eb4b1788f59c2bc185baaaf732f75 Author: Joe Stringer Date: Tue Apr 14 17:09:14 2015 -0700 i40e: Implement ndo_features_check() i40e supports UDP tunnel headers up to 80 bytes in length, so this adds a check to ensure that it doesn't try to offload packets that exceed that. Signed-off-by: Joe Stringer Signed-off-by: Jesse Gross Acked-by: Jesse Brandeburg Signed-off-by: Jeff Kirsher drivers/net/ethernet/intel/i40e/i40e_main.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 90e6f51da718fc982eafd3dd7d6c78b378f67136 Author: Santhosh Pai Date: Mon Jun 29 10:44:03 2015 +0100 staging: Comedi: comedi_fops: Fixed the return error code This patch fixes the checkpatch.pl warning: WARNING: ENOSYS means 'invalid syscall nr' and nothing else try_module_get fails when the reference count of the module is not allowed to be incremented ,and hence -ENXIO is returned indicating no device or address. [IA - combined two of santhosh's changes to the error return value!] Signed-off-by: santhosh pai Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0e0d311ebd589e65b8e5559e067d0dd109ac3434 Author: Ian Abbott Date: Tue Jul 7 17:06:52 2015 +0100 staging: comedi: use CAP_SYS_ADMIN instead of CAP_NET_ADMIN If the "comedi" module has been loaded with the "comedi_num_legacy_minors" module parameter set to a non-zero value, some reserved comedi devices get created. These can be attached to a low-level comedi driver using the `COMEDI_DEVCONFIG` ioctl command, which checks for the `CAP_SYS_ADMIN` capability. Of course, the comedi device needs to be opened before the ioctl command can be sent. If the comedi device is unattached, `comedi_open()` currently requires the `CAP_NET_ADMIN` capability. It makes more sense to just require the `CAP_SYS_ADMIN` capability here, so change it. For the curious, commit a8f80e8ff94e ("Networking: use CAP_NET_ADMIN when deciding to call request_module") changed this capability from `CAP_SYS_MODULE` to `CAP_NET_ADMIN`, even though it doesn't seem relevant here. The original `CAP_SYS_MODULE` capability was due to the function having some code to request a module using a "char-major-%i-%i" alias, but that was never compiled in and was removed by commit f30f2c2d417b ("staging: comedi: remove check for CONFIG_KMOD"). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_fops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4fff0fea6d8821b1e521b7d38ea6d69c47e21efc Author: Ian Abbott Date: Tue Jul 7 18:06:07 2015 +0100 staging: comedi: cb_pcimdas: add external analog output ranges The analog output range is not programmable, but the ranges for each of the two analog output channels are settable via jumpers. These jumper settings are not readable by the driver. The driver provides a range table containing all the possible internal ranges (+/-10V, +/-5V, 0-10V, 0-5V) to provide information to the user application (although any range selected by the application that differs from the jumper settings will not produce the expected voltage output). The range table does not cover all possible ranges of the analog output channels. The jumpers also allow an external reference voltage between 0 and 10V to be used as bipolar or unipolar output range. Add a couple more ranges to the end of the range table to define these two external ranges. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/cb_pcimdas.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 50f058a1900aa02fea93c6d47584eefc74fdd4ac Author: Geert Uytterhoeven Date: Mon Jul 6 15:41:18 2015 +0200 staging: comedi: Grammar s/Enable support a/Enable support for a/ Signed-off-by: Geert Uytterhoeven Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f73490e20261dbf543744bb3dc1ae6d6af0d80f Author: Geliang Tang Date: Mon Jun 22 23:33:42 2015 +0800 staging: comedi: fix cast warning in comedi_compat32.c This patch fixes the following sparse warning: drivers/staging/comedi/comedi_compat32.c:205:16: warning: cast removes address space of expression Signed-off-by: Geliang Tang Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/comedi_compat32.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 58a06a2a64930ad11cc398b0b00ae9817b9a821a Author: Luis de Bethencourt Date: Mon Jun 22 15:03:15 2015 +0200 staging: comedi: das16m1: fix lines over 80 characters Warnings found by checkpatch.pl WARNING: line over 80 characters /drivers/staging/comedi/drivers/das16m1.c:414 + if (devpriv->adc_count == 0 && hw_counter == devpriv->initial_hw_count) { /drivers/staging/comedi/drivers/das16m1.c:417 /drivers/staging/comedi/drivers/das16m1.c:418 /drivers/staging/comedi/drivers/das16m1.c:419 /drivers/staging/comedi/drivers/das16m1.c:420 /drivers/staging/comedi/drivers/das16m1.c:421 Signed-off-by: Luis de Bethencourt Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das16m1.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 21eaa3c23ac49c6a2b8f842412177a956711169a Author: Luis de Bethencourt Date: Mon Jun 22 15:02:36 2015 +0200 staging: comedi: das16m1: no space before tabs Warning found by checkpatch.pl WARNING: please, no space before tabs /drivers/staging/comedi/drivers/das16m1.c:83 + 404-407 ^I8254$ Signed-off-by: Luis de Bethencourt Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das16m1.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 71b9f42eac9722d8dc39a5b2771255e2a6214eee Author: Abdul Hussain Date: Mon Jun 22 06:11:13 2015 +0000 Staging: comedi: s626: Simplify a trivial if-return sequence This patch simplify a trivial if-return sequence. Possibly combine with a preceding function call. Signed-off-by: Abdul Hussain Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/s626.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit ac7e62914cf5d31d31948d3f2b085e80e515a7cc Author: Abdul Hussain Date: Mon Jun 22 06:11:09 2015 +0000 Staging: comedi: ni_daq_dio24: Simplify a trivial if-return sequence This patch simplify a trivial if-return sequence. Possibly combine with a preceding function call. Signed-off-by: Abdul Hussain Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/ni_daq_dio24.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 2b2dae3da36dd2bcbf6c2171dba8a51a7b42673a Author: Abdul Hussain Date: Mon Jun 22 06:11:06 2015 +0000 Staging: comedi: dac02: Simplify a trivial if-return sequence This patch simplify a trivial if-return sequence. Possibly combine with a preceding function call. Signed-off-by: Abdul Hussain Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/dac02.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 11b22e1465e25dbbf29c7df30ba20497d91c63f2 Author: Abdul Hussain Date: Mon Jun 22 06:10:59 2015 +0000 Staging: comedi: fl512: Simplify a trivial if-return sequence This patch simplify a trivial if-return sequence. Possibly combine with a preceding function call. Signed-off-by: Abdul Hussain Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/fl512.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit fa4c586e17dc1f5402235e4a78399ebc2026c435 Author: Abdul Hussain Date: Mon Jun 22 06:10:56 2015 +0000 Staging: comedi: dmm32at: Simplify a trivial if-return sequence This patch simplify a trivial if-return sequence. Possibly combine with a preceding function call. Signed-off-by: Abdul Hussain Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/dmm32at.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 55ff2c6972e96acc3fd12be33ac7ac2fa17f1b0d Author: Luis de Bethencourt Date: Mon Jun 22 14:14:35 2015 +0200 staging: comedi: das08_cs: don't split Author string fixes checkpatch.pl WARNING: quoted string split across lines +MODULE_AUTHOR("David A. Schleef , " + "Frank Mori Hess "); Modules with multiple authors have a MODULE_AUTHOR line for each one. Signed-off-by: Luis de Bethencourt Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman drivers/staging/comedi/drivers/das08_cs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6cec276808bc0a4ac5fc3ab9e42a1b5d1e3e9cc4 Author: Kuninori Morimoto Date: Tue Jul 14 04:57:34 2015 +0000 ARM: shmobile: defconfig: add Renesas DPCM Sound Card This patch enables DPCM related sound card. It is used for... - Sampline rate convert - CTU/MIXer Note: you need to enable these settings on DTS file Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) commit 18f88d22e4167a658091fe020beef723cefe86dd Author: Kuninori Morimoto Date: Tue Jul 14 04:57:05 2015 +0000 ARM: shmobile: koelsch: add sound label on DTS It is easy to modify settings for Test or other purpose if sound has label Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30be0ba5f92c9a728bf3b3f41dbf3240eb3bbc11 Author: Kuninori Morimoto Date: Tue Jul 14 04:56:10 2015 +0000 ARM: shmobile: lager: add sound label on DTS It is easy to modify settings for Test or other purpose if sound has label Signed-off-by: Kuninori Morimoto Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790-lager.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c53b0c92a829fe804f2f5f749ebc907658ebcf75 Author: Wolfram Sang Date: Sat Jul 11 09:46:26 2015 +0200 ARM: shmobile: emev2: kzm9d: enable IIC busses Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/emev2-kzm9d.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit cd42d042a2e712a7f9880f860075815539ce4baf Author: Wolfram Sang Date: Sat Jul 11 09:46:25 2015 +0200 ARM: shmobile: emev2: add IIC cores to dtsi Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/boot/dts/emev2.dtsi | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit 4ef299d7dd51f4081618446a420f500e7f7e5d1b Author: Krzysztof Kozlowski Date: Fri Jul 10 15:38:26 2015 +0900 PCI: xgene: Drop owner assignment from platform_driver platform_driver_register() automatically supplies THIS_MODULE, so we don't need to set it in the platform_driver struct. Remove the xgene_msi_driver.owner assignment. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Bjorn Helgaas drivers/pci/host/pci-xgene-msi.c | 1 - 1 file changed, 1 deletion(-) commit cef853810edcfffb9203b59637eebb916cfaa759 Author: Guillermo O. Freschi Date: Sun Jun 21 05:28:55 2015 -0300 staging: android: ion_chunk_heap.c: Fixed line over 80 characters Simple style fix. Signed-off-by: Guillermo O. Freschi Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion_chunk_heap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5605b188833fc60c297e0a3927e274349a172f59 Author: Dmitry Kalinkin Date: Mon Jul 13 15:50:30 2015 +0300 staging: android: ion: reorder variable definitions Prevents false positive "missing empty line after a definition" checkpatch warning. Signed-off-by: Dmitry Kalinkin Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman drivers/staging/android/ion/ion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4229fb12a03e5da5882b420b0aa4a02e77447b86 Author: Max Filippov Date: Sat Jul 4 15:27:39 2015 +0300 xtensa: fix threadptr reload on return to userspace Userspace return code may skip restoring THREADPTR register if there are no registers that need to be zeroed. This leads to spurious failures in libc NPTL tests. Always restore THREADPTR on return to userspace. Cc: stable@vger.kernel.org Signed-off-by: Max Filippov arch/xtensa/kernel/entry.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit ffb4d602623aef9eb813a35b87b20854c030a2ec Author: Bjorn Helgaas Date: Wed Jun 24 16:05:54 2015 -0500 PCI: Add pcie_downstream_port() (true for Root and Switch Downstream Ports) As used in the PCIe spec, "Downstream Port" includes both Root Ports and Switch Downstream Ports. We sometimes checked for PCI_EXP_TYPE_DOWNSTREAM when we should have checked for PCI_EXP_TYPE_ROOT_PORT or PCI_EXP_TYPE_DOWNSTREAM. For a Root Port without a slot, the effect of this was that using pcie_capability_read_word() to read PCI_EXP_SLTSTA returned zero instead of showing the Presence Detect State bit hardwired to one as the PCIe Spec, r3.0, sec 7.8, requires. (This read is completed in software because previous PCIe spec versions didn't require PCI_EXP_SLTSTA to exist at all.) Nothing in the kernel currently depends on this (pciehp only reads PCI_EXP_SLTSTA on ports with slots), so this is a cleanup and not a functional change. Add a pcie_downstream_port() helper function and use it. Signed-off-by: Bjorn Helgaas Acked-by: Rafael J. Wysocki drivers/pci/access.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit aad0d51e933f8656880592020319d2dbd09532a2 Author: Sergei Shtylyov Date: Fri Jul 10 21:10:10 2015 +0300 ravb: kill useless initializers Some of the local variable intializers in the driver turned out to be pointless, kill them. Signed-off-by: Sergei Shtylyov Signed-off-by: David S. Miller drivers/net/ethernet/renesas/ravb_main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit badb7f5e8bddf74a2f2dcc7d9d88accabfc000f5 Author: Lai Jiangshan Date: Wed Jul 1 15:38:04 2015 +0800 workqueue: add myself as a dedicated reviwer I am one of the dedicated reviwers of workqueue.c. Now I add myself to the MAINTAINERS entry with the updated email address. The old laijs@cn.fujitsu.com will be ended soon. Signed-off-by: Lai Jiangshan Signed-off-by: Lai Jiangshan Signed-off-by: Tejun Heo MAINTAINERS | 1 + 1 file changed, 1 insertion(+) commit 83cb8557e8d2c8e5eddc64840c437299343a7960 Author: Tejun Heo Date: Fri Jun 26 17:21:28 2015 -0400 percpu: update incorrect comment for this_cpu_*() operations this_cpu_*() ops have been protected against both preemption and interrupts for quite a while now. We apparently forgot to update the comment. Fix it. Signed-off-by: Tejun Heo Cc: Christoph Lameter include/linux/percpu-defs.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 5dbc247c2a11f6b9febb854a55be5ae6be720df6 Author: Geert Uytterhoeven Date: Tue Jun 23 14:55:13 2015 +0200 ata: sata_rcar: Remove obsolete sata-r8a779* 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. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Tejun Heo drivers/ata/sata_rcar.c | 4 ---- 1 file changed, 4 deletions(-) commit a5cb88804d51b9d272d1d15ea348a244ba4d26c3 Author: Markus Elfring Date: Tue Jul 14 09:35:42 2015 +0200 staging: lustre: Deletion of unnecessary checks before three function calls The following functions test whether their argument is NULL and then return immediately. * kfree * ll_file_data_put * ptlrpc_connection_put Thus the test around such calls is not needed. This issue was detected by using the Coccinelle software. See also a previous update suggestion: "remove unneeded null test before free" by Julia Lawall https://lkml.org/lkml/2015/5/1/498 https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg878600.html Signed-off-by: Markus Elfring Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/file.c | 3 +-- drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 6 ++---- drivers/staging/lustre/lustre/ptlrpc/service.c | 4 +--- 4 files changed, 5 insertions(+), 10 deletions(-) commit 5f37ac9343db1d0d3a9028d963eafe834053a0fb Author: Lukasz Janyst Date: Tue Jul 14 17:22:21 2015 +0200 staging: lustre: fix whitespace coding style issues in libcfs/module.c This is a patch to the libcfs/module.c file fixing whitespace warnings found by checkpatch.pl. Signed-off-by: Lukasz Janyst Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/module.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 917d8e2d10f40e28aa9e0d824b2e5b8197d79fc2 Author: Aleksa Sarai Date: Sat Jun 13 03:21:58 2015 +1000 cgroup: add documentation for the PIDs controller Add documentation derived from kernel/cgroup_pids.c to the relevant Documentation/ directory, along with a few examples of how to use the PIDs controller as well an explanation of its peculiarities. Signed-off-by: Aleksa Sarai Signed-off-by: Tejun Heo Documentation/cgroups/00-INDEX | 2 + Documentation/cgroups/pids.txt | 85 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) commit 49b786ea146f69c371df18e81ce0a2d5839f865c Author: Aleksa Sarai Date: Tue Jun 9 21:32:10 2015 +1000 cgroup: implement the PIDs subsystem Adds a new single-purpose PIDs subsystem to limit the number of tasks that can be forked inside a cgroup. Essentially this is an implementation of RLIMIT_NPROC that applies to a cgroup rather than a process tree. However, it should be noted that organisational operations (adding and removing tasks from a PIDs hierarchy) will *not* be prevented. Rather, the number of tasks in the hierarchy cannot exceed the limit through forking. This is due to the fact that, in the unified hierarchy, attach cannot fail (and it is not possible for a task to overcome its PIDs cgroup policy limit by attaching to a child cgroup -- even if migrating mid-fork it must be able to fork in the parent first). PIDs are fundamentally a global resource, and it is possible to reach PID exhaustion inside a cgroup without hitting any reasonable kmemcg policy. Once you've hit PID exhaustion, you're only in a marginally better state than OOM. This subsystem allows PID exhaustion inside a cgroup to be prevented. Signed-off-by: Aleksa Sarai Signed-off-by: Tejun Heo CREDITS | 5 + include/linux/cgroup_subsys.h | 5 + init/Kconfig | 16 ++ kernel/Makefile | 1 + kernel/cgroup_pids.c | 366 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 393 insertions(+) commit 7e47682ea555e7c1edef1d8fd96e2aa4c12abe59 Author: Aleksa Sarai Date: Tue Jun 9 21:32:09 2015 +1000 cgroup: allow a cgroup subsystem to reject a fork Add a new cgroup subsystem callback can_fork that conditionally states whether or not the fork is accepted or rejected by a cgroup policy. In addition, add a cancel_fork callback so that if an error occurs later in the forking process, any state modified by can_fork can be reverted. Allow for a private opaque pointer to be passed from cgroup_can_fork to cgroup_post_fork, allowing for the fork state to be stored by each subsystem separately. Also add a tagging system for cgroup_subsys.h to allow for CGROUP_ enumerations to be be defined and used. In addition, explicitly add a CGROUP_CANFORK_COUNT macro to make arrays easier to define. This is in preparation for implementing the pids cgroup subsystem. Signed-off-by: Aleksa Sarai Signed-off-by: Tejun Heo include/linux/cgroup-defs.h | 10 +++++- include/linux/cgroup.h | 15 +++++++-- include/linux/cgroup_subsys.h | 23 ++++++++++++++ kernel/cgroup.c | 73 +++++++++++++++++++++++++++++++++++++++++-- kernel/cgroup_freezer.c | 2 +- kernel/fork.c | 17 ++++++++-- kernel/sched/core.c | 2 +- 7 files changed, 133 insertions(+), 9 deletions(-) commit 225f58fbcc02ace232fc49f05036042f9d58263e Author: Minfei Huang Date: Tue Jul 14 11:15:37 2015 +0800 livepatch: Improve error handling in klp_disable_func() In case of func->state or func->old_addr not having expected values, we'd rather bail out immediately from klp_disable_func(). This can't really happen with the current codebase, but fix this anyway in the sake of robustness. [jkosina@suse.com: reworded the changelog a bit] Signed-off-by: Minfei Huang Acked-by: Josh Poimboeuf Signed-off-by: Jiri Kosina kernel/livepatch/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 29e2d6d1f6f61ba2b5cc9d9867e01d8c31a6c4f7 Author: Ellen Wang Date: Thu Jul 9 22:04:31 2015 -0700 HID: cp2112: fix byte order in SMBUS operations Change all occurrences of be16 to le16 in cp2112_xfer(), because SMBUS words are little endian, not big endian. Signed-off-by: Ellen Wang Cc: stable@vger.kernel.org Signed-off-by: Jiri Kosina drivers/hid/hid-cp2112.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 93972d18bbaba6f34e21742400b6e7461edc4837 Author: Markus Elfring Date: Sun Jun 28 16:42:04 2015 +0200 PCI: iproc: Delete unnecessary checks before phy calls The functions phy_exit() and phy_power_off() test whether their argument is NULL and then return immediately. Thus the test around the calls is not needed. This issue was detected by using the Coccinelle software. [bhelgaas: also phy_init() and phy_power_on(), as Ray Jui suggested] [bhelgaas: also remove tests in iproc_pcie_remove()] Signed-off-by: Markus Elfring Signed-off-by: Bjorn Helgaas Reviewed-by: Ray Jui drivers/pci/host/pcie-iproc.c | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) commit 6ce12a977b7e484540482febe47d1e65f7427abf Author: SungEun Kim Date: Fri Jul 3 15:57:20 2015 +0900 PM / autosleep: Use workqueue for user space wakeup sources garbage collector The synchronous synchronize_rcu() in wakeup_source_remove() makes user process which writes to /sys/kernel/wake_unlock blocked sometimes. For example, when android eventhub tries to release a wakelock, this blocking process can occur, and eventhub can't get input events for a while. Using a work item instead of direct function call at pm_wake_unlock() can prevent this unnecessary delay from happening. Signed-off-by: SungEun Kim Signed-off-by: Rafael J. Wysocki kernel/power/wakelock.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) commit e7f6c6d02cc3fa7f78153919900561bd1dce02a3 Author: Bjorn Helgaas Date: Wed Jun 24 16:03:23 2015 -0500 PCI: Fix pcie_port_device_resume() comment The function comment claimed this was pcie_port_device_suspend(), but it's really pcie_port_device_resume(). Perils of cut and paste. Use the correct function name in the comment. Signed-off-by: Bjorn Helgaas Acked-by: Rafael J. Wysocki drivers/pci/pcie/portdrv_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b4aed1d1f119634d80d8c701873c2be01480aa9 Author: Bjorn Helgaas Date: Fri Jun 19 16:20:58 2015 -0500 PCI: Shift PCI_CLASS_NOT_DEFINED consistently with other classes The PCI class in dev->class is a three-byte value comprising a base class, sub-class, and interface type. PCI_CLASS_NOT_DEFINED includes the base class and sub-class, but not the interface type, so it should be shifted to make space for the interface. It happens that PCI_CLASS_NOT_DEFINED is zero, so it doesn't matter in the end, but we should still use it consistently with other class definitions. Treat PCI_CLASS_NOT_DEFINED as a base class/sub-class value that should appear in bits 8-23 of dev->class. Signed-off-by: Bjorn Helgaas drivers/pci/probe.c | 2 +- drivers/pci/quirks.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit eefaf338820ecd3fb14da496f8a740612257a341 Author: Bjorn Helgaas Date: Wed Jun 24 15:46:38 2015 -0500 PCI: Revert aeb30016fec3 ("PCI: add Intel USB specific reset method") Revert aeb30016fec3 ("PCI: add Intel USB specific reset method"). We checked for "dev->class == PCI_CLASS_SERIAL_USB", but dev->class contains the entire three-byte base class/sub-class/interface, while PCI_CLASS_SERIAL_USB is only the two-byte base class/sub-class. This error meant that we used the Intel device-specific reset on devices with class code 0x000c03 instead of those with class code 0x0c03xx. 0x000c03 is a reserved value in the 0x00 backwards compatibility base class and shouldn't match any devices, so I think reset_intel_generic_dev() always failed. I considered adding a shift, but I can't test it, so it's as likely to break something as to fix something. Signed-off-by: Bjorn Helgaas CC: Yu Zhao CC: Mathias Nyman drivers/pci/quirks.c | 24 ------------------------ 1 file changed, 24 deletions(-) commit d1541dc977d376406f4584d8eb055488655c98ec Author: Bjorn Helgaas Date: Fri Jun 19 15:58:24 2015 -0500 PCI: Fix TI816X class code quirk In fixup_ti816x_class(), we assigned "class = PCI_CLASS_MULTIMEDIA_VIDEO". But PCI_CLASS_MULTIMEDIA_VIDEO is only the two-byte base class/sub-class and needs to be shifted to make space for the low-order interface byte. Shift PCI_CLASS_MULTIMEDIA_VIDEO to set the correct class code. Fixes: 63c4408074cb ("PCI: Add quirk for setting valid class for TI816X Endpoint") Signed-off-by: Bjorn Helgaas CC: Hemant Pedanekar drivers/pci/quirks.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e6323e3c51601e5ccda24024ece3d7cd542378ea Author: Bjorn Helgaas Date: Fri Jun 19 15:36:45 2015 -0500 PCI: Fix generic NCR 53c810 class code quirk In the generic quirk fixup_rev1_53c810(), added by a5312e28c195 ("[PATCH] PCI: NCR 53c810 quirk"), we assigned "class = PCI_CLASS_STORAGE_SCSI". But PCI_CLASS_STORAGE_SCSI is only the two-byte base class/sub-class and needs to be shifted to make space for the low-order interface byte. Furthermore, we had a similar quirk, pci_fixup_ncr53c810(), for arch/x86, which assigned class correctly. The arch code is linked before the PCI core, so arch quirks run before generic quirks. Therefore, on x86, the x86 arch quirk ran first, and the generic quirk did nothing because it saw that dev->class was already set. But on other arches, the generic quirk set the wrong class code. Fix the generic quirk to set the correct class code and remove the now-unnecessary x86-specific quirk. Signed-off-by: Bjorn Helgaas CC: Matthew Wilcox arch/x86/pci/fixup.c | 13 ------------- drivers/pci/quirks.c | 14 +++++++++----- 2 files changed, 9 insertions(+), 18 deletions(-) commit cd76d10b78ab21a7adc4562e016213dd4891b6e5 Author: Bjorn Helgaas Date: Fri Jun 19 15:28:31 2015 -0500 PCI: Use PCI_CLASS_SERIAL_USB instead of bare number be6646bfbaec ("PCI: Prevent xHCI driver from claiming AMD Nolan USB3 DRD device") added a quirk to override the PCI class code of the AMD Nolan device. Use PCI_CLASS_SERIAL_USB instead of a bare number to improve greppability. Also add a log message about what we're doing. No functional change except the new message. Signed-off-by: Bjorn Helgaas Acked-by: Huang Rui CC: Jason Chang CC: Felipe Balbi drivers/pci/quirks.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 3657cebda5eb9dc1c4c6a0ea5b38bfef70aea50a Author: Krzysztof =?utf-8?Q?Ha=C5=82asa?= Date: Fri Jun 19 10:00:15 2015 +0200 PCI: Add quirk for Intersil/Techwell TW686[4589] AV capture cards Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) class code. Fix it. Signed-off-by: Krzysztof Hałasa Signed-off-by: Bjorn Helgaas drivers/pci/quirks.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit acc068d967a63aef163167a66a02966f42052b80 Author: Peter Huewe Date: Mon Jul 13 22:02:48 2015 +0200 Documenation: Update location of docproc.c docproc.c was moved in 2011 from scripts/basic to scripts -> updated the references accordingly Signed-off-by: Peter Huewe Signed-off-by: Jonathan Corbet Documentation/kernel-doc-nano-HOWTO.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a118753d411d3e22a463361bb867c51d63ebe14 Author: Srinidhi Kasagar Date: Fri Jun 19 11:52:46 2015 +0530 PCI: Remove Intel Cherrytrail D3 delays Just like Haswell, Intel Atom Cherrytrail does not need the default 10ms d3_delay imposed by the PCI specification. Expand quirk_remove_d3_delay() to apply to Cherrytrail devices, so we can ignore the 10ms delay before entering or exiting D3 suspend. [bhelgaas: changelog, comment] Signed-off-by: Srinidhi Kasagar Signed-off-by: Bjorn Helgaas drivers/pci/quirks.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 5d250eeb9d9d2237d49cd284ad35a6707694b88e Author: Masanari Iida Date: Mon Jul 13 12:29:11 2015 +0900 Doc: pps: Fix file name in pps.txt This patch fix a file name of example code. Signed-off-by: Masanari Iida Acked-by: Rodolfo Giometti Signed-off-by: Jonathan Corbet Documentation/pps/pps.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e7ac7b4ab4d7b4486b4680ebbffbff3b1b0d775 Author: Sébastien Hinderer Date: Sun Jul 12 17:49:55 2015 +0200 SubmittingPatches: fix wrong wording "facilitate easier reviewing" says the same thing twice. Signed-off-by: Sébastien Hinderer [jc: made it "easier review"] Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdc89213710250d75fcbb86c2e623d1bbe8e3bb2 Author: Sébastien Hinderer Date: Sun Jul 12 17:44:15 2015 +0200 SubmittingPatches: fix wrong wording Signed-off-by: Sébastien Hinderer Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cde669fa71cfb6fdbd579c409b08a5cfa1863584 Author: Heiko Stuebner Date: Tue May 26 21:50:09 2015 +0200 ARM: dts: rockchip: add Netxeon R89 board This board is used in some TV-boxes like for example the Beelink R89 or Tronsmart R28. The board itself follows the reference design for the most part. But there are no schematics available it seems, so some things should be taken with a grain of salt. Signed-off-by: Heiko Stuebner Reviewed-by: Romain Perier Documentation/devicetree/bindings/arm/rockchip.txt | 4 + arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/rk3288-r89.dts | 412 +++++++++++++++++++++ 3 files changed, 418 insertions(+), 1 deletion(-) commit cfa229b7b4232b23b77e059e19adf432bedd59a9 Author: Heiko Stuebner Date: Tue May 26 21:49:05 2015 +0200 dt-bindings: add vendor prefix for Netxeon Technology Signed-off-by: Heiko Stuebner Acked-by: Rob Herring Reviewed-by: Romain Perier Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 89e0e250f92b0b0233337043ddf76f261916036c Author: Dan Carpenter Date: Thu Jul 9 11:21:03 2015 +0300 ASoC: fsl: fsl_spdif: signedness bug in fsl_spdif_startup() We need "i" to be signed or it leads to a forever loop in the error handling. Fixes: fa3be9208dcb ('ASoC: fsl: fsl_spdif: Check for clk_prepare_enable() error') Signed-off-by: Dan Carpenter Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_spdif.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit a807a6cc29115a9a43c168fc0d4540b3d9284815 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:44:00 2015 +0900 regulator: drivers: 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: Mark Brown drivers/regulator/act8865-regulator.c | 1 - drivers/regulator/da9210-regulator.c | 1 - drivers/regulator/da9211-regulator.c | 1 - drivers/regulator/isl6271a-regulator.c | 1 - drivers/regulator/isl9305.c | 1 - drivers/regulator/lp3971.c | 1 - drivers/regulator/lp3972.c | 1 - drivers/regulator/lp872x.c | 1 - drivers/regulator/ltc3589.c | 1 - drivers/regulator/max1586.c | 1 - drivers/regulator/max8660.c | 1 - drivers/regulator/max8973-regulator.c | 1 - drivers/regulator/pfuze100-regulator.c | 1 - drivers/regulator/tps51632-regulator.c | 1 - drivers/regulator/tps62360-regulator.c | 1 - drivers/regulator/tps65023-regulator.c | 1 - 16 files changed, 16 deletions(-) commit 736050c4c11a4907d381672d5396485045d78bab Author: Krzysztof Kozlowski Date: Fri Jul 10 14:44:01 2015 +0900 regulator: da9062: 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: Mark Brown drivers/regulator/da9062-regulator.c | 1 - 1 file changed, 1 deletion(-) commit f5e9fdaeb3ba48d9a5a6882614f42d0303355fae Author: Krzysztof Kozlowski Date: Fri Jul 10 15:30:46 2015 +0900 spi: xcomm: 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: Mark Brown drivers/spi/spi-xcomm.c | 1 - 1 file changed, 1 deletion(-) commit 27bc1dd24488ce2a13e5c59aaf6d3202e519e21e Author: Krzysztof Kozlowski Date: Fri Jul 10 14:30:31 2015 +0900 ASoC: mediatek: 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 Acked-by: Koro Chen Signed-off-by: Mark Brown sound/soc/mediatek/mt8173-max98090.c | 1 - sound/soc/mediatek/mt8173-rt5650-rt5676.c | 1 - sound/soc/mediatek/mtk-afe-pcm.c | 1 - 3 files changed, 3 deletions(-) commit 430b7ad5d3d07e9869085d777264a37ae2dd5c26 Author: Akash Goel Date: Mon Jun 29 14:50:24 2015 +0530 drm/i915: Added BXT check in HAS_CORE_RING_FREQ macro Updated the HAS_CORE_RING_FREQ macro to add the broxton check, so as to disallow the programming & read of ring frequency table for it. Issue: VIZ-5144 Suggested-by: Daniel Vetter Signed-off-by: Akash Goel Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 97d3308ab245c51ae237b3444afa7ae87aa9bcd4 Author: Akash Goel Date: Mon Jun 29 14:50:23 2015 +0530 drm/i915: Add HAS_CORE_RING_FREQ macro Added a new HAS_CORE_RING_FREQ macro, currently used in gen6_update_ring_freq & i915_ring_freq_table debugfs function. The programming & read of ring frequency table is needed for newer GEN(>=6) platforms, except VLV/CHV. Issue: VIZ-5144 Suggested-by: Daniel Vetter Signed-off-by: Akash Goel Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/intel_pm.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) commit 70e0bd74b9a22ecaa25793bf4f461cf84a1f348a Author: Maarten Lankhorst Date: Mon Jul 13 16:30:29 2015 +0200 drm/i915: Make intel_display_suspend atomic, try 2. Calculate all state using a normal transition, but afterwards fudge crtc->state->active back to its old value. This should still allow state restore in setup_hw_state to work properly. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 52 +++++++++++++++++++++++++++++++++--- drivers/gpu/drm/i915/intel_drv.h | 2 +- 2 files changed, 50 insertions(+), 4 deletions(-) commit e694eb020f12949a3eb12d4bb4957f0237961b2d Author: Maarten Lankhorst Date: Tue Jul 14 16:19:12 2015 +0200 drm/i915: Always force a modeset in intel_crtc_restore_mode, v2. And get rid of things that are no longer true. This function is only used for forcing a modeset when encoder properties are changed. Because this is not yet done atomically, assume a full modeset is needed and force a modeset on the crtc. Changes since v1: - s/reset/force modeset/ Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 58 ++++++++++-------------------------- 1 file changed, 16 insertions(+), 42 deletions(-) commit 292b990e86abc42cba683fda1a56dc5f253a1d3e Author: Maarten Lankhorst Date: Mon Jul 13 16:30:27 2015 +0200 drm/i915: Update power domains on readout. This allows us to get rid of the set_init_power in modeset_update_crtc_domains. The state should be sanitized enough after setup_hw_state to not need the init power. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 76 ++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 26 deletions(-) commit ad3c558fb92f725858494f6b3f0befcd89cbb41c Author: Maarten Lankhorst Date: Mon Jul 13 16:30:26 2015 +0200 drm/i915: Get rid of unused transitional members. The previous commit converted hw readout to atomic, all the new_* members were used for restoring the old state, but with the conversion of suspend to atomic there's no use left for them. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 80 ++++++++---------------------------- drivers/gpu/drm/i915/intel_drv.h | 12 ------ 2 files changed, 18 insertions(+), 74 deletions(-) commit 043e9bda6b7bf6ff83576c65a40becc5054e827d Author: Maarten Lankhorst Date: Mon Jul 13 16:30:25 2015 +0200 drm/i915: Convert resume to atomic. Instead of all the ad-hoc updating, duplicate the old state first before reading out the hw state, then restore it. intel_display_resume is a new function that duplicates the sw state, then reads out the hw state, and commits the old state. intel_display_setup_hw_state now only reads out the atomic state. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90396 Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/intel_display.c | 77 ++++++++++++++++++++++++++---------- drivers/gpu/drm/i915/intel_lvds.c | 2 +- 4 files changed, 60 insertions(+), 24 deletions(-) commit 5c1e34261907736dc3b3a7219b2f48f353f10a93 Author: Maarten Lankhorst Date: Tue Jul 14 15:58:28 2015 +0200 drm/i915: Readout initial hw mode. drm/i915: Readout initial hw mode, v2. Atomic requires a mode blob when crtc_state->enable is true, or you get a huge warn_on. With a few tweaks the mode we read out from hardware could be used as the real mode without a modeset, but this requires too much testing, so for now force a modeset the first time the mode blob's updated. This preserves the old behavior, because previously we never set the initial mode, which always meant that a modeset happened when the mode was first set. Changes since v1: - Add a description in intel_modeset_readout_hw_state of how the recalculation is done. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 62 ++++++++++++++++++++++++------------ drivers/gpu/drm/i915/intel_fbdev.c | 11 ++----- 2 files changed, 44 insertions(+), 29 deletions(-) commit 3a03dfb057d0ee5f3146ffe40179af3ed7e48213 Author: Maarten Lankhorst Date: Tue Jul 14 13:46:40 2015 +0200 drm/i915: Calculate vblank timestamping constants before enabling vblank. This is required to properly initialize vblanks on the active crtc. Without it drm_calc_vbltimestamp_from_scanoutpos can fail with crtc 0: Noop due to uninitialized mode. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit 4be40c987aa0867a8fa77c12d5ed6fa2f8853dbc Author: Maarten Lankhorst Date: Tue Jul 14 13:45:32 2015 +0200 drm/i915: Zero the mode in intel_sanitize_crtc when force disabling. There is a WARN_ON in drm_atomic_crtc_check for this when exposing the atomic property. If the mode_blob still exists, but enable = false then all updates are rejected with -EINVAL. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b06f8b0df73dea39337e394805827491d0b1585c Author: Maarten Lankhorst Date: Tue Jul 14 13:42:49 2015 +0200 drm/i915: Fix reference leak in intel_modeset_readout_hw_state. Unreference the old mode_blob by calling the crtc_destroy_state helper before zeroing the crtc_state. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit 4cf0ebbd4fafbdf8e6431dbb315e5511c3efdc3b Author: Maarten Lankhorst Date: Mon Jul 13 16:30:20 2015 +0200 drm/i915: Rework plane readout. All non-primary planes get disabled during hw readout, this reduces complexity and means not having to do some plane visibility checks during the first commit. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 7 --- drivers/gpu/drm/i915/intel_display.c | 86 ++++-------------------------------- drivers/gpu/drm/i915/intel_drv.h | 1 - 3 files changed, 8 insertions(+), 86 deletions(-) commit 3bbaba0ceaa254c9ee261e329bfd92e4ba4fe32a Author: Peter Antoine Date: Fri Jul 10 20:13:11 2015 +0300 drm/i915: Added Programming of the MOCS This change adds the programming of the MOCS registers to the gen 9+ platforms. The set of MOCS configuration entries introduced by this patch is intended to be minimal but sufficient to cover the needs of current userspace - i.e. a good set of defaults. It is expected to be extended in the future to provide further default values or to allow userspace to redefine its private MOCS tables based on its demand for additional caching configurations. In this setup, userspace should only utilize the first N entries, higher entries are reserved for future use. It creates a fixed register set that is programmed across the different engines so that all engines have the same table. This is done as the main RCS context only holds the registers for itself and the shared L3 values. By trying to keep the registers consistent across the different engines it should make the programming for the registers consistent. v2: -'static const' for private data structures and style changes.(Matt Turner) v3: - Make the tables "slightly" more readable. (Damien Lespiau) - Updated tables fix performance regression. v4: - Code formatting. (Chris Wilson) - re-privatised mocs code. (Daniel Vetter) v5: - Changed the name of a function. (Chris Wilson) v6: - re-based - Added Mesa table entry (skylake & broxton) (Francisco Jerez) - Tidied up the readability defines (Francisco Jerez) - NUMBER of entries defines wrong. (Jim Bish) - Added comments to clear up the meaning of the tables (Jim Bish) Signed-off-by: Peter Antoine v7 (Francisco Jerez): - Don't write L3-specific MOCS_ESC/SCC values into the e/LLC control tables. Prefix L3-specific defines consistently with L3_ and e/LLC-specific defines with LE_ to avoid this kind of confusion in the future. - Change L3CC WT define back to RESERVED (matches my hardware documentation and the original patch, probably a misunderstanding of my own previous comment). - Drop Android tables, define new minimal tables more suitable for the open source stack. - Add comment that the MOCS tables are part of the kernel ABI. - Move intel_logical_ring_begin() and _advance() calls one level down (Chris Wilson). - Minor formatting and style fixes. v8 (Francisco Jerez): - Add table size sanity check to emit_mocs_control/l3cc_table() (Chris Wilson). - Add comment about undefined entries being implicitly set to uncached for forwards compatibility. v9 (Francisco Jerez): - Minor style fixes. Signed-off-by: Francisco Jerez Acked-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_reg.h | 9 + drivers/gpu/drm/i915/intel_lrc.c | 12 +- drivers/gpu/drm/i915/intel_lrc.h | 1 + drivers/gpu/drm/i915/intel_mocs.c | 335 ++++++++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_mocs.h | 57 +++++++ 6 files changed, 413 insertions(+), 2 deletions(-) commit faf4ffe031df41c067f3b89632ce3d3667bb64ad Author: Daniel Vetter Date: Tue Jul 14 10:59:30 2015 +0200 drm/i915: Remove unused compat32 code Totatlly forgotten that we have these when nuking all the UMS code. Signed-off-by: Daniel Vetter Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_ioc32.c | 125 -------------------------------------- 1 file changed, 125 deletions(-) commit e794db2ccbb587198e74fbe4fc035131875bf1e4 Author: Ezequiel Garcia Date: Mon Jun 1 22:57:16 2015 -0300 ARM: dts: add DT for CIAA LPC4337 industrial computer Add basic support for CIAA (Argentine Open Industrial Computer) LPC4337 board. This commit enables the following peripherals: * UART * SSP * Ethernet Signed-off-by: Ezequiel Garcia Signed-off-by: Joachim Eastwood arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/lpc4337-ciaa.dts | 187 +++++++++++++++++++++++++++++++++++++ 2 files changed, 188 insertions(+) commit a8069fafe8a3ce1567e2394b8551902ede300445 Author: Ezequiel Garcia Date: Sun Jun 21 20:23:48 2015 -0300 of: add vendor prefix for CIAA project CIAA stands for Argentine Open Industrial Computer. The CIAA project is an initiative sponsored by universities and private companies. Its main goal is to promote local embedded systems development. Among other devices, the project developed a NXP LPC4337-based reference design. Signed-off-by: Ezequiel Garcia Signed-off-by: Joachim Eastwood Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 930a43e2e6ea2069e1fbc475b9af9d05315b0591 Author: Joachim Eastwood Date: Fri May 29 23:09:52 2015 +0200 ARM: dts: lpc4357-ea4357: add uart3 Enable UART3 that is routed to the J17 DSUB9 connector on the EA4357 devkit. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 7de98f2a98c842d1e4805981eff8fdf3c59cdeb0 Author: Joachim Eastwood Date: Thu Apr 2 05:56:57 2015 +0200 ARM: dts: lpc4357-ea4357: add ethernet Enable Ethernet and add pin muxing and set the correct frequency on the enet tx clock input. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit 95dafb2ca15672ec8e000fcd482fec15e963840e Author: Joachim Eastwood Date: Thu Apr 2 05:55:32 2015 +0200 ARM: dts: lpc4357-ea4357: add gpio joystick Hook up the small joystick found on the EA4357 devkit. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit f312bc59d21bed7593199a1921468868150954fa Author: Nicolas Boichat Date: Tue Jul 14 14:51:26 2015 +0800 ASoC: rt5645: Remove irq_jack_detection function irq_jack_detection is only called from rt5645_jack_detect_work: remove the function to simplify the code. Signed-off-by: Nicolas Boichat Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 53 ++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 31 deletions(-) commit 6d00d153f00097d259f86304e11858a50a1b8ad1 Author: Ellen Wang Date: Mon Jul 13 15:23:54 2015 -0700 HID: cp2112: fix I2C_SMBUS_BYTE write When doing an I2C_SMBUS_BYTE write (one byte write, no address), the data to be written is in "command" not "data->byte". Signed-off-by: Ellen Wang Acked-by: Wolfram Sang Reviewed-by: Antonio Borneo Cc: stable@vger.kernel.org Signed-off-by: Jiri Kosina drivers/hid/hid-cp2112.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eeebeac5e476800991ea1d10827307c41650ba11 Author: Maarten Lankhorst Date: Tue Jul 14 12:33:29 2015 +0200 drm/i915: Remove plane_config from struct intel_crtc, v2. Nothing depends on this outside initial hw readout, so keep this struct on the stack instead. Changes since v1: - Remove unrelated changes. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 19 ++++++++++--------- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 10 insertions(+), 10 deletions(-) commit be5651f2d5814cefbe89b17c187309ad4c1d3967 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:18 2015 +0200 drm/i915: Update missing properties in find_initial_plane_obj The src and crtc rectangles were never set, resulting in the primary plane being made invisible on first atomic update. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit cfb23ed622d040619abb91e625fcba74d356b8a8 Author: Maarten Lankhorst Date: Tue Jul 14 12:17:40 2015 +0200 drm/i915: Allow fuzzy matching in pipe_config_compare, v2. Instead of doing ad-hoc checks we already have a way of checking if the state is compatible or not. Use this to force a modeset. Only during modesets, or with PIPE_CONFIG_QUIRK_INHERITED_MODE we should check if a full modeset is really needed. Fastboot will allow the adjust parameter to ignore some stuff too, and it will fix up differences in state that are ignored by the compare function. Changes since v1: - Increase the value of the lowest m/n to prevent truncation. - Dump pipe config when fastboot's used, without a modeset. - Add adjust parameter to intel_compare_link_m_n, which is used to adjust m2_n2 if it's a multiple of m_n. - Add exact parameter intel_compare_m_n. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 218 +++++++++++++++++++++++++---------- 1 file changed, 157 insertions(+), 61 deletions(-) commit 8e9ba31a0f6c217e05f84efe9c569f9010a8ad26 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:16 2015 +0200 drm/i915: Do not use plane_config in intel_fbdev.c Use the atomic state instead, this allows removing plane_config from the crtc after the full hw readout is completed. The size can be found in the fb, no need for the plane_config. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit e435d6e52b164c041d3b0f88be3f7b8c5a14462a Author: Maarten Lankhorst Date: Mon Jul 13 16:30:15 2015 +0200 drm/i915: Do not update pfit state when toggling crtc enabled. There's not much point for calculating the changes for the old state. Instead just disable all scalers when disabling. It's probably good enough to just disable the crtc_scaler, but just in case there's a bug disable all scalers. This means intel_atomic_setup_scalers is only called in the crtc check function now, so all the transitional code can be removed. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 14 ++------ drivers/gpu/drm/i915/intel_display.c | 68 +++++++++++++++++++++++------------- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 2 +- 4 files changed, 48 insertions(+), 38 deletions(-) commit 8a75d157ccddc2c1fb5aeefe6a1a45a9eb0c0176 Author: Maarten Lankhorst Date: Mon Jul 13 16:30:14 2015 +0200 drm/i915: Only update state on crtc's that are part of the atomic state. This is probably hard to hit right now because in most cases all atomic locks are taken, but after conversion to atomic this will make it more likely to corrupt the crtc->config pointer, resulting in hard to find bugs. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Stone Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 44ade5edf90ccd38efa741240efb2586239c9751 Author: Magnus Damm Date: Mon Jul 13 15:15:02 2015 +0900 ARM: shmobile: r8a7779: Generic SMP ops Add a r8a7779-specific SMP operation pointer to support all 4 CPU cores through SMP on r8a7779 without C board code. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/setup-r8a7779.c | 1 + 1 file changed, 1 insertion(+) commit 131c2e0480b0f7afefbc9a46cc4e158e17caa844 Author: Magnus Damm Date: Thu Jun 25 17:57:39 2015 +0900 ARM: shmobile: r8a7779: Generic CCF and timer support Add a r8a7779-specific callback to initialize CCF and clocksources. With this in place we are one step closer to be able to use r8a7779 without C board code. Also add a multiplatform wrapper to avoid breaking the r8a7779 marzen legacy case. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/setup-r8a7779.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 80edaaead3687b47ba3760588306937439ebd7bd Author: Peter Ujfalusi Date: Thu Jul 2 17:06:35 2015 +0300 ARM: dts: am335x-evm: Switch using simple-audio-card for audio support The sound support consist only Headset output on the board and can be handled by "simple-audio-card" Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) commit e4e0b70224fb840a264ad521493cfea94f7d2ef5 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:34 2015 +0300 ARM: dts: am335x-evm: Add sleep pin settings for mcasp1 When McASP is not in use the pins can be put to sleep mode to conserve power. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 11fd9a9b2ca459acc0eac92e1fa858b708d630d6 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:33 2015 +0300 ARM: dts: am335x-evm: Rename pinctrl section for McASP1 Use mcasp1_pins as name for the pinctrl section needed for McASP1 instead of the am335x_evm_audio_pins name. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a6ccad683fbcba793c390cb6505538ab4a145746 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:32 2015 +0300 ARM: dts: am335x-evm: Fix mcasp1 node's indentation The section had two tabs instead of one. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evm.dts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit b3c616ef7fc0bff6d00d884845610d4eb59f556d Author: Peter Ujfalusi Date: Thu Jul 2 17:06:31 2015 +0300 ARM: dts: am335x-evmsk: Switch using simple-audio-card for audio support The sound support consist only Headset output on the board and can be handled by "simple-audio-card" Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evmsk.dts | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) commit ed8830f2e92a6462d2ca96afcf00ab5de6fbef0e Author: Peter Ujfalusi Date: Thu Jul 2 17:06:30 2015 +0300 ARM: dts: am335x-evmsk: Add sleep pin settings for mcasp1 When McASP is not in use the pins can be put to sleep mode to conserve power. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evmsk.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit c8b518ada5935b78f9c296f656c51d77ecca993e Author: Peter Ujfalusi Date: Thu Jul 2 17:06:29 2015 +0300 ARM: dts: am335x-evmsk: Fix mcasp1 node's indentation The section had two tabs instead of one. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-evmsk.dts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit cf9a4850e9957ccf3ca11409b15d9a915a326400 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:28 2015 +0300 ARM: dts: am437x-gp-evm: Enable analog audio via simple-card The board uses McASP1 <-> tlv320aic3106 for analog audio and has Headphone out and Line in connectors. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit d3d92af19e9970b16e5f724fb2de4491abccaa7d Author: Peter Ujfalusi Date: Thu Jul 2 17:06:27 2015 +0300 ARM: dts: am437x-gp-evm: McASP1 node for audio support Add node for McASP1 along with the needed pinctrl entries. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 6076b15928ca113542180ad3817a0dc1befd3899 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:26 2015 +0300 ARM: dts: am437x-gp-evm: Add node for tlv320aic3106 audio codec Analog audio is using this codec on the board. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 390810a962aec86eff34b9e593b426ef95049025 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:25 2015 +0300 ARM: dts: am437x-gp-evm: Rename fixed regulator vmmcsd_fixed to evm_v3_3d The same regulator is used by other chips on the board. The power path is: VBAT -> TPS63031 - Enable signal is V1_8D regulator -> V3_3D. V3_3D is used by SD slot and tlv320aic3106 codec as well. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 593113e7bcb552fd02770d7e847162fa27956fbd Author: Peter Ujfalusi Date: Thu Jul 2 17:06:24 2015 +0300 ARM: dts: am437x-gp-evm: Add gpio-hog for configuring the display/audio mux GPIO5_8 is used as a mux switch between LCD and HDMI displays. This mux affects audio routing as well since in LCD mode HDMI audio is not possible and when HDMI is selected analog audio is not working. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-gp-evm.dts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) commit 22d7fb57ad1e001654e605386f33525644ebdcc1 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:23 2015 +0300 ARM: dts: am43xx-epos-evm: Enable analog audio via simple-card Use simple card for audio support on ePOS-EVM. The audio on the board is: McASP1 <-> tlv320aic3111 codec. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am43x-epos-evm.dts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit cbfc7e6fffbc74cfaab3eeae9e559baebac6a5ac Author: Peter Ujfalusi Date: Thu Jul 2 17:06:22 2015 +0300 ARM: dts: am43xx-epos-evm: Add node for tlv320aic3111 audio codec Analog audio is using this codec on the board. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am43x-epos-evm.dts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 06e2bf6b37bdbac3341fa1519cf7901a7379c724 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:21 2015 +0300 ARM: dts: am43xx-epos-evm: McASP1 node for audio support Add node for McASP1 along with the needed pinctrl entries. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am43x-epos-evm.dts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 7ec341d969afc3901fb26052bff22d884249fbf0 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:20 2015 +0300 ARM: dts: am43xx-epos-evm: Add regulator for VBAT and DCDC4 of tps65218 The VBAT and DCDC4 regulator is needed for audio support (tlv320aic3111) Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am43x-epos-evm.dts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 56fd3dc793e9f53acf36411f5c9814997e587b3e Author: Peter Ujfalusi Date: Thu Jul 2 17:06:19 2015 +0300 ARM: dts: am43xx-epos-evm: Add gpio-hog for configuring the display/audio mux GPIO2_1 is used as a mux switch between LCD and HDMI displays. This mux affects audio routing as well since in LCD mode HDMI audio is not possible and when HDMI is selected analog audio is not working. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am43x-epos-evm.dts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) commit 20746c508b3a8e76e251806f8bd50c4624ca1782 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:18 2015 +0300 ARM: dts: am437x-sk-evm: Switch using simple-audio-card for audio support The sound support consist only Headset output on the board and can be handled by "simple-audio-card". Also enable the Line-In route as the board has support for it. Signed-off-by: Peter Ujfalusi Tested-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sk-evm.dts | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) commit 7155ace481dec0aeed7b75010c4ed531dcb3d7b0 Author: Peter Ujfalusi Date: Thu Jul 2 17:06:17 2015 +0300 ARM: dts: am437x-sk-evm: Add sleep pin settings for mcasp1 When McASP is not in use the pins can be put to sleep mode to conserve power. Signed-off-by: Peter Ujfalusi Tested-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/boot/dts/am437x-sk-evm.dts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit da4cada87146e3a7ee53e8355dfcee1c2fe4bdff Author: Peter Ujfalusi Date: Thu Jul 2 17:06:16 2015 +0300 ARM: omap2plus_defconfig: Enable audio related config options More and more boards are moving to have audio support via simple-card. At the same time enable options needed for most am335x and am43xx board for audio support: McASP and TLV320AIC3X codecs. The later two has been selected by the CONFIG_SND_AM33XX_SOC_EVM option, but the aim is to convert all boards to use simple card. Signed-off-by: Peter Ujfalusi Acked-by: Felipe Balbi Signed-off-by: Tony Lindgren arch/arm/configs/omap2plus_defconfig | 3 +++ 1 file changed, 3 insertions(+) commit 601b29aa48091acef2fc608ccec87a7518fc8597 Author: Nishanth Menon Date: Mon Jun 22 10:22:26 2015 -0500 pinctrl: dra: dt-bindings: Add virtual mode configuration option In addition to the regular mux configuration such as mux mode 1, 2 etc, certain pins of DRA7 require to have "virtual mode" also programmed. This allows for predefined delay characteristics to be used by the SoC to meet timing characterstics needed for the interface. Provide easy to use macro to do the same. It is important to note that the official TI guidelines recommend to do as minimal pin reconfiguration beyond the bootloader given the design of the hardware involved which can result in substantial glitches which may impair functionality of certain peripherals. Signed-off-by: Nishanth Menon Signed-off-by: Tony Lindgren include/dt-bindings/pinctrl/dra.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit ad548430ab690504b3e43e8cba706980279c1f38 Author: Vignesh R Date: Mon Jun 22 14:33:44 2015 +0530 ARM: dts: DRA72: switch to cpsw slave0 for ethernet On DRA72 EVM, cpsw slave1 is muxed with VIN2A, hence switch to cpsw slave0 for ethernet. Add gpio hog entry to pcf_gpio_21 in order to select cpsw slave0. Signed-off-by: Vignesh R Signed-off-by: Mugunthan V N Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra72-evm.dts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 71bed41c6209913807d21a7d7c191258e91696a2 Author: Tony Lindgren Date: Fri May 29 10:21:52 2015 -0700 ARM: dts: Remove L3 compatible value for dm816x The interconnects on dm816x are like on omap4, so we should use l3-noc instead of l3-smx. But as the related SoC specific l3_target_data is still missing from omap_l3_noc let's just remove the entry for now. Cc: Brian Hutchinson Reported-by: Matthijs van Duin Signed-off-by: Tony Lindgren arch/arm/boot/dts/dm816x.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3353b693a1af39e1ecb5292d9a2c2771acdd67ff Author: Adam YH Lee Date: Fri Jun 12 13:37:26 2015 -0700 ARM: dts: overo: Add device tree for Palo35 board Also, reduce the maximum SPI device speed to the max. supported by the LCD controller used on the LGPhilips LB035Q02 panel for this board. Signed-off-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi | 3 +- arch/arm/boot/dts/omap3-overo-palo35-common.dtsi | 53 ++++++++++++++++++++++++ arch/arm/boot/dts/omap3-overo-palo35.dts | 37 +++++++++++++++++ arch/arm/boot/dts/omap3-overo-storm-palo35.dts | 37 +++++++++++++++++ 5 files changed, 131 insertions(+), 1 deletion(-) commit 98ce6007efb4bf70f035d4187c2ea59a8c4a455a Author: Ash Charles Date: Fri Jun 12 13:37:25 2015 -0700 ARM: dts: overo: Support PoP NAND Some Overo COM models include NAND flash in the on-board package-on-package (PoP) chip. Add this to the base Overo devicetree. Most commonly, this is 512MB NAND from the Micron MT29C4G96MAZ family but, as discussed [1], several different sized are possible. To support different sizes, the last partition should fill to the end of the chip (i.e. MTDPART_SIZ_FULL). With thanks to Florian Vaussard for the original patch [2] and Adam Lee for updating it here. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/175760.html [2] http://lists.infradead.org/pipermail/linux-arm-kernel/2013-June/175449.html Signed-off-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-overo-base.dtsi | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit d765af89a4f25315c6ba66abd3539bbd8539c88f Author: Adam YH Lee Date: Fri Jun 12 13:37:24 2015 -0700 ARM: dts: overo: Enable McBSP2 for all Overo COMs Both Gumstix Overo and Overo Storm COMs use TWL4030 audio module connected to the McBSP2. As such, enable the McBSP2 module in the common device tree file, omap3-overo-base.dtsi, rather than in the processor-specific device tree files, omap3-overo.dtsi and omap3-overo-storm.dtsi. This corrects audio on the Storm COMs where the setting was accidentally missing from the device tree. Signed-off-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/omap3-overo-base.dtsi | 3 +++ arch/arm/boot/dts/omap3-overo.dtsi | 4 ---- 2 files changed, 3 insertions(+), 4 deletions(-) commit 72f5d5d5247725ea7ca786378ac2ab40bc5c0dab Author: Ash Charles Date: Fri Jun 12 13:37:23 2015 -0700 ARM: dts: Add DTS for Gumstix TobiDuo expansion board The Gumstix "Tobi-Duo" expansion board [1] can be used with either OMAP3 Overo or Overo Storm COMs. It provides two NICs using LAN9221 chips. It is necessary to duplicate the interface information for the second SMSC9221 chip as discussed [2]. [1] https://store.gumstix.com/index.php/products/241/ [2] http://www.spinics.net/lists/linux-omap/msg115282.html Signed-off-by: Ash Charles Signed-off-by: Tony Lindgren arch/arm/boot/dts/Makefile | 2 + arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts | 21 ++++++++ arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi | 65 +++++++++++++++++++++++ arch/arm/boot/dts/omap3-overo-tobiduo.dts | 21 ++++++++ 4 files changed, 109 insertions(+) commit 34c900a60bb09cab44d0fff96dd0e109a7b9bcf2 Author: Jyri Sarha Date: Fri May 8 14:27:19 2015 +0300 ARM: dts: am335x-boneblack: Use new binding for HDMI Use new binding for the external tda19988 HDMI encoder. Signed-off-by: Jyri Sarha Signed-off-by: Tony Lindgren arch/arm/boot/dts/am335x-boneblack.dts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) commit 3d5d68aabf4ff47cfb447ad90448ce50531be7f5 Author: Kan Liang Date: Wed Jul 8 04:44:54 2015 -0400 perf record: Document setting '-e pmu/period=N/' in man page The 'period' param is not defined in /sys/bus/event_sources/devices//format/*, but can be used, document it. Signed-off-by: Kan Liang Acked-by: Jiri Olsa Cc: Andi Kleen Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1436345097-11113-3-git-send-email-kan.liang@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/Documentation/perf-record.txt | 8 ++++++++ 1 file changed, 8 insertions(+) commit 3a0830de58342914aca8f517a84b82476be98f26 Author: Peter Ujfalusi Date: Thu Apr 9 12:35:54 2015 +0300 ARM: dts: dra7x: Integrate sDMA crossbar The sDMA requests are routed through the DMA crossbar and without the crossbar only peripherals using DMA request 0-127 can be used. Signed-off-by: Peter Ujfalusi Signed-off-by: Tony Lindgren arch/arm/boot/dts/dra7.dtsi | 57 ++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 24 deletions(-) commit fa3eec7791b0fe27e3112804a71ba445ff336a6b Author: Mark Brown Date: Wed Jul 1 23:51:43 2015 +0100 regmap: Silence warning on invalid zero length read Zero length reads make no sense in a regmap context and are likely to trigger bugs further down the stack so insert an error check, also silencing compiler warnings about use of ret in cases where we iterate per register. Reported-by: Russell King Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 2 ++ 1 file changed, 2 insertions(+) commit 131e663bd6f1055caaff128f9aa5071d227eeb72 Author: Daniel Vetter Date: Thu Jul 9 23:32:33 2015 +0200 drm/gem: rip out drm vma accounting for gem mmaps Doesn't really add anything which can't be figured out through proc files. And more clearly separates the new gem mmap handling code from the old drm maps mmap handling code, which is surely a good thing. Cc: Martin Peres Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_gem.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) commit bdac2b6dc7392668a8530d67a5f762366f57f9b4 Author: Thomas Gleixner Date: Mon Jul 13 23:22:44 2015 +0200 gpio/davinci: Fix race in installing chained irq handler Fix a race where a pending interrupt could be received and the handler called before the handler's data has been setup, by converting to irq_set_chained_handler_and_data(). Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot drivers/gpio/gpio-davinci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 1765d671b18e58fdd6341edac9c22e57d90ef6a8 Author: Thomas Gleixner Date: Mon Jul 13 01:18:56 2015 +0200 gpio/davinci: Avoid redundant lookup of irq_data It's pretty silly to do void *cd = irq_get_chip_data(irq_data->irq); because that results in cd = irq_data->chip_data, but goes through a redundant lookup of the irq_data. Use irq_data directly. Signed-off-by: Thomas Gleixner Cc: Linus Walleij Cc: Alexandre Courbot Cc: Jiang Liu Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-davinci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 789f9dabfe44c1f7056aa0a7c9a9205de4d5261f Author: Thomas Gleixner Date: Mon Jul 13 01:07:01 2015 +0200 gpio/msm-v2: Avoid redundant lookup of irq_data It's pretty silly to do irq_data *d = irq_get_irq_data(irq_data->irq); because that results in d = irq_data, but goes through a lookup of the irq_data. Use irq_data directly. Signed-off-by: Thomas Gleixner Cc: Linus Walleij Cc: Alexandre Courbot Cc: Jiang Liu Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-msm-v2.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) commit 2951a7990c4aac3bfa05ea8474eb2948ca73eaba Author: Thomas Gleixner Date: Mon Jul 13 00:11:27 2015 +0200 gpio/sa1100: Prepare sa1100_gpio_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-sa1100.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 364ea44b24deec90c1ba88dc427d5bc4864096f5 Author: Thomas Gleixner Date: Mon Jul 13 00:09:04 2015 +0200 gpio/mvebu: Prepare mvebu_gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-mvebu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e43ea7a7736bb29fd088e83a7b66195eb2854814 Author: Thomas Gleixner Date: Mon Jul 13 00:06:41 2015 +0200 gpio/ep93xx: Prepare ep93xx_gpio_f_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-ep93xx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c3ca1e6f1849a6bce3a4a57e483d13ab7a544dd4 Author: Thomas Gleixner Date: Sun Jul 12 23:47:32 2015 +0200 gpio/davinci: Prepare gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-davinci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 476f8b4c94a90d1167961d90a5ed68dbe87c62da Author: Jiang Liu Date: Thu Jun 4 12:13:15 2015 +0800 gpio: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Preparatory patch for the removal of the 'irq' argument from irq flow handlers. Signed-off-by: Jiang Liu Acked-by: Linus Walleij Cc: Alexandre Courbot Signed-off-by: Thomas Gleixner drivers/gpio/gpio-bcm-kona.c | 2 +- drivers/gpio/gpio-dwapb.c | 2 +- drivers/gpio/gpio-mvebu.c | 2 +- drivers/gpio/gpio-mxc.c | 6 +++--- drivers/gpio/gpio-mxs.c | 2 +- drivers/gpio/gpio-omap.c | 2 +- drivers/gpio/gpio-tegra.c | 4 +--- drivers/gpio/gpio-timberdale.c | 5 +++-- drivers/gpio/gpio-vf610.c | 2 +- drivers/gpio/gpio-zynq.c | 2 +- 10 files changed, 14 insertions(+), 15 deletions(-) commit c16edb8b3a070be758a97bc6cd00855c7bbccec4 Author: Jiang Liu Date: Mon Jun 1 16:05:19 2015 +0800 gpio/davinci: Use accessor function irq_data_get_irq_handler_data() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Linus Walleij Cc: Alexandre Courbot Signed-off-by: Thomas Gleixner drivers/gpio/gpio-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f170d71eb2eb5de968dbedfd74bc53944a080391 Author: Thomas Gleixner Date: Tue Jun 23 15:52:40 2015 +0200 gpio/gpio-tegra: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: Stephen Warren Cc: Thierry Reding Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-tegra.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2456d869c45eeaefa7c5c96d30d1e884a12709e3 Author: Thomas Gleixner Date: Tue Jun 23 15:52:40 2015 +0200 gpio/pch: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-pch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43ec2e4316047e9eecf7df86768708395888eb96 Author: Thomas Gleixner Date: Tue Jun 23 15:52:39 2015 +0200 gpio/omap: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Kevin Hilman Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-omap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b11b7af97883da01082e318abac51cec7162a347 Author: Thomas Gleixner Date: Tue Jun 23 15:52:38 2015 +0200 gpio/msm-v2: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-msm-v2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 72b2a9ef9c5fffe274cca0be63a4f3998fa0b641 Author: Thomas Gleixner Date: Tue Jun 23 15:52:38 2015 +0200 gpio/ep93xx: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: @@ struct irq_data *d; expression E1; @@ -__irq_set_handler_locked(d->irq, E1); +irq_set_handler_locked(d, E1); Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-ep93xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 47c08462921f17de890c2574b2893ecae44cfd76 Author: Thomas Gleixner Date: Tue Jun 23 14:37:42 2015 +0200 gpio/zynq: Use irq_set_chip_handler_name_locked() Hand in irq_data and avoid the redundant lookup of irq_desc. Originally-from: Jiang Liu Signed-off-by: Thomas Gleixner drivers/gpio/gpio-zynq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f7f877533c11029e4b4caf8aae9968c5fd561625 Author: Thomas Gleixner Date: Sun Jun 21 21:10:48 2015 +0200 gpiolib: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpiolib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 77c77e3f074f576a39534bb9b10b6f1b4d91a8db Author: Thomas Gleixner Date: Sun Jun 21 21:10:48 2015 +0200 gpio/tz1090: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-tz1090.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8a52211ad8d8c97fede3707c938126002e11ec79 Author: Thomas Gleixner Date: Sun Jun 21 21:10:47 2015 +0200 gpio/timberdale: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-timberdale.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit d68cd06ce40d7227598912bb1a0c75980d2b5a4b Author: Thomas Gleixner Date: Sun Jun 21 21:10:47 2015 +0200 gpio/mvebu: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-mvebu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 05379818e489bd9fec892f79f202b2ff41fd6ff8 Author: Thomas Gleixner Date: Sun Jun 21 21:10:46 2015 +0200 gpio/mpc8xxx: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Linus Walleij Cc: Alexandre Courbot Cc: linux-gpio@vger.kernel.org drivers/gpio/gpio-mpc8xxx.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 3402042287a0b93eceb779faf1174635d1552660 Author: Suman Anna Date: Mon Jul 13 12:34:55 2015 -0500 ARM: dts: AM4372: Add the wkupm3 rproc node Add the Wakeup M3 remote processor device node for the AM4372 SoC. The WkupM3 remote processor is used to implement and achieve low-power functionality on the AM33xx & AM43xx SoCs. This node is added as a child of the recently added l4_wkup node to reflect its presence within the SoC. Signed-off-by: Suman Anna Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/boot/dts/am4372.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) commit d129be27b8cffcec706b0ccf143c93fba8cc5726 Author: Suman Anna Date: Mon Jul 13 12:34:54 2015 -0500 ARM: dts: AM33xx: Update and move wkup_m3 node to l4 node The WakeupM3 remote processor device node has been moved to be a child node of the newly created l4_wkup node, to reflect its presence properly within the SoC. The node was added previously before any driver support, it is now updated as per the wkup_m3_rproc bindings added alongside the driver support. Signed-off-by: Suman Anna Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/boot/dts/am33xx.dtsi | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 6da74c54162c9582b21be978153513adbf44a678 Author: Dave Gerlach Date: Mon Jul 13 12:34:53 2015 -0500 ARM: OMAP2+: Use pdata-quirks for wkup_m3 reset management Use pdata-quirks to provide platform data required for reset management during boot and shutdown of the wkup_m3 processor on both the AM33xx and AM43xx SoCs. The WkupM3 remote processor is used to implement and achieve low-power functionality on the AM33xx & AM43xx SoCs. Signed-off-by: Suman Anna Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren arch/arm/mach-omap2/pdata-quirks.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 216883a420dcbf72a8a8e51afd1f33c9659d4c72 Merge: 3fbf02a 7bf46d0 Author: Olof Johansson Date: Tue Jul 14 11:51:16 2015 +0200 Merge tag 'renesas-dt-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Merge "Renesas ARM Based SoC DT Updates for v4.3" from Simon Horman: * Configure IRLM mode via DT on r8a7779 SoC * Use "arm,gic-400" for GIC on r8a777[01349] and r8a73a4 SoCs * Add pinctrl and gpio-hog for lcdc0 to armadillo800eva board * EtherAVB DT support for r8a7790 SoC * Minimal device tree for r8a7793 SoC and its Gose board * tag 'renesas-dt-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7779: Configure IRLM mode via DT ARM: shmobile: r8a7794 dtsi: Use "arm,gic-400" for GIC ARM: shmobile: r8a7793 dtsi: Use "arm,gic-400" for GIC ARM: shmobile: r8a7791 dtsi: Use "arm,gic-400" for GIC ARM: shmobile: r8a7790 dtsi: Use "arm,gic-400" for GIC ARM: shmobile: r8a73a4 dtsi: Use "arm,gic-400" for GIC ARM: shmobile: armadillo800eva dts: Add pinctrl and gpio-hog for lcdc0 ARM: shmobile: r8a7790: add EtherAVB DT support ARM: shmobile: r8a7790: add EtherAVB clocks ARM: shmobile: r8a7793: add minimal Gose board device tree ARM: shmobile: add r8a7793 minimal SoC device tree commit b3f81739ab2acb8416ad58568240d39f0cef3f51 Merge: 63f3469 bd82aff Author: Olof Johansson Date: Tue Jul 14 11:50:12 2015 +0200 Merge tag 'renesas-pm-domain-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup Merge "Renesas ARM Based SoC PM Domain Updates for v4.3" from Simon Horman: * Make rcar_sysc_ch const for r8a779[09] SoCs * Get rid of on_off_fn() function pointer * Use BIT() macro instead of open coding * Make struct rcar_sysc_ch * parameters const * Break infinite loop * Shrink rcar_sysc_ch size * Improve documentation * tag 'renesas-pm-domain-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: r8a7790: Make struct rcar_sysc_ch const ARM: shmobile: r8a7779: Make struct rcar_sysc_ch const ARM: shmobile: R-Car: Get rid of on_off_fn() function pointer ARM: shmobile: R-Car: Use BIT() macro instead of open coding ARM: shmobile: R-Car: Make struct rcar_sysc_ch * parameters const ARM: shmobile: R-Car: Break infinite loop ARM: shmobile: R-Car: Shrink rcar_sysc_ch size ARM: shmobile: R-Car: Improve documentation Signed-off-by: Olof Johansson commit 63f346937bdb52c09c87b10ca4ccd664a66c7fb8 Merge: bc0195a 20834a4 Author: Olof Johansson Date: Tue Jul 14 11:48:31 2015 +0200 Merge tag 'renesas-cleanup-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup Merge "Renesas ARM Based SoC Cleanup for v4.3" from Simon Horman: * Remove non-multiplatform code from timer * Remove CONFIG_ARCH_SHMOBILE_MULTI check in setup-rcar-gen2.c as it is always true * Remove legacy (non-multiplatform) support for both sh73a0/kzm9g and r8a7740/armadillo800eva * Move to_rmobile_pd from header to source file where it is used * Use BIT() macro instead of open coding in r-mobile PM code * r8a7779: Remove usage of GENPD_FLAG_PM_CLK flag which has no effect * tag 'renesas-cleanup-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: timer: r8a73a4 and r8a7790 are multi-platform only ARM: shmobile: R-Car Gen2: CONFIG_ARCH_SHMOBILE_MULTI is always set ARM: shmobile: Remove obsolete zboot support ARM: shmobile: R-Mobile: Remove legacy PM Domain code ARM: shmobile: Remove unused dma-register.h ARM: shmobile: Remove legacy SoC code for R-Mobile A1 ARM: shmobile: Drop r8a7740-armadillo800eva.dtb for legacy builds ARM: shmobile: Remove legacy armadillo800eva_defconfig ARM: shmobile: Remove legacy board code for Armadillo-800 EVA ARM: shmobile: Remove legacy SoC code for SH-Mobile AG5 ARM: shmobile: Drop sh73a0-kzm9g.dtb for legacy builds ARM: shmobile: Remove legacy kzm9g_defconfig ARM: shmobile: Remove legacy board code for KZM-A9-GT ARM: shmobile: r8a7779: Remove GENPD_FLAG_PM_CLK flag ARM: shmobile: R-Mobile: Use BIT() macro instead of open coding ARM: shmobile: R-Mobile: Move to_rmobile_pd from header to source file Signed-off-by: Olof Johansson commit cc017fb4d7a3308725afc02af9fd84a171e6e028 Author: Akash Goel Date: Mon Jun 29 14:50:21 2015 +0530 drm/i915/skl: Restrict the ring frequency table programming to SKL Ring frequency table programming is not required on BXT. Added separate checks to enable the programming only for SKL & skip for BXT. v2: Removed the BXT check from gen6_update_ring_freq function Issue: VIZ-5144 Signed-off-by: Akash Goel Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 91e2213bdb23e7ca863fba53c82fcd094aeddd24 Author: Masahiro Yamada Date: Fri Jul 10 13:53:58 2015 +0900 ARM: multi_v7_defconfig: enable UniPhier UART driver The UniPhier on-chip UART driver was merged into the mainline by commit 1a8d2903cb6a ("serial: 8250_uniphier: add UniPhier serial driver"). Enable it from multi_v7_defconfig. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 3fbf02a85b6f96b19dd49cabc2d8471d0bd4b5d3 Author: Masahiro Yamada Date: Fri Jul 10 13:54:00 2015 +0900 ARM: dts: UniPhier: add USB EHCI device nodes No dedicated driver compatible with "socionext,uniphier-ehci" has been supported in the mainline yet, so it falls into "generic-ehci" and it works well enough with our USB 2.0 host controllers. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts | 8 ++++++++ arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 21 +++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts | 8 ++++++++ arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 14 ++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts | 16 ++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld3.dtsi | 28 ++++++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts | 12 ++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 21 +++++++++++++++++++++ 8 files changed, 128 insertions(+) commit 1bf42507028a85b57260d00be2c33f5012bd3210 Author: Masahiro Yamada Date: Fri Jul 10 13:53:59 2015 +0900 ARM: dts: UniPhier: add on-chip UART device nodes The UniPhier on-chip UART driver was merged into the mainline by commit 1a8d2903cb6a ("serial: 8250_uniphier: add UniPhier serial driver"). Add device nodes to make it really available. We no longer have to depend on the on-board UART device (16550A), so let's change the chosen and aliases to point to the on-chip ones. Also, turn on the on-board Ethernet device. Signed-off-by: Masahiro Yamada Signed-off-by: Olof Johansson arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts | 21 ++++++++++++--- arch/arm/boot/dts/uniphier-ph1-ld4.dtsi | 42 +++++++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts | 21 ++++++++++++--- arch/arm/boot/dts/uniphier-ph1-pro4.dtsi | 42 +++++++++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts | 20 +++++++++++--- arch/arm/boot/dts/uniphier-ph1-sld3.dtsi | 33 +++++++++++++++++++++++ arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts | 21 ++++++++++++--- arch/arm/boot/dts/uniphier-ph1-sld8.dtsi | 42 +++++++++++++++++++++++++++++ 8 files changed, 230 insertions(+), 12 deletions(-) commit f57eb528ec3116e988d3b0ca9cea37cb55f7b17a Author: Baruch Siach Date: Mon Jul 6 14:41:44 2015 +0300 ARM: multi_v7_defconfig: enable Conexant Digicolor watchdog Signed-off-by: Baruch Siach Signed-off-by: Olof Johansson arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 475c3eeff57f22443c36c5ab9dc185f064b1f288 Author: Baruch Siach Date: Mon Jul 6 14:41:45 2015 +0300 ARM: digicolor: dts: use stdout-path for console configuration Signed-off-by: Baruch Siach Signed-off-by: Olof Johansson arch/arm/boot/dts/cx92755_equinox.dts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1172f67f952bc3caf6341b182fb312d5d036fd3a Author: Baruch Siach Date: Mon Jul 6 14:41:43 2015 +0300 ARM: digicolor: enable watchdog device Signed-off-by: Baruch Siach Signed-off-by: Olof Johansson arch/arm/boot/dts/cx92755.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) commit f6d1a814844efc4b326538bd35a8daecd37921ed Author: Lars-Peter Clausen Date: Mon Jul 13 19:40:52 2015 +0200 ASoC: max98925: Remove control_data initialization The control_data field of the snd_soc_codec struct is no longer used by ASoC drivers using standard regmap IO. There is no need to initialize the field to point to the drivers regmap struct, so drop that. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/max98925.c | 1 - 1 file changed, 1 deletion(-) commit 7ce0c22b07871402f9fb8939e09fb4c10811438a Author: Jiang Liu Date: Tue Jul 14 09:32:32 2015 +0100 metag/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner Signed-off-by: James Hogan arch/metag/kernel/irq.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 151dd346a2dadaa151d5110553e3fb08774c888e Author: Wolfram Sang Date: Fri Jul 10 22:48:16 2015 +0200 ARM: shmobile: apmu: silence build warnings With shmobile_defconfig but SMP=n && SUSPEND=n, I get: arch/arm/mach-shmobile/platsmp-apmu.c:49:12: warning: 'apmu_power_off' defined but not used [-Wunused-function] arch/arm/mach-shmobile/platsmp-apmu.c:70:12: warning: 'apmu_wrap' defined but not used [-Wunused-function] Annotate those functions like the functions around it. Signed-off-by: Wolfram Sang Signed-off-by: Simon Horman arch/arm/mach-shmobile/platsmp-apmu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 133c9d3cf211f46eae67e453c809db18cb906417 Author: Frank Li Date: Fri Jul 10 02:09:46 2015 +0800 ARM: imx: imx_v6_v7_defconfig enable imx6ul support default enable imx6ul support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit 3df2a1e60e2f9fdaf964ec64adb1976bce2ce82a Author: Frank Li Date: Thu Jul 9 01:23:00 2015 +0800 ARM: imx_v6_v7_defconfig: enable powerkey and syscon power off build in snvs powerkey build in syscon power off support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) commit 20c305f66077d2e646b23336d4404261dc283cf9 Author: Anson Huang Date: Fri Jul 10 02:09:47 2015 +0800 ARM: imx: add low-level debug support for i.mx6ul Enable low-level debug support for i.MX6UL by adding the debug port definitions for the SoC. Singed-off-by: Anson Huang Signed-off-by: Fugang Duan Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/Kconfig.debug | 9 +++++++++ arch/arm/include/debug/imx-uart.h | 13 +++++++++++++ 2 files changed, 22 insertions(+) commit 022d0716bb7e8e0f11eff4ee65fb1e62ffe8f6e1 Author: Frank Li Date: Fri Jul 10 02:09:41 2015 +0800 ARM: imx: add i.mx6ul msl support i.MX6UL is a new SOC, add MSL support Signed-off-by: Frank Li Signed-off-by: Shawn Guo arch/arm/mach-imx/Kconfig | 8 ++++++++ arch/arm/mach-imx/Makefile | 1 + arch/arm/mach-imx/cpu.c | 3 +++ arch/arm/mach-imx/mach-imx6ul.c | 43 +++++++++++++++++++++++++++++++++++++++++ arch/arm/mach-imx/mxc.h | 6 ++++++ 5 files changed, 61 insertions(+) commit 787b4271a6a0c09775241770782b22762f40bd6e Author: Frank Li Date: Fri Jul 10 02:09:42 2015 +0800 clk: imx: add imx6ul clk tree support Add imx6ul clock driver support. Signed-off-by: Anson Huang Signed-off-by: Bai Ping Signed-off-by: Fugang Duan Signed-off-by: Frank Li Signed-off-by: Shawn Guo drivers/clk/imx/Makefile | 1 + drivers/clk/imx/clk-imx6ul.c | 432 +++++++++++++++++++++++++++++++ include/dt-bindings/clock/imx6ul-clock.h | 240 +++++++++++++++++ 3 files changed, 673 insertions(+) commit 2d6f0600b2cd755959527230ef5a6fba97bb762a Author: Leonidas Da Silva Barbosa Date: Mon Jul 13 13:51:39 2015 -0300 crypto: vmx - Adding enable_kernel_vsx() to access VSX instructions vmx-crypto driver make use of some VSX instructions which are only available if VSX is enabled. Running in cases where VSX are not enabled vmx-crypto fails in a VSX exception. In order to fix this enable_kernel_vsx() was added to turn on VSX instructions for vmx-crypto. Signed-off-by: Leonidas S. Barbosa Signed-off-by: Herbert Xu 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 ++++ 4 files changed, 13 insertions(+) commit 72cd7b44bc99376b3f3c93cedcd052663fcdf705 Author: Leonidas Da Silva Barbosa Date: Mon Jul 13 13:51:01 2015 -0300 powerpc: Uncomment and make enable_kernel_vsx() routine available enable_kernel_vsx() function was commented since anything was using it. However, vmx-crypto driver uses VSX instructions which are only available if VSX is enable. Otherwise it rises an exception oops. This patch uncomment enable_kernel_vsx() routine and makes it available. Signed-off-by: Leonidas S. Barbosa Signed-off-by: Herbert Xu arch/powerpc/include/asm/switch_to.h | 1 + arch/powerpc/kernel/process.c | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) commit 1f644a7c7cd6a2c310312936d51cb56e6ac56f10 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:46:16 2015 +0900 crypto: marvell/cesa - 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 Acked-by: Boris Brezillon Signed-off-by: Herbert Xu drivers/crypto/marvell/cesa.c | 1 - 1 file changed, 1 deletion(-) commit 3f31a740c42e07f81bed8178c8ac1c7936ed6993 Author: Herbert Xu Date: Thu Jul 9 07:17:34 2015 +0800 crypto: testmgr - Reenable rfc4106 test Now that all implementations of rfc4106 have been converted we can reenable the test. Signed-off-by: Herbert Xu crypto/testmgr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46218750d5230abd86c2b054aa9b8cb74b23413e Author: Herbert Xu Date: Thu Jul 9 07:17:33 2015 +0800 crypto: caam - Use new IV convention This patch converts rfc4106 to the new calling convention where the IV is now part of the AD and needs to be skipped. Signed-off-by: Herbert Xu drivers/crypto/caam/caamalg.c | 75 ++++++++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 26 deletions(-) commit c3d219495ed583a03ea10b5b30bccec398299cb7 Author: Herbert Xu Date: Thu Jul 9 07:17:31 2015 +0800 crypto: nx - Use new IV convention This patch converts rfc4106 to the new calling convention where the IV is now part of the AD and needs to be skipped. This patch also makes use of type-safe AEAD functions where possible. Signed-off-by: Herbert Xu drivers/crypto/nx/nx-aes-gcm.c | 66 +++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 26 deletions(-) commit 7b05a373a7f8a69622006f3b1ffd06c2507d7990 Author: Herbert Xu Date: Thu Jul 9 07:17:30 2015 +0800 crypto: gcm - Use new IV convention This patch converts rfc4106 to the new calling convention where the IV is now part of the AD and needs to be skipped. This patch also makes use of the new type-safe way of freeing instances. Signed-off-by: Herbert Xu crypto/gcm.c | 114 ++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 37 deletions(-) commit e9b8d2c20a8749601f44c267590c954d222e9b3e Author: Herbert Xu Date: Thu Jul 9 07:17:28 2015 +0800 crypto: aesni - Use new IV convention This patch converts rfc4106 to the new calling convention where the IV is now in the AD and needs to be skipped. Signed-off-by: Herbert Xu arch/x86/crypto/aesni-intel_glue.c | 56 ++++++++++++++------------------------ 1 file changed, 20 insertions(+), 36 deletions(-) commit 34a1c740ea87b5077d1060448a05db14f5f29960 Author: Herbert Xu Date: Thu Jul 9 07:17:26 2015 +0800 crypto: tcrypt - Add support for new IV convention This patch allows the AEAD speed tests to cope with the new seqiv calling convention as well as the old one. Signed-off-by: Herbert Xu crypto/tcrypt.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 8537544679272b77b8bca1e02263bee4bbea14e6 Author: Herbert Xu Date: Thu Jul 9 07:17:25 2015 +0800 crypto: testmgr - Disable rfc4106 test and convert test vectors This patch disables the rfc4106 test while the conversion to the new seqiv calling convention takes place. It also converts the rfc4106 test vectors to the new format. Signed-off-by: Herbert Xu crypto/testmgr.c | 2 +- crypto/testmgr.h | 602 +++++++++++++++++++++++++++++-------------------------- 2 files changed, 319 insertions(+), 285 deletions(-) commit e13f0f6d540e8541d9351e213610e2eb5ff05717 Author: Herbert Xu Date: Thu Jul 9 07:17:23 2015 +0800 crypto: aead - Propagate new AEAD implementation flag for IV generators This patch allows the CRYPTO_ALG_AEAD_NEW flag to be propagated. Signed-off-by: Herbert Xu crypto/aead.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 5964f26c9f6003e9badedb768a0735eaf034ac56 Author: Herbert Xu Date: Thu Jul 9 07:17:22 2015 +0800 crypto: seqiv - Replace seqniv with seqiv This patch replaces the seqniv generator with seqiv when the underlying algorithm understands the new calling convention. This not only makes more sense as now seqiv is solely responsible for IV generation rather than also determining how the IV is going to be used, it also allows for optimisations in the underlying implementation. For example, the space for the IV could be used to add padding for authentication. This patch also removes the unnecessary copying of IV to dst during seqiv decryption as the IV is part of the AD and not cipher text. Signed-off-by: Herbert Xu crypto/seqiv.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) commit 5499b1a7311f5ec301ac2baa04a3482ee89ac0ab Author: Herbert Xu Date: Thu Jul 9 07:17:20 2015 +0800 crypto: echainiv - Fix encryption convention This patch fixes a bug where we were incorrectly including the IV in the AD during encryption. The IV must remain in the plain text for it to be encrypted. During decryption there is no need to copy the IV to dst because it's now part of the AD. This patch removes an unncessary check on authsize which would be performed by the underlying decrypt call. Finally this patch makes use of the type-safe init/exit functions. Signed-off-by: Herbert Xu crypto/echainiv.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit f6da32059324e06adacbc1235d50cce4de9d817a Author: Herbert Xu Date: Thu Jul 9 07:17:19 2015 +0800 crypto: cryptd - Propagate new AEAD implementation flag This patch allows the CRYPTO_ALG_AEAD_NEW flag to be propagated. Signed-off-by: Herbert Xu crypto/cryptd.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 846f97df822c00e0042c15b60e01ca0005b3e737 Author: Herbert Xu Date: Thu Jul 9 07:17:18 2015 +0800 crypto: pcrypt - Propagate new AEAD implementation flag This patch allows the CRYPTO_ALG_AEAD_NEW flag to be propagated. It also restores the ASYNC bit that went missing during the AEAD conversion. Signed-off-by: Herbert Xu crypto/pcrypt.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit ba75e15fa0c4db489ed0d0a9745f904a7d5e19cc Author: Herbert Xu Date: Thu Jul 9 07:17:17 2015 +0800 crypto: aead - Add type-safe function for freeing instances This patch adds a type-safe function for freeing AEAD instances to struct aead_instance. This replaces the existing free function in struct crypto_template which does not know the type of the instance that it's freeing. Signed-off-by: Herbert Xu crypto/aead.c | 13 +++++++++++++ include/crypto/internal/aead.h | 1 + 2 files changed, 14 insertions(+) commit 319382a6970899f02f18da4b0083a6e55942456d Author: Herbert Xu Date: Thu Jul 9 07:17:15 2015 +0800 crypto: api - Add instance free function to crypto_type Currently the task of freeing an instance is given to the crypto template. However, it has no type information on the instance so we have to resort to checking type information at runtime. This patch introduces a free function to crypto_type that will be used to free an instance. This can then be used to free an instance in a type-safe manner. Signed-off-by: Herbert Xu crypto/algapi.c | 14 ++++++++++++-- include/crypto/algapi.h | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) commit 23ad69aafec5d3815fdbe59aea56ec4b59dcae60 Author: Herbert Xu Date: Wed Jul 8 21:40:39 2015 +0800 crypto: nx/842 - Fix context corruption The transform context is shared memory and must not be written to without locking. This patch adds locking to nx-842 to prevent context corruption. Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-crypto.c | 48 ++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 13 deletions(-) commit 2c11a3f970d143f86bff096ca84a3d3f3b5ac3c1 Author: Herbert Xu Date: Wed Jul 8 12:15:14 2015 +0800 crypto: aead - Add aead_queue interface This patch adds a type-safe queueing interface for AEAD. Signed-off-by: Herbert Xu include/crypto/internal/aead.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 31d228cc644034da97394bbadb2dc55ad9bcddb9 Author: Herbert Xu Date: Wed Jul 8 11:55:30 2015 +0800 crypto: api - Remove unused __crypto_dequeue_request The function __crypto_dequeue_request is completely unused. Signed-off-by: Herbert Xu crypto/algapi.c | 11 ++--------- include/crypto/algapi.h | 1 - 2 files changed, 2 insertions(+), 10 deletions(-) commit 773bb50625cd23c7711bcd1410fffe8a0cab121b Merge: 1425d2d 030f4e9 Author: Herbert Xu Date: Tue Jul 14 14:55:32 2015 +0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Merge the crypto tree to pull in the nx reentrancy patch. commit 99e1dfb7d2094d9afc1dca57d525f7b36aa18079 Author: Aravind Gopalakrishnan Date: Mon Jul 13 06:53:02 2015 -0500 EDAC, mce_amd: Don't emit 'CE' for Deferred error Currently, when decoding an MCE, we display 'CE' for a Deferred error, like this: [Hardware Error]: CPU:0 (15:2:0) MC4_STATUS[Over|CE|MiscV|-|AddrV|Deferred|-|UECC]: 0xdc04b00095080813 When the 'UC' bit in the MCx_STATUS register is clear, the error status is either a Corrected error or Deferred error as determined by the 'Deferred' bit. So do not print 'CE' on a deferred error. Refer to AMD Error Scope Hierarchy table in a newer BKDG (example: 49125_15h_Models_30h-3Fh_BKDG.pdf, section "RAS Features"). Signed-off-by: Aravind Gopalakrishnan Cc: Mauro Carvalho Chehab Cc: linux-edac Link: http://lkml.kernel.org/r/1436788382-6463-1-git-send-email-aravind.gopalakrishnan@amd.com Signed-off-by: Borislav Petkov drivers/edac/mce_amd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit aa66d6f87f300b15ac2efdcde9e198bf5a9020ce Author: Oleg Drokin Date: Mon Jul 13 23:17:57 2015 -0400 staging/lustre/libcfs: Fix kstrtouint return value check fix Apparently kstrtouint could return not just -EINVAL, but also -ERANGE, so make sure we just check the return value for something negative. Noticed by Dan Carpenter Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 96d1865d344a966ab534fb16c55e8dd4601efb71 Author: Dmitry Eremin Date: Mon Jul 13 23:17:56 2015 -0400 staging/lustre/libcfs: remove unused portal_enter_debugger variable Remove portal_enter_debugger because it's not used any more. Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 3 --- 1 file changed, 3 deletions(-) commit 35ca907d245e8c218f39b6ed8bd6a1c656d056cc Author: Dmitry Eremin Date: Mon Jul 13 23:17:55 2015 -0400 staging/lustre/libcfs: get rid of debugfs/lnet/console_{min, max}_delay_centisecs They are just fancy module parameters wrappers, so just the same functionality now would be accessible via /sys/module/libcfs/parameters/libcfs_console_{min,max}_delay Also install compatibility symlinks Signed-off-by: Dmitry Eremin Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 69 ++++++++++++++++++++-- drivers/staging/lustre/lustre/libcfs/module.c | 82 ++------------------------- 2 files changed, 68 insertions(+), 83 deletions(-) commit 8dc08446d0671709bdec9e037845b014e33663b1 Author: Oleg Drokin Date: Mon Jul 13 23:17:54 2015 -0400 staging/lustre/libcfs: get rid of debugfs/lnet/debug_mb It's just a fancy libcfs_debug_mb module parameter wrapper, so just add debug buffer size check and resizing and the same functionality now would be accessible via /sys/module/libcfs/parameters/libcfs_debug_mb Also add a symlink for backwards compatibility. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 40 ++++++++++++++++++++++-- drivers/staging/lustre/lustre/libcfs/module.c | 32 ++----------------- drivers/staging/lustre/lustre/libcfs/tracefile.c | 12 ------- drivers/staging/lustre/lustre/libcfs/tracefile.h | 1 - 4 files changed, 40 insertions(+), 45 deletions(-) commit 3e9f88e68801fe7f862d7ab57041a68f91ce9b5a Author: Perry Hooker Date: Mon Jul 13 17:33:47 2015 -0600 staging: lustre: libcfs: move assignment out of conditional Found by checkpatch.pl Signed-off-by: Perry Hooker Signed-off-by: Greg Kroah-Hartman .../staging/lustre/include/linux/libcfs/libcfs_fail.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 1b2d5577c507d35cc2ea205eba0b101003cc2fe9 Author: Ronit Halder Date: Fri Jul 10 23:05:39 2015 +0530 Staging: lustre: fixed a blank line after declarations coding style issue Fixed a blank line after declarations coding style issue Signed-off-by: Ronit Halder Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_merge.c | 1 + 1 file changed, 1 insertion(+) commit 5d3d44729775998ad9efb47f2946378c764854a4 Author: Kris Baumann Date: Thu Jul 9 22:12:48 2015 +0200 Staging: lustre: lustre: obdclass: genops: fixed brace coding style issues Fixed several brace coding style issues. Signed-off-by: Kris Baumann Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/genops.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit 574150f0d275c4caf04156ecda6f9f988d6f5ffd Author: Anders Fridlund Date: Thu Jul 9 11:02:09 2015 +0200 staging:lustre: fix "space required after that ', '" error in cl_page.c This is a patch to the cl_page.c file that fixes a "space required after that ','" error found by the checkpatch.pl tool. Signed-off-by: Anders Fridlund Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/cl_page.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9e0e332a7a4ac8a00ba06b536ecda8582b5a0814 Author: Matt Mooney Date: Wed Jul 8 09:21:11 2015 -0700 staging: lustre: make ptlrpc_init static fix sparse warning in lustre/ptlrpc/ptlrpc_module.c:54:12: warning: symbol 'ptlrpc_init' was not declared. Should it be static? The __init macro is moved before the function name to match standard usage. Signed-off-by: Matt Mooney Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db07a4c968fb5045c382be493bd2bd3ba8412b3e Author: Hari Prasath Gujulan Elango Date: Wed Jul 8 13:34:36 2015 +0000 staging: lustre: remove dead code This patch removes commented code. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_cache.c | 6 ------ 1 file changed, 6 deletions(-) commit 90c94b564265474cffe55888ce25f45ce0ce4bb5 Author: Dmitry Eremin Date: Mon Jul 6 12:48:55 2015 -0400 staging/lustre/libcfs: Remove unneeded lnet watchdog_ratelimit sysctl It is no longer used anywhere. Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h | 1 - drivers/staging/lustre/lustre/libcfs/debug.c | 3 --- drivers/staging/lustre/lustre/libcfs/module.c | 12 ------------ 3 files changed, 16 deletions(-) commit 323b0b2c1e57d3c089473d755ff9a001d1a6bc8f Author: Dmitry Eremin Date: Mon Jul 6 12:48:54 2015 -0400 staging/lustre/libcfs: Remove redundant enums and sysctl moduleparams /proc/sys/lnet/lnet_memused Remove memory tracking for LNet. Remove redundant enums definition. Signed-off-by: Dmitry Eremin Signed-off-by: Greg Kroah-Hartman .../lustre/include/linux/libcfs/libcfs_private.h | 28 +-------------- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 12 ------- .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 5 --- .../staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 3 +- drivers/staging/lustre/lnet/lnet/router_proc.c | 11 ------ .../staging/lustre/lustre/include/obd_support.h | 12 +++---- drivers/staging/lustre/lustre/libcfs/debug.c | 3 -- drivers/staging/lustre/lustre/libcfs/module.c | 41 ---------------------- drivers/staging/lustre/lustre/obdclass/class_obd.c | 6 ++-- 9 files changed, 9 insertions(+), 112 deletions(-) commit 8710427dd68f4dff8976d221e220317cea20ecec Author: Oleg Drokin Date: Mon Jul 6 12:48:53 2015 -0400 staging/lustre/libcfs: get rid of debugfs/lnet/console_backoff module parameter libcfs_console_backoff accessible through /sys/module/libcfs/parameters/libcfs_console_backoff would do the same thing, just add a special "uintpos" parameter type to disallow 0 values too. Also add a symlink to the module parameter variable for backwards compatibility Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/debug.c | 31 +++++++++++++- drivers/staging/lustre/lustre/libcfs/module.c | 59 +++++++++++---------------- 2 files changed, 54 insertions(+), 36 deletions(-) commit 1b4d97b6c6ca05446ff33843a7b174cdd765df5a Author: Oleg Drokin Date: Mon Jul 6 12:48:52 2015 -0400 staging/lustre/libcfs: Remove redundant lnet debugfs variables /proc/sys/lnet/console_ratelimit, debug_path and panic_on_lbug are module parameters with no special magic accessible via /sys/module/libcfs/parameters/libcfs_console_ratelimit, /sys/module/libcfs/parameters/libcfs_debug_file_path and /sys/module/libcfs/parameters/libcfs_panic_on_lbug respectively. As such just replace them with corresponding symlinks Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/module.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit 0871d551af37c72c308397c16c31bae945e6a79d Author: Oleg Drokin Date: Mon Jul 6 12:48:51 2015 -0400 staging/lustre/libcfs: move /proc/sys/lnet to debugfs Parameters in lnet sysctl are of debug quantity, so let's move them to debugfs instead. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/module.c | 86 +++++++++++++++++---------- 1 file changed, 56 insertions(+), 30 deletions(-) commit 8952aad1cfc178cae5205546be62f0e22a056f0b Author: Oleg Drokin Date: Mon Jul 6 12:48:50 2015 -0400 staging/lustre: Get rid of remaining /proc/sys/lustre plumbing Since all of the variables from /proc/sys/lustre were moved to /sys/fs/lustre, get rid of the remaining infrastructure. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd_class.h | 1 - drivers/staging/lustre/lustre/obdclass/class_obd.c | 1 - .../lustre/lustre/obdclass/linux/linux-sysctl.c | 30 ---------------------- 3 files changed, 32 deletions(-) commit bcef118e7ed67e28edcaab9be9ca11412176c540 Author: Oleg Drokin Date: Mon Jul 6 12:48:49 2015 -0400 staging/lustre/obdclass: Move AT controls from sysctl to sysfs Adaptive Timeouts controls are being moved from /proc/sys/lustre to /sys/fs/lustre Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/obdclass/linux/linux-sysctl.c | 45 ++++-------------- drivers/staging/lustre/sysfs-fs-lustre | 53 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 35 deletions(-) commit 9e7fa14935901bcd09576b2866d5dd15f69caf83 Author: Oleg Drokin Date: Mon Jul 6 12:48:48 2015 -0400 staging/lustre/obdclass: move debug controls to sysfs debug_peer_on_timeout, dump_on_timeout and dump_on_eviction controls from /proc/sys/lustre to /sys/fs/lustre Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/obdclass/linux/linux-sysctl.c | 28 ++++++---------------- drivers/staging/lustre/sysfs-fs-lustre | 26 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 21 deletions(-) commit df476a4d5de09d9324b108fc9c5ff2c00a0850d0 Author: Oleg Drokin Date: Mon Jul 6 12:48:47 2015 -0400 staging/lustre/obdclass: move max_dirty_mb from sysctl to sysfs max_dirty_mb is now a parameter in /sys/fs/lustre/ Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/obdclass/linux/linux-sysctl.c | 74 +++++++++------------- drivers/staging/lustre/sysfs-fs-lustre | 12 ++++ 2 files changed, 43 insertions(+), 43 deletions(-) commit e2424a1265f2772b66f068c205256e2aef5f74a0 Author: Oleg Drokin Date: Mon Jul 6 12:48:46 2015 -0400 staging/lustre/obdclass: move sysctl timeout to sysfs This is the first step of moving lustre sysctls from /proc/sys/lustre to /sys/fs/lustre Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd_class.h | 4 +- drivers/staging/lustre/lustre/obdclass/class_obd.c | 6 +- .../lustre/lustre/obdclass/linux/linux-sysctl.c | 66 +++++++++++++++++----- drivers/staging/lustre/sysfs-fs-lustre | 12 ++++ 4 files changed, 71 insertions(+), 17 deletions(-) commit 082a33441f5e0f8b59b6a7297fdfca064d55fb26 Author: Oleg Drokin Date: Mon Jul 6 12:48:45 2015 -0400 staging/lustre: Remove unneeded ldlm_timeout control ldlm_timeout is used server-side to determine AST timeouts, so it makes no sense on the client, esp. since it's not really used anywhere. Remove all traces of it except from the config where make it a noop. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/include/obd_support.h | 4 ---- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 9 --------- drivers/staging/lustre/lustre/obdclass/class_obd.c | 4 ---- drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c | 9 --------- drivers/staging/lustre/lustre/obdclass/obd_config.c | 7 +------ 5 files changed, 1 insertion(+), 32 deletions(-) commit 2836cd81a9ca8d3fc7c86fe4167b8053d784e725 Author: Oleg Drokin Date: Mon Jul 6 12:48:44 2015 -0400 staging/lustre: Remove now obsolete memory tracking sysctls In the past when Lustre did its own allocation amounts tracking the results were shown in sysctl as current and overall max number of bytes and pages allocated. Now that we don't track these, remove the sysctls. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/obdclass/linux/linux-sysctl.c | 124 --------------------- 1 file changed, 124 deletions(-) commit 80595b7498a1c4c7bb4f3db3bd8b7998196c8719 Author: Oleg Drokin Date: Mon Jul 6 12:48:43 2015 -0400 staging/lustre: remove alloc_fail_rate sysctl It was used to control allocation failure rate, but there is in-kernel way of doing that that's more versatile too. This is going to remove just the sysctl, the underlying variable will be removed once all OBD_ALLOC* macros removal patchseries land. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman .../lustre/lustre/obdclass/linux/linux-sysctl.c | 38 ---------------------- 1 file changed, 38 deletions(-) commit 3c4872f94359ed38a1392c0a9238c48a9aee6f8f Author: Oleg Drokin Date: Mon Jul 6 12:48:42 2015 -0400 staging/lustre/obdclass: fix class_procfs_init error return value Dan Carpenter noticed that procfs conversion patches introduced a bug where should kobject_create_and_add, an error is not returned from class_procfs_init. Reported-by: Dan Carpenter Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/linux/linux-module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit faa7a4e3e03889267f66a98d85434b4ff7dd0087 Author: Oleg Drokin Date: Mon Jul 6 12:48:41 2015 -0400 staging/lustre/ldlm: In ldlm_pools_fini make sure there was init first. It turns out if you call ldlm_pools_fini without completing the ldlm_pools_init, then attempt to unregister not yet registered shrinkers makes the kernel very unhappy. So make sure we have them registered first. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 6a491f2b80f2806221ba3a5a3e26fbe945f82d83 Author: Oleg Drokin Date: Mon Jul 6 12:48:40 2015 -0400 staging/lustre: make ldebugfs_remove recursive ldebugfs_remove is usually called on directories with files passed in as attributes, so simple debugfs_remove failes on them as not empty Switch to debugfs_remove_recursive. This fixes a number of problems where a new filesystem is mounted after being unmounted first. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c150f0081647c0b96ce0d61d541b9b470433676 Author: Oleg Drokin Date: Wed Jun 24 10:09:24 2015 -0400 staging/lustre/lov: Move target sysfs symlink removal to LOV freeing This helps to avoid use after free on unmount. Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_obd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit a82de7ea52e74b39b9e13ec0d6372378181dcfd0 Author: Oleg Drokin Date: Wed Jun 24 10:07:45 2015 -0400 staging/lustre/lnet: Move asm/irq.h include after linux includes Apparently m86k cannot build if you include asm/irq.h before linux/* includes and fixing it there is hard. So just move asm/irq.h include to where it does not cause any problems. Thanks to Geert Uytterhoeven for getting to the root of it. Signed-off-by: Oleg Drokin Compile-Tested-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fad22d71bbba464bfb30ea5e5c18c52cc8e35168 Author: Julia Lawall Date: Sat Jun 20 21:07:49 2015 +0200 staging: lustre: libcfs: drop trivially useless initialization Remove initialization of a variable that is immediately reassigned. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/libcfs/fail.c | 2 +- drivers/staging/lustre/lustre/libcfs/libcfs_cpu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 0d0c8b75713491cdb3f6e7792b68ccaae9e7518e Author: Julia Lawall Date: Sat Jun 20 21:07:52 2015 +0200 staging: lustre: obdclass: llog: drop trivially useless initialization Remove initialization of a variable that is immediately reassigned. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/llog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a84b7fd5f7539a1eca943a17ba9d7cafc10f3f90 Author: Julia Lawall Date: Sat Jun 20 21:07:51 2015 +0200 staging: lustre: lmv: drop trivially useless initialization Remove initialization of a variable that is immediately reassigned. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_obd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 53a0d4868703c5d5d5dc0d0eaf9166d6bba9a697 Author: Julia Lawall Date: Sat Jun 20 21:07:53 2015 +0200 staging: lustre: osc: drop trivially useless initialization Remove initialization of a variable that is immediately reassigned. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_page.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f82ced5d6bce6cd0719e95f744bfeb8f81677790 Author: Julia Lawall Date: Sat Jun 20 21:07:50 2015 +0200 staging: lustre: llite: drop trivially useless initialization Remove initialization of a variable that is immediately reassigned. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; identifier x; constant C; expression e; @@ T x - = C ; x = e; // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/llite/file.c | 2 +- drivers/staging/lustre/lustre/llite/xattr_cache.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 597851ac2ae4e3857f2ab410adb0775951a09fa0 Author: Julia Lawall Date: Sat Jun 20 18:59:10 2015 +0200 staging: lustre: ptlrpc: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ptlrpc/client.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 8 ++++---- drivers/staging/lustre/lustre/ptlrpc/nrs.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.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 | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) commit 3408e9aeee5fedd0eab223502074cad3120324b0 Author: Julia Lawall Date: Sat Jun 20 18:59:09 2015 +0200 staging: lustre: osc: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/osc/osc_dev.c | 2 +- drivers/staging/lustre/lustre/osc/osc_request.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit efeb257dcf1c84fa05eff06cb829906576ae21b8 Author: Julia Lawall Date: Sat Jun 20 18:59:08 2015 +0200 staging: lustre: obdecho: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdecho/echo_client.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 485640b536adc451330815a75f433be15c655243 Author: Julia Lawall Date: Sat Jun 20 18:59:07 2015 +0200 staging: lustre: obdclass: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/obdclass/class_obd.c | 2 +- drivers/staging/lustre/lustre/obdclass/genops.c | 6 +++--- drivers/staging/lustre/lustre/obdclass/llog.c | 6 +++--- drivers/staging/lustre/lustre/obdclass/lprocfs_status.c | 2 +- drivers/staging/lustre/lustre/obdclass/lustre_peer.c | 2 +- drivers/staging/lustre/lustre/obdclass/obd_config.c | 10 +++++----- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 12 ++++++------ 7 files changed, 20 insertions(+), 20 deletions(-) commit c829be817600694bb99bb978943a6ef966874160 Author: Julia Lawall Date: Sat Jun 20 18:59:06 2015 +0200 staging: lustre: mgc: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mgc/mgc_request.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bb144d09a95c6016528ec869b4398ae679cc4df7 Author: Julia Lawall Date: Sat Jun 20 18:59:05 2015 +0200 staging: lustre: mdc: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/mdc/mdc_request.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 36a86fe68f875d2b3fc8a61d4a80494e57333f1f Author: Julia Lawall Date: Sat Jun 20 18:59:04 2015 +0200 staging: lustre: lov: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lov/lov_dev.c | 2 +- drivers/staging/lustre/lustre/lov/lov_io.c | 2 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- drivers/staging/lustre/lustre/lov/lov_pool.c | 2 +- drivers/staging/lustre/lustre/lov/lov_request.c | 18 +++++++++--------- 5 files changed, 13 insertions(+), 13 deletions(-) commit 76e4290ccc428fddd9052d12ceb5b806ae982a26 Author: Julia Lawall Date: Sat Jun 20 18:59:03 2015 +0200 staging: lustre: lmv: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lmv/lmv_intent.c | 2 +- drivers/staging/lustre/lustre/lmv/lmv_obd.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 94e67761bd05150976342516180508d93a0a7c07 Author: Julia Lawall Date: Sat Jun 20 18:59:02 2015 +0200 staging: lustre: ldlm: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 4 ++-- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 8 ++++---- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) commit c38ce3548e0c5df27b63f9b591f11a9c34416576 Author: Julia Lawall Date: Sat Jun 20 18:59:01 2015 +0200 staging: lustre: lclient: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 812f205962e20f4e4052e42d0009b05988760ef2 Author: Julia Lawall Date: Sat Jun 20 18:59:00 2015 +0200 staging: lustre: fld: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fld/fld_cache.c | 2 +- drivers/staging/lustre/lustre/fld/fld_request.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6c7c65538632f0961df8f02e3be446eb03f687e4 Author: Julia Lawall Date: Sat Jun 20 18:58:59 2015 +0200 staging: lustre: fid: Use !x to check for kzalloc failure !x is more normal for kzalloc failure in the kernel. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; statement S1, S2; @@ x = kzalloc(...); if ( - x == NULL + !x ) S1 else S2 // Signed-off-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman drivers/staging/lustre/lustre/fid/fid_request.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 638d3c63811e31b2745f7fdd568b38c8abcffe03 Merge: 74fe61f f760b87 Author: David S. Miller Date: Mon Jul 13 17:28:09 2015 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: net/bridge/br_mdb.c Minor conflict in br_mdb.c, in 'net' we added a memset of the on-stack 'ip' variable whereas in 'net-next' we assign a new member 'vid'. Signed-off-by: David S. Miller commit 86665d2897209429a7e4a003764b9fc5034dbfa1 Author: Stephen Boyd Date: Tue Jul 7 18:30:05 2015 -0700 clk: st: Fix error paths and allocation style The error paths in this file leak memory and mappings and test for pointers being valid after dereferencing them. Fix these problems and properly free resources on errors. Fix some stylistic things too like using sizeof(*ptr) and fitting more code on a single line. Note that we don't unregister clocks here. That needs a clk_composite_unregister() API that we don't have right now. Acked-by: Gabriel Fernandez Cc: Pankaj Dev Signed-off-by: Stephen Boyd drivers/clk/st/clkgen-mux.c | 83 ++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 38 deletions(-) commit 74fe61f17e999a458d5f64ca2aa9a0282ca32198 Author: Nikolay Aleksandrov Date: Fri Jul 10 08:02:08 2015 -0700 bridge: mdb: add vlan support for user entries Until now all user mdb entries were added in vlan 0, this patch adds support to allow the user to specify the vlan for the entry. About the uapi change a hole in struct br_mdb_entry is used so the size and offsets are kept the same (verified with pahole and tested with older iproute2). Example: $ bridge mdb dev br0 port eth1 grp 239.0.0.1 permanent vlan 2000 dev br0 port eth1 grp 239.0.0.1 permanent vlan 200 dev br0 port eth1 grp 239.0.0.1 permanent Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller include/uapi/linux/if_bridge.h | 1 + net/bridge/br_mdb.c | 6 ++++++ 2 files changed, 7 insertions(+) commit c4675f935399cbdd3ba3869b0bf6c60528c8111a Author: Daniel Borkmann Date: Mon Jul 13 20:49:32 2015 +0200 ebpf: remove self-assignment in interpreter's tail call ARG1 = BPF_R1 as it stands, evaluates to regs[BPF_REG_1] = regs[BPF_REG_1] and thus has no effect. Add a comment instead, explaining what happens and why it's okay to just remove it. Since from user space side, a tail call is invoked as a pseudo helper function via bpf_tail_call_proto, the verifier checks the arguments just like with any other helper function and makes sure that the first argument (regs[BPF_REG_1])'s type is ARG_PTR_TO_CTX. Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller kernel/bpf/core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit de551f2eb22a77a498cea9686f39e79f25329109 Author: Tom Herbert Date: Mon Jul 13 08:48:00 2015 -0700 net: Build IPv6 into kernel by default This patch makes the default to build IPv6 into the kernel. IPv6 now has significant traction and any remaining vestiges of IPv6 not being provided parity with IPv4 should be swept away. IPv6 is now core to the Internet and kernel. Points on IPv6 adoption: - Per Google statistics, IPv6 usage has reached 7% on the Internet and continues to exhibit an exponential growth rate https://www.google.com/intl/en/ipv6/statistics.html - Just a few days ago ARIN officially depleted its IPv4 pool - IPv6 only data centers are being successfully built (e.g. at Facebook) This patch changes the IPv6 Kconfig for IPV6. Default for CONFIG_IPV6 is set to "y" and the text has been updated to reflect the maturity of IPv6. Impact: Under some circumstances building modules in to kernel might have a performance advantage. In my testing, I did notice a very slight improvement. This will obviously increase the size of the kernel image. In my configuration I see: IPv6 as module: text data bss dec hex filename 9703666 1899288 933888 12536842 bf4c0a vmlinux IPv6 built into kernel text data bss dec hex filename 9436490 1879600 913408 12229498 ba9b7a vmlinux Which increases text size by ~270K (2.8% increase in size for me). If image size is an issue, presumably for a device which does not do IP networking (IMO we should be discouraging IPv4-only devices), IPV6 can be disabled or still built as a module. Acked-by: YOSHIFUJI Hideaki Signed-off-by: Tom Herbert Signed-off-by: David S. Miller net/ipv6/Kconfig | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit c149e4cd08ba01f4d2d0104f469d5f5419294e06 Author: Jiang Liu Date: Wed Jun 3 11:46:22 2015 +0800 x86/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/io_apic.c | 2 +- arch/x86/kernel/apic/vector.c | 3 ++- arch/x86/kernel/irq.c | 5 +++-- drivers/xen/events/events_base.c | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) commit ff96b4d0333baa001b404882b28b7d992b02415b Author: Jiang Liu Date: Mon Jun 1 16:05:18 2015 +0800 x86/irq: Use accessor irq_data_get_irq_handler_data() Use accessor function irq_data_get_irq_handler_data() to hide irq_desc implementation details. Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/msi.c | 2 +- arch/x86/kernel/hpet.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 5f2dbbc51734fc51e8e3e2c3ab7096a58ac72e86 Author: Jiang Liu Date: Mon Jun 1 16:05:14 2015 +0800 x86/irq: Use accessor irq_data_get_node() Use accessor irq_data_get_node() to hide struct irq_data implementation detail, so we can move node to irq_data_common later. Signed-off-by: Jiang Liu Cc: Borislav Petkov Signed-off-by: Thomas Gleixner arch/x86/kernel/apic/vector.c | 8 ++++---- arch/x86/platform/uv/uv_irq.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 4ab0c591c1482c90d14c1d11bf4b469c54a31ecc Author: Anatol Pomozov Date: Sun Jul 12 08:14:21 2015 -0700 ASoC: max98357a: Do not print error message on asoc/gpio errors gpiolib/asoc system already prints enough info if there are any problems. Signed-off-by: Anatol Pomozov Signed-off-by: Mark Brown sound/soc/codecs/max98357a.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) commit 508e61953f7b2c5c828412e5b46fa99b8a3fbaa1 Author: Anatol Pomozov Date: Sun Jul 12 08:14:20 2015 -0700 ASoC: max98357a: Use DAI input as a dapm widget Spec does not say anything about DAC called SDMode. It makes more sense to use DAI input that created automatically by DAPM and route it to Speaker output. Signed-off-by: Anatol Pomozov Signed-off-by: Mark Brown sound/soc/codecs/max98357a.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 5119222f2e3de2e51a3b3270036d53c55ce68236 Author: Anatol Pomozov Date: Sun Jul 12 08:14:19 2015 -0700 ASoC: max98357a: Make 'sdmode-gpios' dts property optional The option is not needed if chip is always on or managed by some other part of system like platform card driver. Signed-off-by: Anatol Pomozov Signed-off-by: Mark Brown Documentation/devicetree/bindings/sound/max98357a.txt | 6 +++++- sound/soc/codecs/max98357a.c | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) commit 7bd393543287b921f964a350166bf2866527a1b5 Author: James Ban Date: Tue Jun 30 13:39:39 2015 +0900 regulator: da9211: support da9215 This is a patch for supporting da9215 buck converter. Signed-off-by: James Ban Signed-off-by: Mark Brown .../devicetree/bindings/regulator/da9211.txt | 32 +++++++++++++++-- drivers/regulator/Kconfig | 6 ++-- drivers/regulator/da9211-regulator.c | 40 ++++++++++++++++------ drivers/regulator/da9211-regulator.h | 18 +++++----- include/linux/regulator/da9211.h | 19 +++++----- 5 files changed, 81 insertions(+), 34 deletions(-) commit fda4d578ed0a7e1d116f56a15efea0e4ba78acad Author: Laurent Bigonville Date: Tue Jul 7 23:10:52 2015 +0200 selinux: explicitly declare the role "base_r" This fixes the compilation of policy generated by mdp with the recent version of checkpolicy. Signed-off-by: Laurent Bigonville Acked-by: Stephen Smalley Signed-off-by: Paul Moore scripts/selinux/mdp/mdp.c | 1 + 1 file changed, 1 insertion(+) commit c3c188b2c3ed29effe8693672ee1c84184103b4e Author: David Howells Date: Fri Jul 10 17:19:58 2015 -0400 selinux: Create a common helper to determine an inode label [ver #3] Create a common helper function to determine the label for a new inode. This is then used by: - may_create() - selinux_dentry_init_security() - selinux_inode_init_security() This will change the behaviour of the functions slightly, bringing them all into line. Suggested-by: Stephen Smalley Signed-off-by: David Howells Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 87 +++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 46 deletions(-) commit bd1741f4cf05d7709348f591d16eeb5f786de673 Author: Stephen Smalley Date: Fri Jul 10 17:19:57 2015 -0400 selinux: Augment BUG_ON assertion for secclass_map. Ensure that we catch any cases where tclass == 0. Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/avc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5dee25d08eac01472904b0ab32ce35edee5c0518 Author: Stephen Smalley Date: Fri Jul 10 17:19:57 2015 -0400 selinux: initialize sock security class to default value Initialize the security class of sock security structures to the generic socket class. This is similar to what is already done in inode_alloc_security for files. Generally the sclass field will later by set by socket_post_create or sk_clone or sock_graft, but for protocol implementations that fail to call any of these for newly accepted sockets, we want some sane default that will yield a legitimate avc denied message with non-garbage values for class and permission. Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 1 + 1 file changed, 1 insertion(+) commit 9629d04ae06812f217846b69728c969afee690b4 Author: Waiman Long Date: Fri Jul 10 17:19:56 2015 -0400 selinux: reduce locking overhead in inode_free_security() The inode_free_security() function just took the superblock's isec_lock before checking and trying to remove the inode security struct from the linked list. In many cases, the list was empty and so the lock taking is wasteful as no useful work is done. On multi-socket systems with a large number of CPUs, there can also be a fair amount of spinlock contention on the isec_lock if many tasks are exiting at the same time. This patch changes the code to check the state of the list first before taking the lock and attempting to dequeue it. The list_del_init() can be called more than once on the same list with no harm as long as they are properly serialized. It should not be possible to have inode_free_security() called concurrently with list_add(). For better safety, however, we use list_empty_careful() here even though it is still not completely safe in case that happens. Signed-off-by: Waiman Long Acked-by: Stephen Smalley Signed-off-by: Paul Moore security/selinux/hooks.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit fa1aa143ac4a682c7f5fd52a3cf05f5a6fe44a0a Author: Jeff Vander Stoep Date: Fri Jul 10 17:19:56 2015 -0400 selinux: extended permissions for ioctls Add extended permissions logic to selinux. Extended permissions provides additional permissions in 256 bit increments. Extend the generic ioctl permission check to use the extended permissions for per-command filtering. Source/target/class sets including the ioctl permission may additionally include a set of commands. Example: allowxperm : ioctl unpriv_app_socket_cmds auditallowxperm : ioctl priv_gpu_cmds Where unpriv_app_socket_cmds and priv_gpu_cmds are macros representing commonly granted sets of ioctl commands. When ioctl commands are omitted only the permissions are checked. This feature is intended to provide finer granularity for the ioctl permission that may be too imprecise. For example, the same driver may use ioctls to provide important and benign functionality such as driver version or socket type as well as dangerous capabilities such as debugging features, read/write/execute to physical memory or access to sensitive data. Per-command filtering provides a mechanism to reduce the attack surface of the kernel, and limit applications to the subset of commands required. The format of the policy binary has been modified to include ioctl commands, and the policy version number has been incremented to POLICYDB_VERSION_XPERMS_IOCTL=30 to account for the format change. The extended permissions logic is deliberately generic to allow components to be reused e.g. netlink filters Signed-off-by: Jeff Vander Stoep Acked-by: Nick Kralevich Signed-off-by: Paul Moore security/selinux/avc.c | 415 ++++++++++++++++++++++++++++++++++-- security/selinux/hooks.c | 42 +++- security/selinux/include/avc.h | 6 + security/selinux/include/security.h | 32 ++- security/selinux/ss/avtab.c | 104 +++++++-- security/selinux/ss/avtab.h | 33 ++- security/selinux/ss/conditional.c | 32 ++- security/selinux/ss/conditional.h | 6 +- security/selinux/ss/policydb.c | 5 + security/selinux/ss/services.c | 213 ++++++++++++++++-- security/selinux/ss/services.h | 6 + 11 files changed, 834 insertions(+), 60 deletions(-) commit 671a2781ff01abf4fdc8904881fc3abd3a8279af Author: Jeff Vander Stoep Date: Fri Jul 10 17:19:55 2015 -0400 security: add ioctl specific auditing to lsm_audit Add information about ioctl calls to the LSM audit data. Log the file path and command number. Signed-off-by: Jeff Vander Stoep Acked-by: Nick Kralevich [PM: subject line tweak] Signed-off-by: Paul Moore include/linux/lsm_audit.h | 7 +++++++ security/lsm_audit.c | 15 +++++++++++++++ 2 files changed, 22 insertions(+) commit e4ca061275ec6a48b66c6edebe08644e666994c0 Author: Patrik Jakobsson Date: Wed Jul 8 15:31:52 2015 +0200 drm/i915: Don't forget to mark crtc as inactive after disable Watermark calculations depend on the intel_crtc->active flag to be set properly. Suspend/resume is broken on SKL and we also get DDB mismatches without this patch. The regression was introduced in: commit eddfcbcdc27fbecb33bff098967bbdd7ca75bfa6 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:53 2015 +0200 drm/i915: Update less state during modeset. No need to repeatedly call update_watermarks, or update_fbc. Down to a single call to update_watermarks in .crtc_enable Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter v2: Don't touch disable_shared_dpll() Signed-off-by: Patrik Jakobsson Reviewed-by: Maarten Lankhorst Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91203 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit ff63aed1d0023c1121fc199ee9ef1e201fc2bef9 Author: Fabio Estevam Date: Mon Jun 29 10:05:43 2015 -0300 ARM: imx_v6_v7_defconfig: Select HCIUART_H4 The old warp board revision had hardware issues that prevented the RTS/CTS lines to work with the Bluetooth module. Tha latest rev1.12 fixes this problem, so now we should better use CONFIG_BT_HCIUART_H4 instead, as it provides a better throughput than the CONFIG_BT_HCIUART_3WIRE option. Suggested-by: Arthur Lambert Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f4acd122a738d0601de3a96743859b9c7a82bd6a Author: Thomas Gleixner Date: Mon Jul 13 11:03:15 2015 +0200 ARM/orion/gpio: Prepare gpio_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. In this case the irq argument is shadowed by a local variable already, so just rename it. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/plat-orion/gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ec97561aa6ddc1c1ef6f522a72c883781c4a67d Author: Thomas Gleixner Date: Mon Jul 13 10:58:22 2015 +0200 ARM/pxa: Prepare balloon3_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. While at it fix the pointless lookup of irq_data with the proper methods to retrieve the same information from the irq descriptor. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/mach-pxa/balloon3.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 6947d04a5c49bf036c779527e4efa1d64a752513 Author: Thomas Gleixner Date: Mon Jul 13 10:17:54 2015 +0200 ARM/pxa: Prepare *_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/mach-pxa/cm-x2xx-pci.c | 3 ++- arch/arm/mach-pxa/lpd270.c | 3 ++- arch/arm/mach-pxa/pcm990-baseboard.c | 3 ++- arch/arm/mach-pxa/viper.c | 3 ++- arch/arm/mach-pxa/zeus.c | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) commit 1c2d4afa77959f3ac7013041e35f5cbe241e9415 Author: Thomas Gleixner Date: Mon Jul 13 10:16:33 2015 +0200 ARM/dove: Prepare pmu_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/mach-dove/irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b9dce3acd076d36838396acd5afb89e3e6f1b064 Author: Thomas Gleixner Date: Mon Jul 13 10:15:12 2015 +0200 ARM/sa1111: Prepare sa1111_irq_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/common/sa1111.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6bf9e97b69eab92482983419792104786b27f411 Author: Thomas Gleixner Date: Mon Jul 13 10:09:44 2015 +0200 ARM/locomo: Prepare locomo_handler for irq argument removal The irq argument of most interrupt flow handlers is unused or merily used instead of a local variable. The handlers which need the irq argument can retrieve the irq number from the irq descriptor. Search and update was done with coccinelle and the invaluable help of Julia Lawall. Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/common/locomo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit f575398bff9ae08086b345ecf724568be53818ee Author: Jiang Liu Date: Thu Jun 4 12:13:19 2015 +0800 ARM, irq: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Thomas Gleixner arch/arm/common/locomo.c | 2 +- arch/arm/common/sa1111.c | 2 +- arch/arm/plat-orion/gpio.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 8c06e117bedc4085e54dd968e95afdf03e91dff2 Author: Thomas Gleixner Date: Tue Jun 23 15:52:26 2015 +0200 ARM/LPC32xx: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/mach-lpc32xx/irq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 84f551c75ba5f578ede6451ad78a690201a8a3bc Author: Jiang Liu Date: Mon Jun 1 16:05:25 2015 +0800 ARM/irq: Use access helper irq_data_get_affinity_mask() This is a preparatory patch for moving irq_data struct members. Signed-off-by: Jiang Liu Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Thomas Gleixner arch/arm/kernel/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6d0786acda39def7c299aec6b9fe24388c2deee6 Author: Thomas Gleixner Date: Mon Jun 22 09:08:11 2015 +0200 ARM/locomo: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/common/locomo.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 206287c2c8dd61b5316c0dab459208e82d68e48d Author: Thomas Gleixner Date: Sun Jun 21 21:25:10 2015 +0200 ARM/orion: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle. Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org arch/arm/plat-orion/gpio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 72ce6787e37a14f6aaab1a0b024f20440c961517 Author: Max Filippov Date: Mon Jul 13 15:42:00 2015 +0300 xtensa: ISS: add missing va_end into split_if_spec Reported-by: David Binderman Signed-off-by: Max Filippov arch/xtensa/platforms/iss/network.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit b1a55af2773d5e4d30b748517fedfac26fc5fd81 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:39:22 2015 +0900 power_supply: 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: Sebastian Reichel drivers/power/bq24190_charger.c | 1 - drivers/power/bq24735-charger.c | 1 - drivers/power/pm2301_charger.c | 1 - 3 files changed, 3 deletions(-) commit 2259b5bbaac847f9f322659953966ebb53cfd9bc Author: Simon Wood Date: Fri Jul 10 00:10:21 2015 -0600 HID: sony: Navigator Axis for L1 button Patch HID report descriptor to add joystick axis for the L1 button (previously missing). Signed-off-by: Simon Wood Signed-off-by: Jiri Kosina drivers/hid/hid-sony.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 70caee0a3721956a98cb4bfbfa0eaa38c9182e44 Author: Benjamin Tissoires Date: Thu Jul 9 14:11:51 2015 -0400 HID: wacom: remove the extra Pen interface for Wacom Bamboo PAD As mentioned in the comment in the code, both the pen and touch data come from the interface tagged as BAMBOO_PAD. The driver re-routes the events for the Pen to the generic HID interface and keeps the ones for the touch through this current interface. Clearing the WACOM_DEVICETYPE_PEN bit removes the extra unused interface added in 2a6cdbd ("HID: wacom: Introduce new 'touch_input' device") and makes the Bamboo PAD to behave like in 4.1. Reviewed-by: Jason Gerecke Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/wacom_wac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7035f3a4e2444490d461f8b17c2275d61fefd980 Author: Andrew Duggan Date: Fri Jul 10 12:48:21 2015 -0700 HID: rmi: Write updated F11 control registers after reset When a device is reset the values of control registers will be reset to the defaults. This patch reapplies the control register values set for F11 by the driver. Signed-off-by: Andrew Duggan Tested-by: Gabriele Mazzotta Signed-off-by: Jiri Kosina drivers/hid/hid-rmi.c | 56 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 13 deletions(-) commit 9cae85f5e26fb59e4436e0676a9aceb461f30c63 Author: kbuild test robot Date: Sat Jul 11 08:18:59 2015 +0800 ASoC: sti-sas: fix platform_no_drv_owner.cocci warnings sound/soc/codecs/sti-sas.c:616: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/sti-sas.c | 1 - 1 file changed, 1 deletion(-) commit a2f3a8ca5219651292447f0e1124b3412bc3abff Author: Mark Brown Date: Mon Jul 13 11:53:08 2015 +0100 ASoC: sti-sas: Remove spurious dependency on SND_SOC_STI Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 1 - 1 file changed, 1 deletion(-) commit 589bef3296317b5507a9a6e2e14fb30dd40ee764 Author: Axel Lin Date: Mon Jul 13 13:26:45 2015 +0800 ASoC: sti-sas: Staticise local symbols Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/sti-sas.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit e27d9ee6e709db070145847f9b5f52008f6eab84 Author: Axel Lin Date: Mon Jul 13 13:25:34 2015 +0800 ASoC: sti-sas: Fix checking return value for ERR_PTR Both devm_regmap_init and syscon_regmap_lookup_by_phandle return ERR_PTR on failure. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/sti-sas.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ef3355d22046f4b2c00b0fdf964d6c92fd3f050d Author: Lars-Peter Clausen Date: Mon Jul 13 12:26:48 2015 +0200 ASoC: uda134x: Use regmap_update_bits() were appropriate Instead of doing the read-modify-update cycle by hand when updating a register use regmap_update_bits(). This also means we can now remove uda134x_read_reg_cache() and uda134x_write() since they are unused. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda134x.c | 57 ++++++++++++---------------------------------- 1 file changed, 14 insertions(+), 43 deletions(-) commit f33c340a51e81a2e6af316b1b8b9b769d32ce8b7 Author: Lars-Peter Clausen Date: Mon Jul 13 12:26:47 2015 +0200 ASoC: uda134x: Convert to regmap Use regmap rather then the legacy ASoC IO for the uda134x driver. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda134x.c | 115 ++++++++++++++++++++++++--------------------- sound/soc/codecs/uda134x.h | 2 - 2 files changed, 62 insertions(+), 55 deletions(-) commit 82c7b531f3328dbbb7a53d0f1dc53b92846c411c Author: Lars-Peter Clausen Date: Mon Jul 13 12:26:46 2015 +0200 ASoC: uda134x: Explicitly handle in-data addresses The UDA134X family extends the rather limited L3 register set by using part of the register value as additional address bits. These extra address bits are currently stored in the default register cache and rely on them remaining constant. While this works it is rather idiomatic and slightly confusing. Change it so that the additional address bits are explicitly added when writing a register. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda134x.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f15c444e58ed5b5dfc6056249ef8a74d00118be3 Author: Lars-Peter Clausen Date: Mon Jul 13 12:26:45 2015 +0200 ASoC: uda134x: Move state struct allocation to bus probe Resource allocations should be done in the bus probe rather than the CODEC probe. Move the allocation of the drivers state struct there. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/uda134x.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) commit 04dc91ce2cca5927159c689aa1f47663f8c51530 Author: Lars-Peter Clausen Date: Mon Jul 13 12:26:44 2015 +0200 regmap: Add better support for devices without readback support Currently regmap requires that a reg_read callback is supplied, otherwise a warning is emitted each time regmap_read() is called. This means a device or bus without readback support needs to supply dummy reg_read callback. Apart from that regmap_read() will still work fine if a cache is used. Remove the warning and let regmap_readable() return false if not reg_read callback is supplied. This means a device no longer has to supply a dummy callback if it does not support readback and it also doesn't have to have a readable_reg callback that always returns false since this is now implicit. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4245746037e379dc9f1388e422d52001cd431921 Author: Geert Uytterhoeven Date: Wed Jun 24 14:14:21 2015 +0200 regulator: da9210: Add optional interrupt support Add optional interrupt support to the da9210 regulator driver, to handle over-current, under- and over-voltage, and over-temperature events. Only the interrupt sources for which we handle events are unmasked, to avoid interrupts we cannot handle. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown .../devicetree/bindings/regulator/da9210.txt | 4 ++ drivers/regulator/da9210-regulator.c | 75 ++++++++++++++++++++++ 2 files changed, 79 insertions(+) commit cd25dd5b766858b730af00d5b2bbaf6ad2b80c27 Author: Deepak S Date: Fri Jul 10 18:31:40 2015 +0530 drm/i915: Update PM interrupts before updating the freq Currently we update the freq before masking the interrupts, which can allow new interrupts to occur before the frequency has changed. These extra interrupts might waste some cpu cycles. This patch corrects this by masking interrupts prior to updating the frequency. Note from Chris: "Well it won't waste CPU cycles as the interrupt is also masked by the threshold limits, but there should be no harm at all in reordering the patch so, and it does make a certain amount of sense." Signed-off-by: Deepak S Signed-off-by: Praveen Paneri Reviewed-by: Chris Wilson [danvet: Add note from Chris.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit feecb691007831263e6285a25a323f175a081f42 Author: Thulasimani,Sivakumar Date: Fri Jul 10 12:30:43 2015 +0530 drm/i915: storm detection documentation update Update the hotplug documentation to explain that hotplug storm is not expected for Display port panels and hence is not handled in current code. v2: update the statements as recommended by Daniel Signed-off-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hotplug.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 5e6ccc0b3d16725028caccceb2460fc3473d7d55 Author: Ville Syrjälä Date: Mon Jul 6 14:44:11 2015 +0300 drm/i915: Adjust BXT HDMI port clock limits Since commit e62925567c7926e78bc8ca976cde5c28ea265a49 Author: Vandana Kannan Date: Wed Jul 1 17:02:57 2015 +0530 drm/i915/bxt: BUNs related to port PLL BXT DPLL can now generate frequencies in the 216-223 MHz range. Adjust the HDMI port clock checks to account for the reduced range of invalid frequencies. Cc: Vandana Kannan Cc: Imre Deak Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 2be7d540fde3f82e404cbddeeb2fdf05cf33af3c Author: Ville Syrjälä Date: Mon Jun 29 15:25:51 2015 +0300 drm/i915: Refactor VLV display power well init/deinit We do the exact same steps around the disp2d/pipe A power well enable/disable on VLV and CHV. Refactor the shared code into some helpers. Note that this means we now call vlv_power_sequencer_reset() before turning off the power well, whereas before we did it after. That doesn't matter though since vlv_power_sequencer_reset() just resets the power sequencer software tracking and doesn't touch the hardware at all. Signed-off-by: Ville Syrjälä Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 52 +++++++++++++++------------------ 1 file changed, 23 insertions(+), 29 deletions(-) commit 8fcd5cd8b3cb29019937ab4b773da27a37e8e79b Author: Ville Syrjälä Date: Mon Jun 29 15:25:50 2015 +0300 drm/i915: Simplify CHV pipe A power well code The pipe A power well is the "disp2d" well on CHV and pipe B and C wells don't even exist. Thereforce we can remove the checks for pipe A vs. others and just assume it's always pipe A. Signed-off-by: Ville Syrjälä Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_runtime_pm.c | 47 ++++++++++++++------------------- 1 file changed, 20 insertions(+), 27 deletions(-) commit 60bfe44f83c0a9d7293e821c4ddae3770d60acf9 Author: Ville Syrjälä Date: Mon Jun 29 15:25:49 2015 +0300 drm/i915: Apply OCD to VLV/CHV DPLL defines Drop the spurious 'A' from the VLV/CHV ref clock enable define, and add the "REF" to the VLV ref clock selection bit. Also s/CLOCK/CLK/ for extra consistency. Signed-off-by: Ville Syrjälä Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 6 +++--- drivers/gpu/drm/i915/intel_display.c | 14 +++++++------- drivers/gpu/drm/i915/intel_dsi.c | 6 +++--- drivers/gpu/drm/i915/intel_runtime_pm.c | 8 ++++---- 4 files changed, 17 insertions(+), 17 deletions(-) commit b8afb9113c519a8bd742f7df8c424b0af69a75cd Author: Ville Syrjälä Date: Mon Jun 29 15:25:48 2015 +0300 drm/i915: Keep GMCH DPLL VGA mode always disabled We disable the DPLL VGA mode when enabling the DPLL, but we enaable it again when disabling the DPLL. Having VGA mode enabled even in unused DPLLs can cause problems for CHV, so it seems wiser to always keep it disabled. And let's just do that on all GMCH platforms to keep things as similar as possible between them. Signed-off-by: Ville Syrjälä Reviewed-by: Sivakumar Thulasimani Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 8 +++++--- drivers/gpu/drm/i915/intel_dsi.c | 2 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 8 ++++---- 3 files changed, 10 insertions(+), 8 deletions(-) commit f936ec34dea8da6f38340c1ae2cb35207d8d78cb Author: Akash Goel Date: Mon Jun 29 14:50:22 2015 +0530 drm/i915/skl: Updated the i915_ring_freq_table debugfs function Updated the i915_ring_freq_table debugfs function to support the read of ring frequency table, through Punit interface, for SKL also. Issue: VIZ-5144 Signed-off-by: Akash Goel Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) commit 4c8c7743b53fb169ef2cb07a9eaa80c1b6c1d04e Author: Akash Goel Date: Mon Jun 29 14:50:20 2015 +0530 drm/i915/skl: Ring frequency table programming changes Ring frequency table programming changes for SKL. No need for a floor on ring frequency, as the issue of performance impact with ring running below DDR frequency, is believed to be fixed on SKL v2: Removed the check for avoiding ring frequency programming for BXT (Rodrigo) Issue: VIZ-5144 Signed-off-by: Akash Goel Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) commit c5e0688cc75e46b0e9be39224d8e4646593ef375 Author: Akash Goel Date: Mon Jun 29 14:50:19 2015 +0530 drm/i915/skl: Retrieve the Rpe value from Pcode Read the efficient frequency (aka RPe) value through the the mailbox command (0x1A) from the pcode, as done on Haswell and Broadwell. The turbo minimum frequency softlimit is not revised as per the efficient frequency value. v2: Replaced the conditional expression operator with 'if' statement (Tom) v3: Corrected the derivation of efficient frequency & shifted the GEN9_FREQ_SCALER multiplications downwards (Ville) Issue: VIZ-5143 Signed-off-by: Akash Goel Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) commit 05e062f92c917b14ffa944e4a98e5348b53b1390 Author: Fabio Estevam Date: Fri Jun 26 14:10:54 2015 -0300 clk: imx: clk-imx6q: Provide initial IPU clock settings for mx6dl Currently it is not possible to use HDMI and LVDS at the same time on a imx6dl-sabresd board. Fix this usecase by setting IMX6QDL_CLK_PLL3_PFD1_540M to 540MHz and also by setting it as the parent of IMX6QDL_CLK_IPU1_SEL. Based on the configuration done in the FSL kernel. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo drivers/clk/imx/clk-imx6q.c | 4 ++++ 1 file changed, 4 insertions(+) commit d0796c4cd91dc9a329e48d2ff804532ed0b4c676 Author: Tony Lindgren Date: Mon Jul 13 00:51:02 2015 -0700 ARM: OMAP2+: Remove legacy booting support for LogicPD Torpedo We've been moving all omap2+ based systems to boot in device tree only mode for a few years now. Only omap3 has legacy booting support remaining. Most omap3 boards already have related arch/arm/boot/*.dts* files for booting with device tree. This board has support for device tree based booting, and we've been printing warnings about the legacy booting being deprecated for a few merge cycles now. Let's attempt to remove the legacy booting for it. The reason for removing the legacy booting support now rather than later is we can simply revert this patch if necessary if we run into some unexpected issues that are not trivial to fix for the device tree based booting. Cc: Tim Nordell Signed-off-by: Tony Lindgren arch/arm/mach-omap2/Kconfig | 20 --- arch/arm/mach-omap2/Makefile | 2 - arch/arm/mach-omap2/board-omap3logic.c | 249 --------------------------------- 3 files changed, 271 deletions(-) commit f951e51003860705fc9fc663fbce90f8263a6804 Author: Gavin Shan Date: Tue Jun 23 17:01:13 2015 +1000 powerpc/powernv: Unfreeze VF PE on releasing it When releasing PE for SRIOV VF, the PE is forced to be frozen wrongly. When the same PE is picked for another VF, it won't work anyhow. The patch fixes the issue by unfreezing, not freezing the VF PE when releasing it. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 283e2d8a594bc902d0c830bb324c15d5be755900 Author: Gavin Shan Date: Mon Jun 22 13:45:47 2015 +1000 powerpc/powernv: Include VF PE in PELTV of PF PE The PELTV of PF PE should include VF PE, which is missed by current code, so that the VF PE is frozen automatically when freezing PF PE. The patch fixes the PELTV of PF PE to include VF PE. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 26ba248d52854b267a3d728f2281efa89259eae4 Author: Gavin Shan Date: Fri Jun 19 12:26:19 2015 +1000 powerpc/powernv: Pick M64 PEs based on BARs On PHB3, PE might be reserved in advance to reflect the M64 segments consumed by the PE according to M64 BARs (exclude VF BARs) of the PCI devices included in the PE. The PE is picked based on M64 BARs instead of the bridge's M64 windows, which might include VF BARs. Otherwise, wrong PE could be picked. The patch calculates the used M64 segments and PE numbers according to the M64 BARs, excluding VF BARs, of PCI devices in one particular PE, instead of the bridge's M64 windows. Then the right PE number is picked. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 59 ++++--------------------------- arch/powerpc/platforms/powernv/pci.h | 2 +- 2 files changed, 8 insertions(+), 53 deletions(-) commit d1203852dfbbbd043bbd831761c117af752d1eda Author: Gavin Shan Date: Fri Jun 19 12:26:18 2015 +1000 powerpc/powernv: Boolean argument for pnv_ioda_setup_bus_PE() The patch changes the type of last argument of pnv_ioda_setup_bus_PE() and phb::pick_m64_pe() to boolean. No functional change. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 8 ++++---- arch/powerpc/platforms/powernv/pci.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 96a2f92bf8a4d0bf4a49bdd6539561a2c3289f37 Author: Gavin Shan Date: Fri Jun 19 12:26:17 2015 +1000 powerpc/powernv: Reserve M64 PEs based on BARs On PHB3, some PEs might be reserved in advance to reflect the M64 segments consumed by those PEs. We're reserving PEs based on the M64 window of root port, which might contain VF BAR. The PEs for VFs are allocated dynamically, not reserved based on the consumed M64 segments. So the M64 window of root port isn't reliable for the task. Instead, we go through M64 BARs (VF BARs excluded) of PCI devices under the specified root bus and reserve PEs accordingly, as the patch does. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 56 ++++++++++++++++++++----------- arch/powerpc/platforms/powernv/pci.h | 3 +- 2 files changed, 38 insertions(+), 21 deletions(-) commit e9dc4d7f72a375020ecbc9ca35b098fd9018910b Author: Gavin Shan Date: Fri Jun 19 12:26:16 2015 +1000 powerpc/powernv: Allow to reserve one PE for multiple times The PE numbers are reserved according to root port's M64 window, which is aligned to M64 segment finely. So one PE shouldn't be reserved for multiple times. We will reserve PE numbers according to the M64 BARs of PCI device in subsequent patches, which aren't aligned to M64 segment size finely. It means one particular PE could be reserved for multiple times. The patch allows one PE to be reserved for multiple times and we print the warning message at debugging level. Signed-off-by: Gavin Shan Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 1c53973172f84fafa8ad94f17ac427fdd4f260a2 Author: Anton Blanchard Date: Tue Jul 7 13:56:59 2015 +1000 powerpc: Remove mtmsrd(), use existing mtmsr() mtmsr() does the right thing on 32bit and 64bit, so use it everywhere. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman arch/powerpc/include/asm/reg.h | 3 +-- arch/powerpc/oprofile/op_model_power4.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) commit e8a4fd0afe05d5213d809fa686d3b8319464acfd Author: Michael Ellerman Date: Fri Aug 29 17:01:43 2014 +1000 powerpc: Add macros for the ibm_architecture_vec[] lengths The encoding of the lengths in the ibm_architecture_vec array is "interesting" to say the least. It's non-obvious how the number of bytes we provide relates to the length value. In fact we already got it wrong once, see 11e9ed43ca8a "Fix up ibm_architecture_vec definition". So add some macros to make it (hopefully) clearer. These at least have the property that the integer present in the code is equal to the number of bytes that follows it. Signed-off-by: Michael Ellerman Reviewed-by: Stewart Smith arch/powerpc/kernel/prom_init.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) commit 817820b0226a1376f0fc68827ab8e42d86431117 Author: Benjamin Herrenschmidt Date: Wed Jun 24 15:25:31 2015 +1000 powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask This patch adds the ability to the DMA direct ops to fallback to the IOMMU ops for coherent alloc/free if the coherent mask of the device isn't suitable for accessing the direct DMA space and the device also happens to have an active IOMMU table. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/Kconfig | 4 ++ arch/powerpc/include/asm/dma-mapping.h | 10 +-- arch/powerpc/kernel/dma-iommu.c | 2 +- arch/powerpc/kernel/dma-swiotlb.c | 4 +- arch/powerpc/kernel/dma.c | 111 +++++++++++++++++++++++++++------ 5 files changed, 105 insertions(+), 26 deletions(-) commit e91c25111aa373af7439d97ab0e606bcffd599ef Author: Benjamin Herrenschmidt Date: Wed Jun 24 15:25:27 2015 +1000 powerpc/iommu: Cleanup setting of DMA base/offset Now that the table and the offset can co-exist, we no longer need to flip/flop, we can just establish both once at boot time. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/platforms/powernv/pci-ioda.c | 3 +-- arch/powerpc/platforms/pseries/iommu.c | 3 +-- arch/powerpc/sysdev/dart_iommu.c | 16 +++------------- 3 files changed, 5 insertions(+), 17 deletions(-) commit 2db4928bb559f8b43ca75879548111dc13a7de31 Author: Benjamin Herrenschmidt Date: Wed Jun 24 15:25:22 2015 +1000 powerpc/iommu: Remove dma_data union To support "hybrid" DMA ops in a subsequent patch, we will need both a direct DMA offset and an iommu pointer. Those are currently exclusive (a union), so change them to be separate fields. While there, also type iommu_table_base properly and make exist only on CONFIG_PPC64 since it's not referenced on 32-bit at all. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Michael Ellerman arch/powerpc/include/asm/device.h | 15 +++++++++------ arch/powerpc/include/asm/dma-mapping.h | 4 ++-- arch/powerpc/include/asm/iommu.h | 31 +++++++++++++++++++++++++------ 3 files changed, 36 insertions(+), 14 deletions(-) commit de369538436ae0caf784c69187ad0e53152b7ddf Author: Rasmus Villemoes Date: Thu Jun 11 13:27:52 2015 +0200 cxl: use more common format specifier A precision of 16 (%.16llx) has the same effect as a field width of 16 along with passing the 0 flag (%016llx), but the latter is much more common in the kernel tree. Update cxl to use that. Signed-off-by: Rasmus Villemoes Acked-by: Ian Munsie Signed-off-by: Michael Ellerman drivers/misc/cxl/irq.c | 32 ++++++++++++++++---------------- drivers/misc/cxl/native.c | 10 +++++----- drivers/misc/cxl/pci.c | 10 +++++----- drivers/misc/cxl/trace.h | 10 +++++----- 4 files changed, 31 insertions(+), 31 deletions(-) commit 80c394fab89649585089f5bd5013f2d99e5756ef Author: Rasmus Villemoes Date: Thu Jun 11 13:27:51 2015 +0200 cxl: Add explicit precision specifiers C99 says that a precision given as simply '.' with no following digits or * should be interpreted as 0. The kernel's printf implementation, however, treats this case as if the precision was omitted. C99 also says that if both the precision and value are 0, no digits should be printed. Even if the kernel followed C99 to the letter, I don't think that would be particularly useful in these cases. For consistency with most other format strings in the file, use an explicit precision of 16 and add a 0x prefix. Signed-off-by: Rasmus Villemoes Signed-off-by: Michael Ellerman drivers/misc/cxl/irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6e06ae88edae77379bef7c0cb7d3c2dd88676867 Author: Jan Kara Date: Sun Jul 12 18:11:30 2015 -0400 jbd2: speedup jbd2_journal_dirty_metadata() It is often the case that we mark buffer as having dirty metadata when the buffer is already in that state (frequent for bitmaps, inode table blocks, superblock). Thus it is unnecessary to contend on grabbing journal head reference and bh_state lock. Avoid that by checking whether any modification to the buffer is needed before grabbing any locks or references. [ Note: this is a fixed version of commit 2143c1965a761, which was reverted in ebeaa8ddb3663b5 due to a false positive triggering of an assertion check. -- Ted ] Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o fs/jbd2/transaction.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) commit a595fc51a3417274acc1eee63967e9b9e657cc89 Author: Thomas Gleixner Date: Tue Jun 23 14:41:25 2015 +0200 irqchip/mips-gic: Use irq_set_chip_handler_name_locked Use irq_set_handler_name_locked() as it avoids a redundant lookup of the irq descriptor. Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Jason Cooper drivers/irqchip/irq-mips-gic.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) commit 0a2b64979ab7f8d5325879bd552dcb85974b2980 Author: Thomas Gleixner Date: Tue Jun 23 14:39:45 2015 +0200 irqchip/metag-ext: Use irq_set_chip_handler_name_locked() Hand in irq_data and avoid the redundant lookup of irq_desc. Originally-from: Jiang Liu Signed-off-by: Thomas Gleixner drivers/irqchip/irq-metag-ext.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit d2aa914d27f1fb9b7d4e4767c1698ed6a665cb1d Author: Thomas Gleixner Date: Tue Jun 23 15:52:41 2015 +0200 irqchip/vt8500: Use irq_set_handler_locked() Use irq_set_handler_locked() as it avoids a redundant lookup of the irq descriptor. Search and replacement was done with coccinelle: @@ struct irq_data *d; expression E1; @@ -__irq_set_handler_locked(d->irq, E1); +irq_set_handler_locked(d, E1); Signed-off-by: Thomas Gleixner Cc: Jiang Liu Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-vt8500.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 339d6b88e872f8369495a7224916a4d1d8376ca3 Author: HungNien Chen Date: Sat Jul 11 17:30:19 2015 -0700 Input: wdt87xx_i2c - change the sleep time to 2500ms after the sw reset The original wait time was 200ms which was enough for the firmware to finish loading and boot. After that the firmware will perform initialization and touch calibration, which will take about 1.1 second. The touch calibration will change controller frequency to scan at the most optimal frequency and during calibration/frequency switching process we may run into i2c data errors. To avoid them we extend the sleep to 2500ms after issuing the sw reset. Signed-off-by: HungNien Chen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wdt87xx_i2c.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d5ebe37e8cded781bb91ac63dda2da180ecb90b6 Author: HungNien Chen Date: Thu Jul 9 10:27:02 2015 -0700 Input: wdt87xx_i2c - populate vendor and product in input device These attributes can be used to identify controllers present in the system. Signed-off-by: HungNien Chen Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/wdt87xx_i2c.c | 46 ++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) commit 14fe22e334623e451b5592193415c644005461ea Author: Florian Westphal Date: Sat Jul 11 01:37:36 2015 +0200 Revert "ipv4: use skb coalescing in defragmentation" This reverts commit 3cc4949269e01f39443d0fcfffb5bc6b47878d45. There is nothing wrong with coalescing during defragmentation, it reduces truesize overhead and simplifies things for the receiving socket (no fraglist walk needed). However, it also destroys geometry of the original fragments. While that doesn't cause any breakage (we make sure to not exceed largest original size) ip_do_fragment contains a 'fastpath' that takes advantage of a present frag list and results in fragments that (in most cases) match what was received. In case its needed the coalescing could be done later, when we're sure the skb is not forwarded. But discussion during NFWS resulted in 'lets just remove this for now'. Cc: Eric Dumazet Signed-off-by: Florian Westphal Acked-by: Eric Dumazet Signed-off-by: David S. Miller net/ipv4/ip_fragment.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) commit ffb910d7b84f21ef6caeed041032a0af8d2e00ed Author: Florian Fainelli Date: Tue Jul 7 18:17:01 2015 -0700 ARM: BCM63xx: Remove custom secondary_startup function With commit 02b4e2756e01c623cc4dbceae4b07be75252db5b ("ARM: v7 setup function should invalidate L1 cache"), the default secondary_startup function for ARMv7 CPUs does invalidate the L1 cache, which was the sole reason why BCM63xx had to have its own secondary_startup implementation. Now that the secondary_startup takes care of this, we can completely remove that code. Signed-off-by: Florian Fainelli arch/arm/mach-bcm/Makefile | 4 +--- arch/arm/mach-bcm/bcm63xx_headsmp.S | 23 ----------------------- arch/arm/mach-bcm/bcm63xx_smp.c | 2 +- arch/arm/mach-bcm/bcm63xx_smp.h | 1 - 4 files changed, 2 insertions(+), 28 deletions(-) commit a6b4b25bd15c0a490769422a7eee355e9e91a57b Author: Sudeep Holla Date: Fri Jul 10 18:36:11 2015 +0100 ARM: BCM63xx: fix parameter to of_get_cpu_node in bcm63138_smp_boot_secondary of_get_cpu_node provides the device node associated with the given logical CPU and cpu_logical_map contains the physical id for each CPU in the logical ordering. Passing cpu_logical_map(cpu) to of_get_cpu_node is incorrect. This patch fixes the issue by passing the logical CPU number to of_get_cpu_node Fixes: ed5cd8163da8 ("ARM: BCM63xx: Add SMP support for BCM63138") Cc: Florian Fainelli Cc: bcm-kernel-feedback-list@broadcom.com Signed-off-by: Sudeep Holla Signed-off-by: Florian Fainelli arch/arm/mach-bcm/bcm63xx_smp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d48259a0d2c6820d26ea2077c8d330cf1b33877d Author: Dmitry Torokhov Date: Mon Jul 6 14:29:29 2015 -0700 Input: pixcir_i2c_ts - use standard OF touchscreen parsing code Let's switch to using standard touchscreen device properties parsing module instead of doing it by hand in the driver. Acked-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pixcir_i2c_ts.c | 95 ++++++++++++++----------------- 1 file changed, 44 insertions(+), 51 deletions(-) commit 69b8c2a50c59a3b1c70666059a85c646f897eb96 Author: Dmitry Torokhov Date: Mon Jul 6 13:43:31 2015 -0700 Input: pixcir_i2c_ts - simplify input device initialization input_mt_init_slots() will perform necessary settings for performing multi-touch to single-touch emulation, we do not need to do that ourselves. Acked-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pixcir_i2c_ts.c | 5 ----- 1 file changed, 5 deletions(-) commit 40929167e6e8450a06501d292c5e5c81455d1c47 Author: Roger Quadros Date: Mon Jul 6 13:27:43 2015 -0700 Input: pixcir_i2c_ts - add RESET gpio The controller has a RESET pin which is usually controlled over a GPIO line. If such a GPIO is provided, perform a RESET during probe. Signed-off-by: Roger Quadros Signed-off-by: Dmitry Torokhov .../bindings/input/touchscreen/pixcir_i2c_ts.txt | 3 +++ drivers/input/touchscreen/pixcir_i2c_ts.c | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) commit 127520caebd9ae1b77c7026bf538a81b8fcd19a8 Author: Dmitry Torokhov Date: Mon Jul 6 13:27:00 2015 -0700 Input: pixcir_i2c_ts - allow using with GPIO expanders We are using threaded interrupt handler and thus are allowed to sleep. Let's switch over to gpiod_get_value_cansleep() so that we do not get ugly warnings in case GPIO controller might sleep when accessing GPIO. Acked-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pixcir_i2c_ts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb4a5f068096c0cea954f363e70020aabb3555f4 Author: Dmitry Torokhov Date: Mon Jul 6 11:56:21 2015 -0700 Input: pixcir_i2c_ts - switch the device over to gpiod This allows uniform parsing on legacy, DT and ACPI systems. Acked-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pixcir_i2c_ts.c | 26 +++++++++----------------- include/linux/platform_data/pixcir_i2c_ts.h | 1 - 2 files changed, 9 insertions(+), 18 deletions(-) commit 28a74c050060c17b1edaee2d60470a33be476941 Author: Dmitry Torokhov Date: Mon Jul 6 11:48:47 2015 -0700 Input: pixcir_i2c_ts - move platform data Let's move driver's platform data definitions from include/linux/input/ into include/linux/platform_data/ so that it stays with the rest of platform data definitions. Acked-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/pixcir_i2c_ts.c | 2 +- include/linux/input/pixcir_ts.h | 64 ----------------------------- include/linux/platform_data/pixcir_i2c_ts.h | 64 +++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 65 deletions(-) commit 4200e831e4a8fd09fa4e78de2e571ab270c12d06 Author: Dmitry Torokhov Date: Mon Jul 6 15:18:24 2015 -0700 Input: of_touchscreen - switch to using device properties Let's switch form OF to device properties so that common parsing code could work not only on device tree but also on ACPI-based platforms. Reviewed-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/Kconfig | 4 +-- drivers/input/touchscreen/Makefile | 2 +- drivers/input/touchscreen/edt-ft5x06.c | 2 +- drivers/input/touchscreen/of_touchscreen.c | 56 ++++++++++++++++-------------- drivers/input/touchscreen/tsc2005.c | 2 +- include/linux/input/touchscreen.h | 11 ++---- 6 files changed, 37 insertions(+), 40 deletions(-) commit 517178692ccd730a95b278bd8cd67e11498a9a84 Author: Dmitry Torokhov Date: Mon Jul 6 14:57:54 2015 -0700 Input: of_touchscreen - fix setting max values on X/Y axis The binding specification says that "touchscreen-size-x" and "-y" specify horizontal and vertical resolution of the touchscreen and therefore maximum absolute coordinates should be reduced by 1 since we are starting with 0. Reviewed-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/of_touchscreen.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f61fd21dea1b9b40edfab07bdcd60d6a3bd95ba1 Author: Dmitry Torokhov Date: Mon Jul 6 14:45:25 2015 -0700 Input: of_touchscreen - always issue warning if axis is not set up Do issue warning about axis that is present in device tree but not specified by the driver even in case of multi-touch axis as callers now tell us if they expect multi-touch data or not. Reviewed-by: Roger Quadros Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/of_touchscreen.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 5b29264c659c31bada65582005d99adb3bb41fea Author: Jiang Liu Date: Thu Jun 4 12:13:20 2015 +0800 irqchip: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we already have a pointer to corresponding irq_desc. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: linux-arm-kernel@lists.infradead.org Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: Maxime Ripard Link: http://lkml.kernel.org/r/1433391238-19471-11-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/irqchip/exynos-combiner.c | 4 ++-- drivers/irqchip/irq-armada-370-xp.c | 2 +- drivers/irqchip/irq-gic.c | 4 ++-- drivers/irqchip/irq-orion.c | 2 +- drivers/irqchip/irq-sunxi-nmi.c | 2 +- drivers/irqchip/spear-shirq.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) commit 72f86db4dd5eafbadd45c9092df73c49f320f638 Author: Jiang Liu Date: Mon Jun 1 16:05:38 2015 +0800 irqchip/mips-gic: Use access helper irq_data_get_affinity_mask() Use access helper irq_data_get_affinity_mask() to hide implementation details of struct irq_desc. [ tglx: Verified with coccinelle ] Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Link: http://lkml.kernel.org/r/1433145945-789-30-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner drivers/irqchip/irq-mips-gic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f2135419ffb7601b6642147ae0e6ccc19a7d5be Author: Thomas Gleixner Date: Sun Jun 21 21:11:00 2015 +0200 irqchip/vic: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-vic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fcd3c5bee16a2c3c9cd6c4cb8e3e093d458d9f86 Author: Thomas Gleixner Date: Sun Jun 21 21:11:00 2015 +0200 irqchip/versatile: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-versatile-fpga.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 22890b0dbe233fa460d25762ab6a2f5c90f84d9c Author: Thomas Gleixner Date: Sun Jun 21 21:10:58 2015 +0200 irqchip/tb10x: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-tb10x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3200a71207c7d4ec4e961c0ef7ac50361de30e9a Author: Thomas Gleixner Date: Sun Jun 21 21:10:58 2015 +0200 irqchip/sunxi-nmi: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper Cc: Maxime Ripard Cc: linux-arm-kernel@lists.infradead.org drivers/irqchip/irq-sunxi-nmi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 07d22c23d63a3dc08083fec7ce26562b05e7d24b Author: Thomas Gleixner Date: Sun Jun 21 21:10:57 2015 +0200 irqchip/orion: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-orion.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 832b404ea0f48a57f1099327cd3137e9a6a51f88 Author: Thomas Gleixner Date: Sun Jun 21 21:10:55 2015 +0200 irqchip/metag: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: James Hogan Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-metag@vger.kernel.org drivers/irqchip/irq-metag.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit bc4d2c074ac1b55a95a2011bffe1c5ebb590e886 Author: Thomas Gleixner Date: Sun Jun 21 21:10:54 2015 +0200 irqchip/imgpdc: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-imgpdc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 4d83fcf8d615e44ca3ce1ac5766ae121ce08161b Author: Thomas Gleixner Date: Sun Jun 21 21:10:53 2015 +0200 irqchip/gic: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper drivers/irqchip/irq-gic.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f286c173593245d443e592edea2ec35ef4a7c7e8 Author: Thomas Gleixner Date: Sun Jun 21 21:10:52 2015 +0200 irqchip/brcmstb-l2: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org drivers/irqchip/irq-brcmstb-l2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 99e32ab1732e8e66c775087f5361fca235bbee0e Author: Thomas Gleixner Date: Sun Jun 21 21:10:51 2015 +0200 irqchip/bcm7120-l2: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org drivers/irqchip/irq-bcm7120-l2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3a7946eed85a1031120d2c946d6e8e8520b32827 Author: Thomas Gleixner Date: Sun Jun 21 21:10:50 2015 +0200 irqchip/bcm7038-l1: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Kevin Cernekee Cc: Florian Fainelli Cc: Thomas Gleixner Cc: Jason Cooper Cc: linux-mips@linux-mips.org drivers/irqchip/irq-bcm7038-l1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 741ff9661337231233cd675df7726ffafe13c960 Author: Thomas Gleixner Date: Sun Jun 21 21:10:49 2015 +0200 irqchip/exynos-combiner: Consolidate chained IRQ handler install/remove Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King Signed-off-by: Thomas Gleixner Cc: Julia Lawall Cc: Thomas Gleixner Cc: Jason Cooper Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org drivers/irqchip/exynos-combiner.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit a8a98eac7b238beb49b479c164303651d5a37eb6 Author: Jiang Liu Date: Thu Jun 4 12:13:30 2015 +0800 genirq: Remove the irq argument from setup_affinity() Unused except for the alpha wrapper, which can retrieve if from the irq descriptor. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1433391238-19471-21-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner kernel/irq/manage.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) commit e019c249a60fc50319c5897d21d36207c257cc9e Author: Jiang Liu Date: Tue Jun 23 20:29:34 2015 +0200 genirq: Provide and use __irq_can_set_affinity() Provide a irq_desc based variant of irq_can_set_affinity() to avoid a redundant lookup for the core code users. [ tglx: Split out from combo patch ] Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner kernel/irq/manage.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 0dcdbc97557fd8c297c4e38e9f66e304a64bae9d Author: Jiang Liu Date: Thu Jun 4 12:13:28 2015 +0800 genirq: Remove the irq argument from note_interrupt() Only required for the slow path. Retrieve it from irq descriptor if necessary. [ tglx: Split out from combo patch. Left [try_]misrouted_irq() untouched as there is no win in the slow path ] Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Cc: Jason Cooper Cc: Kevin Cernekee Cc: Arnd Bergmann Link: http://lkml.kernel.org/r/1433391238-19471-19-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner include/linux/irq.h | 3 +-- kernel/irq/chip.c | 2 +- kernel/irq/handle.c | 2 +- kernel/irq/spurious.c | 6 ++++-- 4 files changed, 7 insertions(+), 6 deletions(-) commit c1e5bd8cc52ddc8c2998987c8806b999f09b064e Author: Jiang Liu Date: Tue Jun 23 20:07:35 2015 +0200 genirq: Remove irq argument from try_one_irq() Unused argument. [ tglx: Split out from combo patch ] Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner kernel/irq/spurious.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 02d00eaa64bfd57fcbefe848e46e5ddca62ed5e6 Author: Jiang Liu Date: Tue Jun 23 20:02:43 2015 +0200 genirq: Remove irq argument from report_bad_irq() Not really a hotpath, so __report_bad_irq() can retrieve the irq number from the irq descriptor. [ tglx: Split out from combo patch ] Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner kernel/irq/spurious.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit b80f5f3fc0dc5362eac19585c31a1cc414a6cf95 Author: Jiang Liu Date: Tue Jun 23 19:58:45 2015 +0200 genirq: Remove irq argument from suspend/resume_irq() Unused argument in both functions. [ tglx: Split out from combo patch ] Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner kernel/irq/pm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 79ff1cda320b81dfe5feae0c5da52f029561ce93 Author: Jiang Liu Date: Tue Jun 23 19:52:36 2015 +0200 genirq: Remove irq argument from __enable/__disable_irq() Solely used for debug output. Can be retrieved from irq descriptor if necessary. [ tglx: Split out from combo patch ] Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner kernel/irq/internals.h | 4 ++-- kernel/irq/manage.c | 13 +++++++------ kernel/irq/pm.c | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) commit a1ff541a40e90df05f586bf6b157083b351c4a0c Author: Jiang Liu Date: Tue Jun 23 19:47:29 2015 +0200 genirq: Remove irq arg from __irq_set_trigger() It's only required for debug output and can be retrieved from the irq descriptor if necessary. [ tglx: Split out from combo patch ] Signed-off-by: Jiang Liu Signed-off-by: Thomas Gleixner kernel/irq/chip.c | 2 +- kernel/irq/internals.h | 3 +-- kernel/irq/manage.c | 14 +++++++------- 3 files changed, 9 insertions(+), 10 deletions(-) commit 0798abeb7eec37dcc20f252c2195fc31c41561f9 Author: Jiang Liu Date: Thu Jun 4 12:13:27 2015 +0800 genirq: Remove the irq argument from check_irq_resend() It's only used in the software resend case and can be retrieved from irq_desc if necessary. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1433391238-19471-18-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner kernel/irq/chip.c | 2 +- kernel/irq/internals.h | 2 +- kernel/irq/manage.c | 2 +- kernel/irq/resend.c | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) commit b51bf95c583bba645974348666e9b5a14c7aa3ea Author: Jiang Liu Date: Thu Jun 4 12:13:25 2015 +0800 genirq: Remove the parameter 'irq' of kstat_incr_irqs_this_cpu() The first parameter 'irq' is never used by kstat_incr_irqs_this_cpu(). Remove it. Signed-off-by: Jiang Liu Cc: Konrad Rzeszutek Wilk Cc: Tony Luck Cc: Bjorn Helgaas Cc: Benjamin Herrenschmidt Cc: Randy Dunlap Cc: Yinghai Lu Cc: Borislav Petkov Link: http://lkml.kernel.org/r/1433391238-19471-16-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner kernel/irq/chip.c | 16 ++++++++-------- kernel/irq/handle.c | 2 +- kernel/irq/internals.h | 2 +- kernel/irq/irqdesc.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) commit 41a83e06e2bb9ac46731681fd44d1e6ab184dac5 Author: Joel Porquet Date: Tue Jul 7 17:11:46 2015 -0400 irqchip: Prepare for local stub header removal The IRQCHIP_DECLARE macro moved to to 'include/linux/irqchip.h', so the local irqchip.h became an empty shell, which solely includes include/linux/irqchip.h Include the global header in all irqchip drivers instead of the local header, so we can remove it. Signed-off-by: Joel Porquet Cc: vgupta@synopsys.com Cc: monstr@monstr.eu Cc: ralf@linux-mips.org Cc: jason@lakedaemon.net Link: http://lkml.kernel.org/r/1882096.X39jVG8e0D@joel-zenbook Signed-off-by: Thomas Gleixner drivers/irqchip/exynos-combiner.c | 3 +-- drivers/irqchip/irq-armada-370-xp.c | 3 +-- drivers/irqchip/irq-atmel-aic.c | 2 +- drivers/irqchip/irq-atmel-aic5.c | 2 +- drivers/irqchip/irq-bcm2835.c | 3 +-- drivers/irqchip/irq-bcm7038-l1.c | 3 +-- drivers/irqchip/irq-bcm7120-l2.c | 3 +-- drivers/irqchip/irq-brcmstb-l2.c | 2 -- drivers/irqchip/irq-clps711x.c | 3 +-- drivers/irqchip/irq-crossbar.c | 3 +-- drivers/irqchip/irq-digicolor.c | 3 +-- drivers/irqchip/irq-dw-apb-ictl.c | 3 +-- drivers/irqchip/irq-gic-v3-its.c | 3 +-- drivers/irqchip/irq-gic-v3.c | 2 +- drivers/irqchip/irq-gic.c | 2 +- drivers/irqchip/irq-hip04.c | 2 +- drivers/irqchip/irq-ingenic.c | 3 +-- drivers/irqchip/irq-keystone.c | 3 +-- drivers/irqchip/irq-mips-cpu.c | 3 +-- drivers/irqchip/irq-mips-gic.c | 3 +-- drivers/irqchip/irq-mmp.c | 3 +-- drivers/irqchip/irq-moxart.c | 3 +-- drivers/irqchip/irq-mtk-sysirq.c | 3 +-- drivers/irqchip/irq-mxs.c | 3 +-- drivers/irqchip/irq-nvic.c | 3 +-- drivers/irqchip/irq-omap-intc.c | 3 +-- drivers/irqchip/irq-or1k-pic.c | 3 +-- drivers/irqchip/irq-orion.c | 3 +-- drivers/irqchip/irq-renesas-h8300h.c | 2 -- drivers/irqchip/irq-renesas-h8s.c | 2 +- drivers/irqchip/irq-s3c24xx.c | 3 +-- drivers/irqchip/irq-sirfsoc.c | 2 +- drivers/irqchip/irq-sun4i.c | 3 +-- drivers/irqchip/irq-sunxi-nmi.c | 2 +- drivers/irqchip/irq-tb10x.c | 2 +- drivers/irqchip/irq-tegra.c | 3 +-- drivers/irqchip/irq-versatile-fpga.c | 3 +-- drivers/irqchip/irq-vf610-mscm-ir.c | 3 +-- drivers/irqchip/irq-vic.c | 3 +-- drivers/irqchip/irq-vt8500.c | 3 +-- drivers/irqchip/irq-xtensa-mx.c | 3 +-- drivers/irqchip/irq-xtensa-pic.c | 3 +-- drivers/irqchip/irq-zevio.c | 3 +-- drivers/irqchip/spear-shirq.c | 3 +-- 44 files changed, 42 insertions(+), 79 deletions(-) commit d452bca82d9ff4f220afa4234418912623db4fe6 Author: Thomas Gleixner Date: Mon Jul 6 10:18:29 2015 +0000 irqchip/sirfsoc: Fix generic chip allocation wreckage irq_alloc_domain_generic_chips() can only be called once for an irqdomain. The sirfsoc init calls it twice and because the return value is not checked it does not notice the wreckage. The code works by chance because the first call already allocates two chips and therefor the second call to sirfsoc_alloc_gc() operates on the proper generic chip instance. Use a single call and setup the two chips in the obvious correct way. Signed-off-by: Thomas Gleixner Cc: Jason Cooper Cc: Barry Song Cc: linux-arm-kernel@lists.infradead.org Cc: Olof Johansson Link: http://lkml.kernel.org/r/20150706101543.470696950@linutronix.de drivers/irqchip/irq-sirfsoc.c | 48 ++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 23 deletions(-) commit b66231183a8542de1414e42326dd1c6bc4af75f4 Author: Thomas Gleixner Date: Mon Jul 6 15:32:25 2015 +0200 irqchip/dw-apb-ictl: Fix generic domain chip wreckage The num_ct argument of irq_alloc_domain_generic_chips() tells the core code how many chip types (for different control flows, e.g. edge/level) should be allocated. It does not control how many generic chip instances are created because that's determined from the irq domain size and the number of interrupts per chip. The dw-apb init abuses the num_ct argument for allocating one or two chip types depending on the number of interrupts. That's completely wrong because the alternate type is never used. This code was obviously never tested on a system which has more than 32 interrupts as that would have never worked due to the unitialized second generic chip instance. Hand in the proper num_ct=1 and fixup the chip initialization along with the interrupt handler. Signed-off-by: Thomas Gleixner Tested-by: Jisheng Zhang Cc: Sebastian Hesselbarth Cc: Mark Rutland Cc: Jason Cooper Link: http://lkml.kernel.org/r/20150706101543.373582262@linutronix.de drivers/irqchip/irq-dw-apb-ictl.c | 53 ++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 31 deletions(-) commit bfd0b498bee4f836610c477cae21aefb16cfe0b1 Author: Joachim Eastwood Date: Thu Apr 2 05:54:29 2015 +0200 ARM: dts: lpc4357-ea4357: add mmcsd Enable the MMC/SD controller on EA4357 devkit and add pin muxing plus a regulator. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 47 +++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit c97a63c9deb50763242d8e6325ac404c823efd05 Author: Joachim Eastwood Date: Thu Apr 2 05:51:20 2015 +0200 ARM: dts: lpc4357-ea4357: add pinctrl and uart0 muxing Setup pin muxing and properties for the debug console on uart0. Signed-off-by: Joachim Eastwood Acked-by: Linus Walleij arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit b06cdb7949e421bc511a99e5ca10fe610e21c750 Author: Joachim Eastwood Date: Sat Jun 20 14:45:12 2015 +0200 ARM: dts: lpc18xx: add usb nodes Add nodes for the two USB EHCI controllers found on lpc18xx. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit fe968589284ecc9a95c6040eea4f3712f0eb1f47 Author: Joachim Eastwood Date: Thu Apr 2 05:29:28 2015 +0200 ARM: dts: lpc18xx: add ethernet node Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 16df2b868e516701832ba333734d4d071fafa311 Author: Joachim Eastwood Date: Thu Apr 2 05:31:49 2015 +0200 ARM: dts: lpc18xx: add creg (syscon) node The CREG block contains a collection of miscellaneous configuration register like Ethernet phy mode, low power clocks and DMA multiplexer. These registers needs to be accessed from other drivers and syscon provides this capability. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit cd07154f49bb865d619c8db0bdd28c39c70e5870 Author: Joachim Eastwood Date: Thu Apr 2 05:27:33 2015 +0200 ARM: dts: lpc18xx: add mmcsd node Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 7e6c8376e9d0db8c825e9fdf95e30b7296c6caa3 Author: Joachim Eastwood Date: Thu Apr 2 05:21:43 2015 +0200 ARM: dts: lpc18xx: add can nodes Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 5d2ea79c7f73c8d57ccbc46e97ff400afd9bfe9b Author: Joachim Eastwood Date: Wed Apr 1 14:41:06 2015 +0200 ARM: dts: lpc18xx: add ssp nodes Add nodes for the ARM SSP controllers on lpc18xx. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 7836dce471335fc8e2a09a4015e70f2c9c1554a6 Author: Joachim Eastwood Date: Mon Apr 27 23:59:30 2015 +0200 ARM: dts: lpc18xx: add gpio node Add gpio and mapping between pinctrl/gpio namespace with gpio-ranges property. Signed-off-by: Joachim Eastwood Acked-by: Linus Walleij arch/arm/boot/dts/lpc18xx.dtsi | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit d881f5e228177355707c95146457d62c5187ea57 Author: Joachim Eastwood Date: Thu Apr 2 05:40:13 2015 +0200 ARM: dts: lpc18xx: add pinctrl node Add pinctrl node for lpc1850-scu. Signed-off-by: Joachim Eastwood Acked-by: Linus Walleij arch/arm/boot/dts/lpc18xx.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit f2b1c507d45f1d4cb4ab296ff0a20b5add6b8bdd Author: Joachim Eastwood Date: Fri May 15 19:43:45 2015 +0200 ARM: dts: lpc18xx: add uart new compat string and clk names Add lpc1850-uart compatible string on uarts together with proper clock-names. Signed-off-by: Joachim Eastwood arch/arm/boot/dts/lpc18xx.dtsi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit ba2db535a99dc004ab6b7952625029ec196514b9 Author: Joachim Eastwood Date: Wed Apr 1 14:42:00 2015 +0200 ARM: dts: lpc18xx: add cgu and ccu clock-controller nodes Add CGU and CCU clock-controller nodes for lpc18xx together with the fixed input clocks. Also remove the temporary fixed-factor pll1 clock from both lpc18xx and lpc4350-hitex-eval DTS now that proper clock drivers are inplace. Signed-off-by: Joachim Eastwood Acked-by: Michael Turquette arch/arm/boot/dts/lpc18xx.dtsi | 85 ++++++++++++++++++++++++++------ arch/arm/boot/dts/lpc4350-hitex-eval.dts | 4 -- 2 files changed, 71 insertions(+), 18 deletions(-) commit 2155971a66f89924edb37c213251c4fe9f7776c0 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:54:14 2015 +0900 iio: 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: Jonathan Cameron drivers/iio/accel/bma180.c | 1 - drivers/iio/accel/st_accel_i2c.c | 1 - drivers/iio/adc/mcp3422.c | 1 - drivers/iio/adc/ti-adc081c.c | 1 - drivers/iio/dac/ad5064.c | 1 - drivers/iio/dac/ad5380.c | 1 - drivers/iio/dac/ad5446.c | 1 - drivers/iio/dac/max5821.c | 1 - drivers/iio/gyro/itg3200_core.c | 1 - drivers/iio/gyro/st_gyro_i2c.c | 1 - drivers/iio/humidity/si7005.c | 1 - drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 1 - drivers/iio/light/apds9300.c | 1 - drivers/iio/light/bh1750.c | 1 - drivers/iio/light/cm32181.c | 1 - drivers/iio/light/cm3232.c | 1 - drivers/iio/light/cm36651.c | 1 - drivers/iio/light/gp2ap020a00f.c | 1 - drivers/iio/light/isl29125.c | 1 - drivers/iio/light/jsa1212.c | 1 - drivers/iio/light/ltr501.c | 1 - drivers/iio/light/tcs3414.c | 1 - drivers/iio/light/tcs3472.c | 1 - drivers/iio/light/tsl4531.c | 1 - drivers/iio/light/vcnl4000.c | 1 - drivers/iio/magnetometer/st_magn_i2c.c | 1 - drivers/iio/pressure/ms5611_i2c.c | 1 - drivers/iio/pressure/st_pressure_i2c.c | 1 - drivers/iio/temperature/mlx90614.c | 1 - drivers/iio/temperature/tmp006.c | 1 - 30 files changed, 30 deletions(-) commit 071667a0fae08ed8c9dcdb9ff526dc66888cac4b Author: Krzysztof Kozlowski Date: Fri Jul 10 15:34:26 2015 +0900 staging: iio: 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: Jonathan Cameron drivers/staging/iio/addac/adt7316-i2c.c | 1 - drivers/staging/iio/light/isl29018.c | 1 - drivers/staging/iio/light/isl29028.c | 1 - 3 files changed, 3 deletions(-) commit 862cb6ce58029c478aca573ee7bff0081249a6d3 Author: Cristina Opriceana Date: Fri Jul 10 17:10:21 2015 +0300 Staging: iio: dummy: Fix blank line warnings Multiple blank lines should not be used as indicated by checkpatch.pl. Also, a line should be used after a function/structure declaration. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/staging/iio/iio_dummy_evgen.c | 1 + drivers/staging/iio/iio_simple_dummy.c | 2 -- drivers/staging/iio/iio_simple_dummy.h | 1 + drivers/staging/iio/iio_simple_dummy_buffer.c | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) commit 1ce96bd366b87d3896a450b3ac26a8a0916573b4 Author: Ana Calinov Date: Wed Jul 8 07:04:31 2015 -0700 iio: frequency: adf4350: Delete blank line This patch removes an unnecessary blank line found by checkpatch.pl --strict: Blank lines aren't necessary after an open brace '{'. Signed-off-by: Ana Calinov Signed-off-by: Jonathan Cameron drivers/iio/frequency/adf4350.c | 1 - 1 file changed, 1 deletion(-) commit e23fd9812fe729612e778ba9bd9530ce5c234f23 Author: Ana Calinov Date: Wed Jul 8 05:44:42 2015 -0700 iio: accel: kxcjk-1013: Remove blank lines This patch fixes the the following errors given by checkpatch.pl with --strict: Please don't use multiple blank lines. Blank lines aren't necessary after an open brace '{'. Signed-off-by: Ana Calinov Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/accel/kxcjk-1013.c | 3 --- 1 file changed, 3 deletions(-) commit 8fc2b61a36fe17f744b445a26599a6cac9e6c1c0 Author: Zefir Kurtisi Date: Tue Jun 16 12:52:16 2015 +0200 ath9k: DFS - add pulse chirp detection for FCC FCC long pulse radar (type 5) requires pulses to be checked for chirping. This patch implements chirp detection based on the FFT data provided for long pulses. A chirp is detected when a set of criteria defined by FCC pulse characteristics is met, including * have at least 4 FFT samples * max_bin index moves equidistantly between samples * the gradient is within defined range The chirp detection has been tested with reference radar generating devices and proved to work reliably. Signed-off-by: Zefir Kurtisi Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/dfs.c | 167 +++++++++++++++++++++++++++++++++-- 1 file changed, 161 insertions(+), 6 deletions(-) commit 8f010d9ca88f9023650b2e54b74c84ab63a19d02 Author: Zefir Kurtisi Date: Tue Jun 16 11:46:42 2015 +0200 ath9k: DFS - consider ext_channel pulses only in HT40 mode The chip reports radar pulses on extension channel even if operating in HT20 mode. This patch adds a sanity check for HT40 mode before it feeds pulses on extension channel to the pattern detector. Signed-off-by: Zefir Kurtisi Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath9k/dfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 00798c38f49eb028b0c5fac01293783206af29fb Author: Nicholas Mc Guire Date: Mon Jun 15 19:24:35 2015 +0200 ipw2100: fix timeout bug - always evaluated to 0 commit 2c86c275015c ("Add ipw2100 wireless driver.") introduced HW_PHY_OFF_LOOP_DELAY (HZ / 5000) which always evaluated to 0. Clarified by Stanislav Yakovlev that it should be 50 milliseconds thus fixed up to msecs_to_jiffies(50). Signed-off-by: Nicholas Mc Guire Acked-by: Stanislav Yakovlev Signed-off-by: Kalle Valo drivers/net/wireless/ipw2x00/ipw2100.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75509fd88fbd580c793780b0001c71c3510f2726 Author: Eric W. Biederman Date: Sun May 24 12:49:04 2015 -0500 nsfs: Add a show_path method to fix mountinfo Today mountinfo displays a very unhelpful "/" for nsfs files. Add a show_path method returning the same string as ns_dname. This results in a bind mount of /proc//ns/net showing up in /proc//mountinfo as "net:[1234...]" instead of "/". Signed-off-by: "Eric W. Biederman" fs/nsfs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit ed25b113a955e62aeaba49a3ec71faea4f25bf34 Author: Michal Kazior Date: Thu Jul 9 13:08:39 2015 +0200 ath10k: tweak interface combinations Concurrent AP/GO operation on different channels isn't really supported well by the firmware so it's better to remove it from being advertised. Also tune the way station and p2p client interface limits are expressed to allow station + 2x p2p client or station + p2p client + p2p go. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 39 ++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) commit acd0b27bb13a09dd0a56d4562d3eb4137a7318b2 Author: Michal Kazior Date: Thu Jul 9 13:08:38 2015 +0200 ath10k: fix per-vif queue locking Whenever any vdev was supposed to be paused all Tx queues were stopped (except offchannel) instead of only these associated with the given vdev. This caused subtle issues with multi-channel/multi-vif scenarios, e.g. authentication of station vif could sometimes fail depending on fw tx pause request timing. Fixes: b4aa539dd8f2 ("ath10k: implement tx pause wmi event") Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 47 +++++++++---------------------- drivers/net/wireless/ath/ath10k/mac.h | 6 ++-- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 34 ++++++++++++++++++---- 3 files changed, 45 insertions(+), 42 deletions(-) commit f23e587e55f3607741e29a789efa61ea999f13f8 Author: Michal Kazior Date: Thu Jul 9 13:08:37 2015 +0200 ath10k: update vdev ps state on start Psmode can be forcefully enabled when vdev isn't started. It isn't guaranteed that mac80211 will re-issue psmode setting after vdev is started unless actual bss_conf.ps value has changed. Even if this doesn't fix any problems now it may prevent future breakage. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit d710e75d1050cb66fbf6e906addb4a661e444729 Author: Michal Kazior Date: Thu Jul 9 13:08:36 2015 +0200 ath10k: fix hw roc expiration notifcation The expiration function must not be called when roc is explicitly cancelled by mac80211. However since fcf9844636be ("ath10k: fix hw roc expiration") the notification was never sent when roc actually expired. This fixes some P2P connection setup issues. 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 | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) commit 424f26301467daf241a4afe4b6fe82750d4ac624 Author: Michal Kazior Date: Thu Jul 9 13:08:35 2015 +0200 ath10k: limit multi-vif ps more aggresivelly Further testing proved that multi-channel AP+STA on QCA6174 with RM.2.0-00088 should have powersave force-disabled to avoid beacon misses/skipping on either side which in turn could disrupt communication. Since AP never has arvif->ps don't even bother checking it. Other combinations may be broken as well so disallow powersave with multivif outright unless firmware advertises otherwise. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 835d56a10c1fcfb0fee28bb6aceb722e1a6f643a Author: Michal Kazior Date: Thu Jul 9 13:08:34 2015 +0200 ath10k: don't set cck/ofdm scan flags mac80211 already does provide complete IEs for Probe Requests for hw scan and ath10k firmware was appending duplicate Supported Rates IEs unnecessarily. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 3 --- drivers/net/wireless/ath/ath10k/wmi.c | 1 - 2 files changed, 4 deletions(-) commit 3c7e256a6de378e01098147527082abae05b146e Author: Vasanthakumar Thiagarajan Date: Fri Jul 3 19:25:27 2015 +0530 ath10k: Fix target to cpu address conversion logic In commit 418ca5992e2f ("ath10k: Make target cpu address to CE address conversion chip specific") mask 0x7fff is added by mistake instead of 0x7ff. Fix this regression. Fixes: 418ca5992e2f ("ath10k: Make target cpu address to CE address conversion chip specific") Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a052158aa981ca470673f49c636b289ee16894ea Author: Bartosz Markowski Date: Fri Jul 3 15:33:49 2015 +0200 ath10k: fix QCA61X4 boot up commit a521ee983d312db7 ("ath10k: Add new reg_address/mask to hw register table") broke QCA61x4 support by providing wrong fw_indicator_address, which should have been 0x0003a028 instead of 0x00009028. User experience was a failing boot up sequence (crashing device during initialization): [ 181.663874] ath10k_pci 0000:02:00.0: enabling device (0000 -> 0002) [ 181.664787] ath10k_pci 0000:02:00.0: pci irq msi-x interrupts 8 irq_mode 0 reset_mode 0 [ 181.688886] ath10k_pci 0000:02:00.0: device has crashed during init [ 181.688897] ath10k_pci 0000:02:00.0: failed to wait for target after cold reset: -70 [ 181.688902] ath10k_pci 0000:02:00.0: failed to reset chip: -70 [ 181.689774] ath10k_pci: probe of 0000:02:00.0 failed with error -70 Fix it by updating the address with correct value. Fixes: a521ee983d31 ("ath10k: Add new reg_address/mask to hw register table") Signed-off-by: Bartosz Markowski Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9d7b372f0514d829b2f712aac5b85eaab2dc0cb2 Merge: 9131f3d a78dfcb Author: David S. Miller Date: Fri Jul 10 23:24:31 2015 -0700 Merge branch 'be2net-next' Sathya Perla says: ==================== be2net: patch set Hi David, the following patch set has code cleanup patches, minor enhancements and non-critical fixes. Pls consider applying to the net-next tree. Thanks! Patch 1 removes duplicate code in be_setup_wol() routine making it simpler and more readable. Patch 2 fixes the the bridge mode return value for the ndo_bridge_getlink() call. Instead of just relying on the SRIOV enabled state, the driver now queries the FW, for the actual mode of bridge. Patch 3 removes code for setting D0 power state as it's already done in pci_enable_device() Patch 4 fixes a bad return value in be_check_ufi_compatibility() routine introduced by an earlier commit. Patch 5 fixes a field in udp header being accessed while in network endian format. Patch 6 fixes the be_mcc_notify() routine to return an error status when the FW/HW is in an error state. Patch 7 fixes the be_cmd_rx_filter() routine to issue the RX_FILTER cmd and not wait for a completion from the FW. If the FW/adapter is in an error state, this change helps in not holding up the rtnl_lock and keeping bottom halves disabled while the driver timesout waiting for a response from the FW. Patch 8 fixes the be_cmd_set_loopback() routine to issue the LOOPBACK cmd and not wait for the FW completion while spin_lock_bh() is held on the mcc_lock. As the cmd is always issued from ethtool in a process context, it can sleep till the FW completion is received. Patch 9 bumps up the driver version to 10.6.0.3 ==================== Signed-off-by: David S. Miller commit a78dfcb38492ccc127023e9ee3a35d214009b02f Author: Sathya Perla Date: Fri Jul 10 05:32:51 2015 -0400 be2net: bump up the driver version to 10.6.0.3 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 9c8559750cd7b7936dd38810fc2110fc91d7d527 Author: Suresh Reddy Date: Fri Jul 10 05:32:50 2015 -0400 be2net: make SET_LOOPBACK_MODE cmd asynchrounous The SET_LOOPBACK_MODE command is always issued from ethtool only in a process context. So, while waiting for the cmd to complete, the driver can sleep instead of holding spin_lock_bh() on the mcc_lock. This is done by calling be_mcc_notify() instead of be_mcc_notify_wait() (that returns only after the cmd completes while the MCCQ is locked). Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 23 ++++++++++++++++++++--- drivers/net/ethernet/emulex/benet/be_cmds.h | 2 ++ drivers/net/ethernet/emulex/benet/be_ethtool.c | 15 +++++++++++++-- 3 files changed, 35 insertions(+), 5 deletions(-) commit 8af65c2f4deeb02a128c5cf29fa351b70bf16424 Author: Suresh Reddy Date: Fri Jul 10 05:32:49 2015 -0400 be2net: make the RX_FILTER command asynchronous This fix makes the RX_FILTER cmd asynchronous, i.e., the caller issues this cmd and doesn't wait for a completion from the FW. If the FW/adapter is in an error state, this change helps in not holding up the rtnl_lock and keeping bottom halves disabled while the driver timesout waiting for a response from the FW. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit efaa408e964012225897e87d9aad97a4d0ebc1d5 Author: Suresh Reddy Date: Fri Jul 10 05:32:48 2015 -0400 be2net: return error status from be_mcc_notify() When the adapter is in error state, return error from be_mcc_notify() so that the caller routines need not sleep waiting for a response. Signed-off-by: Suresh Reddy Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.c | 39 +++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 11 deletions(-) commit 1645d99768e00d3148ebded5d8c4ab55cdb19a5c Author: Venkat Duvvuru Date: Fri Jul 10 05:32:47 2015 -0400 be2net: convert dest field in udp-hdr to host-endian The "dest" field in the UDP-hdr of a TX skb is in network endian format. Convert it to host endian before accessing it. The os2bmc patch, mentioned below introduced this code. Fixes: 760c295e0e8d ("be2net: Support for OS2BMC") Signed-off-by: Venkat Duvvuru Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 887a65c4ab1511a9afc8a20e5507bec3d074f867 Author: Vasundhara Volam Date: Fri Jul 10 05:32:46 2015 -0400 be2net: fix wrong return value in be_check_ufi_compatibility() In the commit a6e6ff6eee12f3e ("be2net: simplify UFI compatibility checking"), a return value of "-1" was incorrectly used in place of "false". This patch fixes it. Fixes: a6e6ff6eee12f3e ("be2net: simplify UFI compatibility checking") Signed-off-by: Vasundhara Volam Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc23d6b7ab051106b700869e7ee09e8aec6864f2 Author: Kalesh Purayil Date: Fri Jul 10 05:32:45 2015 -0400 be2net: remove redundant D0 power state set pci_enable_device() call sets device power state to D0; there is no need doing it again. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 2 -- 1 file changed, 2 deletions(-) commit ff9ed19d263d9678394b6ac079abd68efb3c55c0 Author: Kalesh Purayil Date: Fri Jul 10 05:32:44 2015 -0400 be2net: query FW to check if EVB is enabled The current code assumes that bridge functionality (EVB) in the adapter is enabled only when SR-IOV is enabled. This is not always true. This patch uses the GET_HSW_CONFIG FW cmd to query this from the FW. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_cmds.h | 1 + drivers/net/ethernet/emulex/benet/be_main.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) commit 145155e786ccee898f6ed665f6dd3bce7c14830f Author: Kalesh Purayil Date: Fri Jul 10 05:32:43 2015 -0400 be2net: remove duplicate code in be_setup_wol() This change will make be_setup_wol() routine more compact and readable by removing some duplicate code. Signed-off-by: Kalesh AP Signed-off-by: Sathya Perla Signed-off-by: David S. Miller drivers/net/ethernet/emulex/benet/be_main.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit 9131f3de24db4dc12199aede7d931e6703e97f3b Author: YOSHIFUJI Hideaki/吉藤英明 Date: Fri Jul 10 16:58:31 2015 +0900 ipv6: Do not iterate over all interfaces when finding source address on specific interface. If outgoing interface is specified and the candidate address is restricted to the outgoing interface, it is enough to iterate over that given interface only. Signed-off-by: YOSHIFUJI Hideaki Acked-by: Erik Kline Signed-off-by: David S. Miller net/ipv6/addrconf.c | 197 ++++++++++++++++++++++++++++------------------------ 1 file changed, 107 insertions(+), 90 deletions(-) commit 6979b9cf58c86d14ceb1702b5b3fa4f63c98c013 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:29:23 2015 +0900 net: 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: David S. Miller drivers/net/ethernet/hisilicon/hip04_eth.c | 1 - drivers/net/ethernet/hisilicon/hip04_mdio.c | 1 - drivers/net/ethernet/ti/netcp_core.c | 1 - 3 files changed, 3 deletions(-) commit 239aa55b9496144f89670b545b5698e6c989f710 Author: David Thomson Date: Fri Jul 10 16:28:25 2015 +1200 net: phy: Support setting polarity in marvell phy driver Support manually setting the polarity to mdi or mdix Signed-off-by: David Thomson Signed-off-by: David S. Miller drivers/net/phy/marvell.c | 42 ++++++++++++++++++++++++++++++++++++++++-- drivers/net/phy/phy.c | 1 + 2 files changed, 41 insertions(+), 2 deletions(-) commit 634ec36cc0ab9d8dda0f2c101fa28d2e2a61b9eb Author: David Thomson Date: Fri Jul 10 13:56:54 2015 +1200 net: phy: Pass mdix ethtool setting through to phy driver Pass the mdix setting from ethtool down to the phy driver, to allow driver specific implementations of manually setting the polarity. Signed-off-by: David Thomson Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller drivers/net/phy/phy.c | 2 ++ include/linux/phy.h | 2 ++ 2 files changed, 4 insertions(+) commit 03bc7523cb4241a7f4ad67d7ae38027d1884a3ee Author: Stefan Tatschner Date: Wed Jul 8 10:41:07 2015 +0200 can-doc: Fix wrong chapter reference In f35f6c8f7 (can: update MAINTAINERS and Documentation) chapter 3.3 was removed. This patch fixes some old references to chapter 3.4 which no longer exists. Signed-off-by: Stefan Tatschner Signed-off-by: Jonathan Corbet Documentation/networking/can.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6609b638353c99c5736e05abd17197f1cb776e0e Author: Diego Viola Date: Mon Jul 6 14:33:21 2015 -0300 README: GTK+ is a acronym Signed-off-by: Diego Viola Signed-off-by: Jonathan Corbet README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fb18539b3c8f03e550b8afb21cf53db2a2235dbe Author: Robert Jarzmik Date: Sat Jun 20 10:17:30 2015 +0200 ARM: dts: pxa: fix power i2c definition Add the correct address and size to the device-tree description. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 0ec1939668e5a47b30a07ed4c178f491ce853ae7 Author: Robert Jarzmik Date: Sat Jun 20 10:17:31 2015 +0200 ARM: dts: pxa: add the usb host controller Add the usb host controller to pxa27x and pxa3xx. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 8 ++++++++ arch/arm/boot/dts/pxa3xx.dtsi | 8 ++++++++ 2 files changed, 16 insertions(+) commit 796b7dcf689f484332aac71a4a49edac6148532c Author: Robert Jarzmik Date: Sat Jun 20 10:17:29 2015 +0200 ARM: dts: pxa: add embedded pxa camera capture interface The pxa27x SoCs have an embedded camera host controller. Add the description to the family description. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 316c938218355f1c4688c9cbec88509cf9a2f4db Author: Robert Jarzmik Date: Sat Jun 20 10:17:28 2015 +0200 ARM: dts: pxa: add dma pxamci nodes to pxa3xx Add the 3 possible mmc controllers on pxa3xx SoCs to the devicetree description. Add the dma and clocks to the device-tree description of pxa27x and pxa3xx at the same time. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa2xx.dtsi | 4 ++++ arch/arm/boot/dts/pxa3xx.dtsi | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) commit c943646d1f497e0ef832fd7148dd2150a75b79a9 Author: Robert Jarzmik Date: Sat Jun 20 10:17:27 2015 +0200 ARM: dts: pxa: add dma engine node to pxa3xx-nand Add the dma client description for pxa3xx-nand to use its dma through device-tree. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa3xx.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 0cd491416092844218ab729413047bc5738f2106 Author: Robert Jarzmik Date: Sat Jun 20 10:17:26 2015 +0200 ARM: dts: pxa: add dma controller Add the SoC embedded DMA controller, shared with the mmp architecture. Signed-off-by: Robert Jarzmik arch/arm/boot/dts/pxa27x.dtsi | 9 +++++++++ arch/arm/boot/dts/pxa3xx.dtsi | 9 +++++++++ 2 files changed, 18 insertions(+) commit dc12f20ba06f89bc60d4dfadaf2b03404858e205 Author: Masanari Iida Date: Mon Jul 6 23:41:57 2015 +0900 Doc: powerpc: Fix typos in Documentation/powerpc This patch fix some spelling typo found in Documentation/powerpc. Signed-off-by: Masanari Iida Acked-by: Ian Munsie Signed-off-by: Jonathan Corbet Documentation/powerpc/cxl.txt | 2 +- Documentation/powerpc/dscr.txt | 6 +++--- Documentation/powerpc/qe_firmware.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 9ba6e988c7208e3cb1f71862cc578397ae938159 Author: Krzysztof Kozlowski Date: Sun Jul 5 11:56:51 2015 +0900 Documentation: ARM: EXYNOS: Extend boot loader interface documentation Extend the kernel-bootloader interface documentation with usage of register INFORM1 (0x0804) and different CPU resume address on Exynos542x family (with Multi-Cluster Power Management enabled). Additionally add glossary and reformat section titles. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Jonathan Corbet Documentation/arm/Samsung/Bootloader-interface.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 60498bb58e9a614b9706f250667033f30632a25c Author: Luis de Bethencourt Date: Fri Jul 3 16:22:11 2015 +0100 SubmittingPatches: update CodingStyle reference Link to the internal up to date Coding Style document inside the Kernel sources instead of an external one. Signed-off-by: Luis de Bethencourt Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b10df7f2c8b3c6de12375b85456c6fd275af6d0 Author: Olivier C. Larocque Date: Thu Jul 2 21:33:23 2015 -0400 Documentation: CodingStyle: remove broken links in the References section Remove 2 broken links for programming reference books in Appendix I. After a lookup on an Internet archives web site, it seems that these links have been broken for around 3 months. We can then assume that they will not be back up and safely remove them from the documentation. Signed-off-by: Olivier C. Larocque Signed-off-by: Jonathan Corbet Documentation/CodingStyle | 2 -- 1 file changed, 2 deletions(-) commit 5127e31a6ce04bd41a020c0ba28a1c0915ab6da1 Author: Suzuki K. Poulose Date: Fri Jul 10 16:26:38 2015 +0100 regulator: Add missing dummy definition for regulator_list_voltage Fixes a build break when CONFIG_REGULATOR is not selected. e.g, on linux-next - 07102015: drivers/clk/tegra/clk-dfll.c: In function ‘find_lut_index_for_rate’: drivers/clk/tegra/clk-dfll.c:691:3: error: implicit declaration of function ‘regulator_list_voltage’ [-Werror=implicit-function-declaration] if (regulator_list_voltage(td->vdd_reg, td->i2c_lut[i]) == uv) ^ CC drivers/clocksource/mmio.o CC fs/proc/softirqs.o cc1: some warnings being treated as errors make[3]: *** [drivers/clk/tegra/clk-dfll.o] Error 1 make[2]: *** [drivers/clk/tegra] Error 2 make[1]: *** [drivers/clk] Error 2 make[1]: *** Waiting for unfinished jobs.... This should be pushed to 4.2 as we have the issue in 4.2-rc1, just that nobody uses it without the REGULATOR(yet). Signed-off-by: Suzuki K. Poulose Signed-off-by: Mark Brown include/linux/regulator/consumer.h | 6 ++++++ 1 file changed, 6 insertions(+) commit 60cb65ebf49e6db114c3efeb3971064a6ddbea0e Author: Lee Jones Date: Fri Jul 10 08:45:36 2015 +0100 regulator: pwm-regulator: Fix ' comparison between signed and unsigned integer' warning drivers/regulator/pwm-regulator.c: In function ‘pwm_regulator_init_table’: drivers/regulator/pwm-regulator.c:171:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b343e08f3c5623d12829ad4965dd4c4e50f86fa2 Author: Lee Jones Date: Fri Jul 10 08:45:35 2015 +0100 regulator: pwm-regulator: Fix 'used uninitialized' warning drivers/regulator/pwm-regulator.c: In function 'pwm_regulator_init_table': drivers/regulator/pwm-regulator.c:172:14: warning: 'length' is used uninitialized in this function [-Wuninitialized] if ((length < sizeof(*duty_cycle_table)) || ^ Reported-by: kbuild test robot Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f293634b5a9e9acbcc1cac29fac7609bd999f868 Author: Lee Jones Date: Fri Jul 10 08:45:34 2015 +0100 regulator: pwm-regulator: Fix 'unused-variable' warning drivers/regulator/pwm-regulator.c: In function 'pwm_regulator_init_continuous': drivers/regulator/pwm-regulator.c:202:22: warning: unused variable 'np' [-Wunused-variable] struct device_node *np = pdev->dev.of_node; ^ Reported-by: kbuild test robot Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 2 -- 1 file changed, 2 deletions(-) commit 76c2145ded6b83488dec4afc46a29a57cee90552 Author: Arnaud Pouliquen Date: Mon Jun 22 16:31:07 2015 +0200 ASoC: sti: Add CPU DAI driver for playback Add code to manage Uniperipheral player IP instances. These DAIs are dedicated to playback and support I2S and IEC modes. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif.h | 116 ++++++ sound/soc/sti/uniperif_player.c | 890 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1006 insertions(+) commit e1ecace6a68518a6751987ab2032b0ec1b3bd5fe Author: Arnaud Pouliquen Date: Mon Jun 22 16:31:06 2015 +0200 ASoC: sti: Add uniperipheral header file Add the Uniperipheral header file for uniperipheral IPs registers definition. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/sti/uniperif.h | 1099 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1099 insertions(+) commit 05e85d4e0180dbbce823e19d81388e60ac924be1 Author: Arnaud Pouliquen Date: Mon Jun 22 16:31:05 2015 +0200 ASoC: sti: add binding for ASoC driver Add ASoC driver bindings documentation. Describe the required properties for each of the hardware IPs drivers. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown .../devicetree/bindings/sound/st,sti-asoc-card.txt | 155 +++++++++++++++++++++ 1 file changed, 155 insertions(+) commit 32a726b2e089ec1851965290a610c4ae9cab3303 Author: Arnaud Pouliquen Date: Mon Jun 22 16:31:11 2015 +0200 ASoC: sti-sas: Add sti platform codec Codec part of the sti platform that supports codec IPs. This first version does not support HDMI, but only DAC and SPDIF out. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 5 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/sti-sas.c | 627 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 634 insertions(+) commit b2c4105b080fb26d8fc9b89c846f5966137c6d40 Author: Ben Hutchings Date: Wed Jul 8 20:07:16 2015 +0100 scripts/kernel-doc: Use $KBUILD_BUILD_TIMESTAMP as man page date Together with the preceding changes, this allows man pages to be built reproducibly. Signed-off-by: Ben Hutchings Signed-off-by: Jonathan Corbet scripts/kernel-doc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit b44158b17099ed5c7c8f4bfb7029942adbfbc318 Author: Ben Hutchings Date: Wed Jul 8 20:07:05 2015 +0100 DocBook: Avoid building man pages repeatedly and inconsistently Some kernel-doc sections are included in multiple DocBook files. This means the mandocs target will generate the same manual page multiple times with different metadata (author name/address and manual title, taken from the including DocBook file). If it's invoked in a parallel build, the output is nondeterminstic. For each section that is duplicated, mark the less specific manual's inclusion as 'extra' and exclude it during conversion to manual pages. Use xmlif for this, as that is bundled with xmlto which we already use. I would have preferred to use more conventional markup for this, but each of the following approaches failed: 1. Wrap the extra inclusions with a new element and add a template to the stylesheet to include/exclude them. Unfortunately DocBook XSL doesn't seem to support foreign elements at an intermediate level in the document tree. 2. Use DocBook profiling. This works but requires passing an absolute path to the profile stylesheet to xmlto, so it's not portable. 3. Use SGML marked sections. docbook2x can handle these but xmlto chokes on them. Reported-by: Jérémy Bobbio Signed-off-by: Ben Hutchings Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 10 +++++++++- Documentation/DocBook/device-drivers.tmpl | 6 ++++++ Documentation/DocBook/gadget.tmpl | 3 +++ Documentation/DocBook/kernel-api.tmpl | 6 ++++++ 4 files changed, 24 insertions(+), 1 deletion(-) commit b48ed85145711b28f9024dcdaf6c0238d7b5042c Author: Ben Hutchings Date: Wed Jul 8 20:06:51 2015 +0100 DocBook: Generate consistent IDs By default, DocBook XSL uses a non-deterministic function to generate IDs for HTML elements where it can't take a name from the input document. However, it has the option to generate 'consistent' (deterministic) IDs instead. Enable this to make the HTML pages reproducible. Reported-by: Jérémy Bobbio Signed-off-by: Ben Hutchings Signed-off-by: Jonathan Corbet Documentation/DocBook/stylesheet.xsl | 1 + 1 file changed, 1 insertion(+) commit 32c1735c4091ef0de8e39f68a9d83a07450b959b Author: Ben Hutchings Date: Wed Jul 8 20:06:44 2015 +0100 DocBook: Don't store mtime (or name) in compressed man pages The mtime on a man page is the build time. As gzip stores the mtime and original name in the compressed file by default, this makes compressed man pages unreproducible. Neither of these are important metadata in this case, so turn this off. Reported-by: Jérémy Bobbio Signed-off-by: Ben Hutchings Signed-off-by: Jonathan Corbet Documentation/DocBook/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e106e4df28aa264f9ded7e5be3733224f2e4f93 Author: Jérémy Bobbio Date: Wed Jul 8 20:06:33 2015 +0100 scripts/kernel-doc: parse kernel-doc deterministically Regular expressions for highlights in kernel-doc are stored in a Perl hash. These hashes are ordered differently for each Perl run. This will prevent kernel-doc to behave deterministically when parsing “@foo()” as in some runs it will be interpreted as a parameter and in the others it will be interpreted as a function. We now sort the %highlights hash to get the same behavior on every run. Signed-off-by: Jérémy Bobbio Signed-off-by: Ben Hutchings Signed-off-by: Jonathan Corbet scripts/kernel-doc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d90c6cc242045115c5c4973114cc93e1c20e2ea8 Author: Charles Keepax Date: Fri Jul 10 14:37:25 2015 +0100 ASoC: arizona: Fix error path in codec probe If we fail to add some DSPs or fail to add the controls we should call wm_adsp2_codec_remove for all the cores we have already added. This patch fixes this up on the wm5102 and wm5110. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5102.c | 7 ++++++- sound/soc/codecs/wm5110.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) commit 77b1a97d218277d55a15016826d1fd79290f1df2 Author: Eric W. Biederman Date: Thu Jun 4 09:43:11 2015 -0500 mnt: fs_fully_visible enforce noexec and nosuid if !SB_I_NOEXEC The filesystems proc and sysfs do not have executable files do not have exectuable files today and portions of userspace break if we do enforce nosuid and noexec consistency of nosuid and noexec flags between previous mounts and new mounts of proc and sysfs. Add the code to enforce consistency of the nosuid and noexec flags, and use the presence of SB_I_NOEXEC to signal that there is no need to bother. This results in a completely userspace invisible change that makes it clear fs_fully_visible can only skip the enforcement of noexec and nosuid because it is known the filesystems in question do not support executables. Signed-off-by: "Eric W. Biederman" fs/namespace.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) commit 90f8572b0f021fdd1baa68e00a8c30482ee9e5f4 Author: Eric W. Biederman Date: Mon Jun 29 14:42:03 2015 -0500 vfs: Commit to never having exectuables on proc and sysfs. Today proc and sysfs do not contain any executable files. Several applications today mount proc or sysfs without noexec and nosuid and then depend on there being no exectuables files on proc or sysfs. Having any executable files show on proc or sysfs would cause a user space visible regression, and most likely security problems. Therefore commit to never allowing executables on proc and sysfs by adding a new flag to mark them as filesystems without executables and enforce that flag. Test the flag where MNT_NOEXEC is tested today, so that the only user visible effect will be that exectuables will be treated as if the execute bit is cleared. The filesystems proc and sysfs do not currently incoporate any executable files so this does not result in any user visible effects. This makes it unnecessary to vet changes to proc and sysfs tightly for adding exectuable files or changes to chattr that would modify existing files, as no matter what the individual file say they will not be treated as exectuable files by the vfs. Not having to vet changes to closely is important as without this we are only one proc_create call (or another goof up in the implementation of notify_change) from having problematic executables on proc. Those mistakes are all too easy to make and would create a situation where there are security issues or the assumptions of some program having to be broken (and cause userspace regressions). Signed-off-by: "Eric W. Biederman" fs/exec.c | 10 ++++++++-- fs/open.c | 2 +- fs/proc/root.c | 2 ++ fs/sysfs/mount.c | 4 ++++ include/linux/fs.h | 3 +++ kernel/sys.c | 3 +-- mm/mmap.c | 4 ++-- mm/nommu.c | 2 +- security/security.c | 2 +- 9 files changed, 23 insertions(+), 9 deletions(-) commit 3fd4079fe295b91cd1f4330e3c8f1e6e4618a27d Author: Krzysztof Kozlowski Date: Fri Jul 10 15:29:45 2015 +0900 soc: mediatek: 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 Acked-by: Sascha Hauer Signed-off-by: Matthias Brugger drivers/soc/mediatek/mtk-pmic-wrap.c | 1 - 1 file changed, 1 deletion(-) commit ca12bb14fee138603d17b1d68906abeebaa09b30 Author: Krzysztof Kozlowski Date: Fri Jul 10 14:47:23 2015 +0900 EDAC, xgene: 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 Cc: linux-edac Cc: Loc Ho Cc: Mauro Carvalho Chehab Link: http://lkml.kernel.org/r/1436507243-11159-1-git-send-email-k.kozlowski@samsung.com Signed-off-by: Borislav Petkov drivers/edac/xgene_edac.c | 1 - 1 file changed, 1 deletion(-) commit 7b47ab47b3938e2274834dbde7915df98fc74368 Author: Kuninori Morimoto Date: Tue Jun 16 08:53:11 2015 +0000 ASoC: rsnd: gen: add rsnd_force_write() rsnd_force_write() is similar to rsnd_write(), but rsnd_force_write() write data to register even though it is same value. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/sh/rcar/gen.c | 16 ++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 4 ++++ 2 files changed, 20 insertions(+) commit d1b080290f86d134b97bfe63e499ab9ed3935a02 Merge: d770e55 e874e6c Author: Mark Brown Date: Fri Jul 10 11:39:23 2015 +0100 Merge tag 'regmap-force' into asoc-rcar regmap: Force write support This allows users to use _update_bits() without the write suppression, useful for some hardware. commit e874e6c7edc43436f73cf84157d9221f8b807c36 Author: Kuninori Morimoto Date: Tue Jun 16 08:52:55 2015 +0000 regmap: add regmap_fields_force_write() regmap_fields_force_write() is similar to regmap_fields_write(), but regmap_fields_force_write() write data to register even though it is same value. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 12 ++++++++++++ include/linux/regmap.h | 2 ++ 2 files changed, 14 insertions(+) commit fd4b7286ccc469bf5dde22db6b8fcc455c3c4a66 Author: Kuninori Morimoto Date: Tue Jun 16 08:52:39 2015 +0000 regmap: add regmap_write_bits() regmap_write_bits() is similar to regmap_update_bits(), but regmap_write_bits() write data to register even though it is same value. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 23 +++++++++++++++++++++++ include/linux/regmap.h | 9 +++++++++ 2 files changed, 32 insertions(+) commit 7ff0589c7bff4ca31b255ac2028f633f14047762 Author: Kuninori Morimoto Date: Tue Jun 16 08:52:22 2015 +0000 regmap: add force_write option on _regmap_update_bits() Sometimes we want to write data even though it doesn't change value. Then, force_write option on _regmap_update_bits() helps this purpose. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown drivers/base/regmap/regmap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 57853e8906a04a86c32fb96d8421b923c6d64162 Author: Will Deacon Date: Tue Jul 7 18:19:38 2015 +0100 ARM: 8403/1: kbuild: don't use generic mcs_spinlock.h header We provide our own implementation of asm/mcs_spinlock.h, so there's no need to ask for the (empty) generic version. Signed-off-by: Will Deacon Signed-off-by: Russell King arch/arm/include/asm/Kbuild | 1 - 1 file changed, 1 deletion(-) commit 8ded1e1a92daa96307e4b84b707fee5993bc6047 Author: Stephen Boyd Date: Tue Jul 7 18:16:15 2015 +0100 ARM: 8401/1: perf: Set affinity for PPI based PMUs For PPI based PMUs, we bail out early in of_pmu_irq_cfg() without setting the PMU's supported_cpus bitmap. This causes the smp_call_function_any() in armv7_probe_num_events() to fail. Set the bitmap to be all CPUs so that we properly probe PMUs that use PPIs. Fixes: cc88116da0d1 ("arm: perf: treat PMUs as CPU affine") Cc: Mark Rutland Signed-off-by: Stephen Boyd Signed-off-by: Will Deacon Signed-off-by: Russell King arch/arm/kernel/perf_event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit eeedcea69e927857d32aaf089725eddd2c79dd0a Author: Geert Uytterhoeven Date: Fri Jun 26 08:09:29 2015 +0100 ARM: 8395/1: l2c: Add support for the "arm,shared-override" property "CoreLink Level 2 Cache Controller L2C-310", p. 2-15, section 2.3.2 Shareable attribute" states: "The default behavior of the cache controller with respect to the shareable attribute is to transform Normal Memory Non-cacheable transactions into: - cacheable no allocate for reads - write through no write allocate for writes." Depending on the system architecture, this may cause memory corruption in the presence of bus mastering devices (e.g. OHCI). To avoid such corruption, the default behavior can be disabled by setting the Shared Override bit in the Auxiliary Control register. Currently the Shared Override bit can be set only using C code: - by calling l2x0_init() directly, which is deprecated, - by setting/clearing the bit in the machine_desc.l2c_aux_val/mask fields, but using values differing from 0/~0 is also deprecated. Hence add support for an "arm,shared-override" device tree property for the l2c device node. By specifying this property, affected systems can indicate that non-cacheable transactions must not be transformed. Then, it's up to the OS to decide. The current behavior is to set the "shared attribute override enable" bit, as there may exist kernel linear mappings and cacheable aliases for the DMA buffers, even if CMA is enabled. See also commit 1a8e41cd672f894b ("ARM: 6395/1: VExpress: Set bit 22 in the PL310 (cache controller) AuxCtlr register"): "Clearing bit 22 in the PL310 Auxiliary Control register (shared attribute override enable) has the side effect of transforming Normal Shared Non-cacheable reads into Cacheable no-allocate reads. Coherent DMA buffers in Linux always have a Cacheable alias via the kernel linear mapping and the processor can speculatively load cache lines into the PL310 controller. With bit 22 cleared, Non-cacheable reads would unexpectedly hit such cache lines leading to buffer corruption." Signed-off-by: Geert Uytterhoeven Acked-by: Catalin Marinas Signed-off-by: Russell King Documentation/devicetree/bindings/arm/l2cc.txt | 6 ++++++ arch/arm/mm/cache-l2x0.c | 5 +++++ 2 files changed, 11 insertions(+) commit 3eb4351af42bd8b6de20daab07b204a85c35248f Author: Dmitry Torokhov Date: Thu Jul 9 14:33:21 2015 -0700 HID: input: call input_sync() when automatically releasing a key We need to emit EV_SYN/SYN_REPORT between key press and release, otherwise userspace is allowed to "swallow" the event. [jkosina@suse.com: Dmitry says that he's observing this behavior with Plantronics headset] Signed-off-by: Dmitry Torokhov Signed-off-by: Jiri Kosina drivers/hid/hid-input.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 44eda784a2229d25e2724ef1734fe67453716231 Author: Ellen Wang Date: Thu Jul 9 21:55:06 2015 -0700 HID: cp2112: support i2c write-read transfers in hid-cp2112 cp2112_i2c_xfer() only supports a single i2c_msg. More than one message at a time just returns EIO. This breaks certain important cases. For example, the at24 eeprom driver generates paired write and read messages (for eeprom address and data). Since the device doesn't support i2c repeated starts in general, but does support a single write-repeated-start-read pair (since hardware rev 1), we recognize the latter case and implement only that. Signed-off-by: Ellen Wang Signed-off-by: Jiri Kosina drivers/hid/hid-cp2112.c | 74 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 19 deletions(-) commit 3ce095c16263630dde46d6051854073edaacf3d7 Author: Krzysztof Kozlowski Date: Fri Jul 10 15:39:02 2015 +0900 ALSA: aoa: 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: Takashi Iwai sound/aoa/codecs/onyx.c | 1 - sound/aoa/codecs/tas.c | 1 - 2 files changed, 2 deletions(-) commit a4e2405cc5d20ed6d58c4874325856e80e76a7f8 Author: Eric Dumazet Date: Thu Jul 9 18:01:40 2015 +0200 tcp: do not export tcp_init_xmit_timers() After commit 900f65d361d3 ("tcp: move duplicate code from tcp_v4_init_sock()/tcp_v6_init_sock()"), we no longer need to export tcp_init_xmit_timers() Signed-off-by: Eric Dumazet Cc: Neal Cardwell Acked-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_timer.c | 1 - 1 file changed, 1 deletion(-) commit 09cf0211f970311383fdb453bbd5b3beeb294324 Author: Nikolay Aleksandrov Date: Thu Jul 9 03:11:10 2015 -0700 bridge: mdb: fill state in br_mdb_notify Fill also the port group state when sending notifications. Signed-off-by: Satish Ashok Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller net/bridge/br_mdb.c | 5 +++-- net/bridge/br_multicast.c | 5 +++-- net/bridge/br_private.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) commit cb1c61680d29a054b91a23c7a504cea8a72bdcff Author: Masatake YAMATO Date: Thu Jul 9 12:46:35 2015 +0900 route: remove unsed variable in __mkroute_input flags local variable in __mkroute_input is not used as a variable. Signed-off-by: Masatake YAMATO Signed-off-by: David S. Miller net/ipv4/route.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 35a256fee52c7c207796302681fa95189c85b408 Author: Tom Herbert Date: Wed Jul 8 16:58:22 2015 -0700 ipv6: Nonlocal bind Add support to allow non-local binds similar to how this was done for IPv4. Non-local binds are very useful in emulating the Internet in a box, etc. This add the ip_nonlocal_bind sysctl under ipv6. Testing: Set up nonlocal binding and receive routing on a host, e.g.: ip -6 rule add from ::/0 iif eth0 lookup 200 ip -6 route add local 2001:0:0:1::/64 dev lo proto kernel scope host table 200 sysctl -w net.ipv6.ip_nonlocal_bind=1 Set up routing to 2001:0:0:1::/64 on peer to go to first host ping6 -I 2001:0:0:1::1 peer-address -- to verify Signed-off-by: Tom Herbert Signed-off-by: David S. Miller Documentation/networking/ip-sysctl.txt | 5 +++++ include/net/netns/ipv6.h | 1 + net/ipv4/ping.c | 3 ++- net/ipv6/af_inet6.c | 3 ++- net/ipv6/raw.c | 3 ++- net/ipv6/sysctl_net_ipv6.c | 8 ++++++++ 6 files changed, 20 insertions(+), 3 deletions(-) commit 5a10ececc60c469d0641531589ccc38a768e0d07 Merge: 8b58a39 dbe7faa Author: David S. Miller Date: Thu Jul 9 15:12:21 2015 -0700 Merge branch 'tw_cleanups' Eric Dumazet says: ==================== inet: timewait cleanups Another round of patches to make tw handling simpler. ==================== Signed-off-by: David S. Miller commit dbe7faa4045ea83a37b691b12bb02a8f86c2d2e9 Author: Eric Dumazet Date: Wed Jul 8 14:28:30 2015 -0700 inet: inet_twsk_deschedule factorization inet_twsk_deschedule() calls are followed by inet_twsk_put(). Only particular case is in inet_twsk_purge() but there is no point to defer the inet_twsk_put() after re-enabling BH. Lets rename inet_twsk_deschedule() to inet_twsk_deschedule_put() and move the inet_twsk_put() inside. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/inet_timewait_sock.h | 2 +- net/ipv4/inet_hashtables.c | 9 +++------ net/ipv4/inet_timewait_sock.c | 13 ++++++++----- net/ipv4/tcp_ipv4.c | 3 +-- net/ipv4/tcp_minisocks.c | 6 ++---- net/ipv6/inet6_hashtables.c | 3 +-- net/ipv6/tcp_ipv6.c | 3 +-- net/netfilter/xt_TPROXY.c | 6 ++---- 8 files changed, 19 insertions(+), 26 deletions(-) commit fc01538f9fb75572c969ca9988176ffc2a8741d6 Author: Eric Dumazet Date: Wed Jul 8 14:28:29 2015 -0700 inet: simplify timewait refcounting timewait sockets have a complex refcounting logic. Once we realize it should be similar to established and syn_recv sockets, we can use sk_nulls_del_node_init_rcu() and remove inet_twsk_unhash() In particular, deferred inet_twsk_put() added in commit 13475a30b66cd ("tcp: connect() race with timewait reuse") looks unecessary : When removing a timewait socket from ehash or bhash, caller must own a reference on the socket anyway. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/inet_hashtables.h | 4 ++-- include/net/inet_timewait_sock.h | 6 ++---- net/ipv4/inet_hashtables.c | 31 ++++++++++------------------- net/ipv4/inet_timewait_sock.c | 42 ++++++---------------------------------- net/ipv6/inet6_hashtables.c | 6 +----- 5 files changed, 21 insertions(+), 68 deletions(-) commit 3fd2f1b9d91284afb957ab9899a83279d0e09f29 Author: Eric Dumazet Date: Wed Jul 8 14:28:28 2015 -0700 inet: remove BUG_ON() in twsk_destructor() Kernel will crash the same if one of the pointer is NULL anyway. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller include/net/timewait_sock.h | 3 --- 1 file changed, 3 deletions(-) commit 8b58a39846568dcd7d0c98b2fadc25018e59dedf Author: Florian Westphal Date: Wed Jul 8 23:32:12 2015 +0200 ipv6: use flag instead of u16 for hop in inet6_skb_parm Hop was always either 0 or sizeof(struct ipv6hdr). Signed-off-by: Florian Westphal Signed-off-by: David S. Miller include/linux/ipv6.h | 2 +- net/ipv6/af_inet6.c | 4 ++-- net/ipv6/datagram.c | 8 ++++---- net/ipv6/exthdrs.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) commit 7c3d0d67d5ddb2aeb3fdae540a567a56c2831d2a Author: Aleksey S. Kazantsev Date: Tue Jul 7 20:38:15 2015 -0700 dsa: mv88e6352/mv88e6xxx: Add support for Marvell 88E6320 and 88E6321 MV88E6320 and MV88E6321 are largely compatible to MV886352, but are members of a different chip family. Signed-off-by: Aleksey S. Kazantsev Signed-off-by: Guenter Roeck Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller drivers/net/dsa/Kconfig | 6 +++--- drivers/net/dsa/mv88e6352.c | 31 +++++++++++++++++++++++++------ drivers/net/dsa/mv88e6xxx.c | 42 ++++++++++++++++++++++++++++++------------ drivers/net/dsa/mv88e6xxx.h | 8 +++++++- 4 files changed, 65 insertions(+), 22 deletions(-) commit 986ca37eaedc9bc3045a91cc32e6e7427bd87b5d Merge: 1007f59 b20a3fa Author: David S. Miller Date: Thu Jul 9 14:22:53 2015 -0700 Merge branch 'tcp-in-slow-start' Yuchung Cheng says: ==================== tcp: fixes some congestion control corner cases This patch series fixes corner cases of TCP congestion control. First issue is to avoid continuing slow start when cwnd reaches ssthresh. Second issue is incorrectly processing order of congestion state and cwnd update when entering fast recovery or undoing cwnd. ==================== Signed-off-by: David S. Miller commit b20a3fa30a281b52b2576b509efbe5cd47a5a79b Author: Yuchung Cheng Date: Thu Jul 9 13:16:31 2015 -0700 tcp: update congestion state first before raising cwnd The congestion state and cwnd can be updated in the wrong order. For example, upon receiving a dubious ACK, we incorrectly raise the cwnd first (tcp_may_raise_cwnd()/tcp_cong_avoid()) because the state is still Open, then enter recovery state to reduce cwnd. For another example, if the ACK indicates spurious timeout or retransmits, we first revert the cwnd reduction and congestion state back to Open state. But we don't raise the cwnd even though the ACK does not indicate any congestion. To fix this problem we should first call tcp_fastretrans_alert() to process the dubious ACK and update the congestion state, then call tcp_may_raise_cwnd() that raises cwnd based on the current state. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: Nandita Dukkipati Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 76174004a0f19785a328f40388e87e982bbf69b9 Author: Yuchung Cheng Date: Thu Jul 9 13:16:30 2015 -0700 tcp: do not slow start when cwnd equals ssthresh In the original design slow start is only used to raise cwnd when cwnd is stricly below ssthresh. It makes little sense to slow start when cwnd == ssthresh: especially when hystart has set ssthresh in the initial ramp, or after recovery when cwnd resets to ssthresh. Not doing so will also help reduce the buffer bloat slightly. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: Nandita Dukkipati Signed-off-by: David S. Miller include/net/tcp.h | 2 +- net/ipv4/tcp_cdg.c | 2 +- net/ipv4/tcp_cong.c | 4 +--- net/ipv4/tcp_hybla.c | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) commit 071d5080e33d6f24139e4213c2d9f97a2c21b602 Author: Yuchung Cheng Date: Thu Jul 9 13:16:29 2015 -0700 tcp: add tcp_in_slow_start helper Add a helper to test the slow start condition in various congestion control modules and other places. This is to prepare a slight improvement in policy as to exactly when to slow start. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: Nandita Dukkipati Signed-off-by: David S. Miller include/net/tcp.h | 7 ++++++- net/ipv4/tcp_bic.c | 2 +- net/ipv4/tcp_cong.c | 2 +- net/ipv4/tcp_cubic.c | 4 ++-- net/ipv4/tcp_highspeed.c | 2 +- net/ipv4/tcp_htcp.c | 2 +- net/ipv4/tcp_illinois.c | 2 +- net/ipv4/tcp_metrics.c | 2 +- net/ipv4/tcp_scalable.c | 2 +- net/ipv4/tcp_vegas.c | 6 +++--- net/ipv4/tcp_veno.c | 2 +- 11 files changed, 19 insertions(+), 14 deletions(-) commit 1007f59dce53a22cba164f854d7bdc171c85dc79 Author: Alexander Duyck Date: Thu Jul 9 11:02:52 2015 -0700 net: skb_defer_rx_timestamp should check for phydev before setting up classify This change makes it so that the call skb_defer_rx_timestamp will first check for a phydev before going in and manipulating the skb->data and skb->len values. By doing this we can avoid unnecessary work on network devices that don't support phydev. As a result we reduce the total instruction count needed to process this on most devices. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller net/core/timestamping.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 2251ae46af72d013a6a537e7681e94b18b63e332 Author: Jon Maxwell Date: Wed Jul 8 10:12:28 2015 +1000 tcp: v1 always send a quick ack when quickacks are enabled V1 of this patch contains Eric Dumazet's suggestion to move the per dst RTAX_QUICKACK check into tcp_in_quickack_mode(). Thanks Eric. I ran some tests and after setting the "ip route change quickack 1" knob there were still many delayed ACKs sent. This occured because when icsk_ack.quick=0 the !icsk_ack.pingpong value is subsequently ignored as tcp_in_quickack_mode() checks both these values. The condition for a quick ack to trigger requires that both icsk_ack.quick != 0 and icsk_ack.pingpong=0. Currently only icsk_ack.pingpong is controlled by the knob. But the icsk_ack.quick value changes dynamically depending on heuristics. The crux of the matter is that delayed acks still cannot be entirely disabled even with the RTAX_QUICKACK per dst knob enabled. This patch ensures that a quick ack is always sent when the RTAX_QUICKACK per dst knob is turned on. The "ip route change quickack 1" knob was recently added to enable quickacks. It was modeled around the TCP_QUICKACK setsockopt() option. This issue is that even with "ip route change quickack 1" enabled we still see delayed ACKs under some conditions. It would be nice to be able to completely disable delayed ACKs. Here is an example: # netstat -s|grep dela 3 delayed acks sent For all routes enable the knob # ip route change quickack 1 Generate some traffic across a slow link and we still see the delayed acks. # netstat -s|grep dela 106 delayed acks sent 1 delayed acks further delayed because of locked socket The issue is that both the "ip route change quickack 1" knob and the TCP_QUICKACK option set the icsk_ack.pingpong variable to 0. However at the business end in the __tcp_ack_snd_check() routine, tcp_in_quickack_mode() checks that both icsk_ack.quick != 0 and icsk_ack.pingpong=0 in order to trigger a quickack. As icsk_ack.quick is determined by heuristics it can be 0. When that occurs the icsk_ack.pingpong value is ignored and a delayed ACK is sent regardless. This patch moves the RTAX_QUICKACK per dst check into the tcp_in_quickack_mode() routine which ensures that a quickack is always sent when the quickack knob is enabled for that dst. Signed-off-by: Jon Maxwell Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 11 +++++------ net/ipv4/tcp_output.c | 6 ++---- 2 files changed, 7 insertions(+), 10 deletions(-) commit bd760c498f009e2a6795952469af6f8e6edac05a Author: Daniel Grimshaw Date: Wed Jul 8 10:44:51 2015 -0700 Documentation: filesystems: btrfs: Fixed typos and whitespace I am a high school student trying to become familiar with Linux kernel development. The btrfs documentation in Documentation/filesystems had a few typos and errors in whitespace. This patch corrects both of these. Signed-off-by: Daniel Grimshaw Signed-off-by: Jonathan Corbet Documentation/filesystems/btrfs.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit d6eff078e0bf9f24dcc2c7fcdbdf26b57148b197 Author: Sébastien Hinderer Date: Wed Jul 8 21:12:32 2015 +0200 SubmittingPatches: fix typo From 7e0befc8e48a49e2ddf86bbd861027b14ea5a53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hinderer?= Date: Wed, 8 Jul 2015 21:10:18 +0200 Subject: [PATCH] SubmittingPatches: fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" Signed-off-by: Sébastien Hinderer Signed-off-by: Jonathan Corbet Documentation/SubmittingPatches | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d04df7325ac9def8c4a68b49822c1d0a0c5379c6 Author: Rodrigo Vivi Date: Wed Jul 8 16:25:21 2015 -0700 drm/i915: fbdev restore mode needs to invalidate frontbuffer This fbdev restore mode was another corner case that was now calling frontbuffer flip and flush and making we miss screen updates with PSR enabled. So let's also add the invalidate hack here while we don't have a reliable dirty fbdev op. v2: As pointed by Paulo: removed seg fault risk, used fb_helper when possible and put brackets on if. Cc: Paulo Zanoni Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Testcase: igt/kms_fbcon_fbt/psr Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit aba6da3e61779186a7bd45e2206d88524f422e5b Author: Rodrigo Vivi Date: Thu Jul 9 09:56:41 2015 -0700 drm/i915: fbdev_set_par reliably invalidating frontbuffer fbdev_set_par is called when fbcon is taking over control. In the past frontbuffer was being invalidated on set_to_gtt_domain, but it moved to set_domain fixing that case, but left this behind and broken in commit 031b698a77a70a6c394568034437b5486a44e868 Author: Daniel Vetter Date: Fri Jun 26 19:35:16 2015 +0200 drm/i915: Unconditionally do fb tracking invalidate in set_domain Note that even before this commit it wasn't perfect since the invalidate was omitted if the fbcon was already in the GTT domain, which it usually was. Since we are also invalidating in other fbdev cases this one was masked here. At least until now that I found this corner case: On boot with plymouth doing a splash screen when returning to the console frontbuffer wans't being invalidated causing missed screen updates with PSR enabled. So this patch fixes this issue. v2: Make invalidate directly and unconditionally and fix commit message indicating the set_domain fix as pointed out by Daniel. v3: Remove unecessary if(obj) added by mistake Cc: Paulo Zanoni Cc: Daniel Vetter Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni [danvet: Try to clarify commit message a bit and make it clear the referenced commit made this worse.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 97173eaf5f33b1e85efdb06d593d333480b60bf3 Author: Rodrigo Vivi Date: Tue Jul 7 16:28:55 2015 -0700 drm/i915: PSR: Increase idle_frames Idle frames the number of identical frames needed before panel can enter PSR. There are some panels that requires up to minimum of 4 idle frames available on the market. For these cases usually VBT should be used to configure the number of idle frames, but unfortunately this isn't always true and VBT isn't being set at all. Let's trust VBT when it is set + 1 and use minimum of 4 + 1 when VBT isn't set. "+1" covers the "of-by-one" case. Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 09108b90f0404587b7afac64023ec11a7f1b1406 Author: Rodrigo Vivi Date: Tue Jul 7 16:28:54 2015 -0700 drm/i915: PSR: Remove Low Power HW tracking mask. By Spec we should only mask memup and hotplug detection for hardware tracking cases. However we always masked LPSP because with power well always enabled on audio PSR was never being activated and residency was always zeroed. Apparently audio driver is tying power well management and runtime PM for some reason. But with audio runtime PM working or with audio completely out of picture we should remove this mask, otherwise we have a high risk of miss screen updates as faced by Matthew. WARNING: With this patch if snd_intel_hda driver is running and not releasing power well properly PSR will constant Exit and Performance Counter will be 0. But the best thing of this patch is that with one more HW tracking working the risks of missed blank screen are minimized at most. This affects just core platforms where PSR exit are also helped by HW tracking: Haswell, Broadwell and Skylake for now. v2: Fix commit message explanation. It has nothing to do with runtime PM on i915 as previously advertised. Cc: Daniel Vetter Cc: Matthew Garrett Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b6d30968d86c45a7bb599eaca13ff048d3fa576c Author: Anshul Garg Date: Thu Jul 9 10:18:22 2015 -0700 Input: uinput - switch to using for_each_set_bit() Use for_each_set_bit to check for set bits in bitmap as it is more efficient and compact. Signed-off-by: Anshul Garg Signed-off-by: Dmitry Torokhov drivers/input/misc/uinput.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 5d506a5ad4155e813d254d2f02ce17b58045423c Author: Axel Lin Date: Thu Jul 9 16:48:50 2015 +0800 regulator: qcom_spmi-regulator: Use DIV_ROUND_UP instead of open-coded Signed-off-by: Axel Lin Reviewed-by: Andy Gross Signed-off-by: Mark Brown drivers/regulator/qcom_spmi-regulator.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit f3f6439d8635d783f145b321db3049369e745799 Author: Lee Jones Date: Thu Jul 9 16:35:28 2015 +0100 regulator: pwm-regulator: Small clean-ups Remove over-bracketing, use framework API to fetch PWM period and be more forthcoming that pwm_voltage_to_duty_cycle() actually returns duty cycle as a percentage, rather than a register value. Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit f747a1fe7848453957dbdf362a42d7a6735c6ff0 Author: Lee Jones Date: Thu Jul 9 16:35:27 2015 +0100 regulator: pwm-regulator: Remove obsoleted property In "[3d7ef30] regulator: pwm-regulator: Simplify voltage to duty-cycle call" we stopped using max_duty_cycle, so we can retire it from device data and DT. There is no need to deprecate this property, as it hasn't hit Mainline yet. Signed-off-by: Lee Jones Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/pwm-regulator.txt | 11 ++++------- drivers/regulator/pwm-regulator.c | 9 --------- 2 files changed, 4 insertions(+), 16 deletions(-) commit a505bfb10a0fc6f4342a2521b899d61ff2461e72 Author: Lee Jones Date: Thu Jul 9 16:35:26 2015 +0100 regulator: pwm-regulator: Ensure headings aren't confused with properties We're using capitalisation and removing the '-' to mitigate confusion. Signed-off-by: Lee Jones Signed-off-by: Mark Brown Documentation/devicetree/bindings/regulator/pwm-regulator.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e973e31a02c32fc830986e62f82e69934134f5ce Author: Subhransu S. Prusty Date: Thu Jul 9 21:38:55 2015 +0530 ASoC: Intel: Add DSP init and boot up functionality for SKL This patch adds code to enable, disable and boot DSP core. Also provide some helpers to reset and power up/down the core. Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp-priv.h | 4 + sound/soc/intel/skylake/Makefile | 2 +- sound/soc/intel/skylake/skl-sst-dsp.c | 337 ++++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-sst-dsp.h | 57 ++++++ 4 files changed, 399 insertions(+), 1 deletion(-) commit b81fd26359f04370f3c972652302717498f8790c Author: Subhransu S. Prusty Date: Thu Jul 9 21:38:54 2015 +0530 ASoC: Intel: Add Skylake IPC library This adds base SKL IPC library which uses common SST IPC lib. Here we add definition for IPC types, sending and receiving IPC messages from aDSP, handling interrupt, sending different types of messages etc Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 1 + sound/soc/intel/common/sst-dsp-priv.h | 4 + sound/soc/intel/skylake/Makefile | 5 + sound/soc/intel/skylake/skl-sst-ipc.c | 760 ++++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl-sst-ipc.h | 125 ++++++ 5 files changed, 895 insertions(+) commit d15b1ae17c79f682760483b56074e980720f52eb Author: Subhransu S. Prusty Date: Thu Jul 9 21:38:53 2015 +0530 ASoC: Intel: Add helper to update register bits with attr RWC For SKL IPC, we have some register bits with attribute RWC. So we need to force update them. Add helper to force update this type of registers bits. Signed-off-by: Subhransu S. Prusty Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp.c | 28 ++++++++++++++++++++++++++++ sound/soc/intel/common/sst-dsp.h | 4 ++++ 2 files changed, 32 insertions(+) commit 7a2c52b61fd71eddda3385006962630444d15b9e Author: Subhransu S. Prusty Date: Thu Jul 9 21:38:52 2015 +0530 ASoC: Intel: Add helper to poll register for DSP status This patch adds helper to poll register for DSP status. Signed-off-by: Subhransu S. Prusty Signed-off-by: Kp, Jeeja Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp.c | 43 ++++++++++++++++++++++++++++++++++++++++ sound/soc/intel/common/sst-dsp.h | 2 ++ 2 files changed, 45 insertions(+) commit cc2e26a7c57924b31e9c5ac7b3d0d814253c9285 Author: Paulo Zanoni Date: Wed Jul 8 18:08:39 2015 -0300 drm/i915: fix intel_frontbuffer_flip documentation Reported by the kbuild test robot. Regression introduced by: commit fdbff9282c0f5f61ffc87d57461b04d943250910 Author: Daniel Vetter Date: Thu Jun 18 11:23:24 2015 +0200 drm/i915: Clear fb_tracking.busy_bits also for synchronous flips (I reviewed this commit, so it's also my fault) Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 1 - drivers/gpu/drm/i915/intel_frontbuffer.c | 1 - 2 files changed, 2 deletions(-) commit b6c2aa5187ac59c8c6728ae09934390c3757f2bf Author: Paulo Zanoni Date: Wed Jul 8 18:08:37 2015 -0300 drm/i915: intel_frontbuffer_flush can now be static So make it static. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 3 --- drivers/gpu/drm/i915/intel_frontbuffer.c | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) commit 76f2e13d5597d72c4f88509d0d183e4a8512b01f Author: Paulo Zanoni Date: Wed Jul 8 18:08:38 2015 -0300 drm/i915: fix intel_fb_obj_flush documentation Reported by the kbuild test robot. Regression introduced by: commit de152b627eb3018de91ec5c5a50b38e17d80a88b Author: Rodrigo Vivi Date: Tue Jul 7 16:28:51 2015 -0700 drm/i915: Add origin to frontbuffer tracking flush (I reviewed this commit, so it's also my fault) Signed-off-by: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_frontbuffer.c | 1 + 1 file changed, 1 insertion(+) commit 86c985883edeba570c9b6679827556bed2c6ecdc Author: Rodrigo Vivi Date: Wed Jul 8 16:22:45 2015 -0700 drm/i915: dirty fb operation flushsing frontbuffer Let's do a frontbuffer flush on dirty fb. To be used for DIRTYFB drm ioctl. This patch solves the biggest PSR known issue, that is missed screen updates during boot, mainly when there is a splash screen involved like Plymouth. Previously PSR was being invalidated by fbdev and Plymounth was taking control with PSR yet invalidated and could get screen updates normally. However with some atomic modeset changes Pymouth modeset over ioctl was now causing frontbuffer flushes making PSR gets back to work while it cannot track the screen updates and exit properly. By adding this flush on dirtyfb we properly track frontbuffer writes and properly exit PSR. Actually all mmap_wc users should call this dirty callback in order to have a proper frontbuffer tracking. In the future it can be extended to return 0 if the whole screen has being flushed or the number of rects flushed as Chris suggested. v2: Remove ORIGIN_FB_DIRTY and use ORIGIN_GTT instead since dirty callback is just called after few screen updates and not on everyone as pointed by Daniel. v3: Use flush instead of invalidate since flush means invalidate + flush and dirty means drawn had finished and it can be flushed. v4: Remove PSR from subject since it is purely frontbuffer tracking change and that can be useful for FBC as well. Cc: Chris Wilson Cc: Paulo Zanoni Cc: Daniel Vetter Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni [danvet: Fix alignment as spotted by Paulo.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 169de1316c1e69ad169d81c60549479640461630 Author: Rodrigo Vivi Date: Wed Jul 8 16:21:31 2015 -0700 drm/i915: PSR: Flush means invalidate + flush Since flush actually means invalidate + flush we need to force psr exit on PSR flush. On Core platforms there is no way to disable hw tracking and do the pure sw tracking so we simulate it by fully disable psr and reschedule a enable back. So a good idea is to minimize sequential disable/enable in cases we know that HW tracking like when flush has been originated by a flip. Also flip had just invalidated it already. It also uses origin to minimize the a bit the amount of disable/enabled, mainly when flip already had invalidated. With this patch in place it is possible to do a flush on dirty areas properly in a following patch. v2: Remove duplicated exit on HSW+Sprites as pointed out by Paulo. Cc: Paulo Zanoni Cc: Daniel Vetter Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_frontbuffer.c | 2 +- drivers/gpu/drm/i915/intel_psr.c | 40 +++++++++++++++++--------------- 3 files changed, 24 insertions(+), 21 deletions(-) commit adfe5f267dd005d0bbe8d71820a7fa38945d08bd Author: Thomas Petazzoni Date: Thu Jun 18 14:38:41 2015 +0200 ARM: mvebu: update mvebu_v7_defconfig with features needed for Armada 388 GP The Armada 388 GP board has the following hardware features that were not enabled in mvebu_v7_defconfig: * An AT24 I2C EEPROM (also used by armada-xp-lenovo-ix4-300d) * A PCA9555 I2C GPIO expander * Several fixed regulators Therefore, this commit adds the necessary options to mvebu_v7_defconfig. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/configs/mvebu_v7_defconfig | 4 ++++ 1 file changed, 4 insertions(+) commit 7e5308be4c0747e328d03f3daa46aaa5eaf7714f Author: Thomas Petazzoni Date: Thu Jun 18 14:38:40 2015 +0200 ARM: mvebu: update EEPROM description of Armada 388 GP Contrary to what the Device Tree indicates, the EEPROM at 0x54 is not populated, so we get rid of this comment. However, there is an EEPROM at 0x57, so we add support for this AT24C64 EEPROM: $ hexdump -C /sys/bus/i2c/devices/0-0057/eeprom 00000000 0c ff f3 ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00002000 Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-388-gp.dts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b5999dcbdb96570c130772ac2055a4d34ec8b3d7 Author: Thomas Petazzoni Date: Thu Jun 18 14:38:39 2015 +0200 ARM: mvebu: fix description of pwr-sata0 regulator on Armada 388 GP This regulator was lacking the reference to the GPIO that controls it, and the regulator-min-microvolt and regulator-max-microvolt properties. Thanks to this commit, the pwr-sata0 regulator now looks more like the other pwr-sata{1,2,3} regulators in the same Device Tree, with of course the exception of a different GPIO reference. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-388-gp.dts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c43379e150aa335b447f14e55cefd8f1c405cb5f Author: Roger Shimizu Date: Tue Jun 23 00:02:30 2015 +0900 ARM: dts: add buffalo linkstation ls-wvl/vl Add dts file to support Buffalo Linkstation LS-WVL and LS-VL, which are 3.5" HDD NAS in 2-bay and 1-bay respectively. [gregory.clement@free-electrons.com: fix typo in pmx-led-function-red] Signed-off-by: Roger Shimizu Reviewed-by: Nobuhiro Iwamatsu Acked-by: Andrew Lunn Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT .../devicetree/bindings/arm/marvell,kirkwood.txt | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-lswvl.dts | 301 +++++++++++++++++++++ 3 files changed, 303 insertions(+) commit 1055e0687f581cf988bb2239a00d1396e18ef114 Author: Chad Versace Date: Thu Jul 9 01:38:42 2015 -0700 drm/fourcc: Add formats R8, RG88, GR88 The Kodi/XBMC developers want to transcode NV12 to RGB with OpenGL shaders, importing the two source planes through EGL_EXT_image_dma_buf_import. That requires importing the Y plane as an R8 EGLImage and the UV plane as either an RG88 or GR88 EGLImage. CC: Peter Frühberger Cc: Rainer Hochecker Cc: Benjamin Widawsky Reviewed-by: Pekka Paalanen Signed-off-by: Chad Versace include/uapi/drm/drm_fourcc.h | 7 +++++++ 1 file changed, 7 insertions(+) commit e54e4b1b622e534381b422b8a80a21453dd6f644 Author: Roger Shimizu Date: Tue Jun 23 00:00:16 2015 +0900 ARM: dts: add buffalo linkstation ls-wxl/wsxl Add dts file to support Buffalo Linkstation LS-WXL and LS-WSXL, which are 2-bay NAS with 3.5" and 2.5" HDD respectively. Signed-off-by: Roger Shimizu Reviewed-by: Nobuhiro Iwamatsu Acked-by: Andrew Lunn Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT .../devicetree/bindings/arm/marvell,kirkwood.txt | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-lswxl.dts | 301 +++++++++++++++++++++ 3 files changed, 303 insertions(+) commit 67e123ff0e9a71fcf19f83827d59f73076f5bd1a Author: Markus Elfring Date: Thu Jul 9 08:08:15 2015 +0200 HID: wacom: Delete unnecessary checks before the function call "input_free_device" The input_free_device() 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 | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit c8f5a878e55459b78bac273f6492bbc91475beb5 Author: Thomas Petazzoni Date: Thu Jun 11 13:51:12 2015 +0200 ARM: mvebu: use DT properties to fine-tune the L2 configuration In order to optimize the L2 cache performance, this commit adjusts the configuration of the L2 on the Cortex-A9 based Marvell EBU processors (Armada 375, 38x and 39x), using the appropriate DT properties. We enable double linefill, incr double linefill, data prefetch and disable double linefill on wrap. This matches the configuration that was fine tuned in the Marvell BSP. Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-375.dtsi | 4 ++++ arch/arm/boot/dts/armada-38x.dtsi | 4 ++++ arch/arm/boot/dts/armada-39x.dtsi | 4 ++++ 3 files changed, 12 insertions(+) commit 449e1d649c52a80db73dd313dce92d6e191b801b Author: Thomas Petazzoni Date: Wed Jun 17 14:12:21 2015 +0200 ARM: mvebu: use armada-380-xor on Armada 38x and 39x The Armada 38x and 39x SoC support have an updated XOR hardware block compared to previous SoCs. These features can be enabled by using the 'armada-380-xor' compatible string, available since commit 6f166312c6ea ("dmaengine: mv_xor: add support for a38x command in descriptor mode"). Signed-off-by: Thomas Petazzoni Acked-by: Gregory CLEMENT Signed-off-by: Gregory CLEMENT arch/arm/boot/dts/armada-38x.dtsi | 4 ++-- arch/arm/boot/dts/armada-39x.dtsi | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 0925636042170e0b6716cd86635899c5f4258f69 Author: Andrew Duggan Date: Mon Jul 6 16:48:31 2015 -0700 HID: rmi: Disable scanning if the device is not a wake source Some touchpads are configured with firmware which continues to scan for fingers at a minimal scan rate even after receiving the HID power sleep command. This allows a finger touching the touchpad to genrate a wake event. This patch ensures that scanning is disabled if the touchpad is not a wake source and ensures scanning is enabled on resume. Signed-off-by: Andrew Duggan Signed-off-by: Jiri Kosina drivers/hid/hid-rmi.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) commit 24d9b755ab2b44ec56723cd8e6b578985a1f1c76 Author: Markus Elfring Date: Wed Jul 8 21:26:02 2015 +0200 ALSA: hda: Delete an unnecessary check before the function call "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: Takashi Iwai sound/hda/hdac_sysfs.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7a1436d58027f84ae2167b5ec359c15cb1d80837 Author: Joe Perches Date: Sun Jun 14 19:01:30 2015 -0700 ARM: orion5x: Use vsprintf %pM extension Format mac addresses with the normal kernel extension. Signed-off-by: Joe Perches Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/mach-orion5x/dns323-setup.c | 4 +--- arch/arm/mach-orion5x/tsx09-common.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) commit a17683ba3d240612ef52bcbf7f4db91f1e457735 Author: Thomas Petazzoni Date: Fri Jun 12 15:38:34 2015 +0200 ARM: mvebu: add missing newline at end of messages Commit 548ae94c1cc7f ("ARM: mvebu: Disable CPU Idle on Armada 38x") added two new pr_warn() messages in mach-mvebu/pmsu.c. However, these messages lack the final new line, causing the next message to be displayed on the same line. This commit adds the missing ending newlines. Signed-off-by: Thomas Petazzoni Acked-by: Andrew Lunn Signed-off-by: Gregory CLEMENT arch/arm/mach-mvebu/pmsu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5ddfb12e90c73cf86881345be422e09c367f6981 Author: Ellen Wang Date: Wed Jul 8 11:17:39 2015 -0700 HID: cp2112: support large i2c transfers cp2112_i2c_xfer() only reads up to 61 bytes, returning EIO on longers reads. The fix is to wrap a loop around cp2112_read() to pick up all the returned data. Signed-off-by: Ellen Wang Signed-off-by: Jiri Kosina drivers/hid/hid-cp2112.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) commit 6adcafae6ed20fe380addc8e7c628e529751ade3 Author: Bard Liao Date: Fri Jun 26 10:59:49 2015 +0800 ASoC: add rt298 codec driver It is the initial version of ALC298 codec driver. Signed-off-by: Bard Liao Signed-off-by: Mark Brown include/sound/rt298.h | 20 + sound/soc/codecs/Kconfig | 7 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/rt298.c | 1274 +++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/rt298.h | 206 ++++++++ 5 files changed, 1509 insertions(+) commit 0505700104cd98da6d11c01b8063cffdb1b8d7d7 Author: Jeeja KP Date: Thu Jul 9 15:20:11 2015 +0530 ASoC: Intel: Add support for decoupled mode in skl driver Decoupled mode is where audio link is broken to frontend HDA and backend (hda/i2s/dmic/hdmi) links. This patch adds support for decoupled mode and then adds dais, dai ops for be/fe cpu dais and interrupt handler change to support decoupled mode Signed-off-by: Jeeja KP Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-pcm.c | 346 +++++++++++++++++++++++++++++++++++++- sound/soc/intel/skylake/skl.c | 11 ++ 2 files changed, 349 insertions(+), 8 deletions(-) commit eb965e3686f5cea669444d120f3723efa88ed56a Author: Jeeja KP Date: Thu Jul 9 15:20:10 2015 +0530 ASoC: Intel: Add makefile support for SKL driver This adds makefile and Kconfig to enable Skylake HD audio PCM driver Signed-off-by: Jeeja KP Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 4 ++++ sound/soc/intel/Makefile | 1 + sound/soc/intel/skylake/Makefile | 3 +++ 3 files changed, 8 insertions(+) commit d8c2dab8381d58376d127c64553e499569f4d22a Author: Jeeja KP Date: Thu Jul 9 15:20:09 2015 +0530 ASoC: Intel: Add Skylake HDA audio driver This patch follows up by adding the HDA controller operations. This code is mostly derived from Intel HDA PCI driver without legacy bits 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.c | 525 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 525 insertions(+) commit a40e693c7f5ee3a1a7d1f6aef63c5dadbec64e10 Author: Jeeja KP Date: Thu Jul 9 15:20:08 2015 +0530 ASoC: Intel: Add Skylake HDA platform driver This patch starts to add the Skylake HDA platform driver by defining SoC CPU dais, DMA driver ops and implements ALSA operations 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-pcm.c | 586 ++++++++++++++++++++++++++++++++++++++ sound/soc/intel/skylake/skl.h | 71 +++++ 2 files changed, 657 insertions(+) commit 5ed68f0a28f96c5127246d1743dd57b58a090f07 Author: Charles Keepax Date: Thu Jul 9 11:28:46 2015 +0100 ASoC: arizona: Use the more idiomatic params_width Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c53765247ed7461ebe4e448af03c051bf6edaf48 Author: Michal Suchanek Date: Tue Jun 23 21:41:43 2015 +0200 ARM: dts: A10s-OLinuxIno: Add a node for axp152 pmic Add a node for axp152 pmic used on the A10s-OLinuxIno SBC. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 7 +++++++ 1 file changed, 7 insertions(+) commit 98a4707ada2be6b168a3490c3addc2690927a111 Author: Michal Suchanek Date: Tue Jun 23 21:41:42 2015 +0200 ARM: dts: axp152: Add a dtsi file for the axp152 pmic Add a dtsi file for the axp152 pmic, this mirrors the way things are handled for the axp202 pmic. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/axp152.dtsi | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) commit 351265f46291e879d0cd4e416ebcbdd7f49c9453 Author: Shengjiu Wang Date: Thu Jun 18 14:08:01 2015 +0800 ARM: imx_v6_v7_defconfig: build in audio driver Add ASRC, FSL_ASOC_CARD, CS42xx8 support Signed-off-by: Shengjiu Wang Signed-off-by: Shawn Guo arch/arm/configs/imx_v6_v7_defconfig | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) commit 77a58c741df1b91258cc4df3e6893ff61e8293a4 Author: Scott Feldman Date: Wed Jul 8 16:06:47 2015 -0700 rocker: add change MTU support Implement ndo_change_mtu: on MTU change, reallocate Rx ring bufs and signal HW of new port MTU value. Signed-off-by: Scott Feldman Reviewed-by: Simon Horman Tested-by: Simon Horman Acked-by: Jiri Pirko Signed-off-by: David S. Miller drivers/net/ethernet/rocker/rocker.c | 61 ++++++++++++++++++++++++++++++++++++ drivers/net/ethernet/rocker/rocker.h | 1 + 2 files changed, 62 insertions(+) commit 910be1abbec9cac102fde8ab6dd68a9b410ca441 Author: Vaishali Thakkar Date: Thu Jul 9 10:25:39 2015 +0530 neterion: s2io: Use module_pci_driver Use module_pci_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return pci_register_driver(&x); } @b depends on a@ identifier e, a.x; statement S; @@ -static e(...) { -pci_unregister_driver(&x); -DBG_PRINT(INIT_DBG,"S"); - } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_pci_driver; @@ -module_exit(e); +module_pci_driver(x); Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/net/ethernet/neterion/s2io.c | 26 +------------------------- drivers/net/ethernet/neterion/s2io.h | 2 -- 2 files changed, 1 insertion(+), 27 deletions(-) commit 71d3c0b49a72fd092b7490b923d1721ceced8170 Author: Hariprasad Shenai Date: Thu Jul 9 14:55:46 2015 +0530 cxgb4vf: Fix check to use new User Doorbell mechanism If we don't have access to the new User GTS (T5+), use the old doorbell mechanism; otherwise use the new BAR2 mechanism. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 948cea14487af7d6e8b8007dc24a5361869f410b Author: Anshul Garg Date: Wed Jul 8 16:43:20 2015 -0700 Input: ff-core - use for_each_set_bit where appropriate Use for_each_set_bit to check for set bits in bitmap as it is more efficient than checking individual bits. Signed-off-by: Anshul Garg Signed-off-by: Dmitry Torokhov drivers/input/ff-core.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit f23487cdbe3bd002e99f41250143014e522c34de Author: Anshul Garg Date: Wed Jul 8 16:41:39 2015 -0700 Input: joydev - use for_each_set_bit where appropriate Use for_each_set_bit to check for set bits in bitmap as it is more efficient than checking individual bits. Signed-off-by: Anshul Garg Signed-off-by: Dmitry Torokhov drivers/input/joydev.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit ec0843fabe29ad44bdaaa16c8d6cda4537716de5 Author: Axel Lin Date: Wed Jul 8 08:25:50 2015 -0700 Input: drv260x/drv2665/drv2667 - constify reg_default tables These reg_default tables are not modified after initialized, so make them const. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov drivers/input/misc/drv260x.c | 2 +- drivers/input/misc/drv2665.c | 2 +- drivers/input/misc/drv2667.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 2d53809594afaf2ae66a90a3142c1b702fd3bcea Author: Dirk Behme Date: Mon Jul 6 15:57:44 2015 -0700 Input: zforce_ts - convert to use the gpiod interface Use the new GPIO descriptor interface to handle the zForce GPIOs. This simplifies the code and allows transparently handle GPIO polarity, as specified in device tree data. Also switch to using gpio_{set|get}_value_cansleep() since none of the callers is in atomic context and cansleep variant allows more GPIO controllers to be used with the touchscreen. Signed-off-by: Dirk Behme Signed-off-by: Dmitry Torokhov drivers/input/touchscreen/zforce_ts.c | 58 +++++++++++++++++---------------- include/linux/platform_data/zforce_ts.h | 3 -- 2 files changed, 30 insertions(+), 31 deletions(-) commit f5bbc91c88c18a4c518f066cc4e784d7b5fb9735 Author: Anda-Maria Nicolae Date: Tue Jul 7 15:25:53 2015 +0300 power_supply: rt9455_charger: Properly notify userspace about charging events Charging events this patch refers to are: - charger is connected to/disconnected from the power source - battery is reconnected to the charger, after it was absent. When the charger is connected to/disconnected from the power source, CHRVPI interrupt occurs and PWR_RDY bit is either set or cleared. PWR_RDY bit is updated after 1-2 seconds CHRVPI interrupt has occurred. power_supply_changed() should be called after PWR_RDY bit is updated. /sys/class/power_supply/rt9455-charger/online file displays the value of PWR_RDY bit. This way, if the userspace is notified that a charging event has occurred and the userspace reads /sys/class/power_supply/rt9455-charger/online file, this file is properly updated when the userspace reads it. This is the reason why power_supply_changed() is called in rt9455_pwr_rdy_work_callback(), instead of being called in interrupt handler. Since no interrupt is triggered when the battery is reconnected to the charger, the userspace is never notified that the battery is reconnected. This is why power_supply_changed() is called in rt9455_max_charging_time_work_callback(), so that the userspace is notified that the battery is reconnected. Signed-off-by: Anda-Maria Nicolae Reviewed-by: Krzysztof Kozlowski Signed-off-by: Sebastian Reichel drivers/power/rt9455_charger.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit ba29becd770ffec90f3af896daffac6b9acec608 Author: Xi Wang Date: Wed Jul 8 14:00:56 2015 -0700 test_bpf: extend tests for 32-bit endianness conversion Currently "ALU_END_FROM_BE 32" and "ALU_END_FROM_LE 32" do not test if the upper bits of the result are zeros (the arm64 JIT had such bugs). Extend the two tests to catch this. Acked-by: Daniel Borkmann Acked-by: Alexei Starovoitov Signed-off-by: Xi Wang Signed-off-by: David S. Miller lib/test_bpf.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ca661a28887714ee2ebdcfe9e89fa2528fcbfbbf Merge: b11b6ed b766064 Author: David S. Miller Date: Wed Jul 8 16:13:55 2015 -0700 Merge branch 'cxgb4-t6' Hariprasad Shenai says: ==================== Cleanup, T6 changes and register range update This patch series adds the following: Don't use entire L2T table, update register ranges for T6 adapter, read stats for only available channels for T6 and enable cim_la dump for T6 adapter also. This patch series has been created against net-next tree and includes patches on cxgb4 driver. We have included all the maintainers of respective drivers. Kindly review the change and let us know in case of any review comments. ==================== Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit b7660642b77b6aa7fae6c0f832d0290af331bd7e Author: Hariprasad Shenai Date: Tue Jul 7 21:49:21 2015 +0530 cxgb4: Enable cim_la dump to support T6 Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 54 ++++++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) commit df459ebc33324e6e2932b0236a7e1a53a14182b2 Author: Hariprasad Shenai Date: Tue Jul 7 21:49:20 2015 +0530 cxgb4: Read stats for only available channels Updating the driver to read the stats of only available channels. T6 and later has only 2 channels Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 73 +++++++++++------------------- 1 file changed, 26 insertions(+), 47 deletions(-) commit 5b4e83e133c7e610fdb6063f64bd404fc0836fe0 Author: Hariprasad Shenai Date: Tue Jul 7 21:49:19 2015 +0530 cxgb4: Update register ranges for T6 adapter Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 5be9ed8d49754c22fffd8ddd9cb751d591f31a08 Author: Hariprasad Shenai Date: Tue Jul 7 21:49:18 2015 +0530 cxgb4: Don't use entire L2T table, use only its slice The driver was retrieving the parameters for the bounds of its slice of the L2T from the firmware and then throwing those away and using the entire table. This corrects that problem. Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +- drivers/net/ethernet/chelsio/cxgb4/l2t.c | 94 ++++++++++++++----------- drivers/net/ethernet/chelsio/cxgb4/l2t.h | 18 ++++- drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 1 - 4 files changed, 71 insertions(+), 44 deletions(-) commit b11b6ed0f97f900f5c4bba9b3abcd2d2dab73ca7 Author: Vaishali Thakkar Date: Tue Jul 7 12:32:54 2015 +0530 net: ec_bhf: Use module_pci_driver Use module_pci_driver for drivers whose init and exit functions only register and unregister, respectively. A simplified version of the Coccinelle semantic patch that performs this transformation is as follows: @a@ identifier f, x; @@ -static f(...) { return pci_register_driver(&x); } @b depends on a@ identifier e, a.x; @@ -static e(...) { pci_unregister_driver(&x); } @c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f); @d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_pci_driver; @@ -module_exit(e); +module_pci_driver(x); Signed-off-by: Vaishali Thakkar Signed-off-by: David S. Miller drivers/net/ethernet/ec_bhf.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) commit f9cbce34c34bcc05ea0dd78c8999bfe88b5b6b86 Author: Haiyang Zhang Date: Mon Jul 6 14:11:37 2015 -0700 hv_netvsc: Add support to set MTU reservation from guest side When packet encapsulation is in use, the MTU needs to be reduced for headroom reservation. The existing code takes the updated MTU value only from the host side. But vSwitch extensions, such as Open vSwitch, require the flexibility to change the MTU to different values from within a guest during the lifecycle of a vNIC, when the encapsulation protocol is changed. The patch supports this kind of MTU changes. 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_drv.c | 3 +-- drivers/net/hyperv/rndis_filter.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 9e29e21a9bbfb2204bab875f0ef6dbaed66592e7 Author: Eric Dumazet Date: Mon Jul 6 22:05:28 2015 +0200 ifb: add multiqueue operation Add multiqueue capabilities to ifb netdevice. This removes last bottleneck for ingress when mq qdisc can be used to shard load from multiple RX queues on physical device. Tested: # netem based setup, installed at receiver side ETH=eth0 IFB=ifb10 EST="est 1sec 4sec" # Optional rate estimator RTT_HALF=2ms #REORDER=20us #LOSS="loss 1" TXQ=8 ip link add ifb10 numtxqueues $TXQ type ifb ip link set dev $IFB up tc qdisc add dev $ETH ingress 2>/dev/null tc filter add dev $ETH parent ffff: \ protocol ip u32 match u32 0 0 flowid 1:1 \ action mirred egress redirect dev $IFB tc qdisc del dev $IFB root 2>/dev/null tc qdisc add dev $IFB root handle 1: mq for i in `seq 1 $TXQ` do slot=$( printf %x $(( i )) ) tc qd add dev $IFB parent 1:$slot $EST netem \ limit 100000 delay $RTT_HALF $REORDER $LOSS done lpaa24:~# tc -s -d qd sh dev ifb10 qdisc mq 1: root Sent 316544766 bytes 5265927 pkt (dropped 0, overlimits 0 requeues 0) backlog 98880b 1648p requeues 0 qdisc netem 8002: parent 1:1 limit 100000 delay 2.0ms Sent 39601416 bytes 658721 pkt (dropped 0, overlimits 0 requeues 0) rate 38235Kbit 79657pps backlog 12240b 204p requeues 0 qdisc netem 8003: parent 1:2 limit 100000 delay 2.0ms Sent 39472866 bytes 657227 pkt (dropped 0, overlimits 0 requeues 0) rate 38234Kbit 79655pps backlog 10620b 176p requeues 0 qdisc netem 8004: parent 1:3 limit 100000 delay 2.0ms Sent 39703417 bytes 659699 pkt (dropped 0, overlimits 0 requeues 0) rate 38320Kbit 79831pps backlog 12780b 213p requeues 0 qdisc netem 8005: parent 1:4 limit 100000 delay 2.0ms Sent 39565149 bytes 658011 pkt (dropped 0, overlimits 0 requeues 0) rate 38174Kbit 79530pps backlog 11880b 198p requeues 0 qdisc netem 8006: parent 1:5 limit 100000 delay 2.0ms Sent 39506078 bytes 657354 pkt (dropped 0, overlimits 0 requeues 0) rate 38195Kbit 79571pps backlog 12480b 208p requeues 0 qdisc netem 8007: parent 1:6 limit 100000 delay 2.0ms Sent 39675994 bytes 658849 pkt (dropped 0, overlimits 0 requeues 0) rate 38323Kbit 79838pps backlog 12600b 210p requeues 0 qdisc netem 8008: parent 1:7 limit 100000 delay 2.0ms Sent 39532042 bytes 658367 pkt (dropped 0, overlimits 0 requeues 0) rate 38177Kbit 79536pps backlog 13140b 219p requeues 0 qdisc netem 8009: parent 1:8 limit 100000 delay 2.0ms Sent 39488164 bytes 657705 pkt (dropped 0, overlimits 0 requeues 0) rate 38192Kbit 79568pps backlog 13Kb 222p requeues 0 Signed-off-by: Eric Dumazet Cc: Alexei Starovoitov Cc: Jamal Hadi Salim Cc: John Fastabend Acked-by: Alexei Starovoitov Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller drivers/net/ifb.c | 207 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 120 insertions(+), 87 deletions(-) commit 81aa507981bd785da84ac8bbed942495257dcaa3 Author: Hariprasad Shenai Date: Mon Jul 6 22:38:34 2015 +0530 cxgb4: Add PCI device ids for few more T5 and T6 adapters Signed-off-by: Hariprasad Shenai Signed-off-by: David S. Miller drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 0beb44b0653978c0f180f902fb93a1b0b61833b8 Author: Carol Soto Date: Mon Jul 6 09:20:19 2015 -0500 net/mlx4_core: Add extra check for total vfs for SRIOV Add extra check for total vfs for SRIOV to check if that value is bigger than total vfs in pci SRIOV capabalities. Fix a check and print of the number of maximum vfs that hw can handle. Fix a check and print of the number of maximum vfs per port that driver can handle. Signed-off-by: Carol L Soto Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/main.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) commit d912557b346099584bbbfa8d3c1e101c46e33b59 Author: Michael Holzheu Date: Mon Jul 6 16:20:07 2015 +0200 samples: bpf: enable trace samples for s390x The trace bpf samples do not compile on s390x because they use x86 specific fields from the "pt_regs" structure. Fix this and access the fields via new PT_REGS macros. Signed-off-by: Michael Holzheu Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller samples/bpf/bpf_helpers.h | 25 +++++++++++++++++++++++++ samples/bpf/tracex1_kern.c | 2 +- samples/bpf/tracex2_kern.c | 6 +++--- samples/bpf/tracex3_kern.c | 4 ++-- samples/bpf/tracex4_kern.c | 6 +++--- samples/bpf/tracex5_kern.c | 6 +++--- 6 files changed, 37 insertions(+), 12 deletions(-) commit 7baaa9092dedad5f670a7b1716b2ce9e1175ba02 Author: Punnaiah Choudary Kalluri Date: Mon Jul 6 10:02:53 2015 +0530 net: macb: Add SG support for Zynq SOC family Enable SG support for Zynq SOC family devices. Signed-off-by: Punnaiah Choudary Kalluri Acked-by: Nicolas Ferre Signed-off-by: David S. Miller drivers/net/ethernet/cadence/macb.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 6ab13b27699e5a71cca20d301c3c424653bd0841 Author: Li, Liang Z Date: Mon Jul 6 08:42:56 2015 +0800 xen-netback: remove duplicated function definition There are two duplicated xenvif_zerocopy_callback() definitions. Remove one of them. Signed-off-by: Liang Li Signed-off-by: David S. Miller drivers/net/xen-netback/common.h | 3 --- 1 file changed, 3 deletions(-) commit 8685255ec50d472deb4db1b8bab3609092944cc7 Merge: 0a6d424 2ee22a9 Author: David S. Miller Date: Wed Jul 8 13:50:42 2015 -0700 Merge branch 'sch_act_lockless' Eric Dumazet says: ==================== net_sched: act: lockless operation As mentioned by Alexei last week in Budapest, it is a bit weird to take a spinlock in order to drop a packet in a tc filter... Lets add percpu infra for tc actions and use it for gact & mirred. Before changes, my host with 8 RX queues was handling 5 Mpps with gact, and more than 11 Mpps after. Mirred change is not yet visible if ifb+qdisc is used, as ifb is not yet multi queue enabled, but is a step forward. ==================== Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 2ee22a90c7afac265bb6f7abea610b938195e2b8 Author: Eric Dumazet Date: Mon Jul 6 05:18:09 2015 -0700 net_sched: act_mirred: remove spinlock in fast path Like act_gact, act_mirred can be lockless in packet processing 1) Use percpu stats 2) update lastuse only every clock tick to avoid false sharing 3) use rcu to protect tcfm_dev 4) Remove spinlock usage, as it is no longer needed. Next step : add multi queue capability to ifb device Signed-off-by: Eric Dumazet Cc: Alexei Starovoitov Cc: Jamal Hadi Salim Cc: John Fastabend Acked-by: Jamal Hadi Salim Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/net/tc_act/tc_mirred.h | 2 +- net/sched/act_mirred.c | 57 ++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 28 deletions(-) commit 56e5d1ca183d8616fab377d7d466c244b4dbb3b9 Author: Eric Dumazet Date: Mon Jul 6 05:18:08 2015 -0700 net_sched: act_gact: remove spinlock in fast path Final step for gact RCU operation : 1) Use percpu stats 2) update lastuse only every clock tick to avoid false sharing 3) Remove spinlock acquisition, as it is no longer needed. Since this is the last contended lock in packet RX when tc gact is used, this gives impressive gain. My host with 8 RX queues was handling 5 Mpps before the patch, and more than 11 Mpps after patch. Tested: On receiver : dev=eth0 tc qdisc del dev $dev ingress 2>/dev/null tc qdisc add dev $dev ingress tc filter del dev $dev root pref 10 2>/dev/null tc filter del dev $dev pref 10 2>/dev/null tc filter add dev $dev est 1sec 4sec parent ffff: protocol ip prio 1 \ u32 match ip src 7.0.0.0/8 flowid 1:15 action drop Sender sends packets flood from 7/8 network Signed-off-by: Eric Dumazet Acked-by: Alexei Starovoitov Acked-by: Jamal Hadi Salim Acked-by: John Fastabend Signed-off-by: David S. Miller include/net/act_api.h | 11 +++++++++++ net/sched/act_gact.c | 17 +++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) commit 8f2ae965b7ef4f4ddab6110f06388e270723d694 Author: Eric Dumazet Date: Mon Jul 6 05:18:07 2015 -0700 net_sched: act_gact: read tcfg_ptype once Third step for gact RCU operation : Following patch will get rid of spinlock protection, so we need to read tcfg_ptype once. Signed-off-by: Eric Dumazet Cc: Alexei Starovoitov Acked-by: Jamal Hadi Salim Acked-by: John Fastabend Signed-off-by: David S. Miller net/sched/act_gact.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit cc6510a9504fd3c03d76bd68d99653148342eecc Author: Eric Dumazet Date: Mon Jul 6 05:18:06 2015 -0700 net_sched: act_gact: use a separate packet counters for gact_determ() Second step for gact RCU operation : We want to get rid of the spinlock protecting gact operations. Stats (packets/bytes) will soon be per cpu. gact_determ() would not work without a central packet counter, so lets add it for this mode. Signed-off-by: Eric Dumazet Cc: Alexei Starovoitov Acked-by: Jamal Hadi Salim Acked-by: John Fastabend Signed-off-by: David S. Miller include/net/tc_act/tc_gact.h | 7 ++++--- net/sched/act_gact.c | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) commit cef5ecf96b28dc91c4e9f398a336c578fb9e1a0c Author: Eric Dumazet Date: Mon Jul 6 05:18:05 2015 -0700 net_sched: act_gact: make tcfg_pval non zero First step for gact RCU operation : Instead of testing if tcfg_pval is zero or not, just make it 1. No change in behavior, but slightly faster code. The smp_rmb()/smp_wmb() barriers, while not strictly needed at this stage are added for upcoming spinlock removal. Signed-off-by: Eric Dumazet Acked-by: Alexei Starovoitov Acked-by: Jamal Hadi Salim Acked-by: John Fastabend Signed-off-by: David S. Miller net/sched/act_gact.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 519c818e8fb646eef1e8bfedd18519bec47bc9a9 Author: Eric Dumazet Date: Mon Jul 6 05:18:04 2015 -0700 net: sched: add percpu stats to actions Reuse existing percpu infrastructure John Fastabend added for qdisc. This patch adds a new cpustats parameter to tcf_hash_create() and all actions pass false, meaning this patch should have no effect yet. Signed-off-by: Eric Dumazet Cc: Alexei Starovoitov Acked-by: Jamal Hadi Salim Acked-by: John Fastabend Signed-off-by: David S. Miller include/net/act_api.h | 4 +++- net/sched/act_api.c | 44 ++++++++++++++++++++++++++++++++++---------- net/sched/act_bpf.c | 2 +- net/sched/act_connmark.c | 3 ++- net/sched/act_csum.c | 3 ++- net/sched/act_gact.c | 3 ++- net/sched/act_ipt.c | 2 +- net/sched/act_mirred.c | 3 ++- net/sched/act_nat.c | 3 ++- net/sched/act_pedit.c | 3 ++- net/sched/act_simple.c | 3 ++- net/sched/act_skbedit.c | 3 ++- net/sched/act_vlan.c | 3 ++- 13 files changed, 57 insertions(+), 22 deletions(-) commit 24ea591d2201c3257d666466e8fac50a6cf3c52f Author: Eric Dumazet Date: Mon Jul 6 05:18:03 2015 -0700 net: sched: extend percpu stats helpers qdisc_bstats_update_cpu() and other helpers were added to support percpu stats for qdisc. We want to add percpu stats for tc action, so this patch add common helpers. qdisc_bstats_update_cpu() is renamed to qdisc_bstats_cpu_update() qdisc_qstats_drop_cpu() is renamed to qdisc_qstats_cpu_drop() Signed-off-by: Eric Dumazet Cc: Alexei Starovoitov Acked-by: Jamal Hadi Salim Acked-by: John Fastabend Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller include/net/sch_generic.h | 31 +++++++++++++++++++++---------- net/core/dev.c | 4 ++-- 2 files changed, 23 insertions(+), 12 deletions(-) commit 0a6d4245691173eb953c440b8c6fc0b1688e6b25 Author: Eric Dumazet Date: Thu Jul 2 13:24:44 2015 +0200 mlx4: TCP/UDP packets have L4 hash Mellanox driver has the knowledge if rxhash is a L4 hash, if it receives a non fragmented TCP or UDP frame and NETIF_F_RXCSUM is enabled on netdev. ip_summed value is CHECKSUM_UNNECESSARY in this case. Signed-off-by: Eric Dumazet Cc: Amir Vadai Cc: Ido Shamay Acked-by: Ido Shamay Signed-off-by: David S. Miller drivers/net/ethernet/mellanox/mlx4/en_rx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit a6e2f029ae34f41adb6ae3812c32c5d326e1abd2 Author: Chris Metcalf Date: Wed Apr 29 12:48:40 2015 -0400 Make asm/word-at-a-time.h available on all architectures Added the x86 implementation of word-at-a-time to the generic version, which previously only supported big-endian. Omitted the x86-specific load_unaligned_zeropad(), which in any case is also not present for the existing BE-only implementation of a word-at-a-time, and is only used under CONFIG_DCACHE_WORD_ACCESS. Added as a "generic-y" to the Kbuilds of all architectures that didn't previously have it. Signed-off-by: Chris Metcalf arch/arc/include/asm/Kbuild | 1 + arch/avr32/include/asm/Kbuild | 1 + arch/blackfin/include/asm/Kbuild | 1 + arch/c6x/include/asm/Kbuild | 1 + arch/cris/include/asm/Kbuild | 1 + arch/frv/include/asm/Kbuild | 1 + arch/hexagon/include/asm/Kbuild | 1 + arch/ia64/include/asm/Kbuild | 1 + arch/m32r/include/asm/Kbuild | 1 + arch/metag/include/asm/Kbuild | 1 + arch/microblaze/include/asm/Kbuild | 1 + arch/mips/include/asm/Kbuild | 1 + arch/mn10300/include/asm/Kbuild | 1 + arch/nios2/include/asm/Kbuild | 1 + arch/powerpc/include/asm/Kbuild | 1 + arch/s390/include/asm/Kbuild | 1 + arch/score/include/asm/Kbuild | 1 + arch/tile/include/asm/Kbuild | 1 + arch/um/include/asm/Kbuild | 1 + arch/unicore32/include/asm/Kbuild | 1 + arch/xtensa/include/asm/Kbuild | 1 + include/asm-generic/word-at-a-time.h | 80 ++++++++++++++++++++++++++++++++---- 22 files changed, 93 insertions(+), 8 deletions(-) commit 71c3353775677bee531bc9435f8f7481a4d6790e Merge: fda8b18 3759824 Author: David S. Miller Date: Wed Jul 8 13:29:46 2015 -0700 Merge branch 'tcp-policer-drops' Yuchung Cheng says: ==================== tcp: reducing lost retransmits in recovery This patch series reduces lost retransmits in recovery, in particular when dealing with traffic policers. The main problem is that slow start in recovery under policing can cause massive lost and retransmit storms: any excess sending rate turns into drops. The solution is to avoid doing slow start when lost retransmit is detected and use packet conservation instead. On networks with traffic policers the patches have lowered the TCP loss rates by ~20% from Google servers without latency regressions. ==================== Signed-off-by: David S. Miller commit 3759824da87b30ce7a35b4873b62b0ba38905ef5 Author: Yuchung Cheng Date: Wed Jul 1 14:11:15 2015 -0700 tcp: PRR uses CRB mode by default and SS mode conditionally PRR slow start is often too aggressive especially when drops are caused by traffic policers. The policers mainly use token bucket to enforce the rate so sending (twice) faster than the delivery rate causes excessive drops. This patch changes PRR to the conservative reduction bound (CRB) mode in RFC 6937 by default. CRB follows the packet conservation rule to send at most the delivery rate by default. But if many packets are lost and the pipe is empty, CRB may take N round trips to repair N losses. We conditionally turn on slow start mode if all these conditions are made to speed up the recovery: 1) on the second round or later in recovery 2) retransmission sent in the previous round is delivered on this ACK 3) no retransmission is marked lost on this ACK By using packet conservation by default, this change reduces the loss retransmits signicantly on networks that deploy traffic policers, up to 20% reduction of overall loss rate. Signed-off-by: Yuchung Cheng Signed-off-by: Nandita Dukkipati Signed-off-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 291a00d1a70f96b393da9ac90c58a82bc7949fc8 Author: Yuchung Cheng Date: Wed Jul 1 14:11:14 2015 -0700 tcp: reduce cwnd if retransmit is lost in CA_Loss If the retransmission in CA_Loss is lost again, we should not continue to slow start or raise cwnd in congestion avoidance mode. Instead we should enter fast recovery and use PRR to reduce cwnd, following the principle in RFC5681: "... or the loss of a retransmission, should be taken as two indications of congestion and, therefore, cwnd (and ssthresh) MUST be lowered twice in this case." This is especially important to reduce loss when the CA_Loss state was caused by a traffic policer dropping the entire inflight. The CA_Loss state has a problem where a loss of L packets causes the sender to send a burst of L packets. So a policer that's dropping most packets in a given RTT can cause a huge retransmit storm. By contrast, PRR includes logic to bound the number of outbound packets that result from a given ACK. So switching to CA_Recovery on lost retransmits in CA_Loss avoids this retransmit storm problem when in CA_Loss. Signed-off-by: Yuchung Cheng Signed-off-by: Nandita Dukkipati Signed-off-by: Neal Cardwell Signed-off-by: David S. Miller net/ipv4/tcp_input.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit d1acd31883d78f905a930493ff145ca4a25ad680 Author: Charles Keepax Date: Tue Jul 7 15:28:14 2015 +0100 ASoC: wm5110: Add special DRE on/off handling for the headphone path For the best performance the headphone path enable/disable must be handled specially for the situations of DRE on and DRE off. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5110.c | 285 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 276 insertions(+), 9 deletions(-) commit 81207880cef207cd89db863f9aa1d65f22b4f2a2 Author: Charles Keepax Date: Tue Jul 7 15:28:13 2015 +0100 mfd: wm5110: Add register patch for rev E and above Add a register patch for rev E and above that configures the location of some write sequences to assist with the headphone enables. Signed-off-by: Charles Keepax Acked-by: Lee Jones Signed-off-by: Mark Brown drivers/mfd/wm5110-tables.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit f089d4d20fcbcf16a62ef3b4b57f41ecf59a5d83 Author: Charles Keepax Date: Tue Jul 7 15:28:12 2015 +0100 mfd: wm5110: Add registers for custom write sequence triggers This register will be needed as part of some additional support for the headphone path on wm5110, so this patch adds the register and sets up its regmap config. Signed-off-by: Charles Keepax Acked-by: Lee Jones Signed-off-by: Mark Brown drivers/mfd/wm5110-tables.c | 2 ++ include/linux/mfd/arizona/registers.h | 37 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) commit 8f7f06b87acd2e017d6c536f59e10045dd8d0578 Author: Andy Lutomirski Date: Tue Jul 7 10:55:28 2015 -0700 x86/entry/64: Fix IRQ state confusion and related warning on compat syscalls with CONFIG_AUDITSYSCALL=n int_ret_from_sys_call now expects IRQs to be enabled. I got this right in the real sysexit_audit and sysretl_audit asm paths, but I missed it in the #defined-away versions when CONFIG_AUDITSYSCALL=n. This is a straightforward fix for CONFIG_AUDITSYSCALL=n 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 Fixes: 29ea1b258b98 ("x86/entry/64: Migrate 64-bit and compat syscalls to the new exit handlers and remove old assembly code") Link: http://lkml.kernel.org/r/25cf0a01e01c6008118dd8f8d9f043020416700c.1436291493.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64_compat.S | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit abd31b32dde4683df6fd0439caa314aafd751698 Author: Lars-Peter Clausen Date: Wed Jul 8 20:47:44 2015 +0200 ASoC: Use card field to indicate whether a component is bound Use the card field of a component to indicate whether it is bound or not. This makes a certain sense given that the field contains the card the component is bound to and a component can only be bound to one card at a time. And it also requires to unset the card field when the component is unbound from the card. This makes the probded flag redundant and it can be removed. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc.h | 1 - sound/soc/soc-core.c | 16 ++++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) commit 1b7c12316982f74a5b8e7704c24cf5524d0723a3 Author: Lars-Peter Clausen Date: Wed Jul 8 20:47:43 2015 +0200 ASoC: Prevent components from being bound to multiple cards A component can only be bound to a single card at a time. Binding it to card while it is already bound to another will result in undefined behavior. As the undefined behavior might only manifest itself later on it is not necessarily always straight forward to find the cause. To prevent this add a check that refuses to bind a component to multiple cards as well as prints a error describing the problem. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit f7c765e604a22dd898ac414d59b5a8edfe428b65 Author: Subhransu S. Prusty Date: Fri Jul 3 16:04:04 2015 +0530 ASoC: Intel: Reorganize the common dsp structure We will add SKL platform data. So organizing common and platform specific data helps. Signed-off-by: Subhransu S. Prusty Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/common/sst-dsp-priv.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3582f9ae07613302eb2967704ed2cef741db9a8d Author: Subhransu S. Prusty Date: Fri Jul 3 16:04:03 2015 +0530 ASoC: Intel: Define SKL ADSP IPC and general purpose registers Signed-off-by: Subhransu S. Prusty Signed-off-by: Kp, Jeeja Signed-off-by: Vinod Koul Signed-off-by: Mark Brown sound/soc/intel/skylake/skl-sst-dsp.h | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit ca94085139d4874701af4f149bebfb05e105b245 Author: Axel Lin Date: Thu Jul 2 21:29:01 2015 +0800 ASoC: wm8996: Remove spurious IRQF_ONESHOT flag This reverts ed043aebe6ec ("ASoC: wm8996: Pass the IRQF_ONESHOT flag"). The coccinelle warnings is false positive because the original code does set IRQF_ONESHOT by "trigger |= IRQF_ONESHOT;". Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm8996.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit efc04ca22303dee1f34d038af3addc13621bed58 Author: Axel Lin Date: Thu Jul 2 21:27:48 2015 +0800 ASoC: wm5100: Remove spurious IRQF_ONESHOT flag This reverts 3d907cc30d07 ("ASoC: wm5100: Pass the IRQF_ONESHOT flag"). The coccinelle warnings is false positive because the original code does set IRQF_ONESHOT by "trigger |= IRQF_ONESHOT;". Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm5100.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 030e6ee241f0586308622bcdd273a317976b3169 Author: Axel Lin Date: Thu Jul 2 21:26:44 2015 +0800 ASoC: wm0010: Remove spurious missing IRQF_ONESHOT This reverts 58d468328646 ("ASoC: wm0010: Add missing IRQF_ONESHOT"). The coccinelle warnings is false positive because the original code does set IRQF_ONESHOT by "trigger |= IRQF_ONESHOT;". Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm0010.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a5afdc5bf53995385b621361c976b8a29e07f701 Author: Axel Lin Date: Sun Jun 28 11:40:22 2015 +0800 ASoC: rt286: Constify dmi_system_id table dmi_check_system() takes "const struct dmi_system_id *", so make the dmi_system_id table const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/rt286.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 47a7bfc2bc99625e376e59fb01abf779c2d8a7b0 Author: Vinod Koul Date: Fri Jun 19 23:55:31 2015 +0530 ASoC: intel - atom: fix sst_platform_compr_ops declaration Sparse complains that sst_platform_compr_ops should be static, but the declaration of this symbol was not correct so declare the symbol as extern in header file sound/soc/intel/atom/sst-mfld-platform-compress.c:257:22: warning: symbol 'sst_platform_compr_ops' was not declared. Should it be static? Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/atom/sst-mfld-platform-pcm.c | 1 - sound/soc/intel/atom/sst-mfld-platform.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit 9569909f4dda3810be05223e4deb278b794f309b Author: Vinod Koul Date: Fri Jun 19 23:55:30 2015 +0530 ASoC: intel - atom: statify sst_slot_enum_info Sparse complains that sst_slot_enum_info should be static, so make it static sound/soc/intel/atom/sst-atom-controls.c:135:5: warning: symbol 'sst_slot_enum_info' was not declared. Should it be static? Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/atom/sst-atom-controls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 13735d1cecec1b3825f6834c74e67f82ab8cfe68 Author: Vinod Koul Date: Fri Jun 19 23:55:28 2015 +0530 ASoC: intel - kconfig: remove SND_SOC_INTEL_SST prompt The SND_SOC_INTEL_SST is for common IPC lib and this should ideally be not selectable symbol but selected by respective machine driver So remove the prompt and get respective machines select it Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) commit 7dd6bd8926f3142a237316035e72676c0c5c026f Author: Vinod Koul Date: Fri Jun 19 23:55:27 2015 +0530 ASoC: intel: kconfig - Move DW_DMAC_CORE dependency to machines Some HSW and BYT machines depend on the DW_DMAC_CORE so they should have have depends on this symbol rather than common IPC lib as SKL onwards IPC lib is used but we don't depend on DW_DMAC_CORE Signed-off-by: Vinod Koul Acked-by: Liam Girdwood Signed-off-by: Mark Brown sound/soc/intel/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 402f2a4f808a5d284de724689751dcd018835579 Author: Fabio Estevam Date: Sat Jun 20 15:55:53 2015 -0300 ASoC: max98095: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/max98095.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit cef6daa919c6912c4da629c3cee9c789f90583b1 Author: Fabio Estevam Date: Sat Jun 20 15:55:52 2015 -0300 ASoC: wm8731: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/wm8731.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 779ea47399bae5d9418451f5283a3b2e35869627 Author: Fabio Estevam Date: Sat Jun 20 15:55:51 2015 -0300 ASoC: wm8904: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/wm8904.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit c4a99a4b4f6ef56e9c8182920680b84a7129ca80 Author: Fang, Yang A Date: Tue Jul 7 14:21:47 2015 -0700 ASoC: ts3a227e: do not report jack status when there is i2c read err After suspend -> resume the ts3a227e_interrupt sometimes comes before i2c controller resume is called .regmap_read will return incorrect status and report a wrong jack status.This patch will disable irq on suspend and enable irq again on the resume to make sure interrupt is coming after TI resumes. Also We should return if there is read err,the interrupt will come again since it is level triggered and we are not yet clear the interrupt. In addtion,cht_bsw_max98090_ti machine driver registered additional notifier base on jack event which will program the audio codec.there will be codec timeout err if such event occurs prior to i2c controller is resumed. Signed-off-by: Fang, Yang A Signed-off-by: Mark Brown sound/soc/codecs/ts3a227e.c | 47 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) commit de152b627eb3018de91ec5c5a50b38e17d80a88b Author: Rodrigo Vivi Date: Tue Jul 7 16:28:51 2015 -0700 drm/i915: Add origin to frontbuffer tracking flush This will be useful to PSR and FBC once we start making dirty fb calls to also flush frontbuffer. Cc: Daniel Vetter Cc: Paulo Zanoni Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 12 ++++++------ drivers/gpu/drm/i915/intel_drv.h | 8 ++++---- drivers/gpu/drm/i915/intel_frontbuffer.c | 12 +++++++----- 3 files changed, 17 insertions(+), 15 deletions(-) commit 83b8a982b101c48fc025066a7b08beaf6fa756f0 Author: Arun Siluvery Date: Wed Jul 8 10:27:05 2015 +0100 drm/i915: Update wa_ctx_emit() macro as per kernel coding guidelines wa_ctx_emit() depends on the name of a local variable; if the name of that variable is changed then we get compile errors. In this case it is unlikely to be changed as this macro is only used in this set of functions but Kernel coding guidelines doesn't recommend doing this. It was my mistake as I should have corrected it at the beginning but missed so correct this before there are more usages of this macro (Bob Beckett). https://www.kernel.org/doc/Documentation/CodingStyle, Chapter 12, "Things to avoid when using macros", point 2): " 2) macros that depend on having a local variable with a magic name: #define FOO(val) bar(index, val) might look like a good thing, but it's confusing as hell when one reads the code and it's prone to breakage from seemingly innocent changes. " v2: Optimization to avoid multiple evaluation of 'index' in the macro. Since we invoke it multiple times, compiler, if it can, should be able to coalesce them into a single condition and remove multiple WARN_ON checks (Chris). Suggested-by: Robert Beckett Cc: Robert Beckett Cc: Chris Wilson Cc: Imre Deak Signed-off-by: Arun Siluvery Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 79 ++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 39 deletions(-) commit aaf5ec2e51ab1d9c5e962b4728a1107ed3ff7a3e Author: Sonika Jindal Date: Wed Jul 8 17:07:47 2015 +0530 drm/i915: Handle HPD when it has actually occurred Writing to PCH_PORT_HOTPLUG for each interrupt is not required. Handle it only if hpd has actually occurred like we handle other interrupts. v2: Make few variables local to if block (Ville) v3: Add check for ibx/cpt both (Ville). While at it, remove the redundant check for hotplug_trigger from pch_get_hpd_pins v4: Indentation (Ville) Reviewed-by: Ville Syrjälä Signed-off-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit d5878e6e2289418ba870db4afa9e1805e78eb8ee Author: Linus Walleij Date: Mon Jun 15 14:42:25 2015 +0200 ARM: ep93xx: switch clockevent to timer 3 If we switch clock events to timer 3 we will have more bits to use and can sleep longer when using NO_HZ. Tested-by: H Hartley Sweeten Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/timer-ep93xx.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) commit d118d977c19ef778c597473e1c4e53703681054a Author: Linus Walleij Date: Mon Jun 15 14:38:16 2015 +0200 ARM: ep93xx: use non-raw accessors for timer The timer has no business using __raw accessors, in this case the readl/writel makes perfect sense as the changes really need to hit these registers before we continue. Tested-by: H Hartley Sweeten Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/timer-ep93xx.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 000bc17817bfe9e7d1fd59cec9e95f6b3638872f Author: Linus Walleij Date: Mon Jun 15 14:34:03 2015 +0200 ARM: ep93xx: switch to GENERIC_CLOCKEVENTS This switches the EP93xx to use GENERIC_CLOCKEVENTS and CLKSRC_MMIO. Also implements a sched_clock() hook. Tested on the SIM.ONE. Use only oneshot events. Tested-by: H Hartley Sweeten Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/Kconfig | 3 +- arch/arm/mach-ep93xx/timer-ep93xx.c | 110 +++++++++++++++++++++++------------- 2 files changed, 72 insertions(+), 41 deletions(-) commit 361c81f996707e122bffe95c5a3e6c47611b8a29 Author: Linus Walleij Date: Mon Jun 15 13:15:26 2015 +0200 ARM: ep93xx: move timer to its own file This breaks the timer code out of the core file in preparation for refactoring. Tested-by: H Hartley Sweeten Reviewed-by: H Hartley Sweeten Signed-off-by: Linus Walleij arch/arm/mach-ep93xx/Makefile | 2 +- arch/arm/mach-ep93xx/core.c | 109 ----------------------------------- arch/arm/mach-ep93xx/timer-ep93xx.c | 112 ++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 110 deletions(-) commit af4739c281621017a8a84dd6ba3471bba2dd6c6a Author: Gabriele Mazzotta Date: Tue Jul 7 21:58:02 2015 +0200 HID: i2c-hid: Call device suspend callback before disabling irq i2c-hid takes care of requesting and handling IRQs for HID devices which in turns might expect them to be always active when working in normal conditions. Hence, disabling IRQs before calling the suspend callbacks can potentially cause problems since device drivers might try to perform operations needing them. Fix this by disabling IRQs only after the suspend callbacks had been executed. Signed-off-by: Gabriele Mazzotta Reviewed-by: Benjamin Tissoires Signed-off-by: Jiri Kosina drivers/hid/i2c-hid/i2c-hid.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit e33e640ad0b76151534a2b9387b98eb02d6ddda7 Author: Russell King Date: Thu Mar 26 10:33:16 2015 +0000 pcmcia: sa11x0: convert memory allocation to devm_* API Convert the sa11x0 socket driver memory allocation to use devm_kzalloc() to simplify the cleanup path. Signed-off-by: Russell King drivers/pcmcia/sa1100_generic.c | 1 - drivers/pcmcia/sa11xx_base.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit 72010aca55264cfe6516a955066c846d3885b0c6 Author: Russell King Date: Thu Mar 26 10:22:20 2015 +0000 pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers Fix the lack of clk_put() in sa11xx_base.c's error cleanup paths by converting the driver to the devm_* API. Fixes: 86d88bfca475 ("ARM: 8247/2: pcmcia: sa1100: make use of device clock") Signed-off-by: Russell King drivers/pcmcia/sa1100_generic.c | 1 - drivers/pcmcia/sa11xx_base.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) commit 8df5dd57fd2f4e7f02793457a3bd61e5d4a644d5 Author: Paulo Zanoni Date: Tue Jul 7 15:26:08 2015 -0300 drm/i915: move set_no_fbc_reason() call out of intel_fbc_find_crtc() So now all the calls are inside __intel_fbc_update(). Consistency! Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 232fd934a4b458e5a0dacdd17efc1faffb9df615 Author: Paulo Zanoni Date: Tue Jul 7 15:26:07 2015 -0300 drm/i915: extract FBC_MULTIPLE_PIPES check I have two separate refactor ideas that require extracting this to a separate function. I'm not sure which idea I'll end choosing, but since both will require extracting this function, let's do this now. Notice that this is just code moving. Any possible problems with the current multiple pipes check should be fixed in later commits. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbc.c | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) commit 8935108528194918966757fa00ac986176fe9497 Author: Paulo Zanoni Date: Tue Jul 7 15:26:06 2015 -0300 drm/i915: add FBC_IN_DBG_MASTER no_fbc_reason The poor in_dbg_master() check was the only one without a reason string. Give it a reason string so it won't feel excluded. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_fbc.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) commit 220285f2281515f4e8a9ec7892f7de40d857c290 Author: Paulo Zanoni Date: Tue Jul 7 15:26:05 2015 -0300 drm/i915: use intel_crtc for the FBC functions This is all internal i915.ko work, let's start using intel_crtc for everything. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 +- drivers/gpu/drm/i915/intel_fbc.c | 79 +++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 43 deletions(-) commit 7733b49bb03ee10b8889f8f5edf11d755115b230 Author: Paulo Zanoni Date: Tue Jul 7 15:26:04 2015 -0300 drm/i915: use dev_priv for the FBC functions Because the cool kids use dev_priv and FBC wants to be cool too. We've been historically using struct drm_device on the FBC function arguments, but we only really need it for intel_vgpu_active(): we can use dev_priv everywhere else. So let's fully switch to dev_priv since I'm getting tired of adding "struct drm_device *dev = dev_priv->dev" everywhere. If I get a NACK here I'll propose the opposite: convert all the functions that currently take dev_priv to take dev. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_dma.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 4 +- drivers/gpu/drm/i915/i915_suspend.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 14 ++-- drivers/gpu/drm/i915/intel_drv.h | 8 +- drivers/gpu/drm/i915/intel_fbc.c | 154 ++++++++++++++--------------------- drivers/gpu/drm/i915/intel_pm.c | 4 +- 8 files changed, 80 insertions(+), 110 deletions(-) commit ff2a31171016771829fd1689af65752175de1940 Author: Paulo Zanoni Date: Tue Jul 7 15:26:03 2015 -0300 drm/i915: move FBC vfuncs to struct i915_fbc Because it makes more sense there, IMHO. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 7 +++--- drivers/gpu/drm/i915/intel_display.c | 4 ++-- drivers/gpu/drm/i915/intel_fbc.c | 44 ++++++++++++++++++------------------ 3 files changed, 28 insertions(+), 27 deletions(-) commit 615322f6ac358f9c94b483d0a16f3f46fcb27b1c Author: Oliver Neukum Date: Mon Jun 29 11:10:41 2015 +0200 HID: usbhid: no flushing if device is already polled During open() it is unnecessary to wait for the device to flush stale inputs if the device is polled while closed due to a quirk or opening fails. Signed-off-by: Oliver Neukum Signed-off-by: Jiri Kosina drivers/hid/usbhid/hid-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 21589ebda68172baeb03f35533ee2ec34543bf55 Author: Guilhem Lettron Date: Sat Jun 27 17:02:23 2015 +0200 HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE Like yogas with TEXAS_INSTRUMENTS, yogas with ITE chips needs to be initialized with enumeration quirks. Signed-off-by: Jiri Kosina drivers/hid/hid-ids.h | 3 +++ drivers/hid/hid-sensor-hub.c | 3 +++ 2 files changed, 6 insertions(+) commit d3e120aefb05b422c57d21e39a47b83b543c71cd Author: Fabio Estevam Date: Wed Jun 17 10:46:17 2015 -0300 ARM: imx_v6_v7_defconfig: Enable kexec support Select CONFIG_KEXEC 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 9d87cd61a6b71ee00b7576a3ebc10208becdbea1 Author: Vitaly Kuznetsov Date: Tue Jul 7 18:26:13 2015 +0200 x86/irq: Hide 'HYP:' line in /proc/interrupts when not on Xen/Hyper-V Hypervisor callback interrupts are only accounted on Xen/Hyper-V. There is no point in having always-zero HYP: line on other hypervisors or bare metal. Print the line only if HYPERVISOR_CALLBACK_VECTOR was allocated. Reported-by: Radim Krčmář Signed-off-by: Vitaly Kuznetsov Cc: Andrew Jones Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1436286373-11908-1-git-send-email-vkuznets@redhat.com Signed-off-by: Ingo Molnar arch/x86/kernel/irq.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 2a52feb1805aaef9ce356e5a5c64d498b65e7e81 Author: Maciej S. Szmigiero Date: Tue Jul 7 21:54:02 2015 +0200 ALSA: emu10k1: rename Audigy Analog Capture Boost control Audigy has "Analog Capture Boost" mixer control, however now this only controls mic level, not other analog sources. It applies also both to playback and capture, so rename it to something more descriptive. Signed-off-by: Maciej Szmigiero Signed-off-by: Takashi Iwai sound/pci/emu10k1/emumixer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 52051942943f4ef95a8e953aeed84360291380d8 Author: Maciej S. Szmigiero Date: Tue Jul 7 21:53:15 2015 +0200 ALSA: emu10k1: enable TAD mic out on Audigy Enable TAD output on Audigy naming it "Phone Output", to be consistent with TAD input which is called "Phone". According to Creative doc ( http://support.creative.com/kb/ShowArticle.aspx?sid=3026 ) this should output just mic signal. Signed-off-by: Maciej Szmigiero Signed-off-by: Takashi Iwai sound/pci/emu10k1/emumixer.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) commit 274b2000a09220bb2b930af432a2262db7063bd9 Author: Maciej S. Szmigiero Date: Tue Jul 7 21:52:24 2015 +0200 ALSA: emu10k1: remove unused AC'97 mixer controls on Audigy AC'97 Headphone output and EAPD control aren't used on Audigy so remove them from mixer. Also remove AC'97 3D control as the driver is already doing for Audigys with 1361T ADC. Signed-off-by: Maciej Szmigiero Signed-off-by: Takashi Iwai sound/pci/emu10k1/emumixer.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 1425d2d17f7309c65e2bd124e0ce8ace743b17f2 Author: Vutla, Lokesh Date: Tue Jul 7 21:01:49 2015 +0530 crypto: tcrypt - Fix AEAD speed tests The AEAD speed tests doesn't do a wait_for_completition, if the return value is EINPROGRESS or EBUSY. Fixing it here. Also add a test case for gcm(aes). Signed-off-by: Lokesh Vutla Signed-off-by: Herbert Xu crypto/tcrypt.c | 65 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 22 deletions(-) commit 340d9d317eb93039754004621c6c5cb1a5e9735c Author: Vutla, Lokesh Date: Tue Jul 7 21:01:46 2015 +0530 crypto: omap-aes - Use BIT() macro Use BIT()/GENMASK() macros for all register definitions instead of hand-writing bit masks. Signed-off-by: Lokesh Vutla Signed-off-by: Herbert Xu drivers/crypto/omap-aes.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 5396c6c0741317a54f8032ac50346f123e664a52 Author: Vutla, Lokesh Date: Tue Jul 7 21:01:45 2015 +0530 crypto: omap-aes - Fix configuring of AES mode AES_CTRL_REG is used to configure AES mode. Before configuring any mode we need to make sure all other modes are reset or else driver will misbehave. So mask all modes before configuring any AES mode. Signed-off-by: Lokesh Vutla Signed-off-by: Herbert Xu drivers/crypto/omap-aes.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) commit 6e2e3d1de45214fe5538318a208f2f7ccc617e4c Author: Vutla, Lokesh Date: Tue Jul 7 21:01:44 2015 +0530 crypto: omap-aes - Increase priority of hw accelerator Increasing the priority of omap-aes hw algos, in order to take precedence over sw algos. Signed-off-by: Lokesh Vutla Signed-off-by: Herbert Xu drivers/crypto/omap-aes.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 310b0d55f0301908461191db392ecee01735b3ec Author: Vutla, Lokesh Date: Tue Jul 7 21:01:43 2015 +0530 crypto: omap-aes - Fix CTR mode Algo self tests are failing for CTR mode with omap-aes driver, giving the following error: [ 150.053644] omap_aes_crypt: request size is not exact amount of AES blocks [ 150.061262] alg: skcipher: encryption failed on test 5 for ctr-aes-omap: ret=22 This is because the input length is not aligned with AES_BLOCK_SIZE. Adding support for omap-aes driver for inputs with length not aligned with AES_BLOCK_SIZE. Signed-off-by: Lokesh Vutla Signed-off-by: Herbert Xu drivers/crypto/omap-aes.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 0dfc7f687917a93175d469a2dc1254fd2f77fb63 Author: Rafał Miłecki Date: Mon Jun 29 07:22:16 2015 +0200 ARM: BCM5301X: Enable UART0 on tested devices There are two possible UARTs so we have (both of) them disabled by default. Override uart0 status on devices that were verified to use it. In case of Netgear R6250 also drop an old (and invalid) overwrite. It doesn't have uart1 connected. Signed-off-by: Rafał Miłecki Acked-by: Hauke Mehrtens Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 4 ++++ arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 4 ++++ arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 14 ++++---------- arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 4 ++++ arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 ++++ 5 files changed, 20 insertions(+), 10 deletions(-) commit 5253ed194c7edd6cd548fc22e333be2f4ccc57ec Author: Ray Jui Date: Tue May 5 11:13:22 2015 -0700 ARM: dts: enable clock support for Broadcom Cygnus Replace current device tree dummy clocks with real clock support for Broadcom Cygnus SoC Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Florian Fainelli arch/arm/boot/dts/bcm-cygnus-clock.dtsi | 89 ++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 28 deletions(-) commit 4c62dbbce902cf2afa88cac89ec67c828160f431 Author: Jarkko Nikula Date: Fri Jun 26 11:27:41 2015 +0300 ACPI: Remove FSF mailing addresses There is no need to carry potentially outdated Free Software Foundation mailing address in file headers since the COPYING file includes it. Signed-off-by: Jarkko Nikula Signed-off-by: Rafael J. Wysocki drivers/acpi/ac.c | 4 ---- drivers/acpi/acpi_ipmi.c | 4 ---- drivers/acpi/acpi_memhotplug.c | 5 ----- drivers/acpi/acpi_pad.c | 4 ---- drivers/acpi/acpi_video.c | 4 ---- drivers/acpi/apei/apei-base.c | 4 ---- drivers/acpi/apei/einj.c | 4 ---- drivers/acpi/apei/erst-dbg.c | 4 ---- drivers/acpi/apei/erst.c | 4 ---- drivers/acpi/apei/ghes.c | 4 ---- drivers/acpi/apei/hest.c | 4 ---- drivers/acpi/battery.c | 4 ---- drivers/acpi/blacklist.c | 4 ---- drivers/acpi/bus.c | 4 ---- drivers/acpi/button.c | 4 ---- drivers/acpi/cm_sbs.c | 4 ---- drivers/acpi/container.c | 4 ---- drivers/acpi/device_pm.c | 4 ---- drivers/acpi/dock.c | 4 ---- drivers/acpi/ec.c | 4 ---- drivers/acpi/fan.c | 4 ---- drivers/acpi/hed.c | 4 ---- drivers/acpi/internal.h | 3 --- drivers/acpi/numa.c | 4 ---- drivers/acpi/osl.c | 4 ---- drivers/acpi/pci_irq.c | 4 ---- drivers/acpi/pci_link.c | 4 ---- drivers/acpi/pci_root.c | 4 ---- drivers/acpi/pci_slot.c | 4 ---- drivers/acpi/power.c | 4 ---- drivers/acpi/processor_driver.c | 4 ---- drivers/acpi/processor_idle.c | 4 ---- drivers/acpi/processor_perflib.c | 4 ---- drivers/acpi/processor_thermal.c | 4 ---- drivers/acpi/processor_throttling.c | 4 ---- drivers/acpi/resource.c | 4 ---- drivers/acpi/sbs.c | 4 ---- drivers/acpi/tables.c | 4 ---- drivers/acpi/thermal.c | 4 ---- drivers/acpi/utils.c | 4 ---- include/acpi/acpi_bus.h | 4 ---- include/acpi/acpi_drivers.h | 4 ---- include/linux/acpi.h | 4 ---- 43 files changed, 172 deletions(-) commit f04b8b48d32c66b5d9243f7a1c85ca198eff43bb Merge: 2573a02 56551da Author: Stephen Boyd Date: Tue Jul 7 17:10:50 2015 -0700 Merge branch 'clk-fixes' into clk-next * clk-fixes: drivers: clk: st: Incorrect register offset used for lock_status commit 2573a02aa5c882fdcab82bba953241f2fa3181a3 Author: Stephen Boyd Date: Mon Jul 6 16:50:00 2015 -0700 clk: Move clk_provider_list to scope of function using it The list isn't used after of_clk_init() is called, so we don't need to keep an empty list around after init. Put the list on the stack. Cc: Gregory CLEMENT Signed-off-by: Stephen Boyd drivers/clk/clk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 2e3b19f137f31290979999ff7ac67ce52e02be0e Author: Stephen Boyd Date: Mon Jul 6 16:48:19 2015 -0700 clk: Check for allocation errors in of_clk_init() Dan Carpenter reports that we don't check the allocation here for failure. Add a failure check and free any previously allocated providers from the clk_provider_list. Reported-by: Dan Carpenter Cc: Gregory CLEMENT Signed-off-by: Stephen Boyd drivers/clk/clk.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) commit ca7d07a22a28bcd558b200329bfa322c9ffd7c54 Merge: d4f76de 3536c97 Author: Stephen Boyd Date: Mon Jul 6 15:59:33 2015 -0700 Merge branch 'clk-rk3368' into clk-next * clk-rk3368: clk: rockchip: add rk3368 clock controller clk: rockchip: add missing include guards clk: rockchip: add dt-binding header for rk3368 dt-bindings: add documentation of rk3668 clock controller clk: rockchip: define the inverters of rk3066/rk3188 and rk3288 clk: rockchip: fix issues in the mmc-phase clock clk: rockchip: add support for phase inverters clk: rockchip: add COMPOSITE_NOGATE_DIVTBL variant clk: rockchip: protect register macros against multipart values clk: rockchip: fix faulty vip parent name on rk3288 clk: rockchip: rk3288: add CLK_SET_RATE_PARENT to sclk_mac commit d4f76de37458bc613f9465d8fafc2b5fea0cdea1 Author: Georgi Djakov Date: Fri Jun 12 11:41:55 2015 +0300 clk: qcom: Add support for SR2 PLLs Add support for SR2 type pll operations. SR2 is optimized for Time Interval Error (TIE) or absolute jitter. Signed-off-by: Georgi Djakov Signed-off-by: Stephen Boyd drivers/clk/qcom/clk-pll.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++ drivers/clk/qcom/clk-pll.h | 1 + 2 files changed, 76 insertions(+) commit a8a8db47990d9b3789a30f4ab6744ce83f733c85 Author: Stephen Boyd Date: Mon Jul 6 12:10:51 2015 -0700 clk: at91: Silence warnings and cleanup __init/extern usage Remove useless ifdefs around function prototypes to silence the following sparse warnings when the configs aren't enabled. drivers/clk/at91/clk-h32mx.c:95:13: warning: symbol 'of_sama5d4_clk_h32mx_setup' was not declared. Should it be static? drivers/clk/at91/clk-utmi.c:159:13: warning: symbol 'of_at91sam9x5_clk_utmi_setup' was not declared. Should it be static? Plus, using __init and extern in function prototypes doesn't do anything, so just drop it throughout this file. Acked-by: Boris BREZILLON Acked-by: Alexandre Belloni Signed-off-by: Stephen Boyd drivers/clk/at91/pmc.h | 124 +++++++++++++++++++++++-------------------------- 1 file changed, 58 insertions(+), 66 deletions(-) commit 906b1f536d5b1a26e549c78a07b664f22340b7df Merge: 5891a8d 5f867db Author: Brian Norris Date: Tue Jul 7 13:10:30 2015 -0700 Merge MTD 4.2-rc fixes into MTD -next commit b33612e183dcbaa2cc2479cedff6984a6cccdf6a Author: Hiraku Toyooka Date: Wed Jun 10 07:47:19 2015 +0000 ARM: socfpga: add smp_ops.cpu_kill to make kexec/kdump available Kexec_load syscall in ARM requires that machine-specific code has the smp_ops.cpu_kill() before loading kernel image. This patch adds the cpu_kill(), as a result, kexec reboot and kernel crash dump become available in mach-socfpga. Signed-off-by: Hiraku Toyooka Cc: Dinh Nguyen Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Link: http://lists.infradead.org/pipermail/linux-arm-kernel/2015-June/348004.html Signed-off-by: Dinh Nguyen arch/arm/mach-socfpga/platsmp.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit b7e79329c4e34d63cd374e603ece91f2b2c3331e Author: Martin Kepplinger Date: Mon Jul 6 15:52:21 2015 -0700 Input: bma150 - use sign_extend32() for sign extending Despite it's name, sign_extend32() is used for 16 bit values aswell. Signed-off-by: Martin Kepplinger Signed-off-by: Dmitry Torokhov drivers/input/misc/bma150.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6e78108bda78adbb2d4ef55ec60a388aba975797 Author: Shengjiu Wang Date: Fri Jul 3 16:30:30 2015 +0800 ASoC: core: Don't probe the component which is dummy Dummy dai can be used by multiple sound card. But it only belong to one card's dapm list. If another card use it, there will be dapm_assert_locked warning. [ 20.015782] WARNING: CPU: 1 PID: 661 at sound/soc/soc-dapm.c:124 dapm_assert_locked.isra.36+0x4c/0x58() [ 20.025249] Modules linked in: [ 20.028349] CPU: 1 PID: 661 Comm: aplay Not tainted 4.1.0-rc6-next-20150605-00004-gaee05d8-dirty #92 [ 20.037528] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [ 20.044110] Backtrace: [ 20.046614] [<80012e00>] (dump_backtrace) from [<80012fa0>] (show_stack+0x18/0x1c) [ 20.054229] r6:809e8060 r5:00000000 r4:00000000 r3:00000000 [ 20.060002] [<80012f88>] (show_stack) from [<807a0f74>] (dump_stack+0x80/0x9c) [ 20.067293] [<807a0ef4>] (dump_stack) from [<8002b144>] (warn_slowpath_common+0x7c/0xb4) [ 20.075427] r5:0000007c r4:00000000 [ 20.079065] [<8002b0c8>] (warn_slowpath_common) from [<8002b1a0>] (warn_slowpath_null+0x24/0x2c) [ 20.087898] r8:00000001 r7:88007c28 r6:ed94a680 r5:809e83e4 r4:ed83d6c0 [ 20.094747] [<8002b17c>] (warn_slowpath_null) from [<8058403c>] (dapm_assert_locked.isra.36+0x4c/0x58) [ 20.104101] [<80583ff0>] (dapm_assert_locked.isra.36) from [<805842ec>] (dapm_mark_dirty+0x64/0xa4) [ 20.113165] [<80584288>] (dapm_mark_dirty) from [<805853a8>] (soc_dapm_dai_stream_event.isra.42+0x30/0xc8) [ 20.122863] r8:ed9b5dbc r7:00000000 r6:00000001 r5:00000001 r4:ed83d6c0 [ 20.129706] [<80585378>] (soc_dapm_dai_stream_event.isra.42) from [<80587e28>] (snd_soc_dapm_stream_event+0x78/0xa0) [ 20.140264] r5:ee2ee62c r4:00000001 [ 20.143918] [<80587db0>] (snd_soc_dapm_stream_event) from [<8058957c>] (soc_pcm_prepare+0x138/0x21c) [ 20.153058] r8:ed8d9480 r7:00000000 r6:ed9b0e00 r5:00000001 r4:ee2ee62c r3:00000000 ... This patch is to not probe the dummy component in soc_probe_component. Then there is no widget created for dummy DAI, and also don't need to check the dummy dai in dapm_connect_dai_link_widgets(). Signed-off-by: Shengjiu Wang Signed-off-by: Mark Brown sound/soc/soc-core.c | 2 +- sound/soc/soc-dapm.c | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) commit 5ad2cb14f5b8f3cb3d8688115037751b1ff45455 Author: Lee Jones Date: Tue Jul 7 16:06:53 2015 +0100 regulator: pwm-regulator: Don't assign structure attributes right away Perhaps this is just personal preference, but ... This patch introduces a new local variable to receive and test regulator initialisation data. It simplifies and cleans up the code making it that little bit easier to read and maintain. The local value is assigned to the structure attribute when all the others are. This is the way we usually do things. Prevents this kind of nonsense: this->is->just.silly = fetch_silly_value(&pointer); if (!this->is->just.silly) { printk("Silly value failed: %d\n", this->is->just.silly); return this->is->just.silly; } Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit cae897dec26a9d81dcb5182b13b08450f38d6bde Author: Lee Jones Date: Tue Jul 7 16:06:52 2015 +0100 regulator: pwm-regulator: Simplify voltage to duty-cycle call If we reverse some of the logic and change the formula used, we can simplify the function greatly. It is intentional that this function is supplied and then re-worked within the same patch-set. The submission in the previous patch is the tried and tested (i.e. in real releases) method written by ST. This patch contains a simplification provided later. It looks and performs better, but doesn't have the same time-under-test that the original method does. The idea is that we keep some history in order to provide an easy way back i.e. revert. Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) commit 4773be185a0f7c1c09d8966e100c76f4fa9a3227 Author: Lee Jones Date: Tue Jul 7 16:06:51 2015 +0100 regulator: pwm-regulator: Add support for continuous-voltage The current version of PWM regulator only supports a static table approach, where pre-calculated values are supplied by the vendor and obtained via DT. The continuous-voltage method takes min_uV and max_uV, and divides the difference between them up into a number of slices. The number of slices depend on how large the duty cycle register is. This information is provided by a DT property. As the name alludes, this provides values for a continuous voltage range between min_uV and max_uV, which has obvious benefits over either limited voltage possibilities, or the requirement to provide a large voltage-table. Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 114 +++++++++++++++++++++++++++++++++++--- 1 file changed, 106 insertions(+), 8 deletions(-) commit 02258b8bcbb98b28064cc829f7062455da398633 Author: Lee Jones Date: Tue Jul 7 16:06:50 2015 +0100 regulator: pwm-regulator: Re-write bindings * Add support for continuous-voltage mode * Put more meat on the bones with regards to voltage-table mode * Sort out formatting for ease of consumption Cc: devicetree@vger.kernel.org Signed-off-by: Lee Jones Signed-off-by: Mark Brown .../bindings/regulator/pwm-regulator.txt | 68 ++++++++++++++++++---- 1 file changed, 56 insertions(+), 12 deletions(-) commit 9acc7f08716b98730e1ead7e785fb0f3ad3a2d07 Author: Fabio Estevam Date: Sat Jun 20 15:55:50 2015 -0300 ASoC: max98090: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Signed-off-by: Mark Brown sound/soc/codecs/max98090.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit f2a763858a7d0236d658116918c7b1e2c7a5e0cf Merge: 83c0929 4890140 Author: Mark Brown Date: Tue Jul 7 15:04:40 2015 +0100 Merge branch 'topic/codec-dapm' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-rt5645 Conflicts: sound/soc/codecs/rt5645.c commit c5b8540dca22526517f4d96857678466613467d1 Author: Koro Chen Date: Mon Jul 6 10:02:10 2015 +0800 ASoC: dpcm: Add checks of playback/capture before dpcm_get_be In dpcm_get_be(), it looks for a BE rtd that has the DAI widget according to current stream type. Only playback_widgets are searched in the case of playback stream and vice versa. However, the DAI widget itself can be playback or capture. If the DAI widget is capture, but current stream type is playback, dpcm_get_be() will always fail to find a rtd, print error messages, and continue to the next DAI widget in list. We can just skip this DAI widget to further suppress error messages. This happens in a special case when 2 codecs are inter-connected, and the 1st codec's "capture" widget is used to send data to the 2nd codec during "playback": mtk-rt5650-rt5676 sound: ASoC: can't get playback BE for Sub AIF2 Capture rt5650_rt5676 Playback: ASoC: no BE found for Sub AIF2 Capture Add checks to continue to next DAI widget if current DAI widget's direction does not match the stream type. Signed-off-by: Koro Chen Signed-off-by: Mark Brown sound/soc/soc-pcm.c | 5 +++++ 1 file changed, 5 insertions(+) commit 4890140f3888b4a4baef90d84e278858afe45248 Author: Lars-Peter Clausen Date: Mon Jul 6 15:38:11 2015 +0200 ASoC: Remove snd_soc_codec dapm field There are no more direct users of the snd_soc_codec DAPM field left. So we can finally remove it and switch over to directly using the component DAPM context and remove the dapm_ptr indirection. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown include/sound/soc.h | 10 +++------- sound/soc/soc-core.c | 23 ++++++++++++----------- 2 files changed, 15 insertions(+), 18 deletions(-) commit b3c25fb7caa30afa5d5cc6b414a5b4d66bed77a7 Author: Lars-Peter Clausen Date: Mon Jul 6 15:38:10 2015 +0200 ASoC: dapm_widget_show_codec: Use component instead of CODEC There is nothing snd_soc_codec specific in this function, just use snd_soc_component instead. With this also the last reference of snd_soc_codec form soc-dapm.c. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/soc-dapm.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit c68c2be5f6ae4a27d548921bf8b32413c5eab8ed Author: Lars-Peter Clausen Date: Mon Jul 6 15:38:09 2015 +0200 ASoC: cht_bsw_max98090_ti: Use card DAPM context to access widgets The dapm field of the snd_soc_codec struct will eventually be removed (replaced with the DAPM context from the component embedded inside the CODEC). Replace its usage with the card's DAPM context. The idea is that DAPM is hierarchical and with the card at the root it is possible to access widgets from other contexts through the card context. While we are at it also remove some extra newlines. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/intel/boards/cht_bsw_max98090_ti.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) commit 987731bb7c80b170228e6e1acf2e7b91efb51100 Author: Lars-Peter Clausen Date: Mon Jul 6 15:38:08 2015 +0200 ASoC: omap3pandora: Use card DAPM context to access widgets The dapm field of the snd_soc_codec struct will eventually be removed (replaced with the DAPM context from the component embedded inside the CODEC). Replace its usage with the card's DAPM context. The idea is that DAPM is hierarchical and with the card at the root it is possible to access widgets from other contexts through the card context. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/omap/omap3pandora.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 8f218fa93d20a7b4ef8a088e5eed2d84b8ef4ab5 Author: Lars-Peter Clausen Date: Mon Jul 6 15:38:07 2015 +0200 ASoC: tas571x: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level(). Signed-off-by: Lars-Peter Clausen Acked-by: Kevin Cernekee Signed-off-by: Mark Brown sound/soc/codecs/tas571x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b93f7ee0836d1dbcfcf8560dd2a34cd51b3ff21 Author: Nishanth Aravamudan Date: Mon Jul 6 10:06:21 2015 -0700 crypto: nx - reduce chattiness of platform drivers While we never would successfully load on the wrong machine type, there is extra output by default regardless of machine type. For instance, on a PowerVM LPAR, we see the following: nx_compress_powernv: loading nx_compress_powernv: no coprocessors found even though those coprocessors could never be found. Signed-off-by: Nishanth Aravamudan Cc: Dan Streetman Cc: Herbert Xu Cc: "David S. Miller" Cc: linux-crypto@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Acked-by: Michael Ellerman Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-powernv.c | 10 +--------- drivers/crypto/nx/nx-842-pseries.c | 3 --- 2 files changed, 1 insertion(+), 12 deletions(-) commit 0d8dc96607bcd9451407fa5ff4918bca89e2632e Author: LABBE Corentin Date: Mon Jul 6 13:37:33 2015 +0200 crypto: testmgr - add a chunking test for cbc(aes) All tests for cbc(aes) use only blocks of data with a multiple of 4. This test adds a test with some odd SG size. Signed-off-by: LABBE Corentin Signed-off-by: Herbert Xu crypto/testmgr.h | 6 ++++++ 1 file changed, 6 insertions(+) commit ec9f2006fc020c58f32f01b9d68fdb5f7374ffce Author: Herbert Xu Date: Mon Jul 6 19:11:03 2015 +0800 crypto: cryptd - Fix AEAD request context corruption The AEAD version of cryptd uses the same context for its own state as well as that of the child. In doing so it did not maintain the proper ordering, thus resulting in potential state corruption where the child will overwrite the state stored by cryptd. This patch fixes and also sets the request size properly. Signed-off-by: Herbert Xu crypto/cryptd.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit e2ada8187bc8b46c30a623e7d6b5a72c209f70cd Author: Lars-Peter Clausen Date: Mon Jul 6 15:38:06 2015 +0200 ASoC: rt5645: Replace direct snd_soc_codec dapm field access The dapm field of the snd_soc_codec struct is eventually going to be removed, in preparation for this replace all manual access to codec->dapm.bias_level with snd_soc_codec_get_bias_level() and replace all other manual access to codec->dapm with snd_soc_codec_get_dapm(). Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 73 +++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 41 deletions(-) commit 7f005256f70a8c1c60b2f8a7449137da0c5e5bd9 Author: Kenneth Westfield Date: Thu Jun 18 15:16:08 2015 -0700 ASoC: qcom: remove Kconfig deps from variant configs Remove the SND_SOC_QCOM dependency from the variant configs. The board configs, which select the variants, already have this dependency. Signed-off-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/qcom/Kconfig | 2 -- 1 file changed, 2 deletions(-) commit 02c4b9c28b973d999073c810a78375e38346d7a3 Author: Kenneth Westfield Date: Thu Jun 18 15:16:07 2015 -0700 ASoC: qcom: move board Kconfig deps to parent config Rather than have each board define the same set of dependencies; move the common dependencies to the SND_SOC_QCOM parent config. Signed-off-by: Kenneth Westfield Signed-off-by: Mark Brown sound/soc/qcom/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit ffaab99184a2c8b592bba85d8e4da708c65b4cc1 Author: Laxman Dewangan Date: Wed Jul 1 18:31:44 2015 +0530 regulator: max8973: add support to configure ETR based on rail load Add support to configure Enhanced Transient Response Enable (ETR) and Sensitivity Selection based on maximum current i.e. expected load on that rail. Maxim recommended as: - Enable ETR with high sensitivity (75mV/us) for 0 to 9A expected loads, - Enable ETR with low sensitivity (150mV/us) for 9A to 12A expected loads. - Disable ETR for expected load > 12A. These recommendation will be configured for MAX77621 when maximum load is provided through regulator constraint for maximum current from platform. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown drivers/regulator/max8973-regulator.c | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 3692db3a904800445f8af249e1ac0f2b6496f31d Author: Laxman Dewangan Date: Wed Jul 1 18:31:43 2015 +0530 regulator: max8973: add support to configure ETR from DT The MAX8973/MAX77621 feature an Enhanced Transient Response(ETR) circuit that is enabled through software. The enhanced transient response reduces the voltage droop during large load steps by temporarily allowing all three phases to fire in unison, slewing total inductor current faster than would normally be possible if all three phases continued to operate 120deg out of phase. The enhanced transient response detector features two selectable sensitivity settings, which select the output voltage slew rate during load transients that triggers the ETR circuit. The sensitivity of the ETR detector is set by the CKADV[1:0] bits in the CONTROL2 register. Add support to configure the ETR through platform data from DT. Update the DT binding document accordingly. Signed-off-by: Laxman Dewangan Signed-off-by: Mark Brown .../bindings/regulator/max8973-regulator.txt | 6 ++++++ drivers/regulator/max8973-regulator.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) commit c418a84a8c8f98b1a0f30cd68d0cdf40d77aed01 Author: Axel Lin Date: Sun Jul 5 17:48:29 2015 +0800 ASoC: Constify reg_default tables Signed-off-by: Axel Lin Acked-by: Peter Rosin Acked-by: Charles Keepax Acked-by: Lars-Peter Clausen Signed-off-by: Mark Brown sound/soc/codecs/adav80x.c | 2 +- sound/soc/codecs/alc5632.c | 2 +- sound/soc/codecs/da7210.c | 6 +++--- sound/soc/codecs/da7213.c | 2 +- sound/soc/codecs/da732x.c | 2 +- sound/soc/codecs/da9055.c | 2 +- sound/soc/codecs/isabelle.c | 2 +- sound/soc/codecs/lm49453.c | 2 +- sound/soc/codecs/max9768.c | 2 +- sound/soc/codecs/max9877.c | 2 +- sound/soc/codecs/ml26124.c | 2 +- sound/soc/codecs/rt286.c | 4 ++-- sound/soc/codecs/rt5651.c | 2 +- sound/soc/codecs/tas2552.c | 2 +- sound/soc/codecs/tfa9879.c | 2 +- sound/soc/codecs/wm2200.c | 2 +- sound/soc/codecs/wm8962.c | 2 +- sound/soc/codecs/wm8993.c | 4 ++-- sound/soc/codecs/wm8996.c | 2 +- sound/soc/codecs/wm9081.c | 2 +- 20 files changed, 24 insertions(+), 24 deletions(-) commit f9178dad67952673b653315f92620b7a981466e5 Author: Lee Jones Date: Mon Jul 6 09:58:29 2015 +0100 regulator: pwm-regulator: Separate voltage-table initialisation Take this out of the main .probe() routine in order to facilitate the introduction of different ways to obtain 'duty cycle' information. Signed-off-by: Lee Jones Signed-off-by: Mark Brown drivers/regulator/pwm-regulator.c | 77 +++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 32 deletions(-) commit ec8677267f4ef126275b2e0a429211b256f1a94a Author: Axel Lin Date: Tue Jul 7 19:21:44 2015 +0800 regulator: ltc3589: Constify ltc3589_reg_defaults ltc3589_reg_defaults[] is not modified after initialized, so make it const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown drivers/regulator/ltc3589.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 02a9547e9b3f10d73fde66f52fc8b2a375a300cd Author: Axel Lin Date: Tue Jul 7 12:57:19 2015 +0800 ASoC: gtm601: Constify soc_codec_dev_gtm601 Also clean up the code a bit by fixing indent. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/gtm601.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 6f4397949689d74c3bd0016c80d59a90c6e8afee Author: Axel Lin Date: Thu Jun 25 17:01:14 2015 +0800 ASoC: lm49453: Remove fs_rate from struct lm49453_priv fs_rate is only used in lm49453_hw_params() so don't need to store it in private data. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/lm49453.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit f8ea6cebcfa6499949392da71fc427567c9e5a0e Author: Axel Lin Date: Wed Jul 1 00:56:36 2015 +0800 ASoC: ak4642: Fix up max_register setting The max_register setting for ak4642, ak4643 and ak4648 are wrong, fix it. According to the datasheet: the maximum valid register for ak4642 is 0x1f the maximum valid register for ak4643 is 0x24 the maximum valid register for ak4648 is 0x27 The default settings for ak4642 and ak4643 are the same for 0x0 ~ 0x1f registers, so it's fine to use the same reg_default table with differnt num_reg_defaults setting. Signed-off-by: Axel Lin Tested-by: Kuninori Morimoto Signed-off-by: Mark Brown sound/soc/codecs/ak4642.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) commit 93ec3a1ad5b86aef8ca90d2b149ded0f6bb689f5 Author: Axel Lin Date: Mon Jun 29 11:15:23 2015 +0800 ASoC: 88pm860x: Don't change pm860x->dir setting if pm860x_set_dai_sysclk fails 88pm860x does not support slave mode, so it returns -EINVAL for PM860X_CLK_DIR_IN. Current code changes pm860x->dir setting before return error, so it has impact on the logic of pm860x_pcm_set_dai_fmt. This patch adds comment for the reason to return -EINVAL for PM860X_CLK_DIR_IN, and avoid changing pm860x->dir setting if pm860x_set_dai_sysclk fails. Signed-off-by: Axel Lin Acked-by: Haojian Zhuang Signed-off-by: Mark Brown sound/soc/codecs/88pm860x-codec.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5e4cb7b60833b0124a9f71dbc5118144ca79c3c4 Author: Axel Lin Date: Thu Jun 25 21:44:13 2015 +0800 ASoC: cs42xx8: Setup of_match_table Setup of_match_table and since cs42xx8_of_match is exported and used in cs42xx8-i2c.c, it cannot be static. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42xx8-i2c.c | 3 ++- sound/soc/codecs/cs42xx8.c | 2 +- sound/soc/codecs/cs42xx8.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) commit d375d0abcd625cd09cd90a252ad22a1085452e3c Author: Axel Lin Date: Thu Jun 25 21:41:43 2015 +0800 ASoC: cs42xx8: Move the code checking *regmap argument earlier Slightly improve the readability by moving the code checking *regmap argument earlier. Also move the assignment of of_id close to the place testing it. Signed-off-by: Axel Lin Acked-by: Brian Austin Signed-off-by: Mark Brown sound/soc/codecs/cs42xx8.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 9bfde72157036f4eaa44f3e8982217ce1b3e14b6 Author: Ben Zhang Date: Mon Jun 22 11:13:00 2015 -0700 ASoC: rt5677: Switch to use unified device property API This patch makes the driver use the unified device property API so that platform data can be provided by Device Tree, ACPI or board files. Signed-off-by: Ben Zhang Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 57 +++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 32 deletions(-) commit efd901ee4bc8312e3bbf5561fdab8e3765e26334 Author: Ben Zhang Date: Mon Jun 22 11:12:59 2015 -0700 ASoC: rt5677: Switch to use descriptor-based gpiod API This patch makes the driver use the new descriptor-based gpiod API so that gpio assignment info can be provided by Device Tree, ACPI or board files. Signed-off-by: Ben Zhang Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 85 +++++++++++++++++------------------------------ sound/soc/codecs/rt5677.h | 5 +-- 2 files changed, 33 insertions(+), 57 deletions(-) commit eca2ebc7e007c9e2b8f5ecfcfc74b53fbe68e42b Author: Martin Sperl Date: Mon Jun 22 13:00:36 2015 +0000 spi: expose spi_master and spi_device statistics via sysfs per spi-master statistics accessible as: /sys/class/spi_master/spi*/statistics/* per spi-device statistics accessible via: /sys/class/spi_master/spi*/spi*.*/statistics/* The following statistics are exposed as separate "files" inside these directories: * messages number of spi_messages * transfers number of spi_transfers * bytes number of bytes transferred * bytes_rx number of bytes transmitted * bytes_tx number of bytes received * errors number of errors encounterd * timedout number of messages that have timed out * spi_async number of spi_messages submitted using spi_async * spi_sync number of spi_messages submitted using spi_sync * spi_sync_immediate number of spi_messages submitted using spi_sync, that are handled immediately without a context switch to the spi_pump worker-thread Signed-off-by: Martin Sperl Signed-off-by: Mark Brown drivers/spi/spi.c | 168 +++++++++++++++++++++++++++++++++++++++++++++++- include/linux/spi/spi.h | 64 ++++++++++++++++++ 2 files changed, 229 insertions(+), 3 deletions(-) commit fa3be9208dcb21ae4185f6122137fe7d5cf29d74 Author: Fabio Estevam Date: Sat Jun 20 18:18:06 2015 -0300 ASoC: fsl: fsl_spdif: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_spdif.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit b1ade0f2afe283d59eb313e5717870fdb831fc4e Author: Fabio Estevam Date: Sat Jun 20 18:00:13 2015 -0300 ASoC: fsl: fsl_asrc: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. Signed-off-by: Fabio Estevam Acked-by: Nicolin Chen Signed-off-by: Mark Brown sound/soc/fsl/fsl_asrc.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit f6d1b3e20a840a7201ae400a970f42cca96aa17b Author: Geert Uytterhoeven Date: Tue Jun 23 15:02:44 2015 +0200 spi: sh-msiof: Remove obsolete spi_r8a779x_msiof 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. Signed-off-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Mark Brown drivers/spi/spi-sh-msiof.c | 5 ----- 1 file changed, 5 deletions(-) commit 0d69e0dddf5fe86675c56bc0f0520ffb0cbf1fcd Author: Shengjiu Wang Date: Tue Jun 23 18:23:53 2015 +0800 ASoC: fsl: Add dedicated DMA buffer size for each cpu dai As the ssi is not the only cpu dai, there are esai, spdif, sai. and imx_pcm_dma can be used by all of them. Especially ESAI need a larger DMA buffer size. So Add dedicated DMA buffer for each cpu dai. Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Acked-by: Timur Tabi Signed-off-by: Mark Brown sound/soc/fsl/fsl_esai.c | 2 +- sound/soc/fsl/fsl_sai.c | 2 +- sound/soc/fsl/fsl_spdif.c | 2 +- sound/soc/fsl/fsl_ssi.c | 2 +- sound/soc/fsl/imx-pcm-dma.c | 25 +++++++++++++++++++++---- sound/soc/fsl/imx-pcm.h | 9 +++++++-- sound/soc/fsl/imx-ssi.c | 2 +- 7 files changed, 33 insertions(+), 11 deletions(-) commit 5f8e671a49e1d608fcf52c8944ea7818cd4c99a9 Author: Charles Keepax Date: Thu Jun 25 09:35:12 2015 +0100 ASoC: arizona: Implement stability check for LHPF coefficients Specifying unstable coefficients for the low/high pass filters can have a severe impact on the audio. This patchs adds a stability check on the coefficients written to the low/high pass filter block to prevent this. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 17 +++++++++++++++++ sound/soc/codecs/arizona.h | 9 +++++++++ sound/soc/codecs/wm5102.c | 8 ++++---- sound/soc/codecs/wm5110.c | 8 ++++---- sound/soc/codecs/wm8997.c | 8 ++++---- 5 files changed, 38 insertions(+), 12 deletions(-) commit c05d9a8c7f55a901d9e8ec2a5f0730137bbfea4a Author: Charles Keepax Date: Thu Jun 25 09:35:11 2015 +0100 ASoC: arizona: Implement stability check for EQ coefficients Specifying unstable coefficients for the EQ can have a severe impact on the audio. This patchs adds a stability check on the coefficients written to the EQ, for this it is necessary to merge the mode control and the coefficients as some coefficients may only be unstable with a certain mode setting so it is ideal if these are always updated in sync. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/arizona.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/codecs/arizona.h | 10 ++++++++ sound/soc/codecs/wm5102.c | 12 ++++------ sound/soc/codecs/wm5110.c | 12 ++++------ sound/soc/codecs/wm8997.c | 12 ++++------ 5 files changed, 81 insertions(+), 24 deletions(-) commit b650247da5a8c5d8991eeb9cf31e2e71d7be1b08 Author: Nik Nyby Date: Tue Jun 30 17:43:02 2015 -0400 ASoC: codecs: max98088: fix typo in constant This fixes a typo in the M98088_REG_02_JACK_STATUS constant. Signed-off-by: Nik Nyby Signed-off-by: Mark Brown sound/soc/codecs/max98088.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 99622f56110ee8cbfe8ecf2dd5e666f67cf4bb97 Author: Alexey Klimov Date: Tue Jun 30 21:04:07 2015 +0300 spi/rockchip: remove unnecessary memset of rockchip_spi Memory for struct rockchip_spi is allocated by spi_alloc_master() using kzalloc() so it doesn't need to be set to 0 one more time. Signed-off-by: Alexey Klimov Signed-off-by: Mark Brown drivers/spi/spi-rockchip.c | 1 - 1 file changed, 1 deletion(-) commit 385a9c8fccc0308dbd8182c57b29a95e01e29688 Author: Alexey Klimov Date: Tue Jun 30 21:03:58 2015 +0300 spi/s3c24xx: remove unnecessary memset of s3c24xx_spi Memory for this struct is allocated by spi_alloc_master() using kzalloc() so it doesn't need to be set to 0 one more time. Signed-off-by: Alexey Klimov Reviewed-by: Daniel Kurtz Signed-off-by: Mark Brown drivers/spi/spi-s3c24xx.c | 1 - 1 file changed, 1 deletion(-) commit 65598c13fd66c3b5eac16d5b8eacc704aa17ce40 Author: Andrew Gabbasov Date: Tue Jun 30 10:48:37 2015 -0500 spi: Fix per-page mapping of unaligned vmalloc-ed buffer spi_map_buf() processes mapping of vmalloc-ed buffers in a special way, making mapping of every page separately. However, if the buffer is not aligned to page boundary (e.g. sub-array in a vmalloc-ed array), it fills the scatter table with page-size unaligned pieces, that cross page boundaries. This is incorrect and can, for example, cause memory corruption and various crashes when working with ubifs on spi-nor chips (though those drivers are themselves buggy in that they should be providing DMAable memory to the SPI framework). Fix this by using proper scatter table size and intra-page buffer lengths, so that the whole buffer splits into separate scatter table entries on page boundaries. Signed-off-by: Andrew Gabbasov Signed-off-by: Mark Brown drivers/spi/spi.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 83c09290adfb025d9a109d9c3c2956c81bcb241b Author: Bard Liao Date: Mon Jun 29 14:20:50 2015 +0800 ASoC: rt5645: move RT5645 muxes to rt5645_specific_dapm_widgets This is a similar patch to "move RT5650 muxes to rt5650_specific_ dapm_widgets" patch. The purpose is to silence the "has no paths" warnings. Signed-off-by: Bard Liao Signed-off-by: Oder Chiou Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) commit 93e3a9e9993ef018522b7005d97d8124b7e73385 Author: Sifan Naeem Date: Thu Jun 18 13:27:12 2015 +0100 spi: img-spfi: check for max speed supported by the spfi block Maximum speed supported by spfi is limited to 1/4 of the spfi clock. But in some SoCs the maximum speed supported by the spfi block can be limited to less than 1/4 of the spfi clock. In such cases we have to define the limit in the device tree so that the driver can pick it up. Signed-off-by: Sifan Naeem Signed-off-by: Mark Brown Documentation/devicetree/bindings/spi/spi-img-spfi.txt | 1 + drivers/spi/spi-img-spfi.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) commit 6702dfcc571d962df499f7466f54e07d044e6cd1 Author: Sergey Kiselev Date: Fri Jun 5 11:55:27 2015 -0700 ASoC: wm8731: initialize the hardware when loading the codec driver This patch moves the requesting supplies, hardware reset and initialization from wm8731_probe to wm8731_i2c_probe and wm8731_spi_probe. So that the codec hardware is initialized when loading the codec driver, and not when loading the machine driver. This avoids unnecesary hardware resets and re-initializations when re-loading the machine driver. Signed-off-by: Sergey Kiselev Signed-off-by: Mark Brown sound/soc/codecs/wm8731.c | 74 +++++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 32 deletions(-) commit e22579713ae1384a3dff545369cebe42b01370fa Author: Arnaud Pouliquen Date: Fri Jun 5 10:19:06 2015 +0200 ASoC: simple card: set cpu-dai sysclk with mclk-fs Allows to request a specific mclk frequency per cpu_dai. To support some codecs with mclk provided by the cpu_dai, the mclk rate must be set depending on frame rate. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown sound/soc/generic/simple-card.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 09da55dc84782b9b3fd8291719460da2d13bd27c Author: Daniel Vetter Date: Tue Jul 7 11:44:32 2015 +0200 drm/i915: Inline SUPPORTS_DIGITAL_OUTPUTS After the register save/restore code is gone there's just one user left and it just obfuscates that one. Remove it. Cc: Ville Syrjälä Suggested-by: Ville Syrjälä Signed-off-by: Daniel Vetter Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_display.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) commit 6adfb1ef106bfe4b5ecb8bd75c4d037741d28a48 Author: Daniel Vetter Date: Tue Jul 7 09:10:40 2015 +0200 drm/i915: s/mdelay/msleep/ Burning cpu cycles isn't awesome, so use sleeps instead. Signed-off-by: Daniel Vetter Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_pm.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) commit 3fec3d2f0a54d7c57c386c430bee2d6e5425ebfb Author: Daniel Vetter Date: Tue Jul 7 09:10:07 2015 +0200 drm/i915: Ditch SUPPORTS_INTEGRATED_HDMI|DP and use IS_G4X instead Since that's really what we want to test for. Note remove the gen5 case doesn't change anything: In intel_setup_outputs ilk is handled already in the HAS_PCH_SPLIT case, and the register save/restore code touches registers which simply doesn't exist anymore at all. v2: Drop UMS parts. v3: Update commit message to reflect that the reg save/restore code is gone (Ville). Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 -- drivers/gpu/drm/i915/intel_display.c | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) commit 9dc24a2d91ce6587672f72c99c2f7bf4ef56f7ce Author: Daniel Thompson Date: Wed Jun 10 22:09:00 2015 +0200 ARM: dts: stm32f429: Adopt STM32F4 clock driver New bindings and driver have been created for STM32F42xxx series parts. This patch integrates these changes. Note: Earlier device tree blobs (those without st,stm32f42xxx compatibles for the rcc) could still be used to boot basic systems. Such systems rely on the bootloader to configure the clock gates for vital periperhals. Signed-off-by: Daniel Thompson Reviewed-by: Maxime Coquelin Signed-off-by: Maxime Coquelin arch/arm/boot/dts/stm32f429-disco.dts | 4 ++ arch/arm/boot/dts/stm32f429.dtsi | 79 +++++++++++------------------------ 2 files changed, 28 insertions(+), 55 deletions(-) commit 0333a209cbf600e980fc55c24878a56f25f48b65 Author: Andy Lutomirski Date: Fri Jul 3 12:44:34 2015 -0700 x86/irq, context_tracking: Document how IRQ context tracking works and add an RCU assertion Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/e8bdc4ed0193fb2fd130f3d6b7b8023e2ec1ab62.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/irq.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 06a7b36c7bd932e60997bedbae32b3d8e6722281 Author: Andy Lutomirski Date: Fri Jul 3 12:44:33 2015 -0700 x86/entry: Remove SCHEDULE_USER and asm/context-tracking.h SCHEDULE_USER is no longer used, and asm/context-tracking.h contained nothing else. Remove the header entirely. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/854e9b45f69af20e26c47099eb236321563ebcee.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 1 - arch/x86/include/asm/context_tracking.h | 10 ---------- 2 files changed, 11 deletions(-) commit 8c84014f3bbb112d07e73f30a10ac8a3a72f8649 Author: Andy Lutomirski Date: Fri Jul 3 12:44:32 2015 -0700 x86/entry: Remove exception_enter() from most trap handlers On 64-bit kernels, we don't need it any more: we handle context tracking directly on entry from user mode and exit to user mode. On 32-bit kernels, we don't support context tracking at all, so these callbacks had no effect. Note: this doesn't change do_page_fault(). Before we do that, we need to make sure that there is no code that can page fault from kernel mode with CONTEXT_USER. The 32-bit fast system call stack argument code is the only offender I'm aware of right now. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/ae22f4dfebd799c916574089964592be218151f9.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/traps.h | 4 +- arch/x86/kernel/cpu/mcheck/mce.c | 5 +-- arch/x86/kernel/cpu/mcheck/p5.c | 5 +-- arch/x86/kernel/cpu/mcheck/winchip.c | 4 +- arch/x86/kernel/traps.c | 78 +++++++++--------------------------- 5 files changed, 27 insertions(+), 69 deletions(-) commit 02bc7768fe447ae305e924b931fa629073a4a1b9 Author: Andy Lutomirski Date: Fri Jul 3 12:44:31 2015 -0700 x86/asm/entry/64: Migrate error and IRQ exit work to C and remove old assembly code Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/60e90901eee611e59e958bfdbbe39969b4f88fe5.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 64 +++++++++++----------------------------- arch/x86/entry/entry_64_compat.S | 5 ++++ 2 files changed, 23 insertions(+), 46 deletions(-) commit a586f98e9767fb0dfdb989002866b4024f00ce08 Author: Andy Lutomirski Date: Fri Jul 3 12:44:30 2015 -0700 x86/asm/entry/64: Simplify IRQ stack pt_regs handling There's no need for both RSI and RDI to point to the original stack. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/3a0481f809dd340c7d3f54ce3fd6d66ef2a578cd.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit ff467594f2a4be01a0fa5e9ffc223fa930d232dd Author: Andy Lutomirski Date: Fri Jul 3 12:44:29 2015 -0700 x86/asm/entry/64: Save all regs on interrupt entry To prepare for the big rewrite of the error and interrupt exit paths, we will need pt_regs completely filled in. It's already completely filled in when error_exit runs, so rearrange interrupt handling to match it. This will slow down interrupt handling very slightly (eight instructions), but the simplification it enables will be more than worth it. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/d8a766a7f558b30e6e01352854628a2d9943460c.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/calling.h | 3 --- arch/x86/entry/entry_64.S | 29 +++++++++-------------------- 2 files changed, 9 insertions(+), 23 deletions(-) commit 29ea1b258b98a862e59d72556714b75051ae93fb Author: Andy Lutomirski Date: Fri Jul 3 12:44:28 2015 -0700 x86/entry/64: Migrate 64-bit and compat syscalls to the new exit handlers and remove old assembly code These need to be migrated together, as the compat case used to jump into the middle of the 64-bit exit code. Remove the old assembly code. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/d4d1d70de08ac3640badf50048a9e8f18fe2497f.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 69 +++++----------------------------------- arch/x86/entry/entry_64_compat.S | 6 ++-- 2 files changed, 11 insertions(+), 64 deletions(-) commit cb6f64ed5a04036eef07e70b57dd5dd78f2fbcef Author: Andy Lutomirski Date: Fri Jul 3 12:44:27 2015 -0700 x86/entry/64: Really create an error-entry-from-usermode code path In 539f51136500 ("x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code"), I arranged the code slightly wrong -- IRET faults would skip the code path that was intended to execute on all error entries from user mode. Fix it up. While we're at it, make all the labels in error_entry local. This does not fix a bug, but we'll need it, and it slightly shrinks the code. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/91e17891e49fa3d61357eadc451529ad48143ee1.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) commit c5c46f59e4e7c1ab244b8d38f2b61d317df90bba Author: Andy Lutomirski Date: Fri Jul 3 12:44:26 2015 -0700 x86/entry: Add new, comprehensible entry and exit handlers written in C The current x86 entry and exit code, written in a mixture of assembly and C code, is incomprehensible due to being open-coded in a lot of places without coherent documentation. It appears to work primary by luck and duct tape: i.e. obvious runtime failures were fixed on-demand, without re-thinking the design. Due to those reasons our confidence level in that code is low, and it is very difficult to incrementally improve. Add new code written in C, in preparation for simply deleting the old entry code. prepare_exit_to_usermode() is a new function that will handle all slow path exits to user mode. It is called with IRQs disabled and it leaves us in a state in which it is safe to immediately return to user mode. IRQs must not be re-enabled at any point after prepare_exit_to_usermode() returns and user mode is actually entered. (We can, of course, fail to enter user mode and treat that failure as a fresh entry to kernel mode.) All callers of do_notify_resume() will be migrated to call prepare_exit_to_usermode() instead; prepare_exit_to_usermode() needs to do everything that do_notify_resume() does today, but it also takes care of scheduling and context tracking. Unlike do_notify_resume(), it does not need to be called in a loop. syscall_return_slowpath() is exactly what it sounds like: it will be called on any syscall exit slow path. It will replace syscall_trace_leave() and it calls prepare_exit_to_usermode() on the way out. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/c57c8b87661a4152801d7d3786eac2d1a2f209dd.1435952415.git.luto@kernel.org [ Improved the changelog a bit. ] Signed-off-by: Ingo Molnar arch/x86/entry/common.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) commit feed36cde0a10adb957445a37e48f957f30b2273 Author: Andy Lutomirski Date: Fri Jul 3 12:44:25 2015 -0700 x86/entry: Add enter_from_user_mode() and use it in syscalls Changing the x86 context tracking hooks is dangerous because there are no good checks that we track our context correctly. Add a helper to check that we're actually in CONTEXT_USER when we enter from user mode and wire it up for syscall entries. Subsequent patches will wire this up for all non-NMI entries as well. NMIs are their own special beast and cannot currently switch overall context tracking state. Instead, they have their own special RCU hooks. This is a tiny speedup if !CONFIG_CONTEXT_TRACKING (removes a branch) and a tiny slowdown if CONFIG_CONTEXT_TRACING (adds a layer of indirection). Eventually, we should fix up the core context tracking code to supply a function that does what we want (and can be much simpler than user_exit), which will enable us to get rid of the extra call. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/853b42420066ec3fb856779cdc223a6dcb5d355b.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/common.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 02fdcd5eac9d653d1addbd69b0c58d73650e1c00 Author: Andy Lutomirski Date: Fri Jul 3 12:44:24 2015 -0700 x86/traps, context_tracking: Assert that we're in CONTEXT_KERNEL in exception entries Other than the super-atomic exception entries, all exception entries are supposed to switch our context tracking state to CONTEXT_KERNEL. Assert that they do. These assertions appear trivial at this point, as exception_enter() is the function responsible for switching context, but I'm planning on reworking x86's exception context tracking, and these assertions will help make sure that all of this code keeps working. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/20fa1ee2d943233a184aaf96ff75394d3b34dfba.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/traps.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 1f484aa6904697f390027c12fba130fa94b20831 Author: Andy Lutomirski Date: Fri Jul 3 12:44:23 2015 -0700 x86/entry: Move C entry and exit code to arch/x86/entry/common.c The entry and exit C helpers were confusingly scattered between ptrace.c and signal.c, even though they aren't specific to ptrace or signal handling. Move them together in a new file. This change just moves code around. It doesn't change anything. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/324d686821266544d8572423cc281f961da445f4.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/Makefile | 1 + arch/x86/entry/common.c | 253 ++++++++++++++++++++++++++++++++++++++++++ arch/x86/include/asm/signal.h | 1 + arch/x86/kernel/ptrace.c | 202 +-------------------------------- arch/x86/kernel/signal.c | 28 +---- 5 files changed, 257 insertions(+), 228 deletions(-) commit e727c7d7a11e109849582e9165d54b254eb181d7 Author: Andy Lutomirski Date: Fri Jul 3 12:44:22 2015 -0700 notifiers, RCU: Assert that RCU is watching in notify_die() Low-level arch entries often call notify_die(), and it's easy for arch code to fail to exit an RCU quiescent state first. Assert that we're not quiescent in notify_die(). Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Paul E. McKenney Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/1f5fe6c23d5b432a23267102f2d72b787d80fdd8.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar kernel/notifier.c | 2 ++ 1 file changed, 2 insertions(+) commit f9281648ecd5081803bb2da84b9ccb0cf48436cd Author: Andy Lutomirski Date: Fri Jul 3 12:44:21 2015 -0700 context_tracking: Add ct_state() and CT_WARN_ON() This will let us sprinkle sanity checks around the kernel without making too much of a mess. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/5da41fb2ceb29eac671f427c67040401ba2a1fa0.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar include/linux/context_tracking.h | 15 +++++++++++++++ include/linux/context_tracking_state.h | 1 + 2 files changed, 16 insertions(+) commit ccaee5f851470dec6894a6835b6fadffc2bb7514 Author: Ingo Molnar Date: Fri Jul 3 12:44:20 2015 -0700 um: Fix do_signal() prototype Once x86 exports its do_signal(), the prototypes will clash. Fix the clash and also improve the code a bit: remove the unnecessary kern_do_signal() indirection. This allows interrupt_end() to share the 'regs' parameter calculation. Also remove the unused return code to match x86. Minimally build and boot tested. Signed-off-by: Ingo Molnar Signed-off-by: Andy Lutomirski Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Richard Weinberger Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/67c57eac09a589bac3c6c5ff22f9623ec55a184a.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/um/include/shared/kern_util.h | 3 ++- arch/um/kernel/process.c | 6 ++++-- arch/um/kernel/signal.c | 8 +------- arch/um/kernel/tlb.c | 2 +- arch/um/kernel/trap.c | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) commit 5e99cb7c35ca0580da8e892f91c655d35ecf8798 Author: Andy Lutomirski Date: Fri Jul 3 12:44:19 2015 -0700 x86/entry/64/compat: Fix bad fast syscall arg failure path If user code does SYSCALL32 or SYSENTER without a valid stack, then our attempt to determine the syscall args will result in a failed uaccess fault. Previously, we would try to recover by jumping to the syscall exit code, but we'd run the syscall exit work even though we never made it to the syscall entry work. Clean it up by treating the failure path as a non-syscall entry and exit pair. This fixes strace's output when running the syscall_arg_fault test. Without this fix, strace would get out of sync and would fail to associate syscall entries with syscall exits. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/903010762c07a3d67df914fea2da84b52b0f8f1d.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/entry_64.S | 2 +- arch/x86/entry/entry_64_compat.S | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) commit 5e5c684a2c78b98dcba3d6fce56773a375f63980 Author: Andy Lutomirski Date: Fri Jul 3 12:44:18 2015 -0700 x86/entry, selftests/x86: Add a test for 32-bit fast syscall arg faults This test passes on 4.0 and fails on some newer kernels. Fortunately, the failure is likely not a big deal. This test will make sure that we don't break it further (e.g. OOPSing) as we clean up the entry code and that we eventually fix the regression. There's arguably no need to preserve the old ABI here -- anything that makes it into a fast (vDSO) syscall with a bad stack is about to crash no matter what we do. Signed-off-by: Andy Lutomirski Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Denys Vlasenko Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: paulmck@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/9cfcc51005168cb1b06b31991931214d770fc59a.1435952415.git.luto@kernel.org Signed-off-by: Ingo Molnar tools/testing/selftests/x86/Makefile | 2 +- tools/testing/selftests/x86/syscall_arg_fault.c | 130 ++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 1 deletion(-) commit 16ea61fc56144f1860f9edd5a219666ade01d3b8 Author: Eddie Huang Date: Mon Jun 22 21:19:37 2015 +0800 arm64: dts: mt8173-evb: Add PMIC support The MT8173 eval board contains a MT6397 PMIC. This adds the corresponding device node to the dts file. Signed-off-by: Henry Chen Signed-off-by: Eddie Huang Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 197 ++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) commit 79063a7c0239419d5f6bee63228f66256fdc0fc4 Author: Kees Cook Date: Mon Jul 6 16:06:20 2015 -0700 x86/boot: Add hex output for debugging This is useful for reporting various addresses or other values while debugging early boot, for example, the recent kernel image size vs kernel run size. For example, when CONFIG_X86_VERBOSE_BOOTUP is set, this is now visible at boot time: early console in setup code early console in decompress_kernel input_data: 0x0000000001e1526e input_len: 0x0000000000732236 output: 0x0000000001000000 output_len: 0x0000000001535640 run_size: 0x00000000021fb000 KASLR using RDTSC... Signed-off-by: Kees Cook Cc: Andrey Ryabinin Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Jan Beulich Cc: Jiri Kosina Cc: Joe Perches Cc: Josh Triplett Cc: Junjie Mao Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vivek Goyal Cc: Yinghai Lu Link: http://lkml.kernel.org/r/20150706230620.GA17501@www.outflux.net Signed-off-by: Ingo Molnar arch/x86/boot/compressed/misc.c | 24 ++++++++++++++++++++++++ arch/x86/boot/compressed/misc.h | 11 +++++++++++ 2 files changed, 35 insertions(+) commit ec9f932ed41622d120de52a5b525e4d77b9ef17e Author: Maarten Lankhorst Date: Wed Jun 24 08:59:25 2015 +0200 drm/atomic: Cleanup on error properly in the atomic ioctl. It's probably allowed to leave old_fb set to garbage when unlocking, but to prevent undefined behavior unset it just in case. Also crtc_state->event could be NULL on memory allocation failure, in which case event_space is increased for no reason. Note: Contains some general simplification of the cleanup code too. Signed-off-by: Maarten Lankhorst [danvet: Add note about the other changes in here. And fix long line while at it.] Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 64 +++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 34 deletions(-) commit 399595f248cb25dccb6044b53c47c44c174dc23d Author: Byungchul Park Date: Mon Jul 6 21:51:02 2015 +0900 sched/fair: Fix a comment reflecting function name change update_cfs_rq_load_contribution() was changed to __update_cfs_rq_tg_load_contrib() - sync up the commit in calc_tg_weight() too. Signed-off-by: Byungchul Park Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1436187062-19658-1-git-send-email-byungchul.park@lge.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8e2b0bf397279878babcb39b021edcafe7c945eb Author: Boqun Feng Date: Thu Jul 2 22:25:52 2015 +0800 sched/fair: Clean up the __sched_period() code Since commit: 4bf0b77158 ("sched: remove do_div() from __sched_slice()") ... the logic of __sched_period() can be implemented as a single if-else without any local variables, so this patch cleans it up with an if-else statement, which expresses the function's logic straightforwardly. Signed-off-by: Boqun Feng Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Srikar Dronamraju Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1435847152-29543-1-git-send-email-boqun.feng@gmail.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) commit 44dcb04f0ea8eaac3b9c9d3172416efc5a950214 Author: Srikar Dronamraju Date: Tue Jun 16 17:26:00 2015 +0530 sched/numa: Consider 'imbalance_pct' when comparing loads in numa_has_capacity() This is consistent with all other load balancing instances where we absorb unfairness upto env->imbalance_pct. Absorbing unfairness upto env->imbalance_pct allows to pull and retain task to their preferred nodes. Signed-off-by: Srikar Dronamraju Signed-off-by: Peter Zijlstra (Intel) Acked-by: Rik van Riel Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434455762-30857-3-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 2a1ed24ce94036d00a7c5d5e99a77a80f0aa556a Author: Srikar Dronamraju Date: Tue Jun 16 17:25:59 2015 +0530 sched/numa: Prefer NUMA hotness over cache hotness The current load balancer may not try to prevent a task from moving out of a preferred node to a less preferred node. The reason for this being: - Since sched features NUMA and NUMA_RESIST_LOWER are disabled by default, migrate_degrades_locality() always returns false. - Even if NUMA_RESIST_LOWER were to be enabled, if its cache hot, migrate_degrades_locality() never gets called. The above behaviour can mean that tasks can move out of their preferred node but they may be eventually be brought back to their preferred node by numa balancer (due to higher numa faults). To avoid the above, this commit merges migrate_degrades_locality() and migrate_improves_locality(). It also replaces 3 sched features NUMA, NUMA_FAVOUR_HIGHER and NUMA_RESIST_LOWER by a single sched feature NUMA. Signed-off-by: Srikar Dronamraju Signed-off-by: Peter Zijlstra (Intel) Acked-by: Rik van Riel Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Mike Galbraith Link: http://lkml.kernel.org/r/1434455762-30857-2-git-send-email-srikar@linux.vnet.ibm.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 89 ++++++++++++++----------------------------------- kernel/sched/features.h | 18 +++------- 2 files changed, 30 insertions(+), 77 deletions(-) commit 6dfec8d9493f48a42896386b41ec1a4644331b0b Author: bsegall@google.com Date: Tue Jun 16 12:18:21 2015 -0700 sched/numa: Check sched_feat(NUMA) in migrate_improves_locality() migrate_improves_locality checked sched_feat(NUMA_FAVOUR_HIGHER) but not sched_feat(NUMA), so disabling just the NUMA feature would leave it working off of old data. Signed-off-by: Ben Segall Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mel Gorman Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/xm26si9rtqbm.fsf@sword-of-the-dawn.mtv.corp.google.com Signed-off-by: Ingo Molnar kernel/sched/fair.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3cb43cc0b408c4672ba94fe28406a90a94b1edfe Author: Daniel Vetter Date: Tue Jul 7 08:43:03 2015 +0200 drm: Update plane->fb also for page_flip The legacy page_flip driver entry point is the only one left which requires drivers to update plane->fb themselves. All the other entry hooks will patch things up for the driver as needed since no one seems to reliable get this right, see e.g. drm_mode_set_config_internal or the plane->fb/old_fb handling in drm_mode_atomic_ioctl. Therefore unify things, which allows us to ditch a TODO from drm_atomic_helper_page_flip. This should also help the atomic transition in i915 since we keep a bit of legacy cruft only around because of this special behaviour in ->page_flip. Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic_helper.c | 4 ---- drivers/gpu/drm/drm_crtc.c | 8 +------- 2 files changed, 1 insertion(+), 11 deletions(-) commit 7618d0359c167d89d7e904a00487be4945c10a65 Author: Dave Jiang Date: Wed Jun 24 10:49:59 2015 -0700 dmaengine: ioatdma: Set non RAID channels to be private capable This allows claiming of non-RAID channels as a private channel. This prevents breakage of MDRAID using the IOATDMA channels via async_tx but also allows agents such as NTB to claim channels exclusively for its usages. Signed-off-by: Dave Jiang Signed-off-by: Vinod Koul drivers/dma/ioat/dma_v3.c | 3 +++ 1 file changed, 3 insertions(+) commit 4483320e241c5f6b63caa912343eb73c8b1dfd18 Author: Maninder Singh Date: Fri Jun 26 16:04:48 2015 +0530 dmaengine: Use Pointer xt after NULL check. Removing static analysis error:- Possible null pointer dereference: xt Because currently xt is dereferenced before NULL check, Thus Use it after NULL Check. Signed-off-by: Maninder Singh Reviewed-by: Vaneet Narang Acked-by: Nicolas Ferre Signed-off-by: Vinod Koul drivers/dma/at_hdmac.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fce9a74ba46fb545ad81cf244f3a1af4a877606c Author: Fabio Estevam Date: Sat Jun 20 18:43:44 2015 -0300 dmaengine: imx-dma: Check for clk_prepare_enable() error clk_prepare_enable() may fail, so we should better check its return value and propagate it in the case of error. While at it, change the label 'err' to a more descriptive naming. Signed-off-by: Fabio Estevam Signed-off-by: Vinod Koul drivers/dma/imx-dma.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) commit 6fdb302c1d996d2e0c1c527aa6f54a04ee80a0d8 Author: Daniel Machon Date: Mon Jul 6 19:48:04 2015 +0200 wilc1000: host_interface.c: global variables do not need to be explicitly initialized to 0 or NULL. Fixed explicit initialization of global pointer variable. GCC takes care of this implicitly. Signed-off-by: Daniel Machon Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 137b9938849901f8e402da15736125b0a0bd2477 Author: Prasanna Karthik Date: Mon Jun 29 12:43:32 2015 +0000 staging:wilc1000: code cleanup Fix reported by coccinelle Removed {} for single statement if block Signed-off-by: Prasanna Karthik Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/fifo_buffer.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit b3a02832e47629c08b27589688c788d6af87e738 Author: Luis de Bethencourt Date: Fri Jun 26 17:40:25 2015 +0200 staging: wilc1000: switch printks to vsprintf IPv4 extension Switch printks with IP addresses to use vsprintf extension %pI4. Suggested-by: Joe Perches Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 83cc9be5ebef180efb7df74c0518149a749e7c42 Author: Luis de Bethencourt Date: Fri Jun 26 16:47:28 2015 +0200 staging: wilc1000: fix typos in PRINT_ERR() Fix typo "packe" to "packet". Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 03b2d5e75088564c35297bd6192d1a5b504e7298 Author: Luis de Bethencourt Date: Fri Jun 26 16:45:58 2015 +0200 staging: wilc1000: remove whitespaces before quoted newlines Fix all checkpatch.pl warnings: WARNING: unnecessary whitespace before a quoted newline Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 84 +++++++++++++++---------------- 1 file changed, 42 insertions(+), 42 deletions(-) commit 78c87591d4d50e0cb3e670a909e63db92409c4c5 Author: Luis de Bethencourt Date: Fri Jun 26 16:45:14 2015 +0200 staging: wilc1000: add blank lines after declarations Fix all checkpatch.pl warnings: WARNING: Missing a blank line after declarations Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 2b9d5b483784c588b1ecb658cac83cd8100a74aa Author: Luis de Bethencourt Date: Fri Jun 26 16:44:24 2015 +0200 staging: wilc1000: remove unnecessary braces Removing all checkpatch.pl warnings: WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 276 ++++++++++-------------------- 1 file changed, 92 insertions(+), 184 deletions(-) commit 70e59d92256221640b8122ef258e886b1b1aa33d Author: Sunghoon Cho Date: Fri Jun 26 15:48:16 2015 +0900 staging: wilc1000: remove the warnings on the line over 80 characters This patch removes the warnings reported by checkpatch.pl on the line over 80 characters. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 36901b690d5d83e0330a33bd6c1771c21c46c450 Author: Sunghoon Cho Date: Fri Jun 26 15:48:15 2015 +0900 staging: wilc1000: add a blank line after struct declaration This patch adds a blank line right after a struct declaration. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 + 1 file changed, 1 insertion(+) commit 69176e1cbd62d1660c082fc2dfc3ae7aece525ff Author: Sunghoon Cho Date: Fri Jun 26 15:48:14 2015 +0900 staging: wilc1000: remove the warnings on the prohibited spaces This patch removes the warnings reported by checkpatch.pl regarding prohibited spaces between function name and open parenthesis. Signed-off-by: Sunghoon Cho Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9295e2d7341cb66ab8bbca029eabbe85b38bc376 Author: Chaehyun Lim Date: Tue Jun 23 09:17:47 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove blank lines Remove multiple blank lines. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 19 ------------------- 1 file changed, 19 deletions(-) commit 70fb5aa8a5f67275b5c2ebe23190777213d010df Author: Chaehyun Lim Date: Tue Jun 23 09:17:46 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove unused variable Remove variable that is defined but never used. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 1 - 1 file changed, 1 deletion(-) commit 5927139ab52ef90232bd2578836ce36e5798920d Author: Chaehyun Lim Date: Tue Jun 23 09:17:45 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove unused codes Remove if statement that has no any codes. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 3 --- 1 file changed, 3 deletions(-) commit 66f1a77ec182847b3334edeb37eb4d10b2e8043e Author: Chaehyun Lim Date: Tue Jun 23 09:17:44 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove commented codes Remove commented codes. Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 21 --------------------- 1 file changed, 21 deletions(-) commit bf903c1e0784f668bcb325494a38cc359c1b5de6 Author: Sunil Shahu Date: Mon Jun 22 19:23:01 2015 +0530 staging: wilc1000: host_interface: add spaces around '=' Fix coding style error by placing spaces around '=' as suggested by checkpatch.pl script. Signed-off-by: Sunil Shahu Reviewed-by: Luis de Bethencourt Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2d33ff126bd6f4597189af7348aff9721d4b8080 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:06:01 2015 +0000 staging: wilc1000: use BIT macro This patch addresses the checkpatch warning advising the usage of the BIT macro for Bit shift operation. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan_if.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ba8f5e6642958c73cd558a2d9503720e35951b06 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:05:42 2015 +0000 staging: wilc1000: remove unused variable msg_len This patch removes a ununsed variable msg_len and its associated code. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan_cfg.c | 6 ------ 1 file changed, 6 deletions(-) commit 690910c0cf350a96590c6795f2d0f26e5f8ec59f Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:05:22 2015 +0000 staging: wilc1000: remove ununsed variable & associated code This patch removes the ununsed variable 'priv' at multiple instances and all its associated code where its assigned a value. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 12 ------------ 1 file changed, 12 deletions(-) commit 810532227a431d5f13e732a37119a94d73819949 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 13:13:58 2015 +0000 staging: wilc1000: remove ununsed variable This patch removes ununsed variable 'len' Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 369f190a70d1972eed3888bd255dca711c8f58f3 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:04:39 2015 +0000 staging: wilc1000: remove redundant assignment of variable This patch the removes the redundant assignement of the variable ret as its being overwritren before being used anywhere. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 773116ea0b78c0aa8315bb64690d6a82c3f44b64 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:04:20 2015 +0000 staging: wilc1000: remove unused variable This patch removes a unused variable timeout and the associated code. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_wlan.c | 2 -- 1 file changed, 2 deletions(-) commit 53e1096fea95f196377baac5e005b2de8c730631 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:03:53 2015 +0000 staging: wilc1000: remove ununsed variable & corresponding lines This patch removes a couple of ununsed variable.The lines in which these variables are assigned are also removed as they are not necessary. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_mon.c | 4 ---- 1 file changed, 4 deletions(-) commit 04f2a50d41950ba60a56d2f884be05893ac61b6b Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:03:27 2015 +0000 staging: wilc1000: remove ununsed if..else.. code blocks This patch removes ununsed if..else... code blocks. Its actually some dead code. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 22 ---------------------- 1 file changed, 22 deletions(-) commit ab6ebe3a4b1ff9e37c2b7d12da7f985125dfab55 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:03:06 2015 +0000 staging: wilc1000: remove redundant initialization of variable This patch removes the redundant initialization of the variable 'st' as it is reassigned a new value before its being used anywhere else. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6608a38c66dfc0b14e77b92cbbf2457d18c42cd7 Author: Hari Prasath Gujulan Elango Date: Mon Jun 22 07:02:46 2015 +0000 staging: wilc1000: remove ununsed variable and associated line This patch removes a unused variable 'u16RespLen' that is assigned a value that is never used. The line that does the assignment is also removed. Signed-off-by: Hari Prasath Gujulan Elango Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/coreconfigurator.c | 4 ---- 1 file changed, 4 deletions(-) commit decc286c7dac701fc545d4a23cb2f9cf19a09a2c Author: Chaehyun Lim Date: Mon Jun 22 13:08:15 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: move statement after declarations Fix checkpatch warning found by checkpatch.pl WARNING: Missing a blank line after declarations Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit df493fe8fa7ed73d73e08c768ed057b0e61b813d Author: Chaehyun Lim Date: Mon Jun 22 13:08:14 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: Insert blank line after declarations Fix checkpatch warning found by checkpatch.pl WARNING: Missing a blank line after declarations Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 3 +++ 1 file changed, 3 insertions(+) commit 55229a56bb9e6f7f9dce36099b1045deb73409f1 Author: Chaehyun Lim Date: Mon Jun 22 13:08:13 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove braces for single statement block Fix checkpatch warning found by checkpatch.pl WARNING: braces {} are not necessary for single statement blocks Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit e8b369ea2bf80b5813ee760de4454deb2c10ee87 Author: Chaehyun Lim Date: Mon Jun 22 13:08:12 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove prohibited space Fix checkpatch warning found by checkpatch.pl WARNING: space prohibited between function name and open parenthesis '(' Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a241a78952af31fcf4d33db2308fefb27c91703f Author: Chaehyun Lim Date: Mon Jun 22 13:08:11 2015 +0900 staging: wilc1000: wilc_wfi_netdevice.c: remove prohibited space before semicolon Fix checkpatch warning found by checkpatch.pl WARNING: space prohibited before semicolon Signed-off-by: Chaehyun Lim Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_netdevice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ca1b55a49f3b8e139fb4567b966f03a734e744f Author: Vaishali Thakkar Date: Sun Jun 21 10:56:21 2015 +0530 Staging: wilc1000: 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. The Coccinelle semantic patch that makes this change is as follows: // @eth_zero_addr@ expression e; @@ -memset(e,0x00,ETH_ALEN); +eth_zero_addr(e); // Signed-off-by: Vaishali Thakkar Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/linux_mon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e26bb71da9cf3c54cd8b1c1341a9c9b89e704ca6 Author: Sudip Mukherjee Date: Tue Jun 30 13:51:51 2015 +0530 staging: wilc1000: fix build failure commit 80279fb7ba5b ("cfg80211: properly send NL80211_ATTR_DISCONNECTED_BY_AP in disconnect") has changed the api of cfg80211_disconnected() and caused a build failure. Add the extra argument as false since it appears from the code that the disconnection is not locally generated. And incase of doubt we can use false as that is the default behaviour. Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit adb11a40a3ac5225ce3746a62c2a7ebde42ec04e Author: Georgi Djakov Date: Mon Jul 6 16:51:30 2015 +0300 clk: qcom: Constify the parent names arrays Make const both the array and the strings, so they can be moved to .rodata section. Signed-off-by: Georgi Djakov Signed-off-by: Stephen Boyd drivers/clk/qcom/gcc-apq8084.c | 12 ++++++------ drivers/clk/qcom/gcc-ipq806x.c | 10 +++++----- drivers/clk/qcom/gcc-msm8660.c | 8 ++++---- drivers/clk/qcom/gcc-msm8916.c | 24 ++++++++++++------------ drivers/clk/qcom/gcc-msm8960.c | 12 ++++++------ drivers/clk/qcom/gcc-msm8974.c | 4 ++-- drivers/clk/qcom/lcc-ipq806x.c | 6 +++--- drivers/clk/qcom/lcc-msm8960.c | 8 ++++---- drivers/clk/qcom/mmcc-apq8084.c | 20 ++++++++++---------- drivers/clk/qcom/mmcc-msm8960.c | 14 +++++++------- drivers/clk/qcom/mmcc-msm8974.c | 16 ++++++++-------- 11 files changed, 67 insertions(+), 67 deletions(-) commit 78e50c6def9cca448dbb028b57ec92a1589edc07 Author: Matthias Brugger Date: Wed Jun 17 23:28:49 2015 +0200 clk: xgene: Delete duplicated name field X-Gene clocks implement it's name in the clock private struct. This is a duplication of the name field. We can delete the field and rely on the common implementation to retrieve the name. Signed-off-by: Matthias Brugger Signed-off-by: Stephen Boyd drivers/clk/clk-xgene.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) commit bb68a4f1e5ef7f2cebe84c57e465afa68a6ab911 Author: Sergej Sawazki Date: Sun Jun 28 16:24:56 2015 +0200 clk: Rename clk-gpio-gate.c to clk-gpio.c The file clk-gpio-gate.c does not only contain the gate clock, but also the mux clock. Rename the file to clk-gpio.c. Cc: Jyri Sarha Signed-off-by: Sergej Sawazki Signed-off-by: Stephen Boyd drivers/clk/Makefile | 2 +- drivers/clk/clk-gpio-gate.c | 322 -------------------------------------------- drivers/clk/clk-gpio.c | 322 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 323 insertions(+), 323 deletions(-) commit 80eeb1f0f757c790b020d9f425bb0e824973d49c Author: Sergej Sawazki Date: Sun Jun 28 16:24:55 2015 +0200 clk: add gpio controlled clock multiplexer Add a common clock driver for basic gpio controlled clock multiplexers. This driver can be used for devices like 5V41068A or 831721I from IDT or for discrete multiplexer circuits. The 'select' pin selects one of two parent clocks. Cc: Jyri Sarha Signed-off-by: Sergej Sawazki [sboyd@codeaurora.org: Fix error paths to free memory and do it in the correct order] Signed-off-by: Stephen Boyd .../devicetree/bindings/clock/gpio-mux-clock.txt | 19 ++ drivers/clk/clk-gpio-gate.c | 242 +++++++++++++++------ include/linux/clk-provider.h | 17 ++ 3 files changed, 214 insertions(+), 64 deletions(-) commit 281cbb007612814183d79b1f72d0395303fcfb6f Author: Sergej Sawazki Date: Sun Jun 28 16:24:54 2015 +0200 clk: gpio-gate: Stay silent on EPROBE_DEFER Do not output an error message if requesting gpio failes with EPROBE_DEFER. Cc: Jyri Sarha Signed-off-by: Sergej Sawazki Signed-off-by: Stephen Boyd drivers/clk/clk-gpio-gate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit e21b08e2f3e1ebb13d5930bd994cfaada22ed58b Author: Sergej Sawazki Date: Sun Jun 28 16:24:53 2015 +0200 clk: gpio-gate: Include export.h instead of module.h Include export.h for EXPORT_SYMBOL_GPL, no need to include module.h. Cc: Jyri Sarha Signed-off-by: Sergej Sawazki Signed-off-by: Stephen Boyd drivers/clk/clk-gpio-gate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f75073fabd9a85028ee9ff40e7f7cbb3a869678b Merge: d770e55 7b2a463 Author: Stephen Boyd Date: Mon Jul 6 15:54:58 2015 -0700 Merge branch 'clk-fixes' into clk-next * clk-fixes: clk: mediatek: mt8173: Fix enabling of critical clocks drivers: clk: st: Fix mux bit-setting for Cortex A9 clocks drivers: clk: st: Add CLK_GET_RATE_NOCACHE flag to clocks drivers: clk: st: Fix flexgen lock init drivers: clk: st: Fix FSYN channel values drivers: clk: st: Remove unused code clk: qcom: Use parent rate when set rate to pixel RCG clock clk: at91: do not leak resources clk: stm32: Fix out-by-one error path in the index lookup clk: iproc: fix bit manipulation arithmetic clk: iproc: fix memory leak from clock name commit 5891a8d11f79b9a45a7334a63d0fa731875bc308 Author: shengyong Date: Thu Jun 25 02:23:14 2015 +0000 mtd: nandsim: fix double free Do not call free_device() in init_nandsim, the caller - ns_init_module - will take care of that if something goes wrong. Signed-off-by: Sheng Yong Signed-off-by: Brian Norris drivers/mtd/nand/nandsim.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) commit ec7478fa173f65e5ee5fd2ba42c59ca3e700027b Author: shengyong Date: Thu Jun 25 02:23:13 2015 +0000 mtd: nandsim: fix free of NULL pointer If allocating ns->nand_pages_slab fails, do not try to destroy it when cleaning up nandsim resources. Signed-off-by: Sheng Yong Signed-off-by: Brian Norris drivers/mtd/nand/nandsim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3536c97a52db2848d13512878c65affd98fd29db Author: Heiko Stuebner Date: Sun Jul 5 11:00:20 2015 +0200 clk: rockchip: add rk3368 clock controller Describe the clock tree and software resets of the rk3368 ARM64 SoC Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/Makefile | 1 + drivers/clk/rockchip/clk-rk3368.c | 881 ++++++++++++++++++++++++++++++++++++++ drivers/clk/rockchip/clk.h | 16 + 3 files changed, 898 insertions(+) commit 7c8f03d5f2fae4ce625cdf93d03368825846924f Author: Heiko Stuebner Date: Sun Jul 5 11:00:19 2015 +0200 clk: rockchip: add missing include guards Review for the rk3368 turned up that the clock header was missing include guards. This is also true for the already existing clock binding headers, so add them. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd include/dt-bindings/clock/rk3066a-cru.h | 5 +++++ include/dt-bindings/clock/rk3188-cru-common.h | 5 +++++ include/dt-bindings/clock/rk3188-cru.h | 5 +++++ include/dt-bindings/clock/rk3288-cru.h | 5 +++++ 4 files changed, 20 insertions(+) commit d8567e39e4cdc938adde55d1f844bfb8e0a7eb21 Author: Heiko Stuebner Date: Sun Jul 5 11:00:18 2015 +0200 clk: rockchip: add dt-binding header for rk3368 Add the dt-bindings header for the rk3368, that gets shared between the clock controller and the clock references in the dts. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd include/dt-bindings/clock/rk3368-cru.h | 384 +++++++++++++++++++++++++++++++++ 1 file changed, 384 insertions(+) commit e76ea35ae723013392a0f61fcc16026506c0aa7f Author: Heiko Stuebner Date: Sun Jul 5 11:00:17 2015 +0200 dt-bindings: add documentation of rk3668 clock controller Add the devicetree binding for the cru on the rk3368 which quite similar structured as previous clock controllers. Signed-off-by: Heiko Stuebner Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: devicetree@vger.kernel.org Signed-off-by: Stephen Boyd .../bindings/clock/rockchip,rk3368-cru.txt | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) commit 4534b1113e4a4c649caac03f7787fbf4c4595718 Author: Heiko Stuebner Date: Sun Jul 5 11:00:16 2015 +0200 clk: rockchip: define the inverters of rk3066/rk3188 and rk3288 Both soc series' have inverters on the hsadc and camera interface clock paths. So define them using the newly added inverter type. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3188.c | 9 ++++++++- drivers/clk/rockchip/clk-rk3288.c | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) commit 7c494ad0581a31b20d2e8c397e0a28a6ffcabf8a Author: Heiko Stuebner Date: Sun Jul 5 11:00:15 2015 +0200 clk: rockchip: fix issues in the mmc-phase clock The review for the new inverter clock type uncovered some issues (missing headers and name handling) that are also present in the mmc-phase clock type, I got (to much) inspiration from. Fix these there too. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-mmc-phase.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 8a76f443a9ea6f7f72ede9f95fe0ca5b90f09a43 Author: Heiko Stuebner Date: Sun Jul 5 11:00:14 2015 +0200 clk: rockchip: add support for phase inverters Most Rockchip socs have optional phase inverters connected to some clocks that move the clock-phase by 180 degrees. Signed-off-by: Heiko Stuebner [sboyd@codeaurora.org: Dropped lazy part of commit text] Signed-off-by: Stephen Boyd drivers/clk/rockchip/Makefile | 1 + drivers/clk/rockchip/clk-inverter.c | 116 ++++++++++++++++++++++++++++++++++++ drivers/clk/rockchip/clk.c | 7 +++ drivers/clk/rockchip/clk.h | 20 +++++++ 4 files changed, 144 insertions(+) commit 6f085072534363b68c705d54b9dbbed0474ff357 Author: Heiko Stuebner Date: Thu Jun 18 16:18:31 2015 +0200 clk: rockchip: add COMPOSITE_NOGATE_DIVTBL variant A clock branch consisting of a mux and divider with non-standard divider values. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 2d7884a7d0e70f9509881c40eaee3f5a5c201b07 Author: Heiko Stuebner Date: Thu Jun 18 16:18:30 2015 +0200 clk: rockchip: protect register macros against multipart values The macros calculate the correct offset from the id in the parameter. If this parameter does not consist of a single number, the calculation will return wrong registers in the best case or create unaligned accesses in the worst case. So protect the calculations against such values. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 101762976b8d7038934f31ffb4e19fbac9b5e1d4 Author: Heiko Stuebner Date: Thu Jun 18 16:18:29 2015 +0200 clk: rockchip: fix faulty vip parent name on rk3288 The video input processor (vip) was called camera interface (cif) on older socs which seems to have resulted in a copy'n'paste error when creating the rk3288 camera clocks. Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3288.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4791eb61dbe8100ccac59fecfac9d93a15db1447 Author: Heiko Stuebner Date: Thu Jun 18 16:18:28 2015 +0200 clk: rockchip: rk3288: add CLK_SET_RATE_PARENT to sclk_mac The dwmac ethernet controller on the rk3288 supports phys connected via rgmii and rmii. With rgmii phys it is expected that the mac clock is provided externally while with rmii phys the clock can be external but also generated from the plls. In the later case it of course needs be at 50MHz, which gets set from the dwmac_rk driver. As most devices use a rgmii phy it never surfaced so far that the mac clk mux, doesn't go up one lever to the pll clock in the rmii case with internal clock generation, as it is missing the CLK_SET_RATE_PARENT flag, and thus will not set the correct frequency in most cases. Fixes: b9e4ba541607 ("clk: rockchip: add clock controller for rk3288") Cc: stable@vger.kernel.org Signed-off-by: Heiko Stuebner Signed-off-by: Stephen Boyd drivers/clk/rockchip/clk-rk3288.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4e317ce73aecb735f389ab0d42ae3197a55265e4 Author: Al Viro Date: Fri Jun 19 14:27:10 2015 -0400 ufs_inode_get{frag,block}(): get rid of 'phys' argument Just pass NULL as locked_page in case of first block in the indirect chain. Old calling conventions aside, a reason for having 'phys' was that ufs_inode_getfrag() used to be able to do _two_ allocations - indirect block and extending/reallocating a tail. We needed locked_page for the latter (it's a data), but we also needed to figure out that indirect block is metadata. So we used to pass non-NULL locked_page in all cases *and* used NULL phys as indication of being asked to allocate an indirect. With tail unpacking taken into a separate function we don't need those convolutions anymore. Signed-off-by: Al Viro fs/ufs/inode.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) commit 0385f1f9e3e5cb17047474037002500383237f47 Author: Al Viro Date: Fri Jun 19 14:20:21 2015 -0400 ufs_getfrag_block(): tidy up a bit Signed-off-by: Al Viro fs/ufs/inode.c | 48 +++++++++++++++--------------------------------- 1 file changed, 15 insertions(+), 33 deletions(-) commit 5fbfb238f7a0a5c4633438eb5bdfb4810995c76a Author: Al Viro Date: Fri Jun 19 14:10:53 2015 -0400 ufs_inode_getblock(): failure to read an indirect block is -EIO ... and not "write to beginning of the disk", TYVM... Signed-off-by: Al Viro fs/ufs/inode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 4eeff4c9326878ff58ef6fe68d2bf22ef877e5a2 Author: Al Viro Date: Fri Jun 19 14:08:16 2015 -0400 ufs_getfrag_block(): turn following indirects into a loop Signed-off-by: Al Viro fs/ufs/inode.c | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) commit 5336970be09becb2b59ac3812718b2cb80d33347 Author: Al Viro Date: Fri Jun 19 13:53:52 2015 -0400 ufs_inode_getfrag(): pass index instead of 'fragment' same story as with ufs_inode_getblock() Signed-off-by: Al Viro fs/ufs/inode.c | 50 +++++++++++++++++--------------------------------- 1 file changed, 17 insertions(+), 33 deletions(-) commit 0f3c1294bedcc4544c68d6b84699bdaa334b11b8 Author: Al Viro Date: Fri Jun 19 13:40:25 2015 -0400 ufs_inode_getfrag(): split extending the partial blocks off ufs_extend_tail() is handling that now. Signed-off-by: Al Viro fs/ufs/inode.c | 128 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 65 insertions(+), 63 deletions(-) commit 619cfac09134b4de7a4f232cf3636cf43728577d Author: Al Viro Date: Fri Jun 19 01:23:08 2015 -0400 ufs_inode_getblock(): pass indirect block number and full index ... instead of messing with buffer_head. We can bloody well do sb_bread() in there. Signed-off-by: Al Viro fs/ufs/inode.c | 62 +++++++++++++++------------------------------------------- 1 file changed, 16 insertions(+), 46 deletions(-) commit 721435a7679e13f810133dbea769f87ad7bae3a1 Author: Al Viro Date: Fri Jun 19 01:06:21 2015 -0400 ufs_inode_getblock(): pass index instead of 'fragment' The value passed to ufs_inode_getblock() as the 3rd argument had lower bits ignored; the upper bits were shifted down and used and they actually make sense - those are _lower_ bits of index in indirect block (i.e. they form the index within a fragment within an indirect block). Pass those as argument. Upper bits of index (i.e. the number of fragment within indirect block) will join them shortly. Signed-off-by: Al Viro fs/ufs/inode.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit 177848a018cb2cb196feac2990814ac8d7bb3c8e Author: Al Viro Date: Fri Jun 19 00:53:06 2015 -0400 ufs_inode_get{frag,block}(): leave sb_getblk() to caller just return the damn block number Signed-off-by: Al Viro fs/ufs/inode.c | 88 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 33 deletions(-) commit 8d9dcf14367388674f4d792f494e6f1d6536ac95 Author: Al Viro Date: Fri Jun 19 00:32:42 2015 -0400 ufs_getfrag_block(): get rid of macro jungles Signed-off-by: Al Viro fs/ufs/inode.c | 51 ++++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) commit bbb3eb9d3432ce55a620778ecf5670fa7942090e Author: Al Viro Date: Fri Jun 19 00:10:00 2015 -0400 ufs_inode_get{frag,block}(): consolidate success exits These calling conventions are rudiments of pre-2.3 times; they really need to be sanitized. This is the first step; next will be _always_ returning a block number, instead of this "return a pointer to buffer_head, except when we get to the actual data" crap. Signed-off-by: Al Viro fs/ufs/inode.c | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) commit 71dd42846ffb2bd1a90e9ac2c52df0cc2ed92307 Author: Al Viro Date: Thu Jun 4 14:34:43 2015 -0400 ufs: use the branch depth in ufs_getfrag_block() we'd already calculated it... Signed-off-by: Al Viro fs/ufs/inode.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 4b7068c8b178401637ef2fb068d6256c97d23f4a Author: Al Viro Date: Thu Jun 4 14:27:23 2015 -0400 ufs: move calculation of offsets into ufs_getfrag_block() ... and massage ufs_frag_map() to take those instead of fragment number. As it is, we duplicate the damn thing on the write side, open-coded and bloody hard to follow. Signed-off-by: Al Viro fs/ufs/inode.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 5a39c25562aa5eab5a798919855cf41ddeed8b0d Author: Al Viro Date: Thu Jun 18 22:39:46 2015 -0400 ufs_inode_get{frag,block}(): get rid of retries We are holding ->truncate_mutex, so nobody else can alter our block pointers. Rechecks/retries were needed back when we only held BKL there, and had to cope with write_begin/writepage and writepage/truncate races. Can't happen anymore... Signed-off-by: Al Viro fs/ufs/inode.c | 43 ++++++++----------------------------------- 1 file changed, 8 insertions(+), 35 deletions(-) commit f53bd1421b3eb84375e9e6964665d23d4190400d Author: Al Viro Date: Thu Jun 18 20:17:32 2015 -0400 __ufs_truncate_blocks(): avoid excessive dirtying of indirect blocks There's a case when an indirect block gets dirtied for no good reason - when there's a hole starting in the middle of area covered by it and spanning past its end, and truncate() is done precisely to the beginning of the hole. The block is obviously not modified at all - all removals happen beyond it. However, existing code ends up dirtying it just in case. It's trivial to fix and while it's not a real bug by any stretch of imagination, it makes the damn thing harder to follow. Signed-off-by: Al Viro fs/ufs/inode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit cc7231e30916f5326bdde55a7a4c59431e15bc1b Author: Al Viro Date: Thu Jun 18 20:14:02 2015 -0400 free_full_branch(): don't bother modifying the block we are going to free Note that it's already made unreachable from the inode, so we don't have to worry about ufs_frag_map() walking into something already freed. Signed-off-by: Al Viro fs/ufs/inode.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit b6eede0ec642d1be17065110718cb4f4ed7ba5e0 Author: Al Viro Date: Thu Jun 18 20:09:39 2015 -0400 move marking inode dirty to the end of __ufs_truncate_blocks() Signed-off-by: Al Viro fs/ufs/inode.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) commit 163073db51930d1f9c2960b8e5660c269164f29b Author: Al Viro Date: Thu Jun 18 20:07:08 2015 -0400 free_full_branch(): saner calling conventions Have caller fetch the block number *and* remove it from wherever it was. Pass the block number instead. Signed-off-by: Al Viro fs/ufs/inode.c | 100 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 49 deletions(-) commit 7b4e4f7f815db0059150a12542b28c787e19c0d7 Author: Al Viro Date: Thu Jun 18 19:13:02 2015 -0400 ufs_trunc_branch(): kill recursion turn recursion into a pair of loops Signed-off-by: Al Viro fs/ufs/inode.c | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) commit 6aab6dd37946d0d592105872bd533bb7d2931f3f Author: Al Viro Date: Thu Jun 18 17:23:34 2015 -0400 ufs_trunc_branch(): massage towards killing recursion We always have 0 < depth2 <= depth in there, so if (--depth) { if (--depth2) A B } else { C // not using depth2 } D // not using depth2 is equivalent to if (--depth2) A with s/depth/depth - 1/ if (--depth) B else C D Signed-off-by: Al Viro fs/ufs/inode.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 6d1ebbca2b2fe516ff5f279848cffbd23d2b0270 Author: Al Viro Date: Thu Jun 18 17:11:49 2015 -0400 split ufs_truncate_branch() into full- and partial-branch variants Signed-off-by: Al Viro fs/ufs/inode.c | 74 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 16 deletions(-) commit a138b4b688c10eb82044451b81534c382d1cddbd Author: Al Viro Date: Thu Jun 18 02:18:54 2015 -0400 ufs: unify the logics for collecting adjacent data blocks to free open-coded in several places... Signed-off-by: Al Viro fs/ufs/inode.c | 56 ++++++++++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 34 deletions(-) commit a96574233c5d2e50736d83abf65161ec5fa55852 Author: Al Viro Date: Thu Jun 18 16:13:56 2015 -0400 ufs_trunc_branch(): separate the calls with non-NULL offsets Signed-off-by: Al Viro fs/ufs/inode.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 97e0f8f87c918620689ce542664a3115b752649d Author: Al Viro Date: Thu Jun 18 16:05:18 2015 -0400 ufs_trunc_branch(): never call with offsets != NULL && depth2 == 0 For calls in __ufs_truncate_blocks() it's just a matter of not incrementing offsets[0] and not making that call - immediately following loop will be executed one extra time and we'll be just fine. For recursive call in ufs_trunc_branch() itself, just assing NULL to offsets if we would be about to make such call. Signed-off-by: Al Viro fs/ufs/inode.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 42432739b5902f72011f701f5cd5b4227ebe991c Author: Al Viro Date: Thu Jun 18 15:47:17 2015 -0400 __ufs_trunc_blocks(): turn the part after switch into a loop ... and turn the switch into if (), since all cases with depth != 1 have just become identical. Signed-off-by: Al Viro fs/ufs/inode.c | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) commit ef3a315d4ca179fd0b56597e695cd262a8b559b7 Author: Al Viro Date: Thu Jun 18 15:42:25 2015 -0400 __ufs_truncate_blocks(): unify freeing the full branches Signed-off-by: Al Viro fs/ufs/inode.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) commit 9e0fbbde2724d5d3bb9edca6b77e26eb28341154 Author: Al Viro Date: Thu Jun 18 15:33:47 2015 -0400 unify ufs_trunc_..indirect() Signed-off-by: Al Viro fs/ufs/inode.c | 198 +++++++++++++++++---------------------------------------- 1 file changed, 60 insertions(+), 138 deletions(-) commit 6775e24d9ccf6a48ebd1d31ca77db5ebfe00ce43 Author: Al Viro Date: Thu Jun 18 14:55:50 2015 -0400 ufs_trunc_..indirect(): more massage towards unifying Instead of manually checking that the array contains only zeroes, find the position of the last non-zero (in __ufs_truncate(), where we can conveniently do that) and use that to tell if there's any non-zero in the array tail passed to ufs_trunc_...indirect(). The goal of all that clumsiness is to get fold these functions together. Signed-off-by: Al Viro fs/ufs/inode.c | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) commit 85416288bf730cffb61ab6ce8a7b97b17c73458f Author: Al Viro Date: Thu Jun 18 14:36:31 2015 -0400 ufs_trunc_...indirect(): pass the array of indices instead of offsets rather than bitslicing the offset just formed as sum of shifted indices, pass the array of those indices itself. NULL is used as equivalent of "all zeroes" (== free the entire branch). Signed-off-by: Al Viro fs/ufs/inode.c | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) commit 7a4fdda72451f094374324a552be9fc7de8f3e8d Author: Al Viro Date: Thu Jun 18 14:28:54 2015 -0400 __ufs_truncate(); find cutoff distances into branches by offsets[] array Signed-off-by: Al Viro fs/ufs/inode.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 7bad5939fcd04bb83122bdb90981ec5ae2f90e0d Author: Al Viro Date: Thu Jun 18 14:21:09 2015 -0400 ufs_trunc_dindirect(): pass the number of blocks to keep same as the previous two. Signed-off-by: Al Viro fs/ufs/inode.c | 57 ++++++++++++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 31 deletions(-) commit 6ac36b8777d934e3cd7eb0f023a5043d5c03b00c Author: Al Viro Date: Wed Jun 17 01:54:58 2015 -0400 ufs_trunc_indirect(): pass the index of the first pointer to free ... instead of file offset. Same cleanups as in the tindirect conversion in previous commit. Signed-off-by: Al Viro fs/ufs/inode.c | 56 +++++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 33 deletions(-) commit 18ca51d8211065f10672374336cd08d495968c73 Author: Al Viro Date: Thu Jun 18 13:45:07 2015 -0400 ufs_trunc_tindirect(): pass the number of blocks to keep IOW, the distance of cutoff from the begining of the branch (in blocks). That (and the fact that block just prior to cutoff is guaranteed to be present) allows to tell whether to free triple indirect block just by looking at the offset. While we are at it, using u64 for index in the block is wrong - those should be unsigned int. Signed-off-by: Al Viro fs/ufs/inode.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) commit 31cd043e1a09c579c4cd38ea432200fbeae6af1f Author: Al Viro Date: Wed Jun 17 01:10:03 2015 -0400 ufs: beginning of __ufs_truncate_block() massage Use ufs_block_to_path() to find the cutoff path in the block pointers' tree. For now just use the information about the depth (to bypass the fully preserved subtrees); subsequent commits will use the information about actual path. Signed-off-by: Al Viro fs/ufs/inode.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 4e3911f3d704d681477cdb4e1a2bfd52d5e42d23 Author: Al Viro Date: Thu Jun 4 14:13:14 2015 -0400 ufs: the offsets ufs_block_to_path() puts into array are not sector_t type makes no sense - those are indices in block number arrays, not block numbers. And no, UFS is not likely to grow indirect blocks with 4Gpointers in them... Signed-off-by: Al Viro fs/ufs/inode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 010d331fc315c96607aa6ecdfebb9fcdd349fc9b Author: Al Viro Date: Wed Jun 17 12:44:14 2015 -0400 ufs: move truncate code into inode.c It is closely tied to block pointers handling there, can benefit from existing helpers, etc. - no point keeping them apart. Trimmed the trailing whitespaces in inode.c at the same time. Signed-off-by: Al Viro fs/ufs/Makefile | 2 +- fs/ufs/inode.c | 480 ++++++++++++++++++++++++++++++++++++++++++++++++-- fs/ufs/truncate.c | 515 ------------------------------------------------------ fs/ufs/ufs.h | 6 +- 4 files changed, 470 insertions(+), 533 deletions(-) commit 0d23cf7616253b7960edeae720b9f5dfdccee445 Author: Al Viro Date: Tue Jun 16 18:52:28 2015 -0400 ufs: no retries are needed on truncate Signed-off-by: Al Viro fs/ufs/truncate.c | 57 +++++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 40 deletions(-) commit 687857930d9294100a4636e45b78a244e6ba4125 Author: Al Viro Date: Tue Jun 16 18:45:21 2015 -0400 ufs: ufs_trunc_...() has exclusion with everything that might cause allocations Currently - on lock_ufs(), eventually - on per-inode mutex. lock_ufs() used to be mere BKL, which is much weaker, so it needed those rechecks. BKL doesn't provide any exclusion once we lose CPU; its blind replacement, OTOH, _does_. Making that per-filesystem was an atrocity, but at least we can simplify life here. And yes, we certainly need to make that sucker per-inode - these days inode.c and truncate.c uses are needed only to protect the block pointers. Signed-off-by: Al Viro fs/ufs/truncate.c | 12 ------------ 1 file changed, 12 deletions(-) commit 6a799d3514217d217b4e74a1ee4f016428582dc5 Author: Al Viro Date: Tue Jun 16 18:43:08 2015 -0400 ufs: ufs_trunc_direct() always returns 0 make it return void Signed-off-by: Al Viro fs/ufs/truncate.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit dff7cfd36e305488421d82a0ed3dd0209c333745 Author: Al Viro Date: Tue Jun 16 04:27:05 2015 -0400 ufs: kill lock_ufs() There were 3 remaining users; in two of them we took ->s_lock immediately after lock_ufs() and held it until just before unlock_ufs(); the third one (statfs) could not be called from itself or from other two (remount and sync_fs). Just use ->s_lock in statfs and don't bother with lock_ufs at all. Signed-off-by: Al Viro fs/ufs/super.c | 34 ++-------------------------------- fs/ufs/ufs.h | 5 ----- 2 files changed, 2 insertions(+), 37 deletions(-) commit 724bb09fdc06d4ff03757b25d6dba9ef1b133e8f Author: Al Viro Date: Wed Jun 17 12:02:56 2015 -0400 ufs: don't use lock_ufs() for block pointers tree protection * stores to block pointers are under per-inode seqlock (meta_lock) and mutex (truncate_mutex) * fetches of block pointers are either under truncate_mutex, or wrapped into seqretry loop on meta_lock * all changes of ->i_size are under truncate_mutex and i_mutex * all changes of ->i_lastfrag are under truncate_mutex It's similar to what ext2 is doing; the main difference is that unlike ext2 we can't rely upon the atomicity of stores into block pointers - on UFS2 they are 64bit. So we can't cut the corner when switching a pointer from NULL to non-NULL as we could in ext2_splice_branch() and need to use meta_lock on all modifications. We use seqlock where ext2 uses rwlock; ext2 could probably also benefit from such change... Another non-trivial difference is that with UFS we *cannot* have reader grab truncate_mutex in case of race - it has to keep retrying. That might be possible to change, but not until we lift tail unpacking several levels up in call chain. After that commit we do *NOT* hold fs-wide serialization on accesses to block pointers anymore. Moreover, lock_ufs() can become a normal mutex now - it's only used on statfs, remount and sync_fs and none of those uses are recursive. As the matter of fact, *now* it can be collapsed with ->s_lock, and be eventually replaced with saner per-cylinder-group spinlocks, but that's a separate story. Signed-off-by: Al Viro fs/ufs/balloc.c | 4 ++ fs/ufs/inode.c | 138 ++++++++++++++++++++++++++++++++++++------------------ fs/ufs/super.c | 2 + fs/ufs/truncate.c | 22 ++++++++- fs/ufs/ufs.h | 2 + 5 files changed, 121 insertions(+), 47 deletions(-) commit 4af7b2c080715b9452fdaefb7ada72b4dc79593e Author: Al Viro Date: Wed Jun 17 19:26:18 2015 -0400 ufs: bforget() indirect blocks before freeing them right now it doesn't matter (lock_ufs() serializes everything), but when we switch to per-inode locking, it will be needed. Signed-off-by: Al Viro fs/ufs/truncate.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 493b4537a26b104fb3bd07ff4a46b6ede4288e76 Author: Al Viro Date: Tue Jun 16 18:17:28 2015 -0400 ufs: move lock_ufs() down into __ufs_truncate_blocks() Signed-off-by: Al Viro fs/ufs/truncate.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 2401aa29ab5c42cc34853a5c1457fbf66593690f Author: Al Viro Date: Tue Jun 16 18:15:07 2015 -0400 ufs: move truncate_setsize() down into ufs_truncate() just prior to __ufs_truncate_blocks(), with matching change of calling conventions Signed-off-by: Al Viro fs/ufs/truncate.c | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) commit 3b7a3a05e8b006a73c406230b3d2d3da920779d9 Author: Al Viro Date: Tue Jun 16 18:06:40 2015 -0400 ufs: free excessive blocks upon ->write_begin() failure/short copy Broken in "[PATCH] ufs: truncate should allocate block for last byte"; all way back in 2006. ufs_setattr() hadn't been the only user of vmtruncate() and eliminating ->truncate() method required corrections in a bunch of places. Eventually those places had migrated into ->write_begin() failure exit and ->write_end() after short copy... Signed-off-by: Al Viro fs/ufs/inode.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) commit d622f167b8435c856376edec130053fb56bf83e4 Author: Al Viro Date: Tue Jun 16 18:04:16 2015 -0400 ufs: switch ufs_evict_inode() to trimmed-down variant of ufs_truncate() Signed-off-by: Al Viro fs/ufs/inode.c | 9 ++------- fs/ufs/truncate.c | 60 +++++++++++++++++++++++++++++++++++++------------------ fs/ufs/ufs.h | 2 +- 3 files changed, 44 insertions(+), 27 deletions(-) commit f3e0f3da1b65e84ea82176c1cda03a4b694c9911 Author: Al Viro Date: Tue Jun 16 02:35:14 2015 -0400 ufs: kill more lock_ufs() calls a) move it inside ufs_truncate() b) ufs_free_inode() doesn't need it - it's serialized on ->s_lock c) ufs_write_inode() doesn't need it either (and can be called without it anyway). Signed-off-by: Al Viro fs/ufs/inode.c | 13 ++----------- fs/ufs/truncate.c | 4 ++-- 2 files changed, 4 insertions(+), 13 deletions(-) commit fe052a1810ec4687ee7d606290561af504047707 Author: Sagi Grimberg Date: Mon Jun 29 13:08:19 2015 +0300 target: Use struct t10_pi_tuple Its not a good idea to keep target specific definition of the same t10-pi tuple. (Fix v4.2-rc1 patch fuzz - nab) Signed-off-by: Sagi Grimberg Signed-off-by: Nicholas Bellinger drivers/target/target_core_device.c | 2 +- drivers/target/target_core_sbc.c | 10 +++++----- include/target/target_core_base.h | 7 +------ 3 files changed, 7 insertions(+), 12 deletions(-) commit 70cfef26267474f94ff4a988fb45ff78442b1cf4 Author: Krzysztof Kozlowski Date: Mon Jun 29 09:04:43 2015 +0900 regulator: Add lockdep asserts to help detecting locking misuse Add lockdep_assert_held_once() to functions explicitly mentioning that rdev or regulator_list mutex must be held. Using WARN_ONCE shouldn't pollute the dmesg to much. The patch (if CONFIG_LOCKDEP enabled) will show warnings in certain regulators calling regulator_notifier_call_chain() without rdev->mutex held. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Mark Brown drivers/regulator/core.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 83dcf400be7165af938dbd6b8ce6805c754701db Merge: 392d39c d770e55 Author: Brian Norris Date: Mon Jul 6 13:54:28 2015 -0700 Merge 4.2-rc1 into MTD -next commit d1ec4c34c7a9f328e43ea87522119258194f28f8 Author: Paul E. McKenney Date: Wed May 13 10:41:58 2015 -0700 rcu: Drop RCU_USER_QS in favor of NO_HZ_FULL The RCU_USER_QS Kconfig parameter is now just a synonym for NO_HZ_FULL, so this commit eliminates RCU_USER_QS, replacing all uses with NO_HZ_FULL. Reported-by: Frederic Weisbecker Signed-off-by: Paul E. McKenney Acked-by: Frederic Weisbecker include/linux/rcupdate.h | 4 ++-- init/Kconfig | 9 --------- kernel/rcu/tree.c | 8 ++++---- kernel/time/Kconfig | 2 -- 4 files changed, 6 insertions(+), 17 deletions(-) commit 0bc7d10c4abb7cec52d4d88f761476ed04225c83 Author: Axel Lin Date: Sun Jun 28 11:41:19 2015 +0800 ASoC: rt5645: Constify dmi_system_id table dmi_check_system() takes "const struct dmi_system_id *", so make the dmi_system_id table const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 93d5fc8bd143d94105279796451dcfd3d657453a Author: Antonio Borneo Date: Tue Jun 23 22:52:12 2015 +0800 ASoC: wm0010: Remove redundant spi driver bus initialization In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_register_driver(), so we can drop the manual assignment. Signed-off-by: Antonio Borneo Acked-by: Charles Keepax Signed-off-by: Mark Brown sound/soc/codecs/wm0010.c | 1 - 1 file changed, 1 deletion(-) commit aa0bcc5c44437457307c8c22e57a67bb57424041 Author: Jarkko Nikula Date: Thu Jun 25 13:59:01 2015 +0300 ASoC: rt5677: Prefix hexadecimal ID register value with 0x in error print Make it obvious that unexpected value read from ID register is printed in hexadecimal. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/rt5677.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 387ad57fe187b10fb4dec521e8d0ba5cefae7b35 Author: Jarkko Nikula Date: Thu Jun 25 13:59:00 2015 +0300 ASoC: rt5670: Prefix hexadecimal ID register value with 0x in error print Make it obvious that unexpected value read from ID register is printed in hexadecimal. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/rt5670.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 469444fb134259384f3396833f6f1edde8bae203 Author: Jarkko Nikula Date: Thu Jun 25 13:58:59 2015 +0300 ASoC: rt5651: Prefix hexadecimal ID register value with 0x in error print Make it obvious that unexpected value read from ID register is printed in hexadecimal. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/rt5651.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f68e80f5f434980ab9bae713bab6a3ff1ac07df Author: Jarkko Nikula Date: Thu Jun 25 13:58:58 2015 +0300 ASoC: rt5645: Prefix hexadecimal ID register value with 0x in error print Make it obvious that unexpected value read from ID register is printed in hexadecimal. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/rt5645.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 818454d1abcc127eef7e7d1cb169c69f53f7cd6d Author: Jarkko Nikula Date: Thu Jun 25 13:58:57 2015 +0300 ASoC: rt5640: Prefix hexadecimal ID register value with 0x in error print Make it obvious that unexpected value read from ID register is printed in hexadecimal. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/rt5640.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e608aaefd8f3b868866a2438dbad8e01cb0ce993 Author: Jarkko Nikula Date: Thu Jun 25 13:58:56 2015 +0300 ASoC: rt286: Prefix hexadecimal ID register value with 0x in error print Make it obvious that unexpected value read from ID register is printed in hexadecimal. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown sound/soc/codecs/rt286.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d49796317d4968b29ccdee7b9586385ae20b60a3 Author: Axel Lin Date: Wed Jun 24 10:55:24 2015 +0800 ASoC: gtm601: Fix modalias The MODULE_ALIAS needs to match the driver name to make module auto-loading work. Also move MODULE_ALIAS close to other MODULE_* macro. Signed-off-by: Axel Lin Signed-off-by: Mark Brown sound/soc/codecs/gtm601.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit beb5f8659ccd89a70b0a3ff28e32dbd8065df818 Author: kbuild test robot Date: Mon Jun 22 23:48:25 2015 +0800 ASoC: gtm601_dai can be static Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/gtm601.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 726f783e803cc254b1a8a9a1dc3e5808fee02760 Author: kbuild test robot Date: Mon Jun 22 23:36:03 2015 +0800 ASoC: fix platform_no_drv_owner.cocci warnings sound/soc/codecs/gtm601.c:86:4-9: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci CC: Marek Belisko Signed-off-by: Fengguang Wu Signed-off-by: Mark Brown sound/soc/codecs/gtm601.c | 1 - 1 file changed, 1 deletion(-) commit 1fdc5ae80868637926e76a32e8c62cdd093b48f4 Author: Marek Belisko Date: Sat Jun 20 22:47:02 2015 +0200 Documentation: vendor-prefixes: Add option prefix Add option to vendor-prefixes file which will be used for Option NV company. Signed-off-by: Marek Belisko Signed-off-by: Mark Brown Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit efc4720dfbf737903ca4c1366bc45ca780d13412 Author: Marek Belisko Date: Sat Jun 20 22:47:01 2015 +0200 ASoC: Add gtm601 codec driver This driver add PCM interface to a GTM601 UMTS modem chip. There is no configuration interface. Signed-off-by: Marek Belisko Signed-off-by: Mark Brown sound/soc/codecs/Kconfig | 4 ++ sound/soc/codecs/Makefile | 2 + sound/soc/codecs/gtm601.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) commit d26a5b6e80c87fd8fd136eb0a334fc7960ac9699 Author: Ville Syrjälä Date: Thu Jul 2 17:42:46 2015 +0300 drm/i915: Disable LVDS port after the pipe on PCH Follow the correct pipe vs port disable sequence for the PCH LVDS ports, ie. disable the port after the pipe. Other PCH port were already converted in the following commits: 1ea56e269e136544c0a76dc831c5edc27c47cb3c drm/i915: Disable CRT port after pipe on PCH platforms 3c65d1d1bb92ea959e8bce3eeae90fe5c3daa58a drm/i915: Disable SDVO port after the pipe on PCH platforms a4790cec3adf5eec91f397b1884706a71c70730f drm/i915: Disable HDMI port after the pipe on PCH platforms 08aff3fe26ae7a0d6f302ac2e1b7e2eb9933cd42 drm/i915: Move DP port disable to post_disable for pch platforms but LVDS was forgotten. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lvds.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) commit c07a2d1194fc694785771643c413c44adf7635d3 Author: Matt Roper Date: Mon Jul 6 09:19:24 2015 -0700 drm/i915: Don't dereference NULL plane while setting up scalers intel_atomic_setup_scalers() dereferences 'plane' before the plane has been assigned. The plane ID assignment doing this dereference is only needed for debugging messages later in the function, so just move the assignment farther down the function to a point where plane will no longer be NULL. This was introduced in: commit 133b0d128be39e308ccd3b3d765c31ebdbf5380e Author: Maarten Lankhorst Date: Mon Jun 15 12:33:39 2015 +0200 drm/i915: Clean up intel_atomic_setup_scalers slightly. Cc: Maarten Lankhorst Cc: Bob Paauwe Reported-by: Bob Paauwe Signed-off-by: Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91780c41a9e03ca6c351a0b2152662139b94b274 Author: Andy Shevchenko Date: Mon Jul 6 17:29:04 2015 +0300 x86/platform/intel/pmc_atom: Move the PMC-Atom code to arch/x86/platform/atom This is specific driver for Intel Atom SoCs like BayTrail and Braswell. Let's move it to dedicated folder and alleviate a arch/x86/kernel burden. There is no functional change. Signed-off-by: Andy Shevchenko Cc: Aubrey Li Cc: Kumar P Mahesh Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1436192944-56496-6-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/Makefile | 1 - arch/x86/kernel/pmc_atom.c | 465 -------------------------------------- arch/x86/platform/atom/Makefile | 3 +- arch/x86/platform/atom/pmc_atom.c | 465 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 467 insertions(+), 467 deletions(-) commit 2b8f8eddaf05c02bb4a21db5be1691e36e242c65 Author: Andy Shevchenko Date: Mon Jul 6 17:29:03 2015 +0300 x86/platform/intel/pmc_atom: Add Cherrytrail PMC interface The patch adds CHT PMC interface. This exposes all the South IP device power states and S0ix states for CHT. The bit map of FUNC_DIS and D3_STS_0 registers for SoCs are consistent. The D3_STS_1 and FUNC_DIS_2 registers, however, are not aligned. This is fixed by splitting a common mapping on per register basis. (Originally based on code from Kumar P Mahesh.) Originally-from: Kumar P Mahesh Signed-off-by: Andy Shevchenko Cc: Aubrey Li Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1436192944-56496-5-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/pmc_atom.h | 25 +++++++++ arch/x86/kernel/pmc_atom.c | 118 ++++++++++++++++++++++++++++++---------- 2 files changed, 114 insertions(+), 29 deletions(-) commit c84e358718a66f76ac0de1681d15d8d0c68fcdab Author: Sascha Hauer Date: Wed Jun 24 08:17:04 2015 +0200 soc: Mediatek: Add SCPSYS power domain driver This adds a power domain driver for the Mediatek SCPSYS unit. The System Control Processor System (SCPSYS) has several power management related tasks in the system. The tasks include thermal measurement, dynamic voltage frequency scaling (DVFS), interrupt filter and lowlevel sleep control. The System Power Manager (SPM) inside the SCPSYS is for the MTCMOS power domain control. For now this driver only adds power domain support, the more advanced features are not yet supported. The driver implements the generic PM domain device tree bindings, the first user will most likely be the Mediatek AFE audio driver. Signed-off-by: Sascha Hauer Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger drivers/soc/mediatek/Kconfig | 10 + drivers/soc/mediatek/Makefile | 1 + drivers/soc/mediatek/mtk-scpsys.c | 487 +++++++++++++++++++++++++++++++ include/dt-bindings/power/mt8173-power.h | 15 + 4 files changed, 513 insertions(+) commit 859e42800bcfc4db9cefaa2c24d6e3a203fe961d Author: Sascha Hauer Date: Wed Jun 24 08:17:03 2015 +0200 dt-bindings: soc: Add documentation for the MediaTek SCPSYS unit This adds documentation for the MediaTek SCPSYS unit found in MT8173 SoCs. Signed-off-by: Sascha Hauer Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger .../devicetree/bindings/soc/mediatek/scpsys.txt | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 16a624a9c81814cc2f1353eff2e502430c3fa79a Author: Sascha Hauer Date: Wed Jun 24 08:17:02 2015 +0200 soc: mediatek: Add infracfg misc driver support This adds support for some miscellaneous bits of the infracfg controller. The mtk_infracfg_set/clear_bus_protection functions are necessary for the scpsys power domain driver to handle the bus protection bits which are contained in the infacfg register space. Signed-off-by: Sascha Hauer Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger drivers/soc/mediatek/Kconfig | 9 ++++ drivers/soc/mediatek/Makefile | 1 + drivers/soc/mediatek/mtk-infracfg.c | 91 +++++++++++++++++++++++++++++++++++ include/linux/soc/mediatek/infracfg.h | 26 ++++++++++ 4 files changed, 127 insertions(+) commit 720570b14bb7c7494b0dbc2acc0d2065a490d31b Author: Henry Chen Date: Fri Jul 3 10:28:26 2015 +0800 dts: mt8173-evb: Add da9211 to i2c1 Add a DA9211 dual-channel BUCK regulator to i2c1. This regulator supplies GPU and DVFS1 voltages. Signed-off-by: Henry Chen Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit ad4df7a53a148e2e9d917e254b4e9ec9fc860ac9 Author: Howard Chen Date: Thu Jun 4 15:13:37 2015 +0800 ARM: dts: mt8173: support arm64 cpuidle-dt This patch adds an idle-states node to describe the mt8173 idle states and also adds references to the idle-states node in all CPU nodes. Signed-off-by: Howard Chen Acked-by: Lorenzo Pieralisi Acked-by: Daniel Lezcano Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit c010ff530a04ca63d120e1fad0f4268302c5e845 Author: Sascha Hauer Date: Wed Jun 24 08:17:05 2015 +0200 ARM64: MediaTek MT8173: Add SCPSYS device node This adds the SCPSYS device node to the MT8173 dtsi file. Signed-off-by: Sascha Hauer Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 091cf59891df5d969525d06a4da44e1a2a0e84d1 Author: Eddie Huang Date: Wed Jun 17 23:08:03 2015 +0800 arm64: dts: mt8173: Add I2C device node Add MT8173 I2C device nodes, include I2C controllers and pins. MT8173 has six I2C controllers, from i2c0 to i2c6, exclude i2c5. The 6th I2C controller register base doesn't next to 5th I2C, and there is a hardware between 5th and 6th I2C controller. So SoC designer name 6th controller as "i2c6", not "i2c5". Signed-off-by: Eddie Huang Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 147 ++++++++++++++++++++++++++++++- 1 file changed, 143 insertions(+), 4 deletions(-) commit 13421b3e8a16921dde592e3309cee15f3be1d93b Author: Eddie Huang Date: Mon Jun 1 21:08:26 2015 +0800 arm64: dts: mt8173: Add watchdog device node Add MT8173 watchdog device node. Signed-off-by: Eddie Huang Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) commit 6cf15fc2a1aa062476c26e1895640d1c61f60a72 Author: Sascha Hauer Date: Wed May 20 15:32:46 2015 +0200 arm64: dts: mt8173: Add PMIC wrapper device node This adds the device node for the PMIC wrapper. Signed-off-by: Sascha Hauer Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 0e84faa163c8ad42fec05d26907af8079d418bfc Author: Sascha Hauer Date: Wed May 20 15:32:45 2015 +0200 arm64: dts: mt8173: Use real clock for UARTs We used to use a fixed rate clock for the UARTs. Now that we have clock support we can associate the correct clocks to the UARTs and drop the 26MHz fixed rate UART clock. Signed-off-by: Sascha Hauer Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit f2ce701495683936d349ab905feba74c7b572c93 Author: Sascha Hauer Date: Wed May 20 15:32:44 2015 +0200 arm64: dts: mt8173: Add clock controller device nodes This adds the device nodes providing clocks on the Mediatek MT8173. These are: topckgen, infracfg, pericfg and apmixedsys. These are fed by two oscillators also added by this patch. Signed-off-by: Sascha Hauer Reviewed-by: Daniel Kurtz Signed-off-by: Matthias Brugger arch/arm64/boot/dts/mediatek/mt8173.dtsi | 52 +++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 5 deletions(-) commit 60cd37eb100c4880b28078a47f3062fac7572095 Merge: ebf2d26 ab85785 Author: Ingo Molnar Date: Mon Jul 6 17:46:15 2015 +0200 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Take tracefs into account when reporting errors about accessing tracepoint information in tools like 'perf trace' (Arnaldo Carvalho de Melo) - Let user have timestamps with per-thread recording in 'perf record' (Adrian Hunter) Infrastructure changes: - Introduce series of functions to build event filters so that we can set them in just one ioctl call, useful to set up common_pid, raw_syscalls:sys_{enter,exit}'s "id" filters to use with 'perf trace' (Arnaldo Carvalho de Melo) - Delete an unnecessary check before calling strfilter__delete() (Markus Elfring) Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 940406d1cfb5b35cb9716d186fe3e6308f2700c5 Author: Andy Shevchenko Date: Mon Jul 6 17:29:02 2015 +0300 x86/platform/intel/pmc_atom: Supply register mappings via PMC object The patch converts the functions to use the register mappings provided by PMC object. It would help in case of mappings on different platforms. Signed-off-by: Andy Shevchenko Cc: Aubrey Li Cc: Rafael J . Wysocki Cc: Kumar P Mahesh Link: http://lkml.kernel.org/r/1436192944-56496-4-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/pmc_atom.c | 49 ++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 17 deletions(-) commit c3c65aa6d43f9e9f23f688848b08ffec97be893b Author: Andy Shevchenko Date: Mon Jul 6 17:29:01 2015 +0300 x86/platform/intel/pmc_atom: Print index of device in loop The register mapping may change from one platform to another. Thus, indices might be not the same on different platforms. The patch makes the code to print the device index dynamically at run time. The patch also changes the for loop to iterate over the map until a terminator is found. Signed-off-by: Andy Shevchenko Cc: Aubrey Li Cc: Rafael J . Wysocki Cc: Kumar P Mahesh Link: http://lkml.kernel.org/r/1436192944-56496-3-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/kernel/pmc_atom.c | 126 ++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 63 deletions(-) commit 68872eb9b19bbd85883262a4e0927b487653816c Author: Andy Shevchenko Date: Mon Jul 6 17:29:00 2015 +0300 x86/platform/intel/pmc_atom: Export accessors to PMC registers Export the pmc_atom_read() and pmc_atom_write() accessors to the PMC registers. On early initcall stages the functions will return -ENODEV, and caller has to wait when it will be available. Additionally make absence of debugfs a non-fatal error. The patch will be useful for the upcoming fixes regarding to the LPSS block found on Intel BayTrail-T and Braswell. Signed-off-by: Andy Shevchenko Cc: Aubrey Li Cc: Kumar P Mahesh Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1436192944-56496-2-git-send-email-andriy.shevchenko@linux.intel.com Signed-off-by: Ingo Molnar arch/x86/include/asm/pmc_atom.h | 4 ++++ arch/x86/kernel/pmc_atom.c | 49 ++++++++++++++++++++++++++++------------- 2 files changed, 38 insertions(+), 15 deletions(-) commit ab85785aa13c36440a91a8e9f7616357de411a1f Author: Arnaldo Carvalho de Melo Date: Mon Jul 6 08:51:41 2015 -0300 tools lib api debugfs: Check for tracefs when reporting errors Now that we have two mountpoints, one for debugfs and another, for tracefs, we end up needing to check permissions for both, so, on a system with default config we were always asking the user to check the permission of the debugfs mountpoint, even when it was already sufficient. Fix it. E.g.: $ trace -e nanosleep usleep 1 Error: No permissions to read /sys/kernel/debug/tracing/events/raw_syscalls/sys_(enter|exit) Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug' $ sudo mount -o remount,mode=755 /sys/kernel/debug $ trace -e nanosleep usleep 1 Error: No permissions to read /sys/kernel/debug/tracing/events/raw_syscalls/sys_(enter|exit) Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug/tracing' $ sudo mount -o remount,mode=755 /sys/kernel/debug/tracing $ trace -e nanosleep usleep 1 0.326 ( 0.061 ms): usleep/11961 nanosleep(rqtp: 0x7ffef1081c50) = 0 $ Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Cc: Steven Rostedt Link: http://lkml.kernel.org/n/tip-0viljeuhc7q84ic8kobsna43@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/lib/api/fs/debugfs.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit 1cff8cc35bd310419cd2545ddcb65b329bdc1053 Author: Mika Kuoppala Date: Mon Jul 6 11:09:25 2015 +0300 drm/i915: Mark elsps submitted when they are pushed to hw Now when we have requests this deep on call chain, we can mark the elsp being submitted when it actually is. Remove temp variable and readjust commenting to more closely fit to the code. v2: Avoid tmp variable and reduce number of writes (Chris) Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) commit 8ee36152cfb087af22680ee394dcde262565fd73 Author: Mika Kuoppala Date: Fri Jul 3 17:09:37 2015 +0300 drm/i915: Convert execlists_ctx_descriptor() for requests Pass around requests to carry context deeper in callchain. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit cc3c42532c312c60f8499e22bbdb895ed5ce1d73 Author: Mika Kuoppala Date: Fri Jul 3 17:09:36 2015 +0300 drm/i915: Convert execlists_elsp_writ() for requests Pass around requests to carry context deeper in callchain. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) commit 8ba319da898fcecdac158cb46ca69e38b2b08da3 Author: Mika Kuoppala Date: Fri Jul 3 17:09:35 2015 +0300 drm/i915: Convert intel_lr_context_pin() for requests Pass around requests to carry context deeper in callchain. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 8 +++----- drivers/gpu/drm/i915/intel_lrc.c | 31 +++++++++++++++---------------- drivers/gpu/drm/i915/intel_lrc.h | 3 +-- 3 files changed, 19 insertions(+), 23 deletions(-) commit f3cc01f0948c1deb12cfb1da2959f391229c9d4b Author: Mika Kuoppala Date: Mon Jul 6 11:08:30 2015 +0300 drm/i915: Assign request ringbuf before pin In preparation to make intel_lr_context_pin|unpin to accept requests, assign ringbuf into request before we call the pinning. v2: No need to unset ringbuf on error path (Chris) Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 05d9824bfb40e211c8804fee65af1fbb736925a2 Author: Mika Kuoppala Date: Fri Jul 3 17:09:33 2015 +0300 drm/i915: Convert execlists_update_context() for requests Pass around requests to carry context deeper in callchain. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) commit d8cb8875ac60e2832614a2c48af236b5899cf209 Author: Mika Kuoppala Date: Fri Jul 3 17:09:32 2015 +0300 drm/i915: Convert execlist_submit_contexts() for requests Pass around requests to carry context deeper in callchain. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) commit d264b48687fab995fe970451ed11f4259d68aee1 Author: Jarkko Nikula Date: Fri Jun 26 13:17:42 2015 +0300 dmaengine: Remove remaining FSF mailing addresses Commit 3b62286d0ef7 ("dmaengine: Remove FSF mailing addresses") left Free Software Foundation mailing address still in two files. Remove it now. Signed-off-by: Jarkko Nikula Signed-off-by: Vinod Koul drivers/dma/pch_dma.c | 4 ---- drivers/dma/timb_dma.c | 4 ---- 2 files changed, 8 deletions(-) commit 9b54050bfe438d9e1108211d28cb0b995b1f347c Author: Brian Gerst Date: Mon Jun 22 07:55:21 2015 -0400 x86/compat: Separate ia32 and x32 compat ABIs The x32 ABI is now independent of the ia32 compat ABI. Common code is now conditional on CONFIG_COMPAT, but unshared code like syscall entry, signal handling, and the VDSO are under separate config options. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-13-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0c3619ea6756833e5c636c886cb55ca5b77f5d73 Author: Brian Gerst Date: Mon Jun 22 07:55:20 2015 -0400 x86/compat: Clean up HAVE_UID16 config Merge the 32-bit compat config setting for HAVE_UID16 with the 32-bit native one. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-12-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 3bead553ab657d482c3fd6559a1fd7f024414a63 Author: Brian Gerst Date: Mon Jun 22 07:55:19 2015 -0400 x86/compat: Define ARCH_WANT_OLD_COMPAT_IPC only for 32-bit compat x32 does not need CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-11-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e2aad2460bd38d0777052486893b32902efcdcd Author: Brian Gerst Date: Mon Jun 22 07:55:18 2015 -0400 x86/compat: Remove unneeded #include Including sys_ia32.h is not needed in signal.c. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-10-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/signal.c | 1 - 1 file changed, 1 deletion(-) commit 10ed34935e7e828ce4ce566647a2d6b8240e4dee Author: Brian Gerst Date: Mon Jun 22 07:55:17 2015 -0400 x86/compat, x86/perf: Don't build perf_callchain_user32() on x32 perf_callchain_user32() is not needed for x32. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-9-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/perf_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c338867d0e4224771c68d0a7727289b86c23eccd Author: Brian Gerst Date: Mon Jun 22 07:55:16 2015 -0400 x86/compat: Check for both 32-bit compat and x32 in get_gate_vma() Change this to CONFIG_COMPAT so both 32-bit compat and x32 will do the check. Signed-off-by: Brian Gerst Acked-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 Link: http://lkml.kernel.org/r/1434974121-32575-8-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/entry/vsyscall/vsyscall_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ab8b82ee6dad7c9c257f450d14719a0e3f327244 Author: Brian Gerst Date: Mon Jun 22 07:55:15 2015 -0400 x86/compat: Don't build the 32-bit VDSO if not needed Build the 32-bit vdso only for native 32-bit or 32-bit compat is enabled. x32 should not force it to build. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-7-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/entry/vdso/Makefile | 6 +++--- arch/x86/entry/vdso/vma.c | 7 +++++-- arch/x86/include/asm/elf.h | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) commit 601275c3e04c43b3b34237ab36c27fc1cfb8a189 Author: Brian Gerst Date: Mon Jun 22 07:55:14 2015 -0400 x86/compat: Factor out ia32 compat code from compat_arch_ptrace() Move the ia32-specific code in compat_arch_ptrace() into its own function. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-6-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/kernel/ptrace.c | 138 +++++++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 64 deletions(-) commit 7da770785f9740af1cb24b8fd63075543bd00711 Author: Brian Gerst Date: Mon Jun 22 07:55:13 2015 -0400 x86/compat: Rename 'start_thread_ia32' to 'compat_start_thread' This function is shared between the 32-bit compat and x32 ABIs. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-5-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/elf.h | 4 ++-- arch/x86/kernel/process_64.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit b829d1be20ab51a3b76ec003118c9260d1fa424e Author: Brian Gerst Date: Mon Jun 22 07:55:12 2015 -0400 x86/compat: Move ucontext_x32 to sigframe.h ia32.h should only contain the code for 32-bit compatability. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-4-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/ia32.h | 9 --------- arch/x86/include/asm/sigframe.h | 10 ++++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) commit b2e02b820d5b42479195b89d3d73f31bcedb264e Author: Brian Gerst Date: Mon Jun 22 07:55:11 2015 -0400 x86/compat: Make mmap_is_ia32() common compat TIF_ADDR32 is set for both ia32 and x32 tasks, so change from CONFIG_IA32_EMULATION to CONFIG_COMPAT. Use config_enabled() to make the function more readable. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-3-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/include/asm/elf.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit c0bfd26e136cafc2b23c16225b4d7b1e14de81c1 Author: Brian Gerst Date: Mon Jun 22 07:55:10 2015 -0400 x86/compat: Move copy_siginfo_*_user32() to signal_compat.c copy_siginfo_to_user32() and copy_siginfo_from_user32() are used by both the 32-bit compat and x32 ABIs. Move them to signal_compat.c. Signed-off-by: Brian Gerst Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434974121-32575-2-git-send-email-brgerst@gmail.com Signed-off-by: Ingo Molnar arch/x86/ia32/ia32_signal.c | 93 ---------------------------------------- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/signal_compat.c | 95 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 93 deletions(-) commit 5a33fcb8d991209bac0a266ab499e4b53d116cdd Author: George Spelvin Date: Thu Jun 25 18:44:13 2015 +0200 x86/asm/tsc: Save an instruction in DECLARE_ARGS users Before, the code to do RDTSC looked like: rdtsc shl $0x20, %rdx mov %eax, %eax or %rdx, %rax The "mov %eax, %eax" is required to clear the high 32 bits of RAX. By declaring low and high as 64-bit variables, the code is simplified to: rdtsc shl $0x20,%rdx or %rdx,%rax Yes, it's a 2-byte instruction that's not on a critical path, but there are principles to be upheld. Every user of EAX_EDX_RET has been checked. I tried to check users of EAX_EDX_ARGS, but there weren't any, so I deleted it to be safe. ( There's no benefit to making "high" 64 bits, but it was the simplest way to proceed. ) Signed-off-by: George Spelvin 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: jacob.jun.pan@linux.intel.com Link: http://lkml.kernel.org/r/20150618075906.4615.qmail@ns.horizon.com Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit bb8dd96032fc63babfc8b378a37dd7681eeec326 Author: Andy Lutomirski Date: Thu Jun 25 18:44:12 2015 +0200 x86/asm/tsc: Remove rdtsc_barrier() All callers have been converted to rdtsc_ordered(). Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Richard Weinberger Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/9baa4ae9a1e7c7c282f9cb2f15bb6bf5c2004032.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/barrier.h | 11 ----------- arch/x86/um/asm/barrier.h | 13 ------------- 2 files changed, 24 deletions(-) commit 502dfeff239e8313bfbe906ca0a1a6827ac8481b Author: Andy Lutomirski Date: Thu Jun 25 18:44:11 2015 +0200 x86/asm/tsc, x86/kvm: Drop open-coded barrier and use rdtsc_ordered() in kvmclock __pvclock_read_cycles() used to have two barriers, one of which was unnecessary, which got removed after an initial version of this patch was sent. But the barrier is still open-coded unnecessarily - get rid of that barrier and clean up the code by just using rdtsc_ordered(). Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Marcelo Tosatti Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Radim Krcmar Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/678981cc4761fb38a793c217c9cac42503cf3719.1434501121.git.luto@kernel.org [ Ported it to v4.2-rc1. ] Signed-off-by: Ingo Molnar arch/x86/include/asm/pvclock.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 27c634054a3155e1d9a02f0e362e4f4ff8d28ee7 Author: Andy Lutomirski Date: Thu Jun 25 18:44:10 2015 +0200 x86/asm/tsc: Use rdtsc_ordered() in read_tsc() instead of get_cycles() There are two logical changes here. First, this removes a check for cpu_has_tsc. That check is unnecessary, as we don't register the TSC as a clocksource on systems that have no TSC. Second, it adds a barrier, thus preventing observable non-monotonicity. I suspect that the missing barrier was never a problem in practice because system calls themselves were heavy enough barriers to prevent user code from observing time warps due to speculation. (Without the corresponding barrier in the vDSO, however, non-monotonicity is easy to detect.) Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/c6ff621a053127a65b70f175443578db7a0711be.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/tsc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eee6946e44510b61c35cf754f5505537c7a8eb77 Author: Andy Lutomirski Date: Thu Jun 25 18:44:09 2015 +0200 x86/asm/tsc/sync: Use rdtsc_ordered() in check_tsc_warp() and drop extra barriers Using get_cycles was unnecessary: check_tsc_warp() is not called on TSC-less systems. Replace rdtsc_barrier(); get_cycles() with rdtsc_ordered(). While we're at it, make the somewhat more dangerous change of removing barrier_before_rdtsc after RDTSC in the TSC warp check code. This should be okay, though -- the vDSO TSC code doesn't have that barrier, so, if removing the barrier from the warp check would cause us to detect a warp that we otherwise wouldn't detect, then we have a genuine bug. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/387c4c3a75f875bcde6cd68cee013273a744f364.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/tsc_sync.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) commit 03b9730b769fc4d87e40f6104f4c5b2e43889f19 Author: Andy Lutomirski Date: Thu Jun 25 18:44:08 2015 +0200 x86/asm/tsc: Add rdtsc_ordered() and use it in trivial call sites rdtsc_barrier(); rdtsc() is an unnecessary mouthful and requires more thought than should be necessary. Add an rdtsc_ordered() helper and replace the trivial call sites with it. This should not change generated code. The duplication of the fence asm is temporary. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/dddbf98a2af53312e9aa73a5a2b1622fe5d6f52b.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 16 ++-------------- arch/x86/include/asm/msr.h | 26 ++++++++++++++++++++++++++ arch/x86/kernel/trace_clock.c | 7 +------ arch/x86/kvm/x86.c | 16 ++-------------- arch/x86/lib/delay.c | 9 +++------ 5 files changed, 34 insertions(+), 40 deletions(-) commit 4ea1636b04dbd66536fa387bae2eea463efc705b Author: Andy Lutomirski Date: Thu Jun 25 18:44:07 2015 +0200 x86/asm/tsc: Rename native_read_tsc() to rdtsc() Now that there is no paravirt TSC, the "native" is inappropriate. The function does RDTSC, so give it the obvious name: rdtsc(). Suggested-by: Borislav Petkov Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/fd43e16281991f096c1e4d21574d9e1402c62d39.1434501121.git.luto@kernel.org [ Ported it to v4.2-rc1. ] Signed-off-by: Ingo Molnar arch/x86/boot/compressed/aslr.c | 2 +- arch/x86/entry/vdso/vclock_gettime.c | 2 +- arch/x86/include/asm/msr.h | 11 ++++++++++- arch/x86/include/asm/pvclock.h | 2 +- arch/x86/include/asm/stackprotector.h | 2 +- arch/x86/include/asm/tsc.h | 2 +- arch/x86/kernel/apb_timer.c | 8 ++++---- arch/x86/kernel/apic/apic.c | 8 ++++---- arch/x86/kernel/cpu/amd.c | 4 ++-- arch/x86/kernel/cpu/mcheck/mce.c | 4 ++-- arch/x86/kernel/espfix_64.c | 2 +- arch/x86/kernel/hpet.c | 4 ++-- arch/x86/kernel/trace_clock.c | 2 +- arch/x86/kernel/tsc.c | 4 ++-- arch/x86/kvm/lapic.c | 4 ++-- arch/x86/kvm/svm.c | 4 ++-- arch/x86/kvm/vmx.c | 4 ++-- arch/x86/kvm/x86.c | 12 ++++++------ arch/x86/lib/delay.c | 8 ++++---- drivers/cpufreq/intel_pstate.c | 2 +- drivers/input/gameport/gameport.c | 4 ++-- drivers/input/joystick/analog.c | 4 ++-- drivers/net/hamradio/baycom_epp.c | 2 +- drivers/thermal/intel_powerclamp.c | 4 ++-- tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c | 4 ++-- 25 files changed, 59 insertions(+), 50 deletions(-) commit fe47ae6e1a5005b2e82f7eab57b5c3820453293a Author: Andy Lutomirski Date: Thu Jun 25 18:44:06 2015 +0200 x86/asm/tsc: Remove rdtscl() It has no more callers, and it was never a very sensible interface to begin with. Users of the TSC should either read all 64 bits or explicitly throw out the high bits. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/250105f7cee519be9d7fc4464b5784caafc8f4fe.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 3 --- 1 file changed, 3 deletions(-) commit 732f374ba50b64150bf954c2d4e9f6fae583cccf Author: Andy Lutomirski Date: Thu Jun 25 18:44:05 2015 +0200 x86/asm/tsc, drivers/input/gameport: Replace rdtscl() with native_read_tsc() It's unclear to me why this code exists in the first place. Signed-off-by: Andy Lutomirski Signed-off-by: Borislav Petkov Acked-by: Dmitry Torokhov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Cc: linux-input@vger.kernel.org Link: http://lkml.kernel.org/r/9e058e72f4cf1f13c6483c1360b39c3d188a2c2a.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar drivers/input/gameport/gameport.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 016bfc449a88c833e949414a41748b359843dbb1 Author: Andy Lutomirski Date: Thu Jun 25 18:44:04 2015 +0200 x86/asm/tsc, input/joystick/analog: Switch from rdtscl() to native_read_tsc() This timing code is hideous, and this doesn't help. It gets rid of one of the last users of rdtscl(), though. Signed-off-by: Andy Lutomirski Signed-off-by: Borislav Petkov Acked-by: Dmitry Torokhov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Cc: linux-input@vger.kernel.org Link: http://lkml.kernel.org/r/90d19b3cea0e05ca6f333d1598daa38afb993260.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar drivers/input/joystick/analog.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3a2c16c8489d967de10b3b7f5cc0f7cab4337770 Author: Andy Lutomirski Date: Thu Jun 25 18:44:03 2015 +0200 x86/asm/tsc, staging/lirc_serial: Remove TSC-based timing It wasn't compiled in by default. I suspect that the driver was and still is broken, though -- it's calling udelay with a parameter that's derived from loops_per_jiffy. Signed-off-by: Andy Lutomirski Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: Greg Kroah-Hartman Cc: H. Peter Anvin Cc: Huang Rui Cc: Jarod Wilson Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: devel@driverdev.osuosl.org Cc: kvm ML Link: http://lkml.kernel.org/r/c95df47c5405b494d19d20b2852a9378c9f661f3.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar drivers/staging/media/lirc/lirc_serial.c | 63 ++------------------------------ 1 file changed, 4 insertions(+), 59 deletions(-) commit e18d1f8df176527332761ac29ee3097f8584c478 Author: Andy Lutomirski Date: Thu Jun 25 18:44:02 2015 +0200 x86/asm/tsc, drivers/net/hamradio/baycom_epp: Replace rdtscl() with native_read_tsc() This is only used if BAYCOM_DEBUG is defined. Signed-off-by: Andy Lutomirski Signed-off-by: Borislav Petkov Acked-by: Thomas Sailer Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Cc: linux-hams@vger.kernel.org Link: http://lkml.kernel.org/r/1195ce0c7f34169ff3006341b77806184a46b9bf.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar drivers/net/hamradio/baycom_epp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3796366614598e48edf0561b86f18c230a7debc8 Author: Andy Lutomirski Date: Thu Jun 25 18:44:01 2015 +0200 x86/asm/tsc, x86/cpu/amd: Use the full 64-bit TSC to detect the 2.6.2 bug This code is timing 100k indirect calls, so the added overhead of counting the number of cycles elapsed as a 64-bit number should be insignificant. Drop the optimization of using a 32-bit count. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/d58f339a9c0dd8352b50d2f7a216f67ec2844f20.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/kernel/cpu/amd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9cfa1a0279e22063a727fd204a75cf3672860d83 Author: Andy Lutomirski Date: Thu Jun 25 18:44:00 2015 +0200 x86/asm/tsc: Use the full 64-bit TSC in delay_tsc() As a very minor optimization, delay_tsc() was only using the low 32 bits of the TSC. It's a delay function, so just use the whole thing. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/bd1a277c71321b67c4794970cb5ace05efe21ab6.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/lib/delay.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ec69de52c648b1d9416a810943e68dbe9fe519f4 Author: Andy Lutomirski Date: Thu Jun 25 18:43:59 2015 +0200 x86/asm/tsc: Remove the rdtscp() and rdtscpll() macros They have no users. Leave native_read_tscp() which seems potentially useful despite also having no callers. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/6abfa3ef80534b5d73898a48c4d25e069303cbe5.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 9 --------- 1 file changed, 9 deletions(-) commit 87be28aaf1458445d5f648688c2eec0f13b8f3b9 Author: Andy Lutomirski Date: Thu Jun 25 18:43:58 2015 +0200 x86/asm/tsc: Replace rdtscll() with native_read_tsc() Now that the ->read_tsc() paravirt hook is gone, rdtscll() is just a wrapper around native_read_tsc(). Unwrap it. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/d2449ae62c1b1fb90195bcfb19ef4a35883a04dc.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/boot/compressed/aslr.c | 2 +- arch/x86/include/asm/msr.h | 3 --- arch/x86/include/asm/tsc.h | 5 +---- arch/x86/kernel/apb_timer.c | 4 ++-- arch/x86/kernel/apic/apic.c | 8 ++++---- arch/x86/kernel/cpu/mcheck/mce.c | 4 ++-- arch/x86/kernel/espfix_64.c | 2 +- arch/x86/kernel/hpet.c | 4 ++-- arch/x86/kernel/trace_clock.c | 2 +- arch/x86/kernel/tsc.c | 4 ++-- arch/x86/kvm/vmx.c | 2 +- arch/x86/lib/delay.c | 2 +- drivers/thermal/intel_powerclamp.c | 4 ++-- tools/power/cpupower/debug/kernel/cpufreq-test_tsc.c | 4 ++-- 14 files changed, 22 insertions(+), 28 deletions(-) commit 9261e050b686c9fe229cd9918d997b3caaf20e34 Author: Andy Lutomirski Date: Thu Jun 25 18:43:57 2015 +0200 x86/asm/tsc, x86/paravirt: Remove read_tsc() and read_tscp() paravirt hooks We've had ->read_tsc() and ->read_tscp() paravirt hooks since the very beginning of paravirt, i.e., d3561b7fa0fb ("[PATCH] paravirt: header and stubs for paravirtualisation"). AFAICT, the only paravirt guest implementation that ever replaced these calls was vmware, and it's gone. Arguably even vmware shouldn't have hooked RDTSC -- we fully support systems that don't have a TSC at all, so there's no point for a paravirt implementation to pretend that we have a TSC but to replace it. I also doubt that these hooks actually worked. Calls to rdtscl() and rdtscll(), which respected the hooks, were used seemingly interchangeably with native_read_tsc(), which did not. Just remove them. If anyone ever needs them again, they can try to make a case for why they need them. Before, on a paravirt config: text data bss dec hex filename 12618257 1816384 1093632 15528273 ecf151 vmlinux After: text data bss dec hex filename 12617207 1816384 1093632 15527223 eced37 vmlinux Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Cc: virtualization@lists.linux-foundation.org Link: http://lkml.kernel.org/r/d08a2600fb298af163681e5efd8e599d889a5b97.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/msr.h | 16 ++++++++-------- arch/x86/include/asm/paravirt.h | 34 ---------------------------------- arch/x86/include/asm/paravirt_types.h | 2 -- arch/x86/kernel/paravirt.c | 2 -- arch/x86/kernel/paravirt_patch_32.c | 2 -- arch/x86/xen/enlighten.c | 3 --- 6 files changed, 8 insertions(+), 51 deletions(-) commit 881d7bf843d7139c6dfbffdec4903b3354423c49 Author: Andy Lutomirski Date: Thu Jun 25 18:43:56 2015 +0200 x86/asm/tsc, kvm: Remove vget_cycles() The only caller was KVM's read_tsc(). The only difference between vget_cycles() and native_read_tsc() was that vget_cycles() returned zero instead of crashing on TSC-less systems. KVM already checks vclock_mode() before calling that function, so the extra check is unnecessary. Also, KVM (host-side) requires the TSC to exist. Signed-off-by: Andy Lutomirski Signed-off-by: Borislav Petkov Acked-by: Paolo Bonzini Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/20615df14ae2eb713ea7a5f5123c1dc4c7ca993d.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/include/asm/tsc.h | 13 ------------- arch/x86/kvm/x86.c | 2 +- 2 files changed, 1 insertion(+), 14 deletions(-) commit c6e5ca35c4685cd920b1d5279dbc9f4483d7dfd4 Author: Andy Lutomirski Date: Thu Jun 25 18:43:55 2015 +0200 x86/asm/tsc: Inline native_read_tsc() and remove __native_read_tsc() In the following commit: cdc7957d1954 ("x86: move native_read_tsc() offline") ... native_read_tsc() was moved out of line, presumably for some now-obsolete vDSO-related reason. Undo it. The entire rdtsc, shl, or sequence is only 11 bytes, and calls via rdtscl() and similar helpers were already inlined. Signed-off-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: Huang Rui Cc: John Stultz Cc: Len Brown Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Thomas Gleixner Cc: kvm ML Link: http://lkml.kernel.org/r/d05ffe2aaf8468ca475ebc00efad7b2fa174af19.1434501121.git.luto@kernel.org Signed-off-by: Ingo Molnar arch/x86/entry/vdso/vclock_gettime.c | 2 +- arch/x86/include/asm/msr.h | 8 +++----- arch/x86/include/asm/pvclock.h | 2 +- arch/x86/include/asm/stackprotector.h | 2 +- arch/x86/include/asm/tsc.h | 2 +- arch/x86/kernel/apb_timer.c | 4 ++-- arch/x86/kernel/tsc.c | 6 ------ 7 files changed, 9 insertions(+), 17 deletions(-) commit 35ca0ee49d2973976f89f07eb842782a39d20a14 Author: Ludovic Desroches Date: Mon Jun 8 10:33:16 2015 +0200 dmaengine: at_xdmac: fix indentation Fix indentation. Signed-off-by: Ludovic Desroches Signed-off-by: Vinod Koul drivers/dma/at_xdmac.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit c73e36b775a777abd67a1e15481923fcbd2040e1 Author: Denys Vlasenko Date: Fri Jul 3 22:19:02 2015 +0200 x86/asm/entry/32: Replace RESTORE_RSI_RDI with open-coded 32-bit reads This doesn't change much, but uses shorter 32-bit insns: -48 8b 74 24 68 mov 0x68(%rsp),%rsi -48 8b 7c 24 70 mov 0x70(%rsp),%rdi -48 8b 54 24 60 mov 0x60(%rsp),%rdx +8b 54 24 60 mov 0x60(%rsp),%edx +8b 74 24 68 mov 0x68(%rsp),%esi +8b 7c 24 70 mov 0x70(%rsp),%edi and does the loads in pt_regs order. Since these are the only uses of RESTORE_RSI_RDI[_RDX], drop these macros. Signed-off-by: Denys Vlasenko Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Drewry Link: http://lkml.kernel.org/r/1435954742-2545-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar arch/x86/entry/calling.h | 6 ------ arch/x86/entry/entry_64_compat.S | 7 +++++-- 2 files changed, 5 insertions(+), 8 deletions(-) commit a647828afc7d7d352aeb076dbc03bd952b09b1e3 Author: Niu,Bing Date: Sat Jul 4 00:27:34 2015 +0800 drm/i915: Also perform gpu reset under execlist mode. It is found that i915 will not reset gpu under execlist mode when unload module. that will lead to some issues when unload/load module with different submission mode. e.g. from execlist mode to ring buffer mode via loading/unloading i915. Because HW is not in a reset state and registers are not clean under such condition. Signed-off-by: Niu,Bing Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 9e00084750c0f0603ec8a6ff15e0bcf78b8202bd Author: Arun Siluvery Date: Fri Jul 3 14:27:31 2015 +0100 drm/i915: Update WaFlushCoherentL3CacheLinesAtContextSwitch In this WA we need to set GEN8_L3SQCREG4[21:21] and reset it after PIPE_CONTROL instruction but there is a slight complication as this is applied in WA batch where the values are only initialized once. Dave identified an issue with the current implementation where the register value is read once at the beginning and it is reused; this patch corrects this by saving the register value to memory, update register with the bit of our interest and restore it back with original value. This implementation uses MI_LOAD_REGISTER_MEM which is currently only used by command parser and was using a default length of 0. This is now updated with correct length and moved to appropriate place. Cc: Chris Wilson Cc: Dave Gordon Signed-off-by: Arun Siluvery Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 6 +-- drivers/gpu/drm/i915/i915_reg.h | 3 +- drivers/gpu/drm/i915/intel_lrc.c | 72 +++++++++++++++++++++++++--------- 3 files changed, 58 insertions(+), 23 deletions(-) commit 0bf73c361f986a04af332600bf06476c8f481c5b Author: Paulo Zanoni Date: Fri Jul 3 15:40:54 2015 -0300 drm/i915: protect FBC functions with FBC checks Now all the functions called by other files check whether FBC has been initialized. This allows us to drop the checks on the static functions. v2: - s/HAS_FBC/dev_priv->display.enable_fbc/ everywhere but the init function (Chris). Suggested-by: Chris Wilson Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbc.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) commit c80ac8548d167dfb7affdb997d99d875bb1a28a3 Author: Paulo Zanoni Date: Thu Jul 2 19:25:13 2015 -0300 drm/i915: FBC doesn't need struct_mutex anymore Everything is covered either by fbc.lock or mm.stolen_lock, and intel_fbc.c is already responsible for grabbing the appropriate locks when it needs them. Reviewed-by: Chris wilson Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 4 ---- drivers/gpu/drm/i915/intel_display.c | 14 +++----------- drivers/gpu/drm/i915/intel_fbc.c | 2 -- 3 files changed, 3 insertions(+), 17 deletions(-) commit b5e4b84d9f12b093780a4e90e51604c3b4706cde Author: Paulo Zanoni Date: Thu Jul 2 19:25:12 2015 -0300 drm/i915: intel_unregister_dsm_handler() doesn't need struct_mutex So don't grab the lock before calling the function. Reviewed-by: Chris wilson Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 5abeca4ec5d425538b73af58076990823a744e2a Author: Paulo Zanoni Date: Thu Jul 2 19:25:11 2015 -0300 drm/i915: intel_frontbuffer_flip_prepare() doesn't need struct_mutex So release the lock earlier. Reviewed-by: Chris wilson Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 25ad93fd9f0513df41f70327cca19d51369f1674 Author: Paulo Zanoni Date: Thu Jul 2 19:25:10 2015 -0300 drm/i915: add the FBC mutex Make sure we're not going to have weird races in really weird cases where a lot of different CRTCs are doing rendering and modesets at the same time. With this change and the stolen_lock from the previous patch, we can start removing the struct_mutex locking we have around FBC in the next patches. v2: - Rebase (6 months later) - Also lock debugfs and stolen. v3: - Don't lock a single value read (Chris). - Replace lockdep assertions with WARNs (Daniel). - Improve commit message. - Don't forget intel_pre_plane_update() locking. v4: - Don't remove struct_mutex at intel_pre_plane_update() (Chris). - Add comment regarding locking dependencies (Chris). - Rebase after the stolen code rework. - Rebase again after drm-intel-nightly changes. v5: - Rebase after the new stolen_lock patch. Reviewed-by: Chris Wilson (v4) Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 4 ++ drivers/gpu/drm/i915/i915_drv.h | 3 ++ drivers/gpu/drm/i915/intel_display.c | 6 +-- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_fbc.c | 101 +++++++++++++++++++++++++++++------ 5 files changed, 96 insertions(+), 19 deletions(-) commit 92e97d2f47616b144feb86db489e134935b021b8 Author: Paulo Zanoni Date: Thu Jul 2 19:25:09 2015 -0300 drm/i915: add dev_priv->mm.stolen_lock Which should protect dev_priv->mm.stolen usage. This will allow us to simplify the relationship between stolen memory, FBC and struct_mutex. v2: - Rebase after the stolen_remove_node() dev_priv patch move. - I realized that after we fixed a few things related to the FBC CFB size checks, we're not reallocating the CFB anymore with FBC enabled, so we can just move all the locking to i915_gem_stolen.c and stop worrying about freezing all the stolen alocations while freeing/rellocating the CFB. This allows us to fix the "Too coarse" observation from Chris. Suggested-by: Chris Wilson Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 ++++ drivers/gpu/drm/i915/i915_gem_stolen.c | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) commit fc786728ee8acc76e22769af3b2df67b94cd49b6 Author: Paulo Zanoni Date: Thu Jul 2 19:25:08 2015 -0300 drm/i915: move FBC code out of i915_gem_stolen.c With the abstractions created by the last patch, we can move this code and the only thing inside intel_fbc.c that knows about dev_priv->mm is the code that reads stolen_base. We also had to move a call to i915_gem_stolen_cleanup_compression() - now called intel_fbc_cleanup_cfb() - outside i915_gem_stolen.c. v2: - Rebase after the remove_node() changes on the previous patch. Requested-by: Chris Wilson Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 1 + drivers/gpu/drm/i915/i915_drv.h | 2 - drivers/gpu/drm/i915/i915_gem_stolen.c | 127 -------------------------------- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_fbc.c | 129 ++++++++++++++++++++++++++++++++- 5 files changed, 128 insertions(+), 132 deletions(-) commit d713fd4976f2838ca2ebccdc187256edb46bd48e Author: Paulo Zanoni Date: Thu Jul 2 19:25:07 2015 -0300 drm/i915: add simple wrappers for stolen node insertion/removal We want to move the FBC code out of i915_gem_stolen.c, but that code directly adds/removes stolen memory nodes. Let's create this abstraction, so i915_gme_stolen.c is still in control of all the stolen memory handling. The abstraction will also allow us to add locking assertions later. v2: - Add dev_priv as remove_node() argument since we'll need it later (Chris). Requested-by: Chris Wilson Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 5 ++++ drivers/gpu/drm/i915/i915_gem_stolen.c | 48 ++++++++++++++++++++++------------ 2 files changed, 37 insertions(+), 16 deletions(-) commit 0e06e5be70d392aa842c1455ec2d0baf62aeed48 Author: Waiman Long Date: Fri Jun 19 11:50:01 2015 -0400 locking/qrwlock: Better optimization for interrupt context readers The qrwlock is fair in the process context, but becoming unfair when in the interrupt context to support use cases like the tasklist_lock. The current code isn't that well-documented on what happens when in the interrupt context. The rspin_until_writer_unlock() will only spin if the writer has gotten the lock. If the writer is still in the waiting state, the increment in the reader count will cause the writer to remain in the waiting state and the new interrupt context reader will get the lock and return immediately. The current code, however, does an additional read of the lock value which is not necessary as the information has already been there in the fast path. This may sometime cause an additional cacheline transfer when the lock is highly contended. This patch passes the lock value information gotten in the fast path to the slow path to eliminate the additional read. It also documents the action for the interrupt context readers more clearly. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Will Deacon Cc: Arnd Bergmann Cc: Douglas Hatch Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1434729002-57724-3-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar include/asm-generic/qrwlock.h | 4 ++-- kernel/locking/qrwlock.c | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) commit f7d71f2052555ae57b47322f2c2f6c29ff2438ae Author: Waiman Long Date: Fri Jun 19 11:50:00 2015 -0400 locking/qrwlock: Rename functions to queued_*() To sync up with the naming convention used in qspinlock, all the qrwlock functions were renamed to started with "queued" instead of "queue". Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Cc: Arnd Bergmann Cc: Douglas Hatch Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Scott J Norton Cc: Thomas Gleixner Cc: Will Deacon Link: http://lkml.kernel.org/r/1434729002-57724-2-git-send-email-Waiman.Long@hp.com Signed-off-by: Ingo Molnar arch/x86/include/asm/qrwlock.h | 4 +-- include/asm-generic/qrwlock.h | 58 +++++++++++++++++++++--------------------- kernel/locking/qrwlock.c | 12 ++++----- 3 files changed, 37 insertions(+), 37 deletions(-) commit 3abebc55d70b6e3247d1f0e34c0bb906e40d2a18 Author: Adrian Hunter Date: Mon Jul 6 14:51:01 2015 +0300 perf record: Let user have timestamps with per-thread recording If the option -T is used with option --per-thread, then time is still not sampled. Fix that by using OPT_BOOLEAN_SET to distinguish when the user used the -T option as opposed to the default case when timestamps are enabled but only for per-cpu recording. Signed-off-by: Adrian Hunter Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/1436183461-1918-1-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-record.c | 4 +++- tools/perf/perf.h | 1 + tools/perf/util/evsel.c | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) commit 200802a4a79b3a7a1cf924ad870d3265023d0787 Author: Markus Elfring Date: Sat Jul 4 07:44:22 2015 +0200 perf probe: Delete an unnecessary check before the function call "strfilter__delete" The strfilter__delete() 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: Masami Hiramatsu Cc: Julia Lawall Cc: Peter Zijlstra Cc: kernel-janitors@vger.kernel.org Link: http://lkml.kernel.org/r/5597751A.5000506@users.sourceforge.net Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-probe.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 19867b6186f3fd38be65d86e20ef6f49d0caaa0b Author: Arnaldo Carvalho de Melo Date: Sat Jul 4 12:44:59 2015 -0300 perf trace: Use event filters for the event qualifier list We use raw_syscalls:sys_{enter,exit} events to show the syscalls, but were using a rather lazy/inneficient way to implement our 'strace -e' equivalent: filter out after reading the events in the ring buffer. Deflect more work to the kernel by appending a filter expression for that, that, together with the pid list, that is always present, if only to filter the tracer itself, reduces pressure on the ring buffer and otherwise use infrastructure already in place in the kernel to do early filtering. If we use it with -v we can see the filter passed to the kernel, for instance, for this contrieved case: # trace -v -e \!open,close,write,poll,recvfrom,select,recvmsg,writev,sendmsg,read,futex,epoll_wait,ioctl,eventfd --filter-pids 2189,2566,1398,2692,4475,4532 (common_pid != 2514 && common_pid != 1398 && common_pid != 2189 && common_pid != 2566 && common_pid != 2692 && common_pid != 4475 && common_pid != 4532) && (id != 3 && id != 232 && id != 284 && id != 202 && id != 16 && id != 2 && id != 7 && id != 0 && id != 45 && id != 47 && id != 23 && id != 46 && id != 1 && id != 20) 0.011 (0.011 ms): caribou/2295 eventfd2(flags: CLOEXEC|NONBLOCK) = 18 16.946 (0.019 ms): caribou/2295 eventfd2(flags: CLOEXEC|NONBLOCK) = 18 38.598 (0.167 ms): chronyd/794 socket(family: INET, type: DGRAM ) = 4 38.603 (0.002 ms): chronyd/794 fcntl(fd: 4, cmd: GETFD) = 0 38.605 (0.001 ms): chronyd/794 fcntl(fd: 4, cmd: SETFD, arg: 1) = 0 ^C # Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-ti2tg18atproqpguc2moinp6@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 52 ++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 20 deletions(-) commit 64ec84f5f96ea1d043c01e32e49e45286c6f4160 Author: Arnaldo Carvalho de Melo Date: Sat Jul 4 12:19:13 2015 -0300 perf evsel: Introduce append_filter() method To allow building filters in evsel->filter, that will eventually be applied via perf_evsel__apply_filter(). Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-sjfoes3pycx7nlpmgedca13v@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 17 +++++++++++++++++ tools/perf/util/evsel.h | 2 ++ 2 files changed, 19 insertions(+) commit 94ad89bc8a61b79c416c180c51b3e61ac16f6124 Author: Arnaldo Carvalho de Melo Date: Fri Jul 3 17:42:03 2015 -0300 perf evlist: Make perf_evlist__set_filter use perf_evsel__set_filter Instead of calling perf_evsel__apply_filter straight away, so that we can, in the next patches, expand the filter with more conditions before actually calling the ioctl to pass the end result filter to the kernel. Now we need to call perf_evlist__apply_filters() after the filter is completely setup, i.e. do the ioctl calls. The perf_evlist__apply_filters() method was already in place, because that is the model for the other tools that receives filters in the command line: go on setting then in the evsel->filter and only at the end, after parsing the whole command line, apply them. We get, as a bonus, a more expressive message that states which event, if any, failed to have the filter applied to, with an error message stating what happened. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-f429pgz75ryz7tpe6v74etre@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 18 ++++++++++++++---- tools/perf/util/evlist.c | 4 +--- 2 files changed, 15 insertions(+), 7 deletions(-) commit 12467ae4e37aab5e263cc9ab6b6909ae0588844c Author: Arnaldo Carvalho de Melo Date: Fri Jul 3 17:05:50 2015 -0300 perf evsel: Introduce set_filter method Replaces existing filter string with the one provided. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-jst49z83li0yx3g18o54u51a@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evsel.c | 13 +++++++++++++ tools/perf/util/evsel.h | 1 + tools/perf/util/parse-events.c | 3 +-- 3 files changed, 15 insertions(+), 2 deletions(-) commit f47805a2af3ba83881ca52434bbbc6e9886b72fd Author: Arnaldo Carvalho de Melo Date: Fri Jul 3 15:53:49 2015 -0300 perf evsel: Rename set_filter to apply_filter We need to be able to go on constructing a complex filter in multiple stages, since we can only set one filter per event. For instance, we need to be able, in 'perf trace' to filter by the 'common_pid' field all the time, if only for the tracer itself, to avoid a feedback loop, and, in addition, we may want to filter the raw_syscalls:sys_{enter,exit} events by its 'id' filter, when using 'perf trace -e open,close' or 'perf trace -e !open,close', i.e. when we are interested in just a subset of syscalls or when we are not interested in it. So we will have: perf_evsel__set_filter(evsel, char *filter) Replaces whatever is in evsel->filter. perf_evsel__append_filter(evsel, const char *op, char *filter) Appends, using op ("&&" or "||") with what is in evsel->filter. perf_evsel__apply_filter(evsel, filter): That actually applies a filter, be it the one being constructed in evsel->filter, or any other, for tools with more specific ways to build the filter, issuing the appropriate ioctl for all the evsel fds. The same changes will be made to the evlist__{set,apply} variants to keep everything consistent. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-2s5z9xtpnc2lwio3cv5x0jek@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/evlist.c | 4 ++-- tools/perf/util/evsel.c | 4 ++-- tools/perf/util/evsel.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) commit 8b3ce7576598b8e3b746beb9e8d10c33bcc64edd Author: Arnaldo Carvalho de Melo Date: Thu Jul 2 18:28:11 2015 -0300 perf trace: Store the syscall ids for the event qualifiers in a table That we will use to set a filter on raw_syscalls:sys_{enter,exit} events. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-2acxrcxyu7tlolrfilpty38y@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) commit c27366f0f9dac552251a92453e4dc65164d530d4 Author: Arnaldo Carvalho de Melo Date: Thu Jul 2 18:24:51 2015 -0300 perf trace: Remember what are the syscalls tracepoint evsels We will need to set filters on then. Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-u8hpgjpf3w8o1prnnjnwegwf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/builtin-trace.c | 82 ++++++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 39 deletions(-) commit 93ec4ce789995c5c58dff82193b3ec77caa8aecb Author: Arnaldo Carvalho de Melo Date: Thu Jul 2 17:48:23 2015 -0300 perf tools: Asprintf like functions to format integer filter expression char *asprintf_expr_in_ints(const char *var, size_t nints, int *ints); char *asprintf_expr_not_in_ints(const char *var, size_t nints, int *ints); Example of output formatted with those functions: # ./tp_filter 6 12 2015 asprintf_expr_in_ints: id == 6 || id == 12 || id == 2015 asprintf_expr_not_in_ints: id != 6 && id != 12 && id != 2015 # It'll be used with, for instance, perf_evsel__set_filter_in_ints(), that will be used in turn to ask the kernel to filter out all raw_syscalls:* except for the ones specified by the user via: $ perf trace -e some,list,of,syscalls Cc: Adrian Hunter Cc: Borislav Petkov Cc: David Ahern Cc: Don Zickus Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/n/tip-jt07vfp6bd8y50c05j1t7hrn@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo tools/perf/util/string.c | 39 +++++++++++++++++++++++++++++++++++++++ tools/perf/util/util.h | 12 ++++++++++++ 2 files changed, 51 insertions(+) commit cb9b608706c21cb7c748dcea7fa493344857f505 Author: Hans de Goede Date: Sat Jun 20 17:40:10 2015 +0200 ARM: dts: sun6i: Enable otg controller on the cs908 The cs908 has the otg controller connected to one of the 2 usb-A receptacles it has on the front, so enable the otg controller in host-only mode. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31s-cs908.dts | 5 +++++ 1 file changed, 5 insertions(+) commit 2433d82b6c9a3b3ec2ef68ef3360b8361d2d1a29 Author: Hans de Goede Date: Sat Jun 20 17:40:09 2015 +0200 ARM: dts: sun4i: Enable otg controller on the mini-x The mini-x has the otg controller connected to one of the 2 usb-A receptacles it has on the front, so enable the otg controller in host-only mode. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit ccef71cc6ae1b1bda3fc2f27493ea831edd6caaa Author: Hans de Goede Date: Sat Jun 20 17:40:08 2015 +0200 ARM: dts: sun4i: Enable otg controller on the ba10-tvbox The ba10-tvbox has the otg controller connected to one of the 2 usb-A receptacles it has on the front, so enable the otg controller in host-only mode. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit b5977f389d9ec7b5ffdc37ca6f2266e05295a552 Author: Hans de Goede Date: Sat Jun 20 17:40:07 2015 +0200 ARM: dts: sunxi: Add regulator-boot-on to usb host port regulator nodes u-boot will have turned on the power to the usb host ports, so mark them as regulator-boot-on, this stops the power on the ports from temporarily getting turned off during boot, causing issues with e.g. usb powered harddisks. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sunxi-common-regulators.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit 0760bacef728f6c980278188a5aac7f0fbe8bed8 Author: Karsten Merker Date: Tue Jun 23 19:02:29 2015 +0200 devicetree: Add msi to the vendor-prefix list Document the the "msi" (Micro-Star International Co. Ltd.) vendor prefix which is used in sun6i-a31s-primo81.dts. Signed-off-by: Karsten Merker Signed-off-by: Maxime Ripard Documentation/devicetree/bindings/vendor-prefixes.txt | 1 + 1 file changed, 1 insertion(+) commit 88651aebd276f272f34f2459d1eb2a86413aaabc Author: Hans de Goede Date: Sat May 30 16:55:06 2015 +0200 ARM: sun8i: dts: Add Ippo-q8h v1.2 with A33 The Ippo-q8h is a tablet circuit board commonly found in cheap Android tablets. The v1.2 version can be used with either an A23 or A33 SoC. This version features 512 MB DRAM, 4G NAND, MMC, LCD, capacitive touchscreen, accelerometer, 2 camera sensors, USB OTG, microphone and speakers. i2c0 is connected to the gsl1680 capacitive touch panel controller, i2c1 is connected to an mma7660 3-axis accelerometer, these peripherals are not supported by the kernel yet, i2c bus functionality has been tested via i2c-dev. Signed-off-by: Hans de Goede [maxime: Removed the resolution mention, and modified the compatible to have a unique one with the A23 version] Signed-off-by: Maxime Ripard arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts | 118 ++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) commit c077132b2829efecbc6b052fb0f3aa793c054ab8 Author: Chen-Yu Tsai Date: Tue Jun 2 20:29:12 2015 +0800 ARM: dts: sun8i: sina33: Enable USB hosts The Sina33 SDK board exposes the EHCI/OHCI USB host pair. VBUS for this port is always on and non-controllable. Signed-off-by: Chen-Yu Tsai Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit c43fa32143a1e4fba3f988ca116710b652c68077 Author: Hans de Goede Date: Tue Jun 2 21:47:58 2015 +0200 ARM: dts: sun8i: Enable USB host on GA10H-A33 tablets The GA10H tablets not only have an otg connector, but also a normal usb host connector, enabled support for this. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4e2066ed71c0d07421baa60567b1ebfb5894e10c Author: Hans de Goede Date: Tue Jun 2 18:58:34 2015 +0200 ARM: dts: sun8i: Enable USB DRC on GA10H-A33 tablets Enable the otg controller on GA10H-A33 tablets, for now it is enabled in host-only mode, because true OTG support requires support for detecting and enabling Vbus through the axp221 pmic. For this to work the Vbus on the port must be enabled by u-boot, or a powered hub must be used. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit a85b59c14d4082abcf27f63994e900dd00b5e572 Author: Hans de Goede Date: Mon Jun 1 20:08:59 2015 +0200 ARM: dts: sun8i: Enable USB DRC on Ippo Q8H-A23 tablets Enable the otg controller on Ippo Q8H tablets, for now it is enabled in host-only mode, because true OTG support requires support for detecting and enabling Vbus through the axp221 pmic. For this to work the Vbus on the port must be enabled by u-boot, or a powered hub must be used. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts | 9 +++++++++ 1 file changed, 9 insertions(+) commit 14b7289828c44343e69cae8194d9e4ce121da1f6 Author: Hans de Goede Date: Tue May 19 12:33:58 2015 +0200 ARM: dts: sun7i: Enable USB DRC on A20-OLinuxIno-Micro Enable the otg/drc usb controller on the A20-OLinuxIno-Micro. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit d7a99f6bb625e7d0a256bc6e3d4538669ea22f27 Author: Hans de Goede Date: Sat Mar 7 17:56:40 2015 +0100 ARM: dts: sun7i: Enable USB DRC on A20-OLinuxIno-Lime Enable the otg/drc usb controller on the A20-OLinuxIno-Lime. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit d3c23bac7fde7ad93c6d46ea37b38c8f8ba0f699 Author: Roman Byshko Date: Tue Oct 21 00:31:04 2014 +0200 ARM: dts: sun7i: Enable USB DRC on Cubietruck Enable the otg/drc usb controller on the cubietruck. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 09fa35ea2cb477992fc342daebe6fcbb8b829415 Author: Hans de Goede Date: Mon Jun 1 16:55:55 2015 +0200 ARM: dts: sun6i: Enable USB DRC on the Mele A1000G quad The Mele A1000G-quad has an usb to sata bridge connected to its otg controller, this commit enables support for this. Since the otg is hardwired to the sata bridge it gets enabled in host only mode. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts | 5 +++++ 1 file changed, 5 insertions(+) commit 2354570da880df63da11176b5febf15648377a57 Author: Hans de Goede Date: Mon Feb 16 21:55:47 2015 +0100 ARM: dts: sun5i: Enable USB DRC on UTOO P66 Enable the OTG controller on the UTOO P66 tablet. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit c68d23ce258ce5ffaa5ef7bba79ced4e6e1b5421 Author: Hans de Goede Date: Fri Jun 5 13:35:28 2015 +0200 ARM: dts: sun4i: Enable USB DRC on the Cubieboard Enable the otg/drc usb controller on the Cubieboard. Note that the 5V of the otg is directly connected to the general 5V, so we only use the id pin. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit a40d6f243eda177614df1f42cd9ad837c645e7d8 Author: Hans de Goede Date: Thu Mar 5 17:08:13 2015 +0100 ARM: dts: sun4i: Enable USB DRC on Chuwi V7 CW0825 Enable the otg/drc usb controller on the Chuwi V7 CW0825 tablet. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit e385c09c0a64d2f440186be906e92cfb1cabfb7b Author: Chen-Yu Tsai Date: Tue Jun 2 20:29:11 2015 +0800 ARM: dts: sun8i: Add support for USB controllers on A23/A33 A23/A33 has one pair of EHCI/OHCI USB controllers. There are 2 USB PHYs, one for the USB OTG controller, one for the EHCI/OHCI pair. The latter may also support HSIC, though none of the available boards utilize this, so this is not supported yet. Signed-off-by: Chen-Yu Tsai Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23-a33.dtsi | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) commit 4f8449b1baed5c4f6c577f1f5ef6918886583fc5 Author: Hans de Goede Date: Tue Jun 2 15:37:32 2015 +0200 ARM: dts: sun8i: Add A33 usb-phy and otg nodes Note these are added to the sun8i-a33.dtsi file rather then to the shared sun8i-a23-a33.dtsi file as both the phy and the otg controller on the a33 are slightly different. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a33.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 5c4f81c1b436ade8dfcec82a47a15310c9456415 Author: Hans de Goede Date: Mon Jun 1 19:27:34 2015 +0200 ARM: dts: sun8i: Add A23 usb-phy and otg nodes Note these are added to the sun8i-a23.dtsi file rather then to the shared sun8i-a23-a33.dtsi file as both the phy and the otg controller on the a33 are slightly different. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun8i-a23.dtsi | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit cbb3ff1d9ce35731ea51c9118e94c7ab14025437 Author: Roman Byshko Date: Wed Oct 22 00:14:03 2014 +0200 ARM: dts: sun7i: Add USB Dual Role Controller Add a node for the otg/drc usb controller to sun7i-a20.dtsi Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun7i-a20.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d208eaf23217548e08fe31a797cdb654e0ccc94b Author: Hans de Goede Date: Mon Jun 1 13:29:49 2015 +0200 ARM: dts: sun6i: Add USB Dual Role Controller Add a node for the otg/drc usb controller to sun6i-a31.dtsi. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun6i-a31.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 482f178cc1e4de0768372cbf7fba206fec2179ac Author: Hans de Goede Date: Mon Feb 16 19:35:36 2015 +0100 ARM: dts: sun5i: Add USB Dual Role Controller Add a node for the otg/drc usb controller to sun5i-a1*.dtsi. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun5i.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit ce65037fb2a3c4f98f304833bb0ef7037ca494b2 Author: Hans de Goede Date: Tue Feb 3 19:17:35 2015 +0100 ARM: dts: sun4i: Add USB Dual Role Controller Add a node for the otg/drc usb controller to sun4i-a10.dtsi. Signed-off-by: Hans de Goede Signed-off-by: Maxime Ripard arch/arm/boot/dts/sun4i-a10.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 8783b9c50400c6279d7c3b716637b98e83d3c933 Author: Nibble Max Date: Mon Jun 29 11:09:42 2015 -0300 [media] SMI PCIe IR driver for DVBSky cards Ported from the manufacturer's source tree, available from http://dvbsky.net/download/linux/media_build-bst-150211.tar.gz This is the second patch after a public review. [mchehab@osg.samsung.com: fix inconsistent identing warning] Signed-off-by: Dirk Nehring Reviewd-by: Nibble Max Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/smipcie/Kconfig | 1 + drivers/media/pci/smipcie/Makefile | 3 + drivers/media/pci/smipcie/smipcie-ir.c | 232 +++++++ drivers/media/pci/smipcie/smipcie-main.c | 1114 ++++++++++++++++++++++++++++++ drivers/media/pci/smipcie/smipcie.c | 1102 ----------------------------- drivers/media/pci/smipcie/smipcie.h | 19 + 6 files changed, 1369 insertions(+), 1102 deletions(-) commit f459aec2bc81a46b674901424295f8ffe5e29ad0 Author: David Härdeman Date: Tue May 19 19:03:27 2015 -0300 [media] lmedm04: NEC scancode cleanup This changes the keymap back to the state before commit 616a4b83 and changes the driver to use full NEC32 scancodes following the instructions provided by Malcolm Priestley . Signed-off-by: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/keymaps/rc-lme2510.c | 132 ++++++++++++++++----------------- drivers/media/usb/dvb-usb-v2/lmedm04.c | 21 +++--- 2 files changed, 77 insertions(+), 76 deletions(-) commit 275ddb40bcf686d210d86c6718e42425a6a0bc76 Author: David Härdeman Date: Tue May 19 19:03:22 2015 -0300 [media] rc-core: remove the LIRC "protocol" The LIRC protocol was always a bad fit and if we're ever going to expose protocol numbers in a user-space API, it'd be better to get rid of the LIRC "protocol" first. The sysfs API is kept backwards compatible by always listing the lirc protocol as present and enabled. Signed-off-by: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/ir-lirc-codec.c | 5 +---- drivers/media/rc/keymaps/rc-lirc.c | 2 +- drivers/media/rc/rc-main.c | 14 +++++++++----- include/media/rc-map.h | 38 ++++++++++++++++++-------------------- 4 files changed, 29 insertions(+), 30 deletions(-) commit fcb13097867757d360d5226d36ed3ffe849dc3ae Author: David Härdeman Date: Tue May 19 19:03:17 2015 -0300 [media] rc-core: use an IDA rather than a bitmap This patch changes rc-core to use the kernel facilities that are already available for handling unique numbers instead of rolling its own bitmap stuff. Signed-off-by: David Härdeman Tested-by: Stefan Lippers-Hollmann Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-ir-raw.c | 2 +- drivers/media/rc/rc-main.c | 40 ++++++++++++++++++++-------------------- include/media/rc-core.h | 4 ++-- 3 files changed, 23 insertions(+), 23 deletions(-) commit a66b0c41ad277ae62a3ae6ac430a71882f899557 Author: David Härdeman Date: Tue May 19 19:03:12 2015 -0300 [media] rc-core: fix remove uevent generation The input_dev is already gone when the rc device is being unregistered so checking for its presence only means that no remove uevent will be generated. Cc: stable@kernel.org Signed-off-by: David Härdeman Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/rc-main.c | 3 --- 1 file changed, 3 deletions(-) commit 2a1e91a1595f4dec14ab16d63c6348d8fa159911 Author: Mauro Carvalho Chehab Date: Fri Jul 3 09:12:54 2015 -0300 [media] sh_vou: declare static functions as such drivers/media/platform/sh_vou.c:799:5: warning: no previous prototype for 'sh_vou_g_output' [-Wmissing-prototypes] int sh_vou_g_output(struct file *file, void *fh, unsigned int *i) ^ drivers/media/platform/sh_vou.c:805:5: warning: no previous prototype for 'sh_vou_s_output' [-Wmissing-prototypes] int sh_vou_s_output(struct file *file, void *fh, unsigned int i) ^ Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bf9c82278c348eb6b72496de6a3e5269aadb6b34 Author: Ian Molton Date: Wed Jun 3 10:59:53 2015 -0300 [media] media: adv7604: ability to read default input port from DT Adds support to the adv7604 driver for specifying the default input port in the Device tree. If no value is provided, the driver will be unable to select an input without help from userspace. Tested-by: William Towle Signed-off-by: Ian Molton Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/devicetree/bindings/media/i2c/adv7604.txt | 3 +++ drivers/media/i2c/adv7604.c | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 6a219f15a86812a226d197aa93b2806e9cecda7c Author: Ian Molton Date: Wed Jun 3 10:59:52 2015 -0300 [media] media: adv7604: document support for ADV7612 dual HDMI input decoder This documentation accompanies the patch adding support for the ADV7612 dual HDMI decoder / repeater chip. Signed-off-by: Ian Molton Reviewed-by: William Towle Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab .../devicetree/bindings/media/i2c/adv7604.txt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 8331d30bf0ccf179c3d03d968c9ae1c8f06eafc4 Author: William Towle Date: Wed Jun 3 10:59:51 2015 -0300 [media] media: adv7604: chip info and formats for ADV7612 Add support for the ADV7612 chip as implemented on Renesas' Lager board to adv7604.c, including lists for formats/colourspace/timing selection and an IRQ handler. Signed-off-by: William Towle Signed-off-by: Hans Verkuil [hans.verkuil@cisco.com: fix merge conflicts due to regmap patch] Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 91 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 87 insertions(+), 4 deletions(-) commit f862f57dae5f0555552256b67f5bfd523f97a736 Author: Pablo Anton Date: Fri Jun 19 10:23:06 2015 -0300 [media] media: i2c: ADV7604: Migrate to regmap This is a preliminary patch in order to add support for ALSA. It replaces all current i2c access with regmap. Signed-off-by: Pablo Anton Signed-off-by: Jean-Michel Hautbois Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 351 ++++++++++++++++++++++++++++++++------------ 1 file changed, 256 insertions(+), 95 deletions(-) commit 250121d348645675f5ade7e7ebe3fc6b46a9a2c0 Author: Ben Dooks Date: Wed Jun 3 10:59:50 2015 -0300 [media] media: adv7180: add of match table Add a proper of match id for use when the device is being bound via device tree, to avoid having to use the i2c old-style binding of the device. Signed-off-by: Ben Dooks Signed-off-by: William.Towle Reviewed-by: Rob Taylor Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7180.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit c046707ff99912878ba63db5f2f2e2916ca961ce Author: Hans Verkuil Date: Mon Jun 15 08:33:41 2015 -0300 [media] DocBook/media: fix bad spacing in VIDIOC_EXPBUF The VIDIOC_EXPBUF documentation had spurious spaces that made it irritating to read. Fix this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Documentation/DocBook/media/v4l/vidioc-expbuf.xml | 38 +++++++++++------------ 1 file changed, 19 insertions(+), 19 deletions(-) commit 4c34cc5e0f99ced4c7a11d49007bf7a90e2fae7a Author: Ricardo Ribalda Date: Fri Jun 12 13:31:11 2015 -0300 [media] media/i2c/sr030pc30: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Acked-by: Sylwester Nawrocki Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/sr030pc30.c | 7 ------- 1 file changed, 7 deletions(-) commit 0b3474f0f61b21fc7f4d2a203cbcc2599a4d3aef Author: Hans Verkuil Date: Mon Jun 8 03:20:15 2015 -0300 [media] sh-vou: add support for log_status Dump the VOU registers in log_status. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 57af3ad59d953f300a1fcb143e72d024aff73550 Author: Hans Verkuil Date: Sun Jun 7 05:58:05 2015 -0300 [media] sh-vou: convert to vb2 This converts this driver to videobuf2. As usual it is a big and hard to review patch, but this is always a big-bang change. It has been tested with my Renesas board. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 590 +++++++++++++++++----------------------- 1 file changed, 250 insertions(+), 340 deletions(-) commit 5c3edcb225d6690000c2563c573984042747b28d Author: Hans Verkuil Date: Sun Jun 7 05:58:04 2015 -0300 [media] sh-vou: fix bytesperline The bytesperline values were wrong for planar formats where bytesperline is the line length for the first plane. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 66853ec4e1d096efe406383adc219285e5516af4 Author: Hans Verkuil Date: Sun Jun 7 05:58:03 2015 -0300 [media] sh-vou: let sh_vou_s_fmt_vid_out call sh_vou_try_fmt_vid_out This ensures that both do the same checks, and simplifies s_fmt_vid_out a bit. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 86 +++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 46 deletions(-) commit 61fbacc115731d2b0435f959f94ff7eb8c3c1059 Author: Hans Verkuil Date: Sun Jun 7 05:58:01 2015 -0300 [media] sh-vou: replace g/s_crop/cropcap by g/s_selection Implement g/s_selection. The v4l2 core will emulate g/s_crop and cropcap on top of g/s_selection. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 71 +++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 46 deletions(-) commit 22df2e7a390f6cb31c6a5b0d8051d0ec83769ed1 Author: Hans Verkuil Date: Sun Jun 7 05:58:00 2015 -0300 [media] sh-vou: fix incorrect initial pixelformat It was set to a format that wasn't supported. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4de00d0efe0a7af8e2ef591effa2a559b7cc38a3 Author: Hans Verkuil Date: Sun Jun 7 05:57:59 2015 -0300 [media] sh-vou: support compulsory G/S/ENUM_OUTPUT ioctls Video output drivers must support these ioctls. Otherwise applications cannot deduce that these outputs exist and what capabilities they have. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit c5f98085bf3f1d645aaf76eac7c9ca0e2ab684c6 Author: Hans Verkuil Date: Sun Jun 7 05:57:58 2015 -0300 [media] sh-vou: use v4l2_fh This allows us to drop the use_count and you get free G/S_PRIORITY support. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit d8046ee09f843cb314a660f589a334bce84a7efa Author: Hans Verkuil Date: Sun Jun 7 05:57:57 2015 -0300 [media] sh-vou: fix querycap support Fix v4l2-compliance errors due to empty driver and bus_info fields. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 2 ++ 1 file changed, 2 insertions(+) commit 4690271ce14cd4cf4796e0b6631978d151abe8e4 Author: Hans Verkuil Date: Sun Jun 7 05:57:56 2015 -0300 [media] sh-vou: use resource managed calls Simplify the sh-vou clean up by using devm_* were possible. Signed-off-by: Hans Verkuil Cc: Magnus Damm Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/sh_vou.c | 43 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 35 deletions(-) commit 41bdc3cf81c4d0f0dfe09f06ff203dd59d422f37 Author: Mauro Carvalho Chehab Date: Fri Jul 3 08:35:51 2015 -0300 [media] vsp1: declar vsp1_pipeline_stopped() as static drivers/media/platform/vsp1/vsp1_video.c:517:6: warning: no previous prototype for 'vsp1_pipeline_stopped' [-Wmissing-prototypes] bool vsp1_pipeline_stopped(struct vsp1_pipeline *pipe) ^ Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_video.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e36f1b19e80dfd89d56a5af8f4b20d2fc170c3fe Author: Hans Verkuil Date: Sun Jun 7 05:57:55 2015 -0300 [media] clock-sh7724.c: fix sh-vou clock identifier Bitrot has set in for this driver and the sh-vou clock was never enabled, since the clock name in clock-sh7724.c was wrong. It should be sh-vou, not sh-vou.0. Signed-off-by: Hans Verkuil Thanks-to: Geert Uytterhoeven Cc: Magnus Damm Signed-off-by: Mauro Carvalho Chehab arch/sh/kernel/cpu/sh4a/clock-sh7724.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 85a0638b7855dfb00dc9b66bc2fdd4276d7dc87c Author: Damian Hobson-Garcia Date: Thu May 28 09:59:39 2015 -0300 [media] v4l: vsp1: Align crop rectangle to even boundary for YUV formats Make sure that there are valid values in the crop rectangle to ensure that the color plane doesn't get shifted when cropping. Since there is no distinction between 12bit and 16bit YUV formats in at the subdev level, use the more restrictive 12bit limits for all YUV formats. Signed-off-by: Damian Hobson-Garcia Signed-off-by: Yoshihiro Kaneko Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_rwpf.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 1c991fee30c72ff49bb96558d5f1c14a60230677 Author: Laurent Pinchart Date: Wed Apr 29 16:54:39 2015 -0300 [media] v4l: vsp1: Fix race condition when stopping pipeline When stopping the pipeline the driver waits for the pipeline state to be set to VSP1_PIPELINE_STOPPED but fails to lock the pipe irqlock to read the state variable protected by the lock. Fix it. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_video.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 139c92866e34bfa4897e644b36147fc86cc7a7a1 Author: Sei Fumizono Date: Sun Mar 15 11:33:07 2015 -0300 [media] v4l: vsp1: Fix Suspend-to-RAM Fix Suspend-to-RAM so that VSP1 driver continues to work after resuming. In detail, - Fix the judgment of ref count in resuming. - Add stopping VSP1 during suspend. [Refactor the suspend and resume code to lower suspend delay] Signed-off-by: Sei Fumizono Signed-off-by: Yoshifumi Hosoya Signed-off-by: Yoshihiro Kaneko Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_drv.c | 13 ++++-- drivers/media/platform/vsp1/vsp1_video.c | 70 +++++++++++++++++++++++++++++++- drivers/media/platform/vsp1/vsp1_video.h | 5 ++- 3 files changed, 83 insertions(+), 5 deletions(-) commit 45008ee9295b3ae96d7413ab91871907a671ca82 Author: Nobuhiro Iwamatsu Date: Wed Jan 28 22:53:55 2015 -0200 [media] v4l: vsp1: Fix VI6_DPR_ROUTE_FXA_MASK macro FXA bit of VI6_DPR_mod_ROUTE register starts from 16bit. But VI6_DPR_ROUTE_FXA_MASK is set to become start from 8bit. This fixes shift size for VI6_DPR_ROUTE_FXA_MASK. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_regs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1aa7890324b497f96f07c20673fae58f26fabfe7 Author: Nobuhiro Iwamatsu Date: Wed Jan 28 22:53:54 2015 -0200 [media] v4l: vsp1: Fix VI6_DPR_ROUTE_FP_MASK macro FP bit of VI6_DPR_mod_ROUTE register is 6bit. But VI6_DPR_ROUTE_FP_MASK is set to 0xFF, this will mask until the reserve bit. This fixes size for VI6_DPR_ROUTE_FP_MASK. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_regs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 03b36e4dcf422a10da8b67bce2ed00b34ec58aac Author: Nobuhiro Iwamatsu Date: Wed Jan 28 22:53:53 2015 -0200 [media] v4l: vsp1: Fix VI6_WPF_SZCLIP_SIZE_MASK macro Clipping size bit of VI6_WPFn _HSZCLIP and VI6_WPFn _VSZCLIP register are from 0 bit to 11 bit. But VI6_WPF_SZCLIP_SIZE_MASK is set to 0x1FFF, this will mask until the reserve bits. This fixes size for VI6_WPF_SZCLIP_SIZE_MASK. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/vsp1/vsp1_regs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 63f2f417526fc54191f2b813f72dc1d5322bede8 Author: Nicholas Mc Guire Date: Sun Jun 7 11:34:40 2015 -0300 [media] gscpa_m5602: use msecs_to_jiffies for conversions API compliance scanning with coccinelle flagged: ./drivers/media/usb/gspca/m5602/m5602_s5k83a.c:180:9-25: WARNING: timeout (100) seems HZ dependent Numeric constants passed to schedule_timeout() make the effective timeout HZ dependent which makes little sense in a polling loop for the cameras rotation state. Fixed up by converting the constant to jiffies with msecs_to_jiffies() Signed-off-by: Nicholas Mc Guire Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/m5602/m5602_s5k83a.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a2a89c4acbf2ede9cdcc51d7113091978079b7b Author: Dan Carpenter Date: Thu Jun 4 05:52:26 2015 -0300 [media] gspca: sn9c2028: remove an unneeded condition We already know status is negative because of the earlier check so there is no need to check again. Signed-off-by: Dan Carpenter Signed-off-by: Hans de Goede Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/gspca/sn9c2028.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 387a69243890a51be023aef12d0fdcae343f43f2 Author: Ricardo Ribalda Date: Fri Jun 12 13:31:18 2015 -0300 [media] media/radio/saa7706h: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/saa7706h.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) commit 59617e74e20dac9523e34f5461162b19347dacf8 Author: Ricardo Ribalda Date: Fri Jun 12 13:31:17 2015 -0300 [media] pci/ivtv/ivtv-gpio: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/ivtv/ivtv-gpio.c | 7 ------- 1 file changed, 7 deletions(-) commit c2527967c5795815d3422f147af767293b3806eb Author: Ricardo Ribalda Date: Fri Jun 12 13:31:16 2015 -0300 [media] i2c/wm8739: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/wm8739.c | 7 ------- 1 file changed, 7 deletions(-) commit f5f24bc3267b3651e8bb026a5669dfe6855ffe63 Author: Ricardo Ribalda Date: Fri Jun 12 13:31:15 2015 -0300 [media] media/i2c/tvp7002: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tvp7002.c | 7 ------- 1 file changed, 7 deletions(-) commit e5b40d2e11c3e2ed60ecb70313765d48c7786448 Author: Ricardo Ribalda Date: Fri Jun 12 13:31:14 2015 -0300 [media] media/i2c/tvp514x: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tvp514x.c | 11 ----------- 1 file changed, 11 deletions(-) commit 8b198c6b8b65ef39c3652972c36a43e04b4482dd Author: Ricardo Ribalda Date: Fri Jun 12 13:31:13 2015 -0300 [media] media/i2c/tlv320aic23: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tlv320aic23b.c | 7 ------- 1 file changed, 7 deletions(-) commit fc1a33fed0274efefbfc5f463a69efbaee4d989f Author: Ricardo Ribalda Date: Fri Jun 12 13:31:12 2015 -0300 [media] media/i2c/tda7432: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/tda7432.c | 7 ------- 1 file changed, 7 deletions(-) commit 3cfa008e3cafa90684f84abbfb995cec437a61ea Author: Ricardo Ribalda Date: Fri Jun 12 13:31:10 2015 -0300 [media] media/i2c/saa717x: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/saa717x.c | 7 ------- 1 file changed, 7 deletions(-) commit 6ceea1f7d021492ed13609fa1cf401484dae0e0d Author: Ricardo Ribalda Date: Fri Jun 12 13:31:09 2015 -0300 [media] media/i2c/cs5345: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/cs5345.c | 7 ------- 1 file changed, 7 deletions(-) commit 260faaa490d29cd2ad3cad54fbda0ede406c818e Author: Ricardo Ribalda Date: Fri Jun 12 13:31:08 2015 -0300 [media] media/i2c/adv7393: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7393.c | 7 ------- 1 file changed, 7 deletions(-) commit 747d481df3b9b6ef46ccb233d74c8d93ec4819e6 Author: Ricardo Ribalda Date: Fri Jun 12 13:31:07 2015 -0300 [media] media/i2c/adv7343: Remove compat control ops They are no longer used in old non-control-framework bridge drivers. Reported-by: Hans Verkuil Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7343.c | 7 ------- 1 file changed, 7 deletions(-) commit 227da85e775065c81e222f443e8379aba4d3f668 Author: Prashant Laddha Date: Fri Jun 12 08:48:10 2015 -0300 [media] v4l2-dv-timings: print refresh rate with better precision In many cases, refresh rate is not exact integer. In such cases, fraction was lost and it used to print, say, 59 in case of 59.94. Now, capturing the fraction up to 2 decimal places. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 4366dfef377034e97d5b35677b7a1ebb1f1ce6dc Author: Ricardo Ribalda Date: Wed Jun 10 10:38:29 2015 -0300 [media] media/v4l2-ctrls: Code cleanout validate_new() We can simplify the code removing the if(). v4l2_ctr_new sets ctrls->elems to 1 when !ctrl->is_ptr. Signed-off-by: Ricardo Ribalda Delgado Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-ctrls.c | 15 --------------- 1 file changed, 15 deletions(-) commit 4a99362da734dfdcca5035dfa15b9f3708f1f8a4 Author: Josh Wu Date: Tue May 26 06:54:47 2015 -0300 [media] atmel-isi: remove mck backward compatibility code The master clock should be handled by sensor itself. Signed-off-by: Josh Wu Acked-by: Laurent Pinchart Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 46 --------------------------- 1 file changed, 46 deletions(-) commit f3745a3af521d403d4c174e4bad0986e11f4d2f1 Author: Josh Wu Date: Tue May 26 06:54:46 2015 -0300 [media] atmel-isi: add runtime pm support The runtime pm resume/suspend will enable/disable pclk (ISI peripheral clock). We have to call runtime_pm_get_sync()/runtime_pm_put() when we need to access ISI registers. In atmel_isi_probe(), remove the isi disable code as at that moment ISI peripheral clock is not enable yet. Besides, clock_start()/clock_stop() is used to control the mclk, not the ISI peripheral clock. So move this to start[stop]_streaming() function. Signed-off-by: Josh Wu Acked-by: Laurent Pinchart Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 55 +++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 8 deletions(-) commit 8c0378354709058bba3319bb58fd04bd09e1eaa6 Author: Josh Wu Date: Tue May 26 06:54:45 2015 -0300 [media] atmel-isi: disable ISI even if it has codec request In current code, stop_streaming() will just return if ISI is still working in the codec. But this is incorrect, we need to disable ISI even it is working on the codec, otherwise stop_streaming() will not work as we expected. Signed-off-by: Josh Wu Signed-off-by: Guennadi Liakhovetski Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/soc_camera/atmel-isi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 408131b85509902b100f7045484c7377a40be99d Author: Laurent Pinchart Date: Sun Apr 12 09:09:05 2015 -0300 [media] v4l: omap4iss: Remove video node crop support Cropping should be configured on the pipeline subdev nodes, not through the video nodes. Remove crop support on all video nodes. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/iss_video.c | 73 ------------------------------ 1 file changed, 73 deletions(-) commit 44f4294d5ee58ba3f9dcc0da4cc545c21328eb10 Author: Laurent Pinchart Date: Sun Apr 12 09:09:05 2015 -0300 [media] v4l: omap4iss: Enable driver compilation as a module Now that the driver doesn't use the non-exported omap4_ctrl_pad_readl and omap4_ctrl_pad_writel functions nothing prevents it from being compiled as a module anymore. Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/omap4iss/Kconfig | 2 +- drivers/staging/media/omap4iss/TODO | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 9d39f05490115bf145e5ea03c0b7ec9d3d015b01 Author: Sakari Ailus Date: Fri Jun 12 20:06:23 2015 -0300 [media] v4l: omap3isp: Fix sub-device power management code Commit 813f5c0ac5cc ("media: Change media device link_notify behaviour") modified the media controller link setup notification API and updated the OMAP3 ISP driver accordingly. As a side effect it introduced a bug by turning power on after setting the link instead of before. This results in sub-devices not being powered down in some cases when they should be. Fix it. Fixes: 813f5c0ac5cc [media] media: Change media device link_notify behaviour Signed-off-by: Sakari Ailus Cc: stable@vger.kernel.org # since v3.10 Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5d479386983c5f1bb1aff4f88a027b6143f88a39 Author: Sakari Ailus Date: Tue May 19 20:08:05 2015 -0300 [media] v4l: omap3isp: Fix async notifier registration order The async notifier was registered before the v4l2_device was registered and before the notifier callbacks were set. This could lead to missing the bound() and complete() callbacks and to attempting to spin_lock() and uninitialised spin lock. Also fix unregistering the async notifier in the case of an error --- the function may not fail anymore after the notifier is registered. Fixes: da7f3843d2c7 ("[media] omap3isp: Add support for the Device Tree") Signed-off-by: Sakari Ailus Reviewed-by: Sebastian Reichel Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab drivers/media/platform/omap3isp/isp.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) commit 9aee1ae3312daf0de4c9c614680d06d557133317 Author: Joe Perches Date: Sat May 16 15:11:40 2015 -0300 [media] media: uapi: vsp1: Use __u32 instead of u32 Don't use the kernel types in uapi headers. Signed-off-by: Joe Perches Signed-off-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab include/uapi/linux/vsp1.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b3b384177b2de010833fefffac6af3d6ffbdfed Author: Hans Verkuil Date: Fri Jun 12 03:52:54 2015 -0300 [media] v4l2-dv-timings: log if the timing is reduced blanking V2 The last CVT standard introduced reduced blanking version 2 which is signaled by a vsync of 8. Log this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 5fea1bb703c360f323c62f6d34b5e947d0590e80 Author: Prashant Laddha Date: Wed Jun 10 13:51:42 2015 -0300 [media] v4l2-dv-timings: add support for reduced blanking v2 Added support for reduced blanking version 2 (RB v2) in cvt timings. Standard specifies a fixed vsync pulse of 8 lines to indicate RB v2 timings. Vertical back porch is fixed at 6 lines and vertical front porch is remainder of vertical blanking time. For RB v2, horizontal blanking is fixed at 80 pixels. Horizontal sync is fixed at 32. All horizontal timing counts (active pixels, front, back porches) can be specified upto a precision of 1. RB v2 allows for non standard aspect ratios. In RB v2 vsync does not indicate aspect ratio. In absence of aspect ratio v4l2_detect_cvt() cannot calculate image width from image height. Hence extending the v4l2_detect_cvt() to pass image width in case of RB v2. Signed-off-by: Prashant Laddha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/adv7604.c | 2 +- drivers/media/i2c/adv7842.c | 2 +- drivers/media/platform/vivid/vivid-vid-cap.c | 2 +- drivers/media/v4l2-core/v4l2-dv-timings.c | 80 ++++++++++++++++++++-------- include/media/v4l2-dv-timings.h | 6 ++- 5 files changed, 67 insertions(+), 25 deletions(-) commit 30533ad10b7c3d7c05b757382aee28458167ab75 Author: Fabian Frederick Date: Wed Jun 10 13:33:45 2015 -0300 [media] btcx-risc: use swap() in btcx_sort_clips() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/bt8xx/btcx-risc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit f47c183c20d845af9d747fc1e5b7dbd9c3871e05 Author: Fabian Frederick Date: Wed Jun 10 13:32:50 2015 -0300 [media] saa6588: use swap() in saa6588_i2c_poll() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/i2c/saa6588.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 2bb00da1484073342a1f3e9f846ac0ad8dc6314d Author: Fabian Frederick Date: Wed Jun 10 13:32:41 2015 -0300 [media] saa7146: use swap() in sort_and_eliminate() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/common/saa7146/saa7146_hlp.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 453f847ef2e445a7b1fe6cbe35d36a06c60f58a5 Author: Fabian Frederick Date: Wed Jun 10 13:32:39 2015 -0300 [media] wl128x: use swap() in fm_rdsparse_swapbytes() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/radio/wl128x/fmdrv_common.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit fd7524294ccaa6168593042121e3bbd26a529fd5 Author: Fabian Frederick Date: Wed Jun 10 13:32:33 2015 -0300 [media] v4l2-dv-timings: use swap() in v4l2_calc_aspect_ratio() Use kernel.h macro definition. Thanks to Julia Lawall for Coccinelle scripting support. Signed-off-by: Fabian Frederick Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/v4l2-core/v4l2-dv-timings.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit cfcffe397fae05d6193bbb0dc87a7148323bf3fb Author: Hans Verkuil Date: Tue Jun 9 10:54:53 2015 -0300 [media] rc/Kconfig: fix indentation problem The RC_ST and IR_SUNXI entries have weird indentation, and the RC_ST entry is actually malformed. Fix it. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/rc/Kconfig | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit e6cf0c409b40349f46427f9fc56f6ce4ec640a5d Author: Jan Roemisch Date: Tue Jun 9 08:44:33 2015 -0300 [media] radio-bcm2048: Fix region selection This patch fixes region selection for lower bottom_frequency in BCM2048 FM receiver. It also removes "Japan wide band" region since this is impossible to do just like that. Signed-off-by: Jan Roemisch Acked-by: Pali Rohár Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/staging/media/bcm2048/radio-bcm2048.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) commit d9b8252202a4cc60a6c5d4fb237d2bd99680e00f Author: Krzysztof Hałasa Date: Mon Jun 8 10:50:22 2015 -0300 [media] SOLO6x10: Remove dead code solo_dev and pdev cannot be NULL here. It doesn't matter if we initialized the PCI device or not. Signed-off-by: Krzysztof Ha?asa Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/solo6x10/solo6x10-core.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit e1ceb25a1569ce5b61b9c496dd32d038ba8cb936 Author: Krzysztof Hałasa Date: Mon Jun 8 10:42:24 2015 -0300 [media] SOLO6x10: remove unneeded register locking and barriers readl() and writel() are atomic, we don't need the spin lock. Also, flushing posted write buffer isn't required. Especially on read :-) Signed-off-by: Krzysztof Ha?asa Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/solo6x10/solo6x10-core.c | 1 - drivers/media/pci/solo6x10/solo6x10.h | 26 +------------------------- 2 files changed, 1 insertion(+), 26 deletions(-) commit dd43a6278a9dbda46f56782b54a7a59216a87d23 Author: Krzysztof Hałasa Date: Mon Jun 8 10:37:15 2015 -0300 [media] SOLO6x10: unmap registers only after free_irq() Fixes a panic on ARM. Diagnosis by Russell King. Signed-off-by: Krzysztof Ha?asa Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/solo6x10/solo6x10-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9d1b1f61a49c66145ebbf2844124987118e65632 Author: Krzysztof Hałasa Date: Mon Jun 8 10:35:05 2015 -0300 [media] SOLO6x10: Fix G.723 minimum audio period count The period count is fixed, don't confuse ALSA. Signed-off-by: Krzysztof Ha?asa Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/pci/solo6x10/solo6x10-g723.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit e3e30f63389a319ca45161b07eb74e60f1e7ea20 Author: Hans Verkuil Date: Mon Jun 8 06:53:59 2015 -0300 [media] stk1160: fix sequence handling Fix the sequence counter: we're counting frames, not fields. Also remove the unused 'field' field. That would only be needed if this driver would support V4L2_FIELD_ALTERNATE. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab drivers/media/usb/stk1160/stk1160-v4l.c | 2 ++ drivers/media/usb/stk1160/stk1160-video.c | 4 +--- drivers/media/usb/stk1160/stk1160.h | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) commit 98006636b0307387b8b572700bbc9eb093ce6f70 Merge: 5bab862 d770e55 Author: Mauro Carvalho Chehab Date: Mon Jul 6 08:21:35 2015 -0300 Merge tag 'v4.2-rc1' into patchwork Linux 4.2-rc1 * tag 'v4.2-rc1': (12415 commits) Linux 4.2-rc1 bluetooth: fix list handling 9p: cope with bogus responses from server in p9_client_{read,write} p9_client_write(): avoid double p9_free_req() 9p: forgetting to cancel request on interrupted zero-copy RPC dax: bdev_direct_access() may sleep block: Add support for DAX reads/writes to block devices dax: Use copy_from_iter_nocache dax: Add block size note to documentation NTB: Add split BAR output for debugfs stats NTB: Change WARN_ON_ONCE to pr_warn_once on unsafe NTB: Print driver name and version in module init NTB: Increase transport MTU to 64k from 16k NTB: Rename Intel code names to platform names NTB: Default to CPU memcpy for performance NTB: Improve performance with write combining NTB: Use NUMA memory in Intel driver NTB: Use NUMA memory and DMA chan in transport NTB: Rate limit ntb_qp_link_work NTB: Add tool test client ... commit cb8cc37f4d38d96552f2c52deb15e511cdacf906 Author: Caesar Wang Date: Mon Jul 6 11:37:23 2015 +0800 ARM: rockchip: fix broken build The following was seen in branch[0] build. arch/arm/mach-rockchip/platsmp.c:154:23: error: 'rockchip_secondary_startup' undeclared (first use in this function) branch[0]: git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git v4.3-armsoc/soc The broken build is caused by the commit fe4407c0dc58 ("ARM: rockchip: fix the CPU soft reset"). Signed-off-by: Caesar Wang The breakage was a result of it being wrongly merged in my branch with the cache invalidation rework from Russell 02b4e2756e01c ("ARM: v7 setup function should invalidate L1 cache"). Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/platsmp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e72072b6d7a49ea09dd833c3bdaa300e86ab0671 Author: Ville Syrjälä Date: Fri Jul 3 11:22:27 2015 +0300 drm/i915: Drop a spurious intel_pre_plane_update() call Kill the extra intel_pre_plane_update() I accidentally added in commit 852eb00dc44ea2b8896e2fa27c6a36a1f697ba5a Author: Ville Syrjälä Date: Wed Jun 24 22:00:07 2015 +0300 drm/i915: Try to make sure cxsr is disabled around plane enable/disable This fixes a load of warnings from the frontbuffer tracking. Testcase: igt/kms_frontbuffer_tracking/fbc-1p-rte Tested-by: Paulo Zanoni Tested-by: Matt Roper Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 -- 1 file changed, 2 deletions(-) commit dfc2066d8f8f2d87c1d8d00024478403c04d4e50 Author: Jani Nikula Date: Thu Jul 2 17:43:25 2015 +0300 drm/i915/opregion: start using extended didl Adding support for did2, or the extended support display devices ID list, increases the total to 15. Signed-off-by: Jani Nikula Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_opregion.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) commit d5cbb22fcd0685944bbac80935b59df83e33e28e Author: Jani Nikula Date: Thu Jul 2 17:43:24 2015 +0300 drm/i915/opregion: abstract didl and did2 getter and setter Make it easier to handle the extended didl. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_opregion.c | 50 +++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 11 deletions(-) commit b4fe8156a72da0030f18fd16ce7ded3747f932bb Author: Jani Nikula Date: Thu Jul 2 17:43:23 2015 +0300 drm/i915/opregion: prefer DRM logging functions over pr_warn and dev_dbg Conform to same style as the rest of the driver. Signed-off-by: Jani Nikula Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_opregion.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit f6a430d8ee8dba13807b75845478a1920187840b Author: Jani Nikula Date: Thu Jul 2 17:43:22 2015 +0300 drm/i915/opregion: add new opregion stuff Inluding extended didl and cpdl fields Present since opregion version 3.0. Signed-off-by: Jani Nikula Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_opregion.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit 2d80391d36e698e8dabc3b3ff0969fc6fde156c4 Author: Jani Nikula Date: Thu Jul 2 17:43:21 2015 +0300 drm/i915/opregion: use BUILD_BUG_ON to verify mailbox struct sizes Signed-off-by: Jani Nikula Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_opregion.c | 5 +++++ 1 file changed, 5 insertions(+) commit 856974a401bacf4fee1f3e3b2f601b7abfd5fa2a Author: Jani Nikula Date: Thu Jul 2 16:05:28 2015 +0300 drm/i915/hotplug: document the hotplug handling in the driver Add an overview of the drm/i915 hotplug handling. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter Documentation/DocBook/drm.tmpl | 5 +++++ drivers/gpu/drm/i915/intel_hotplug.c | 39 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit 3e6da4a9d9005fbc83420686fb897bd8ad749e91 Author: Jani Nikula Date: Thu Jul 2 16:05:27 2015 +0300 drm/i915/audio: clarify HD audio documentation wrt modeset Clarify that audio enable/disable sequences are part of the modeset sequence. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_audio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c30400fcffb70d17bbf33eaff5020b83111bd66c Author: Paulo Zanoni Date: Fri Jul 3 12:31:30 2015 -0300 drm/i915: set FDI translations to NULL on SKL drivers/gpu/drm/i915/intel_ddi.c: In function ‘intel_prepare_ddi’: drivers/gpu/drm/i915/intel_ddi.c:517:6: warning: ‘ddi_translations_fdi’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (ddi_translations_fdi) ^ drivers/gpu/drm/i915/intel_ddi.c:446:30: note: ‘ddi_translations_fdi’ was declared here const struct ddi_buf_trans *ddi_translations_fdi; ^ This line used to be there, but was removed by: commit f8896f5d58e64bfd3c2b5f7c5ba5c3f3967e93c7 Author: David Weinehall Date: Thu Jun 25 11:11:03 2015 +030 drm/i915/skl: Buffer translation improvements Cc: David Weinehall Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 1 + 1 file changed, 1 insertion(+) commit b17d1bf16cc72a374a48d748940f700009d40ff4 Author: Uwe Kleine-König Date: Wed Feb 11 11:52:37 2015 +0100 gpio: make flags mandatory for gpiod_get functions Now that all[1] users of the gpiod_get functions are converted to make use of the up to now optional flags parameter, make it mandatory which allows to remove some cpp magic. [1] all but etraxfs-uart which is broken anyhow and I'm allowed to ignore it by Jesper Nilsson :-) Acked-by: Alexandre Courbot Signed-off-by: Uwe Kleine-König drivers/gpio/devres.c | 18 +++++----- drivers/gpio/gpiolib.c | 16 ++++----- include/linux/gpio/consumer.h | 82 ++++++++++++------------------------------- 3 files changed, 40 insertions(+), 76 deletions(-) commit a9ed33ca075f712cc7fd96eb84e3d322012fcaaf Author: Abdiel Janulgue Date: Wed Jul 1 10:12:23 2015 +0300 drm/i915: Expose I915_EXEC_RESOURCE_STREAMER flag and getparam Ensures that the batch buffer is executed by the resource streamer. And will let userspace know whether Resource Streamer is supported in the kernel. v2: Don't skip 1<<15 for the exec flags (Jani Nikula) v3: Use HAS_RESOURCE_STREAMER macro for execbuf validation (Chris Wilson) (from getparam patch) v2: Update I915_PARAM_HAS_RESOURCE_STREAMER so it's after I915_PARAM_HAS_GPU_RESET. v3: Only advertise RS support for hardware that supports it. v4: Add HAS_RESOURCE_STREAMER() macro (Chris) Testcase: igt/gem_exec_params Cc: Jani Nikula Cc: Kenneth Graunke Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Abdiel Janulgue [danvet: squash in getparam patch since it'd break bisect, suggested by Chris.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 3 +++ drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 14 ++++++++++++++ include/uapi/drm/i915_drm.h | 8 +++++++- 4 files changed, 27 insertions(+), 1 deletion(-) commit 4d666dbefcb094a2f35a0fc8a3c7b53dd8375e34 Author: Baruch Siach Date: Mon Jul 6 07:03:37 2015 +0300 crypto: arm - ignore generated SHA2 assembly files These files are generated since commits f2f770d74a8d (crypto: arm/sha256 - Add optimized SHA-256/224, 2015-04-03) and c80ae7ca3726 (crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON, 2015-05-08). Cc: Ard Biesheuvel Signed-off-by: Baruch Siach Acked-by: Ard Biesheuvel Signed-off-by: Herbert Xu arch/arm/crypto/.gitignore | 2 ++ 1 file changed, 2 insertions(+) commit 7abd75bf7ac6d04e0389472cf2cd3a8bf53e4894 Author: Nishanth Aravamudan Date: Thu Jul 2 15:40:09 2015 -0700 crypto: nx - do not emit extra output if status is disabled If the device-tree indicates the nx-842 device's status is 'disabled', we emit two messages: nx_compress_pseries ibm,compression-v1: nx842_OF_upd_status: status 'disabled' is not 'okay'. nx_compress_pseries ibm,compression-v1: nx842_OF_upd: device disabled Given that 'disabled' is a valid state, and we are going to emit that the device is disabled, only print out a non-'okay' status if it is not 'disabled'. Signed-off-by: Nishanth Aravamudan Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ec13bcbe07a202c32ea74927e27479aa4d19d1b1 Author: Nishanth Aravamudan Date: Thu Jul 2 15:39:21 2015 -0700 crypto: nx - rename nx842_{init, exit} to nx842_pseries_{init, exit} While there is no technical reason that both nx-842.c and nx-842-pseries.c can have the same name for the init/exit functions, it is a bit confusing with initcall_debug. Rename the pseries specific functions appropriately Signed-off-by: Nishanth Aravamudan Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit fa9a9a084a2153095d0433188be232b0127ab23c Author: Nishanth Aravamudan Date: Thu Jul 2 15:38:48 2015 -0700 crypto: nx - nx842_OF_upd_status should return ENODEV if device is not 'okay' The current documention mentions explicitly that EINVAL should be returned if the device is not available, but nx842_OF_upd_status() always returns 0. However, nx842_probe() specifically checks for non-ENODEV returns from nx842_of_upd() (which in turn calls nx842_OF_upd_status()) and emits an extra error in that case. It seems like the proper return code of a disabled device is ENODEV. Signed-off-by: Nishanth Aravamudan Signed-off-by: Herbert Xu drivers/crypto/nx/nx-842-pseries.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6170511a917679f8a1324f031a0a40f851ae91e9 Author: Tom Lendacky Date: Tue Jun 30 12:57:14 2015 -0500 crypto: ccp - Provide support to autoload CCP driver Add the necessary module device tables to the platform support to allow for autoloading of the CCP driver. This will allow for the CCP's hwrng support to be available without having to manually load the driver. The module device table entry for the pci support is already present. Signed-off-by: Tom Lendacky Signed-off-by: Herbert Xu drivers/crypto/ccp/ccp-platform.c | 2 ++ 1 file changed, 2 insertions(+) commit 6922528a04a810b2889e82a4dc17eab920379117 Author: Abdiel Janulgue Date: Tue Jun 16 13:39:42 2015 +0300 drm/i915: Enable resource streamer on Execlists GEN8 and above uses Execlists by default instead of the legacy ringbuffer for batch execution. This patch enables the resource streamer bits when required. Patch is based on the initial work by Minu Mathai This version also adds the required bits to enable GEN8 Resource Streamer context save and restore for Execlists. Cc: ville.syrjala@linux.intel.com Signed-off-by: Abdiel Janulgue Reviewed-by: Arun Siluvery Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 8 ++++++-- drivers/gpu/drm/i915/intel_lrc.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) commit 4c436d55b279bbc6b02aac02e7dc683fc09f884e Author: Abdiel Janulgue Date: Tue Jun 16 13:39:41 2015 +0300 drm/i915: Enable Resource Streamer state save/restore on MI_SET_CONTEXT Also clarify comments on context size that the extra state for Resource Streamer is included. v2: Don't remove the extended save/restore enabled for older platforms. (Ville) Use new MI_SET_CONTEXT defines for HSW RS save/restore state instead of extended save/restore. (Daniel) Suggested-by: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Abdiel Janulgue Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 4 +++- drivers/gpu/drm/i915/i915_reg.h | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) commit 919032ec7c758fd4d65f2a141d1e0a10152198c9 Author: Abdiel Janulgue Date: Tue Jun 16 13:39:40 2015 +0300 drm/i915: Enable resource streamer bits on MI_BATCH_BUFFER_START Adds support for enabling the resource streamer on the legacy ringbuffer for HSW and GEN8. Reviewed-by: Chris Wilson Signed-off-by: Abdiel Janulgue Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 8 ++++++-- drivers/gpu/drm/i915/intel_ringbuffer.h | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) commit e62925567c7926e78bc8ca976cde5c28ea265a49 Author: Vandana Kannan Date: Wed Jul 1 17:02:57 2015 +0530 drm/i915/bxt: BUNs related to port PLL This patch contains changes based on 2 updates to the spec: Port PLL VCO restriction raised up to 6700. Port PLL now needs DCO amp override enable for all VCO frequencies. v2: Sonika's review comment addressed - dcoampovr_en_h variable not required Based on a discussion with Siva, the following changes have been made. - replace dco_amp var with #define BXT_DCO_AMPLITUDE - set pll10 in a single assignment v3: Move DCO amplitude default value to i915_reg.h. Suggested by Siva. Signed-off-by: Vandana Kannan Reviewed-by: Sonika Jindal [v2] [danvet: Spell out BUN since not everyone knows what this means.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_ddi.c | 15 +++++---------- drivers/gpu/drm/i915/intel_display.c | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) commit eac477801924cac38a273338487cce9f460434bb Author: Uwe Kleine-König Date: Thu Mar 5 09:36:19 2015 +0100 usb: pass flags parameter to gpiod_get functions Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Currently this parameter is made optional with the help of a cpp trick. To allow dropping this hack convert callers to explictly pass a value for flags. Acked-by: Felipe Balbi Acked-by: Robert Jarzmik Signed-off-by: Uwe Kleine-König drivers/usb/gadget/udc/pxa27x_udc.c | 2 +- drivers/usb/phy/phy-generic.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) commit 75da3b1c24389fe78680269176de0332d35f7fad Author: Uwe Kleine-König Date: Fri Jun 12 09:04:55 2015 +0200 usb: dwc3: pci: make better use of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this additional parameter and the _optional variant to simplify the driver and improve error handling. Also expand the comment to explain why it's not sensible to switch to devm_gpiod_get and why the gpiod_put is also necessary. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Tested-by: Heikki Krogerus Signed-off-by: Uwe Kleine-König drivers/usb/dwc3/dwc3-pci.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 8e71c68074ff37348d586c87b0ee530e7440b094 Author: Uwe Kleine-König Date: Fri Jun 12 08:55:30 2015 +0200 phy: tusb1210: make better use of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Furthermore there is devm_gpiod_get_optional which is designed to get optional gpios. Simplify driver accordingly. Signed-off-by: Uwe Kleine-König drivers/phy/phy-tusb1210.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) commit 3bfe76806f705a24b82bc43c84c8506f3a44f77b Author: Uwe Kleine-König Date: Fri Jun 12 09:04:55 2015 +0200 NFC: nxp-nci_i2c: use flags argument of devm_gpiod_get_index Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify driver accordingly which even makes error checking more correct because gpiod_direction_{in,out}put might fail. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Acked-by: Oleg Zhurakivskyy Signed-off-by: Uwe Kleine-König drivers/nfc/nxp-nci/i2c.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit a33c380ef59353e550e852c82395306cf83cc7c0 Author: Uwe Kleine-König Date: Fri Jun 12 09:04:55 2015 +0200 media: i2c/adp1653: set enable gpio to output Without setting the direction of a gpio to output a call to gpiod_set_value doesn't have a defined outcome. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Acked-by: Sakari Ailus Acked-by: Pavel Machek Signed-off-by: Uwe Kleine-König drivers/media/i2c/adp1653.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7d891dbee52e0a843ee7724ad4100675cf2fe24c Author: Uwe Kleine-König Date: Fri Jun 12 09:04:55 2015 +0200 iio: magn: bmc150: use flags argument of devm_gpiod_get Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify driver accordingly. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Acked-by: Jonathan Cameron Signed-off-by: Uwe Kleine-König drivers/iio/magnetometer/bmc150_magn.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 7d4eb6f2110d9a9f9fe8d39eabddadbd35eb12b2 Author: Uwe Kleine-König Date: Fri Jun 12 09:04:55 2015 +0200 iio: light: stk3310: use flags argument of devm_gpiod_get Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Simplify driver accordingly. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Acked-by: Jonathan Cameron Signed-off-by: Uwe Kleine-König drivers/iio/light/stk3310.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit 26a5bd26499fba331ecaa1e8ce8cc2b8c6fac569 Author: Uwe Kleine-König Date: Wed Feb 11 17:32:53 2015 +0100 drm/tilcdc: panel: make better use of gpiod API Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Furthermore there is devm_gpiod_get_optional which is designed to get optional gpios. Simplify driver accordingly. Acked-by: Alexandre Courbot Acked-by: Linus Walleij Signed-off-by: Uwe Kleine-König drivers/gpu/drm/tilcdc/tilcdc_panel.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) commit 89ae3d3b9a384e75158f71ea9b878c8a45f3d582 Author: Uwe Kleine-König Date: Tue Jun 9 11:35:25 2015 +0200 drm/msm/dp: use flags argument of devm_gpiod_get to set direction Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for output. Use this to simplify the driver. Furthermore this is one caller less that stops us making the flags argument to gpiod_get*() mandatory. Acked-by: Alexandre Courbot Acked-by: Linus Walleij Signed-off-by: Uwe Kleine-König drivers/gpu/drm/msm/edp/edp_ctrl.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit 7a0baa6234468aa387f9b8a1a79dc2a4b4821f67 Author: Ville Syrjälä Date: Tue Jun 30 15:33:54 2015 +0300 Revert "drm/i915: Disable 12bpc hdmi for now" HDMI 12bpc should be working fine now. Let it loose. This reverts commit 5e3daaca09f5158eff9c92290faa1d2001ecc6e4. v2: Rebased due to CHV/BXT port clock check improvemnts Signed-off-by: Ville Syrjälä Reviewed-and-tested-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit e64e739ed6e5409b86ab5896cad4edb4570bf8ec Author: Ville Syrjälä Date: Tue Jun 30 19:23:59 2015 +0300 drm/i915: Account for CHV/BXT DPLL clock limitations CHV/BXT DPLL can't generate frequencies in the 216-240 MHz range. Account for that when checking whether the HDMI port clock is valid. This is particularly important for BXT since it can otherwise do 12bpc, and standard 1920x1080p60 CEA modes land right in the middle of that range when the clock gets multiplied to account for 12bpc. With the extra checks we will now filter out any mode where both 8bpc and 12bpc clock are within the gap. During modeset we then pick whichever mode works, favoring 12bpc if both are possible. 12bpc isn't supported on CHV so we simply end up filtering out any mode where the 8bpc port clock is in the gap. v2: Fix crtc_clock vs. port_clock fumble in compute_config() (Imre) Signed-off-by: Ville Syrjälä Reviewed-and-tested-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 58 +++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 15 deletions(-) commit 6fd765d0591a79934b268137fc7c0fbfa0e2e3b4 Author: Ville Syrjälä Date: Tue Jun 30 15:33:52 2015 +0300 drm/i915: Bump HDMI min port clock to 25 MHz Increase the HDMI port minimum port clock from 20 to 25 MHz. This is is the minimum listed in the DVI/HDMI specs, and it's also the documented minimum DPLL frequency for most of our platforms. Signed-off-by: Ville Syrjälä Reviewed-and-tested-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 398a017e91d1518e303886398b15b1851c3d902c Author: Ville Syrjälä Date: Tue Jun 30 15:33:51 2015 +0300 drm/i915: Fix HDMI 12bpc and pixel repeat clock readout for DDI platforms Take the HDMI 12bpc mode and pixel repeat into account when extracting the dotclock from the hardware on DDI platforms. Tested on HSW only. Signed-off-by: Ville Syrjälä Reviewed-and-tested-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 49 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 25 deletions(-) commit ec530829ed064bc63d260f309e3ef88e0764132b Author: Markus Elfring Date: Sun Jul 5 21:55:10 2015 +0200 GPU-DRM: Delete an unnecessary check before drm_property_unreference_blob() The drm_property_unreference_blob() 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 Reviewed-by: Zhao Junwang Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 765b50030c218f65ee4ffd2eeb07045aa79fd5ee Author: Ulrich Hecht Date: Mon Jun 1 16:22:57 2015 +0200 ARM: shmobile: gose: enable R-Car Gen2 regulator quirk Regulator setup seems identical to Koelsch. Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 1 + arch/arm/mach-shmobile/Makefile | 1 + arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) commit ec60d95b4faccd61c7ce10316ebc9333f2d7674a Author: Ulrich Hecht Date: Mon Jun 1 16:22:54 2015 +0200 ARM: shmobile: Basic r8a7793 SoC support Minimal support without power management or SMP. Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 4 ++++ arch/arm/mach-shmobile/Makefile | 1 + arch/arm/mach-shmobile/setup-r8a7793.c | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) commit bd82aff9192dad2bfd3cb3fc19fdf741c2f6028e Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:35 2015 +0200 ARM: shmobile: r8a7790: Make struct rcar_sysc_ch const Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/smp-r8a7790.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5afcd90f65ac990ca08b101a0e0fd9eac4e0dcde Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:34 2015 +0200 ARM: shmobile: r8a7779: Make struct rcar_sysc_ch const Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-r8a7779.c | 3 ++- arch/arm/mach-shmobile/smp-r8a7779.c | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) commit bcb8243792eaa855a51c96bfeaa5dbca19f48d07 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:32 2015 +0200 ARM: shmobile: R-Car: Get rid of on_off_fn() function pointer Simplify the power request code by passing an "on" flag, and picking the right status bit and register offset in the innermost function, based on this flag. This allows to remove the rcar_sysc_pwr_{off,on}() helper functions, and the function pointer through which they were called. Make sr_bit and reg_offs unsigned while we're at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rcar.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) commit 21437c53f3dc2e1e52ccb8aed0a65dd3879ca671 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:31 2015 +0200 ARM: shmobile: R-Car: Use BIT() macro instead of open coding Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rcar.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 624deb39a1c684b42569a3ec6a0fdcc74b950ed3 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:30 2015 +0200 ARM: shmobile: R-Car: Make struct rcar_sysc_ch * parameters const The passed struct rcar_sysc_ch is never modified, so it can be const. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rcar.c | 16 ++++++++-------- arch/arm/mach-shmobile/pm-rcar.h | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) commit 2f575fcff1fad24e97b8e7d793ad9af9ae5b8a17 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:29 2015 +0200 ARM: shmobile: R-Car: Break infinite loop rcar_sysc_update() loops (with interrupts disabled and while holding a spinlock) until submitting a power shutoff or resume request fails, or until the submitted request was accepted. If none of these conditions becomes true, this forms an infinite loop. Put a limit on the maximum number of loop iterations, and add a small delay to each iteration, to fix this. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rcar.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 6fd2242e60e89a26e731e57dbf8f88d6639e09de Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:28 2015 +0200 ARM: shmobile: R-Car: Shrink rcar_sysc_ch size Shrink the individual fields in struct rcar_sysc_ch, as unsigned long or int is overkill: - chan_offs contains a register offset relative to a base value (< 512), - chan_bit and isr_bit contain bit indices (0-31). This reduces the size of each instance from 3 (4 on 64-bit) 32-bit words to 1 32-bit word. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rcar.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 577d104d85f05c1de6e56784a5da3e0fb4746f3a Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:27 2015 +0200 ARM: shmobile: R-Car: Improve documentation Add more SYSC register documentation. Use definitions instead of hardcoded numbers. Comment important operations. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rcar.c | 46 ++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 14 deletions(-) commit 7bf46d0be278a3586c78322c65ceff5fd03bb95d Author: Magnus Damm Date: Thu Jun 25 17:57:28 2015 +0900 ARM: shmobile: r8a7779: Configure IRLM mode via DT Adjust the r8a7779 SoC DTS and the Marzen Reference C board code to use DTS only for INTC-IRQPIN IRLM setup. Signed-off-by: Magnus Damm Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7779.dtsi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit c73ddf42e7a93dabf918b22d3cc2ce02b90d4155 Author: Geert Uytterhoeven Date: Wed Jun 17 15:03:36 2015 +0200 ARM: shmobile: r8a7794 dtsi: Use "arm,gic-400" for GIC Replace the "arm,cortex-a15-gic" compatible value for the GIC by "arm,gic-400", as the R-Car Gen2 GIC is assumed to be a GIC-400. This has been confirmed by reading the GICD_IIDR register (on r8a7791), which reports 0x0200043b (GIC-400 = 0x02, 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/r8a7794.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b3b3268518fb67c7accf83d786909b2a8cbee63 Author: Geert Uytterhoeven Date: Wed Jun 17 15:03:35 2015 +0200 ARM: shmobile: r8a7793 dtsi: Use "arm,gic-400" for GIC Replace the "arm,cortex-a15-gic" compatible value for the GIC by "arm,gic-400", as the R-Car Gen2 GIC is assumed to be a GIC-400. This has been confirmed by reading the GICD_IIDR register (on r8a7791), which reports 0x0200043b (GIC-400 = 0x02, 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/r8a7793.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d238b5e628c98c39fe669610e6ab8e06a6f00b5b Author: Geert Uytterhoeven Date: Wed Jun 17 15:03:34 2015 +0200 ARM: shmobile: r8a7791 dtsi: Use "arm,gic-400" for GIC Replace the "arm,cortex-a15-gic" compatible value for the GIC by "arm,gic-400", as the R-Car Gen2 GIC is assumed to be a GIC-400. This has been confirmed by reading the GICD_IIDR register, which reports 0x0200043b (GIC-400 = 0x02, 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/r8a7791.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e715e9c57826cc3370fc5fcdb9d57602d52bba9a Author: Geert Uytterhoeven Date: Wed Jun 17 15:03:33 2015 +0200 ARM: shmobile: r8a7790 dtsi: Use "arm,gic-400" for GIC Replace the "arm,cortex-a15-gic" compatible value for the GIC by "arm,gic-400", as the R-Car Gen2 GIC is assumed to be a GIC-400. This has been confirmed by reading the GICD_IIDR register (on r8a7791), which reports 0x0200043b (GIC-400 = 0x02, 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/r8a7790.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eaec1d675c194965081297014503938a9f58e2f7 Author: Geert Uytterhoeven Date: Wed Jun 17 15:03:32 2015 +0200 ARM: shmobile: r8a73a4 dtsi: Use "arm,gic-400" for GIC Replace the "arm,cortex-a15-gic" compatible value for the GIC by "arm,gic-400", as the documentation states it's a GIC-400. This has been confirmed by reading the GICD_IIDR register, which reports 0x0200043b (GIC-400 = 0x02, 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/r8a73a4.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ffd2f9a5afb730b9f6c1d1938934213c3cfcf249 Author: Geert Uytterhoeven Date: Wed Jun 17 10:38:56 2015 +0200 ARM: shmobile: armadillo800eva dts: Add pinctrl and gpio-hog for lcdc0 Configure pinctrl and a GPIO-controller board mux for LCD use. This allows the armadillo800eva board staging code to enable lcdc0. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit f25d6b977240117eb4b6e3111f4eb41f968d28fb Author: Sergei Shtylyov Date: Tue Jun 16 02:43:51 2015 +0300 ARM: shmobile: r8a7790: add EtherAVB DT support Define the generic R8A7790 part of the EtherAVB device node. Based on original patch by Mitsuhiro Kimura . Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 63d2d750c902dec77439f12b2eac9709468298ce Author: Sergei Shtylyov Date: Tue Jun 16 02:42:42 2015 +0300 ARM: shmobile: r8a7790: add EtherAVB clocks Add the EtherAVB clock to the R8A7790 device tree. Based on original patch by Mitsuhiro Kimura . Signed-off-by: Sergei Shtylyov Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7790.dtsi | 10 ++++++---- include/dt-bindings/clock/r8a7790-clock.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) commit b8af4591db5bb0529b7f56d25b2e7db3eb71fdf6 Author: Ulrich Hecht Date: Mon Jun 1 16:22:56 2015 +0200 ARM: shmobile: r8a7793: add minimal Gose board device tree Minimal DT description and Makefile entry for the Gose eval board. Support for console, timer, and Ethernet. Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/r8a7793-gose.dts | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) commit 0e03e8aed92ce4757a9dbfbf2b7f4edce6380f92 Author: Ulrich Hecht Date: Mon Jun 1 16:22:55 2015 +0200 ARM: shmobile: add r8a7793 minimal SoC device tree Minimal r8a7793 device tree including one CPU core, interrupt controllers, timers, two serial ports, and the Ethernet controller, plus the required clock descriptions. Signed-off-by: Ulrich Hecht Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/r8a7793.dtsi | 367 ++++++++++++++++++++++++++++++ include/dt-bindings/clock/r8a7793-clock.h | 164 +++++++++++++ 2 files changed, 531 insertions(+) commit dbeb9728d4b9785fc78336038654eb2bac155d92 Author: Simon Horman Date: Tue Jun 2 10:34:37 2015 +0900 ARM: multi_v7_defconfig: Enable shmobile r8a7793/gose platform Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/multi_v7_defconfig | 1 + 1 file changed, 1 insertion(+) commit b059be7ecfa80550f635194f7c12578423177729 Author: Simon Horman Date: Tue Jun 2 10:34:36 2015 +0900 ARM: shmobile: Enable gose board in multiplatform defconfig Signed-off-by: Simon Horman Acked-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/configs/shmobile_defconfig | 1 + 1 file changed, 1 insertion(+) commit 20834a406ee20b57c796f9911f06600b71c75788 Author: Geert Uytterhoeven Date: Wed Jun 17 11:34:21 2015 +0200 ARM: shmobile: timer: r8a73a4 and r8a7790 are multi-platform only Since commits e042681894b62d60 ("ARM: shmobile: r8a7790: Remove legacy code") and 9d07d414d4c33d86 ("ARM: shmobile: r8a73a4: ape6evm: Remove legacy platform"), the R-Mobile APE6 and R-Car H2 SoCs are supported by multiplatform kernels only. Hence we can drop checks for these SoCs in legacy kernel builds. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/timer.c | 12 ------------ 1 file changed, 12 deletions(-) commit d62ba10c31ac16aaa16f5b49308658ea2f1e71a9 Author: Geert Uytterhoeven Date: Wed Jun 17 11:34:20 2015 +0200 ARM: shmobile: R-Car Gen2: CONFIG_ARCH_SHMOBILE_MULTI is always set Since commit e042681894b62d60 ("ARM: shmobile: r8a7790: Remove legacy code"), all R-Car Gen2 SoCs are supported by multiplatform kernels only. As CONFIG_ARCH_SHMOBILE_MULTI is always set for shmobile multiplatform kernels, we can remove related #ifdefs in code specific to R-Car Gen2 SoCs. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/setup-rcar-gen2.c | 2 -- 1 file changed, 2 deletions(-) commit 11e386719b08606502477cddf10c832b6658bb55 Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:27 2015 +0200 ARM: shmobile: Remove obsolete zboot support The last user of the zboot code was the KZM-A9-GT legacy board code, which has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/compressed/Makefile | 4 - arch/arm/boot/compressed/head-shmobile.S | 71 -------------- arch/arm/mach-shmobile/include/mach/zboot.h | 14 --- arch/arm/mach-shmobile/include/mach/zboot_macros.h | 108 --------------------- 4 files changed, 197 deletions(-) commit b587288001f05c0e6b4bdb5a5f0e7a28594cbf0d Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:26 2015 +0200 ARM: shmobile: R-Mobile: Remove legacy PM Domain code The last user of the legacy R-Mobile PM Domain code was the r8a7740 legacy SoC code, which has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rmobile.c | 39 ------------------------------------- arch/arm/mach-shmobile/pm-rmobile.h | 24 ----------------------- 2 files changed, 63 deletions(-) commit 68a31785697c6292e4de3f54914a6ff5ebd0a82d Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:25 2015 +0200 ARM: shmobile: Remove unused dma-register.h The last users of "dma-register.h" were the sh73a0 and r8a7740 legacy SoC code, which have been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/dma-register.h | 84 ----------------------------------- 1 file changed, 84 deletions(-) commit 44d88c754e57a6d9d7ae6ac7540b9596f9b61902 Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:24 2015 +0200 ARM: shmobile: Remove legacy SoC code for R-Mobile A1 The last user of the R-Mobile A1 (r8a7740) legacy SoC code was the Armadillo-800 EVA legacy board code, which has been removed. Signed-off-by: Geert Uytterhoeven [horms: resolved trivial conflicts with v4.2-rc1] Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 7 - arch/arm/mach-shmobile/Makefile | 3 +- arch/arm/mach-shmobile/clock-r8a7740.c | 675 -------------------------------- arch/arm/mach-shmobile/pm-r8a7740.c | 129 ------- arch/arm/mach-shmobile/r8a7740.h | 58 --- arch/arm/mach-shmobile/setup-r8a7740.c | 678 +-------------------------------- 6 files changed, 4 insertions(+), 1546 deletions(-) commit 6a902a2ea1ffe432ce46bb562b9dcae8f396b3b4 Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:23 2015 +0200 ARM: shmobile: Drop r8a7740-armadillo800eva.dtb for legacy builds The legacy board code for Armadillo-800 EVA has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/Makefile | 1 - 1 file changed, 1 deletion(-) commit 4e7115ad44d544847a294d7d634f5974e344708e Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:22 2015 +0200 ARM: shmobile: Remove legacy armadillo800eva_defconfig The legacy board code for Armadillo-800 EVA has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman MAINTAINERS | 1 - arch/arm/configs/armadillo800eva_defconfig | 162 ----------------------------- 2 files changed, 163 deletions(-) commit 1fa59bda21c7fa3644e374be0547395975286599 Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:21 2015 +0200 ARM: shmobile: Remove legacy board code for Armadillo-800 EVA The Armadillo-800 EVA board is sufficiently supported by DT-based and board-less R-Mobile A1 (r8a7740) multiplatform kernels, and board staging code. Hence remove the legacy board code to reduce maintenance effort. Lacking areas are: - USB (it doesn't work in legacy, neither), - HDMI (it doesn't work in legacy, neither), - Camera (we don't care), - DMAC/IPMMU (no DT bindings are planned). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 9 - arch/arm/mach-shmobile/Makefile | 1 - arch/arm/mach-shmobile/Makefile.boot | 1 - arch/arm/mach-shmobile/board-armadillo800eva.c | 1365 ------------------------ 4 files changed, 1376 deletions(-) commit 9a9863987bf7307f619f1dbba678a3e6d65c901a Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:20 2015 +0200 ARM: shmobile: Remove legacy SoC code for SH-Mobile AG5 The last user of the SH-Mobile AG5 (sh73a0) legacy SoC code was the KZM-A9-GT legacy board code, which has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 9 - arch/arm/mach-shmobile/Makefile | 3 +- arch/arm/mach-shmobile/clock-sh73a0.c | 752 ---------------------------------- arch/arm/mach-shmobile/pm-sh73a0.c | 32 -- arch/arm/mach-shmobile/setup-sh73a0.c | 739 +-------------------------------- arch/arm/mach-shmobile/sh73a0.h | 83 ---- arch/arm/mach-shmobile/smp-sh73a0.c | 8 - 7 files changed, 2 insertions(+), 1624 deletions(-) commit d99f70b9533dc355e0facbaee8a42dcd821a5e73 Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:19 2015 +0200 ARM: shmobile: Drop sh73a0-kzm9g.dtb for legacy builds The legacy board code for KZM-A9-GT has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/boot/dts/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 04320ccfc11b9ca9b7cf933e221a765d78705cf8 Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:18 2015 +0200 ARM: shmobile: Remove legacy kzm9g_defconfig The legacy board code for KZM-A9-GT has been removed. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman MAINTAINERS | 1 - arch/arm/configs/kzm9g_defconfig | 154 --------------------------------------- 2 files changed, 155 deletions(-) commit 30f8925a57d8ad4990fca14bcf454abd91228afd Author: Geert Uytterhoeven Date: Wed Jun 17 11:31:17 2015 +0200 ARM: shmobile: Remove legacy board code for KZM-A9-GT The KZM-A9-GT board is sufficiently supported by DT-based and board-less SH-Mobile AG5 (sh73a0) multiplatform kernels. Hence remove the legacy board code to reduce maintenance effort. Lacking areas are: - USB (it does't work in legacy, neither), - LCDC (the LCDC is wired to the legacy INTC, which is not planned to be supported with DT). - DMAC/IPMMU (no DT bindings are planned). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/Kconfig | 8 - arch/arm/mach-shmobile/Makefile | 1 - arch/arm/mach-shmobile/Makefile.boot | 1 - arch/arm/mach-shmobile/board-kzm9g.c | 916 --------------------- arch/arm/mach-shmobile/include/mach/head-kzm9g.txt | 410 --------- arch/arm/mach-shmobile/include/mach/zboot.h | 5 - arch/arm/mach-shmobile/intc-sh73a0.c | 337 -------- 7 files changed, 1678 deletions(-) commit 564ec128320b3a69e7be6bed938be5b78e5aac95 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:33 2015 +0200 ARM: shmobile: r8a7779: Remove GENPD_FLAG_PM_CLK flag The R-Car SYSC PM Domain only manages power domains for the main CPUs and for coprocessors. It does not fill in the genpd .{at,de}tach_dev() callbacks, and no power management clocks are registered for devices. Hence pm_clk_{suspend,resume}() are no-ops, and setting of the GENPD_FLAG_PM_CLK flag can be removed. Originally the clock handling was copied from the R-Mobile PM Domain code, which does manage a clock domain, in addition to device power domains. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-r8a7779.c | 1 - 1 file changed, 1 deletion(-) commit 23e95fc2964de5a38c1c76109188756420268858 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:26 2015 +0200 ARM: shmobile: R-Mobile: Use BIT() macro instead of open coding Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rmobile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 23758258220c2fcdabb30a3c6fe0a3ce6c705550 Author: Geert Uytterhoeven Date: Thu Jun 4 20:22:25 2015 +0200 ARM: shmobile: R-Mobile: Move to_rmobile_pd from header to source file to_rmobile_pd() is only used inside pm-rmobile.c Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman arch/arm/mach-shmobile/pm-rmobile.c | 6 ++++++ arch/arm/mach-shmobile/pm-rmobile.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) commit e6ef15e4f6ca9cc760030f8f0616e25eed9449e4 Author: Chris Zhong Date: Tue Jun 23 20:53:40 2015 +0800 ARM: rockchip: remove some useless macro in pm.h These are actually not used in the pm code, as we moved suspend handling to the clock driver, remove them here. Signed-off-by: Chris Zhong Reviewed-by: Douglas Anderson Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/pm.h | 7 ------- 1 file changed, 7 deletions(-) commit 134f1f609bdf2f67ae23b7b1b686a3b9d5c67b03 Author: Chris Zhong Date: Tue Jun 23 20:53:39 2015 +0800 ARM: rockchip: add support holding 24Mhz osc during suspend If we want to wake up system via usb, the 24Mhz osc could not be disabled during suspend, read the usb phy SIDDQ bit to decide whether to switch to 32khz clock-in. Signed-off-by: Chris Zhong Reviewed-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/pm.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) commit 7f0b61ad34f04b076a3d1e2b5cfc6e1fae853ec4 Author: Caesar Wang Date: Tue Jun 9 17:49:59 2015 +0800 ARM: rockchip: fix the SMP code style Use the below scripts to check: scripts/checkpatch.pl -f --subject arch/arm/mach-rockchip/platsmp.c Signed-off-by: Caesar Wang Reviewed-by: Douglas Anderson Reviewed-by: Kever Yang Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/platsmp.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit e306bc16c53199e7440e1fee69dd91dc0a56edee Author: Caesar Wang Date: Tue Jun 9 17:49:58 2015 +0800 ARM: rockchip: ensure CPU to enter WFI/WFE state The patch can ensure that v7_exit_coherency_flush() in rockchip_cpu_die() executed in time. The mdelay(1) has enough time to fix the problem of CPU offlining. That's a workaround way in rockchip hotplug code, At least, we haven't a better way to solve it. Who know, that maybe fixed by chip (hardware) in the future. Signed-off-by: Caesar Wang Reviewed-by: Douglas Anderson Reviewed-by: Kever Yang Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/platsmp.c | 7 +++++++ 1 file changed, 7 insertions(+) commit fe4407c0dc58215a7abfb7532740d79ddabe7a7a Author: Caesar Wang Date: Tue Jun 9 17:49:57 2015 +0800 ARM: rockchip: fix the CPU soft reset We need different orderings when turning a core on and turning a core off. In one case we need to assert reset before turning power off. In ther other case we need to turn power on and the deassert reset. In general, the correct flow is: CPU off: reset_control_assert regmap_update_bits(pmu, PMU_PWRDN_CON, BIT(pd), BIT(pd)) wait_for_power_domain_to_turn_off CPU on: regmap_update_bits(pmu, PMU_PWRDN_CON, BIT(pd), 0) wait_for_power_domain_to_turn_on reset_control_deassert This is needed for stressing CPU up/down, as per: cd /sys/devices/system/cpu/ for i in $(seq 10000); do echo "================= $i ============" for j in $(seq 100); do while [[ "$(cat cpu1/online)$(cat cpu2/online)$(cat cpu3/online)" != "000"" ]] echo 0 > cpu1/online echo 0 > cpu2/online echo 0 > cpu3/online done while [[ "$(cat cpu1/online)$(cat cpu2/online)$(cat cpu3/online)" != "111" ]]; do echo 1 > cpu1/online echo 1 > cpu2/online echo 1 > cpu3/online done done done The following is reproducable log: [34466.186812] PM: noirq suspend of devices complete after 0.669 msecs [34466.186824] Disabling non-boot CPUs ... [34466.187509] CPU1: shutdown [34466.188672] CPU2: shutdown [34473.736627] Kernel panic - not syncing:Watchdog detected hard LOCKUP on cpu 0 ....... or others similar log: ....... [ 4072.454453] CPU1: shutdown [ 4072.504436] CPU2: shutdown [ 4072.554426] CPU3: shutdown [ 4072.577827] CPU1: Booted secondary processor [ 4072.582611] CPU2: Booted secondary processor Tested by cpu up/down scripts, the results told us need delay more time before write the sram. The wait time is affected by many aspects (e.g: cpu frequency, bootrom frequency, sram frequency, bus speed, ...). Although the cpus other than cpu0 will write the sram, the speedy is no the same as cpu0, if the cpu0 early wake up, perhaps the other cpus can't startup. As we know, the cpu0 can wake up when the cpu1/2/3 write the 'sram+4/8' and send the sev. Anyway..... At the moment, 1ms delay will be happy work for cpu up/down scripts test. Signed-off-by: Caesar Wang Reviewed-by: Doug Anderson Reviewed-by: Kever Yang Fixes: 3ee851e212d0 ("ARM: rockchip: add basic smp support for rk3288") Cc: stable@vger.kernel.org Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/platsmp.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) commit 33939403112791866da6b64875385fa1b7d9865a Author: Doug Anderson Date: Wed May 20 13:34:08 2015 -0700 ARM: rockchip: restore dapswjdp after suspend In the commit (0ea001d ARM: rockchip: disable dapswjdp during suspend) we made the assumption that we didn't need to restore dapswjdp after suspend because "the MASKROM will enable it back". It turns out that's not a safe assumption. In some cases (pending interrupts) it's possible that the WFI might act as a no-op and the MaskROM will never run. Since we're changing the bit, we should restore it ourselves. Signed-off-by: Doug Anderson Reviewed-by: Chris Zhong Signed-off-by: Heiko Stuebner arch/arm/mach-rockchip/pm.c | 5 +++++ 1 file changed, 5 insertions(+) commit 1a1b698b115467242303daf5fe1d3c9886c2fa17 Author: Heiko Stuebner Date: Fri Jun 19 16:31:14 2015 +0200 ARM: dts: rockchip: fix rk3288 watchdog irq The watchdog irq is actually SPI 79, which translates to the original 111 in the manual where the SPI irqs start at 32. The current dw_wdt driver does not use the irq at all, so this issue never surfaced. Nevertheless fix this for a time we want to use the irq. Fixes: 2ab557b72d46 ("ARM: dts: rockchip: add core rk3288 dtsi") Signed-off-by: Heiko Stuebner Reviewed-by: Douglas Anderson arch/arm/boot/dts/rk3288.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 270c7b18d7c0f17cfda2bbdafba25ef2f885f9a5 Author: Romain Perier Date: Mon Jun 15 17:41:41 2015 +0000 ARM: dts: rockchip: Add ramp delay for vdd_cpu in firefly board dts Adds ramp delay for the vdd_cpu output. It removes warning "ramp_delay not set" emitted by the function regulator_set_voltage_time_sel() by the same time, which floods kernel logs. Signed-off-by: Romain Perier Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288-firefly.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit e6b54649adacafb22c0c2d0496baf5396f8ed0be Author: Romain Perier Date: Sat Jun 20 12:27:16 2015 +0000 ARM: dts: rockchip: Add STMMAC reset signal in GMAC interface for rk3288 Which fixes warning "no reset control found" by the same time Signed-off-by: Romain Perier Signed-off-by: Heiko Stuebner arch/arm/boot/dts/rk3288.dtsi | 2 ++ 1 file changed, 2 insertions(+) commit fcc577dd55db193926537e0e4de98492d665446b Author: Cristina Opriceana Date: Tue Jun 23 16:34:19 2015 +0300 iio: Fix parameters in iio_triggered_buffer_setup This patch renames the top half handler and the bottom half handler of iio_triggered_buffer_setup() in accordance with their usage. The bottom half has been renamed to reflect the fact that it is a thread based call, compliant with iio_alloc_pollfunc(). The names of the parameters were swapped, thus creating confusion. Signed-off-by: Cristina Opriceana Signed-off-by: Jonathan Cameron drivers/iio/industrialio-triggered-buffer.c | 12 ++++++------ include/linux/iio/triggered_buffer.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) commit 5e913d27f91aa15e1311399385579bef5238e2cd Author: Tiberiu Breana Date: Wed Jun 24 17:01:49 2015 +0300 iio: accel: Add sampling rate support for STK8312 Added support for setting the STK8312 accelerometer's sampling rate. Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 96 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 14 deletions(-) commit 95c12bba51c37359073b34f1a56fe396bd33d3cf Author: Tiberiu Breana Date: Wed Jun 24 17:01:48 2015 +0300 iio: accel: Add buffer mode for Sensortek STK8312 Added triggered buffer mode support for the STK8312 accelerometer. Additional changes: - set_mode now sets operation mode directly, no longer masking the register's previous value - read_accel now returns raw acceleration data instead of the sign_extend32 value - read_raw will now enable/disable the sensor with each reading Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8312.c | 300 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 265 insertions(+), 35 deletions(-) commit db6a19b8251f089afcd40ed116ffdc2326f704a8 Author: Tiberiu Breana Date: Wed Jun 24 16:54:46 2015 +0300 iio: accel: Add trigger support for STK8BA50 Add data-ready interrupts and trigger support for STK8BA50. Additional changes: - read_accel now returns raw acceleration data instead of the sign_extend32 value - read_raw will now enable/disable the sensor with each reading Change-Id: I9c2d7be4256b2dcc5546e4432308ea54f8004333 Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8ba50.c | 296 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 271 insertions(+), 25 deletions(-) commit 9690d81a02dc4eea78de1686c3bf23a8dd4c0f28 Author: Tomasz Duszynski Date: Tue Jun 23 20:45:48 2015 +0200 iio: pressure: ms5611: add support for MS5607 temperature and pressure sensor MS5607 is temperature and pressure sensor which hardware is similar to MS5611. Both sensors share command protocol and support both I2C and SPI serial protocols. They only differ in compensation algorithms. Signed-off-by: Tomasz Duszynski Signed-off-by: Jonathan Cameron drivers/iio/pressure/Kconfig | 2 +- drivers/iio/pressure/ms5611.h | 16 +++++++- drivers/iio/pressure/ms5611_core.c | 76 +++++++++++++++++++++++++++++++++----- drivers/iio/pressure/ms5611_i2c.c | 5 ++- drivers/iio/pressure/ms5611_spi.c | 6 ++- 5 files changed, 88 insertions(+), 17 deletions(-) commit 7cb46c2a0666547493132327ccfc0698d90e52f7 Author: Tomasz Duszynski Date: Tue Jun 23 20:45:47 2015 +0200 iio: pressure: ms5611: remove IIO_CHAN_INFO_SCALE from mask IIO_CHAN_INFO_SCALE is useful whenever conversion to standard units is done in userspace. In this case conversion is handled by driver so this bit is unnecessary. Signed-off-by: Tomasz Duszynski Signed-off-by: Jonathan Cameron drivers/iio/pressure/ms5611_core.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 57f7d509c8f60e66d69ac216a03ef39c5ea1ddb8 Author: Peter Meerwald Date: Sun Jun 21 23:50:22 2015 +0200 iio: tmp006: Use GENMASK Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/temperature/tmp006.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4acaf96f747d0cfd6030bde362c1189d248dacff Author: Antonio Borneo Date: Tue Jun 23 22:52:28 2015 +0800 iio: ssp_sensors: Remove redundant spi driver bus initialization In ancient times it was necessary to manually initialize the bus field of an spi_driver to spi_bus_type. These days this is done in spi_register_driver(), so we can drop the manual assignment. Signed-off-by: Antonio Borneo To: Jonathan Cameron To: Lars-Peter Clausen To: Karol Wrona To: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Karol Wrona Signed-off-by: Jonathan Cameron drivers/iio/common/ssp_sensors/ssp_dev.c | 1 - 1 file changed, 1 deletion(-) commit e8d0927a19f11cebc4381f5f0cac8fa37154b08a Author: Tiberiu Breana Date: Fri Jul 3 12:57:36 2015 +0300 tools: iio: Add single-byte case for generic_buffer Some sensors export data in an 8-bit format. Add a single-byte case for the generic_buffer tool so that these sensors' buffer data can be visualized. Signed-off-by: Tiberiu Breana Reviewed-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit a3d1d001c9c583c79b1d9ab20f0a24333e35a3f8 Author: Daniel Vetter Date: Fri Jul 3 15:53:23 2015 +0200 drm/i915: Update DRIVER_DATE to 20150703 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cb76b1ca9174aa29d4c7c0f4aef113be203b600c Author: Geert Uytterhoeven Date: Tue Jun 23 15:04:29 2015 +0200 spi: rspi: Make qspi_set_send_trigger() return "unsigned int" qspi_set_send_trigger() returns an unsigned value, so make it return "unsigned int". Update the loop variables qspi_trigger_transfer_out_int() to match the above. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-rspi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 5d4db691ed978080435f4e5aad2ce707294a75b4 Author: Geert Uytterhoeven Date: Tue Jun 23 15:04:28 2015 +0200 spi: rspi: Drop variable "error" in qspi_trigger_transfer_out_in() Just use "ret" instead, for consistency with other similar functions. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown drivers/spi/spi-rspi.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) commit 1f96beec7a44f46bf277e2050a7a5a0308831d61 Author: Jarkko Sakkinen Date: Fri Jul 3 14:17:29 2015 +0300 drm: remove redundant code form drm_ioc32.c The compat ioctl handler ends up calling access_ok() twice: first indirectly inside compat_alloc_user_space() and then after returning from that function. This patch fixes issue. v2: there were three invalid removals of access_ok() that I've fixed. Also went through all the changes couple of times and verified that access_ok() is only removed when the buffer is allocated with compat_alloc_user_space(). My deepest apologies for this kind of sloppiness! Signed-off-by: Jarkko Sakkinen Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_ioc32.c | 55 +++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 29 deletions(-) commit e4f31ad2b7138db449310c9b63d402a29dc0e1c9 Author: Daniel Vetter Date: Thu Jul 2 16:33:53 2015 +0200 drm: reset empty state in transitional helpers Transitional drivers might not have all the state frobbing lined up yet. But since the initial code has been merged a lot more state was added, so we really need this. Cc: Daniel Stone Signed-off-by: Daniel Vetter Reviewed-by: Daniel Stone Reported-and-tested-by: John Hunter Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc_helper.c | 8 +++++--- drivers/gpu/drm/drm_plane_helper.c | 16 ++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) commit ce14ec20a1ffcd356f578036617d657be8429c00 Author: Daniel Vetter Date: Thu Jul 2 15:16:39 2015 +0200 drm/crtc-helper: Fixup error handling in drm_helper_crtc_mode_set In commit 9f658b7b62e7aefc1ee067136126eca3f58cabfd Author: Daniel Stone Date: Fri May 22 13:34:45 2015 +0100 drm/crtc_helper: Replace open-coded CRTC state helpers error handling code was broken, resulting in the first path not being checked correctly. Fix this by using the same pattern as in the transitional plane helper function drm_plane_helper_update. v2: Simplify the cleanup code while at it too. v3: After some debugging with John we realized that the above patch from Daniel also accidentally removed the if (crtc_state) check. This is legal when transitioning to atomic, when the initial state reset isn't all wired up yet properly. Reinstate that check to fix the bug John has hit. Cc: Daniel Stone CC: Sean Paul Cc: John Hunter Signed-off-by: Daniel Vetter Reviewed-by: Daniel Stone Reported-and-tested-by: John Hunter Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc_helper.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) commit 8776f02b7c77f17dcf1dfab9954648874f264c89 Author: Mika Kuoppala Date: Tue Jun 30 18:16:40 2015 +0300 drm/i915/gtt: Per ppgtt scratch page Previously we have pointed the page where the individual ppgtt scratch structures refer to, to be the instance which GGTT setup have allocated. So it has been shared. To achieve full isolation between ppgtts also in this regard, allocate per ppgtt scratch page. Cc: Michel Thierry Cc: Daniel Vetter Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 94 +++++++++++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 20 deletions(-) commit 20dbe1a1cbf3f1f0a6a07581e5b95ae027c9bea0 Author: Gaurav K Singh Date: Wed Jul 1 15:58:52 2015 +0300 drm/i915: Changes required to enable DSI Video Mode on CHT On CHT, changes are required for calculating the correct m,n & p with minimal error +/- for the required DSI clock, so that the correct dividor & ctrl values are written in cck regs for DSI. This patch has been tested on CHT RVP with 1200 x 1920 panel. v2 by Jani, rebased on earlier refactoring, original at [1]. [1] http://mid.gmane.org/1431368400-1942-5-git-send-email-rodrigo.vivi@intel.com Signed-off-by: Gaurav K Singh Signed-off-by: Rodrigo Vivi Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dsi_pll.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) commit 3c5c6d88855baf9c3b9aa6243a37bb179f5a737e Author: Gaurav K Singh Date: Wed Jul 1 15:58:51 2015 +0300 drm/i915: Support for higher DSI clk For MIPI panels requiring higher DSI clk, values needs to be added in lfsr_converts table for getting the correct values of pll ctrl and dividor values which gets programmed in cck regs, otherwise DSI PLL does not get locked leading to no display on the MIPI panel. Signed-off-by: Gaurav K Singh Signed-off-by: Rodrigo Vivi Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dsi_pll.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 260c1ad1993d3f17e25c5d848d6d2525ff38913c Author: Jani Nikula Date: Wed Jul 1 15:58:50 2015 +0300 drm/i915/dsi: abstract dsi bpp derivation from pixel format Nuke three copies of the same switch case. Hopefully we can switch to a drm generic function later on, but that will require us to swich to enum mipi_dsi_pixel_format first. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dsi_pll.c | 67 +++++++++++++----------------------- 1 file changed, 24 insertions(+), 43 deletions(-) commit ce65e47b78789b4f78be1fd7e4c884df74a9f075 Author: Paulo Zanoni Date: Tue Jun 30 10:53:05 2015 -0300 drm/i915: don't increment the FBC threshold at fbc_enable We first set the threshold value when we're allocating the CFB, and then later at {ilk,gen7}_fbc_enable() we increment it in case we're using 16bpp. While that is correct, it is dangerous: if we rework the code a little bit in a way that allows us to call intel_fbc_enable() without necessarily calling i915_gem_stolen_setup_compression() first, we might end up incrementing threshold more than once. To prevent that, increment a temporary variable instead. v2: Rebase. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit ca1543be2c4233fbc266bf66f4320806e61e05dd Author: Tvrtko Ursulin Date: Wed Jul 1 11:51:10 2015 +0100 drm/i915: Report correct GGTT space usage Currently only normal views were accounted which under-accounts the usage as reported in debugfs. Introduce new helper, i915_gem_obj_total_ggtt_size, and use it from call sites which want to know how much GGTT space are objects using. v2: Single loop in i915_gem_get_aperture_ioctl. (Chris Wilson) v3: Walk GGTT active/inactive lists in i915_gem_get_aperture_ioctl for better efficiency. (Chris Wilson, Daniel Vetter) v4: Make i915_gem_obj_total_ggtt_size private to debugfs. (Chris Wilson) v5: Change unsigned long to u64. (Chris Wilson) Signed-off-by: Tvrtko Ursulin Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 22 ++++++++++++++++++---- drivers/gpu/drm/i915/i915_gem.c | 13 ++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) commit 4ad2af1ed1e972704e1dbc8e7716cd3394a27385 Author: Mika Kuoppala Date: Tue Jun 30 18:16:39 2015 +0300 drm/i915/gtt: Return struct i915_scratch_page from alloc_scratch Every other alloc_* function return the pointer to the page they alloc. Follow the convention with scratch page also. Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 78 ++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 41 deletions(-) commit 2e906beac6be0116c557f96d1c07cb7a955f8059 Author: Mika Kuoppala Date: Tue Jun 30 18:16:37 2015 +0300 drm/i915/gtt: Reorder page alloc/free/init functions Maintain base page handling functions in order of alloc, free, init. No functional changes. v2: s/Introduce/Maintain (Michel) v3: Rebase Cc: Michel Thierry Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 166 ++++++++++++++++++------------------ 1 file changed, 83 insertions(+), 83 deletions(-) commit 79bbcc299fca92ba3558c4966e6ad52ee1052d89 Author: John Harrison Date: Tue Jun 30 12:40:55 2015 +0100 drm/i915: Reserve space improvements An earlier patch was added to reserve space in the ring buffer for the commands issued during 'add_request()'. The initial version was pessimistic in the way it handled buffer wrapping and would cause premature wraps and thus waste ring space. This patch updates the code to better handle the wrap case. It no longer enforces that the space being asked for and the reserved space are a single contiguous block. Instead, it allows the reserve to be on the far end of a wrap operation. It still guarantees that the space is available so when the wrap occurs, no wait will happen. Thus the wrap cannot fail which is the whole point of the exercise. Also fixed a merge failure with some comments from the original patch. v2: Incorporated suggestion by David Gordon to move the wrap code inside the prepare function and thus allow a single combined wait_for_space() call rather than doing one before the wrap and another after. This also makes the prepare code much simpler and easier to follow. v3: Fix for 'effective_size' vs 'size' during ring buffer remainder calculations (spotted by Tomas Elf). For: VIZ-5115 CC: Daniel Vetter Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 73 +++++++++++++------------- drivers/gpu/drm/i915/intel_ringbuffer.c | 90 +++++++++++++++++++-------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 4 +- 3 files changed, 90 insertions(+), 77 deletions(-) commit 793dfa59bcfde9d642295480674926827e9adcfc Author: Imre Deak Date: Thu Jun 18 17:25:53 2015 +0300 drm/i915/bxt: mask off the DPLL state checker bits we don't program For the purpose of state checking we only care about the DPLL HW flags that we actually program, so mask off the ones that we don't. This fixes one set of DPLL state check failures. Signed-off-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit a9cc54eeba635d2feb2ed4bf43d4ea4e08e7e0a9 Author: Maarten Lankhorst Date: Wed Jun 24 08:59:24 2015 +0200 drm/atomic: Update old_fb after setting a property. This change updates the old_fb pointer only after acquiring the plane lock, if there are no properties the fb cannot have been changed either, so this works out correctly. Found in a discussion with Rob Clark. Cc: Rob Clark Signed-off-by: Maarten Lankhorst Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_atomic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0d0b49c51e0c1b5f4facbf7191db82b39ac99b96 Author: Thierry Reding Date: Wed Jul 1 14:05:09 2015 +0200 drm: Remove useless blank line Blank lines at the end of a function definition are not useful, so get rid of it. Signed-off-by: Thierry Reding Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_crtc.c | 1 - 1 file changed, 1 deletion(-) commit da168d81b44898404d281d5dbe70154ab5f117c1 Author: Daniel Vetter Date: Tue Jun 23 11:34:21 2015 +0200 drm: Reject DRI1 hw lock ioctl functions for kms drivers I've done some extensive history digging across libdrm, mesa and xf86-video-{intel,nouveau,ati}. The only potential user of this with kms drivers I could find was ttmtest, which once used drmGetLock still. But that mistake was quickly fixed up. Even the intel xvmc library (which otherwise was really good with using dri1 stuff in kms mode) managed to never take the hw lock for dri2 (and hence kms). Hence it should be save to unconditionally disallow this. Cc: Peter Antoine Reviewed-by: Peter Antoine Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_lock.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ba6976c129a571464fccbbcf866f4f93d91113c0 Author: Daniel Vetter Date: Tue Jun 23 11:22:36 2015 +0200 drm: Convert drm_legacy_ctxbitmap_init to void return type It can't fail really. Also remove the redundant kms check Peter added. Cc: Peter Antoine Reviewed-by: Peter Antoine Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_context.c | 5 ++--- drivers/gpu/drm/drm_drv.c | 10 +--------- drivers/gpu/drm/drm_legacy.h | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) commit 0e975980d435d58df2d430d688b8c18778b42218 Author: Peter Antoine Date: Tue Jun 23 08:18:49 2015 +0100 drm: Turn off Legacy Context Functions The context functions are not used by the i915 driver and should not be used by modeset drivers. These driver functions contain several bugs and security holes. This change makes these functions optional can be turned on by a setting, they are turned off by default for modeset driver with the exception of the nouvea driver that may require them with an old version of libdrm. The previous attempt was commit 7c510133d93dd6f15ca040733ba7b2891ed61fd1 Author: Daniel Vetter Date: Thu Aug 8 15:41:21 2013 +0200 drm: mark context support as a legacy subsystem but this had to be reverted commit c21eb21cb50d58e7cbdcb8b9e7ff68b85cfa5095 Author: Dave Airlie Date: Fri Sep 20 08:32:59 2013 +1000 Revert "drm: mark context support as a legacy subsystem" v2: remove returns from void function, and formatting (Daniel Vetter) v3: - s/Nova/nouveau/ in the commit message, and add references to the previous attempts - drop the part touching the drm hw lock, that should be a separate patch. Signed-off-by: Peter Antoine (v2) Cc: Peter Antoine (v2) Reviewed-by: Peter Antoine Signed-off-by: Daniel Vetter drivers/gpu/drm/drm_context.c | 48 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/drm_drv.c | 13 ++++++---- drivers/gpu/drm/nouveau/nouveau_drm.c | 3 ++- include/drm/drmP.h | 23 +++++++++-------- 4 files changed, 70 insertions(+), 17 deletions(-) commit d9156b5f6849a1b1185ac62790f36df013b1ade6 Author: Raja Mani Date: Mon Jun 22 20:22:27 2015 +0530 ath10k: configure frag desc memory to target for qca99X0 Pre qca99X0 chipsets follows the model where dynamically allocate memory for frag desc on getting new skb for TX. But, this is not going to be the case in qca99X0. It expects frag desc memory to be allocated at boot time and let the driver to reuse allocated memory after every TX completion. So there won't be any dynamic frag memory memory allocation in qca99X0 during data transmission. qca99X0 hardware doesn't need fragment desc address to be programmed in msdu descriptor for every data transaction. It needs to know only starting address of fragment descriptor at the time of the boot. During data transmission, qca99X0 hardware can retrieve corresponding frag addr by adding programmed frag desc base addr + msdu id. Allocate continuous fragment descriptor memory (same size as number of descriptor) at the time of target initialization and configure allocated dma address to the target via HTT_H2T_MSG_TYPE_FRAG_DESC_BANK_CFG. How this is allocated continuous memory is going to be used is not covered in this patch. It just allocates memory and hand over to firmware. If we don't do it at init time, qca99X0 will stall when firmware tries to do TX. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/core.h | 6 +++ drivers/net/wireless/ath/ath10k/htt.c | 4 ++ drivers/net/wireless/ath/ath10k/htt.h | 11 +++++ drivers/net/wireless/ath/ath10k/htt_tx.c | 76 +++++++++++++++++++++++++++++++- 5 files changed, 96 insertions(+), 2 deletions(-) commit 5c8726eca3e4080615f09328d1f28013b6e5c837 Author: Raja Mani Date: Mon Jun 22 20:22:26 2015 +0530 ath10k: set max spatial stream to 4 for 10.4 fw 10.4 fw supports upto 4 spatial stream. Limit max spatial stream to 4 for 10.4 firmware and to 3 for non 10.4 firmware. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 4 ++++ drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/wmi.c | 6 +++--- drivers/net/wireless/ath/ath10k/wmi.h | 3 ++- 4 files changed, 10 insertions(+), 4 deletions(-) commit cf36fef08a85c815d9358e1571d3d83da02474f7 Author: Raja Mani Date: Mon Jun 22 20:22:25 2015 +0530 ath10k: advertise 10.4 fw ap and sta iface combination to mac80211 10.4 fw supports upto 16 interface in ap mode and 1 interface in station mode, overall total interfaces supported are 16 interfaces. Populate this limit in wiphy->iface_combinations. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 721ad3ca7956ce66e11fdcb187769130486feb28 Author: Raja Mani Date: Mon Jun 22 20:22:24 2015 +0530 ath10k: add 10.4 fw specific htt msg definitions New htt event table is added for 10.4 firmware. Following new htt events are available only 10.4. adding this to generic htt event table, HTT_T2H_MSG_TYPE_EN_STATS, HTT_T2H_MSG_TYPE_TX_FETCH_IND, HTT_T2H_MSG_TYPE_TX_FETCH_CONF, HTT_T2H_MSG_TYPE_TX_LOW_LATENCY_IND Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 1 + drivers/net/wireless/ath/ath10k/htt.c | 41 ++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/htt.h | 36 ++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/htt_rx.c | 4 ++++ drivers/net/wireless/ath/ath10k/hw.h | 2 ++ 5 files changed, 84 insertions(+) commit b2297baa273b2a73d7408a97d0163c5a0dfccf8c Author: Raja Mani Date: Mon Jun 22 20:22:23 2015 +0530 ath10k: add scan support for 10.4 fw Existing non 10.4 firmware scan related events and commands are matching with 10.4 firmware (except chan info event). Link general start scan,stop scan, scan channel list configuration functions to 10.4 wmi function table and add a new handler to parse 10.4 specific chan info event. 10.4 firmware has extra scan completion reason WMI_SCAN_REASON_INTERNAL_FAILURE and new scan event WMI_SCAN_EVENT_FOREIGN_CHANNEL_EXIT compared to previous firmware versions. These things are added in respective enum. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 42 +++++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 36 ++++++++++++++++++++++-------- 2 files changed, 69 insertions(+), 9 deletions(-) commit 373b48cfe77ff8c0ff94564a280dbfea56e769d4 Author: Raja Mani Date: Mon Jun 22 20:22:22 2015 +0530 ath10k: enable vdev and peer related operations for 10.4 fw Most of existing vdev and peer related functions (vdev create, vdev delete, vdev start, peer create, peer delete, peer flush, etc) are reusable for 10.4 firmware. Link those general vdev and peer functions to 10.4 wmi function table. Existing general pktlog enable/disable, dbglog configuration functions are reusable for 10.4 and add them also in wmi function table. Also handle few wmi events (sevice rdy, echo, dbg msg, tbtt offset update, dbg print) in ath10k_wmi_10_4_op_rx(). wow event is not applicable in 10.4 firmware, have it under not implemented print. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 3cec3be3d101bfec7136841cbb9b32ca49ac0328 Author: Raja Mani Date: Mon Jun 22 20:22:21 2015 +0530 ath10k: handle 10.4 firmware wmi swba event 10.4 firmware swba event payload has space to accommodate upto 512 client traffic indication info & one p2p noa descriptor. It's is not matching with exiting swba event format defined for non 10.4 firmware. Non 10.4 firmware swba event format is designed to support only upto only 128 client and four p2p notice of absence descriptor. following changes are done in this patch to enable ath10k to handle 10.4 firmware swba event, - link generic ath10k_wmi_event_host_swba() to handle 10.4 swba event in 10.4 wmi rx handler. - add 10.4 specific swba event structure wmi_10_4_host_swba_event. - new function ath10k_wmi_10_4_op_pull_swba_ev() to parse 10.4 swba event. - increase tim_bitmap[] size in ath10k_vif to 64 to hold 512 station power save state. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.h | 4 +-- drivers/net/wireless/ath/ath10k/wmi.c | 61 ++++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 41 +++++++++++++++++++++++ 3 files changed, 104 insertions(+), 2 deletions(-) commit a03fee347cdcbf101820b2984366a37043ffc62b Author: Raja Mani Date: Mon Jun 22 20:22:20 2015 +0530 ath10k: enhance swba event handler to adapt different size tim bitmap Due to 512 client support in 10.4 firmware, size of tim ie is going to be slightly higher than non 10.4 firmware. So, size of tim_bitmap what is carried in swba event from 10.4 firmware is bit higher. The only bottle neck to reuse existing swba handler ath10k_wmi_event_host_swba() for 10.4 is that code designed to deal with fixed size tim bitmap(ie, tim_info[].tim_bitmap in wmi_swba_ev_arg). This patch removes such size limitation and makes it more suitable to handle swba event which has different size tim bitmap. All existing swba event parsing functions are changed to adapt this change. Actual support to handle 10.4 swba event is added in next patch. Only preparation is made in this patch. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 18 ++++++++++- drivers/net/wireless/ath/ath10k/wmi.c | 53 +++++++++++++++++++++++-------- drivers/net/wireless/ath/ath10k/wmi.h | 10 +++++- 3 files changed, 66 insertions(+), 15 deletions(-) commit 33190ebfb1e846f97366a334e45b03caf4a65c84 Author: Vladimir Kondratiev Date: Mon Jun 15 17:42:32 2015 +0300 wil6210: restart AP upon change in privacy settings privacy settings might change while AP is running. Inside wil_cfg80211_change_beacon(), detect change in privacy settings and handle it by stopping and re-starting the AP. Firmware cannot handle on-the-fly privacy settings change and so AP restart is required. Signed-off-by: Dedy Lansky Signed-off-by: Hamad Kadmany Signed-off-by: Vladimir Kondratiev Signed-off-by: Kalle Valo drivers/net/wireless/ath/wil6210/cfg80211.c | 217 +++++++++++++++++----------- drivers/net/wireless/ath/wil6210/wil6210.h | 2 + 2 files changed, 135 insertions(+), 84 deletions(-) commit b24fc6fc7c0f6425793fd46ccc4ea48f49447617 Author: Zefir Kurtisi Date: Tue Jun 16 10:34:03 2015 +0200 ath: DFS - limit number of potential PRI sequences In the PRI detector, after the current radar pulse has been checked agains existing PRI sequences, it is considered as part of a new potential sequence. Previously, the condition to accept a new sequence was to have at least the same number of pulses as the longest matching sequence. This was wrong, since it led to duplicates of PRI sequences. This patch changes the acceptance criteria for new potential sequences from 'at least' to 'more than' the longest existing. Detection performance remains unaffected, while the number of PRI sequences accounted at runtime (and with it CPU load) is reduced by up to 50%. Signed-off-by: Zefir Kurtisi Signed-off-by: Kalle Valo drivers/net/wireless/ath/dfs_pri_detector.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d02e752f732a91e2a6de9a3547c682914ae0bbe7 Author: Raja Mani Date: Mon Jun 22 20:10:18 2015 +0530 ath10k: handle 10.4 fw wmi ready event Reuse existing function ath10k_wmi_op_pull_rdy_ev() to parse WMI_10_4_READY_EVENTID and handle the same event in ath10k_wmi_10_4_op_rx(). Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 4 ++++ 1 file changed, 4 insertions(+) commit b039941704452d8f89e83cba352b5c89a6ebf2ab Author: Raja Mani Date: Mon Jun 22 20:10:17 2015 +0530 ath10k: adjust default peer limits if qcache enabled in 10.4 fw 10.4 firmware supports upto 512 clients when qcache feature is enabled. Make adjustment on default max peer count, active peers, number of tid in such case to meet qcache requirement. 10.4 fw has extra unit info flag NUM_UNITS_IS_NUM_ACTIVE_PEERS which is also handled in this patch. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/hw.h | 6 ++++++ drivers/net/wireless/ath/ath10k/wmi.c | 27 +++++++++++++++++++++++---- drivers/net/wireless/ath/ath10k/wmi.h | 5 +++-- 3 files changed, 32 insertions(+), 6 deletions(-) commit 1c0929614ac429a32509307e790e813325562dc1 Author: Raja Mani Date: Mon Jun 22 20:10:16 2015 +0530 ath10k: handle 10.4 fw wmi mgmt rx event 10.4 firmware wmi mgmt rx event format differs from non 10.4 firmware and changing existing wmi mgmt rx event parsing function ath10k_wmi_op_pull_mgmt_rx_ev() for 10.4 would add more complex. This patch adds new function to receive any wmi rx event from 10.4 firmware and also introduce new function to parse wmi mgmt rx event. In addition, fw main branch service rdy event parsing function is linked in wmi ops table. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 64 +++++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 15 ++++++++ 2 files changed, 79 insertions(+) commit d1e52a8ed2bf34ed5b839c190209deb80828d189 Author: Raja Mani Date: Mon Jun 22 20:10:15 2015 +0530 ath10k: fill 10.4 fw wmi init cmd default values Define 10.4 wmi init command structure and introduce new function ath10k_wmi_10_4_op_gen_init() to fill default values for each field which goes as part of wmi init cmd to 10.4 firmware. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 7 ++ drivers/net/wireless/ath/ath10k/core.h | 2 + drivers/net/wireless/ath/ath10k/hw.h | 54 ++++++++ drivers/net/wireless/ath/ath10k/wmi.c | 83 +++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 220 +++++++++++++++++++++++++++++++++ 5 files changed, 366 insertions(+) commit d86561ff677b312424ba53389be80b507941973b Author: Raja Mani Date: Mon Jun 22 20:10:14 2015 +0530 ath10k: add 10.4 fw wmi pdev cmd ids Include 10.4 firmware wmi pdev cmd id and prepare wmi vdev map table wmi_10_4_pdev_param_map and update non 10.4 firmware pdev cmd map table with newly added vdev cmd id specifically for 10.4 firmware as unsupported. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 42 ++++++ drivers/net/wireless/ath/ath10k/wmi.c | 228 ++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 136 ++++++++++++++++++ 3 files changed, 406 insertions(+) commit 93841a15cce206450cdb31fe9b3f6b00342afe2b Author: Raja Mani Date: Mon Jun 22 20:10:13 2015 +0530 ath10k: add 10.4 fw wmi vdev cmd ids Include 10.4 firmware wmi vdev cmd id and make up wmi vdev map table wmi_10_4_vdev_param_map and also update non 10.4 firmware vdev cmd map table with newly added vdev cmd id specifically for 10.4 firmware as unsupported. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 16 ++++ drivers/net/wireless/ath/ath10k/wmi.c | 124 ++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 85 ++++++++++++++++++++ 3 files changed, 225 insertions(+) commit 772b4aeee51a851132abf799de8c07cfbe95ac00 Author: Raja Mani Date: Mon Jun 22 20:10:12 2015 +0530 ath10k: set 10.4 fw exclusive wmi cmd as unsupported for other fw versions In fact, explicit assigned to ZERO for unsupported wmi commands are not really needed. Global static variable will have ZERO by default. However, just for better readability setting all wmi cmds in non 10.4 firmware wmi mapping table as unsupported for wmi cmd which are exclusively available only in 10.4 firmware. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi-tlv.c | 32 ++++++ drivers/net/wireless/ath/ath10k/wmi.c | 158 ++++++++++++++++++++++++++++++ 2 files changed, 190 insertions(+) commit 2d491e69962a94bbeb0449a060cca2d156f943e9 Author: Raja Mani Date: Mon Jun 22 20:10:11 2015 +0530 ath10k: include 10.4 fw specific wmi cmd and event ids 10.4 firmware wmi cmd and event id values are not exactly aligned with previous firmware versions (main, 10.x, 10.2, etc). Add new enum to define wmi cmd & event definitions for 10.4 firmware and prepare wmi_10_4_cmd_map based on 10.4 firmware wmi cmd definitions. wmi_cmd_map is extended to accommodate new wmi commands which are exclusively available in 10.4 firmware. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 184 +++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/wmi.h | 252 ++++++++++++++++++++++++++++++++++ 2 files changed, 436 insertions(+) commit 840357ccc365b650d2321a5690cb5374192619ca Author: Raja Mani Date: Mon Jun 22 20:10:10 2015 +0530 ath10k: add 10.4 fw wmi service bitmap definition Include new enum to define wmi service bitmap definitions for 10.4 firmware and a function wmi_10_4_svc_map() to remap 10.4 firmware wmi service bitmap definitions to ath10k generic wmi services. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/wmi.c | 5 ++ drivers/net/wireless/ath/ath10k/wmi.h | 146 ++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) commit 9bd213224654b8c13af8bffcf9bd07ee0baae5ef Author: Raja Mani Date: Mon Jun 22 20:10:09 2015 +0530 ath10k: include new wmi op version for 10.4 fw qca99X0 chip uses firmware version 10.4. Define a new macro ATH10K_FW_WMI_OP_VERSION_10_4 for 10.4 firmware and include in switch cases where ATH10K_FW_WMI_OP_VERSION_* is used to avoid compilation error. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 2 ++ drivers/net/wireless/ath/ath10k/hw.h | 1 + drivers/net/wireless/ath/ath10k/mac.c | 2 ++ drivers/net/wireless/ath/ath10k/wmi.c | 2 ++ 4 files changed, 7 insertions(+) commit d772703e705961dc4bd280373e3679c8c4f95df7 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:10 2015 +0530 ath10k: Add BMI param value to execute otp to hw_param BMI parameter value to execute downloaded otp binary is different for QCA99X0. Have a member in hw_params to hold hw specific BMI param. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 8 +++++++- drivers/net/wireless/ath/ath10k/core.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) commit dcb02db1068b78bd1b4d2bf64317021c2531a7b0 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:09 2015 +0530 ath10k: Add support for code swap Code swap is a mechanism to use host memory to store some fw binary code segment. Ath10k host driver allocates and loads the code swap binary into the host memory and configures the target with the host allocated memory information at the address taken from code swap binary. This patch adds code swap support for firmware binary. Code swap binary for firmware bin is available in ATH10K_FW_IE_FW_CODE_SWAP_IMAGE. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/Makefile | 3 +- drivers/net/wireless/ath/ath10k/core.c | 24 ++++ drivers/net/wireless/ath/ath10k/core.h | 7 ++ drivers/net/wireless/ath/ath10k/hw.h | 3 + drivers/net/wireless/ath/ath10k/swap.c | 208 +++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/swap.h | 72 +++++++++++ 6 files changed, 316 insertions(+), 1 deletion(-) commit fd3d6ffbd035d24b2baff0b5b39751183c289b33 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:08 2015 +0530 ath10k: Fix BMI communication timeout for QCA99X0 There is more than 1 sec delay in getting response from target through BMI in QCA99X0. Increase the BMI communication timeout to 2*HZ to fix BMI failures. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/bmi.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2adf99ca33ca75c8a702797f77a1652e26f18a6e Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:07 2015 +0530 ath10k: Extend CE src desc flags for interrupt indication QCA99X0 uses two new copy engine src desc flags for interrupt indication. Bit_2 is to mark if host interrupt is disabled after processing the current desc and bit_3 is to mark if target interrupt is diabled after the processing of current descriptor. CE_DESC_FLAGS_META_DATA_MASK and CE_DESC_FLAGS_META_DATA_LSB are based on the target type. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/ce.c | 1 + drivers/net/wireless/ath/ath10k/ce.h | 9 +++++++-- drivers/net/wireless/ath/ath10k/hw.c | 6 ++++++ drivers/net/wireless/ath/ath10k/hw.h | 2 ++ 4 files changed, 16 insertions(+), 2 deletions(-) commit 6e4202c3ed301dea62885a3ead6506534fcf8db3 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:06 2015 +0530 ath10k: Add chip reset sequence for QCA99X0 QCA99X0 supports only cold reset. Also, made ath10k_pci_irq_msi_fw_mask() and ath10k_pci_irq_msi_fw_unmask() non-99X0 specific till we get proper register configuration to mask/unmask irq/MSI. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 81 ++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 10 deletions(-) commit 418ca5992e2f91050e0673b3a3a78197f0122bf8 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:05 2015 +0530 ath10k: Make target cpu address to CE address conversion chip specific Make the helper converting target virtual address space to CE address space a target type specific to support QCA99X0. Also make this as function instead of macro. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 25 ++++++++++++++++++++++--- drivers/net/wireless/ath/ath10k/pci.h | 12 ------------ 2 files changed, 22 insertions(+), 15 deletions(-) commit 050af069de03489947023544bfed1977952b8215 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:04 2015 +0530 ath10k: Copy Engine related changes for QCA99X0 QCA99X0 supports upto 12 Copy engines. Host and target CE configuration table is updated to support new copy engine pipes. This also fixes the assumption of diagnostic CE by making CE_7 as the one instead of CE_COUNT - 1. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/ce.h | 2 +- drivers/net/wireless/ath/ath10k/hw.h | 3 ++ drivers/net/wireless/ath/ath10k/pci.c | 69 ++++++++++++++++++++++++++++++++++- 3 files changed, 71 insertions(+), 3 deletions(-) commit 8bd4702103dca2b06446f85c04222faa8eb553b5 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:03 2015 +0530 ath10k: Add hw register/values for QCA99X0 chip This is to prepare the driver for QCA99X0 chip support. This commit adds hw_params, hw register table and hw_values table for QCA99X0 chip. Please note this is only a partial patch adding support for QCA99X0, so the device id is not yet added to pci device table. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 18 ++++++++++++ drivers/net/wireless/ath/ath10k/hw.c | 44 +++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/hw.h | 18 ++++++++++++ drivers/net/wireless/ath/ath10k/pci.c | 5 ++++ drivers/net/wireless/ath/ath10k/targaddrs.h | 3 ++ 5 files changed, 88 insertions(+) commit a521ee983d312db76e6c275c32475cb20bdc7d39 Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:02 2015 +0530 ath10k: Add new reg_address/mask to hw register table Add more register address and mask which can be different for newer chip to hw_reg table. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/ce.h | 6 ++++-- drivers/net/wireless/ath/ath10k/hw.c | 22 ++++++++++++++++++---- drivers/net/wireless/ath/ath10k/hw.h | 17 ++++++++++++----- 3 files changed, 34 insertions(+), 11 deletions(-) commit 2f2cfc4a9a5b7be65d61382b58cfb206f13966df Author: Vasanthakumar Thiagarajan Date: Thu Jun 18 12:31:01 2015 +0530 ath10k: Add a table to store hw specific values This is to prepare ath10k to support newer chip set. Values like CE_COUNT, MSI_ASSIGN_CE_MAX and RTC_STATE_V_ON can be different for different chips. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 2 ++ drivers/net/wireless/ath/ath10k/core.h | 1 + drivers/net/wireless/ath/ath10k/hw.c | 14 ++++++++++++++ drivers/net/wireless/ath/ath10k/hw.h | 18 +++++++++++++++--- 4 files changed, 32 insertions(+), 3 deletions(-) commit aa610dcb7c1999fe3353562340a72196d9a54ae0 Author: Imre Deak Date: Mon Jun 22 23:35:52 2015 +0300 drm/i915/bxt: add DDI port HW readout support Add support for reading out the HW state for DDI ports. Since the actual programming is very similar to the CHV/VLV DPIO PLL programming we can reuse much of the logic from there. This fixes the state checker failures I saw on my BXT with HDMI output. v2: - rebased on v2 of patch 4/5 Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 15 +++++++++------ drivers/gpu/drm/i915/intel_ddi.c | 22 ++++++++++++++++++++-- 2 files changed, 29 insertions(+), 8 deletions(-) commit dccbea3b0704c77c5bbd9e5e9240d6eb253d2565 Author: Imre Deak Date: Mon Jun 22 23:35:51 2015 +0300 drm/i915: calculate the port clock rate along with other PLL params Depending on the platform the port clock fed to the pipe can be the PLL's post-divided fast clock rate or a /5 divided version of it. To make this more obvious across the platforms calculate this port clock along with the rest of the PLL parameters. This is also needed by the next patch where we can reuse the CHV helper for the BXT PLL HW readout code; so export the corresponding helper. While at it also add a more descriptive name to the helpers and a comment explaining what's being calculated. No functional change. Suggested-by: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 61 +++++++++++++++++++++--------------- drivers/gpu/drm/i915/intel_drv.h | 2 ++ 2 files changed, 38 insertions(+), 25 deletions(-) commit 589eca678a0348687fbfc3194a0d87467a3f6c3f Author: Imre Deak Date: Mon Jun 22 23:35:50 2015 +0300 drm/i915/vlv: move the vlv PLL helper next to its platform counterparts Move the helper next to the PLL helpers of the other platforms for clarity. No functional change. Signed-off-by: Imre Deak Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit c8453338b8218b42b70cc256badeaca52021a42c Author: Imre Deak Date: Thu Jun 18 17:25:55 2015 +0300 drm/i915/bxt: add PLL10 to the PLL state dumper Signed-off-by: Imre Deak Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 05712c1561041d102d3cac7d7e79548b1446caa4 Author: Imre Deak Date: Thu Jun 18 17:25:54 2015 +0300 drm/i915/bxt: add missing DDI PLL registers to the state checking Although we have a fixed setting for the PLL9 and EBB4 registers, it still makes sense to check them together with the rest of PLL registers. While at it also remove a redundant comment about 10 bit clock enabling. Signed-off-by: Imre Deak Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- drivers/gpu/drm/i915/i915_reg.h | 3 ++- drivers/gpu/drm/i915/intel_ddi.c | 16 +++++++++++++--- drivers/gpu/drm/i915/intel_display.c | 6 ++++-- 4 files changed, 21 insertions(+), 7 deletions(-) commit f8896f5d58e64bfd3c2b5f7c5ba5c3f3967e93c7 Author: David Weinehall Date: Thu Jun 25 11:11:03 2015 +0300 drm/i915/skl: Buffer translation improvements This patch adds support for 0.85V VccIO on Skylake Y, separate buffer translation tables for Skylake U, and support for I_boost for the entries that needs this. Changes in v2: * Refactored the code a bit to move all DDI signal level setup to intel_ddi.c Issue: VIZ-5677 Signed-off-by: David Weinehall Reviewed-by: Antti Koskipää [danvet: Apply style polish checkpatch suggested.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 8 + drivers/gpu/drm/i915/i915_reg.h | 12 + drivers/gpu/drm/i915/intel_ddi.c | 509 ++++++++++++++++++++++++++++++--------- drivers/gpu/drm/i915/intel_dp.c | 104 +------- drivers/gpu/drm/i915/intel_drv.h | 3 +- 5 files changed, 423 insertions(+), 213 deletions(-) commit 4b8a8262086ece4b7eb34bd2e40cce3b3c9c7079 Author: Markus Elfring Date: Wed Nov 19 18:30:22 2014 +0100 HID: picoLCD: Deletion of unnecessary checks before three function calls The functions backlight_device_unregister(), lcd_device_unregister() and rc_unregister_device() test whether their argument is NULL and then return immediately. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Reviewed-by: Bruno Prémont Signed-off-by: Jiri Kosina drivers/hid/hid-picolcd_backlight.c | 3 +-- drivers/hid/hid-picolcd_cir.c | 3 +-- drivers/hid/hid-picolcd_lcd.c | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) commit 2cb389b7e4966151d44c505d49ea31a8d6969372 Author: Ville Syrjälä Date: Wed Jun 24 22:00:10 2015 +0300 drm/i915: Zero unused WM1 watermarks on VLV/CHV The hardware supposedly ignores the WM1 watermarks while the PND deadline mode is enabled, but clear out the register just in case. This is what the other OS does, and it does make register dumps look more consistent when we don't have partial WM1 values lingering in the registers (some WM1 watermarks already get zeroed when the actually used DSPFW registers get written). Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 6 ++++++ 1 file changed, 6 insertions(+) commit de38b95cbb2a92ea037c22d41fc1476c0825c0d7 Author: Ville Syrjälä Date: Wed Jun 24 22:00:09 2015 +0300 drm/i915: Add debugfs knobs for VLVCHV memory latency values Allow tweaking the VLV/CHV memory latencies thorugh sysfs, like we do for ILK+. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) commit 6f9c784b7ec2cc9fc9fd7c5a8634b70aadd76015 Author: Ville Syrjälä Date: Wed Jun 24 22:00:08 2015 +0300 drm/i915: Don't do PM5/DDR DVFS with multiple pipes Enabling PM5/DDR DVFS with multiple active pipes isn't a validated configuration. It does seem to work most of the time at least, but there is clearly an additional risk of underruns, so let's not play with fire. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 3 +++ 1 file changed, 3 insertions(+) commit 852eb00dc44ea2b8896e2fa27c6a36a1f697ba5a Author: Ville Syrjälä Date: Wed Jun 24 22:00:07 2015 +0300 drm/i915: Try to make sure cxsr is disabled around plane enable/disable CxSR (or maxfifo on VLV/CHV) blocks somne changes to the plane control register (enable bit at least, not quite sure about the rest). So in order to have the plane enable/disable when we want we need to first kick the hardware out of cxsr. Unfortunateloy this requires some extra vblank waits. For the CxSR enable after the plane update we should eventually use an async vblank worker, but since we don't have that just do sync vblank waits. For the disable case we have no choice but to do it synchronously. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 36 +++++++++++++++++++++++++++++++----- drivers/gpu/drm/i915/intel_drv.h | 3 +++ drivers/gpu/drm/i915/intel_pm.c | 11 ++++------- 3 files changed, 38 insertions(+), 12 deletions(-) commit 26e1fe4fbd4c15919f8cfa9440d70eca5a457ba3 Author: Ville Syrjälä Date: Wed Jun 24 22:00:06 2015 +0300 drm/i915: Use the memory latency based WM computation on VLV too In order to get decnet memory self refresh residency on VLV, flip it over to the new CHV way of doing things. VLV doesn't do PM5 or DDR DVFS so it's a bit simpler. I'm not sure the currently memory latency used for CHV is really appropriate for VLV. Some further testing will probably be needed to figure that out. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_pm.c | 223 +---------------------------------- drivers/gpu/drm/i915/intel_sprite.c | 6 - 3 files changed, 6 insertions(+), 225 deletions(-) commit 54f1b6e15db87722aa21035169ce811af9d971fd Author: Ville Syrjälä Date: Wed Jun 24 22:00:05 2015 +0300 drm/i915: Compute display FIFO split dynamically for CHV Consider which planes are active and compute the FIFO split based on the relative data rates. Since we only consider the pipe src width rather than the plane width when computing watermarks it seems best to do the same when computing the FIFO split as well. This means the only thing we actually have to consider for the FIFO splut is the bpp, and we can ignore the rest. I've just stuffed the logic into the watermark code for now. Eventually it'll need to move into the atomic update for the crtc. There's also one extra complication I've not yet considered; Some of the DSPARB registers contain bits related to multiple pipes. The registers are double buffered but apparently they update on the vblank of any active pipe. So doing the FIFO reconfiguration properly when multiple pipes are active is not going to be fun. But let's ignore that mess for now. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 25 +++++- drivers/gpu/drm/i915/intel_pm.c | 175 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 189 insertions(+), 11 deletions(-) commit 262cd2e154c29dc3a235f68cc91e13d8f48e8002 Author: Ville Syrjälä Date: Wed Jun 24 22:00:04 2015 +0300 drm/i915: CHV DDR DVFS support and another watermark rewrite Turns out the VLV/CHV system agent doesn't understand memory latencies, so trying to rely on the PND deadline mechanism is not going to fly especially when DDR DVFS is enabled. Currently we try to avoid the problems by lying to the system agent about the deadlines and setting the FIFO watermarks to 8 cachelines. This however leads to bad memory self refresh residency. So in order to satosfy everyone we'll just give up on the deadline scheme and program the watermarks old school based on the worst case memory latency. I've modelled this a bit on the ILK+ approach where we compute multiple sets of watermarks for each pipe (PM2,PM5,DDR DVFS) and when merge thet appropriate one later with the watermarks from other pipes. There isn't too much to merge actually since each pipe has a totally independent FIFO (well apart from the mess with the partially shared DSPARB registers), but still decopuling the pipes from each other seems like a good idea. Eventually we'll want to perform the watermark update in two phases around the plane update to avoid underruns due to the single buffered watermark registers. But that's still in limbo for ILK+ too, so I've not gone that far yet for VLV/CHV either. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 28 +-- drivers/gpu/drm/i915/intel_display.c | 6 +- drivers/gpu/drm/i915/intel_drv.h | 11 ++ drivers/gpu/drm/i915/intel_pm.c | 318 ++++++++++++++++++++++++++++++++++- 4 files changed, 345 insertions(+), 18 deletions(-) commit 6eb1a6817246f1a67de4d6959a84d09efead5329 Author: Ville Syrjälä Date: Wed Jun 24 22:00:03 2015 +0300 drm/i915: Read wm values from hardware at init on CHV Read out the current watermark settings from the hardware at driver init time. This will allow us to compare the newly calculated values against the currrent ones and potentially avoid needless WM updates. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/intel_display.c | 4 +- drivers/gpu/drm/i915/intel_drv.h | 2 + drivers/gpu/drm/i915/intel_pm.c | 141 +++++++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+), 1 deletion(-) commit f015c5518879fb3e578caaa63806617468a24045 Author: Ville Syrjälä Date: Wed Jun 24 22:00:02 2015 +0300 drm/i915: Split atomic wm update to pre and post variants Try to update the watermarks on the right side of the plane update. This is just a temporary hack until we get the proper two part update into place. However in the meantime this might have some chance of at least working. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++---- drivers/gpu/drm/i915/intel_drv.h | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) commit a7a6c498927ea42c9a3b26e0caa5c854a980d58c Author: Ville Syrjälä Date: Wed Jun 24 22:00:01 2015 +0300 drm/i915: POSTING_READ() in intel_set_memory_cxsr() We want cxsr exit to happen ASAP, so toss in some POSTING_READ()s to make sure things are really kicked off. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 5 +++++ 1 file changed, 5 insertions(+) commit 031b698a77a70a6c394568034437b5486a44e868 Author: Daniel Vetter Date: Fri Jun 26 19:35:16 2015 +0200 drm/i915: Unconditionally do fb tracking invalidate in set_domain We can't elide the fb tracking invalidate if the buffer is already in the right domain since that would lead to missed screen updates. I'm pretty sure I've written this already before but must have gotten lost unfortunately :( v2: Chris observed that all internal set_domain users already correctly do the fb invalidate on their own, hence we can move this just into the set_domain ioctl instead. v3: I screwed up setting the invalidate ORIGIN_* correctly (Chris). Cc: Chris Wilson Reported-by: Paulo Zanoni Cc: Paulo Zanoni Signed-off-by: Daniel Vetter Reviewed-by: Chris Wilson Tested-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit 066cf55b9ce35f1f90dde9fcec01431a9243a949 Author: Rodrigo Vivi Date: Fri Jun 26 13:55:54 2015 -0700 drm/i915: Fix IPS related flicker We cannot let IPS enabled with no plane on the pipe: BSpec: "IPS cannot be enabled until after at least one plane has been enabled for at least one vertical blank." and "IPS must be disabled while there is still at least one plane enabled on the same pipe as IPS." This restriction apply to HSW and BDW. However a shortcut path on update primary plane function to make primary plane invisible by setting DSPCTRL to 0 was leting IPS enabled while there was no other plane enabled on the pipe causing flickerings that we were believing that it was caused by that other restriction where ips cannot be used when pixel rate is greater than 95% of cdclok. v2: Don't mess with Atomic path as pointed out by Ville. v3: Rebase after a long time and atomic path changes. Accept Ville suggestion of not check !fb v4: Re-factore on dinq Reference: https://bugs.freedesktop.org/show_bug.cgi?id=85583 Cc: Paulo Zanoni Cc: Jani Nikula Cc: Daniel Vetter Reviewed-by: Ville Syrjälä Tested-by: Kenneth Graunke [danvet: Make it compile] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 +++++++++++++++- drivers/gpu/drm/i915/intel_drv.h | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) commit 12ebb05246338aa9cdee51da50f57237352b3f64 Author: Hartmut Knaack Date: Sun Jun 21 12:18:09 2015 +0200 iio:adc:Kconfig: rework help descriptions Rework the help text of several ADCs to make sure that: - the module name is mentioned, if the driver can be built as a module - "If unsure, say N" messages are dropped - right indentation is maintained Signed-off-by: Hartmut Knaack Acked-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/adc/Kconfig | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) commit e7ad987832637701fc723ac2c1580c30c191bca6 Author: Damien Lespiau Date: Fri Jun 26 18:34:29 2015 +0100 drm/i915/skl: Skip remaining dividers when deviation is 0 We can't improve a 0 deviation, so when we find such a divider, skip the remaining ones they won't be better. This short-circuit the search for 34 of the 373 test frequencies in the corresponding i-g-t test (tools/skl_compute_wrpll) v2: Place the short-circuiting code in skl_compute_wrpll() (Paulo) (I'm sure nobody will notice the spurious removal of a blank line) Reviewed-by: Paulo Zanoni Suggested-by: Paulo Zanoni Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit 350405623ff3f447813eaef2035272bf05281671 Author: Bob Paauwe Date: Thu Jun 25 14:54:07 2015 -0700 drm/i915: Update rps frequencies for BXT Broxton is using a different register and different bit ordering for rps status capabilities. Also GT perf freqency register is different for Broxton so update that. Signed-off-by: Bob Paauwe Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 21 ++++++++++++++++----- drivers/gpu/drm/i915/i915_reg.h | 2 ++ drivers/gpu/drm/i915/intel_pm.c | 16 ++++++++++++---- 3 files changed, 30 insertions(+), 9 deletions(-) commit 267db663458a8077a087674fb85ea95f540d8671 Author: Damien Lespiau Date: Thu Jun 25 16:19:24 2015 +0100 drm/i915/skl: Prefer even dividers for SKL DPLLs Currently, if an odd divider improves the deviation (minimizes it), we take that divider. The recommendation is to prefer even dividers. v2: Move the check at the right place after having inverted the two for loops in the previous patch. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 7 +++++++ 1 file changed, 7 insertions(+) commit dc2538139277089e218b1b1d0d01454ecf39e944 Author: Damien Lespiau Date: Thu Jun 25 16:15:06 2015 +0100 drm/i915/skl: Replace the HDMI DPLL divider computation algorithm The HW validation team came back from further testing with a slightly changed constraint on the deviation between the DCO frequency and the central frequency. Instead of +-4%, it's now +1%/-6%. Unfortunately, the previous algorithm didn't quite cope with these new constraints, the reason being that it wasn't thorough enough looking at the possible divider candidates. The new algorithm looks at all dividers, which is definitely a hammer approach (we could reduce further the set of dividers to good ones as a follow up, at the cost of a bit more complicated code). But, at least, we can now satisfy the +1%/+6% rule for all the "Well known" HDMI frequencies of my test set (373 entries). On that subject, the new code is quite extensively tested in intel-gpu-tools (tools/skl_compute_wrpll). v2: Fix cycling between central frequencies and dividers (Paulo) Properly choose the minimal deviation between postive and negative candidates (Paulo). On the 373 test frequencies, v2 computes better dividers than v1 (ie more even dividers and lower deviation on average): v1: average deviation: 206.52 v2: average deviation: 194.47 Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 211 +++++++++++++++++++++++++-------------- 1 file changed, 137 insertions(+), 74 deletions(-) commit f37c05052ff6430767f3bff60efc0e92f690495b Author: Michel Thierry Date: Wed Jun 10 17:46:39 2015 +0100 drm/i915/gtt: Switch gen8_free_page_tables params After Mika's ppgtt cleanup series, all the other free functions have drm_device as the first parameter, except this one. No functional changes. Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 7a01a0a292c25a85cd36efcd5920d2f1caccbb2b Author: Michel Thierry Date: Fri Jun 26 13:46:14 2015 +0100 drm/i915/lrc: Update PDPx registers with lri commands A safer way to update the PDPx registers is sending lri commands, added in the ring before the batchbuffer start. Otherwise, the ctx must be idle before trying to change anything (but the ring-tail) in the ctx image. An example where the ctx won't be idle is lite-restore. This patch depends on 5b7e4c9ce ("drm/i915/gtt: Mark TLBS dirty for gen8+"). v2: Combine lri writes (and save 8 commands). (Mika) v3: Rebase after ring/req changes, and removed references to deprecated patches. Cc: Dave Gordon Cc: Mika Kuoppala Signed-off-by: Michel Thierry Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 966082c93273f4fd52f4a068b4b55c47e3ba72cc Author: Mika Kuoppala Date: Thu Jun 25 18:35:19 2015 +0300 drm/i915/gtt: Use nonatomic bitmap ops There is no need for atomicity here. Convert all bitmap operations to nonatomic variants. Cc: Ville Syrjälä Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 79ab93705464982b9f7e9b5dfabfacde634338aa Author: Mika Kuoppala Date: Thu Jun 25 18:35:17 2015 +0300 drm/i915/gtt: Move scratch_pd and scratch_pt into vm struct Scratch page is part of struct i915_address_space. Move other scratch entities into the same struct. This is a preparatory patch for having only one instance of each scratch_pt/pd. v2: make commit msg more readable Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry (v1) [danvet: Bikeshed summary to avoid confusion with vmas.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 51 +++++++++++++++++-------------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 7 +++-- 2 files changed, 27 insertions(+), 31 deletions(-) commit fe36f55d4d4447679923fc74564786ae423ca4bd Author: Mika Kuoppala Date: Thu Jun 25 18:35:16 2015 +0300 drm/i915/gtt: Cleanup page directory encoding Write page directory entry without using superfluous indirect function. Also remove unused device parameter from the encode function. Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) commit b2dd45111e0fb4b36dcc972c7ae4e69ff1df4f88 Author: Mika Kuoppala Date: Thu Jun 25 18:35:15 2015 +0300 drm/i915/gtt: Pin vma during virtual address allocation Dynamic page table allocation might wake the shrinker when memory is requested for page table structures. As this happens when we try to allocate the virtual address during binding, our vma might be among the targets for eviction. We should do i915_vma_pin() and do pin early in there like Chris suggests but this is interim solution. Shield our vma from shrinker by incrementing pin count before the virtual address is allocated. The proper place to fix this would be in gem, inside of i915_vma_pin(). But we don't have that yet so take the short cut as a intermediate solution. Testcase: igt/gem_ctx_thrash Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 3 +++ 1 file changed, 3 insertions(+) commit c114f76a0a76eeffa1c1be392d98182c2cc30291 Author: Mika Kuoppala Date: Thu Jun 25 18:35:13 2015 +0300 drm/i915/gtt: Make scratch page i915_page_dma compatible Lay out scratch page structure in similar manner than other paging structures. This allows us to use the same tools for setup and teardown. Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 89 ++++++++++++++++++++----------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 9 ++-- 2 files changed, 54 insertions(+), 44 deletions(-) commit 567047be2a7ede082d29f45524c287b87bd75e53 Author: Mika Kuoppala Date: Thu Jun 25 18:35:12 2015 +0300 drm/i915/gtt: Use macros to access dma mapped pages Make paging structure type agnostic *_px macros to access page dma struct, the backing page and the dma address. This makes the code less cluttered on internals of i915_page_dma. v2: Superfluous const -> nonconst removed v3: Rebased Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry (v2) Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 35 ++++++++++++++++++++--------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 8 ++++++-- 2 files changed, 26 insertions(+), 17 deletions(-) commit d1c54acd67dc6518629224b68cac17cd5cff1dc3 Author: Mika Kuoppala Date: Thu Jun 25 18:35:11 2015 +0300 drm/i915/gtt: Introduce kmap|kunmap for dma page As there is flushing involved when we have done the cpu write, make functions for mapping for cpu space. Make macros to map any type of paging structure. v2: Make it clear tha flushing kunmap is only for ppgtt (Ville) v3: Flushing fixed (Ville, Michel). Removed superfluous semicolon Cc: Ville Syrjälä Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 77 +++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 37 deletions(-) commit 73eeea537b1bb9c53c9e406a16354f6bc9b2be62 Author: Mika Kuoppala Date: Thu Jun 25 18:35:10 2015 +0300 drm/i915/gtt: Introduce fill_page_dma() When we setup page directories and tables, we point the entries to a to the next level scratch structure. Make this generic by introducing a fill_page_dma which maps and flushes. We also need 32 bit variant for legacy gens. v2: Fix flushes and handle valleyview (Ville) v3: Now really fix flushes (Michel, Ville) Reviewed-by: Michel Thierry Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 74 ++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 34 deletions(-) commit cee30c5439f5c9569ac9260b6e6968faf19cc575 Author: Mika Kuoppala Date: Thu Jun 25 18:35:09 2015 +0300 drm/i915/gtt: Remove superfluous free_pd with gen6/7 This has slipped in somewhere but it was harmless as we check the page pointer before teardown. Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 1 - 1 file changed, 1 deletion(-) commit a08e111a6cc88514155b087e0c307581064352b5 Author: Mika Kuoppala Date: Thu Jun 25 18:35:08 2015 +0300 drm/i915/gtt: Rename unmap_and_free_px to free_px All the paging structures are now similar and mapped for dma. The unmapping is taken care of by common accessors, so don't overload the reader with such details. v2: Be consistent with goto labels (Michel) Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 40 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 21 deletions(-) commit 44159ddbeac3d34e5ca9037e151a242b7388df8e Author: Mika Kuoppala Date: Thu Jun 25 18:35:07 2015 +0300 drm/i915/gtt: Introduce struct i915_page_dma All our paging structures have struct page and dma address for that page. Add struct for page/dma address pairs and use it to make the setup and teardown for different paging structures identical. Include the page directory offset also in the struct for legacy gens. Rename it to clearly point out that it is offset into the ggtt. v2: Add comment about ggtt_offset (Michel) Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 2 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 120 ++++++++++++++---------------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 25 +++++--- 3 files changed, 64 insertions(+), 83 deletions(-) commit d852c7bf902aa36f37b6fd0bb1147c922e7bd0fb Author: Mika Kuoppala Date: Thu Jun 25 18:35:06 2015 +0300 drm/i915/gtt: Introduce i915_page_dir_dma_addr The legacy mode mm switch and the execlist context assignment needs dma address for the page directories. Introduce a function that encapsulates the scratch_pd dma fallback if no pd is found. v2: Rebase, s/ring/req Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry (v1) Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 6 ++---- drivers/gpu/drm/i915/i915_gem_gtt.h | 8 ++++++++ drivers/gpu/drm/i915/intel_lrc.c | 4 +--- 3 files changed, 11 insertions(+), 7 deletions(-) commit c44ef60e437019b8ca1dab8b4d2e8761fd4ce1e9 Author: Mika Kuoppala Date: Thu Jun 25 18:35:05 2015 +0300 drm/i915/gtt: Allow >= 4GB sizes for vm. We can have exactly 4GB sized ppgtt with 32bit system. size_t is inadequate for this. v2: Convert a lot more places (Daniel) Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/char/agp/intel-gtt.c | 4 ++-- drivers/gpu/drm/i915/i915_debugfs.c | 42 ++++++++++++++++++------------------- drivers/gpu/drm/i915/i915_gem.c | 6 +++--- drivers/gpu/drm/i915/i915_gem_gtt.c | 22 +++++++++---------- drivers/gpu/drm/i915/i915_gem_gtt.h | 12 +++++------ include/drm/intel-gtt.h | 4 ++-- 6 files changed, 45 insertions(+), 45 deletions(-) commit a05d80eec27460a2dca06676d489637e25f93caf Author: Mika Kuoppala Date: Thu Jun 25 18:35:04 2015 +0300 drm/i915/gtt: Check va range against vm size Check the allocation area against the known end of address space instead of against fixed value. v2: Return ENODEV on internal bugs (Chris) Signed-off-by: Mika Kuoppala Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 5b7e4c9ce19038f88828309a0a61f5d5c6686d37 Author: Mika Kuoppala Date: Thu Jun 25 18:35:03 2015 +0300 drm/i915/gtt: Mark TLBS dirty for gen8+ When we touch gen8+ page maps, mark them dirty like we do with previous gens. v2: Update comment (Joonas) Signed-off-by: Mika Kuoppala Reviewed-by: Joonas Lahtinen Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit fa9f3281cbb1075545d4528c84059a3f4e117b44 Author: Emmanuel Grumbach Date: Thu Jun 11 20:45:49 2015 +0300 iwlwifi: pcie: lock start_hw / start_fw / stop_device This allows to ensure that we don't have races between them. A user reported that stop_device was called twice upon rfkill interrupt after suspend. When the interrupts are enabled, and right after when we directly check the rfkill state. Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/pcie/drv.c | 4 ++ drivers/net/wireless/iwlwifi/pcie/internal.h | 3 + drivers/net/wireless/iwlwifi/pcie/rx.c | 2 + drivers/net/wireless/iwlwifi/pcie/trans.c | 82 ++++++++++++++++++++++++---- 4 files changed, 81 insertions(+), 10 deletions(-) commit 012c02c15ac63b0b26c7f058c744e85cb563a737 Author: Emmanuel Grumbach Date: Tue Jun 16 22:37:40 2015 +0300 iwlwifi: dvm: start HW before running FW The new locking in PCIe transport requires to start_hw before start_fw. This uncovered a bug in dvm which failed to do so. Fix that. Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/dvm/mac80211.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 6c7d32cfdc622ef4b9f157592fc167513507270d Author: Sara Sharon Date: Sun Jun 7 09:34:57 2015 +0300 iwlwifi: deprecate -10.ucode for 3160 / 7260 / 7265 This firmware is not supported anymore - stop loading this firmware. Remove code handling older versions. Signed-off-by: Sara Sharon Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/iwl-7000.c | 2 +- drivers/net/wireless/iwlwifi/iwl-8000.c | 2 +- drivers/net/wireless/iwlwifi/mvm/fw.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) commit 1738d60b31d7792516426d62521ec65bff8281f5 Author: Johannes Berg Date: Fri May 22 12:09:44 2015 +0200 iwlwifi: mvm: handle RX MPDUs separately There's no need to forward RX MPDUs to notification wait tests, nor do we need to check them for firmware dump triggers, nor could they be asynchronous. It's thus more efficient to handle them separately, before going into the regular RX handlers. Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/ops.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit b503ed603ec9acc25dd31808fe87575bdaeab4e7 Author: Eyal Shapira Date: Wed May 27 22:20:46 2015 +0300 iwlwifi: mvm: rs: report last tx rate based on RSSI and caps In scenarios where we haven't converged yet to a specific modulation and rate it could be better to report to userspace the last tx rate based on the STA capabilities and RSSI. This is important as sometimes userspace displays the last tx rate as the link speed. This avoids being presented with low legacy rates when rs just begins its search or after an idle period in which it resets itself. Signed-off-by: Eyal Shapira Reviewed-by: Johannes Berg Signed-off-by: Emmanuel Grumbach drivers/net/wireless/iwlwifi/mvm/rs.c | 157 ++++++++++++++++++++++++++++++++-- drivers/net/wireless/iwlwifi/mvm/rs.h | 10 +++ 2 files changed, 160 insertions(+), 7 deletions(-) commit 9e2ee2dd044e01e06e4a6389583f95bfa1058bf1 Author: Ville Syrjälä Date: Wed Jun 24 21:59:35 2015 +0300 drm/i915: Add debug messages for pipe enable/disable Currently we don't have any real indication when a pipe gets enabled/disabled. Add some. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 ++++ 1 file changed, 4 insertions(+) commit a9ff8714d911b1f9417af75525eb29ac31e014fc Author: Ville Syrjälä Date: Wed Jun 24 21:59:34 2015 +0300 drm/i915: Store frontbuffer_bits in the plane Avoid some 'switch (plane->type)' by storing the fronbuffer_bits in intel_plane. Signed-off-by: Ville Syrjälä [danvet: use singular frontbuffer_bits in intel_plane since a plan can only ever have one bit. Discussed with Ville on irc.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 75 ++++++++++-------------------------- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_sprite.c | 1 + 3 files changed, 22 insertions(+), 55 deletions(-) commit acd3f3d3516838ebe001b7048fe59ab5b93bb645 Author: Bob Paauwe Date: Tue Jun 23 14:14:26 2015 -0700 drm/i915: Add the ddi get cdclk code for BXT (v3) The registers and process differ from other platforms. If the hardware was programmed incorrectly, this will return invalid cdclk values, which should then cause reprogramming of the hardware. v2(Matt): Return 19.2 MHz when DE PLL is disabled (Ville) v3: Make less assumptions about the hardware state (Ville) Cc: Ville Syrjälä Cc: Imre Deak Cc: Matt Roper Signed-off-by: Bob Paauwe Signed-off-by: Matt Roper Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 9e759ff1f4a047c405034dfff1ee5c87abba41db Author: Tvrtko Ursulin Date: Tue Jun 23 12:57:43 2015 +0100 drm/i915: Return correct size for rotated views Currently object size is returned for the rotated VMA size which can be bigger than the rotated view itself. Since the binding code pads all excess size with scratch pages the only minor issue with this is wasting some GGTT space, but still feels nicer to fix and report the real size. v2: Rebase for tracking size in bytes instead of pages. Signed-off-by: Tvrtko Ursulin Cc: Joonas Lahtinen Reviewed-by: Joonas Lahtinen Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 84fe03f7b2481b3a1cf4fb9db6e5df8d3698a4fe Author: Tvrtko Ursulin Date: Tue Jun 23 14:26:46 2015 +0100 drm/i915: Move rotated geometry calculations into the fill helper This way data is available as soon as the view is passed into the call chain. v2: Store size in bytes instead of pages under the appropriate name. (Chris Wilson) v3: Use uint64_t instead of size_t. (Daniel Vetter) Signed-off-by: Tvrtko Ursulin Cc: Daniel Vetter Cc: Chris Wilson Reviewed-by: Joonas Lahtinen (v2) Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 36 +++++++++++++----------------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 2 ++ drivers/gpu/drm/i915/intel_display.c | 8 ++++++++ 3 files changed, 23 insertions(+), 23 deletions(-) commit c9f8fd2d87eebb97b0ffdb3ff6cd90eb1c8e00bd Author: Tvrtko Ursulin Date: Wed Jun 24 09:55:20 2015 +0100 drm/i915: Remove mostly unused variable in intel_rotate_fb_obj_pages It is only used in logging and it doesn't need to exist on its own. Also it was misleading to log view size as object size. v2: Improve commit message. (Joonas Lahtinen) Signed-off-by: Tvrtko Ursulin Cc: Joonas Lahtinen Reviewed-by: Joonas Lahtinen [danvet: s/%lu/%zu/ where needed, reported by 0-day.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) commit c329a4ec595e886300710271db24bc29b74a4205 Author: Daniel Vetter Date: Thu Jun 18 10:30:23 2015 +0200 drm/i915: Nuke lvds downclock support With the new DRRS code it kinda sticks out, and we never managed to get this to work well enough without causing issues. Time to wave goodbye. I've decided to keep the logic for programming the reduced clocks intact, but everything else is gone. If anyone ever wants to resurrect this we need to redo it all anyway on top of the frontbuffer tracking. Signed-off-by: Daniel Vetter Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 -- drivers/gpu/drm/i915/i915_params.c | 6 --- drivers/gpu/drm/i915/intel_bios.c | 62 +--------------------- drivers/gpu/drm/i915/intel_display.c | 90 +++----------------------------- drivers/gpu/drm/i915/intel_frontbuffer.c | 55 ------------------- drivers/gpu/drm/i915/intel_lvds.c | 18 +------ 6 files changed, 8 insertions(+), 227 deletions(-) commit 8c6cda29194c5891d52cbd9d7aac496b61bf9310 Author: Imre Deak Date: Tue Jun 23 20:40:27 2015 +0300 drm/i915/gen9: fix typo when setting up the crtc scaler This typo lead to the crtc scaler getting enabled incorrectly and an evantual state checker mismatch about the scaler_id. Signed-off-by: Imre Deak Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0160f055393f457f8f218377bc088207eb502c38 Author: Arun Siluvery Date: Tue Jun 23 15:46:57 2015 +0100 drm/i915/gen8: Add WaClearSlmSpaceAtContextSwitch workaround In Indirect context w/a batch buffer, WaClearSlmSpaceAtContextSwitch This WA performs writes to scratch page so it must be valid, this check is performed before initializing the batch with this WA. v2: s/PIPE_CONTROL_FLUSH_RO_CACHES/PIPE_CONTROL_FLUSH_L3 (Ville) v3: GTT bit in scratch address should be mbz (Chris) Cc: Chris Wilson Cc: Dave Gordon Signed-off-by: Rafael Barbalho Signed-off-by: Arun Siluvery Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_lrc.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) commit 9fb73863cc3eda7476e88a03e8b125b3d309b7b3 Author: Daniel Vetter Date: Thu Jun 18 10:30:28 2015 +0200 drm/i915: Use to_i915 in intel_frontbuffer.c Must have missed the transition. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_frontbuffer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 20c8838b0e3ba408a0ffe185b6124cdd0fcc3283 Author: Daniel Vetter Date: Thu Jun 18 10:30:27 2015 +0200 drm/i915/psr: Restrict single-shot updates to the PSR pipe The frontbuffer code gives us accurate information about activity, let's use it. Again this should avoid unecessary updates when multiple screens are on. Also realign function paramaters, I couldn't resist that bit of OCD. Cc: Rodrigo Vivi Cc: Durgadoss R Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 7 ++++--- drivers/gpu/drm/i915/intel_frontbuffer.c | 2 +- drivers/gpu/drm/i915/intel_psr.c | 22 +++++++++++++--------- 3 files changed, 18 insertions(+), 13 deletions(-) commit ec76d62999b73f818f7d777ce037157bd2d4af02 Author: Daniel Vetter Date: Thu Jun 18 10:30:26 2015 +0200 drm/i915/psr: Restrict buffer tracking to the PSR pipe The current code tracks business across all pipes, but we're only really interested in the one pipe DRRS is enabled on. Fairly tiny optimization, but something I noticed while reading the code. But it might matter a bit when e.g. showing a video or something only on the external screen, while the panel is kept static. Also regroup the code slightly: First compute new bitmasks, then take appropriate actions. Cc: Rodrigo Vivi Cc: Durgadoss R Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_psr.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit c1d038c6e2fe1a07b23d8908bb2edfc95ca571cd Author: Daniel Vetter Date: Thu Jun 18 10:30:25 2015 +0200 drm/i915/drrs: Restrict buffer tracking to the DRRS pipe The current code tracks business across all pipes, but we're only really interested in the one pipe DRRS is enabled on. Fairly tiny optimization, but something I noticed while reading the code. But it might matter a bit when e.g. showing a video or something only on the external screen, while the panel is kept static. Also regroup the code slightly: First compute new bitmasks, then take appropriate actions. Cc: Ramalingam C Cc: Sivakumar Thulasimani Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 251ac8621921d3936ea2eff6790fe35b25cf28a4 Author: Daniel Vetter Date: Thu Jun 18 10:30:24 2015 +0200 drm/i915: s/update/compute/ for gmch dpll register functions I was momentarily confused until I've double-checked that these functions really only compute state and don't update the hardware state. They once did that, but since Ander's rework of the dpll computation flow that's no longer the case. Rename them to avoid further confusion. Note that the ilk code already follows the compute_dpll naming scheme for computing the actual register value. DDI code goes with _calc_, but that is close enough. Cc: Ander Conselvan de Oliveira Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 40 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) commit 9a851789e8a0cf38f9c04705a8e01b572e61f05f Author: Daniel Vetter Date: Thu Jun 18 10:30:22 2015 +0200 drm/i915: debugfs for frontbuffer tracking Useful to figure out whether stuck bits are due to the frontbuffer tracking code as opposed to individual consumers (who have their own bitmask tracking). Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 27e78a2a1f92e79707b4fb18cff1276088ef9178 Author: Daniel Vetter Date: Thu Jun 18 10:30:21 2015 +0200 drm/i915: Filter out no-op frontbuffer tracking flushes Paulo noticed that the fbc frontbuffer tracking flush callback occasionally gets a call without any bit set. This can happen when we have to filter flush calls due to e.g. gpu rendering. Filter these out. Reported-by: Paulo Zanoni Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_frontbuffer.c | 3 +++ 1 file changed, 3 insertions(+) commit fdbff9282c0f5f61ffc87d57461b04d943250910 Author: Daniel Vetter Date: Thu Jun 18 11:23:24 2015 +0200 drm/i915: Clear fb_tracking.busy_bits also for synchronous flips The current/old frontbuffer might still have gpu frontbuffer rendering pending. But once flipped it won't have the corresponding frontbuffer bits any more and hence the request retire function won't ever clear the corresponding busy bits. The async flip tracking (with the flip_prepare and flip_complete functions) already does this, but somehow I've forgotten to do this for synchronous flips. Note that we don't track outstanding rendering of the new framebuffer with busy_bits since all our plane update code waits for previous rendering to complete before displaying a new buffer. Hence a new buffer will never be busy. v2: Drop the spurious inline Ville spotted. v3: Don't touch flip_bits in the synchronsou frontbuffer_flip function, noticed by Paulo. v4: Remove one more inline that slipped through (Paulo). Reported-by: Paulo Zanoni Cc: Paulo Zanoni Cc: Ville Syrjälä Testcase: igt/kms_frontbuffer_tracking/fbc-modesetfrombusy Tested-by: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_drv.h | 17 +---------------- drivers/gpu/drm/i915/intel_frontbuffer.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 16 deletions(-) commit 392d39cfcaa9bcfa202fb0fd3bc65f3c20de318f Author: Han Xu Date: Wed May 13 14:40:57 2015 -0500 mtd: fsl-quadspi: Access multiple chips simultaneously Add supports for simultaneous access to multiple chips. Need to lock the mutex before any quad spi operations and unlock the mutex after operations complete. Signed-off-by: Han Xu [Brian: reworked err path in fsl_qspi_prep()] Signed-off-by: Brian Norris drivers/mtd/spi-nor/fsl-quadspi.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) commit 5e60d790714bbda0402ddd715aee5e61b48682f4 Author: Arun Siluvery Date: Tue Jun 23 15:50:44 2015 +0100 drm/i915: Bail out early if WA batch is not available for given Gen To initialize WA batch, at the moment we first allocate batch and then check whether we have any WA to be initialized for the given Gen; if we don't have any WA then we WARN the user, destroy the batch and return but this is causing another WARN in cleanup code complaining about sleeping in atomic context. Till we understand this better and to keep things simpler, bail out early if we don't have WA. Cc: Tvrtko Ursulin Cc: Chris Wilson Signed-off-by: Arun Siluvery Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 4d78c8dcf9f856587fb7bf664021d9fb699012d9 Author: Arun Siluvery Date: Tue Jun 23 15:50:43 2015 +0100 drm/i915: Fix warnings reported by 0-day Kernel 0-day framework reported warnings with WA batch patches, this patch fixes those warnings and an additional warning reported in intel_lrc.c file. Signed-off-by: Arun Siluvery Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a5ac0f907d5b713a89c960605f36c0ccb436022c Author: John Harrison Date: Fri May 29 17:44:15 2015 +0100 drm/i915: Remove the now obsolete 'i915_gem_check_olr()' As there is no OLR to check, the check_olr() function is now a no-op and can be removed. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/i915_gem.c | 34 +--------------------------------- drivers/gpu/drm/i915/intel_display.c | 6 ------ 3 files changed, 1 insertion(+), 40 deletions(-) commit ae70797d8d28d01e6354961e76f56112dae09052 Author: John Harrison Date: Fri May 29 17:44:14 2015 +0100 drm/i915: Update a bunch of LRC functions to take requests A bunch of the low level LRC functions were passing around ringbuf and ctx pairs. In a few cases, they took the r/c pair and a request as well. This is all quite messy and unnecesary. The context_queue() call is especially bad since the fake request code got removed - it takes a request and three extra things that must be extracted from the request and then it checks them against what it finds in the request. Removing all the derivable data makes the code much simpler all round. This patch updates those functions to just take the request structure. Note that logical_ring_wait_for_space now takes a request structure but already had a local request pointer that it uses to scan for something to wait on. To avoid confusion the local variable has been renamed 'target' (it is searching for a target request to do something with) and the parameter has been called req (to guarantee anything accidentally missed gets a compiler error). v2: Updated commit message re wait_for_space (Tomas Elf review comment). For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 66 ++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 37 deletions(-) commit 9bb1af4406f475e6b68aa53c6227b98aed56d11d Author: John Harrison Date: Fri May 29 17:44:13 2015 +0100 drm/i915: Remove 'faked' request from LRC submission The LRC submission code requires a request for tracking purposes. It does not actually require that request to 'complete' it simply uses it for keeping hold of reference counts on contexts and such like. Previously, the fall back path of polling for space in the ring would start by submitting any outstanding work that was sat in the buffer. This submission was not done as part of the request that that work was owned by because that would lead to complications with the request being submitted twice. Instead, a null request structure was passed in to the submit call and a fake one was created. That fall back path has long since been obsoleted and has now been removed. Thus there is never any need to fake up a request structure. This patch removes that code. A couple of sanity check warnings are added as well, just in case. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Thomas Daniel Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) commit fcfa423cbba268b1473e2d8c38fe6dbe65da88ea Author: John Harrison Date: Fri May 29 17:44:12 2015 +0100 drm/i915: Move the request/file and request/pid association to creation time In _i915_add_request(), the request is associated with a userland client. Specifically it is linked to the 'file' structure and the current user process is recorded. One problem here is that the current user process is not necessarily the same as when the request was submitted to the driver. This is especially true when the GPU scheduler arrives and decouples driver submission from hardware submission. Note also that it is only in the case where the add request comes from an execbuff call that there is a client to associate. Any other add request call is kernel only so does not need to do it. This patch moves the client association into a separate function. This is then called from the execbuffer code path itself at a sensible time. It also removes the now redundant 'file' pointer from the add request parameter list. An extra cleanup of the client association is also added to the request clean up code for the eventuality where the request is killed after association but before being submitted (e.g. due to out of memory error somewhere). Once the submission has happened, the request is on the request list and the regular request list removal will clear the association. Note that this still needs to happen at this point in time because the request might be kept floating around much longer (due to someone holding a reference count) and the client should not be worrying about this request after it has been retired. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 7 ++-- drivers/gpu/drm/i915/i915_gem.c | 56 +++++++++++++++++++++--------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 +++- 3 files changed, 49 insertions(+), 20 deletions(-) commit bccca494f75cbad4ea2d09e8205cab09ee610f6a Author: John Harrison Date: Fri May 29 17:44:11 2015 +0100 drm/i915: Remove the now obsolete 'outstanding_lazy_request' The outstanding_lazy_request is no longer used anywhere in the driver. Everything that was looking at it now has a request explicitly passed in from on high. Everything that was relying upon it behind the scenes is now explicitly creating/passing/submitting its own private request. Thus the OLR can be removed. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 16 ++-------------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 +--- drivers/gpu/drm/i915/intel_lrc.c | 1 - drivers/gpu/drm/i915/intel_ringbuffer.c | 8 -------- drivers/gpu/drm/i915/intel_ringbuffer.h | 4 ---- 5 files changed, 3 insertions(+), 30 deletions(-) commit 59c35a4d120ef5e34e91f2bccdfcf9e27a3b9397 Author: John Harrison Date: Fri May 29 17:44:10 2015 +0100 drm/i915: Remove the now obsolete intel_ring_get_request() Much of the driver has now been converted to passing requests around instead of rings/ringbufs/contexts. Thus the function for retreiving the request from a ring (i.e. the OLR) is no longer used and can be removed. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.h | 7 ------- 1 file changed, 7 deletions(-) commit ccd98fe4996cd22094cde7b6a1f7c569f261b3e9 Author: John Harrison Date: Fri May 29 17:44:09 2015 +0100 drm/i915: Add *_ring_begin() to request allocation Now that the *_ring_begin() functions no longer call the request allocation code, it is finally safe for the request allocation code to call *_ring_begin(). This is important to guarantee that the space reserved for the subsequent i915_add_request() call does actually get reserved. v2: Renamed functions according to review feedback (Tomas Elf). For: VIZ-5115 Signed-off-by: John Harrison Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 25 +++++++++++++------------ drivers/gpu/drm/i915/intel_lrc.c | 15 +++++++++++++++ drivers/gpu/drm/i915/intel_lrc.h | 1 + drivers/gpu/drm/i915/intel_ringbuffer.c | 29 ++++++++++++++++------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 1 + 5 files changed, 46 insertions(+), 25 deletions(-) commit 4d616a293a1071d19066808abccb40930f0ae5a0 Author: John Harrison Date: Fri May 29 17:44:08 2015 +0100 drm/i915: Update intel_logical_ring_begin() to take a request structure Now that everything above has been converted to use requests, intel_logical_ring_begin() can be updated to take a request instead of a ringbuf/context pair. This also means that it no longer needs to lazily allocate a request if no-one happens to have done it earlier. Note that this change makes the execlist signature the same as the legacy version. Thus the two functions could be merged into a ring->begin() wrapper if required. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) commit 5fb9de1a2ea1968b57c906c6770794f1e7744828 Author: John Harrison Date: Fri May 29 17:44:07 2015 +0100 drm/i915: Update intel_ring_begin() to take a request structure Now that everything above has been converted to use requests, intel_ring_begin() can be updated to take a request instead of a ring. This also means that it no longer needs to lazily allocate a request if no-one happens to have done it earlier. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem_context.c | 2 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 8 ++-- drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +-- drivers/gpu/drm/i915/intel_display.c | 10 ++-- drivers/gpu/drm/i915/intel_overlay.c | 8 ++-- drivers/gpu/drm/i915/intel_ringbuffer.c | 74 +++++++++++++++--------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 8 files changed, 55 insertions(+), 57 deletions(-) commit bba09b12b47b31b147206f5784691d2fb8888bf1 Author: John Harrison Date: Fri May 29 17:44:06 2015 +0100 drm/i915: Update cacheline_align() to take a request structure Updated intel_ring_cacheline_align() to take a request instead of a ring. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) commit f71696876a16c3d68d27db71d93f389ae440171c Author: John Harrison Date: Fri May 29 17:44:05 2015 +0100 drm/i915: Update ring->signal() to take a request structure Updated the various ring->signal() implementations to take a request instead of a ring. This removes their reliance on the OLR to obtain the seqno value that should be used for the signal. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 20 ++++++++++---------- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) commit 599d924c6b01e89b53c7879e7d7d89baa8d677d2 Author: John Harrison Date: Fri May 29 17:44:04 2015 +0100 drm/i915: Update ring->sync_to() to take a request structure Updated the ring->sync_to() implementations to take a request instead of a ring. Also updated the tracer to include the request id. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf [danvet: Rebase since I didn't merge the patch which added ->uniq.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 4 ++-- drivers/gpu/drm/i915/i915_trace.h | 8 ++++---- drivers/gpu/drm/i915/intel_ringbuffer.c | 6 ++++-- drivers/gpu/drm/i915/intel_ringbuffer.h | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) commit be795fc17bc9d42b0e5ec3e4442b59848137eb64 Author: John Harrison Date: Fri May 29 17:44:03 2015 +0100 drm/i915: Update ring->emit_bb_start() to take a request structure Updated the ring->emit_bb_start() implementation to take a request instead of a ringbuf/context pair. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 12 +++++------- drivers/gpu/drm/i915/intel_ringbuffer.h | 3 +-- 2 files changed, 6 insertions(+), 9 deletions(-) commit 53fddaf70d08aa6ff59a94ae0578ddc8743e920f Author: John Harrison Date: Fri May 29 17:44:02 2015 +0100 drm/i915: Update ring->dispatch_execbuffer() to take a request structure Updated the various ring->dispatch_execbuffer() implementations to take a request instead of a ring. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_render_state.c | 3 +-- drivers/gpu/drm/i915/intel_ringbuffer.c | 18 ++++++++++++------ drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) commit c4e766389e8b7ce3ceb7f2785d4bb94b82448ff0 Author: John Harrison Date: Fri May 29 17:44:01 2015 +0100 drm/i915: Update ring->emit_request() to take a request structure Updated the ring->emit_request() implementation to take a request instead of a ringbuf/request pair. Also removed its use of the OLR for obtaining the request's seqno. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 7 +++---- drivers/gpu/drm/i915/intel_ringbuffer.h | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) commit ee044a8863de58044cb370c23f97b9b68b33e47b Author: John Harrison Date: Fri May 29 17:44:00 2015 +0100 drm/i915: Update ring->add_request() to take a request structure Updated the various ring->add_request() implementations to take a request instead of a ring. This removes their reliance on the OLR to obtain the seqno value that the request should be tagged with. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 26 ++++++++++++-------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 3 files changed, 14 insertions(+), 16 deletions(-) commit 7deb4d3980ea44ebb4097426f85d5f6c89b873a4 Author: John Harrison Date: Fri May 29 17:43:59 2015 +0100 drm/i915: Update ring->emit_flush() to take a request structure Updated the various ring->emit_flush() implementations to take a request instead of a ringbuf/context pair. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 17 ++++++++--------- drivers/gpu/drm/i915/intel_ringbuffer.h | 3 +-- 2 files changed, 9 insertions(+), 11 deletions(-) commit f2cf1fcc70d6577dce73f269609e0753e1a99802 Author: John Harrison Date: Fri May 29 17:43:58 2015 +0100 drm/i915: Update some flush helpers to take request structures Updated intel_emit_post_sync_nonzero_flush(), gen7_render_ring_cs_stall_wa() and gen8_emit_pipe_control() to take requests instead of rings. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ringbuffer.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) commit a84c3ae168837dbedd0bde76a536360e84ae863a Author: John Harrison Date: Fri May 29 17:43:57 2015 +0100 drm/i915: Update ring->flush() to take a requests structure Updated the various ring->flush() functions to take a request instead of a ring. Also updated the tracer to include the request id. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf [danvet: Rebase since I didn't merge the addition of req->uniq.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 2 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++--- drivers/gpu/drm/i915/i915_trace.h | 8 ++++---- drivers/gpu/drm/i915/intel_ringbuffer.c | 34 ++++++++++++++++++++------------- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 5 files changed, 30 insertions(+), 22 deletions(-) commit e85b26dc1ca5ecbf6456c61a131a986a755cbc69 Author: John Harrison Date: Fri May 29 17:43:56 2015 +0100 drm/i915: Update switch_mm() to take a request structure Updated the switch_mm() code paths to take a request instead of a ring. This includes the myriad *_mm_switch functions themselves and a bunch of PDP related helper functions. v2: Rebased to newer tree. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_gtt.c | 21 +++++++++++++-------- drivers/gpu/drm/i915/i915_gem_gtt.h | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) commit 4866d729ab3833b811b8972d773477d3e4a6f9c0 Author: John Harrison Date: Fri May 29 17:43:55 2015 +0100 drm/i915: Update flush_all_caches() to take request structures Updated the *_ring_flush_all_caches() functions to take requests instead of rings or ringbuf/context pairs. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 4 ++-- drivers/gpu/drm/i915/intel_lrc.c | 11 +++++------ drivers/gpu/drm/i915/intel_lrc.h | 3 +-- drivers/gpu/drm/i915/intel_ringbuffer.c | 7 ++++--- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 5 files changed, 13 insertions(+), 14 deletions(-) commit e2be4faf30d6cb0af77c0105837df25f925903c9 Author: John Harrison Date: Fri May 29 17:43:54 2015 +0100 drm/i915: Update workarounds_emit() to take request structures Updated the *_ring_workarounds_emit() functions to take requests instead of ring/context pairs. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 14 +++++++------- drivers/gpu/drm/i915/intel_ringbuffer.c | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) commit 2f20055d360a2bb6863163d8b8b005ded1f6ba08 Author: John Harrison Date: Fri May 29 17:43:53 2015 +0100 drm/i915: Update a bunch of execbuffer helpers to take request structures Updated *_ring_invalidate_all_caches(), i915_reset_gen7_sol_offsets() and i915_emit_box() to take request structures instead of ring or ringbuf/context pairs. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 12 +++++++----- drivers/gpu/drm/i915/intel_lrc.c | 9 ++++----- drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- drivers/gpu/drm/i915/intel_ringbuffer.h | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) commit 1d719cda8b30bb179af74c6f16067db736983041 Author: John Harrison Date: Fri May 29 17:43:52 2015 +0100 drm/i915: Update mi_set_context() to take a request structure Updated mi_set_context() to take a request structure instead of a ring and context pair. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 6909a666466e4a83159df94c4e29cb9cd52fce9e Author: John Harrison Date: Fri May 29 17:43:51 2015 +0100 drm/i915: Update l3_remap to take a request structure Converted i915_gem_l3_remap() to take a request structure instead of a ring. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_gem.c | 5 +++-- drivers/gpu/drm/i915/i915_gem_context.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) commit b2af03769301e986740c50bf72a47b9abd528290 Author: John Harrison Date: Fri May 29 17:43:50 2015 +0100 drm/i915: Update [vma|object]_move_to_active() to take request structures Now that everything above has been converted to use request structures, it is possible to update the lower level move_to_active() functions to be request based as well. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_gem.c | 8 +++++--- drivers/gpu/drm/i915/i915_gem_context.c | 2 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 6 files changed, 10 insertions(+), 8 deletions(-) commit 75289874e4484cd4702b3341b654b45b4a09b9d3 Author: John Harrison Date: Fri May 29 17:43:49 2015 +0100 drm/i915: Update add_request() to take a request structure Now that all callers of i915_add_request() have a request pointer to hand, it is possible to update the add request function to take a request pointer rather than pulling it out of the OLR. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 10 +++++----- drivers/gpu/drm/i915/i915_gem.c | 22 +++++++++++----------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- drivers/gpu/drm/i915/intel_overlay.c | 4 ++-- drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- 7 files changed, 23 insertions(+), 22 deletions(-) commit 6258fbe23fe04da544261f48112a292bdb068c12 Author: John Harrison Date: Fri May 29 17:43:48 2015 +0100 drm/i915: Update queue_flip() to take a request structure Updated the display page flip code to do explicit request creation and submission rather than relying on the OLR and just hoping that the request actually gets submitted at some random point. The sequence is now to create a request, queue the work to the ring, assign the known request to the flip queue work item then actually submit the work and post the request. Note that every single flip function used to finish with '__intel_ring_advance(ring);'. However, immediately after they return there is now an add request call which will do the advance anyway. Thus the many duplicate advance calls have been removed. v2: Updated commit message with comment about advance removal. v3: The request can now be allocated by the _sync() code earlier on. Thus the page flip path does not necessarily need to allocate a new request, it may be able to re-use one. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_display.c | 33 +++++++++++++++++++-------------- drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- drivers/gpu/drm/i915/intel_ringbuffer.h | 1 - 4 files changed, 21 insertions(+), 17 deletions(-) commit dad540ce02c5bc82569061c9562982e6f052ee42 Author: John Harrison Date: Fri May 29 17:43:47 2015 +0100 drm/i915: Update overlay code to do explicit request management The overlay update code path to do explicit request creation and submission rather than relying on the OLR to do the right thing. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_overlay.c | 57 ++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 16 deletions(-) commit 91af127fd7a2f069046b0b6740473e70e0051492 Author: John Harrison Date: Thu Jun 18 13:14:56 2015 +0100 drm/i915: Update i915_gem_object_sync() to take a request structure The plan is to pass requests around as the basic submission tracking structure rather than rings and contexts. This patch updates the i915_gem_object_sync() code path. v2: Much more complex patch to share a single request between the sync and the page flip. The _sync() function now supports lazy allocation of the request structure. That is, if one is passed in then that will be used. If one is not, then a request will be allocated and passed back out. Note that the _sync() code does not necessarily require a request. Thus one will only be created until certain situations. The reason the lazy allocation must be done within the _sync() code itself is because the decision to need one or not is not really something that code above can second guess (except in the case where one is definitely not required because no ring is passed in). The call chains above _sync() now support passing a request through which most callers passing in NULL and assuming that no request will be required (because they also pass in NULL for the ring and therefore can't be generating any ring code). The exeception is intel_crtc_page_flip() which now supports having a request returned from _sync(). If one is, then that request is shared by the page flip (if the page flip is of a type to need a request). If _sync() does not generate a request but the page flip does need one, then the page flip path will create its own request. v3: Updated comment description to be clearer about 'to_req' parameter (Tomas Elf review request). Rebased onto newer tree that significantly changed the synchronisation code. v4: Updated comments from review feedback (Tomas Elf) For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 4 ++- drivers/gpu/drm/i915/i915_gem.c | 48 ++++++++++++++++++++++-------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 17 +++++++---- drivers/gpu/drm/i915/intel_drv.h | 3 +- drivers/gpu/drm/i915/intel_fbdev.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- drivers/gpu/drm/i915/intel_overlay.c | 2 +- 8 files changed, 57 insertions(+), 23 deletions(-) commit be01363f0a38c30828aca620e30f8c158910fca6 Author: John Harrison Date: Fri May 29 17:43:45 2015 +0100 drm/i915: Update render_state_init() to take a request structure Updated the two render_state_init() functions to take a request pointer instead of a ring. This removes their reliance on the OLR. v2: Rebased to newer tree. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_render_state.c | 14 +++++++------- drivers/gpu/drm/i915/i915_gem_render_state.h | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 18 ++++++++---------- drivers/gpu/drm/i915/intel_ringbuffer.c | 2 +- 4 files changed, 17 insertions(+), 19 deletions(-) commit 8753181e1006dcebc84127ce29b8f8166bb1ada3 Author: John Harrison Date: Fri May 29 17:43:44 2015 +0100 drm/i915: Update init_context() to take a request structure Now that everything above has been converted to use requests, it is possible to update init_context() to take a request pointer instead of a ring/context pair. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 4 ++-- drivers/gpu/drm/i915/intel_lrc.c | 9 ++++----- drivers/gpu/drm/i915/intel_ringbuffer.c | 7 +++---- drivers/gpu/drm/i915/intel_ringbuffer.h | 3 +-- 4 files changed, 10 insertions(+), 13 deletions(-) commit 76c3916887f1225db4b4960c59820db1a995f3cb Author: John Harrison Date: Fri May 29 17:43:43 2015 +0100 drm/i915: Update deferred context creation to do explicit request management In execlist mode, context initialisation is deferred until first use of the given context. This is because execlist mode has per ring context state and thus many more context storage objects than legacy mode and many are never actually used. Previously, the initialisation commands were written to the ring and tagged with some random request structure via the OLR. This seemed to be causing a null pointer deference bug under certain circumstances (BZ:88865). This patch adds explicit request creation and submission to the deferred initialisation code path. Thus removing any reliance on or randomness caused by the OLR. Note that it should be possible to move the deferred context creation until even later - when the context is actually switched to rather than when it is merely validated. This would allow the initialisation to be done within the request of the work that is wanting to use the context. Hence, the extra request that is created, used and retired just for the context init could be removed completely. However, this is left for a follow up patch. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit abd68d9ed3fbd3280e8780150bd0e01099b02627 Author: John Harrison Date: Fri May 29 17:43:42 2015 +0100 drm/i915: Update do_switch() to take a request structure Updated do_switch() to take a request pointer instead of a ring/context pair. v2: Removed some overzealous req-> dereferencing. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_context.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ba01cc9346bce45a8861f36bce2c4c5d44b800b2 Author: John Harrison Date: Fri May 29 17:43:41 2015 +0100 drm/i915: Update i915_switch_context() to take a request structure Now that the request is guaranteed to specify the context, it is possible to update the context switch code to use requests rather than ring and context pairs. This patch updates i915_switch_context() accordingly. Also removed the warning that the request's context must match the last context switch's context. As the context switch now gets the context object from the request structure, there is no longer any scope for the two to become out of step. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +-- drivers/gpu/drm/i915/i915_gem.c | 4 +--- drivers/gpu/drm/i915/i915_gem_context.c | 19 +++++++++---------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- 4 files changed, 12 insertions(+), 16 deletions(-) commit b3dd6b9681e4116bce4dd1145cb162a5a48bac8e Author: John Harrison Date: Fri May 29 17:43:40 2015 +0100 drm/i915: Update ppgtt_init_ring() & context_enable() to take requests The final step in removing the OLR from i915_gem_init_hw() is to pass the newly allocated request structure in to each step rather than passing a ring structure. This patch updates both i915_ppgtt_init_ring() and i915_gem_context_enable() to take request pointers. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_gem.c | 4 ++-- drivers/gpu/drm/i915/i915_gem_context.c | 3 ++- drivers/gpu/drm/i915/i915_gem_gtt.c | 6 +++--- drivers/gpu/drm/i915/i915_gem_gtt.h | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) commit dc4be6071a24f0d2da6af8ce16c19f276ac4d7a2 Author: John Harrison Date: Fri May 29 17:43:39 2015 +0100 drm/i915: Add explicit request management to i915_gem_init_hw() Now that a single per ring loop is being done for all the different intialisation steps in i915_gem_init_hw(), it is possible to add proper request management as well. The last remaining issue is that the context enable call eventually ends up within *_render_state_init() and this does its own private _i915_add_request() call. This patch adds explicit request creation and submission to the top level loop and removes the add_request() from deep within the sub-functions. v2: Updated for removal of batch_obj from add_request call in previous patch. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- drivers/gpu/drm/i915/i915_gem.c | 12 ++++++++++++ drivers/gpu/drm/i915/i915_gem_render_state.c | 2 -- drivers/gpu/drm/i915/intel_lrc.c | 5 ----- 4 files changed, 14 insertions(+), 8 deletions(-) commit a3fbe05a611811ad8413130f63aaa79428b00377 Author: John Harrison Date: Fri May 29 17:43:38 2015 +0100 drm/i915: Don't tag kernel batches as user batches The render state initialisation code does an explicit i915_add_request() call to commit the init commands. It was passing in the initialisation batch buffer to add_request() as the batch object parameter. However, the batch object entry in the request structure (which is all that parameter is used for) is meant for keeping track of user generated batch buffers for blame tagging during GPU hangs. This patch clears the batch object parameter so that kernel generated batch buffers are not tagged as being user generated. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 90638cc1a4299acf19ed6fe253517a86d52a02ab Author: John Harrison Date: Fri May 29 17:43:37 2015 +0100 drm/i915: Moved the for_each_ring loop outside of i915_gem_context_enable() The start of day context initialisation code in i915_gem_context_enable() loops over each ring and calls the legacy switch context or the execlist init context code as appropriate. This patch moves the ring looping out of that function in to the top level caller i915_gem_init_hw(). This means the a single pass can be made over all rings doing the PPGTT, L3 remap and context initialisation of each ring altogether. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_gem.c | 17 ++++++++++------- drivers/gpu/drm/i915/i915_gem_context.c | 32 +++++++++++--------------------- 3 files changed, 22 insertions(+), 29 deletions(-) commit 4ad2fd888bd3fa53e4bd36e5552bd784fb7ba241 Author: John Harrison Date: Thu Jun 18 13:11:20 2015 +0100 drm/i915: Split i915_ppgtt_init_hw() in half - generic and per ring The i915_gem_init_hw() function calls a bunch of smaller initialisation functions. Multiple of which have generic sections and per ring sections. This means multiple passes are done over the rings. Each pass writes data to the ring which floats around in that ring's OLR until some random point in the future when an add_request() is done by some random other piece of code. This patch breaks i915_ppgtt_init_hw() in two with the per ring initialisation now being done in i915_ppgtt_init_ring(). The ring looping is now done at the top level in i915_gem_init_hw(). v2: Fix dumb loop variable re-use. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf (v1) Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 27 ++++++++++++++++++++------- drivers/gpu/drm/i915/i915_gem_gtt.c | 28 +++++++++++++++------------- drivers/gpu/drm/i915/i915_gem_gtt.h | 1 + 3 files changed, 36 insertions(+), 20 deletions(-) commit 73cfa86512813807f39a51a21d14774a29714e15 Author: John Harrison Date: Fri May 29 17:43:35 2015 +0100 drm/i915: Update i915_gpu_idle() to manage its own request Added explicit request creation and submission to the GPU idle code path. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) commit 5b4a60c2768434a8c6d5f803a2410245334b8bf7 Author: John Harrison Date: Fri May 29 17:43:34 2015 +0100 drm/i915: Add flag to i915_add_request() to skip the cache flush In order to explcitly track all GPU work (and completely remove the outstanding lazy request), it is necessary to add extra i915_add_request() calls to various places. Some of these do not need the implicit cache flush done as part of the standard batch buffer submission process. This patch adds a flag to _add_request() to specify whether the flush is required or not. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 7 +++++-- drivers/gpu/drm/i915/i915_gem.c | 17 ++++++++++------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 5 files changed, 18 insertions(+), 12 deletions(-) commit 8a8edb59172983a7c4aa46ab35b5a23a49c729c5 Author: John Harrison Date: Fri May 29 17:43:33 2015 +0100 drm/i915: Update execbuffer_move_to_active() to take a request structure The plan is to pass requests around as the basic submission tracking structure rather than rings and contexts. This patch updates the execbuffer_move_to_active() code path. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 +++--- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit 535fbe8233d164e76bac515dd7efee699093cea9 Author: John Harrison Date: Fri May 29 17:43:32 2015 +0100 drm/i915: Update move_to_gpu() to take a request structure The plan is to pass requests around as the basic submission tracking structure rather than rings and contexts. This patch updates the move_to_gpu() code paths. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 12 ++++++------ drivers/gpu/drm/i915/intel_lrc.c | 12 +++++------- 2 files changed, 11 insertions(+), 13 deletions(-) commit 95c24161cd8561bd2f866a802a44b28fd0a867b7 Author: John Harrison Date: Fri May 29 17:43:31 2015 +0100 drm/i915: Update the dispatch tracepoint to use params->request Updated a couple of trace points to use the now cached request pointer rather than extracting it from the ring. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 6a6ae79a761ddc95b67254e256f82f6d7c9c44d3 Author: John Harrison Date: Fri May 29 17:43:30 2015 +0100 drm/i915: Add request to execbuf params and add explicit cleanup Rather than just having a local request variable in the execbuff code, the request pointer is now stored in the execbuff params structure. Also added explicit cleanup of the request (plus wiping the OLR to match) in the error case. This means that the execbuff code is no longer dependent upon the OLR keeping track of the request so as to not leak it when things do go wrong. Note that in the success case, the i915_add_request() at the end of the submission function will tidy up the request and clear the OLR. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem_execbuffer.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) commit 217e46b576ef0d5eed10ddfeb2b29bd3de289e95 Author: John Harrison Date: Fri May 29 17:43:29 2015 +0100 drm/i915: Update alloc_request to return the allocated request The alloc_request() function does not actually return the newly allocated request. Instead, it must be pulled from ring->outstanding_lazy_request. This patch fixes this so that code can create a request and start using it knowing exactly which request it actually owns. v2: Updated for new i915_gem_request_alloc() scheme. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 ++- drivers/gpu/drm/i915/i915_gem.c | 10 +++++++--- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 ++- drivers/gpu/drm/i915/intel_lrc.c | 3 ++- drivers/gpu/drm/i915/intel_ringbuffer.c | 3 ++- 5 files changed, 15 insertions(+), 7 deletions(-) commit adeca76d8e2b34b5c739a36f4191aed63080da40 Author: John Harrison Date: Fri May 29 17:43:28 2015 +0100 drm/i915: Simplify i915_gem_execbuffer_retire_commands() parameters Shrunk the parameter list of i915_gem_execbuffer_retire_commands() to a single structure as everything it requires is available in the execbuff_params object. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 5 +---- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 12 ++++-------- drivers/gpu/drm/i915/intel_lrc.c | 2 +- 3 files changed, 6 insertions(+), 13 deletions(-) commit 5f19e2bffa63a91cd4ac1adcec648e14a44277ce Author: John Harrison Date: Fri May 29 17:43:27 2015 +0100 drm/i915: Merged the many do_execbuf() parameters into a structure The do_execbuf() function takes quite a few parameters. The actual set of parameters is going to change with the conversion to passing requests around. Further, it is due to grow massively with the arrival of the GPU scheduler. This patch simplifies the prototype by passing a parameter structure instead. Changing the parameter set in the future is then simply a matter of adding/removing items to the structure. Note that the structure does not contain absolutely everything that is passed in. This is because the intention is to use this structure more extensively later in this patch series and more especially in the GPU scheduler that is coming soon. The latter requires hanging on to the structure as the final hardware submission can be delayed until long after the execbuf IOCTL has returned to user land. Thus it is unsafe to put anything in the structure that is local to the IOCTL call itself - such as the 'args' parameter. All entries must be copies of data or pointers to structures that are reference counted in some way and guaranteed to exist for the duration of the batch buffer's life. v2: Rebased to newer tree and updated for changes to the command parser. Specifically, a code shuffle has required saving the batch start address in the params structure. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 28 +++++++------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 59 +++++++++++++++++++----------- drivers/gpu/drm/i915/intel_lrc.c | 26 +++++++------ drivers/gpu/drm/i915/intel_lrc.h | 9 ++--- 4 files changed, 70 insertions(+), 52 deletions(-) commit 40e895ceca40b9c3104b2abd0ed5c72650fb20a4 Author: John Harrison Date: Fri May 29 17:43:26 2015 +0100 drm/i915: Set context in request from creation even in legacy mode In execlist mode, the context object pointer is written in to the request structure (and reference counted) at the point of request creation. In legacy mode, this only happens inside i915_add_request(). This patch updates the legacy code path to match the execlist version. This allows all the intermediate code between request creation and request submission to get at the context object given only a request structure. Thus negating the need to pass context pointers here, there and everywhere. v2: Moved the context reference so it does not need to be undone if the get_seqno() fails. v3: Fixed execlist mode always hitting a warning about invalid last_contexts (which don't exist in execlist mode). v4: Updated for new i915_gem_request_alloc() scheme. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 22 +++++++++------------- drivers/gpu/drm/i915/intel_lrc.c | 11 ++++------- drivers/gpu/drm/i915/intel_lrc.h | 3 +-- 3 files changed, 14 insertions(+), 22 deletions(-) commit 0c8dac889539ab26382ba1636ec1159cae73f2b3 Author: John Harrison Date: Fri May 29 17:43:25 2015 +0100 drm/i915: Early alloc request in execbuff Start of explicit request management in the execbuffer code path. This patch adds a call to allocate a request structure before all the actual hardware work is done. Thus guaranteeing that all that work is tagged by a known request. At present, nothing further is done with the request, the rest comes later in the series. The only noticable change is that failure to get a request (e.g. due to lack of memory) will be caught earlier in the sequence. It now occurs right at the start before any un-undoable work has been done. v2: Simplified the error handling path. For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 +++++++ 1 file changed, 7 insertions(+) commit bf7dc5b70952eb58c4fd57c9b964488650303a32 Author: John Harrison Date: Fri May 29 17:43:24 2015 +0100 drm/i915: i915_add_request must not fail The i915_add_request() function is called to keep track of work that has been written to the ring buffer. It adds epilogue commands to track progress (seqno updates and such), moves the request structure onto the right list and other such house keeping tasks. However, the work itself has already been written to the ring and will get executed whether or not the add request call succeeds. So no matter what goes wrong, there isn't a whole lot of point in failing the call. At the moment, this is fine(ish). If the add request does bail early on and not do the housekeeping, the request will still float around in the ring->outstanding_lazy_request field and be picked up next time. It means multiple pieces of work will be tagged as the same request and driver can't actually wait for the first piece of work until something else has been submitted. But it all sort of hangs together. This patch series is all about removing the OLR and guaranteeing that each piece of work gets its own personal request. That means that there is no more 'hoovering up of forgotten requests'. If the request does not get tracked then it will be leaked. Thus the add request call _must_ not fail. The previous patch should have already ensured that it _will_ not fail by removing the potential for running out of ring space. This patch enforces the rule by actually removing the early exit paths and the return code. Note that if something does manage to fail and the epilogue commands don't get written to the ring, the driver will still hang together. The request will be added to the tracking lists. And as in the old case, any subsequent work will generate a new seqno which will suffice for marking the old one as complete. v2: Improved WARNings (Tomas Elf review request). For: VIZ-5115 Signed-off-by: John Harrison Reviewed-by: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 6 ++-- drivers/gpu/drm/i915/i915_gem.c | 43 ++++++++++++---------------- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/i915_gem_render_state.c | 2 +- drivers/gpu/drm/i915/intel_lrc.c | 2 +- drivers/gpu/drm/i915/intel_overlay.c | 8 +++--- drivers/gpu/drm/i915/intel_ringbuffer.c | 8 ++---- 7 files changed, 31 insertions(+), 40 deletions(-) commit 29b1b415fcd95a2266ab58fc7825bccbffa5c142 Author: John Harrison Date: Thu Jun 18 13:10:09 2015 +0100 drm/i915: Reserve ring buffer space for i915_add_request() commands It is a bad idea for i915_add_request() to fail. The work will already have been send to the ring and will be processed, but there will not be any tracking or management of that work. The only way the add request call can fail is if it can't write its epilogue commands to the ring (cache flushing, seqno updates, interrupt signalling). The reasons for that are mostly down to running out of ring buffer space and the problems associated with trying to get some more. This patch prevents that situation from happening in the first place. When a request is created, it marks sufficient space as reserved for the epilogue commands. Thus guaranteeing that by the time the epilogue is written, there will be plenty of space for it. Note that a ring_begin() call is required to actually reserve the space (and do any potential waiting). However, that is not currently done at request creation time. This is because the ring_begin() code can allocate a request. Hence calling begin() from the request allocation code would lead to infinite recursion! Later patches in this series remove the need for begin() to do the allocate. At that point, it becomes safe for the allocate to call begin() and really reserve the space. Until then, there is a potential for insufficient space to be available at the point of calling i915_add_request(). However, that would only be in the case where the request was created and immediately submitted without ever calling ring_begin() and adding any work to that request. Which should never happen. And even if it does, and if that request happens to fall down the tiny window of opportunity for failing due to being out of ring space then does it really matter because the request wasn't doing anything in the first place? v2: Updated the 'reserved space too small' warning to include the offending sizes. Added a 'cancel' operation to clean up when a request is abandoned. Added re-initialisation of tracking state after a buffer wrap to keep the sanity checks accurate. v3: Incremented the reserved size to accommodate Ironlake (after finally managing to run on an ILK system). Also fixed missing wrap code in LRC mode. v4: Added extra comment and removed duplicate WARN (feedback from Tomas). For: VIZ-5115 CC: Tomas Elf Signed-off-by: John Harrison Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_gem.c | 37 +++++++++++++++++ drivers/gpu/drm/i915/intel_lrc.c | 21 ++++++++++ drivers/gpu/drm/i915/intel_ringbuffer.c | 71 ++++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_ringbuffer.h | 25 ++++++++++++ 5 files changed, 153 insertions(+), 2 deletions(-) commit 0b076ecdf343b029c4c2c3a94ffd0199d97aa46c Merge: c82435b 9eb1e57 Author: Daniel Vetter Date: Tue Jun 23 08:31:49 2015 +0200 Merge remote-tracking branch 'airlied/drm-next' into HEAD Backmerge drm-next because the conflict between Ander's atomic fixes for 4.2 and Maartens future work are getting to unwielding to handle. Conflicts: drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_ringbuffer.h Just always take ours, same as git merge -X ours, but done by hand because I didn't trust git: It's confusing that it doesn't show any conflicts in the merge diff at all. Signed-off-by: Daniel Vetter commit c82435bbe5aca62fc54615ff8ba78134bfa33866 Author: Arun Siluvery Date: Fri Jun 19 18:37:13 2015 +0100 drm/i915/gen8: Add WaFlushCoherentL3CacheLinesAtContextSwitch workaround In Indirect context w/a batch buffer, +WaFlushCoherentL3CacheLinesAtContextSwitch:bdw v2: Add LRI commands to set/reset bit that invalidates coherent lines, update WA to include programming restrictions and exclude CHV as it is not required (Ville) v3: Avoid unnecessary read when it can be done by reading register once (Chris). Cc: Chris Wilson Cc: Dave Gordon Signed-off-by: Rafael Barbalho Signed-off-by: Arun Siluvery Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 2 ++ drivers/gpu/drm/i915/intel_lrc.c | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) commit 7ad00d1ac12bf461d0f0b69bf4e0e883b9e23c53 Author: Arun Siluvery Date: Fri Jun 19 18:37:12 2015 +0100 drm/i915/gen8: Add WaDisableCtxRestoreArbitration workaround In Indirect and Per context w/a batch buffer, +WaDisableCtxRestoreArbitration Cc: Chris Wilson Cc: Dave Gordon Signed-off-by: Rafael Barbalho Signed-off-by: Arun Siluvery Acked-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit c4db7599194248214b343d1ef1a1bc53d6cff187 Author: Arun Siluvery Date: Fri Jun 19 18:37:11 2015 +0100 drm/i915/gen8: Re-order init pipe_control in lrc mode Some of the WA applied using WA batch buffers perform writes to scratch page. In the current flow WA are initialized before scratch obj is allocated. This patch reorders intel_init_pipe_control() to have a valid scratch obj before we initialize WA. v2: Check for valid scratch page before initializing WA as some of them perform writes to it. Cc: Chris Wilson Cc: Dave Gordon Signed-off-by: Michel Thierry Signed-off-by: Arun Siluvery Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit 17ee950df38b649d8431e2f6f7f85282d89f5398 Author: Arun Siluvery Date: Fri Jun 19 19:07:01 2015 +0100 drm/i915/gen8: Add infrastructure to initialize WA batch buffers Some of the WA are to be applied during context save but before restore and some at the end of context save/restore but before executing the instructions in the ring, WA batch buffers are created for this purpose and these WA cannot be applied using normal means. Each context has two registers to load the offsets of these batch buffers. If they are non-zero, HW understands that it need to execute these batches. v1: In this version two separate ring_buffer objects were used to load WA instructions for indirect and per context batch buffers and they were part of every context. v2: Chris suggested to include additional page in context and use it to load these WA instead of creating separate objects. This will simplify lot of things as we need not explicity pin/unpin them. Thomas Daniel further pointed that GuC is planning to use a similar setup to share data between GuC and driver and WA batch buffers can probably share that page. However after discussions with Dave who is implementing GuC changes, he suggested to use an independent page for the reasons - GuC area might grow and these WA are initialized only once and are not changed afterwards so we can share them share across all contexts. The page is updated with WA during render ring init. This has an advantage of not adding more special cases to default_context. We don't know upfront the number of WA we will applying using these batch buffers. For this reason the size was fixed earlier but it is not a good idea. To fix this, the functions that load instructions are modified to report the no of commands inserted and the size is now calculated after the batch is updated. A macro is introduced to add commands to these batch buffers which also checks for overflow and returns error. We have a full page dedicated for these WA so that should be sufficient for good number of WA, anything more means we have major issues. The list for Gen8 is small, same for Gen9 also, maybe few more gets added going forward but not close to filling entire page. Chris suggested a two-pass approach but we agreed to go with single page setup as it is a one-off routine and simpler code wins. One additional option is offset field which is helpful if we would like to have multiple batches at different offsets within the page and select them based on some criteria. This is not a requirement at this point but could help in future (Dave). Chris provided some helpful macros and suggestions which further simplified the code, they will also help in reducing code duplication when WA for other Gen are added. Add detailed comments explaining restrictions. Use do {} while(0) for wa_ctx_emit() macro. (Many thanks to Chris, Dave and Thomas for their reviews and inputs) Cc: Chris Wilson Cc: Dave Gordon Signed-off-by: Rafael Barbalho Signed-off-by: Arun Siluvery Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lrc.c | 223 +++++++++++++++++++++++++++++++- drivers/gpu/drm/i915/intel_ringbuffer.h | 21 +++ 2 files changed, 240 insertions(+), 4 deletions(-) commit b1330fbb870467bbb90adb2e8868672af4ca88c7 Author: Chris Wilson Date: Thu Jun 18 11:42:08 2015 +0100 drm/i915: Report an error when i915.reset prevents a reset If the user disables the GPU reset using the i915.reset parameter and one occurs, report that we failed to reset the GPU. If we return early, as we currently do, then we leave all state intact (with a hung GPU) and clients block forever waiting for their requests to complete. Testcase: igt/gem_eio Signed-off-by: Chris Wilson [danvet: Mark i915.reset as an unsafe modoption, as discussed with Chris.] Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 1 - drivers/gpu/drm/i915/i915_drv.c | 3 --- drivers/gpu/drm/i915/i915_params.c | 2 +- drivers/gpu/drm/i915/intel_uncore.c | 3 +++ 4 files changed, 4 insertions(+), 5 deletions(-) commit bf13af56252b2b4f50eb6fc8638e8cb9e84ff475 Author: Daniel Vetter Date: Tue Jun 23 13:57:47 2015 +0200 drm/i915: Fix up KMS Kconfig removal patch The module pciid list got lost, but somehow most distros seem to force-load drm drivers early and no one noticed for a while. Bug introduced in commit fd930478fb797e4cbaa799d9ddd970e9a1fa1b4a Author: Chris Wilson Date: Fri Jun 19 20:27:27 2015 +0100 drm/i915: Remove KMS Kconfig option Reported-by: Tvrtko Ursulin Cc: Tvrtko Ursulin Cc: Damien Lespiau Cc: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.c | 2 -- drivers/gpu/drm/i915/i915_params.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) commit fd930478fb797e4cbaa799d9ddd970e9a1fa1b4a Author: Chris Wilson Date: Fri Jun 19 20:27:27 2015 +0100 drm/i915: Remove KMS Kconfig option Since we only support modesetting by default (disabling modesetting on the command line prevents i915.ko from loading), having a parameter to disable modesstting by default is superfluous, i.e. saying CONFIG_DRM_I915_KMS=n is equivalent to CONFIG_DRM_I915=n. Signed-off-by: Chris Wilson Cc: Daniel Veter Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter arch/x86/configs/x86_64_defconfig | 1 - drivers/gpu/drm/i915/Kconfig | 9 --------- drivers/gpu/drm/i915/i915_drv.c | 20 +++++++------------- 3 files changed, 7 insertions(+), 23 deletions(-) commit eebaed646ab263cabcd19485e606e51c0bb11c5c Author: Chris Wilson Date: Fri Jun 19 13:57:43 2015 +0100 drm/i915: Ignore LVDS presence in VBT flag if the LVDS is enabled by BIOS On older gen, pre-Ironlake, parts there is no hardwired pin to report the presence of an LVDS panel. Instead, we have to rely on the VBT to declare whether the machine has a panel or not. Though notoriously unreliable, so far we have erred on the side of false-positives and have required a list of machines which end up falsely reporting a panel as present. However, we now have reports of false-negatives, machines with an LVDS that are being ignored due to the VBT not declaring the panel. This patch ignores the VBT setting if the BIOS has already enabled the LVDS panel (and on Ironlake+ we also have the hardware presence pin). It fixes the Samsung NP680Z5E-X01FR in the bug report, but is likely to result in more false-positives, and since we rely on the BIOS to enable the panel, there are likely different circumstances where the BIOS will not enable that panel (and so we may see the same machine with and without a panel all on the whim of the BIOS). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90979 Reported-and-tested-by: lysxia@gmail.com Signed-off-by: Chris Wilson Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_lvds.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) commit 55a9785d125a4dd33678795ccba0ed61a6e8540c Author: Chris Wilson Date: Fri Jun 19 13:59:46 2015 +0100 drm/i915: Enforce execobject.alignment to be a power-of-two Internal requirement for the alignment is that it must be a power-of-two, so enforce rejection at the user interface to execbuffer (which allows the caller to specify a stricter-than-expected alignment criterion). Signed-off-by: Chris Wilson Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 +++ 1 file changed, 3 insertions(+) commit 77a0d1cab489eb2b6ebd54234df4262f4840d498 Author: Rodrigo Vivi Date: Thu Jun 18 11:43:24 2015 -0700 drm/i915: Remove unused ring argument from frontbuffer invalidate and busy functions. This patch doesn't have any functional change, but organize fruntbuffer invalidate and busy by removing unecesarry signature argument for ring. It was unsed on mark_fb_busy and only used on fb_obj_invalidate for the same ORIGIN_CS usage. So let's clean it a bit Cc: Daniel Vetter Signed-off-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem.c | 10 +++++----- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_fbdev.c | 4 ++-- drivers/gpu/drm/i915/intel_frontbuffer.c | 14 +++++--------- 5 files changed, 13 insertions(+), 18 deletions(-) commit 3b1429d9458f5fc1abe57fb47b429290acb5d4d1 Author: Ville Syrjälä Date: Thu Jun 18 13:47:22 2015 +0300 drm/i915: Factor out p2 divider selection for pre-ilk platforms The same dpll p2 divider selection is repeated three times in the gen2-4 .find_dpll() functions. Factor it out. Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 78 ++++++++++++++---------------------- 1 file changed, 30 insertions(+), 48 deletions(-) commit 8c841e57cadee2d0de7a1ea81c987088fb6a17fd Author: Jani Nikula Date: Thu Jun 18 13:06:17 2015 +0300 drm/i915: reduce line width in {pch, i9xx}_get_hpd_pins() Make Paulo happier. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 77913b39addfaa836929815515ff55cea1142b66 Author: Jani Nikula Date: Thu Jun 18 13:06:16 2015 +0300 drm/i915: move generic hotplug code into new intel_hotplug.c file We have enough generic hotplug functions sprinkled all over i915_irq.c to warrant moving them to a file of their own. This should further underline the distinction between generic code in the new file and platform specific hotplug and irq code that remains in i915_irq.c. Add new intel_hpd_init_work to keep work functions static, and rename get_port_from_pin to intel_hpd_pin_to_port while increasing its visibility, but keep everything else the same. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_drv.c | 15 -- drivers/gpu/drm/i915/i915_drv.h | 9 +- drivers/gpu/drm/i915/i915_irq.c | 409 +------------------------------ drivers/gpu/drm/i915/intel_hotplug.c | 452 +++++++++++++++++++++++++++++++++++ 5 files changed, 464 insertions(+), 422 deletions(-) commit 10b0e9e904c409be8e2476058d9b19a6b37d619e Author: Jani Nikula Date: Thu Jun 18 13:06:15 2015 +0300 drm/i915/irq: clarify irq storm related function naming We'll have three functions: intel_hpd_irq_storm_detect for detecting irq storms, intel_hpd_irq_storm_disable for disabling hotplugs after detected storms, intel_hpd_irq_storm_reenable_work for re-enabling hotplug. No functional changes. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 70f71d5ff465965e2cfdb6f3f195a7b3fe2ab5cc Author: Jani Nikula Date: Thu Jun 18 13:06:14 2015 +0300 drm/i915/irq: abstract irq storm hotplug disabling Continue abstracting hotplug storm related functions to clarify the code. This time, abstract hotplug irq storm related hotplug disabling. While at it, clean up the loop iterating over connectors for readability. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 77 ++++++++++++++++++++++++++--------------- 1 file changed, 50 insertions(+), 27 deletions(-) commit a0049865ea53df19a3f14128fa080719e8f4bdba Author: Jani Nikula Date: Thu Jun 18 13:06:13 2015 +0300 drm/i915/irq: move hotplug even debug print to second connector loop The hotplug work function has two loops iterating over connectors, the first for handling hotplug disabling due to irq storms and the second for actually handling the hotplug events. Move the debug printing into the second one, so we can abstract the storm handling better. This may change the output ordering slightly when there are multiple simultaneous hotplug events. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 27c329ed16ddf5540151dfa9d22c584b819e0718 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:56 2015 +0200 drm/i915: Make cdclk part of the atomic state. The skylake scalers depend on the cdclk freq, but that frequency can change during a modeset. So when a modeset happens calculate the new cdclk in the atomic state. With the transitional helpers gone the cached value can be used in the scaler, and committed after all crtc's are disabled. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90874 Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/intel_atomic.c | 2 + drivers/gpu/drm/i915/intel_display.c | 274 +++++++++++++++++------------------ drivers/gpu/drm/i915/intel_drv.h | 1 + 4 files changed, 135 insertions(+), 145 deletions(-) commit c389c9c4d981e49185b1c89354c85608effefe50 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:55 2015 +0200 drm/i915: Remove transitional references from intel_plane_atomic_check. All transitional plane helpers are gone, party! Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic_plane.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit 818ed961e6ee7988829918b5dc41da14a05f5bc5 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:54 2015 +0200 drm/i915: Make setting color key atomic. By making color key atomic there are no more transitional helpers. The plane check function will reject the color key when a scaler is active. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic_plane.c | 1 + drivers/gpu/drm/i915/intel_display.c | 7 ++- drivers/gpu/drm/i915/intel_drv.h | 6 +-- drivers/gpu/drm/i915/intel_sprite.c | 85 +++++++++++++++---------------- 4 files changed, 46 insertions(+), 53 deletions(-) commit eddfcbcdc27fbecb33bff098967bbdd7ca75bfa6 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:53 2015 +0200 drm/i915: Update less state during modeset. No need to repeatedly call update_watermarks, or update_fbc. Down to a single call to update_watermarks in .crtc_enable Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 66 +++++++++--------------------------- 1 file changed, 16 insertions(+), 50 deletions(-) commit a539205a1628e76cbaae35c8ba64d503c6aa619b Author: Maarten Lankhorst Date: Mon Jun 15 12:33:52 2015 +0200 drm/i915: atomic plane updates in a nutshell Now that all planes are added during a modeset we can use the calculated changes before disabling a plane, and then either commit or force disable a plane before disabling the crtc. The code is shared with atomic_begin/flush, except watermark updating and vblank evasion are not used. This is needed for proper atomic suspend/resume support. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90868 Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 103 ++++++++--------------------------- drivers/gpu/drm/i915/intel_sprite.c | 4 +- 2 files changed, 23 insertions(+), 84 deletions(-) commit d032ffa04cf7c6f7187e53125e860597bf64b11c Author: Maarten Lankhorst Date: Mon Jun 15 12:33:51 2015 +0200 drm/i915: Handle disabling planes better, v2. Read out the initial state, and add a quirk to force add all planes to crtc_state->plane_mask during initial commit. This will disable all planes during the initial modeset. The initial plane quirk is temporary, and will go away when hardware readout is fully atomic, and the watermark updates in intel_sprite.c are removed. Changes since v1: - Unset state->visible on !primary planes. - Do not rely on the plane->crtc pointer in intel_atomic_plane, instead assume planes are invisible until modeset. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 7 ++ drivers/gpu/drm/i915/intel_display.c | 120 ++++++++++++++++++++++++++++------- drivers/gpu/drm/i915/intel_drv.h | 1 + 3 files changed, 106 insertions(+), 22 deletions(-) commit 61333b6075bf3b48a31fb5623a4101ed6bf393bc Author: Maarten Lankhorst Date: Mon Jun 15 12:33:50 2015 +0200 drm/i915: Do not run most checks when there's no modeset. All the checks in intel_modeset_checks are only useful when a modeset occurs, because there is nothing to update otherwise. Same for power/cdclk changes, if there is no modeset they are noops. Unfortunately intel_modeset_pipe_config still gets called without modeset, because atomic hw readout isn't done yet. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) commit ac21b225638a035449107dbbcc0c9f5bd4a24102 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:49 2015 +0200 drm/i915: Move crtc commit updates to separate functions. To allow them to be used in intel_set_mode. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 127 +++++++++++++++++++---------------- 1 file changed, 69 insertions(+), 58 deletions(-) commit 0583236eaa8f8596c2adf5116020dba9bcf77806 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:48 2015 +0200 drm/i915: move detaching scalers to begin_crtc_commit, v2. This is probably intended to be be done during vblank evasion. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 3 --- drivers/gpu/drm/i915/intel_display.c | 8 ++++---- drivers/gpu/drm/i915/intel_drv.h | 1 - 3 files changed, 4 insertions(+), 8 deletions(-) commit 7fabf5ef18ea76714ff04baaeeddb949faf486dd Author: Maarten Lankhorst Date: Mon Jun 15 12:33:47 2015 +0200 drm/i915: remove force argument from disable_plane The idea was good, but planes can have a fb even though they're disabled. This makes the force argument useless and always true, because only the commit function updates state. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 +++------------- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_sprite.c | 10 +++++----- 3 files changed, 9 insertions(+), 19 deletions(-) commit 061e4b8d650afd16ebe447d454431c717265b89f Author: Maarten Lankhorst Date: Mon Jun 15 12:33:46 2015 +0200 drm/i915: clean up atomic plane check functions, v2. By passing crtc_state to the check_plane functions a lot of duplicated code can be removed. There are still some transitional helper calls, they will be removed later. Changes since v1: - Revert state->visible changes. - Use plane->state->crtc instead of plane->crtc. - Use drm_atomic_get_existing_crtc_state. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic_plane.c | 16 +++++++---- drivers/gpu/drm/i915/intel_display.c | 48 ++++++++++--------------------- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_sprite.c | 9 ++---- 4 files changed, 29 insertions(+), 45 deletions(-) commit 302d19ac76ae5abacfcffcc76fb384d0b8d54c80 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:45 2015 +0200 drm/i915: clean up plane commit functions No point in hiding behind big ifs. This will be true most of the time. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 16 ++++++++-------- drivers/gpu/drm/i915/intel_sprite.c | 33 ++++++++++++++------------------- 2 files changed, 22 insertions(+), 27 deletions(-) commit da20eabd2c69761f9dfd849985eb299e3335531f Author: Maarten Lankhorst Date: Mon Jun 15 12:33:44 2015 +0200 drm/i915: Split plane updates of crtc->atomic into a helper, v2. This makes it easier to verify that no changes are done when calling this from crtc instead. Changes since v1: - Make intel_wm_need_update static and always check it. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic_plane.c | 21 +-- drivers/gpu/drm/i915/intel_display.c | 275 ++++++++++++++++++------------ drivers/gpu/drm/i915/intel_drv.h | 8 +- drivers/gpu/drm/i915/intel_sprite.c | 32 +--- 4 files changed, 176 insertions(+), 160 deletions(-) commit 86adf9d7024a699d5195d44c30b7dcd866441f33 Author: Maarten Lankhorst Date: Mon Jun 22 09:50:32 2015 +0200 drm/i915: Split skl_update_scaler, v4. commit 2c310b9d2859863826c3688c88218d607d5dd19a Author: Maarten Lankhorst Date: Mon May 18 12:28:52 2015 +0200 drm/i915: Split skl_update_scaler, v4. It's easier to read separate functions for crtc and plane scaler state. Changes since v1: - Update documentation. Changes since v2: - Get rid of parameters to skl_update_scaler only used for traces. This avoids needing to document the other parameters. Changes since v3: - Rename scaler_idx to scaler_user. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 211 +++++++++++++++++++---------------- drivers/gpu/drm/i915/intel_dp.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 12 +- drivers/gpu/drm/i915/intel_sprite.c | 3 +- 4 files changed, 121 insertions(+), 107 deletions(-) commit ad421372a61a6104f21520845e85ba89d691e783 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:42 2015 +0200 drm/i915: Assign a new pll from the crtc check function, v2. It saves another loop over all crtc's in the state, and computing clock is more of a per crtc thing. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 60 ++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 34 deletions(-) commit cf5a15befd90742128ca2bdc4409789e782fcc9d Author: Maarten Lankhorst Date: Mon Jun 15 12:33:41 2015 +0200 drm/i915: Move scaler setup to check crtc function, v2. The scaler setup may add planes, but since they're unchanged we only have to wait for primary flips. Also set planes_changed to indicate at least 1 plane is modified. Changes since v1: - Instead of removing planes, do minimal validation needed. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 17 +++++++++-------- drivers/gpu/drm/i915/intel_display.c | 15 +++++---------- 2 files changed, 14 insertions(+), 18 deletions(-) commit 6d3a1ce7dc1a125a40d496e924e8e478560eb42f Author: Maarten Lankhorst Date: Mon Jun 15 12:33:40 2015 +0200 drm/i915: Add a simple atomic crtc check function, v2. Move the check for encoder cloning here. Changes since v1: - Remove was/is crtc_disabled. (mattrope) - Rename function to intel_crtc_atomic_check. (mattrope) Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 5 +- drivers/gpu/drm/i915/intel_display.c | 126 ++++++++++++++++++++--------------- 2 files changed, 75 insertions(+), 56 deletions(-) commit 133b0d128be39e308ccd3b3d765c31ebdbf5380e Author: Maarten Lankhorst Date: Mon Jun 15 12:33:39 2015 +0200 drm/i915: Clean up intel_atomic_setup_scalers slightly. Get rid of a whole lot of ternary operators and assign the index in scaler_id, instead of the id. They're the same thing. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_atomic.c | 21 +++++++++++---------- drivers/gpu/drm/i915/intel_display.c | 2 -- drivers/gpu/drm/i915/intel_drv.h | 1 - 3 files changed, 11 insertions(+), 13 deletions(-) commit b359283a035e44a6c760244e14af86cf1f62ef67 Author: Maarten Lankhorst Date: Mon Jun 15 12:33:38 2015 +0200 drm/i915: Use crtc state in intel_modeset_pipe_config Grabbing crtc state from atomic state is a lot more involved, and make sure connectors are added before calling this function. Move check_digital_port_conflicts to intel_modeset_checks, it's only useful to check it on a modeset. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Tested-by(IVB): Matt Roper Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 39 ++++++++++++++---------------------- 1 file changed, 15 insertions(+), 24 deletions(-) commit 09a33f052190ef4d997c54e012c9466844bdae0e Author: Hartmut Knaack Date: Wed Jun 10 21:51:19 2015 +0200 tools:iio:iio_event_monitor: check if event is fully read Check that the read event is of the expected size. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_event_monitor.c | 6 ++++++ 1 file changed, 6 insertions(+) commit efa86e9fa82eaeee76903f131bc326af48a7cbcf Author: Daniel Baluta Date: Wed Jun 17 12:42:51 2015 +0300 iio: light: Add support for ROHM RPR0521 sensor This patch adds support for ROHM RPR0521 ambient light and proximity sensor. It offers raw readings for intensity and proximity. Signed-off-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 11 + drivers/iio/light/Makefile | 1 + drivers/iio/light/rpr0521.c | 615 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 627 insertions(+) commit da8ef4e77d9dfe91d69033cfa05d9f3036fb8dfd Author: Vlad Dogaru Date: Fri Jun 12 11:31:39 2015 +0300 iio: magn: bmc150: add support for bmc156 The BMC156 is a slightly less capable version of BMC150 which lacks support for magnetometer thresholds. Since this driver does not support those anyway, adding support is trivial. Datasheet is available at https://ae-bst.resource.bosch.com/media/products/dokumente/bmc156_1/BST-BMC156-DS000-01.pdf Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 2 ++ 1 file changed, 2 insertions(+) commit 9d174b49ce05b63763e76f9f4373bc1b213ff584 Author: Vlad Dogaru Date: Fri Jun 12 11:31:38 2015 +0300 iio: magn: bmc150: decouple buffer and trigger Signed-off-by: Vlad Dogaru Signed-off-by: Jonathan Cameron drivers/iio/magnetometer/bmc150_magn.c | 69 +++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 31 deletions(-) commit c6f67a1f55a7f8a8373068ca07553bd2b2731949 Author: Octavian Purdila Date: Fri Jun 5 15:56:47 2015 +0300 iio: allow userspace to flush the hwfifo with non-blocking reads This patch changes the semantics of non-blocking reads so that a hardware fifo flush is triggered if the available data in the device buffer is less then the requested size. This allows userspace to accurately generate hardware fifo flushes, by doing a non-blocking read with a size greater then the sum of the device buffer and hardware fifo size. Signed-off-by: Octavian Purdila Reviewed-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron drivers/iio/industrialio-buffer.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit e20008ed931b9bdd90d1a3fd8c9ef9307547f4ed Author: Hartmut Knaack Date: Mon Jun 15 23:48:26 2015 +0200 iio:accel:bmc150-accel: code style cleanup Apply the following coding style changes as indicated by checkpatch.pl in strict mode: - Please don't use multiple blank lines - braces {} should be used on all arms of this statement (if/else) - Alignment should match open parenthesis - Please don't use multiple blank lines - Blank lines aren't necessary after an open brace '{' - Missing a blank line after declarations - No space is necessary after a cast Also wrap/consolidate error messages to fit 80 characters per line and rework a comment. Signed-off-by: Hartmut Knaack Reviewed-by: Octavian Purdila Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 91 +++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 42 deletions(-) commit fdd15f6594f6bc466a01da28ddd2f11bb0e47a9f Author: Hartmut Knaack Date: Mon Jun 15 23:48:25 2015 +0200 iio:accel:bmc150-accel: make use of mask definition BMC150_ACCEL_SLOPE_THRES_MASK was defined some time ago, but its 'magic' value got used instead in bmc150_accel_write_event(). Make use of it for improved readability. Signed-off-by: Hartmut Knaack Reviewed-by: Octavian Purdila Signed-off-by: Jonathan Cameron drivers/iio/accel/bmc150-accel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 825c50dba0139b0322436ddda7d11f043955875e Author: Peter Meerwald Date: Tue Jun 16 21:27:03 2015 +0200 iio: pressure: Fix Measurement Specialties vendor name Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/pressure/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8bf62ec83c89eda4114aae90c593f49649af76bd Author: Hartmut Knaack Date: Thu Jun 18 00:32:05 2015 +0200 iio:light:cm3323: add empty lines for code structure Add some empty lines to visually separate logical structure blocks, as after if-blocks or before regular returns. Signed-off-by: Hartmut Knaack Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/cm3323.c | 5 +++++ 1 file changed, 5 insertions(+) commit 054101c186b9e41d2b57543070c4a520d38402da Author: Hartmut Knaack Date: Thu Jun 18 00:32:04 2015 +0200 iio:light:cm3323: make use of GENMASK Use GENMASK to define the integration time bitmask. Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/light/cm3323.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0ff8c78df8d7c32394b887de4d935962a7f373ce Author: Hartmut Knaack Date: Thu Jun 18 00:32:03 2015 +0200 iio:light:cm3323: replace unneeded variable In cm3323_read_raw() i is used as return variable for the integration time index. The also existing return variable ret however is unused in this case, although appropriate. Replace i with ret and drop it. Signed-off-by: Hartmut Knaack Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/cm3323.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit e5c97027449f235415990310e47071ec371fd46c Author: Hartmut Knaack Date: Thu Jun 18 00:32:01 2015 +0200 iio:light:cm3323: pass up error value cm3323_get_it_bits() returns a valid error code, so pass it up in cm3323_read_raw(). Signed-off-by: Hartmut Knaack Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/cm3323.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 39b441bd30a9eff4b3d2cc039027037403ca5242 Author: Hartmut Knaack Date: Thu Jun 18 00:32:00 2015 +0200 iio:light:Kconfig: fix typo in description Fix the typo in the module description for the CM3323. Signed-off-by: Hartmut Knaack Reviewed-by: Daniel Baluta Signed-off-by: Jonathan Cameron drivers/iio/light/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db42a9be9f05516255e749a5ee4c1e5d07e0a73b Author: Tiberiu Breana Date: Fri Jun 19 17:56:37 2015 +0300 iio: accel: STK8BA50: suspend sensor on init errors Put chip in 'suspend' mode in case something goes wrong during probe. Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8ba50.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 208335138001015fd7c5c986b39e05fffad1c528 Author: Peter Meerwald Date: Sat Jun 20 23:51:38 2015 +0200 iio: light: isl29125: Add scale_available information Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/light/isl29125.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 30e8326728fff4c66377bd3ba99266cf8489c915 Author: Peter Meerwald Date: Sat Jun 20 23:52:31 2015 +0200 tools: iio: Add missing names to iio_event_monitor Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron tools/iio/iio_event_monitor.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 4b8d80157e5d9074c5eac12aff8dad1742b52f1c Author: Peter Meerwald Date: Sat Jun 20 23:52:30 2015 +0200 iio: Add missing modifier names to core some are documented, others are in iio_event_monitor.c which was recently moved from staging Signed-off-by: Peter Meerwald Signed-off-by: Jonathan Cameron drivers/iio/industrialio-core.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit fbb35c1981012c72adff8f09f09005a8900a6dfd Author: Daniel Vetter Date: Fri Jun 19 21:17:42 2015 +0200 drm/i915: Update DRIVER_DATE to 20150619 Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7fd2d26921d1dd70732d8765d714ec3a023a3ca9 Author: Mika Kuoppala Date: Thu Jun 18 12:51:40 2015 +0300 drm/i915: Reset request handling for gen8+ In order for gen8+ hardware to guarantee that no context switch takes place during engine reset and that current context is properly saved, the driver needs to notify and query hw before commencing with reset. There are gpu hangs where the engine gets so stuck that it never will report to be ready for reset. We could proceed with reset anyway, but with some hangs with skl, the forced gpu reset will result in a system hang. By inspecting the unreadiness for reset seems to correlate with the probable system hang. We will only proceed with reset if all engines report that they are ready for reset. If root cause for system hang is found and can be worked around with another means, we can reconsider if we can reinstate full reset for unreadiness case. v2: -EIO, Recovery, gen8 (Chris, Tomas, Daniel) v3: updated commit msg v4: timeout_ms, simpler error path (Chris) References: https://bugs.freedesktop.org/show_bug.cgi?id=89959 References: https://bugs.freedesktop.org/show_bug.cgi?id=90854 Testcase: igt/gem_concurrent_blit/prw-blt-overwrite-source-read-rcs-forked Testcase: igt/gem_concurrent_blit/gtt-blt-overwrite-source-read-rcs-forked Cc: Chris Wilson Cc: Daniel Vetter Cc: Tomas Elf Reviewed-by: Chris Wilson Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_uncore.c | 43 ++++++++++++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) commit b0a08bec96318be54db97c3f0b9e37b52561f9ea Author: Vandana Kannan Date: Thu Jun 18 11:00:55 2015 +0530 drm/i915/bxt: eDP Panel Power sequencing Changes for BXT - added a IS_BROXTON check to use the macro related to PPS registers for BXT. BXT does not have PP_DIV register. Making changes to handle this. Second set of PPS registers have been defined but will be used when VBT provides a selection between the 2 sets of registers. v2: [Jani] Added 2nd set of PPS registers and the macro Jani's review comments - remove reference in i915_suspend.c - Use BXT PP macro Squashing all PPS related patches into one. v3: Jani's review comments addressed - Use pp_ctl instead of pp - ironlake_get_pp_control() is not required for BXT - correct the use of && in the print statement - drop the shift in the print statement v4: Jani's comments - modify ironlake_get_pp_control() - dont set unlock key for bxt v5: Sonika's comments addressed - check alignment - move pp_ctrl_reg write (after ironlake_get_pp_control()) to !IS_BROXTON case. - check before subtracting 1 for t11_t12 Signed-off-by: Vandana Kannan Signed-off-by: A.Sunil Kamath Reviewed-by: Sonika Jindal Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 13 +++++++ drivers/gpu/drm/i915/intel_dp.c | 82 ++++++++++++++++++++++++++++++++--------- 2 files changed, 78 insertions(+), 17 deletions(-) commit 6fb3143b561c4a7865e5513eeb02d42ef38e8173 Author: Len Brown Date: Wed Jun 17 16:23:45 2015 -0400 tools/power turbostat: dump CONFIG_TDP Config TDP is a feature that allows parts to be configured for different thermal limits after they have left the factory. This can have an effect on the operation of the part, particularly in determiniing... Max Non-turbo Ratio Turbo Activation Ratio Signed-off-by: Len Brown arch/x86/include/uapi/asm/msr-index.h | 6 +++ tools/power/x86/turbostat/turbostat.c | 78 ++++++++++++++++++++++++++++++++++- 2 files changed, 83 insertions(+), 1 deletion(-) commit bfae2052265cde825afaba35eb3a4d3889432734 Author: Len Brown Date: Wed Jun 17 12:27:21 2015 -0400 tools/power turbostat: cpu0 is no longer hard-coded, so update output The --debug option reads a number of per-package MSRs. Previously we explicitly read them on cpu0, but recently turbostat changed to read them on the current "base_cpu". Update the print-out to reflect base_cpu, rather than the hard-coded cpu0. Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit ce52299ca6ac23222e040284913d1271edc96459 Author: Matt Roper Date: Fri Jun 5 15:08:24 2015 -0700 drm/i915: Use helper to set CRTC state's mode We need to call drm_atomic_set_mode_for_crtc() rather than copying the mode in manually. As of commit commit 99cf4a29fa24461bbfe22125967188a18383eb5c Author: Daniel Stone Date: Mon May 25 19:11:51 2015 +0100 drm/atomic: Add current-mode blob to CRTC state the helper now also takes care of setting up the mode property blob for us; if we don't use the helper and never setup the mode blob, this will also trigger a failure in drm_atomic_crtc_check() when we have the DRIVER_ATOMIC flag set (i.e., when using the nuclear pageflip support via i915.nuclear_pageflip kernel command line parameter). Cc: Maarten Lankhorst Signed-off-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 71c47df4aa54ee3bfb113a5ae468c8bfb3a6fb7b Author: Nicholas Mc Guire Date: Mon Jun 15 14:46:43 2015 +0300 ath10k: txrx: remove unreachable negative return check and fixup type wait_event_timeout(), introduced in 'commit 5e3dd157d7e7 ("ath10k: mac80211 driver for Qualcomm Atheros 802.11ac CQA98xx devices")' never returns < 0 so the only failure condition to be checked is == 0 (timeout). Further the return type is long not int - an appropriately named variable is added and the assignments fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/txrx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d4298a3a8c92a18d375e55feecc60e4eefeb45e3 Author: Nicholas Mc Guire Date: Mon Jun 15 14:46:43 2015 +0300 ath10k: mac: remove unreachable negative return check wait_event_timeout(), introduced in 'commit 5e3dd157d7e7 ("ath10k: mac80211 driver for Qualcomm Atheros 802.11ac CQA98xx devices")' never returns < 0 so the only failure condition to be checked is ==0 (timeout). Further the return type is long not int - an appropriately named variable is added and the assignments fixed up. Signed-off-by: Nicholas Mc Guire Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 404d67ef2935c5e41d3d7a403c5fb1c278eff60e Author: Raja Mani Date: Mon Jun 15 14:46:42 2015 +0300 ath10k: remove unused variable hdr in ath10k_htt_rx_h_undecap() Just found this during code review. Signed-off-by: Raja Mani Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/htt_rx.c | 2 -- 1 file changed, 2 deletions(-) commit aeae5b4cd9185b0dc72f6d6102cf45073bfbc974 Author: Michal Kazior Date: Mon Jun 15 14:46:42 2015 +0300 ath10k: prevent debugfs mmio access crash kernel It was possible to force an out of bounds MMIO read/write via debugfs. E.g. on QCA988X this could be triggered with: echo 0x2080e0 | tee /sys/kernel/debug/ieee80211/*/ath10k/reg_addr cat /sys/kernel/debug/ieee80211/*/ath10k/reg_value BUG: unable to handle kernel paging request at ffffc90001e080e0 IP: [] ioread32+0x40/0x50 ... Call Trace: [] ? ath10k_pci_read32+0x4f/0x70 [ath10k_pci] [] ath10k_reg_value_read+0x90/0xf0 [ath10k_core] [] ? handle_mm_fault+0xa91/0x1050 [] __vfs_read+0x28/0xe0 [] ? security_file_permission+0x84/0xa0 [] ? rw_verify_area+0x53/0x100 [] vfs_read+0x8a/0x140 [] SyS_read+0x49/0xb0 [] ? trace_do_page_fault+0x3c/0xc0 [] system_call_fastpath+0x12/0x71 Reported-by: Ben Greear Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/pci.c | 13 +++++++++++++ drivers/net/wireless/ath/ath10k/pci.h | 1 + 2 files changed, 14 insertions(+) commit c702534a23d61deaa0565ef0495ab866c06c4325 Author: Janusz Dziedzic Date: Mon Jun 15 14:46:41 2015 +0300 ath10k: enable VHT for IBSS Enable VHT support for IBSS, while mac80211/cfg80211 and wpa_supplicant already support this. In my test env, qca988x 2x2 I get: (udp) ath10k-1 >>>> ath10k-2 (server) - speed: 419 Mbits/sec (tcp) ath10k-1 >>>> ath10k-2 (server) - speed: 404 Mbits/sec During tests I used wpa_supplicant (latest git version), which already support IBSS VHT, and choose highest available BW. Also tested with qca6174. Signed-off-by: Janusz Dziedzic Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/mac.c | 2 ++ 1 file changed, 2 insertions(+) commit 67c81f5a06ed1474c4f16ad93f4502c760999515 Author: Michal Kazior Date: Mon Jun 15 14:46:41 2015 +0300 ath10k: print htt op_version upon driver boot HTT version itself isn't sufficient to know what HTT version given firmware blob uses. Hence print the recently introduced HTT op version code. While at it make the info string a bit more consistent and clear. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/debug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b27bc5a40f915671eda3ac255734a64153fc91f5 Author: Michal Kazior Date: Mon Jun 15 14:46:40 2015 +0300 ath10k: dump fw features during probing This should help when analysing problems from users and spot fw api blob problems easier. Signed-off-by: Michal Kazior Signed-off-by: Kalle Valo drivers/net/wireless/ath/ath10k/core.c | 44 +++++++++++++++++++++++++++++++++ drivers/net/wireless/ath/ath10k/core.h | 3 +++ drivers/net/wireless/ath/ath10k/debug.c | 9 +++++-- 3 files changed, 54 insertions(+), 2 deletions(-) commit e7d66d89bc8bb44f9aab2f4749246214d15a159f Author: Daniel Vetter Date: Mon Jun 15 23:23:54 2015 +0200 drm/i915: Remove more ilk rc6 remnants Leftover from the big purge commit a561165493e5fec2f74bd3ae0577ed659e44ab7f Author: John Harrison Date: Thu Mar 5 14:03:03 2015 +0000 drm/i915: Remove ironlake rc6 support Cc: John Harrison Cc: Rob Clark Reported-by: Rob Clark Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_pm.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) commit 0904deaf4e6bc1d854ed48255bdb170c7906c8fb Author: Mika Kahola Date: Fri Jun 12 10:11:32 2015 +0300 drm/i915: Limit CHV max cdclk Limit CHV maximum cdclk to 320MHz. v2: Rebase to the latest v3: Clean up of if-else tree Signed-off-by: Mika Kahola Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 ++ 1 file changed, 2 insertions(+) commit d8514d6306ea023f144ac922c4e6e6b283d5b78d Author: Paulo Zanoni Date: Fri Jun 12 14:36:21 2015 -0300 drm/i915: don't set the FBC plane select bits on HSW+ This commit is just to make the intentions explicit: on HSW+ these bits are MBZ, but since we only support plane A and the macro evaluates to zero when plane A is the parameter, we're not fixing any bug. v2: - Remove useless extra blank like (Chris). - Init dpfc_ctl in another place (Chris). Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_fbc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 2e8144a53db50cf3d5b32641346d116f778a9680 Author: Paulo Zanoni Date: Fri Jun 12 14:36:20 2015 -0300 drm/i915: unify no_fbc_reason message printing This commit has two main advantages: simplify intel_fbc_update() and deduplicate the strings. v2: - Rebase due to changes on P1. - set_no_fbc_reason() can now return void (Chris). Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 49 +++----------------------- drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_fbc.c | 70 ++++++++++++++++++++++++------------- 3 files changed, 51 insertions(+), 69 deletions(-) commit 87f5ff0115eed248377f3474834caceca072b9ba Author: Paulo Zanoni Date: Fri Jun 12 14:36:19 2015 -0300 drm/i915: add FBC_ROTATION to enum no_fbc_reason Because we're currently using FBC_UNSUPPORTED_MODE for two different cases. This commit will also allow us to write the next one without hiding information from the user. Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 3 +++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_fbc.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) commit 31b9df1040a9ac1d4b88e382f16a50b9f0aff9be Author: Paulo Zanoni Date: Fri Jun 12 14:36:18 2015 -0300 drm/i915: print FBC compression status on debugfs We already had a few bugs in the past where FBC was compressing nothing when it was enabled, which makes the feature quite useless. Add this information to debugfs so the test suites can check for regressions in this piece of the code. Our igt/tests/kms_frontbuffer_tracking already has support for this message. v2: - Remove pointless VLV check (Ville). Signed-off-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 5 +++++ drivers/gpu/drm/i915/i915_reg.h | 3 +++ 2 files changed, 8 insertions(+) commit 44c5905e8e977b1dd9bb99bcd5686464fa0aa247 Author: Ville Syrjälä Date: Thu Jun 11 16:31:16 2015 +0300 drm/i915: Drop the 64k linear scanout alignment on gen2/3 The docs don't support the 64k linear scanout alignment we impose on gen2/3. And it really makes no sense since we have no DSPSURF register, so the only thing that the hardware will see is the linear offset which will be just pixel aligned anyway. There is one case where 64k comes into the picture, and that's FBC. The start of the line length buffer corresponds to a 64k aligned address of the uncompressed framebuffer. So if the uncompressed fb is not 64k aligned, the first actually used entry in the line length buffer will not be byte 0. There are 32 extra entries in the line length buffer to account for this extra alignment so we shouldn't have to worry about it when mapping the uncompressed fb to the GTT. Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 985b8bb486e7dd924925898f86fffca546d698db Author: Ville Syrjälä Date: Thu Jun 11 16:31:15 2015 +0300 drm/i915: Align DSPSURF to 128k on VLV/CHV VLV/CHV have problems with 4k aligned linear scanout buffers. The VLV docs got updated at some point to say that we need to align them to 128k, just like we do on gen4. So far I've seen the problem manifest when the stride is an odd multiple of 512 bytes, and the surface address meets the following pattern '(addr & 0xf000) == 0x1000' (also == 0x2000 is problematic on VLV). The result is a starcase effect (so some pages get dropped maybe?), with a few pages here and there clearly getting scannout out at the wrong position. I've not actually been able to reproduce this problem on gen4, so it's not clear of the issue is any way related to the 128k restrictions supposedly inherited from gen4. But let's hope the 128k alignment is sufficient to hide it all. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Reviewed-by: Arun R Murthy Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4e9a86b6bd335925077dde1006da6838774537d9 Author: Ville Syrjälä Date: Thu Jun 11 16:31:14 2015 +0300 drm/i915: Actually respect DSPSURF alignment restrictions Currently intel_gen4_compute_page_offset() simply picks the closest page boundary below the linear offset. That however may not be suitably aligned to satisfy any hardware specific restrictions. So let's make sure the page boundary we choose is properly aligned. Also to play it a bit safer lets split the remaining linear offset into x and y values instead of just x. This should make no difference for most platforms since we convert the x and y offsets back into a linear offset before feeding them to the hardware. HSW+ are different however and use x and y offsets even with linear buffers, so they might have trouble if either the x or y get too big. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 37 ++++++++++++++++++++++-------------- drivers/gpu/drm/i915/intel_drv.h | 3 ++- drivers/gpu/drm/i915/intel_sprite.c | 9 ++++++--- 3 files changed, 31 insertions(+), 18 deletions(-) commit 7cd35277b4b7af2121dbc5534fc112e2b3896ef4 Author: Chandra Konduru Date: Wed Jun 10 16:16:12 2015 -0700 drm/i915: Delete duplicate #defines added for DCx Delete the duplicate #defines introduced by: commit 6b457d31ea0465fcadcf6d5044f5f71398954727 Author: A.Sunil Kamath Date: Thu Apr 16 14:22:09 2015 +0530 drm/i915/skl: Implement enable/disable for Display C5 state. Signed-off-by: Chandra Konduru Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 6 ------ 1 file changed, 6 deletions(-) commit 0ddfd20385f2e0b22cb19e7da4a235121755f192 Author: Ramalingam C Date: Mon Jun 15 20:50:05 2015 +0530 drm/i915: Restarting the Idleness DRRS in drrs_flush Corrected the documentation on the intel_edp_drrs_flush and intel_edp_drrs_invalidate. And accordingly edp_drrs_flush function is modified to restart the idleness detection after upclocking. v2: Update kerneldoc Signed-off-by: Daniel Vetter (v1) Signed-off-by: Ramalingam C Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dp.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit a80c69fc08064942ba5038310cd63c42b1d8ed72 Merge: 49e4d84 c016530 Author: Daniel Vetter Date: Mon Jun 15 17:43:48 2015 +0200 Merge branch 'topic/atomic-conversion' into drm-intel-next-queued The i915 atomic conversion is a real beast and it's not getting easier wrangling in a separate branch. I'm might be regretting this, but right after vacation nothing can burst my little bubble here! Signed-off-by: Daniel Vetter commit 49e4d842f0d0892c3d26c93a81b9f22c1467030e Author: Chris Wilson Date: Mon Jun 15 12:23:48 2015 +0100 drm/i915: Report to userspace if we have a (presumed) working GPU reset In igt, we want to test handling of GPU hangs, both for recovery purposes and for reporting. However, we don't want to inject a genuine GPU hang onto a machine that cannot recover and so be permenantly wedged. Rather than embed heuristics into igt, have the kernel report exactly when it expects the GPU reset to work. This can also be usefully extended in future to indicate different levels of fine-grained resets. Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: Tim Gore Cc: Tomas Elf Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 5 +++++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/intel_uncore.c | 28 ++++++++++++++++++++++------ include/uapi/drm/i915_drm.h | 1 + 4 files changed, 29 insertions(+), 6 deletions(-) commit 21a59991ce0cd9a0b54b135305e3fcf880f2aaf1 Author: Jim Davis Date: Mon Jun 8 13:19:08 2015 -0700 scripts/package/Makefile: rpmbuild is needed for rpm targets Before rpm release 4.1, in 2002, either the rpm command or the rpmbuild command could be used in the rpm-pkg or binrpm-pkg targets, and the Makefile chose the rpm command if the rpmbuild command wasn't found. After release 4.1, however, the rpm command could no longer be used in place of the rpmbuild command. As the rpmbuild command is not installed by default, this can lead to failures with the rpm-pkg and binrpm-pkg targets: rpm --define "_builddir ." --target \ x86_64 -bb ./binkernel.spec rpm --target: unknown option scripts/package/Makefile:60: recipe for target 'binrpm-pkg' failed Change the Makefile to use rpmbuild unconditionally to avoid this. Signed-off-by: Jim Davis Signed-off-by: Michal Marek scripts/package/Makefile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit 0d8041842644cff1183f3d0df429792764aecd3f Author: Chris Wilson Date: Mon Jun 15 12:52:28 2015 +0100 drm/i915: Fix build without CONFIG_PM drivers/gpu/drm/i915/i915_debugfs.c: In function ‘i915_runtime_pm_status’: drivers/gpu/drm/i915/i915_debugfs.c:2528:34: error: ‘struct dev_pm_info’ has no member named ‘usage_count’ atomic_read(&dev->dev->power.usage_count)); Regression from commit a6aaec8be22652a808d6e316d4a92e58cb75e986 Author: Damien Lespiau Date: Thu Jun 4 18:23:58 2015 +0100 drm/i915: Add runtime PM's usage_count in i915_runtime_pm_status Signed-off-by: Chris Wilson Cc: Damien Lespiau Cc: Paulo Zanoni Cc: Jani Nikula Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 4 ++++ 1 file changed, 4 insertions(+) commit a37161c0588c0d3ff4afb08ef83106a80bde604e Author: Andi Kleen Date: Thu Apr 16 14:02:41 2015 -0700 Kbuild: Add ID files to .gitignore I use GNU id-utils to find code (essentially a database backed grep), which generates an ID file to maintain its data. Add ID to the .gitignore file. Signed-off-by: Andi Kleen Signed-off-by: Michal Marek .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit caf4e2527599a86f1b7d6c7e13546d80e7e50a7c Author: Damien Lespiau Date: Thu Jun 4 16:56:18 2015 +0100 drm/i915: Make sure our labels start at column 0 I noticed one of those and it turned out we have a few lingering around. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 ++-- drivers/gpu/drm/i915/intel_sprite.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit abd41dc93c37abc89fb0470a8195c58f37aa52ac Author: Damien Lespiau Date: Thu Jun 4 16:42:16 2015 +0100 drm/i915/skl: Add debug messages at the start/end of DMC firmware loading It's handy to have debug message for the "big" events and this one qualifies IMHO. Also helpful to see what's happening while we're loading the firwmare and how much time it takes. Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_csr.c | 3 +++ 1 file changed, 3 insertions(+) commit 78ace48cfe6ca226793e46b8c465507efd053bba Author: Damien Lespiau Date: Thu Jun 4 16:42:15 2015 +0100 drm/i915: Remove unnecessary () used with WARN() In Linux, macros are usually well done and protect their arguments properly, even avoiding multiple evaluations of the parameters. Extra () are really not needed. Cc: Suketu Shah Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_csr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit d351f6d94893f3ba98b1b20c5ef44c35fc1da124 Author: Francisco Jerez Date: Fri May 29 16:44:15 2015 +0300 drm/i915: Add SCRATCH1 and ROW_CHICKEN3 to the register whitelist. Only bit 27 of SCRATCH1 and bit 6 of ROW_CHICKEN3 are allowed to be set because of security-sensitive bits we don't want userspace to mess with. On HSW hardware the whitelisted bits control whether atomic read-modify-write operations are performed on L3 or on GTI, and when set to L3 (which can be 10x-30x better performing than on GTI, depending on the application) require great care to avoid a system hang, so we currently program them to be handled on GTI by default. Beignet can immediately start taking advantage of this change to enable L3 atomics. Mesa should eventually switch to L3 atomics too, but a number of non-trivial changes are still required so it will continue using GTI atomics for now. Signed-off-by: Francisco Jerez Reviewed-by: Zhigang Gong Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 4e86f725cebc8164e5f6601707379dd51440269d Author: Francisco Jerez Date: Fri May 29 16:44:14 2015 +0300 drm/i915: Extend the parser to check register writes against a mask/value pair. In some cases it might be unnecessary or dangerous to give userspace the right to write arbitrary values to some register, even though it might be desirable to give it control of some of its bits. This patch extends the register whitelist entries to contain a mask/value pair in addition to the register offset. For registers with non-zero mask, any LRM writes and LRI writes where the bits of the immediate given by the mask don't match the specified value will be rejected. This will be used in my next patch to grant userspace partial write access to some sensitive registers. Signed-off-by: Francisco Jerez Reviewed-by: Zhigang Gong Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 138 +++++++++++++++++++++----------- drivers/gpu/drm/i915/intel_ringbuffer.h | 5 +- 2 files changed, 96 insertions(+), 47 deletions(-) commit 6a65c5b9326c9dd391afb1b3df75cbedffbaccdb Author: Francisco Jerez Date: Fri May 29 16:44:13 2015 +0300 drm/i915: Fix command parser to validate multiple register access with the same command. Until now the software command checker assumed that commands could read or write at most a single register per packet. This is not necessarily the case, MI_LOAD_REGISTER_IMM expects a variable-length list of offset/value pairs and writes them in sequence. The previous code would only check whether the first entry was valid, effectively allowing userspace to write unrestricted registers of the MMIO space by sending a multi-register write with a legal first register, with potential security implications on Gen6 and 7 hardware. Fix it by extending the drm_i915_cmd_descriptor table to represent multi-register access and making validate_cmd() iterate for all register offsets present in the command packet. Signed-off-by: Francisco Jerez Reviewed-by: Zhigang Gong Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_cmd_parser.c | 74 ++++++++++++++++++++-------------- drivers/gpu/drm/i915/i915_drv.h | 5 +++ 2 files changed, 48 insertions(+), 31 deletions(-) commit fcc0008fd02330f1c539a8dd831b00ca9b998cd8 Author: Ville Syrjälä Date: Tue May 26 20:22:40 2015 +0300 drm/i915: Bump CHV PFI credits to 63 when cdclk>=czclk Switch from using 31 PFI credits to 63 PFI credits when cdclk>=czclk on CHV. The spec lists both 31 and 63 as "suggested" values, but based on feedback from hardware folks we should actually be using 63. Originally I picked the 31 basically by flipping a coin. Signed-off-by: Ville Syrjälä Reviewed-by: Clint Taylor Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ac3f918d5a069f1c34c6e0d39cccb0e9c8ac9334 Author: Thomas Richter Date: Sat May 30 20:25:53 2015 +0200 Fix resume from suspend on IBM X30 This patch fixes the resume from suspend-to-ram on the IBM X30 laptop. The problem is caused by the Bios missing to re-initialize the iVCH registers, especially the PLL registers. This patch records the iVCH registers during initialization, and re-installs this register set when resuming. Signed-off-by: Thomas Richter Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/dvo_ivch.c | 63 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 6 deletions(-) commit 8a1ebd7480fe8e80119d12bef2906f9480c2916f Author: Mika Kuoppala Date: Fri May 22 20:04:59 2015 +0300 drm/i915/gtt: Remove _single from page table allocator We are always allocating a single page. No need to be verbose so remove the suffix. Signed-off-by: Mika Kuoppala Reviewed-by: Joonas Lahtinen Reviewed-by: Michel Thierry Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit ea3f5d261fb0b757f95c1657f71ac86eb1778fd1 Author: Mika Kuoppala Date: Fri May 22 20:04:58 2015 +0300 drm/i915/gtt: Don't leak scratch page on mapping error Free the scratch page if dma mapping fails. Signed-off-by: Mika Kuoppala Reviewed-by: Joonas Lahtinen Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_gem_gtt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 66c826a1754c07012e29fbe9be7013e92a5acbac Author: Imre Deak Date: Mon Jun 1 10:32:01 2015 +0300 drm/i915/vlv: fix RC6 residency time calculation The divider value to convert from CZ clock rate to ms needs a +1 adjustment on VLV just like on CHV. This matches both the spec and the accuracy test by pm_rc6_residency. v2: - simplify logic checking for the CHV 320MHz special case (Rodrigo) Testcase: igt/pm_rc6_residency Signed-off-by: Imre Deak Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76877 Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_sysfs.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) commit 3320e37f7ac1f4df90268f204fef490dacee7ca0 Author: Ville Syrjälä Date: Tue May 5 17:06:27 2015 +0300 drm/i915: Double the port clock when using double clocked modes with 12bpc Currently we're forgetting to double the port clock when using double clocked modes with 12bpc on HDMI. We're only accounting for the 1.5x factor due to the 12bpc. So further double the 1.5x port clock when we have a double clocked mode. Unfortunately I don't have any displays that support both 12bpc and double clocked modes, so I was unable to test this. Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 1 + 1 file changed, 1 insertion(+) commit be69a1335fceb706e19f7eaf8d34c9a721c5baf9 Author: Ville Syrjälä Date: Tue May 5 17:06:26 2015 +0300 drm/i915: Fix hdmi clock readout with pixel repeat Account for the pixel multiplier when reading out the HDMI mode dotclock. Makes the state checked happier on my ILK when using double clocked modes. Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 3 +++ 1 file changed, 3 insertions(+) commit ec1dc603c664364c9d6c9c8e774f2822edf7397b Author: Ville Syrjälä Date: Tue May 5 17:06:25 2015 +0300 drm/i915: Check infoframe state more diligently. Check that the DIP is enabled on the right port on IBX and VLV/CHV as we're doing on g4x, and also check for all the infoframe enable bits on all platforms. Eventually we should track each infoframe type independently, and also their contents. This is a small step in that direction as .infoframe_enabled() return value could be easily turned into a bitmask. Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 44 ++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 12 deletions(-) commit 0be6f0c835077bb4dc7346e8eb75329d131a445b Author: Ville Syrjälä Date: Tue May 5 17:06:24 2015 +0300 drm/i915: Disable all infoframes when turning off the HDMI port Currently we just disable the GCP infoframe when turning off the port. That means if the same transcoder is used on a DP port next, we might end up pushing infoframes over DP, which isn't intended. Just disable all the infoframes when turning off the port. Also protect against two ports stomping on each other on g4x due to the single video DIP instance. Now only the first port to enable gets to send infoframes. v2: Rebase Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 85 ++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 45 deletions(-) commit bf868c7ddaa7fd5645fbc01cf2c4ad6ddd64c142 Author: Ville Syrjälä Date: Tue May 5 17:06:23 2015 +0300 drm/i915: Fix 12bpc HDMI enable for IBX Follow the procedure listed in Bspec to toggle the port enable bit off and on when enabling HDMI with 12bpc and pixel repeat on IBX. The old code didn't actually enable the port before "toggling" the bit back off, so the whole workaround was essentially a nop. Also take the opportunity to clarify the code by splitting the gmch platforms to a separate (much more straightforward) function. v2: Rebased due to crtc->config changes Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 78 ++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 25 deletions(-) commit c5de7c6f3b3185ebbb9cf81abb94580c7f2ebd5f Author: Ville Syrjälä Date: Tue May 5 17:06:22 2015 +0300 drm/i915: Fix HDMI 12bpc TRANSCONF bpc value IBX BSpec says we must specify 8bpc in TRANSCONF for both 8bpc and 12bpc HDMI output. Do so. v2: Pass intel_crtc to intel_pipe_has_type() Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 12aa32905df59a32a6fb770830799058bf591eed Author: Ville Syrjälä Date: Tue May 5 17:06:21 2015 +0300 drm/i915: Enable default_phase in GCP when possible When the video timings are suitably aligned so that all different periods start at phase 0 (ie. none of the periods start mid-pixel) we can inform the sink about this. Supposedly the sink can then optimize certain things. Obviously this is only relevant when outputting >8bpc data since otherwise there are no mid-pixel phases. v2: Rebased due to crtc->config changes Signed-off-by: Ville Syrjälä Reviewed-by: Chandra Konduru Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_hdmi.c | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit 6d67415f40b1f166212f37ecc9c23b9f380dfebc Author: Ville Syrjälä Date: Tue May 5 17:06:20 2015 +0300 drm/i915: Send GCP infoframes for deep color HDMI sinks GCP infoframes are required to inform the HDMI sink about the color depth. Send the GCP infoframe whenever the sink supports any deep color modes since such sinks must anyway be capable of receiving them. For sinks that don't support deep color let's skip the GCP in case it might confuse the sink, although HDMI 1.4 spec does say all sinks must be capable of reciving them. In theory we could skip the GCP infoframe for deep color sinks in 8bpc mode as well since sinks must fall back to 8bpc whenever GCP isn't received for some time. BSpec says we should disable GCP after disabling the port, so do that as well. v2: s/intel_set_gcp_infoframe/intel_hdmi_set_gcp_infoframe/ Rebased due to crtc->config changes Signed-off-by: Ville Syrjälä [danvet: Resolve conflict with lack of chv phy patches and fixup typo Chandra spotted.] Reviewed-by: Chandra Konduru Reviewed-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 ++ drivers/gpu/drm/i915/intel_hdmi.c | 74 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) commit d1b1589c4800678a8a2beba83845366b2dff5d70 Author: Ville Syrjälä Date: Tue May 5 17:06:19 2015 +0300 drm/i915: Implement WaEnableHDMI8bpcBefore12bpc:snb, ivb CPT/PPT require a specific procedure for enabling 12bpc HDMI. Implement it, and to keep things neat pull the code into a function. v2: Rebased due to crtc->config changes s/HDMI_GC/HDMIUNIT_GC/ to match spec better Factor out intel_enable_hdmi_audio() Signed-off-by: Ville Syrjälä Reviewed-by: Ander Conselvan de Oliveira Reviewed-By: Chandra Konduru Testecase: igt/kms_render/* Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 1 + drivers/gpu/drm/i915/intel_hdmi.c | 74 +++++++++++++++++++++++++++++++++++---- 2 files changed, 69 insertions(+), 6 deletions(-) commit d0fe116b4554d79125f384f7ba23722b41c3cb93 Author: Florian Fainelli Date: Fri Apr 24 10:27:40 2015 -0700 gitignore: Add MIPS vmlinux.32 to the list MIPS64 kernels builds will produce a vmlinux.32 kernel image for compatibility, ignore them. Signed-off-by: Florian Fainelli Signed-off-by: Michal Marek .gitignore | 1 + 1 file changed, 1 insertion(+) commit 5e1249ff36d29653dde09fedf1d04a4ecff028c2 Merge: a2ee48d fe4c63c Author: Daniel Vetter Date: Mon Jun 15 07:26:47 2015 +0200 Merge remote-tracking branch 'origin/drm-intel-next-queued' into drm-intel-next-queued Pull in patches Jani applied while I was on vacation. Signed-off-by: Daniel Vetter commit 23f93cde93efed59ca82d2687a2fab6a93eaafcc Author: Irina Tirdea Date: Mon Apr 13 18:41:03 2015 +0300 iio: accel: mma9553: document use of mutex Fix checkpatch.pl --strict check: CHECK: struct mutex definition without comment + struct mutex mutex; Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9553.c | 4 ++++ 1 file changed, 4 insertions(+) commit b37c19903a64951f12ae213ce0be7ca3bd26cc12 Author: Irina Tirdea Date: Mon Apr 13 18:41:02 2015 +0300 iio: accel: mma9553: fix alignment issues Fix code alignment and wrap parameters. Fix issues reported by checkpatch.pl --strict. Signed-off-by: Irina Tirdea Suggested-by: Hartmut Knaack Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9551_core.c | 8 ++--- drivers/iio/accel/mma9551_core.h | 6 ++-- drivers/iio/accel/mma9553.c | 76 +++++++++++++++++++--------------------- 3 files changed, 43 insertions(+), 47 deletions(-) commit c0d901cce736cb628d2e15f07ae00ea1029f64df Author: Irina Tirdea Date: Mon Apr 13 18:41:01 2015 +0300 iio: accel: mma9551_core: use size in words for word buffers Change the prototype for the mma9551_read/write_*_words functions to receive the length of the buffer in words (instead of bytes) since we are using a word buffer. This will prevent users from sending an odd number of bytes for a word array. Signed-off-by: Irina Tirdea Signed-off-by: Jonathan Cameron drivers/iio/accel/mma9551_core.c | 27 ++++++++++++--------------- drivers/iio/accel/mma9553.c | 9 ++++++--- 2 files changed, 18 insertions(+), 18 deletions(-) commit 1ca0259b18478b2bab6d5c81ca1de52dd519ae5e Author: Fabio Estevam Date: Fri May 8 15:54:00 2015 -0300 iio: light: hid-sensor-prox: Fit assignment in one line There is no need to do the assignment to indio_dev->num_channels in two lines code. Put it in one line. Signed-off-by: Fabio Estevam Signed-off-by: Jonathan Cameron drivers/iio/light/hid-sensor-prox.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ae35496230bc792fa76505ab7fcee694c7f7d523 Author: Naidu Tellapati Date: Thu May 7 18:24:02 2015 -0300 iio: adc: cc10001: Power-up the ADC at probe time when used remotely The ADC is typically shared with remote CPUs not running Linux. However, there is only one register to power-up/power-down. Remote CPUs aren't able to power-up the ADC, and rely in Linux doing it instead. This commit uses the adc-reserved-channels devicetree property to distinguish shared usage. In this case, the ADC is powered up at probe time. If the ADC is used only by the CPU running Linux, power-up/down at runtime, only when neeeded. Signed-off-by: Naidu Tellapati Signed-off-by: Ezequiel Garcia Signed-off-by: Jonathan Cameron drivers/iio/adc/cc10001_adc.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) commit eb2c9ce2cc938d7d39fc06430519bf0fc5004566 Author: Tiberiu Breana Date: Wed Jun 10 18:07:30 2015 +0300 iio: accel: Add sampling rate support for STK8BA50 Added support for setting the STK8BA50 accelerometer's sampling rate. Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8ba50.c | 57 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 7 deletions(-) commit 003f4880bd2eba68c6f9191607ce73787f3402bd Author: Tiberiu Breana Date: Wed Jun 10 18:07:29 2015 +0300 iio: accel: STK8BA50: replace scale table with a struct Replaced the stk8ba50_scale_table with an identically named struct in order to make the code a bit more readable. Signed-off-by: Tiberiu Breana Signed-off-by: Jonathan Cameron drivers/iio/accel/stk8ba50.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit a858c7dab4b9b6a0b5742c39b10408780ca315c8 Author: Adriana Reus Date: Fri Jun 12 18:10:22 2015 +0300 iio: inv-mpu: Export scale_available attributes Export the available scales for accel and gyro in order to hint the user-space as to what are the available valid values. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 6 ++++++ 1 file changed, 6 insertions(+) commit ad37616e9048123ab664bf2064604888e25c539f Author: Adriana Reus Date: Fri Jun 12 19:01:07 2015 +0300 iio: Documentation: Add additional *scale_available attributes Added some more *scale_available attributes to the list that are used in various drivers but were missiong from Documentation. Signed-off-by: Adriana Reus Signed-off-by: Jonathan Cameron Documentation/ABI/testing/sysfs-bus-iio | 5 +++++ 1 file changed, 5 insertions(+) commit a9d7acc8b0d52ae2f15f6280f63ac9d1e73cfb78 Author: Hartmut Knaack Date: Wed Jun 10 21:51:21 2015 +0200 tools:iio: rename variables Use more appropriate/common variable names: * namepf instead of nameFile in iio_utils.c * ret instead of retval in lsiio.c Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/iio_utils.c | 10 +++++----- tools/iio/lsiio.c | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 19 deletions(-) commit 7663a4aac625268674060d78ee00f97a36a03af7 Author: Hartmut Knaack Date: Wed Jun 10 21:51:20 2015 +0200 tools:iio: adjust coding style Fix various coding style issues, including: * have spaces around operators * indentation * consolidate parameters in same line * required braces * adjust/drop comments * multiline comment style * delete unnecessary empty lines * add empty lines to visualize logial code blocks * typos Signed-off-by: Hartmut Knaack Signed-off-by: Jonathan Cameron tools/iio/generic_buffer.c | 46 +++++++++-------- tools/iio/iio_event_monitor.c | 13 +++-- tools/iio/iio_utils.c | 111 +++++++++++++++++++++++++----------------- tools/iio/iio_utils.h | 15 +++--- tools/iio/lsiio.c | 15 +++--- 5 files changed, 118 insertions(+), 82 deletions(-) commit c0165304e10f317672e20f2b40770d74c51e287f Author: Maarten Lankhorst Date: Fri Jun 12 11:15:42 2015 +0200 drm/i915: Only enable cursor if it can be enabled. The cursor should only be enabled if it's visible. This fixes igt/kms_cursor_crc, which may otherwise produce the following warning: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 3425 at drivers/gpu/drm/i915/intel_display.c:9995 intel_crtc_update_cursor+0x14c/0x4d0 [i915]() Missing switch case (0) in i9xx_update_cursor Modules linked in: i915 CPU: 0 PID: 3425 Comm: kms_cursor_crc Tainted: G W 4.1.0-rc7-patser+ #4079 Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014 ffffffffc01aad10 ffff8800b083faa8 ffffffff817f7827 0000000080000001 ffff8800b083faf8 ffff8800b083fae8 ffffffff81084955 ffff8800b083fad8 ffff8800c4931148 0000000001200000 ffff8800c48b0000 0000000000000000 Call Trace: [] dump_stack+0x4f/0x7b [] warn_slowpath_common+0x85/0xc0 [] warn_slowpath_fmt+0x41/0x50 [] intel_crtc_update_cursor+0x14c/0x4d0 [i915] [] __intel_set_mode+0x6c4/0x750 [i915] [] intel_crtc_set_config+0x473/0x5c0 [i915] [] drm_mode_set_config_internal+0x69/0x120 [] drm_mode_setcrtc+0x189/0x540 [] drm_ioctl+0x1a0/0x6a0 [] ? get_parent_ip+0x11/0x50 [] do_vfs_ioctl+0x2f8/0x530 [] ? trace_hardirqs_on+0xd/0x10 [] ? selinux_file_ioctl+0x56/0x100 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x12/0x6f ---[ end trace abf0f71163290a96 ]--- Signed-off-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b8b7fadec3c797d7babb3c7fec484971e1604978 Author: Maarten Lankhorst Date: Fri Jun 12 11:15:41 2015 +0200 drm/i915: Set hwmode during readout. This was introduced after converting hw readout to atomic, so it should have been part of the revert too. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90929 Reported-by: Ville Syrjälä Tested-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 1 + 1 file changed, 1 insertion(+) commit 02e0efb5b40b42f06668ba38f39654c57feaacdb Author: Maarten Lankhorst Date: Fri Jun 12 11:15:40 2015 +0200 drm/i915: get rid of intel_plane_restore in intel_crtc_page_flip Use a full atomic call instead. intel_crtc_page_flip will still have to live until async updates are allowed. This doesn't seem to be a regression from the convert to atomic, part 3 patch. During GPU reset it fixes the following warning: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 752 at drivers/gpu/drm/drm_crtc.c:5337 drm_mode_page_flip_ioctl+0x27b/0x360() Modules linked in: i915 CPU: 0 PID: 752 Comm: Xorg Not tainted 4.1.0-rc7-patser+ #4090 Hardware name: NUC5i7RYB, BIOS RYBDWi35.86A.0246.2015.0309.1355 03/09/2015 ffffffff81c90866 ffff8800d87c3ca8 ffffffff817f7d87 0000000080000001 0000000000000000 ffff8800d87c3ce8 ffffffff81084955 ffff880000000000 ffff8800d87c3dc0 ffff8800d93d1208 0000000000000000 ffff8800b7d1f3e0 Call Trace: [] dump_stack+0x4f/0x7b [] warn_slowpath_common+0x85/0xc0 [] warn_slowpath_null+0x15/0x20 [] drm_mode_page_flip_ioctl+0x27b/0x360 [] drm_ioctl+0x1a0/0x6a0 [] ? get_parent_ip+0x11/0x50 [] ? avc_has_perm+0x20/0x280 [] ? get_parent_ip+0x11/0x50 [] do_vfs_ioctl+0x2f8/0x530 [] ? expand_files+0x261/0x270 [] ? selinux_file_ioctl+0x56/0x100 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x12/0x6f ---[ end trace 9ce834560085bd64 ]--- Signed-off-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) commit b17d48e27d35bc890ff205c9663b58803798b63b Author: Maarten Lankhorst Date: Fri Jun 12 11:15:39 2015 +0200 drm/i915: Do not use atomic modesets in hw readout. This should fix fallout caused by making intel_crtc_control and update_dpms atomic, which became a problem after reverting the atomic hw readout patch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90929 Reported-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 75 +++++++++++++++--------------------- 1 file changed, 32 insertions(+), 43 deletions(-) commit f721790560be9551c9e7f1644e04960b3ac44d06 Author: Maarten Lankhorst Date: Wed Jun 10 10:24:20 2015 +0200 Revert "drm/i915: Read hw state into an atomic state struct, v2." This reverts commit 3bae26eb2991c00670df377cf6c3bc2b0577e82a. Seems it introduces regressions for 3 different reasons, oh boy.. In bug #90868 as I can see the atomic state will be restored on resume without the planes being set up properly. Because plane setup here requires the atomic state, we'll have to settle for committing atomic planes first. In bug #90861 the failure appears to affect mostly DP devices, and happens because reading out the atomic state prevents a modeset on boot, which would require better hw state readout. In bug #90874 it's shown that cdclk should be part of the atomic state, so only performing a single modeset during resume excarbated the issue. It's better to fix those issues first, and then commit this patch, so do that temporarily. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90868 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90861 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90874 Signed-off-by: Maarten Lankhorst Acked-by: Ander Conselvan de Oliveira Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_atomic.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 379 +++++++++++++---------------------- drivers/gpu/drm/i915/intel_drv.h | 14 +- 3 files changed, 152 insertions(+), 243 deletions(-) commit 9716c691ce06b043d3e75c8ff93704cb40c52265 Author: Maarten Lankhorst Date: Wed Jun 10 10:24:19 2015 +0200 Revert "drm/i915: Make intel_display_suspend atomic, v2." This reverts commit 490f400db5d886fc28566af69b02f6497f31be4b. We're not ready yet to make it atomic, we calculate some state in advance, but without atomic plane support atomic the hw readout will fail. It's required to revert this commit to revert the atomic hw state readout patch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90868 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90861 Signed-off-by: Maarten Lankhorst Acked-by: Ander Conselvan de Oliveira Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 3 -- drivers/gpu/drm/i915/intel_display.c | 55 ++++++++---------------------------- drivers/gpu/drm/i915/intel_drv.h | 2 +- 3 files changed, 13 insertions(+), 47 deletions(-) commit 5c2db1882ab32546c46318d9feb017673c072717 Author: Maarten Lankhorst Date: Mon Jun 1 12:50:11 2015 +0200 drm/i915: use calculated state for vblank evasion crtc->active will be gone eventually, and this check should be just as good. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3538b9dffd8344cd40413018bcd7dc7b2bc1e21d Author: Maarten Lankhorst Date: Mon Jun 1 12:50:10 2015 +0200 drm/i915: Use atomic state for calculating DVO_2X_MODE on i830. This is a small behavioral change because it leaves DVO_2X_MODE set between crtc_disable and crtc_enable. This is probably harmless though and if not should be fixed by calculating 2x mode before enable/disable pll. This is needed because intel_crtc->active will be removed eventually. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 99d736a2ce431dbbcf96ee9d26bd41ca2c2284a1 Author: Maarten Lankhorst Date: Mon Jun 1 12:50:09 2015 +0200 drm/i915: Calculate haswell plane workaround, v5. This needs to be done last after all modesets have been calculated. A modeset first disables all crtc's, so any crtc that undergoes a modeset counts as inactive. If no modeset's done, or > 1 crtc's stay w/a doesn't apply. Apply workaround on the first crtc if 1 crtc stays active. Apply workaround on the second crtc if no crtc was active. Changes since v1: - Use intel_crtc->atomic as a place to put hsw_workaround_pipe. - Make sure quirk only applies to haswell. - Use first loop to iterate over newly enabled crtc's only. This increases readability. Changes since v2: - Move hsw_workaround_pipe back to crtc_state. Changes since v3: - Return errors from haswell_mode_set_planes_workaround. Changes since v4: - Clean up commit message. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 113 +++++++++++++++++++++++++---------- drivers/gpu/drm/i915/intel_drv.h | 3 + 2 files changed, 84 insertions(+), 32 deletions(-) commit f77076c91d563a07c6519b80e234b4e962306b67 Author: Maarten Lankhorst Date: Mon Jun 1 12:50:08 2015 +0200 drm/i915: Remove use of crtc->config from i915_debugfs.c crtc->config is updated to always contain to the active crtc_state and only differs from crtc_state during crtc_disable. It will eventually be removed, so start with some low hanging fruit. For crtc->active the situation is the same; it will be removed eventually. Instead use crtc->state->active. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 42 ++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 15 deletions(-) commit fc467a221a01c5ec369a3969fcafea077c3677b4 Author: Maarten Lankhorst Date: Mon Jun 1 12:50:07 2015 +0200 drm/i915: Use crtc->hwmode for vblanks, v2. intel_crtc->config will be removed eventually, so use crtc->hwmode. drm_atomic_helper_update_legacy_modeset_state updates hwmode, but crtc->active will eventually be gone too. Set dotclock to zero to indicate the crtc is inactive. Changes since v1: - With the hwmode update in drm*update_legacy_modeset_state removed, intel_modeset_update_state has to assign it instead. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_irq.c | 13 ++++++------- drivers/gpu/drm/i915/intel_display.c | 6 ++++++ 2 files changed, 12 insertions(+), 7 deletions(-) commit 1c5e19f8f124b2ff442756e79d9a05c2b9494a28 Author: Maarten Lankhorst Date: Mon Jun 1 12:50:06 2015 +0200 drm/i915: move swap state to the right place This is a preparation for passing crtc state to the helpers. When converting all users of crtc->config to use the old or new state it's easier to find regressions when swap_state is done first. If crtc->config is swapped at the same place as swap_state bugs will never be found. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 06ea0b0897db906c5616f660a34b54d92f7d09cf Author: Maarten Lankhorst Date: Mon Jun 1 12:50:05 2015 +0200 drm/i915: Make intel_display_suspend atomic, v2. Calculate all state using a normal transition, but afterwards fudge crtc->state->active back to its old value. This should still allow state restore in setup_hw_state to work properly. Calling intel_set_mode will cause intel_display_set_init_power to be called, make sure init_power gets set again afterwards. Changes since v1: - Fix to compile with v2 of the patch that adds intel_display_suspend. - Add intel_display_set_init_power. - Set return value to int to allow error checking. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 3 ++ drivers/gpu/drm/i915/intel_display.c | 55 ++++++++++++++++++++++++++++-------- drivers/gpu/drm/i915/intel_drv.h | 2 +- 3 files changed, 47 insertions(+), 13 deletions(-) commit 5da76e94c4b8d40465a907fc3a151051e8021cdc Author: Maarten Lankhorst Date: Mon Jun 1 12:50:04 2015 +0200 drm/i915: Implement intel_crtc_control using atomic state, v4 Assume the callers lock everything with drm_modeset_lock_all. This change had to be done after converting suspend/resume to use atomic_state so the atomic state is preserved, otherwise all transitional state is erased. Now all callers of .crtc_enable and .crtc_disable go through atomic modeset! :-D Changes since v1: - Only check for crtc_state->active in valleyview_modeset_global_pipes. - Only check for crtc_state->active in modeset_update_crtc_power_domains. Changes since v2: - Rework on top of the changed patch order. Changes since v3: - Rename intel_crtc_toggle in description to *_control - Change return value to int. - Do not add plane state, should be done implicitly already. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 53 ++++++++++++++++++++++-------------- drivers/gpu/drm/i915/intel_drv.h | 2 +- 2 files changed, 33 insertions(+), 22 deletions(-) commit 37ade41794e914103b8db417e480afd20dcea971 Author: Ander Conselvan de Oliveira Date: Mon Jun 1 12:50:03 2015 +0200 drm/i915: Read hw state into an atomic state struct, v2. To make this work we load the new hardware state into the atomic_state, then swap it with the sw state. This lets us change the force restore path in setup_hw_state() to use a single call to intel_mode_set() to restore all the previous state. As a nice bonus this kills off encoder->new_encoder, connector->new_enabled and crtc->new_enabled. They were used only to restore the state after a modeset. Changes since v1: - Make sure all possible planes are added with their crtc set, so they will be turned off on first modeset. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_atomic.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 379 ++++++++++++++++++++++------------- drivers/gpu/drm/i915/intel_drv.h | 14 +- 3 files changed, 243 insertions(+), 152 deletions(-) commit c347a6768df15c7145ac16bf4b4f7c5fc2be1179 Author: Ander Conselvan de Oliveira Date: Mon Jun 1 12:50:02 2015 +0200 drm/i915: Move cdclk and pll setup to intel_modeset_compute_config(), v2. It makes more sense there, since these are computation steps that can fail. Changes since v1: - Rename __intel_set_mode_checks to intel_modeset_checks (Matt Roper) - Move intel_modeset_checks to before check_planes, so it won't have to be moved later. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 74 +++++++++++++++++------------------- 1 file changed, 35 insertions(+), 39 deletions(-) commit 5ac1c4bcf073ad897c4510931518275d9e393dc7 Author: Maarten Lankhorst Date: Mon Jun 1 12:50:01 2015 +0200 drm/i915: Swap planes on each crtc separately, v2. Repeated calls to begin_crtc_commit can cause warnings like this: [ 169.127746] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:616 [ 169.127835] in_atomic(): 0, irqs_disabled(): 1, pid: 1947, name: kms_flip [ 169.127840] 3 locks held by kms_flip/1947: [ 169.127843] #0: (&dev->mode_config.mutex){+.+.+.}, at: [] __drm_modeset_lock_all+0x9c/0x130 [ 169.127860] #1: (crtc_ww_class_acquire){+.+.+.}, at: [] __drm_modeset_lock_all+0xad/0x130 [ 169.127870] #2: (crtc_ww_class_mutex){+.+.+.}, at: [] drm_modeset_lock+0x38/0x110 [ 169.127879] irq event stamp: 665690 [ 169.127882] hardirqs last enabled at (665689): [] _raw_spin_unlock_irqrestore+0x55/0x70 [ 169.127889] hardirqs last disabled at (665690): [] intel_pipe_update_start+0x113/0x5c0 [i915] [ 169.127936] softirqs last enabled at (665470): [] __do_softirq+0x236/0x650 [ 169.127942] softirqs last disabled at (665465): [] irq_exit+0xc5/0xd0 [ 169.127951] CPU: 1 PID: 1947 Comm: kms_flip Not tainted 4.1.0-rc4-patser+ #4039 [ 169.127954] Hardware name: LENOVO 2349AV8/2349AV8, BIOS G1ETA5WW (2.65 ) 04/15/2014 [ 169.127957] ffff8800c49036f0 ffff8800cde5fa28 ffffffff817f6907 0000000080000001 [ 169.127964] 0000000000000000 ffff8800cde5fa58 ffffffff810aebed 0000000000000046 [ 169.127970] ffffffff81c5d518 0000000000000268 0000000000000000 ffff8800cde5fa88 [ 169.127981] Call Trace: [ 169.127992] [] dump_stack+0x4f/0x7b [ 169.128001] [] ___might_sleep+0x16d/0x270 [ 169.128008] [] __might_sleep+0x48/0x90 [ 169.128017] [] mutex_lock_nested+0x29/0x410 [ 169.128073] [] ? vgpu_write64+0x220/0x220 [i915] [ 169.128138] [] ? ironlake_update_primary_plane+0x2ff/0x410 [i915] [ 169.128198] [] intel_frontbuffer_flush+0x25/0x70 [i915] [ 169.128253] [] intel_finish_crtc_commit+0x4c/0x180 [i915] [ 169.128279] [] drm_atomic_helper_commit_planes+0x12c/0x240 [drm_kms_helper] [ 169.128338] [] __intel_set_mode+0x684/0x830 [i915] [ 169.128378] [] intel_crtc_set_config+0x49a/0x620 [i915] [ 169.128385] [] ? mutex_unlock+0x9/0x10 [ 169.128391] [] drm_mode_set_config_internal+0x69/0x120 [ 169.128398] [] ? might_fault+0x57/0xb0 [ 169.128403] [] drm_mode_setcrtc+0x253/0x620 [ 169.128409] [] drm_ioctl+0x1a0/0x6a0 [ 169.128415] [] ? get_parent_ip+0x11/0x50 [ 169.128424] [] do_vfs_ioctl+0x2f8/0x530 [ 169.128429] [] ? trace_hardirqs_on+0xd/0x10 [ 169.128435] [] ? selinux_file_ioctl+0x56/0x100 [ 169.128439] [] SyS_ioctl+0x81/0xa0 [ 169.128445] [] system_call_fastpath+0x12/0x6f Solve it by using the newly introduced drm_atomic_helper_commit_planes_on_crtc. The problem here was that the drm_atomic_helper_commit_planes() helper we were using was basically designed to do begin_crtc_commit(crtc #1) begin_crtc_commit(crtc #2) ... commit all planes finish_crtc_commit(crtc #1) finish_crtc_commit(crtc #2) The problem here is that since our hardware relies on vblank evasion, our CRTC 'begin' function waits until we're out of the danger zone in which register writes might wind up straddling the vblank, then disables interrupts; our 'finish' function re-enables interrupts after the registers have been written. The expectation is that the operations between 'begin' and 'end' must be performed without sleeping (since interrupts are disabled) and should happen as quickly as possible. By clumping all of the 'begin' calls together, we introducing a couple problems: * Subsequent 'begin' invocations might sleep (which is illegal) * The first 'begin' ensured that we were far enough from the vblank that we could write our registers safely and ensure they all fell within the same frame. Adding extra delay waiting for subsequent CRTC's wasn't accounted for and could put us back into the 'danger zone' for CRTC #1. This commit solves the problem by using a new helper that allows an order of operations like: for each crtc { begin_crtc_commit(crtc) // sleep (maybe), then disable interrupts commit planes for this specific CRTC end_crtc_commit(crtc) // reenable interrupts } so that sleeps will only be performed while interrupts are enabled and we can be sure that registers for a CRTC will be written immediately once we know we're in the safe zone. The crtc->config->base.crtc update may seem unrelated, but the helper will use it to obtain the crtc for the state. Without the update it will dereference NULL and crash. Changes since v1: - Use Matt Roper's commit message. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_atomic.c | 13 +++---------- drivers/gpu/drm/i915/intel_display.c | 5 +++-- 2 files changed, 6 insertions(+), 12 deletions(-) commit 61c054983271426f8d31ef9e52eda249b123a7df Author: Maarten Lankhorst Date: Mon Jun 1 12:50:00 2015 +0200 drm/i915: Use drm_atomic_helper_swap_state in intel_atomic_commit. And update crtc->config to point to the new state. There is no point in swapping only part of the state when the rest of the state should be untouched. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_atomic.c | 44 ++++++++++--------------------------- 1 file changed, 12 insertions(+), 32 deletions(-) commit de419ab6b774facc14b2fa71e3d8642027924c86 Author: Maarten Lankhorst Date: Thu Jun 4 10:21:28 2015 +0200 drm/i915: Use global atomic state for staged pll, config, v3. Now that we can subclass drm_atomic_state we can also use it to keep track of all the pll settings. atomic_state is a better place to hold all shared state than keeping pll->new_config everywhere. Changes since v1: - Assert connection_mutex is held. Changes since v2: - Fix swapped arguments to kzalloc for intel_atomic_state_alloc. (Jani Nikula) Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_atomic.c | 51 ++++++++++++++++ drivers/gpu/drm/i915/intel_display.c | 111 +++++++++++------------------------ drivers/gpu/drm/i915/intel_drv.h | 13 ++++ 4 files changed, 97 insertions(+), 79 deletions(-) commit 880fa62648bf193eb17193a9eae00a52c7844ea7 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:58 2015 +0200 drm/i915: Zap call to drm_plane_helper_disable, v2. The primary plane can still be configured when crtc is off, furthermore this is also a noop now that affected planes are added on modesets. Changes since v1: - Move commit so no frontbuffer_bits warnings are generated. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 2 -- 1 file changed, 2 deletions(-) commit 568c634a2af62e07ed248a6e7fe9770173f9d9b2 Author: Ander Conselvan de Oliveira Date: Mon Jun 1 12:49:57 2015 +0200 drm/i915: Support modeset across multiple pipes Compute new pipe_configs for all crtcs in the atomic state. The commit part of the mode set (__intel_set_mode()) is already enabled to support multiple pipes, the only thing missing was calculating a new pipe_config for every crtc. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 108 +++++++++++++++-------------------- 1 file changed, 45 insertions(+), 63 deletions(-) commit fb9d6cf8c29bfcb0b3c602f7ded87f128d730382 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:56 2015 +0200 drm/i915: calculate primary visibility changes instead of calling from set_config This should be much cleaner, with the same effects. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 46 ++++++------------------------------ 1 file changed, 7 insertions(+), 39 deletions(-) commit 8a8f7f44a1b704c482f77a0d31cbcdf1af062263 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:55 2015 +0200 drm/i915: do not wait for vblank when crtc is off This can happen when turning off a sprite plane. Because the crtc state is not yet always swapped correctly and transitional helpers are used the crtc state cannot be relied on. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d Author: Maarten Lankhorst Date: Mon Jun 1 12:49:54 2015 +0200 drm/i915: update plane state during init Atomic planes updates rely on having a accurate plane_mask. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 85a96e7a4213de094acc63fd433dcf766e91c782 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:53 2015 +0200 drm/i915: Make sure all planes and connectors are added on modeset. Add missing calls to drm_atomic_add_affected_*. This is needed to convert to atomic planes. When converting to atomic all planes are needed on modeset. For good measure make sure all connectors are added too. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) commit 53d9f4e99de001374eb06195609cc0451f31a318 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:52 2015 +0200 drm/i915: Use crtc_state->active instead of crtc_state->enable crtc_state->enable means a crtc is configured, but it may be turned off for dpms. Until the commit "use intel_crtc_control everywhere" crtc_state->active was not updated on crtc off, but now crtc_state->active should be used for tracking whether a crtc is scanning out or not. A few commits from now dpms will be handled by calling intel_set_mode with a different value for crtc_state->active, which causes a crtc to turn on or off. At this point crtc->active should mirror crtc_state->active, so some paranoia from the crtc_disable functions can be removed. intel_set_mode_setup_plls still checks for ->enable, because all resources that are needed have to be calculated, else dpms changes may not succeed. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_irq.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 44 ++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 23 deletions(-) commit cdba954e426761cdfe08ce4c9909cd97ce254b9c Author: Ander Conselvan de Oliveira Date: Mon Jun 1 12:49:51 2015 +0200 drm/i915: Set mode_changed for audio in intel_modeset_pipe_config() A follow up patch will make intel_modeset_compute_config() deal with multiple crtcs, so move crtc specific stuff into the lower level crtc specific function. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 51 ++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 23 deletions(-) commit c72d969b23253ee8196e4190ec2c15e7cf607372 Author: Ander Conselvan de Oliveira Date: Mon Jun 1 12:49:50 2015 +0200 drm/i915: Make __intel_set_mode() take only atomic state as argument With the use of drm_atomic_helper_update_legacy_modeset_state the last user of modeset_crtc is removed from this function. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 3cb480bcb3397a1cfdc04115adcdb33393fde4f9 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:49 2015 +0200 drm/i915: Use drm_atomic_helper_update_legacy_modeset_state, v2. Now that the helper is exported there's no need to duplicate this code any more. Changes since v1: - move intel_modeset_update_staged_output_state call to the right place. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 61 +++--------------------------------- 1 file changed, 4 insertions(+), 57 deletions(-) commit 1b5092592824d1c91d6e48d820b6047f6ba323ce Author: Maarten Lankhorst Date: Mon Jun 1 12:49:48 2015 +0200 drm/i915: use intel_crtc_control everywhere, v3. Having a single path for everything makes it a lot easier to keep crtc_state->active in sync with intel_crtc->active. A crtc cannot be changed to active when not enabled, because it means no mode is set and no connectors are connected. This should also make intel_crtc->active match crtc_state->active. Changes since v1: - Reworded commit message, there's no intel_crtc_toggle. Changes since v2: - Change some callers of intel_crtc_control to intel_display_suspend. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 18 ++++++++++-- drivers/gpu/drm/i915/intel_display.c | 54 +++++++++++++----------------------- drivers/gpu/drm/i915/intel_drv.h | 1 - 3 files changed, 35 insertions(+), 38 deletions(-) commit 6b72d486245265676df9866734bca1b39252e480 Author: Maarten Lankhorst Date: Mon Jun 1 12:49:47 2015 +0200 drm/i915: add intel_display_suspend, v2 This is a function used to disable all crtc's. This makes it clearer to distinguish between when mode needs to be preserved and when it can be trashed. Changes since v1: - Copy power changes from intel_crtc_control. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.c | 4 +--- drivers/gpu/drm/i915/intel_display.c | 38 ++++++++++++++++++++++++++---------- drivers/gpu/drm/i915/intel_drv.h | 1 + 3 files changed, 30 insertions(+), 13 deletions(-) commit 69024de8ba9ee28bbb2c0ba2f813d37a7d0be80a Author: Maarten Lankhorst Date: Mon Jun 1 12:49:46 2015 +0200 drm/i915: get rid of intel_crtc_disable and related code, v3 Now that the dpll updates are (mostly) atomic, the .off() code is a noop, and intel_crtc_disable does mostly the same as intel_modeset_update_state. Move all logic for connectors_active and setting dpms to that function. Changes since v1: - Move drm_atomic_helper_swap_state up. Changes since v2: - Split out intel_put_shared_dpll removal. Changes since v3: - Rebase on top of latest drm-intel. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 1 - drivers/gpu/drm/i915/intel_display.c | 93 +++++++++--------------------------- 2 files changed, 23 insertions(+), 71 deletions(-) commit 41da1f5d492b4bfef04419feb12ee9b0ea0517cb Author: Maarten Lankhorst Date: Mon Jun 1 12:49:45 2015 +0200 drm/i915: get rid of put_shared_dpll Now that the pll updates are staged the put_shared_dpll function consists only of checks that are done in check_shared_dpll_state after a modeset too. The changes to pll->config are overwritten by intel_shared_dpll_commit, so this entire function is a noop. Signed-off-by: Maarten Lankhorst Reviewed-by: Matt Roper Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 34 +++------------------------------- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 3 insertions(+), 32 deletions(-) commit fe4c63c8cbd22251f8ce8bcb7853e46385f7af82 Author: Imre Deak Date: Thu Jun 4 18:01:35 2015 +0300 drm/i915/bxt: fix DDI PHY vswing scale value setting According to bspec the DDI PHY vswing scale value is "don't care" in case the scale enable bit [27] is clear. But this doesn't seem to be correct. The scale value seems to also matter if the scale mode bit [26] is set. So both bit 26 and 27 depend on the value. Setting the scale value to 0 while either bit is set results in a failed modeset on HDMI (sink reports no signal). After reset the scale value is 0x98, but according to the spec we have to program it to 0x9a. So for consistency program it always to 0x9a regardless of the scale enable bit. Signed-off-by: Imre Deak Tested-by: Matt Roper Acked-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit a6aaec8be22652a808d6e316d4a92e58cb75e986 Author: Damien Lespiau Date: Thu Jun 4 18:23:58 2015 +0100 drm/i915: Add runtime PM's usage_count in i915_runtime_pm_status Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 2 ++ 1 file changed, 2 insertions(+) commit 6455c870e97b7e8a6cf7aacba8ea19087b7db973 Author: Damien Lespiau Date: Thu Jun 4 18:23:57 2015 +0100 drm/i915: Make pc8_status report status for all runtime PM platforms Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_debugfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit a47871bd8ac2954b486272faa2a92831a69b1b8e Author: Damien Lespiau Date: Thu Jun 4 18:21:34 2015 +0100 drm/i915/bxt: Use intel_update_cdclk() to update dev_priv->cdclk_freq Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 560a7ae4b6f679927876b0dfcc1fcdfabdd20684 Author: Damien Lespiau Date: Thu Jun 4 18:21:33 2015 +0100 drm/i915/skl: Update the cached CDCLK at the end of set_cdclk() Ville's and Mika's cdclk series was in flight at the same time as the SKL S3 patches so we were missing that update. intel_update_max_cdclk() and intel_update_cdclk() had to be moved up a bit to avoid forward declarations. Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 137 ++++++++++++++++++----------------- 1 file changed, 70 insertions(+), 67 deletions(-) commit d9062ae59de1025bdd15988a4030d6e667c389d0 Author: Damien Lespiau Date: Thu Jun 4 18:21:32 2015 +0100 drm/i915: Don't display the boot CDCLK twice intel_update_cdclk() will already display the boot CDCLK for DDI platforms, no need to repeat there. Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 414355a7c3f029b762518d73a6ea7e4d07d48e34 Author: Damien Lespiau Date: Thu Jun 4 18:21:31 2015 +0100 drm/i915/skl: Don't warn if reading back DPLL0 is disabled We can operate with DPLL0 off with CDCLK backed by the 24Mhz reference clock, and that's a supported configuration. Don't warn when notice DPLL0 is off then. We still have a separate warn at boot if cdclk is disabled (because we don't currently try to handle the case (that shouldn't happen on SKL as far as I know) where we boot with display not initialized. Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit a9419e846bd8c8e00c1d28282de936523229eff7 Author: Damien Lespiau Date: Thu Jun 4 18:21:30 2015 +0100 drm/i915/skl: Derive the max CDCLK from DFSM Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 7 +++++++ drivers/gpu/drm/i915/intel_display.c | 13 ++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) commit 70d0c5742013b888a9254f54ee527e9941171297 Author: Damien Lespiau Date: Thu Jun 4 18:21:29 2015 +0100 drm/i915: Make broxton_set_cdclk() static Signed-off-by: Damien Lespiau Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 2 +- drivers/gpu/drm/i915/intel_drv.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit b432e5cfd5e92127ad2dd83bfc3083f1dbce43fb Author: Ville Syrjälä Date: Wed Jun 3 15:45:13 2015 +0300 drm/i915: BDW clock change support Add support for changing cdclk frequency during runtime on BDW. Also with IPS enabled the actual pixel rate mustn't exceed 95% of cdclk, so take that into account when computing the max pixel rate. v2: Grab rps.hw_lock around sandybridge_pcode_write() v3: Rebase due to power well vs. .global_resources() reordering v4: Rebased to the latest v5: Rebased to the latest v6: Patch order shuffle so that Broadwell CD clock change is applied before the patch for Haswell CD clock change v7: Fix for patch style problems Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_reg.h | 2 + drivers/gpu/drm/i915/intel_display.c | 216 +++++++++++++++++++++++++++++++++-- 2 files changed, 208 insertions(+), 10 deletions(-) commit ebb72aad41e231fe5c586785dbbf5910867e7978 Author: Ville Syrjälä Date: Wed Jun 3 15:45:12 2015 +0300 drm/i915: Add IS_BDW_ULX We need to tell BDW ULT and ULX apart. v2: Rebased to the latest v3: Rebased to the latest v4: Fix for patch style problems Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 3 +++ 1 file changed, 3 insertions(+) commit 8cfb340774744438dea08a32072bea4a162dd132 Author: Ville Syrjälä Date: Wed Jun 3 15:45:11 2015 +0300 drm/i915: Don't enable IPS when pixel rate exceeds 95% Bspec says we shouldn't enable IPS on BDW when the pipe pixel rate exceeds 95% of the core display clock. Apparently this can cause underruns. There's no similar restriction listed for HSW, so leave that one alone for now. v2: Add pipe_config_supports_ips() (Chris) v3: Compare against the max cdclk insted of the current cdclk v4: Rebased to the latest v5: Rebased to the latest v6: Fix for patch style problems Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83497 Tested-by: Timo Aaltonen Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 30 ++++++++++++++++++++++++++++-- drivers/gpu/drm/i915/intel_drv.h | 2 +- drivers/gpu/drm/i915/intel_pm.c | 17 ++++++++--------- 3 files changed, 37 insertions(+), 12 deletions(-) commit 44913155f036ae966f09a7bc0d299c31876b4383 Author: Ville Syrjälä Date: Wed Jun 3 15:45:10 2015 +0300 drm/i915: Store max cdclk value in dev_priv Keep the cdclk maximum supported frequency around in dev_priv so that we can verify certain things against it before actually changing the cdclk frequency. For now only VLV/CHV have support changing cdclk frequency, so other plarforms get to assume cdclk is fixed. v2: Rebased to the latest v3: Rebased to the latest v4: Fix for patch style problems Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/i915_drv.h | 2 +- drivers/gpu/drm/i915/intel_display.c | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) commit 05024da3c2482e26e94fb3a8324a355c066d2faf Author: Ville Syrjälä Date: Wed Jun 3 15:45:08 2015 +0300 drm/i915: Use cached cdclk value Rather than reading out the current cdclk value use the cached value we have tucked away in dev_priv. v2: Rebased to the latest v3: Rebased to the latest v4: Fix for patch style problems Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 3 +-- drivers/gpu/drm/i915/intel_dp.c | 5 +++-- drivers/gpu/drm/i915/intel_pm.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) commit b6283055b408fd9bee5386bd71fdf5f3b5553ae5 Author: Ville Syrjälä Date: Wed Jun 3 15:45:07 2015 +0300 drm/i915: Cache current cdclk frequency in dev_priv Rather that extracting the current cdclk freuqncy every time someone wants to know it, cache the current value and use that. VLV/CHV already stored a cached value there so just expand that to cover all platforms. v2: Rebased to the latest v3: Rebased to the latest v4: Rebased to the latest v5: Removed spurious call to 'intel_update_cdclk(dev)' based on Damien Lespiau's comment Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_display.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit ccb6662b7ed7690313bcb066f4533d1f641ba72c Merge: 2441f87 63e1456 Author: Jani Nikula Date: Thu Jun 4 10:26:17 2015 +0300 Merge remote-tracking branch 'drm-upstream/drm-next' into drm-intel-next-queued Backmerge drm-next so I can apply Maarten's drm/i915 atomic conversion patches. Signed-off-by: Jani Nikula commit 75fd7ffa7fab91c2c3234bd3e465ba4f366733f4 Author: Len Brown Date: Wed Jun 3 07:37:24 2015 -0400 tools/power turbostat: update turbostat(8) Remove reference to the original Nehalem Turbo white paper, since it has moved, and these mechanisms have now long since been documented in the Software Developer's Manual. Reported-by: Jeremie Lagraviere Signed-off-by: Len Brown tools/power/x86/turbostat/turbostat.8 | 5 ----- 1 file changed, 5 deletions(-) commit 2441f8779e886d74389bf78aad149dc99876a900 Author: Ville Syrjälä Date: Tue Jun 2 15:37:37 2015 +0300 drm/i915: Apply WaDisableAsyncFlipPerfMode via LRIs on gen8 MI_MODE is saved in the logical context so WaDisableAsyncFlipPerfMode must be applied using LRIs on gen8. Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ringbuffer.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 9cc83020616d38339e6c29dc44536e9806abfdb0 Author: Ville Syrjälä Date: Tue Jun 2 15:37:36 2015 +0300 drm/i915: Set INSTPM_FORCE_ORDERING via LRI on gen8, drop it on gen9+ INSTPM is saved in the logical context so we should initialize it using LRIs on gen8. It actually defaults to 1 starting from HSW, but let's keep the write around anyway. Also drop the INSTPM_FORCE_ORDERING setup entirely on gen9+ since it's now a reserved bit. Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ringbuffer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit f94c56f4f33dd34551af6bcc1afde5082fdf6e86 Author: Fabio Estevam Date: Mon Jun 1 22:52:20 2015 -0300 coccinelle: simple_return: Add a blank line Insert a blank line in order to improve the readability of the generated patch and also make it consistent with the other .cocci files. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/misc/simple_return.cocci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 64987fc59d90738715703362292f743b7dbbe76b Author: Sonika Jindal Date: Tue May 26 17:50:13 2015 +0530 drm/i915/bxt: edp1.4 Intermediate Freq support BXT supports following intermediate link rates for edp: 2.16GHz, 2.43GHz, 3.24GHz, 4.32GHz. Adding support for programming the intermediate rates. v2: Adding clock in bxt_clk_div struct and then look for the entry with required rate (Ville) v3: 'clock' has the selected value, no need to use link_bw or rate_select for selecting pll(Ville) v4: Make bxt_dp_clk_val const and remove size (Ville) v5: Rebased v6: Removed setting of vco while rebasing in v5, adding it back Signed-off-by: Sonika Jindal Reviewed-by: Ville Syrjälä (v4) Reviewed-by: Vandana Kannan Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ddi.c | 39 ++++++++++++++++----------------------- drivers/gpu/drm/i915/intel_dp.c | 7 ++++++- 2 files changed, 22 insertions(+), 24 deletions(-) commit 5b6fd12a88a7233b58c669dc87979da9a69728b1 Author: Ville Syrjälä Date: Tue Jun 2 15:37:35 2015 +0300 drm/i915: Move WaBarrierPerformanceFixDisable:skl to skl code from chv code commit 65ca7514e21adbee25b8175fc909759c735d00ff Author: Damien Lespiau Date: Mon Feb 9 19:33:22 2015 +0000 drm/i915/skl: Implement WaBarrierPerformanceFixDisable got misapplied and the code landed in chv_init_workarounds() instead of the intended skl_init_workarounds(). Move it over to the right place. Cc: Damien Lespiau Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau Reviewed-by: Ben Widawsky Signed-off-by: Jani Nikula drivers/gpu/drm/i915/intel_ringbuffer.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 989feafb84118a840ff21250a1e5f516f43e3dbb Author: Tero Kristo Date: Mon Apr 27 22:23:06 2015 +0300 clk: ti: move low-level access and init code under clock driver With most of the clock code under clock driver already, the low-level register access code, and the init code for the same, is no longer needed outside the clock driver. Thus, these can be moved under clock driver also. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 84 --------------------------------------------- arch/arm/mach-omap2/clock.h | 5 --- drivers/clk/ti/clk.c | 75 ++++++++++++++++++++++++++++++++++++++-- include/linux/clk/ti.h | 7 +++- 4 files changed, 78 insertions(+), 93 deletions(-) commit e3aedf0234e7f12554c591bc37236f3469fed8fa Author: Tero Kristo Date: Mon Apr 27 22:20:57 2015 +0300 ARM: OMAP2+: clock: remove legacy omap2_clk_readl/writel APIs As most of the clock driver code has migrated, these are no longer used for anything. Thus remove these APIs completely. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 16 ---------------- arch/arm/mach-omap2/clock.h | 3 --- 2 files changed, 19 deletions(-) commit e9e63088e4f93cf4ed7999294c09905b7dcb4d32 Author: Tero Kristo Date: Mon Apr 27 21:55:42 2015 +0300 clk: ti: remove exported ll_ops struct, instead add an API for registration We should avoid exporting data from drivers, instead use an API for registering the clock low level operations. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 17 +++++++++++++---- arch/arm/mach-omap2/clock.h | 1 + arch/arm/mach-omap2/io.c | 2 ++ drivers/clk/ti/clk.c | 21 +++++++++++++++++++++ drivers/clk/ti/clock.h | 2 ++ drivers/clk/ti/clockdomain.c | 2 ++ include/linux/clk/ti.h | 3 +-- 7 files changed, 42 insertions(+), 6 deletions(-) commit 9e11814ab8f08a0932c583b9e1504acac52ec7b3 Author: Tero Kristo Date: Wed Mar 4 14:50:27 2015 +0200 ARM: OMAP2+: clock: remove dead definitions from the clock header file Cleanup the mess in clock.h by removing all definitions that are no longer used for anything. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clkt34xx_dpll3m2.c | 1 - arch/arm/mach-omap2/clock.h | 124 --------------------------------- arch/arm/mach-omap2/clock34xx.h | 18 ----- 3 files changed, 143 deletions(-) commit a3314e9cf69c1d4052017e559ea69a042ccd83e2 Author: Tero Kristo Date: Wed Mar 4 21:02:05 2015 +0200 clk: ti: move some public definitions to private header Several exported TI clock driver features are no longer needed outside the clock driver itself, thus move all of these to the driver private header file. Also, update some of the driver files to actually include this header. Signed-off-by: Tero Kristo drivers/clk/ti/apll.c | 2 ++ drivers/clk/ti/autoidle.c | 2 ++ drivers/clk/ti/clk-43xx.c | 2 ++ drivers/clk/ti/clk-44xx.c | 2 ++ drivers/clk/ti/clk-54xx.c | 2 ++ drivers/clk/ti/clk-7xx.c | 3 ++- drivers/clk/ti/clock.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ include/linux/clk/ti.h | 45 --------------------------------------------- 8 files changed, 59 insertions(+), 46 deletions(-) commit c9a58b0a848e4b88d2dd4690ef19bae8696649eb Author: Tero Kristo Date: Tue Mar 3 21:19:25 2015 +0200 clk: ti: am3517: move remaining am3517 clock support code to clock driver With legacy clock support gone, this is no longer needed under platform, so move it under the clock driver itself. Make some exports be driver internal definitions at the same time. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/clock3517.c | 118 ---------------------------------------- arch/arm/mach-omap2/clock3517.h | 14 ----- drivers/clk/ti/clk-3xxx.c | 94 ++++++++++++++++++++++++++++++++ drivers/clk/ti/clock.h | 2 + include/linux/clk/ti.h | 2 - 6 files changed, 96 insertions(+), 135 deletions(-) commit eb0572520db9322e47ab97e4aff4a7cbf0381387 Author: Tero Kristo Date: Tue Mar 3 21:10:49 2015 +0200 ARM: OMAP4: clock: remove clock44xx.h header This is not needed for anything anymore, so remove it completely. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock44xx.h | 20 -------------------- arch/arm/mach-omap2/io.c | 1 - 2 files changed, 21 deletions(-) commit f2671d5c6cb4abe4636014cd66fd0eeb8190b2ca Author: Tero Kristo Date: Tue Mar 3 17:28:12 2015 +0200 clk: ti: omap34xx: move omap34xx clock type support code to clock driver With the legacy clock data gone, this is no longer needed under platform, so move it under the clock driver itself. Remove unnecessary declarations from the TI clock header also. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/clock34xx.c | 138 ---------------------------------------- drivers/clk/ti/clk-3xxx.c | 118 ++++++++++++++++++++++++++++++++++ drivers/clk/ti/clock.h | 4 ++ include/linux/clk/ti.h | 4 -- 5 files changed, 123 insertions(+), 143 deletions(-) commit bd86cfdcbd827216fd682d62ffba2667bbe6fbc3 Author: Tero Kristo Date: Tue Mar 3 16:22:50 2015 +0200 clk: ti: clkdm: move clkdm gate clock support code to clock driver With the legacy clock data gone, this is no longer needed under platform, so move it under the clock driver itself. Remove the exported clock driver APIs as well, as these are not needed outside clock driver anymore. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 76 -------------------------------------------- arch/arm/mach-omap2/clock.h | 3 -- drivers/clk/ti/clock.h | 3 ++ drivers/clk/ti/clockdomain.c | 76 ++++++++++++++++++++++++++++++++++++++++++++ include/linux/clk/ti.h | 2 -- 5 files changed, 79 insertions(+), 81 deletions(-) commit d5a04dddf51e234dc89f21e4e4b91e853cf49ff2 Author: Tero Kristo Date: Tue Mar 3 16:08:42 2015 +0200 clk: ti: omap2430: move clock support code under clock driver With the legacy clock support gone, this is no longer needed under platform code-base. Thus, move this under the TI clock driver, and remove the exported API from the public header. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 1 - arch/arm/mach-omap2/clock2430.c | 57 ----------------------------------------- drivers/clk/ti/clkt_iclk.c | 35 +++++++++++++++++++++++++ drivers/clk/ti/clock.h | 1 + include/linux/clk/ti.h | 1 - 5 files changed, 36 insertions(+), 59 deletions(-) commit 9f37e90efaf0772b8f98bc347b9db77a3f0c27eb Author: Tero Kristo Date: Tue Mar 3 15:28:53 2015 +0200 clk: ti: dflt: move support for default gate clock to clock driver With the legacy support gone, OMAP2+ default gate clock can be moved under clock driver. Create a new file for the purpose, and clean-up the header exports a bit as some clock APIs are no longer needed outside clock driver itself. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 273 -------------------------------------- drivers/clk/ti/Makefile | 2 +- drivers/clk/ti/clkt_dflt.c | 316 ++++++++++++++++++++++++++++++++++++++++++++ drivers/clk/ti/clock.h | 5 + include/linux/clk/ti.h | 4 - 5 files changed, 322 insertions(+), 278 deletions(-) commit 046b7c31668311942a2e431e7983d8ab9874d845 Author: Tero Kristo Date: Tue Mar 3 15:13:50 2015 +0200 ARM: OMAP2+: clock: remove clkdm_control static boolean from code clkdm_control is used to determine, whether clocks should trigger a clockdomain transition when they are enabled/disabled. Keep this functionality intact, but replace this with a clk_features flag which can be initialized during boot if needed. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 34 ++++++++++------------------------ arch/arm/mach-omap2/clock.h | 2 -- include/linux/clk/ti.h | 1 + 3 files changed, 11 insertions(+), 26 deletions(-) commit 6f0051da4bb5b35014e1bb326d0a31fcad2369e5 Author: Tero Kristo Date: Wed Mar 4 11:56:22 2015 +0200 ARM: OMAP3: clock: remove clock3xxx.c file This now only has a couple of variables within it, which are used outside the file itself. Move these variables to where they are actually used, and remove the file completely as it is now empty. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/clkt34xx_dpll3m2.c | 2 ++ arch/arm/mach-omap2/clock3xxx.c | 33 --------------------------------- 3 files changed, 3 insertions(+), 34 deletions(-) commit 0565fb168d63f89591ce7dcb85438cb19d939a92 Author: Tero Kristo Date: Tue Mar 3 13:27:48 2015 +0200 clk: ti: dpll: move omap3 DPLL functionality to clock driver With the legacy clock support gone, OMAP3 generic DPLL code can now be moved over to the clock driver also. A few un-unused clkoutx2 functions are also removed at the same time. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 8 +- arch/arm/mach-omap2/clock.h | 4 - arch/arm/mach-omap2/clock3xxx.c | 77 ---- arch/arm/mach-omap2/dpll3xxx.c | 818 --------------------------------------- drivers/clk/ti/Makefile | 14 +- drivers/clk/ti/clk-3xxx.c | 31 ++ drivers/clk/ti/clock.h | 27 ++ drivers/clk/ti/dpll3xxx.c | 825 ++++++++++++++++++++++++++++++++++++++++ include/linux/clk/ti.h | 30 -- 9 files changed, 893 insertions(+), 941 deletions(-) commit 192383d87b876ea9879d8b598af593809a25b7d2 Author: Tero Kristo Date: Tue Mar 3 13:47:08 2015 +0200 ARM: OMAP2+: clock: add support for specific CM ops to ti_clk_ll_ops Clock driver requires access to some CM API functions once the code is being moved under the clock driver from the platform directory. Gate type clock requires access to cm_wait_module_ready and cm_split_idlest_reg functions, which are both used for waiting until the module being clocked has been successfully activated. These CM APIs are now exported through the ti_clk_ll_ops struct. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 2 ++ include/linux/clk/ti.h | 6 ++++++ 2 files changed, 8 insertions(+) commit 9a356d622e8e559eff50b298e574bbc34e860aba Author: Tero Kristo Date: Tue Mar 3 11:14:31 2015 +0200 ARM: OMAP2+: clock: add support for clkdm ops to the low level clk ops Clock driver requires access to certain clockdomain handling ops once the code is being moved over under clock driver. Example of this is clk_enable / clk_disable under omap3 DPLL code. The required clkdm APIs are now exported through the ti_clk_ll_ops struct. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 2 ++ include/linux/clk/ti.h | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) commit 846fdf2a3dd3343e5f461659f905c5ba43f325cc Author: Tero Kristo Date: Tue Mar 3 10:58:56 2015 +0200 ARM: OMAP2+: clock: remove support for legacy mpurate command line param The legacy support is wrong and dangerous, as it doesn't take any OPPs into account and does not scale voltages. Switching mpurate should be handled through cpufreq. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/clock.c | 41 ----------------------------- arch/arm/mach-omap2/clock.h | 1 - arch/arm/mach-omap2/clock2xxx.c | 57 ----------------------------------------- arch/arm/mach-omap2/clock3xxx.c | 25 ------------------ 5 files changed, 1 insertion(+), 125 deletions(-) commit a5aa8a603efa25dd41220bff990da025c93b632b Author: Tero Kristo Date: Tue Mar 3 10:51:01 2015 +0200 clk: ti: move omap2_clk_enable_init_clocks under clock driver This is no longer used outside clock driver, so move it under the driver and remove the export for it from the global header file. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 24 ------------------------ drivers/clk/ti/clk-2xxx.c | 2 ++ drivers/clk/ti/clk-33xx.c | 2 ++ drivers/clk/ti/clk-3xxx.c | 1 + drivers/clk/ti/clk-816x.c | 2 ++ drivers/clk/ti/clk.c | 24 ++++++++++++++++++++++++ drivers/clk/ti/clock.h | 1 + include/linux/clk/ti.h | 1 - 8 files changed, 32 insertions(+), 25 deletions(-) commit bf22bae794d696e411acfcac39b415e160e93834 Author: Tero Kristo Date: Mon Mar 2 19:06:54 2015 +0200 clk: ti: autoidle: move generic autoidle handling code to clock driver This is no longer needed in platform directory, as the legacy clock data is gone, so move it under TI clock driver. Some static functions are renamed also. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clock.c | 104 ------------------------------------ arch/arm/mach-omap2/clock.h | 3 -- drivers/clk/ti/autoidle.c | 119 +++++++++++++++++++++++++++++++++++++++--- drivers/clk/ti/clock.h | 3 ++ drivers/clk/ti/fixed-factor.c | 2 + include/linux/clk/ti.h | 13 ++--- 6 files changed, 119 insertions(+), 125 deletions(-) commit 5100349b95bf238c6c83cb702a64a56a6ee58fc9 Author: Tero Kristo Date: Mon Mar 2 17:10:39 2015 +0200 ARM: OMAP36xx: remove clock36xx.c/.h files These files contain legacy clock implementations which are no longer used for anything, thus remove them completely. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/clock36xx.c | 69 ----------------------------------------- arch/arm/mach-omap2/clock36xx.h | 13 -------- 3 files changed, 1 insertion(+), 83 deletions(-) commit c06bfbe75ef52ff548bffa3d89587aaaa92893bf Author: Tero Kristo Date: Mon Mar 2 17:06:59 2015 +0200 ARM: OMAP2+: clock: remove clock_common_data.c file This only contains clksel tables that were used with the legacy clock data. Now that legacy clock data is completely gone, this file can be removed also. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/clock.h | 14 ---- arch/arm/mach-omap2/clock_common_data.c | 115 -------------------------------- 3 files changed, 1 insertion(+), 130 deletions(-) commit 574c0116b910c7d47d7ead4f1dda21117c38723d Author: Tero Kristo Date: Mon Mar 2 16:30:52 2015 +0200 ARM: OMAP2+: clk: remove obsolete clksel support code The clksel clock type is no longer used for anything, it is rather replaced with common clock divider code. Thus, remove the dead code from kernel. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 3 +- arch/arm/mach-omap2/clkt_clksel.c | 466 -------------------------------------- arch/arm/mach-omap2/clock.h | 12 - 3 files changed, 1 insertion(+), 480 deletions(-) commit afe2cf08401638fbf1bfaf7234be7eb3a5778b04 Author: Tero Kristo Date: Mon Mar 2 16:24:26 2015 +0200 ARM: OMAP3: dpll3-m2: get rid of obsolete clksel access Core DVFS support code is currently referencing clksel functionality, which is wrong. The m2 divisor has been implemented as a divider clock for a long time already, so replace the validrate check call with proper functionality. Core DVFS is currently not supported in the kernel so verifying this patch can be rather tricky, this should probably be fixed at some point. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clkt34xx_dpll3m2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit ef14db0977547b1982d4f6eaa305e1a22eb95778 Author: Tero Kristo Date: Mon Mar 2 14:33:54 2015 +0200 clk: ti: move interface clock implementation under drivers/clk With the legacy clock support gone, the OMAP interface clock implementation can be moved under the clock driver. Some temporary header file tweaks are also needed to make this change work properly. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 3 +- arch/arm/mach-omap2/clkt_iclk.c | 68 ----------------------------------------- arch/arm/mach-omap2/clock.h | 11 ------- drivers/clk/ti/Makefile | 2 +- drivers/clk/ti/clkt_iclk.c | 66 +++++++++++++++++++++++++++++++++++++++ drivers/clk/ti/clock.h | 2 ++ include/linux/clk/ti.h | 10 ++++-- 7 files changed, 78 insertions(+), 84 deletions(-) commit 59245ce01a2e3ded836172266e3ac2e576a03333 Author: Tero Kristo Date: Mon Mar 2 11:07:35 2015 +0200 clk: ti: move OMAP4+ DPLL implementation under drivers/clk With the legacy clock support gone, the OMAP4 specific DPLL implementations can be moved under the clock driver. Change some of the function prototypes to be static at the same time, and remove some exports from the global TI clock driver header. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 6 +- arch/arm/mach-omap2/clock.h | 4 - arch/arm/mach-omap2/dpll44xx.c | 232 ---------------------------------------- drivers/clk/ti/Makefile | 6 +- drivers/clk/ti/clock.h | 14 +++ drivers/clk/ti/dpll44xx.c | 233 +++++++++++++++++++++++++++++++++++++++++ include/linux/clk/ti.h | 13 +-- 7 files changed, 254 insertions(+), 254 deletions(-) commit b138b0283d35bed0cd3353d7e39add8ac493eb37 Author: Tero Kristo Date: Mon Mar 2 09:57:28 2015 +0200 clk: ti: move generic OMAP DPLL implementation under drivers/clk With the legacy clock data now gone, we can start moving OMAP clock type implementations under clock driver. Start this with moving the generic OMAP DPLL clock type under TI clock driver. Signed-off-by: Tero Kristo arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/clkt_dpll.c | 370 ---------------------------------------- drivers/clk/ti/Makefile | 3 +- drivers/clk/ti/clkt_dpll.c | 369 +++++++++++++++++++++++++++++++++++++++ drivers/clk/ti/clock.h | 2 + include/linux/clk/ti.h | 1 - 6 files changed, 374 insertions(+), 373 deletions(-) commit f3b19aa5cab65f7e73613aa37f6851ce56b794d1 Author: Tero Kristo Date: Fri Feb 27 17:54:14 2015 +0200 ARM: OMAP2+: clock: export driver API to setup/get clock features As most of the clock driver support code is going to be moved under drivers/clk/ti, an API for setting / getting the SoC specific clock features is needed. This patch provides this API and changes the existing code to use it. Signed-off-by: Tero Kristo arch/arm/mach-omap2/clkt_dpll.c | 14 +++++++------- arch/arm/mach-omap2/clock.c | 36 +++++++++++++++++------------------- arch/arm/mach-omap2/clock.h | 18 ------------------ arch/arm/mach-omap2/clock3xxx.c | 4 ++-- arch/arm/mach-omap2/dpll3xxx.c | 4 ++-- drivers/clk/ti/clk.c | 25 +++++++++++++++++++++++++ include/linux/clk/ti.h | 16 ++++++++++++++++ 7 files changed, 69 insertions(+), 48 deletions(-) commit a2ee48d60eed9cfb6447a4233370aee4ea88108b Author: Jani Nikula Date: Fri May 29 16:14:37 2015 +0300 drm/i915: abstract hpd irq storm detection Simplify intel_hpd_irq_handler() by extracting HPD irq storm detection to a separate function. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 53 +++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 13 deletions(-) commit bd4b4827acdc00bf9e71f939d160102021d10d4f Author: Ander Conselvan de Oliveira Date: Fri May 29 14:28:09 2015 +0300 drm/i915: Silence compiler warning Silence the following -Wmaybe-uninitialized warnings and make the code more clear. drivers/gpu/drm/i915/intel_display.c: In function ‘__intel_set_mode’: drivers/gpu/drm/i915/intel_display.c:11844:14: warning: ‘crtc_state’ may be used uninitialized in this function [-Wmaybe-uninitialized] return state->mode_changed || state->active_changed; ^ drivers/gpu/drm/i915/intel_display.c:11854:25: note: ‘crtc_state’ was declared here struct drm_crtc_state *crtc_state; ^ drivers/gpu/drm/i915/intel_display.c:11868:6: warning: ‘crtc’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (crtc != intel_encoder->base.crtc) ^ drivers/gpu/drm/i915/intel_display.c:11853:19: note: ‘crtc’ was declared here struct drm_crtc *crtc; Reported-by: Chris Wilson Suggested-by: Chris Wilson Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 42 ++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) commit 475c2e3b3cfba9283793d56742dc2cae2712574b Author: Jani Nikula Date: Thu May 28 15:43:54 2015 +0300 drm/i915/bxt: clear hpd status sticky bits earlier The hotplug status is cached in hp_control, and will be passed on to bottom halves through intel_hpd_irq_handler(), so we can clear the sticky bits earlier. While at it, drop the redundant logging of the hotplug status, which will also be logged by pch_get_hpd_pins(). Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) commit 676574dffa4d67ff4e8b2ec796eb9f41aad925d8 Author: Jani Nikula Date: Thu May 28 15:43:53 2015 +0300 drm/i915: abstract away platform specific parts from hpd handling Split intel_hpd_irq_handler into platforms specific and platform agnostic parts. The platform specific parts decode the registers into information about which hpd pins triggered, and if they were long pulses. The platform agnostic parts do further processing, such as interrupt storm mitigation and scheduling bottom halves. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 147 +++++++++++++++++++++++++++------------- 1 file changed, 101 insertions(+), 46 deletions(-) commit c8727233aa80cdf54e3460ac5ebc93c05b09ff5d Author: Jani Nikula Date: Thu May 28 15:43:52 2015 +0300 drm/i915: simplify condition for digital port As the hpd loops have been merged together, we don't have to maintain state for all hpd triggers. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9ace043310ba4875e08863b9f31f429d853685f2 Author: Jani Nikula Date: Thu May 28 15:43:51 2015 +0300 drm/i915: merge the two hpd loops in intel_hpd_irq_handler to one Nothing in the two consecutive loops over hpd pins depends on state in a larger context than the single hpd pin. If we skip the rest of the loop on short hpd pulses, we can merge the two loops into one. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) commit ab68d5bb0b49727e4049b018185f82764cf44736 Author: Jani Nikula Date: Thu May 28 15:43:50 2015 +0300 drm/i915: put back the indent in intel_hpd_irq_handler In an unfortunate back and forth stepping, retract the earlier change to reduce indent. This is to make merging the two loops easier. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 51 ++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 26 deletions(-) commit 641a969eff3ffb01088736ef9531caffe38a6fd9 Author: Jani Nikula Date: Thu May 28 15:43:49 2015 +0300 drm/i915: simplify conditions for skipping the 2nd hpd loop iterations Multiple positive and negative checks for hpd[i] & hotplug_trigger gets hard to read. Simplify. This should make follow-up patches merging the two loops easier. No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit c91711f93f7102c4c71896b6e9273f222bf31989 Author: Jani Nikula Date: Thu May 28 15:43:48 2015 +0300 drm/i915: add for_each_hpd_pin to iterate over hotplug pins No functional changes. Signed-off-by: Jani Nikula Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/i915_irq.c | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) commit 623e01e53927b05e96781532bdb40536e833e276 Author: Ville Syrjälä Date: Fri May 22 11:22:34 2015 +0300 drm/i915: Warn when cdclk for the platforms is not known Print a warning if we fall through the .get_display_clock_speed() function pointer setup. We end up assuming a 133MHz cdclk which should mean that at least we avoid any 0 deivisions and whatnot. But this could at least help remind people that they have to provide this function for new platforms. v2: Rebased to the latest v3: Rebased to the latest Signed-off-by: Ville Syrjälä (v1) Signed-off-by: Mika Kahola Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 34edce2fea6960ce5855d6e09902f82822c374c5 Author: Ville Syrjälä Date: Fri May 22 11:22:33 2015 +0300 drm/i915: Add cdclk extraction for g33, g965gm and g4x Implement cdclk extraction for g33, 965gm and g4x platforms. The details came from configdb. Sadly there isn't anything there for other gen3/gen4 chipsets. So far I've tested this on one ELK where it gave me a HPLL VCO of 5333 MHz and cdclk of 444 MHz which seems perfectly sane for this machine. v2: Rebased to the latest v3: Rebased to the latest Signed-off-by: Ville Syrjälä Signed-off-by: Mika Kahola Acked-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 3 + drivers/gpu/drm/i915/intel_display.c | 183 ++++++++++++++++++++++++++++++++++- 2 files changed, 185 insertions(+), 1 deletion(-) commit 65cd2b3fa521d1abec13dd36bf1bfc8f2469d8bc Author: Ville Syrjälä Date: Fri May 22 11:22:32 2015 +0300 drm/i915: Fix 852GM/GMV cdclk It seems 852GM/GMV uses a different HPLLCC encoding than the other 85x platforms. For 852GM/GMV cdclk is always 133MHz. Try to detect that using the PCI revision (sinc the device ID seems useless for that). I'm not at all sure this is a good idea, but according to the specs it should work. v2: Rebased to the latest v3: Rebased to the latest Signed-off-by: Ville Syrjälä (v1) Signed-off-by: Mika Kahola Acked-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_display.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 1b1d27160dad5478f614f95ae5a87bd8382c5612 Author: Ville Syrjälä Date: Fri May 22 11:22:31 2015 +0300 drm/i915: Fix i855 get_display_clock_speed Actually read the HPLLCC register insted of assuming it's 0. Fix the HPLLCC bit definitions and all the missing ones from the 852GME spec. 852GME, 854 and 855 all seem to match the same HPLLC encoding even though only some of the values are valid is some of the platforms. v2: Rebased to the latest v3: Rebased to the latest Signed-off-by: Ville Syrjälä (v1) Signed-off-by: Mika Kahola Acked-by: Damien Lespiau Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_reg.h | 11 ++++++++--- drivers/gpu/drm/i915/intel_display.c | 15 ++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) commit 8d2fdc3f26d150633004a04b53a4398cc2eed343 Author: Tvrtko Ursulin Date: Wed May 27 10:52:32 2015 +0100 drm/i915: Only show view type for GGTT VMAs Printing it for PPGTT VMAs only adds noise since we have defined view types are only applicable for GGTT. Signed-off-by: Tvrtko Ursulin Cc: Joonas Lahtinen Reviewed-by: Joonas Lahtinen Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_debugfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 877f61d947b6666205fee4ea7a04faf187a4ede5 Author: Damien Lespiau Date: Thu May 7 18:38:47 2015 +0100 drm/i915/skl: Don't try to store the wrong central frequency The orignal code started by storing the actual central frequency (in Hz, using a uint64_t) in a uint32_t which codes for the register value. That can't be right. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 2 -- 1 file changed, 2 deletions(-) commit 6358298337abfabcf1e2b211c433f2093e5e9b28 Author: Damien Lespiau Date: Thu May 7 18:38:46 2015 +0100 drm/i915: Correctly prefix HSW/BDW HDMI clock functions Those functions were the only one in existence when they were introduced. We now know they are only valid for HSW/BDW. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 64311571a91fdd6d2ddc9055e9ba477f118067ad Author: Damien Lespiau Date: Thu May 7 18:38:44 2015 +0100 drm/i915/skl: Remove unnecessary () used with abs_diff() abs_diff() properly protects its parameters, so no need for the outer () here. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 30a7862de84e69abc3018c57184f485048eed9d8 Author: Damien Lespiau Date: Thu May 7 18:38:43 2015 +0100 drm/i915/skl: Remove unnecessary () used with div_u64() div_u64() can be either a inline function or a define, but in either case it's safe to provide expressions as parameters without outer () around them. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 76516fbc294d60481f2427d6a42125364a629386 Author: Damien Lespiau Date: Thu May 7 18:38:42 2015 +0100 drm/i915/skl: Factor out computing the DPLL paramaters from the dividers This part doesn't depend on how we compute the DPLL dividers (p and p0/p1/p2) and can be reused even if we change the algorithm to do so. (something that is planned for a followup patch) Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 139 +++++++++++++++++++++------------------ 1 file changed, 75 insertions(+), 64 deletions(-) commit 9c2367538de381435503425c22c4f192c72e282e Author: Damien Lespiau Date: Thu May 7 18:38:41 2015 +0100 drm/i915/skl: Use a more idomatic early return We can coalesce the WARN() condition with the WARN() itself and, as we are returning early, we can de-intent the rest of the function. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 121 +++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 62 deletions(-) commit 318bd821d65d37fb12c5673607e2b013f7a86a01 Author: Damien Lespiau Date: Thu May 7 18:38:40 2015 +0100 drm/i915/skl: Propagate the error if we fail to find a suitable DPLL divider At the moment, even if we fail to find a suitable divider, we'll still try to set the mode with bogus parameters. Just fail the modeset if we can't generate the frequency. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 19cdc0e6cdfc29e3ddee1fe56c3bcdfe25f6a916 Author: Damien Lespiau Date: Thu May 7 18:38:39 2015 +0100 drm/i915/skl: Display the WRPLL frequency we couldn't accomodate when failing This helps debugging. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6cf75178deacd87af12a657d914e6bbca806b5ba Author: Damien Lespiau Date: Thu May 7 18:38:38 2015 +0100 drm/i915/skl: Make sure to break when not finding suitable PLL dividers Right now, when finishing the cycle with odd dividers without finding a suitable candidate, we end up in an infinite loop. Make sure to break in that case. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 4 ++++ 1 file changed, 4 insertions(+) commit ea875496360cf8f89ea009239bf7ef12cdd4febc Author: Jani Nikula Date: Wed May 27 15:03:45 2015 +0300 drm/i915/dsi: remove non-op hot plug callback Not needed or used. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_dsi.c | 6 ------ 1 file changed, 6 deletions(-) commit d66716200a8e8362599ce939df40821bb960e866 Author: Jani Nikula Date: Wed May 27 15:03:44 2015 +0300 drm/i915: remove useless DP and DDI encoder ->hot_plug hooks The hotplug callbacks for DP and DDI effectively did nothing. Remove them. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/intel_ddi.c | 15 --------------- drivers/gpu/drm/i915/intel_dp.c | 7 ------- 2 files changed, 22 deletions(-) commit 5fcece80ecdac932a0acb71e3a239c39dd4af20f Author: Jani Nikula Date: Wed May 27 15:03:42 2015 +0300 drm/i915: group all hotplug related fields into a new struct in dev_priv There are plenty of hotplug related fields in struct drm_i915_private scattered all around. Group them under one hotplug struct. Clean up naming while at it. No functional changes. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_dma.c | 8 ++-- drivers/gpu/drm/i915/i915_drv.c | 12 +++--- drivers/gpu/drm/i915/i915_drv.h | 58 ++++++++++++++------------- drivers/gpu/drm/i915/i915_irq.c | 86 ++++++++++++++++++++-------------------- drivers/gpu/drm/i915/intel_ddi.c | 2 +- drivers/gpu/drm/i915/intel_dp.c | 6 +-- 6 files changed, 88 insertions(+), 84 deletions(-) commit b0c29a33fc80bec3ae0f5862d7733e3782878d6d Author: Jani Nikula Date: Wed May 27 15:03:41 2015 +0300 drm/i915: reduce indent in intel_hpd_irq_handler Continue to loop early if there's nothing to do. No functional changes. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 49 ++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 23 deletions(-) commit 369712e89404089fa559235bb1ee8fc40d976e6b Author: Jani Nikula Date: Wed May 27 15:03:40 2015 +0300 drm/i915: reduce duplicate conditions in i9xx_hpd_irq_handler Move dp aux irq handling within the same branch instead of duplicating the conditions. No functional changes. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 0d2e42970cfa8814ce5f73e329f61c94b7ec2dab Author: Jani Nikula Date: Wed May 27 15:03:39 2015 +0300 drm/i915: reduce indent in i9xx_hpd_irq_handler Bail out early if nothing to do. No functional changes. Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_irq.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) commit b1b38278e12b04cf9a227f6af2c24651cf6e8a85 Author: David Weinehall Date: Wed May 20 17:00:13 2015 +0300 drm/i915: add a context parameter to {en, dis}able zero address mapping Export a new context parameter that can be set/queried through the context_{get,set}param ioctls. This parameter is passed as a context flag and decides whether or not a GPU address mapping is allowed to be made at address zero. The default is to allow such mappings. Signed-off-by: David Weinehall Acked-by: "Zou, Nanhai" Signed-off-by: Daniel Vetter drivers/gpu/drm/i915/i915_drv.h | 5 +++++ drivers/gpu/drm/i915/i915_gem_context.c | 11 +++++++++++ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 13 +++++++++---- include/uapi/drm/i915_drm.h | 1 + 4 files changed, 26 insertions(+), 4 deletions(-) commit 9473a62f779d78bae646e7ef1a792d53ad4ac29e Author: Fabio Estevam Date: Sun May 24 17:45:54 2015 -0300 coccinelle: irqf_oneshot.cocci: Improve the generated commit log Improve the commit log of the generated patch by mentioning the commit log that makes threaded IRQs without a primary handler to be requested with the IRQF_ONESHOT flag. Signed-off-by: Fabio Estevam Acked- by: Valentin Rothberg Signed-off-by: Michal Marek scripts/coccinelle/misc/irqf_oneshot.cocci | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 4c8f20bb8e0ba6eecf62958bbf0502a2dc445ce6 Author: Dmitry Kalinkin Date: Thu May 21 19:19:13 2015 +0800 coccinelle: api: add vma_pages.cocci This semantic patch replaces explicit computations of vma page count with explicit function call. Signed-off-by: Dmitry Kalinkin Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/api/vma_pages.cocci | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) commit 74de120d8096f72bdf95aba7234428c798d931cd Author: Fabio Estevam Date: Wed May 20 08:02:35 2015 -0300 scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar Correct form is 'always requested'. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/misc/irqf_oneshot.cocci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4341f6e5ce448dd79c3e663513213b936ba34c83 Author: Fabio Estevam Date: Wed May 20 08:02:34 2015 -0300 scripts/coccinelle/misc/semicolon.cocci: Use imperative mood According to Documentation/SubmittingPatches: "Describe your changes in imperative mood, e.g. "make xyzzy do frotz" instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy to do frotz", as if you are giving orders to the codebase to change its behaviour. So do as recommended. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/misc/semicolon.cocci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca34cba43168830dd96f8f6407282131733e6fb4 Author: Fabio Estevam Date: Sat May 9 17:09:30 2015 -0300 coccinelle: simple_open: Use imperative mood According to Documentation/SubmittingPatches: "Describe your changes in imperative mood, e.g. "make xyzzy do frotz" instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy to do frotz", as if you are giving orders to the codebase to change its behaviour." So do as recommended. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/api/simple_open.cocci | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dd494ac0de48ded6a7ec0525f253116fde5c7be5 Author: Fabio Estevam Date: Sat May 9 17:09:29 2015 -0300 coccinelle: ifaddr: Fix the sentence Make the sentence sensible. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/misc/ifaddr.cocci | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fe8c46b632505a880c527bc9ae246e868aa3ece5 Author: Fabio Estevam Date: Sat May 9 17:09:28 2015 -0300 coccinelle: returnvar: Use imperative mood According to Documentation/SubmittingPatches: "Describe your changes in imperative mood, e.g. "make xyzzy do frotz" instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy to do frotz", as if you are giving orders to the codebase to change its behaviour." So do as recommended. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/misc/returnvar.cocci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9beafc9d8bf7febf673df9b41e13596ca669f75 Author: Fabio Estevam Date: Sat May 9 17:09:27 2015 -0300 coccinelle: pm_runtime: Insert blank line Insert a blank line in order to improve the readability of the generated patch and also make it consistent with the other .cocci files. Signed-off-by: Fabio Estevam Acked-by: Julia Lawall Signed-off-by: Michal Marek scripts/coccinelle/api/pm_runtime.cocci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ca2a9d2cf6cf3dd852c3926ac7e30ee774da4638 Author: Arnaud Patard (Rtp) Date: Tue Feb 3 13:16:33 2015 +0100 deb-pkg: Add device tree blobs to the package When building a package with make deb-pkg (say, for arm), the dtb files are not added to the package. Given that things are still evolving on arm, it make sense to have them along with the kernel and modules. Signed-off-by: Arnaud Patard Reviewed-by: Ben Hutchings Acked-by: maximilian attems Signed-off-by: Michal Marek scripts/package/builddeb | 7 +++++++ 1 file changed, 7 insertions(+) commit 64178cb62c329350fe06622cd215264d849b27b1 Author: Andrey Skvortsov Date: Mon Mar 16 11:20:54 2015 +0300 builddeb: fix stripped module signatures if CONFIG_DEBUG_INFO and CONFIG_MODULE_SIG_ALL are set If CONFIG_MODULE_SIG_ALL is set, then user expects that all modules are automatically signed in the result package, as it's for rpm-pkg, binrpm-pkg, tar, tar-*. For deb-pkg this is correct only if CONFIG_DEBUG_INFO is NOT set. In that case deb-package contains signed modules. But if CONFIG_DEBUG_INFO is set, builddeb creates separate package with debug information. To do that, debug information from all modules is copied into separate files by objcopy. And loadable kernel modules are stripped afterwards. Stripping removes previously (during modules_install) added signatures from loadable kernel modules. Therefore final deb-package contains unsigned modules despite of set option CONFIG_MODULE_SIG_ALL. This patch resigns all stripped modules if CONFIG_MODULE_SIG_ALL is set to solve this problem. Signed-off-by: Andrey Skvortsov Acked-by: maximilian attems Signed-off-by: Michal Marek scripts/package/builddeb | 6 ++++++ 1 file changed, 6 insertions(+) commit dca0c0246fb739bccdd19ff2bfd0f02ccffdb07c Author: Riku Voipio Date: Thu Apr 16 16:42:46 2015 +0300 deb-pkg: move setting debarch for a separate function create_package() function tries to resolve used architecture for everry package. Split the setting the architecture to a new function, set_debarch(), called once on startup. This allows using debarch from other parts of script as needed. v2: Follow Michals suggestion on setting variables at top scope and also setting the fallback $debarch in the new function Signed-off-by: Riku Voipio Signed-off-by: Michal Marek scripts/package/builddeb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) commit 92f43c452c5313a7914eab2b08d966a6c5007baa Author: Borislav Petkov Date: Sun Apr 19 00:05:14 2015 +0200 kbuild/mkspec: Simplify vmlinux.bz2 creation No need for the intermediary vmlinux.orig - bzip2 can keep the original files used for compression with --keep. Signed-off-by: Borislav Petkov Signed-off-by: Michal Marek scripts/package/mkspec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)